高階FIR濾波器的計算機設計與FPGA實(shí)現
摘要:根據有限沖擊響應(FIR)數字濾波器的原理,綜合運用Matlab和FPGA的QuartusⅡ兩大計算機軟件,提出了一種利用QuartusⅡ中參數化宏功能模塊(LPM)的FIR濾波器設計方法。首先利用Matlab設計濾波器系數,再利用QuartusⅡ的LPM構造的乘法器和加法器,最終得到濾波結果。相比分布式算法,該法在信號處理速率要求不高,且濾波器階數較高的情況下,可更加簡(jiǎn)單地實(shí)現濾波效果。最終在Matlab和Quar-tusⅡ的基礎上,實(shí)現了64階的高階FIR數字濾波器電路的設計與仿真。
關(guān)鍵詞:FlR濾波器;Matlab QuartusⅡ;參數化功能模塊庫
相對無(wú)限沖擊響應(IIR)濾波器,有限沖擊響應(FIR)能夠在滿(mǎn)足濾波器幅頻響應的同時(shí)獲得嚴格的線(xiàn)性相位特性,而數據通信、語(yǔ)音信號處理等領(lǐng)域往往要求信號在傳輸過(guò)程中不能有明顯的相位失真,所以FIR濾波器獲得了更廣泛的應用。FIR濾波器有多種設計和實(shí)現方法,最為常用的是基于分布式算法的FIR濾波器設計。該法利用構造查找表,流水線(xiàn)操作完成濾波過(guò)程,極大地提高了系統的處理效率。然而,查找表所要求的系統存儲器容量隨濾波器的階數成指數上漲。本文基于工程實(shí)際出發(fā),在信號處理速率要求不高且濾波器階數較高的情況下,提出了一種基于LPM參數化宏功能模塊的FIR濾波器設計方法,具有一定的工程實(shí)用價(jià)值。
1 FIR濾波器的原理與設計方法
1.1 FIR濾波器的原理
FIR濾波器的數學(xué)表達式為:
式中:N為FIR濾波器的抽頭數;x(n)為第n時(shí)刻的輸入樣本;h(k)為FIR濾波器第k級抽頭系數。
直接型FIR濾波器結構如圖1所示。
由圖1可見(jiàn),FIR的濾波過(guò)程就是一個(gè)信號逐級延遲的過(guò)程,將各級的延遲輸出加權累加,即得到FIR的輸出,其中最主要的算法是乘累加運算。由于FIR每完成一次濾波過(guò)程就需要進(jìn)行N次乘法和N-1次加法操作,所以FIR濾波的運算量完全依賴(lài)于N的大小。
1.2 分布式FIR濾波器設計
分布式算法(Distributed Arithmetic,DA)早在1973年就已經(jīng)被Croisier提出,直到現場(chǎng)可編程門(mén)陣列(Field Programmable Gate Ar-ray,FPGA)的查找表(Look Up Table,LUT)結構出現,這種算法才重新受到重視,其主要原理如下。
為了分析簡(jiǎn)單,將FIR濾波器的表達式(1)改寫(xiě)為:
可見(jiàn),分布式算法是一種以實(shí)現“乘-加”單元為目的的優(yōu)化解決方案。利用一個(gè)查找表(LUT)實(shí)現映射,即用一個(gè)2k字寬(即2k行),預先編好程序中LUT接收到的一個(gè)K位輸入向量Xb=[X0b,X1b,…,X(k-1)b]的映射,經(jīng)查找表的查找后直接輸出部分積。然而,由上述可知,查找表字寬為2k,如果濾波器的抽頭系數過(guò)多,則查找表的規模隨抽頭系數的增加成指數級增長(cháng),這將使LUT的規模十分龐大。為了減小規模,可以利用部分表計算法,即將一個(gè)大的查找表化分為幾個(gè)小的查找表,然后再將結果相加。
評論