自相关定义
信号
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(),其调用格式如下:
其中的’option’参数可选:
“biased”:为有偏的互相关函数估计;
“unbiased”:为无偏的互相关函数估计;
“coeff”:为0延时的正规化序列的自相关计算;
“none”:为原始的互相关计算;
下面针对这个参数讲一下我的理解:
根据自相关函数的定义,信号
x
x
x应该是无限长的,然而我们现实中采集到的数据都是有限长度的,因此做自相关变化之后肯定会有衰减。
根据定义或者我们做自相关变换的目的,我们想要找的信号 x x x的周期,不希望它有衰减。比如正弦函数做变换之后仍是正弦函数。因此,我们可以用"biased"和"unbiased"这两个参数来调节
举个栗子
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')
加上"unbiased"参数之后,相当于把信号变为无限长之后再做自相关,这正是我们希望得到的。