python 电压 谐波_python – 找到两个(非谐波)波之间的相位差

这篇博客通过Python的scipy库展示了如何通过互相关方法计算两个非谐波波形之间的相位差。博主通过加载数据文件,对数据进行标准化处理,并通过添加人工相位偏移验证了方法的有效性。此外,还提供了示例代码,包括如何处理带有噪声的非谐波信号,并使用PyX库绘制了相关图表。
摘要由CSDN通过智能技术生成

也许你正在寻找互相关:

scipy.​signal.​signaltools.correlate(A, B)

互相关峰值的位置将是相位差的估计.

编辑3:现在更新我已经查看了真正的数据文件.找到相移为零的原因有两个.首先,你的两个时间序列之间的相移真的是零.你可以清楚地看到这一点,如果你在水平放大的matplotlib图表.第二,首先对数据进行正则化(最重要的是减去平均值)是重要的,否则在阵列末端的零填充效应会在互相关中消除实际信号.在下面的例子中,我通过添加一个人工移位来验证我是否找到了“真正的”峰值,然后检查我正确地恢复它.

import numpy, scipy

from scipy.signal import correlate

# Load datasets, taking mean of 100 values in each table row

A = numpy.loadtxt("vb-sync-XReport.txt")[:,1:].mean(axis=1)

B = numpy.loadtxt("vb-sync-YReport.txt")[:,1:].mean(axis=1)

nsamples = A.size

# regularize datasets by subtracting mean and dividing by s.d.

A -= A.mean(); A /= A.std()

B -= B.mean(); B /= B.std()

# Put in an artificial time shift between the two datasets

time_shift = 20

A = numpy.roll(A, time_shift)

#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值