關(guān)于MATLAB通信仿真在《通信原理》課程教學(xué)中的應(yīng)用
李玲
[摘要]本文介紹了MATLAB軟件中通信工具箱的兩種仿真方法,并重點闡述了在MATLAB/SIMULINK環(huán)境下對通信系統(tǒng)進行可視化動態(tài)仿真的一般步驟和實現(xiàn)方法。最后通過教學(xué)范例和實驗結(jié)果說明,MATLAB通信系統(tǒng)仿真模型能夠反映通信系統(tǒng)的動態(tài)工作情況,具有較強的演示性、可視性和實用性,是《通信原理》課程教學(xué)中強有力的輔助工具。 [關(guān)鍵詞]MATLAB SIMULINK 仿真 通信系統(tǒng) 一、引言 《通信原理》是通信及相關(guān)專業(yè)的專業(yè)基礎(chǔ)課,是許多后續(xù)專業(yè)課程的基礎(chǔ)。其中很多基本概念、重要原理將貫穿整個通信專業(yè)的各門課程之中。然而,對于剛剛接觸通信專業(yè)的學(xué)生來說,類似于調(diào)制、解調(diào)、抽樣、量化、復(fù)用等概念及原理往往過于抽象,傳統(tǒng)的教學(xué)方法很難高效的使學(xué)生從根本上理解這些概念、原理及過程。將MATLAB通信系統(tǒng)的計算機仿真演示應(yīng)用到《通信原理》的教學(xué)中,能夠較好的解決這個問題。采用MATLAB對基本原理和方法進行計算機仿真演示,能夠使復(fù)雜的計算簡單化,抽象的理論具體化、直觀化,從而提高學(xué)習(xí)效率,增強學(xué)習(xí)興趣,在一定程度還上培養(yǎng)學(xué)生進行通信系統(tǒng)工程設(shè)計的能力。 MATLAB最初是Mathworks公司推出的一種數(shù)學(xué)應(yīng)用軟件,經(jīng)過多年的發(fā)展,開發(fā)了包括通信系統(tǒng)在內(nèi)的多個工具箱,從而成為目前科學(xué)研究和工程應(yīng)用最流行的軟件包之一。MATLAB的動態(tài)仿真軟件SIMLINK提供了可視化的系統(tǒng)仿真環(huán)境和多個模型庫,在模型庫中提供了豐富的功能模塊,采用模塊化設(shè)計,可以方便、靈活地建立通用性較強的通信仿真模型。 MATLAB通信工具箱是一套用于通信領(lǐng)域進行理論研究、系統(tǒng)開發(fā)、分析設(shè)計和仿真的專業(yè)化工具軟件包,主要由兩部分組成:通信系統(tǒng)功能函數(shù)庫和SIMULINK通信系統(tǒng)仿真模型庫。下面分別從兩個方面介紹MATLAB通信系統(tǒng)仿真方法。 二、使用通信系統(tǒng)函數(shù)庫實現(xiàn)通信系統(tǒng)仿真 MATLAB通信系統(tǒng)功能函數(shù)庫[1]由70多個函數(shù)組成,每個函數(shù)又有多種選擇參數(shù),函數(shù)功能覆蓋了現(xiàn)代通信系統(tǒng)的各個方面。這些函數(shù)包括:信號源產(chǎn)生函數(shù)、信源編碼/解碼函數(shù)、調(diào)制/解調(diào)函數(shù)、濾波器函數(shù)、TDMA、FDMA、CDMA函數(shù)等。 現(xiàn)舉例說明使用MATLAB函數(shù)庫實現(xiàn)仿真。 例1、計算平均信息量[2] (1)分析: 消息x中所包含的信息量I是消息發(fā)生的概率P(x)的函數(shù),即: (1) 信息量I的單位與對數(shù)的底數(shù)有關(guān): a=2 單位為比特(bit,簡寫為b) a=e 單位為奈特(nat,簡寫為n) a=10 單位為笛特(Det) 由n個符號組成的信息源的平均信息量H(x)為: (2) 公式(1)、(2)本身較簡單,學(xué)生要記憶也不困難,但是由于牽涉到對數(shù)運算,而且對數(shù)的底數(shù)是可以變化的,因此增加了計算的難度。在此我們可以建立一個MATLAB的M文件,把復(fù)雜的計算過程交給計算機來完成。 (2)參考代碼: 建立一個M文件保存為message.m function r=message(x,n) r=0; for i=1:n r=r-x(i)*log(x(i))/log(2); end disp('此離散信源的平均信息量為'); (3)運行MATLAB的M文件求解平均信息量 當需要求解一組符號的平均信息量時,只需要在MATLAB的命令窗口輸入該組符號出現(xiàn)的概率和符號個數(shù)就可方便快速的得出平均信息量。 例如,由4個符號組成的信息源,相應(yīng)的概率為 ,求平均信息量,只需要在MATLAB的命令窗口輸入: message([ ],4) 然后敲回車即可在窗口中顯示出計算結(jié)果: “此離散信源的平均信息量為1.75” 在需要的地方靈活使用該M文件可以求出不同信號源的平均信息量,當需要求解的符號數(shù)特別多、數(shù)字比較復(fù)雜時更能體現(xiàn)其優(yōu)越性。 三、基于MATLAB/SIMULINK的可視化動態(tài)仿真 SIMULINK是MATLAB提供的圖形界面仿真工具,由一系列模型庫組成,包括Sources(信源模塊)、Sinks(顯示模塊)、Linear(線性環(huán)節(jié))、Connections(連接)、Blocksets&Toolboxes(其他環(huán)節(jié))等。 在這里,整個通信系統(tǒng)的流程被慨括為:信號的產(chǎn)生與輸出、編碼與解碼、調(diào)制與解調(diào) 多址接入方式、濾波器以及傳輸介質(zhì)的模型。在每個設(shè)計模塊中還包含有大量的子模塊,它們基本上覆蓋了目前通信系統(tǒng)中所應(yīng)用到的各種模塊型。根據(jù)所要仿真的通信系統(tǒng)的數(shù)學(xué)模型(或數(shù)學(xué)表達式),用戶只要從上述各個模型庫中找出所需的模塊,用鼠標器拖到模型窗口中組合在一起,并設(shè)定好各個模塊參數(shù),就可方便地進行動態(tài)仿真。從輸出模塊可實時看到仿真結(jié)果,如時域波形圖、頻譜圖等。每次仿真結(jié)束后還可以更改各參數(shù),以便觀察仿真結(jié)果的變化情況。另外,對SIMULINK中沒有的模塊,可根據(jù)自己掌握的技術(shù)生成所需的子模塊,并且可以封裝和自定義模塊庫,以便隨時調(diào)用。 1、可視化動態(tài)仿真的步驟[3] 1)建立數(shù)學(xué)模型:根據(jù)通信系統(tǒng)的基本原理,將整個系統(tǒng)簡化,確定總的系統(tǒng)功能,并將各部分功能模塊化,找出各部分之間的關(guān)系,畫出系統(tǒng)流程框圖模型。 2)仿真系統(tǒng):根據(jù)建立的模型,從SIMULINK 通信模型庫中,將所需要的單元功能模塊拷貝到Untitled窗口,按系統(tǒng)流程框圖模型連接,組建要仿真的通信系統(tǒng)模型。 3)設(shè)置、調(diào)整參數(shù):參數(shù)設(shè)置包括運行系統(tǒng)參數(shù)設(shè)置(如系統(tǒng)運行時間、采樣速率等)和功能模塊運行參數(shù)設(shè)置(正弦信號的頻率、幅度、初相;低通濾波器的截至頻率、通帶增益、阻帶衰減等)。 4)設(shè)置觀察窗口,分析仿真數(shù)據(jù)和波形:在系統(tǒng)模型的關(guān)鍵點處設(shè)置觀測輸出模塊,用于觀測仿真系統(tǒng)的運行情況,以便及時調(diào)整參數(shù),分析結(jié)果。 5)生成新的模塊:對于Communication Toolbox中沒有的功能模塊,可以根據(jù)已掌握的技術(shù)生成所需新的子模塊,例如由C或Fortran編寫MEX 文件,編譯成DLL后利用SIMULINK提供的封裝(Masking)功能封裝或自定義模塊庫,以便隨時調(diào)用。 2、可視化動態(tài)仿真實現(xiàn)范例 例2、抽樣定理的仿真實現(xiàn) 抽樣定理的數(shù)學(xué)模型如圖1所示,可建立相應(yīng)SIMULINK仿真模型如圖2所示,在設(shè)定的參數(shù)下對正弦信號仿真結(jié)果如圖3所示。 號源參數(shù)設(shè)置: Sine wave參數(shù)設(shè)置 Pulse Generator參數(shù)設(shè)置: 改變信號源的參數(shù)設(shè)置可以得到鋸齒波的抽樣波形如圖4。
通過圖3和圖4的觀察,我們可以很方便的看到抽樣前后的波形變化,同時可以通過參數(shù)的設(shè)置看到失真的抽樣波形,使同學(xué)們對于抽樣定理的內(nèi)容和適用條件有了更為直觀的認識。 四、總結(jié) 將MATLAB/SIMULINK可視化動態(tài)仿真應(yīng)用到通信原理課程的教學(xué)中,使一些抽象的概念和原理可視化,有助于同學(xué)們理解和接受,既提高了教學(xué)質(zhì)量和效率,又可為學(xué)生提供良好的通信系統(tǒng)開發(fā)、設(shè)計、模擬、調(diào)試和分析平臺,鍛煉其分析和解決問題的能力。 [