2、SDR基础理论:信号与频谱、采样定理、IQ调制与解调、数字下变频(DDC)与数字上变频(DUC)的基本原理

软件定义无线电(SDR)的核心思想,是将传统模拟射频前端中完成的大部分信号处理任务,尽可能多地迁移到数字域,由通用处理器(CPU)、FPGA或DSP通过软件来定义和实现。要真正理解并驾驭GNURadio与USRP这类工具,首先必须牢固掌握支撑SDR系统的四大理论基石:信号与频谱的表示方法、采样定理对数字化的约束、IQ调制解调为何成为现代通信的标配,以及数字上/下变频如何完成频谱的搬移。本章将逐一拆解这些基础概念,并紧密结合GNURadio中的实际信号处理模块,帮助你建立从理论到实践的完整认知。

SDR核心理论链路与频谱搬移关系 模拟射频前端 天线接收/发射 LNA / PA 射频滤波 混频器(模拟) 中心频率 fc 带宽 BW ADC / DAC 采样率 fs 数字信号处理域(GNURadio / FPGA) DDC 数字下变频 NCO + CIC/ FIR IQ 解调/调制 I/Q 分量提取 星座图映射 DUC 数字上变频 内插 + NCO 频谱搬移过程 射频信号(载波 fc) fc fc-BW/2 fc+BW/2 → 基带信号(IQ) 0 -BW/2 +BW/2 → 数字域频谱 fs/2 -fs/2 fs/2 DDC将射频信号搬移至基带,DUC将基带信号搬移至射频,IQ调制承载幅度与相位信息

2.1 信号与频谱:从时域到频域的思维转换

在SDR的学习中,最首要的思维转变是从“时域波形”转向“频域谱线”。传统示波器展示的是信号幅度随时间的变化,而频谱分析仪或GNURadio中的QT GUI Frequency Sink展示的则是信号能量在不同频率上的分布。对于SDR工程师而言,频域视角往往更能揭示信号的本质特征:一个看似复杂的调制信号,在频域中可能只是几段清晰的频谱包络;而一个时域上干净的载波,在频域中却可能包含杂散和谐波。

任何实际信号都可以通过傅里叶变换分解为一系列正弦波的叠加。对于周期信号,其频谱是离散的谱线;对于非周期信号(如数据帧、脉冲),其频谱是连续的。在SDR系统中,我们最关心的是信号的带宽(Bandwidth)和中心频率(Center Frequency)。例如,一个带宽为20MHz的LTE信号,在频谱上表现为以载波频率为中心、宽度约20MHz的凸起。GNURadio中的Frequency Sink模块正是通过FFT(快速傅里叶变换)将输入的时域IQ样本流转换为频域幅度信息,从而让我们实时观察信号的频谱形态。

核心要点:在SDR中,信号通常以复数形式(IQ数据)表示。复信号的频谱具有单边带特性,即正频率和负频率携带不同的信息。这与实信号(如单根导线上的电压)的频谱关于0Hz对称的特性有本质区别。理解这一点是掌握IQ调制的基础。

2.2 采样定理:数字化的边界条件

奈奎斯特采样定理(Nyquist Sampling Theorem)是模拟世界与数字世界之间的桥梁,也是SDR系统设计中最不可逾越的物理约束。定理指出:为了能从采样后的离散序列中无失真地恢复原始模拟信号,采样频率 fs 必须大于信号最高频率分量 fmax 的两倍,即 fs > 2 × fmax。这里的 fs/2 被称为奈奎斯特频率。

在USRP这类SDR硬件中,ADC(模数转换器)的采样率是有限的。例如,USRP B200系列的ADC最高采样率为61.44 MS/s,这意味着它直接采样的射频信号频率不能超过约30MHz。然而,USRP的工作频率范围可达70MHz至6GHz。这看似矛盾,实则通过欠采样(Undersampling)或射频前端下变频来解决。USRP内部通常包含一个模拟混频器,先将高频射频信号搬移到中频(IF)或直接搬移到基带(零中频架构),然后再进行ADC采样。

