MATLAB自相关分析xcorr

目录

  • 自相关定义
  • xcorr的应用
  • 举个栗子

自相关定义

信号 x ( t ) x(t) x(t)的自相关函数定义为
在这里插入图片描述
其中,T为信号 x ( t ) x(t) x(t)的观测时间, R x ( τ ) R_{x}(\tau) Rx(τ)描述了 x ( t ) x(t) x(t) x ( t + τ ) x(t+\tau) x(t+τ) x ( t − τ ) x(t-\tau) x(tτ)之间的相关性。自相关函数可以从被干扰的信号中找出周期成分。

xcorr的应用

MATLAB中自带自相关变换的函数xcorr(),其调用格式如下:
MATLAB自相关分析xcorr_第1张图片
其中的’option’参数可选:
“biased”:为有偏的互相关函数估计;
“unbiased”:为无偏的互相关函数估计;
“coeff”:为0延时的正规化序列的自相关计算;
“none”:为原始的互相关计算;

下面针对这个参数讲一下我的理解:
根据自相关函数的定义,信号 x x x应该是无限长的,然而我们现实中采集到的数据都是有限长度的,因此做自相关变化之后肯定会有衰减。

根据定义或者我们做自相关变换的目的,我们想要找的信号 x x x的周期,不希望它有衰减。比如正弦函数做变换之后仍是正弦函数。因此,我们可以用"biased"和"unbiased"这两个参数来调节

举个栗子

MATLAB自相关分析xcorr_第2张图片

Fs=1000; %采样率
f = 5;
N = 2; % 周期数
t=N; % 信号时长 s 
n=0:1/Fs:t-1/Fs; % 采样时间点,刚好采N 个周期
len = length(n); % 信号点数
y = sin(2*pi*f*n); % 采集到的离散信号
subplot(311)
plot(y)
title('sin(x)')
[a,b] = xcorr(y,'biased');
subplot(312)
plot(b,a)
title('biased')
[a,b] = xcorr(y,'unbiased');
subplot(313)
plot(b,a)
title('unbiased')

MATLAB自相关分析xcorr_第3张图片
加上"unbiased"参数之后,相当于把信号变为无限长之后再做自相关,这正是我们希望得到的。

你可能感兴趣的:(MATLAB,matlab,信号处理)