Cross Correaltion的说明解释以及程序源代码

本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强

看到有的论文里,提到cross-correlation,自己不懂,就找资料看了看,然后写个小程序测试了一下。程序及源代码在这里下载http://download.csdn.net/source/242623

 

cross-correlation是互相关性的意思,是信号与系统中的内容。它是用来描述两个信号在不同的相对位置上的相似程度。cross-correlation fuction(常缩写为CCF),就是互相关性函数。CCF其实和卷积的意思比较接近。

 

我们这里讨论的卷积和互相关性是指,有限个的并且是离散的信号。假设e(t)h(t)是两个信号,它们做卷积运算记做e(t)*h(t)*表示卷积运算。对它们做CCF就是e(t)h(t)

 

e(t)h(t) = e(t)*h(-t).所以互相关和卷积很接近。我们都很清楚卷积运算和其代表的意义。卷积运算首先将h(t)沿着竖直方向的坐标轴对折,然后给定一个值u,然后h(t)在水平方向上移动u个单位,最后将e(t)h(t)对应位置的值相乘,然后叠加起来。叠加的值就是卷积函数在变量取值为u时的函数值。这是我们很清楚的事情。但是CCF计算代表的意思是什么呢?和卷积相比,CCFh多进行了一次翻转,也就是说沿着竖直方向的坐标轴翻转了两次,翻转两次的结果和不进行翻转是一样的。然后根据给定的一个值u,h信号平移,相乘和叠加。

 

我们从CCF的过程可以看到,CCF实际上做的是将原始的eh信号,根据不同的平移位置,进行计算乘积的叠加和。如果eh信号是两个完全相同的信号,唯一的区别只是h信号比e信号慢了2个单位。不管eh信号是什么样子,得到的结果肯定是CCF在取-2的时候CCF取到最大值。换句话说,表示h信号向正方向平移2个单位后与e信号的相关性最高。

 

所以我们看到CCF是寻找相关性的很有用的工具。

 

我自己写了个程序来看看效果,如下图我对e(t)h(t)信号设置如下图所示:

 

 

这里的e信号和h信号的形状和值完全一样,只是h信号比e信号提前一个单位时间,对其进行CCF输出的结果如下图:

 

 

我们看到CCF在取值为1的时候,CCF的结果最大,也就是说这时eh信号的相关性一样。根据上面eh信号的设置,我们知道eh除了位置平移了1一个单位,eh是完全一样的,所以自然结果自然是在1的时候相关性最大。

 

如果eh不是相同的两个信号,只是大致相同,eh信号如下图所示

 

这里的两个信号,大体相同,h信号比e信号早一个单位时间,对其进行CCF的结果如下图:

 

 

我们可以看到仍然是在CCF1的时候,CCF函数取到最大值。这也就是说对于两个相似的信号(但不是完全相同),CCF仍然计算出,在平移多少位置后,两个相似的信号相关性最大。CCF1的时候最大,也就是说h信号向负方向移动1个单位时,与e信号相似度最高。

 

对于周期函数信号,假定周期为T,则两个信号在平移u+nT值(n为整数)都应该是最大值,我们在程序中进行验证如下:

 

 

上面两个是周期信号eh,它们周期为4et信号相差1。在程序中进行CCF运算的结果如下图:

 

 

我们可以看到在-5,-1,3的时候,CCF取到最大值,这和我们所预料的结果一样。

That’s all for this.

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值