景文芳
摘要:利用MATLAB GUI工具箱設計和實現(xiàn)現(xiàn)代通信原理課程中相關知識點內(nèi)容的交互式實時動態(tài)演示仿真系統(tǒng),效果生動,界面友好,彌補了傳統(tǒng)實驗平臺的各種缺點,具有開放性、易學和可擴展性等優(yōu)點。
關鍵詞:GUI;仿真;可視化
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)30-0033-02
1引言
現(xiàn)代通信原理課程是通信工程和計算機通信、移動通信技術等電子信息類專業(yè)的專業(yè)課程。通信原理實驗的開設正是對理論課程的深入學習和彌補,將深奧、抽象的理論知識化為簡單易懂的數(shù)據(jù)波形,更易學生的學習和掌握。然而現(xiàn)在所使用的通信原理設備成本高,易損壞,數(shù)據(jù)誤差大,并且設備內(nèi)容的固定使知識點的過時,陳舊,這些給實驗課程帶了許多問題。本文主要基于MATLAB GUI工具箱對現(xiàn)代通信原理實驗系統(tǒng)平臺進行設計和實現(xiàn)。
2 平臺設計方案
本文選取通信原理中4個基礎模塊進行分析和設計,分別為:模擬線性調(diào)制解調(diào)系統(tǒng)、模擬信號數(shù)字化系統(tǒng)、二進制數(shù)字調(diào)制解調(diào)系統(tǒng)、信道編碼和解碼系統(tǒng)。每個模塊又劃分為幾個小模塊。其中,模擬線性調(diào)制解調(diào)系統(tǒng)包括調(diào)幅信號(AM)的調(diào)制解調(diào)、抑制載波雙邊帶信號(DSB)的調(diào)制解調(diào)、單邊帶信號(SSB)的調(diào)制解調(diào)。模擬信號波形編碼包含了抽樣、量化、編碼3個子模塊。二進制數(shù)字調(diào)制解調(diào)系統(tǒng)包括2ASK調(diào)制解調(diào)、2FSK調(diào)制解調(diào)、2PSK調(diào)制解調(diào)子模塊。信道編碼和解碼包含線性分組碼、循環(huán)碼。
3 系統(tǒng)主界面設計
主界面中,用戶點擊菜單按鈕,選擇相應的模塊進入子界面?!敖Y束演示”按鈕可以關閉主界面,結束演示。系統(tǒng)主界面如圖1所示。
主界面中菜單欄是通過菜單編輯器來設計,并設置菜單欄(Menu Bar)和右鍵菜單(Context Menus)的相關屬性,將Menu Bar屬性值為figure,用戶設計的菜單排列在標準菜單之后,如圖2所示。
主界面中添加“結束按鈕”,實現(xiàn)關閉演示系統(tǒng)。先在界面添加按鈕并雙擊修改相應屬性值:Tag:pushbutton1,string:“結束演示”,F(xiàn)ontSize:18,F(xiàn)ontWeight:demi。在編寫對應回調(diào)函數(shù)實現(xiàn)關閉系統(tǒng)功能。步驟為:點擊“結束演示”按鈕右鍵選擇View Callbacks中的Callback菜單選項,打開GUI.fig對應的m文件,此文件是Matlab自動生成的,在代碼function pushbutton1_Callback(hObject, eventdata, handles)下面增加代碼:close(gcbf);quit;完成之后保存運行,便可實現(xiàn)結束演示功能。
在主界面中,本文設置圖片作為歡迎界面,具體步驟如:選擇圖片,調(diào)整圖片大小為483 ×385,單位為像素;在主界面添加Axes坐標軸控件,雙擊屬性將Units設置為pixels(像素),將Position屬性中Width:483,Height:385;編寫對應的M文件,在函數(shù)OpeningFcn下面添加代碼:
backgroundImage = importdata('tupian.jpg');% 將背景圖像載入主界面
axes(handles.axes);
image(backgroundImage);% 將圖片添加到坐標軸控件中,實現(xiàn)背景設置
axis off;% 去掉坐標軸標簽
4 模擬線性調(diào)制解調(diào)演示系統(tǒng)設計思路及步驟
本文主要以模擬線性調(diào)制解調(diào)系統(tǒng)為例介紹其設計思路及步驟。
(1)設計思路
在本模擬線性調(diào)制解調(diào)系統(tǒng)中,為觀察方便特設置調(diào)制信號為正弦波,振幅:1,頻率:1Hz。其具體要求包括第一:能在同一界面完成AM、DSB、SSB的調(diào)制解調(diào)過程。第二:設計界面包括調(diào)制、解調(diào)、參數(shù)設置、繪圖、說明、返回六個區(qū)域。第三:參數(shù)設置區(qū)設置載波頻率、AM信號直流分量2個可變參數(shù),用戶可自由輸入數(shù)值。當選擇“載波信號”按鈕時,能夠在圖軸上畫出相應載波頻率下載波信號時域波形和頻域波形,當選擇“AM信號”按鈕時,能夠在圖軸上畫出給定AM信號直流分量下AM信號時域和頻域的波形。同理選擇“調(diào)制信號”“DSB信號”等按鈕時會分別在圖軸上畫出相應信號時域波形和頻域波形。第四:本次演示過程結束后,按“退出”按鈕就能退出本界面返回到主界面。添加說明部分,對演示系統(tǒng)添加說明,方便學習者清晰理解作者的思路。
(2)設計步驟
步驟一:界面設計
在GUI界面中添加控件。添加按鈕控件,并設置屬性值。按鈕1屬性string:“載波信號”,Tag:“pushbutton1”。同理,設計出其他按鈕。添加2個編輯框控件,將兩個編輯框的string屬性均設為空,同時在各自正左方添加靜態(tài)文本控件進行說明。
在系統(tǒng)界面上添加面板控件Panel,將相關按鈕控件分別放于調(diào)制器、解調(diào)區(qū)、說明和參數(shù)設置區(qū)中,具體設置如圖4所示。將2個編輯框及相應的靜態(tài)文本控件布局在“參數(shù)設置區(qū)”面板中。說明面板控件中添加靜態(tài)文本,string屬性設為“A、調(diào)制信號是振幅為1,載波為1Hz的正弦波;B、解調(diào)時均采用相干解調(diào)的方法;C、兩幅圖橫軸分別為t,f。解調(diào)信號有延遲。D、解調(diào)時,紅色為原信號藍色為解調(diào)信號”模擬線性調(diào)制解調(diào)系統(tǒng)的界面如圖3所示。
步驟二:回調(diào)函數(shù)設計
界面中要實現(xiàn)按鈕的相關動作則需要定義相關回調(diào)函數(shù)(Callback),回調(diào)函數(shù)可以執(zhí)行語句,也可以調(diào)用函數(shù)。在調(diào)制解調(diào)區(qū)回調(diào)函數(shù)設計如下:
調(diào)制解調(diào)區(qū)中的按鈕可以點擊繪制出相應的波形,并顯示在坐標軸中。例如輸入載波頻率和AM信號的直流分量后,點擊“AM信號”按鈕,在axes1中會繪制AM信號時域波形,在axes2中會繪制AM信號頻域波形,要實現(xiàn)該功能就要右鍵單擊“AM信號”,選擇callback菜單項,在function pushbutton2_Callback(hObject, eventdata, handles)下面添加以下代碼:
axes(handles.axes1)
global fc;global A;%fc為載波頻率,A為AM信號的直流分量
T=5; fm=1;dt=0.001;
t=0:dt:T;
mt=cos(2*pi*fm*t);%調(diào)制信號(信源)
s_am=(A+mt).*cos(2*pi*fc*t);%AM信號
plot(t,s_am);plot(t,A+mt,'r--');%畫出AM信號包絡,標示出源信號波形
title('AM調(diào)制信號');
axes(handles.axes2)
[f,sf3]=T2F(t,s_am);%求AM調(diào)制信號的頻譜
psf3=(abs(sf3).^2)/T;%求AM調(diào)制信號的功率譜密度
plot(f,psf3);
axis([-2*fc,2*fc,0,max(psf3)]);title('AM調(diào)制信號的頻譜');
5 模擬線性調(diào)制解調(diào)子系統(tǒng)測試
為確定該系統(tǒng)功能,對該平臺進行相關測試,下面以模擬線性調(diào)制解調(diào)子系統(tǒng)中AM調(diào)制解調(diào)為例進行說明。
在設計的模擬線性調(diào)制解調(diào)系統(tǒng)中,從界面輸入的載波頻率5Hz和AM信號的直流分量3時,觀察模擬線性調(diào)制解調(diào)系統(tǒng)中AM信號和AM解調(diào)信號波形圖,結果如圖4所示。
系統(tǒng)設置中,調(diào)制信號為正弦波,其振幅為1,頻率為1Hz。當載波頻率為5Hz,AM信號的直流分量為3時,根據(jù)模擬線性調(diào)制解調(diào)原理可得AM信號的幅度為4。解調(diào)時采用相干解調(diào)法,AM解調(diào)信號為原調(diào)制信號,振幅為1,解調(diào)信號均有延遲,這是允許的。圖中紅色虛線標注的為原信號,由圖可見,測試結果正確。同理測出其他DSB、SSB波形正確,故設計出的模擬線性調(diào)制解調(diào)系統(tǒng),正確實現(xiàn)了預期功能。
6 總結
根據(jù)測試情況可知,本文所設計的MATLAB的通信原理仿真平臺界面生動,性能穩(wěn)定,數(shù)據(jù)準確,能減少波形誤差,能靈活修改和擴展該系統(tǒng),大大增加了同學們的學習興趣。
參考文獻:
[1] 趙鴻圖,茅艷.通信原理MATLAB仿真教程[M].北京:人民郵電出版社,2010:120-122.
[2] 張德豐.MATLAB通信工程仿真[M].北京:機械工業(yè)出版社,2010:164.
[3] 徐國保,趙黎明等.MATLAB/Simulink實用教程[M].北京:清華大學出版社,2017:386.
【通聯(lián)編輯:光文玲】