




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗一MATLAB基本操作和繪圖1.1實驗?zāi)康?.熟悉MATLAB編程環(huán)境;2.學(xué)習(xí)MATLAB的基本使用方法;3.熟悉plot和stem等繪圖函數(shù)的用法。1.2實驗原理1.2.1MATLAB簡介MATLAB是matrixlaboratory的縮寫,是Mathworks公司開發(fā)的一款商業(yè)軟件。它是一種用于數(shù)值計算、算法開發(fā)、數(shù)據(jù)分析和可視化的高級編程語言和編程環(huán)境。除向量和矩陣運算、繪制函數(shù)/數(shù)據(jù)圖像等基本功能外,MATLAB還可用來創(chuàng)建圖形用戶界面(GUI),并可與其他高級語言(如C、C+和FORTRAN等)進行混合編程。MATLAB附帶眾多的工具箱(工具箱是特定領(lǐng)域的一些專用函數(shù)的集合),
2、適用于諸如信號和圖像處理、通信、金融建模和分析等各種不同的領(lǐng)域。除了進行數(shù)值計算,MATLAB也提供了一個符號運算工具箱,因此也可進行符號運算。另外MATLAB帶有一個軟件包Simulink,提供了可視化開發(fā)環(huán)境,可用于動態(tài)系統(tǒng)模擬仿真和嵌入式系統(tǒng)開發(fā)等方面。經(jīng)過近30年的發(fā)展,MATLAB已廣泛用于學(xué)術(shù)研究和工程開發(fā)中。作為一種以矩陣和向量運算為基礎(chǔ)的交互式編程語言,MATLAB特別適用于各種系統(tǒng)的分析和模擬,已成為線性代數(shù)、自動控制、數(shù)字信號處理、動態(tài)系統(tǒng)仿真等的基本工具。MATLAB是一個很容易學(xué)習(xí)和使用的工具。通過使用MATLAB,可使我們將精力集中在學(xué)習(xí)信號和系統(tǒng)的新的和難的概念上,
3、而不是編程上。下面僅側(cè)重于信號與系統(tǒng)實驗中將要使用到的相關(guān)功能,對MATLAB作一個簡短的介紹。更詳盡的介紹和幫助,可參閱MATLAB的在線幫助和相關(guān)書籍。1.2.2MATLAB的工作環(huán)境目前MATLAB的最新版本是2013年2月推出的R2013a(版本8.01),啟動后的用戶界面如圖1.1所示。從版本8開始,MATLAB采用了全新的RibbonUI(一種以面板和標簽頁為主的用戶界面,不同于以往以菜單和工具欄為基礎(chǔ)的UI),使用上更為簡便,但圖中所示的界面與舊版本的有所不同。雖然不同版本的用戶界面有所不同,但是在使用上是基本相同的。圖1.1中左邊當(dāng)前文件夾(CurrentFolder)窗口顯示
4、的是當(dāng)前文件夾中的文件;中間是命令行窗口(CommandWindow),在“>>”提示符后輸入命令,MATLAB便會執(zhí)行相應(yīng)的操作;右上工作區(qū)(Workspace)窗口顯示的是MATLAB命令和程序生成的變量名及其數(shù)值;右下是CommandHistory窗口顯示輸入命令的歷史記錄。所有這些窗口都可改變大小、浮動、關(guān)閉及重新打開。如圖1.1所示,在命令行窗口中輸入一條命令(或稱為一條語句),按Enter鍵,該命令會被立即執(zhí)行并顯示結(jié)果,如果希望命令行窗口不顯示結(jié)果,只需在命令后面添加分號“;”。如果需要執(zhí)行多個命令構(gòu)成的程序(或稱為腳本script)并將其保存為文件,則需要用到文本編
5、輯器。點擊工具欄的“Newscript”圖標,或在“File”菜單下選擇“NewScript”,將打開如圖1.2所示的MATLAB的編輯器,顯示一個空白的文檔,編輯并保存該文檔即可執(zhí)行腳本。通過編輯器的菜單項和工具欄也可以執(zhí)行和調(diào)試程序。MATLAB編輯器建立的文件的擴展名默認為.m。圖1.2MATLAB的編輯/調(diào)試器如要新建一個可被其他程序調(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”可用來刪除文件等。如果要新建或打開某個.m文件,也可以在命令窗口輸入“edittest.m或“opentest.m”(其中.m可省略)來打開編輯器,MATLAB將在當(dāng)前文件夾和搜索路徑中搜索test.m,若找到test.m則將打開該文件,反之則會提示是否創(chuàng)建新文件。如果要運行test.m,只需在命令行窗口直接輸入t
7、est即可。如果test.m是存放于當(dāng)前文件夾或搜索路徑的函數(shù)文件,則可以直接在命令行窗口或其他程序中調(diào)用。 MATLAB提供了很多演示程序供使用者參考學(xué)習(xí)。在命令行窗口中輸入“demo”,將出現(xiàn)一系列的演示,為使用者提供了一個很好的學(xué)習(xí)的輔助手段。同時,MATLAB提供了詳盡的在線幫助系統(tǒng),在命令窗口中輸入“help函數(shù)名”可顯示函數(shù)的摘要和詳細的解釋,而輸入“doc函數(shù)名”可打開相關(guān)的聯(lián)機幫助,其中不僅有函數(shù)的解釋,還有函數(shù)使用的實例供使用者參考。1.2.3當(dāng)前文件夾和搜索路徑 MATLAB及其工具箱提供的函數(shù)往往以.m文件的形式安裝在MATLAB的各個子文件夾中,另外用戶自定義的函數(shù)和腳
8、本文件也不一定存放于當(dāng)前文件夾中,因此通常在使用調(diào)用或執(zhí)行這些文件之前需要確認或設(shè)置.m文件的搜索路徑,告訴MATLAB在哪里搜索.m文件。這一步驟可通過“File”菜單下選擇“SetPath”實現(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、,第一個字符必須為英文字符(不能為數(shù)字開頭),不能超過31個字符,其他字符可以為英文字符、數(shù)字和下劃線_,除此之外不能包含其他字符。變量和.m文件的名字不能重名。同時應(yīng)盡量避免和MATLAB預(yù)定義的變量(如pi,eps,ans,Inf,虛數(shù)單位i或j等)以及函數(shù)(如sin,cos,exp,log等)重名,否則可能會導(dǎo)致預(yù)期之外的結(jié)果。1.2.5基本運算和函數(shù)使用MATLAB最大的好處是以往復(fù)雜的數(shù)學(xué)運算和編程可變得相對簡單。它缺省的數(shù)據(jù)格式為雙精度浮點數(shù)的矩陣或數(shù)組,并且可以直接處理復(fù)數(shù),同時會自動管理執(zhí)行過程中變量使用內(nèi)存的分配和回收,不需要額外的處理和編程,因此給各種數(shù)學(xué)運算,特別是向量與
10、矩陣的運算帶來極大的方便。例如要計算一個表達式的值,只需在提示符后直接輸入,按回車鍵即可:>>5*sin(pi/6)*exp(-1+i)ans=0.4969+0.7739iMATLAB會自動將計算結(jié)果賦給變量ans并立即顯示計算結(jié)果。當(dāng)然,也可將結(jié)果賦予任意一變量。若希望MATLAB不立即顯示結(jié)果,只需在命令后加分號(;)即可。例如>>y=5*sin(pi/6)*exp(-1+i);>>z=real(y) %顯示結(jié)果的實部z=0.4969MATLAB的數(shù)學(xué)計算是基于向量和矩陣運算的,這給編程帶來了極大的方便。例如以下的語句可直接定義向量并對其進行計算:>
11、;>x=2357; %定義行向量x>>y=2*x+1 %定義行向量yy=5 7 11 15MATLAB會忽略所有百分比符號(%)之后的文字,即%之后的文字為注釋??梢苑奖愕馗摹⒃黾踊騽h除向量的元素,如>>y(3)=y(3)-5%更改第3個元素y=5 7 6 15>>y(7)=y(3)%加入第7個元素y=5 7 6 15 0 0 6>>y(4:6)=%刪除第4個至第6個元素y=5 7 6 6>>y(3:5)=123%給第3個至第5個元素重新賦值y=5 7 1 2 3 >>z=y'%行向量y轉(zhuǎn)置,得到列向量zz
12、=57123輸入矩陣只需在每一列結(jié)尾加上分號(;),如:>>A=1 2 3 4;5 6 7 8;9 10 11 12A=1 2 3 45 6 7 89 10 11 12同樣地,我們可以對矩陣進行各種處理:>>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列出了常用的運算和函數(shù)。MATLAB提供了豐富內(nèi)置函數(shù),且這些函數(shù)的輸入變量通??梢允窍蛄?、矩陣或數(shù)組,例如>>sin(0pi/3pi/6pi/2)ans=0 0.8660 0.5000 1.0000這些運算和函數(shù)的功能和使用方法可查閱MATLAB的聯(lián)機幫助,或相關(guān)的參考書。1.2.6MATLAB流程控制語句和其他高級編程語言類似,MATLAB提供了流程控制語句,用于控制程序執(zhí)行的流程,其中比較常用的有:if/else if/else, switch/case/ otherwise, while,for, end,break,continue,return等等
14、。這里僅列舉其中幾條的語法,具體的用法可在以后的實驗中學(xué)習(xí),或參考MATLAB的在線文檔。1.if/elseif/else語句的語法:If expressionStatementsElse if expressionStatementselsestatementsend2.switch/case/otherwise語句的語法: switchswitch_expression%switch_expression為標量或字符串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ù)繪制成各種圖形,如曲線、直方圖、極坐標圖、等位線圖、向量場圖等。在信號與系統(tǒng)實驗中最常用的是plot函數(shù)和stem函數(shù)。plot函數(shù)是繪制二維曲線的函數(shù)。只需定義曲線上每一點的坐標,即可通過plot畫出曲線,例如:其中第1行使用linspace函數(shù)產(chǎn)生0到4之間的線性分布的300個元素的行向量,相當(dāng)于程序執(zhí)行后會生成一個名為“
16、Figure1”的新窗口,如圖1.4所示。圖1.4正弦曲線如果要在同一圖中畫出多條曲線,只需將坐標依次放入plot函數(shù)即可,并且可以改變每條曲線的顏色、線型等,如我們還可以給坐標軸加上標注,給曲線加上圖注,給圖加上標題,如最后,還可設(shè)定合適的坐標軸范圍,如即可得到圖1.5所示的圖形。當(dāng)然,這些作圖參數(shù)也可以通過Figure窗口的菜單和工具欄進行添加和修改。如果要在一個繪圖窗口中繪制多個圖形,可以使用subplot(m,n,p)命令,其中參數(shù)m和n給定在一個窗口中顯示m行n列個圖形,p表示選定第p個圖形區(qū)域,即在第p個區(qū)域作圖。例如以下的程序可生成如圖1.6所示的圖形:圖1.5改變曲線線形和作圖
17、參數(shù)第8行中的awgn函數(shù)是MATLAB提供的給信號添加高斯白噪聲的函數(shù),在信號處理中可用來模擬有噪聲的信號。第10行和第12行中的'interpreter','latex'的作用是使title函數(shù)以LaTeX命令的格式輸出文本,用來顯示比較復(fù)雜的數(shù)學(xué)公式。LaTeX是一種基于編程語言和宏命令的電子排版系統(tǒng),多用于科學(xué)論文的排版。像這些MATLAB函數(shù)的功能和用法,一方面可參閱在線文檔和相關(guān)資料,另一方面,也需要大家在使用過程中慢慢摸索并不斷積累經(jīng)驗。連續(xù)時間信號必須離散化,即按一定的時間間隔T逐點抽取信號的瞬時值形成離散信號序列,才能以數(shù)字的形式將其(近似地)
18、表示出來。而離散時間信號在時間自變量上是離散的,可以直接在MATLAB中以向量的形式表示和運算。在圖形表示上,可用stem函數(shù)畫出桿狀圖來顯示離散時間信號。例如以下的程序畫出了單位沖激函數(shù)和階躍函數(shù)。 生成的圖形如圖1.7所示。其中沖激序列和階躍序列也可以借助Matlab中的zeros和ones函數(shù)產(chǎn)生,如:或者,也可以用Matlab提供的stepfun以及來產(chǎn)生:圖1.7離散時間單位沖激信號和階躍信號上面的例子可以看出,要實現(xiàn)同樣的目的,方法是多樣的。通過MATLAB作圖我們可以得到相當(dāng)專業(yè)的圖形輸出。在生成滿意的圖形后,可通過圖形窗口的文件菜單,保存所生成的圖形,或者將圖形導(dǎo)出為其他圖形文
19、件格式,如位圖文件BMP、JPEG、TIFF,或者(更好的)矢量圖形文件EPS、PDF等,以供其他程序使用。1.3實驗內(nèi)容1.熟悉MATLAB軟件的使用環(huán)境,掌握在MATLAB環(huán)境中輸入、保存、運行和調(diào)試程序的過程。為了熟悉這些過程,請完成以下的實驗:(a)在命令行窗口分別生成兩個長度為3和4的隨機個位整數(shù)向量,求它們的卷積和。兩個長度分別為m和n的序列的卷積和的長度是多少?(提示:隨機行向量可用rand函數(shù)產(chǎn)生,取整可用fix或floor函數(shù),卷積和可用conv函數(shù)。)(b)在編輯器中將上面的程序保存為.m腳本文件。在命令行窗口運行該腳本,輸出卷積和的結(jié)果。(c)試編寫一個簡單的函數(shù)函數(shù)不僅
20、輸出兩個輸入向量的卷積和,還輸出卷積和的長度。然后,調(diào)用這個函數(shù)重新計算(a)中兩個隨機向量的卷積和。(提示:向量長度可用length函數(shù)。)2.MATLAB的線性代數(shù)計算能力非常強大。請編寫一個MATLAB腳本計算一個線性方程組3y+3z=42x+3yz=154x3yz=19的解。請估計一下如用C語言解決此問題的代碼量,作一個直觀的比較。(提示:可以直接用MATLAB運算符,即x=Ab來計算Ax=b的解。MATLAB有自己專門的算法計算線性方程組的解。對于上面的問題,也可以通過x=inv(A)*b來求得結(jié)果。這兩種方法有何不同?)3.抽樣函數(shù)sinc(t)=sint/t是信號與系統(tǒng)中常用的函
21、數(shù)。MATLAB的SignalProcessingToolbox提供了sinc函數(shù)計算抽樣函數(shù)的值。(a)在命令行窗口分別輸入"help sinc"、"doc sinc"以及"edit sinc",查看命令執(zhí)行后的結(jié)果;(提示:通過這些方式可獲得MATLAB函數(shù)的在線幫助、聯(lián)機文檔和源代碼。)(b)分別取兩個不同的間隔步長(如0.5和0.05,或者不同的坐標點數(shù),如20點和200點),用plot函數(shù)畫出sinc函數(shù)的波形。要求用subplot將結(jié)果畫在同一個繪圖窗口中以便比較,并設(shè)定合適的坐標軸范圍,同時添加坐標軸標注。4.復(fù)指數(shù)信號Aest是時間t的復(fù)函數(shù)。MATLAB可以直接進行復(fù)數(shù)運算,但在顯示信號時通常需要用模和相角、或者用實部和虛部來表示:(a)MATLAB的函數(shù)功能十分方便靈活,通過編程一個函數(shù)甚至可以方便地根據(jù)輸入、輸出參量個數(shù)的不同實現(xiàn)不同的功能。試編寫一個函數(shù)myexp.m,當(dāng)直接用myexp(t,-0.2,5,1)調(diào)用時(不指定輸出變量)會畫出如圖1.8所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家居品牌沙龍活動方案
- 家具城促銷活動方案
- 對話節(jié)目創(chuàng)意活動方案
- 家長京劇助教活動方案
- 小學(xué)春季賽課活動方案
- 室外搭棚活動方案
- 家庭障礙闖關(guān)活動方案
- 安踏贊助活動方案
- 小學(xué)畢業(yè)研學(xué)活動方案
- 家園截肢救助活動方案
- 人教版2025年八年級英語下學(xué)期期末總復(fù)習(xí)(專題訓(xùn)練)專題01單項選擇【期末易錯100題】(人教版)(學(xué)生版+解析)
- 企業(yè)財務(wù)內(nèi)控管理制度
- 2025年農(nóng)產(chǎn)品質(zhì)量安全追溯體系在食品安全監(jiān)管中的應(yīng)用與改進報告
- 做賬實操-漁業(yè)行業(yè)的賬務(wù)處理分錄實例
- (完整版)金融企業(yè)會計練習(xí)題
- 新教育 考試試題及答案
- 兒童活動抓魚活動方案
- 天津2025年中國醫(yī)學(xué)科學(xué)院放射醫(yī)學(xué)研究所第一批招聘筆試歷年參考題庫附帶答案詳解
- 2025甘肅省農(nóng)墾集團有限責(zé)任公司招聘生產(chǎn)技術(shù)人員145人筆試參考題庫附帶答案詳解析
- 安保安全考試試題及答案
- 2024年吉林省長春市中考二??荚嚨乩砩镌嚲?初中地理
評論
0/150
提交評論