我目前正在 GNU Radio 中使用 BPSK 载波相位和频率恢复。我已经能够使用基于 control_loop 类(该类实现 PLL)的科斯塔斯环和频率锁定环(四载波采集)。到目前为止,我从不需要配置 control_loop 类,因为包装类(Costas 和 FLL)默认情况下会这样做。如下所示,控制回路 (PLL) 基于比例加积分器。控制循环构造函数采用三个变量 control_loop(loop_bw, max_freq, min_freq)。max_ 和 min_freq 变量用于将频率(在循环的积分器部分)保持在 max_freq 和 min_freq 之间。我查看了 Costas 和 FLL 源代码并了解了它们的配置方式。
让我们从科斯塔斯循环开始。
- 循环配置为 max_freq/min_freq 分别为 +1 和 -1
- 输入到控制回路的相位误差,即 (Φ_i[n] - Φ_o[n]) 被限制在 -1 和 1 之间。
- 在滤除相位误差后,输出相位即 Φ_o[n] 被包裹(在 2pi 和 -2pi 之间)。频率被强制进入 max_freq 和 min_freq [1,-1] 区域。
使用 FLL,
- 该循环被配置为分别具有 (2*PI/samples_per_symbol) 和 -(2*PI/samples_per_symbol) 的 max_freq/min_freq。
- 与Costas 环不同,输入到控制环的相位误差,即Φ_i[n] 是无界的。
- 与Costas 一样,输出相位即Φ_o[n] 被包裹(在2pi 和-2pi 之间)。频率被强制进入 (2*PI/samples_per_symbol) 和 -(2*PI/samples_per_symbol) 区域的 max_freq/min_freq。
我基本上有三个问题
- 为什么Costas环路的输入相位误差限制在[1,-1]区域?
- 如何选择环路积分器部分的频率区域 [max_freq 和 min_freq]?为什么我们需要限制频率范围?
- 为什么输出相位 Φ_o[n](在 Costas 和 FLL 中)包裹在 -2PI 和 2PI 之间?
我添加了指向 Costas 和 FLL 块的源代码的链接
- 科斯塔斯循环:https ://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/costas_loop_cc_impl.cc
- FLL 带边:https ://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/fll_band_edge_cc_impl.cc
问候,M。