MATLAB實(shí)驗(yàn)教程_第1頁
MATLAB實(shí)驗(yàn)教程_第2頁
MATLAB實(shí)驗(yàn)教程_第3頁
MATLAB實(shí)驗(yàn)教程_第4頁
MATLAB實(shí)驗(yàn)教程_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)一MATLAB基本操作和繪圖1.1實(shí)驗(yàn)?zāi)康?.熟悉MATLAB編程環(huán)境;2.學(xué)習(xí)MATLAB的基本使用方法;3.熟悉plot和stem等繪圖函數(shù)的用法。1.2實(shí)驗(yàn)原理1.2.1MATLAB簡介MATLAB是matrixlaboratory的縮寫,是Mathworks公司開發(fā)的一款商業(yè)軟件。它是一種用于數(shù)值計(jì)算、算法開發(fā)、數(shù)據(jù)分析和可視化的高級(jí)編程語言和編程環(huán)境。除向量和矩陣運(yùn)算、繪制函數(shù)/數(shù)據(jù)圖像等基本功能外,MATLAB還可用來創(chuàng)建圖形用戶界面(GUI),并可與其他高級(jí)語言(如C、C+和FORTRAN等)進(jìn)行混合編程。MATLAB附帶眾多的工具箱(工具箱是特定領(lǐng)域的一些專用函數(shù)的集合),

2、適用于諸如信號(hào)和圖像處理、通信、金融建模和分析等各種不同的領(lǐng)域。除了進(jìn)行數(shù)值計(jì)算,MATLAB也提供了一個(gè)符號(hào)運(yùn)算工具箱,因此也可進(jìn)行符號(hào)運(yùn)算。另外MATLAB帶有一個(gè)軟件包Simulink,提供了可視化開發(fā)環(huán)境,可用于動(dòng)態(tài)系統(tǒng)模擬仿真和嵌入式系統(tǒng)開發(fā)等方面。經(jīng)過近30年的發(fā)展,MATLAB已廣泛用于學(xué)術(shù)研究和工程開發(fā)中。作為一種以矩陣和向量運(yùn)算為基礎(chǔ)的交互式編程語言,MATLAB特別適用于各種系統(tǒng)的分析和模擬,已成為線性代數(shù)、自動(dòng)控制、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真等的基本工具。MATLAB是一個(gè)很容易學(xué)習(xí)和使用的工具。通過使用MATLAB,可使我們將精力集中在學(xué)習(xí)信號(hào)和系統(tǒng)的新的和難的概念上,

3、而不是編程上。下面僅側(cè)重于信號(hào)與系統(tǒng)實(shí)驗(yàn)中將要使用到的相關(guān)功能,對(duì)MATLAB作一個(gè)簡短的介紹。更詳盡的介紹和幫助,可參閱MATLAB的在線幫助和相關(guān)書籍。1.2.2MATLAB的工作環(huán)境目前MATLAB的最新版本是2013年2月推出的R2013a(版本8.01),啟動(dòng)后的用戶界面如圖1.1所示。從版本8開始,MATLAB采用了全新的RibbonUI(一種以面板和標(biāo)簽頁為主的用戶界面,不同于以往以菜單和工具欄為基礎(chǔ)的UI),使用上更為簡便,但圖中所示的界面與舊版本的有所不同。雖然不同版本的用戶界面有所不同,但是在使用上是基本相同的。圖1.1中左邊當(dāng)前文件夾(CurrentFolder)窗口顯示

4、的是當(dāng)前文件夾中的文件;中間是命令行窗口(CommandWindow),在“>>”提示符后輸入命令,MATLAB便會(huì)執(zhí)行相應(yīng)的操作;右上工作區(qū)(Workspace)窗口顯示的是MATLAB命令和程序生成的變量名及其數(shù)值;右下是CommandHistory窗口顯示輸入命令的歷史記錄。所有這些窗口都可改變大小、浮動(dòng)、關(guān)閉及重新打開。如圖1.1所示,在命令行窗口中輸入一條命令(或稱為一條語句),按Enter鍵,該命令會(huì)被立即執(zhí)行并顯示結(jié)果,如果希望命令行窗口不顯示結(jié)果,只需在命令后面添加分號(hào)“;”。如果需要執(zhí)行多個(gè)命令構(gòu)成的程序(或稱為腳本script)并將其保存為文件,則需要用到文本編

