两个相同频率正弦波之间的相位差

时间:2017-04-06 19:03:22

标签: matlab vector waveform sine phase

我有两个矢量代表两个不同的信号,每个信号都是一个频率相同的正弦波。我尝试过互相关,傅立叶变换,希尔伯特变换等,但没有任何东西在特定频率下返回正确的理论值(以弧度表示)(应为负数)。 Matlab中是否有任何方法可以计算出两个频率相同的正弦波的相位差?

注意:我可以访问两个信号的频率和幅度,如果需要,我可以发布一些代码。

1 个答案:

答案 0 :(得分:1)

假设s1s2是您的等序正弦波,您可以像acos( dot(a,b) / (norm(a)*norm(b)) )一样轻松地评估它们之间的相位差(弧度中的绝对值)。

x = 0:.001:100;
omega = 2*pi*100;
phi = pi/6;
s1 = sin(omega*x);
s2 = sin(omega*x - phi);
phase_diff = acos( dot(s1,s2) / (norm(s1)*norm(s2)) );