基于MATLAB的用戶圖形界面設計(共19頁)_第1頁
基于MATLAB的用戶圖形界面設計(共19頁)_第2頁
基于MATLAB的用戶圖形界面設計(共19頁)_第3頁
基于MATLAB的用戶圖形界面設計(共19頁)_第4頁
基于MATLAB的用戶圖形界面設計(共19頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 基于(jy)MATLAB的圖形用戶界面設計摘 要本文(bnwn)概述了利用Matlab軟件提供(tgng)的圖形用戶界面創(chuàng)建具有人機交互、界面友好的圖形用戶界面。本文采用Matlab的圖形用戶界面設計功能, 設計出了各個實驗界面。在該軟件中, 實現(xiàn)了對某虛擬信號處理實驗箱的操作平臺界面的設計。 Matlab語言是一種廣泛應用于工程計算及數(shù)值分析領域的新型高級語言,Matlab功能強大、簡單易學、編程效率高,深受廣大科技工作者的喜愛。特別是Matlab還具有信號分析工具箱,不需具備很強的編程能力,就可以很方便地進行信號分析、處理和設計。通過數(shù)字信號處理課程的理論知識的綜合運用。從實踐上初步實現(xiàn)

2、對數(shù)字信號的處理。關鍵字 信號處理 MATLAB 圖形用戶界面目 錄 TOC o 1-3 h u HYPERLINK l _Toc23994 1 緒論(xln) 1 緒論(xln)1.1 概述(i sh)隨著計算機的普及應用以及科技(kj)的發(fā)達,現(xiàn)代社會是信息的社會,對信息的研究變得非常重要,而對信號波形的模擬可以方便研究人員研究。以前的信號模擬是用硬件,對儀器和實驗室的要求較高,不便于廣泛應用,而且信號處理具有內(nèi)容繁多、概念抽象、設計復雜等特點,讓人難以理解和掌握。硬件模擬信號波形對設備要求較高,有時候受儀器或操作不對等因素的影響將無法正確直觀的看到波形,參數(shù)改變時不能立即看到波形變化。而

3、用軟件的形式對信號波形進行仿真有著界面可視性強,操作簡單方便;便于數(shù)據(jù)修改,文件保存,實驗效率高,實驗內(nèi)容豐富,結果直觀易懂,便于分析;而且系統(tǒng)容易擴展新的實驗項目。1.2 本文的主要工作本文主要是針對以Matlab為軟件平臺的信號系統(tǒng)實驗平臺的設計,用Matlab語言編程開發(fā)一個適合小型的信號系統(tǒng)實驗平臺,具體的工作主要有: 1)在歡迎界面,具有進入功能模塊,返回模塊和退出模塊。2)在功能模塊中,包括參數(shù)設置區(qū)、圖形顯示區(qū)和數(shù)據(jù)顯示區(qū)等組成單元,可以完成對指定功能的設置,顯示和實現(xiàn)。3)設置三個功能模塊,實現(xiàn)一定的信號和系統(tǒng)的設計或分析。1.3 研究意義Matlab作為編程語言和可視化工具

4、, 它的界面演示框如同通用示波器 , 顯示了信號分析與系統(tǒng)設計的動態(tài)仿真過程 , 給人以直觀的感受。它可以改變信號、模塊、仿真子系統(tǒng)等的參數(shù) , 并觀察信號與系統(tǒng)的相應變化. 在實驗過程中 , 我們對所學的書本知識會有感性的認識和直觀的驗證 , 加深對“信號與系統(tǒng)”原理的理解。本課題能避開硬件系統(tǒng)的不足,而且有很多的庫函數(shù)可以在實驗時直接調(diào)用,避免了用硬件做實驗的局限性??梢愿奖愕淖鲂盘栂到y(tǒng)實驗,還能夠鍛煉一個人在面對一個具體的項目時,遇到問題,分析問題,解決問題的能力;獲得獨立策劃、實施課題,并按照既定計劃進行開發(fā)的經(jīng)驗,以及查找相關文獻的能力。而且對系統(tǒng)規(guī)劃有了初步的認識。為以后研發(fā)工作

