陶玉恒,喬麗紅
(河南工業大學 信息科學與工程學院,河南 鄭州 450001)
基于GUI的數字信號處理課程演示系統研究
陶玉恒,喬麗紅
(河南工業大學 信息科學與工程學院,河南 鄭州 450001)
MATLAB 中的Guide是專用于圖形用戶界面的快速開發環境,利用該Guide工具可以輔助數字信號課程教學。文章設計了基于GUI的數字信號處理課程演示系統,該系統可以登錄界面,共有7塊,分別開發了離散時間信號設計、離散時間系統設計、離散線性卷積設計、離散傅里葉變換設計、離散時間信號的傅里葉變換、系統頻率響應設計,FIR數字濾波器的設計和IIR數字濾波器的設計。其中我們重點設計了離散卷積和濾波器設計演示系統。此系統可以輔助課堂教學,即便不懂MATLAB語言編程的人也很容易理解和掌握,享受畫面的動態感,提高其對這方面的學習興趣。
GUI;數字信號處理;濾波器設計;卷積
圖形用戶界面開發環境( Graphical User Interface Development Environment,GUIDE) 是 MATLAB 軟件中的 一個向導設計器,這一向導設計器是為 GUI 而專門設計的[1-5]。主界面如圖1所示。


圖1 用戶登陸界面和系統主界面
利用 MATLAB 2007的Guide工具 箱設計和實現了“數字信號處理”課程演示系統平臺的圖形用戶界面,系統由9 個GUI界面構成:用戶登錄界面、系統主界面及7個子模塊界面。整個系統結構示意圖如圖2 所示。

圖2 系統總體結構示意圖
如圖3所示,該界面是需要輸入正確的用戶名和密碼的登陸界面。在這個模塊中,筆者設計了一個主要登陸界面,學習用戶可以通過輸入自己的用戶名和密碼進行登陸學習,觀察數字信號處理演示過程,已達到觀摩學習的效果。在這過程中,用戶名可設置為字符串型,密碼可設置為數字型進行登陸。當登陸不成功則提示用戶名或密碼錯誤,需再次重新輸入用戶名和密碼,登陸成功后點擊OK即可進入主界面。在圖3中,圖(a),(b),(c)分別為登陸初始界面,輸入正確用戶名與密碼后的成功登陸界面和輸入錯誤用戶名或密碼后提示需再次登陸的失敗界面。

圖3 需要輸入正確的用戶名和密碼的登陸界面
在這個模塊中筆者主要設計了一個總界面,在這個總界面中所演示的七大功能設計展示出來的效果如圖4所示,用戶可以通過點擊相應的功能按鈕進入相應的子區域界面。

圖4 七大模塊集中在一起的主界面
系統子界面有七大模塊:離散時間信號設計,離散時間系統設計,離散線性卷積設計,離散傅里葉變換設計,離散時間信號的傅里葉變換和系統頻率響應設計,FIR數字濾波器的設計和IIR數字濾波器的設計。
3.1離散時間信號設計
在該模塊中,筆者主要設計一些典型序列的產生,包括取樣序列、階躍序列、矩形序列、復指數序列、單邊實指數序列和正弦型序列。我們可以在相應的按鈕旁邊輸入相應的參數,對應的序列作相應的改變,然后點擊想要產生的序列即可,我們可以通過改變不同的輸入參數系數來驗證設計的正確性。
3.2離散時間系統設計
在這個模塊中,筆者主要針對離散時間系統進行設計,選了幾個比較常見的典型序列的產生,然后把他們分別作為輸入信號,通過所設計的系統及pushbutton按鈕調用callback函數,即可得到相應的響應,設計界面如圖5—6所示。可輸入相應的參數,根據所產生的序列求出對應的系統響應和沖激響應,我們可以通過改變輸入參數系數來驗證設計的正確性。
3.3離散線性卷積設計
該模塊中我們設計了離散線性序列卷積,在這里我們選取了取樣序列、矩型序列、實指數序列和正弦序列進行卷積,設計界面及實例如圖7所示。我們可以通過改變輸入序列或同一類型序列的不同長度進行卷積計算,并將結果顯示出來,幫助學生直觀地理解學習和學習卷積。

圖5 離散時間信號設計子界面

圖6 離散時間系統設計子界面


圖7 離散線性卷積設計子界面及實例
3.4離散傅里葉變換
該部分可以實現信號序列的離散傅里葉變換。在這里我們可以計算矩型序列、遞增序列、遞減序列、三角序列、實指數序列和正弦序列進行DFT變換,同時畫出其對應的幅度和相位響應,設計界面及實例如圖8所示。我們可以通過改變輸入不同的序列或同一序列的不同長度進行卷積計算,將結果顯示出來,從而驗證離散傅里葉變換設計的準確性。

