MATLAB入門(mén)及其在DSP中應(yīng)用(說(shuō)明)_第1頁(yè)
MATLAB入門(mén)及其在DSP中應(yīng)用(說(shuō)明)_第2頁(yè)
MATLAB入門(mén)及其在DSP中應(yīng)用(說(shuō)明)_第3頁(yè)
MATLAB入門(mén)及其在DSP中應(yīng)用(說(shuō)明)_第4頁(yè)
MATLAB入門(mén)及其在DSP中應(yīng)用(說(shuō)明)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ApproachtoMATLABLectureScriptChenjx2013.4.15MATLAB入門(mén)及其在DSP中應(yīng)用●MATLAB:是MATrixLABoratory,矩陣實(shí)驗(yàn)室的縮寫(xiě)。該軟件在大學(xué)教學(xué)中的地位相當(dāng)于設(shè)計(jì)行業(yè)的CAD軟件。是經(jīng)常進(jìn)行計(jì)算機(jī)數(shù)值運(yùn)算的自動(dòng)控制、電子信息類學(xué)科人員應(yīng)該掌握的有力工具。●特點(diǎn):易學(xué)易用,通過(guò)幾個(gè)小時(shí)的練習(xí)就可以入門(mén)。使用方法類似于高級(jí)計(jì)算器。它是基于矩陣運(yùn)算的人機(jī)對(duì)話交互式軟件,適合于科學(xué)計(jì)算、工程計(jì)算和繪圖,其運(yùn)行結(jié)果具有很好的可視性。采用解釋方式,而不是編譯方式工作。每輸入一條語(yǔ)句,馬上就能夠看到該語(yǔ)句的結(jié)果。很符合人們的自然交流思想的習(xí)慣。(參考教材:西電,陳懷琛、樓順天他們2人均有系列書(shū)籍)MATLAB常識(shí)●基本概念:①對(duì)話語(yǔ)句中,每個(gè)變量默認(rèn)代表一個(gè)矩陣,變量可以有n×m個(gè)元素,特別有單個(gè)元素,數(shù)組,方陣。②每個(gè)元素都看成是復(fù)數(shù)。即實(shí)數(shù)是虛部為零的復(fù)數(shù)。③所有的運(yùn)算(加、減、乘、除、函數(shù))都對(duì)矩陣及復(fù)數(shù)有效。④矩陣的行、列(階)無(wú)需定義,由輸入數(shù)據(jù)行、列數(shù)的多少而能夠自動(dòng)決定。⑤智能化繪圖功能,自動(dòng)確定合適(autoscale)的坐標(biāo),可繪制三維的彩色圖形。⑥極強(qiáng)的可擴(kuò)展性,在基本軟件主體平臺(tái)上能夠外掛各種專業(yè)的模塊工具箱(Toolbox)。MATLAB工作環(huán)境●MATLAB主要工作環(huán)境(界面):①命令窗(CommandWindow)。②圖形窗(FigureWindow)。③文本編輯器(FileEditor)英文半角,區(qū)分大小寫(xiě)。各窗口切換快捷鍵(shortcut):Alt+Tab。●命令窗:人機(jī)交互對(duì)話窗,可在此窗中鍵入MATLAB的各種命令。如:x1=sqrt(5),2=[13;24],y=3/x2●在命令窗中的鍵入命令行及其修改方法:↑鍵CtrL-P是調(diào)出上一行(歷史)命令,Home移行首↓鍵CtrL-N調(diào)出下一行命令,End移至該行尾。Clc是清窗口擦除。Esc鍵是恢復(fù)命令輸入行的空白狀態(tài)(清除該行)。MATLAB工作環(huán)境(續(xù))●主菜單File中的Preferences(備選):①命令窗字體、背景等設(shè)置。②文本編輯器選擇。內(nèi)建builtin自帶的與外掛兩類。③數(shù)字格式設(shè)置(NumericFormat)。命令:Formatlong(16位decimal)也稱為二進(jìn)制雙精度,MATLAB只用這一種數(shù)據(jù)格式存儲(chǔ)與運(yùn)算。但顯示出來(lái)為了方便習(xí)慣,則有很多種可選的顯示形式。Formatbank(2位小數(shù)的十進(jìn)制):24.83Formatshort(4位小數(shù)的十進(jìn)制):24.8325(默認(rèn)Default就是這種保留4位小數(shù)形式)Formatshorte(5位十進(jìn)制帶指數(shù)):24.832e+02Formatlonge(16位十進(jìn)制帶指數(shù)):24.83….4e+02Formathex(16位十六進(jìn)制數(shù)):形如4ab42cd102ef00daFormat+(根據(jù)結(jié)果正顯示+、或負(fù)顯示-、或零0)Formatrat(分?jǐn)?shù)近似):148/6顯示布局:Loose稀疏(默認(rèn))與Compact緊湊,緊湊布局省去許多空行,可使一屏顯示更多內(nèi)容。在preference中選formatcompact就可進(jìn)入。默認(rèn)(default)是稀疏狀態(tài)。●Demo命令:用來(lái)演示該軟件自帶的一些典型程序?!馠elp:它是軟件的重要組成部分。這個(gè)命令可以看到MATLAB內(nèi)許多函數(shù)庫(kù),以及庫(kù)中的各種函數(shù)的使用方法和例子。點(diǎn)Help按鈕選HelpWindow可以查閱,很重要!命令help

