3. 实时信号处理理论基础
星载FPGA实时信号处理的所有设计决策,最终都要回到几个基础理论约束上:信号以什么速率被采样才不丢信息、滤波器如何在有限字长下保持稳定、FFT如何把运算量从平方级降到对数级、多速率结构如何在不改变频谱的前提下降低计算负担,以及“实时”到底用什么指标衡量。本节把这些理论串成一条可落地的分析链,为后续的FPGA实现提供量化依据。
采样定理与星载采样链的边界
奈奎斯特—香农采样定理指出:对最高频率为 fmax 的带限信号,若采样率 fs > 2fmax,则可由样点无失真恢复原信号。工程上通常留 10%~20% 余量,并配合抗混叠滤波器把 fs/2 以上的分量压到 ADC 量化噪声以下。星载场景的特殊性在于:接收带宽往往由任务决定(例如某合成孔径雷达系统瞬时带宽 60 MHz),中频或射频采样率需满足 fs ≥ 120 MSPS,同时 ADC 的有效位数、时钟抖动和孔径抖动会直接恶化带内信噪比。
一个常被忽略的约束是:采样率越高,后续FPGA每个时钟周期要处理的样点越多,乘法器、BRAM带宽和功耗同步上升。因此实际设计中常采用“带通采样”或“欠采样”,把信号搬移到较低的奈奎斯特区,用较低的 fs 完成数字化。例如中频 140 MHz、带宽 20 MHz 的信号,可选 fs = 80 MSPS,使 140 MHz 落入第二奈奎斯特区(80~160 MHz),采样后频谱折叠到 20 MHz 附近,既避开低频闪烁噪声,又降低数据率。判断依据是:折叠后的中心频率 f0 满足 0 < f0 < fs/2,且整个带宽不跨越 fs/2 的整数倍边界。
数字滤波:从差分方程到FPGA结构
FIR 滤波器的差分方程为 y[n] = Σk=0N-1 h[k]·x[n-k]。其优势是线性相位(h[k] 对称时)和绝对稳定,适合星载对相位一致性要求高的场合。设计时先由指标确定阶数:过渡带宽度 Δf 与阶数 N 近似满足 N ≈ (阻带衰减(dB) − 8) / (2.285·Δω),其中 Δω = 2πΔf/fs。例如 fs = 80 MSPS、通带 10 MHz、阻带 14 MHz、阻带衰减 60 dB,则 Δf = 4 MHz,Δω ≈ 0.314 rad,估算 N ≈ 72,取 79 或 80 阶(对称结构可省一半乘法)。
IIR 滤波器用较少阶数获得陡峭过渡带,但存在极点,需检查稳定性:所有极点必须位于单位圆内。定点实现时,系数量化误差可能把极点推出单位圆,或引起极限环振荡。工程做法是采用二阶节(SOS)级联,每节单独缩放,并在FPGA中用饱和算术而非回绕。对于星载辐射环境,还要考虑单粒子翻转对状态寄存器的影响,常对关键状态加三模冗余或周期复位。
FFT:运算量、结构与定点误差
DFT 直接计算需 N2 次复数乘法,而基-2 FFT 只需 (N/2)·log2N 次。以 N = 4096 为例,直接 DFT 约 1678 万次复数乘法,FFT 约 2.46 万次,相差约 680 倍。FPGA 实现时通常选用流水线型(Pipelined Streaming)结构:每级一个基-2 蝶形单元加旋转因子乘法,吞吐率可达每时钟一个样点,代价是 N·log2N/2 个存储单元和较长的流水延迟(约 N 个时钟量级)。
定点 FFT 的核心问题是动态范围。每级蝶形输出幅度可能增长最多 2 倍,M = log2N 级后理论增长 2M = N 倍。常用策略是每级右移 1 位(缩放 1/2),总缩放 1/N,保证不溢出但损失约 log2N 位信噪比;也可采用块浮点(Block Floating Point),每级检测最大值再统一移位,兼顾动态范围与精度。判断输出是否可信,可观察无信号时的本底噪声底是否随缩放策略变化,以及单频输入下峰值旁瓣比是否达到理论窗函数值。
多速率信号处理:抽取、内插与滤波器组
抽取(Decimation)将采样率降低 M 倍,但直接丢弃样点会造成频谱混叠,必须先低通滤波再抽取。内插(Interpolation)先补零再低通滤波,把采样率提高 L 倍。两者结合可实现任意有理数倍采样率变换 L/M。多相分解是高效实现的关键:把长度为 N 的滤波器按 M 相拆成 M 个子滤波器,每个长度 N/M,抽取后只需在低速率侧计算,运算量降为原来的 1/M。
星载处理中,多速率结构常用于:宽带接收后先抽取到适合处理的速率、多个窄带通道用滤波器组(如 DFT 滤波器组或多相FFT)并行分离、以及上变频发射前的内插。设计时要保证各级滤波器通带纹波和阻带衰减的级联总指标满足系统要求,并注意群延迟的累积——这对实时性度量有直接影响。
实时性度量、吞吐率与资源约束
“实时”在星载处理中通常定义为:处理延迟不超过系统允许的时限,且吞吐率不低于输入数据率。三个核心指标是:
- 吞吐率:单位时间处理的样点数,单位 MSPS。必须 ≥ 输入数据率,否则数据积压。
- 延迟:从样点进入处理链到结果输出的时间,包括流水线延迟、缓存延迟和算法本身的分组延迟。例如 4096 点流水线 FFT 的延迟约为 4096 个时钟,若时钟 200 MHz,则约 20.5 μs。
- 资源:DSP48 乘法器、BRAM、LUT、触发器数量,以及功耗和散热。星载FPGA资源有限,需在吞吐率和面积之间折中,例如用时分复用乘法器换取更低资源占用,但会降低吞吐率。
判断设计是否满足实时性,可建立简单的不等式:fclk / (每样点所需时钟数) ≥ 输入样点率。若每样点需 4 个时钟完成滤波和 FFT 蝶形,时钟 200 MHz,则最大吞吐率 50 MSPS。若输入为 80 MSPS,就必须并行 2 路或提高时钟。资源约束则通过综合报告核对:DSP 使用率建议不超过 80%,BRAM 不超过 85%,并预留辐射加固和在线重构的空间。
把上述关系落到具体设计上,可以按以下顺序推进:先由任务带宽和动态范围确定采样率与 ADC 位数;再根据通带、阻带和相位要求选择 FIR 或 IIR,并估算阶数;接着确定 FFT 点数、窗函数和缩放策略;然后用多相抽取或滤波器组把数据率降到后端可处理的水平;最后用吞吐率不等式和综合报告核对实时性与资源。每一步的中间结果都应记录,例如滤波器系数、FFT 缩放因子、各级抽取比,这些是后续FPGA代码和测试向量生成的直接输入。
需要强调的是,理论指标与FPGA实现之间往往存在差距:理论 FFT 运算量假设复数乘法器无限多,而实际器件 DSP 数量有限;理论延迟忽略布线延迟和跨时钟域同步。因此,在完成算法级设计后,应尽早用定点仿真验证信噪比和溢出概率,再用综合与布局布线报告核对时序收敛和资源占用,形成“理论估算—定点仿真—硬件实现”三层验证闭环。