python correlate_如何解释numpy.correlate和numpy.corrcoef值?

numpy.correlate用于模式匹配和频率检测。在模式匹配中,找到最大相关值的索引揭示了模式的位置。在频率检测中,通过对自相关函数的峰值分析,可以确定信号的频率。例如,通过找到自相关函数第二次最大值的索引,可以计算出信号的周期性。
摘要由CSDN通过智能技术生成

目前我只能对numpy.correlate发表评论。它是一个强大的工具。我用它有两个目的。首先是在另一个模式中找到一个模式:import numpy as np

import matplotlib.pyplot as plt

some_data = np.random.uniform(0,1,size=100)

subset = some_data[42:50]

mean = np.mean(some_data)

some_data_normalised = some_data - mean

subset_normalised = subset - mean

correlated = np.correlate(some_data_normalised, subset_normalised)

max_index = np.argmax(correlated) # 42 !

第二个用途(以及如何解释结果)是用于频率检测:hz_a = np.cos(np.linspace(0,np.pi*6,100))

hz_b = np.cos(np.linspace(0,np.pi*4,100))

f, axarr = plt.subplots(2, sharex=True)

axarr[0].plot(hz_a)

axarr[0].plot(hz_b)

axarr[0].grid(True)

hz_a_autocorrelation = np.correlate(hz_a,hz_a,'same')[round(len(hz_a)/2):]

hz_b_autocorrelation = np.correlate(hz_b,hz_b,'same')[round(len(hz_b)/2):]

axarr[1].plot(hz_a_autocorrelation)

axarr[1].plot(hz_b_autocorrelation)

axarr[1].grid(True)

plt.show()

找到第二个峰的指数。从这里你可以找到频率。first_min_index = np.argmin(hz_a_autocorrelation)

second_max_index = np.argmax(hz_a_autocorrelation[first_min_index:])

frequency = 1/second_max_index

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值