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