基于FPGA實(shí)現(xiàn)FIR濾波器的研究
基于FPGA實(shí)現(xiàn)FIR濾波器的研究
武漢大學(xué)電氣工程學(xué)院(430072) 郭曉宇 潘 登 楊同中
摘 要:針對(duì)在FPGA中實(shí)現(xiàn)FIR濾波器的關(guān)鍵——乘法運(yùn)算的高效實(shí)現(xiàn)進(jìn)行了研究,給出了將乘法化為查表的DA算法,并采用這一算法設(shè)計(jì)了FIR濾波器。通過FPGA仿真驗(yàn)證,證明了這一方法是可行和高效的,其實(shí)現(xiàn)的濾波器的性能優(yōu)于用DSP和傳統(tǒng)方法實(shí)現(xiàn)的FIR濾波器。最后介紹了整數(shù)的CSD表示和還處于研究階段的根據(jù)FPGA實(shí)現(xiàn)的要求改進(jìn)的最優(yōu)表示。
關(guān)鍵詞:FPGA DA FIR濾波器 CSD
數(shù)字濾波器是語音與圖像處理、模式識(shí)別、雷達(dá)信號(hào)處理、頻譜分析等應(yīng)用中的一種基本的處理部件,它能滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。有限沖激響應(yīng)(FIR)濾波器能在設(shè)計(jì)任意幅頻特性的同時(shí)保證嚴(yán)格的線性相位特性。
目前FIR濾波器的實(shí)現(xiàn)方法有三種:利用單片通用數(shù)字濾波器集成電路、DSP器件和可編程邏輯器件實(shí)現(xiàn)。單片通用數(shù)字濾波器使用方便,但由于字長和階數(shù)的規(guī)格較少,不能完全滿足實(shí)際需要。使用DSP器件實(shí)現(xiàn)雖然簡單,但由于程序順序執(zhí)行,執(zhí)行速度必然不快。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號(hào)處理任務(wù),相對(duì)于串行運(yùn)算為主導(dǎo)的通用DSP 芯片來說,其并行性和可擴(kuò)展性更好。但長期以來,F(xiàn)PGA一直被用于系統(tǒng)邏輯或時(shí)序控制上,很少有信號(hào)處理方面的應(yīng)用,其原因主要是因?yàn)樵贔PGA中缺乏實(shí)現(xiàn)乘法運(yùn)算的有效結(jié)構(gòu)?,F(xiàn)在這個(gè)問題得到了解決,使FPGA在數(shù)字信號(hào)處理方面有了長足的發(fā)展。
1 分布式運(yùn)算原理
分布式算法(DA)早在1973年就已經(jīng)被Croisier提出來了,但是直到FPGA出現(xiàn)以后,才被廣泛地應(yīng)用在FPGA中計(jì)算乘積和。
一個(gè)線性時(shí)不變網(wǎng)絡(luò)的輸出可以用下式表示:
假設(shè)系數(shù)c[n]是已知常數(shù),x[n]是變量,在有符號(hào)DA系統(tǒng)中假設(shè)變量x[n]的表達(dá)式如下:
重新分別求和(也就是分布式算法的由來),其結(jié)果如下:
從(1)式可以發(fā)現(xiàn),分布式算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)算法實(shí)現(xiàn)乘加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序不同。分布式算法在實(shí)現(xiàn)乘加功能時(shí),是通過將各輸入數(shù)據(jù)的每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)的部分積,然后再對(duì)各個(gè)部分積累加形成最終結(jié)果的,而傳統(tǒng)算法是等到所有乘積已經(jīng)產(chǎn)生之后再來相加完成乘加運(yùn)算的。與傳統(tǒng)串行算法相比,分布式算法可極大地減少硬件電路的規(guī)模,提高電路的執(zhí)行速度。它的實(shí)現(xiàn)框圖如圖1(虛線為流水線寄存器)所示。
2 用分布式原理實(shí)現(xiàn)FIR濾波器
2.1 串行方式
當(dāng)系統(tǒng)對(duì)速度的要求不高時(shí),可以采用串行的設(shè)計(jì)方法,即采用一個(gè)DA表、一個(gè)并行累加器和少量的寄存器就可以了。
在用LUT實(shí)現(xiàn)串行分布式算法的時(shí)候,假設(shè)系數(shù)為8位,則DA表的規(guī)模為2N
評(píng)論