互相关函数
数学术语
互相关函数是信号分析里的概念,表示的是两个时间序列之间的相关程度,即描述信号x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度。描述两个不同的信号之间的相关性时,这两个信号可以是随机信号,也可以是确知信号
表达式
对于连续信号公式表示为R(τ)=(1/T)∫[f(t)g(t+τ)]dt,积分限为0至T。
对于离散信号公式表示为R(n)=(1/N)∑[x(m)y(m+n)]其中m从0到N-1变化。
特殊地,若离散信号为二进制信号,互相关函数应表示为R(n)=(A-D)/(A+D)其中A、D分别为x序列与循环移n位后的y序列之间相同的码元数和不同的码元数。
确定信号
定义
令f1(t), f2(t) 为能量信号,一般情况可以是时间的复函数,称:
为f1(t)和f2(t) 的互相关函数。
应用
互相关函数的上述性质在工程中具有重要的应用价值。
(1) 在混有周期成分的信号中提取特定的频率成分。
(2) 线性定位和相关测速
(3) 在图像配准中的应用(原理介绍):
根据傅里叶变换定理
根据互相关函数的定义
卷积定理可知
其中 ,反傅里叶变换可得
由自相关的性质可知,函数的峰值在原点处,因此的峰值出现在点处,也就是函数和的偏移量
互相关函数的性质
1.R12(t)=R21(-t)
2.对于1、2同周期的函数,相关函数具有相同的周期特性
自相关函数
1. 首先说说自相关和互相关的概念。
这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度。自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;互相关函数给出了在频域内两个信号是否相关的一个判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。它能用来确定输出信号有多大程度来自输入信号,对修正测量中接入噪声源而产生的误差非常有效。
事实上,在图象处理中,自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积;设两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。
那么,如何在matlab中实现这两个相关并用图像显示出来。
dt=.1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(b*dt,a)
上面代码是求自相关函数并作图,对于互相关函数,稍微修改一下就可以了,即把[a,b]=xcorr(x,'unbiased');改为[a,b]=xcorr(x,y,'unbiased');便可。
2. 实现过程:
在Matlab中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法(注:此公式仅表示形式计算,并非实际计算所用的公式)。当然也可以直接采用卷积进行计算,但是结果会与xcorr的不同。事实上,两者既然有定理保证,那么结果一定是相同的,只是没有用对公式而已。下面是检验两者结果相同的代码:
dt=.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。
参考资料
最新修订时间:2024-05-28 15:30
目录
概述
表达式
确定信号
参考资料