蔣華勝, 林思宇, 周慶華
(長沙理工大學(xué) 物理與電子科學(xué)學(xué)院, 長沙410114)
電子技術(shù)作為二十世紀(jì)初開始發(fā)展起來的新興技術(shù),技術(shù)發(fā)展迅速,知識更新快[1],高校開設(shè)的實(shí)驗(yàn)課程落后于電子技術(shù)的進(jìn)步,實(shí)驗(yàn)室也無法及時(shí)裝備滿足實(shí)驗(yàn)教學(xué)所需要的儀器設(shè)備[2-3]。 實(shí)體實(shí)驗(yàn)需要的儀器設(shè)備在數(shù)量逐年遞增的同時(shí),投資也已日趨緊張,多數(shù)高校都難以全面滿足儀器設(shè)備附加的教學(xué)實(shí)驗(yàn)要求[4],同時(shí)在實(shí)體實(shí)驗(yàn)操作時(shí)也會出現(xiàn)實(shí)驗(yàn)設(shè)備老化,實(shí)驗(yàn)時(shí)間多方受限等各種情況[5]。
因此,虛擬實(shí)驗(yàn)應(yīng)時(shí)而生[6]。 虛擬實(shí)驗(yàn)是指借助于計(jì)算機(jī)多媒體技術(shù)、虛擬現(xiàn)實(shí)和虛擬儀器等技術(shù)來模擬實(shí)際實(shí)驗(yàn)的各個操作環(huán)節(jié)[7]。 實(shí)驗(yàn)者可以像在實(shí)際的實(shí)驗(yàn)環(huán)境中操作實(shí)驗(yàn)[8]。 虛擬實(shí)驗(yàn)?zāi)軌虿皇軅鹘y(tǒng)實(shí)驗(yàn)在時(shí)間和空間的限制[9],無論是操作實(shí)驗(yàn)的學(xué)生還是布置實(shí)驗(yàn)的教師,都可以利用虛擬實(shí)驗(yàn)系統(tǒng),進(jìn)行具體實(shí)驗(yàn)[10]。 虛擬實(shí)驗(yàn)注重的是實(shí)驗(yàn)操作的交互性和實(shí)驗(yàn)結(jié)果的仿真性[11-12]。
然而,現(xiàn)有常見的虛擬實(shí)驗(yàn)系統(tǒng)一般未實(shí)現(xiàn)身份認(rèn)證,不能基于學(xué)生的個人身份保存及載入試驗(yàn)結(jié)果、生成個人的實(shí)驗(yàn)報(bào)告,因此使用并不方便。 所以,本文基于LabVIEW 開發(fā)平臺構(gòu)建了一個具有身份認(rèn)證功能的虛擬實(shí)驗(yàn)系統(tǒng),該系統(tǒng)可以識別學(xué)生的個人身份,對個人實(shí)驗(yàn)數(shù)據(jù)進(jìn)行保存及載入。 同時(shí),可以根據(jù)個人實(shí)驗(yàn)結(jié)果生成word 格式的實(shí)驗(yàn)報(bào)告。
虛擬實(shí)驗(yàn)系統(tǒng)具有注冊賬號、賬號登錄、修改密碼、刪除賬號、虛擬實(shí)驗(yàn)操作、實(shí)驗(yàn)參數(shù)保存及載入和報(bào)告生成等功能。 用模塊化設(shè)計(jì)的思想,把虛擬實(shí)驗(yàn)系統(tǒng)的功能實(shí)現(xiàn)劃分為賬號注冊模塊、賬號登錄模塊、賬號管理模塊、虛擬實(shí)驗(yàn)?zāi)K、參數(shù)保存及載入模塊、報(bào)告生成模塊。
其中,賬號注冊模塊、賬號登錄模塊與賬號管理模塊用于學(xué)生的身份認(rèn)證和賬號操作。 學(xué)生可以通過賬號注冊模塊進(jìn)行賬號密碼的注冊。 通過賬號登錄模塊進(jìn)行身份認(rèn)證,通過賬號管理模塊修改賬號密碼和刪除賬號。 虛擬實(shí)驗(yàn)?zāi)K、參數(shù)保存及載入模塊與報(bào)告生成模塊構(gòu)成實(shí)驗(yàn)系統(tǒng),在實(shí)驗(yàn)系統(tǒng)中,學(xué)生可以通過虛擬實(shí)驗(yàn)?zāi)K進(jìn)行虛擬實(shí)驗(yàn)操作(本文具體以低通濾波實(shí)驗(yàn)為例介紹了虛擬實(shí)驗(yàn)?zāi)K的實(shí)現(xiàn))。 參數(shù)保存與載入模塊可以保存實(shí)驗(yàn)數(shù)據(jù)并根據(jù)需要進(jìn)行載入。 報(bào)告生成模塊可以根據(jù)實(shí)驗(yàn)結(jié)果自動生成實(shí)驗(yàn)報(bào)告。
賬號注冊功能是學(xué)生進(jìn)入系統(tǒng)并進(jìn)行實(shí)驗(yàn)操作的關(guān)鍵,賬號注冊之后可以通過登錄進(jìn)入虛擬實(shí)驗(yàn)系統(tǒng)。 首先,在賬號注冊界面輸入需要注冊的賬號與密碼,點(diǎn)擊注冊按鈕,賬號與密碼將會被保存到系統(tǒng)文件中,然后可以使用此賬號登錄虛擬實(shí)驗(yàn)系統(tǒng)。
為了不泄露學(xué)生的賬號密碼,本系統(tǒng)保存的密碼是通過LabVIEW 內(nèi)置的MD5 函數(shù)進(jìn)行加密之后的數(shù)據(jù)。
本文MD5 加密過程:首先對“字符串輸入控件”輸入的信息進(jìn)行補(bǔ)位,對信息數(shù)據(jù)的長度進(jìn)行64 取余數(shù);然后對MD5 參數(shù)進(jìn)行初始化處理,執(zhí)行四輪的四個非線性函數(shù),共執(zhí)行64 步;再對分組數(shù)據(jù)進(jìn)行處理,對輸出的數(shù)據(jù)進(jìn)行級聯(lián)后,輸出MD5值。
賬號登錄程序是進(jìn)入虛擬實(shí)驗(yàn)系統(tǒng)并進(jìn)行實(shí)驗(yàn)操作的程序,其主要作用是實(shí)現(xiàn)學(xué)生身份的辨別。賬號登錄程序是通過2 個字符串輸入控件作為登錄賬號、密碼的輸入界面,通過輸入界面將已注冊的賬號與密碼填入對應(yīng)的位置,點(diǎn)擊確定按鈕,登錄程序開始運(yùn)行。 賬號密碼識別程序如圖1 所示。 首先,輸入的賬號與密碼將會通過數(shù)據(jù)流傳輸?shù)脚袛喑绦蛑校袛喑绦驎鶕?jù)輸入的賬號,按照一定的格式生成路徑字符串,路徑字符串通過字符串至路徑轉(zhuǎn)換控件,得到對應(yīng)賬號密碼數(shù)據(jù)信息的路徑,然后通過“讀取文本文件”控件讀取該路徑下的密碼信息。如果“讀取文本文件”控件返回了錯誤輸出,則表示輸入的賬號沒有經(jīng)過注冊或者賬號填寫錯誤,與錯誤輸出連接的條件結(jié)構(gòu)會執(zhí)行“錯誤”分支,彈出對話框提示“賬號錯誤”,點(diǎn)擊對話框的確定按鈕將會退出登錄程序。 如果通過控件讀取到了賬號的密碼信息,說明賬號已注冊并讀取密碼信息,與錯誤輸出連接的條件結(jié)構(gòu)會執(zhí)行“無錯誤”分支,將讀取的密碼信息與輸入的密碼數(shù)據(jù)進(jìn)行比較。 由于保存的密碼數(shù)據(jù)是經(jīng)過MD5 算法加密的數(shù)據(jù),所以需要將輸入的密碼同樣進(jìn)行MD5 算法處理。 將進(jìn)行了MD5算法處理的密碼數(shù)據(jù)與讀取的密碼數(shù)據(jù)進(jìn)行對比,如果2 個密碼數(shù)據(jù)相同,說明賬號與密碼無錯誤,登錄成功并進(jìn)入虛擬實(shí)驗(yàn)系統(tǒng);反之,說明密碼有錯誤,重新輸入。