5、輯器。點(diǎn)擊工具欄的“Newscript”圖標(biāo),或在“File”菜單下選擇“NewScript”,將打開如圖1.2所示的MATLAB的編輯器,顯示一個(gè)空白的文檔,編輯并保存該文檔即可執(zhí)行腳本。通過編輯器的菜單項(xiàng)和工具欄也可以執(zhí)行和調(diào)試程序。MATLAB編輯器建立的文件的擴(kuò)展名默認(rèn)為.m。圖1.2MATLAB的編輯/調(diào)試器如要新建一個(gè)可被其他程序調(diào)用的函數(shù),可在“File”菜單下選擇“NewFunction”,編輯器將生成如下所示自定義函數(shù)的框架:其中第一行是函數(shù)聲明行,function是MATLAB關(guān)鍵字,input_args是輸入變量,output_args是輸出變量,函數(shù)必須以end結(jié)尾。將

6、其保存為.m文件,即可在其他程序中以文件名(注意不是函數(shù)名,文件名和函數(shù)名可以不同)調(diào)用該函數(shù)。在命令行窗口中,還可以輸入若干文件管理功能的命令,如“cd”或“chdir”可以改變當(dāng)前工作文件夾,“dir”、“mkdir”和“rmdir”可分別顯示、新建和刪除文件夾,“delete”可用來刪除文件等。如果要新建或打開某個(gè).m文件,也可以在命令窗口輸入“edittest.m或“opentest.m”(其中.m可省略)來打開編輯器,MATLAB將在當(dāng)前文件夾和搜索路徑中搜索test.m,若找到test.m則將打開該文件,反之則會(huì)提示是否創(chuàng)建新文件。如果要運(yùn)行test.m,只需在命令行窗口直接輸入t

7、est即可。如果test.m是存放于當(dāng)前文件夾或搜索路徑的函數(shù)文件,則可以直接在命令行窗口或其他程序中調(diào)用。 MATLAB提供了很多演示程序供使用者參考學(xué)習(xí)。在命令行窗口中輸入“demo”,將出現(xiàn)一系列的演示,為使用者提供了一個(gè)很好的學(xué)習(xí)的輔助手段。同時(shí),MATLAB提供了詳盡的在線幫助系統(tǒng),在命令窗口中輸入“help函數(shù)名”可顯示函數(shù)的摘要和詳細(xì)的解釋,而輸入“doc函數(shù)名”可打開相關(guān)的聯(lián)機(jī)幫助,其中不僅有函數(shù)的解釋,還有函數(shù)使用的實(shí)例供使用者參考。1.2.3當(dāng)前文件夾和搜索路徑 MATLAB及其工具箱提供的函數(shù)往往以.m文件的形式安裝在MATLAB的各個(gè)子文件夾中,另外用戶自定義的函數(shù)和腳

8、本文件也不一定存放于當(dāng)前文件夾中,因此通常在使用調(diào)用或執(zhí)行這些文件之前需要確認(rèn)或設(shè)置.m文件的搜索路徑,告訴MATLAB在哪里搜索.m文件。這一步驟可通過“File”菜單下選擇“SetPath”實(shí)現(xiàn),如圖1.3如果在命令窗口輸入字符串test,MATLAB將試圖按照以下的順序去解釋和執(zhí)行它: (1)搜索test是否是已定義的變量; (2)搜索test是否是MATLAB內(nèi)置的固有函數(shù);(3)在當(dāng)前文件夾中搜索是否有test.m文件; (4)在“SetPath”給定的所有文件夾中搜索是否有test.m文件。1.2.4變量和.m文件的命名規(guī)則在MATLAB中變量和.m文件有相同的命名規(guī)則:區(qū)分大小寫

