我有两个矢量代表两个不同的信号,每个信号都是一个频率相同的正弦波 . 我尝试过互相关,傅立叶变换,希尔伯特变换等,但没有任何东西在特定频率下返回正确的理论值(以弧度表示)(应为负数) . Matlab中是否有任何方法可以计算出频率相同的两个正弦波的相位差?
注意:我可以访问两个信号的频率和幅度,如果需要,我可以发布一些代码 .
假设 s1 和 s2 是您的等序正弦波,您可以像acos( dot(a,b) / (norm(a)*norm(b)) )一样轻松地评估它们之间的相位差(弧度绝对值) .
s1
s2
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)) );
1 回答
假设
s1
和s2
是您的等序正弦波,您可以像acos( dot(a,b) / (norm(a)*norm(b)) )一样轻松地评估它们之间的相位差(弧度绝对值) .