黃根嶺,張清淼,周利紅
(鄭州鐵路職業(yè)技術(shù)學院,河南 鄭州 450052)
通信原理課程的研究對象是通信系統(tǒng)。傳統(tǒng)的教學是搭建一個實際的硬件系統(tǒng),利用各種儀器儀表進行觀測分析,參與者要花費很長的時間和一定的資金用于系統(tǒng)的構(gòu)建,而且系統(tǒng)參數(shù)調(diào)整麻煩,隨著通信系統(tǒng)的日益復雜,其弊端尤為明顯。Math-Works 公司開發(fā)的MATLAB 是一種用于數(shù)值計算、可視化及編程的高級語言和交互式環(huán)境。借助其語言、工具和內(nèi)置數(shù)學函數(shù),可以很方便地進行數(shù)據(jù)分析、算法開發(fā)、建模和應用程序創(chuàng)建。Simulink 仿真工具包是MATLAB 的一個附加組件,是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的面向框圖的仿真軟件,它支持連續(xù)、離散及二者混合的線性和非線性系統(tǒng),也支持具有多種采樣頻率的系統(tǒng)[1-2]。MATLAB 應用廣泛,其中包括信號處理和通信系統(tǒng)、圖像和視頻處理、控制系統(tǒng)、測試和測量、計算金融學及計算生物學等眾多應用領(lǐng)域。在《通信原理》教學中,引入MATLAB 軟件可以很方便地對通信系統(tǒng)進行建模、仿真,仿真結(jié)果可近乎“實時”地通過可視化模塊,如示波器、頻譜儀以及數(shù)據(jù)輸入輸出模塊等直觀地顯示出來,既有助于對抽象概念和理論的理解,又加深了對通信系統(tǒng)的物理概念和運行過程的直觀理解。同時,在系統(tǒng)結(jié)構(gòu)的觀測和數(shù)據(jù)的存儲方面也比傳統(tǒng)教學有很大優(yōu)勢[3-4]。
在通信原理課程教學中,主要使用兩種仿真方式,一種是通過編制M 腳本文件進行仿真,另一種是通過MATLAB 自帶的Simulink 組件進行仿真。常規(guī)雙邊帶幅度調(diào)制是通信原理課程中最基礎(chǔ)的一種調(diào)制技術(shù),且在無線電廣播系統(tǒng)中占有主要地位。它有兩個顯著特點:一是在時域中已調(diào)波信號的包絡(luò)與調(diào)制信號波形呈線性關(guān)系,二是在頻域中已調(diào)波信號的頻譜是調(diào)制信號頻譜的線性位移。因此,將常規(guī)雙邊帶幅度調(diào)制作為仿真案例具有很強的代表性。下面結(jié)合常規(guī)雙邊帶幅度調(diào)制的原理分別簡述其仿真流程。
作為一種編程語言,MATLAB 是演算紙式(便簽式)的科學工程計算語言,它的語法非常貼近人的思維方式。用MATLAB 語言編寫程序,與人進行科學計算的思路和筆算時表達方式完全一樣,猶如在一張演算紙上排列書寫公式,運算、求解問題十分方便[5-6]。因此,MATLAB 語言易寫易讀,易于在科技人員之間交流。利用MATLAB 語言編寫M 腳本文件進行仿真的步驟如下。
(1)建立數(shù)學模型
根據(jù)對仿真系統(tǒng)分析的結(jié)果,確定系統(tǒng)中的參數(shù)、變量及其相互之間的關(guān)系,并以數(shù)學形式將這些關(guān)系描述出來,就是系統(tǒng)的數(shù)學模型。數(shù)學建模是系統(tǒng)仿真中最關(guān)鍵的一步,必須盡可能準確地反映系統(tǒng)的真實特性,并且不能過于復雜[7]。
常規(guī)雙邊帶幅度調(diào)制是用調(diào)制信號去控制高頻正弦載波的幅度,使其按調(diào)制信號的規(guī)律變化的過程。其數(shù)學模型為
其中,m(t)為調(diào)制信號,A0為直流分量,cosωct為載波信號(選用單頻的正弦信號),SAM(t)為已調(diào)波信號。
(2)編制M 腳本文件
選擇MATLAB 菜單欄的“File”項中的“New”(或選擇工具欄的“New”)即可新建一個M 腳本文件,根據(jù)常規(guī)雙邊帶幅度調(diào)制原理,編寫MATLAB 腳本程序如下(簡單起見,假設(shè)調(diào)制信號也為正弦信號,且頻率為1Hz,載波信號的頻率為10Hz)。
(3)保存文件,運行仿真,觀察結(jié)果
M 腳本文件保存時,擴展名要選擇“.m”格式。然后點擊運行(Run)按鈕即可得到仿真數(shù)據(jù)或波形,具體波形如圖1 和圖2 所示,其中圖1 為調(diào)制信號和已調(diào)波信號的波形圖,圖2 為調(diào)制信號和已調(diào)波信號的頻譜圖。
圖1 調(diào)制信號與已調(diào)波信號的波形圖
圖2 調(diào)制信號與已調(diào)波信號的頻譜圖
Simulink 提供了一個交互式的圖形化環(huán)境,可對各種時變系統(tǒng)進行仿真,具有很多應用于不同領(lǐng)域的模塊集。在通信原理課程教學中,常用的模塊集有:基本模塊集(Simulink)、通信模塊集(Communications Blockset)、信號處理模塊集(Signal Processing Blockset)等。利用Simulink 動態(tài)仿真的步驟如下。
(1)畫出系統(tǒng)的框圖
系統(tǒng)框圖是數(shù)學模型的另一種描述形式,可由數(shù)學模型直接對應變換得到,也可以通過將所要仿真的系統(tǒng)按照功能劃分成一個個小的模塊,然后用一個個小的模塊來搭建系統(tǒng)框圖的方法實現(xiàn)。
常規(guī)雙邊帶幅度調(diào)制在電路功能實現(xiàn)上,需要調(diào)制信號疊加直流分量后再與載波信號相乘,因此,系統(tǒng)可通過加法器和乘法器兩個模塊來實現(xiàn)。常規(guī)雙邊帶幅度調(diào)制的系統(tǒng)框圖如圖3 所示。
圖3 常規(guī)雙邊帶幅度調(diào)制的系統(tǒng)框圖
(2)啟動Simulink,搭建系統(tǒng)仿真模型
由于Simulink 是基于MATLAB 環(huán)境之上的高性能的系統(tǒng)及仿真平臺,因此,啟動Simulink 之前必須首先運行MATLAB,然后才能啟動Simulink 并建立系統(tǒng)的仿真模型。MATLAB 成功啟動后,在窗口(Command Window)的工作區(qū)中,鍵入simulink 命令,回車即可啟動Simulink,或點擊MATLAB 窗體上的Simulink 的快捷鍵也可啟動Simulink。
Simulink 啟動后,選擇Simulink 菜單欄的“File”項中的“New”(或選擇工具欄的“New”)即可新建一個模型文件。然后按照圖3 所示的系統(tǒng)框圖要求,從Simulink 提供的不同模塊集中依次選取信源[調(diào)制信號(Base Wave)和載波信號(Carry Wave)]、常數(shù)(Constant,作為直流分量)、加法器(Sum)、乘法器(Product)、零階保持器(Zero-Order Hold)、示波器(Scope)、頻譜儀(Spectrum Scope)等模塊。具體方法是:選中需要的模塊,按住鼠標左鍵并將其拖動到新建的模型文件中,釋放鼠標即可。最后就是模塊間的連接,具體方法是:連接模塊時將光標指向起始模塊的輸出端口,按住鼠標左鍵并拖動到目標模塊的輸入端口,松開鼠標即可,完成后在連接處出現(xiàn)一個箭頭,表示信號的流向。經(jīng)過上述步驟,系統(tǒng)的仿真模型搭建完畢(如圖4 所示)。
圖4 常規(guī)雙邊帶幅度調(diào)制系統(tǒng)的仿真模型
(3)設(shè)置、調(diào)整參數(shù)
仿真模型中的模塊都有自己的參數(shù),為了正確仿真和分析,必須正確設(shè)置模塊的參數(shù),具體方法是:雙擊需要設(shè)置參數(shù)的模塊,在彈出的模塊對話框中正確設(shè)置參數(shù)即可。本文主要涉及設(shè)置信源的幅度(Amplitude)、幅值偏移值(Bias)、頻率(Frequency)和采樣時間(Sample time);示波器的通道數(shù)(Number of axes);頻譜儀的Buffer size(緩存長度)、Buffer overlap(緩存交疊)、FFT length(FFT 長度)、Number of spectral averages(譜平均數(shù))和頻率顯示范圍(Frequency range 或Spectrum type,與MATLAB 的版本有關(guān))。這里需要注意兩點,一個是頻譜儀的頻率顯示范圍,頻率顯示范圍有兩個選項[-Fs/2...Fs/2]或[0...Fs/2],若希望所研究的譜線內(nèi)容出現(xiàn)在頻譜儀顯示窗的中間,需選擇[0...Fs/2],此時需將輸入信號的采樣頻率設(shè)為期望的頻率顯示窗最大值的2 倍。本文中的采樣頻率為100 Hz(即采樣時間為0.01 s),因此顯示窗口的最大值為50 Hz,頻譜儀顯示的中點頻率為25 Hz(如圖6、7 所示)。另一個是零階采樣保持器,Simulink 提供了兩個可以減少模型中非法速率轉(zhuǎn)換的模塊:Unit Delay 模塊和Zero-OrderHold 模塊。對于從慢速率到快速率的轉(zhuǎn)換,可以在慢輸出端口和快輸入端口插入一個單位延時Unit Delay 模塊。而對于快速率到慢速率的轉(zhuǎn)換,則可以插入一個零階采樣保持器Zero-OrderHold。由于本案例中前后兩個模塊的采樣時間一致,故選擇了零階采樣保持器,并將采樣時間的參數(shù)設(shè)置為“-1”(表示繼承前面的采樣時間)。
(4)保存文件,運行仿真,觀察結(jié)果
模型文件保存時,擴展名要選擇“.mdl”格式,然后點擊開始仿真(Start simulation),即可彈出調(diào)制信號頻譜圖(如圖6)和已調(diào)波信號的頻譜圖(如圖7),雙擊示波器即可看到調(diào)制信號與已調(diào)波信號的波形圖(如圖5)。
圖5 調(diào)制信號與已調(diào)波信號的波形圖
圖6 調(diào)制信號的頻譜圖
圖7 已調(diào)波信號的頻譜圖
從上文的仿真范例可以看出:
(1)從仿真結(jié)果看,兩種仿真方式的結(jié)果均與理論分析一致。從時域看(圖1 和圖5),兩種仿真方式的調(diào)制信號與已調(diào)波信號的包絡(luò)均具有嚴格的線性關(guān)系;從頻域看(圖2、圖6 和圖7),通過調(diào)制,兩種仿真方式的調(diào)制信號的頻譜均被線性搬移到載波頻率的兩邊,并且兩種仿真方式的仿真結(jié)果均用直觀的圖形來顯示,加深了參與者對常規(guī)雙邊帶幅度調(diào)制原理的理解。
(2)從仿真的特點看,編寫M 腳本文件的仿真方式比較簡單且靈活性好,只要掌握Matlab 語言的語法,就可以編輯一些簡單的程序,實現(xiàn)一些仿真功能。但這種方法不直觀,用戶不了解系統(tǒng)的體系構(gòu)成,復雜系統(tǒng)的仿真對編程水平有較高的要求。采用Simulink 可以很方便地對系統(tǒng)進行可視化建模、仿真分析,使得仿真系統(tǒng)建模與工程中的方框圖統(tǒng)一起來,讓用戶把精力從編程轉(zhuǎn)向模型的構(gòu)造,為用戶省去了許多重復的代碼編寫工作。但這種方法的不足之處在于人機交互不太理想,因為很多模塊都是事先做好的,用戶只能設(shè)置參數(shù),而不能創(chuàng)造性地增刪其中的內(nèi)容[8-9]。
(3)從仿真的本質(zhì)看,M 腳本文件仿真是基于數(shù)據(jù)流的仿真,即在仿真過程中,MATLAB 函數(shù)是按照數(shù)據(jù)流的順序依次執(zhí)行的,也就是先經(jīng)過一個運算階,然后再經(jīng)過下一個運算階,速度比較慢;Simulink 動態(tài)仿真是基于時間流的仿真,即在仿真過程中,所有的模塊在每一個時間步長上同時執(zhí)行,仿真速度比用M 腳本文件仿真要快很多[10]。
(1)在通信原理課程教學中,引入MATLAB 軟件對通信系統(tǒng)進行建模、仿真和分析,有助于學生對抽象概念和枯燥理論的理解,加深了對通信系統(tǒng)的架構(gòu)和運行過程的認識,激發(fā)了學生的學習興趣和創(chuàng)新思維,彌補了硬件設(shè)備投資不足、更新速度跟不上的缺陷。
(2)很多通信類課程(比如信號與系統(tǒng)、數(shù)字信號處理、圖像處理等)所研究的問題大都可歸結(jié)為“信號通過系統(tǒng)的問題”,本文介紹的兩種仿真方式對這些課程的教學改革具有借鑒意義。
[1]肖珂,張月清,賈宇琛,等.MATLAB 在《通信原理》課程實驗中的應用[J].河北農(nóng)業(yè)大學學報(農(nóng)林教育版),2009,11(2):243-246.
[2]胡榮林.Matlab 在通信類課程教學改革中的應用研究[J].中國科技信息,2008(24):207-209.
[3]程鈴,徐冬冬.Matlab 仿真在通信原理教學中的應用[J].實驗室研究與探索,2010,29(2):117-119.
[4]李衛(wèi)中.MATLAB 仿真在通信原理教學中的應用[J].孝感學院學報,2010,30(6):122-123.
[5]蘇紅艷,壽翔.MATLAB 仿真在通信專業(yè)教學中的應用[J].中小企業(yè)管理與科技,2009(12):201-202.
[6]王俊年,吳勁峰.基于MATLAB/SIMULINK 的通信原理可視化動態(tài)仿真實驗[J].甘肅農(nóng)業(yè)大學學報,2003,38(2):243-247.