9、,第一個(gè)字符必須為英文字符(不能為數(shù)字開頭),不能超過31個(gè)字符,其他字符可以為英文字符、數(shù)字和下劃線_,除此之外不能包含其他字符。變量和.m文件的名字不能重名。同時(shí)應(yīng)盡量避免和MATLAB預(yù)定義的變量(如pi,eps,ans,Inf,虛數(shù)單位i或j等)以及函數(shù)(如sin,cos,exp,log等)重名,否則可能會(huì)導(dǎo)致預(yù)期之外的結(jié)果。1.2.5基本運(yùn)算和函數(shù)使用MATLAB最大的好處是以往復(fù)雜的數(shù)學(xué)運(yùn)算和編程可變得相對(duì)簡單。它缺省的數(shù)據(jù)格式為雙精度浮點(diǎn)數(shù)的矩陣或數(shù)組,并且可以直接處理復(fù)數(shù),同時(shí)會(huì)自動(dòng)管理執(zhí)行過程中變量使用內(nèi)存的分配和回收,不需要額外的處理和編程,因此給各種數(shù)學(xué)運(yùn)算,特別是向量與

10、矩陣的運(yùn)算帶來極大的方便。例如要計(jì)算一個(gè)表達(dá)式的值,只需在提示符后直接輸入,按回車鍵即可:>>5*sin(pi/6)*exp(-1+i)ans=0.4969+0.7739iMATLAB會(huì)自動(dòng)將計(jì)算結(jié)果賦給變量ans并立即顯示計(jì)算結(jié)果。當(dāng)然,也可將結(jié)果賦予任意一變量。若希望MATLAB不立即顯示結(jié)果,只需在命令后加分號(hào)(;)即可。例如>>y=5*sin(pi/6)*exp(-1+i);>>z=real(y) %顯示結(jié)果的實(shí)部z=0.4969MATLAB的數(shù)學(xué)計(jì)算是基于向量和矩陣運(yùn)算的,這給編程帶來了極大的方便。例如以下的語句可直接定義向量并對(duì)其進(jìn)行計(jì)算:>

11、;>x=2357; %定義行向量x>>y=2*x+1 %定義行向量yy=5 7 11 15MATLAB會(huì)忽略所有百分比符號(hào)(%)之后的文字,即%之后的文字為注釋??梢苑奖愕馗?、增加或刪除向量的元素,如>>y(3)=y(3)-5%更改第3個(gè)元素y=5 7 6 15>>y(7)=y(3)%加入第7個(gè)元素y=5 7 6 15 0 0 6>>y(4:6)=%刪除第4個(gè)至第6個(gè)元素y=5 7 6 6>>y(3:5)=123%給第3個(gè)至第5個(gè)元素重新賦值y=5 7 1 2 3 >>z=y'%行向量y轉(zhuǎn)置,得到列向量zz

12、=57123輸入矩陣只需在每一列結(jié)尾加上分號(hào)(;),如:>>A=1 2 3 4;5 6 7 8;9 10 11 12A=1 2 3 45 6 7 89 10 11 12同樣地,我們可以對(duì)矩陣進(jìn)行各種處理:>>A(2,2:3)=0 0A=1 2 3 45 0 0 89 10 11 12>>B=A'B=1 5 92 0 103 0 114 8 12>>A=AB(2:4,)A=1 2 3 45 0 0 89 10 11 12>>A=AB(2:4,1:3)A=1 2 3 4 2 0 105 0 0 8 3 0 119 10 11 12

13、 4 8 12表1.1列出了常用的運(yùn)算和函數(shù)。MATLAB提供了豐富內(nèi)置函數(shù),且這些函數(shù)的輸入變量通??梢允窍蛄俊⒕仃嚮驍?shù)組,例如>>sin(0pi/3pi/6pi/2)ans=0 0.8660 0.5000 1.0000這些運(yùn)算和函數(shù)的功能和使用方法可查閱MATLAB的聯(lián)機(jī)幫助,或相關(guān)的參考書。1.2.6MATLAB流程控制語句和其他高級(jí)編程語言類似,MATLAB提供了流程控制語句,用于控制程序執(zhí)行的流程,其中比較常用的有:if/else if/else, switch/case/ otherwise, while,for, end,break,continue,return等等

