基于VerilogHDL的FIR數(shù)字濾波器設(shè)計與仿真
引言
本文引用地址:http://2s4d.com/article/267752.htm數(shù)字濾波器是語音與圖像處理、模式識別、雷達(dá)信號處理、頻譜分析等應(yīng)用中的一種基本的處理部件, 它能滿足波器對幅度和相位特性的嚴(yán)格要求, 避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。有限沖激響應(yīng)(FIR)濾波器能在設(shè)計任意幅頻特性的同時保證嚴(yán)格的線性相位特性。
1 FIR 數(shù)字濾波器
FIR 濾波器用當(dāng)前和過去輸入樣值的加權(quán)和來形成它的輸出, 如下所示的前饋差分方程所描述的。
FIR 濾波器又稱為移動均值濾波器, 因為任何時間點的輸出均依賴于包含有最新的M個輸入樣值的一個窗。由于它的響應(yīng)只依賴于有限個輸入, FIR 濾波器對一個離散事件沖激有一個有限長非零響應(yīng), 即一個M階FIR 濾波器對一個沖激的響應(yīng)
在M個時鐘周期之后為零。
FIR濾波器可用圖1 所示的z 域塊圖來描述。
其中每個標(biāo)有z- 1 的方框都代表了有一個時鐘周期延時的寄存器單元。這個圖中標(biāo)出了數(shù)據(jù)通道和必須由濾波器完成的操作。濾波器的每一級都保存了一個已延時的輸入樣值, 各級的輸入連接和輸出連接被稱為抽頭, 并且系數(shù)集合{hk}稱為濾波器的抽頭系數(shù)。一個M階的濾波器有M+1 個抽頭。通過移位寄存器用每個時鐘邊沿n( 時間下標(biāo)) 處的數(shù)據(jù)流采樣值乘以抽頭, 并且求和得到輸出yFIR[n]。濾波器的加法和乘法必須足夠快, 在下一個時鐘來到之前形成y[n]。并且在每一級中都必須測量它們的大小以適應(yīng)他們數(shù)據(jù)通道的寬度。在要求精度的實際應(yīng)用中, Lattice 結(jié)構(gòu)可以減少有限字長的影響, 但增加了計算成本。一般的目標(biāo)是盡可能快地濾波, 以達(dá)到高采樣率。通過組合邏輯的最長信號通路包括M級加法和一級乘法運算。FIR 結(jié)構(gòu)指定機(jī)器的每一個算術(shù)單元有限字長, 并且管理運算過程中數(shù)據(jù)流。
2 FIR 數(shù)字濾波器設(shè)計的實現(xiàn)
目前FIR 濾波器的實現(xiàn)方法有三種: 利用單片通用數(shù)字濾波器集成電路、DSP 器件和可編程邏輯器件實現(xiàn)。單片通用數(shù)字濾波器使用方便, 但由于字長和階數(shù)的規(guī)格較少, 不能完全滿足實際需要。使用DSP 器件實現(xiàn)雖然簡單, 但由于程序順序執(zhí)行, 執(zhí)行速度必然不快。FPGA/CPLD 有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源, 特別適合于數(shù)字信號處理任務(wù), 相對于串行運算為主導(dǎo)的通用DSP 芯片來說, 其并行性和可擴(kuò)展性更好。但長期以來, FPGA/CPLD 一直被用于系統(tǒng)邏輯或時序控制上, 很少有信號處理方面的應(yīng)用, 其原因主要是因為在FPGA/CPLD 中缺乏實現(xiàn)乘法運算的有效結(jié)構(gòu)。
現(xiàn)在的FPGA 產(chǎn)品已經(jīng)能夠完全勝任這種任務(wù)了。其中Altera公司的Stratix 系列產(chǎn)品采用1.5V 內(nèi)核, 0.13um 全銅工藝制造, 它除了具有以前Altera FPGA 芯片的所有特性外, 還有如下特點: 芯片內(nèi)有三種RAM 塊, 即512bit 容量的小RAM(M512) 、4KB 容量的標(biāo)準(zhǔn)RAM(M4K) 、512KB 的大容量RAM(MegaRAM) 。內(nèi)嵌硬件乘法器和乘加結(jié)構(gòu)的DSP 塊, 適于實現(xiàn)高速信號處理; 采用全新的布線結(jié)構(gòu), 分為三種長度的行列布線, 在保證延時可預(yù)測的同時增加布線的靈活性; 增加片內(nèi)終端匹配電阻, 提高信號完整性, 簡化PCB 布線; 同時具有時鐘管理和鎖相環(huán)能力。
FIR 濾波器的Verilog HDL 設(shè)計實例
評論