摘 要:在許多信息處理過程中,如對信號的過濾、檢測、預測等,都要廣泛地用到濾波器,數字濾波器是數字信號處理中使用最廣泛的一種方法,實現方法主要有IIR濾波器和FIR濾波器兩種。本文對直接型的FIR濾波器進行了優化和實現。
關鍵詞:數字信號處理(DSP);濾波器;IIR濾波器;FIR濾波器
中圖分類號:TN713文獻標識碼:B
文章編號:1004-373X(2008)07-103-02
Optimization and Realization of Direct-type FIR Filter
REN Ju,CAI Guangjun,LIU Huiying
(Ariation Vocational Technology College,Chengdu,610072,China)
Abstract:Filter is using in many information processing such as filtering,monitoring and expecting.Digital filter is the most popular way in digital signal processing.There are two main ways:IIR filter and FIR filter.Here,we optimize and carry out the FIR filter.
Keywords:Digital Signal Processing(DSP);filter;IIR filter;FIR filter
1 引 言
數字濾波器是數字信號處理中使用最廣泛的一種方法,實現方法主要有IIR濾波器(無限沖激響應數字濾波器)和FIR濾波器(有限沖激響應數字濾波器)兩種,其中,IIR濾波器需要執行無限數量卷積,能得到較好的幅度特性,其相位特性是非線性的;而FIR濾波器由有限個采樣值組成,具有嚴格的線性相位特性。由于在數據通訊、語音信號處理、圖像處理等傳輸過程中不能有明顯的相位失真,而FIR濾波器在滿足一定對稱條件下可以實現IIR濾波器難以實現的線性相位,因而得到廣泛應用。FIR濾波器被稱為有限長脈沖響應濾波器,與IIR數字濾波器相對應,他的單位脈沖響應h(n)只有有限個數據點。輸入信號經過線性時不變系統輸出的過程是一個輸入信號與單位脈沖響應進行線性卷積的過程,FIR濾波器的數學表達式為:
y(n)=∑[DD(]N-1[]i=0[DD)]h(i)x(n-i)
(1)
式中,N是FIR濾波器的抽頭數,x(n)表示第n時刻的輸入樣本;h(i)是FIR濾波器的第i級抽頭系數。 普通的直接型FIR濾波器結構如圖1所示。
FIR濾波器實質上是一個分節的延遲線,把每一節的輸出加權累加,便得到濾波器的輸出。對于FIR濾波器,幅度上只需滿足以下兩個條件之一就能構成線性相位FIR濾波器。
h(n)=h(N-1-n)(2)
h(n)=-h(N-1-n)(3)
式(2)稱為第一類線性相位的幅度條件(偶對稱),式(3)稱為第二類線性相位的幅度條件(奇對稱)。
圖1 普通的直接型FIR濾波器結構圖
FIR濾波器是由一個“抽頭延遲線”的加法器和乘法器的集合構成,每個乘法器的操作數就是一個FIR系數。對每次采樣y(n)都要進行K次連續的乘法和(K-1)次加法操作,本文對直接型FIR濾波器進行了優化和實現。
2 FIR濾波器的優化
在實際應用中,為了減少邏輯資源的占有量和提高系統的運行速度,對FIR濾波器需要進行優化處理。本文采用的優化是對表達式進行優化。
對于線性相位因果FIR濾波器,他的系列具有中心對稱特性,即h(i)=±h(N-1-i)。令s(i)=x(i) ±x(N-1-i),對于偶對稱,代入式(1)可得:
y(n)=∑[DD(]N-1[]i=0[DD)]h(i)x(n-i)=∑[DD(]N/2-1[]i=0[DD)]h(i)s(n-i)
(4)
3 設計方案
由于FIR濾波器的系數鏡像對稱,故將線形相位FIR濾波器的流圖改造成如圖2所示格式。
圖2 改進的FIR濾波器結構
以上結構中,每一個乘加單元
從上述的原理框圖中可以看到,所有的MAC都是規則分布的,是時分復用。
假設x[n]的輸入時鐘clk的速率為Vx[n]=59 kHz,MAC單元的處理速率為VMAC,若存在VMAC=N2#8226;Vx[n]=56×59 kHz=3.304 MHz,則可以實現MAC單元的復用,這樣就將N/2個MAC單元降低為1個,大大節約了硬件。
FIR濾波器的實現框圖如圖3所示。
圖3 FIR濾波器的實現框圖
4 ROM-cell實現
由于該FIR濾波器的性能要求極高,在實現時,FIR濾波器的系數非常的多,所以需要大量的存儲單元,為了節約空間,采用縮放法(ScalingTechTM)來實現ROM-cell。
先把所有的系數放大2N后再進行量化,將放大后的數進行量化并進行乘法運算,最后將乘法的結果減小2N倍(這對于硬件實現非常容易,只需要將結果右移N位即可)。但是從系數上來觀察,發現采用“直接型”FIR濾波器所產生的系數相差非常的大,其動態范圍高達105,不宜采用單因子縮放。這里引入一個叫做縮放矩陣和趨一矩陣的概念,記為:縮放矩陣為[WTHX]S[WTBX]r×c,趨一矩陣為[WTHX]T[WTBX]r×t。
將所有的系數絕對值Cr被1除,將得到的商向下取整得Q↓r,由于Cr<1,所以必有Q↓r>1,再計算P=log2Q↓r和C↓r=Cr×P,這時C↓r將滿足{|C↓r|×2>1,|C↓r|<1}。分別將P和C↓r用二進制量化為t比特、c比特,于是有:
[WTHX]S[WTBX]r×c=[WTHX]C[WTBX]r×b×[WTHX]T[WTBX]r×tC↓0×cC↓55×c=C0×cC55×c#8226;P0×tP55×t
由于|C↓r|→1,所以只需要用較少的比特來量化他就可以滿足精度的要求,試驗證明:當c=14時,較精確的滿足了要求。再算得t=5,所以一共只需要采用19 b就可以了。這樣每個系數就節約了8 b,理論上一共節約了56×8=448 b。
5 MAC-cell實現
MAC-cell是由一個乘法器和一個累加器組成,累加器設計較為簡單,也不會占用太多的資源,關鍵在于乘法器的設計。
在本設計中,由于乘法運算的位數很高,所以必須采用“串行乘法器”來實現其功能。“串行乘法器”在算法上是由一個移位寄存器
6 結 語
本文針對現代數字信號處理的快速發展對于數字濾波器設計的要求,對直接型FIR濾波器進行了優化和實現,由于采用高度的時分復用模型,故能采取最少的硬件資源實現高性能FIR濾波器,這對于其他濾波器的設計都具有很好的參考價值。
參 考 文 獻
[1][美]John G,Proakis,Dimitris G Manolakis.數字信號處理[M].4版.北京:電子工業出版社,2007.
[2]萬國龍.數字信號處理[M].北京:清華大學出版社,2007.
[3]劉海兵,劉雄飛,張德恒.基于FPGA的數字濾波器的設計與實現[J].現代電子技術,2006,29(15):70-71.
[4]Haykin S.Adaptive Filter Theory[M].Prentice Hall,Englewood Cliffs,NJ,1986.
作者簡介
任 菊 女,1974年出生,電子科技大學電子工程學院信號與信息處理專業碩士研究生。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。