一種基于FPGA的IIR數(shù)字濾波器的設計方法
【摘 要】無論是信號的獲取、傳輸,還是信號的處理和交換都離不開數(shù)字濾波,它對于信號安全有效的傳輸是至關重要的。 IIR(無限脈沖響應)濾波器被廣泛使用,它可以使用相對較低的階數(shù)來獲得較高的選擇性,F(xiàn)PGA(現(xiàn)場可編程門陣列)以其優(yōu)越的實時性和設計靈活性成為了控制系統(tǒng)中不可或缺的一部分。故本設計采用了一種基于FPGA的IIR數(shù)字濾波器的設計方法,首先分析了IIR數(shù)字濾波器的原理及基本結構,然后通過quartusⅡ的設計平臺,將整個IIR數(shù)字濾波器分為三個功能模塊:延時、加法器,乘法器。分別進行了仿真和綜合。結果仿真表明,本課題所設計的IIR數(shù)字濾波器綜合來說運算速度較快,系數(shù)改變靈活,有很好的參考價值。
【關鍵詞】IIR數(shù)字濾波器;quartusⅡ的設計平臺;FPGA(現(xiàn)場可編程門陣列)
1 IIR數(shù)字濾波器的基本網絡結構
IIR(Infinite Impulse Response)數(shù)字濾波器,又名“無限脈沖響應數(shù)字濾波器”,或“遞歸濾波器”。遞歸濾波器,也就是IIR濾波器,顧名思義,具有反饋,一般認為具有無限的脈沖響應。
IIR的濾波器的傳遞函數(shù)在平面上有極點存在,其單位脈沖響應應延續(xù)到無限長,對于給定的傳遞函數(shù)或差分方程,其結構并不是唯一的,基本網絡結構有三種,即直接型、級聯(lián)型和并聯(lián)型。
直接型IIR網絡是利用加法器、乘法器和延時器等基本運算單位,以給定的形式直接實現(xiàn)差分方程。IIR數(shù)字濾波器的系統(tǒng)函數(shù)一般表示為:
級聯(lián)型一個N階的系統(tǒng)函數(shù)可以用它的零點與極點表示,IIR數(shù)字濾波器的級聯(lián)型結構有以下特點:
。1)簡化實現(xiàn),用一個二階節(jié),通過變換系數(shù)就可以實現(xiàn)整個系統(tǒng);
。2)調整系數(shù)β1i和β2i能單獨的調整IIR數(shù)字濾波器的第k對零點,其它的零點不受影響。同樣,調整系數(shù)α1i和α2i能單獨地調整IIR數(shù)字濾波器的第k對極點,其他極點不會受到影響。即每個二階節(jié)系數(shù)單獨控制一對零點和一對極點;
。3)二階節(jié)的極,零點的搭配是可以互相換位置的,用合理的組合來減小運算中的誤差;
。4)前一級的輸出是后一級的輸入,前級的誤差會傳輸給后一級,使誤差越來越大。
2 FPGA的工作原理
FPGA是由存放在片內RAM中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。
加電時,F(xiàn)PGA芯片將EPROM中數(shù)據讀入片內編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內部邏輯關系消失,因此,F(xiàn)PGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據,可以產生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。
FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。
3 基于Quartus II的時序仿真
在FPGA的設計中,仿真是Z后一個重要的環(huán)節(jié)。對工程編譯通過后,必須對其功能和時序性質進行仿真測試,以了解設計結果是否滿足原設計要求。我們知道時序仿真與VHDL設計的程序有關,還與延時也有關。時序仿真更加要貼近生活與實際,是對VHDL設計的系統(tǒng)與硬件器件特性仿真。但功能仿真的仿真與系統(tǒng)硬件沒有關系,硬件延時不考慮。僅僅在理想情況下可對系統(tǒng)進行功能上的檢測。
其仿真流程的詳細步驟如下:
(1)打開波形編輯器;
。2)設置仿真時間區(qū)域;
。3)波形文件存盤;
。4)將工程的端口信號名選入波形編輯器中;
(5)編輯輸入波形(輸入激勵信號);
。6)總線數(shù)據格式設置;
(7)仿真器參數(shù)設置;
。8)啟動仿真器;
。9)觀察仿真結果。
4 IIR濾波器數(shù)字濾波器的單元電路設計
數(shù)字濾波器主要由加法器,乘法器和延時模塊三部分組成,我們可以通過硬件描述語言來設計所需要的模塊。這里研究的是延時模塊,乘法器,加法器與頂層模塊。
4.1 延時模塊的設計
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity delay is
port (clk:in std_logic;
res:in std_logic;
......
4.2 加法器的設計
加法器是數(shù)字系統(tǒng)中Z基本的運算電路,其他運算電路如減法器,乘法器等都可以利用加法器實現(xiàn)。
設計程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY adder4_beyond IS
PORT (a,b:IN std_logic_vector(3 downto 0);
cin:IN std_logic;
c:out std_logic_vector(3 downto 0); cout:out std_logic
)
END adder4_beyond;
ARCHITECTURE action OF adder4_beyond IS
SIGNAL m:std_logic_vector(2 downto 0);
......
4.3 乘法器的設計
設計程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_unsigned.ALL;
USE IEEE.STD_LOGIC_arith.ALL;
ENTITY mul_4 IS
PORT (multiplicand:IN STD_LOGIC_VECTOR(3 downto 0);
multiplier:IN STD_LOGIC_VECTOR(3 downto 0);
out_data:OUT STD_LOGIC_VECTOR(7 downto 0)
。
END mul_4;ARCHITECTURE bhv OF mul_4 IS
……
通過對IIR濾波器進行單位模塊的設計, Z終實現(xiàn)了IIR濾波器系統(tǒng)設計。 IIR數(shù)字濾波器可用相對來說較低的階數(shù)獲得較好的選擇性,F(xiàn)PGA具有體系結構和邏輯單元靈活、集成度高以及適用范圍廣等特點,兼容了PLD和通用門陣列的優(yōu)點,可實現(xiàn)較大規(guī)模的電路,編程也很靈活。與門陣列等其它ASIC相比,它又具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產品無需測試、質量穩(wěn)定以及可��時在線檢驗等優(yōu)點,因此被廣泛應用于產品的原型設計和產品生產之中。
【參考文獻】
[1]劉泉,列大順.數(shù)字信號處理與實現(xiàn)[M].北京:電子工業(yè)出版社,2005:2-12.
[2]林爭輝,林濤.基于可重構FPGA技術的自適應FIR濾波器的實現(xiàn)[J].電子工程師,2004(12):8-50.
[3]蘇金明,劉宏,劉波.MATLAB高級編程[M].北京:電子工業(yè)出版社,2005:331-337.
[責任編輯:楊玉潔]