圖8 離散傅里葉變換子界面及實例
3.5離散時間信號傅里葉變換和系統頻率響應
在該模塊中我們設計了幾個典型序列的離散時間傅里葉變換,在這里我們系統可展示矩型序列,實指數序列和正弦序列進行DTFT變換,同時畫出其對應的幅度和相位響應曲線,設計界面及實例如圖9所示。我們還可以設定一個離散時間系統相應的輸入輸出系數,并得到了頻率響應特性曲線。



圖9 離散時間信號傅里葉變換和系統頻率響應設計子界面及實例
3.6FIR數字濾波器的設計
在這個模塊中,我們設計了FIR數字濾波器,設計界面及實例如圖10所示。在這里我們用MATLAB畫出了濾波器的幅頻特性或相位特性或傳輸函數的零極點。輸入的具體信號的時域圖形和頻譜圖,具體信號經濾波器濾波后輸出的時域圖形和頻譜圖。這里我們可以通過在編輯文本控件中設定改變經過該濾波器的輸入初始信號x(t )=x1(t)+x2(t)=sin(2πf1t )+sin(2πf2t )false的頻率,其中f1和f2可根據通帶邊界頻率和阻帶邊界頻率(通帶邊界頻率,阻帶邊界頻率可在適當范圍內隨意設定即可)選擇,要使濾波效果明顯,自己在合理范圍內選擇f1和f2即可,采樣頻率一律為2 000 Hz。其中通帶最大衰減和阻帶最小衰減為為1 db和40 db。


圖10 FIR數字濾波器設計子界面及實例
3.7IIR數字濾波器的設計
在這個模塊中,我們設計了IIR數字濾波器,設計界面及實例如圖11所示。在這里我們用MATLAB畫出了其對應濾波器的幅頻特性或相位特性或傳輸函數的零極點,輸入的具體信號的時域圖形和頻譜圖,具體信號經濾波器濾波后輸出的時域圖形和頻譜圖。這里我們可以通過在編輯文本控件中設定改變經過該濾波器的輸入初始信號x(t )=x1(t)+x2(t)=sin(2πf1t )+sin(2πf2t )的頻率,其中f1和f2可根據通帶邊界頻率和阻帶邊界頻率(通帶邊界頻率,阻帶邊界頻率可在適當范圍內隨意設定即可)選擇,要使濾波效果明顯,自己在合理范圍內選擇f1和f2即可,采樣頻率暫設為2 000 Hz。其中通帶最大衰減和阻帶最小衰減為1 db和40 db。


圖11 IIR數字濾波器設計子界面及實例
基于MATLAB的GUI的數字信號處理仿真平臺的構建方案采用MATLAB開發平臺,利用Guide可設計出GUI,可以根據用戶GUI的版面設計過程直接自動生成M文件框架,這樣就簡化了GUI應用程序的創建工作,用戶可以直接使用這個框架來編寫自己的函數代碼。該仿真平臺還具有如下一些特點:首先,該平臺的結構設計層次分明,用戶界面是完全圖形化的。其次,在內容的安排上,此平臺使學生對本課程的內容有直觀的理解,有助于課堂教學。
[1]劉衛東,王艷芬.數字信號處理實驗的MATLAB用戶界面設計[J].實驗科學與技術,2004(3):58-61.
[2]QIU W,HAIWEN Y,YONG C.Teaching probe and practice to modern digital signal processing[J].Beijing University of Aeronautics and Astronautics(Social Sciences Edition),2009(12):77-80.
[3]梁英波,張利紅.信號與系統和數字信號處理課程教學改革與實踐[J].中國教育技術裝備,2013(12):83-84.
[4]陳垚光,毛濤濤,王正林.精通MATLAB GUI設計[M].北京:電子工業出版社,2008.
[5]郭洪源,許維勝,余有靈.基于MATLAB圖形用戶界面的汽車電子產品線優化設計[J].計算機應用,2011(12):164-168.
Demonstration system of digital signal processing course based on GUI
Tao Yuheng, Qiao Lihong
(Information Science College of Henan University of Technology, Zhengzhou 450001, China)
MATLAB guide is specialized in the graphical user interface environment for rapid development, using optional control of the guide tool to design a friendly interface, then in the corresponding button callback function in programming, designed to generate a typical digital signal. Then we deal with it, and the results show that the "digital signal processing" teaching in a number of important content of the demonstration system design. The designed system can log on and enter the main interface of the system, and then enter the corresponding sub module. The sub module totals seven blocks, were used to develop the design of discrete time signal, the design of discrete time system, the design of discrete linear convolution, the design of discrete Fourier transform, the design of discrete time signal in the Fourier transform, the design of system frequency response, the design of the FIR digital filter and the design of IIR digital filter. Among them, we focus on the design of discrete convolution and filter design and presentation system. This system is helpful to the classroom teaching and can be able to give students intuitive feelings. Even people who not understand the MATLAB language programming can also master and understand it easily, and enjoy the dynamic sense of the picture, which can improve their learning interest in this area.
GUI; digital signal processing; design of filter; convolution
陶玉恒(1990— ),男,湖北鄂州,本科;研究方向:信號處理。