FAE講堂:利用賽靈思FGPA實現(xiàn)降采樣FIR濾波器
多級方法
本文引用地址:http://www.ex-cimer.com/article/119299.htmFIR-Complier已經(jīng)為這種多相L/M=6/25濾波器生成了非常小的內核。不過,我們需要再次采用多級方法,因為這種方
法使我們能夠進一步節(jié)約DSP48與BRAM。在手動設計多級系統(tǒng)時, 如本例所示,所有濾波級都必須采用與參考濾波器相同的通帶頻率 (Fpass)。
各級通帶紋波均相等,是由參考濾波器通帶紋波除以級數(shù)算出。各級的差異是阻帶頻率。第一級無需在Fstop截止,因
為轉換帶寬會變得太急促(太多系數(shù));現(xiàn)實中我們所需要的只是讓第一級在Fstop1=Fs_in/M1- Fs_in/(2M/L)截止。實際上Fs_in/M1與其所有倍數(shù)此時都是放置所有復本的新采樣頻率,而Fs_in/(2*M1)是Fs_in/M1中第一個復本的帶寬的一半。以下是相關MATLAB代碼。
由于第一級是M1=4整數(shù)降采樣器, 因此其FIRCompiler GUI設置與圖1所示非常相似。唯一不同的參數(shù)是COE文件名(即dec_L1_M4_rad10.coe)、抽取率值(M1=4)、輸入采樣頻率 (50 MHz) 和時鐘頻率 (150 MHz)。另一方面,第二級采用 L2/M2=24/25 有理數(shù)速率變化,因此,F(xiàn)IR-Compiler設置與圖6所示大同小異。此處COE文件名為dec_L24_M25_rad10.coe,插值速率值設為L2=24,而輸入采樣頻率為12.5 MHz。
在布局布線之后,上述兩個濾波級占用以下FPGA資源:
第一級(L1/M1= 1/4):
Slice 觸發(fā)器數(shù)量:321 個
Slice LUT數(shù)量:223 個
占用 Slice數(shù)量:62 個
DSP48 MAC單元數(shù)量:4 個
BRAM單元數(shù)量:0 個
第二級(L2/M2 = 24/25):
Slice觸發(fā)器數(shù)量:206 個
Slice LUT數(shù)量:209 個
占用 Slice數(shù)量:68 個
DSP48 MAC單元數(shù)量:3 個
BRAM單元數(shù)量:1 個
由于采用多級方法,與單級理想濾波器資源占用相比,我們現(xiàn)在可以節(jié)約 3% 左右的觸發(fā)器,4%的LUT,15%的Slice,46%的DSP48以及83%的BRAM單元。尤其是我們只需少得多的MAC與BRAM單元,分別只有6個和5個。原因是第二個濾波器以更低的輸入采樣頻率運行,而采用整數(shù)速率變化的第一個濾波器可以充分利用系數(shù)對稱。
其它資源
我們在本輔導資料中介紹了兩個降采樣濾波器例子,一個是整數(shù)系數(shù)(50),另一個是有理數(shù)系數(shù)(25/6),而且
本文強調了在MATLAB設計濾波器以及采用FIR-Compiler和CIC-Compiler 在賽靈思FGPA中實現(xiàn)它們的方法。相關數(shù)據(jù)手冊詳細介紹采用CORE Generator實現(xiàn)濾波器所涉及的參數(shù)設置。
如果有興趣進一步深入DSP領域,有兩本專著具體介紹諸多理論和相關 MATLAB 指令:《數(shù)字信號處理基礎與應
用》,作者:Li Tan(Elsevier,2007 年)和《通信系統(tǒng)多速率信號處理》,作者:Fredric J. Harris(Prentice Hall,2004年)。另外,賽靈思網(wǎng)站提供大量有關多速率數(shù)字上變頻和下變頻的應用手冊(尤其是 Xapp113、569、1018 與 936)。
最后,為了理解如何有效實現(xiàn)DSP算法,本人強烈推薦參加賽靈思培訓課程《賽靈思FPGA的DSP實現(xiàn)技巧》。
濾波器相關文章:濾波器原理
濾波器相關文章:濾波器原理
電源濾波器相關文章:電源濾波器原理
評論