圖1 賬號密碼識別流程Fig.1 The program diagram of account password identification
本文以低通濾波實(shí)驗(yàn)為例介紹虛擬實(shí)驗(yàn)項(xiàng)目的實(shí)現(xiàn)。 低通濾波程序如圖2 所示。 使用波形生成中的控件“基本函數(shù)發(fā)生器”產(chǎn)生信號。 通過創(chuàng)建信號發(fā)生器的各種輸入控件,可以控制基本函數(shù)發(fā)生器產(chǎn)生各種不同的基本信號。 使用基本函數(shù)發(fā)生器的信號類型輸入控件,可以選擇幾種不同的信號波形,通過頻率、幅值、相位、占空比和偏移量各個輸入控件可以改變產(chǎn)生波形的各種參數(shù),獲得比較適宜的信號波形,為了能與噪聲信號相加,對信號波形加窗處理,通過hanning 窗處理的信號就可以直接與噪聲信號相加。 噪聲方面,虛擬實(shí)驗(yàn)系統(tǒng)使用了信號生成中的高斯白噪聲作為噪聲源,可以通過標(biāo)準(zhǔn)差輸入控件控制高斯白噪聲產(chǎn)生噪聲信號的量。 將高斯白噪聲加入到信號波形得到可以進(jìn)行濾波處理的混合信號。 將混合信號輸入到條件結(jié)構(gòu)中,通過濾波器選擇控件可以選擇不同的低通濾波器進(jìn)行虛擬實(shí)驗(yàn),通過濾波器控件后就得到了濾波之后的信號。

