NEWS 新闻资讯

Sep 30th.2020

关于扬声器中FIR滤波器的基本概念和应用指南



音频FIR滤波


      尽管不是一项新技术,但由于微处理器和DSP硬件的性能与成本的显着提高,制造商越来越多地在扬声器处理器和带有DSP的功率放大器中包含了FIR(有限脉冲响应)滤波。


      FIR滤波的优点包括对滤波器的幅值和相位特性进行更多的任意和精细控制。对幅值和相位进行独立控制,以及获得最大相位特性的机会(以牺牲大量时间延迟为代价)。主要缺点是效率。FIR滤波器通常比IIR(无限脉冲响应)滤波器更占用CPU资源。对于很长的FIR滤波器,分段频域和多速率方法有助于减少计算负荷,但是这些方法都增加了算法复杂度。



      在专业音频中,当提到具体实现时,通常使用术语“FIR过滤器”和“FIR过滤”:


      例如:

      · 线性相位交叉分频和线性相位“砖墙式”交叉分频滤波器
      · 非常长的基于最小相位FIR的系统EQ
      · 喇叭校正滤波


      虽然这些实现都有各自的用途,但FIR滤波的功能超出了这些实现;特别是在幅度和相位以及混合和最大相位特性的独立控制方面。


      那么,什么是FIR滤波,它与无处不在的IIR滤波相比如何?本文旨在回答这些问题,但首先需要涵盖数字音频中的许多基本概念。如果您已经研究了数字信号处理,那么其中大部分内容都将是在二次复习。请原谅我们跳过了一些细节并简化了一些更复杂的概念。


1.数字音频中的关键概念


采样


      在数字音频中,声音波形由采样表示。模数转换器(ADC)测量或采样模拟信号,并为每个采样分配一个数值。人们通常可以听到20 Hz到20 kHz之间的频率。(A Hz是每秒的周期。)为了充分地以数字方式表示此频率范围,ADC需要至少对音频波形进行两倍采样,采样频率应为最高可听频率的两倍。因此,我们有44.1 kHz和48 kHz的通用采样率。(专业音频中也使用了这些频率的倍数,例如88.2 kHz,96 kHz,192 kHz和384 kHz;由于某些原因,我们不再赘述。)一半的采样率称为奈奎斯特频率。例如,48 kHz的采样率具有24 kHz的奈奎斯特频率。


      有关数字音频和采样基础的更多信息,请查看xiph.org上“ Monty” Montgomery出色的文章。


数字滤波


      数字滤波是用于更改数字音频信号的数学过程。在每个时间间隔–对于48 kHz的采样率,间隔为1/48000秒或20.83微秒–时域数字滤波器获取当前输入样本和一些先前的输入样本,通过定义对这些样本进行缩放(或相乘)数字(称为滤波器系数),并对缩放后的样本求和以创建输出样本。让我们看一些例子。


示例:“平均”滤波器(“Averaging”Filter) 


      最简单的数字滤波器之一就是取当前和先前采样的平均值。从概念上讲,这是:


      OutputSample =(InputSample + PreviousInputSample)/ 2


      如图所示,我们可以将过滤器表示为:


平均数字滤波器流程图


      作为等式,我们可以表示为:


      y [n] = 0.5 * x [n] + 0.5 * x [n-1]


      · x [n]是当前时间间隔的输入样本或样本编号n,
      · x [n-1]是上一个时间间隔的输入样本,即样本编号n-1,
      · y [n]是当前时间间隔的输出样本,即样本编号n,并且
      · “ 0.5”值是滤波器系数。


      在继续之前,值得关注一下脉冲响应频率响应以及它们与上述滤波器结构的关系。


脉冲响应和频率响应


      设备(模拟滤波器,数字滤波器,扬声器甚至是房间)的脉冲响应是设备随时间响应输入脉冲的反应或响应。


      从理论上讲,我们可以将电压,数字或声音脉冲放入扬声器,放大器,处理器或房间中,并随时间记录输出电压,数字信号或麦克风波形,以获得脉冲响应。但是,脉冲在所有频率下都没有足够的能量来激发具有足够电平的设备,以在所有频率下提供高于环境噪声(或信噪比;SNR)的合理干净的信号。


      如今,许多测量系统都使用正弦波扫描或周期性粉红噪声。(双FFT方法使用任何音频信号,例如现场调音台的输出等等)扫描和循环粉红噪声信号在所有频率上都有足够的能量以提供合理的SNR,因此可提供可用或稳定的脉冲响应。


      频率响应是器件的频域特性。这也是脉冲响应的频域等效。(有时使用传递函数来代替频率响应。)频率响应通常绘制为整个频率的幅度(以dB为单位)和相位(以度为单位)。频率响应也可以从幅度和相位转换为复数表示;每个频率点的实数值和虚数值。


