基于中檔FPGA多相濾波器的設計實現
相比之下, FIR濾波器沒有反饋,這意味著它的脈沖響應在一個有限的時間范圍之內。 FIR濾波器擁有優(yōu)于IIR濾波器的幾個優(yōu)點,其中包括一個事實,即在整個頻譜范圍,他們有完全恒定的群時延,在所有頻率范圍內,不論濾波器的大小,他們是完全穩(wěn)定的。
通用FIR濾波器的圖形表示如圖10所示。在這種情況下,輸入樣本xn通過一系列的緩沖寄存器(這些都標記為z-1,對應延時單元的Z變換)。
圖10 經典FIR濾波器的通用表示
濾波器的工作原理是用一系列的常數(稱為抽頭系數)乘以一系列最新的n個數據采樣,并對所得到的數組的單元進行求和。通過改變系數和濾波器抽頭數目的加權(值),FIR濾波器實際上可實現幾乎任何所需的頻率響應特性。
問題是FIR濾波器可能需要大量的抽頭(有時數百個),以實現其預定的目標。每一個抽頭需要消耗邏輯資源的乘法器累加器( Mac )單元。另外在每個時鐘,每個抽頭執(zhí)行消耗功率2的乘法和加操作。
用多相FIR濾波器進行抽取
多相濾波器的基本概念是把FIR濾波器分割成若干較小的單元,然后組合這些單元的結果。首先,讓我們考慮一個基于常規(guī)8抽頭FIR濾波器的抽取子系統(tǒng)的符號表示,如圖11所示(為了使用這些例子,我們假設抽取因子為M = 4 )。
圖11 基于傳統(tǒng)的8抽頭FIR濾波器的抽取器的符號表示
現在讓我們假設主時鐘正在以某一頻率fHz運行。像往常一樣,在濾波操作之后任何不要的樣本將被丟棄,但這樣做是低效率的,因為這意味著是以完全的時鐘頻率在進行濾波。用另一種方式來看這種操作,即在每個時鐘時刻,每個抽頭級執(zhí)行乘法和加運算。
相比多相實現的情況,我們可以將原來的8抽頭FIR濾波器分為四個2抽頭子濾波器,如圖12所示。
圖12 基于4 × 2抽頭多相濾波器的抽取器的符號表示
假設同樣的主時鐘以f Hz的頻率運行,我們可以想象輸入數據流被送入一個旋轉開關(當然,這可用標準的邏輯技術來實現)。第一個數據值送入第一個子濾波器;第二個數據值送入第二個子濾波器;第三個數據值送入第三個子濾波器;第四個數據值送入第四個子濾波器。然后,我們進行“循環(huán)”操作,以便第五個數據值送入第一個子濾波器;第六個數據值送入第二個子濾波器;等等。
使用子濾波器減少了可能的飽和/溢出(發(fā)生任何飽和/溢出通常只需要在最后的函數求和時進行處理)。另外,使用子濾波器具有一個直接有效的優(yōu)點,因為在執(zhí)行濾波操作之前,我們有效地“抽取”了數據。這也意味著,我們的四個子濾波器中的每個都能有效地以F ÷ 4Hz的頻率運行,如圖13所示。
圖13 4 × 2抽頭多相濾波器的運行情況
評論