GNU Radio Companion进行FM接收

2021-01-31 19:45:16

“ FM –完全没有静电”开始了爵士摇滚乐队Steely Dan在70年代演唱的歌曲。本文介绍如何结合硬件,软件和PC来构建软件定义的无线电(SDR),以接收FM广播等。

FM频带中的站通常会广播复合基带信号,该信号可能包括单声道和立体声语音和音乐,辅助通信授权(SCA)服务(例如一次提供电梯音乐)和无线电数据系统(RDS)服务(提供站)和编程信息),其中包括一些可能性。

需要适当的硬件来构造软件定义的无线电。为了让您起步,这里讨论了两种选择-廉价和适中的价格,但还有许多其他可能的选择。

从价格便宜的方面来看,很难将售价约25美元的USB加密狗与Rafael Micro的高性能R820T数字硅调谐器与提供8位分辨率的Realtek的RTL2832u解调器/ USB 2.0接口相结合。 R820T的数据表中列出了调谐器的频率范围是42-1002 MHz,但大多数调谐器的工作频率是24 MHz至1.8 GHz。最大采样率约为2.56 MS / s,这将提供2.56 MHz的最大接收器带宽。 (这就是本文中的设计全部使用2.4 MS / s采样率的原因。)

大多数加密狗上的天线端口是MCX或SMA,因此您可能需要一个适配器才能连接到天线。 SDRPlay的RSP1A售价约为100美元,是功能更强大,成本更高的硬件解决方案的一个示例。 RSP1A的覆盖范围是1 kHz至2 GHz,分辨率高达14位,采样率高达10.66 MS / s。这相当于10.66 MHz的最大接收器带宽。

参考资料部分提供了指向该硬件的多个供应商的链接。就天线而言,在城市地区,FM偶极子或什至几英尺长的电线应足以接收本地电台。如果您住在更偏远的地区,则可能需要高架的外部FM天线或老式的VHF电视天线才能获得令人满意的接收效果。

恢复这些信号所需的电子硬件的复杂性和复杂性超出了大多数实验人员的能力范围。幸运的是,现代数字信号处理软件,功能强大的个人计算机(PC)和廉价的软件定义的无线电硬件可以轻松组合在一起,以在这些广播中接收信息。

GNU Radio是一个免费的开源软件开发环境,它提供实现许多信号处理功能的数字信号处理模块,其中包括软件定义无线电(SDR)所需的功能。

GNU Radio Companion(GRC)是GNU Radio的图形工具,它使用称为流程图的可视描绘实现数字信号处理。 GRC易于使用且易于学习,因为有一些指导性的教程提供了入门信息(请参阅参考资料)。

可以通过从gnuradio wiki下载GRC来安装GRC,也可以按照SDRPlay在其网页的“下载”部分中提供的Windows工作流程进行安装。 (我使用了从SDRPlay站点下载的GRC 3.17.13.5作为本文的流程图。)

数字信号处理需要大量计算,因此您可能需要双核处理器,以便GRC平稳运行。作为参考,Dell Latitude笔记本电脑中的Intel CoreTMi5处理器可以处理我为本文开发的流程图,而不会出现明显的延迟。

在美国,FM广播频段位于无线电频谱的VHF部分,在88 MHz至108 MHz之间分配了100个频道,这些频道的宽度为200 kHz(0.2 MHz)。第一个通道的中心频率是88.1 MHz,而最后一个通道的中心频率是107.9 MHz。 100个频道之间有99个空格;在讨论接收机调谐时将应用的事实。 FM载波的频率偏差限制为最大±75 kHz,以便在相邻通道之间保持25 kHz的保护频带。有趣的事实:每个FM频道都以0.1、0.3、0.5、0.7或0.9的奇数十进制扩展名结尾,这是因为第一个频道的十进制扩展名是0.1 MHz,并且频道之间的间隔为0.2 MHz。

让我们看一下在FM频道中传输的复合基带信号。图1显示了音频和数字信号,它们加在一起形成了FM载波发送的复合信号。

