摘 要:采用MATLAB語言及SIMULINK仿真環境作為工具,給出了一種基于MATLAB的通信系統仿真平臺GUI設計方案。開發的圖形用戶界面設計簡單、結構一致,具有可視化、開放性、可擴展性、易于學習和維護等優點。
關鍵詞:仿真;可視化;GUI;面向對象
中圖法分類號:TN929.5 文獻標識碼:A 文章編號:1001-3695(2006)10-0248-03
Simulation Platform Design of Communication Systems Based on MATLAB
LI Yuling1,ZHANG Yanhua2
(1.College of Information Engineering, Inner Mongolia University of Techodogy, Huhehaote Inner Mongolia 010062, China;2.College of Electronic Information Control Engineering, Beijing University of Technology, Beijing 100022, China)
Abstract:The paper presents a GUI scheme of communication systems adopted MATLAB and SIMULINK. TheGUI which processes a visual effect is open and easy to expand.
Key words:Simulation;Visual;GUI;ObjectOriented
現代通信系統的發展使通信系統和通信設備日益復雜。為使通信系統在一定條件下具有最佳性能,就必須在設計時了解各種參數對性能的影響以及它們之間復雜的相互依從關系。隨著計算技術的飛速發展,通信系統仿真已成為今天設計和分析通信系統的主要工具。目前用于通信系統仿真的軟件很多,其中Math Works公司開發的MATLAB語言以其強大而優越的功能受到越來越多的青睞。但現有的通信系統仿真研發工作多數是用MATLAB語言編寫的程序,普遍存在著可讀性、可重用性和可擴展性差,人機界面不友好,維護困難等缺點,即便有些通信工程師用在SIMULINK仿真環境下搭建仿真模塊來實現通信系統的分析和仿真,也多數是針對具體問題搭建若干具體的仿真模塊,需要專人解讀和較長時間的學習才能夠掌握和應用,使研究工作缺乏連續性。面對這些問題,本文在面向對象方法學的指導下[1],提出了一種通信系統仿真平臺的GUI設計方案。
1 面向對象的圖形用戶界面
20世紀90年代發展起來的面向對象技術,給計算機仿真技術的發展帶來了新的生機。面向對象方法類似于人們對實際問題自然的思維處理方式,它將客觀世界(即問題領域)看成是由一些相互聯系的事物(即對象)組成。每個對象均有自己的內部狀態和運動規律,不同對象間的相互作用和相互聯系構成了完整的客觀世界,問題的解由對象與對象之間的通信來描述。面向對象方法比較自然準確地描述了客觀世界,從問題領域到分析設計階段的映射是直接和平滑的,因此用它開發出來的系統易于理解和維護[2]。構成面向對象技術實現機制的核心是對象、類、消息、繼承、封裝和多態。面向對象方法所依賴的最基本概念是封裝性和可重用性。封裝性意味著數據和過程這兩個基本的處理元素被不可分割地聯系在一起,存放到對象中,各個對象之間是盡可能獨立無關的;可重用性意味著對象是通用和獨立的,足以構成軟件的插件式兼容單元,對象可作為許多系統的組成部分。
軟件系統的用戶接口有兩類,即命令驅動方式的交互式問答接口和事件驅動方式的圖形用戶接口(GUI)。在20世紀90年代,圖形用戶界面(GUI)有了飛速發展,目前GUI已占據了主要位置,成為各類應用軟件系統界面的主要形式。所謂圖形用戶界面(GUI),是指包含了各種圖形控制對象,如圖形窗口、菜單、對話框以及文本等內容的用戶界面。利用這些用戶界面,用戶可以與計算機之間進行信息交流。圖形用戶界面在一定意義上說是面向對象的[5]。從用戶的觀點看,各種圖形控制對象是非常直觀的對象,用戶可以通過鼠標或者鍵盤與這些對象進行交互;從開發者的角度看,界面中的窗口子系統具有面向對象的性質:①一個窗口可以包含許多窗口,這相當于面向對象技術中繼承的聚集關系;②一個窗口在不同的環境下,其顯示的式樣、窗口的內容則不同,這類似于面向對象中的多態性和動態編聯功能。由于圖形用戶界面有以上這些內在和外在的對象性質,可以很方便地采用面向對象技術開發應用軟件系統中的用戶界面。
本文采用MATLAB的圖形用戶界面設計向導(GUIDE)進行通信系統仿真平臺的設計和實現。MATLAB提供的設計向導(GUIDE)包括控制面板、屬性編輯器、事件過程編輯器、對齊工具和菜單編輯器五個圖形用戶界面編輯工具[4]。利用該向導用戶可以將圖形界面的外觀,包括所有的按鈕以及圖形的位置確定下來,然后用 MATLAB的回調程序編輯器來編寫完成約定任務的函數代碼,從而方便快捷地設計一個圖形用戶界面。對于MATLAB圖形用戶界面,基于面向對象的設計過程一般分為以下三個部分:
(1)對象或類的確定。運用面向對象的方法,根據所設計系統的組成對系統進行對象的提取和類的確定;確認各對象與類之間的繼承或聚合關系,將類和對象按照層次方式組織起來,使系統結構更加清晰,系統模型更有條理,也使編程人員、維護人員清楚對象與類之間的內在聯系。
(2)圖形用戶界面的外觀設計。通過MATLAB GUIDE面板提供的對話框、按鈕、文本框等圖形控制對象和坐標軸對象,設計通信系統仿真平臺圖形用戶界面。在外觀設計時還需考慮通信系統仿真平臺GUI的功能配置,即該圖形用戶界面的操作將引發何種結果。
(3)圖形用戶界面的功能配置。根據外觀設計階段所確定的用戶界面功能需求,針對不同的圖形對象編寫能夠實現該對象功能的回調函數代碼,確保圖形用戶界面完成所有預定的通信系統仿真功能。
2 通信系統仿真的GUI設計
通信系統的仿真對于無線移動通信的研究具有重要意義,一個友好的圖形用戶界面可以使用戶更好地學習和使用通信系統仿真的應用程序。本文旨在設計一個通用的通信系統仿真平臺,要求能夠實現不同輸入信號、不同無線信道模型以及不同信道估計算法情況下通信系統的分析和仿真,并要求該平臺操作簡單方便,具有良好的可擴展特性。基于以上系統分析和系統功能要求,本文根據通信仿真系統的組成對其進行分解,抽象出它們的基本運算單元及組合關系并將其封裝成相互獨立的各個對象;通過類或對象的認定確定類之間(或對象之間)的繼承、概括和特化關系;然后對其屬性、所提供的方法和所需要的方法進行描述,并按照它們之間的關系進行組織,得到類(或對象)的層次結構;最后將類(或對象)用特定的圖形或圖標表示,進而建立相應的無線信道仿真模型庫和信道估計算法模型庫并使之服務于搭建的通信系統仿真平臺。
本文搭建的通信系統仿真平臺由圖形用戶界面(GUI)、系統仿真執行器和模型庫三部分組成。系統仿真執行器的功能是:讀取仿真實例信息、識別組成系統的各個模型、建立模型間的內部連接、讀取模型所需參數、安排模型的訪問次序、實現模型間的數據傳遞、執行仿真。用戶通過GUI訪問執行器[6],執行器采用對話框驅動方式。模型庫是通信系統仿真功能得以實現的基礎。本文利用面向對象技術將通信系統組成實體的屬性和操作封裝成對象存儲在相應的模型庫中,并基于對象技術實現各種信道估計算法的圖形化模塊封裝,進而形成通用的、有良好擴展性的無線信道仿真模型庫和信道估計算法模型庫。在此基礎上對各種通信輸入信號以及前后向操作處理等組成實體進行封裝鏈接最終構建成能進行各種通信系統可視化分析的通信系統仿真平臺。
具體地說,基于MATLAB的通信系統仿真平臺的設計步驟如下:
(1)首先運用面向對象方法,對通信仿真系統進行對象的提取和確定。在面向對象的系統分析(OOA)過程中,從通信仿真系統中抽象出面向對象編程(OOP)的類和對象[7]。根據上文對系統功能的分析,可以確定通信系統仿真平臺圖形用戶界面由輸入信號仿真模型類、信道仿真模型類、信道估計算法類等組成。每個類中可有一組相似的對象。
(2)通過設計GUIDE應用程序的選項來進行GUI組態。該對話框的選項包括窗口重畫行為、命令行訪問、生成文件選擇、生成回調函數原型、使用系統背景顏色配置等選項,通過不選或選中它們,可以實現圖形用戶界面的整體組態設計。
(3)使用界面設計編輯器進行GUI設計。MATLAB界面設計編輯器組件平臺中包含所有能夠在GUI中使用的用戶界面控件,即按鈕、單選按鈕、拴牢按鈕、復選框、編輯框、靜態文本、滾動條、組合框、列表框以及彈出式菜單等。一個GUI中可以存在一個或多個以上的GUI組件,使用時要注意保證各個組件的名稱或屬性有所不同,以便區分。用戶可以用屬性檢查器對各組件的屬性進行設計。
(4)理解應用程序M文件中所使用的編程技術。MATLAB可以通過創建應用程序M文件為GUI控制程序提供一個框架。該框架孕育著一種高效而堅固的編程方法,即所有代碼均包含在應用程序M文件中,這就使得M文件只有一個入口可以初始化GUI或調用相應的回調函數以及GUI中希望使用的任意幫助子程序。對應用程序M文件代碼進行詳細分析,通過了解GUIDE創建應用程序M文件的功能,從而實現GUI規劃。
(5)編寫用戶GUI組件行為響應控制(即回調函數)代碼。控制GUI組件響應用戶的行為是GUI的實現任務之一。MATLAB的GUIDE可以根據用戶GUI的版面設計過程直接自動生成M文件框架,這樣就簡化了GUI應用程序的創建工作,用戶可以直接用這個框架來編寫自己的函數代碼。
(6)保存GUI。激活GUI界面,確保界面符合預定的要求,設計滿意后保存GUI。
(7)執行GUI。運行通信系統仿真平臺的應用程序M文件,對它進行反復調試,使界面及各用戶控件符合系統預定的功能。
3 系統的設計與實現
本文利用面向對象技術將通信系統組成實體的屬性和操作封裝成對象存儲在相應的模型庫中,然后通過GUI的組件編程實現各個模塊的調用和鏈接,從而實現了基于MATLAB的通信系統仿真平臺的設計。所構建的通信系統仿真平臺主界面如圖1所示。該仿真平臺能夠在各種信源、信道條件以及不同信道估計算法情況下進行信號傳輸的估計和仿真,還可以給出估計信道的沖擊響應圖、階躍響應圖、頻率響應圖、零極點分布圖等;最后,對通過所選信道的通信信號數據流進行各種逆項操作處理(重采樣、解碼、解交織、解擾頻、均衡等)恢復出源信號。本文構建的通信系統仿真平臺界面友好、直觀,操作簡單、方便,并且具有良好的可擴展性。
本文設計的通信系統仿真平臺大體分為以下四個部分:
(1)信號輸入類。本文提供兩種信號輸入方式(即兩個輸入用戶界面子類),既能以工作空間中存在的變量作為輸入,也可以選擇保存過的各種典型通信信號作為輸入。輸入信號將直觀地顯示在主界面左下方的數據模板中。圖2所示為輸入信號圖形用戶界面。信號輸入部分還包括Time Plot 和Data Spectra兩個復選框對象,它們能夠對觀察數據模板中選定的輸入變量進行時域和頻域分析。
(2)前向處理操作類。它可以對工作數據集中的輸入數據進行重采樣、編碼、交織、擾頻、信道卷積等前向處理操作。圖3所示為前向處理操作中信道仿真模型類的選擇GUI窗口,以及它下層對實際信道進行沖擊響應建模的選擇對話窗口子類。此外信道仿真模型類還包括加載已有的經典信道模型選擇對話窗口子類。
(3)信道估計算法類。通過彈出式菜單可以激活典型的自適應導引估計算法的GUI子類和盲信道估計算法GUI子類。自適應導引估計GUI包括LMS,RLS和Kalman自適應導引信道估計三個對象選項;盲估計算法GUI包括自適應倒三譜盲估計算法、基于循環倒譜的盲估計算法、利用輸出端循環平穩性的盲估計算法、利用輸入端循環平穩性的盲估計算法等對象選項。圖4所示為盲信道估計算法GUI。信道估計部分還包括對估計信道模型進行分析的Model Out,Model Resides,Zeros and Poles,Frequency Resp,Step Resp和Impulse Resp等復選框對象,激活它們將分別給出估計信道模型的輸出、估計誤差的平方值、模型輸出的自相關、理想輸出與估計輸出的互相關、零極點、頻率響應、階躍響應以及沖擊響應等直觀圖。
(4)逆向處理操作類。它可對輸入Operating Data數據模板中的變量進行重采樣、解碼、解交織、解擾頻、均衡等逆向處理操作。其中均衡是在信道估計基礎上恢復源信號的過程。對應的分析選項類給出均衡后信號和源信號的直觀圖以及估計的誤比特率、誤碼率和眼圖效果。
此外,通信系統仿真平臺還包括To Workspace和Trash兩個文本框對象,用鼠標拖動Data View數據模板和Model View模板中的圖形可以將相應的變量輸入到工作空間或刪除。Data View數據模板中的變量可以復制到觀察變量空間、工作變量空間、盲估計輸入變量空間和后處理變量空間,從而方便地改變輸入信號和待處理信號,實現不同輸入信號、不同無線信道模型以及不同估計算法情況下通信系統的分析和仿真。
以下給出一個基于本通信系統仿真平臺的仿真實例。假設有一正弦波輸入信號,通過傳輸函數為h(Z)=(1-0.183 3Z)(1-0.198 7Z-1)(1+0.656Z-1)的實際信道,并采用LMS自適應導引估計算法進行信道估計,最后進行均衡處理。圖5所示的曲線1為原始輸入信號,曲線2為均衡恢復后的信號。圖6為經過可視化信道建模得到的信道仿真模型的幅頻響應。圖7為采用LMS自適應導引估計算法得到的估計信道的幅頻響應。
4 結束語
面向對象的系統設計方法已經成為軟件設計中常用的方法,但目前大多數是用在系統內核部分的設計中,而用在用戶界面設計,特別是通信系統仿真這種專用的用戶界面設計中還屬少數。本文基于面向對象的技術,提出了一種用于通信系統仿真的圖形用戶界面設計方案與實現技術,并搭建了相應的通信系統仿真平臺。開發的圖形用戶界面遵循界面設計簡單、一致的基本準則,使用戶能很快地掌握該平臺的功能和使用方法,便于學習和使用;同時開發的通信系統仿真平臺具有開放性功能,可以不斷地完善和擴充,便于研究工作的延續。
參考文獻:
[1]Mike Foley,Anjan Bose.ObjectOriented Graphical User Interface for Power Systems[J].IEEE Transactions on Power Systems,1993,8(1).
[2]Qing Liu,et al.ObjectOriented Methods Drive Protective Relay System[J].IEEE Commputer Application in Power,2000,13(1):33-37.
[3]Lin Gui,ZhiYong Zou,et al.A Novel Fast Algorithm of Channel Estimate[J].IEEE Transactions on Consumer Electronics,2001,47(4):838-846.
[4]王默玉,宗偉,等.基于 MATLAB的圖形用戶界面的構造方式與應用[J].現代電力,2002,19(1):76-82.
[5]朱明春,范瑜,等.面向對象技術在電力系統仿真建模中的應用[J].計算機仿真,2002,19(4):109112.
[6]鄭偉,賈沛然,孟云鶴.運載火箭動力學的面向對象仿真框架[J].系統仿真學報,2002,14(8):1010-1011.
[7]席曉平,鄭林華,韓方景.面向對象技術在程控交換仿真訓練系統中的應用[J].計算機仿真,2002,19(3):98100.
作者簡介:
黎玉玲(1974-),女,廣東廉江人,講師,主要研究方向為智能化信息處理;張延華(1960-),男,陜西隴縣人,教授,碩士,主要研究方向為無線通信、視頻傳輸及可視化仿真技術的研究。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文