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