陶玉恒,喬麗紅
(河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南 鄭州 450001)
基于GUI的數(shù)字信號處理課程演示系統(tǒng)研究
陶玉恒,喬麗紅
(河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南 鄭州 450001)
MATLAB 中的Guide是專用于圖形用戶界面的快速開發(fā)環(huán)境,利用該Guide工具可以輔助數(shù)字信號課程教學(xué)。文章設(shè)計(jì)了基于GUI的數(shù)字信號處理課程演示系統(tǒng),該系統(tǒng)可以登錄界面,共有7塊,分別開發(fā)了離散時(shí)間信號設(shè)計(jì)、離散時(shí)間系統(tǒng)設(shè)計(jì)、離散線性卷積設(shè)計(jì)、離散傅里葉變換設(shè)計(jì)、離散時(shí)間信號的傅里葉變換、系統(tǒng)頻率響應(yīng)設(shè)計(jì),F(xiàn)IR數(shù)字濾波器的設(shè)計(jì)和IIR數(shù)字濾波器的設(shè)計(jì)。其中我們重點(diǎn)設(shè)計(jì)了離散卷積和濾波器設(shè)計(jì)演示系統(tǒng)。此系統(tǒng)可以輔助課堂教學(xué),即便不懂MATLAB語言編程的人也很容易理解和掌握,享受畫面的動(dòng)態(tài)感,提高其對這方面的學(xué)習(xí)興趣。
GUI;數(shù)字信號處理;濾波器設(shè)計(jì);卷積
圖形用戶界面開發(fā)環(huán)境( Graphical User Interface Development Environment,GUIDE) 是 MATLAB 軟件中的 一個(gè)向?qū)гO(shè)計(jì)器,這一向?qū)гO(shè)計(jì)器是為 GUI 而專門設(shè)計(jì)的[1-5]。主界面如圖1所示。
圖1 用戶登陸界面和系統(tǒng)主界面
利用 MATLAB 2007的Guide工具 箱設(shè)計(jì)和實(shí)現(xiàn)了“數(shù)字信號處理”課程演示系統(tǒng)平臺的圖形用戶界面,系統(tǒng)由9 個(gè)GUI界面構(gòu)成:用戶登錄界面、系統(tǒng)主界面及7個(gè)子模塊界面。整個(gè)系統(tǒng)結(jié)構(gòu)示意圖如圖2 所示。
圖2 系統(tǒng)總體結(jié)構(gòu)示意圖
如圖3所示,該界面是需要輸入正確的用戶名和密碼的登陸界面。在這個(gè)模塊中,筆者設(shè)計(jì)了一個(gè)主要登陸界面,學(xué)習(xí)用戶可以通過輸入自己的用戶名和密碼進(jìn)行登陸學(xué)習(xí),觀察數(shù)字信號處理演示過程,已達(dá)到觀摩學(xué)習(xí)的效果。在這過程中,用戶名可設(shè)置為字符串型,密碼可設(shè)置為數(shù)字型進(jìn)行登陸。當(dāng)?shù)顷懖怀晒t提示用戶名或密碼錯(cuò)誤,需再次重新輸入用戶名和密碼,登陸成功后點(diǎn)擊OK即可進(jìn)入主界面。在圖3中,圖(a),(b),(c)分別為登陸初始界面,輸入正確用戶名與密碼后的成功登陸界面和輸入錯(cuò)誤用戶名或密碼后提示需再次登陸的失敗界面。
圖3 需要輸入正確的用戶名和密碼的登陸界面
在這個(gè)模塊中筆者主要設(shè)計(jì)了一個(gè)總界面,在這個(gè)總界面中所演示的七大功能設(shè)計(jì)展示出來的效果如圖4所示,用戶可以通過點(diǎn)擊相應(yīng)的功能按鈕進(jìn)入相應(yīng)的子區(qū)域界面。
圖4 七大模塊集中在一起的主界面
系統(tǒng)子界面有七大模塊:離散時(shí)間信號設(shè)計(jì),離散時(shí)間系統(tǒng)設(shè)計(jì),離散線性卷積設(shè)計(jì),離散傅里葉變換設(shè)計(jì),離散時(shí)間信號的傅里葉變換和系統(tǒng)頻率響應(yīng)設(shè)計(jì),F(xiàn)IR數(shù)字濾波器的設(shè)計(jì)和IIR數(shù)字濾波器的設(shè)計(jì)。
3.1離散時(shí)間信號設(shè)計(jì)
在該模塊中,筆者主要設(shè)計(jì)一些典型序列的產(chǎn)生,包括取樣序列、階躍序列、矩形序列、復(fù)指數(shù)序列、單邊實(shí)指數(shù)序列和正弦型序列。我們可以在相應(yīng)的按鈕旁邊輸入相應(yīng)的參數(shù),對應(yīng)的序列作相應(yīng)的改變,然后點(diǎn)擊想要產(chǎn)生的序列即可,我們可以通過改變不同的輸入?yún)?shù)系數(shù)來驗(yàn)證設(shè)計(jì)的正確性。
3.2離散時(shí)間系統(tǒng)設(shè)計(jì)
在這個(gè)模塊中,筆者主要針對離散時(shí)間系統(tǒng)進(jìn)行設(shè)計(jì),選了幾個(gè)比較常見的典型序列的產(chǎn)生,然后把他們分別作為輸入信號,通過所設(shè)計(jì)的系統(tǒng)及pushbutton按鈕調(diào)用callback函數(shù),即可得到相應(yīng)的響應(yīng),設(shè)計(jì)界面如圖5—6所示。可輸入相應(yīng)的參數(shù),根據(jù)所產(chǎn)生的序列求出對應(yīng)的系統(tǒng)響應(yīng)和沖激響應(yīng),我們可以通過改變輸入?yún)?shù)系數(shù)來驗(yàn)證設(shè)計(jì)的正確性。
3.3離散線性卷積設(shè)計(jì)
該模塊中我們設(shè)計(jì)了離散線性序列卷積,在這里我們選取了取樣序列、矩型序列、實(shí)指數(shù)序列和正弦序列進(jìn)行卷積,設(shè)計(jì)界面及實(shí)例如圖7所示。我們可以通過改變輸入序列或同一類型序列的不同長度進(jìn)行卷積計(jì)算,并將結(jié)果顯示出來,幫助學(xué)生直觀地理解學(xué)習(xí)和學(xué)習(xí)卷積。
圖5 離散時(shí)間信號設(shè)計(jì)子界面
圖6 離散時(shí)間系統(tǒng)設(shè)計(jì)子界面
圖7 離散線性卷積設(shè)計(jì)子界面及實(shí)例
3.4離散傅里葉變換
該部分可以實(shí)現(xiàn)信號序列的離散傅里葉變換。在這里我們可以計(jì)算矩型序列、遞增序列、遞減序列、三角序列、實(shí)指數(shù)序列和正弦序列進(jìn)行DFT變換,同時(shí)畫出其對應(yīng)的幅度和相位響應(yīng),設(shè)計(jì)界面及實(shí)例如圖8所示。我們可以通過改變輸入不同的序列或同一序列的不同長度進(jìn)行卷積計(jì)算,將結(jié)果顯示出來,從而驗(yàn)證離散傅里葉變換設(shè)計(jì)的準(zhǔn)確性。
圖8 離散傅里葉變換子界面及實(shí)例
3.5離散時(shí)間信號傅里葉變換和系統(tǒng)頻率響應(yīng)
在該模塊中我們設(shè)計(jì)了幾個(gè)典型序列的離散時(shí)間傅里葉變換,在這里我們系統(tǒng)可展示矩型序列,實(shí)指數(shù)序列和正弦序列進(jìn)行DTFT變換,同時(shí)畫出其對應(yīng)的幅度和相位響應(yīng)曲線,設(shè)計(jì)界面及實(shí)例如圖9所示。我們還可以設(shè)定一個(gè)離散時(shí)間系統(tǒng)相應(yīng)的輸入輸出系數(shù),并得到了頻率響應(yīng)特性曲線。
圖9 離散時(shí)間信號傅里葉變換和系統(tǒng)頻率響應(yīng)設(shè)計(jì)子界面及實(shí)例
3.6FIR數(shù)字濾波器的設(shè)計(jì)
在這個(gè)模塊中,我們設(shè)計(jì)了FIR數(shù)字濾波器,設(shè)計(jì)界面及實(shí)例如圖10所示。在這里我們用MATLAB畫出了濾波器的幅頻特性或相位特性或傳輸函數(shù)的零極點(diǎn)。輸入的具體信號的時(shí)域圖形和頻譜圖,具體信號經(jīng)濾波器濾波后輸出的時(shí)域圖形和頻譜圖。這里我們可以通過在編輯文本控件中設(shè)定改變經(jīng)過該濾波器的輸入初始信號x(t )=x1(t)+x2(t)=sin(2πf1t )+sin(2πf2t )false的頻率,其中f1和f2可根據(jù)通帶邊界頻率和阻帶邊界頻率(通帶邊界頻率,阻帶邊界頻率可在適當(dāng)范圍內(nèi)隨意設(shè)定即可)選擇,要使濾波效果明顯,自己在合理范圍內(nèi)選擇f1和f2即可,采樣頻率一律為2 000 Hz。其中通帶最大衰減和阻帶最小衰減為為1 db和40 db。
圖10 FIR數(shù)字濾波器設(shè)計(jì)子界面及實(shí)例
3.7IIR數(shù)字濾波器的設(shè)計(jì)
在這個(gè)模塊中,我們設(shè)計(jì)了IIR數(shù)字濾波器,設(shè)計(jì)界面及實(shí)例如圖11所示。在這里我們用MATLAB畫出了其對應(yīng)濾波器的幅頻特性或相位特性或傳輸函數(shù)的零極點(diǎn),輸入的具體信號的時(shí)域圖形和頻譜圖,具體信號經(jīng)濾波器濾波后輸出的時(shí)域圖形和頻譜圖。這里我們可以通過在編輯文本控件中設(shè)定改變經(jīng)過該濾波器的輸入初始信號x(t )=x1(t)+x2(t)=sin(2πf1t )+sin(2πf2t )的頻率,其中f1和f2可根據(jù)通帶邊界頻率和阻帶邊界頻率(通帶邊界頻率,阻帶邊界頻率可在適當(dāng)范圍內(nèi)隨意設(shè)定即可)選擇,要使濾波效果明顯,自己在合理范圍內(nèi)選擇f1和f2即可,采樣頻率暫設(shè)為2 000 Hz。其中通帶最大衰減和阻帶最小衰減為1 db和40 db。
圖11 IIR數(shù)字濾波器設(shè)計(jì)子界面及實(shí)例
基于MATLAB的GUI的數(shù)字信號處理仿真平臺的構(gòu)建方案采用MATLAB開發(fā)平臺,利用Guide可設(shè)計(jì)出GUI,可以根據(jù)用戶GUI的版面設(shè)計(jì)過程直接自動(dòng)生成M文件框架,這樣就簡化了GUI應(yīng)用程序的創(chuàng)建工作,用戶可以直接使用這個(gè)框架來編寫自己的函數(shù)代碼。該仿真平臺還具有如下一些特點(diǎn):首先,該平臺的結(jié)構(gòu)設(shè)計(jì)層次分明,用戶界面是完全圖形化的。其次,在內(nèi)容的安排上,此平臺使學(xué)生對本課程的內(nèi)容有直觀的理解,有助于課堂教學(xué)。
[1]劉衛(wèi)東,王艷芬.?dāng)?shù)字信號處理實(shí)驗(yàn)的MATLAB用戶界面設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),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]梁英波,張利紅.信號與系統(tǒng)和數(shù)字信號處理課程教學(xué)改革與實(shí)踐[J].中國教育技術(shù)裝備,2013(12):83-84.
[4]陳垚光,毛濤濤,王正林.精通MATLAB GUI設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[5]郭洪源,許維勝,余有靈.基于MATLAB圖形用戶界面的汽車電子產(chǎn)品線優(yōu)化設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,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— ),男,湖北鄂州,本科;研究方向:信號處理。