《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于FPGA的改進型FIR濾波器的實現

基于FPGA的改進型FIR濾波器的實現

2009-07-02
作者:黃曉紅,蔡江利

??? 摘? 要: 利用分布式算法對FIR濾波器的硬件實現進行了探討,在數乘累加的理論上,對分布式算法的串行、并行和拆分查找表法的FPGA硬件實現方法進行了研究。結合FPGA查找表結構,兼顧資源及運行速度的要求,用拆分查找表的方法設計了16階8位常系數FIR濾波器,并在Quartus II 5.0下進行仿真,仿真結果驗證了該算法的有效性和實時性。?

??? 關鍵詞: FPGA;分布式算法;拆分查找表;FIR濾波器

?

??? FIR數字濾波器在數字信號處理的過程中有很好的線性相位和穩定性,被廣泛應用于音頻處理、語音處理、信息系統等各種系統中。隨著現代電子技術及EDA技術的發展,特別是可編程邏輯電路的發展,FIR數字濾波器的實現將變得更具有靈活性和實時性。FIR濾波器的實現有多種方法,其中基于分布式算法FIR濾波器的FPGA實現采用硬件結構,此算法的特點是運行速度快,能較好地實現實時處理,特別適合于高速實時的信號處理。本文提出了一種基于分布式算法改進型FIR濾波器的FPGA實現,并設計和實現了改進型FIR濾波器。?

1 FIR數字濾波器的直接型結構?

??? FIR數字濾波器的輸入與輸出可以用下式表示:?

???   ?

式中:N為濾波器的階數(或抽頭數);x(k)為第k時刻的輸入樣本值;h(k)為第k級抽頭系數。FIR因為其單位脈沖響應h(n)是有限長而得名,即h(n)是一個有限長序列,對h(n)做Z變換就得到FIR數字濾波器的系統函數H(z):?

?????

??? 由此可以得到FIR數字濾波器直接型的結構圖如圖1所示。?

?

?

2 改進型FIR數字濾波器算法?

2.1 分布式算法的原理?

??? 分布式算法是一種重要的FPGA技術,廣泛應用在計算乘積和之中。除了卷積之外,相關、DFT計算和RNS反演映射等都可以轉化為乘積和(sum of products)的形式。?

??? (1)無符號分布式算法?

??? 假設N項的乘積和表示為:?

  ?

??? 又設系數h(n)是已知的常系數,x(n)是變量,設x(n)的表達式如下:?

?????

其中xb(n)表示x(n)的第b位,x(n)是x的第n次采樣,則y又可以表示為:?

?????

??? (2)有符號分布式算法?

??? 對于有符號數補碼數采用補碼的表示方法。需要注意的是,在補碼中,最高有效位是用來區別正數和負數的。將采用(B+1)位表達式:?

?????

??? 要實現有符號分布式系統,通常采用“帶有加/減控制器的累加器”實現此系統,當xb(n)為0時進行加法運算,為1時進行減法運算。?

2.2 串行分布式算法?

??? 串行分布式算法結構如圖2所示。利用一個LUT實現映射,即2N字寬,預先編寫好程序的xb=[xb(0),xb(1),…,xb(N-1)]的映射,經查找表查找后輸出,N次查詢循環后就完成了計算結果。?

?

?

??? 以三階四位有符號的數字濾波器為例,令濾波器的系數為{-2,1,3},LUT可采用基于FPGA的邏輯查找表或利用FPGA自帶的ROM實現。用case表實現的核心代碼如下:?

??? Process (table_ in)?

??? Begin?

??? ? Case table_ in is?

??????? when “000”=>?? table_ out<=0;?

??????? when “001”=>?? table_ out<=-2;?

??????? when “010”=>?? table_ out<=3;?

??????? when “011”=>?? table_ out<=1;?

??????? when “100”=>?? table_ out<=1;?

??????? when “101”=>?? table_ out<=-1;?

??????? when “110”=>?? table_ out<=4;?

??????? when “111”=>?? table_ out<=2;?

??????? when? others=>?? table_ out<=0;?

??? ? end? case;?

??? end? process;?

2.3 并行分布式算法?

??? 并行分布式算法結構如圖3所示,圖中虛線代表流水線寄存器,輸入采用逐次采樣(每次一個字)、位并行的形式。將每個數據的相同位遞給LUT,對于輸入的每一位都需要配置相應單獨的表,且表的規模不固定(輸入位寬等于濾波器抽頭的數量),但表的內容相同。且不同的位對應不同的值,然后將從LUT中讀取的數據經過處理后送入加法器中,每級的加法運算都是并行的。?

?

?

2.4 拆分查找表?

??? 并行分布式算法雖然能夠有效提高系統運算的速度,但是占用的資源太大。串行分布式算法占用的資源小,但系統的運算速度慢。而且當N很大時,即在FIR濾波器中如果階數很高時,作為查找表的ROM將很大,例如:假定N=16,輸入LUT的位寬為16,則ROM的大小為16×216 bit,即1 Gbit。N每增加一位,ROM容量就增加一倍,這種以2的冪次遞增的資源占用是硬件資源不可接受的。?

