您的位置:首页 > 编程语言 > MATLAB

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

2017-06-20 10:28 501 查看
1.6 RTL-SDR 硬件

RTL-SDR的硬件本来是用于DVB-T接收的,用户购买后可以插在电脑上观看数字电视。这个设备的设计初衷并不是SDR设备,我们要感谢大量的SDR爱好者,是他们发现了此款设备的潜力。他们发现了这个设备可以设置为测试模式,把DVB解码模块绕开,并且把设备调谐到25MHz到1.75GHz的范围,直接产生了8位的原始IQ数据,并且基带采样率也可以设置。

1.6.1 设备操作

RTL-SDR中的两个主要组件是调谐器R820T(少部分是E4000)和RTL2832U解调器。一些爱好者发现这个解调器可以设置成测试模式,这种模式中,设备可以作为IF数字广播接收机使用,相当于一个高速ADC,直接输出原始正交采样信号,分辨率是8位。然后人们把这个设备更名为RTL-SDR,意义是Realtek公司生产的可改造为SDR的设备。

图1.8展示了RTL-SDR的主要信号处理流程。射频RF信号进入调谐器后使用一个VCO下变频到low-IF。VCO可以用程序控制,RTL2832U通过I2C总线控制它。然后经过AGC,这个部分动态调整输入信号的幅度,使输出的信号保持在设备的允许范围。然后把中频IF信号变到基带。这一步的经典做法是把IF信号经一个抗混叠滤波器,用ADC采样然后用正交NCO把信号变到基带(可以用频率为与IF相同等的正弦信号完成这个操作)。

RTL2832U在原本的情况下会把基带IQ信号经过DVB-T解调,输出MPEG2-TS格式的视频流,然后从USB接口输出。在测试模式下,最终的解调模块被跳过,8位IQ数据直接输出。尽管RTL-SDR、RTL2832都没有公开的官方文档,R820T、E4000这两种调谐器的数据表示却可以在网上找到。另外有一个日本人写的博客在尝试设计原理图,来说明如何连接这些组件。

1.6.2 RTL-SDR一个只能收信号的设备

我们需要明确知道,RTL-SDR只能收不能发。幸运的是你身边有很多现成的RF信号(如图1.5),这样你不需要花太多功夫就能用RTL-SDR收到东西。你会发现你家里或者办公室有不少能发射信号的设备,各种温度传感器、报警器、车钥匙、无线门铃。

之前说过,有钱人或者需要给学生上课和其他实验室应用的可以考虑买一个SDR发射机,有很多可以买,比如USRP,加上RTL-SDR你就能研发通信系统。本书会讲到很多这样的例子。

1.6.3 RTL-SDR的驱动:小故事

用RTL2832U芯片的DVB接收设备本来只有windows驱动。2010年Realtek公司发布了一本操作手册给Linux开发者,希望Linux开发者能开发一套类似的用于Linux系统的驱动和软件。Eric
Fry就是其中之一,他花了很多时间来观察设备从USB口传出来的数据,并且写了一套Linux下的驱动。

2012年,芬兰的一个学生Antti Palosaari在V4L GMANE开发者论坛上说,他能够用RTL的DVB设备来侦听无线电信号。他发现如果设备工作于FM或者DAB(数字广播)模式,它的工作方式与平时是不同的,会直接输出原始的未解调信号,后期的解调工作是在电脑上用软件进行的。他捕捉了17秒的广播信号数据,并且在网上询问是否有人可以用软件来解调这个信号。36小时后,在各种网友的合作下,他发布消息称“我可能发现了一种超级廉价的SDR设备”。

这个发现使人们进一步研究了RTL-SDR的USB协议。调谐广播时发出的命令被记录下来,然后人们用这种命令来强制设备工作与这个测试模式。RTL2832U在这种模式下会直接输出8位的基带IQ信号,而不是经过解调的视频流。Osmocom的一些开发者,之前也有开发另一款’osmo-sdr’的经验,他们也加入其中,他们能够通过软件控制RTL2832U进而控制调谐器。

RTL-SDR在2013年爆发了,很多设备和软件都出现了。根据网上的情况来看RTL-SDR作为SDR设备的使用率远远超过了DVB接收机的使用率。NooElec公司大批量生产了这类改造后的设备,设备中使用了R820T调谐器,可以接收25MHz到1.75GHz的信号,采样率可以达到2.8MHz。

1.6.4 RTL-SDR调谐和解调

