该部分主要介绍关于 SDR 接收机的测试,SDR 接收机之前的一些硬件测试见于二元干涉仪硬件测试,干涉仪仿真部分见于二元干涉仪仿真,射电望远镜整体链路见于 射电望远镜整体链路对观测影响的分析
参考文献:
1.Software Defined Radio using MATLAB Simulink and the RTL-SDR(使用 RTL-SDR 和 Matlab Simulink 玩转软件无线电)
2.RTL-SDR(RTL-2832)的模拟前端硬件结构分析_r820t2 芯片手册 - CSDN 博客
3.SDR 架构 (一)为什么基带有 I 和 Q 路?_i 路和 q 路 - CSDN 博客
4.[RTL-SDR] RTL-SDR 原理图_r820t-CSDN 博客
5.RTL-SDR Blog V.3. Dongles User Guide
6.Passive RADAR With a Dual Coherent Channel RTL-SDR
7.How Not to Break your Software-defined Radio (SDR) Hardware - Part 1 - OneSDR - A Technology Blog
待补充
# 传统接收机和 SDR 接收机
下面仅就个人目前的理解对 SDR(Software Defined Radio, 软件定义无线电)接收机进行若干阐述,如果对这些都不感兴趣可以直接跳到 RTL-SDR 干扰测试部分。
传统的模拟接收机通常不包括 ADC(数模转化器),信号的处理全在模拟电路上进行。例如老式的对讲机是传统的收发机,作为发射机时,对讲机把声音信号转为电信号,通过 FM(调频)/AM(调幅)的方式把这个电信号的信息加载到指定频率的电磁波上,整个过程被称为编码,然后发射出去。作为接收机时,接收者通过旋钮 / 按键来控制选频电路来指定接收频率,然后通过解调电路(FM/AM 解调)将信号转回声音,整个过程被称为解码,全程是在模拟电路上进行信号处理的。老式的收音机接收、处理信号的过程也类似于对讲机的接收模式,是传统的接收机。
然而模拟的解调电路的功能往往是固定,例如上述的 FM/AM 解调电路,只能按照规定的流程把使用 FM/AM 编码的电磁波解码为声音。但如果电磁波信号是按照另外的格式和顺序(传输协议、通信协议),例如 GNSS 信号、SSTV 信号、GSM 信号,此时还用这个 FM/AM 解调电路解码为声音,只能听到一连串滴滴答答、忽强忽弱的声音,单纯靠人的大脑去分析这些声音到底蕴含的信息是很困难的,只能再做一套相应的模拟解调电路。为了通用性和降低成本,便直接用 ADC 对接收到电磁信号进行采样,然后在数字电路中这些信号进行灵活的解码和处理,例如在 DSP 芯片、FGPA、CPU 中,我们在电脑使用软件对采样进行解码便属于使用了 CPU 这种通用数字电路对信号进行处理。这种加入了 ADC 采样从而减少了模拟电路使用的接收机便称为 SDR 接收机。当然,SDR 接收机也有一些额外的特征,例如可以通过数字电路对 ADC 之前模拟电路的若干参数进行控制(数控电路),例如利用电脑软件可以调节 SDR 接收机前端低噪放的增益值。
# RTL-SDR 接收机架构
性价比较高的 SDR 接收机有 RTL-SDR、Airspy、Hackrf、SDRPlay 等,其中 RTL-SDR 较为便宜,因此目前使用它进行观测。为了能够更好地使用 RTL-SDR,需要了解其内部架构。把常见的蓝壳 RTL-SDR 拆开后,其结构如下,主要包含 R820T 调谐器芯片、RTL2832U 解调器芯片、28.8MHz 的石英晶振、USB 接口等:
书上常见的接收机是由低噪放、混频器、滤波器、ADC 等器件组成,例如下面两张图所示,第一张图是传统的超外差接收机,即接收到的射频信号(RF)经过混频器(Mixer)下变频后得到了中频信号(IF),解调器直接对中频信号经过解调输出声音信号。第二张图是采用了超外差结构的 SDR 接收机 ,射频信号经过两次混频进行下变频,然后被 ADC 采样输出 IQ 两路数字信号。
RTL-SDR 接收机的结构也类似,只是其各种射频器件均被集成到了 R820T 和 RTL2832U 这两个芯片中,芯片上留有若干引脚来输入和输出信号,从而和其他分立元件 / 芯片相互连接在电路板上形成 SDR 接收机,各芯片内部的原理图如下图所示。
其中 R820T 为调谐芯片,包括射频可变增益低噪放、带通滤波器、混频器、中频低通滤波器、可变增益中频放大器,用来对接收到的射频信号(RF)进行放大、选频、下变频等操作,输出中频信号(IF)。整体是模拟射频电路,充当 RTL2833U 的射频前端。
RTL2832U 为解调芯片,即用采样率为 28.8MHz 的 ADC 对 R820T 输出的中频信号进行采样,得到总带宽为 28.8MHz 的中频信号,然后进行数字下变频(DDC)、抽取(例如采样因子为 12,则降采样后的带宽降为 2.4MHz),输出基带信号,即 8bit 的 IQ 信号。整体主要是数字电路,相当于上述所提到的 DSP 芯片,同时也能对 R820T 芯片中的射频 / 中频放大器增益进行控制。
为什么不直接 ADC 采样后输出带宽为 28.8MHz 的宽带信号,而是要进行下变频和抽样后再输出基带信号,主要是为了减少后面处理基带信号的压力,尤其是老式的电脑。
频率基准由 28.8MHz 的石英晶振提供,可为 R820T 的混频器提供本振,也为 RTL2832U 中的 ADC 采样提供时间基准(秒脉冲信号)。
需要指出的是,实际上 RTL2832U 有两个 ADC,可以采两路中频信号(所谓的 I 路和 Q 路),上图只给出了 I 路的 ADC,I 路的 ADC 对中频信号采样后,在 RTL2832U 的数字电路中输出 IQ 两路信号。更为具体的结构见于下图。从图中可以看出,RTL2832U 芯片中含有 DVB-T 的解码器,使用该解码器可以直接输出 mpeg 数据流,不过我们在 SDR 模式下未使用该解码器,而是直接输出 IQ 信号,从而在电脑上解码。
R820T 调谐器工作频率较高,无法接收低于 30M 的射频信号。但是由于 RTL2832U 的 Q 路未被使用,因此可以直接使用飞线跳过 R820T,使得低于 30M 的射频信号直接被 RTL2832U 的 Q 路 ADC 直接采样,如下图所示。由于 ADC 的采样率为 28.8MHz,因此只能只能接收 0-14.4MHz 的短波信号。
如果想制作相干的接收机,即类似于多个天线组成的相控阵接收机,可以使几个 RTL-SDR 都共用一个晶振,让它们有共同的频率和时间基准,例如下图:
# RTL-SDR 干扰测试
常见用来处理 RTL-SDR 输出 IQ 基带信号的软件有 GNURadio、SDRsharp 等,当然也可以使用 python 和 matlab 的库来使用 RTL-SDR。在此使用 Windows 上常用的 SDRsharp 作为处理软件,它有众多基础功能和可供使用的插件。
点击右上角的设置齿轮图标,可以调出 RTL-SDR 的控制器,如下图所示:
可以看出这个 RTL-SDR 使用的调谐器芯片是 R820T
其中 Sample Rate 用来设置 RTL-SDR 最终的采样率,建议的设置是 2.048 或 2.4MSPS,也可以设置为 2.8MSPS,相当于接收机的瞬时采样带宽为 2.8MHz。
Sampling Mode 为采样模式,一般设置为 IQ 两路正交采样,如 RTL2832U 中 Q 路的 ADC 被使用,也可以设置为 Q 路直采,这样就可以处理 0-14MHz 的短波信号。
另有 RTL AGC、Tuner AGC 两个自动增益是否开启选项。RTL AGC 开启 RTL2832U 芯片内部自动增益控制 (AGC) 算法,Tuner AGC 启用 R820T 的 AGC。不过 RTL-SDR 中使用的 AGC 设计是用于宽带 的 DVB-T 信号,不能很好地与窄带信号配合使用。
建议始终使用手动增益控制(RF Gain 滑块)来优化信号的增益。对于随意浏览,打开 Tuner AGC 可能就足够了。RTL AGC 几乎从未使用过,因为它往往只会引入大量不需要的噪声。
Frequency correction (ppm) 用来校正 RTL-SDR 中低质量的石英晶振而产生的频率偏移,关于频率偏移的原因可见于关于晶振频率偏差(Frequency Tolerance )与频偏(Frequency Deviation)。
在此仅仅对测试中遇到的问题做一些阐述,主要还是打算排查影响观测的干扰从哪里来。
# 电脑充电器的干扰
如果使用劣质的电源适配器,当插上给电脑充电时,整个频谱的底噪会抬高,这一部分可见于充电器对频谱底噪的影响
# R820T 低噪放自激
RTL-SDR 不接任何设备,采样率设置为 2.4MSPS,RF Gain 设置为 20.7dB,调谐到 1425MHz,其频谱图和瀑布图显示如下(暂时不考虑 1425MHz 调谐频率的信号)
把 RF Gain 逐渐调高到 30dB 左右,仍然调谐在 1425MHz,其频谱图和瀑布图显示如下,会发现 1425.62MHz 附近出现一个尖峰,这应该是 R820T 中射频 LNA 产生自激了或者它的 AGC 电路产生震荡之类导致的。也可以尝试调谐观察其他频率,会发现其他频率也会出现若干尖峰。
# 采样率对调谐频率处的峰和 LNA 自激峰的影响
把采样率设置为 2.8MSPS,RF Gain 仍在 30dB 左右,其频谱图和瀑布图显示如下。可见调谐频率处的尖峰消失,同时 LNA 自激产生的峰也发生了频偏。
# 长 USB 扩展线的干扰
在室外使用增益 15dB 的八木天线 + 20dBi 的宽带低噪放(0-6GHz)+1425MHz 附近的带通滤波器 + RTL-SDR,RTL-SDR 的采样率设置为 2.8MSPS。之前使用 20dBi 增益的栅格抛物面时未遇到过该问题,可能是现在使用的是增益为 15dBi 的八木天线,有较为大增益的旁瓣和后瓣,因此易受 USB 扩展线(长度为 1m 左右)的影响;也可能是 USB 数据线中的数字信号收到了其他干扰信号的串扰。
具体的影响如下图所示(这里的每个曲线都是几秒时间内频谱的积分平均),其中蓝色为通过长 USB 扩展线把 RTL-SDR 连接到电脑上,绿色为 RTL-SDR 直接插到电脑上。可以明显看见蓝线有周期约为 50KHz 左右的小尖峰。其中在 1425.62MHz 附近是上述 R820T 低噪放的自激,经过 USB 扩展线传输后水平明显升高。蓝线最左边的的两个高峰看起来是绿线上原来较小的两个峰,也说明经过 USB 扩展线后水平明显升高。
尝试调谐到 1430MHz,结果如下图所示,发现仍然有周期为 50KHz 左右的小尖峰,可见是个宽频的干扰。
# 不加滤波器的结果
在室外使用两套(增益 15dB 的八木天线 + 20dBi 的宽带低噪放),观测 1430.5MHz,共有两路输出,连接到合路器的两路输入,合路器的输出不接滤波器直接连接到 RTL-SDR 上,RTL-SDR 的采样率设置为 2.4MSPS。
(图上的注释是错误的,只需关注频谱和瀑布图)下面黄色的瀑布图为两个低噪放没加电的状态,可以看到明显的 R820T 中射频 LNA 自激。橙色是仅一个低噪放加电时的瀑布图,由于没加滤波器,可能 RTL-SDR 已经过载了,产生了更为严重的自激,尖峰刚开始会随时间漂移(可能采样都漂移)且关于调谐频率对称。
(图上的注释是错误的,只需关注频谱和瀑布图)橙色的瀑布图为刚才仅一个低噪放加电的状态。红色的瀑布图为两个低噪放同时加电时的瀑布图,由于没加滤波器,可能 RTL-SDR 已经过载了,产生了更为严重的自激,尖峰刚开始会随时间大漂移,然后逐渐小漂移。且有明显周期为 50KHz 的漂移小条纹,这个估计就是之前 USB 线的干扰,在这里只是更加肉眼可见了。
这样看来所有的信号都在漂移,说明用宽带低噪放但是不加滤波器的话,带外的信号可能很强从而导致接收机过载,产生很糟糕的影响,甚至烧坏接收机。
各接收机最大功率如下所示,我在所有低噪放都加电的情况下,把合路器的输出连接到了 HackRF 上,目前它的接收电路估计已经被烧坏了,因为我用它收不到任何信号。
接收机 | 最大功率 | 最大功率 |
---|---|---|
HackRF | – 5 dBm | 0.3 毫瓦 |
RTL-SDR | +10 dBm | 10 毫瓦 |
ADALM Pluto | +2.5 dBm | 1.8 毫瓦 |
BladeRF | +2.5 dBm | 1.8 毫瓦 |
SDRplay RSP1A | 0 dBm | 1 毫瓦 |