高效FIR濾波器的設(shè)計(jì)與仿真-基于FPGA
2 高效FIR濾波器的FPGA實(shí)現(xiàn)
在實(shí)際的數(shù)字傳輸系統(tǒng)中,接收端和發(fā)送端為了達(dá)到最小的誤碼率,一般采用平方根升余弦濾波器。該濾波器的系統(tǒng)函數(shù)是:
式中:α是滾降系數(shù),0≤α≤1,T為碼元周期。
若取滾降系數(shù)α=1,濾波器長(zhǎng)度為31,每個(gè)碼元取4個(gè)樣點(diǎn),濾波器的系數(shù)采用10位量化,則可得到平方根升余弦濾波器的系數(shù)為h(n)=
{4,7,2,-7,9,4,22,25,-3,-53,-83,-43,88,277,445,512,445,277,88,-43,-83,-53,-3,25,22,4,-9,-7,2,7,4}。
根據(jù)以上思路,采用Altera公司Cyclone系列的EP1C3T100C6芯片,在Quartuas II開(kāi)發(fā)軟件下對(duì)此FIR濾波器進(jìn)行設(shè)計(jì)及仿真。首先利用
VHDL語(yǔ)言完成設(shè)計(jì)輸入,然后用Compiler進(jìn)行編譯調(diào)試。編譯通過(guò)后,再利用該軟件所提供的Waveform Editor進(jìn)行時(shí)序仿真,得到的時(shí)序仿真波形如圖3所示。其中,cP是控制輸入的時(shí)鐘信號(hào),時(shí)鐘頻率為50 MHz,clr是加法器及鎖存器的清零信號(hào),低電平0有效,X是外部的輸入信號(hào),Y是最終的外部輸出信號(hào)。
圖3 FIR濾波器時(shí)序仿真圖
用Waveform Editor仿真后,將生成的波形轉(zhuǎn)化為tbl文件,提取出波形數(shù)據(jù)。通過(guò)Matlab軟件可以畫出這些數(shù)據(jù)對(duì)應(yīng)的圖形,即濾波結(jié)果圖,如圖4中的虛線所示,圖中橫坐標(biāo)是采樣點(diǎn)數(shù),縱坐標(biāo)代表的是采用10位二進(jìn)制數(shù)量化后的幅值,圖4中的實(shí)線是FPGA濾波結(jié)果。從圖4可以看出.用本文提出的設(shè)計(jì)方案實(shí)現(xiàn)的基于FPGA的FIR濾波器的濾波結(jié)果與理想濾波結(jié)果是非常接近的,對(duì)比圖中FPGA濾波結(jié)果比理想值稍低,原因是由于在FPGA濾波器實(shí)現(xiàn)的過(guò)程中,為了節(jié)省硬件資源,將數(shù)據(jù)做了截掉低6位的處理,從而產(chǎn)生了一點(diǎn)誤差。但是,從仿真結(jié)果來(lái)看,該截掉低位的處理并不影響濾波器的性能。
圖4 FPGA仿真濾波結(jié)果與理想FIR濾波結(jié)果對(duì)比圖
利用軟件所提供的Timing Analyzer進(jìn)行時(shí)間分析,可知此FIR設(shè)計(jì)方案的信號(hào)輸出延遲在6.8 ns左右。即系統(tǒng)的最高工作頻率為147 MHz。
從仿真結(jié)果中還可得到硬件資源的占用情況及利用率情況,實(shí)現(xiàn)該FIR濾波器共占用961個(gè)邏輯單元,邏輯單元利用率為33% 。
由以上分析可以看出,該設(shè)計(jì)方案不管是在速度及實(shí)時(shí)性方面還是在資源利用率上,都具有很大的優(yōu)勢(shì)。將其應(yīng)用至通信系統(tǒng)或信號(hào)處理領(lǐng)域中均可滿足實(shí)際的需要。
3 結(jié)論
FIR濾波器在數(shù)字信號(hào)處理的各個(gè)領(lǐng)域中起著舉足輕重的作用,它的性能優(yōu)劣對(duì)信號(hào)處理的結(jié)果有很大的影響。本文采用對(duì)稱結(jié)構(gòu)、加法和移位代替乘法運(yùn)算、優(yōu)化的CSD編碼、流水線技術(shù)、級(jí)聯(lián)技術(shù)幾個(gè)方面,對(duì)傳統(tǒng)的FIR濾波器的設(shè)計(jì)進(jìn)行了改進(jìn),并借助Altera公司的FPGA芯片和Quartuas II軟件以及Matlab軟件對(duì)設(shè)計(jì)方案進(jìn)行了仿真驗(yàn)證。仿真實(shí)驗(yàn)結(jié)果表明,該FIR濾波器的實(shí)現(xiàn)方案,具有工作速度快、實(shí)時(shí)信號(hào)好、節(jié)省硬件資源等特點(diǎn),能夠滿足實(shí)際的數(shù)字系統(tǒng)的要求,應(yīng)用方便。
評(píng)論