??? 當系統對速度要求不太高、而濾波器的階數很高時,可以采用拆分表減少ROM容量并將結果累加。如果再加上流水線寄存器,這個改進并沒有降低速度,卻可以極大減少LUT的設計規模。?

??? 假設長度為LN的內積:?

  ?

可以用一個DA結構實現。將和分配到L個獨立的N階并行DA的LUT之中,結果如下:?

  ?

??? 例如:實現一個4N的DA設計需要3個次輔助加法器。而表格的規模從一個4N×2B的LUT降低到4個N×2B表。圖4是拆分查找表的硬件結構圖。?

?

?

3 基于FPGA實現的改進型FIR濾波器結構性能?

3.1 16階8位FIR濾波器的實現及仿真?

??? 本設計采用Altera公司的Cyclone II EP2C35F672C8器件,在Quartus II 5.0下仿真,FIR濾波器為16階,輸入數據為8位(最高位代表符號位)。如果采用單個查找表的面積為28×16 bit,面積太大。采用拆分查找表的結構能減少面積,在Altera公司的一系列FPGA中LUT查找表采用四輸入查找表,因此單個表可以拆分為2個四輸入的查找表。因為設計的是線性相位濾波器,這樣單個表的面積就得到了最優化。同時單個查找表的連線是LUT查找表的內部連線,減少了互聯的資源和連線的延遲。查找表計算方法如表1所示。?

?

?

??? 設輸入序列為{99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0},濾波器的系數為{-12 -18 13 29 -13 -52 14 162 242 14 -52 -13 29 13 -18}。仿真結果如圖5所示。?

?

?

???本設計的時鐘主頻可達73.49 MHz,占用了236個邏輯單元,占整個LC(Logic cell)的2%??梢姴鸱植檎冶淼姆绞綄崿FFIR濾波器速度較快,占用的資源少。?

????若要實現更高階的濾波器,拆分查找表法的優勢將更加明顯。另外,如果是線性相位的濾波器,表的個數將能縮小一倍。本設計即為線性相位濾波器。?

3.2 改進型FIR濾波器在FPGA中實現的特點分析?

??? 為了分析改進型FIR濾波器在FPGA中實現的特點,利用VHDL語言程序分別設計了16階的串行、并行及直接型FIR濾波器,并與相應的拆分查找表法FIR濾波器進行比較,其各自的運行速度及占用FPGA資源的情況如表2所示。

?

?

??? 從表2可以看出,改進型濾波器與直接型相比存在兩大明顯的優勢。一方面,在濾波器階數相同時,改進型FIR濾波器在FPGA資源占用上比直接型更少;另一方面,系統運行的速度比直接型更快。而且,隨著濾波器階數的增加,這種優勢更加明顯。串行濾波器完成一次運算需要8個時鐘周期,為了把數據分為8個時鐘周期進行計算,采用了移位寄存器,這樣單個表的面積相當大,從而占用了大量資源,工作速度也受到了限制。并行分布式濾波器在1個時鐘周期完成了累加,提高了工作速度,但所用面積較大。拆分查找表法濾波器大大減少了面積,而且速度并沒有降低。?

??? 本設計采用了拆分查找表方法,影響系統速度的是加法器組,可以對濾波器進一步改進,如對加法器組利用流水線、編碼等技術可以提高工作速度。?

??? 通過以上的理論分析和仿真結果表明,基于FPGA器件的拆分查找表FIR算法,占用資源少、運算速度快,在資源允許的條件下可根據實際應用任意確定濾波器的長度和階數,是一種比較實用可靠的高效設計方法。?

參考文獻?

[1] PARHI K K.VLSI digital signal processing systems:Design?and implementation[S].John Wiley&Sons,1999.?

[2] ASHENDEN P J.The designer′s guide to VHDL(SecondEdition)[S].Elsevier Science(USA),2002.?

[3] 程偑清.數字信號處理教程[M].北京:清華大學出版社,2001.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 一区二区三区国产 | 久久久久久福利 | 激情99 | 中文字幕欧美日韩 | 日韩一区二区超清视频 | 玖玖在线精品 | 精品国产亚洲一区二区在线3d | 在线播放黄 | 美女一级a毛片免费观看 | www在线观看免费 | 国产偷国产偷高清视频 | 亚洲人一区 | 一级特黄aaa免费 | 在线成人福利 | 欧美一区二区在线观看免费网站 | 精品视频一区二区三区 | 在线成人影片 | 精品一区久久 | 成年在线视频免费视频观看 | 久久久久精彩视频 | 柠檬福利第一导航在线 | 好吊色几万部永久免费视频 | 日韩在线理伦片免费观看 | 成人久久久久 | 日韩免费高清一级毛片久久 | 日韩第六页 | 日本免费一区二区视频 | 欧美人与牲动交a欧美精品 欧美人与日本人xx在线视频 | 一本大道香蕉大无线视频 | 国产99re在线观看只有精品 | 欧美日韩在线不卡 | 秋霞午夜鲁丝片午夜精品久 | 男女深夜福利 | 福利在线免费视频 | 欧美日韩色 | 免费看91视频 | se成人| 一区二区三区免费高清视频 | 日韩理论视频 | 黄色a三级三级三级免费看 黄色a三级免费看 | 手机看片国产免费久久网 |