5、打下堅實的基礎,積累寶貴的經(jīng)驗。2 系統(tǒng)分析與方案(fng n)選取2.1 引言(ynyn)Matlab語言稱為第四代編程語言,程序簡潔、可讀性很強而且(r qi)調(diào)試十分容易,自1984年由美國MathWorks公司推向市場以來,歷經(jīng)十幾年的發(fā)展,現(xiàn)已成為國際公認的優(yōu)秀科技應用軟件,是數(shù)字信號處理方面得天獨厚優(yōu)勢圖形開發(fā)工具.用簡單,可視化的仿真模擬圖形給大家演示部分基本波的傳輸特性,以及在信道中的傳輸特性。使他們直觀,感性地了解和掌握通信系統(tǒng)的概念、傳輸性能等。2.2 系統(tǒng)主要目標及功能本課題開發(fā)目標是利用Matlab軟件開發(fā)一套集可視化圖形與動態(tài)仿真為一體的軟件。表現(xiàn)出信號與系統(tǒng)課程中部

6、分信號的產(chǎn)生、圖形,卷積等,實現(xiàn)一定的信號和系統(tǒng)的設計和分析,可以直觀、感性地了解和掌握信號系統(tǒng)的概念、基本特征等,深化對通信概念的理解。本系統(tǒng)主要功能包括基本序列計算、基本信號產(chǎn)生、卷積設計等。簡單基礎地涵蓋了信號與系統(tǒng)部分主要章節(jié), 用可視化的仿真模擬圖形演示部分基本信號的傳輸波形和調(diào)制變換,部分交互式界面可直接輸入合適的值使大家更直觀、感性地了解和掌握信號系統(tǒng)的概念、傳輸性能、基本特征等,讓課程的學習和實踐相結合。界面上的文字說明幫助大家了解本圖形的特性或功能。2.3 模擬信號實驗的軟件工具選擇我們在學習信號與系統(tǒng)和數(shù)字信號處理課程時,做實驗的時候用的是Matlab軟件來實現(xiàn)信號波形的模

7、擬以及處理,可以比較直觀準確的看到波形,對Matlab軟件也有了初步的認識,也可以用它編寫一些比較簡單的程序來。在信號波形模擬的領域中,我們只接觸過Matlab軟件,所以在編寫模擬信號波形這個模塊中我們選擇Matlab軟件。2.4 設計方案選擇在本系統(tǒng)的設計中, 界面布局(bj)設計采用自頂向下的設計方法, 即先設計引導界面和主界面, 再設計各個實驗子界面。界面設計完成后, 只是一些靜態(tài)的畫面而已, 沒有什么內(nèi)涵, 還不能用于實驗操作, 要想達到實驗目的, 必須借助于函數(shù)調(diào)用。在設計中, 各個回調(diào)函數(shù)的編寫順序則是采用自底向上的設計方法, 即先編制各個實驗子界面的回調(diào)函數(shù), 再編寫主界面和引導

8、界面的回調(diào)函數(shù)。3 系統(tǒng)軟件(x tn run jin)平臺的設計3.1 引言(ynyn)信號系統(tǒng)實驗繁多、復雜,許多實驗還需要輸入?yún)?shù),若將系統(tǒng)設計成一個界面,使得系統(tǒng)繁重、擁擠,不能夠實現(xiàn)友好、美化的界面的設計要求。因此,在設計界面的時候,采用一個主界面和若干子界面,每個子界面是一個模塊,實現(xiàn)一個實驗或功能,并通過主界面調(diào)用子界面的設計方法。3.2 系統(tǒng)整體框圖本實驗系統(tǒng)整體結構設計由兩部分組成: 界面模塊設計和菜單模塊設計。其中, 界面模塊總共包括四個模塊: 開始引導模塊、序列基本計算模塊、基本信號的產(chǎn)生模塊、卷積模塊。在菜單設計時, 在實驗子界面中除使用系統(tǒng)約定的菜單條外, 還增加了幾

