互相关函数python实现的三种方法

     本人前段时间在做地震波分析的时候用到互相关函数的计算,所以做了一些具体的研究和分析。用python实现信号的互相关可以有三种方法:一、直接用时域法。二、用频域法。三、python提供的numpy.correlate函数。现在把这三种方法都用于具体数据计算,并得到了几乎一致的结果。具体python源代码已经上传,可以在CSDN免费下载。

互相关函数pyhton实现的三种方法-Python文档类资源-CSDN下载

互相关函数计算的基本原理

1、对于信号 ,它们的互相关公式为:

                        

在时域方法中,我们可以将上面的公式进行离散化,就可以做具体计算。

2、但时域法的计算量比较大,我可以用频域法做计算,它的原理如下:

如果 互相关函数的傅里叶变换:

                         

根根据积分交换性质和卷积定理:

                        

它的傅里叶逆变换就是我们所需要的互相关函数:

                         

所以只要根据傅里叶变换计算出 ,就可以得到 。那么它的傅里叶逆变换就是两个信号的互相关函数。

3、python的numpy.correlate也提供的具体的计算函数,(很简单,不需要涉及细节)。

具体实现:

现在把各种方法进行的过程,用图像的方法展示一下,可以参考源代码获得更多的处理细节。

程序运行的结果如下:

[xxxxx@localhost corraltion]# ./cmpcor.py

time out Maxvalue: 98449.9225242

fft out Maxvalue: 98449.9225242

two mode max bias between using fft and using Time: 1.45519152284e-10

two mode max bias between using np.correlate and using Time: 0.0

                                                   图1  时域法和频域法实现的细节和结果 

对比用时域法和python提供的correlate计算结果完全一致,用频域法会有和时域法计算结果有极其

微小的偏差。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周洪岳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值