14、。這里僅列舉其中幾條的語法,具體的用法可在以后的實(shí)驗(yàn)中學(xué)習(xí),或參考MATLAB的在線文檔。1.if/elseif/else語句的語法:If expressionStatementsElse if expressionStatementselsestatementsend2.switch/case/otherwise語句的語法: switchswitch_expression%switch_expression為標(biāo)量或字符串case case_expression statementscase case_expression statements:otherwise statements end

15、 3.while語句的語法: While expression Statementsend 4.for語句的語法:for index=initval:step:endval statementsend1.2.7MATLAB的繪圖函數(shù)MATLAM提供了豐富的繪圖函數(shù)可將數(shù)據(jù)繪制成各種圖形,如曲線、直方圖、極坐標(biāo)圖、等位線圖、向量場圖等。在信號(hào)與系統(tǒng)實(shí)驗(yàn)中最常用的是plot函數(shù)和stem函數(shù)。plot函數(shù)是繪制二維曲線的函數(shù)。只需定義曲線上每一點(diǎn)的坐標(biāo),即可通過plot畫出曲線,例如:其中第1行使用linspace函數(shù)產(chǎn)生0到4之間的線性分布的300個(gè)元素的行向量,相當(dāng)于程序執(zhí)行后會(huì)生成一個(gè)名為“

16、Figure1”的新窗口,如圖1.4所示。圖1.4正弦曲線如果要在同一圖中畫出多條曲線,只需將坐標(biāo)依次放入plot函數(shù)即可,并且可以改變每條曲線的顏色、線型等,如我們還可以給坐標(biāo)軸加上標(biāo)注,給曲線加上圖注,給圖加上標(biāo)題,如最后,還可設(shè)定合適的坐標(biāo)軸范圍,如即可得到圖1.5所示的圖形。當(dāng)然,這些作圖參數(shù)也可以通過Figure窗口的菜單和工具欄進(jìn)行添加和修改。如果要在一個(gè)繪圖窗口中繪制多個(gè)圖形,可以使用subplot(m,n,p)命令,其中參數(shù)m和n給定在一個(gè)窗口中顯示m行n列個(gè)圖形,p表示選定第p個(gè)圖形區(qū)域,即在第p個(gè)區(qū)域作圖。例如以下的程序可生成如圖1.6所示的圖形:圖1.5改變曲線線形和作圖

17、參數(shù)第8行中的awgn函數(shù)是MATLAB提供的給信號(hào)添加高斯白噪聲的函數(shù),在信號(hào)處理中可用來模擬有噪聲的信號(hào)。第10行和第12行中的'interpreter','latex'的作用是使title函數(shù)以LaTeX命令的格式輸出文本,用來顯示比較復(fù)雜的數(shù)學(xué)公式。LaTeX是一種基于編程語言和宏命令的電子排版系統(tǒng),多用于科學(xué)論文的排版。像這些MATLAB函數(shù)的功能和用法,一方面可參閱在線文檔和相關(guān)資料,另一方面,也需要大家在使用過程中慢慢摸索并不斷積累經(jīng)驗(yàn)。連續(xù)時(shí)間信號(hào)必須離散化,即按一定的時(shí)間間隔T逐點(diǎn)抽取信號(hào)的瞬時(shí)值形成離散信號(hào)序列,才能以數(shù)字的形式將其(近似地)

18、表示出來。而離散時(shí)間信號(hào)在時(shí)間自變量上是離散的,可以直接在MATLAB中以向量的形式表示和運(yùn)算。在圖形表示上,可用stem函數(shù)畫出桿狀圖來顯示離散時(shí)間信號(hào)。例如以下的程序畫出了單位沖激函數(shù)和階躍函數(shù)。 生成的圖形如圖1.7所示。其中沖激序列和階躍序列也可以借助Matlab中的zeros和ones函數(shù)產(chǎn)生,如:或者,也可以用Matlab提供的stepfun以及來產(chǎn)生:圖1.7離散時(shí)間單位沖激信號(hào)和階躍信號(hào)上面的例子可以看出,要實(shí)現(xiàn)同樣的目的,方法是多樣的。通過MATLAB作圖我們可以得到相當(dāng)專業(yè)的圖形輸出。在生成滿意的圖形后,可通過圖形窗口的文件菜單,保存所生成的圖形,或者將圖形導(dǎo)出為其他圖形文

