使用python对测量的正弦波进行插值

问题描述

我有 2 个采样的正弦波作为 DSO 的测量结果。 DSO 的采样率为 160 GSa/s,我的信号为 60 GHz。我需要找到两个正弦波之间的相位差。两者频率相同。但是,采样率不足以准确确定相位。有没有办法对测量信号进行插值,得到更好的正弦波,然后计算相位差?

解决方法

您可以fit to sine functions,但对于相位差(delta phi=2pi 频率 delta t),检测和比较零交叉点(相应可能的恒定偏移)就足够了),可以通过类似

的插值从您的系列片段中找到
w=6.38    # some radian frequency
t = np.linspace(0,0.5)   # time interval containing ONE zero-crossing
delta_phi=0.1   # some phase difference
x = np.sin(w*t-delta_phi)    # x(t)
f = interpolate.interp1d(x,t)     # interpolate t(x),default is linear 
delta_t = f(0)    # zero-crossing time referred to t=0
delta_phi_detected= w*delta_t

您需要关联信号的两个相邻零交叉点。

或者,您可以通过将信号和数值积分相乘获得平均值 T 收敛到 (T/2)cos(delta_phi),如果两个信号都具有(或被制成)零均值。