1. 为什么需要多速率信号处理?
在直接射频采样SDR中,ADC以数GSps的速率采样,而基带信号带宽可能仅为数十MHz。若在整个处理链路中保持GSps级采样率,后续的滤波、解调等模块将承受巨大的计算负担,功耗和资源消耗难以接受。
多速率信号处理通过在链路中适时降低(抽取)或提高(插值)采样率,使各模块工作在最优速率下,实现计算效率的最大化。
2. 抽取:降低采样率
2.1 抽取的数学模型
抽取因子为M的降采样操作定义为:y[n] = x[Mn],即每M个样本保留一个,丢弃其余M-1个。
从频域看,抽取会使频谱在频率轴上扩展M倍。原始信号中高于f_s/(2M)的频率分量会混叠到基带(0 ~ f_s/(2M)),产生不可恢复的失真。因此,抽取前必须使用抗混叠滤波器滤除这些高频分量。
2.2 多相分解------高效抽取的实现
直接实现抽取(先滤波、后降采样)是计算浪费的------滤波器计算出的M-1个样本随后被丢弃。多相分解将滤波器系数按相位分为M组,每组对应一个降采样相位,每次只计算被保留的那个相位的输出。
数学上,将滤波器H(z)分解为M个子滤波器:
H(z) = E0(z^M) + z^(-1)·E1(z^M) + ... + z^(-(M-1))·E(M-1)(z^M)
其中Ek(z)为第k相子滤波器。抽取时,只需计算与降采样相位k对应的子滤波器输出,计算量降为原来的1/M。
3. 插值:提高采样率
3.1 插值的数学模型
插值因子为L的上采样操作定义为:在每两个样本之间插入L-1个零值,即y[n] = x[n/L](当n为L的整数倍),否则y[n]=0。
上采样会在频谱中产生L-1个镜像,位于f_s/L、2f_s/L、...、(L-1)f_s/L处。这些镜像需要通过镜像抑制滤波器(低通)滤除,以恢复平滑波形。
3.2 多相分解在插值中的应用
与抽取类似,插值也可用多相分解实现高效计算。将滤波器系数按相位分组,每个输出样本仅需与一个子滤波器卷积,计算量降为原来的1/L。
4. 半带滤波器------多速率处理的主力
4.1 半带滤波器的特性
半带滤波器是抽取/插值系统中应用最广泛的滤波器类型,具有以下特性:
-
通带与阻带对称:通带边缘f_p与阻带边缘f_s满足f_p + f_s = f_s/2
-
约一半系数为零:除中心系数外,每隔一个系数为零,大幅降低乘法器需求
-
系数对称:线性相位,群延迟恒定
-
幅度响应在f_s/4处为-6dB:这是半带滤波器的定义性特征
4.2 半带滤波器的幅频响应分析
半带滤波器的幅频响应具有如下对称性:|H(e^(j(π-ω)))| = 1 - |H(e^(jω))|。这意味着在通带边缘f_p处,阻带衰减恰好等于通带纹波(以线性刻度计)。
设计半带滤波器时,需在以下参数间权衡:
-
过渡带宽度:越窄所需的滤波器阶数越高
-
通带纹波:越小所需的阶数越高
-
阻带衰减:越大所需的阶数越高
对于2倍抽取/插值,半带滤波器是最优选择。对于4倍、8倍等更高的抽取/插值因子,可采用半带滤波器级联实现。
4.3 多级半带级联的频响累积效应
当多级半带滤波器级联时,总通带纹波是各级纹波之和(以dB计),总群延迟是各级群延迟之和。例如,三级半带级联(8倍抽取),若每级通带纹波为0.1dB,总纹波可达0.3dB;若信号带宽接近通带边缘,这一累积效应可能导致带内平坦度超标。因此,在多级设计中需将各级指标分配得更严格,或适当放宽总指标。
5. CIC滤波器------大倍数抽取/插值的低成本方案
5.1 CIC滤波器结构
级联积分梳状(CIC)滤波器由积分器级和梳状器级级联而成,其传递函数为:
H(z) = [(1 - z^(-RM)) / (1 - z^(-1))]^N
其中R为抽取/插值因子,M为差分延迟(通常为1或2),N为级联级数。
CIC滤波器的核心优势是无需乘法器------积分器和梳状器仅由加法器和寄存器构成。这使得CIC非常适合在采样率最高的位置(DDC的第一级或DUC的最后一级)实现大倍数(如40倍)速率变化。
5.2 CIC的幅频响应与补偿
CIC滤波器的幅频响应呈sinc^N形状,在通带内存在明显的"下垂"。以N=4、R=40为例,在通带边缘(f = f_s/(2R))处,衰减可达3~5dB。对于宽带信号,这种下垂会严重恶化带内平坦度。
补偿方法:在CIC后级联一个FIR补偿滤波器,其频率响应为CIC响应的倒数。补偿滤波器的阶数通常较低(10~20阶),资源开销小。
6. 抽取/插值链的设计实例
以100MHz带宽信号、ADC采样率5GSps、目标基带采样率250MHz为例(总抽取因子20):
方案A:单级抽取
-
滤波器阶数:约300阶
-
计算量:300 × 250MHz = 75GMAC/s
方案B:三级级联(4×5)
-
第一级:4倍抽取,采样率5GSps→1.25GSps,滤波器阶数80阶,计算量80×1.25G=100GMAC/s
-
第二级:5倍抽取,采样率1.25GSps→250MHz,滤波器阶数120阶,计算量120×250M=30GMAC/s
-
总计算量:130GMAC/s(高于单级?需要优化)
方案C:四级级联(2×2×5)
-
第一级:2倍抽取,半带滤波器,阶数20阶,计算量20×2.5G=50GMAC/s
-
第二级:2倍抽取,半带滤波器,阶数20阶,计算量20×1.25G=25GMAC/s
-
第三级:5倍抽取,可采用CIC+补偿FIR,CIC无乘法器,补偿FIR约30阶,计算量30×250M=7.5GMAC/s
-
总计算量:约82.5GMAC/s,优于单级方案
结论:通过合理的级联分解和CIC使用,可将计算量降低30%以上,同时减少DSP切片占用。


7. 多速率处理在多通道系统中的应用
在数字阵列系统中,多速率处理面临额外的挑战:所有通道的抽取/插值滤波器需保持相同的群延迟,否则会引入通道间相位误差。对于级联滤波器结构,各级的群延迟是累加的,需精确计算并确保各通道一致。
同步策略:所有通道的抽取/插值滤波器在同一SYSREF边沿复位,确保滤波器状态从同一初始值开始累积。对于无限长冲激响应(IIR)类滤波器(如CIC),需额外关注状态初始化。
8. 小结
多速率信号处理是连接高速ADC/DAC与低速基带处理的桥梁。理解抽取与插值的频域特性、多相分解的高效实现、半带滤波器的对称优势、以及CIC滤波器的无乘法器结构,有助于设计高计算效率的DDC/DUC链路。下一篇文章将深入讲解数字滤波器的FPGA实现,包括FIR/IIR的选择、定点数量化、以及DSP48E2的高效映射。