新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > IIR數字濾波器設計-在FPGA上實現任意階IIR數字濾波

        IIR數字濾波器設計-在FPGA上實現任意階IIR數字濾波

        作者: 時間:2012-03-26 來源:網絡 收藏

        -在上實現任意階濾波器

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

        摘 要:本文介紹了一種采用級聯結構在上實現任意階濾波器的方法。此設計擴展性好,便于調節濾波器的性能,可以根據不同的要求在不同規模的上加以實現。

        IIR數字濾波器在很多領域中有著廣闊的應用。與FIR數字濾波器相比,它可以用較低的階數獲得高選擇性,所用存儲單元少,經濟而效率高,在相同門級規模和相同時鐘速度下可以提供更好的帶外衰減特性。下面介紹一種在FPGA上實現IIR數字濾波器的方法。

        IIR數字濾波器的結構 任意階的IIR濾波器可通過數學分解,表示為:

        9.jpg

        采用這種級聯結構實現IIR濾波器的優點是每一個基本節只是關系到濾波器的某一對極點和一對零點,調整系數a0i、a1i、a2i,只單獨地調整了濾波器第i對零點而不影響其他任何零、極點。同樣,調整b1i、b2i系數、也只單獨調整了第i對極點。因此,這種結構便于準確地實現濾波器的零、極點,也便于調整濾波器的頻率響應性能。這種結構的另一個優點是存儲單元需要較少,在硬件實現時,可以用一個二階節進行時分復用,從而降低對FPGA硬件資源的要求。

        IIR數字濾波器的設計

        利用MATLAB信號處理工具箱中的和分析工具(EDATool)可以很方便地設計出符合應用要求的未經量化的IIR濾波器。需要將MATLAB設計出的IIR濾波器進一步分解和量化,從而獲得可用FPGA實現的濾波器系數。

        由于采用了級聯結構,因此如何將濾波器的每一個極點和零點相組合,從而使得數字濾波器輸出所含的噪聲最小是個十分關鍵的問題。為了產生最優的量化后的IIR數字濾波器,采用如下步驟進行設計:

        首先計算整體傳遞函數的零極點;

        選取具有最大幅度的極點以及距離它最近的零點,使用它們組成一個二階基本節的傳遞函數;

        對于剩下的極點和零點采用與(2)相類似的步驟,直至形成所有的二階基本節。

        通過上面三步法進行的設計可以保證IIR數字濾波器中N位乘法器產生的量化舍入誤差最小。 為了設計出可用FPGA實現的數字濾波器,需要對上一步分解獲得的二階基本節的濾波器系數進行量化,即用一個固定的字長加以表示。量化過程中由于存在不同程度的量化誤差,由此會導致濾波器的頻率響應出現偏差,嚴重時會使IIR濾波器的極點移到單位圓之外,系統因而失去穩定性。為了獲得最優的濾波器系數,采用以下步驟進行量化:

        計算每個系數的絕對值;
        查找出每個系數絕對值中的最大值;
        計算比此絕對值大的最小整數;
        對(3)的結果取反獲得負整數;
        計算需要表示此整數的最小位數;
        計算用于表示系數值分數部分的余下位數。

        除了系數存在量化誤差,數字濾波器運算過程中有限字長效應也會造成誤差,因此對濾波器中乘法器、加法器及寄存器的數據寬度要也進行合理的設計,以防止產生極限環現象和溢出振蕩。

        IIR數字濾波器的VHDL描述

        由上一節設計出來的IIR數字濾波器可以進一步用VHDL語言加以描述,通過編譯、功能仿真、綜合和時序仿真之后就可以在FPGA上實現了。由于采用了級聯結構,每一個二階基本節的VHDL描述都是類似的,只是濾波器的系數有所不同,下面著重討論二階基本節的VHDL描述。

        采用VHDL描述的二階基本節的頂層結構如圖3所示。數據在執行單元內進行處理。執行單元內部包含算術和邏輯單元以及一些寄存器;算術和邏輯單元主要由串行乘法器和累加器組成;存儲器包括工作RAM和系數ROM兩部分,分別用于存放計算的中間結果和濾波器的系數;存儲器和執行單元通過內部總線相連接;控制模塊包括程序ROM和程序控制單元,程序ROM中存放有濾波算法的程序,程序控制單元用于解釋指令并為數據處理模塊產生控制信號。

        10.jpg

        電源濾波器相關文章:電源濾波器原理


        絕對值編碼器相關文章:絕對值編碼器原理
        數字濾波器相關文章:數字濾波器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南汇区| 泽库县| 政和县| 锡林浩特市| 新化县| 玉田县| 博白县| 大同县| 新丰县| 正安县| 且末县| 交口县| 得荣县| 五家渠市| 石棉县| 双柏县| 巴楚县| 河北区| 冀州市| 阿尔山市| 汾西县| 玛沁县| 凭祥市| 宜章县| 富锦市| 垣曲县| 玉溪市| 桂平市| 乌兰察布市| 乌什县| 会昌县| 白山市| 鄯善县| 茌平县| 甘泉县| 右玉县| 桃源县| 拉孜县| 东乡族自治县| 韶山市| 吴川市|