脉冲响应⇔频率响应


      时域脉冲响应和频域频率响应固有地联系在一起,并且在数学上等同于设备的特性。我们可以使用离散傅立叶变换(DFT)将脉冲响应转换到频域,并使用离散傅立叶逆变换(IDFT)将频率响应转换到时域。受到一些我们不会在这里讨论的限制。这些操作的快速实现称为快速傅里叶变换(FFT)和快速傅里叶逆变换(IFFT)。


循环粉红噪声


      循环粉红噪声是使用FFT方法创建的粉红噪声,这种方式是当通过反复重复相同的噪声序列连续播放噪声时,捕获到的任何噪声块(与原始FFT序列的长度相同)确保是粉红色噪声。周期性的噪声使测量系统的计算更加容易。(实际上,可以使用FFT方法创建任何频谱形状的循环噪声。对于干净,稳定的测量,通常值得使用具有与环境噪声频谱相匹配的频谱形状的噪声,以便所有频率都具有不错的SNR。)


…回到“平均”过滤器示例


      当我们使一个脉冲(采样值为1.0)通过滤波器,然后是零时,数字滤波器的脉冲响应就是滤波器的输出。让我们计算一下脉冲响应。


平均数字滤波器脉冲响应计算


平均数字滤波器脉冲响应


      对于此滤波器,一阶的两个时间间隔的脉冲响应为[0.5 0.5],其他所有位置的脉冲响应均为零。它的长度是两个样本,并且由于该长度是有限的,因此该滤波器是有限的脉冲响应FIR滤波器


      由于此滤波器可以“平均”成对的样本,因此我们希望可以消除大的样本差异,而非常小的样本变化几乎不会受到影响。让我们看一下频率响应幅度。


平均数字滤波器频率响应(fs = 48 kHz)


      当然,平均滤波器是一个低通滤波器。音频信号随时间变化较慢的低频不受影响,但高频会衰减。


示例:“差分”滤波器(“Difference”Filter)


      让我们看看如果更改平均滤波器中系数之一的符号会发生什么。如图所示,我们可以将滤波器表示为:


差分数字滤波器流程图


      作为等式,我们可以表示为:


      y [n] = 0.5 * x [n] + -0.5 * x [n-1]


      此滤波器会消除相同或相似的相邻样本,并强调非常不同的成对样本。差分滤波器的频率响应与平均滤波器的频率响应完全不同。


差分数字滤波器的频率响应(fs = 48 kHz)


      差分滤波器是高通滤波器。高频大部分不受影响,但低频衰减。


示例:带反馈的数字滤波器


      前两个示例中的滤波器计算了样本缩放历史记录的总和。如果我们提取先前或延迟的样本,将其缩放并反馈回总和,该怎么办?


      下图显示了截止频率为1 kHz(fs = 48 kHz)的巴特沃斯一阶低通滤波器。需要注意的重要一点是,先前样品的一部分被反馈或重新循环到过滤器中。


      筛选顺序


      对于数字滤波器,滤波器阶数是数字滤波器中使用的最大采样延迟量。


      对于IIR低通和高通滤波器,频率响应滚降为每倍频程6 dB乘以阶数。(例如,三阶高通滤波器的滚降为18 dB / oct。)


巴特沃思一阶1 kHz低通滤波器流程图。(fs = 48 kHz)


让我们计算一下脉冲响应。


巴特沃思一阶1 kHz低通滤波器脉冲响应计算。


巴特沃斯一阶1 kHz低通滤波器脉冲响应。(fs = 48 kHz)


      对于此滤波器,脉冲响应的起始值为0.0615,即使随后的输入采样为0,该滤波器的输出也会衰减,但基本上会永远保持非零值。由于滤波器的输出持续无限时间,因此该滤波器称为无限脉冲响应IIR滤波器


      下图中的蓝色粗线显示了低通滤波器的频率响应。


巴特沃思一阶1 kHz低通和高通滤波器的频率响应。(fs = 48 kHz)


      上方的蓝色细线显示了截止频率为1 kHz(fs = 48 kHz)的一阶高通巴特沃斯滤波器的响应。下图显示了高通滤波器的信号流和系数。


巴特沃思一阶1 kHz高通滤波器流程图。(fs = 48 kHz)


      在以下各节中,低通和高通滤波器通常被称为LPHP滤波器。 