第一个频率成分— 30 Hz–15 kHz —是单声道音频通道,由左右两个(L + R)音频通道之和组成。 1961年开始进行高保真立体声广播时,左右声道的总和保持与现有单调FM接收机的兼容性。

接下来出现的19 kHz导频音的目的是指示立体声广播的存在,并提供可以使频率翻倍至38 kHz以对其进行解调的相干基准。

下一个频率分量-范围从23-53 kHz并以38 kHz为中心-是双边带抑制的载波调制,由左和右(LR)音频通道的差异组成。通过将该频率分量乘以从立体声导频音获得的38 kHz信号,可以解调该频率分量(将频率转换为基带)。

RDS信息在57 kHz子载波上广播,这是19 kHz立体声导频音的三次谐波。 57 kHz子载波的正好48个周期用于使用差分曼彻斯特编码对每个位进行编码,以提供每秒57000⁄48 = 1187.5位的数据速率-刚好足以为收听者编码歌曲名称和电台信息。

最终,SCA子载波可以位于67 kHz和92 kHz(未显示),并使用窄带频率调制传输音频信息(请参见侧栏)。

现在,我们已经确定了复合基带中的主要感兴趣信号,是时候实施SDR,使我们能够接收它们了。

在开始之前,必须先对采样率发表一些评论。 SDR源块使用的2.4 MS / s采样率(由变量samp_rate设置)必须最终降低(或降低)为适合PC声卡的采样率(通常为36或48 KS / s)连接到音频接收器块。对于每个块,采样率必须保持等于或高于该块针对复杂样本(图2中带有蓝色端口的块)正在处理的信号的带宽。

采样率必须是我们为真实采样(带有橙色端口的块)正在处理的信号带宽的两倍或更高。采样率越高,对PC的处理需求就越高,因此在满足信号带宽要求的同时尽可能降低采样率非常重要。

作为热身练习,让我们构建一个GRC(GNU Radio Companion)流程图来接收单调FM广播(图2)。该流程图同时显示了RTL-SDR和RSP1源模块,但实际上,仅需要与所选硬件相对应的源模块。在流程图中,另一个源块被忽略或被禁用(显示为灰色)。 (注:添加RTL-SDR源块之后,在“设备参数”中,您可能需要添加rtl = 0,以便GRC标识与RTL-SDR硬件的连接。)

我认为GNU Radio Companion(GRC)最有用的功能之一就是能够记录和播放示例数据文件。我要提供两个我已经记录并上传的文件,其中包含RDS和SCA副载波传输以及标准立体声编程。

请务必注意,大多数广播节目中包含的材料均受版权保护。幸运的是,根据美国版权法的合理使用原则,可以将少量受版权保护的材料用于非商业性教育目的,在这种情况下似乎是这样。

准备播放样本数据文件了吗?您需要做的就是遵循以下四个步骤:

禁用(或删除)SDR-RTL或RSP1A Source块,并将其替换为File Source块。

打开“文件源”块并浏览以找到并从步骤#1中选择文件。

执行流程图。 GRC将从文件而不是从硬件播放示例数据。

请注意,“文件源”块具有“重复”选项,因此文件到达文件末尾时将自动重复。

添加RSP1源块后,在“ LNA开/关”框中,将“ 0”更改为“ True”或“ False”以启用或禁用LNA,并更正添加此块时出现的错误。 (这不适用于RSP1A。我有RSP1,但现在有RSP1A。)两个GUI滑块用于设置频率和增益的变量值,以控制接收的频率和音频音量。

图3显示了用于根据前面讨论的FM广播频段的低频和高频以及频道间隔来设置可变频率的值的滑块。

图4显示了用于设置控制音量的可变增益值的滑块。另外,当接收机工作时,请不要忘记将PC上的扬声器音量设置为适当的水平。

