馬崇霄 王楓 楊英 薛艷茹 張云



摘?要:本文介紹了圖形用戶界面(Graphical User Interface,簡稱GUI)的相關知識。利用MATLAB的用戶圖形界面GUI設計一款仿真實驗軟件,采用可視化的界面展示信號的運算和變換及系統的設計,使學生直觀地了解和掌握信號與系統的理論知識。
關鍵詞:信號與系統;GUI;實驗軟件
中圖分類號:G434?文獻標識碼:A
Abstract:This paper introduces some knowledge of the Graphical User Interface(GUI for short).We need to take advantage of the MATLAB GUI to design a simulation experiment software.The use of visual interface display the calculation and transformation of signal and system design,so that students intuitively understand and grasp the theoretical knowledge of signals and systems.
Key words:Signals and Systems;GUI;experiment software
《信號與系統》是電子電氣類專業的一門專業基礎課程。以往的信號實驗使用硬件實驗箱,由于實驗箱故障經常不能得到正確的圖形和數據。本文在MATLAB基礎上,利用GUI的優勢搭建實驗軟件的圖形用戶界面,給讀者提供一個輔助信號與系統學習的仿真平臺[1]。用戶僅通過點擊鼠標,即可實現對應模塊內的功能,簡單直觀使學生建立起學習《信號與系統》課程的興趣。
1 軟件平臺設計
信號與系統實驗繁多、復雜,界面不僅要達到友好、美化的設計要求,還需要便于用戶操作與理解。設計界面時采用一個主界面和幾個子界面的布局,主界面起引導作用使用戶對該實驗軟件的功能有大致了解,每個子界面是一個具體的功能模塊,能夠獨立地展示其中一個實驗或功能[2]。
1.1 軟件整體框圖
本軟件主要有六大功能模塊,分別為信號的基本運算、基本信號的產生、卷積、傅里葉變換和濾波器設計,用戶進入開始界面后可以通過點擊不同的按鍵進入到不同功能的子模塊中。
1.2 軟件設計步驟
軟件設計的主要流程步驟如下:
(1)運用MATLAB的圖形用戶界面(GUI)的設計方法,設計整個仿真系統的開始引導界面、實驗的主界面及實現信號與系統課程中某個實驗功能的子界面[3]。
(2)設置各個子界面的各個控件對象的屬性值。
(3)編寫各個子界面的所有控件對象的回調函數,來實現控件的相應控制功能。
(4)編寫主界面的回調函數,將各個實驗子界面布置在信號與系統的實驗仿真軟件的主界面中,即通過主界面可以進入其中的某一子界面進行仿真實驗[4]。
2 具體模塊設計
模塊設計時,按照實現的實驗類別和個數的要求來規劃模塊,各個模塊之間可以互相切換[5]。
2.1 開始模塊
該模塊簡潔明了的介紹了該軟件的所有功能,具體設計步驟如下:
(1)在MATLAB命令窗口輸入guide,按回車鍵,啟動GUI工具箱以后,用鼠標單擊左側所需要的控件,然后畫在布局區域。
(2)對各控件進行屬性設置:
①雙擊工作區或控件會彈出圖形窗和相應控件的“屬性編輯框(Property Inspector)”。
在圖形窗的屬性編輯框中,設置如下屬性值:
Name?platform1 %圖形窗的名稱
Tag?figuer1 %生成handles.figure1域存放圖形窗句柄
②對靜態文本的屬性編輯框進行屬性值設置。
③以卷積為例,對按鍵的屬性編輯框中,設置如下屬性值:
Fontsize?12.0?%字體大小
HorizontalAlignment Center%文字中心對齊
String卷積?%在按鍵上顯示尺度變換
Tag?pushbutton3%生成handles.pushbutton2域存放該鍵句柄
2.2 信號的基本運算模塊
信號的基本運算主要包括加、減、平移、反轉和尺度變換等。具體設計步驟如下:
(1)在MATLAB的命令窗口輸入guide,按回車鍵,啟動GUI工具箱后,用鼠標單擊左側所需要的控件,畫在布局區域中。界面主要包含靜態文本框、按鍵、坐標軸和動態文本框等控件。
(2)對各控件進行屬性設置:
進行各控件屬性設置后,得到如下界面:
(3)界面的激活與回調函數的生成。點擊工具欄上的保存圖標后,會彈出一個詢問對話框,按提示對以上的設計進行保存以后,就會引出2個界面:名字為jibenjisuan的(待激活的)圖形用戶界面和展示名為jibenjisuan的(待填寫回調指令的)M函數文件的文件編輯器界面。同時,在當前目錄或給定目錄上,由MATLAB軟件會自動生成了2個文件,即jibenjisuan.fig和jibenjisuan.m。
在jibenjisuan.m文件中,填寫回調指令:
對返回首頁按鈕的回調函數的編寫:
function pushbutton6_Callback(hObject,eventdata,handles)
hGUI=gcf;
set(hGUI,'visible','off');
platform1
對保存圖像按鈕和清空按鈕的回調函數的編寫與返回首頁按鈕的類同。
對尺度變換按鈕的回調函數的編寫:
function pushbutton2_Callback(hObject,eventdata,handles)
a=str2double(get(handles.edit2,'string'));
t=-3:0.001:3;
ft1=tripuls(a*t,4,0.5);
plot(t,ft1);
grid on;
title('尺度變換')
其余控件的編寫不再詳述。
經過以上幾個步驟生成的圖形用戶界面已經可以使用了,只要jibenjisuan.m和jibenjisuan.fig在當前目錄或在MATLAB搜索路徑上,那么在指令窗口運行jibenjisuan就能使用該界面,實現功能如下:
其余模塊的設置與信號的基本運算模塊類同。
3 結論
針對信號與系統課程內容的特點,利用MATLAB的GUI搭建了一個簡單的仿真平臺,使復雜抽象的理論知識變得直觀可見,增強學生的學習興趣和借助計算機解決實際問題的能力。
參考文獻:
[1]唐亮,吳揚,宮麗娜.基于GUI的信號與系統實驗仿真平臺設計[J].電腦知識與技術,2020,16(10):264-265.
[2]王志鵬,謝渝閩.基于MATLAB的信號與系統課程綜合演示平臺[J].南陽師范學院學報,2020,19(5):71-74.
[3]高燕.基于MATLAB的信號與系統實驗平臺開發研究[J].許昌學院學報,2017,36(5):71-74.
[4]劉榮華,于紅光.信號與系統仿真平臺的設計[J].電子設計工程,2017,25(9):167-170.
[5]王煥友,譚喬來.基于“信號與系統”的MATLAB GUI實驗仿真平臺設計[J].電腦與信息技術,2019,27(3):1-3.
基金項目:2019—2020年度河北省應用技術大學研究會項目(項目編號:JY2019060)
作者簡介:馬崇霄(1979—?),女,碩士,講師,主要研究方向:系統仿真、網絡路由協議。