使用RTL-SDR和Matlab Simulink玩转软件无线电(二十)

3.12 使用多个RTL-SDR

前面的章节和练习都说的是使用同一个RTL-SDR,这样限制了带宽,只有2.8MHz。但是你可以同时使用多个RTL-SDR。你需要了解Radio Address的概念,参见附录A.1,我们会教你如何使用简单的命令查找你的RTL-SDRID,对你做后面的练习会有用。


下面的练习使用了一个新的Simulink程序,它同时调用两个RTL-SDR模块,如果你没有两个RTL-SDR就无法完成这个练习。你可以跳过这一部分,使用Matlab脚本扫描整个RTL-SDR支持的频段,并把收到的数据画在一起。


对于有多个设备的读者,这个练习会让你重复做3.4~3.11的内容,但是你的接收机带宽翻倍了。对于FM接收来说,这没有什么用,但是5.6MHz的带宽对于UMTS很有用,你能看到整个 UMTS信号了,LTE-ADVB信号也是如此。参加图3.16


练习3.12 用多个RTL-SDR观察频谱

这个程序要求你有多个RTL-SDR。如果是给学生上课,可以让两个学生组成一对来观察。本练习的主要目标是看看使用多个设备观察频谱有什么好处。


(a)打开Matlab。把工作文件夹选为练习文件夹/spectrum


(b)连接两个RTL-SDR到电脑上。参照附录A.1,用sdrinfo命令检查Matlab可以与这些设备通信。如果两个设备都找出来了,那你能看到如下信息。


(c)如果你的命令没显示出正确信息,可能是因为驱动要更新了。输入targetupdater命令并回车。


你会看到Set up Support Package向导。


按照指示,重新装一下Zadig驱动。然后回到Matlab看看是否都认出来了。


(d)打开Simulink程序:/spectrum/rtlsdr_rx_combinetwo.slx


程序里用了两个RTL-SDR接收机模块。它们都设置了2.8MHz的采样率。上方的模块对应于0号设备,下方是1号设备。每个设备的中心频率是我们需要观察的频率再加上或减去一半的带宽。使用Tuner Offset模块和两个算术计算模块完成。比如,我们要观察的频率设置成100MHz,那么上方的RTL-SDR的中心频率会被设置为98.6MHz,下方的会是101.4MHz。这样就可以把两个设备的频谱拼接起来。


两个信号进入Simulink程序,然后先把它们的DC分量去除,然后进行FFT变换。最后把FFT变换的结果合并为一个大的矩阵,然后绘制到窗口上。当RTL-SDR收到新的一帧数据时,这个过程会重复一次,这样看上去图形在连续变化。但是实际上这个图形并不是实时的,我们只能大概观察一下。


(e)双击RTL-SDR接收机模块,打开它们的参数窗口,然后单击初始化按钮,这与sdrinfo命令功能一样,你会看到两个设备的硬件信息。你可以找到两个设备的地址,分别是01,然后单击OK关闭窗口。


(f)运行程序。单击运行。你会看到一个窗口,等第一帧数据计算完毕,你就会看到合并的FFT图像。


双击调谐器增益和频率模块并更改数值来调节增益和中心频率。


(g)信号分析。你可能没注意到,你的RTL-SDR在整个频段内的响应是非线性的。还有两个RTL-SDR的功率显示可能不一样,这一般是由于地没有接在一起导致的。


两个RTL-SDR并没有做过同步,也就是说没有一个公用的振荡器,这样两部分的采样值可能并不是同一批的。也就是说你不可能用这种方式来解调一个宽频信号。这种方式只能用来观察频谱。


(h)多个RTL-SDR的挑战。现在你可以尝试探索一下了。重复前面的练习,把频率调谐到之前那些宽频信号的频率。你也可以设置最大最小值,对于DVB信号,我们可以这样设置。


(i)带宽增加以后有什么区别?你能看清楚频道的边缘了吗?下面是我们自己做的实验截图。


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值