一、實驗目的
了解IIR濾波器的特點,掌握Matlab輔助設計濾波器系數的方法,并實現IIR濾波器濾除高頻信號,并在LCD上顯示結果。
二、實驗原理
IIR濾波器
IIR無限沖激響應數字濾波器(infinite impulse response digital filter)是對單位沖激的輸入信號的響應為無限長序列的數字濾波器。可分為一維、二維或多維無限沖激響應數字濾波器。
它的輸出y(n)由當前的和過去的輸入信號x(n)及過去的輸出信號共同決定。IIR的幅頻特性精度很高,不是線性相位的,可以應用于對相位信息不敏感的音頻信號上。
對于IIR濾波器,沖激響應理論上應會無限持續,其輸出不僅取決于當前和過去的輸入信號值,也取決于過去的信號輸出值。其系統函數如下:
IIR濾波器的一種結構和差分方程可見圖示,由IIR的系統函數出發,可視作兩個系統的級聯,并且合并了公共的延時支路。
IIR濾波器特性
無限沖激響應數字濾波器具有以下特性:
(1)系統函數可以寫成封閉函數的形式。
(2)采用遞歸型結構,即結構上帶有反饋環路。IIR濾波器運算結構通常由延時、乘以系數和相加等基本運算組成,可以組合成直接型、正準型、級聯型、并聯型四種結構形式,都具有反饋回路。由于運算中的舍入處理,使誤差不斷累積,有時會產生微弱的寄生振蕩。
(3)在設計上可以借助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現成的設計數據或圖表可查,其設計工作量比較小,對計算工具的要求不高。
(4)相位特性不好控制,對相位要求較高時,需加相位校準網絡。
IIR濾波器的設計
設計IIR數字濾波器實質上就是找到一個使其頻率響應H(Z)滿足給定的通帶截止頻率、通帶衰減系數、阻帶截止頻率及阻帶衰減系數的可以在物理上實現的系統函數H(Z)。
根據所要設計濾波器的參數去確定一個模擬濾波器的傳輸函數,然后再根據這個傳輸函數,通過雙線性變換、或脈沖響應不變法來進行數字濾波器的設計。它的設計比較復雜,復雜在于它的模擬濾波器傳輸函數H(s)的確定。這一點可以讓軟件來實現。具體實現步驟:
(1)先確定需要一個什么樣的濾波器,巴特沃斯型,切比雪夫型,還是其它什么型的濾波器。
(2)當選定一個型號后,就可以根據設計參數和這個濾波器的計算公式來確定其階數、傳輸函數的表達式。通常這個過程中還存在預扭曲的問題(這只是雙線性變換法所需要注意的問題,脈沖響應不變法不存在這種問題)。
(3)確定H(S)后,就可以通過雙線性變換得到其數字域的差分方程。
MATLAB FIR 濾波器輔助設計,生成濾波器系數。
打開Matlab 軟件,并打開"Filter Designed&Analaysis Tool"工具,在彈出的界面中按照所需濾波器修改以下參數:
(1)濾波器類型:低通Lowpass;
(2)濾波方式:巴特沃斯IIR(Butterworth);
(3)濾波器階數:Specify order(4+1階);
(4)采樣頻率:1000Hz;
(5)通帶截止頻率:150Hz;
程序流程設計
設計中首先要進行外設使能配置,然后進行LCD管腳復用配置和LCD中斷配置,接著進行LCD顯示和觸摸的初始化。最后產生帶有噪聲的原始信號并進行IIR濾波和FFT運算,將結果顯示在LCD屏幕上,在循環中進行觸摸檢測,根據標志位判斷顯示時域或者頻域波形。
程序功能:使用MATLAB 輔助設計濾波器系數實現IIR濾波,并在LCD上顯示結果。
數字信號處理庫
DSPLIB 包含優化的、C語言可調用的通用信號處理例程,用于計算密集型實時應用程序。 調用這些例程的運行速度比直接用C語言編寫的等效代碼快得多。使用DSPLIB可以縮短應用程序開發時間。
DSPLIB 3_4_0_0包括適用于 C64x+ 或 C66x 或 C674x 處理器的 Windows 或 Linux 安裝可執行文件。 每個可執行文件安裝一個組件包存儲庫、一個文檔目錄、一個 Eclipse 插件目錄和一個擴展的組件目錄結構,其中包含組件庫、頭文件和測試示例。
TMS320C6748處理器使用的是dsplib_c674x_3_4_0_0。
函數源碼
程序使用DSPLIB 的庫來進行IIR濾波,調用的程序源碼和使用說明可以安裝DSPLIB后查看。調用的IIR濾波函數中,
第一個參數是延遲元素值。
第二個參數是指向輸入數組的指針。
第三個參數是指向輸出數組的指針。
第四個參數是自回歸濾波器系數。
第五個參數是動態平均濾波器系數。
第六個參數是輸出樣本數。
程序使用DSPLIB 的庫來進行FFT運算,調用的程序源碼和使用說明可以安裝DSPLIB后查看。調用的FFT函數中,
第一個參數是樣本中FFT 的長度,
第二個參數是指向數據輸入的指針。
第三個參數是指向復雜旋轉因子的指針。
第四個參數是指向復雜輸出數據的指針。
第五個參數是指向包含64 個條目的位反轉表的指針。如果樣本的FFT長度可以表示為 4 的冪,
第六個參數是4,否則第六個參數是2 。
第七個參數是從主FFT開始的樣本中的子 FFT偏移索引 。
第八個參數是樣本中主FFT的大小。
程序使用DSPLIB 的庫來進行FFT逆變換,調用的程序源碼和使用說明可以安裝DSPLIB后查看。調用的IFFT函數中,
第一個參數是樣本中FFT 的長度。
第二個參數是指向數據輸入的指針。
第三個參數是指向復雜旋轉因子的指針。
第四個參數是指向復雜輸出數據的指針。
第五個參數是指向包含64 個條目的位反轉表的指針 。如果樣本的FFT長度可以表示為 4 的冪,
第六個參數是4,否則第六個參數是 2 。
第七個參數是從主FFT開始的復雜樣本中的子FFT偏移索引 。
第八個參數是樣本中主FFT的大小。
三、操作現象
硬件連接
(2)將撥碼開關撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關上電。
操作現象
導入工程,選擇Demo文件夾下的對應工程
編譯工程,生成可執行文件
將CCS連接實驗箱并加載程序
程序加載完成后點擊運行程序
運行程序后,LCD會顯示IIR濾波前后的時域波形,上方為100Hz信號與450Hz噪聲組成的混合信號,下方為濾波后得到的結果(保留100Hz信號)。
點擊一下LCD屏幕,會切換頻域波形,上方顯示原始頻域信號+噪聲,下方顯示濾波后的頻域波形,輸入波形為一個低頻率的正弦波與一個高頻的正弦波疊加而成,通過觀察頻域圖可知輸入波形中的低頻波形通過了濾波器,而高頻部分被濾除。
實驗結束后,先點擊黃色按鈕暫停程序運行,再點擊紅色按鈕退出CCS與實驗板的連接,最后實驗箱斷電即可。
-
matlab
+關注
關注
187文章
2989瀏覽量
232679 -
信號處理
+關注
關注
48文章
1053瀏覽量
103774 -
FFT
+關注
關注
15文章
438瀏覽量
60254 -
LCD顯示
+關注
關注
0文章
132瀏覽量
18728 -
IIR濾波器
+關注
關注
0文章
33瀏覽量
11614
發布評論請先 登錄
相關推薦
本次視頻講解的是有限沖激響應濾波器算法實驗,MATLAB輔助,LCD顯示
4-6 無限沖激響應濾波器(IIR)算法(MATLAB輔助,LCD顯示)
嵌入式操作教程:4-6 無限沖激響應濾波器(IIR)算法(MATLAB 輔助,LCD顯示)
數字信號處理實驗指導 -無限長單位脈沖響應(IIR)濾波器的
如何使用隨機結構進行無乘法無限沖激響應的數字濾波器設計方法概述

如何使用隨機結構進行無乘法無限沖激響應的數字濾波器設計方法概述

評論