返回图2中的GRC流程图,标题为RF Spectrum的FFT图显示了所选SDR硬件接收到的频谱。由于采样率为2.4 MS / s,并且采样很复杂,因此该FFT显示以频率变量freq值为中心的2.4 MHz频谱带宽。 RTL-SDR源模块还馈入一个低通滤波器模块,该模块用于选择所需的通道并将采样率降低至480 KS / s。

WBFM模块恢复复合基带信号,并将其发送到第二个低通滤波器模块,以恢复单声道音频。该模块的增益由可变增益控制,该模块将采样率进一步降低至48 KS / s。

标题为“基带频谱”的第二个FFT图显示了WBFM模块恢复的复合基带频谱。由于采样率为480 KS / s,并且采样为实数,因此此FFT图显示了基带频谱的240 kHz带宽。最后,FM Deemphasis模块根据标准FM协议对高频进行去加重处理,并将其发送到Audio Sink模块,从而通过将其发送到PC的声卡使它们可听见。

标题为“音频频谱”的第三个FFT图显示了单声道音频信号的频谱。由于采样率为48 KS / s,并且采样为实数,因此此FFT图显示了单声道音频频谱的24 kHz带宽。笔记本块使三个FFT图中的每一个都使用选项卡显示,以便在接收机操作期间方便查看。

我认为在接收过程的每个步骤中显示实际信号的能力使GRC在理解SDR和无线电理论方面具有无价的价值。图5描绘了在接收机工作期间捕获的示例复合基带频谱,并标识了我们到目前为止在本文中已经讨论的许多信号。

图5.从FM单声道接收机捕获的复合基带频谱,显示:(a)L + R单声道音频; (b)19 kHz立体声导频音; (c)L-R音频(使用双边带抑制载波调制); (d)RDS数据信道(使用二进制相移键控)。 (注意:此示例中不存在SCA信号。)

图6描绘了包含RDS解码和显示的FM单声道接收机的GRC流程图。对此流程图的完整讨论超出了我在此处的空间,因此,只需提供一些评论即可。

图6.包括RDS解码和显示的FM单声道接收机的GRC流程图。

流程图上部所示的单调FM接收器与图2中所示的相同,并且以相同的方式工作。 Rational Resampler块的目的是将采样率抽取48倍,并将采样率内插25倍,从而得出新的采样率480k⁄48∙25 = 250k。

频率Xlating FIR滤波器模块将位于57 kHz的RDS信号移至基带。根据低通滤波器抽头块中列出的参数进行滤波;并降低五分之一,以将采样率降低到50 KS / s。

接下来,在传递到MPSK接收器模块之前,信号由根升余弦滤波器模块进行滤波。在这种情况下,M = 2,因此接收器将信号解码为二进制相移键控(BPSK)。

示波器接收器块显示BPSK信号的星座图。 Binary Slicer块将实值样本转换为0或1的二进制值,然后再用Keep 1 in N块将其抽取2倍。接下来的三个块-差分解码器,RDS解码器和RDS解析器-解码二进制信息并将其格式化以供RDS Panel块显示。

图7在接收期间显示的RDS面板上显示了BPSK信号星座图和相应的电台信息。在示波器图中,BPSK信号的位置和相位反转很明显。

图7.示波器接收器块(顶部)显示的信号星座图,RDS面板块(底部)显示的解码的RDS程序信息。

图8描绘了FM单音接收器的GRC流程图,如果子载波可用,该单声道接收器允许接收SCA子载波编程。与以前一样,流程图上部所示的单调FM接收器与图2中所示的相同,并且以相同的方式工作。

这次,频率Xlating FIR滤波器模块根据GUI选择器模块控制的可变通道,将所需的SCA信号移至基带。其中包括几个SCA通道以及RDS的选择,因此您可以根据需要“听到” RDS的声音。

频率Xlating FIR滤波器模块根据低通滤波器抽头模块中列出的参数对信号进行滤波。接下来,信号由FM解调块解调,并由乘法常数块根据变量gain_sca缩放。 (FM Demod模块中的“ gain”选项似乎无法正常工作,因此使用乘法模块来控制SCA信号的音量。)

