FIR數字濾波器的FPGA實(shí)現研究

發(fā)布時(shí)間:2010-9-4 16:06    發(fā)布者:hikesoso2010
關(guān)鍵詞: FIR , FPGA , 數字濾波器
如今,FPGA已成為數字信號處理系統的核心器件,尤其在數字通信、網(wǎng)絡(luò )、視頻和圖像處理等領(lǐng)域,F在的FPGA不僅包含查找表、寄存器、多路復用器、分布式塊存儲器,而且還嵌入專(zhuān)用的快速加法器、乘法器和輸入,輸出設備。FPGA具有實(shí)現高速并行運算的能力,因而成為高性能數字信號處理的理想器件。此外,與專(zhuān)用集成電路(ASIC)相比,FPGA具有可重復編程的優(yōu)點(diǎn)! 「鶕䥺挝幻}沖響應的不同,數字濾波器主要分為有限脈沖響應(FIR)和無(wú)限脈沖響應(IIR)2大類(lèi)。在同樣的設計要求下,IIR方式計算工作量較小。但難以得到線(xiàn)性相位響應,且系統不易穩定;FIR方式的計算工作量稍大,但在設計任意幅頻特性時(shí),能保證嚴格的線(xiàn)性相位特性;由于其實(shí)現結構主要是非遞歸的,FlR濾波器可以穩定工作。FIR數字濾波器是數字多普勒接收機的重要組成部分,因此,研究FIR數字濾波器的實(shí)現技術(shù)具有重要意義。隨著(zhù)FPGA技術(shù)的不斷發(fā)展,FPGA逐漸成為信號處理的主流器件。而在FPGA中,數字濾波器不同的實(shí)現方法所消耗的FPGA資源是不同的,且對濾波器的性能影響也有較大差異! 1 FIR濾波器的原理及結構  FIR濾波器存在N個(gè)抽頭的h(n),N稱(chēng)為濾波器的階數,其數學(xué)表達式為:  式中,x(k)為第k時(shí)刻的采樣值,y(n)為濾波器輸出。h(k)為FIR濾波器的第k級抽頭系數! ⊥ㄟ^(guò)對h(k)進(jìn)行Z變換得到FIR的傳遞函數H(Z),其在Z域內的形式如下:  因此,根據傳遞函數H(Z)和FIR濾波器系數的對稱(chēng)性,可得FIR濾波器的一般實(shí)現結構,如圖1所示! 拇薪Y構中可以看出,FIR濾波過(guò)程就是一個(gè)信號逐級延遲的過(guò)程,將各級延遲輸出加權累加,得到濾波輸出,其中最主要的運算是乘累加運算。FIR每完成一次濾波過(guò)程需要進(jìn)行N次乘法和(N-1)次加法運算,N為濾波器的階數。所以,濾波器的運算量完全取決于N的大小,當N很大時(shí),延遲將非常長(cháng),無(wú)法實(shí)現高速信號處理! 「鶕﨔IR數字濾波器的對稱(chēng)特性,可以先進(jìn)行加法運算,然后對加法運算的結果進(jìn)行串行乘累加運算,從而得到改進(jìn)的串行結構。與串行結構相比,改進(jìn)的濾波器完成一次濾波的時(shí)鐘周期減半,乘累加次數減半,提高了處理速度,但同時(shí)要消耗更多的硬件資源。圖1(b)為Ⅳ位偶數時(shí)改進(jìn)的串行結構。與串行結構相似,濾波器的運算量完全取決于N的大小,當N很大時(shí),延遲將非常長(cháng),無(wú)法實(shí)現高速信號處理! ⒋薪Y構展開(kāi),根據濾波器的信號流圖用多個(gè)乘法器和加法器并行實(shí)現,得到FIR濾波器的并行實(shí)現結構,如圖1(c)所示。并行濾波器的濾波速度快,一個(gè)時(shí)鐘周期內完成一次濾波,但消耗大量的FPGA資源,如乘累加器,且器件的延遲較大,工作頻率不宜太高! PGA具有規整的內部邏輯陣列和豐富的連線(xiàn)資源,特別適合用于數字信號處理。但以前FPGA一般用于系統邏輯或時(shí)序控制,很少應用在信號處理方面。其原因主要是FPGA中缺乏實(shí)現乘法運算的有效結構。隨著(zhù)FPGA技術(shù)的不斷發(fā)展,查找表(LUT)技術(shù)的應用有效地解決了這個(gè)問(wèn)題,使FPGA在數字信號處理方面得到了廣泛應用! 2 基于分布式算法的FIR濾波器的實(shí)現  2.1 分布式算法原理  上世紀70年代Croisie提出了分布式算法DA(Distributed Arithmetic),但由于其特別適合用FPGA實(shí)現,所以直到Xilinx公司在FPGA中使用查找表(LUT)后,DA才被廣泛應用在FPGA求乘積和中! IR的濾波輸出y可以表示為輸入x和系數h的內積:  由上述推導可知,分布式算法是一種以實(shí)現乘加運算為目的的運算方法。它與傳統實(shí)現乘加運算的先后順序不同。分布式算法在完成乘加功能時(shí),是通過(guò)將各輸入數據每一對應位產(chǎn)生的部分積預先進(jìn)行相加形成相應部分積,然后在對各部分積預先進(jìn)行累加形成最終結果;而傳統算法是等到所有乘積產(chǎn)生之后再進(jìn)行相加來(lái)完成乘加運算! 2.2 分布式FIR的實(shí)現結構  圖2為分布式FIR濾波器的直接實(shí)現結構。對于小位寬的數據,DA算法不僅速度快,而且所占用的芯片資源少! 2.3 性能優(yōu)化方法  1)流水線(xiàn)結構法 在濾波器中間增加適當的寄存器,構成流水線(xiàn)結構。在并行結構實(shí)現中添加流水線(xiàn)結構,可以提高濾波器速度,使其工作在更高的工作頻率。對于速度固定的數據,可以通過(guò)多次復用乘累加器來(lái)節省資源! 2)查找表分隔法 在用LUT實(shí)現分布式算法時(shí),由于LUT的規模隨著(zhù)N的增加呈現指數增長(cháng),如果濾波器系數N過(guò)大,則查找表的規模十分龐大。為了減小規模,可以利用部分表計算。由于FIR濾波器是線(xiàn)性濾波器,因此低階濾波器輸出可以相加,由此定義一個(gè)高階濾波器的輸出。例如,把16輸入的查找表分割成4個(gè)并行的查找表。   查找表的分隔技術(shù)和流水線(xiàn)技術(shù)可以大大減小設計規模,同時(shí)并不會(huì )降低濾波速度。使用DA算法實(shí)現的FlR濾波器與傳統的算法相比,DA算法可以極大地減少硬件電路規模,很容易實(shí)現流水線(xiàn)處理,提高電路的執行速度。   2.4 3種結構實(shí)現的比較  改進(jìn)串行結構、并行結構、DA結構實(shí)現的比較如下:  1)改進(jìn)串行結構 ①優(yōu)點(diǎn):使用資源少,只需一些寄存器、乘累加器便可完成整個(gè)濾波運算;②缺點(diǎn):濾波速度慢,一次濾波所需的時(shí)鐘數由濾波器的階數決定。階數較高的濾波器,濾波周期很大,無(wú)法實(shí)現高速濾波! 2)并行結構 ①優(yōu)點(diǎn):完成濾波的速度快,直接并行濾波器可以在一個(gè)時(shí)鐘周期內完成一次濾波;②缺點(diǎn):消耗大量的乘累加器,器件延遲較大,工作頻率不可能太高! 3)DA結構 與串行結構實(shí)現相比,DA實(shí)現濾波速度較快,其濾波周期由數據寬度決定而與濾波器的階數無(wú)關(guān);而與并行實(shí)現相比,DA實(shí)現消耗的資源較少。且容易實(shí)現流水線(xiàn)處理,提高電路的執行速度! ≡谠O計中,當資源成本為主要制約時(shí),根據速度要求,選擇串行結構實(shí)現或DA結構實(shí)現;而當速度成為主要制約時(shí),則根據資源成本因素,選擇并行實(shí)現結構或DA結構實(shí)現。在一般的應用設計中,一般采用DA結構實(shí)現! 3 實(shí)例設計與仿真  3.1 FIR濾波器的設計  利用Matlab中的FDATool工具設計一個(gè)33階,Fs=48kHz,Fc=10.8 kHz的FIR濾波器,其幅值、相位響應見(jiàn)圖3。為了便于FIR濾波器的FPGA實(shí)現,減小誤差,將濾波器的系數量化取整后,在FPGA中實(shí)現采用的濾波系數為{-11,14,18,-11,-25,4,32,6,-38,-21,43,45,-47,-96,50,319,457,319,50,-96,-47,45,43,-21,-38,6,32,4,-25,-11,18,14,-11}! 3.2 FIR濾波器的FPGA實(shí)現與仿真  在Xilinx 10.1 ISE平臺中,選用Virtex-5系列的XC5VSXT50T器件,用Verilog HDL語(yǔ)言設計串行結構、并行結構的、以及DA結構,并在ModelSim中對3種結構實(shí)現進(jìn)行仿真。設計中輸入數據的位寬設為16位,而輸入數據在運算處理前位寬擴展到17位。所用仿真激勵為單位階躍響應,時(shí)鐘周期為T(mén)ck=10 ns。ModelSim中的仿真結果如圖4所示! D4中依次為改進(jìn)的串行實(shí)現,并行實(shí)現和DA實(shí)現的仿真結果,其濾波周期分別為180 ns,10 ns和180 ns。上述設計的改進(jìn)串行結構、并行結構和DA結構分別在XC5VSX50T中實(shí)現后,所消耗的FPGA內部各種資源如表1所示! 谋韑可以看出,并行實(shí)現消耗的資源最多,其次是DA實(shí)現,最小是串行實(shí)現。而從濾波速度上來(lái)看,并行濾波速度最快,1個(gè)時(shí)鐘周期便可濾波1次;而串行實(shí)現速度慢,其濾波周期取決于濾波器的階數,對17階的對稱(chēng)濾波器而言,濾波一次占9個(gè)時(shí)鐘周期,濾波輸出占1個(gè)時(shí)鐘周期;相對串行實(shí)現和并行實(shí)現,DA實(shí)現的濾波周期取決于處理的數據寬度,上述設計中DA實(shí)現的濾波處理數據位寬是17位,所以濾波一次占17個(gè)時(shí)鐘周期,濾波輸出占用1個(gè)時(shí)鐘周期! 4 結束語(yǔ)  在實(shí)際應用中,當濾波器設計對濾波速度要求不高時(shí),可采用串行結構或改進(jìn)串行結構來(lái)實(shí)現,這樣可以選取資源較少的器件,降低設計成本;當對濾波速度有較高要求時(shí),可以考慮采用并行或DA來(lái)實(shí)現。并行實(shí)現濾波周期為時(shí)鐘周期,速度快,但消耗的資源多,成本高;DA實(shí)現速度較快,消耗的資源較少,成本耗費較低。在數字多普勒接收機的實(shí)現過(guò)程中,根據接收機的性能要求以及所選用的FPGA器件資源,選取最優(yōu)的FlR濾波器實(shí)現結構。隨著(zhù)FPGA查找技術(shù)的發(fā)展,具有較快的濾波速度和消耗較少資源的DA算法在FIR數字濾波領(lǐng)域得到了廣泛應用。
本文地址:http://selenalain.com/thread-25675-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
hongsayang 發(fā)表于 2010-9-4 17:44:31
thanks
ydlm42 發(fā)表于 2010-9-7 17:33:08
值得一看啊 。。。。。!
lgglove163 發(fā)表于 2010-9-11 17:32:48
很好啊
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页