自相关函数表达了同一过程不同时刻的相互依赖关系,而互相关函数表示不同过程的某一时刻的相互依赖关系。
自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;
互相关函数给出了在频域内两个信号是否相关的一个判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。
在图象处理中,自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)f(-t),其中表示卷积;设两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。
互相关函数是描述随机信号X(t),Y(t)在任意两个不同时刻t1,t2,的取值之间的相关程度.
自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2,的取值之间的相关程度.
自相关(Auto-correlation)
是对信号相关程度的一种度量,也就是说自相关可以看作是信号与自身的延迟信号相乘后的乘积进行积分运算。
在某些领域,自相关函数等同于自协方差。
随机信号的自相关函数与其功率谱是傅氏变换对(随机信号无法得到具体的函数表达式,只有其统计信息),通过对接受信号的自相关运算可以进行频谱分析。同时,自相关在信号检测中也有很重要的作用,是在误码最小原则下的最佳接收准则。
同一时间函数在瞬时t和t+a的两个值相乘积的平均值作为延迟时间t的函数,是信号与延迟后信号之间相似性的度量。延迟时间为零时,即为信号的均方值,此时它的值最大。
用途:
自相关函数可以用来计算周期信号的周期。
互相关(Cross-correlation)
是统计学中用来表示两个随机矢量 X 和 Y 之间的协方差 cov(X, Y),以与矢量 X 的“协方差”概念相区分,矢量 X 的“协方差”是 X 的各标量成分之间的协方差矩阵。描述两个不同的信号之间的相关性的函数,这两个信号不一定是随机信号。
在信号处理领域中,互相关(有时也称为“互协方差”)是用来表示两个信号之间相似性的一个度量,通常通过与已知信号比较用于寻找未知信号中的特性。它是两个信号之间相对于时间的一个函数,有时也称为滑动点积,在模式识别以及密码分析学领域都有应用。
两个信号的互相关函数的频域等于X信号频域的共轭乘以Y信号的频域。
互相关函数的上述性质在工程中具有重要的应用价值。
(1) 在混有周期成分的信号中提取特定的频率
(2) 线性定位和相关测速
(3) 图像配准
(4) 通过不同的传感器检测不同方向到达的声音信号,通过对不同方位传感器间的信号进行互相关可计算声音到达不同传感器间的时延。
Matlab中实现
求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法(注:此公式仅表示形式计算,并非实际计算所用的公式)。也可以直接采用卷积进行计算,但表面上看,结果会与xcorr的不同。事实上,两者既然有定理保证,那么结果应该相同。所见的不同,主要是没有用对公式。Matlab自带的xcorr函数的计算结果是没有除以N(信号长度)的结果。下面是检验两者结果相同的代码:
dt=0.1;
t=[0:dt:100];
x=3*sin(t);
y=cos(3*t);
subplot(3,1,1);
plot(t,x);
subplot(3,1,2);
plot(t,y);
[a,b]=xcorr(x,y);
subplot(3,1,3);
plot(b*dt,a);
yy=cos(3*fliplr(t)); % or use: yy=fliplr(y);
z=conv(x,yy);
pause;
subplot(3,1,3);
plot(b*dt,z,'r');
即在xcorr中不使用scaling,结果即为正确且相同的。