新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 基于FPGA的四階IIR數字濾波器設計

        基于FPGA的四階IIR數字濾波器設計

        作者: 時間:2012-05-02 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/168076.htm

        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模塊的輸出數據采用將補碼最高符號位直接取反轉換為移碼后,就可以送到DAC7520實現雙極性信號輸出。

        3 系統性能測試

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

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

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

        表3 濾波后輸出的數據

        輸入數據
        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

        輸入數據
        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可見,仿真輸出值為補碼,谷點輸出值993換算成符號數為993-1024=-31。Matlab軟件計算的滿度輸出值為286.9,其基波幅度為[286.9-(-34.9)]/2=160.9,與理論值的誤差為:

        (160.9-162.34)/162.34=-0.87%

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

        (156.5-162.34)/162.34=-3.6%

        這是由于有限精度算法所引起的誤差,可以通過增加二進制位數來提高系統的運算精度。圖4給出單極性方波信號的前三個周期經過濾波后得到的含直流分量的輸出波形,其中實線為Matlab的計算值,“*”為MAX+plusⅡ的仿真輸出。可見,該四階級聯IIR濾波器達到了要求。

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 峨眉山市| 特克斯县| 花垣县| 德化县| 北辰区| 临朐县| 蕉岭县| 荔浦县| 兴文县| 北海市| 武穴市| 肥西县| 密云县| 买车| 临泽县| 荥经县| 昭通市| 临朐县| 松原市| 册亨县| 淅川县| 长治县| 沐川县| 深泽县| 炎陵县| 军事| 沾化县| 凤山市| 齐齐哈尔市| 尼勒克县| 平和县| 安陆市| 清远市| 南充市| 同心县| 于田县| 昆明市| 西城区| 泸水县| 青神县| 宿迁市|