主要内容

FM广播接收器

此示例显示了如何使用MATLAB®和Communications Toolbox™构建FM单声道或立体声接收器。您可以使用捕获的信号,也可以使用RTL-SDR收音机,Adalm-Pluto Radio或USRP™Radio实时接收信号。

需要硬件和软件

要使用捕获的信号运行此示例,您需要以下软件:

要实时接收信号,您还需要以下硬件之一:

有关支持SDR平台的通信工具箱的完整列表,请参阅“ MATLAB和SIMULINK硬万博1manbetx件支持SDR”部分万博1manbetx软件定义的无线电(SDR)

背景

FM广播使用频率调制(FM)来通过广播无线电频道提供高保真的声音传输。使用前重点和延期过滤器用于降低噪声对高音频频率的影响。立体声编码可以通过同一FM通道同时传输左右音频通道[1]。

运行示例

类型fmreceiverexample在MATLAB命令窗口中,或单击“打开示例”按钮打开并运行示例。您需要输入以下信息:

  1. 接收持续时间秒

  2. 信号源(捕获的数据,RTL-SDR无线电,Adalm-Pluto无线电或USRP无线电)

  3. FM通道频率

该示例在计算机的扬声器上播放收到的音频。

注意:此示例利用默认plutoSDR调谐范围之外的中心频率。点击ConfigurePlutoradio('AD9364')要在合格的调整范围之外使用Adalm-Pluto收音机。

接收器结构

FM广播解调器基带系统Object™将228 kHz的输入采样率转换为45.6 kHz,这是主机计算机的音频设备的采样率。根据美国的FM广播标准,De-emphasis低通滤波器时间常数设置为75微秒。此示例处理接收到的单声道信号。解调器还可以处理立体声信号。

为了执行立体声解码,FM广播解调器基带对象使用峰值过滤器,该滤镜挑选了19 kHz飞行员音调,从而从中创建了38 kHz载体。使用所得的载波信号,FM广播解调器基带块下调了以38 kHz为中心的L-R信号到基带。之后,L-R和L+R信号通过了75微秒的De-emphasis滤波器。FM广播解调器基带块将L和R信号分开,并将其转换为45.6 kHz音频信号。

示例代码

接收器询问用户输入并初始化变量。然后,它在循环中调用信号源和FM广播接收器。循环还使用框架持续时间和信号源报告的丢失样本来跟踪无线电时间。

信号源的延迟输出表明何时实际接收样品,可以用来确定接收器正在运行的实时时间。延迟值为1和丢失的样本值0表示系统正在实时运行。延迟值大于一个,表明接收器无法实时处理样品。根据帧数报告了延迟。它可以在1到128之间。如果延迟大于128,则丢失样本。

%为更改默认设置的选项,设置| cmdlineinput |到1。cmdlineinput = 0;如果cmdlineInput%请求从命令行的用户输入应用程序参数userInput = HelperfMuserInput;别的加载('DefaultInputsfm.mat');结尾%根据用户输入计算FM系统参数[fmrxparams,sigsrc] = helperfmconfig(userInput);%创建FM广播接收器对象并根据用户输入配置fmbroadcastDemod = comm.fmbroadcastDemudulator(...'采样率',fmrxparams.frontendsamplater,...“频驱动”,fmrxparams.fequencydeviation,...“过滤器timeconstant',fmrxparams.filtertimeconstant,...“音频采样”,fmrxparams.audiosmamplate,...'立体声', 错误的);%创建音频播放器player = audiodevicewriter('采样率',fmrxparams.audiosmamplate);%初始化无线电时间radiotime = 0;%主循环尽管radiotime %接收基带样品(信号源)如果fmrxparams.issourceradio如果fmrxparams.issourceplutosdr rcv = sigsrc();丢失= 0;迟到= 1;Elseiffmrxparams.issourceusrpradio rcv = sigsrc();丢失= 0;别的[rcv,〜,丢失,迟到] = sigsrc();结尾别的rcv = sigsrc();丢失= 0;迟到= 1;结尾%解调FM广播信号并播放解码的音频audiosig = fmBroadcastDemod(RCV);播放器(Audiosig);%更新无线电时间。如果样品丢失,也要添加。radiotime = radiotime + fmrxparams.frontendframetime +...double(丢失)/fmrxparams.frontendsamplate;结尾%发布音频和信号源版本(SIGSRC)版本(FMBRODCASTDEMOD)版本(播放器)

进一步探索

为了进一步探索示例,您可以改变RTL-SDR收音机,Adalm-Pluto广播或USRP广播的中心频率,并收听其他广播电台。

您可以将FM解调器对象的立体声属性设置为True,以以立体声方式处理信号并比较声音质量。

您可以探索以下功能以获取系统参数的详细信息:

您可以使用fmreceiverexampleapp用户界面进一步探索FM信号。该应用程序允许您选择信号源并更改RTL-SDR无线电,Adalm-Pluto无线电或USRP无线电的中心频率。要启动该应用程序,请键入fmreceiverexampleapp在MATLAB命令窗口中。该用户界面如下图所示

选定的参考书目