上篇文章《基于软件无线电的频谱监测》介绍了Windows系统上用USRP实现频谱监测的功能,这篇文章我们继续介绍一下用USRP来实现FM调频广播收音机的功能,当然,同样也是在Windows系统上实现的。

FM调频广播信号是我们生活中最常见到的一种无线信号,其频率范围为76-108MHz (在我国为87-108MHz)。

所谓调频,是使得载波的瞬时频率按调制信号的变化而变化,但载波幅度保持不变的一种调制方式。

FM调频广播支持左右声道立体声调制,其信号产生过程如下:

抑制副载波的目的是因为调幅波在能量的角度上看,载频占有最大的能量,而上下边带不超过载频幅度的1/2。但是,信息是靠边带来传送的,所以幅度恒定的副载波是不起到信息承载作用的,将它抑制掉对提高信噪比和节约发射机的发射功率都有好处。然而,在接收端就必须要将抑制了的38kHz载波信号进行恢复才能正确解调出S信号,而且恢复的38kHz载波信号必须要和发射端的38kHz信号在相位上保持一致。这也是为什么在发射信号中加入了19kHz(38kHz的一半)导频信号的原因。

下图示意了FM调制信号的频率分布情况:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(1)

立体声FM调制信号频率分布

接下来,介绍一下对FM调频广播信号的解调过程。

通常我们会以一个较高的采样率进行信号采集接收,然后在数字信号处理过程中进行滤波抽取,以此来保证一定的接收性能。我们以2MHz采样率为例,进行低通滤波和5倍抽取后,即得到400kHz采样率下的基带信号,信号频谱图如下所示:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(2)

FM已调信号频谱图

然后就是FM解调,FM调制是改变了载波的频率,所以FM解调就是要得到信号的瞬时频率,解调思路是对信号的瞬时相位进行求导(差分)来得到瞬时频率,可用下式概括:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(3)

完成FM解调之后的频谱图如下:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(4)

FM解调信号频谱图

从调解结果来看,确实出现了19kHz导频信号,也在38kHz处看到有谱峰,但38kHz处的功率明显偏小,难道当前FM发射机并未进行立体声调制?

由于副载波处的功率明显偏小,所以不再进行立体声解调,直接将以上FM解调结果进行低通滤波和抽取,即可得到单声道音频信号,如下图所示:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(5)

FM信号承载的音频波形

将该音频信号根据对应的采样率调用音频驱动即可完成音频播放。

通过软件开发,对USRP实时接收的数据流完成上述处理流程,即得到了软件化的FM调频广播收音机。下图是开发的软件功能界面:

fm收音机的工作原理(基于软件无线电的FM调频广播收音机)(6)

基于软件无线电的FM调频广播收音机软件界面

采用的软件开发环境与《基于软件无线电的频谱监测》提到的一致,其中音频播放功能用到了Windows的waveOut接口API函数。软件开辟了信号接收缓存和音频播放缓存,并在界面上可实时监测缓存的使用率(界面中的Rx Buffer和Play Buffer)。经实际测试,缓存均不会溢出,系统可实时稳定工作。

,