無(wú)線通信系統(tǒng)的GUI設(shè)計(jì)與仿真實(shí)現(xiàn)
引言
本文引用地址:http://cafeforensic.com/article/155448.htm軟件系統(tǒng)的用戶接口有兩類,即命令驅(qū)動(dòng)方式的 交互式問(wèn)答接口和事件驅(qū)動(dòng)方式的圖形用戶接口 (GUI)。通常在開(kāi)發(fā)一個(gè)實(shí)際的應(yīng)用軟件系統(tǒng)時(shí)會(huì)盡 量做到界面友好,最常使用的方法就是使用圖形用戶界 面。圖形用戶界面用各種圖形對(duì)象,如圖形窗口、圖軸、 菜單、文本框等構(gòu)建的用戶界面,是人機(jī)交流的工具和方法。利用用戶界面,用戶可以直接與計(jì)算機(jī)進(jìn)行信息 交流,不需了解應(yīng)用程序究竟是怎樣執(zhí)行各種命令的, 而只需了解可見(jiàn)界面組件的使用方法,通過(guò)與界面交流 就可以使指定的行為得到正確執(zhí)行。
圖形用戶界面具有很強(qiáng)的交互性,在這樣的一個(gè)良好的用戶界面中可以方便地進(jìn)行通信系統(tǒng)的參數(shù)設(shè)置,可以同步顯示通信信號(hào)經(jīng)過(guò)每一步處理后的波形,能夠使用戶更為方便地對(duì)無(wú)線通信系統(tǒng)進(jìn)行軟件設(shè)計(jì)和功能分析。
通信的目的就是傳輸信息。通信系統(tǒng)的作用就是將信號(hào)從信源發(fā)送到一個(gè)或多個(gè)信宿。因此,按照信道中傳輸?shù)氖悄M信號(hào)還是數(shù)字信號(hào),相應(yīng)地把通信系統(tǒng)分為模擬通信系統(tǒng)和數(shù)字通信系統(tǒng)。
1 無(wú)線通信系統(tǒng)仿真模型的構(gòu)建
通信的目的就是傳輸信息。通信系統(tǒng)的作用就是將信號(hào)從信源發(fā)送到一個(gè)或多個(gè)信宿。因此,按照信道中傳輸?shù)氖悄M信號(hào)還是數(shù)字信號(hào),相應(yīng)地把通信系統(tǒng)分為模擬通信系統(tǒng)和數(shù)字通信系統(tǒng)。
(1)模擬通信系統(tǒng)模型
信源發(fā)出的原始電信號(hào)是基帶信號(hào),基帶是指信號(hào)的頻譜從零頻附近開(kāi)始,如語(yǔ)音信號(hào)300~3 400 Hz,由于這種信號(hào)具有頻率很低的頻譜分量,一般不宜直接傳輸,這就需要把基帶信號(hào)變換成其頻帶適合在信道中傳輸?shù)男盘?hào),并在接收端進(jìn)行反變換。完成這種變換和反變換通常利用調(diào)制器和解調(diào)器。經(jīng)過(guò)調(diào)制以后的信號(hào)稱為已調(diào)信號(hào),已調(diào)信號(hào)有三個(gè)基本特征:攜帶有用信息;適合在信道中傳輸;信號(hào)的頻譜具有帶通形式且中心頻率遠(yuǎn)離零頻。
(2)數(shù)字通信系統(tǒng)模型
數(shù)字通信系統(tǒng)是利用數(shù)字信號(hào)來(lái)傳遞信息的通信系統(tǒng)。數(shù)字通信涉及的技術(shù)問(wèn)題很多,其中主要有信源編碼/譯碼、信道編碼/譯碼、數(shù)字調(diào)制/解調(diào)、數(shù)字復(fù)接、
同步以及加密等。
2 無(wú)線通信系統(tǒng)信號(hào)處理的GUI設(shè)計(jì)
通常情況下,實(shí)現(xiàn)GUI設(shè)計(jì)有兩種方法:使用Matlab自身提供的圖形用戶界面設(shè)計(jì)向?qū)?Graphics User Interface Design Environment,GUIDE),或者是使用全腳本編程。利用GUIDE進(jìn)行圖形用戶界面設(shè)計(jì),向?qū)?huì)自動(dòng)生成一個(gè)fig文件,及一個(gè)包含fig中放置控件相應(yīng)回調(diào)函數(shù)的M腳本文件。利用全腳本編程實(shí)現(xiàn),由于Matlab自帶demo,包括按鈕、文本標(biāo)簽、編輯文本框、列表框等,通過(guò)閱讀M文件程序代碼可以直觀而快速地掌握GUI設(shè)計(jì)的技巧。采用全腳本實(shí)現(xiàn),M文件代碼可重復(fù)使用,可生成非常復(fù)雜的界面,可方便地在句柄中存取數(shù)據(jù),可將創(chuàng)建對(duì)象代碼與動(dòng)作執(zhí)行代碼很好地結(jié)合起來(lái)。對(duì)于GUI設(shè)計(jì),針對(duì)不同的情況來(lái)確定使用GUIDE還是全腳本,也可以考慮兩者的結(jié)合使用來(lái)發(fā)揮各自的優(yōu)勢(shì)。
3 基于Matlab的無(wú)線通信系統(tǒng)GUI設(shè)計(jì)與實(shí)現(xiàn)
本文采用Matlab的GUIDE進(jìn)行通信系統(tǒng)仿真平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)H],對(duì)通信信號(hào)進(jìn)行實(shí)時(shí)處理。GUIDE是一個(gè)專門(mén)用于GUI程序設(shè)計(jì)的快速開(kāi)發(fā)環(huán)境,包括控制面板、屬性編輯器、事件過(guò)程編輯器、對(duì)齊工具和菜單編輯器五個(gè)圖形用戶界面編輯工具。用戶利用該向?qū)Э梢詫D形界面的外觀,包括所有的按鍵及圖形的位置進(jìn)行確定,然后利用Matlab的回調(diào)函數(shù)編輯器來(lái)編寫(xiě)完成約定任務(wù)的函數(shù)代碼,從而方便快捷地設(shè)計(jì)出一個(gè)圖形用戶界面。GUIDE 將用戶保存設(shè)計(jì)好的GUI界面保存在一個(gè)FIG資源文件中,同時(shí)還能夠生成包含GUI初始化的組建界面布局控制代碼的M文件。這個(gè)M文件為實(shí)現(xiàn)回調(diào)函數(shù)提供了一個(gè)參考框架。
通信信號(hào)處理的GUI設(shè)計(jì)一般分為以下五個(gè)步驟:
(1)確定GUl對(duì)象,通過(guò)設(shè)置GUIDE應(yīng)用程序的選項(xiàng)來(lái)進(jìn)行GUIDE組態(tài)在面向?qū)ο蟮南到y(tǒng)分析(00A)過(guò)程中,從信號(hào)處理的系統(tǒng)中抽象出面向?qū)ο缶幊?00P)的類和對(duì)象。對(duì)話框的選項(xiàng)包括窗口重畫(huà)行為,命令行訪問(wèn)、生成文件選擇、生成回調(diào)函數(shù)原型、使用系統(tǒng)背景顏色配置等選項(xiàng),通過(guò)不選或選中它們來(lái)實(shí)現(xiàn)圖形用戶界面的整體組態(tài)設(shè)計(jì)。
(2)使用界面設(shè)計(jì)編輯器進(jìn)行GUI界面設(shè)計(jì)
Matlab界面設(shè)計(jì)編輯器組件平臺(tái)中包含所有能夠在GUI中使用的用戶界面控件,即按鈕、單選按鈕、編輯框、靜態(tài)文本、列表框以及彈出式菜單等。一個(gè)GUI中可以存在一個(gè)或多個(gè)以上的GUI組件,使用時(shí)要注意保證各個(gè)組件的名稱或?qū)傩杂兴煌员銋^(qū)分。用戶可以用屬性檢查其對(duì)各組件的屬性進(jìn)行設(shè)計(jì)。
(3)理解應(yīng)用程序M文件中所使用的編程技術(shù)
Matlab可以通過(guò)創(chuàng)建應(yīng)用程序M文件為GUI控制程序提供一個(gè)框架。該框架是一種高效而堅(jiān)固的編程方法,即所有代碼均包含在應(yīng)用程序M文件中,這就使得M文件只有一個(gè)入口可以初始化GUI或調(diào)用相應(yīng)的回調(diào)函數(shù)以及GUI中希望使用的任意幫助子程序。對(duì)應(yīng)用程序M文件代碼進(jìn)行詳細(xì)分析,通過(guò)了解GUIDE創(chuàng)建應(yīng)用程序M文件的功能,從而實(shí)現(xiàn)GUI的規(guī)劃。
(4)編寫(xiě)用戶GUI組件行為響應(yīng)控制(即回調(diào)函數(shù))代碼
控制GUI組件響應(yīng)用戶的行為是GUI的實(shí)現(xiàn)任務(wù)之一。Matlab的GUIDE可以根據(jù)用戶GUI的版面設(shè)計(jì)過(guò)程直接自動(dòng)生成M文件框架,這樣就簡(jiǎn)化了GUI應(yīng)用程序的創(chuàng)建工作,用戶可以直接用這個(gè)框架編寫(xiě)自己的函數(shù)代碼。
(5)保存并執(zhí)行GUI
激活GUI界面,確保界面符合預(yù)定的要求,設(shè)計(jì)滿意后保存GUI。運(yùn)行通信信號(hào)處理的仿真平臺(tái)的應(yīng)用程序M文件,對(duì)其進(jìn)行反復(fù)的調(diào)試,使界面及用戶空間符合系統(tǒng)預(yù)定的功能。
本設(shè)計(jì)利用Matlab自身提供的工具箱Toolbox中各種通信信號(hào)處理函數(shù)[53對(duì)信號(hào)進(jìn)行處理,然后通過(guò)GUI的組件編程實(shí)現(xiàn)各個(gè)模塊的調(diào)用和鏈接,從而最終實(shí)現(xiàn)基于Matlab的通信信號(hào)處理系統(tǒng)仿真平臺(tái)的設(shè)計(jì)。該仿真平臺(tái)能夠在多種信源及多種調(diào)制方式下進(jìn)行信號(hào)傳輸?shù)姆抡?,還給出各種調(diào)制方式下的基帶信號(hào)、已調(diào)信號(hào)的波形及已調(diào)信號(hào)的頻譜等,最后,對(duì)通過(guò)加性高斯白噪聲信道的通信信號(hào)數(shù)據(jù)流進(jìn)行各種逆向操作處理(解調(diào)、譯碼等)恢復(fù)出源信號(hào)。以數(shù)字通信系統(tǒng)為例,通信信號(hào)處理流程如圖1所示。
圖1 無(wú)線通信系統(tǒng)信虧處理流程圖
通信信號(hào)處理的仿真對(duì)于無(wú)線移動(dòng)通信的研究具有重要意義,具有界面友好、良好擴(kuò)展性的圖形用戶界面可以使用戶更全面深入地理解通信系統(tǒng)的工作原理。本設(shè)計(jì)旨在設(shè)計(jì)一個(gè)通用性強(qiáng)、操作簡(jiǎn)單、功能較全面的通信信號(hào)處理仿真平臺(tái),能夠?qū)崿F(xiàn)針對(duì)不同信號(hào)類型的模擬數(shù)字發(fā)送、接收,及一系列信號(hào)處理,如調(diào)制解調(diào)、編碼譯碼等。本文利用軟件模塊代替?zhèn)鹘y(tǒng)通信信號(hào)處理系統(tǒng)中的硬件結(jié)構(gòu),在很大程度上克服了傳統(tǒng)通信系統(tǒng)硬件結(jié)構(gòu)復(fù)雜、不通用及系統(tǒng)不穩(wěn)定等局限性,對(duì)于更好地實(shí)現(xiàn)無(wú)線通信傳輸具有重要意義。
3.1 無(wú)線通信系統(tǒng)模塊的GUI設(shè)計(jì)與實(shí)現(xiàn)
無(wú)線通信系統(tǒng)的GUI設(shè)計(jì),首先要根據(jù)無(wú)線通信系統(tǒng)的功能需求,將系統(tǒng)分為多個(gè)模塊,確定各個(gè)模塊的功能部署。再次,以每個(gè)模塊為單位,部署各個(gè)模塊下的功能配置,和GUI界面的組成,以完成各個(gè)模塊下的功能GUI,最后利用M文件編程實(shí)現(xiàn)各個(gè)系統(tǒng)模塊之間的調(diào)用和鏈接。
根據(jù)發(fā)送的信號(hào)形式的不同,將通信信號(hào)處理的仿真系統(tǒng)模型分為模擬通信信號(hào)用戶界面子類和數(shù)字通信信號(hào)用戶界面子類,在模擬和數(shù)字通信信號(hào)用戶界面子類下,再分別細(xì)分為發(fā)送端和接收端。另包含信道模型用戶界面。
3.2 通信信號(hào)處理的GUI設(shè)計(jì)與實(shí)現(xiàn)
基于Matlab的無(wú)線通信系統(tǒng)中通信信號(hào)處理功能的實(shí)現(xiàn),是利用Matlab自身提供的工具箱Toolbox中各種通信信號(hào)處理函數(shù)對(duì)信號(hào)進(jìn)行處理[6]。通信信號(hào)處理的GUI設(shè)計(jì)和實(shí)現(xiàn),是基于無(wú)線通信信號(hào)處理系統(tǒng)各個(gè)細(xì)分模塊的功能要求,選取工具箱中適宜的信號(hào)處理函數(shù),根據(jù)函數(shù)的輸人、輸出各種參數(shù)類型要求,在GUI界面中利用按鈕、單選按鈕、編輯文本框和列表框等界面控件來(lái)實(shí)現(xiàn)各種調(diào)制/解調(diào)方式、編碼/解碼方式和信道類型的選擇,和各種輸入?yún)?shù)的設(shè)定。界面既要實(shí)現(xiàn)與用戶交流的友好性,還要更加注重界面的簡(jiǎn)潔性和系統(tǒng)的功能性,將內(nèi)部功能部署和外部實(shí)體界面有機(jī)結(jié)合起來(lái),使無(wú)線通信系統(tǒng)的用戶圖形界面得以實(shí)現(xiàn)。
4 仿真結(jié)果
4.1 模擬通信信號(hào)處理的GUI設(shè)計(jì)與實(shí)現(xiàn)
4.1.1 模擬信號(hào)發(fā)射端
模擬信號(hào)發(fā)送端包括四個(gè)模塊:
(1)信號(hào)輸人模塊。對(duì)于輸入到系統(tǒng)中的基帶信號(hào),既能以工作空間中存在的變量作為輸入,也可以選擇實(shí)時(shí)采集的信號(hào)作為輸人,如語(yǔ)音信號(hào),利用單選按鈕進(jìn)行相互屏蔽選擇。當(dāng)選擇實(shí)時(shí)采集的語(yǔ)音信號(hào)時(shí),點(diǎn)擊“打開(kāi)”按鈕,彈出打開(kāi)文件對(duì)話框,程序設(shè)置對(duì)wav格式的文件進(jìn)行篩選。
(2)調(diào)制信號(hào)參數(shù)設(shè)置,包括載波信號(hào)頻率設(shè)置及常用模擬調(diào)制方式的選擇(如AMDSB—SC,AMDSB—TC,AMSSB,F(xiàn)M,PM等),調(diào)制功能的實(shí)現(xiàn)是利用Matlab的Communication Toolbox工具箱中的模擬調(diào)制函數(shù)來(lái)實(shí)現(xiàn)。
(3)發(fā)送端的控制面板,可以設(shè)定采樣頻率等參數(shù),在M文件程序編寫(xiě)時(shí)利用句柄函數(shù)實(shí)現(xiàn)各項(xiàng)參數(shù)的讀取,利用mat文件實(shí)現(xiàn)不同M文件之間各個(gè)變量的參數(shù)傳遞,并且可以按鈕控制“開(kāi)始通信”、“調(diào)制回放”等功能控件,點(diǎn)擊不同的按鈕控件,通過(guò)調(diào)用不同的回調(diào)函數(shù)來(lái)實(shí)現(xiàn)不同的通信信號(hào)處理的功能:點(diǎn)擊“開(kāi)始通信”按鈕,彈出信道設(shè)置對(duì)話框,選擇傳輸信道類型,設(shè)定信噪比等參數(shù)。對(duì)于瑞利衰減信道,還需設(shè)置最大多普勒頻移等參數(shù);點(diǎn)擊“調(diào)制回放”,界面會(huì)回放調(diào)制的全過(guò)程,通過(guò)動(dòng)態(tài)圖像使用戶更直觀深入地了解調(diào)制處理過(guò)程。
(4)基帶信號(hào)、已調(diào)信號(hào)及其頻譜的圖像顯示,利用axes來(lái)聲明和顯示二維圖像。
以上四個(gè)模塊能夠方便簡(jiǎn)單地修改通信信號(hào)處理過(guò)程中的各項(xiàng)參數(shù),觀察數(shù)據(jù)模板中選定的輸入變量,并對(duì)其進(jìn)行時(shí)域和頻域分析。圖2為語(yǔ)音信號(hào) AMSSB調(diào)制的仿真結(jié)果。點(diǎn)擊“調(diào)制回放”,可得到調(diào)制過(guò)程的動(dòng)畫(huà)回放,使用戶深刻形象地理解調(diào)制過(guò)程,調(diào)制回放圖形如圖3所示。
圖2 語(yǔ)音信號(hào)AMSSB調(diào)制的仿真結(jié)果
4.1.2 模擬信號(hào)接收端
模擬信號(hào)接收端采用三大模塊:
(1)解調(diào)控制面板,有五個(gè)按鈕控件,分別執(zhí)行信號(hào)的接收、解調(diào)、解調(diào)過(guò)程回放、基帶信號(hào)時(shí)域波形對(duì)比和已調(diào)信號(hào)時(shí)域波形對(duì)比。
(2)接收信號(hào)的信息顯示,可以顯示發(fā)送端對(duì)信號(hào)進(jìn)行的各種參數(shù)設(shè)置,利用句柄函數(shù)讀取發(fā)送端保存在mat文件中的變量參數(shù)。
(3)信號(hào)圖像顯示,繼承了發(fā)送端信號(hào)圖像同步顯示和回放的優(yōu)點(diǎn),并且可以通過(guò)點(diǎn)擊信號(hào)對(duì)比按鈕,使用戶直觀地觀察通信系統(tǒng)中基帶信號(hào)和已調(diào)信號(hào)發(fā)送和通過(guò)通信信道失真后的時(shí)域波形對(duì)比。
圖3 語(yǔ)音信號(hào)AMSSB調(diào)制過(guò)程回放圖形
信號(hào)通過(guò)信道后,在模擬信號(hào)接收端進(jìn)行信號(hào)接收和解調(diào)逆向操作,可得解調(diào)信號(hào)的波形。圖4對(duì)應(yīng)的是圖2信號(hào)通過(guò)加性高斯白噪聲信道解調(diào)后得到的仿真結(jié)果。解調(diào)回放波形如圖5所示。
圖4 解調(diào)后得到的仿真結(jié)果
圖5 解調(diào)回放波形
4.2 數(shù)字通信信號(hào)處理的GUI設(shè)計(jì)與實(shí)現(xiàn)
4.2.1 數(shù)字信號(hào)發(fā)射端
數(shù)字信號(hào)發(fā)送端包括四個(gè)模塊:
(1)信號(hào)輸入模塊,同模擬發(fā)送端一樣,輸入到通信系統(tǒng)的模擬信號(hào)既可以是工作空間中存在的變量,也可以是實(shí)時(shí)采集的信號(hào),如語(yǔ)音信號(hào)。
(2)編碼模塊,分為信源編碼和信道編碼。信源編碼,對(duì)于輸入的模擬信號(hào)進(jìn)行采樣、量化、編碼(常用64 Kb/s脈沖調(diào)制PCM)得到數(shù)字基帶信號(hào);信道編碼,包括具有前向糾錯(cuò)功能的(7,4)漢明碼、(15,7‘)循環(huán)碼等,并顯示糾錯(cuò)碼的糾錯(cuò)位數(shù)。信源編碼功能的實(shí)現(xiàn)是利用M文件編輯器編寫(xiě)合適的信源編碼函數(shù);信道編碼功能的實(shí)現(xiàn)是利用Toolbox中提供的信源編碼函數(shù)凹],首先對(duì)信源編碼后的信號(hào)進(jìn)行合適的矩陣轉(zhuǎn)換,以符合信道編碼函數(shù)輸入變量的形式,再進(jìn)行編碼。
(3)數(shù)字信號(hào)傳輸模式的選擇:數(shù)字基帶傳輸、數(shù)字帶通傳輸。選擇適宜的調(diào)制方式(ASK,PSK,QASK,F(xiàn)SK,MSK,QAM等)[1?,并設(shè)置各種調(diào)制參數(shù)。
(4)信號(hào)圖像顯示模塊,對(duì)輸入到通信信號(hào)處理系統(tǒng)中的模擬信號(hào),顯示其時(shí)域、頻域波形,及信源編碼后的PCM碼流波形。
點(diǎn)擊“開(kāi)始通信”按鈕,彈出信道參數(shù)設(shè)置對(duì)話框,進(jìn)行信道選擇和各項(xiàng)參數(shù)設(shè)置。發(fā)送端界面如圖6所示。
圖6 數(shù)字信號(hào)發(fā)送端發(fā)送雙聲道語(yǔ)音信號(hào)
4.2.2 數(shù)字信號(hào)接收端
數(shù)字信號(hào)接收端主要完成對(duì)接收信號(hào)進(jìn)行解調(diào)、譯碼等逆向處理操作,可實(shí)現(xiàn)不同調(diào)制解調(diào)方式下通信信號(hào)處理系統(tǒng)的分析和仿真。同樣采用三大模塊:
(1)解調(diào)控制面板,包括六個(gè)按鈕控件,分別執(zhí)行信號(hào)接收、解調(diào)、信道解碼、信源解碼、時(shí)域圖形對(duì)比、PCM碼流圖形對(duì)比等功能。
(2)接收信號(hào)的信息顯示,可以顯示發(fā)送端對(duì)信號(hào)進(jìn)行的各種參數(shù)設(shè)置。
(3)信號(hào)圖像顯示。圖7對(duì)應(yīng)的是圖6雙聲道語(yǔ)音信號(hào)通過(guò)AwGN后解調(diào)解碼的仿真結(jié)果。
圖7 解調(diào)解碼的仿真結(jié)果
5 結(jié)語(yǔ)
本設(shè)計(jì)基于面向?qū)ο蠹夹g(shù),提出了一種用于通信信號(hào)處理系統(tǒng)的仿真圖形用戶界面設(shè)計(jì)方案與實(shí)現(xiàn)技術(shù),并搭建了相應(yīng)的通信系統(tǒng)仿真平臺(tái)。利用GUI 來(lái)實(shí)現(xiàn)通信信號(hào)處理仿真系統(tǒng),界面簡(jiǎn)單友好,參數(shù)設(shè)置靈活,并且在仿真過(guò)程中能隨時(shí)看到信號(hào)處理的文字和圖形描述,便于更好的實(shí)時(shí)處理和進(jìn)一步的預(yù)測(cè)和分析,使用戶能很快地掌握該平臺(tái)的功能和使用方法,便于學(xué)習(xí)和使用;同時(shí)開(kāi)發(fā)的通信系統(tǒng)仿真平臺(tái)具有良好的開(kāi)放性,可以不斷地完善和擴(kuò)充,便于研究工作的延續(xù)。結(jié)構(gòu)開(kāi)放和全面可編程的軟件無(wú)線電技術(shù),利用軟件模塊代替?zhèn)鹘y(tǒng)通信信號(hào)處理系統(tǒng)中的硬件結(jié)構(gòu),在很大程度上克服了傳統(tǒng)通信系統(tǒng)硬件結(jié)構(gòu)復(fù)雜、不通用及系統(tǒng)不穩(wěn)定等局限性,對(duì)于更好地實(shí)現(xiàn)無(wú)線通信傳輸具有重要意義。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論