摘要:FIR數(shù)字濾波器的實(shí)現(xiàn)是基于加法器和乘法器,通過延遲將輸入信號與固定的抽頭系數(shù)相乘累加得到濾波結(jié)果,其中濾波系數(shù)是已知的數(shù)值,當(dāng)我們需要一個(gè)固定階數(shù)系數(shù)的值不固定時(shí),我們就需要將濾波的系數(shù)通過外部輸入的方式再與輸入信號相乘。對于FIR數(shù)字濾波器的通用型的研究是基于傳統(tǒng)的串行FIR數(shù)字濾波器的結(jié)構(gòu)進(jìn)行改造,使用VerilogHDL語言在QuartusII和Modelsim軟件里面進(jìn)行設(shè)計(jì)和仿真。結(jié)果表明基于FPGA的通用FIR數(shù)字濾波器的設(shè)計(jì)是可行的。
關(guān)鍵詞:加法器;乘法器;串行FIR數(shù)字濾波器;串行結(jié)構(gòu);通用型FIR數(shù)字濾波器
中圖分類號:TN713+.7
文獻(xiàn)標(biāo)識碼:A
DOI:10.3969/j.issn.1003-6970.2015.06.023
本文著錄格式:張震,基于FPGA的通用型FIR數(shù)字濾波器的研究與設(shè)計(jì)叮].軟件,2015,36(6):125-128
ResearchandDesignofUniversalFIRDigitalFilterBasedonFPGA
ZHANGZhen
[Abstract]:FIRdigitalfilterisrealizedbasedonaddersandmultipliers.Bydelayingthemultiplicationaccumulationoftheinputtedsignalandthefixedtapcoefficients,thefilterresultsareobtained.Thefiltercoefficientisknown.Whenafixedordernumbercoefficientvalueisnotfixed,weneedtomultiplythefiltercoefficientsthroughexternalinpulwiththeinputsignal.ResearchonuniversaltypeofFIRdigitalfilterisbasedontraditionalserialFIRdigitalfilterstructuretransformation,usingVerilogHDLlanguageinquartusandModelsimsoftwarefordesignandsimulation.TheresultsshowthatthedesignofgeneralFIRdigitalfilterbasedonFPGAisfeasible.
[Keywordsl:Adder;Multiplier;FIRdigitalfilter;Serialstructure;GeneralFIRdigitalfilter
0引言
研究人員自20世紀(jì)中期以來不斷的研究與發(fā)現(xiàn),并且提出了一整套關(guān)于數(shù)字濾波器的相關(guān)理論。數(shù)字濾波器[1-3]是對輸入的數(shù)字信號進(jìn)行相應(yīng)的累乘加運(yùn)算得到輸出的濾波信號的處理。利用FIR數(shù)字濾波器可以將不同的信號進(jìn)行處理,從而提取出我們需要的信號而過濾掉干擾信號。不同的實(shí)現(xiàn)方法可以分為FIR數(shù)字濾波器和IIR數(shù)字濾波器[4]。由于FIR數(shù)字濾波器是可以實(shí)現(xiàn)線性相位的,并且它的單位沖擊響應(yīng)為有限長,因此FIR數(shù)字濾波器的系統(tǒng)是總是穩(wěn)定的[5]。對于數(shù)字濾波器具有很強(qiáng)的穩(wěn)定性、高精度性、靈活性等等比較優(yōu)秀的特點(diǎn),隨著數(shù)字濾波技術(shù)的不斷發(fā)展,F(xiàn)IR數(shù)字濾波器在信號處理、數(shù)字圖像處理以及通信領(lǐng)域等等應(yīng)用也是十分的廣泛[6]。
FIR數(shù)字濾波器的系數(shù)的實(shí)現(xiàn)有兩種方式,一種方式是可編程型的,另一種則是固定型的.對于可編程的系數(shù)實(shí)現(xiàn)使用起來比較的靈活,固定型的有利于實(shí)現(xiàn)高速度和低功耗的系統(tǒng)實(shí)現(xiàn),本文使用的是可編程的。
對于階數(shù)為N的FIR數(shù)字濾波器的實(shí)現(xiàn),它的表達(dá)式為:
在實(shí)現(xiàn)FIR數(shù)字濾波器的方法中,使用FPGA的硬件實(shí)現(xiàn)可以使得FIR數(shù)字濾波器具有速度快的優(yōu)點(diǎn)。但是對于階數(shù)越多實(shí)現(xiàn)的FIR數(shù)字濾波器消耗的硬件資源也是比較多的,因此本文實(shí)現(xiàn)的通用型FIR數(shù)字濾波器是以低階的方式來實(shí)現(xiàn)和驗(yàn)證的。
1FIR數(shù)字濾波器的基本原理
1.1濾波器的一般表示方式
對于FIR數(shù)字濾波器的數(shù)學(xué)表達(dá)式也可以表示成[7]:
式(1)中:N-濾波器的階數(shù);h(n)-第n級的抽頭系數(shù)(單位脈沖響應(yīng));x(n)-第n時(shí)刻的輸入信號。FIR數(shù)字濾波器的h(n)單位脈沖響應(yīng)是有限長的,也就是FIR數(shù)字濾波器是一個(gè)有限長的序列與輸入信號的乘積累加和實(shí)現(xiàn)的,從式(1)中可以看出FIR數(shù)字濾波器是由一個(gè)加法器和乘法器的集合構(gòu)成的,對于每一次的采樣都要進(jìn)行N次的乘法和(N-l)次的加法運(yùn)算。其中的單位脈沖響應(yīng)h(n)為實(shí)數(shù),在幅度上滿足對稱條件
h(n)=土h(N_n)。
1.2串行FIR數(shù)字濾波器的結(jié)構(gòu)設(shè)計(jì)
對于h(n)做z域變換可以得到FIR數(shù)字濾波器的系統(tǒng)函數(shù)H(z),其系統(tǒng)函數(shù)表達(dá)式為:
n=U
由此可以得到FIR數(shù)字濾波器的串行結(jié)構(gòu)示意圖如下圖1所示:
圖1中x(n)為輸入的待處理信號;h(n)為固定的系數(shù),其脈沖響應(yīng)的數(shù)值是已知確定的數(shù)值;z-l代表著輸入信號的延遲。但是在通用型FIR數(shù)字濾波器的實(shí)現(xiàn)當(dāng)中h(n)單位脈沖響應(yīng)是通過相同的時(shí)鐘周期逐個(gè)地輸入再與相應(yīng)的輸入延遲信號相乘的,輸入的單位脈沖是可以根據(jù)白己的實(shí)際需要來變化的輸入的,因此達(dá)到了通用型FIR數(shù)字濾波器的實(shí)現(xiàn)。
1.3加法器
加法器[8-9]是數(shù)字信號處理過程中最常用、最簡單的邏輯單元。在很多的運(yùn)算過程中都需要用到加法器,減法和乘法的過程轉(zhuǎn)換也可以通過加法器來實(shí)現(xiàn)。在FIR數(shù)字濾波器的實(shí)現(xiàn)當(dāng)中我們需要通過加法器對乘法器運(yùn)算的結(jié)果進(jìn)行累加得m濾波器的輸出結(jié)果。對于加法器也有不同的結(jié)構(gòu)實(shí)現(xiàn),不同的加法器的實(shí)現(xiàn)方式的不同使得對資源、速度的結(jié)果也是不一樣的。下面讓我們簡單的了解加法器的實(shí)現(xiàn)原理。
加法器有半加器和全加器,半加器是沒有地位進(jìn)位端的加法器,而全加器相比于半加器多了一個(gè)進(jìn)位輸入端,全加器的真值表見表1。
通過上表1的全加器真值表我們就可以得l斗J全加器的邏輯表達(dá)式為:
S=AABACin:
C_out=(A&B)|((AAB)&C_in);
從全加器的表達(dá)式可以看出和的值與輸入信號和進(jìn)位信號異或的到,進(jìn)位信號同樣與輸入信號和進(jìn)位信號相關(guān)。
1.4乘法器
乘法器[10]同樣是信號處理的基本邏輯單元之一,比較常用的像濾波器、FFT都需要使用到乘法器。乘法器的實(shí)現(xiàn)也是有多種的,下面我們介紹在數(shù)字信號處理當(dāng)中比較常用的一位相加乘法器。
移位相加乘法器的實(shí)現(xiàn)相對簡單,就是對數(shù)進(jìn)行二進(jìn)制的轉(zhuǎn)化進(jìn)行相乘來實(shí)現(xiàn)。一位乘法器是根據(jù)乘數(shù)的每一位是0或1來判斷被乘數(shù)是否移位相加,如果為1則被乘數(shù)移位相加,否則被乘數(shù)不想加。
一位乘法器的實(shí)現(xiàn)過程如下:
例如一個(gè)3bit乘法器需要一個(gè)6bit移位寄存器和一個(gè)6bit的加法器就可以實(shí)現(xiàn)。
2通用型FIR數(shù)字濾波器的研究與設(shè)計(jì)
2.1通用型FIR數(shù)字濾波器的原理
通用型的FIR數(shù)字濾波器與FIR數(shù)字濾波器的設(shè)計(jì)基本上相同。通用型的原理就是在FIR數(shù)字濾波器的基礎(chǔ)之上對FIR數(shù)字濾波器的單位脈沖響應(yīng)做一些處理,具體的處理就是將h(n)的單位脈沖響應(yīng)的數(shù)值通過外部可輸入的方式,經(jīng)過寄存器寄存,寄存器的時(shí)鐘周期和輸入信號的時(shí)鐘為同一個(gè)時(shí)鐘,每一個(gè)時(shí)鐘輸入信號延遲一位的同時(shí)單位脈沖響應(yīng)也進(jìn)行延遲,最后與相應(yīng)的延遲輸入信號進(jìn)行相乘在相加,輸出的結(jié)果就是濾波輸出。
2.2通用型FIR數(shù)字濾波器的結(jié)構(gòu)設(shè)計(jì)
通過以上的原理可以得出如下圖2的通用型的FIR數(shù)字濾波器的結(jié)構(gòu)圖:
從圖2和圖1的對比我們可以發(fā)現(xiàn)通用型FIR數(shù)字濾波器與一般的FIR數(shù)字濾波器的不同。一般的FIR數(shù)字濾波器的脈沖響系數(shù)應(yīng)是固定的和每一個(gè)延遲信號直接相乘,而對于通用型的FIR數(shù)字濾波器的脈沖響應(yīng)系數(shù)是通過引出輸入端口進(jìn)行輸入的脈沖,這個(gè)輸入的脈沖是根據(jù)自己的需要來編寫脈沖響應(yīng)系數(shù)的數(shù)值的,從而達(dá)到了通用型的目的。
對于通用型的FIR數(shù)字濾波器的表達(dá)式其輸出的方式其實(shí)和式(1)-樣的,只是通用型的結(jié)構(gòu)上和輸入方式上的不同,通用型是脈沖響應(yīng)系數(shù)的值通過設(shè)置一個(gè)輸入的端口,通過這個(gè)端口來輸入脈沖響應(yīng)系數(shù)的值得方式,而這個(gè)值是可以改變的。
3通用型FIR數(shù)字濾波器的設(shè)計(jì)驗(yàn)證
3.1設(shè)計(jì)實(shí)現(xiàn)
下面通過VerilogHDL語言通過QuartusII和Modelsim軟件來設(shè)計(jì)一個(gè)8階通用的FIR數(shù)字濾波器設(shè)計(jì)并進(jìn)行驗(yàn)證。FIR數(shù)字濾波器的數(shù)據(jù)相系數(shù)為有符號的9位數(shù),F(xiàn)IR數(shù)字濾波器的階數(shù)是L=8,因此在設(shè)計(jì)中加法器的位數(shù)為:9+9+log2(/)一1=20。處理的第一步就是先set,如果setx=0就將濾波器的脈沖響應(yīng)系數(shù)輸入到抽頭延遲線上,否則就將數(shù)據(jù)下載到x寄存器中;第二步執(zhí)行乘積和的計(jì)算,對乘積進(jìn)行一位有符號擴(kuò)展,并加到前面的部分乘積和上。所有的乘法器為3級流水線結(jié)構(gòu)。最后輸出y_out除以256后輸I斗『。
3.2驗(yàn)證
3.2.1代碼實(shí)現(xiàn)
基于VerilogHDL語言的代碼結(jié)構(gòu)框架實(shí)現(xiàn)如下:
3.2.2驗(yàn)證仿真結(jié)果
最后通過代碼的實(shí)現(xiàn),在QuartusII和Modelsim軟件結(jié)合的仿真,其輸入的8階的濾波系數(shù)為{124,214,57,-33,-33,57,214,124}下載到抽頭延遲線上,輸入的處理信號為100,101,102,…….,得到了如下圖的波形仿真圖:
4結(jié)語
本文主要介紹了基于FPGA的串行濾波器的一般實(shí)現(xiàn)結(jié)構(gòu)進(jìn)行一些改進(jìn)來實(shí)現(xiàn)通用型FIR數(shù)字濾波器的設(shè)計(jì),根據(jù)串行結(jié)構(gòu)實(shí)現(xiàn)的FIR數(shù)字濾波器的原理和結(jié)構(gòu),將串行結(jié)構(gòu)的FIR數(shù)字濾波器的脈沖響應(yīng)系數(shù)通過同一個(gè)時(shí)鐘(clk)下載到濾波器當(dāng)中,然后再與輸入的信號進(jìn)行累乘加的運(yùn)算得到通用型的FIR數(shù)字濾波器。同時(shí)闡述了通用型這種設(shè)計(jì)方法的思想和原理實(shí)現(xiàn)方法,根據(jù)實(shí)驗(yàn)結(jié)果證明了通用型FIR數(shù)字濾波器的實(shí)現(xiàn)的可行性。通過這個(gè)實(shí)現(xiàn)的方法找到了另外一種實(shí)現(xiàn)FIR數(shù)字濾波器的實(shí)現(xiàn)方式,由于具有通用性對于硬件的資源可以重復(fù)的利用,具有很強(qiáng)的研究意義。
參考文獻(xiàn)
[1]高學(xué)金,齊詠生,王普,基于卡爾曼濾波器和多向核主元分析的發(fā)酵過程在線監(jiān)測[J].新型工業(yè)化,2011,1(9):102-110.
[2]劉雪艷,張雪英,黃麗霞.Gammachir濾波器組在語音特征提取中的應(yīng)用[J].新型工業(yè)化,2011,1(11):21-28.
[3]祖霄鵬,肖建康,朱文軍.新型正六邊形微帶多模帶通濾波器[J].新型工業(yè)化,2011,1(12):113-116.
[4]胡廣書.數(shù)字信號處理理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.
[5]吳鎮(zhèn)揚(yáng).數(shù)字信號處理[M].北京:高等教育出版社,2004.
[6]李金明.數(shù)字FIR濾波器在監(jiān)控系統(tǒng)中圖像信號處理方面的應(yīng)用[D].蘭州:蘭州理T大學(xué),2006.
[7]王正彥,范延濱.用FPGA實(shí)現(xiàn)FIR濾波器算法研究[J]測控技術(shù),2004,23(zl):123-126.
[8]朱小佩,蕭蘊(yùn)詩,岳繼光.基于流水線結(jié)構(gòu)的8位超前進(jìn)位加法器設(shè)計(jì)[J].電子工程師,2009,9(31):1.
[9]王悅,陳濤.基于FPGA的流水線珠算加法器設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2013,11(32):1.
[10]鞠芳,馬昕,田嵐.基于FPGA的數(shù)字乘法器性能比較[J].電子器件,2011,06:1.