You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GNU Radio中计算两信号源相位差?配置正确性咨询

GNU Radio计算正弦波与余弦波相位差的正确做法

当前配置存在错误

直接使用Multiply模块将正弦波与余弦波相乘的方式,无法正确计算两者的相位差。对于同频的正弦信号$A\sin(\omega t+\phi_1)$和余弦信号$B\cos(\omega t+\phi_2)$,直接相乘的结果为$\frac{AB}{2}[\sin(2\omega t+\phi_1+\phi_2)+\sin(\phi_1-\phi_2)]$——即使是标准正弦与余弦(固定90度相位差),该结果也包含高频交流分量,且你的Time Sink显示恒定0,本质是这种方法从逻辑上就不适合相位差计算。

正确的模块配置方案

计算同频信号相位差,需采用鉴相器的思路,具体模块连接步骤如下:

  • 生成同频的正弦波与余弦波:使用两个Signal Source模块,分别选择Sine和Cosine类型,确保两者频率参数完全一致
  • 统一信号形式:对余弦波使用Phase Shift模块移相-90度,或通过Hilbert变换模块将其转换为正弦信号形式
  • 相乘并提取直流分量:将转换后的信号与原始正弦波输入Multiply模块,输出接入Low Pass Filter(截止频率需远低于信号频率),滤除2倍频的高频成分,得到与相位差相关的直流分量
  • 转换为相位差角度:将低通滤波器的输出接入Arctangent模块,把直流值转换为对应的相位差角度
  • 输出结果:将Arctangent模块的输出连接到Time Sink,即可看到恒定的相位差(标准正弦与余弦的相位差为90度/π/2弧度)

另外还有更简洁的方法:将正弦波作为实部、余弦波作为虚部组成复信号,通过Complex to Mag/Phase模块直接提取两者的相位值,将两个相位值相减即可得到相位差。

关键注意事项

  • 必须保证两个信号的频率完全一致,若存在频率偏差,相位差会随时间线性变化
  • 低通滤波器的截止频率需合理设置,确保有效滤除高频分量,保留直流成分

内容的提问来源于stack exchange,提问作者Roby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 16:20:28