基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)與仿真
實(shí)現(xiàn)數(shù)字化是控制系統(tǒng)的重要發(fā)展方向,而數(shù)字信號(hào)處理已在通信、語(yǔ)音、圖像、自動(dòng)控制、雷達(dá)、軍事、航空航天等領(lǐng)域廣泛應(yīng)用。數(shù)字信號(hào)處理方法通常涉及變換、濾波、頻譜分析、編碼解碼等處理。數(shù)字濾波是重要環(huán)節(jié),它能滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,克服模擬濾波器所無(wú)法解決的電壓和溫度漂移以及噪聲等問(wèn)題。而有限沖激響應(yīng)FIR濾波器在設(shè)計(jì)任意幅頻特性的同時(shí)能夠保證嚴(yán)格的線性相位特性。利用FPGA可以重復(fù)配置高精度的FIR濾波器,使用VHDL硬件描述語(yǔ)言改變?yōu)V波器的系數(shù)和階數(shù),并能實(shí)現(xiàn)大量的卷積運(yùn)算算法。結(jié)合MATLAB工具軟件的輔助設(shè)計(jì),使得FIR濾波器具有快速、靈活、適用性強(qiáng),硬件資源耗費(fèi)少等特點(diǎn)。
本文引用地址:http://m.butianyuan.cn/article/267750.htm2 基本原理
分布式算法(Distributed Arithmetic,簡(jiǎn)稱DA)是一項(xiàng)重要的FPGA技術(shù),廣泛應(yīng)用在計(jì)算乘積和之中。該算法基本原理如下:
一線性時(shí)不變網(wǎng)絡(luò)輸出:
設(shè)系數(shù)c[n]是已知常數(shù),x[n]是變量,在有符號(hào)DA系統(tǒng)中假設(shè)變量x[n]的表達(dá)式為:
式中xb[n]為x[n]的第b位,而x[n]也就是x的第n次采樣。于是,內(nèi)積y可以表示為:
分布式算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)算法實(shí)現(xiàn)乘加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序。該算法利用一個(gè)查找表(LUT)實(shí)現(xiàn)映射,即用一個(gè)2N字寬、預(yù)先編好程序的LUT接收一個(gè)N位輸入向量xb=[xb[0]],xb[1],…,xb[N-1]]的映射,經(jīng)查找表的查找后直接輸出部分積。與傳統(tǒng)算法相比,分布式算法可極大的減少硬件電路的規(guī)模,提高電路的執(zhí)行速度。
3 FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)
3.1 FIR濾波器系數(shù)的提取
線性相位FIR濾波器通常采用窗函數(shù)法設(shè)計(jì)。這里采用MATLAB窗函數(shù)進(jìn)行設(shè)計(jì)。窗函數(shù)設(shè)計(jì)的基本思想是要選取某一合適的理想頻率選擇性濾波器,然后將其脈沖響應(yīng)截?cái)喃@得一個(gè)線性相位和因果的FIR濾波器。根據(jù)給定的濾波器技術(shù)指標(biāo),選用凱澤(Kaiser)窗設(shè)計(jì),其幅頻特性和相頻特性如圖1所示。
由于從MATLAB算出的系數(shù)h(n)的值是一組浮點(diǎn)數(shù),而FPGA器件只是定點(diǎn)數(shù)計(jì)算,所以要將浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)。為了獲得最佳濾波器系數(shù),轉(zhuǎn)換時(shí)需對(duì)其進(jìn)行處理,轉(zhuǎn)換后系
3.2 FPGA實(shí)現(xiàn)FIR濾波器
FPGA采用FLEXlOK系列中的EPF10K10 2C84—3器件。EDA 工具使用QuartusⅡ5.1。使用FIR濾波器描述編程,從而實(shí)現(xiàn)FIR濾波器的頂層原理圖,如圖2所示。
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論