19、件格式,如位圖文件BMP、JPEG、TIFF,或者(更好的)矢量圖形文件EPS、PDF等,以供其他程序使用。1.3實(shí)驗(yàn)內(nèi)容1.熟悉MATLAB軟件的使用環(huán)境,掌握在MATLAB環(huán)境中輸入、保存、運(yùn)行和調(diào)試程序的過程。為了熟悉這些過程,請(qǐng)完成以下的實(shí)驗(yàn):(a)在命令行窗口分別生成兩個(gè)長度為3和4的隨機(jī)個(gè)位整數(shù)向量,求它們的卷積和。兩個(gè)長度分別為m和n的序列的卷積和的長度是多少?(提示:隨機(jī)行向量可用rand函數(shù)產(chǎn)生,取整可用fix或floor函數(shù),卷積和可用conv函數(shù)。)(b)在編輯器中將上面的程序保存為.m腳本文件。在命令行窗口運(yùn)行該腳本,輸出卷積和的結(jié)果。(c)試編寫一個(gè)簡單的函數(shù)函數(shù)不僅

20、輸出兩個(gè)輸入向量的卷積和,還輸出卷積和的長度。然后,調(diào)用這個(gè)函數(shù)重新計(jì)算(a)中兩個(gè)隨機(jī)向量的卷積和。(提示:向量長度可用length函數(shù)。)2.MATLAB的線性代數(shù)計(jì)算能力非常強(qiáng)大。請(qǐng)編寫一個(gè)MATLAB腳本計(jì)算一個(gè)線性方程組3y+3z=42x+3yz=154x3yz=19的解。請(qǐng)估計(jì)一下如用C語言解決此問題的代碼量,作一個(gè)直觀的比較。(提示:可以直接用MATLAB運(yùn)算符,即x=Ab來計(jì)算Ax=b的解。MATLAB有自己專門的算法計(jì)算線性方程組的解。對(duì)于上面的問題,也可以通過x=inv(A)*b來求得結(jié)果。這兩種方法有何不同?)3.抽樣函數(shù)sinc(t)=sint/t是信號(hào)與系統(tǒng)中常用的函

21、數(shù)。MATLAB的SignalProcessingToolbox提供了sinc函數(shù)計(jì)算抽樣函數(shù)的值。(a)在命令行窗口分別輸入"help sinc"、"doc sinc"以及"edit sinc",查看命令執(zhí)行后的結(jié)果;(提示:通過這些方式可獲得MATLAB函數(shù)的在線幫助、聯(lián)機(jī)文檔和源代碼。)(b)分別取兩個(gè)不同的間隔步長(如0.5和0.05,或者不同的坐標(biāo)點(diǎn)數(shù),如20點(diǎn)和200點(diǎn)),用plot函數(shù)畫出sinc函數(shù)的波形。要求用subplot將結(jié)果畫在同一個(gè)繪圖窗口中以便比較,并設(shè)定合適的坐標(biāo)軸范圍,同時(shí)添加坐標(biāo)軸標(biāo)注。4.復(fù)指數(shù)信號(hào)Aest是時(shí)間t的復(fù)函數(shù)。MATLAB可以直接進(jìn)行復(fù)數(shù)運(yùn)算,但在顯示信號(hào)時(shí)通常需要用模和相角、或者用實(shí)部和虛部來表示:(a)MATLAB的函數(shù)功能十分方便靈活,通過編程一個(gè)函數(shù)甚至可以方便地根據(jù)輸入、輸出參量個(gè)數(shù)的不同實(shí)現(xiàn)不同的功能。試編寫一個(gè)函數(shù)myexp.m,當(dāng)直接用myexp(t,-0.2,5,1)調(diào)用時(shí)(不指定輸出變量)會(huì)畫出如圖1.8所

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論