如果采样率不满足奈奎斯特条件,就会发生混叠(Aliasing)现象。高频分量会“折叠”到低频区域,与真实信号重叠,且无法通过后续数字滤波去除。在GNURadio中,当你设置USRP Source的采样率时,必须确保目标信号带宽加上一定的余量不超过 fs/2。例如,要接收一个带宽为5MHz的信号,采样率至少应设为10MS/s,实际工程中通常设为10.24MS/s或更高,以留出滤波器过渡带。

参数 符号 说明 GNURadio中的体现
采样率 fs 每秒采集的样本数 USRP Source / Sink 的 samp_rate 参数
奈奎斯特频率 fs/2 可无混叠表示的最高频率 频谱图中X轴的最大值
信号带宽 BW 信号占用的频率范围 滤波器模块的过渡带设计依据
混叠 — 高频分量折叠到低频 采样率设置不当导致频谱异常
工程风险提示:在GNURadio中,如果USRP Source的采样率设置过低,且射频前端没有足够的抗混叠滤波,你会在频谱上看到“鬼影”信号——这些并非真实存在的信号,而是混叠产物。排查时,先检查采样率是否满足 fs > 2 × 信号最高频率,再检查USRP的模拟前端增益和滤波设置。

2.3 IQ调制与解调:复数信号的工程实现

IQ调制(In-phase / Quadrature Modulation)是现代数字通信的基石。它将数字比特流映射到两个正交的载波分量上:I路(同相,cos分量)和Q路(正交,sin分量)。通过控制I和Q的幅度,可以同时调制载波的幅度和相位,从而高效利用频谱资源。在数学上,IQ调制信号可以表示为:

s(t) = I(t) · cos(2πfct) - Q(t) · sin(2πfct)

其中 fc 为载波频率。在SDR中,IQ数据通常以复数形式 I + jQ 表示。GNURadio中的Constellation Modulator模块就是典型的IQ调制器:它将输入的比特流映射为复数符号(如QPSK的四个星座点),然后通过脉冲成形滤波器输出基带IQ波形。接收端的Constellation Demodulator则执行相反操作,从基带IQ样本中恢复出比特流。

IQ解调的关键在于正交下变频。接收端将收到的射频信号分别乘以本振的cos和sin分量,再通过低通滤波器,即可分离出I和Q基带分量。这个过程在USRP内部由模拟混频器和ADC完成,输出到GNURadio的就是已经下变频到基带的IQ样本流。在GNURadio中,你可以通过Float To Complex模块将两个浮点流合并为复数IQ流,或通过Complex To Float将其拆分。

实战经验:在GNURadio中观察一个QPSK信号,使用Constellation Sink模块可以看到四个清晰的星座点簇。如果星座图旋转或模糊,通常是因为接收端的载波频率偏移(CFO)未校正。此时需要加入Costas Loop模块进行载波同步。这是SDR接收链路中最常见的调试步骤之一。

2.4 数字下变频(DDC)与数字上变频(DUC)

DDC和DUC是SDR系统中连接高速ADC/DAC与低速基带处理之间的桥梁。ADC输出的数据率往往很高(如61.44 MS/s),而基带信号处理(如解调、解码)通常希望在较低的采样率下进行,以降低计算量。DDC的作用就是将数字中频或射频信号搬移到基带,并降低采样率;DUC则相反,将基带信号插值并搬移到中频或射频。

一个典型的DDC链路包含三个核心模块:数字控制振荡器(NCO)、混频器和抽取滤波器。NCO产生数字正弦/余弦样本,与输入信号相乘,实现频谱搬移。随后,CIC(级联积分梳状)滤波器或FIR滤波器进行低通滤波和抽取,将采样率降低到基带处理所需的速率。在GNURadio中,Frequency Xlating FIR Filter模块集成了这些功能:你可以设置中心频率(即NCO的频率)和抽取因子,一步完成下变频和滤波。

