王建彬 李響 何東鋼
摘要:以FIR數(shù)字濾波器的基本理論為依據(jù),程序設(shè)計(jì)部分設(shè)計(jì)濾波器電路中的寄存器(延時(shí)器)、第一級(jí)加法器、乘法器、第二級(jí)加減法器、輸出等多個(gè)單元器件模塊。采用模塊化的自頂向下的設(shè)計(jì)思想,對(duì)各個(gè)功能模塊采用VHDL語(yǔ)言的描述方法,VHDL程序設(shè)計(jì)代碼在Quartus II 的集成開(kāi)發(fā)環(huán)境下使用,并且利用其內(nèi)部的仿真器對(duì)設(shè)計(jì)進(jìn)行了仿真和驗(yàn)證。
關(guān)鍵詞:FIR 數(shù)字濾波器 VHDL語(yǔ)言 Quartus
中圖分類(lèi)號(hào):TN713.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)09-0195-02
信號(hào)處理廣泛應(yīng)用在通信、控制等領(lǐng)域,對(duì)電子、信息科學(xué)等的發(fā)展有巨大的影響。信號(hào)處理分為模擬信號(hào)和數(shù)字信號(hào)處理系統(tǒng)。數(shù)字信號(hào)處理中一個(gè)非常重要的應(yīng)用技術(shù)就是數(shù)字濾波[1]。數(shù)字濾波器是根據(jù)實(shí)驗(yàn)設(shè)計(jì)好的程序,將一組數(shù)字序列輸入通過(guò)運(yùn)算后,轉(zhuǎn)變?yōu)榱硪唤M數(shù)字序列的輸出,信號(hào)形式和內(nèi)容的改變,達(dá)到符合技術(shù)指標(biāo)的信號(hào)加工或?yàn)V波要求。由于VHDL語(yǔ)言是一種標(biāo)準(zhǔn)硬件描述語(yǔ)言,具有設(shè)計(jì)方式多樣、強(qiáng)大的硬件描述能力、很強(qiáng)的移植能力、設(shè)計(jì)描述與器件無(wú)關(guān)等很多其他硬件描述語(yǔ)言所不具備的優(yōu)點(diǎn)[2]。以FIR低通數(shù)字濾波器的設(shè)計(jì)為例,按照設(shè)計(jì)原理,在數(shù)字邏輯設(shè)計(jì)的過(guò)程和方法中使用VHDL硬件描述語(yǔ)言,編寫(xiě)相應(yīng)代碼在Quartus II的集成開(kāi)發(fā)環(huán)境下運(yùn)行,并利用其內(nèi)部的仿真器對(duì)設(shè)計(jì)做脈沖響應(yīng)仿真和驗(yàn)證。
1 FIR數(shù)字濾波器的設(shè)計(jì)原理
FIR數(shù)字濾波器是一個(gè)線性時(shí)的不變系統(tǒng),長(zhǎng)度為M階因果有限沖激響應(yīng)濾波器可以用傳輸函數(shù)H(W)描述:
H(W)=
有限沖激響應(yīng)濾波器在時(shí)域中的輸入輸出關(guān)系:
y[n]=x[n]*h[W]=
其中x[n]和y[n]分別是輸入和輸出序列[3]。
2 FIR數(shù)字濾波器的設(shè)計(jì)原理
設(shè)計(jì)一個(gè)線性相應(yīng)的FIR 16階初始h(0)=0的低通數(shù)字濾波器,采樣頻率為100 khz,截至頻率為10khz,序列位寬為輸入輸出10位。整個(gè)設(shè)計(jì)分為程序設(shè)計(jì)和原理設(shè)計(jì)兩部分。其中程序設(shè)計(jì)部分設(shè)計(jì)濾波器電路中的寄存器(延時(shí)器)、第一級(jí)加法器、乘法器、第二級(jí)加減法器、輸出等單元器件模塊[4]。
2.1 寄存器(延時(shí)器)
如圖1所示,設(shè)計(jì)中用輸入9位數(shù)據(jù),通過(guò)dff9的觸發(fā)寄存器實(shí)現(xiàn)寄存一組9位的二進(jìn)制數(shù)據(jù),VHDL語(yǔ)言實(shí)現(xiàn)寄存功能。
設(shè)計(jì)中用D觸發(fā)器組成寄存器,實(shí)現(xiàn)寄存功能。這里用來(lái)寄存一組9位的二進(jìn)制數(shù)據(jù)。
2.2 第一級(jí)加法器
如圖2所示,9位數(shù)字輸入和10位數(shù)字輸出數(shù)據(jù)通過(guò)add9910構(gòu)成加法器,實(shí)現(xiàn)兩個(gè)二進(jìn)制數(shù)字的相加運(yùn)算。
2.3 乘法器
如圖3所示,乘法器用來(lái)將數(shù)據(jù)乘以由Matlab計(jì)算得到的濾波系數(shù),總共有8個(gè)乘法器。在乘法器設(shè)計(jì)時(shí)暫時(shí)沒(méi)有考慮符號(hào),符號(hào)問(wèn)題由下面的減法器實(shí)現(xiàn)。
2.4 第二級(jí)加減法器
對(duì)于乘了濾波系數(shù)的數(shù)據(jù),進(jìn)行第二次的加,如圖4所示。由于上面有的濾波系數(shù)是負(fù)的,所以這里用減法器對(duì)上一面的負(fù)系數(shù)做減法運(yùn)算,如圖5所示。
2.5 輸出
如圖6所示,輸出通過(guò)一個(gè)加法器add151710完成10位數(shù)據(jù)的輸出,通過(guò)一個(gè)15位與一個(gè)17位數(shù)據(jù)相加得到的數(shù)據(jù)取高10為作為最終結(jié)果。
3 仿真結(jié)果
用VHDL語(yǔ)言實(shí)現(xiàn)的單元器件在仿真實(shí)驗(yàn)中構(gòu)成元器件,按照原理圖連接的濾波器件電路在Quartus II 的集成開(kāi)發(fā)環(huán)境下完成[5]。
4 仿真結(jié)果驗(yàn)證
由FIR數(shù)字濾波器的公式[6]:
y(m)==
利用Matlab計(jì)算出FIR數(shù)字濾波器的卷積y[m]的理論值和仿真器仿真得到輸出結(jié)果y[m]對(duì)比,見(jiàn)表1所示。
FIR數(shù)字濾波器的卷積y[m]的理論值和仿真器仿真得到輸出結(jié)果y[m]比較,結(jié)果完全吻合。數(shù)字濾波器設(shè)計(jì)符合設(shè)計(jì)要求。
5 結(jié)語(yǔ)
基于VHDL的FIR低通數(shù)字濾波器的性能優(yōu)劣對(duì)信號(hào)處理的結(jié)果有重要的影響。本文對(duì)FIR數(shù)字低通濾波器進(jìn)行了研究,利用VHDL對(duì)FIR數(shù)字濾波器劃分的多個(gè)模塊進(jìn)行模塊的設(shè)計(jì),并完成系統(tǒng)設(shè)計(jì)。按照設(shè)計(jì)原理,在數(shù)字邏輯設(shè)計(jì)的過(guò)程和方法中使用VHDL硬件描述語(yǔ)言,編寫(xiě)相應(yīng)代碼在Quartus II的集成開(kāi)發(fā)環(huán)境下運(yùn)行,并利用其內(nèi)部的仿真器對(duì)設(shè)計(jì)做脈沖響應(yīng)仿真和驗(yàn)證。
參考文獻(xiàn)
[1]胡廣書(shū).數(shù)字信號(hào)處理理論算法與實(shí)現(xiàn)[M].清華大學(xué)出版社,2003.
[2]佩德羅尼.VHDL數(shù)字電路設(shè)計(jì)教程[M].電子工業(yè)出版社,2005.
[3]程佩青.數(shù)字信號(hào)處理教程[M].清華大學(xué)出版社,2007.
[4]張學(xué)敏.基于MATLAB的FIR帶通濾波器的設(shè)計(jì)與仿真[J].長(zhǎng)春工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2007(08).
[5]蔡楠.基于VHDL語(yǔ)言的fir濾波器軟件設(shè)計(jì)[J].科技信息,2010(34).
[6]羅時(shí)書(shū).基于VHDL語(yǔ)言的16階FIR濾波器設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2010(36).
數(shù)字技術(shù)與應(yīng)用2016年9期