elfun,如果elfun(elementaryfunction)是(子目錄名)庫(kù)名,則得到該庫(kù)內(nèi)的所有函數(shù)名稱。如果elfun本身就是函數(shù)名,則得到該函數(shù)的意義與用法。例子helptan2●關(guān)閉MATLAB:鍵入exit或quit或按右上角的×?!駡?zhí)行了任何一條繪圖命令,圖形窗就自動(dòng)打開(kāi),如figure命令、plot命令、subplot命令、mesh命令等?!裎募庉嬈鳎嚎砂岩唤M命令語(yǔ)句編輯成一個(gè)文件,它擴(kuò)展名是.M。如:Dsp1.M§1.基本語(yǔ)法●變量及其賦值:變量名、常量名、函數(shù)名、文件名的字符串總稱標(biāo)識(shí)符。①變量名、常量名最長(zhǎng)19個(gè)字符。超過(guò)部分自動(dòng)切掉。②函數(shù)名、文件名不超過(guò)8個(gè)字符。(DOS版,現(xiàn)在windows版已能夠管理長(zhǎng)文件名,不受此限制,但最好能夠遵守)。③標(biāo)識(shí)符首字母必須為英文(52個(gè),區(qū)別大小寫(xiě)),可包含阿拉伯?dāng)?shù)字1234等和下劃線“_”。④機(jī)器數(shù)據(jù)格式只有一種:64bit二進(jìn)制,即雙精度十進(jìn)制(16位)?;菊Z(yǔ)法(續(xù))●矩陣及其元素的賦值:變量=表達(dá)式(或數(shù)),標(biāo)量看成是1×1階的矩陣。X=[-1.03sqrt(3),(1+2+3)/5*4,23;1234],方括號(hào)[]表矩陣,行元素之間用空格(建議使用)或逗號(hào)“,”分隔,矩陣內(nèi)不同的元素行用分號(hào)“;”隔開(kāi)。每一句結(jié)尾用逗號(hào)“,”或Enter就立即執(zhí)行該行并顯示結(jié)果。若用分號(hào)“;”后Enter也是立即執(zhí)行,但不顯示結(jié)果?!褡兞吭赜脠@括號(hào)內(nèi)含數(shù)字來(lái)表達(dá):向量y(4),二維U(2,3),三維w(2,3,5)注意下標(biāo)號(hào)之間用逗號(hào)分隔。下標(biāo)超出則矩陣會(huì)自動(dòng)擴(kuò)展,而跳空的元素自動(dòng)賦0。該自動(dòng)功能只對(duì)賦值功能有效。特殊語(yǔ)法1●矩陣及其元素的賦值:①V(5,:)=[5,4,3]指V矩陣的第5行整行對(duì)應(yīng)賦值。②N=V([2,4],[1,3])指V矩陣的第2行和第4行與第1列和第3列交差點(diǎn)的4個(gè)元素取出,形成新的2×2矩陣N。③V([2,4,5],:)=[];表示要從V中刪抽掉第2、第4、第5行,實(shí)際是看成對(duì)以上3行整行賦空矩陣[],它無(wú)元素,而不是0元素!本概念用于縮小已有的矩陣規(guī)模。例如:a(:,[24])=[];表示抽掉a矩陣中的第2列與第4列。④只有表達(dá)式,沒(méi)有變量。不產(chǎn)生數(shù)字結(jié)果或產(chǎn)生但不想保存它,這時(shí)軟件都默認(rèn)用臨時(shí)變量ans來(lái)存放。如a/7,如果原來(lái)a=7,那么結(jié)果是ans=1.0000。特殊語(yǔ)法2●復(fù)數(shù):c=3+5.2i

