主要内容

调频广播接收器

这个例子展示了如何使用MATLAB®和Communications Toolbox™构建FM单声道或立体声接收机。您既可以使用捕获的信号,也可以使用RTL-SDR Radio或ADALM-PLUTO Radio实时接收信号。

所需硬件和软件

要使用捕获的信号运行这个例子,你需要以下软件:

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

要获得通信工具箱支持的SDR平台的完整列表,请参阅“用于SDR的MATLAB和Sim金宝appulink硬件支持”一节金宝app软件定义无线电(SDR)

背景

FM广播利用频率调制(FM),以提供在广播电台频道高保真的声音传输。预加重和去加重滤波器用于降低噪声对高音频频率的效果。立体声编码使得能够在同一FM频道的左和右音频信道的同时传输[1].

运行实施例

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

  1. 接收持续时间(秒)

  2. 信号源(采集数据,RTL-SDR无线电或ADALM-PLUTO无线电)

  3. FM信道频率

这个例子播放一段计算机的扬声器接收到的音频。

注意:这个示例使用的中心频率超出了默认的PlutoSDR调优范围。点击configurePlutoRadio(“AD9364”)使用您的ADALM - 冥王星无线电合格调谐范围之外。

接收机结构

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

为了执行立体声解码,该调频广播解调器基带对象使用峰化滤波器,其挑选出从其中创建38 kHz载波的19 kHz的导频音。使用所得到的载波信号,所述FM广播的基带解调器块下变频L-R信号,在38 kHz为中心,到基带。然后,将L-R和L + R的信号通过一个75微秒去加重滤波器。FM广播的基带解调器块分离的L和R信号,并将它们转换到45.6 kHz的音频信号。

示例代码

接收器要求用户输入的同时初始化变量。然后,它调用信号源和FM广播接收器在一个循环。环路还跟踪的使用帧持续时间和由所述信号源报失样品无线电时间。

信号源的等待时间输出是当实际被接收的样本,并且可以用于确定如何接近实时接收机正在运行的指示。的1的延时值和0丢失的样值表示,该系统是在实时运行。大于一的时延值表示接收机无法处理这些样本的实时性。延迟报告在帧数方面。它可以是1和128之间。如果等待时间大于128,则样本被丢失。

%从命令行请求用户输入应用程序参数userInput = helperFMUserInput;%根据用户输入,计算FM系统参数[fmRxParams, sigSrc] = helperFMConfig (userInput);%创建FM广播接收器对象和配置基于用户输入fmBroadcastDemod = comm.FMBroadcastDemodulator (......'采样率', fmRxParams。FrontEndSampleRate,......'FrequencyDeviation',fmRxParams.FrequencyDeviation,......“FilterTimeConstant”, fmRxParams。FilterTimeConstant,......“AudioSampleRate”,fmRxParams.AudioSampleRate,......'立体声', 错误的);%创建音频播放器玩家= audioDeviceWriter('采样率', fmRxParams.AudioSampleRate);初始化无线电时间radioTime = 0;%主循环radioTime 接收基带采样(信号源)如果fmRxParams.isSourceRadio如果fmRxParams.isSourcePlutoSDR RCV = sigSrc();丢失= 0;迟= 1;别的(rcv ~,丢失,晚]= sigSrc ();结尾别的RCV = sigSrc();丢失= 0;迟= 1;结尾调频广播信号解调,播放解码后的音频audioSig = fmBroadcastDemod(RCV);播放器(audioSig);%更新电台时间。如果有丢失的样本,也把它们加起来。radioTime = radioTime + fmRxParams。FrontEndFrameTime +......双(丢失)/fmRxParams.FrontEndSampleRate;结尾%释放音频和信号源释放(sigSrc)释放(fmBroadcastDemod)释放(播放器)

进一步的探索

为了进一步探索的例子中,可以改变RTL-SDR无线电或ADALM-PLUTO无线电的中心频率和收听其它广播电台。

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

您可以探索对系统参数的详细情况如下功能:

您可以进一步探索使用FMReceiverExampleApp用户界面的FM信号。这个应用程序允许用户选择的信号源和改变RTL-SDR无线电或ADALM-PLUTO无线电的中心频率。要启动应用程序,键入FMReceiverExampleApp在MATLAB命令窗口中。用户界面如下图所示

选择的参考书目