数字滤波器是一类允许用户对音频信号的某些频率进行一定操作的效果器
线性时不变 (Linear Time Invariant,简称 LTI) 允许用户对输入的音频产生固定的调整某些特定频段或产生相移,是编曲实践中应用最为广泛的滤波器,其余类型的滤波器可以通过某种视角视作 LTI 滤波器。
设我们存在数字音频流 X[n],一般地,我们可以定义线性时不变数字滤波器为如下形式的差分方程:
k=0∑NakY[n−k]=k=0∑MbkX[n−k]
其中 Y[n] 为输出信号,且要求 a0=1。如果差分方程包含历史输出(或称反馈项)信号(即 ak=0),则称之为无限脉冲响应的 (Infinite Impulse Response,简称 IIR) ,若仅与输入有关于历史输出无关,则称之为有限长脉冲响应的 (Finite Impulse Response, 简称 FIR) 。对于未定义部分(如负数指标)实践中一般置零。
对上述差分方程进行 Z 变换得到对应的系统函数(传递函数) H(z) 满足
H(z)=1+n=1∑Nanz−nm=0∑Mbmz−m
由此我们可以将原差分方程利用卷积写作
Y[n]=(X∗h)[n]
其中 h[n] 即冲激响应满足
H(z)=Z{h}(z)
结合卷积定理可知
Z{Y}(z)=H(z)⋅Z{X}(z)
从而得到结论:传递函数描述了滤波器对信号各个频段的影响,其中 ∣H(z)∣ 表示其幅度响应,表示滤波器对对应频段的信号的增益或衰减倍数,argH(z) 表示其相位响应,表示滤波器对信号的相位影响。
需要注意的是冲激响应可能无穷长(对应 IIR 滤波器)实践中一般通过加窗或截断计算来进行计算。
种类 |
定义 |
理想冲激响应 |
备注 |
低通 / 高切 (Lowpass / Highcut) |
仅允许低于截止频率 f 的频段通过 |
h[n]=πnsin(2πfn). |
无 |
高通 / 低切 (Highpass / Lowcut) |
仅允许高于截止频率 f 的频段通过 |
h[n]=δ[n]−πnsin2πfn. |
δ[n] 是单位冲激函数 |
带通 (Bandpass) |
仅允许在两个给定频率 [f1,f2] 之间的频率通过 |
h[n]=πnsin2πf2n−πnsin2πf1n. |
无 |
带阻 (Notch) |
仅允许在两个给定频率 [f1,f2] 之外的频率通过 |
h[n]=δ[n]−(πnsin2πf2n−πnsin2πf1n). |
δ[n] 是单位冲激函数 |
全通 (Allpass) |
允许任意频率的分量通过,但会根据频率大小改变其相位 |
h[n]=(−a)n⋅u[n]. |
a 是可调节参数,要求 abs(a)≤1,u[n] 是单位阶跃函数,此处给出的是一阶全通滤波器的冲激响应 |
Peak |
增益给定频率 f 处的频率 |
h[n]=πcos(2πfn). |
无 |
Low-Shelf |
将所有给定频率 f 以下的频率放大 A 倍 |
h[n]=A⋅π2πfδ[n]+(A−1)nπsin2πfnu[n−1]. |
δ[n] 是单位冲激函数,u[n] 是单位阶跃函数 |
High-Shelf |
将所有给定频率 f 以上的频率放大 A 倍 |
h[n]=Aδ[n]−(A−1)πnsin2πfn. |
δ[n] 是单位冲激函数 |
梳状 (Comb) |
应用梳状滤波效应的滤波器 |
h[n]=n=0∑+∞akδ[n−kD]. |
δ[n] 是单位冲激函数,a,D 为可调节参数,此处给出的理想冲激响应为反馈结构 |