或c=2+3j,如果標(biāo)識(shí)符i或j此前沒(méi)有賦值使用過(guò),就默認(rèn)為虛號(hào),否則,說(shuō)明已經(jīng)被占用了,就會(huì)出錯(cuò)。這時(shí)可用cleari,j語(yǔ)句來(lái)恢復(fù)它的默認(rèn)特性。矩陣的復(fù)元素的實(shí)部與虛部可分別賦值:z=[1,2;6,7]+[3,4;8,9]*jconj()表示把元素的虛部反號(hào),即僅共軛,;而符號(hào)

’指既共軛又轉(zhuǎn)置。如果只要轉(zhuǎn)置,要如何進(jìn)行?特殊語(yǔ)法3●變量檢查:鍵入who,顯示工作空間Workspace中所有變量名,而幾個(gè)內(nèi)定的變量:i,j,pi,eps,Inf和NaN則不顯示。鍵入whos,詳細(xì)顯示包括變量值、字節(jié)占用等多個(gè)特征參數(shù)。也可以用命令窗顯示按鈕獲得。①eps是相對(duì)浮點(diǎn)精度,機(jī)器能表達(dá)的極其小數(shù)。②Inf是無(wú)窮大,輸入2/0就可以得到它。NaN指非數(shù),包括0/0,0*Inf,Inf/Inf三個(gè)情況,是不確定的,引入這個(gè)概念,可以避免因?yàn)閿?shù)據(jù)很?。C(jī)器零)時(shí)出現(xiàn)一般意義上的非法運(yùn)算而停機(jī)。出現(xiàn)Inf或NaN,對(duì)它們作任何運(yùn)算,結(jié)果仍然是Inf或NaN。稱IEEE規(guī)則。特殊語(yǔ)法4●矩陣初等運(yùn)算:加、減必須同階。測(cè)試階數(shù)[n,m]=size(w2).輸出的n是行數(shù),m為列數(shù)。當(dāng)矩陣與標(biāo)量加,是自動(dòng)把標(biāo)量擴(kuò)成同階等元素矩陣。若已知是一維向量,則它的維值(長(zhǎng)度)也可用函數(shù)n=length(x)查詢獲得。作矩陣的+、-、*、\、/運(yùn)算時(shí),是先自動(dòng)檢查階數(shù)“合格”后,再計(jì)算的。求A逆v=inv(A),就是先查det(A)=0?若接近0,稱病態(tài)矩陣ill-conditioned

。矩陣左除\、或右除/,實(shí)際分別是左乘或右乘其逆陣。線性分割函數(shù)linspace(a,b,n):在a與b之間均分n個(gè)點(diǎn)值。共有n-1分段。特殊語(yǔ)法5●矩陣的整體運(yùn)算:冪“^”,指數(shù)expm,對(duì)數(shù)logm,開(kāi)方sqrtm。①冪:底數(shù)矩陣必須為方陣,指數(shù)為標(biāo)量。若指數(shù)是矩陣,則底數(shù)必須為標(biāo)量。結(jié)果都是同階的方陣。②按矩陣內(nèi)的元素做運(yùn)算的exp、log、sqrt是與上不同的?!癜裯×m矩陣的每個(gè)元素當(dāng)作運(yùn)算對(duì)象,成群地進(jìn)行某種運(yùn)算,稱為元素群運(yùn)算。Arrayoperations。①數(shù)組及其賦值:t=[初值:增量:終值],可得到等增量的數(shù)組。增量=1時(shí),也可省略該項(xiàng)。如k=[1:10],則得到1,2,3……10的數(shù)組。也可用:t=linspace(初值,終值,點(diǎn)數(shù))來(lái)獲得一維數(shù)組。點(diǎn)數(shù)省略,則表示默認(rèn)取100點(diǎn),即分成99段。特殊語(yǔ)法6對(duì)數(shù)分割(等比級(jí)數(shù)分割)函數(shù):L=logspace(lg初值,lg終值,點(diǎn)數(shù))。點(diǎn)數(shù)省略,則表示取50點(diǎn),即分成49段。它經(jīng)常用在頻率軸表示?!駷閰^(qū)別矩陣的整體運(yùn)算符號(hào),元素群運(yùn)算特地用.*、.\、./、.^表示相應(yīng)運(yùn)算,當(dāng)然,要求參與群運(yùn)算的矩陣同階(標(biāo)量除外)。不同階沒(méi)有元素對(duì)應(yīng)的條件?!裨厝汉瘮?shù):除expm,logm,sqrtm這3個(gè)整體函數(shù)外,余均可以。特殊語(yǔ)法7●群運(yùn)算例子:x=[0:0.1:pi/4]’;[x,sin(x),cos(x),tan(x)],