DUC的过程则相反:基带IQ信号先经过内插滤波器(如CIC插值器)提高采样率,再与NCO产生的载波相乘,搬移到期望的中频或射频频率。在USRP的发射链路中,DUC通常由FPGA硬件完成,但GNURadio中的Rational Resampler和Frequency Xlating FIR Filter也可以实现软件DUC,用于驱动某些不支持硬件DUC的SDR设备。

功能 DDC(接收) DUC(发射)
输入信号 高速ADC样本(中频/射频) 低速基带IQ样本
输出信号 低速基带IQ样本 高速中频/射频样本
关键操作 混频(NCO)+ 低通滤波 + 抽取 内插 + 低通滤波 + 混频(NCO)
GNURadio模块 Frequency Xlating FIR Filter, Rational Resampler Rational Resampler, Frequency Xlating FIR Filter
典型应用 从宽带信号中提取窄带信道 将基带信号搬移到指定发射频率

2.5 案例拆解:使用GNURadio实现FM广播信号的DDC接收

为了将上述理论串联起来,我们以一个经典的FM广播接收案例来演示DDC的实际应用。假设我们要接收中心频率为 98.2 MHz 的FM电台,信号带宽约为 200 kHz。

初始参数与约束:USRP B200的ADC采样率设为 2 MS/s(满足奈奎斯特条件,且留有余量)。射频前端将98.2MHz信号下变频到基带,输出2MS/s的IQ样本流。此时,整个0~1MHz范围内的所有信号(包括多个FM电台)都混叠在基带中。

目标:从这2MS/s的宽带信号中提取出98.2MHz这一个FM电台的200kHz窄带信号,并将其采样率降低到200kS/s,以便后续的FM解调模块处理。

操作步骤:

  1. 在GNURadio中,使用USRP Source模块,设置 samp_rate = 2e6,center_freq = 98.2e6。
  2. 添加Frequency Xlating FIR Filter模块。设置 center_freq = 0(因为信号已经在基带),decimation = 10(将2MS/s降为200kS/s),taps 使用默认的低通滤波器设计。
  3. 将滤波器的输出连接到WBFM Receive模块,设置 quad_rate = 200e3。
  4. 最后连接Audio Sink,设置采样率为 200e3,即可听到广播声音。

结果与分析:通过Frequency Sink观察,可以看到滤波前频谱上有多个FM电台的谱峰;滤波后,只有目标电台的频谱被保留,其他信号被滤除。抽取操作将采样率降低,减少了后续处理的计算量。如果省略DDC直接以2MS/s送入WBFM Receive,虽然也能工作,但CPU占用率会显著增加,且可能因采样率不匹配导致解调质量下降。

常见误区:初学者常将DDC中的“下变频”与“抽取”混为一谈。实际上,下变频是频谱搬移(乘以NCO),抽取是降低采样率。两者可以独立进行,但在Frequency Xlating FIR Filter中通常合并执行。另外,抽取前必须进行抗混叠滤波,否则高频噪声会折叠到目标频带内。

2.6 总结与复盘

本章的核心逻辑可以概括为一条链路:射频信号 → 模拟下变频 → ADC采样 → DDC → 基带IQ处理 → DUC → DAC → 模拟上变频 → 射频信号。采样定理决定了数字化的边界,IQ调制提供了高效的频谱利用方式,而DDC/DUC则实现了采样率与频谱位置的灵活变换。在GNURadio中,这些理论最终体现为一个个可拖拽的模块:USRP Source、Frequency Xlating FIR Filter、Rational Resampler、Constellation Modulator等。

在实际项目调试中,建议遵循以下复盘清单:

  • 检查采样率:确认 fs 是否大于信号最高频率的两倍,并留有10%~20%的过渡带余量。
  • 观察频谱:使用Frequency Sink确认信号位置和带宽,判断是否存在混叠或镜像。
  • 验证IQ平衡:如果星座图出现镜像或偏移,检查I/Q增益不平衡或本振泄漏。
  • 优化DDC参数:合理选择抽取因子和滤波器阶数,在计算效率和信号质量之间取得平衡。