2. FIR滤波器


      下图显示了通用FIR滤波器的信号流。系数(C0至CN-1)是“抽头”,因此对于N长度的FIR滤波器,有N个抽头和N-1个采样延迟成分。筛选顺序为N-1。


FIR滤波器流程图


      较短的FIR滤波器不能做很多事情,而更长的FIR滤波器却可以通过强大的混音来实现强大功能,方法是将很长的音频采样历史进行混合,从而以可控的方式引起不同频率下的电平和相位变化。


3. IIR Biquad


      二阶IIR滤波器通常称为双二阶滤波器。(下图显示了Direct Form 2版本。)


IIR双二阶滤波器流程图。(Direct Form 2)


      Biquads构成了DSP中大多数IIR滤波的基础。搁架式、参量式和全通滤波器可以这种形式实现,任意阶数的高通和低通滤波器通常以连接的双二阶滤波器的级联形式实现。通过将系数a2和b2设置为0.0,可以在双二阶中实现一阶滤波器。将系数a1和a2设置为0.0可将双二阶变成3抽头FIR滤波器。   


4. FIR与IIR滤波器


      那么IIR和FIR滤波器如何比较?让我们看一些常见的滤波器类型。


比较:FIR滤波器与一阶IIR LP和HP滤波器


      以下两个图显示了一阶Butterworth IIR LP和HP滤波器以及各种长度的FIR滤波器的频率响应,这些FIR滤波器旨在近似IIR滤波器。(所使用的FIR设计方法包括对IIR滤波器的脉冲响应进行采样并进行DC校正。)此处,FIR滤波器需要大约40个抽头或更长的抽头才能开始准确地近似IIR滤波器。10、20和30抽头FIR滤波器具有明显的纹波,并且与IIR的幅度相差高达6 dB。


将FIR滤波器的频率响应与Butterworth 1阶 1 kHz低通滤波器的频率响应进行比较。(f s = 48 kHz)


将FIR滤波器的频率响应与Butterworth一阶1 kHz高通滤波器的频率响应进行比较。(fs = 48 kHz)


比较:FIR滤波器与二阶IIR参量滤波器


      以下两张图显示了一个1 kHz参量化IIR滤波器以及各种长度的FIR滤波器的频率响应,这些滤波器设计为近似于IIR滤波器。每个图都显示了不同的FIR设计方法。第一种方法对DC的误差较大,但在1 kHz附近的匹配度稍好一些。第二种方法在1 kHz以上和以下匹配IIR更好,但在1 kHz附近具有稍差的匹配。无论使用哪种方法,FIR滤波器都需要大约40个抽头或更长的时间才能开始精确地近似IIR参量滤波器。


比较从10到50抽头的1 kHz参量IIR滤波器和FIR滤波器的频率响应(f s = 48 kHz)


比较10抽头到50抽头的1 kHz参量IIR滤波器和FIR滤波器的频率响应,并进行直流校正(f s = 48 kHz)


5. FIR滤波器长度


      由于FIR滤波器没有反馈,因此它们影响低频的能力与其长度成正比。滤波器越长,可以调节的频率越低;大小,相位或两者兼而有之。较高的Q值量、陡峭的幅度和相变,都需要更长的FIR滤波器。


      以下是384和3072抽头FIR滤波器的示例;滤波器响应为深蓝色和深红色线条。两个FIR滤波器都试图匹配扬声器所需的均衡器-浅蓝色线和浅红色线。


      差异图显示了理想滤波器频率响应和FIR滤波器频率响应之间的幅度和相位差异。注意:

      · 滤波器时间越长,FIR滤波在实现EQ时就越有效,尤其是在低频时。
      · 甚至3072抽头FIR滤波器也无法在65 Hz时实现所需的高Q值幅度变化。(实际上,FIR滤波器在48 kHz时需要10000次抽头以匹配所需的EQ。)


384 Tap FIR滤波器


384个抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。


384个抽头FIR滤波器频率响应(蓝色和红色)和所需的理想滤波器频率响应(浅蓝色和浅红色)。


384抽头FIR滤波器和理想的滤波器之间的频率响应差异。


3072 Tap FIR滤波器


3072抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。


3072抽头FIR滤波器频率响应(蓝色和红色)和所需的理想滤波器频率响应(浅蓝色和浅红色)。


3072抽头FIR滤波器和理想的滤波器之间的频率响应差异。