根据FCC,“子载波,也称为辅助通信机构(SCA),是一个单独的音频或数据信道,它与主要音频信号一起通过广播电台发送。这些子载波信道无法通过常规无线电接收;需要特殊的接收器。子载波用于许多不同目的,包括(但不限于)寻呼,库存分配,公交调度,股票市场报告,交通控制信号切换,点对点或多点消息,外语编程,无线电阅读服务。无线电广播数据系统(RBDS),电台控制和抄表,公用事业负荷管理和muzak。广播电台可以发送一个以上的子载波信号。”

SCA的FCC分配可追溯到FM广播频段从其最初的42-50 MHz分配切换到1940年代中期的88-108 MHz分配。 SCA的目的是为新生的FM广播行业提供额外的收入来源,以支付其业务和设备成本。

未经授权接收SCA广播可能会违反1934年的《通信法》,该法规定:“任何人都不得接收或协助接收他们无权获得的任何无线电通信,并且将这些信息用于自己的利益。”当然,这禁止在这些广播中对信息进行任何商业使用。

您应被授权接收非商业性质的节目,例如由NPR附属公共广播电台通常广播的阅读服务。但是,为了谨慎起见,您应该联系FM电台并请求许可,以授权出于非商业,教育或爱好目的接收其副载波节目。

最后,在Audio Sink块中将“ Num Inputs = 2”设置为启用立体声操作,并使单声道音频和SCA音频信号同时被GUI滑块控制的每个音量都可听到。

接收FM立体声是我们进行FM广播频段之旅的下一站。图9描绘了使用WBFM接收PLL模块的基本FM立体声接收器的GRC流程图。该模块完成了接收FM立体声所需的任务:L + R和L-R信号的分离和解调;然后解复用以将它们分离为L和R立体声音频通道。

接收器工作得很漂亮,但是由于大多数复杂性都隐藏在一个块内,因此无法对其操作进行深入了解。

图10是一个GRC流程图,该流程图使用单独的模块实现FM立体声接收,从而可以更深入地了解如何实现立体声接收。 L + R信号以与前面图2所示相同的方式获得,但是需要两个附加路径才能从复合基带信号中恢复L-R信号。

第一条路径使用带通滤波器从复合基带信号中选择19 kHz导频音。使用PLL Ref Out模块(实现锁相环载波恢复)重新生成音频;将乘数块的频率加倍,从19 kHz增至38 kHz;然后通过带通滤波器消除38 kHz音调以外的所有声音。

第二路径带通对复合基带信号进行滤波,以恢复包含LR信号的双边带抑制载波调制;乘以38 kHz音调,将其转换为基带;然后通过低通滤波器恢复LR信号。

最后一步是使用“加”和“减”模块从L + R和L-R的和与差中恢复各个L和R音频通道,然后再将它们发送到Audio Sink模块,以使声音可以通过PC听到。扬声器。这种方法的一个重要优点是,它使我们可以沿接收链分解信号的频谱,如图11所示。

图11.运行中的FM立体声接收器的屏幕截图。选项卡显示沿接收链的信号频谱。

该图中的选项卡允许用户查看以下信号频谱的FFT图:RF信号;复合基带信号; 19 kHz导频音; 38 kHz音调; L + R信号,LR信号; L音频通道;和R音频通道。

我认为,在了解如何将SDR理论付诸实践时,GRC在时域(范围图)和频率(FFT图)域中显示信号的能力使GRC成为特别有价值的教育工具。

希望您像在编写本文供您阅读时所做的那样,使用GRC构建FM广播频段接收器并学习有关SDR的乐趣同样多。 很高兴回答您对本文的问题或评论。 请给我发电子邮件[受电子邮件保护]。 内华达州 在以下页面中找到了FM广播的“官方” FCC技术要求:https://www.fcc.gov/media/radio/broadcast-radio-links#FAM