文章編號:1672-5913(2008)10-0039-02
摘要:本文提出了MATLAB Web Server 遠程服務(wù)設(shè)計方案,并在研究MATLAB Web Server 技術(shù)、M函數(shù)文件的結(jié)構(gòu)、功能和設(shè)計方法的基礎(chǔ)上,設(shè)計了一個“信號與系統(tǒng)”課程虛擬實驗室系統(tǒng),為計算機實驗輔助教學(xué)提供了一種可行的解決方案。
關(guān)鍵詞:遠程虛擬實驗;MATLAB Web Server;信號與系統(tǒng)
中圖分類號:G642
文獻標(biāo)識碼:B
1 引言
“信號與系統(tǒng)”課程的特點是概念抽象,數(shù)學(xué)知識含量大,繁雜的數(shù)學(xué)公式推導(dǎo)及數(shù)學(xué)結(jié)果都使學(xué)生較難于理解,這就更加需要通過實驗來幫助學(xué)生理解這些抽象概念。建立虛擬實驗室是解決這一難題的很好的途徑。開發(fā)“信號與系統(tǒng)”課程相關(guān)的計算機虛擬實驗室,能充分利用寶貴的計算機資源為基礎(chǔ)課程服務(wù)。
MATLAB Web Server是MATLAB的一個可選組件,允許工程人員將MATLAB應(yīng)用程序通過Internet進行發(fā)布,使用者不用學(xué)會MATLAB,只要通過點擊鼠標(biāo)就可以訪問MATLAB應(yīng)用程序,獲得計算的結(jié)果或相應(yīng)的圖形結(jié)果,特別適合于網(wǎng)絡(luò)虛擬實驗平臺的開發(fā)。
本文以Browser/Server(B/S)模式的分布式網(wǎng)絡(luò)結(jié)構(gòu),將應(yīng)用程序MATLAB部署在WEB服務(wù)器端,從而達到跨平臺的作用。服務(wù)器端的應(yīng)用程序使用WEB服務(wù)器端作為和客戶端瀏覽器的接口,應(yīng)用程序在WEB服務(wù)器上生成的HTML文檔可以給所在平臺上的用戶瀏覽,從而實現(xiàn)遠程虛擬實驗室。
2 基于MATLAB Web Server的遠程虛擬實驗技術(shù)
2.1MATLAB Web Server基本配置
首先采用Windows XP中自帶的組件IIS5.0對計算機進行WEB服務(wù)器配置;建立虛擬目錄/cgi2/bin和/icons,并把它們和WEB服務(wù)器主目錄一起指向/matlab/toolbox/webserver/wsdemos。
安裝程序在/matlab/webserver目錄下創(chuàng)建一個matlabserver.conf文件。首次打開時,該文件只有一行“-m 1”,該參數(shù)表示允許同時運行的MATLAB 進程數(shù),可以根據(jù)需要改變其數(shù)目。調(diào)用MatlabWeb Server,要事先對應(yīng)用程序的信息表matlabserver.conf文件進行配置,將所有由網(wǎng)頁調(diào)用的M文件進行列表。每增加一個MATLAB WEB應(yīng)用,都需要在matlabserver.conf中增加一項配置。即:
[文件名] /*Matlab進行調(diào)用的M文件的名字*/
mlserver=/*服務(wù)器名稱或IP地址,單機測試可配置為127. 0. 0. 1*/
mldir= /*設(shè)置MATLAB程序的路徑,同時也是讀寫文件的目錄*/
注意,要使應(yīng)用生效服務(wù)器必須重啟。
2.2建立一個向MATLAB提交數(shù)據(jù)的HTML輸入文檔
根據(jù)實驗設(shè)計需求,建立一個處理輸入數(shù)據(jù)和計算結(jié)果的m文件,如抽樣定理實驗sample.m。把所有要使用的m函數(shù)文件都移至/matlab/toolbox/webserver/wsdemos中,通過MATLAB Web Server調(diào)用MATLAB操作的都是這個文件夾里面的m函數(shù)文件。
隨后建立一個向MATLAB提交數(shù)據(jù)的HTML輸入文檔。參數(shù)提交是通過HTML頁面中的表單來完成的,形式如<form action=“/cgi-bin/matweb.exe” method=“post” >。表單中一個重要和必須的輸入變量是mlmfile,標(biāo)明處理該表單的MATLAB程序名,其屬性為隱含。例如,< input type=“hidden” name=“mlmfile” value = “sample” >,其中,value值為接收該表單參數(shù)的MATLAB程序。簡化的HTML代碼為
<html><body>
<form action=“/matlab/cgi-bin/matweb.exe” method=
“post”
target=\"outputwindow\">
<input type=“hidden” name=“mlmfile” value=
“sample”><table>
……
<input type=“submit” name=“submit” value=“確定”><table>
</form>
</body></html>
在Web頁面中,點擊 “確定”按鈕,將調(diào)用MATLAB WEB服務(wù)器的入口程序matweb.exe,從HTML表單中提取數(shù)據(jù),運行MATLAB M函數(shù)文件sample.m。
2.3建立一個顯示MATLAB計算結(jié)果的HTML輸出文檔
MATLAB程序?qū)⑤斎胱兞窟M行處理后,計算結(jié)果,將其寫入結(jié)構(gòu)outstruct中;然后調(diào)用MATLAB的子程序Htmlrep(outstruct,temlatefile),生成用于輸出的HTML文件,其中,outstruct是包含所有輸出參數(shù)的struct結(jié)構(gòu);templatefile是一個預(yù)先編制好的HTML模板文件。Htmlrep執(zhí)行的具體步驟是把outstruct中的值傳給HTML模板文件,然后把HTML進行轉(zhuǎn)換。轉(zhuǎn)換后的HTML是一個純文本文件,其內(nèi)容通過函數(shù)返回值以字符串的形式返回。這樣,網(wǎng)關(guān)程序matweb.exe就根據(jù)函數(shù)返回值的內(nèi)容生成一個HTML文件,直接送至客戶端瀏覽器。
由于函數(shù)返回值是一個字符串,字符串本身是不能包含圖片的。要解決這一問題,與標(biāo)準(zhǔn)的HTML一樣,輸出的動態(tài)HTML文件,要事先寫好<img >標(biāo)記,格式為<img src=\"$pic $\">,而圖片的文件名也作為輸出變量保存在outstruct中。圖片的生成由MATLAB程序完成。可以在生成圖片之前使用set()命令調(diào)整圖片的大小。如果希望采用其他格式,可以嘗試使用MATLAB的imread和imwrite命令改變圖片格式。
3 實驗實例
基于MATLAB Web Server虛擬實驗室的主頁如圖1所示。主頁是進入各模塊的門戶,依次進入各個實驗部分,即基本信號、周期信號的傅里葉級數(shù)、周期信號的頻譜分析、連續(xù)信號的卷積、信號的抽樣及重建。
圖1 虛擬實驗室的主頁
下面以信周期信號的傅里葉級數(shù)表示說明基于MATLAB Web Server的虛擬實驗方法和過程。
一些周期函數(shù)表示為傅里葉級數(shù)通常需要無限多項才能完全逼近原函數(shù)。但在實際應(yīng)用中,經(jīng)常采用有限項級數(shù)來代替無限項級數(shù)。因此,取有限項級數(shù)是一種近似的方法,項數(shù)愈多,有限項數(shù)愈逼近原函數(shù)。換言之,其方均誤差愈小。選取周期方波信號為例來分析周期信號的傅里葉級數(shù)。用戶在客戶端輸入傅里葉級數(shù)的項數(shù),可以觀察到有限項級數(shù)的傅里葉級數(shù)逼近原函數(shù)的程度。
已知周期方波信號如圖2所示,周期方波信號的傅里葉級數(shù)展開為
利用本系統(tǒng)中的周期信號的傅里葉級數(shù)的在線實驗,就可以通過MATLAB Web Server調(diào)用服務(wù)器上的MATLAB實現(xiàn)其各次諧波的疊加,并返回部分和波形結(jié)果。
圖2 周期方波信號
進入周期信號的傅里葉級數(shù)頁面,如圖3所示。取消“比較”選項前面的勾選,在參數(shù)設(shè)置中設(shè)置傅里葉級數(shù)的項數(shù)為3,點擊“確定”,則服務(wù)器返回MATLAB計算的圖形結(jié)果,如頁面右邊。從返回的WEB頁面上我們可以看到,當(dāng)傅里葉級數(shù)的項數(shù)為3時,其各次諧波的疊加波形與原函數(shù)的波形的逼近程度。
圖3 周期信號的傅里葉級數(shù)頁面
從周期方波信號的傅里葉級數(shù)展開中可看出,當(dāng)有限項級數(shù)愈多,與原函數(shù)的逼近程度越大。為了觀察這種現(xiàn)象,勾選“比較”選項,設(shè)置另一個傅里葉級數(shù)的項數(shù),這里選47,點擊“確定”,則服務(wù)器返回MATLAB計算的圖形結(jié)果,如圖4所示。
對比傅里葉級數(shù)的項數(shù)為3及47的時候,其各次諧波的疊加波形與原函數(shù)的波形的逼近程度??梢钥吹剑S著傅里葉級數(shù)項數(shù)的增多,部分和與周期方波信號的誤差越來越小。在 項的時候,部分和的波形與周期方波信號的波形已經(jīng)非常接近。并且能清晰地觀察到“吉布斯”現(xiàn)象。
圖4 諧波的疊加波形與原函數(shù)的波形比較圖
4結(jié)束語
“基MATLAB Web Server虛擬實驗室”對學(xué)生學(xué)好“信號與系統(tǒng)”課程有非常好的輔助作用。相對于硬件實驗來說,虛擬實驗室不僅有實時性、直觀性的特點,而且大大節(jié)約了成本,提高了教學(xué)效率,增進了學(xué)生學(xué)習(xí)的興趣,加深了學(xué)生對所學(xué)課程的理解。
參考文獻
[1] 甘俊英,胡異丁. 基于MATLAB的信號與系統(tǒng)實驗指導(dǎo)[M]. 北京:清華大學(xué)出版社,2007.
[2] 陳鴿,常敏慧. MATLAB在信號處理系列課程實驗中的應(yīng)用[J]. 實驗技術(shù)與管理,2006,23(11):77-80.
[3] 何強,何英. MATLAB擴展編程[M]. 北京:清華大學(xué)出版社,2002.
[4] 黃斯偉. HTML完全使用詳解[M]. 北京:人民郵電出版社,2006.