基于FPGA的高效FIR濾波器設(shè)計(jì)與實(shí)現(xiàn)
摘要: 給出了一種基于FPGA的數(shù)字濾波器的設(shè)計(jì)方法。該方法先通過(guò)MATLAB設(shè)計(jì)出一個(gè)具有具體指標(biāo)的FIR濾波器, 再對(duì)濾波器系數(shù)進(jìn)行處理, 使之便于在FPGA中實(shí)現(xiàn), 然后采用基于分布式算法和CSD編碼的濾波器結(jié)構(gòu)進(jìn)行設(shè)計(jì), 從而避免了乘法運(yùn)算, 節(jié)約了硬件資源,其流水線(xiàn)的設(shè)計(jì)方式也提高了運(yùn)行速度。Matlab和Modelsim仿真表明, 該設(shè)計(jì)功能正確, 能實(shí)現(xiàn)快速濾波。
本文引用地址:http://www.biyoush.com/article/191285.htm0 引言
數(shù)字濾波器在語(yǔ)音與圖像處理、模式識(shí)別、雷達(dá)信號(hào)處理、頻譜分析等應(yīng)用中都具有重要作用。它能避免模擬濾波器所無(wú)法克服的溫漂和噪聲等問(wèn)題, 同時(shí)比模擬濾波器精度高、穩(wěn)定性好、體積小、更加靈活, 因而得到廣泛應(yīng)用。在聲波測(cè)井中, 通常需要對(duì)信號(hào)進(jìn)行精確的濾波,并且對(duì)濾波器具有嚴(yán)格的實(shí)時(shí)性要求。本文利用輔助Matlab設(shè)計(jì)工具, 設(shè)計(jì)了一種基于FPGA且可滿(mǎn)足測(cè)井需求的高階快速數(shù)字濾波器。
1 線(xiàn)性相位FIR濾波器結(jié)構(gòu)
數(shù)字濾波器的種類(lèi)很多, 分類(lèi)的方法也不盡相同。從數(shù)字濾波器的單位沖擊響應(yīng)來(lái)看, 數(shù)字濾波器分為有限沖激響應(yīng)數(shù)字濾波器(FIR) 和無(wú)限沖激響應(yīng)數(shù)字濾波器(IIR)。相對(duì)于IIR濾波器,F(xiàn)IR濾波器可以進(jìn)行準(zhǔn)確的線(xiàn)性相位設(shè)計(jì), 而且其結(jié)構(gòu)具有穩(wěn)定的量化濾波器系數(shù)。針對(duì)于聲波測(cè)井處理具有線(xiàn)性相位要求的聲波信號(hào), FIR濾波器是首選。
在時(shí)域中, FIR濾波器的輸入輸出過(guò)程是一個(gè)輸入信號(hào)與單位脈沖響應(yīng)進(jìn)行線(xiàn)性卷積的過(guò)程, 其差分方程表達(dá)式為:
其中, y (n) 為濾波輸出, x (n) 為采樣數(shù)據(jù), h (n) 為濾波器抽頭系數(shù)。其結(jié)構(gòu)如圖1 (a)所示, 圖中, N-1階FIR濾波器要用N個(gè)系數(shù)描述, 通常, 需要N個(gè)乘法器和N-1個(gè)兩輸入加法器才能實(shí)現(xiàn)。不難發(fā)現(xiàn), 乘法器的系數(shù)正好是傳輸函數(shù)的系數(shù), 因此, 該結(jié)構(gòu)且稱(chēng)為直接型結(jié)構(gòu)。
對(duì)于系數(shù)對(duì)稱(chēng)的FIR線(xiàn)性相位濾波器, 可將式(1) 寫(xiě)成如下形式:
系數(shù)對(duì)稱(chēng)的改進(jìn)型FIR濾波器的結(jié)構(gòu)如圖1(b) 所示。該結(jié)構(gòu)把系數(shù)對(duì)稱(chēng)(相同或相反) 的抽頭合并之后再作乘法, 這樣可使乘法器數(shù)量降為原有的一半, 但也增加了額外的加法器。
圖1 FIR濾波器結(jié)構(gòu)
2 設(shè)計(jì)方法與指標(biāo)
FDATool是Matlab信號(hào)處理工具箱里專(zhuān)用的濾波器設(shè)計(jì)分析工具, 該工具的主要作用是按照設(shè)計(jì)指標(biāo)提取濾波器系數(shù)。用FDATool設(shè)計(jì)數(shù)字濾波器的關(guān)鍵在于濾波器類(lèi)型、窗函數(shù)、濾波器階數(shù)、截止頻率等參數(shù)的選擇。其中窗函數(shù)用于決定阻帶衰減和過(guò)渡帶帶寬, 常用的窗函數(shù)有矩形窗、漢寧窗、海明窗和布萊克曼窗。矩形窗和漢寧窗阻帶衰減較小, 而布萊克曼窗過(guò)渡帶較大, 相對(duì)來(lái)說(shuō), 海明窗更符合設(shè)計(jì)要求, 它的最小阻帶可以達(dá)到54.5dB, 歸一化過(guò)渡帶帶寬為3.11π/M (濾波器階數(shù)N=2M+1)。針對(duì)聲波測(cè)井信號(hào), 設(shè)計(jì)時(shí)應(yīng)進(jìn)行表1所列的參數(shù)設(shè)置。
表1 濾波器參數(shù)選擇
圖2所示是該濾波器的幅頻和相頻響應(yīng)曲線(xiàn),該曲線(xiàn)在通帶內(nèi)保持線(xiàn)性相位, 阻帶衰減大于52dB, 過(guò)渡帶帶寬為1.65kHz。抽頭系數(shù)可以在工具箱中量化為定點(diǎn)整型數(shù)據(jù), 以便在FPGA實(shí)現(xiàn)階數(shù)為127的濾波器, 該濾波器一共有128個(gè)系數(shù)。對(duì)于階數(shù)較大的濾波器來(lái)說(shuō), 其量化對(duì)阻帶衰減和過(guò)渡帶的影響極小。
圖2 濾波器幅頻和相頻響應(yīng)特性曲線(xiàn)
評(píng)論