FIR滤波器的频率响应(FIR滤波器的基础概念及在扬声器中的应用指南)
编者语:本文是关于FIR滤波器基础概念的硬核技术文章,篇幅较长,建议您沐浴更衣后,静心观看。作者运用简单的图形化的方式讲解了FIR滤波器系数、抽头、脉冲响应这些基本的核心概念,并直观演示了最小相位、线性相位、最大相位和混合相位FIR滤波器之间的差别。这些内容将会为你FIR技术应用之路做好重要理论准备。
文/Eclipse Audio创始人 Michael John
FIR(有限脉冲响应)滤波并不是一项新技术,由于近年来微处理器和DSP硬件在性能上显著提高,而成本不断降低,制造商越来越多地在扬声器处理器和基于DSP的放大器中采用FIR滤波。
FIR滤波的优点包括对滤波器的幅值和相位特性的任意和精细控制、对幅值和相位的独立控制、以及实现最大相位特性的可能(代价是更大的延时)。而其主要的缺点是效率:FIR滤波器通常比IIR(无限脉冲响应)滤波器占用更多的CPU(DSP)资源。对于非常长的FIR滤波器,频域分段(Segmented FrEQuency Domain)和多速率(Multi-rate)方法有助于减少计算负荷,但这些方法的算法复杂度也更高。
在专业音频领域,人们经常会提到FIR滤波器(FIR filter)和FIR滤波(FIR filtering),比如:
•线性相位分频器或线性相位“砖墙”分频滤波器
•非常长的基于最小相位FIR的系统EQ
•号角校正滤波
虽然这些应用场景显示了FIR的部分用途,但FIR滤波的能力远不止于这些,特别是其独立控制幅值和相位的能力和混合、最大相位特性(mixed&maximum phase characteristics)。
那么,什么是FIR滤波?它与常见的IIR滤波有什么区别呢?本文旨在回答这些问题,但首先需要介绍数字音频中的一些基本概念。如果你已经学习过数字信号处理,这些基础概念你应该了然于胸。请原谅我省略了一些细节,并对一些复杂概念作了简化处理。
1、数字音频的关键概念
采样(Sampling)
在数字音频中,声音波形是通过采样来表示的。模数转换器(ADC)测量或采样一个模拟信号,并为每个样本分配一个数值。人类通常能听到20 Hz到20 kHz之间的频率(1Hz即每秒一个周期)。为了用数字来完整表达该频率范围,ADC对该音频波形采样的频率至少两倍于最高可听频率。因此,常见的采样率为44.1 kHz和48 kHz,或这些采样率的倍数,如88.2kHz, 96 kHz, 192 kHz和384 kHz(专业音频中可能采用非常高的采样率,其原因本文不作探讨)。采样率的一半称为奈奎斯特频率(Nyquist frequency)。比如,48 kHz的采样率的奈奎斯特频率为24 kHz。
数字滤波(Digital Filtering)
数字滤波是改变数字音频信号的数学过程。在每次采样时间间隔——对于48 kHz的采样率,间隔为1/48000秒,即20.83微秒——时域数字滤波器以当前的输入样本和此前的输入样本,除以(或乘以)的特定的数字(称为滤波器系数),并将乘除计算的结果求和。
让我们看一些例子。
例:“平均”滤波器
最简单的数字滤波器之一,是取当前样本和上一个样本的平均值。从概念上讲,就是:
输出样本 = (输入样本 前一个输入样本) / 2
如图所示,我们可以将该滤波器表示为:
数字平均滤波器流程图
我们也可以用方程将其表示为:
式中
•x[n]是当前时间间隔的输入样本,样本序号为n,
•x[n-1]是前一时间间隔的输入样本,样本序号为n-1,
•y[n]是当前时间间隔的输出样本,输出样本序号为n,
•数值“0.5”是滤波系数。
在继续之前,有必要暂停一下,考虑一下上述滤波器的脉冲响应和频率响应。
脉冲响应和频率响应
设备的脉冲响应——不论是模拟滤波器、数字滤波器,还是扬声器,甚至是一个房间——是设备在一段时间内对输入脉冲的响应。理论上,我们可以把电压、数字或声学脉冲放入扬声器、放大器、处理器或房间,并记录其随时间推移的输出电压、数字信号或麦克风波形,以获得脉冲响应。然而,用于激励设备的脉冲信号,并不是在全频带上都具备足够的能量,因而不能在所有频率显著高于环境噪声,获得理想的信噪比。
目前,许多测量系统要么使用正弦扫频信号,要么使用周期粉红噪声(双通道FFT方法可使用任何音频信号——如调音台现场混音的输出——但那是另一回事)。扫频和粉噪信号在所有频率上都有足够的能量以达到合适的信噪比,从而能得到一个可用的、稳定的脉冲响应。
频率响应反映一个设备的频域特性,它是脉冲响应在频域对等物(有时会用传递函数这一术语来表示频率响应)。频率响应通常被绘制为图表,表现随频率变化的幅度(以分贝为单位)和相位(以度为单位)。频率响应也可以从幅度和相位转换为复数表示,每个频率点都有其对应的实部和虚部。
脉冲响应⇔频率响应
时域脉冲响应和频域频率响应具有内在联系,并且是设备的数学等价特征。我们可以用离散傅里叶变换(DFT)将脉冲响应转换至频域,用离散傅里叶逆变换(IDFT)将频域响应转换至时域。快速实现傅里叶变换的方法称为快速傅里叶变换(FFT)和快速傅里叶逆变换(IFFT)。受一些限制,我们在此不讨论其细节。
周期粉红噪声
周期粉红噪声是使用FFT方法产生的粉红噪声,当一遍又一遍地重复相同的噪声序列来连续播放该噪声时,按照原始FFT序列长度截取任意一段噪声都能确保是粉红噪声。循环噪声对于测量系统计算来说更容易,我们将在其他文章中再作讨论。事实上,采用FFT方法可以得到任何频谱形状的周期噪声。为了获得干净、稳定的测量结果,常使用与环境噪声频谱相匹配的频谱形状的噪声,这样所有频率都有较好的信噪比。
回到“平均”滤波器的例子
数字滤波器的脉冲响应是一个脉冲信号通过该滤波器后的输出,脉冲信号仅有一个样本值为1,其它的样本都是0。我们来计算一下脉冲响应。
平均滤波器的脉冲响应计算
数字平均滤波器的脉冲响应
对于该滤波器,前两个时间间隔的脉冲响应为[0.5 0.5],其他所有时间间隔的脉冲响应为零。它的长度是两个样本,由于这个长度是有限的,所以这个滤波器是一个有限脉冲响应滤波器,即FIR滤波器(Finite Impulse Response Filter)。
由于这个滤波器对样本进行了“平均”,我们能够预料到原本较大的样本差异被“平滑”掉,而较小的样本差异则基本不受影响。让我们看看频率响应的幅度变化。
平均数字滤波器频率响应。(fs = 48 kHz)
不难看出,平均滤波器是一个低通滤波器。低频(音频信号随时间变化较慢)不受影响,但高频会衰减。
例:“差分”滤波器
让我们看看如果我们改变平均滤波器中的一个系数的符号会发生什么。如图所示,我们可以将该滤波器表示为:
差分滤波器流程图
可以用方程式将其表示为:
这个滤波器会滤掉相同或相似的相邻样本,并突出差异较大的相邻样本。差分滤波器的频率响应与平均滤波器的频率响应截然不同。
差分数字滤波器频率响应。(fs = 48 kHz)
差分滤波器是一个高通滤波器。高频部分不受影响,但低频被衰减。
例:带反馈的数字滤波器
前面两个例子中的滤波器对采样作乘除后求和。如果我们取一个之前的或延迟的样本,对它进行乘除,将其计入到求和中,会发生什么?
下图为截止频率为1 kHz (fs= 48 kHz)的巴特沃斯一阶低通滤波器。需要注意的一点是,前一个样本的一部分被反馈或再循环到滤波器中。
滤波器阶数(Filter Order)
对于数字滤波器,滤波器阶数是在数字滤波器中使用的最大样本延迟量。
对于IIR(无限脉冲响应)低通和高通滤波器,频率响应滚降是6dB每倍频程乘以其阶数得到的。(例如,一个三阶高通滤波器的滚降特性是18dB/oct)
巴特沃斯1阶1kHz低通滤波器流程图(fs = 48 kHz)
我们来计算一下它的脉冲响应:
巴特沃斯1阶1kHz低通滤波器脉冲响应计算
巴特沃斯1阶1kHz低通滤波器脉冲响应 (fs = 48 kHz)
对于这个滤波器,脉冲响应的初始值为0.0615,即使随后的输入样本值为0,滤波器的输出也会衰减,但基本上会一直保持非零值。由于该滤波器的输出持续无限时间,因此该滤波器称为无限脉冲响应滤波器(Infinite Impulse Response),即IIR滤波器。
下图中较粗的蓝线表示该低通滤波器的频率响应。
巴特沃斯1阶1kHz低通和高通滤波器频率响应(fs =48 kHz)
上面的蓝色细线显示了截止频率为1 kHz (fs = 48 kHz)的1阶高通巴特沃斯滤波器的响应。下图显示了高通滤波器的信号流和系数。
巴特沃斯1阶1kHz高通滤波器流程图(fs = 48 kHz)
在后文中,低通滤波器和高通滤波器会简写为LPF或HPF。
2、FIR滤波器
下图显示了一个普通FIR滤波器的流程图。系数(C0到CN-1)是“抽头(taps)”,因此对于一个长度为N的FIR滤波器,有N个抽头和N-1个延时样本,滤波器的阶数是N-1。
FIR滤波器流程图
一个短的FIR滤波器作用有限,但是长一些的FIR滤波器通过将长时间的音频样本混合在一起,以可控的方式使不同频率的幅度和相位发生变化,从而变得非常强大。
3、IIR Biquad(IIR双二阶滤波器)
二阶IIR滤波器通常称为双二阶滤波器(Biquad Filter)。(下图为Direct Form 2版本流程图)
IIR双二阶滤波器流程图
双二阶滤波器是DSP中大多数IIR滤波的基础。搁架式均衡器、参量均衡器和全通滤波器都可以基于双二阶滤波器实现,不同阶数的高通和低通滤波器一般由双二阶滤波器级联来实现。通过将系数a2和b2都设为0,可以得到一个一阶滤波器。将系数a1和a2都设为0,将得到一个3抽头的FIR滤波器。
4、FIR和IIR滤波器对比
那么IIR和FIR滤波器有何不同呢?让我们看看一些典型的滤波器类型。
比较:FIR滤波器与1阶IIR LPF和HPF
下面的两幅图显示了1阶巴特沃斯IIR LPF和HPF,以及用于模仿IIR滤波器特性的不同长度的FIR滤波器的频率响应(采用的FIR设计方法包括对IIR滤波器的脉冲响应进行采样并进行DC校正)。这里的FIR滤波器需要40抽头或更长才能较为准确地接近IIR滤波器。10、20和30抽头FIR滤波器有明显的纹波,在幅度上与IIR滤波器响应相差可达6 dB。
FIR滤波器和巴特沃斯1阶1kHz低通滤波器频率响应对比(fs = 48 kHz)
FIR滤波器和巴特沃斯1阶1kHz高通滤波器频率响应对比(fs = 48 kHz)
比较:FIR滤波器与二阶IIR参量滤波器
下面的两幅图显示了1kHz IIR参量滤波器的频率响应,以及设计来模仿IIR滤波器的不同长度的FIR滤波器。两幅图所采用的FIR设计方法有所不同。第一种方法在低频有更大的误差,但在1kHz附近的匹配略好;第二种方法在1 kHz以上和以下均能更好匹配IIR,但在1 kHz附近的匹配略差。可见不论使用哪种方法,FIR滤波器都需要40个抽头或更长时间才能较为准确地模拟IIR参量滤波器。
对比1 kHz IIR参量滤波器和不同长度的FIR滤波器(10到50个抽头)的频率响应(fs = 48 kHz)
对比1 kHz IIR参量滤波器和不同长度的FIR滤波器(10到50个抽头)的频率响应,经DC校正(fs = 48 kHz)
5、FIR滤波器长度
由于FIR滤波器没有反馈(即没有使用循环样本),它们影响低频的能力与它们的长度成正比。滤波器的长度越长,可调节的频率就越低——不论是调整幅度还是相位,抑或是二者兼具。更高的Q值,或更陡峭的幅度和相位改变,也需要更长的FIR滤波器。
以下是384抽头和3072抽头FIR滤波器的例子,滤波器的响应是深蓝色和深红色的线。两个FIR滤波器都试图匹配一个扬声器所需的EQ曲线(浅蓝色和浅红色线)。差异图显示了理想滤波器和FIR滤波器的频率响应在幅度和相位上的差异。注意:
• 滤波器越长,FIR滤波器在实现EQ时就越有效,特别是对于低频。
•即使是3072抽头 FIR滤波器也无法在65Hz实现所需的高Q值幅度变化。(实际上,在48kHz采样率时,需要超过10000抽头长度的FIR滤波器才能匹配所需的EQ曲线。)
384抽头FIR滤波器
384抽头FIR滤波器的脉冲响应(深绿色)及其dB幅度响应(浅绿色)
384抽头FIR滤波器的频率响应(深蓝和深红色)与期待的理想滤波器频率响应(浅蓝和浅红色)
理想滤波器与384抽头FIR滤波器的频率响应差异
3072抽头FIR滤波器
3072抽头FIR滤波器的脉冲响应(深绿色)及其dB幅度响应(浅绿色)
3072抽头FIR滤波器的频率响应(深蓝和深红色)与期待的理想滤波器频率响应(浅蓝和浅红色)
理想滤波器与3072抽头FIR滤波器的频率响应差异
6、计算复杂度
前文中,我们提到FIR滤波器比IIR滤波器的计算量更大。让我们考虑上文中出现的一些简单的IIR和FIR滤波器。在估算和对比计算量时,我们通常要看数学运算——乘法和加法。我们假设处理器可以在同一操作中有效地执行“乘法”和“加法”,(由于加法运算次数少,译注)我们可以忽略加法,只计算和比较乘法。
上面的一阶IIR滤波器有3个系数需要与音频样本相乘,因此我们估计滤波器大约需要每秒执行3倍于采样率的计算。FIR滤波器有N个系数(其中N是滤波器的长度),因此我们估计FIR滤波器每秒进行采样率乘以N倍的计算。
下表比较了两类滤波器的运算量:
对比IIR与较短的FIR滤波器每秒钟的乘法计算量
(x前的数字表示FIR滤波器相对于同一行中IIR滤波器的乘法计算量的倍数)
在示例中,我们已经看到FIR滤波器大约需要40抽头或更多的采样才能接近IIR滤波器,从上表可知40抽头的FIR滤波器的计算成本相当于IIR滤波器的8倍或13.3倍。
典型的扬声器处理器输出通道
在撰写本文时,一个普通的高端扬声器处理器大约有24个IIR双二阶滤波器,分别用于高通、低通、搁架式滤波器和参量滤波器,以及2048抽头的FIR滤波器。下表比较了两者的计算成本。
对比典型的DSP输出通道的FIR滤波器和IIR滤波器的乘法计算量
(x前的数字表示FIR滤波器相对于IIR滤波器的乘法计算量的倍数)
7、FIR滤波器的优势
既然FIR滤波的计算成本如此之高,那它还有什么优势可言?FIR滤波主要有两个好处:
•独立控制幅度和相位
•更细致的均衡(更容易根据目标频率响应生成滤波器)
让我们分别来阐述这两点:
幅度和相位的独立控制
对于大多数IIR滤波器,相位响应与幅度响应有着内在的固有联系(IIR全通滤波器是个例外)。FIR滤波的一个巨大好处是能够独立地控制幅度和相位。下面是四个FIR滤波器的例子,它们具有相同的幅度响应,但相位响应截然不同。
例:最小相位FIR滤波器
之前我们讲解了IIR和FIR滤波器如何使用延时样本和系数来实现预期的频率响应变化。最小相位滤波器在施加均衡调整的同时,给音频信号造成的延时是最小的,这是现场扩声系统会采用基于长FIR滤波器的最小相位均衡器的原因之一。最小相位滤波器的一个特点是在脉冲响应开始处或接近开始处有较大的系数。以下两幅图显示了一个最小相位FIR滤波器——在100 Hz左右的高通和一些EQ,该FIR滤波器的长度是42.7 ms,滤波器延时则是可以忽略的。
最小相位2048抽头FIR滤波器的脉冲响应(深绿色)及其脉冲响应的dB幅度值(浅绿色);(fs = 48 kHz)
最小相位2048抽头FIR滤波器的频率响应;(fs = 48 kHz)
例:线性相位FIR滤波器
以下两幅图显示了具有相同幅度响应但相位为平直(或线性)的FIR滤波器。通过滤波器的信号延时,等于滤波器的峰值所在位置:这里是1024个样本或21.3 ms。
线性相位2048抽头FIR滤波器的频率响应;(fs = 48 kHz)
例:最大相位FIR滤波器
下面两幅图显示了具有相同幅度响应但具有最大相位的FIR滤波器。这与上面最小相位滤波器的相反,或称逆相位。脉冲响应是最小相位脉冲响应的时间反转,所以通过滤波器的整体延时大约等于滤波器的长度:42.7 ms。
最大相位2048抽头FIR滤波器的脉冲响应(深绿)及其脉冲响应的dB幅度值(浅绿)(fs = 48 kHz)
最大相位2048抽头FIR滤波器的频率响应;(fs = 48 kHz)
例:混合相位FIR滤波器
最后我们得到了具有相同频率响应的任意相位或混合相位FIR滤波器。通过滤波器的整体延时接近滤波器峰值的位置;约1480个采样,30.4 ms。峰值的位置则取决于FIR滤波器所需的特性以及如何在抽头长度限制内实现这些特性,本例中为2048抽头。
为了更好地理解这一点,请参阅FIR Designer教程。
混合相位2048抽头FIR滤波器的脉冲响应(深绿)及其脉冲响应的dB幅度值(浅绿)(fs = 48 kHz)
混合相位2048抽头FIR滤波器的频率响应;(fs = 48 kHz)
为什么我们要关注混合相位的特性? 这样我们就可以把扬声器的相位改造成我们想要的样子!
为什么需要独立的相位控制?
一个扬声器单元(驱动器)可视为一个最小相位滤波器(当比较其输入电信号和输出声信号时)。当使用最小相位EQ使扬声器驱动器的幅度响应更接近“平直”时,扬声器驱动器的相位也变平并接近线性相位(至少在扬声器的可听频带内如此)。
然而,在一个典型的多分频音箱中,IIR高通和低通滤波器、极性、延时和声学滤波器(如倒相孔),都增加额外的相位偏移,这种偏移是随频率而变化的。由于这些额外的相位偏移,一个多分频音箱可被视为一个最小相位系统加上一些全通滤波器。
由于最小相位均衡器无法影响全通滤波器的特性,我们可以借助FIR滤波将音箱的相位响应调整为我们期待的样子。
对相位的操控具有有许多应用,包括:
•扬声器的相位曲线线性化(尽管FIR滤波可明显改善扬声器的脉冲响应,但关于这是否对扬声器性能产生感知上的改善还存在一些争论);
•匹配同一产品线内不同型号扬声器的相位(和幅度),以及安装项目中匹配不同型号的扬声器,以便更容易地调试音箱群组和阵列;
•在阵列处理(用于观众区覆盖优化)和波束控制中操纵单个扬声器;
•分频优化,以提高多分频音箱在其覆盖角度范围内的频率响应一致性。
更细致的均衡(更容易创建滤波器)
根据扬声器测量结果,我们可以创建一个频率响应(幅度和相位),将扬声器塑造为设定的目标响应。由于脉冲响应和频率响应之间的内在关系,使用DFT(或FFT)方法可以很容易地根据目标频率响应生成FIR滤波器系数。目标响应可以是任意的,比如:
•如同粉噪一样的平直
•带有轻微高频滚降的粉噪平直(如影院X曲线)
•平直(线性)相位
•另一个扬声器的幅度和相位响应
•阵列处理计算得到的幅度和相位响应
以下四幅图展示了一款商用12寸加载号角的的两分频音箱的轴线测量结果,及2048抽头FIR滤波器将其频率响应塑造为平直的幅度响应(轻微的高频滚降)和通带内平直的相位响应。
一只12寸加载号角两分频音箱的轴线频率响应
(时基0按照高音驱动器对齐,因此低频响应在时间上相对超前,导致在分频频率附近表现出最大相位特性)
为上述12寸音箱创建的FIR滤波器的脉冲响应(深绿色)及其dB幅度(浅绿色)
为上述12寸音箱创建的FIR滤波器的频率响应
上述12寸加载号角两分频音箱经FIR滤波处理之后的频率响应
根据测量和测量平均设计EQ
在对音箱响应做精细的EQ过程中可能会出现一些问题。扬声器的频率响应随着测量话筒位置、扬声器位置、音量和温度甚至时间的变化而变化。根据单次测量而设计的精细EQ可能会使扬声器在测量的条件和位置上听起来更好,但可能在其他位置和其他条件下听起来更糟糕。因此在测量上必须非常小心,要确保测量条件符合扬声器的设计和实际使用条件——例如在整个预期覆盖区域内做测量。得到可靠测量值的一种方法,是对多个位置的测量值进行平均,该测量平均值可以作为有效的、精细的EQ的基础。
8、超低频的FIR滤波器
下图显示了一个例子,使用FIR滤波器对一个超低频音箱做EQ,并校正其低频的相位曲线(该音箱使用了IIR高通滤波器,以避免其音圈发生过大位移)。
在非常低的频率进行滤波需要非常长的滤波器,此处采用了5000个抽头,脉冲响应峰值显示延时为3500抽头,或72.9ms。本例只是对于FIR滤波器功能的一个简单演示,至于FIR处理后带来的低频群延时的改善,能否在听感上影响超低频音箱的冲击力,则有待验证。由于该FIR滤波器延时较大,因此不太可能被用于现场扩声场景中,但在电影院和家庭影院应用中可能有用。
在FIR滤波之前的超低频音箱频率响应
(双18ʺ,测量时系统设置了一个 30Hz,18dB/oct巴特沃斯IIR高通滤波器)
FIR抽头数为5000,3500个样本延时
用于EQ,相位校正和LPF分频的FIR滤波器的频率响应(FIR抽头数为5000,3500个样本延时)
FIR滤波处理后的的超低频音箱频率响应
9、设计和加载自定义FIR滤波器
越来越多的人认识到音频FIR滤波的优势和灵活性,加上微处理器和DSP的性价比不断提高,促使越来越多的产品具有FIR滤波功能。这些产品使音箱设计师、安装人员、系统操作员和DIY爱好者可以加载自定义的FIR滤波器。点击链接可查看支持FIR的产品清单:部分具有FIR功能的处理器、功率放大器及技术干货:FIR滤波器的基础概念及在扬声器中的应用指南软件产品列表 (链接地址:eclipseaudio/fir-capable-products/ )。
在硬件不断进步的同时,FIR软件工具——如FIRDesigner*,可以在音箱或音响系统测量的基础上,设计和仿真FIR EQ、为音箱制作IIR FIR混合预置、调试音箱和音响系统。FIR Designer还具备对测量进行空间和电平的综合平均功能。
*本文档中所有的FIR滤波器示例和图表都是通过FIRDesigner生成的。
*翻译/周强生,校对/沈杰雯
*来源/启音课堂,经由Michael John许可翻译并发表。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com