迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的互相关

作者:迹忆客 最近更新:2023/06/27 浏览次数:

互相关是一种重要的信号处理方法,用于分析具有不同滞后的两个信号之间的相似性。 您不仅可以了解两个信号的匹配程度,还可以获得它们最相似的时间点或索引。

本文将讨论在 Python 中处理互相关的多种方法。


Python 中的互相关

我们可以单独使用Python来计算两个信号的互相关。 我们可以使用下面的公式并将其转换为 Python 脚本。

公式:

R_{fg}(l) = \sum_{n=0}^{N} f(n)g(n+l)

示例代码:

sig1 = [1,2,3,2,1,2,3]
sig2 = [1,2,3]

# Pre-allocate correlation array
corr = (len(sig1) - len(sig2) + 1) * [0]

# Go through lag components one-by-one
for l in range(len(corr)):
    corr[l] = sum([sig1[i+l] * sig2[i] for i in range(len(sig2))])
print(corr)

输出:

[14, 14, 10, 10, 14]

现在,让我们浏览一下使用互相关函数的多个 Python 包。

使用 NumPy 模块

用于数值计算的标准 Python 模块称为 NumPy。 NumPy 具有内置的互相关技术并不奇怪。 如果我们没有安装NumPy,我们可以使用以下命令安装它:

pip install numpy

示例代码:

import numpy as np

sig1 = [1,2,3,2,1,2,3]
sig2 = [1,2,3]

corr = np.correlate(a=sig1, v=sig2)

print(corr)

输出:

[14 14 10 10 14]

使用 SciPy 模块

当 NumPy 失败时,SciPy 是要考虑的主要包。 它包括许多工程和科学学科的实用技术。

但首先我们必须导入互相关相关的信号处理软件。 然后,信号在开始和结束时通过 SciPy 互相关自动填充。

因此,与我们的纯 Python 代码和 NumPy 模块相比,它为互相关提供了更广泛的信号响应。 因此,我们删除了这些填充组件,以使结果在我们的测试用例中相同。

如果我们没有安装SciPy,我们可以使用以下命令安装它:

pip install scipy

示例代码:

import scipy.signal

sig1 = [1,2,3,2,1,2,3]
sig2 = [1,2,3]

corr = scipy.signal.correlate(sig1, sig2)

# Removes padded Correlations
corr = corr[(len(sig1)-len(sig2)-1):len(corr)-((len(sig1)-len(sig2)-1))]

print(corr)

输出:

[14 10 10]

上一篇:使用 Python Timedelta 月份计算日期

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Python Timedelta 月份计算日期

发布时间:2023/06/27 浏览次数:128 分类:Python

在本篇文章中,我们将通过 timedelta 学习如何在 Python 中使用日期时间。 我们将了解如何计算当前日期或任何其他日期六个月后的日期。

Python MRO(方法解析顺序)

发布时间:2023/06/27 浏览次数:182 分类:Python

多重继承意味着单个子类可以继承多个类,并且子类将被授权访问属性和函数,除非它们不是该特定类的私有属性和函数。 MRO 技术用于搜索正在执行的类的顺序。在这篇文章中,我们将学习

Python 获取主目录

发布时间:2023/06/27 浏览次数:146 分类:Python

本篇文章将介绍使用 Python 中的 os.path.expanduser 或 pathlib 库获取主目录的路径。使用 Python 中的 os.path.expanduser 模块获取主目录

逐行分析 Python 代码

发布时间:2023/06/26 浏览次数:115 分类:Python

本文介绍了如何逐行分析 Python 代码并获取有关代码执行的有用信息。首先,我们简单介绍一下profiling; 然后,我们将讨论何时使用逐行分析比使用函数基础分析更好。

Python 中的 MIMEMultipart

发布时间:2023/06/26 浏览次数:186 分类:Python

在本文中,我们将了解如何在 Python 及其 MIME(多用途互联网邮件扩展)模块的帮助下发送带有附件的电子邮件的有效方法。Python 的 MIMEMultipart、MIMEText 和 MIMEBase 模块

Python 中的自动 ARIMA

发布时间:2023/06/26 浏览次数:127 分类:Python

在本文中,我们将了解 Python 中的 Auto ARIMA 及其工作原理。Python 中的自动 ARIMA pmdarima 库中的 auto_arima() 函数有助于确定 ARIMA 模型的最佳参数,并提供拟合的 ARIMA 模型作为结果。

Python 中的方差膨胀因子

发布时间:2023/06/26 浏览次数:93 分类:Python

本文介绍了方差膨胀因子 (VIF) 及其在检测有影响的观测值方面的性能,并演示了如何使用 statsmodels 在 Python 中使用 VIF。Python 中的方差膨胀因子

在 Python 中跨多个文件使用全局变量

发布时间:2023/06/26 浏览次数:92 分类:Python

这个简单的指南是关于在 Python 中跨多个文件使用全局变量的。 但在进入主题之前,我们先简要了解一下全局变量及其在多个文件中的使用。Python 中的全局变量

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便