劉婉妮,杜曉春
(西安歐亞學(xué)院 陜西 西安 710065)
基于.net的頻帶傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
劉婉妮,杜曉春
(西安歐亞學(xué)院 陜西 西安 710065)
針對(duì)頻帶傳輸存在概念抽象、知識(shí)點(diǎn)深等教學(xué)問題,設(shè)計(jì)了一款基于Visual Studio.net的頻帶傳輸系統(tǒng),該系統(tǒng)采用結(jié)構(gòu)化與面向?qū)ο笙嘟Y(jié)合的方法進(jìn)行開發(fā),內(nèi)容包含ASK、FSK、PSK的調(diào)制與解調(diào)技術(shù)。本文介紹了該系統(tǒng)的功能模塊分析與設(shè)計(jì),并對(duì)各種關(guān)鍵技術(shù)予以重點(diǎn)介紹。經(jīng)測(cè)試,系統(tǒng)界面友好、交互性強(qiáng),能夠有效的降低課程學(xué)習(xí)的難度。
頻帶傳輸系統(tǒng);雙緩沖技術(shù);仿真;反射技術(shù)
數(shù)據(jù)通信中,數(shù)字信號(hào)的傳輸方式分為基帶傳輸和頻帶傳輸兩種,由于數(shù)字信號(hào)通常含有較低的頻率分量,所以目前大多數(shù)信道不能直接傳輸基帶信號(hào),需要借助載波,通常選正弦波為載波信號(hào),將基帶信號(hào)的頻譜搬移(即調(diào)制),變換成適于信道傳輸?shù)臄?shù)字頻帶信號(hào),然后再傳輸,這種傳輸方式就是頻帶傳輸[1]。
頻帶傳輸所涉及的內(nèi)容多,概念抽象,學(xué)生在學(xué)習(xí)過程比較吃力,難于理解。一方面是這塊內(nèi)容本身掌握就有一定難度,數(shù)學(xué)推導(dǎo)多,知識(shí)點(diǎn)深;另一方面是缺乏直觀觀看,實(shí)際動(dòng)手操作的機(jī)會(huì)。通過研究和探討,確定本次仿真設(shè)計(jì)的目的是簡(jiǎn)化學(xué)習(xí)難度,掌握對(duì)基本知識(shí)的理解,考慮到學(xué)習(xí)的漸進(jìn)性,我們選擇的仿真實(shí)驗(yàn)內(nèi)容主要有:2ASK、2FSK、2PSK、2DPSK的產(chǎn)生、相干解調(diào)、非相干解調(diào)等。
在完成對(duì)本系統(tǒng)實(shí)驗(yàn)內(nèi)容的確立、整體設(shè)計(jì)方案的分析之后,按照由易到難、由表及里的思想完成該系統(tǒng)的開發(fā),即先完成界面層的設(shè)計(jì),然后進(jìn)行仿真實(shí)驗(yàn)所需的基本框架的開發(fā),包括實(shí)驗(yàn)儀器的選擇和創(chuàng)建,信號(hào)線的要求和繪制等,最后在前兩個(gè)層面基礎(chǔ)上完成本系統(tǒng)中核心功能即仿真層的實(shí)現(xiàn),下面具體介紹這三層的主要任務(wù)和實(shí)現(xiàn)方法。
在界面開發(fā)中,我們采用當(dāng)前Windows上的主流界面—WIMP (Window/Icon/Menu/Pointing Device)界面。使用這種方式,用戶可以方便的執(zhí)行各種操作,提高了交互效率。在界面層開發(fā)中主要包含下面4個(gè)部分。
1)主界面
主界面是實(shí)驗(yàn)的起點(diǎn),也是用戶進(jìn)行操作的主要窗口。本系統(tǒng)的主界面主要由3部分組成:實(shí)驗(yàn)操作區(qū)、導(dǎo)航區(qū)、實(shí)驗(yàn)結(jié)果輸出區(qū)。
2)實(shí)驗(yàn)參數(shù)設(shè)置界面
實(shí)驗(yàn)參數(shù)設(shè)置界面采用軟件界面設(shè)計(jì)中的“向?qū)剑╓izard)界面”,這種界面常見于軟件安裝過程,在使用中一步步引領(lǐng)用戶操作,最后,根據(jù)用戶的輸入信息,完成一個(gè)較復(fù)雜的任務(wù)。
3)儀器庫
儀器庫用來容納組建頻帶信號(hào)調(diào)制和解調(diào)電路所需的儀器設(shè)備,是一個(gè)容器。儀器庫的開發(fā)仿照目前廣泛使用的抽屜菜單界面,如QQ、優(yōu)化大師等均采用這種界面。
4) 簡(jiǎn)易示波器面板
實(shí)驗(yàn)需要使用示波器觀察信號(hào)波形,在設(shè)計(jì)過程中,為了將重心放在載波、已調(diào)信號(hào)波形的仿真上,將示波器各種豐富的功能進(jìn)行簡(jiǎn)化,確定了一個(gè)簡(jiǎn)易模型:示波器參數(shù)可以設(shè)置,掃描周期和幅度均可調(diào),面板上的坐標(biāo)系根據(jù)參數(shù)值可動(dòng)態(tài)顯示,坐標(biāo)系以黑色為背景,白色虛線設(shè)為脈沖間隔,其顏色可通過工具欄根據(jù)用戶選擇進(jìn)行設(shè)置。
在該仿真系統(tǒng)的開發(fā)過程中,一個(gè)很關(guān)鍵的技術(shù)就是系統(tǒng)中各種調(diào)制和解調(diào)模型的創(chuàng)建及判斷,仿真框架層主要完成模型的創(chuàng)建任務(wù),要實(shí)現(xiàn)模型的創(chuàng)建必須包含下面4個(gè)部分。
1)儀器的選擇
儀器的選擇是指從器材庫中選擇儀器到操作臺(tái)的過程,要實(shí)現(xiàn)這一功能,在設(shè)計(jì)中我們從3個(gè)方面考慮:儀器識(shí)別、屬性記錄、消息發(fā)送。
在儀器庫中每個(gè)模塊占有一定的矩形區(qū)域,這個(gè)區(qū)域與屏幕的相對(duì)位置是確定的,因此根據(jù)鼠標(biāo)當(dāng)前所在屏幕位置可以判斷鼠標(biāo)是否落在某一模塊區(qū)內(nèi)來實(shí)現(xiàn)命中測(cè)試,進(jìn)行儀器識(shí)別。
當(dāng)用戶選定某個(gè)儀器時(shí)需要記錄相關(guān)的屬性,如儀器所在的主鍵控名,儀器名,儀器的索引號(hào)等,為儀器繪制提供信息。
消息的發(fā)送是指當(dāng)鼠標(biāo)命中模塊庫內(nèi)的某個(gè)模塊時(shí)發(fā)送一個(gè)消息,通知相應(yīng)的處理函數(shù)記錄與模塊相關(guān)的屬性。
2)儀器的繪制
儀器繪制是將選定儀器在操作臺(tái)上顯示的過程,在該功能實(shí)現(xiàn)中也包含兩部分內(nèi)容:儀器本身的繪制、儀器端口的繪制。儀器的繪制是根據(jù)儀器選擇部分所記錄的屬性,判斷用戶鼠標(biāo)的操作事件,采用雙緩沖技術(shù)繪制被選中的模塊。
儀器不能孤立的存在,它必須和其他儀器相連才能完成電路的搭建,因此,儀器要具有信號(hào)流入的端口和信號(hào)輸出端口,這就需要在繪制儀器的同時(shí)繪制其端口,在設(shè)計(jì)中端口是用空心的圓形圖表示,不同儀器所具有的輸入輸出端口數(shù)量不盡相同,這些需要根據(jù)所選儀器動(dòng)態(tài)繪制[2],具體的實(shí)現(xiàn)思路如下:
第一步,定義端口類,根據(jù)儀器名確定該儀器的輸入輸出端口數(shù)量,確定每個(gè)端口相對(duì)于儀器所在矩形區(qū)域的位置,記錄這些屬性信息。
第二步,動(dòng)態(tài)生成每個(gè)儀器的端口對(duì)象,端口的屬性有:端口相對(duì)位置,端口圓形區(qū)域的圓點(diǎn)坐標(biāo),端口類型(輸入還是輸出端口)等。
第三步,根據(jù)具體屬性值動(dòng)態(tài)繪制儀器端口。
3)連接線的繪制
儀器間的信號(hào)傳輸是通過連線來完成的,連接線是一條終點(diǎn)帶箭頭的線段,箭頭方向表示信號(hào)的流向。連接線繪制的步驟是先判斷光標(biāo)是否在端口內(nèi),只有在端口內(nèi)才可以畫線,然后根據(jù)鼠標(biāo)的移動(dòng)動(dòng)態(tài)繪制連線,鼠標(biāo)單擊處產(chǎn)生拐點(diǎn),以該轉(zhuǎn)折點(diǎn)為新起始坐標(biāo)繼續(xù)畫線,鼠標(biāo)移至另一端口時(shí)即為終點(diǎn)坐標(biāo)。
4)儀器的移動(dòng)和刪除
儀器的移動(dòng)分為兩種情況:儀器端口有連接線的移動(dòng);儀器端口無連接線的移動(dòng)。后者較簡(jiǎn)單,是前者的特例,第一種情況的具體的實(shí)現(xiàn)思路為:
第一步:判斷鼠標(biāo)是否落在儀器矩形區(qū)域并按下左鍵移動(dòng),若3個(gè)條件都滿足,則執(zhí)行第二步,否則僅改變鼠標(biāo)形狀。
第二步:擦除掉原有儀器、輸入輸出端口、連接線。
第三步:重新記錄數(shù)據(jù),包括儀器矩形的坐標(biāo),端口位置,連接線的坐標(biāo)的更新等。
第四步:按照更新后的屬性數(shù)據(jù)重新繪制所有對(duì)象。
儀器的刪除是根據(jù)用戶的操作,擦除鼠標(biāo)落在的矩形區(qū)域,同時(shí)擦除儀器所對(duì)應(yīng)的端口和連接線等。
1)系統(tǒng)模型的判斷
本實(shí)驗(yàn)要求實(shí)驗(yàn)者自主選擇實(shí)驗(yàn)內(nèi)容,創(chuàng)建實(shí)驗(yàn)系統(tǒng)模型。因此需要對(duì)用戶搭建的系統(tǒng)模型的正確性進(jìn)行判斷。判斷的方法是與預(yù)先設(shè)定的正確系統(tǒng)模型進(jìn)行比較,比較的方法分為3步:判斷儀器個(gè)數(shù)、判斷連接線的條數(shù)、判斷各儀器端口的連接情況等,直到所有設(shè)置與正確模型相匹配,如果其中一步錯(cuò)誤,后面的判斷不再執(zhí)行。
2)儀器參數(shù)的設(shè)置與判斷
當(dāng)創(chuàng)建好模型后,需要對(duì)模型中儀器的參數(shù)進(jìn)行設(shè)置,以便對(duì)不同的參數(shù)的仿真結(jié)果進(jìn)行分析研究。
3)信號(hào)波形的輸出
本實(shí)驗(yàn)的仿真層功能除了創(chuàng)建實(shí)驗(yàn)系統(tǒng)模型外,另一個(gè)重要的功能就是將系統(tǒng)模型連接線上的信號(hào)波形部分或全部輸出,圖1即為2ASK調(diào)制系統(tǒng)模型的各部分信號(hào)波形圖。
圖1 2ASK調(diào)制系統(tǒng)模型的各部分信號(hào)波形圖Fig. 1 Signal waveform of 2ASK in modulation system model
在本系統(tǒng)開發(fā)中用到了許多技術(shù),這些技術(shù)在系統(tǒng)的開發(fā)中起到了關(guān)鍵作用。
在系統(tǒng)開發(fā)過程中,要繪制大量圖形,然而直接進(jìn)行多重繪制或移動(dòng)窗體會(huì)造成閃爍問題,這是由于Windows應(yīng)用程序是自己負(fù)責(zé)繪制的,當(dāng)一個(gè)窗體發(fā)生變化,如改變窗體的大小,或者部分被其它程序窗體遮蓋,或者從最小化狀態(tài)恢復(fù)時(shí),程序都會(huì)收到需要繪制的信息。Windows把這種“變化”狀態(tài)稱為“無效的(Invalidated)”狀態(tài),在這種情況下需要重繪,當(dāng)Windows窗體程序需要重繪窗體時(shí)它會(huì)從Windows消息隊(duì)列中獲取繪制的信息,這個(gè)信息經(jīng)過.Net框架封裝然后傳遞到窗體的PaintBackground和Paint事件中去。當(dāng)數(shù)據(jù)量很大時(shí),繪圖可能需要幾秒鐘甚至更長(zhǎng)的時(shí)間,而且有時(shí)還會(huì)出現(xiàn)閃爍現(xiàn)象。在實(shí)際系統(tǒng)開發(fā)過程中,為了有效的解決這一問題,采用了雙緩沖技術(shù)[3]。
雙緩沖即在內(nèi)存中創(chuàng)建一個(gè)和屏幕繪圖區(qū)域一致的對(duì)象,先將圖像繪制到內(nèi)存中的這個(gè)對(duì)象上,再一次性將這個(gè)對(duì)象上的圖像拷貝到屏幕上[4]。雙緩沖實(shí)現(xiàn)過程如下:
第一步,在內(nèi)存中創(chuàng)建和畫布一致的緩沖區(qū)。
第二步,在緩沖區(qū)畫圖。
第三步,將緩沖區(qū)位圖拷貝到當(dāng)前畫布上。
最后一步,釋放內(nèi)存緩沖區(qū)。
在本實(shí)驗(yàn)中多次采用雙緩沖技術(shù)來消除刷屏造成了閃爍,當(dāng)啟用雙緩沖時(shí),所有繪制操作首先呈現(xiàn)到內(nèi)存緩沖區(qū),而不是屏幕上的繪圖畫面。所有繪制操作完成后,內(nèi)存緩沖區(qū)直接復(fù)制到與其關(guān)聯(lián)的繪圖畫面。因?yàn)樵谄聊簧现粓?zhí)行一個(gè)圖形操作,所以消除了由復(fù)雜繪制操作造成的圖像閃爍。
拖拽技術(shù),其實(shí)是一種繪圖技術(shù),具體來說,它是一種實(shí)時(shí)繪圖繪圖技術(shù)。實(shí)現(xiàn)拖拽技術(shù)的思想是:擦除掉原來位置的圖形,在新位置重新繪制剛才擦掉的圖形,隨著光標(biāo)的不斷移動(dòng),在不停地擦掉原來圖形的同時(shí)在新位置重新繪制原來的圖形[5]。
在本系統(tǒng)調(diào)制電路模型創(chuàng)建時(shí),需要進(jìn)行儀器拖拽和連接線拖拽。下面介紹儀器拖拽的實(shí)現(xiàn)思路:
在pic_device_MouseDown()事件中,判斷鼠標(biāo)是否已落在某一個(gè)儀器圖形上,如果是,則把對(duì)象的圖形標(biāo)志為可以高亮狀態(tài)。鼠標(biāo)不放開,接著在實(shí)驗(yàn)操作區(qū)內(nèi)移動(dòng),并不斷地發(fā)出Mousemove消息,在MouseMove消息的處理函數(shù)中判斷鼠標(biāo)的位置,修改有關(guān)對(duì)象圖形坐標(biāo)的相關(guān)信息。然后調(diào)用Draw_device()函數(shù),繪制拖動(dòng)的對(duì)象圖形。
反射(Reflection)是.NET中的重要機(jī)制,通過反射,可以在運(yùn)行時(shí)獲得.NET中每一個(gè)類型成員的各種信息,還可以獲得每個(gè)成員的名稱、限定符和參數(shù)等。有了反射,即可對(duì)每一個(gè)類型了如指掌。知道了類型信息,就可以在程序運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建對(duì)象,調(diào)用方法,設(shè)置屬性和激發(fā)事件,所有這些都是在程序運(yùn)行時(shí)而不是編譯時(shí)完成的。在本系統(tǒng)中儀器的選擇和連線過程中需要根據(jù)實(shí)驗(yàn)者行為及時(shí)獲得對(duì)象的各種信息,所采用的就是通過反射技術(shù)實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)創(chuàng)建,并激活相應(yīng)事件[6]。
本設(shè)計(jì)依據(jù)國(guó)內(nèi)外虛擬實(shí)驗(yàn)技術(shù)[7]發(fā)展及計(jì)算機(jī)通信課程實(shí)驗(yàn)的軟硬件現(xiàn)狀,結(jié)合自己學(xué)校目前在開設(shè)實(shí)驗(yàn)課面臨的諸多問題,設(shè)計(jì)并實(shí)現(xiàn)了計(jì)算機(jī)通信虛擬實(shí)驗(yàn)系統(tǒng),頻帶傳輸系統(tǒng)是其中一個(gè)子系統(tǒng)。本系統(tǒng)的主要設(shè)計(jì)特點(diǎn):模塊化結(jié)構(gòu)設(shè)計(jì)、界面友好、交互性強(qiáng)、仿真過程和結(jié)果直觀、對(duì)專業(yè)知識(shí)很好的融合。目前,虛擬通信實(shí)驗(yàn)系統(tǒng)單機(jī)版基本功能均已實(shí)現(xiàn),單機(jī)版不受網(wǎng)絡(luò)限制,可用于課堂演示與學(xué)生自學(xué),還可升級(jí)軟件和資源,能夠有效的降低課程學(xué)習(xí)的難度,盡管虛擬實(shí)驗(yàn)系統(tǒng)能有效地解決實(shí)際實(shí)驗(yàn)教學(xué)所存在的一些問題,但是這種純軟件的虛擬實(shí)驗(yàn)也存在一定局限性。因此,在實(shí)際的課程教學(xué)中,應(yīng)該采用虛擬實(shí)驗(yàn)和實(shí)物實(shí)驗(yàn)相結(jié)合的方式,軟硬互補(bǔ),虛實(shí)結(jié)合,加強(qiáng)知識(shí)的理解力和學(xué)習(xí)的靈活性,最大程度的發(fā)揮實(shí)驗(yàn)教學(xué)的作用。
[1] 潘新民.計(jì)算通信技術(shù)[M]. 北京:電子工業(yè)出版社,2006.
[2] 李江全,張茜,李偉,楊旭海. Visual Basic.NET串口通信及測(cè)控應(yīng)用典型實(shí)例[M]. 北京:電子工業(yè)出版社,2012.
[3] 鮑爾,斯內(nèi)爾,劉彥博. Visual Studio 技術(shù)大全[M].北京:人民郵電出版社,2008.
[4] 唐召東.計(jì)算機(jī)慮擬通信實(shí)驗(yàn)系統(tǒng)—頻帶傳輸實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津師范大, 2004.
[5]田豐.虛擬實(shí)驗(yàn)與真實(shí)實(shí)驗(yàn)的整合研究 [J].實(shí)驗(yàn)技術(shù)與管理,2005,22(11):89-90.TIAN Feng. The research of virtual experiment integration[J].Experimental technology and management,2005,22(11):89-90.
[6] 王剛.計(jì)算機(jī)網(wǎng)絡(luò)硬件通信虛擬實(shí)驗(yàn)系統(tǒng)[D].天津:天津師范大學(xué), 2006.
[7] 陳昌鑫,馬英卓,代月松.基于LabVIEW的虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].電子科技,2011(7):85-87.CHEN Chang-xin,MA Ying-zhuo,DAI Yue-song.Design of virtual experiment system based on LabVIEW[J].Electronic Science and Technology,2011(7):85-87.
Design and implementation of frequency-band transmission system based on .net
LIU Wan-ni , DU Xiao-chun
(Xi'an Eurasia University, Xi'an 710065, China)
According to the teaching problems in the Frequency-Band transmission,such as abstract concepts、deeply knowledge point.a Frequency-Band transmission system was designed based on the Visual Studio.net.developed with the structured and object oriented method of combining,the content including modulation and demodulation of ASK,FSK, PSK.This paper introduces the analysis and design of function modules , and focuses on the key technologies.After testing, the system has friendly interface, strong interaction, can effectively reduce the learning difficulty.
frequency-band transmission system; double buffer technology; simulation; reflection technology
TN914
A
1674-6236(2014)03-0042-03
2013–06–25 稿件編號(hào):201306163
劉婉妮(1981—),女,陜西咸陽人,碩士,講師。研究方向:移動(dòng)通信、交換網(wǎng)技術(shù),多媒體。