信号(互)相关及其应用 | 您所在的位置:网站首页 › 互相关函数有什么用途 › 信号(互)相关及其应用 |
原文地址: http://blog.csdn.net/xiahouzuoxin/article/details/19286077 在信号处理中,经常要研究两个信号的相似性,或者一个信号经过一段时间延迟后自身的相似性,以便实现信号检测、识别与提取等。 可用于研究信号相似性的方法称为相关,该方法的核心概念是相关函数和互相关函数。 1 相关函数定义无限能量信号,信号x(n)与y(n)的互相关函数定义为
等于将x(n)保持不动,y(n)左移m个抽样点后,两个序列逐点对应相乘的结果。
当x(n)与y(n)不是同一信号时,rxy中的x、y顺序是不能互换等价的。
当x(n)与y(n)为同一信号时,记
为信号x(n)的自相关函数在m时刻的值。自相关函数反映了x(n)和其自身发生m个采样点平移后的相似程度。 可以想象,当m=0时,即原信号不做任何平移,一一对应的叠加时rx(m)值最大,这个结论很重要。
对于有限能量信号或周期信号,设信号为复信号,自相关函数和互相关函数可表达为
注意: (1)m的取值范围可以从-(N-1)到(N-1),对于N点信号,rx共可计算得2N-1点相关函数结果值 (2)对于给定的m,因为实际信号总是有限长的N,所以要计算rx(m),n+m=N-1,因此实际写程序时注意n的实际可取长度为N-1-m (3)当m值越大时,对于N点有限长信号,可用于计算的信号长度越短,计算出的rx(n)性能越差,因此实际应用中常令m0; k--) { /* -(N-1)~0 PART */ kk = n-1-k; r[kk].real = 0.0; r[kk].imag = 0.0; for (j=k; j xcorr(x,y) ans = 30.0000 31.0000 37.0000 42.0000 54.0000 37.0000 24.0000 11.0000 4.0000 结果一致,只是存储顺序相反。 3 使用FFT计算相关函数 采用暴力的按定义计算信号相关的方法的计算复杂度约O(N^2),当数据点数N很大时,尤其在DSP上跑时耗时过长,因此采用FFT和IFFT计算互相关函数显得尤为重要。 那么,互相关函数与FFT之间又是一种什么样的关系呢? 设y(n)是x(n)与h(n)的互相关函数, 即
则,
诶,这不对啊,不是说两个信号时域的卷积才对应频域的乘积吗?难道时域的互相关和时域的卷积等价了不成?? 这里说明下,通过推倒可以得到,相关于卷积的关系满足:
不管如何,与直接卷积相差一个负号。这时,看清楚了,相关函数在频域也不完全是乘积,是一个信号的共轭再与原信号乘积,这就是与“时域卷积频域相乘不同的地方”。 所以,请记住这个有用的结论, 两个信号的互相关函数的频域等于X信号频域的共轭乘以Y信号的频域。
我们就有计算互相关的新方法了:将信号x(n)和h(n)都进行FFT,将FFT的结果相乘计算得互相关函数的FFT,在进行逆变换IFFT得到互相关函数y(m)。 [cpp] view plain copy print ?![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |