基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)的設計-連續(xù)信號分析模塊_第1頁
基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)的設計-連續(xù)信號分析模塊_第2頁
基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)的設計-連續(xù)信號分析模塊_第3頁
基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)的設計-連續(xù)信號分析模塊_第4頁
基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)的設計-連續(xù)信號分析模塊_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1/55基于MATLAB的信號與系統(tǒng)實驗仿真系統(tǒng)設計-連續(xù)信號分析模塊[摘要]本文利用MATLAB可視化編程語言開發(fā)了一套“信號與系統(tǒng)”實驗仿真系統(tǒng),對實驗系統(tǒng)的開發(fā)背景、開發(fā)平臺軟件作了簡要介紹。該系統(tǒng)界面友好,操作簡單,參數(shù)設置方便,輸出結果準確直觀,為“信號與系統(tǒng)”實驗提供了一種新的實現(xiàn)手段。軟件虛擬實驗必將成為該課程實驗教學的發(fā)展方向。信號與系統(tǒng)是電子信息類專業(yè)的專業(yè)基礎課程,由于信號與系統(tǒng)是一門很抽象,理論和實踐結合較緊密的學科,因此實驗教學在課程教學中占有十分重要的地位,本文基于MATLAB設計并實現(xiàn)了一套信號與系統(tǒng)試驗系統(tǒng)。引言《信號與系統(tǒng)》課程是一門實用性較強、涉及面較廣的專業(yè)基礎課,是高等學校電子信息、計算機技術、自動控制等專業(yè)的一門重要的必修基礎課,在許多學校都被列為重點課程,具有十分重要的地位和作用。該課程是將學生從電路分析的知識領域引入信號處理與傳輸領域的關鍵性課程,對后續(xù)專業(yè)課起著承上啟下的作用。該課程的基本方法和理論大量應用于計算機信息處理的各個領域,特別是在通信、數(shù)字語音處理、數(shù)字圖像處理、數(shù)字信號分析領域的應用更為廣泛。因此,讓學生掌握對信號與系統(tǒng)進行分析的基本方法和理論,無論是今后專業(yè)課的教學,還是學生畢業(yè)后從事專業(yè)工作的能力,都具有重要的意義。在目前的教學工作中,《信號與系統(tǒng)》的教學主要是考慮課堂上重點講授基本理論知識要點,但是《信號與系統(tǒng)》是一門以數(shù)學推導為核心的理論性很強的學科,其概念比較抽象,數(shù)學計算又比較繁瑣并且較少開設實驗。長期以來《信號與系統(tǒng)》一直采用“教師——黑板——學生”的單一教學模式,學生僅依靠做課后習題來鞏固和理解教學內容,對課程中大量的應用性較強的內容不能實際動手設計、調試、分析,使學生的課后實踐受到相當大的限制,嚴重影響和制約了教學效果。為了幫助學生理解與掌握課程中的基本概念、基本原理、基本分析方法以及培養(yǎng)學生綜合應用所學知識解決實際問題的能力,特引入功能強大的Matlab仿真語言,在此基礎上設計了基于Matlab軟件平臺仿真環(huán)境的課程實驗系統(tǒng)。該系統(tǒng)對于幫助學生完成數(shù)值計算、信號與系統(tǒng)分析的可視化建模及仿真調試起到了積極的推動作用?!靶盘柵c系統(tǒng)”課程的特點是概念抽象,數(shù)學運算量大、公式和理論推導相對較多,因此“信號與系統(tǒng)”一直處于教難、學更難的境況中,這就更加需要通過實驗來幫助學生理解這些抽象概念。由于信號與系統(tǒng)實驗所需的設備價格較高,實驗難度較大,許多學校都因不具備實驗條件而放棄了實驗課程的開設,極大地影響了教學效果。近年來,隨著計算機硬件性能的不斷提升和計算機軟件技術的飛速發(fā)展,利用計算機進行實驗系統(tǒng)仿真成為一種趨勢。用軟件來對實驗系統(tǒng)進行仿真有以下幾個優(yōu)點:(1)實驗成本低,且實驗器材的選擇余地大;(2)易于實現(xiàn)較為復雜的實驗過程;(3)實驗所需時間較少,實驗效率高;(4)便于記錄和分析實驗過程和實驗結果?!娟P鍵詞]關鍵詞:數(shù)字信號處理;教學實驗系統(tǒng);MATLAB;GUIAbstractWiththecontinuousdevelopmentofinformationtechnology,digitalsignalprocessinghasbecomeaveryimportantsubjectandtechnologyfield。Ithaswidelyapplicatedinthecommunication,audioandimage,remotesensing,biologicalengineering.Thecorecontentofdigitalsignalprocessing,mainlyisthesignaltransmissionandprocessing,identificationandsoon.Whenthesignalsystemisacarrierofinformation,informationprocessing.Therefore,inordertobetterresearchsignalandsystemofbasictheoryandmethod,helpstudentsbetterunderstandandmasterofdigitalsignalprocessingtheoryknowledge,intheexperimentalprocessbyMATLAB,theplatformforcomputer-aideddesign.MATLABalgorithmisusedtodevelop,datavisualization,dataanalysisandnumericalcalculationoftheadvancedtechnologyandtheinteractivelanguageenvironment.Asapowerfulscientificcomputingplatforms,italmosttosatisfyallcomputingrequirements.Asforsimulationandprogramdesignandvisualizationofgeneralitydemandhasincreased,emphaticallyimprovetheMATLABgraphicaluserinterface,greatlysatisfytheneedsoftheusers.GUIDEofmatlabisaquickdevelopmentenviroment.Agraphicsuserinterfaceforateachingexperimentsoftwareofdigitalsignalprocesshasbeendesignedandimplemented.IntegratingDSPexperiments,anewcomputeraidedinstructionmodeisderivedthroughtthissystemwhichcombingmatlabandmultimedia.Beingactiveandthisinterfaceisfriendlyandopen,thissystemisbeneficialforthestudentstocomprehendDSPtheoryandimprovestheteachingeffectandefficiency.Keywords:digitalsignalprocess;teachingexperiment;Matlab;graphicsuserinterface目錄引言1.1概述1.2基于matlab的信號與系統(tǒng)試驗平臺1.3研究意義1.4本文的主要工作第二章系統(tǒng)分析2.1引言2.2需求分析2.3可行性分析2.4系統(tǒng)主要目標及功能2.5小結第三章方案選取3.1引言3.2界面工作的選取3.3模擬信號實驗的軟件工具選擇3.4方案選擇第四章開發(fā)運營環(huán)境4.1系統(tǒng)開發(fā)環(huán)境和運營環(huán)境4.1開發(fā)語言和開發(fā)工具介紹第五章系統(tǒng)軟件平臺的設計5.1引言5.2系統(tǒng)整體框架5.3系統(tǒng)設計步驟5.4系統(tǒng)模塊5.5生成可執(zhí)行文件5.6小結第六章系統(tǒng)測試6.1引言6.2測試背景6.3測試結果6.4小結第七章結論致謝參考文獻附錄第1章緒論1.1課題研究的背景及意義“數(shù)字信號處理”在電子信息專業(yè)中是一門很重要的課程,它涉及的知識廣泛,包括微積分、概率論、信號與系統(tǒng)等。學生在學習這方面的內容的時候,通常感覺比較抽象,對其中的基本理論和分析方法難以具體地理解和掌握。為此,很多學校安排了實驗課程,借助一些優(yōu)良的軟件平臺(如MATLAB等)來解決這一實際問題,幫助學生更好地理解和掌握數(shù)字信號處理中的基本理論和分析方法,激發(fā)他們的學習興趣,從而達到良好的教學效果。1.2教學實驗系統(tǒng)簡介數(shù)字信號處理實驗環(huán)節(jié)在教學過程中是非常重要的,實驗有助于學生理解和掌握所學的理論。MATLAB是用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術計算語言和交互式環(huán)境。作為強大的科學計算平臺,它幾乎滿足所有的計算要求。隨著對仿真和程序設計通用性及可視化需求的日益增加,MATLAB著重改善了圖形用戶界面的制作,極大地滿足了用戶的需求。MATLAB的GUID是專門用于圖形用戶界面的快速開發(fā)環(huán)境,本文利用該工具設計教學實驗系統(tǒng),該系統(tǒng)將MATLAB軟件和多媒體硬件結合,將數(shù)字信號處理的實驗內容融入進去,形成一種新的計算機教學實驗方式。該系統(tǒng)的形象直觀,總體界面友好,具有開放性,便于學生對所學理論知識的理解,大大提高教學的效果和效率?,F(xiàn)在大多數(shù)高校都借助于MATLAB進行輔助教學,MATLAB語言是一種非常適合信號分析與處理的語言,它的使用對學生理解數(shù)字信號處理中的許多基本理論起到極其重要的作用。MATLAB具有強大的圖形用戶界面生產(chǎn)能力,用戶可以根據(jù)自己的需要設計圖形界面。本實驗系統(tǒng)以MATLAB為開發(fā)平臺,保證了該系統(tǒng)具有一定的通用性,它采用圖形交互的界面,不僅可以用于實驗教學,也可以用于輔助理論教學,操作起來非常方便,形象直觀。它開發(fā)了基本信號的產(chǎn)生,常用序列的計算,傅里葉變換,濾波器的設計等MATLAB輔助分析與設計實驗。通過這個實驗系統(tǒng),可以將數(shù)字信號處理課程中許多抽象的理論知識形象地表示出來,使得原先實驗中較難觀察到的現(xiàn)象以及繁瑣的設計計算等,都能較簡單的解決。該實驗系統(tǒng)為學生提供了一個形象而全面的演示,激發(fā)學生的學習興趣,加深學生對數(shù)字信號處理課程中理論知識的理解。1.3設計的目標任務在許多高校的相關專業(yè),數(shù)字信號處理都被列為專業(yè)必修課。但是,它涉及的知識廣泛,包括微積分、概率論、信號與系統(tǒng)等。學生在學習這方面的內容的時候,通常感覺比較抽象,對其中的基本理論和分析方法難以具體地理解和掌握。目前,我校的數(shù)字信號處理課程總共48個學時,其中有6個實驗學時,要想在這么短的時間內讓學生較好地掌握數(shù)字信號處理的理論知識,這是比較困難的,所以可以利用MATLAB友好的人際交互界面,制作出形象、開放的教學實驗系統(tǒng),以此達到幫助學生更好的掌握數(shù)字信號處理理論知識的目的。第2章數(shù)字信號處理與開發(fā)環(huán)境的簡介2.1數(shù)字信號處理的簡介隨著信息技術的高速發(fā)展,信息時代和數(shù)字世界悄然到來,數(shù)字信號處理已成為一門重要的學科和一個極其重要的科學領域。它被廣泛地應用于電子信息工程、通信工程、語音、圖像、自動控制、雷達、遙感和生物工程等眾多領域。數(shù)字信號處理是把信號用符號或者是數(shù)字的形式表示成序列,通過通用(專用)信號處理設備或計算機,用數(shù)值計算的方法進行各種處理,它的目的是對真實世界的連續(xù)模擬信號進行測量或濾波,達到提取有用信息并加于利用的效果,例如檢測、變換、增強、參數(shù)提取、頻譜分析等。數(shù)字信號處理系統(tǒng)具有以下一些明顯的優(yōu)點:(1)精度高。模擬網(wǎng)絡的精度由元器件決定,模擬元器件的精度很難達到10-3以上,而數(shù)字系統(tǒng)只要14位字長就可達到10-4的精度。在高精度系統(tǒng)中,有時只能采用數(shù)字系統(tǒng)。(2)靈活性高。數(shù)字系統(tǒng)的性能主要由乘法器的系數(shù)決定,而系數(shù)是存放在系數(shù)存儲器中的,只需改變存儲的系數(shù),就可得到不同的系統(tǒng),比改變模擬系統(tǒng)方便得多。(3)可靠性強。因為數(shù)字系統(tǒng)只有兩個信號電平“0”、“l(fā)”,因而受周圍環(huán)境溫度以及噪聲的影響較小,而模擬系統(tǒng),各元器件都有一定的溫度系數(shù),且電平是連續(xù)變化的,易受溫度、噪聲、電磁感應等的影響。如采用大規(guī)模集成電路,可靠性就更高。(4)容易大規(guī)模集成。這是由于數(shù)字部件有高度規(guī)范性,便于大規(guī)模集成、大規(guī)模生產(chǎn),對電路參數(shù)要求不嚴,故產(chǎn)品成品率高。尤其是對于低頻信號,例如地震波分析,需要過濾幾赫茲到幾十赫茲信號,用模擬網(wǎng)絡處理時,電感器、電容器的數(shù)值、體積和重量都非常大,性能亦不能達到要求、而數(shù)字信號處理系統(tǒng)在這個頻率處卻非常優(yōu)越。(5)時分復用。也就是利用數(shù)字信號處理器同時處理幾個通道的信號。處理器運算速度越高,能處理的信道數(shù)目也就越多。(6)可獲得高性能指標。例如對信號進行頻譜分析,模擬頻譜儀在頻率低端只能分析到1OHz以上頻率.且難于做到高分辨率(足夠窄的帶寬),但在數(shù)字的譜分析中,已能做到10-3Hz的譜分析。又如有限長沖激響應數(shù)字濾波器,則可實現(xiàn)準確的線性相位特性,這在模擬系統(tǒng)中是很難達到的。(7)二維與多維處理。利用龐大的存儲單元,可以存儲一幀或數(shù)幀圖象信號,實現(xiàn)二維甚至多維信號的處理,包括二維或多維濾波、二維及多維譜分析等。數(shù)字信號處理系統(tǒng)也有其局限性,例如,數(shù)字系統(tǒng)的速度還不算高,硬件的速度也只在幾十兆赫以下,故不能處理很高頻率的信號。另外,系統(tǒng)比較復雜,因而價格昂貴等也是其缺點。2.2MATLAB簡介與特點2.2.1MATLAB的簡介MATLAB是矩陣實驗室(MatrixLaboratory)的簡稱,MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分,和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。GUIDE(GraphicalUserInterfaceDevelopmentEnviroment)是MATLAB中一個專門用于GUI程序設計的向導設計器,通過GUIDE可以很方便地設計出各種符合要求的圖形用戶界面,用戶可以根據(jù)提示完成新界面的制作,卻不必了解新界面內部是如何工作的。GUI設計既可以以基本的MATLAB程序設計為主,也可以用鼠標利用GUID工具進行設計,也可以綜合以上兩種方法進行設計。2.2.2MATLAB的特點(1)友好的工作平臺和編程環(huán)境MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業(yè)化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯(lián)機查詢、幫助系統(tǒng),極大的方便了用戶的使用。簡單的編程環(huán)境提供了比較完備的調試系統(tǒng),程序不必經(jīng)過編譯就可以直接運行,而且能夠及時地報告出現(xiàn)的錯誤及進行出錯原因分析。(2)簡單易用的程序語言Matlab一個高級的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員對數(shù)學表達式的書寫格式。使之更利于非計算機專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。(3)強大的科學計算機數(shù)據(jù)處理能力MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數(shù)學運算函數(shù),可以方便的實現(xiàn)用戶所需的各種計算功能。函數(shù)中所使用的算法都是科研和工程計算中的最新研究成果,而前經(jīng)過了各種優(yōu)化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數(shù)集包括從最簡單最基本的函數(shù)到諸如矩陣,特征向量、快速傅立葉變換的復雜函數(shù)。函數(shù)所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數(shù)據(jù)的統(tǒng)計分析、工程中的優(yōu)化問題、稀疏矩陣運算、復數(shù)的各種運算、三角函數(shù)和其他初等數(shù)學運算、多維數(shù)組操作以及建模動態(tài)仿真等。(4)出色的圖形處理功能MATLAB自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖??捎糜诳茖W計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),MATLAB同樣表現(xiàn)了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數(shù),保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。(5)應用廣泛的模塊集合工具箱MATLAB對許多專門的領域都開發(fā)了功能強大的模塊集和工具箱。一般來說,它們都是由特定領域的專家開發(fā)的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經(jīng)把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數(shù)據(jù)采集、數(shù)據(jù)庫接口、概率統(tǒng)計、樣條擬合、優(yōu)化算法、偏微分方程求解、神經(jīng)網(wǎng)絡、小波分析、信號處理、圖像處理、系統(tǒng)辨識、控制系統(tǒng)設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿真、嵌入式系統(tǒng)開發(fā)、定點仿真、DSP與通訊、電力系統(tǒng)仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。(6)實用的程序接口和發(fā)布平臺新版本的MATLAB可以利用MATLAB編譯器和C/C++數(shù)學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立于MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網(wǎng)頁服務程序還容許在Web應用中使用自己的MATLAB數(shù)學和圖形程序。MATLAB的一個重要特色就是具有一套程序擴展系統(tǒng)和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數(shù)的子程序庫,每一個工具箱都是為某一類學科專業(yè)和應用而定制的,主要包括信號處理、控制系統(tǒng)、神經(jīng)網(wǎng)絡、模糊邏輯、小波分析和系統(tǒng)仿真等方面的應用。(7)應用軟件開發(fā)(包括用戶界面)在開發(fā)環(huán)境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數(shù)嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。第二章系統(tǒng)分析2.1引言現(xiàn)代社會,通信與傳感、仿真計算技術緊密結合,信息成為社會的高級“神經(jīng)中樞”,隨著我國科學技術的發(fā)展和國內外合作的加強,對通信水平的要求也日益增加,如果通信水平跟不上,社會成員之間的合作程度就受到限制,生產(chǎn)力的發(fā)展也必然受到限制,可見通信在現(xiàn)代生活中扮演的角色越來越重要,本課題以此為出發(fā)點,采用Matlab語言為工作環(huán)境,Matlab語言稱為第四代編程語言,程序簡潔、可讀性很強而且調試十分容易,自1984年由美國MathWorks公司推向市場以來,歷經(jīng)十幾年的發(fā)展,現(xiàn)已成為國際公認的優(yōu)秀科技應用軟件,是數(shù)字信號處理方面得天獨厚優(yōu)勢圖形開發(fā)工具.本軟件設計目標是以配合教學為出發(fā)點,主要是面對通信工程專業(yè)的初學者,用簡單,可視化的仿真模擬圖形給大家演示部分基本波的傳輸特性,以及在信道中的傳輸特性。使他們直觀,感性地了解和掌握通信系統(tǒng)的概念、傳輸性能等[3]。為了規(guī)范和條理的進行本系統(tǒng)的設計以及使后續(xù)的開發(fā)維護工作變得有趣而輕松,故編寫本系統(tǒng)需求分析說明書;旨在開發(fā)過程中進行參考,使系統(tǒng)在需求的規(guī)范之內,避免重復勞動,加快開發(fā)進度以及提高開發(fā)效率;同時也是為以后系統(tǒng)維護服務提供指南;由于時間倉促,錯誤之處在所難免,請見諒。2.2需求分析通信在現(xiàn)今生活中已是普遍存在,在經(jīng)濟發(fā)展,政治軍事活動,個人生活中的應運以是相當普遍,是社會發(fā)展不可缺少的工具,自1844年莫而斯在華盛頓和巴爾的摩之間發(fā)送世界第一份電報以來,通信已經(jīng)經(jīng)歷了150多年,發(fā)展到目前數(shù)字通信趨于替代模擬通信的趨勢。《信號與系統(tǒng)》課程,是高等理工科類院校通信與電子信息工程等專業(yè)中一門十分重要的基礎理論課,也是電子信息工程專業(yè)許多后續(xù)課程的重要理論基礎。以前的信號模擬是通過硬件,對儀器和實驗室的要求較高,不便于廣泛應用,而且信號處理具有內容繁多、概念抽象、設計復雜等特點,學生在學習時常常會感到枯燥,難以理解和掌握?;诖朔N需求,本系統(tǒng)設計為教學演示型軟件,運用Matlab軟件開發(fā),便于學生直觀觀察信號系統(tǒng)中涉及的波形及特性的原理圖,為后續(xù)課程的學習,以及獨立分析和設計新的系統(tǒng),打下基礎。2.3可行性分析2.3.1技術可行性本課題所涉及的研究目標,在國內外已經(jīng)有相當成熟的理論基礎和技術基礎。通過開發(fā)人員的文獻調查,對于Matlab做用戶圖象界面和信號模擬所涉及到的技術問題進行細致的分析,很大一部分可以使用電子信息工程的專業(yè)知識進行構建,其他的部分則可以通過自學,調用已經(jīng)開發(fā)好的一些功能模塊來完成課題涉及到的技術要求。2.3.2經(jīng)濟可行性本課題通過對既有開發(fā)平臺的使用,能夠設計出比較完善的信號系統(tǒng)實驗平臺,沒有任何經(jīng)濟上的負擔,本課題可以自主開發(fā)信號系統(tǒng)實驗平臺,為實驗提供了靈活性,擺脫了硬件可以看到實驗結果,而且又可脫離Matlab來進行仿真.為教學和研究提供了方便,在經(jīng)濟上節(jié)約了實驗開支,鍛煉了學生的自我研發(fā)意識和自己動手的能力。2.3.3操作可行性Matlab程序流程簡單明了,開發(fā)率高,并且能夠結合其他多種開發(fā)工具,共同實現(xiàn)信號模擬功能。它易學易用,不需大量編程,能創(chuàng)作出一些高水平的模擬平臺作品,對于非專業(yè)的開發(fā)人員和專業(yè)開發(fā)人員都是一個好的選擇。從可操作性的角度來講,完全可行。2.4系統(tǒng)主要目標及功能2.4.1系統(tǒng)目標本課題開發(fā)目標是利用Matlab軟件開發(fā)一套集可視化圖形與動態(tài)仿真為一體的教學演示型軟件,主要是面對初學者,用可視化的仿真模擬圖形配合老師的講課內容給大家演示《信號與系統(tǒng)》課程中部分信號的傳輸波形、卷積、傅立葉變換以及濾波器設計等,幫助他們直觀、感性地了解和掌握信號系統(tǒng)的概念、基本特征等,深化對通信概念的理解。2.4.2系統(tǒng)主要功能本系統(tǒng)主要功能包括基本序列計算、基本信號產(chǎn)生、卷積、傅立葉變換、濾波器設計。簡單基礎地涵蓋了《信號與系統(tǒng)》部分主要章節(jié),用可視化的仿真模擬圖形為大家演示部分基本信號的傳輸波形和調制變換,部分交互式界面可直接輸入合適的值使大家更直觀、感性地了解和掌握信號系統(tǒng)的概念、傳輸性能、基本特征等,為課程的學習打下基礎。界面上的文字說明幫助大家了解本圖形的特性或功能。整套系統(tǒng)采取圖文并茂、循序漸進、從感性到理性的方式,首先讓初學者在掌握基本信號模擬和運算。2.5小結一個系統(tǒng)在開發(fā)之前就需要進行需求分析和可行性分析,本章重點闡述本設計的需求分析、可行性分析和目的,對這個系統(tǒng)的需求有了一個比較有力的證明。第三章方案選取3.1引言本設計研究的信號系統(tǒng)實驗平臺是一個可執(zhí)行的系統(tǒng),可以脫離它的開發(fā)軟件Matlab而獨立運行。本系統(tǒng)的關鍵是實現(xiàn)參數(shù)的傳遞和生成可執(zhí)行文件,這對剛接觸Matlab的我們來是說比較困難,老師為我們提出了一些參考方案來完成設計,本章將在根據(jù)我們實力的基礎上,給出本課題最適合選用的一種方案。3.2界面工具的選取由于我們的課題是基于Matlab的信號系統(tǒng)平臺,所以在選擇做界面的工具的時候也選擇Matlab。如果用VB做界面的話在后面實現(xiàn)信號波形的時候需要建立VB和Matlab的鏈接,那樣會增加工作量和工作難度,而且我們對他們的鏈接也是知之甚少,實際鏈接的時候會很麻煩,所以在權衡了各方面的因素我們選擇用Matlab做界面。3.3模擬信號實驗的軟件工具選擇我們在學習《信號與系統(tǒng)》和《數(shù)字信號處理》課程時,做實驗的時候用的是Matlab軟件來實現(xiàn)信號波形的模擬以及處理,可以比較直觀準確的看到波形,對Matlab軟件也有了初步的認識,也可以用它編寫一些比較簡單的程序來。在信號波形模擬的領域中,我們只接觸過Matlab軟件,所以在編寫模擬信號波形這個模塊中我們選擇Matlab軟件。Matlab是Math和Works公司推出的一個為工程計算和數(shù)據(jù)分析而專門設計的高級交互式軟件包,利用它能容易地解決在系統(tǒng)仿真領域教學與研究中遇到的問題。3.4設計方案選擇在本系統(tǒng)的設計中,界面布局設計采用自頂向下的設計方法,即先設計引導界面和主界面,再設計各個實驗子界面。界面設計完成后,只是一些靜態(tài)的畫面而已,沒有什么內涵,還不能用于實驗操作,要想達到實驗目的,必須借助于函數(shù)調用。在設計中,各個回調函數(shù)的編寫順序則是采用自底向上的設計方法,即先編制各個實驗子界面的回調函數(shù),再編寫主界面和引導界面的回調函數(shù)。開發(fā)運行環(huán)境4.1系統(tǒng)的基本模塊 基于MATLAB強大的功能,許多高校數(shù)字信號處理課程的實驗都是以MATLAB作為仿真工具。本文利用MATLAB的GUIDE工具箱設計并實現(xiàn)了數(shù)字信號處理教學實驗系統(tǒng)的圖形用戶界面GUI、實驗主界面和實驗子界面。這些界面以按鈕、靜態(tài)文本、編輯框和坐標軸等友好界面形式構成,即便是不理解MATLAB程序,也可以很方便地使用,系統(tǒng)內容豐富,結果直觀易懂,便于分析。通過該實驗系統(tǒng),將MATLAB軟件與多媒體硬件相結合,形成一種新的計算機輔助教學方式,有助于提高學生學習的效率,幫助學生理解課堂數(shù)學理論。該實驗系統(tǒng)提供的主要功能有:友好的用戶界面和數(shù)據(jù)圖形結果輸出。本系統(tǒng)按功能要求主要劃分以下幾個模塊:GUI模塊、實驗主界面模塊、實驗結果和實驗內容模塊。GUI模塊是一個主界面,實驗主界面模塊根據(jù)數(shù)字信號處理課程的重點和難點選擇了幾個典型的實驗。在對實驗教學系統(tǒng)的各界面開發(fā)過程中,需要對MATLAB的圖形用戶界面的功能有充分的理解,包括靜態(tài)文本的輸入、數(shù)據(jù)的讀入、按扭的響應、坐標軸的鏈接等。整個系統(tǒng)的功能結構如圖1所示。GUI界面GUI界面退出實驗主界面退出實驗子界面實驗結果實驗內容退出返回退出圖3.1系統(tǒng)流程圖首先進入GUI主界面,讓用戶可以自由選擇想了解的內容和實驗。在每個實驗的窗口上又分別安放了實驗內容和實驗結果,通過實驗主界面了解想要了解的知識,也可以通過輸入?yún)?shù)得到不同的實驗結果,即把幾個實驗放在一個界面上,這樣便于比較和分析。4.2系統(tǒng)設計步驟在該系統(tǒng)的設計中,界面布局設計是自頂向下的,即先設計GUI界面,再設計各個實驗子界面,界面上包括按鈕、坐標軸、文本框等控件。界面設計完成后,只是一些靜態(tài)的畫面,而沒有實際操作意義,還不能用于實驗操作,想要達到實驗演示和分析的功能,還必須借助于callback函數(shù)調用一系列的程序。在設計中,各個回調函數(shù)的編寫順序則是自底向上的,即先編寫各個子界面中的回調函數(shù)下的程序,再編寫GUI界面的回調函數(shù)下的程序。其設計的具體操作步驟如下:(1)使用MATLAB圖形用戶界面開發(fā)環(huán)境GUIDE提供的一系列創(chuàng)建用戶圖形界面工具,設計整個系統(tǒng)的GUI界面、實驗主界面和各個子界面。(2)分別編寫各個子界面的各個控件對象的回調函數(shù)下的一系列程序,以實現(xiàn)控件相應的控制功能,達到直接通過界面上各個控件就可以控制數(shù)據(jù)的輸入,并可以方便、直觀地對實驗內容及實驗結果進行對照分析。(3)編寫GUI界面的回調函數(shù)下的程序,將各個子界面整合在GUI界面中,即通過GUI界面就可以進入任何一個子界面并進行操作。4.2.1創(chuàng)建GUI創(chuàng)建MatlabGUI界面通常有兩種方式:第一種,在.m文件中動態(tài)添加,即自己編寫程序,設置參數(shù);第二種,使用GUIDE幫助創(chuàng)建GUI;在Command里面輸入GUIDE或者從菜單里面,或者從快捷按鈕均可進入GUIDE。新建并且保存后,會生成相應的fig文件和m文件,在Layout編輯視圖中,可以使用如下工具:LayoutEditor:布局編輯器;AlignmentTool:對齊工具;PropertyInspector:對象屬性觀察器;ObjectBrowser:對象瀏覽器;MenuEditor:菜單編輯器。4.2.2使用控件新建一個布局(窗口),可以在新窗口中添加如下控件1.靜態(tài)文本(StaticText)

2.編輯框(EditText)控件3.列表框(Listbox)控件

4.滾動條(Slider)控件5.按鈕(PushButton)控件

6.開關按鈕(ToggleButton)控件7.單選按鈕(RadioButton)控件

8.按鈕組(ButtonGroup)控件9.檢查框(CheckBox)控件

10.列表框(Listbox)控件11.彈出式菜單(PopupMenu)控件

12.坐標軸(Axes)控件13.面板(Panel)控件每一個控件都有自己的屬性常規(guī)屬性。1.控件風格和外觀(1)BackgroundColor:設置控件背景顏色,使用[RGB]或顏色定義。(2)CData:在控件上顯示的真彩色圖像,使用矩陣表示。(3)ForegroundColor:文本顏色。(4)String屬性:控件上的文本,以及列表框和彈出菜單的選項。(5)Visible:控件是否可見。2.對象的常規(guī)信息(1)Enable屬性:表示此控件的使能狀態(tài),設置為on”,表示可選,為“off”時則表示不可。(2)Style:控件對象類型。(3)Tag:控件表示(用戶定義)。(4)TooltipString屬性:提示信息顯示。當鼠標指針位于此控件上時,顯示提示信息。(5)UserData:用戶指定數(shù)據(jù)。(6)Position:控件對象的尺寸和位置。(7)Units:設置控件的位置及大小的單位。(8)有關字體的屬性,如FontAngle,F(xiàn)ontName等。3.控件回調函數(shù)的執(zhí)行(1)BusyAction:處理回調函數(shù)的中斷。有兩種選項:即Cancel:取消中斷事件,queue:排隊(默認設置)。(2)ButtonDownFcn屬性:按鈕按下時的處理函數(shù)。(3)CallBack屬性:是連接程序界面整個程序系統(tǒng)的實質性功能的紐帶。該屬性值應該為一個可以直接求值的字符串,在該對象被選中和改變時,系統(tǒng)將自動地對字符串進行求值。(4)CreateFcn:在對象產(chǎn)生過程中執(zhí)行的回調函數(shù)。(5)DeleteFcn:刪除對象過程中執(zhí)行的回調函數(shù)。(6)Interruptible屬性:指定當前的回調函數(shù)在執(zhí)行時是否允許中斷,去執(zhí)行其他的函數(shù)。

4.控件當前狀態(tài)信息(1)ListboxTop:在列表框中顯示的最頂層的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的當前值??梢允褂脤傩跃庉嬈鱽碓O置屬性4.2.3寫回調函數(shù)CallBack每個控件都有幾種回調函數(shù),右鍵選中的控件一般會有如下菜單:然后就可以跳轉到相應的Editor中編輯代碼,GUIDE會自動生成相應的函數(shù)體,函數(shù)名,名稱一般是控件Tag+Call類型名參數(shù)有三個(hObject,eventdata,handles),其中hObject為發(fā)生事件的源控件,eventdata為事件數(shù)據(jù)結構,handles為傳入的對象句柄,CreateFcn是在控件對象創(chuàng)建的時候發(fā)生(一般為初始化樣式,顏色,初始值等),DeleteFcn實在空間對象被清除的時候發(fā)生,ButtonDownFcn和KeyPressFcn分別為鼠標點擊和按鍵事件Callback,CallBack為一般回調函數(shù),因不同的控件而已異。例如按鈕被按下時發(fā)生,下拉框改變值時發(fā)生,sliderbar拖動時發(fā)生等等。4.2.4句柄圖形之間的層次關系RootRootFigureAxesImageUncontrlolUimenuLIghtLinePatchRectangleSurfaceText圖3.2句柄圖形之間的層次關系圖可以創(chuàng)建圖形句柄的常見函數(shù):1.figure函數(shù):創(chuàng)建一個新的圖形對象。2.newplot函數(shù):做好開始畫新圖形對象的準備。3.a(chǎn)xes函數(shù):創(chuàng)建坐標軸圖形對象。4.line函數(shù):畫線。5.patch函數(shù):填充多邊形。6.surface函數(shù):繪制三維曲面。7.image函數(shù):顯示圖片對象。8.uicontrol函數(shù):生成用戶控制圖形對象。9.uimenu函數(shù):生成圖形窗口的菜單中層次菜單與下一級子菜單。幾個實用的小函數(shù):uigetfile選擇文件對話框uiputfile保存文件對話框uisetcolor設置顏色對話框fontsetcolor設置字體對話框msgbox

消息框warndlg

警告框4.2.5獲取與設置對象屬性常用函數(shù):gcf函數(shù):獲得當前圖形窗口的句柄gca函數(shù):獲得當前坐標軸的句柄gco函數(shù):獲得當前對象的句柄gcbo函數(shù):獲得當前正在執(zhí)行調用的對象的句柄gcbf函數(shù):獲取包括正在執(zhí)行調用的對象的圖形句柄delete函數(shù):刪除句柄所對應的圖形對象findobj函數(shù):查找具有某種屬性的圖形對象設置方法:(1)get函數(shù)返回某些對象屬性的當前值。例如:p=get(obj,'Position');

(2)函數(shù)set改變句柄圖形對象屬性,例如:set(obj,'Position',vect);第五章系統(tǒng)軟件平臺的設計5.1引言信號系統(tǒng)實驗繁多、復雜,許多實驗還需要輸入?yún)?shù),若將系統(tǒng)設計成一個界面,使得系統(tǒng)繁重、擁擠,不能夠實現(xiàn)友好、美化的界面的設計要求。因此,在設計界面的時候,采用一個主界面和若干子界面,每個子界面是一個模塊,實現(xiàn)一個實驗或功能,并通過主界面調用子界面的設計方法。5.2系統(tǒng)整體框圖本實驗系統(tǒng)整體結構設計由兩部分組成:界面模塊設計和菜單模塊設計。其中,界面模塊總共包括八個模塊:開始引導模塊、主模塊、序列基本計算模塊、基本信號的產(chǎn)生模塊、卷積模塊、傅里葉變換模塊、濾波器設計模塊和說明模塊。一個實驗界面模塊下面又有下一級實驗界面模塊,如濾波器設計模塊下面還有FIR濾波器設計模塊和IIR濾波器設計模塊,其中FIR濾波器模塊又包含F(xiàn)IR濾波器線性的判斷實驗界面、窗函數(shù)的頻率響應實驗界面和FIR濾波器的設計實驗界面;IIR濾波器模塊又包含完全IIR濾波器的設計實驗界面和典型IIR濾波器實驗界面;主界面中還包含了說明模塊。在菜單設計時,在實驗子界面中除使用系統(tǒng)約定的菜單條外,還增加了幾個控制背景和退出實驗的菜單。系統(tǒng)的整體結構如圖5-1所示開始引導界面開始引導界面開始界面開始界面濾波器設計傅立葉變換卷積卷積濾波器設計傅立葉變換卷積卷積基本信號產(chǎn)生序列基本計算系系統(tǒng)說明圖5-1系統(tǒng)的整體結構5.3系統(tǒng)設計步驟設計的具體步驟如下:1)運用Matlab的圖形用戶界面(GUI)設計方法,設計整個實驗系統(tǒng)的開始引導界面、實驗主界面及其實現(xiàn)信號處理課程中具體實驗的各個子界面。2)運用Matlab的圖形用戶界面(GUI)設計方法,設計系統(tǒng)的說明界面及其各個實驗的說明界面。3)分別編寫各個子界面的各個控件對象的回調函數(shù),來實現(xiàn)控件相應控制功能,達到直接通過界面上各個控件就可以控制數(shù)據(jù)的輸入輸出,并可以方便地對實驗結果的數(shù)據(jù)及其圖形進行讀取和分析的目的。4)編寫主界面的回調函數(shù),將各個實驗子界面整合在信號處理系統(tǒng)實驗主界面中,即通過主界面就可以進入任何一個實驗子界面進行實驗。5)編寫開始引導界面的回調函數(shù),實現(xiàn)從引導界面直接進入主界面。5.4系統(tǒng)模塊5.4.1模塊劃分簡介本系統(tǒng)根據(jù)要實現(xiàn)的實驗類別、個數(shù)的要求來規(guī)劃模塊,在設計的時候本著界面美觀、簡潔的原則。各個模塊可以相互切換,每個實驗時可以完成參數(shù)的傳遞,5.4.2模塊具體設計實驗主界面在GUID編輯界面中,雙擊第一個按鈕,會出現(xiàn)屬性設置對話框,將string改為“正弦信號”,F(xiàn)rontsize設為15,雙擊第二個按鈕,將String改為“指數(shù)信號”,F(xiàn)rontsize設為15,雙擊第三個按鈕,將String改為“單位階躍信號”,F(xiàn)rontsize設為15,雙擊第四個按鈕,將String改為“單位脈沖信號”,F(xiàn)rontsize設為15,雙擊第五個按鈕,將String改為“矩形脈沖信號”,F(xiàn)rontsize設為15,雙擊第六個按鈕,將String改為“抽樣信號”,F(xiàn)rontsize設為15。將第一個StaticText的String改為“請輸入幅度、角度、相位”,F(xiàn)rontsize改為10,將第二個StaticText的String改為“請輸入幅度、相位”,F(xiàn)rontsize改為10,將第三、四、六個StaticText的String改為“請輸入平移量”,F(xiàn)rontsize改為10,將第五個StaticText的String改為“請輸入對城中心和寬度”,F(xiàn)rontsize改為10。“退出”控件也如此操作,只是String不同而已。右鍵單擊“正弦信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton1_Callback(hObject,eventdata,handles)下添加程序如下:axes(handles.axes1)%將句柄值為handles.axes1的坐標軸指定為當前坐標軸clcA=str2num(get(handles.edit1,'String'));%將字符串轉換為數(shù)值W=str2num(get(handles.edit2,'String'));P=str2num(get(handles.edit3,'String'));t=0:.001:10;ft=A*sin(W*t+P);plot(t,ft),gridtitle('A*sin(W*t+P)')右鍵單擊“指數(shù)信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton2_Callback(hObject,eventdata,handles)下添加程序如下:axes(handles.axes3)clcA=str2num(get(handles.edit4,'String'));a=str2num(get(handles.edit5,'String'));t=0:.001:10;ft=A*exp(a*t);plot(t,ft),gridtitle('A*exp(a*t)')右鍵單擊“單位階躍信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton3_Callback(hObject,eventdata,handles)下添加程序如下:axes(handles.axes4)clct=str2num(get(handles.edit7,'String'))-2:0.001:str2num(get(handles.edit7,'String'))+2;ft=(t-str2num(get(handles.edit7,'String'))>0);plot(t,ft)axis([str2num(get(handles.edit7,'String'))-2,str2num(get(handles.edit7,'String'))+2,-0.2,1.2])title('單位階躍信號')右鍵單擊“單位脈沖信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton4_Callback(hObject,eventdata,handles)下添加程序如下:axes(handles.axes2)t1=str2num(get(handles.edit6,'String'));%輸入平移量t=t1-1:0.01:t1+1;%信號時間樣本點向量n=length(t);%時間樣本點向量長度x=zeros(1,n);%產(chǎn)生一行全0矩陣,即各樣本點信號賦值為0x(1,(n-1)/2)=1;%在t=-t0處,給樣本點賦值stairs(t,x)%用stairs命令畫步進圖形axis([str2num(get(handles.edit6,'String'))-1,str2num(get(handles.edit6,'String'))+1,0,1])title('單位脈沖信號')右鍵單擊“矩形脈沖信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton5_Callback(hObject,eventdata,handles)下添加程序見附錄1。右鍵單擊“抽樣信號”,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),這個文件是MATLAB自動生成的,在functionpushbutton6_Callback(hObject,eventdata,handles)下添加程序見附錄1。右鍵雙擊“退出”控件,選擇ViewCallbacks中的Callback菜單項就可以打開jbxhcs.fig對應的m文件(jbxhcs.m),在functionpushbutton7_Callback(hObject,eventdata,handles)下添加程序程序如下:Close(gcf)Rungui;點擊退出控件后就可以關閉實驗主界面,返回上一級GUI模塊第六章系統(tǒng)實驗的具體內容6.1基本信號的產(chǎn)生數(shù)字信號處理的核心是信號,信號是系統(tǒng)的載體,所以本實驗要求對基本信號有一定的認識,并掌握基本信號的產(chǎn)生方法。點擊GUI界面的“第一章基本信號的產(chǎn)生”控件,彈出窗口圖5.1。圖5.2實驗結果在正弦信號處輸入幅度為2,角度為4,相位為5,出現(xiàn)的結果即為表達式x[k]=2sin(4t+5)的波形;在指數(shù)信號處輸入幅度為2,相位為3,出現(xiàn)的結果極為x[k]=2exp(3t)的波形;在單位階躍信號處輸入平移量為3,則出現(xiàn)的結果即將原始的單位階躍信號平移3之后的波形;在單位脈沖信號處輸入平移量為4,則結果即為將原始的單位脈沖信號向右平移4之后的波形;在矩形脈沖信號處輸入對稱中心為3,寬度為2,則出現(xiàn)的波形即為以3對稱,寬度為2的矩形信號;在抽樣信號處輸入平移量4,則出現(xiàn)的結果極為將原始抽樣信號平移4之后的波形。這些參數(shù)可以任意輸入,通過輸入不同的參數(shù)做出比較。5.2序列的基本運算1本實驗的目的是加深對常用序列的理解,并進行運算和掌握MATLAB中一些基本函數(shù)的建立方法。序列的基本運算包括翻轉、位移、相加、相乘和卷積。各運算的程序見(附錄2)在翻轉處輸入幅度為2,由結果可以看出,序列翻轉了180度,幅度增加2倍;在位移處輸入幅度為3,由結果可知,序列向右平移了3個單位量;在相加處輸入幅度為3,由結果可知,兩個序列已經(jīng)相加,并且結果擴展了3倍;在相乘處輸入3,由結果可知,兩個序列已經(jīng)相乘,且幅度擴展了3倍;在卷積處輸入幅度為2,由結果可知,幅度擴展了2倍。由圖5.4可知,當輸入?yún)?shù)時,結果一目了然,也能結合實驗內容進行相應的學習。當參數(shù)不符合要求,會彈出警告框,如圖5.5。圖5.5警告信息平移時k>=0,所以t>=-7,當t<=-8時,會出現(xiàn)警告信息,可以重新輸入。2相加信號f1(t)與f2(t)之和(瞬時和)是指同一瞬時兩信號之值對應相加所構成的“和信號”,即f3=f1(t)+f2(t),如圖2-7,給定已知信號f1(t)=ε(t)和f2(t)=sin(3*t),可得f3=f1(t)+f2(t)。如圖所示3相乘信號f1(t)與f2(t)之和積(瞬時積)是指同一瞬時兩信號之值對應相乘所構成的“積信號”,即f4=f1(t)·f2(t),如圖2-11,給定已知信號f1(t)=ε(t)和f2(t)=sin(3*t),可得f4=f1(t)·f2(t)。如圖2-11所示:5.6生成可執(zhí)行文件本系統(tǒng)要求最終結果要脫離開發(fā)工具(Matlab)軟件獨立運行,我們在做GUI的時候主要參考了別人生成可執(zhí)行文件的方法。首先在matlab命令行窗口中輸入guide,打開gui設計的圖形界面。然后拖入所要的圖形控件,按需要修改外觀直至滿足要求。點擊guide界面上方的Run按鈕,會生成一個fig文件,一個m文件,其中fig文件是你界面的圖形,m文件是你界面的回調函數(shù),在m文件里每個控件的回調函數(shù)都已經(jīng)自動生成,把我們自己的m代碼填在相應的回調函數(shù)里即可。我們在做本系統(tǒng)的時候,主要按照以下步驟:首先,使用mcc編譯得到.exe文件,具體參數(shù)見幫助文件;其次,將.exe文件及相關資源文件以及一個稱為mglinstaller.exe的軟件包一起拷到別的機器上,運行mglinstaller.exe,并添加環(huán)境變量path,即可執(zhí)行.exe文件。第三,在MATLAB環(huán)境,執(zhí)行命令mcc

-m

-B

sgl

file.m

或者mcc

-p

-B

sglcpp

file.m

請鍵入help

mcc看幫助。

在做的過程中我們還用到了打包等細節(jié)技術,打包的步驟是在matlab下的workspace里打comtool,點file-open

project將我們先前建好的comtest.cbl工程文件打開,再點component--package

component就實現(xiàn)了打包,此時到comtest\distrib文件夾里看,生成的comtest.exe就是打包后的解壓程序,雙擊它會解壓出一些文件,再點擊解壓出來的_install.bat就可以實現(xiàn)安裝。另外,把gui生成exe

還有其他方法,比如1)在matlab的command窗口中輸入

mcc

-B

sgl

GUI.m

2)將上步生成的文件包括*m

文件和*.fig文件一起考到待運行的機器

此時仍需matlab所必需的動態(tài)連接庫。

3)

<matlab

path

>/extern/lib/win32/mglinstallar.exel拷貝到到待運行機器上

4)在機器上先運行mglinstallar.exe,

然后選擇解壓目錄,將在指定目錄下解壓縮出bin和toolbox兩子目錄,其中在bin\win32目錄下就是數(shù)學庫和圖形庫脫離MATLAB運行所需的所有動態(tài)連接庫,共有37個??梢詫⑦@些.dll考入system32,

也可以直接放在應用程序目錄下。而toolbox目錄則必須與應用程序同一目錄。

5)大功告成。

5.6小結本章討論了軟件平臺的整體設計,給出了系統(tǒng)整體框圖和各模塊的界面和設計方法,詳細介紹了各個模塊產(chǎn)生波形的原理,并分析了最后生成可執(zhí)行文件的方法。6.4小結我們完成的功能是仿真,對信號波形的動態(tài)仿真、基本序列計算、基本信號的產(chǎn)生過程、傅立葉變換分析、信號卷積等?;拘蛄械娜藱C交互,基本信號產(chǎn)生模塊的人機交互,卷積分析的人機交互,濾波器設計模塊的人機交互,信號的傅立葉變換模塊的人機交互。當輸入數(shù)據(jù)之后,結果會以可視化的方式顯示出來。其他的就是一些靜態(tài)的演示圖,通過編程顯示出來,主要實現(xiàn)的內容包括基本信號的波形產(chǎn)生例如正弦波形,三角波形,脈沖波形。各種濾波器的設計低通濾波器、高通濾波器和巴特沃斯濾波器。通過測試,本軟件具有良好的系統(tǒng)穩(wěn)定性。經(jīng)過大量數(shù)據(jù)測試,我們發(fā)現(xiàn)了一些問題,并及時地對其作了修改,我們邊測試邊調試。目前系統(tǒng)能夠完全按要求正常運行,通過測試也使我們明白了:編寫一個功能完善的軟件是需要經(jīng)過多次的測試調試才能夠正常運行的。程序編寫的完成只是整個開發(fā)過程中的小部分,我們所進行的單元測試和集成測試是軟件的開發(fā)過程中較為繁重的一個環(huán)節(jié)。在測試過程中出現(xiàn)的某些故障都是出乎意料的,有些問題的解決也許并不困難,但要周密的考慮過程。第七章結論參考文獻[1]蘇中義.MATLAB簡介[J].上海電機技術高等??茖W院學報,2003,4:78.[2]楊建強,羅先香.MATLAB軟件工具箱簡介[J].水科學進展,2001,12(2):237~242.[3]劉瑞楨.MATLAB簡介[J].電腦編程技巧與維護,1997,7(1):48~51.[4]楊世文,許小健.MATLAB優(yōu)化工具箱在結構優(yōu)化設計中的應用[J].科學技術與工程,2008,8(5):1347~1349.[5]劉勤讓,羅小武.基于MATLAB的信號處理仿真[J].信息工程大學學報,2000,1(1):38~40.[6]高飛,汪浩.基于MATLAB的“信號與系統(tǒng)”仿真實驗及其性能分析[J].南民族學院學報(自然科學版),2001,10(2):266~269.[7]林月美,陳仁安,基于MATLAB的信號與系統(tǒng)軟件實驗平臺[J].集美大學學報,2001,6(3):51~254.[8]夏平.基于matlab的信號與系統(tǒng)、數(shù)字信號處理實驗體系[J].教學實驗,2004,26(5):73~76.[9]李蘊華.基于Matlab的《信號與系統(tǒng)》頻域分析[J].武漢科技學院學報,2006,19(5):21~24.[10]任亞莉.MATLAB在信號與系統(tǒng)仿真實驗中的應用[J].編程園地,2006,16(2):34~36.[11]許艷惠.基于MA丁LAB的信號系統(tǒng)仿真及應用[J].儀器儀表用戶,2006:96~97.[12]呂鋒,劉泉,江雪梅.基于MATLAB的信號與系統(tǒng)軟件實驗平臺[J].理工高教研究,2006,4(25):98~99.[13]羅朝明,李文,李延平,劉杰.基于Matlab和VB的《信號與系統(tǒng)》虛擬實驗系統(tǒng)[J].湖南理工學院學報(自然科學版),2007,20(1):59~62.[14]馬蕾,任全會.基于MATLAB的信號與系統(tǒng)頻域方面仿真教學[J].SCIENCE&TECHNOLOGYINFORMATION,2007,10:361~362.[15]肖軍,張偉宏.MATLAB軟件及其應用[J].《軟件工程師》,1998,4:25~27.[16]陳金.什么是MATLAB.振動、測試與診斷[J].1999,15:56~57.[17]初秀琴.Matlab外部接口的研究與實現(xiàn)[J].計算仿真,2002,19(1):107~109.[18]李?。趍atlab的數(shù)字圖像處理WEB實驗平臺的開發(fā)[J].2003,23(10):80~84.[19]姜長元.vc和Matlab混合編程的方法及實現(xiàn)[J].編程園地,2004.[20]周傳勝.基于MATLAB的網(wǎng)絡交互式虛擬現(xiàn)實實驗系統(tǒng)的研究[J].實驗技術與管理.[21]李世銀,辛曉麗,羅驅波,岳婷.基于MATLABWebServer的通信原理遠程仿真系統(tǒng)開發(fā)[J].電氣電子教學學報,2005,3(6):103~105.附錄2:程序第一章:正弦信號:Functionpushbutton2_Callback(hObject,eventdata,handles)%將句柄值為handles.axes1設置成當前坐標軸axes(handles.axes1)clc%將字符串轉變?yōu)閿?shù)值A=str2num(get(handles.edit1,'String'));W=str2num(get(handles.edit2,'String'));P=str2num(get(handles.edit3,'String'));t=0:.001:10;ft=A*sin(W*t+P);plot(t,ft);grid;title('A*sin(W*t+P)');指數(shù)信號:Functionpushbutton3_Callback(hObject,eventdata,handles)axes(handles.axes3)clcA=str2num(get(handles.edit4,'String'));a=str2num(get(handles.edit5,'String'));t=0:.001:10;ft=A*exp(a*t);plot(t,ft);grid;title('A*exp(a*t)')單位階躍信號:functionpushbutton5_Callback(hObject,eventdata,handles)a

溫馨提示

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

評論

0/150

提交評論