李建成,邴 銳,趙有石
(1.蘭州交通大學 光電技術與智能控制教育部重點實驗室,甘肅 蘭州 730070;2.中鐵21局集團有限公司 電務電化工程公司,甘肅 蘭州 730070)
基于GUI的數(shù)字信號處理課程演示系統(tǒng)研究
李建成1,邴 銳1,趙有石2
(1.蘭州交通大學 光電技術與智能控制教育部重點實驗室,甘肅 蘭州 730070;2.中鐵21局集團有限公司 電務電化工程公司,甘肅 蘭州 730070)
Matlab中的Guide是專用于圖形用戶界面的快速開發(fā)環(huán)境,利用該工具編程開發(fā)的數(shù)字信號處理課程演示系統(tǒng),完成了用戶登錄界面、系統(tǒng)選擇主界面和兩個內容子模塊界面的設計和編程。其中,在兩個內容子模塊中開發(fā)了常用典型序列的產(chǎn)生、基本運算、離散線性時不變系統(tǒng)、時域離散傅里葉變換、離散傅里葉級數(shù)、離散傅里葉變換、DFT和FFT的應用、濾波器的設計和語音信號處理等Matlab輔助分析與設計實驗,該系統(tǒng)直觀且形象,界面美觀大方。
Matlab;圖形用戶界面;數(shù)字信號處理;課程演示系統(tǒng)
圖形用戶界面開發(fā)環(huán)境(Graphical User Interface Development Environment,GUIDE)是Matlab軟件中的一個向導設計器,這一向導設計器是為GUI而專門設計的。通過圖形用戶界面開發(fā)環(huán)境可以方便地按照用戶要求進行設計,且設計出的圖形用戶界面容易操作[3-4]。應用Matlab GUI的交互式教學平臺,學生便可將精力放在計算結果的分析和理解上,而不是放在編寫Matlab程序上。
利用Matlab R2011b(7.13.0.564)的Guide工具箱設計和實現(xiàn)了《數(shù)字信號處理》課程實驗系統(tǒng)平臺的圖形用戶界面,系統(tǒng)由4個GUI界面構成:用戶登錄界面、系統(tǒng)主界面及兩個子模塊界面。整個系統(tǒng)結構示意圖如圖1所示。
圖1 系統(tǒng)總體結構示意圖
界面布局采取自頂向下模式設計方法,即界面布局設計的順序是先設計主界面和引導界面,然后再設計子界面。編寫回調函數(shù)采取自底向上的順序進行,即先編寫所有的子界面的回調函數(shù),然后再編制引導界面和主界面的回調函數(shù)[5]。
交互式教學系統(tǒng)設計的思路和流程如下:(1)設計交互式教學系統(tǒng)的主界面、引導界面和兩個子界面。這些界面的設計可以使用Matlab中的Guide所提供的用于建構用戶圖形界面的一系列工具。(2)用回調函數(shù)編制兩個實驗子界面中的所有控件對象所需的一系列程序,以達到實現(xiàn)控件所對應的控制功能,實現(xiàn)可通過界面上的控件直接控制數(shù)據(jù)的輸入,并直接、方便地實現(xiàn)對實驗內容和結果進行對照分析。(3)用回調函數(shù)編寫系統(tǒng)引導界面和主界面的程序,通過這些程序實現(xiàn)將兩個子界面整合起來。
該GUI界面左側以靜態(tài)文本(static text)給出實驗者姓名和學號及指導老師姓名等信息。右邊是兩個pushbutton按鈕,通過回調函數(shù)callback點擊后分別進入下一級系統(tǒng)子界面,并關閉當前GUI界面。
圖2 用戶登錄界面和系統(tǒng)主界面
系統(tǒng)子界面有兩大子模塊:模塊一為離散信號和系統(tǒng)及DFT和FFT;模塊二為濾波器設計及語音信號處理。兩個子界面如圖3所示。
圖3 子模塊一界面和子模塊二界面
離散信號和系統(tǒng)及DFT和FFT子模塊包含內容繁多,界面設計主要使用Guide中的菜單編輯器(Menu Editor)創(chuàng)建自定義用戶界面菜單對象uimenu的方式來實現(xiàn)課程體系內容的仿真。點擊界面中的close控件后,會關閉當前界面同時再返回主界面。點擊clear控件后,會在任何情況下清除坐標軸中的圖形。該控件對象的回調函數(shù)程序段:
function clear_Callback(hObject,eventdata,handles)
try
delete(allchild(handles.plotarea));
end
濾波器設計及語音信號處理子模塊采用控件對象uicontrol的方式來實現(xiàn)濾波器設計中要求的參數(shù)可變功能。Matlab 的GUI的基本圖形對象分為控件對象uicontrol和用戶界面菜單對象uimenu,簡稱控件和菜單。
3.1 離散信號和系統(tǒng)及DFT和FFT模塊
離散信號和系統(tǒng)及DFT和FFT子模塊包括:常用典型序列的產(chǎn)生、基本運算、離散線性時不變系統(tǒng)(離散LSI)、時域離散傅里葉變換(DTFT)、離散傅里葉級數(shù)(DFS)、離散傅里葉變換(DFT)及DFT和FFT的應用等。
信號一般分為時域連續(xù)信號和時域離散信號,其中時域離散信號也稱為時間離散信號或序列。在數(shù)字信號處理中,序列是其處理核心,同時,序列也是離散系統(tǒng)的載體,所以本實驗系統(tǒng)平臺的設計首先要對基本典型有一定的認識和了解,掌握其產(chǎn)生方法。系統(tǒng)選取9種典型序列進行學習,即單位采樣序列、單位階躍序列,矩形序列、斜坡序列、正弦序列、實指數(shù)序列、復指數(shù)序列、隨機序列、周期序列。針對序列的基本運算有相加、相乘、移位、翻轉、尺度變換、奇偶合成、及線性卷積等[6]。
課程系統(tǒng)在演示對DFT物理意義的理解時,設一個長度為M的有限長序列x(n),其相應的Z變換和N(N≥M)點DFT分別為
(1)
(2)
通過比較上式可得如下關系
(3)
(4)
式(3)說明序列x(n)的N點DFT是x(n)的Z變換在單位圓上的N點等間隔采樣。式(4)表明X(k)為x(n)傅里葉變換X(ejw)在區(qū)間[0,2π]上的N點等間隔采樣。這就是DFT的物理意義[7]。
點擊“DFT物理意義”菜單選項后,得出矩形序列x(n)=R4(n)的16點和32點DFT,結果如圖4所示??芍?X(ejw)在頻率[0,2π]上的16點和32點等間隔采樣,分別為16點和32點DFT。即驗證了DFT的物理意義。
圖4 矩形序列的x(n)的16點和32點的DFT 和DTFT的比較
頻域采樣定理規(guī)定:對于有限長序列x(n),其長度為M,只有當頻域采樣點數(shù)N≥M時,才有
(5)
即可由頻域采樣X(k)恢復出原序列x(n),否則將產(chǎn)生時域混疊現(xiàn)象。點擊“頻域采樣定理驗證”菜單選項后,通過長度為M=26的三角形序列x(n)來驗證其理論。運行結果如圖5所示。
圖5 頻域采樣定理的驗證
如圖5所示,當采樣點數(shù)N=16
點擊“不同采樣點數(shù)N的FFT幅頻圖”菜單選項后,畫出了一個由15 Hz、幅值為0.5的正弦信號和40 Hz、幅值為2的正弦信號組成的信號的N=128點和N=1 024點的幅頻圖,數(shù)據(jù)采樣頻率Fs=100 Hz。運行結果如圖6所示。
圖6 不同采樣點N的FFT幅頻圖
從圖6分析,由于采樣頻率Fs=100 Hz,Nyquist頻率為Fs/2=50 Hz。整個頻譜圖以Nyquist頻率為對稱軸。并可明顯識別出信號中含有15 Hz和40 Hz兩種頻率成分。由此可知傅里葉變換的數(shù)據(jù)對稱性。因此,利用FFT對信號作譜分析時,只需分析0~Nyquist頻率方位的頻譜特性即可。
3.2 濾波器設計及語音信號處理模塊
濾波器設計及語音信號處理子模塊包括:IIR濾波器和FIR濾波器的低通、高通、帶通的設計、原始語音信號和加噪后信號的時域和頻域分析、加噪信號通過設計的各種濾波器后的時域和頻域分析以及語音處理前后的回放等功能。
本課程演示系統(tǒng)關于濾波器設計所能實現(xiàn)的功能任務有:(1)能夠實現(xiàn)人機交互。(2)濾波器的幅頻響應顯示在主界面中,同時以figure形式彈出其幅頻和相頻特性,以便截圖。(3)采樣頻率Fs、通帶截止頻率Fpass、阻帶截止頻率Fstop、通帶最大衰減Apass和阻帶最小衰減Astop都能通過動態(tài)文本編輯框控件來實現(xiàn)參數(shù)的實時改變。Apass和Astop參數(shù)的可變性對IIR和FIR的低通、高通濾波器均有效。帶通濾波器的參數(shù)設置已固定,通帶上、下邊界頻率分別固定為1 200 Hz和3 000 Hz,阻帶上、下邊界頻率分別為1 000 Hz和3 200 Hz。
根據(jù)后邊語音信號的特點,指定具體參數(shù)指標的濾波器設計如圖7所示。
圖7 不同類型濾波器的設計
使用PC機上的聲卡和WINDOWS操作系統(tǒng)可進行語音信號的采集、加噪、處理及回放等[8-9]。系統(tǒng)選取自身剪切的歌曲作分析,文件后綴都默認為.wav,這是Windows操作系統(tǒng)規(guī)定的聲音文件存的標準。文件的時間長度為t=6.134 s,采樣數(shù)據(jù)點數(shù)為N_data=49 068。首先,調用Matlab中的rand或randn隨機函數(shù)產(chǎn)生噪聲,并將噪聲加入到語音信號中,仿真污染了語音信號,在此基礎上分析其頻譜。通過對上述的加噪聲處置后,可調用sound函數(shù)進行回放聲音,可聆聽感受加噪前后聲音變化情況;然后,再通過利用前面自行設計的各濾波器分別對加噪的語音信號進行濾波處理,其處理過程如圖8所示。
語音信號經(jīng)相應濾波器的處理后,可通過點擊其對應的Playback分別回放FIR和IIR的低通、高通、帶通濾波后的聲音。
基于Matlab設計了一套適應于《數(shù)字信號處理》課程的交互式教學平臺,該平臺利用Matlab的圖形用戶界面(GUI)設計工具,保證了一定的開放性。該平臺采用圖形交互界面,不僅可用于實驗教學和輔助理論教學,且操作起來較為方便、直觀。實踐證明,該教學實驗輔助平臺具有良好的教學效果,提高了同學對課程理論的理解和內容的掌握。
[1] 劉衛(wèi)東,王艷芬.“數(shù)字信號處理”實驗的Matlab用戶界面設計[J].實驗科學與技術,2004(3):58-61.
[2] Wang Qiusheng,Yuan Haiwen,Cui Yong.Teaching probe and practice to modern digital signal processing[J].Journal of Beijing University of Aeronautics and Astronautics:Social Sciences Edition,2009(12):77-80.
[3] 梁英波,張利紅.信號與系統(tǒng)和數(shù)字信號處理課程教學改革與實踐[J].中國教育技術裝備,2013(12):83-84.
[4] 陳垚光,毛濤濤,王正林,等.精通Matlab GUI設計[M].北京:電子工業(yè)出版社,2008.
[5] 郭洪源,許維勝,余有靈.基于Matlab 圖形用戶界面的汽車電子產(chǎn)品線優(yōu)化設計[J].計算機應用,2011(12):164-168.
[6] 潘子宇.Matlab7.6在數(shù)字信號處理課程實踐教學環(huán)節(jié)中的應用[J].中國電力教育,2012(10):97-98.
[7] 丁玉美,高西全.數(shù)字信號處理[M].西安:西安電子科技大學出版社,2000.
[8] 黃永平,田秀麗,田曉燕.“數(shù)字信號處理”課程教學改革與實踐[J].電氣電子教學學報,2013(2):39-40.
[9] 惠玲.基于Matlab-Gui用戶界面的數(shù)學課堂教學探討[J].數(shù)學學習與研究:教研版,2008(3):2-3.
Study of the Demonstration System of the “Digital Signal Processing” Course Based on GUI
LI Jiancheng1,BING Rui1,ZHAO Youshi2
(1.Ministry of Education Key Laboratory of Optoelectronic Technology and Smart Control,Lanzhou Jiaotong University,Lanzhou 730070,China;2.Electricity and Electrochemical Engineering Company,China Railway 21stBureau Group Co.,Ltd.,Lanzhou 730070,China)
The GUIDE of Matlab is a quick development environment specially used in the graphical user interface.In the demonstration system for the course Digital Signal Processing developed by this tool,the user login interface,the main interface selected by the system,and two sub-module interfaces are designed and programmed.For the two content sub-modules some Matlab aided analysis and design of experiments such as typical sequence generation,basic operations,discrete linear time invariant systems,time domain Discrete Fourier Transform(DTFT),Discrete Fourier Series(DFS),DFT,applications of the DFT and FFT,filter design and speech signal processing are developed.The system interface is friendly and open,which is beneficial for students to comprehend the DSP theory and greatly improve the teaching effect and efficiency.
Matlab;graphical user interface;digital signal processing;course demonstration system
2014- 10- 23
甘肅省青年科技基金計劃基金資助項目(1308RJY096);甘肅省高??蒲许椖?2013A-050)
李建成(1988—),男,碩士研究生。研究方向:鐵路交通信息工程及控制。E-mail:jianch1106@163.com
10.16180/j.cnki.issn1007-7820.2015.04.021
TN919
A
1007-7820(2015)04-076-04