劉婉妮,杜曉春
(西安歐亞學院 陜西 西安 710065)
基于.net的頻帶傳輸系統設計與實現
劉婉妮,杜曉春
(西安歐亞學院 陜西 西安 710065)
針對頻帶傳輸存在概念抽象、知識點深等教學問題,設計了一款基于Visual Studio.net的頻帶傳輸系統,該系統采用結構化與面向對象相結合的方法進行開發,內容包含ASK、FSK、PSK的調制與解調技術。本文介紹了該系統的功能模塊分析與設計,并對各種關鍵技術予以重點介紹。經測試,系統界面友好、交互性強,能夠有效的降低課程學習的難度。
頻帶傳輸系統;雙緩沖技術;仿真;反射技術
數據通信中,數字信號的傳輸方式分為基帶傳輸和頻帶傳輸兩種,由于數字信號通常含有較低的頻率分量,所以目前大多數信道不能直接傳輸基帶信號,需要借助載波,通常選正弦波為載波信號,將基帶信號的頻譜搬移(即調制),變換成適于信道傳輸的數字頻帶信號,然后再傳輸,這種傳輸方式就是頻帶傳輸[1]。
頻帶傳輸所涉及的內容多,概念抽象,學生在學習過程比較吃力,難于理解。一方面是這塊內容本身掌握就有一定難度,數學推導多,知識點深;另一方面是缺乏直觀觀看,實際動手操作的機會。通過研究和探討,確定本次仿真設計的目的是簡化學習難度,掌握對基本知識的理解,考慮到學習的漸進性,我們選擇的仿真實驗內容主要有:2ASK、2FSK、2PSK、2DPSK的產生、相干解調、非相干解調等。
在完成對本系統實驗內容的確立、整體設計方案的分析之后,按照由易到難、由表及里的思想完成該系統的開發,即先完成界面層的設計,然后進行仿真實驗所需的基本框架的開發,包括實驗儀器的選擇和創建,信號線的要求和繪制等,最后在前兩個層面基礎上完成本系統中核心功能即仿真層的實現,下面具體介紹這三層的主要任務和實現方法。
在界面開發中,我們采用當前Windows上的主流界面—WIMP (Window/Icon/Menu/Pointing Device)界面。使用這種方式,用戶可以方便的執行各種操作,提高了交互效率。在界面層開發中主要包含下面4個部分。
1)主界面
主界面是實驗的起點,也是用戶進行操作的主要窗口。本系統的主界面主要由3部分組成:實驗操作區、導航區、實驗結果輸出區。
2)實驗參數設置界面
實驗參數設置界面采用軟件界面設計中的“向導式(Wizard)界面”,這種界面常見于軟件安裝過程,在使用中一步步引領用戶操作,最后,根據用戶的輸入信息,完成一個較復雜的任務。
3)儀器庫
儀器庫用來容納組建頻帶信號調制和解調電路所需的儀器設備,是一個容器。儀器庫的開發仿照目前廣泛使用的抽屜菜單界面,如QQ、優化大師等均采用這種界面。
4) 簡易示波器面板
實驗需要使用示波器觀察信號波形,在設計過程中,為了將重心放在載波、已調信號波形的仿真上,將示波器各種豐富的功能進行簡化,確定了一個簡易模型:示波器參數可以設置,掃描周期和幅度均可調,面板上的坐標系根據參數值可動態顯示,坐標系以黑色為背景,白色虛線設為脈沖間隔,其顏色可通過工具欄根據用戶選擇進行設置。
在該仿真系統的開發過程中,一個很關鍵的技術就是系統中各種調制和解調模型的創建及判斷,仿真框架層主要完成模型的創建任務,要實現模型的創建必須包含下面4個部分。
1)儀器的選擇
儀器的選擇是指從器材庫中選擇儀器到操作臺的過程,要實現這一功能,在設計中我們從3個方面考慮:儀器識別、屬性記錄、消息發送。
在儀器庫中每個模塊占有一定的矩形區域,這個區域與屏幕的相對位置是確定的,因此根據鼠標當前所在屏幕位置可以判斷鼠標是否落在某一模塊區內來實現命中測試,進行儀器識別。
當用戶選定某個儀器時需要記錄相關的屬性,如儀器所在的主鍵控名,儀器名,儀器的索引號等,為儀器繪制提供信息。
消息的發送是指當鼠標命中模塊庫內的某個模塊時發送一個消息,通知相應的處理函數記錄與模塊相關的屬性。
2)儀器的繪制
儀器繪制是將選定儀器在操作臺上顯示的過程,在該功能實現中也包含兩部分內容:儀器本身的繪制、儀器端口的繪制。儀器的繪制是根據儀器選擇部分所記錄的屬性,判斷用戶鼠標的操作事件,采用雙緩沖技術繪制被選中的模塊。
儀器不能孤立的存在,它必須和其他儀器相連才能完成電路的搭建,因此,儀器要具有信號流入的端口和信號輸出端口,這就需要在繪制儀器的同時繪制其端口,在設計中端口是用空心的圓形圖表示,不同儀器所具有的輸入輸出端口數量不盡相同,這些需要根據所選儀器動態繪制[2],具體的實現思路如下:
第一步,定義端口類,根據儀器名確定該儀器的輸入輸出端口數量,確定每個端口相對于儀器所在矩形區域的位置,記錄這些屬性信息。
第二步,動態生成每個儀器的端口對象,端口的屬性有:端口相對位置,端口圓形區域的圓點坐標,端口類型(輸入還是輸出端口)等。
第三步,根據具體屬性值動態繪制儀器端口。
3)連接線的繪制
儀器間的信號傳輸是通過連線來完成的,連接線是一條終點帶箭頭的線段,箭頭方向表示信號的流向。連接線繪制的步驟是先判斷光標是否在端口內,只有在端口內才可以畫線,然后根據鼠標的移動動態繪制連線,鼠標單擊處產生拐點,以該轉折點為新起始坐標繼續畫線,鼠標移至另一端口時即為終點坐標。
4)儀器的移動和刪除
儀器的移動分為兩種情況:儀器端口有連接線的移動;儀器端口無連接線的移動。后者較簡單,是前者的特例,第一種情況的具體的實現思路為:
第一步:判斷鼠標是否落在儀器矩形區域并按下左鍵移動,若3個條件都滿足,則執行第二步,否則僅改變鼠標形狀。
第二步:擦除掉原有儀器、輸入輸出端口、連接線。
第三步:重新記錄數據,包括儀器矩形的坐標,端口位置,連接線的坐標的更新等。
第四步:按照更新后的屬性數據重新繪制所有對象。
儀器的刪除是根據用戶的操作,擦除鼠標落在的矩形區域,同時擦除儀器所對應的端口和連接線等。
1)系統模型的判斷
本實驗要求實驗者自主選擇實驗內容,創建實驗系統模型。因此需要對用戶搭建的系統模型的正確性進行判斷。判斷的方法是與預先設定的正確系統模型進行比較,比較的方法分為3步:判斷儀器個數、判斷連接線的條數、判斷各儀器端口的連接情況等,直到所有設置與正確模型相匹配,如果其中一步錯誤,后面的判斷不再執行。
2)儀器參數的設置與判斷
當創建好模型后,需要對模型中儀器的參數進行設置,以便對不同的參數的仿真結果進行分析研究。
3)信號波形的輸出
本實驗的仿真層功能除了創建實驗系統模型外,另一個重要的功能就是將系統模型連接線上的信號波形部分或全部輸出,圖1即為2ASK調制系統模型的各部分信號波形圖。

