【正文】
)設(shè)計GUI是實現(xiàn)人機交互的中介,可以通過它實現(xiàn)數(shù)據(jù)輸入、處理和輸出。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復(fù)雜的應(yīng)用程序(M文件)后再一起進行。這些工具方便用戶使用MATLAB的函數(shù)和文件,其中的許多工具采用的是圖形用戶界面。MATLAB的一個重要特色就是它有一套程序擴展系統(tǒng)和一組稱之為工具箱(Toolboxes)的特殊應(yīng)用子程序。其典型應(yīng)用主要包括以下幾個方面:l 數(shù)學(xué)計算;l 算法開發(fā);l 數(shù)據(jù)采集;l 系統(tǒng)建模和仿真;l 數(shù)據(jù)分析和可視化;l 科學(xué)和工程繪圖;l 應(yīng)用軟件開發(fā)(包括用戶界面)。(3) 界面可視性強,操作簡單方便,結(jié)果直觀易懂、便于分析。將MATLAB的數(shù)字信號處理工具箱、圖形用戶界面(GUI)設(shè)計和數(shù)字信號處理的基礎(chǔ)知識有機地結(jié)合起來,在簡要闡明函數(shù)原理和算法的基礎(chǔ)上,給出了詳細的函數(shù)使用說明,再通過具體的實驗實例,進一步加深了學(xué)生對信號處理理論原理的理解,適合于學(xué)生對知識的學(xué)習(xí)和掌握。眾所周知MATLAB的信號處理工具箱(Signal Processing Toolbox)覆蓋了經(jīng)典信號處理理論的大多數(shù)內(nèi)容,是一個非常優(yōu)秀的算法研究和輔助設(shè)計工具。本實驗系統(tǒng)可以完成基本信號的產(chǎn)生、卷積、傅里葉變換、Z變換、濾波器的設(shè)計等實驗。MATLAB是一種交互式、面向?qū)ο蟮某绦蛟O(shè)計語言,其結(jié)構(gòu)完整、具有優(yōu)良的移植性。目 錄中文摘要 I英文摘要 II1 緒論 1 問題提出及研究意義 1 設(shè)計的基本內(nèi)容 12 系統(tǒng)設(shè)計工具簡介 2 MATLAB概述 2 圖形用戶界面(GUI)設(shè)計 3 創(chuàng)建GUI的步驟 3 GUI編程 7 GUI的設(shè)計流程和設(shè)計原則 7 控件的使用 83 系統(tǒng)總體設(shè)計思路 10 系統(tǒng)總體設(shè)計的步驟 10 系統(tǒng)總體設(shè)計的結(jié)構(gòu) 104 系統(tǒng)圖形用戶界面設(shè)計 12 圖形用戶界面外觀設(shè)計 12 控件對象 12 控件屬性的設(shè)置 13 窗口屬性的設(shè)置 13 菜單的設(shè)計 15 圖形用戶界面控件編程 15 輸入函數(shù) 15 輸出函數(shù) 16 回調(diào)函數(shù) 175 系統(tǒng)用戶界面的實現(xiàn) 17 引導(dǎo)模塊 17 回調(diào)函數(shù)的編寫 17 界面功能 18 18 主界面模塊 19 回調(diào)函數(shù)的編寫 19 界面功能 20 基本信號的產(chǎn)生模塊 20 回調(diào)函數(shù)編寫的基本原理 20 界面功能 22 界面使用演示 23 序列基本計算模塊 25 回調(diào)函數(shù)編寫的基本原理 25 界面功能 26 界面使用演示 26 數(shù)據(jù)采集模塊 27 回調(diào)函數(shù)編寫的基本原理 27 界面功能 28 界面使用演示 28 卷積模塊 29 回調(diào)函數(shù)編寫的基本原理 29 界面功能 30 界面使用演示 30 傅里葉變換模塊 32 回調(diào)函數(shù)編寫的基本原理 32 界面功能 33 界面使用演示 33 Z變換模塊 35 回調(diào)函數(shù)編寫的基本原理 35 界面功能 36 界面使用演示 37 濾波器設(shè)計模塊 40 回調(diào)函數(shù)編寫的基本原理 40 界面功能 42 界面使用演示 43結(jié)束語 49致 謝 50參考文獻 51附 錄 51基于圖形交互式的信號處理CAI軟件的設(shè)計開發(fā)摘要《信號與系統(tǒng)》是電子信息工程專業(yè)的一門基礎(chǔ)課程,由于它內(nèi)容繁多、概念抽象、設(shè)計復(fù)雜等,使得學(xué)生在學(xué)習(xí)時常常感到厭煩,難以理解和掌握。更重要的是它在數(shù)字信號處理方面具有強大的功能。關(guān)鍵字 交互式/圖形用戶界面/信號處理BASED ON GRAPH INTERACTIVE SIGNAL PROCESSING CAI SOFTWARE DESIGN DEVELOPMENTABSTRACTSignal and system is a basic curriculum in the Electric Information specialty. Because the various content, abstract concept, plex design and so on. The students frequently feel dull with difficulty understanding and grasping. In order to make the students have a good basic and enhance the study interest of students, put forward developing an experimental software based on Signal Processing. The Signal Processing software includes sixteen experiments, each experiment can be pleted in the experimental interface, enter the corresponding experimental parameter, then can obtain the output of corresponding graph and data, which can make the students have better understanding in concept and principle.MATLAB is an interactive mode and object language. It has plete construction and transplant well. especially it have strong power in the Digital Signal Processing. So the design adopts the design function of the graphic user interface in MATLAB to design each experiment. The experimental system runs successfully under the environment, only need to alter the acquiescing in path to the path of the Signal Processing software. The experimental system can plete the experiments of Basic Signal Generation, Convolution, Fourier Transformation, Z Transformation, Filter Design and so on.KEY WORDS Interactive Mode ,Graphic User Interface ,Signal Processing 1 緒論 問題提出及研究意義隨著計算機技術(shù)和信息科學(xué)的飛速發(fā)展,數(shù)字信號處理已經(jīng)發(fā)展成為一門獨立的學(xué)科并成為信息科學(xué)的重要組成部分,在語音處理、圖像處理、雷達、航空航天、地質(zhì)勘探、通信、生物醫(yī)學(xué)工程等眾多領(lǐng)域得到廣泛的應(yīng)用。但是依靠MATLAB工具箱仍然不能直接地完成對信號的分析處理,它需要經(jīng)過一系列的程序編寫后方能進行。 設(shè)計的基本內(nèi)容本設(shè)計為基于信號處理的實驗軟件系統(tǒng)的開發(fā),是利用MATLAB的可視化圖形用戶界面(GUI)工具和信號處理知識,設(shè)計實驗系統(tǒng)的圖形用戶界面的總體結(jié)構(gòu),能夠用于完成相關(guān)的信號處理實驗。(4) 系統(tǒng)易于擴展新的實驗,以不斷豐富信號處理系統(tǒng)的內(nèi)容。MATLAB是一個交互式系統(tǒng)(寫程序與執(zhí)行命令同步),其基本的數(shù)據(jù)元素是沒有維數(shù)限制的陣列。工具箱是MATLAB函數(shù)的子程序庫,每一個工具箱都是為某一類學(xué)科專業(yè)和應(yīng)用而定制的,主要包括信號處理、控制系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、模糊邏輯、小波分析和系統(tǒng)仿真等方面的應(yīng)用。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和用于瀏覽幫助、工作空間、文件的瀏覽器。圖形處理:用MATLAB可以將向量和矩陣用圖形表現(xiàn)出來,并且可以對圖形進行標注和打印。MATLAB提供了一個專門的GUI設(shè)計工具——GUIDE。可以用GUIDE完成下面的任務(wù)。 啟動GUIDE在命令窗口中鍵入guide或通過文件→新建→GUI,啟動GUIDE顯示如圖21所示圖21 “GUIDE Quick Start”對話框打開“GUIDE Quick Start”對話框,利用GUIDE模板創(chuàng)建新的GUI,或者打開已經(jīng)存在的GUI。圖22顯示了空白GUI模板的輸出編輯器。圖23 在輸出編輯器中拖放控件 菜單編輯器菜單系統(tǒng)的設(shè)置可以通過菜單編輯器來完成。 “Label”欄用來填寫菜單項的名稱,如果在前面加“amp。在輸出編輯器外顯示功能GUI。這兩個文件與GUI顯示和編程任務(wù)相對應(yīng)。這個GUI的M文件會初始化GUI,并在GUI顯示屏幕上顯示以前包含的代碼來完成任務(wù)。其主要內(nèi)容包括:(1) 創(chuàng)建GUI的M文件;(2) 打開GUI的M文件;(3) 在回調(diào)間共享數(shù)據(jù);通過將數(shù)據(jù)保存到MATLAB handles結(jié)構(gòu)中,可以實現(xiàn)回調(diào)間的數(shù)據(jù)共享。(4) 在初始化函數(shù)中添加代碼;(5) 在回調(diào)函數(shù)中添加代碼; 這些回調(diào)函數(shù)有的是針對窗口而言的,還有的是針對具體控件而言的,學(xué)會了回調(diào)函數(shù)的編寫將有助于高效編寫MATLAB圖形用戶界面程序 GUI的設(shè)計流程和設(shè)計原則 GUI的設(shè)計流程GUI開發(fā)設(shè)計的一般流程圖如圖27所示:開 始任務(wù)定義草圖設(shè)計設(shè)計檢測編寫代碼代碼檢測結(jié)束圖27 開發(fā)設(shè)計流程圖從圖中可以看出,整個開發(fā)過程分為兩部分:設(shè)計階段和實現(xiàn)階段。這種反復(fù)過程是正常開發(fā)無法避免的。簡單地說,一個好的界面應(yīng)遵循的標準可以用九個字來概括:簡潔性、一致性、熟悉性。熟悉性意味著系統(tǒng)設(shè)計時盡量保持與該類流行界面相似,比如VC的對話框風(fēng)格,視圖的風(fēng)格、MATLAB的Figure風(fēng)格。各控件的具體功能如表28所示。enable屬性:表示該控件有效,如果“on”則表示有效,如果“off”則表示無效。3 系統(tǒng)總體設(shè)計思路 系統(tǒng)總體設(shè)計的步驟在本系統(tǒng)的設(shè)計中,界面布局設(shè)計采用自底向上的設(shè)計方法,即先設(shè)計各個實驗子界面再設(shè)計主界面,最后設(shè)計引導(dǎo)界面。系統(tǒng)的總體設(shè)計結(jié)構(gòu)圖,如圖31所示??偣灿兴膫€模板,本實驗系統(tǒng)的設(shè)計中使用默認模板(Blank GUI)。下面分別介紹各個控件在本實驗系統(tǒng)設(shè)計中的具體用途。可編輯文本框用于進行數(shù)據(jù)的輸入及輸出,可進行單行或多行輸入及輸出,并且可以對數(shù)據(jù)進行修改。彈出式菜單用于用戶從中選擇互相不同的實驗選項進行實驗,當(dāng)用戶選中其中的一個表項并單擊時,該表項就會出現(xiàn)在信息顯示框中,就可以執(zhí)行相應(yīng)的操作并得出相應(yīng)的結(jié)果??蚣転榱俗層脩艚缑婵雌饋韺哟畏置?,容易被用戶理解,把作用相關(guān)的一組控件用框架框起來。 控件屬性的設(shè)置本實驗系統(tǒng)設(shè)計中的主要修改以下幾種控件的屬性: FroegroundColor 設(shè)置控件的字體顏色; Callback 定義控件對象的控制動作,設(shè)計時設(shè)它為%automatic,來使系統(tǒng)自動產(chǎn)生回調(diào)函數(shù),以便函數(shù)的編寫;Color屬性該屬性是用于設(shè)置界面窗口的背景顏色,采用RGB(紅,綠、藍)配色原理。本設(shè)計系統(tǒng)中,引導(dǎo)界面、主界面和說明界面中,此項均設(shè)置為‘none’,其它實驗子界面此項設(shè)為‘figure’。Units屬性該屬性是用于設(shè)置圖形窗口的坐標單位。本設(shè)計過程中直接使用了Menu Editor來設(shè)計菜單,具體設(shè)計方法在介紹菜單編輯器時已經(jīng)詳細介紹過,在本設(shè)計中菜單的功能如下。圖42 主界面的菜單在實驗系統(tǒng)子界面中創(chuàng)建的菜單項都是相同的,如圖43所示的“基本連續(xù)信號的產(chǎn)生”界面的菜單項圖43 子界面的菜單 圖形用戶界面控件編程圖形用戶界面的實現(xiàn)任務(wù)之一就是控制這些控件如何響應(yīng)用戶的行為。(1) 語法:該函數(shù)有如下幾種表達形式) 獲取H的句柄對象的屬性值,由PropertyName所指定屬性的當(dāng)前值。eval函數(shù)的應(yīng)用eval函數(shù)是用于執(zhí)行一個包含表達式的字符串。, mat2str(yk,2)),可在可編輯文本框中輸出相應(yīng)的字符串由mat2str(yk,2)轉(zhuǎn)化來的字符串(mat2str(yk,2)是將矩陣yk轉(zhuǎn)化為字符串)。(1) 語法:該函數(shù)有如下幾種表達形式PropertyName39。PropertyName39。(2) 舉例:,則執(zhí)行set(,39。),即可在可編輯文本框中輸出表達式2**5。);xlabel(‘n’);ylabel(39。具體的編寫在介紹各界面功能時再詳細介紹。引導(dǎo)模塊界面如圖51所示。系統(tǒng)說明界面是用于簡單介紹實驗系統(tǒng)及各個實驗子界面的內(nèi)容及使用方法。圖53 信號處理實驗系統(tǒng)主界面 界面功能主界面是用于進入信號處理各個實驗子界面的,它使用菜單及其一些按鈕控件來實現(xiàn),將各個實驗子界面有機地聯(lián)系到一起,使界面美觀,易于操作。基本連續(xù)信號的實現(xiàn)原理和MATLAB表達式如下:單位階躍函數(shù)在t=處躍升可寫為u。MATLAB實現(xiàn):x3=exp((u+j*w)*t)。%n1為序列的區(qū)間,ns為序列的起點% ne為序列的終點% n5為序列的區(qū)間% n7為序列的區(qū)間% n8為序列的區(qū)間。(2)基本離散信號的產(chǎn)生界面:可以產(chǎn)生單位脈沖序列、單位階躍序列、矩形序列、實指數(shù)序列、正弦序列、余弦序列