FAE講堂:利用賽靈思FGPA實(shí)現(xiàn)降采樣FIR濾波器
過去半年有幾位客戶請(qǐng)我?guī)椭麄冊(cè)O(shè)計(jì)和實(shí)現(xiàn)數(shù)字下變頻器所用的降采樣(即“抽取”)濾波器,這種濾波器在軟件無線電與數(shù)據(jù)采集類應(yīng)用中都很常見。這項(xiàng)工作即便對(duì)于經(jīng)驗(yàn)豐富的設(shè)計(jì)師也不是一件小事。事實(shí)上,僅僅算出在FGPA中實(shí)現(xiàn)濾波器所需要的資源可能就是一個(gè)很大的問題。雖然MATLAB®(MathWorks 開發(fā))具有用于濾波器設(shè)計(jì)與分析 (FDA) 的絕妙工具箱,但是它提供太多濾波器設(shè)計(jì)方法,會(huì)讓新用戶無從下手。另外,您必須能夠根據(jù)DSP理論解釋MATLAB命令產(chǎn)生的結(jié)果,僅僅這一點(diǎn)就需要研究。
本文引用地址:http://2s4d.com/article/119299.htm拋開理論的細(xì)枝末節(jié),讓我們開始圍繞上述問題探討降采樣有限脈沖響應(yīng) (FIR) 濾波器的設(shè)計(jì)與實(shí)現(xiàn)。本輔導(dǎo)資料實(shí)際上旨在向您介紹一種簡便、易于理解的流程——從濾波器系數(shù)生成到FGPA目標(biāo)器件中抽取濾波器的實(shí)現(xiàn)。所需工具只有MATLAB較新版本(本人仍在使用R2008a)及其FDA工具箱、以及ISE® 11.4套件提供的賽靈思CORE GeneratorTM工具。這些工具是設(shè)計(jì)多速率FIR濾波器的必備工具。
特別是我們將探討固定降采樣速率變化的兩個(gè)實(shí)例:整數(shù)值與有理值。您應(yīng)當(dāng)能夠把我們?cè)诒据o導(dǎo)資料介紹的MATLAB指令和CoreGen圖形用戶界面 (GUI) 設(shè)置應(yīng)用到您的設(shè)計(jì)當(dāng)中。為了說明公用邏輯塊 (CLB) Slice 、18KB內(nèi)存RAM塊(BRAM) 和DSP48乘法累加 (MAC) 單元等方面的資源占用情況,我們將采用 XC6VLX75T-2ff484 作為目標(biāo) FPGA 器件。
整數(shù)倍降采樣器假設(shè)基帶中進(jìn)行解調(diào)后按250MHz速率傳輸帶寬只有2.5MHz的信號(hào)。我們必須過濾從2.5MHz到 250MHz 的所有頻率,因?yàn)樗鼈儾粋鬏斎魏斡杏眯畔?這正是我們準(zhǔn)備設(shè)計(jì)和實(shí)現(xiàn)的低通 FIR 濾波器的目的。根據(jù)尼奎斯特定理,輸出數(shù)據(jù)速率是信號(hào)帶寬的兩倍;因此,我們需要按照M=50的整數(shù)倍對(duì)其執(zhí)行降采樣。我將介紹兩種采用多級(jí)濾波方法的可行備選實(shí)現(xiàn)方案:第一種方法采用三個(gè)串聯(lián)的 FIR 抽取濾波器,而第二種方法則同時(shí)采用級(jí)聯(lián)積分梳狀 (CIC) 濾波器與FIR濾波器。
以下是用于設(shè)計(jì)理想濾波器的MATLAB代碼。我們假設(shè)通帶和阻帶頻率的衰減分別為0.1dB和100dB。
假設(shè)FPGA時(shí)鐘頻率Fclk=Fs_in,那么在Virtex®-6器件中我們需要多少個(gè)DSP48 MAC單元?它是用于按M進(jìn)行降采樣的濾波器。根據(jù)FIR Complier 5.0數(shù)據(jù)手冊(cè) (fir_compiler_ds534.pdf) 詳細(xì)闡述的理論,我們可以把DSP48 MAC分成M個(gè)相位,因此引入“多相”這一術(shù)語。由于每個(gè)相位都是按更低的輸出頻率 Fs_out 進(jìn)行處理,因此可以按時(shí)分復(fù)用方式共享DSP48 MAC。以下理論計(jì)算表明,F(xiàn)IR-Compiler在通過多相分解方式實(shí)現(xiàn)濾波器時(shí)采用最小的22個(gè)MAC單元(total_num_MAC_ref )。濾波器長度是2100 (total_num_coeff),填寫0成為M的整數(shù)倍。請(qǐng)注意:此方案考慮系數(shù)對(duì)稱性。
在MATLAB中可以輕松按低通濾波建立抽取過程模型,然后按M降采樣,最終分別產(chǎn)生y與y_filt輸出信號(hào)。不過,在FPGA器件中,這種實(shí)現(xiàn)方式效率不高:它會(huì)很笨地計(jì)算隨后必須拋棄的值。相反,多相抽取器把輸入信號(hào)降采樣到M個(gè)wk通道,每個(gè)通道由其自身的子濾波器ph(k,:) 過濾。部分結(jié)果y_out(k,:) 然后匯總在一起組成最終輸出y_tot。把y_tot與本機(jī)MATLAB指令產(chǎn)生的基準(zhǔn) y 對(duì)比,結(jié)果表明最終輸出均處于數(shù)值精度3e-15范圍內(nèi)(由于不同運(yùn)算階數(shù)而出現(xiàn)偏差)。
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
評(píng)論