滤波器(数字&模拟)

一、模拟滤波器

二、数字滤波器

2.1 IIR

1.1 差分方程

一阶IIR高通滤波器的差分方程为:

y[n]=a0(y[n1]+x[n]x[n1])y[n] = a_0 \cdot (y[n-1] + x[n] - x[n-1])

其中 a0a_0 是衰减系数,取值范围 0<a0<10 < a_0 < 1a0a_0 越接近 1,截止频率越低;越接近 0,截止频率越高。

1.2 Z域传递函数

对差分方程做Z变换,得到传递函数:

H(z)=a01z11a0z1H(z) = a_0 \cdot \frac{1 - z^{-1}}{1 - a_0 \cdot z^{-1}}

1.3 截止频率

fc=fs(1a0)2πa0f_c = \frac{f_s \cdot (1 - a_0)}{2\pi \cdot a_0}

1.4 FPGA实现

在工程中,a0a_0 可以使用 Q1.15 定点格式表示,寄存器值为 23807,对应实际值 23807/327680.726723807 / 32768 \approx 0.7267。在 fs=40MHzf_s = 40\text{MHz} 采样率下,截止频率约为 2.39 MHz。

滤波器核心计算拆分为流水线结构,利用移位和加减法避免乘法器消耗(仅系数乘法使用DSP48)。

1.5 频率响应交互演示

拖动下方滑块可以调节 a0a_0 系数和采样率,实时观察幅度响应曲线和各频率点的衰减量:

1.6 小结

一阶IIR高通滤波器的滚降斜率只有 -20 dB/dec,过渡带较宽,但对于去除ADC直流偏移和低频漂移的场景完全够用。128通道并行实现仅消耗 128 个 DSP48,资源效率很高。