Low pass filter example by gnuradio
一句话:低通滤波器只让低频过、把高频衰减掉——但”衰减”不是一刀切,而是在截止频率附近平滑地滑下去。
一、背景:为什么第一个滤波器是低通
低通滤波器是信号处理里最基础的积木:通低频、阻高频。无论是抗混叠、限带宽还是去除高频噪声,都少不了它。
这篇文章用一个最小例子把它讲透:搭出流图 → 看频率响应 → 算清楚截止频率、过渡带宽、阻带衰减到底是怎么回事。
二、原理:滤波器的三个区
先建立一个心智模型。一个低通滤波器的幅频响应可以分成三段:
- 通带:从 0 到截止频率,信号几乎无损通过;
- 过渡带:从截止频率到阻带起始频率,幅度快速下降(注意:不是瞬间归零);
- 阻带:阻带起始频率以上,信号被大幅衰减抑制,通常要求 ≤ −60 dB。
所以低通滤波器不是”一刀切”,而是在截止频率附近平滑衰减——这正是 FIR 滤波器的特征。
三、动手:复现步骤
1. 需要的 block
- Signal Source(信号源)
- Low Pass Filter(低通滤波器)
- Throttle(限速)
- QT GUI Frequency Sink(看频谱)
- QT GUI Range(频率滑块)
2. 连接
按下图连接:

3. 参数设置
QT GUI Range
- id:
frequency - Default Value:
0 - Start:
-samp_rate/2 - Stop:
samp_rate/2
Signal Source
- Frequency:
frequency
Low Pass Filter
- Cutoff Freq:
samp_rate/4 - Transition Width:
samp_rate/8
为什么这么填?
samp_rate = 32k,所以samp_rate/4 = 8k(截止频率),samp_rate/8 = 4k(过渡带宽)。这样 8 kHz 以下通过,8 kHz 以上开始衰减。
4. 运行验证
运行后拖动频率滑块:frequency 就是正弦波本身的频率,你可以直接看到波形在通带/过渡带/阻带里的变化。
四、深入:算一遍过渡带
光看不够,我们来算。已知:
- 采样率
- 截止频率
- 过渡带宽
- 阻带起始频率
- 阻带衰减典型值
- 截止处衰减
过渡带内的幅度近似按线性衰减:
含义很直白:
- 从截止频率处的 −3 dB 出发;
- 随频率线性增加衰减量;
- 到阻带起点(
)时刚好达到 −60 dB。
实际数值会有出入:因为你代入计算时会发现和实测差得比较多,原因是 GNURadio 的低通滤波器用的是真实的 FIR 频率响应,还叠加了窗函数的影响。上面这个线性公式只是”教科书近似”,用来建立直觉,不是精确解。
五、常见坑与边界
- 过渡带越窄,滤波器阶数越高。过渡带宽从 4 kHz 缩到 1 kHz,需要的抽头数会成倍增加,计算量随之暴涨——窄过渡带是有代价的。
- 截止频率不能超过奈奎斯特频率(
)。填到 samp_rate/2以上没有意义。 - 别指望”瞬间归零”。截止频率附近一定是平滑滚降的,这是 FIR 滤波器的物理特性。
- 窗函数会影响实际衰减。想逼近理论上的 −60 dB,得配合合适的窗函数和足够多的抽头。
六、结论
低通滤波器 = 通带 + 过渡带 + 阻带三段式。设计时你在做的其实是一个取舍:过渡带越窄、衰减越陡,需要的抽头就越多、计算量就越大。理解了这一点,后面所有滤波器设计(包括 Taps)都是在这个取舍里做选择。