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