6.计算复杂度


      在引言中,我们提到FIR滤波器比IIR滤波器在计算上更加昂贵。让我们考虑上面显示的一些简单的IIR和FIR滤波器。在估算和比较计算成本时,我们通常关注数学运算-乘法和加法。我们假设处理器可以在同一操作中有效地计算“乘”和“加”。因此,我们可以忽略加法,只计算和比较乘法。


      上面的一阶IIR滤波器具有3个系数,需要与音频样本相乘,因此我们估计该滤波器每秒大约需要3倍采样率运算。FIR滤波器具有N个系数(其中N是滤波器长度),因此我们估计FIR滤波器每秒需要进行N x采样率运算。


      下表比较了上面的过滤器。


比较IIR和短FIR滤波器的每秒乘法。(所有“ x”数字都是FIR乘积除以同一行中IIR滤波器的乘积。)


      在示例中,我们已经看到FIR滤波器近似IIR滤波器大约需要40个抽头,并且该表显示,计算成本是IIR的8倍或13.3倍。


典型的扬声器处理器输出通道


      在撰写本文时,一个普通的高端扬声器处理器大约有24个IIR双二阶,用于高通,低通,搁架式和参量滤波器,以及2048个FIR抽头。下表比较了两者的计算成本。


比较典型DSP输出通道的IIR和FIR滤波器的每秒乘法。(“ x”数是FIR乘积除以IIR滤波器的乘积。)


7. FIR过滤器的好处


      如果FIR滤波在计算上如此昂贵,那么它的优点是什么?有两个主要好处:

      · 独立控制幅度和相位
      · 更详细的均衡(包括根据所需的频率响应更轻松地创建滤波器)。

      我们来进一步探讨。


幅度和相位的独立控制


      对于大多数IIR滤波器,相位响应与幅度响应具有内在联系。(IIR全通滤波器是一个例外。)FIR滤波的一个巨大好处是能够独立操纵幅度和相位。以下是四个FIR滤波器示例。每个都具有相同的幅度响应,但相差很大。


示例:最小相位FIR滤波器


      之前,我们展示了IIR和FIR滤波器如何使用采样延迟(以及系数)来实现其预期的频率响应变化。最小相位滤波器会影响EQ,同时为音频信号增加最少的延迟。(这是PA系统中基于长FIR滤波器的EQ通常为最小相位的原因之一。)最小相位滤波器的特征在于,其脉冲响应在开始时或附近具有较大的系数。以下两个图显示了一个最小相位FIR滤波器,该滤波器会影响100 Hz附近的HP和一些EQ。虽然FIR滤波器的长度为42.7 ms,但有效延迟可以忽略不计。


最小相位2048抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。(f s = 48 kHz)


最小相位2048抽头FIR滤波器的频率响应。(f s = 48 kHz)


示例:线性相位FIR滤波器


      以下两个图显示了具有相同幅度响应但相位平坦或线性的FIR滤波器。通过滤波器的整体延迟等于滤波器的峰值位置:此处为1024个样本或21.3 ms。


线性相位2048抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。(f s = 48 kHz)


线性相位2048抽头FIR滤波器的频率响应。(f s = 48 kHz)


示例:最大相位FIR滤波器


      下两个图显示了具有相同幅度响应但具有最大相位的FIR滤波器;这是上面最小相位滤波器的相反或逆相位。脉冲响应是最小相位脉冲响应的时间反转,因此通过滤波器的总体延迟大约等于滤波器的长度。42.7毫秒。


最大相位2048抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。(f s = 48 kHz)


最大相位2048抽头FIR滤波器的频率响应。(f s = 48 kHz)


示例:混合相位FIR滤波器


      最后,我们有一个具有相同频率响应的任意相位或混合相位FIR滤波器。通过滤波器的总体延迟大约是滤波器峰值的位置。此处1480个样本或30.4毫秒。放置峰值的位置取决于FIR滤波器的所需特性以及在抽头长度限制内如何实现这些特性;这里有2048个抽头。


混合相位2048抽头FIR滤波器的脉冲响应(深绿色)和dB幅度的脉冲响应(浅绿色)。(f s = 48 kHz)


混合相位2048抽头FIR滤波器的频率响应。(f s = 48 kHz)


      我们为什么要关心混合相位的行为?这样我们才可以将扬声器的相位推到我们想要的位置!


