濾波器是任何信號處理系統的關鍵組成部分,隨著現代應用的日趨復雜,濾波器設計的復雜程度也日益提高。采用 FPGA 設計和實現的高性能濾波器的能力是模擬方法所望塵莫及的。另外,采用FPGA 設計的數字濾波器可以避免模擬設計中存在的某些問題,特別是組件漂移和容差(在高可靠應用中,由溫度過高、老化和輻射問題造成)。這些模擬問題會顯著降低濾波器的性能,特別是在通帶紋波等方面。
當然, 數字模型也有自身的缺陷。濾波器數學運算中的舍入可能會帶來問題,因為舍入誤差會被累加,給性能造成不良影響,比如增大濾波器的噪聲基底。工程師可以采取多種方法大程度地減輕這種影響,例如使用收斂舍入可以獲得比傳統舍入更好的性能。終, 舍入誤差問題的嚴重性與模擬器件相比得到了顯著降低。
將 FPGA 作為濾波器構建模塊的主要優勢之一在于,如果因為集成原因或者需求變動原因需要調整性能,允許在設計過程的后期修改或者更新濾波器的參數,且產生的影響很小。
濾波器類型和拓撲結構
大多數熟知數字信號處理的工程師都知道濾波器的主要類型有四種。低通濾波器只允許頻率低于預設截止頻率的信號通過。高通濾波器與低通濾波器相反,只允許頻率高于截止頻率的信號通過。帶通濾波器只允許頻率在預設帶寬內的信號通過,不允許其它頻率的信號通過。帶阻濾波器與帶通濾波器相反,不允許頻率在預設帶寬內的信號通過,但允許其它頻率的信號通過。
大多數數字濾波器都采用下列兩種方法之一來實現: 有限脈沖響應(FIR) 和無限脈沖響應 (IIR)。首先我們深入探討如何設計和實現 FIR 濾波器。這種濾波器也常被稱為窗口 sinc濾波器。
為什么我們首先以 FIR 濾波器為重點呢?兩種濾波器的大區別在于有無反饋。對未采用反饋的 FIR 濾波器,在給定的輸入響應下,濾波器的輸出終會穩定為 0。而對采用反饋的IIR 濾波器,在相同的給定輸入下,輸出不會穩定為 0。
FIR 濾波器的設計由于未采用反饋,故天生具有穩定性,因為濾波器的所有極點都與原點重合。IIR 濾波器沒有這么幸運。由于在設計 IIR 濾波器的時候,必須精心考慮其穩定性,這樣窗口 sinc 濾波器對新接觸 DSP 技術的工程師來說,更加易于理解和實現。
頻率響應
頻率響應是工程師在考慮濾波器時所習慣關注的問題。它代表著濾波器改變頻域信息的性能。
通過頻率響應可以觀察到截止頻率、阻帶衰減和通帶波紋。在該響應中還可以清晰地觀察到通帶和阻帶之間的滾降,也稱為過渡帶。通帶中的波紋會給濾波信號造成影響。阻帶衰減則表明濾波器輸出中存在多少不必要的頻率。這對需要抑制特定頻率的應用意義重大,比如在通信系統中為頻分多路復用通道濾波。
脈沖響應
從脈沖響應中可以抽象出濾波器的系數。但是,要實現濾波器的性能,標準的方法是采用窗函數。窗函數指給截斷的脈沖響應應用額外的數學函數,以求減輕截斷帶來的副作用。
在圖 2 中,由于紋波的存在,脈沖響應向外無限延伸,盡管紋波的振幅顯著降低,但永遠不會降低至 0。因此,必須圍繞位于中心的主瓣,在兩側對稱地按 N+1 的系數截斷脈沖響應,這里 N 是期望的濾波器長度(切記 N應為偶數)。脈沖響應被突然截斷會給濾波器的頻域性能帶來不良影響。如果對截斷的脈沖響應進行離散傅里葉變換 (DFT),可以觀察到通帶和阻帶都有波紋出現以及滾降性能的下降。這是為什么一般會采用窗函數來改善性能的原因。