1. 前言
数字滤波器凭借高精度、稳定性、灵活编程等特点,在通信、音频、图像等领域得到了广泛应用。
今天,我们将探索一下数字滤波器的理论基础,运用 Python(SciPy 库)构建一个常见类型的滤波器 —— FIR 滤波器。希望借此让大家了解数字滤波器这一强大工具,开启信号处理的全新旅程。
2. 数字滤波器简介
滤波器的核心作用是对信号的频率成分进行筛选和阻挡。接下来,我们将从滤波器的频率响应、时域(冲激响应)、运算(卷积)以及硬件实现等方面展开介绍。
2.1 频率响应
滤波器对不同频率的响应可以划分为通带、过渡带和阻带,典型情况如下:

图1 滤波器频率响应,来源[1]
一些重点关注的指标有:
- 通带(Passband):在此区域内,信号的频率成分基本无变化通过。
- 阻带(Stopband):在此区域内,信号频率成分会遭受大幅度衰减。
- 过渡带(Transition band):位于通带与阻带之间,信号的频率成分会有一定程度的衰减,但不会被大幅剔除。
- 纹波(Ripple):描述滤波器在频带内增益的波动情况。纹波越小,说明滤波器的响应越稳定,也就越符合理想要求。
- 相位(Phase):输入信号经过滤波器后会产生相位变化。在线性相位滤波器中,所有频率的信号都会经历同样的相位变化。
一般而言,纹波与过渡带之间存在着权衡关系。即纹波越小,过渡带就越大;反之,纹波越大,过渡带则越小。因此,在设计滤波器时需要折中考虑。
2.2 冲激/阶跃响应
滤波器在时域上也有表征,称为 “冲激响应”(Impulse Response)。之所以这样命名,是因为当我们将一个脉冲信号输入到滤波器时,观察到的时域输出信号就是 “冲激响应” 的样子。
此外,我们还经常会看到 “阶跃响应”(Step Response),它是指当输入为阶跃信号时,时域输出信号的形态。阶跃响应是冲激响应的累加之和,反映了滤波器从初始到稳定的变化,有点类似于设备的开关机过程。
下图展示的是图 1 所示滤波器的冲激响应与阶跃响应:

图2 冲激响应与阶跃响应,来源[1]
冲激响应分为有限和无限两种,具有有限冲激响应的是 FIR (Finite Impulse Response) 滤波器,具有无限冲激响应的是 IIR (Infinite Impulse Response) 滤波器。
本文重点关注 FIR 滤波器,其冲激响应中的每个脉冲称为 “抽头”(Tap)。例如,上图所示的是一个约 100 抽头的 FIR 滤波器。一旦确定了抽头系数,DSP 程序就可以做相应的运算了(见下文)。
2.3 卷积运算
之所以提及 “冲激响应”,是因为对信号进行滤波时,只需将冲激响应与信号进行 “卷积”(Convolution)即可。当然,也可以通过频域 “乘法” 实现滤波,从结果看,两者是等价的。只不过在实际

数字滤波器竟如此通俗易懂!&spm=1001.2101.3001.5002&articleId=146329681&d=1&t=3&u=fc8b63c6ef0e41e180e09b084732464f)
1383

被折叠的 条评论
为什么被折叠?