圖2 低通濾波虛擬實(shí)驗(yàn)程序圖Fig.2 The program diagram of low pass filter virtual experiment
在虛擬實(shí)驗(yàn)系統(tǒng)中,實(shí)驗(yàn)過程中保存的參數(shù)是每個學(xué)生的個人數(shù)據(jù),當(dāng)學(xué)生點(diǎn)擊保存參數(shù)按鈕時(shí),參數(shù)保存與載入程序開始運(yùn)行。 參數(shù)保存與載入程序工作過程如圖3 所示。 首先,通過學(xué)生的賬號,生成此賬號的個人數(shù)據(jù)保存路徑。 同時(shí),通過VI 服務(wù)引用控件,創(chuàng)建VI 類的方法—控件值—獲取全部,獲取VI 中全部控件的設(shè)置參數(shù)。 然后將所有的設(shè)置參數(shù)使用控件“寫入二進(jìn)制文件”將二進(jìn)制數(shù)據(jù)保存到個人數(shù)據(jù)信息中。 讀取參數(shù)設(shè)置時(shí),首先獲得對應(yīng)的個人數(shù)據(jù)信息文件的路徑,讀取二進(jìn)制數(shù)據(jù),對二進(jìn)制數(shù)據(jù)解捆綁。 然后通過VI 服務(wù)引用控件,創(chuàng)建VI 類的方法—控件值—設(shè)置,將解捆綁的數(shù)據(jù)導(dǎo)入設(shè)置控件,就可以將保存的參數(shù)重新寫入對應(yīng)的參數(shù)位置。
首先根據(jù)實(shí)驗(yàn)內(nèi)容創(chuàng)建一個word 模板。 將實(shí)驗(yàn)原理、過程、結(jié)果等按照一定的格式排列。 并在模板文檔創(chuàng)建書簽,通過書簽將學(xué)生具體的實(shí)驗(yàn)步驟與實(shí)驗(yàn)結(jié)果插入到實(shí)驗(yàn)報(bào)告中的特定位置。
實(shí)驗(yàn)報(bào)告生成程序如圖4 所示。 首先,新建報(bào)表控件根據(jù)登錄賬號打開文件夾中的word 模板文檔,然后使用添加報(bào)表文本控件和添加控件圖像至報(bào)表控件,使用word 模板文檔中的書簽設(shè)置添加報(bào)表文本控件和添加控件圖像至報(bào)表控件的MS Office 參數(shù),將實(shí)驗(yàn)中的各個控件的設(shè)置參數(shù)以及波形圖保存到word 模板文檔中的對應(yīng)位置。 最后通過保存報(bào)表至文件控件,將保存的word 文檔保存到該賬號下的指定文件夾中。

圖3 實(shí)驗(yàn)參數(shù)保存與讀取過程圖Fig.3 The program diagram of saving and reading experimental parameters

