易科國際:FIR思維(2)——濾波器越長(cháng)越好?
來(lái)源:數字音視工程網(wǎng) 編輯:杜鑫 2017-12-25 15:42:37 加入收藏 咨詢(xún)

所在單位: | * |
姓名: | * |
手機: | * |
職位: | |
郵箱: | * |
其他聯(lián)系方式: | |
咨詢(xún)內容: | |
驗證碼: |
|
我們身處的時(shí)代崇尚“越大越好”。在最近的一個(gè)SynAudCon論壇帖子中,我表示這一至理名言也許并不適用于FIR濾波器長(cháng)度。
這篇文章寫(xiě)就時(shí),DSP支持的濾波器長(cháng)度通常為1024點(diǎn)(tabs),有些高達4096點(diǎn)。為什么我不想要或不需要長(cháng)度更長(cháng)的FIR濾波器?如果生廠(chǎng)商在DSP中引入8192點(diǎn)的FIR濾波器,我會(huì )舍棄競爭產(chǎn)品而選擇它嗎?
頻率越低,時(shí)間越長(cháng)
首先,我們需要一份用于練習和實(shí)驗的文件??墒褂脫P聲器的測量數據,但稍微簡(jiǎn)單的文件更易于幫助我們發(fā)現重要的點(diǎn)。
請查看圖1作為參考。我在FIRCapture軟件中創(chuàng )建該系列提升濾波器(分離的以一個(gè)倍頻程為帶寬的對稱(chēng)均衡器)并保存為WAV文件??赏ㄟ^(guò)任何9段參量均衡器輕松創(chuàng )建此響應。
圖1:作者測試文件的轉換函數(通過(guò)FIRCapture軟件創(chuàng )建)
我選擇Q=6以最大化減少濾波器之間的重疊。這一組濾波器又構成了一個(gè)濾波器,它與揚聲器的響應并無(wú)二致,更別提在最高頻和最低頻處必不可少的高通和低通響應了。如果這就是一個(gè)揚聲器的響應(讓我們假設如此),我們將希望對凸起部分進(jìn)行均衡處理,以獲得整體較為平坦的響應。通過(guò)該文件,我們可以很好地考察FIR濾波器的頻率解析度。
頻域視圖顯示頻率響應的振幅、相位和群延時(shí)。請注意,相位和群延時(shí)是兩種不同的方式,顯示信號通過(guò)時(shí),濾波器如何改變其時(shí)間行為。由于相位是相對的,因此每個(gè)凸起的相位行為都相同。
在之前的文章中我演示過(guò),一個(gè)帶通濾波器的最小相位響應首先呈正向,然后在濾波器的中心頻率回到原點(diǎn),最后為負向。這個(gè)相位偏移將使得通過(guò)濾波器的信號產(chǎn)生與頻率相關(guān)的振鈴現象(Ringing)。振鈴現象持續的時(shí)間由群延時(shí)圖顯示。
圖2是該濾波器的頻域/時(shí)域綜合圖。圖3顯示了每個(gè)分離倍頻程的中心頻率的波長(cháng)。二者有何相關(guān)?由于聲速約為1英尺/毫秒(ft/ms),每個(gè)倍頻程的中心頻率波長(cháng)大約等同于一周期所需時(shí)間。波長(cháng)的概念以十分形象的方式顯示聲波與時(shí)間和空間有關(guān),而濾波器的響應也是如此。
圖2:同一信號的頻域vs.時(shí)域圖。請注意在時(shí)域視圖中,提升濾波器的振鈴現象(非延時(shí))。也請注意在此視圖中振鈴現象的解析度更佳(紅色大約等同于群延時(shí)圖示)
圖3:每個(gè)倍頻程中心頻率的波長(cháng)。無(wú)論使用何種類(lèi)型濾波器,時(shí)間/頻率/波長(cháng)的相互關(guān)系最終決定了FIR濾波器所需的解析度
群延時(shí)(GD)與濾波器的頻率波長(cháng)成正比關(guān)系,頻率越低,群延時(shí)越長(cháng)。單從名稱(chēng)來(lái)看,似乎指的是信號通過(guò)濾波器所造成的延時(shí),這有點(diǎn)誤導人。濾波器的儲存屬性造成了振鈴現象,即信號中增加了多余周期。
群延時(shí)顯示了提升濾波器占據的時(shí)長(cháng)。低頻凸起具有很長(cháng)的振鈴,這不足為奇。群延時(shí)與濾波器頻率成反比(與波長(cháng)成正比),相位偏移相等時(shí),頻率越低,群延時(shí)越長(cháng)。
為方便演示,我們以圖4所示的信號處理鏈路為例。我們輸入一個(gè)測試信號,看看將發(fā)生什么。圖5為2通道示波器顯示的結果。藍色軌跡為1000Hz6.5周期的小波。這是Don Keele測試信號中的一個(gè)。紅色軌跡為此信號通過(guò)一個(gè)1000Hz提升濾波器之后的結果。請注意,原信號和通過(guò)濾波處理的信號相位一致,但是經(jīng)過(guò)濾波器的信號周期增加了。這是在時(shí)域觀(guān)察的振鈴現象。一個(gè)削減濾波器的振鈴現象將占據同等時(shí)長(cháng)。
圖4:Rane HALDSP上的信號處理設置,用于延時(shí)濾波器的振鈴現象。
圖5:一個(gè)6.5周期(1kHz)的小波。藍色曲線(xiàn)為原信號。紅色曲線(xiàn)為信號通過(guò)一個(gè)1kHz 6dB提升濾波器(Q=6)之后的響應。請注意,信號經(jīng)過(guò)濾波器模塊本身并不造成延時(shí),但是信號包絡(luò )(綠色輪廓)跨越更長(cháng)時(shí)間。
IIR均衡
一個(gè)模擬或數字無(wú)線(xiàn)脈沖響應濾波器(IIR filter)如何校正響應?必須是產(chǎn)生與凸起相反的振幅響應和相位偏移。由于IIR濾波器是循環(huán)的,即利用反饋將一部分輸出信號返回到輸入端進(jìn)行再處理(可類(lèi)比電容的充電和放電)。
因此,IIR濾波器在操作過(guò)程中沒(méi)有低頻限制(起碼與FIR濾波器相比時(shí)如此),而且不會(huì )造成大量處理延時(shí)。只要有輸入信號,就會(huì )有輸出信號,濾波器的脈沖響應(理論上)永遠不會(huì )衰減到零。
正向群延時(shí)是窄頻段提升濾波器的標志(圖1),而負向群延時(shí)是削減濾波器的標志。圖7顯示了通過(guò)一款受歡迎的DSP的EQ模塊實(shí)現的一組IIR濾波器。通過(guò)對比圖1每個(gè)凸起以及圖7每個(gè)陷波的振幅以及相位,可以發(fā)現圖7的均衡器可以完全校正我文件的響應。
順便提一句,窄頻段信號的群延時(shí)并不代表信號延時(shí),而顯示了濾波器振鈴現象所占的時(shí)長(cháng)。音頻中有些術(shù)語(yǔ)并非字面上的含義,比如“恒定電壓”(Constant voltage),但這是另外一個(gè)話(huà)題,這里不再贅述。
最小相位FIR EQ
下面讓我們討論最小相位FIR。它的響應可以和參量均衡器生成的IIR濾波器一模一樣。關(guān)鍵的區別在于FIR濾波器的響應與驅動(dòng)信號完全無(wú)關(guān)。它是有限長(cháng)度的脈沖響應,頻率解析度與長(cháng)度相關(guān)。
由于T = 1/F,要影響的頻率越低,需要的濾波器長(cháng)度越長(cháng)(時(shí)間跨度,更多點(diǎn)位數)。對低頻凸起進(jìn)行校正需要在每一個(gè)頻率引入振幅和相位的共軛,這也會(huì )與群延時(shí)共軛。對于低頻凸起而言,這是非常長(cháng)的時(shí)間跨度。
再看回圖1。由于該濾波器是最小相位濾波器,因此處理延時(shí)很小,與IIR濾波器的差不多。差別在于FIR濾波器的帶寬由它的長(cháng)度決定(圖6),因此需要一個(gè)長(cháng)度非常長(cháng)的濾波器對低頻凸起進(jìn)行均衡處理。這與創(chuàng )建濾波器所采用的處理算法無(wú)關(guān)。
圖6:時(shí)間和頻率解析度的相互關(guān)系。頻域視圖以脈沖事實(shí)到達的時(shí)間作為參考(T0)且時(shí)間跨度延展至T。由于此時(shí)到達的是一個(gè)完美的脈沖,這個(gè)FIR作為純粹的延時(shí),它的帶寬由點(diǎn)位數量決定。
圖7:一個(gè)參量EQ模塊(IIR)可以完全校正我的示范文件。它的頻率解析度比FIR濾波器更高,而需要調用的DSP資源則少得多。
頻率解析度
從圖6中可看出,一個(gè)1024點(diǎn)、采樣率為48 kHz的最小相位FIR濾波器,長(cháng)度為21毫秒。由于T=1/F,此濾波器的頻率解析度為47.6 Hz。
這意味這什么?這意味著(zhù)在頻域視圖下,每個(gè)數據點(diǎn)之間的間隔。
它同時(shí)也表示濾波器能影響的最低頻率。而事實(shí)上的頻率解析度還要低一些(能影響的最低頻率還要稍高一些),因為往往需要幾個(gè)周期的波形才能確定某一頻率。
要是增加更多點(diǎn)位呢?濾波器長(cháng)度加倍將使得頻率解析度加倍,使得數據點(diǎn)之間的頻率間隔變成24 Hz。
它還使得低頻限制下潛一半,去到24Hz。這一趨勢將繼續,點(diǎn)位數每加倍,將使得濾波器的響應下潛一個(gè)倍頻程。因此,長(cháng)度更長(cháng)的FIR濾波器將使得:
1) 濾波器擴展至更低頻率。
2)濾波器的頻率響應呈現更多細節,因為數據點(diǎn)更加密集。
在最小相位FIR濾波器這種情況下,更多點(diǎn)位數大有裨益,因為這意味著(zhù)濾波器可以擴展至更低頻率。由于這是最小相位濾波器,因此相比IIR濾波器并沒(méi)有增加額外的處理延時(shí)。要使我的示范文件獲得平滑的響應,大約需要4096點(diǎn),這遠超過(guò)現有DSP能支持的點(diǎn)位數,這使得需要更多點(diǎn)位數的爭論愈演愈烈。
先別著(zhù)急下結論
讓我們再認真考慮。最小相位FIR的行為與最小相位IIR濾波器一樣,只不過(guò)需要足夠多的點(diǎn)位數才能影響欲達到的最低頻率。低頻均衡需要更長(cháng)的濾波器長(cháng)度。
但是為什么要在DSP中通過(guò)占用大量系統資源的FIR濾波器模塊來(lái)創(chuàng )建一個(gè)最小相位濾波器呢?一個(gè)精心調節的參量均衡模塊(IIR)將占用少得多的系統資源,但產(chǎn)生同樣平滑的響應,且頻率解析度更佳(圖7)。使用盡可能少的系統資源得到所需結果,在音頻行業(yè)是最佳實(shí)踐,而使用FIR濾波器進(jìn)行最小相位均衡并不高效。
接下來(lái)讓我們思考校正的響應不是最小相位的這種情況。我在參考文件中,將一個(gè)二階全通濾波器(500 Hz)添加至響應中(圖8)。這將在濾波器的整個(gè)帶寬中造成相位偏移,但是對振幅響應的影響最小。在事實(shí)應用中,這種全通行為可能源于使用了分頻網(wǎng)絡(luò )。最小相位FIR濾波器不能補償這樣的額外的相位偏移。
圖8:在參考文件中增加了一個(gè)全通濾波器。最終形成了一個(gè)非最小相位濾波器。需要一個(gè)線(xiàn)性FIR濾波器校正此響應。
線(xiàn)性相位FIR
一個(gè)線(xiàn)性相位FIR具有對稱(chēng)的脈沖響應,主信號到達時(shí)間位于脈沖響應(IR)的中間(圖9)。我們將到達峰值設為相對時(shí)間零,在此之前的時(shí)間跨度提供了“負時(shí)間”到達,用于共軛主到達峰值之后的能量到達。
圖9:線(xiàn)性相位濾波器最多儲存一半點(diǎn)位,用于相位均衡/回聲消除,并將濾波器的帶寬減少一個(gè)倍頻程。上面的頻域視圖以脈沖事實(shí)到達的時(shí)間(T0)為參考,時(shí)間跨度延展至T。以上所示為Dirac脈沖,行為類(lèi)似純延時(shí)(pure delay)。請注意,將T0移動(dòng)至T/2降低了頻率解析度(2/T)。
這些“預延時(shí)”與事實(shí)時(shí)間之間存在因果關(guān)系,但是與主要的信息到達時(shí)間沒(méi)有因果關(guān)系。這允許濾波器通過(guò)相反的“負時(shí)間”響應對反射能量進(jìn)行補償。
所以,如果點(diǎn)位長(cháng)度為1024個(gè)點(diǎn),線(xiàn)性相位FIR濾波器將把主到達時(shí)間置于T/2處,讓一半濾波器長(cháng)度提供預到達時(shí)間,以共軛揚聲器或房間產(chǎn)生的后到達能量。它還允許引入所需的負向群延時(shí),以補償分頻器的全通響應。
因為將一半的濾波器長(cháng)度用于“負時(shí)間”校正,濾波器的頻率解析度將減半。例如,1024點(diǎn)的最小相位FIR濾波器頻率解析度為47.6 Hz。而同樣長(cháng)度的線(xiàn)性相位FIR濾波器頻率解析度為95.2 Hz,因為預留了一半長(cháng)度用于相位均衡。
點(diǎn)位數越多越好?
對于最小相位FIR濾波器而言,似乎如此。問(wèn)題在于非最小相位濾波器需要預留一半長(cháng)度用于相位均衡。這會(huì )表現為處理延時(shí)(常錯誤地被稱(chēng)為延遲)。與最小相位FIR濾波器不同,隨著(zhù)線(xiàn)性相位FIR濾波器的長(cháng)度增加以提高其頻率解析度,它的延時(shí)也會(huì )增長(cháng)。這不是由DSP的速度造成,而源于TF = 1。
現在再調出我的參考文件,只不過(guò)這次是一系列的削減濾波器,削減的頻率與原有提升濾波器(圖10)一致。從之前的討論中得知,群延時(shí)視圖(藍線(xiàn))顯示濾波器振鈴現象的時(shí)間長(cháng)度。請注意,它現在呈負向,但這僅意味著(zhù)這個(gè)濾波器產(chǎn)生的相位偏移在整個(gè)帶寬不斷擴大。并不表示出現了“時(shí)間提前”或者濾波器的響應是非因果關(guān)系的。
圖10:均衡參考文件的一系列削減濾波器??捎^(guān)察到,較低頻率的幾個(gè)倍頻程其群延時(shí)(右軸)無(wú)可避免非常長(cháng)。
無(wú)法回避的是,頻率越低,濾波器發(fā)揮影響需要的時(shí)間越長(cháng),在最低倍頻程的中心頻率(31.5 Hz)這個(gè)時(shí)間將變得非常長(cháng)(~40 ms)。對于現場(chǎng)演出和許多固定安裝應用來(lái)說(shuō),這么長(cháng)時(shí)間的處理延時(shí)是不可接受的。一個(gè)1024點(diǎn)的FIR濾波器(48 kHz采樣率)時(shí)長(cháng)為21毫秒,意味著(zhù)處理延時(shí)大約為10.5毫秒。
將采樣率提升至96 kHz并不會(huì )降低處理延時(shí),因為必須處理的采樣數量也加倍了。無(wú)法改變的事實(shí)是,21毫秒的長(cháng)度最低僅可以影響48Hz,而事實(shí)上的頻率解析度是48Hz的3倍,或者說(shuō)是150 Hz。
問(wèn)題變得更糟糕
線(xiàn)性相位FIR濾波器還有另一個(gè)缺點(diǎn)。由于“相對時(shí)間零”位于濾波器時(shí)長(cháng)的中間,其頻率解析度是最小相位FIR濾波器的一半。
因此,如果一個(gè)1024點(diǎn)的最小相位FIR濾波器最低可以影響150Hz,那么一個(gè)1024點(diǎn)的線(xiàn)性相位FIR濾波器最低只可以影響300Hz。
影響的頻率要下潛至150Hz將需要一個(gè)2048點(diǎn)的濾波器,意味著(zhù)處理延時(shí)也要從10.7毫秒翻倍到21毫秒。
而針對我的示范文件,將需要一個(gè)8196點(diǎn)的FIR濾波器才能使整個(gè)通帶的響應變得平滑。所需的處理延時(shí)約為85毫秒。
表面來(lái)看,FIR濾波器的長(cháng)度越長(cháng),好處似乎是可以提高頻率解析度,從而:
1)影響更低頻率。
2)在整個(gè)帶寬包含更多細節。
我已經(jīng)向大家展示,至少對于線(xiàn)性相位FIR濾波器而言,要影響更低頻率(更多點(diǎn)位數)將提高處理延時(shí)。這不是因為處理能力不足而造成,而源于時(shí)間和頻率的相關(guān)性。低頻持續較長(cháng)時(shí)間,而且占據大量空間。數字處理無(wú)法改變此現狀。
部分好處
在可聽(tīng)頻譜內一共有10個(gè)倍頻程,所以每個(gè)倍頻程占據整體的十分之一(對數標尺)。濾波器長(cháng)度加倍,將使得處理延時(shí)加倍,而這僅僅使得你均衡處理的頻譜多了十分之一。
就好比讓功放的功率加倍只為了得到3dB提升一樣,有時(shí)到了一個(gè)臨界點(diǎn),得到的回報很少,根本就不值得。在功放的例子中代價(jià)是金錢(qián),而對線(xiàn)性相位FIR濾波器而言,代價(jià)是延時(shí)??梢哉f(shuō),數字處理的貨幣就是時(shí)間。你可以得到很好的效果,前提是可以等待足夠長(cháng)時(shí)間。
在大多數房間中,最低的兩個(gè)倍頻程(次低頻)位于施洛德頻率曲線(xiàn)(Schroder Frequency)下方,這時(shí)房間模式(room modes)對每個(gè)座位的頻率響應有深刻影響。即便我們通過(guò)線(xiàn)性相位FIR濾波器,將房間中某一點(diǎn)的響應處理得非常“完美”,在其它座位響應也是不一樣的,這樣做的意義何在?
那需要更高的濾波器精度嗎?一個(gè)1024點(diǎn)的濾波器,數據點(diǎn)之間的頻率間隔約為48Hz。如果這還不夠校正你的頻率響應,很可能你在嘗試校正一些根本不應該訴諸均衡處理的東西,比如由于房間反射造成的梳狀濾波。頻率響應中的“細節”越多,則時(shí)間響應越多與“位置相關(guān)”,因為這些細節由從不同表面而來(lái)的反射造成。
移動(dòng)測試話(huà)筒,則響應發(fā)生很大改變。一個(gè)精度很高的FIR濾波器只適合“校正”空間中的一個(gè)點(diǎn)。這可能適用于在特定的話(huà)筒位置對會(huì )議系統進(jìn)行回聲消除,但這無(wú)益于整個(gè)觀(guān)眾區。更長(cháng)的FIR濾波器對現場(chǎng)應用并沒(méi)有太大意義。
更高采樣率是否有幫助?
純屬坊間傳言。很遺憾并非如此。再回到圖6,濾波器點(diǎn)位的時(shí)間間隔dt=1/SR(采樣率),乘以點(diǎn)位數(N)可以得到濾波器的時(shí)間長(cháng)度(T)。頻率解析度(F)為1/T。
這是簡(jiǎn)單的關(guān)系,顯示了如果采樣率加倍,濾波器的頻率解析度將降低一半。我們把問(wèn)題弄得更糟了!如果采樣率加倍,那么需要處理的采樣數量要乘以2,這樣必須要使得濾波器長(cháng)度加倍,才能保持同樣的頻率解析度。
讓我們考察相反的情況。采樣率減半將提高濾波器的頻率解析度。但是要犧牲高頻響應,只能擴展至SR/2。奈奎斯特采樣定理(Nyquist-Shannon)是不能否定的。
這一切都不能改變線(xiàn)性相位FIR濾波器所需的處理延時(shí),即濾波器時(shí)長(cháng)的一半。更高(更低)的采樣率不能改變信號的時(shí)間、頻率或波長(cháng)。
結論
毫無(wú)疑問(wèn),隨著(zhù)技術(shù)的發(fā)展我們將來(lái)會(huì )擁有更長(cháng)的數字濾波器。芯片不斷完善,使用芯片的產(chǎn)品也如此。我們可能還記得16 bit/44.1 kHz的“CD級”音頻曾經(jīng)都是幾乎不可能實(shí)現的。但是如今很多人都認為它解析度很低。FIR濾波器也將沿著(zhù)這樣的軌跡發(fā)展。
但是實(shí)現更長(cháng)的濾波器還會(huì )遇到一些障礙,而這與技術(shù)無(wú)關(guān)。我在上面的文章中已顯示,最主要的障礙是處理延時(shí),這由濾波器必須影響的時(shí)間長(cháng)度有關(guān)(見(jiàn)圖1)。
在現場(chǎng)音響系統中,我們只能容忍一點(diǎn)延時(shí)。這個(gè)標準不是很精確,但是大部分人會(huì )同意超過(guò)20毫秒的濾波處理是比較長(cháng)的時(shí)間。這一不可避免的處理延時(shí)會(huì )增加信號鏈中其它數字設備的延遲,一般會(huì )額外增加10毫秒。處于時(shí)間考慮,我們不得不放棄對低頻進(jìn)行線(xiàn)性相位均衡處理,至少對現場(chǎng)應用如此。
對高頻應用線(xiàn)性相位FIR濾波器,對低頻應用最小相位FIR濾波器似乎是一種解決方法。這被稱(chēng)為“混合相位”濾波器,我認為,這將是未來(lái)的發(fā)展趨勢。有些人開(kāi)始認為IIR濾波器無(wú)用武之地了,但是不可否認,它們有最寬的帶寬、最低的處理延時(shí)而且使用的系統資源比其它任何數字濾波器都要少。請不要拿走我的參量均衡器模塊!
點(diǎn)位數量不能無(wú)限度多,意味著(zhù)我們必須思考校正的重點(diǎn)是什么及其背后的理由。就好比罐子里只剩下一勺花生醬時(shí),我們要好好利用。我的均衡處理如何影響揚聲器的整個(gè)覆蓋區域,而不僅限于測試話(huà)筒所擺放的“黃金位置”?要是考慮多個(gè)座位的情況,那線(xiàn)性相位FIR濾波器的魔法光環(huán)會(huì )迅速褪去。
好好運用一個(gè)1024點(diǎn)的FIR濾波器,比稀里糊涂使用一個(gè)長(cháng)度更長(cháng)的濾波器要好。人類(lèi)認知為模數轉換所需的采樣率和位深設置了合理限制,時(shí)間、頻率、波長(cháng)和延遲也限制了更長(cháng)FIR濾波器所能帶來(lái)的好處。在音頻行業(yè),把東西弄得更大總是值得商榷,數字濾波器也不例外。這也并非壞事,可以保持平衡,并且促使人們思考是追求真正產(chǎn)生好聲音,還是規格參數表的數據更好看。
這又詮釋了“少即是多”。
評論comment