本人前段时间在做地震波分析的时候用到互相关函数的计算,所以做了一些具体的研究和分析。用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计算结果完全一致,用频域法会有和时域法计算结果有极其

微小的偏差。

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

  1. pca算法python代码_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  2. python定时爬虫三种方法

    python定时爬虫三种方法 第一种 import timefrom scrapy import cmdlinedef doSth():# 把爬虫程序放在这个类里 zhilian_spider 是爬虫 ...

  3. pca算法python实现_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  4. python打印菱形三种方法_用python打印菱形的实操方法和代码

    python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...

  5. Windows下安装Python 模块的三种方法

    方法一:cmd命令行窗口 首先打开windows上的cmd命令行窗口,再将目录切换到python运行的那个目录下,那怎么查看自己是在那个目录下呢? 鼠标右键点击file,依次点开就可以看到运行路径.在 ...

  6. 【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)

    目录 一.什么是滤波以及滤波的目的? 二.均值滤波(cv2.blur()) 1.原理 2.关键代码 3.封装代码 二.中值滤波(cv2.medianBlur()) 1.原理 2.关键代码 3.封装代码 ...

  7. python数据增强三种方法

    程序1: # -*- coding:utf-8 -*- """数据增强1. 色彩抖动 color jittering2. 噪声扰动 noise3. 旋转变换/反射变换 R ...

  8. python计算平方根三种方法

    第一种 a = float(input()) x = a**0.5 print(x) 第二种 import numpy as np a = float(input()) x = np.sqrt(a) ...

  9. python定时爬虫三种方法_Python爬虫定时计划任务的几种常见方法

    记得以前的Windows任务定时是可以正常使用的,今天试了下,发现不能正常使用了,任务计划总是挂起.接下来记录下Python爬虫定时任务的几种解决方法. 1.方法一.while True 首先最容易的 ...

最新文章

  1. lua 收不到服务器发来消息,lua 学习之错误处理
  2. 【UI自动化测试】Mac下进行Monkey测试
  3. 字节对齐《c和指针》笔记--包含位域结构体的内存对齐(32bit,GCC)
  4. SAP Analytics Cloud里看到的SAP C4C的query列表,是从哪里取出来的
  5. 机器学习--最基础的最常用的聚类算法
  6. AutoRun Pro Enterprise II 教程--- 教你制作软件工具箱教程清晰版(教程画面清晰,教程语音可以调高)...
  7. C语言不调用库函数画直线
  8. 指南 | Pytorch定义网络的几种方法
  9. cefSharp 开发随笔
  10. 消息称经销商10月5日将拿到iPhone 12
  11. 物以稀为贵-网管狂妄的原因
  12. 统计处理包Statsmodels: statistics in python
  13. 服创实战——小微企业跨组织人才管理系统
  14. 创业工场如何为创业推波助澜?
  15. 山西财经大学计算机专业考试题,计算机复习资料山西财经大学版.doc
  16. Linux CentOS7.0 使用root登录桌面
  17. Dynamics CRM命令栏定制基础知识及手动编辑customization.xml实例
  18. Web Framworks 的决斗
  19. 服务端返回中文乱码的分析和解决办法
  20. 区块链技术研究热点有哪些

热门文章

  1. 华为ensp ssh远程登陆实验步骤
  2. 嘉峪关哪有学计算机的,嘉峪关市计算机专业_立讯学院
  3. 转 Linux块设备加速缓存bcache和dm-cache 使用SSD来加速服务器
  4. python中int什么意思_python 的 int() 函数是什么,怎么用
  5. Layui-经典模块化前端框架
  6. css 图片平铺和不平铺
  7. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(3月19日)...
  8. 在Word中快速组合图形(转)
  9. java 当前时间推后一年_Java 获取时间日期
  10. 齐岳供应m-(L-Phe)O-C2-TPP、m-(L-Phe)O-C2-TPPZn、m-C2-(L-Phe)-C2(TPP)2、m-C2-(L-Phe)-C2(TPP)2Zn四种新式氨基酸卟啉