圖4 實(shí)驗(yàn)報(bào)告生成過程圖Fig.4 The program diagram of experiment report generation
本實(shí)驗(yàn)系統(tǒng)的低通濾波實(shí)驗(yàn)操作面板如圖5 所示。 學(xué)生進(jìn)行實(shí)驗(yàn)時(shí),通過信號類型選擇控件可以選擇正弦波、方波、鋸齒波和三角波四種波形中的一種進(jìn)行實(shí)驗(yàn)。 選擇波形后,可以使用頻率輸入控件改變波形的頻率,使用幅值輸入控件改變波形的幅值大小,使用相位輸入控件改變波形的初始相位,使用偏移量輸入控件使波形上下偏移,方波占空比輸入控件可以改變方波的占空比。 同時(shí)使用滑動桿控件可以控制混入高斯白噪聲的量。 通過各種參數(shù)的設(shè)置,就可以獲得比較適和濾波實(shí)驗(yàn)的混合信號波形,然后進(jìn)行低通濾波實(shí)驗(yàn)。 在低通濾波實(shí)驗(yàn)中,低通濾波器實(shí)驗(yàn)有兩種選擇,分別是巴特沃斯低通濾波器和契比雪夫低通濾波器。 學(xué)生可以通過面板上的控件選擇實(shí)驗(yàn)的濾波器,通過輸入控件低通對濾波器的參數(shù)進(jìn)行設(shè)置,可以設(shè)置的參數(shù)包括階數(shù)、采樣頻率和低截止頻率。 在濾波器實(shí)驗(yàn)中,學(xué)生通過各個輸入控件改變?yōu)V波器參數(shù),得到比較理想的濾波結(jié)果。
由于在實(shí)驗(yàn)過程中,可能會出現(xiàn)一些突發(fā)狀況需要保存此次未完成的實(shí)驗(yàn)數(shù)據(jù),此時(shí)可以使用保存參數(shù)按鈕,保存當(dāng)前的參數(shù)設(shè)置信息,在下次實(shí)驗(yàn)時(shí),可以使用讀取參數(shù)按鈕獲得上次保存的參數(shù)設(shè)置信息。
完成虛擬實(shí)驗(yàn)后,需要對實(shí)驗(yàn)的結(jié)果進(jìn)行保存。學(xué)生只需要使用報(bào)告生成功能,實(shí)驗(yàn)系統(tǒng)就會將實(shí)驗(yàn)結(jié)果保存到模板文檔中的指定位置,得到實(shí)驗(yàn)報(bào)告。 實(shí)驗(yàn)報(bào)告如圖6 所示。

圖5 濾波器實(shí)驗(yàn)的前面板Fig.5 The front panel of the filter experiment

圖6 生成的實(shí)驗(yàn)報(bào)告Fig.6 Generated experiment report
本文基于LabVIEW 開發(fā)環(huán)境,構(gòu)建了一個基于身份認(rèn)證的虛擬實(shí)驗(yàn)系統(tǒng),并以虛擬實(shí)驗(yàn)為例。 在虛擬實(shí)驗(yàn)中,通過賬號注冊以及登錄實(shí)現(xiàn)身份認(rèn)證功能,在實(shí)驗(yàn)操作過程中,可以將實(shí)驗(yàn)數(shù)據(jù)進(jìn)行保存,在實(shí)驗(yàn)結(jié)束時(shí)可以自動生成word 文檔格式的實(shí)驗(yàn)報(bào)告。 本實(shí)驗(yàn)通過虛擬仿真,方便學(xué)生操作,便于學(xué)生觀察實(shí)驗(yàn)結(jié)果。
由于篇幅的限制,本文的虛擬實(shí)驗(yàn)?zāi)K僅介紹了低通濾波實(shí)驗(yàn)項(xiàng)目,未來可擴(kuò)展更多的實(shí)驗(yàn)項(xiàng)目。 同時(shí),可以考慮將虛擬實(shí)驗(yàn)與實(shí)際實(shí)驗(yàn)相結(jié)合,實(shí)現(xiàn)虛實(shí)結(jié)合實(shí)驗(yàn)。 在賬號管理方面,可以增加管理員賬戶,以方便對本系統(tǒng)的學(xué)生用戶及實(shí)驗(yàn)?zāi)K進(jìn)行管理。