一、环境描述:Ubuntu18.04 虚拟机
PC:I5 8250 8G
硬件设备:USRP B210
LTE胶棒天线
总的工作环境如下图
二、流图介绍:
具体描述
1、Osmocom Source 将收到的射频信号下变频至基带。该模块需要自行安装,安装教程见上一篇帖子《USRP B210》Osmocom 模块的安装,具体参数如下图所示。需要说明的,Deveice Arguments/Ch0:Antenna两个端口需要与硬件设备中的名称一致(硬件设备信息可在终端输入uhd_usrp_probe 来查看)。
Sample Rate 为信号采样率,本例设为2MHz;
Ch0:Bandwidth(Hz)设定天线的接受带宽,本例设为20Mhz;
RF Gain为射频端的接受增益,本例将其设为可变变量。
2、低通滤波模块,信号在Osmocom Source被下变频至基带后,通过该模块进行低通滤波。
Decimation 抽取率设为4,该模块输出采样率为500Khz (2MHz/4=500Khz)。
Cutoff Freq 为低通滤波器的截至频率,这里设为可变变量,默认值为100KHz (因为FM收音机每个台大概占用100KHz);
Transtion Width 为过渡带带宽,这里设置为可变变量,默认值为10Khz (设置值越小滤波器越陡峭,占用的FPGA资源越多)
3、FFT Sink模块其实就是一个可视化的观测窗口,默认设置即可。
4、WBFM Receive模块,将接受到的FM信号进行解调,注意采样率设置为500KHz。
5、Rational Resampler 变采样率模块,首先对采样率为500KHz信号抽取500,再插值48,则得到48KHz信号。
6、Audio Sink模块,该模块将信号输入到电脑的声卡,注意采样率只能设置为几个特定的频率,例如这里是48KHz(所以才需要Rational Resampler变采样率模块,将信号采样率变为48KHz)。
7、WX GUI Slider 模块,slider 中文意思是滑杆,故该模块可翻译为“可视化变量调节模块”,本文以一个为例来说明。
ID 设置为freq,对应Osmocom Source模块CH0:Frequency(Hz) 的freq,即该变量对应天线的接收频率。
Lable:可视化窗口中变量的名称,本例设为Receive_Freq。
默认值设为101.7MHz,最小值设为90MHz,最大值设为110Mhz,步进1000Hz。
其它WX GUI Slider 类似,在此不再累述,该模块类似C语言中的设置了一个变量,并赋予该变量的变化范围。
三、程序下载
Generating: '/home/yangkai/top_block.py' 产生 .py文件
红色画圈的即为FM电台,可调节Receive_Freq滑杆改变。大家看数据都是“OOOOOOOOOOO”,这就表示数据没有问题。我在这种情况下确实能听到电台,但是声音频率很低,不知道咋回事,调节滤波器也没有改善。
而如下图时,证明丢包率非常高,听到的效果非常差,原因可能是:采用的是虚拟机,虚拟机限制了USB的数据率。
``````````````````````````````````````````````````分割线`````````````````````````````````````````````
请教了其他人,数据不正常可能是因为虚拟机的原因,我在本例中设置的接收带宽为2MHz,所设的值太大了,PC带不动,原因可见:我的板子接受天线处的灯也是一直闪烁,当调低带宽以及采样率后,灯不闪烁,但显示的接收数据仍然是UaO,偶尔会显示OOOOO,感觉还是虚拟机的原因,模块搭建应该是没有问题的,欢迎大家测试验证交流。
以下内容为验证滤波器
我在减小了bandwidth到500KHz之后,希望调节滤波器通带截至频率,验证滤波器的工作情况。
1、我将FFT Sink模块放在了低通滤波器之后,并将基带频率设置为0
2、调节滤波器的通带截至频率分别为30KHz/50KHz,如下两图所示。为显示方便,可改变Avg Alpha的值(感觉该值也是一个滤波器,该值的功能有平均的作用,使图像变化缓慢了,本例调节到0.067)
******************************************分割线***************************************************************************
又修改了一版FM收音机,工作情况如下,工作区输出的UaUa很少,声音正常!我的采样率设置为250KhZ,但是很不稳定,可能下一次实验同样的设置,输出的丢包率就很高,如果真的时要研究USRP还是不建议在虚拟机上搞。