9、個控制背景和退出實驗的菜單。系統(tǒng)的整體結構如圖3-1 所示。開始引導界面 開始界面 基本序列計算 基本信號產(chǎn)生 卷 積圖3-1 系統(tǒng)整體(zhngt)架構3.3 系統(tǒng)設計(shj)步驟設計(shj)的具體步驟如下:1)運用 Matlab的圖形用戶界面(GUI)設計方法, 設計整個實驗系統(tǒng)的開始引導界面、實驗主界面及其實現(xiàn)信號處理課程中具體實驗的各個子界面。2)分別編寫各個子界面的各個控件對象的回調(diào)函數(shù), 來實現(xiàn)控件相應控制功能, 達到直接通過界面上各個控件就可以控制數(shù)據(jù)的輸入輸出, 并可以方便地對實驗結果的數(shù)據(jù)及其圖形進行讀取和分析的目的。3)編寫主界面的回調(diào)函數(shù), 將各個實驗子界面整合在信號

10、處理系統(tǒng)實驗主界面中, 即通過主界面就可以進入任何一個實驗子界面進行實驗。4)編寫開始引導界面的回調(diào)函數(shù), 實現(xiàn)從引導界面直接進入主界面。3.4 模塊具體設計系統(tǒng)歡迎模塊。系統(tǒng)歡迎界面如圖3-2所示。 圖3-2 系統(tǒng)歡迎界面2)基本序列表示模塊 序列基本(jbn)表示模塊界面如圖3-3所示:圖3-3 序列基本(jbn)表示模塊由圖3-3可以看出在這個模塊里包括了單位脈沖序列,單位階躍序列,指數(shù)序列一共三個序列,可以看出這個系統(tǒng)(xtng)的主要模塊,簡潔明了,對每個模塊都有詳細的說明,在做實驗之前可以參考說明以便能順利的進行實驗,在主界面上選擇任何一個實驗都可以切換到它的子界面。3)基本信號產(chǎn)

11、生模塊基本信號產(chǎn)生模塊的窗體創(chuàng)建啟動matlabR2012B,在命令窗口輸入guide,打開GUI制作窗口,在窗體上有界面制作工具。在pushbutton下單擊右鍵callback,打開callback function,調(diào)用MATLAB內(nèi)部提供的函數(shù):sin函數(shù), exp函數(shù), pulstran函數(shù) ,chip函數(shù)在GUI制作窗口,axes是用來顯示圖形,當單擊pushbutton,運行結果,會在axes中顯示出來。簡單函數(shù)基本性質的模塊,通過人機交互方式進行設計,在信號1和信號2中輸入幅值,頻率,初相,移位不同的值,對其信號相加,信號相乘,信號移位使信號在axes窗口中,顯示出來。仿真的波

12、形有正弦波,指數(shù)函數(shù),抽樣函數(shù),矩形脈沖函數(shù)。Popupmenu 函數(shù)中用 switch val1case 1 來調(diào)用不同的波形,)設置句柄get(handles.popupmenu). 用strdouble(get(handles.edit,string)來輸入測試數(shù)據(jù),達到直觀仿真模擬圖. 基本信號的產(chǎn)生(chnshng)模塊如圖3-4所示:圖3-4 基本(jbn)信號產(chǎn)生模塊4)卷積模塊(m kui):卷積模塊如圖3-5所示:圖3-5 卷積模塊3.5 基本序列(xli)表示a.單位(dnwi)階躍序列單位階躍序列(xli)的公式: (式3-1)類似于連續(xù)時間系統(tǒng)中的單位階躍信號 EQ ,