为什么独立相位控制很有用?


      扬声器驱动单元可以看作是最小相位滤波器(将声学输出与驱动单元中的电信号进行比较时)。当使用最小相位均衡器使扬声器单元的幅度响应更接近“平坦”时,扬声器单元的相位也将趋于平坦并接近线性相位(至少在扬声器的可听带宽范围内)。


      但是,在典型的多分频扬声器中,IIR HP和LP分频滤波器(以及极性,延迟和声学滤波器)都添加了随频率变化的额外相位。由于存在额外的相位,因此可以将多分频扬声器视为最小相位系统加上一些全通滤波器。


      由于最小相位均衡器通常不会影响全通性能,因此我们可以使用FIR滤波将扬声器的相位移动到所需位置。


      任意相位操纵具有许多应用,包括:
      · 相位线性化扬声器。(尽管扬声器脉冲响应有了明显的改善,但有关是否能在扬声器性能方面带来可观的改善,仍存在一些争论。)
      · 使扬声器的相位(和强度)与同一产品线内的扬声器和安装中的不同型号的扬声器相匹配,从而使它们更容易在群集调音中并排列在一起。
      · 在阵列处理(用于阵列群体优化)和波束控制中操纵单个扬声器。
      · 交叉分频优化可改善多分频扬声器覆盖范围内的频率响应一致性。


更精细的均衡(和更轻松的滤波器创建)


      使用扬声器测量,我们可以创建一个频率响应(幅度和相位),该频率响应会将扬声器推向所需的目标响应。由于脉冲响应和频率响应之间的固有关系,因此可以使用DFT(或FFT)方法很容易地从所需的频率响应中生成FIR滤波器系数。目标响应可以是任何内容,包括:
      · 平坦的粉红噪音
      · 平坦的粉红噪声,并带有轻微的HF衰减(例如Cinema X曲线)
      · 平坦的(线性)相位
      · 得到另一个扬声器的幅度和相位响应
      · 阵列处理计算所需的幅度和相位响应



      以下四幅图显示了通用12英寸+号角二分频音箱的同轴测量,以及创建2048抽头FIR滤波器以推动音箱的响应,使其具有相对平坦的幅度响应(略有HF滚降)和通带中的平坦相位。


12英寸+喇叭2分频音箱的同轴频率响应。(时间= 0与HF驱动器对齐,因此LF驱动器在时间上相对向前,导致在交叉频率处出现明显的最大相位行为。)


为12英寸+号角二分频音箱创建的FIR滤波器的脉冲响应(深绿色),以及dB幅度的脉冲响应(浅绿色)。


为12英寸+号角二分频音箱创建的FIR滤波器的频率响应。


经FIR滤波的12英寸+号角二分频音箱的频率响应。


通过多测量点的平均数值计算来设计均衡器


      试图将某个精细的EQ曲线作用于扬声器响应中可能会出现一些“事与愿违”的问题。扬声器的响应会随麦克风和扬声器的位置,水平和温度以及时间的变化而变化。通过单次测量而设计的精细EQ并作用于扬声器,可能会导致扬声器在测量条件和位置上听起来更好,但可能会使扬声器在其他位置和其他级别上的声音变差。必须格外小心以确保测量在所有情况下(例如在整个预期的覆盖范围内)都有扬声器覆盖以及准确测量点,这是相关且有用的。多个位置测量点创建的平均测量值是一个好的方法,可以将其用作为有效的精细EQ的开始。


8.低音炮的FIR滤波?


      下图显示了一个示例,该示例使用FIR滤波器对超低音扬声器进行EQ并修整低频相位(防止超低音扬声器过度位移)。


      非常低的频率进行滤波需要非常长的滤波器。这里有5000个抽头,IR峰值延迟为3500个抽头或72.9ms。(这只是FIR滤波器功能的一个示例,尚待测试,低频群延迟的减少是否会改善感知到的影响。如此大的延迟,对于现场应用可能没有用,但也许在电影院和家庭影院或重放的应用中很有用。)


FIR滤波之前,低音炮的频率响应。(双18“。测量包括30 Hz 18dB / oct Butterworth IIR高通。)


FIR滤波器的脉冲响应(深绿色),用于均衡器,相位展开和交叉LPF。(5000次抽头和3500个采样延迟。)


FIR滤波器的频率响应,用于均衡器,相位修整和分频LPF。(5000次抽头和3500个采样延迟。)


低音炮频率响应,带有FIR滤波。


9.设计和加载自定义FIR滤波器


      人们越来越认识到音频中FIR滤波的好处和灵活性,再加上微处理器和DSP的性能与成本的不断提高,让带有用户可访问FIR滤波模块的音频产品的数量不断增加。这些产品使扬声器设计人员,安装人员,系统操作人员和DIY人员可以加载自定义FIR滤波器。


      本文由Eclipse Audio的创始人Michael John撰写,由邓新杰整理和翻译。

      *本文档中的所有FIR滤波器示例和图都是使用FIR Designer生成的  。