●顯示語(yǔ)句:disp(’xsin(x)cos(x)tan(x)’)。在單引號(hào)內(nèi)的全部顯示,如果放入空格、漢字等也全部原樣顯示。disp([x,sin(x),cos(x),tan(x)])則是顯示矩陣中元素的值?!窬仃嚨脑匦蛱?hào)index排列規(guī)定:以列從上到下、從左到右計(jì)算。序號(hào)與下標(biāo)subscript是一一對(duì)應(yīng)的。N行×m列的矩陣A中元素(j,k)的序號(hào)lp=(k-1)*n+j來(lái)計(jì)算??捎肹j,k]=find(A)函數(shù)尋找A中所有非零元素的位置。也可用lp=find(A)尋找A中所有非零元素的序號(hào)。序號(hào)與下標(biāo)互換函數(shù):ind2sub與sub2ind。

特殊語(yǔ)法8●%是注釋符。其后的如何字符都只是說(shuō)明?!襁壿嫷木仃囘\(yùn)算:以元素群運(yùn)算方式進(jìn)行,并得到一個(gè)同階的只有0或1的元素的矩陣。例如u=p|~p,得到的結(jié)果矩陣u與p同階全1。另外,增加了all全為真和any不全假兩個(gè)邏輯函數(shù),它們是按列運(yùn)算的。v=all(u),v中元素是如果該列u元素全1時(shí)為真1。v=any(u),v中元素是如果該列u元素不全0假時(shí)為真1。得到的V是個(gè)行向量?!?基本繪圖方法●MATLAB重要的特點(diǎn)是可視性很強(qiáng),歸功于豐富的繪圖函數(shù)及手段。在(graphics,graph2d,graph3d,specgraph)4個(gè)函數(shù)庫(kù)中?!窬€性直角坐標(biāo)中的二維曲線:plot語(yǔ)句:它以向量的序號(hào)為x坐標(biāo),元素值為y坐標(biāo),一一打點(diǎn),各點(diǎn)以直線相連。系統(tǒng)自動(dòng)選擇合適的坐標(biāo)比例。是一個(gè)非常有用的函數(shù)。例如:y=5*(rand(1,10)-0.5),title(‘myfirstplot’),xlabel(‘n’),ylabel(‘y’),grid?!駊lot(x,y):以x元素值為橫坐標(biāo),向量y元素值為y坐標(biāo),一一對(duì)應(yīng),各點(diǎn)以直線相連。此時(shí)x與y同長(zhǎng)度?;纠L圖方法(續(xù))●線型、點(diǎn)型與顏色:plot(t,y,’+r’)如果加有選擇項(xiàng),點(diǎn)型與顏色,點(diǎn)之間不再連線。查helpwindow中2維繪圖函數(shù)庫(kù)。標(biāo)志ymcrgbwk顏色黃品紅青紅綠藍(lán)白黑標(biāo)志.0×+-*:-.--點(diǎn)型實(shí)點(diǎn)圓圈×號(hào)+號(hào)實(shí)線星號(hào)點(diǎn)線點(diǎn)劃虛線常用繪圖函數(shù)1●多條曲線的繪制:

plot(t,[x,y,…]),長(zhǎng)度相同,自動(dòng)顏色?!駂old命令:保持已繪制的圖,第二次執(zhí)行到的plot函數(shù)就會(huì)畫(huà)在其上,形成多條。holdoff

