第二节:FSK 模拟收发 视频 GitHub 码云 | 2026-03-13 10:59 | 阅读: 2 ### 一、BFSK 模拟收发 FSK 模拟发射器和接收器的流程图为: </br> ![][p1] #### 1)变量和参数 在本教程中,我使用的是 **Baudot 码无线电传(Radioteletype)** 的波特率。其定义为:位时间(bit time)为 **22 毫秒**,因此波特率设为 $1 / 0.022$ ,即 **45.4545**。 重复因子(Repeat factor)计算公式为:`(int)(samp_rate * 0.022)`。 在此流图中,标准的 RTTY 信号频率:**2295Hz(传号/Mark=1)** 和 **2125Hz(空号/Space=0)**,是由 VCO(压控振荡器)生成的。具体计算过程如下: * **VCO 灵敏度(VCO Sensitivity)**:选择 **2500Hz** 作为输入为 +1 时的满量程频率(vco_max)。计算公式为:$(2 * \pi * 2500 / 1) = 15708$。任何大于 2295Hz 的频率都可以使用(我们这里选择 2500Hz)。 * **输入数值**:观察虚拟源 "xmt_data" 的输出,Mark 等于 **+1.0**,Space 等于 **0.0**。 * **VCO 偏移量(vco_offset)**:`space / vco_max` $\Rightarrow$ **0.85**。 * **输入振幅(inp_amp)**:`(mark / vco_max) - vco_offset` $\Rightarrow$ **0.068**。 * **空号频率(Space frequency)**:通过 $((0.0 * 0.068) + 0.85)$ 产生,即 $(2125 / 2500)$。 * **传号频率(Mark frequency)**:通过 $((1.0 * 0.068) + 0.85)$ 产生,即 $(2295 / 2500)$。 **频率偏移 FIR 滤波器(Frequency Xlating FIR Filter)** 的抽头参数为:`firdes.low_pass(1.0, samp_rate, 1000, 400)`。请注意,目标信号的频偏(deviation)为 **170Hz**,因此该滤波器可以有效抑制相邻信道的信号。 </br> #### 2)数据流描述 **发射机** 按照流程图信号路径,随机源生成 0 到 255 之间的字节值。解包 K 位模块将输入的每一位生成为一个单独的字节,其值位于最低有效位。由于没有硬件参与,因此使用节流模块来限制流经系统的流量。 之后 Multiply Const -> Add Const -> VCO 实现将数据 0 转换为空号频率,将数据 1 转换为传号频率,最终形成 `fsk_out` 数据。 其中 repeat 是为了实现 22ms 的位时间,进而让波特率为 `1/0.022`。其本质是:将 1bit 数据产生持续 22ms 的频率信号。 **接收机** 频率偏移 FIR 滤波器将接收信号移至中心频率附近——该中心频率位于标记频率和间隔频率的中间。 虽然对于这种没有噪声的简单模拟来说,静噪功能并非真正必要,但在现实世界中接收 RTTY 信号时,静噪功能是必需的。 正交解调模块产生一个信号,当输入频率高于零时为正,当输入频率低于零时为负。当该信号输入到二进制切片器时,输出为 1 或 0 的字节。这就是我们接收到的数据(解包后)。 已添加QT GUI 眼图接收器。它用于在调谐实时信号时确定正确的中心频率。 </br> #### 3)测试 我们如何确定这是原始比特流?为了验证这一点,我们将它与输入比特流进行比较。由于这是一个仿真环境,我们可以访问已发送的数据(流 ID:“xmt_data”),因此可以进行此操作。直接比较这两个数据流可以发现,接收到的信号比输入信号慢了若干比特,这是因为发送器和接收器链路中包含许多模块和滤波器,这些模块和滤波器会造成信号延迟。为了补偿延迟,我们需要使用“延迟”模块将发送的比特延迟相同的比特数。然后,您可以调整延迟值以找到正确的延迟,并观察比特是如何同步的。您还可以将一个信号从另一个信号中减去,以查看它们何时同步,因为此时输出将为 0。请注意,延迟需要几秒钟才能生效,之后才能在输出中看到变化。正确的延迟值约为 145。 ![][p2] </br> ### 参考链接 [[1]. GNURadio Wiki —— Simulation example: FSK][#1] [#1]:https://wiki.gnuradio.org/index.php/Simulation_example:_FSK [p1]:https://tuchuang.beautifulzzzz.com:3000/?path=202601/bfsk_grc.png [p2]:https://tuchuang.beautifulzzzz.com:3000/?path=202601/FSK_example_out.png