FPGA卡拉ok系統--Biquad filter

語言: CN / TW / HK

本文翻譯自:http://www.earlevel.com/main/2003/02/28/biquads/

作者:Posted on February 28, 2003 by Nigel Redmon

1 硬件需求介紹


圖1 卡拉ok硬件系統

1)麥克風(microphone)

2)音頻ADC --PCM1080或其他音頻ADC

3)FPGA --卡拉ok系統

4)音頻DAC--PCM5102A

5)音響

6)顯示屏

2  FPGA硬件系統介紹

 

圖2 fpga內部音頻算法系統

     音頻模擬信號經過音頻adc採集後轉化為數字信號通過I2S送入FPGA,FPGA內部可做均衡器算法,反饋抑制算法,高低通濾波器混響回聲以及變聲的音頻處理算法。

3 Biquad Filter

        最常用的過濾器形式之一是biquad。雙二階是二階(兩個極點和兩個零)IIR濾波器。它的階數足夠高,可以單獨使用,而且由於高階濾波器的係數敏感度,雙二階常被用作更復雜濾波器的基本構建塊。例如,雙二階低通濾波器的截止斜率為12 dB /倍頻程,可用於音調控制。如果您需要24 dB /倍頻程的斜率,則可以級聯兩個雙二階,與單個四階設計相比,它的係數靈敏度問題更少。

        Biquads有幾種形式。最明顯的二階差分方程的直接實現(y [n] = a0 * x [n] + a1 * x [n-1] + a2 * x [n-2] – b1 * y [n- 1] – b2 * y [n-2]),稱為直接格式I:

 

直接表格I

        直接形式I是在定點處理器中實現的最佳選擇,因為它具有單個求和點(定點DSP通常具有允許中間溢出的擴展累加器)。

        我們可以採用直接形式I並將其在求和點處拆分,如下所示:

        然後,我們將兩半交換,以使反饋一半(兩極)首先出現:

        現在,請注意z延遲中的一對是多餘的,與另一對存儲相同的信息。因此,我們可以合併這兩對,產生直接的II型配置:

 

直接表格II

        在浮點中,直接形式II更好,因為它可以節省兩個內存位置,並且浮點不像定點數學那樣對溢出敏感。我們可以通過調換濾鏡來對此進行一些改進。要轉置濾波器,請反轉信號流的方向-輸出變為輸入,分配節點變為求和器,求和器變為節點。濾波器的特性不變,但是在這種情況下,浮點特性會好一些。當中間和的值更接近時,浮點具有更好的精度(將小數加到浮點中的大數上的精度不及類似值)。這是轉置後的直接形式II:

轉置直接形式II

注意事項和建議

        同樣,對於定點,直接形式I通常是最佳選擇,對於浮點,轉置直接形式II通常是最佳選擇。

        在低頻設置下,雙二階更容易受到量化誤差的影響,這主要來自反饋係數(b1和b2)和延遲存儲器。係數缺乏分辨率使得極點的精確定位變得困難,當極點位於單位圓附近時,這尤其成問題。第二個問題是延遲存儲器,這是因為乘法會產生更多的位,並且這些位在存儲到存儲器時會被截斷。該量化誤差在濾波器中反饋,從而導致不穩定。32位浮點通常足以滿足音頻濾波器的要求,但您可能需要使用雙精度,特別是在非常低的頻率(用於控制濾波)和高採樣率的情況下。

        對於定點濾波器,24位係數和存儲器對於大多數濾波器都適用,但是在48 kHz採樣率下(約是96 kHz的兩倍),在低於300 Hz時開始變得不穩定。在定點處理器上,雙精度總是很昂貴的,但是幸運的是,有一種簡單的技術可以提高穩定性。從直接繪圖形式I看,當將高精度累加器存儲在右側的較低精度延遲存儲器中時,就會發生量化。通過獲取量化誤差(將完整的累加值與其存儲到內存後的值之差),並將其加回到下一個樣本計算中,該濾波器的性能幾乎與使用全雙精度計算一樣好,但是在很大程度上降低計算成本。這種技術稱為一階噪聲整形。

 

直接形式I具有一階噪聲整形

通常,沒有雙精度係數和計算功能的音頻不適合16位定點處理。

        最後,biquads只是DSP程序員工具之一-它們並不總是最好的濾波器形式。還有其他一些濾波器不具有biquad的低頻敏感度(通常,biquad係數的精度在高頻時非常好,而在低頻時則很差;還有其他濾波器形式可以將精度更均勻地分佈或折衷降低高頻性能,以獲得更好的低頻性能)。但是,二元模型是眾所周知的,並且設計工具很多,因此,除非您找到使用其他濾波器的理由,否則它們通常是IIR濾波器的首選。

        過濾器形式太多,無法覆蓋,但是對於狀態合成器而言,是一種流行於合成器的過濾器形式 。它具有非常出色的低頻性能,並且必須解決高頻方面的限制,但是最重要的是頻率和Q係數是分開的,並且容易更改以進行動態濾波。它也使低頻正弦波發生器成為一個很好的例子。


專輯推薦

1.FPGA數字圖像處理

2.FPGA數字信號處理

3.FPGA學習筆記

4.ZYNQ學習筆記

5.vivado學習筆記

更多精彩推薦,請關注我們

本文分享自微信公眾號 - FPGA開源工作室(leezym0317)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閲讀的你也加入,一起分享。