命令,是解除保留功能。畫(huà)一張圖就覆蓋掉以前的?!駊lot(t,y,’+r’,t1,x,’:g’,p,w,’-y’)設(shè)置了多組向量對(duì),可加選擇點(diǎn)型與顏色。●plotyy(t,y,’+r’,t1,y1,’*r’)2組向量對(duì),橫坐標(biāo)t和t1同分割,左縱坐標(biāo)y與右縱坐標(biāo)y1可不同比例。●gtext(’y’)函數(shù),用來(lái)標(biāo)注文字,由鼠標(biāo)拖動(dòng)放置。常用繪圖函數(shù)2●圖形屏幕窗的控制:包括:開(kāi)與關(guān),開(kāi)多個(gè)圖形窗,一個(gè)窗內(nèi)多幅分圖,各分圖可取不同坐標(biāo),擦除等。figure命令:打開(kāi)新的圖形窗。第一個(gè)圖形窗在執(zhí)行plot命令時(shí)會(huì)自動(dòng)彈出。隨后的繪圖命令都將繪在該窗口中。如果要繪在另外窗口,用figure命令并自動(dòng)編號(hào)。選擇哪個(gè)窗時(shí),需要先執(zhí)行選擇命令figure(i),再在該窗中繪圖。否則,都繪在最后顯示的那個(gè)窗圖中。clf命令:擦除當(dāng)前圖形窗的內(nèi)容。close命令:關(guān)閉當(dāng)前圖形窗。常用繪圖函數(shù)3●subplot(n,m,p):把圖形窗分割成n×m子圖,并在第p張子圖處繪圖。輸入subplot(1,1,1)則回到全屏幕單圖形式。P的排列是“文字習(xí)慣”方向。從左到右,從上到下。axis命令:控制坐標(biāo)軸的比例與外觀大小。該命令非常豐富實(shí)用。MATLAB默認(rèn)是自動(dòng)定比例尺的,鍵入axis(axis)將固定用最當(dāng)前的比例尺,鍵入axis(’auto’)則恢復(fù)自動(dòng)定比功能。V=axis,該語(yǔ)句得到當(dāng)前圖形邊界4個(gè)參數(shù),如是3維圖則有6個(gè)參數(shù)。用axis(v)可規(guī)定圖形邊界。V是4參數(shù)或6參數(shù)向量。axis(’equal’)2軸相同同比例尺??梢哉{(diào)整圖形外觀。常用繪圖函數(shù)4●直角坐標(biāo)中其他繪圖形式:stem(t,y)是繪脈沖圖;stairs(t,y)是繪階梯圖;

bar(t,y)是繪條形圖;fill(t,y,’r’)是填充繪圖;如:title(’fill(t,y,”r”)’)注意:?jiǎn)我?hào)內(nèi)的單引號(hào)要用雙引號(hào)。但顯示到圖形上還是單引號(hào)’●polar(theta,rho)命令:繪制極坐標(biāo)圖,角度是rad弧度。角度在第一個(gè)參數(shù)?!駆oglog(t,y,’+r’)命令:橫坐標(biāo)t與縱坐標(biāo)y以log10刻度?!駍emilogx(t1,y1,’*r’)命令:橫坐標(biāo)t1對(duì)數(shù)刻度,而縱坐標(biāo)y1是線性刻度。

