俎云霄 曾昶暢
【摘要】“信號(hào)與系統(tǒng)”是電子信息類(lèi)專(zhuān)業(yè)的重要專(zhuān)業(yè)基礎(chǔ)課,概念多,理論性強(qiáng),比較抽象。為便于學(xué)生理解和掌握,設(shè)計(jì)了基于LabVIEW的信號(hào)與系統(tǒng)仿真實(shí)驗(yàn)系統(tǒng)。詳細(xì)介紹了系統(tǒng)構(gòu)架、設(shè)計(jì)方法及主要知識(shí)點(diǎn)的演示示例。
【關(guān)鍵詞】LabVIEW;信號(hào)與系統(tǒng);仿真;實(shí)驗(yàn)
【中圖分類(lèi)號(hào)】G420 【文獻(xiàn)標(biāo)識(shí)碼】B 【論文編號(hào)】1009—8097(2009)11—0141—04
一 引言
“信號(hào)與系統(tǒng)”是高等院校電子信息類(lèi)專(zhuān)業(yè)的一門(mén)非常重要的基礎(chǔ)課,但由于概念多、推導(dǎo)多、理論抽象,所以學(xué)生學(xué)習(xí)起來(lái)普遍感到不能很好地理解和掌握其基本理論與分析方法。如何讓學(xué)生深刻理解課程中的基本概念、基本原理,牢固掌握基本分析方法以及學(xué)會(huì)靈活運(yùn)用這一理論工具,是值得研究和探討的一個(gè)問(wèn)題。
在課堂教學(xué)中適時(shí)引入仿真實(shí)驗(yàn),可以幫助學(xué)生很好地理解理論理念,建構(gòu)知識(shí),提高教學(xué)質(zhì)量。本研究以L(fǎng)abVIEW作為仿真軟件構(gòu)建了“信號(hào)與系統(tǒng)”仿真實(shí)驗(yàn)系統(tǒng),該系統(tǒng)界面友好、功能齊全,緊密結(jié)合“信號(hào)與系統(tǒng)”課程[1,2],主要面向講授和學(xué)習(xí)“信號(hào)與系統(tǒng)”課程的教師和同學(xué),不僅便于教師在課堂上進(jìn)行教學(xué)演示,而且還便于學(xué)生在課后進(jìn)行自學(xué)或復(fù)習(xí)。
二 系統(tǒng)構(gòu)架及設(shè)計(jì)
1 系統(tǒng)構(gòu)架
仿真實(shí)驗(yàn)系統(tǒng)與“信號(hào)與系統(tǒng)”課程內(nèi)容基本對(duì)應(yīng),共分為四大模塊,分別是“連續(xù)時(shí)間信號(hào)分析”、“傅里葉級(jí)數(shù)和傅里葉變換”、“調(diào)制,濾波器,離散時(shí)間信號(hào)分析”和“聲音信號(hào)及其波形”。四個(gè)模塊在內(nèi)容上依次遞進(jìn),如圖1所示。
模塊1是基礎(chǔ),主要介紹基本信號(hào)及其時(shí)域性質(zhì);模塊2是對(duì)基本信號(hào)的頻域性質(zhì)分析;模塊3主要是信號(hào)與系統(tǒng)的基本知識(shí)在通信中的應(yīng)用;模塊4是關(guān)于聲音的采集、播放及其波形,是擴(kuò)展部分。每個(gè)模塊中又根據(jù)實(shí)驗(yàn)內(nèi)容分為幾個(gè)子程序。
各模塊中的實(shí)驗(yàn)內(nèi)容如表1所示。
整個(gè)系統(tǒng)采用模塊化的設(shè)計(jì)思路,每個(gè)程序均由如下幾個(gè)模塊構(gòu)成:(1)信號(hào)產(chǎn)生模塊(2)信號(hào)處理模塊(3)結(jié)果顯示模塊。信號(hào)產(chǎn)生模塊負(fù)責(zé)產(chǎn)生若干個(gè)特定信號(hào),該信號(hào)經(jīng)過(guò)信號(hào)處理模塊進(jìn)行處理,例如卷積、濾波、FFT等,最后經(jīng)過(guò)結(jié)果顯示模塊顯示信號(hào)波形,或使喇叭發(fā)音。
2 主界面設(shè)計(jì)
作為系統(tǒng)的主界面,不僅要美觀,更要簡(jiǎn)捷明了。進(jìn)入主界面首先顯示四個(gè)模塊的內(nèi)容,并具有“點(diǎn)擊模塊按鈕就能彈出子界面窗口的功能”。設(shè)計(jì)步驟如下:添加背景圖片?添加按鈕?實(shí)現(xiàn)彈出功能。最后完成的主界面如圖2所示。
3 程序設(shè)計(jì)
如前所述,各程序的設(shè)計(jì)采用模塊化方法,設(shè)計(jì)前首先要確定需要顯示的信號(hào)波形,然后根據(jù)分析、計(jì)算需求選用函數(shù),最后進(jìn)行所需參數(shù)調(diào)整的標(biāo)識(shí)設(shè)計(jì)。LabVIEW提供了大量函數(shù)[3-6],且這些函數(shù)可以被層次化無(wú)限調(diào)用。編程過(guò)程就像是在繪制流程圖,首先在前面板上把按鈕、x-y圖等控件布局整齊,然后在程序框圖上創(chuàng)建需要的函數(shù),最后再正確地將其連接起來(lái)即可。
本系統(tǒng)中,信號(hào)產(chǎn)生模塊用到的函數(shù)主要有: 和 求值,微、積分,正弦信號(hào),高斯白噪聲,均勻白噪聲,脈沖序列和基本函數(shù)發(fā)生器等。信號(hào)處理模塊用到的函數(shù)主要有:加、減、乘、除,數(shù)據(jù)類(lèi)型轉(zhuǎn)換,數(shù)模轉(zhuǎn)換,卷積,數(shù)組函數(shù)相加,FFT,復(fù)數(shù)的坐標(biāo)轉(zhuǎn)換,取負(fù)數(shù),信號(hào)合并,Butterworth濾波器,數(shù)字FIR和IIR濾波器及頻率響應(yīng)函數(shù)等。結(jié)果顯示模塊主要使用x-y圖,個(gè)別使用數(shù)值顯示控件和寫(xiě)入聲音輸出。除此之外,為了程序顯示直觀、使用便捷,還用到while循環(huán)和條件結(jié)構(gòu)。
LabVIEW是一種簡(jiǎn)單易學(xué)的編程工具,選用函數(shù)是編程的關(guān)鍵。關(guān)于函數(shù)的功能、使用方法和范例均可以通過(guò)LabVIEW提供的詳細(xì)幫助信息得到[3-6]。
由于篇幅所限,下面僅以最為復(fù)雜的“FIR濾波器”為例說(shuō)明程序的編寫(xiě)方法。
(1) FIR濾波器
首先明確本程序要演示有限沖擊響應(yīng)(FIR)濾波器的頻率特性,需要產(chǎn)生原始信號(hào)、濾波后的信號(hào)、濾波器的幅頻響應(yīng)和相頻響應(yīng)的波形,其中原始信號(hào)和濾波后信號(hào)的波形放在同一個(gè)圖形框中。本程序涉及的參數(shù)較多,有:拓?fù)浣Y(jié)構(gòu),濾波器類(lèi)型,通帶增益,阻帶增益,標(biāo)尺,窗,最低通帶,最高通帶,最低阻帶和最高阻帶,而且這些參數(shù)在程序運(yùn)行過(guò)程中可以隨時(shí)改變。設(shè)計(jì)完成后的前面板如圖3所示。
設(shè)計(jì)步驟如下:
信號(hào)發(fā)生:在程序框圖上創(chuàng)建“基本函數(shù)發(fā)生器”,“原信號(hào)參數(shù)”經(jīng)過(guò)“按名稱(chēng)解除捆綁”后,分解為“信號(hào)類(lèi)型”、“信號(hào)頻率”2個(gè)實(shí)數(shù)數(shù)據(jù),再輸出到“基本函數(shù)發(fā)生器”的“信號(hào)類(lèi)型”、“頻率”端口,“采樣信息”輸出到“采樣信息”端,則“基本函數(shù)發(fā)生器”即產(chǎn)生符合參數(shù)規(guī)定的波形數(shù)組。
信號(hào)處理:創(chuàng)建“數(shù)字FIR濾波器”,將“濾波器參數(shù)”輸出到“FIR濾波器規(guī)范”端,“附加參數(shù)”與“可選FIR濾波器規(guī)范”輸入端相連。把“基本函數(shù)發(fā)生器”產(chǎn)生的信號(hào)送到“信號(hào)輸入”端,經(jīng)過(guò)“數(shù)字FIR濾波器”的處理,將得到“濾波后的信號(hào)”波形數(shù)組、“幅頻響應(yīng)函數(shù)”簇?cái)?shù)據(jù)和“相頻響應(yīng)函數(shù)”簇?cái)?shù)據(jù)。
結(jié)果顯示:將“基本函數(shù)發(fā)生器”和“數(shù)字FIR濾波器”的“信號(hào)輸出”經(jīng)過(guò)“創(chuàng)建數(shù)組”輸出到“原信號(hào)和濾波后的信號(hào)”,“數(shù)字FIR濾波器”的“濾波器信息”經(jīng)過(guò)“按名稱(chēng)解除捆綁”后,變?yōu)閙agnitude H(w),phase H(w)兩個(gè)簇?cái)?shù)據(jù),再將兩者分別輸入“幅頻響應(yīng)函數(shù)曲線(xiàn)”和“相頻響應(yīng)函數(shù)曲線(xiàn)”。
最后將所有函數(shù)都放在“while循環(huán)”中,完成設(shè)計(jì)。流程圖如圖4所示。
下面再對(duì)幾個(gè)典型程序的設(shè)計(jì)方法進(jìn)行簡(jiǎn)單介紹并給出其前面板形式。
(2) 矩形調(diào)幅信號(hào)的傅里葉變換(頻移特性)
用一個(gè) 模塊產(chǎn)生矩形脈沖,將該矩形脈沖信號(hào)和一個(gè)余弦信號(hào)相乘得到矩形調(diào)幅信號(hào),然后用兩個(gè) 模塊生成兩對(duì)X、Y數(shù)組,再用一個(gè)“合并信號(hào)”模塊分別把兩個(gè)X數(shù)組變?yōu)橐粋€(gè)X數(shù)組,用一個(gè)“乘法”模塊把兩個(gè)Y數(shù)組變?yōu)橐粋€(gè)Y數(shù)組,最后把新的X、Y數(shù)組送至“示波器”模塊即可得到矩形調(diào)幅信號(hào)的頻譜。程序?qū)@示余弦信號(hào)、矩形脈沖、矩形調(diào)幅信號(hào)及其頻譜的波形,如圖5所示。拉動(dòng)藍(lán)色滑條可以改變矩形脈沖的高度、寬度和余弦信號(hào)的頻率。
(3) 周期矩形脈沖抽樣后的傅里葉變換
本程序?qū)@示四個(gè)波形,如圖6所示,分別是周期矩形脈沖及其傅里葉變換和采樣后的周期矩形脈沖及其傅里葉變換。周期矩形脈沖用“脈沖序列”模塊實(shí)現(xiàn),將代表此周期矩形脈沖的數(shù)組送入“示波器”模塊,然后修改“示波器”模塊的屬性(在“直方圖”選項(xiàng)欄中選中相應(yīng)的項(xiàng)),即可得到采樣后的周期矩形脈沖。得到頻譜的方法與(3)相同。拉動(dòng)滑條,改變周期矩形脈沖的高度、寬度、周期和采樣周期,可以看到不同采樣頻率的信號(hào)頻譜。
(4) 脈沖編碼調(diào)制(PCM)
本程序要演示由模擬到數(shù)字再到編碼的過(guò)程,顯示原始模擬信號(hào)、采樣后的信號(hào)、量化后的信號(hào)和編碼后的數(shù)字信號(hào),如圖7所示。顯示時(shí),前三種信號(hào)均來(lái)自同一數(shù)組,將此數(shù)組送入三個(gè)“示波器”模塊,分別調(diào)節(jié)各個(gè)示波器的屬性,即可產(chǎn)生采樣和量化的效果。運(yùn)用一個(gè)“DWDT模數(shù)轉(zhuǎn)換”模塊將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。
PCM涉及的參數(shù)較多,有分辨率、數(shù)據(jù)格式、滿(mǎn)刻度范圍(峰-峰)、采樣率、采樣數(shù)等,在相應(yīng)框中改變這些參數(shù),可以看到不同情形下的信號(hào)波形。
(5)聲音采集(波形聲音,PCM格式)
本程序用來(lái)從話(huà)筒采集聲音并顯示其波形。由如下模塊實(shí)現(xiàn):文件對(duì)話(huà)框,寫(xiě)入并打開(kāi)聲音文件,配置聲音輸入,讀取聲音輸入,寫(xiě)入聲音文件,關(guān)閉聲音文件和聲音輸入清零。圖8即為錄制的一段聲音信號(hào),其中紅色波形為左聲道,白色波形為右聲道。
4 執(zhí)行文件的生成
為了便于系統(tǒng)的使用,將所有程序和圖片文件放在一個(gè)文件夾中,新建一個(gè)項(xiàng)目,生成一個(gè)可執(zhí)行文件。方法為:在“項(xiàng)目瀏覽器”對(duì)話(huà)框中選擇“我的電腦?添加文件夾”,將該文件夾添加進(jìn)去;在項(xiàng)目中依次選擇:程序生成規(guī)范、新建、應(yīng)用程序(exe),將會(huì)彈出一個(gè)“我的應(yīng)用程序?qū)傩浴痹O(shè)置框,設(shè)置為exe執(zhí)行文件即可。生成后的exe程序被保存到先前設(shè)定的文件夾中,當(dāng)計(jì)算機(jī)安裝了相應(yīng)版本的LabVIEW開(kāi)發(fā)平臺(tái),或相應(yīng)版本的LabVIEW Runtime Engine后,雙擊圖標(biāo)即可運(yùn)行程序。
三 系統(tǒng)使用說(shuō)明
點(diǎn)擊系統(tǒng)圖標(biāo),首先出現(xiàn)如圖1所示的主界面,用戶(hù)根據(jù)需要點(diǎn)擊相應(yīng)的模塊標(biāo)識(shí),即進(jìn)入對(duì)應(yīng)的模塊,然后再點(diǎn)擊模塊中的程序名稱(chēng)即可運(yùn)行相應(yīng)的程序。整個(gè)系統(tǒng)都有很好的文字及符號(hào)標(biāo)識(shí),根據(jù)提示可以方便地改變參數(shù)。既可以在程序運(yùn)行過(guò)程中直接在前面板上輸入數(shù)據(jù)進(jìn)行參數(shù)修改,如圖3、7、8等所示,也可以通過(guò)拉動(dòng)前面板上的滑條改變參數(shù),如圖5、6所示,從而能夠動(dòng)態(tài)地看到不同參數(shù)情況下的圖形變化。除此之外,使用圖形界面上的“游標(biāo)”,可以看到游標(biāo)所在點(diǎn)處的X值和Y值,使用“圖形工具板”,可以觀察波形圖的細(xì)節(jié),如圖9所示。
四 結(jié)束語(yǔ)
本文介紹了利用LabVIEW仿真軟件構(gòu)建“信號(hào)與系統(tǒng)”仿真實(shí)驗(yàn)系統(tǒng)的框架和設(shè)計(jì)方法,并針對(duì)“信號(hào)與系統(tǒng)”課程中最重要和最難理解的知識(shí)點(diǎn)設(shè)計(jì)了相應(yīng)的演示程序,整個(gè)系統(tǒng)界面友好,使用方便,程序中涉及的相關(guān)參數(shù)可以根據(jù)需求靈活改變,從而演示多種不同場(chǎng)景。希望通過(guò)使用該系統(tǒng)能幫助學(xué)生更好地理解“信號(hào)與系統(tǒng)”的基本概念和理論,使教師更方便教學(xué),從而提高教學(xué)質(zhì)量。
參考文獻(xiàn)
[1] 鄭君里,應(yīng)啟衍,楊為理.信號(hào)與系統(tǒng)(上冊(cè))[M].第二版.北京:高等教育出版社,2005:1-320.
[2] 鄭君里,應(yīng)啟衍,楊為理.信號(hào)與系統(tǒng)(下冊(cè))[M].第二版.北京:高等教育出版社,2005:1-279.
[3] 王磊,陶梅.精通LabVIEW 8.0[M].北京:電子工業(yè)出版社,2008:45-255.
[4] 楊樂(lè)平,李海濤.北京LabVIEW高級(jí)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003:1-350.
[5] 龍華偉,顧永剛.LabVIEW 8.2.1與DAQ數(shù)據(jù)采集[M].北京:清華大學(xué)出版社,2008:200-343.
[6] 王海寶,吳光杰.LabIEW虛擬儀器程序設(shè)計(jì)與應(yīng)用[M].成都:西南交大出版社,2005:34-98.