13、但應注意在點發(fā)生跳變,往往不予定義(或定義為),而在=0點明確規(guī)定為。單位階躍序列的關鍵程序:function pushbutton2_Callback(hObject, eventdata, handles)t=str2num(get(handles.edit2,String); k=t-3:t+7; fk=(k-t)=0; stem(k,fk)title(單位階躍序列)b.單位脈沖序列: 單位脈沖序列的公式: (式3-2) 單位脈沖序列關鍵程序:function pushbutton2_Callback(hObject, eventdata, handles)t=str2num(get(h

14、andles.edit1,String); k=t-3:t+7; fk=(k-t)=0; stem(k,fk)title(單位沖激序列)c.指數(shù)序列指數(shù)(zhsh)序列公式: (式3-3)當1時序列(xli)是發(fā)散的, 0序列都取正值, 0,信號將隨著時間而增長,若a0,信號則隨時間衰減。常數(shù)K表示指數(shù)信號在t=0點的初始值。指數(shù)信號的關鍵程序:function pushbutton1_Callback(hObject, eventdata, handles)clcA=str2num(get(handles.edit6,String);a=str2num(get(handles.edit4,S

15、tring);t=0:.001:10;ft=A*exp(a*t);plot(t,ft),gridtitle(A*exp(a*t)c.抽樣信號: 抽樣信號公式: (n為整數(shù)) (式3-7)式中X(nT)為t=nT時X(t)的值。均勻抽樣還可以是用連續(xù)時間函數(shù)X(t)對一沖激序列進行的 HYPERLINK /wiki/脈沖幅度調(diào)制 脈沖幅度調(diào)制。設沖激序列P(t)為一串單位沖激,而相鄰沖激的時間間隔為T,則 (式3-8) 于是 (式3-9) 抽樣信號 XS(t)是用X(t)與單位沖激序列P(t)相乘的結果。抽樣(chu yn)信號的關鍵程序:function pushbutton7_Callbac

16、k(hObject, eventdata, handles)clct=-3*pi:pi/100:3*pi;ft=sinc(t/pi);axis(str2num(get(handles.edit9,String)-10,str2num(get(handles.edit9,String)+10,-0.5,1.2)plot(t,ft),gridtitle(sinc(t/pi)d.矩陣(j zhn)脈沖:矩陣脈沖的關鍵(gunjin)程序:function pushbutton8_Callback(hObject, eventdata, handles)clct=0:0.001:4;T=1;ft=re

17、ctpuls(t-2*str2num(get(handles.edit10,String),2*str2num(get(handles.edit12,String);plot(t,ft),gridtitle(rectpuls(t-2*T,2*T)3.7 卷積對于任意兩個信號和,兩者做卷積運算定義為 (式3-10)做一變量代換不難證明 (式3-11)式中是兩函數(shù)作卷積運算的簡寫符號,也可以寫成。這里的積分取和,這是由于對和的作用時間范圍沒有加以限制。實際由于系統(tǒng)的因果性或激勵信號存在時間的局限性,其積分限會有變化,這一點借助卷積的圖形解釋可以看得很清楚??梢哉f卷積積分中積分限的確定是非常關鍵的。

18、卷積的關鍵(gunjin)程序: function pushbutton2_Callback(hObject, eventdata, handles)clct=str2num(get(handles.edit1,String);t11=0;t12=1;t21=0;t22=2;t1=t11:0.001:t12;ft1=2*rectpuls(t1-0.5,1);t2=t21:0.001:t22;ft2=t2;t3=t11+t21:0.001:t12+t22;ft3=conv(ft1,ft2);ft3=t*ft3*0.001;plot(t3,ft3)title(f1(t)*f2(t)4 信號(xnh

19、o)仿真演示4.1 基本序列表示仿真(fn zhn)演示例1:單位(dnwi)脈沖序列如圖4-1:圖4-1單位脈沖序列4.2 基本信號產(chǎn)生仿真演示例2:正弦信號如圖4-2:圖4-2正弦信號例3:抽樣(chu yn)信號如圖4-3:圖4-3抽樣(chu yn)信號4.3卷積模塊仿真(fn zhn)演示例3:卷積模塊如圖4-3:圖4-3卷積模塊本章主要表現(xiàn)了信號仿真演示過程,可以直觀形象的表現(xiàn)出本軟件所具備的具體功能。結束語這次課程設計歷時一個星期,可以說是苦多于甜,但是可以學的到很多很多的東西,同時不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次設計,進一步加深了

20、對數(shù)字信號處理的了解,讓我對它有了更加濃厚的興趣。但是在編寫程序(chngx)時,也遇到了不少問題,特別是程序語法,總是有錯誤,在細心的檢查下,終于找出了錯誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能提高自己的實際動手能力和獨立思考的能力。同時在設計的過程中發(fā)現(xiàn)了自己的不足之處(b z zh ch),對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。 總的來說,這次課程設計還是比較成功的,在設計中遇到了很多問題,最后在老師的辛勤的指導下,終于游逆而解,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到(d do)了理論與實際相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識,同時,對未來有了更多的信心。最后,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝。致 謝本論文(lnwn)是在我們(w men)導師(dosh)郭淑婷的悉心指導下完成的。給我們留下了很深的印象。在整個作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論