semilogy(t1,y1,’*r’)命令:橫坐標(biāo)t1線性刻度,而縱坐標(biāo)y1是對(duì)數(shù)刻度。常用繪圖函數(shù)5●3維空間曲線plot3(x,y,z,’s’)s是線型與顏色標(biāo)識(shí),該項(xiàng)可省。●空間曲面繪制:mesh和surf函數(shù),它以x-y網(wǎng)格點(diǎn)計(jì)算z的值,繪出高度點(diǎn)后,各點(diǎn)互連以直線,成曲面。繪圖與控制命令:可查閱helpgraph3d,helpspecgraph?!駌otate3d,此命令執(zhí)行后,以鼠標(biāo)拖動(dòng)3維圖形旋轉(zhuǎn)?!馽ontour命令:把曲面等高線垂直投影到x-y平面上?!耧瀳Dpie和條形bar及相量圖compass命令?!駝?dòng)畫(huà)命令movie。常用繪圖函數(shù)舉例●Sa函數(shù):x=-8:0.5:8;y=x’;%x與y軸各有33個(gè)取樣點(diǎn),間隔0.5。X=ones(size(y))*x;%全1列陣乘行向量x得到矩陣33×33。Y=y(tǒng)*ones(size(x));R=sqrt(X.*X+Y.*Y);%求1089個(gè)各網(wǎng)格點(diǎn)處到原點(diǎn)的距離。z=sin(R)./R;%抽樣Sa函數(shù),可以進(jìn)行旋轉(zhuǎn)觀看。mesh(z),pause%繪曲面圖。原點(diǎn)0/0是NaN,圖中缺掉一點(diǎn)。為什么?R=sqrt(X.*X+Y.*Y)+eps;%加個(gè)微小量?!?.M文件及程序調(diào)試●MATLAB有命令行和程序文件兩模式。后者是由matlab語(yǔ)句構(gòu)成的用戶源程序,擴(kuò)展名.m;又稱M文件,是ASCII文本??芍苯佑酶鞣N編輯軟件閱讀?!馦文件分為:主程序文件(又稱底稿)與函數(shù)文件。主程序文件(腳本)scriptfile:用戶為解決特定問(wèn)題編寫(xiě)的程序。函數(shù)文件:供主程序調(diào)用的通用子程序??蛇f歸。有700個(gè)基本的,幾千個(gè)專業(yè)的。關(guān)于編程用的基本語(yǔ)言結(jié)構(gòu),可看helplang中各種規(guī)則。●M文件格式:%后面直到該行尾是注釋,包括漢字。M文件格式(續(xù))主程序與子程序共同使用的變量稱全局變量:用global聲明,各變量用空格分開(kāi)。如globalx1y1wr…●程序編輯須是:半角英文字母和符號(hào)。建議用它自帶的編輯器較妥。它有智能提示與實(shí)時(shí)檢查功能?!馦文件名不能帶有漢字,且要存放在matlab的搜索路徑上的子目錄中。這樣就完成了程序文件的編制?!褡越ǖ奈募Auser要預(yù)先在matlab的搜索路徑上(搜索范圍)登記??梢杂妹畲吧系陌粹o完成?;騪ath?!裨诿畲爸墟I入該文件名就開(kāi)始執(zhí)行該自編的程序了。調(diào)試程序用的人機(jī)交互命令1●echoon與echooff:M文件中的命令語(yǔ)句執(zhí)行時(shí)是不會(huì)顯示在屏幕上的。但如果加入echoon語(yǔ)句,則在其后要執(zhí)行每行程序前,將先顯示出來(lái)。●pause(n)程序執(zhí)行到此處,暫停n秒后,再繼續(xù)執(zhí)行。若不帶時(shí)間參數(shù),即pause,則一直等待至用戶按任意鍵后,才繼續(xù)執(zhí)行。●keyboard:程序執(zhí)行到此暫停,并顯示字符K,此時(shí)相當(dāng)于回到命令行模式,用戶可以進(jìn)行各種檢查。如要繼續(xù)執(zhí)行,則鍵入return命令?!馸C是強(qiáng)行終止程序運(yùn)行。Control-C。調(diào)試程序用的人機(jī)交互命令2●X=input(’N=’)語(yǔ)句:程序執(zhí)行到此暫停,并顯示單引號(hào)里的內(nèi)容,此時(shí)要求用戶輸入數(shù)據(jù),數(shù)據(jù)輸入后,就繼續(xù)執(zhí)行。它也可以輸入字符串:S=input(’提示’,‘s’),把鍵入的字符串賦給S?!駎ype程序名:將顯示該程序M語(yǔ)言清單。很有用?!駍ave:把workspace的內(nèi)容保存在默認(rèn)的名matlab.mat?!駍avetempxyz…:把workspace的變量x,y,z保存在文件名temp.mat中?!駆oad:與save相對(duì)應(yīng)。函數(shù)文件(子程序)●由function

