网址:https://ww2.mathworks.cn/help/signal/ug/cross-correlation-of-phase-lagged-sine-wave.html
描述:本案例由1个示例构成
-
针对以上案例,采用Python语言实现。
-
在理论上两个同频率正弦信号的互相关也以相同的频率震荡。由于样本互相关序列在较大滞后时使用的样本越来越少,样本互相关序列也以相同的频率振荡,但振幅随着滞后的增加而衰减。 创建两个频率为$2π/10 rad/sample$的正弦波。其中一个正弦波的起始相位为0,另一个正弦波的起始相位为-π。在相位滞后为π的信号中添加$N(0,0.25^2)$的白噪声。
python
import numpy as np
import matplotlib.pyplot as plt
python
t = np.linspace(0,99,100)
x = np.cos(2*np.pi*1/10*t)
y = np.cos(2*np.pi*1/10*t-np.pi)+0.25*np.random.randn(len(t))
得到正弦波两个周期(10个样本)的样本互相关序列。绘制互相关序列,标记两个正弦波之间的已知滞后(5个样本)。
python
corr = np.correlate(x,y,'same')
corr /= np.max(corr)
plt.stem(corr[60:81])
plt.xlim([0,20])
plt.ylim([-1,1])
plt.plot([5,5],[-1,1],'r')
[<matplotlib.lines.Line2D at 0x2253676d2d0>]
可以看到,交叉相关序列在滞后5时如预期的那样达到峰值,并以10个样本的周期振荡。