肖正安
(湖北第二師范學(xué)院 物理與機(jī)電工程學(xué)院,武漢 430205)
基于GUI的數(shù)字信號(hào)處理仿真平臺(tái)的設(shè)計(jì)
肖正安
(湖北第二師范學(xué)院 物理與機(jī)電工程學(xué)院,武漢 430205)
“數(shù)字信號(hào)處理”是我院電子信息科學(xué)與技術(shù)專業(yè)的核心課程之一,該課程實(shí)用性強(qiáng),理論內(nèi)容豐富,概念抽象。為了優(yōu)化教學(xué)環(huán)節(jié),本文采用MATLAB GUI平臺(tái),設(shè)計(jì)開發(fā)并完成基于GUI的數(shù)字信號(hào)處理仿真實(shí)驗(yàn)平臺(tái)。主要包含三個(gè)部分:時(shí)域離散信號(hào)及系統(tǒng)、離散傅里葉變換及其快速算法、IIR及FIR數(shù)字濾波器的設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,該軟件便于學(xué)生對(duì)各類信號(hào)調(diào)制有更直觀認(rèn)識(shí),幫助學(xué)生將復(fù)雜抽象的理論變得簡(jiǎn)單直觀。
GUI;仿真平臺(tái);數(shù)字信號(hào)處理
近幾十年來,數(shù)字信號(hào)處理作為一門新興交叉學(xué)科,隨著計(jì)算機(jī)技術(shù)與信息科學(xué)技術(shù)的快速發(fā)展,無論在理論方面還是應(yīng)用方面,都得到了快速的發(fā)展與完善,在電子、信息、計(jì)算機(jī)科學(xué)技術(shù)、自動(dòng)控制、生物醫(yī)學(xué)、國防軍事等眾多應(yīng)用領(lǐng)域中日趨重要?!皵?shù)字信號(hào)處理”課程已經(jīng)成為各類本科專業(yè)的一門重要專業(yè)課,同時(shí)更是一門理論與實(shí)踐應(yīng)用相結(jié)合的典型課程,且和數(shù)字圖像處理、數(shù)字語音處理、信號(hào)和系統(tǒng)、現(xiàn)代數(shù)字信號(hào)處理、DSP原理與應(yīng)用等相關(guān)課程形成了一個(gè)信號(hào)類課程的有機(jī)整體[1]。目前,在“數(shù)字信號(hào)處理”課程的教學(xué)中,如何實(shí)現(xiàn)在學(xué)習(xí)理論知識(shí)與實(shí)踐算法的基礎(chǔ)上真正培養(yǎng)學(xué)生解決實(shí)際問題的能力及自主創(chuàng)新的意識(shí),一直是其教學(xué)過程中值得討論并有待解決的關(guān)鍵問題[2]。
MATLAB提供的可視化交互界面為信號(hào)處理的學(xué)習(xí)和實(shí)驗(yàn)提供了一個(gè)便利的仿真分析平臺(tái),其強(qiáng)大的數(shù)值運(yùn)算能力為數(shù)字信號(hào)處理中的復(fù)雜運(yùn)算提供了幫助,同時(shí),它的可視化界面可以將課程中的重難點(diǎn)清晰、直觀的用圖形呈現(xiàn)出來,加深學(xué)生對(duì)課堂知識(shí)的了解和掌握[3,4],對(duì)優(yōu)化教學(xué)環(huán)節(jié)非常有效。本文利用Matlab的圖形界面設(shè)計(jì)工具(GUI),以數(shù)字信號(hào)處理理論知識(shí)為基礎(chǔ),開發(fā)了一套與課堂教學(xué)、實(shí)驗(yàn)內(nèi)容相配套的輔助學(xué)習(xí)平臺(tái)。該輔助學(xué)習(xí)平臺(tái)可用于我?!稊?shù)字信號(hào)處理》課程的課堂教學(xué)演示、實(shí)驗(yàn)輔助教學(xué)以及信號(hào)處理方面的設(shè)計(jì)研究,也可作為學(xué)生的開放學(xué)習(xí)平臺(tái),真正地將課堂及實(shí)驗(yàn)內(nèi)容融入教學(xué)過程中。
在計(jì)算機(jī)及通信技術(shù)飛速發(fā)展的今天,人與計(jì)算機(jī)的通信方式也隨之發(fā)生了巨大的變化,原來的通訊方式已經(jīng)不能滿足當(dāng)今的通信需求,圖形界面下的交互方式已經(jīng)逐漸成為當(dāng)今多數(shù)應(yīng)用程序的選擇。
MATLAB圖形用戶界面開發(fā)環(huán)境簡(jiǎn)稱GUIDE (matlab graphical user interface development environment), 其實(shí)質(zhì)是一個(gè)界面設(shè)計(jì)工具集。GUI(Graphical User Interface)就是MATLAB軟件下的圖形用戶界面開發(fā)環(huán)境。在Matlab2008這一版本下, GUI包含多種圖形對(duì)象的界面,包括用于圖形界面設(shè)計(jì)用戶控件區(qū)域、界面設(shè)計(jì)及調(diào)試窗口及自定義的功能菜單等。Matlab將常用的用戶控件集成起來, 供用戶使用,并且提供程序界面屬性、外觀以及行為響應(yīng)方法等設(shè)置方法。用戶在設(shè)計(jì)開發(fā)過程中, 可以按照實(shí)際情況對(duì)各個(gè)圖形對(duì)象合理布局。當(dāng)程序激活一個(gè)GUI對(duì)象時(shí), 就會(huì)執(zhí)行其相應(yīng)的屬性設(shè)置,用戶可以通過實(shí)時(shí)調(diào)試來達(dá)到最佳效果。最后, 保存和發(fā)布自己創(chuàng)建的GUI使得用戶可以應(yīng)用該對(duì)象[5]。
編寫Matlab程序時(shí),M文件進(jìn)行創(chuàng)建及編寫是不可缺少的一個(gè)環(huán)節(jié),所有對(duì)象都可以調(diào)用M文件,GUI作為Matlab對(duì)象,同樣可以用M文件創(chuàng)建。而GUIDE創(chuàng)建GUI對(duì)象,有著執(zhí)行效率高, 交互式組件布局, 生成保存和發(fā)布GUI的對(duì)應(yīng)文件等優(yōu)點(diǎn)[5]。
GUI將用戶設(shè)計(jì)并保存好的界面保存在以FIG為擴(kuò)展名的文件中,自動(dòng)生成包含組件界面布局控制代碼及圖形用戶界面初始化的M文件。M文件中包含控制函數(shù)、GUI設(shè)計(jì)及控件的回調(diào)函數(shù),主要用來控制界面展開時(shí)的各種特征,可以分為GUI初始化和回調(diào)函數(shù)二個(gè)部分。FIG文件則是一個(gè)二進(jìn)制文件,主要是保存用戶創(chuàng)建圖形窗口時(shí)設(shè)計(jì)的屬性,對(duì)對(duì)象句柄進(jìn)行保存。
基于GUI數(shù)字信號(hào)處理仿真平臺(tái)的主功能結(jié)構(gòu)圖如圖1所示??紤]到和教學(xué)內(nèi)容相一致,本設(shè)計(jì)以章節(jié)內(nèi)容進(jìn)行劃分,包含6大主要模塊,50多個(gè)GUI圖形界面。為簡(jiǎn)化每個(gè)基本模塊的設(shè)計(jì),借助菜單設(shè)計(jì)功能實(shí)現(xiàn)層次設(shè)計(jì)方案,將每個(gè)基本模塊又分解為若干個(gè)子模塊,子模塊下面可以繼續(xù)包括子模塊,不斷擴(kuò)充,不斷完善。
圖1 基于GUI的數(shù)字信號(hào)處理仿真平臺(tái)
用戶登錄或注冊(cè)界面是用戶使用平臺(tái)的第一個(gè)界面,如圖2所示。出于對(duì)安全性的考慮,用戶需要輸入正確的用戶名和密碼后方可進(jìn)入,注冊(cè)后用戶名和密碼會(huì)存儲(chǔ)在excel文件中。
用戶登錄進(jìn)入系統(tǒng)主界面后,界面如圖3所示。首先以菜單的形式列出每一主模塊的內(nèi)容。用戶根據(jù)學(xué)習(xí)或?qū)嶒?yàn)內(nèi)容選擇相應(yīng)的菜單,進(jìn)入6個(gè)主模塊界面。
圖2 仿真系統(tǒng)登錄界面
圖3 仿真系統(tǒng)主界面
數(shù)字信號(hào)處理首先學(xué)習(xí)離散時(shí)間信號(hào)與系統(tǒng),典型常用的離散信號(hào)如單位取樣序列、矩形序列、單位階躍序列、復(fù)指數(shù)序列、實(shí)指數(shù)序列、正弦型序列等是學(xué)習(xí)信號(hào)分析的基礎(chǔ)。例如復(fù)指數(shù)序列可表示為x(n)=e(σ+jω)n,這里σ為阻尼系數(shù),ω為數(shù)字頻率。當(dāng)ω=0時(shí),x(n)為實(shí)指數(shù)序列;當(dāng)σ=0時(shí),序列實(shí)部為余弦序列,虛部為正弦序列,即
ejωn=cos(ωn)+jsin(ωn)
(3.1)
本設(shè)計(jì)實(shí)驗(yàn)界面演示如圖4、圖5所示。
圖4 仿真界面
圖5 仿真結(jié)果
z變換可以將離散系統(tǒng)的差分方程轉(zhuǎn)換成代數(shù)方程,從而簡(jiǎn)化求差分方程的過程。該設(shè)計(jì)模塊由若干演示實(shí)驗(yàn),使學(xué)生清晰直觀的掌握z變換、逆z變換、離散系統(tǒng)的零極點(diǎn)分析(系統(tǒng)極點(diǎn)位置對(duì)系統(tǒng)響應(yīng)的影響)、離散系統(tǒng)的頻率響應(yīng)特性等信號(hào)處理實(shí)驗(yàn)內(nèi)容。例如:已知某離散LSI系統(tǒng)的系統(tǒng)函數(shù)為:
(3.2)
畫出該系統(tǒng)在0~π頻率范圍內(nèi)的幅頻特性與相頻特性、相對(duì)頻率特性以及零極點(diǎn)分布圖。仿真界面及處理結(jié)果如下圖所示:
圖6 求頻率響應(yīng)仿真界面
圖7 頻率響應(yīng)仿真結(jié)果
已知離散傅里葉變換是唯一在時(shí)域和頻域均為離散序列的變換方法,主要用于有限長序列。但是該變換有一個(gè)顯著的缺點(diǎn),就是當(dāng)序列長度很大時(shí),將占用很大的內(nèi)存空間,且運(yùn)算時(shí)間很長,這就限制了該算法在數(shù)字信號(hào)處理領(lǐng)域的應(yīng)用。
而快速傅里葉變換FFT為DFT變換的高效快速算法的統(tǒng)稱。典型的FFT主要有基為2的頻域抽取算法和基為2的時(shí)域抽取算法,基本思想是將一個(gè)長度為N的序列分解成多個(gè)長度為2的DFT運(yùn)算,其速度可以提高成千上萬倍。本文設(shè)計(jì)的仿真系統(tǒng)通過界面操作,化繁為簡(jiǎn)實(shí)現(xiàn)了各種序列的DFT、FFT等運(yùn)算,并將運(yùn)算結(jié)果通過直觀展示出來,省去了matlab的程序編寫環(huán)節(jié),有助于學(xué)生的學(xué)習(xí)和理解。例:已知一個(gè)矩形窗函數(shù)序列為:
(3.3)
取樣周期Ts=0.5s,要求通過實(shí)驗(yàn)求其頻譜。
由于是長度為6的實(shí)序列,根據(jù)FFT變換的原理,先按要求補(bǔ)零。假如N=32補(bǔ)零,則主值區(qū)域在n=0~31,輸入序列為:xn=[ones(1,6),zeros(1,N-11),ones(1,5)]。即原來n=[-5:-1]的前五個(gè)點(diǎn)移到n=[27:31]中去了。下例考慮分別用N=32、64、512,觀察不同N值情況時(shí)FFT對(duì)頻譜的影響。
圖8 FFT變換仿真設(shè)計(jì)
圖9 FFT變換仿真結(jié)果
上圖所示的圖形中左邊為長度分別為32、64、512時(shí)的FFT變換幅度特性,右邊為對(duì)應(yīng)的相位特性,可以看到不同長度的變換,頻譜的主要結(jié)構(gòu)基本不變。
離散LSI系統(tǒng)對(duì)信號(hào)的響應(yīng)過程實(shí)際上就是對(duì)信號(hào)進(jìn)行濾波的過程。因此,離散LSI系統(tǒng)又稱為數(shù)字濾波器。數(shù)字濾波器從濾波功能上可以分為高通、低通、帶阻、帶通以及全通濾波器;根據(jù)單位脈沖響應(yīng)的特性,又可以分為有限長單位脈沖響應(yīng)濾波器(FIR)和無限長單位脈沖響應(yīng)濾波器(IIR),設(shè)計(jì)濾波器主要是找到一個(gè)合適的H(Z)。例如:
存在離散LSI系統(tǒng)函數(shù)為:
(3.4)
或者用差分方程來表示:
(3.5)
以上兩個(gè)公式中,當(dāng)系數(shù)ak全都為0時(shí),系統(tǒng)不存在極點(diǎn),系統(tǒng)為一FIR數(shù)字濾波器,而當(dāng)ak至少有一個(gè)不為0時(shí),則Z平面上存在極點(diǎn),系統(tǒng)為一個(gè)IIR數(shù)字濾波器。FIR數(shù)字濾波器可以看成是IIR數(shù)字濾波器的ak全都為0時(shí)的一個(gè)特例。FIR數(shù)字濾波器的基本結(jié)構(gòu)分為橫截型(又稱直接型或卷積型)、級(jí)聯(lián)型、線性相位型及頻率采樣型等;IIR數(shù)字濾波器的基本結(jié)構(gòu)分為直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、級(jí)聯(lián)型和并聯(lián)型。設(shè)計(jì)IIR濾波器的基本方法有脈沖響應(yīng)不變法、雙線性變換法等;設(shè)計(jì)FIR濾波器主要采用窗函數(shù)法。
例如:利用雙線性變換法,設(shè)計(jì)一個(gè)切比雪夫Ⅰ型IIR數(shù)字帶通濾波器,要求:通帶ωp1=0.35π,ωp2=0.65π,Rp=1dB;阻帶ωs1=0.2π,ωs2=0.8π,As=20dB濾波器采樣周期Ts=0.001s。
圖10 雙線性變換法IIR濾波器仿真設(shè)計(jì)
圖11 雙線性變換法IIR濾波器仿真結(jié)果
在窗口中填寫正確的參數(shù),運(yùn)行輸出如圖11所示,由頻率特性曲線可知,該設(shè)計(jì)結(jié)果滿足通帶截止頻率Rp≤1dB、阻帶截止頻率As≥20dB的設(shè)計(jì)指標(biāo)要求,系統(tǒng)的極點(diǎn)全部在單位圓內(nèi),系統(tǒng)穩(wěn)定。由n=3可知,由3階的模擬低通濾波器原型用雙線性變換法設(shè)計(jì)出來的切比雪夫Ⅰ型數(shù)字帶通濾波器是一個(gè)6階系統(tǒng)。其系統(tǒng)函數(shù)為:
H(z)=
(3.6)
基于GUI的數(shù)字信號(hào)處理仿真平臺(tái)的設(shè)計(jì)已初步運(yùn)用到我校物理與機(jī)電工程學(xué)院“數(shù)字信號(hào)處理”的課堂教學(xué)和實(shí)驗(yàn)環(huán)節(jié)中。平臺(tái)依據(jù)電子信息科學(xué)與技術(shù)本科專業(yè)教學(xué)大綱進(jìn)行設(shè)計(jì),交互性強(qiáng),操作方便,可擴(kuò)充,除計(jì)算機(jī)外無需額外硬件,節(jié)約教學(xué)成本,實(shí)驗(yàn)室建設(shè)快,是課堂教學(xué)演示、實(shí)驗(yàn)驗(yàn)證與開發(fā)、課外自學(xué)的有效輔助平臺(tái)。通過直觀便捷的界面操作,幫助學(xué)生更深刻的學(xué)習(xí)數(shù)字信號(hào)處理抽象概念,使學(xué)生擺脫繁瑣的數(shù)學(xué)公式以及深?yuàn)W的計(jì)算機(jī)編程,極大程度提高學(xué)生學(xué)習(xí)數(shù)字信號(hào)處理與信號(hào)系統(tǒng)課程的興趣。
[1]王艷芬,張劍英,張曉光,等.信號(hào)處理課程群實(shí)驗(yàn)教學(xué)體系的構(gòu)建[J].實(shí)驗(yàn)室研究與探索,2013,32(4):132-134.
[2]張安清,林洪文,陳洪泉.《數(shù)字信號(hào)處理》課程教學(xué)改革與方法研究[J].高等教育研究學(xué)報(bào),2013,36(4):113-115.
[3]王嘉梅.基于 MATLAB 的數(shù)字信號(hào)處理與實(shí)踐開發(fā)[M] .西安: 西安電子科技大學(xué)出版社,2007:1-20.
[4]沈捷,王莉.基于 MATLAB的圖形交互式數(shù)字信號(hào)處理教學(xué)實(shí)驗(yàn)系統(tǒng)[J].電腦開發(fā)與應(yīng)用,2007,20(9):59-61.
[5]邱金蕙,王矞輝,李振全.基于Matlab/ GUI的新型界面開發(fā)方式[J].河北工業(yè)科技,2008,7(4):234-235.
[6]劉艷.基于MATLAB GUI的數(shù)字信號(hào)處理仿真平臺(tái)的設(shè)計(jì)[J].電子世界,2013,30(17) : 133-134.
[7]嚴(yán)慧,于繼明.基于Matlab的IIR數(shù)字濾波器設(shè)計(jì)[J].軟件導(dǎo)刊,2013,(1) : 112-115.
[8]羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手記(第2版)[D].北京:北京航空航天大學(xué)出版社,2014.
[9]甘俊英,胡異丁.基于MATLAB 的信號(hào)與系統(tǒng)實(shí)驗(yàn)指導(dǎo)[D].北京:清華大學(xué)出版社,2010.
[10]王峰,丁金林.基于MATLAB/GUI的數(shù)字通信系統(tǒng)虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)[J].南通職業(yè)大學(xué)學(xué),2013,3(1):96-99.
[11]王帆,劉慧.基于Matlab GUI的數(shù)字圖像處理實(shí)驗(yàn)平臺(tái)設(shè)計(jì)[J].中國科技信息,2010,(11):124-125.
Design of Digital Signal Processing Simulation Platform Based on GUI
XIAO Zheng-an
(School of Physics and Electronics Information, Hubei University of Education, Wuhan 430205, China)
“Digital signal processing” course is one of the important courses of electronic information major. It is of high practicability and abundant theory, but difficult to understand for abstract concept. In order to improve the quality of teaching, this paper designs a digital signal processing simulation platform based on MATLAB GUI. It consists of discrete time signal and system, Discrete Fourier Transform and its fast algorithm, IIR and FIR digital filter design. Experimental results show that the platform can give students a more objective perspective of signal modulation to grasp theories more easily which has a degree of application value.
GUI; simulation platform; digital signal processing
TN79
A
1674-344X(2017)8-0029-05
2017-06-12
湖北省教育廳指導(dǎo)性項(xiàng)目(B2015025)。
肖正安(1974 -),男,湖北鐘祥人,講師,碩士研究生,研究方向?yàn)閿?shù)字信號(hào)處理。