開(kāi)頭,后跟的函數(shù)名必須與文件名相同。盡管它形式也是name.M?!裼休斎?、輸出的啞元變量??蛇M(jìn)行變量傳遞?!癯墙?jīng)過(guò)global聲明,子程序中的所有變量都是局部的。不保存在工作空間中?!窭樱簃ean.m。鍵入typemean。顯示:functiony=mean(x)…………例子●例子:mean.m。鍵入typemean。顯示:functiony=mean(x)%meanistogettheaverageofxwhenit’saarray。%meanistogetanaveragearraywhenxisamatrix。[m,n]=size(x);ifm==1m=n;end%dealwithanarray.y=sum(x)/m與Matlab軟件有關(guān)的常識(shí)●matlab主目錄下的各文件夾意義:●bin(二進(jìn)制子目錄),是matlab.exe主程序,windows應(yīng)用程序。●toolbox:內(nèi)有l(wèi)ocal、matlab(含21個(gè)基本函數(shù)庫(kù))兩個(gè)文件夾?!駇atlabrc.m(軟件啟動(dòng)時(shí)主調(diào)用M文件,它規(guī)定了搜索路徑)?!裼脩糇越╱ser文件夾后,用path按鈕放入搜索域內(nèi)?!駱?biāo)識(shí)符(變量)辨認(rèn)順序:工作空間變量——內(nèi)部保留變量——擴(kuò)展名.mex的文件名——擴(kuò)展名.m的文件名。若文件名相同,只認(rèn)優(yōu)先。與Matlab軟件有關(guān)的常識(shí)●what命令:用來(lái)列出當(dāng)前目錄下全部matlab能夠識(shí)別的所有文件。包括:后綴.m的程序文本文件、后綴.mex的二進(jìn)制可執(zhí)行文件、后綴.mat的數(shù)據(jù)文件?!裨诿畲爸谢騧文件里,以!開(kāi)頭的命令行是DOS或windows操作系統(tǒng)的命令,不退出matlab環(huán)境,而執(zhí)行相應(yīng)的軟件。如:!Notepad

