新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 基于FPGA的四階IIR數(shù)字濾波器

基于FPGA的四階IIR數(shù)字濾波器

作者: 時間:2011-07-07 來源:網(wǎng)絡(luò) 收藏

tan<=tmpa(9);tbn<=tmpb(9);

tp<=taa*tbb;

p<=(others=>‘0’) when (tmpb=“0000000000”) else

tp2n & tpp;

process (clk_reg,clk_regbt)

begin

if clk_reg=‘1’ then cnt<=“000”;ytmp<=(others=>‘0’);

elsif (clk_regbt’event and clk_regbt=‘1’) then

if cnt<5 then cnt<=cnt+1;ytmp<=ytmp+p;

elsif (cnt=5) then

if ytmp(7)=‘1’ then

yout(8 downto 0)<=ytmp(16 downto 8)+1;

yout(9)<=ytmp(23);

else yout(8 downto 0)<=ytmp(16 downto 8);

yout(9)<=ytmp(23); end if;

end if;

end if;

end process;

end behav;

IIR2模塊的輸出數(shù)據(jù)采用將補(bǔ)碼最高符號位直接取反轉(zhuǎn)換為移碼后,就可以送到DAC7520實現(xiàn)雙極性信號輸出。

3 系統(tǒng)性能測試

系統(tǒng)性能的測試采用單極性方波周期信號作為輸入信號。信號的頻率為100kHz,在采樣頻率為2MHz時,每個周期采樣20個點,換算成域頻率為0.1π,其二次諧波的頻率為0.2π。輸入到TLC5510的信號電壓幅度為0~2V,則經(jīng)過A/D轉(zhuǎn)換后的輸出為00H~FFH。由于低通的阻帶截止頻率選在200kHz,衰減32dB,由信號理論分析可知,周期方波信號沒有二次諧波,所以對三次諧波的衰減經(jīng)過IIR后輸出有直流分量的基波(頻率為100kHz)正弦信號。理論計算給出的方波周期信號基波幅度為:

2E/π=(2×255)/π=162.34

輸入一個周期的數(shù)據(jù),Matlab的計算值與MAX+plusⅡ的仿真值如表3所示。

表3 濾波后輸出的數(shù)據(jù)

輸入數(shù)據(jù)
255
255
255
255
255
255
255
255
255
255

計算值
28.7
-8.2
-29.4
-34.9
-25.2
-1.3
34.8
80.0
130.5
182.0

仿真值
32
1020
999
993
1002
1
36
80
129
179

輸入數(shù)據(jù)
0
0
0
0
0
0
0
0
0
0

計算值
223.4
260.2
281.4
286.9
277.2
253.2
217.1
172.0
121.5
70.1

仿真值
219
255
276
282
273
250
215
171
122
72

由表3可見,仿真輸出值為補(bǔ)碼,谷點輸出值993換算成符號數(shù)為993-1024=-31。Matlab軟件計算的滿度輸出值為286.9,其基波幅度為[286.9-(-34.9)]/2=160.9,與理論值的誤差為:

(160.9-162.34)/162.34=-0.87%

四階IIR實現(xiàn)的滿度輸出值為[282-(-31)]/2=156.5,與理論值的誤差為:

(156.5-162.34)/162.34=-3.6%

這是由于有限精度算法所引起的誤差,可以通過增加二進(jìn)制位數(shù)來提高系統(tǒng)的運(yùn)算精度。圖4給出單極性方波信號的前三個周期經(jīng)過濾波后得到的含直流分量的輸出波形,其中實線為Matlab的計算值,“*”為MAX+plusⅡ的仿真輸出??梢姡撍碾A級聯(lián)IIR濾波器達(dá)到了設(shè)計要求。

如果改變?yōu)V波器的輸入時鐘頻率,則可以改變?yōu)V波器的截止頻率。另外如果輸入無直流分量的周期信號,而且其頻率為采樣頻率的1/20,則該低通濾波器可以直接得到基波分量輸出。其實,要將TLC5510輸出的直流分量濾出很容易,只需利用FPGA做一個減法運(yùn)算即可。


上一頁 1 2 下一頁

關(guān)鍵詞: 濾波器 數(shù)字 IIR FPGA 基于

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