圖1 2ASK調制系統模型的各部分信號波形圖Fig. 1 Signal waveform of 2ASK in modulation system model
在本系統開發中用到了許多技術,這些技術在系統的開發中起到了關鍵作用。
在系統開發過程中,要繪制大量圖形,然而直接進行多重繪制或移動窗體會造成閃爍問題,這是由于Windows應用程序是自己負責繪制的,當一個窗體發生變化,如改變窗體的大小,或者部分被其它程序窗體遮蓋,或者從最小化狀態恢復時,程序都會收到需要繪制的信息。Windows把這種“變化”狀態稱為“無效的(Invalidated)”狀態,在這種情況下需要重繪,當Windows窗體程序需要重繪窗體時它會從Windows消息隊列中獲取繪制的信息,這個信息經過.Net框架封裝然后傳遞到窗體的PaintBackground和Paint事件中去。當數據量很大時,繪圖可能需要幾秒鐘甚至更長的時間,而且有時還會出現閃爍現象。在實際系統開發過程中,為了有效的解決這一問題,采用了雙緩沖技術[3]。
雙緩沖即在內存中創建一個和屏幕繪圖區域一致的對象,先將圖像繪制到內存中的這個對象上,再一次性將這個對象上的圖像拷貝到屏幕上[4]。雙緩沖實現過程如下:
第一步,在內存中創建和畫布一致的緩沖區。
第二步,在緩沖區畫圖。
第三步,將緩沖區位圖拷貝到當前畫布上。
最后一步,釋放內存緩沖區。
在本實驗中多次采用雙緩沖技術來消除刷屏造成了閃爍,當啟用雙緩沖時,所有繪制操作首先呈現到內存緩沖區,而不是屏幕上的繪圖畫面。所有繪制操作完成后,內存緩沖區直接復制到與其關聯的繪圖畫面。因為在屏幕上只執行一個圖形操作,所以消除了由復雜繪制操作造成的圖像閃爍。
拖拽技術,其實是一種繪圖技術,具體來說,它是一種實時繪圖繪圖技術。實現拖拽技術的思想是:擦除掉原來位置的圖形,在新位置重新繪制剛才擦掉的圖形,隨著光標的不斷移動,在不停地擦掉原來圖形的同時在新位置重新繪制原來的圖形[5]。
在本系統調制電路模型創建時,需要進行儀器拖拽和連接線拖拽。下面介紹儀器拖拽的實現思路:
在pic_device_MouseDown()事件中,判斷鼠標是否已落在某一個儀器圖形上,如果是,則把對象的圖形標志為可以高亮狀態。鼠標不放開,接著在實驗操作區內移動,并不斷地發出Mousemove消息,在MouseMove消息的處理函數中判斷鼠標的位置,修改有關對象圖形坐標的相關信息。然后調用Draw_device()函數,繪制拖動的對象圖形。
反射(Reflection)是.NET中的重要機制,通過反射,可以在運行時獲得.NET中每一個類型成員的各種信息,還可以獲得每個成員的名稱、限定符和參數等。有了反射,即可對每一個類型了如指掌。知道了類型信息,就可以在程序運行時動態地創建對象,調用方法,設置屬性和激發事件,所有這些都是在程序運行時而不是編譯時完成的。在本系統中儀器的選擇和連線過程中需要根據實驗者行為及時獲得對象的各種信息,所采用的就是通過反射技術實現對象的動態創建,并激活相應事件[6]。
本設計依據國內外虛擬實驗技術[7]發展及計算機通信課程實驗的軟硬件現狀,結合自己學校目前在開設實驗課面臨的諸多問題,設計并實現了計算機通信虛擬實驗系統,頻帶傳輸系統是其中一個子系統。本系統的主要設計特點:模塊化結構設計、界面友好、交互性強、仿真過程和結果直觀、對專業知識很好的融合。目前,虛擬通信實驗系統單機版基本功能均已實現,單機版不受網絡限制,可用于課堂演示與學生自學,還可升級軟件和資源,能夠有效的降低課程學習的難度,盡管虛擬實驗系統能有效地解決實際實驗教學所存在的一些問題,但是這種純軟件的虛擬實驗也存在一定局限性。因此,在實際的課程教學中,應該采用虛擬實驗和實物實驗相結合的方式,軟硬互補,虛實結合,加強知識的理解力和學習的靈活性,最大程度的發揮實驗教學的作用。
[1] 潘新民.計算通信技術[M]. 北京:電子工業出版社,2006.
[2] 李江全,張茜,李偉,楊旭海. Visual Basic.NET串口通信及測控應用典型實例[M]. 北京:電子工業出版社,2012.
[3] 鮑爾,斯內爾,劉彥博. Visual Studio 技術大全[M].北京:人民郵電出版社,2008.
[4] 唐召東.計算機慮擬通信實驗系統—頻帶傳輸實驗系統的設計與實現[D].天津師范大, 2004.
[5]田豐.虛擬實驗與真實實驗的整合研究 [J].實驗技術與管理,2005,22(11):89-90.TIAN Feng. The research of virtual experiment integration[J].Experimental technology and management,2005,22(11):89-90.
[6] 王剛.計算機網絡硬件通信虛擬實驗系統[D].天津:天津師范大學, 2006.
[7] 陳昌鑫,馬英卓,代月松.基于LabVIEW的虛擬實驗系統設計[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 稿件編號:201306163
劉婉妮(1981—),女,陜西咸陽人,碩士,講師。研究方向:移動通信、交換網技術,多媒體。