會(huì)打開(kāi)記事本。●屏幕數(shù)據(jù)記錄:在命令窗鍵入diaryon,則從此時(shí)起以文本格式記錄屏幕所有內(nèi)容于默認(rèn)的文件diary中,如鍵入diarymy23,則放在文件my23中。diaryoff停止記錄隨后的屏幕內(nèi)容。與Matlab軟件有關(guān)的常識(shí)●日期與時(shí)間命令:●date:提取當(dāng)前日期的字符串?!馽lock:提取機(jī)器當(dāng)前日期,包含年、月、日、時(shí)、分、秒?!馽putime:提取當(dāng)前cpu時(shí)鐘?!馿time(clock,r):經(jīng)歷時(shí)間,先對(duì)r賦時(shí),再求與執(zhí)行時(shí)刻差?!駎ic:秒表啟動(dòng),toc:秒表停止。此時(shí)顯示時(shí)間為經(jīng)歷時(shí)間?!衽cWord的關(guān)系:能夠用剪貼板clipboard傳送命令窗中的所有文字、數(shù)據(jù)、圖形。Copy之前,應(yīng)該先調(diào)整大小。用copyoption里的metafile(矢量模式)進(jìn)行圖形cut與paste,在Word中還可縮放。而通常不用bitmap(點(diǎn)陣模式)。●例子:計(jì)算一個(gè)100階方陣的逆矩陣,所需要的時(shí)間。A=rand(100,100);tic;y=inv(A);tocMatlab常用函數(shù)庫(kù)的應(yīng)用●隨機(jī)數(shù)矩陣:rand(m,n):生成m×n的0與1均布矩陣,E=0.5,方差0.2887randn(m,n):生成m×n正態(tài)分布矩陣,E=0,方差為1。y=randn(1,1000);hist(y,50)用直方圖顯示?!馽orrcoef(x,y),求同長(zhǎng)度的信號(hào)向量的相關(guān)系數(shù)?!馽onv(x,y):給出x與y向量的線性卷積。●filter(b,a,x):輸入信號(hào)向量x,濾波器傳遞函數(shù)的分子多項(xiàng)式系數(shù)向量b,分母多項(xiàng)式系數(shù)向量a,產(chǎn)生輸出信號(hào)向量。Matlab常用函數(shù)庫(kù)的應(yīng)用(續(xù))●X=fft(x,N):求時(shí)間信號(hào)向量x的離散傅立葉變換X。N取最接近的大于x點(diǎn)數(shù)的2冪次點(diǎn)。自動(dòng)后補(bǔ)零。復(fù)數(shù)向量X各元素的幅度與相位用abs及angle求出?!窭樱簍=0:.001:3;u=sin(300*t)+2*cos(200*t);U=fft(u);plot(abs(U))axis([0,300,0,3000])%前一對(duì)值是x坐標(biāo),后一對(duì)是y坐標(biāo)范圍。a信號(hào)頻率100,幅度2,b信號(hào)頻率150,幅度1。采樣頻率1000×2π=3140多項(xiàng)式函數(shù)庫(kù)POLYFUN●表達(dá):以正冪遞減向右排列、缺項(xiàng)為0形成向量如:a(x)=2x3+4x2+6x+8,其向量a=[2,4,6,8].●conv(p,q):多項(xiàng)式p與q相乘?!馿=polyder(a):多項(xiàng)式求導(dǎo)?!穸囗?xiàng)式相加+,長(zhǎng)度不等時(shí),應(yīng)在短的向量前面補(bǔ)零。為什么?●[q,r]=deconv(x,y):多項(xiàng)式相除,有兩個(gè)結(jié)果向量q與r,除商式外,還有余子式。規(guī)定:前向量q是商式,第二向量r是余子式?!馼=root(c):多項(xiàng)式求根?!馾=poly(b):由根反求多項(xiàng)式。多項(xiàng)式函數(shù)庫(kù)POLYFUN(續(xù))●多項(xiàng)式求值:F=polyval(c,x0)。以x0值代入多項(xiàng)式求出值。例:頻響:w=linspace(0,10);%默認(rèn)100點(diǎn)。A=polyval(a,j*w);B=polyval(b,j*w);subplot(2,1,1);plot(w,abs(B./A))%幅度subplot(2,1,2);plot(w,angle(B./A))%相位w1=logspace(-1,1);%0.1到10對(duì)數(shù)分割50點(diǎn)。F=polyval(b,j*w1)./polyval(a,j*w1);subplot(2,1,1),loglog(w1,abs(F))雙對(duì)數(shù)。subplot(2,1,2);semilogx(w1,angle(F)),%y軸線性。留數(shù)法residue解線性微分方程●線性常微分方程的Laplace表示:Y(s)=B(s)/A(s)。其中設(shè)A(s)為n階多項(xiàng)式,B(s)為m階多項(xiàng)式?!馵r,p,k]=residue(b,a):獲得3個(gè)輸出向量,p為單極點(diǎn)值,r是相應(yīng)極點(diǎn)的留數(shù)。當(dāng)n>m時(shí),k為空矩陣,因?yàn)闆](méi)有整多項(xiàng)式。Y(s)=r(1)/s-p(1)+r(2)/s-p(2)+…+r(n)/s-p(n)時(shí)域表達(dá):y(t)=r(1)expp(1)t+r(2)expp(2)t+…+r(n)expp(n)t留數(shù)法residue解線性微分方程求y’’’+5y’’+4y’+7y=3x’’+0.5x’+4x在x=u(t)階躍信號(hào)和x=δ(t)沖激信號(hào)激勵(lì)下的解。解:x(s)=1脈沖響應(yīng)和x(s)=1/s階躍響應(yīng);①脈沖響應(yīng):a=[1,5,4,7];b=[3,0.5,4];%a向量、b向量。[r,p,k]=residue(b,a);%得到3個(gè)向量。t=0:0.2:10;%等分點(diǎn),50個(gè)。y1=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t);plot(t,y1)②把a(bǔ)=[1,5,4,7,0],增加1階,可得階躍響應(yīng)。MATLAB應(yīng)用例子●單位脈沖、單位階躍、正弦連續(xù)、復(fù)指數(shù)信號(hào)的matlab表示。Clear,t0=0;tf=5;dt=0.05;t1=1;●單位脈沖:t=[t0:dt:tf];%在0~5之間的t1處有個(gè)沖激。st=length(t);

n1=floor((t1-t0)/dt);%t1對(duì)應(yīng)樣本序號(hào)數(shù)。x1=zeros(1,st);%清零向量。x1(n1)=1/dt;%在t1處給出沖激。subplot(2,2,1),stairs(t,x1),axis([0,5,0,1.1/dt])●單位階躍:x2=[zeros(1,n1-1),ones(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論