RTL-SDR不是图1.6和图1.7(c)中最理想的SDR,因为它的ADC不是宽频的,提供不了GHz的采样率。实际上有两种不同结构的RTL-SDR,下方详细说明。后文中我们提到设备硬件一般会以第一种结构的RTL-SDR为主,它可以看作是图1.7(b)中的IF数字SDR。

R820T+RTL2832U组合 R820T和R820T2的调谐器使用了3.57MHz的低中频low-IF,把6MHz带宽的RF信号下变频到中频。输出的信号作为IF采样值传给RTL2832U,RTL2832U把调谐到中频信号的频率,这样就把中频信号从中频下变频到基带。然后,RTL2832U使用28.8MHz的ADC来采样这个信号,并输出正交IQ信号。为了降低采样率,还做了抽取操作,采样率降为2.8MHz左右,然后把采样值输出到USB口。图1.11展示了这个结构的处理过程,也展示了关键的几个步骤的频谱。

E4000+RTL2832U组合 E4000调谐器与R820T不同,它直接下变频到零中频zero-IF。也就是说它直接把宽频RF信号(10MHz)下变频到基带,而没有IF这一级,然后进行正交解调。基带IQ信号输出给RTL2832U,采样,抽取,输出给USB,这一步和第一种结构相同。E4000在2012年停产,所以使用E4000的设备越来越少。你更可能买到的是R820T+RTL2832U的组合。

我们来讲讲实际工作中的RTL-SDR,假设你要接收一个标准的FM信号,频率是102.5MHz。你要把中心频率fc设置成102.5Mhz,然后使用一个合适的调谐器增益。信号被调谐器(R820T或E4000)下变频到中频或者零中频,然后RTL2832U使用28.8MHz进行采样,并输出基带IQ信号给电脑。到此为止,这个信号还是原来使用FM调制的信号,还未被解调只是搬移到了基带,需要进行解调才能变为声音信号。你接下来在本书中会看到如何使用Matlab或Simulink来解调信号,并实时地把广播中解调出的声音信号用喇叭播放出来。

RTL-SDR的输出采样率是可以设置的,降低采样率会提高基带处理的性能,尤其是在老式电脑上更为重要。把fs设置成2.4MHz,相当于在RTL2832U的抽取因子设为12(因为ADC的采样率是28.8MHz),也就是说12个IQ采样中只有一个被输出给电脑。这样降低后的采样率意味着带宽降到了2.4MHz(注意这是一个复数信号),他的范围是-1.2MHz(-fs/2)到1.2MHz(fs/2),如图1.11。2.4MHz的带宽意味着,你调谐到一个FM电台的同时,会把附近的其他几个频率的FM信号也收到了。FM电台在英国的间隔是200kHz,所以我们最多能收到12个电台因为12x200kHz=2.4MHz。因此我们需要用数字滤波器把不要的电台信号过滤掉,之后再进行FM解调。

之前说了,R820T的调谐器范围事25MHz到1.75GHz,fc可以设置成这个范围内的任何值。E4000也是类似,它支持的范围是53MHz到2.2GHz,但其中1.1GHz到1.25GHz不支持。如果你把fc设置在这一段不支持的频率,E4000无法把信号下变频到基带。

1.6.5 NooElec NESDR RTL-SDR接收机

第一代NooElec NESDR RTL-SDR跟一个U盘差不多大,还会送天线和遥控器(只在作为数字电视接收机时有效),但是没有软件和文档。这是因为用户需要根据自己的需求自己写程序。2014年左右,NooElec开发了新的RTL-SDR的PCB板子,大概只有2平方厘米,并且组件换成了高质量的带屏蔽罩的(如图1.2),来解决干扰问题。这些都可以在nooelec.com买到。

图1.9展示了NooElec卖的最好的NESDR Mini和NESDR Nano的部件说明,包括:

MCX连接器
用于连接天线(设备自带的全向天线)

ESD二极管
用来保护调谐器免受天线的静电影响

R820T 调谐器芯片,它用来选择RF频段并下变频到中频

RTL2832U 解调芯片,把中频信号下变频到基带,数字化采样并降低采样率

28.8MHz的时钟晶体
用来作为频率合成的参考,用它可以产生本地振荡器和时钟(这个组件R820T和RTL2832U同时使用)

USB 2.0接口 RTL2832U的一部分,用来把基带IQ信号传给电脑

IR传感器
用来接收红外遥控信号,当设备作为IF SDR使用时,这个模块不可以使用

串行EEPROM 保存USB设置信息,并且通过I2C总线与RTL2832U连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: