沈媛媛
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
基于GUI的系統(tǒng)函數(shù)零極點(diǎn)與頻率響應(yīng)演示設(shè)計(jì)
沈媛媛
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
Malab中圖形用戶界面(GUI)設(shè)計(jì)能將復(fù)雜程序以簡(jiǎn)單直觀的方式表現(xiàn)出來。針對(duì)《數(shù)字信號(hào)處理》課程中較難懂的理論知識(shí),利用GUI界面設(shè)計(jì)了系統(tǒng)函數(shù)零極點(diǎn)與頻率響應(yīng)關(guān)系,并通過界面演示動(dòng)態(tài)的呈現(xiàn)出來。該方法能夠加強(qiáng)學(xué)生對(duì)《數(shù)字信號(hào)處理》課程中理論難點(diǎn)知識(shí)的理解,同時(shí)也能夠擴(kuò)展應(yīng)用于其他課程中。
圖形用戶界面(GUI); 零極點(diǎn);頻率響應(yīng)
《數(shù)字信號(hào)處理》是電子信息類專業(yè)的理論基礎(chǔ)課,該課程理論性強(qiáng)且涉及知識(shí)面廣。在授課過程中,由于大量的理論與數(shù)學(xué)推導(dǎo),大部分學(xué)生對(duì)一些重要的理論常常一知半解。為了讓學(xué)生深入淺出,筆者以離散時(shí)間信號(hào)與系統(tǒng)的變換域分析中系統(tǒng)函數(shù)的零極點(diǎn)與頻率響應(yīng)關(guān)系為例,將《數(shù)字信號(hào)處理》的理論知識(shí)與Matlab軟件有機(jī)結(jié)合起來,利用Matlab的強(qiáng)大的計(jì)算仿真功能和方便易用的GUI圖形繪制能力[1]將抽象的數(shù)學(xué)和技術(shù)理論以易于理解的可視化形式展示給學(xué)生。
系統(tǒng)函數(shù)[2]可以表示為:
(1)
式中,c和d分別為系統(tǒng)函數(shù)H(z)的零點(diǎn)和極點(diǎn)。因此,除了一個(gè)常數(shù)A之外,系統(tǒng)函數(shù)可完全由它的零極點(diǎn)來決定。由系統(tǒng)函數(shù)可以得到系統(tǒng)的頻率響應(yīng)為:
(2)
利用系統(tǒng)函數(shù)的零點(diǎn)和極點(diǎn)可用幾何的方法確定系統(tǒng)的頻率響應(yīng),如圖1所示。
圖1 確定系統(tǒng)的頻率響應(yīng)的幾何方法
則系統(tǒng)的幅頻響應(yīng)和相位響應(yīng)為:
(3)
arg[H(ejω)]=arg[A]+ω(N-M)+(φ1+φ2+…+φM)-(?1+?2+…+?N)
(4)
對(duì)于系統(tǒng)函數(shù)零極點(diǎn)與頻率響應(yīng)的理論知識(shí)在授課過程中學(xué)生通常覺得枯燥難懂,如果利用Matlab軟件仿真演示,則有助于學(xué)生的理解。
2.1GUI界面設(shè)計(jì)
首先新建一個(gè)GUI界面,然后對(duì)子界面進(jìn)行系統(tǒng)的界面布局,對(duì)子界面的GUI進(jìn)行添加一些必要的控件。如命令按鈕push button、靜態(tài)文本框text、滑動(dòng)條slider和可編輯文本框edit等[3]。為了能夠在界面上方便的輸入?yún)?shù),設(shè)置2個(gè)可編輯文本框(edit),用來輸入系統(tǒng)函數(shù)的分子系數(shù)num、分母系數(shù)den。輸入顯示圖形的具體語(yǔ)句為:
[zer,pol]=tf2zp(num,den);[h,w]=freqz(num,den,’whole’);[phi,w]=phasez(num,den,’whole’);
有了可編輯文本框就必然加一個(gè)按鈕(push-button),以便在輸入數(shù)據(jù)后,按下這個(gè)按鈕,3個(gè)圖形窗口會(huì)根據(jù)系統(tǒng)參數(shù)顯示圖形,如圖2所示。具體語(yǔ)句為:
a=get(handles.nume,’string’);b=get(handles.dene,’string’);num=str2num([a]); den=str2num([b]);
2.2系統(tǒng)函數(shù)零極點(diǎn)與頻率響應(yīng)動(dòng)態(tài)關(guān)系設(shè)計(jì)
圖2 GUI界面設(shè)計(jì)
界面的初值設(shè)置好以后接下來是找出單位圓上各點(diǎn)與幅頻響應(yīng)、相頻響應(yīng)曲線上各點(diǎn)的對(duì)應(yīng)關(guān)系。為實(shí)現(xiàn)這一目標(biāo),調(diào)用一個(gè)滑動(dòng)條動(dòng)態(tài)改變w的值,即改變動(dòng)點(diǎn)在單位圓上的位置,實(shí)現(xiàn)互動(dòng)[4]。程序如下:
滑動(dòng)條上各點(diǎn)與單位圓上各點(diǎn)一一對(duì)應(yīng)。為實(shí)現(xiàn)互動(dòng),在set語(yǔ)句對(duì)滑動(dòng)條重新設(shè)置的返回語(yǔ)句callback中調(diào)用一個(gè)callcheck函數(shù),它的功能是在滑動(dòng)條不斷改變的過程中,根據(jù)參數(shù)w的不同更新各響應(yīng)量,實(shí)現(xiàn)圖形的動(dòng)態(tài)改變。具體語(yǔ)句為:
sval=get(handles.slider1,’Value’); %slider value
set(handles.edit3,’String’,num2str(sval));
set(handles.w1val,’String’,num2str(sval));
為觀察起來較為明顯,在圖形界面中加上點(diǎn)和線條。在坐標(biāo)(x,y)處畫一個(gè)大小為10的紅色圓點(diǎn),具體語(yǔ)句如下:
line([0,2],[0,0],’linestyle’,’:’,’color’,’k’,’linewidth’,1);
h1=spline(w,h,sval);
line(sval,h1,’marker’,’.’,’markeredgecolor’,’r’,’markersize’,10);
line([sval,sval],[0,h1],’color’,’m’,’linewidth’,1);
例1已知一系統(tǒng)函數(shù):
H(z)=(0.8-0.44z-1+0.36z-2+0.02z-3)/(1+0.7z-1-0.45z-2-0.6z-3)
圖3 系統(tǒng)函數(shù)零極點(diǎn)與頻率響應(yīng)動(dòng)態(tài)關(guān)系圖
在分子系數(shù)num窗口中輸入數(shù)據(jù)0.8,-0.44,0.36,0.02。在分母系數(shù)den窗口中輸入數(shù)據(jù)1,0.7,-0.45,-0.6,得到結(jié)果如圖3所示。
通過不斷改變頻率點(diǎn)位置可以發(fā)現(xiàn),當(dāng)頻率點(diǎn)變到極點(diǎn)附近時(shí),就會(huì)在該極點(diǎn)附近的頻率出現(xiàn)峰值,極點(diǎn)越接近單位圓,峰值就越尖銳。同樣,當(dāng)頻率點(diǎn)變到零點(diǎn)附近時(shí),就會(huì)在該零點(diǎn)附近的頻率出現(xiàn)低谷,當(dāng)零點(diǎn)在單位圓上時(shí),該零點(diǎn)就是傳輸零點(diǎn)。可見在單位圓附近的零極點(diǎn)對(duì)系統(tǒng)的幅頻特性有較大的影響。
學(xué)生在學(xué)習(xí)《數(shù)字信號(hào)處理》課程時(shí)已經(jīng)有了Matlab程序設(shè)計(jì)的基礎(chǔ),因此,在理論教學(xué)中利用Matlab作為工具進(jìn)行教學(xué)是非常合理的。利用簡(jiǎn)單的演示即可把復(fù)雜難懂的理論用生動(dòng)形象的動(dòng)態(tài)演示展示出來,既能夠調(diào)動(dòng)學(xué)生在理論學(xué)習(xí)中的積極性,又能夠做到深入淺出。
[1]張剛,賀利芳,何方白,等.基于Matlab的“數(shù)字信號(hào)處理”課程教學(xué)探索[J].高等教育研究,2007(6):45-46.
[2]劉益成,孫祥娥.數(shù)字信號(hào)處理[M].北京:電子工業(yè)出版社,2004.
[3]王宏.Matlab6.5及其在信號(hào)處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[4]張恒,袁曉,湯韓杰,等.數(shù)字系統(tǒng)零極點(diǎn)與頻率特征關(guān)系的動(dòng)畫界面設(shè)計(jì)[J].電氣電子教學(xué)學(xué)報(bào),2006(3):102-104.
[編輯] 洪云飛
10.3969/j.issn.1673-1409(N).2012.12.040
N4
A
1673-1409(2012)12-N123-02
長(zhǎng)江大學(xué)學(xué)報(bào)(自科版)2012年34期