MATLAB實驗指導書通信工程_第1頁
MATLAB實驗指導書通信工程_第2頁
MATLAB實驗指導書通信工程_第3頁
MATLAB實驗指導書通信工程_第4頁
MATLAB實驗指導書通信工程_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

/MATLAB實驗指導書計算機及信息學院通信工程專業(yè)實驗SEQ實驗\*CHINESENUM3一Matlab軟件初步入門實驗目的1、了解Matlab語言的基本功能和特點2、熟悉Matlab的基本界面3、了解Matlab的路徑搜索實驗儀器1、計算機2、MATLAB軟件環(huán)境實驗原理1Desktop操作桌面的啟動啟動matlab2CommandWindow操作應用,熟悉操作桌面各個窗口的功能和位置。注意事項 注意常用操作命令和快捷鍵以及命令窗口中的標點符號命令使用。實驗內(nèi)容1、熟悉MATLAB主界面,工具欄及各窗口;2、完成MATLAB的路徑搜索;3、熟悉MATLAB的數(shù)據(jù)類型、表達式、函數(shù)、常用命令和快捷鍵。掌握指令窗的使用1題:在matlab環(huán)境下運用以下指令,以便初步了解關(guān)于常數(shù)的預定義變量。重點掌握各常數(shù)的含義。formatshorteRMAd=realmax('double') %雙精度類型(默認)時最大實數(shù)RMAs=realmax('single') %單精度類型時最大實數(shù)RMAd=1.7977e+308RMAs=3.4028e+038IMA64=intmax('int64') %int64整數(shù)類型時最大正整數(shù)IMA32=intmax %int32(默認)整數(shù)類型時最大正整數(shù)IMA32=intmax('int16') %int16整數(shù)類型時最大正整數(shù)IMA64=92233727IMA32=2147483647IMA32=32767e1=eps %雙精度類型時的相對精度e2=eps(2) %表達2時的絕對精度e1=2.2213e-016e2=4.4426e-016pians=3.1493使用CommandHistory歷史指令窗 歷史指令窗記錄著:每次開啟MATLAB的時間,及開啟MATLAB后在指令窗中運行過的所有指令行。該窗不但能清楚地顯示指令窗中運行過的所有指令行,而且所有這些被記錄的指令行都能被復制,或再運行。關(guān)于歷史指令窗的功能詳見表1-1。表1-1歷史指令窗主要應用功能的操作方法應用功能操作方法簡捷操作方法單行或多行指令的復制點亮單行或多行指令;按鼠標右鍵引出現(xiàn)場菜單;選中{Copy}菜單項,即可用復合鍵[Ctrl+V]把它“粘貼”到任何地方(包括指令窗)。單行指令的運行點亮單行指令;按鼠標右鍵引出現(xiàn)場菜單;選中{EvaluateSelection}菜單項,即可在指令窗中運行,并見到相應結(jié)果。鼠標左鍵雙擊單行指令。多行指令的運行點亮多行指令;按鼠標右鍵引出現(xiàn)場菜單;選中{EvaluateSelection}菜單項,即可在指令窗中運行,并見到相應結(jié)果。(詳見例1.5-1)把多行指令寫成M文件點亮多行指令;按鼠標右鍵引出現(xiàn)場菜單;選中{CreateM-File}菜單項,就引出書寫著這些指令的M文件編輯調(diào)試器;再進行相應操作,即可得所需M文件。2題:畫出衰減振蕩曲線,的取值范圍是t=0:pi/50:4*pi; %定義自變量t的取值數(shù)組y=exp(-t/3).*sin(3*t); %計算及自變量相應的y數(shù)組。注意:乘法符前面的小黑點。plot(t,y,'-r','LineWidth',2) %繪制曲線axis([0,4*pi,-1,1])xlabel('t'),ylabel('y')演示如何再運行給定例題中的中的全部繪圖指令CurrentDirectory路徑設置器和文件管理3題:搜索一個名為eps的指令,看看會得出什么結(jié)果?工作空間瀏覽器和變量編輯器4題:畫出衰減振蕩曲線,的取值范圍是(配圖1.3-4)。本例演示:展示數(shù)組運算的優(yōu)點;展示MATLAB的可視化能力。程序如下:t=0:pi/50:4*pi; %定義自變量t的取值數(shù)組y=exp(-t/3).*sin(3*t); %計算及自變量相應的y數(shù)組。注意:乘法符前面的小黑點。plot(t,y,'-r','LineWidth',2) %繪制曲線axis([0,4*pi,-1,1])xlabel('t'),ylabel('y')然后通過“工作空間瀏覽器”的運作,采用圖形顯示內(nèi)存變量t和y之間的關(guān)系圖形。按照書中所給的步驟操作一下matlab的幫助系統(tǒng),了解它的使用。實驗報告要求根據(jù)自己上機的內(nèi)容,將實驗內(nèi)容填寫在實驗報告中。實驗二數(shù)值數(shù)組及向量化運算一、實驗目的:掌握:數(shù)組的創(chuàng)建方法;數(shù)組的標識及尋訪;數(shù)組的運算;關(guān)系操作和邏輯操作。了解:“非數(shù)”NaN和“空”數(shù)組。二、實驗儀器:1、計算機2、MATLAB軟件環(huán)境三、實驗原理在matlab環(huán)境中創(chuàng)建和尋訪一維、二維數(shù)組及其運算,關(guān)系操作和邏輯操作;“非數(shù)”NaN和“空”數(shù)組的應用。四、注意事項數(shù)組浮點算法的特點及其運算和編程的規(guī)則。五、實驗內(nèi)容1一、二維數(shù)值數(shù)組的創(chuàng)建和尋訪;2數(shù)組運算;3“非數(shù)”NaN和“空”數(shù)組;4關(guān)系操作和邏輯操作。1題:一維數(shù)組的常用創(chuàng)建方法a1=1:6 a2=0:pi/4:pi a3=1:-0.1:0 b1=linspace(0,pi,4) b2=logspace(0,3,4) c1=[2pi/2sqrt(3)3+5i] rand('twister',0) c2=rand(1,5)2題:數(shù)組元素及子數(shù)組的各種標識和尋訪格式;冒號的使用;end的作用。A=zeros(2,6) A(:)=1:12 A(2,4) A(8) A(:,[1,3]) A([1,2,5,6]') A(:,4:end) A(2,1:2:5)=[-1,-3,-5] B=A([1,2,2,2],[1,3,5]) L=A<3 A(L)=NaN 3題:非數(shù)的產(chǎn)生和性質(zhì)(1)a=0/0,b=0*log(0),c=inf-inf(2)0*a,sin(a)(3)class(a)isnan(a) 4題:“空”數(shù)組的創(chuàng)建a=[]b=ones(2,0),c=zeros(2,0),d=eye(2,0)f=rand(2,3,0,4)5題:邏輯和關(guān)系操作(1)邏輯關(guān)系操作的組合A=[-2,-1,0,0,1,2,3]L1=~(A>1) L2=(A>0)&(A<2) (2)xor的作用A,B=[0,-1,1,0,1,-2,-3]C=xor(A,B)A=1:9,B=10-Ar0=(A<4)r1=(A==B)六、實驗報告要求將實驗命令和操作答案填寫及報告中。實驗三MATLAB程序設計及調(diào)試一、實驗目的1.掌握M腳本文件和M函數(shù)文件的編寫;2.掌握程序流程控制結(jié)構(gòu),能夠進行簡單程序設計;3.掌握程序調(diào)試的方法。二、實驗內(nèi)容及步驟1、分別編寫求取平均值及標準差的腳本文件和函數(shù)文件;關(guān)于M腳本文件和M函數(shù)文件MATLAB的M文件有兩類:腳本文件和函數(shù)文件。(1)腳本文件——將原本要在MATLAB的指令窗口中直接輸入的語句,放在一個以.m為后綴的文件中,這一文件就稱為腳本文件。有了腳本文件,可直接在MATLAB中輸入腳本文件名(不含后綴),這時MATLAB會打開這一腳本文件,并依次執(zhí)行腳本文件中的每一條語句,這及在MATLAB中直接輸入語句的結(jié)果完全一致。(2)函數(shù)文件——它的第一行必須是函數(shù)定義行。M函數(shù)文件由5部分構(gòu)成:◆函數(shù)定義行◆H1行◆函數(shù)幫助文本◆函數(shù)體◆注釋functiony=mean(x)%

MEANAverageormeanvalue.%

Forvectors,MEAN(X)isthemeanvalueoftheelementsinX.%

Formatrices,MEAN(X)isarowvectorcontainingthemean%

valueofeachcolumn.%[m,n]=size(x);ifm==1%Determinewhetherxisavectorm=n;endy=sum(x)/m;①函數(shù)定義行:functiony=mean(x)function為函數(shù)定義的關(guān)鍵字,mean為函數(shù)名,y為輸出變量,x為輸入變量當函數(shù)具有多個輸出變量時,則以方括號括起;當函數(shù)具有多個輸入變量時,則直接用圓括號括起。例如:function[x,y,z]=sphere(theta,phi,rho)當函數(shù)不含輸出變量時,則直接略去輸出部分或采用空方括號表示例如:functionprintresults(x)或function[]=printresults(x)所有在函數(shù)中使用和生成的變量都為局部變量(除非利用global語句定義),這些變量值只能通過輸入和輸出變量進行傳遞。因此,在調(diào)用函數(shù)時應通過輸入變量將參數(shù)傳遞給函數(shù);函數(shù)調(diào)用返回時也應通過輸出變量將運算結(jié)果傳遞給函數(shù)調(diào)用者;其它在函數(shù)中產(chǎn)生的變量在返回時被全部清除。②H1行:描述了函數(shù)的“功能”信息(很重要?。┳⒁猓涸诤瘮?shù)文件中,除了函數(shù)定義行之外,其它部分都是可以省略的。但作為一個函數(shù),為了提高函數(shù)的可用性,應加上H1行和函數(shù)幫助文本,為了提高函數(shù)的可讀性,應加上適當注釋。函數(shù)文件中第二行一般是注釋行,這一行稱為H1行,實際上它是幫助文本中的第一行。H1行不僅可以由helpfuntion-name命令顯示,而且,lookfor命令只在H1行內(nèi)搜索,③函數(shù)幫助文本:用來比較詳細地說明這一函數(shù)的用法以%開頭,輸入時helpfuntion-name命令,可顯示出H1行和函數(shù)幫助文本④函數(shù)體:完成指定功能的語句實體可采用任何可用的MATLAB命令,包括MATLAB提供的函數(shù)和用戶自己設計的M函數(shù)。⑤注釋★備注:●函數(shù)定義名和保存文件名必須一致。兩者不一致時,MATLAB將忽視文件首行的函數(shù)定義名,而以保存文件名為準;●函數(shù)文件的名字必須以字母開頭,后面可以是字母、下劃線以及數(shù)字的任意組合,但不得超過63個字符;●建議在編寫H1行時,采用英文表達。這樣處理是為了以后關(guān)鍵詞檢索方便。(3)腳本文件和函數(shù)文件比較

腳本文件函數(shù)文件定義行無需定義行必須有定義行輸入/輸出變量無有數(shù)據(jù)傳送直接訪問基本工作空間中的所有變量通過輸入變量獲得輸入數(shù)據(jù);通過輸出變量提交結(jié)果編程方法直接選取MATLAB中執(zhí)行的語句精心設計完成指定功能用途重復操作MATLAB功能擴展函數(shù)文件去掉其第一行的定義行,就轉(zhuǎn)變成了腳本文件。但這樣一來使用的局部變量就成了基本工作空間中的變量,這會帶來幾個問題:◆基本工作空間中及腳本文件中同名的變量會引起沖突◆使基本工作空間中變量數(shù)急劇增加,造成內(nèi)存緊張◆編程時要細心考慮各個腳本文件所用到的變量這些問題在函數(shù)文件中不復存在,MATLAB通過實參及形參一一對應的方式來實現(xiàn)函數(shù)的調(diào)用,這極大地方便了程序設計。舉例說明:分別編寫出求取平均值及標準差的腳本文件state1.m和函數(shù)文件state2.mstate1.m

%腳本文件%求陣列x的平均值和標準差[m,n]=size(x);ifm==1m=n;ends1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);state2.mfunction[mean1,stdev]=state2(x)%函數(shù)文件%求陣列x的平均值和標準差[m,n]=size(x);ifm==1m=n;ends1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);在命令窗口依次輸入如下命令:clearx=rand(1,100)+2;state1

%執(zhí)行stat1.m后,觀察基本空間中的變量情況whos

%可見:腳本文件所產(chǎn)生的所有變量都返回了工作空間★備注:1)運行腳本文件,產(chǎn)生的所有變量都駐留在MATLAB基本工作空間(Baseworkspace),只要不使用clear且不關(guān)閉指令窗口,這些變量將一直保存著。(基本工作空間隨MATLAB的啟動而產(chǎn)生,只有關(guān)閉MATLAB時,該基本空間才被刪除。)2)運行函數(shù)文件,MATLAB就會專門開辟一個臨時工作空間,稱為函數(shù)工作空間(Functionworkspace),所有中間變量都存放在函數(shù)工作空間中,當執(zhí)行完最后一條指令或遇到return時,就結(jié)束該函數(shù)文件的運行,同時該臨時函數(shù)工作空間及其所有中間變量就立即被清除。(函數(shù)工作空間隨具體M函數(shù)文件的被調(diào)用而產(chǎn)生,隨調(diào)用結(jié)束而刪除。函數(shù)工作空間是相對基本工作空間對立的、臨時的。在MATLAB這個運行期間,可以產(chǎn)生任意多個臨時函數(shù)工作空間,而基本工作空間。)3)如果在函數(shù)文件中,調(diào)用了某腳本文件,那么該腳本文件運行所產(chǎn)生的所有變量都放在該函數(shù)工作空間中,而不是放在基本工作空間中。2、分支結(jié)構(gòu)(a)if-else-end分支結(jié)構(gòu)語法形式:ifexpression1(commands1)elseifexpression2(commands2)……elsecommandsk)ifexpression(commands)end(b)switch-case結(jié)構(gòu)語法形式:switchvarcasetest1(commands1)casetest2(commands2)……casetestk(commandsk)otherwise(commands)(c)顯示學生成績等級的程序:var1=input('var1=');

%讓用戶通過鍵盤輸入數(shù)值、字符串或表達式switchvar1case{-2,-1}disp('var1isnegativeoneortwo.')case0disp('var1iszero.')case{1,2,3}disp('var1ispositiveone,two,orthree.')otherwisedisp('var1isothervalue.')end

3、循環(huán)語句(a)for循環(huán)結(jié)構(gòu):完成指定次重復的循環(huán)語法形式:forx=array

%

x——循環(huán)變量,依次取數(shù)組array的各列(commands)

%

commands——循環(huán)體,重復執(zhí)行的次數(shù)是確定的,end

(b)while循環(huán)結(jié)構(gòu):完成不定次重復的循環(huán)語法形式:whileexpression(commands)end(c)使用for循環(huán)來尋求Fibonacci數(shù)組中第一個大于10000的元素:n=100;a=ones(1,n);fori=3:na(i)=a(i-1)+a(i-2);ifa(i)>=10000a(i)break;%跳出所在的一級循環(huán)。end;end;i4、MATLAB程序調(diào)試MATLAB的調(diào)試器(Debugger)可幫助找出編程中的錯誤,使用調(diào)試器可在執(zhí)行中隨時顯示出工作空間的內(nèi)容,查看函數(shù)調(diào)用的棧關(guān)系,并且可單步執(zhí)行M函數(shù)代碼。MATLAB程序調(diào)試主要用來糾正兩類錯誤:◆格式錯誤:比如函數(shù)名的格式錯誤、缺括號等,MATLAB可在運行程序時檢測出大多數(shù)格式錯誤,并顯示出出錯信息和出錯位置。這類錯誤可很容易找到,并加以糾正?!暨\行錯誤:這些錯誤通常發(fā)生在算法和設計錯誤上,例如修改了錯誤的變量,計算不正確等。運行錯誤一般不易找出位置,因此要利用調(diào)試器工具來診斷。實驗四數(shù)值計算一、實驗目的掌握:函數(shù)極值的數(shù)值求解;常微分方程的數(shù)值解;矩陣運算和特征參數(shù);矩陣的變換和特征值分解;線性方程的解;一般代數(shù)方程的解及多項式運算。二、實驗儀器1、計算機2、MATLAB軟件環(huán)境三、實驗原理在matlab環(huán)境中求解數(shù)組微積分,矩陣和代數(shù)方程及其多項式的運算。四、注意事項注意求解各方程指令的使用并在英文狀態(tài)下輸入。五、實驗內(nèi)容1數(shù)值微積分2矩陣和代數(shù)方程3多項式運算和卷積1題:已知x=sin(x),求該函數(shù)在區(qū)間[0,2pi]中的近似導函數(shù)。本例演示:自變量增量的適當取值對數(shù)值導函數(shù)精度的影響。(1)增量取得過小d=pi/100;t=0:d:2*pi;x=sin(t);dt=5*eps; %x_eps=sin(t+dt);dxdt_eps=(x_eps-x)/dt; %plot(t,x,'LineWidth',5)holdonplot(t,dxdt_eps)holdofflegend('x(t)','dx/dt')xlabel('t')圖1增量過小引起有效數(shù)字嚴重丟失后的毛刺曲線(2)增量取得適當x_d=sin(t+d);dxdt_d=(x_d-x)/d; %plot(t,x,'LineWidth',5)holdonplot(t,dxdt_d)holdofflegend('x(t)','dx/dt')xlabel('t')圖2增量適當所得導函數(shù)比較光滑2題:矩陣標量特征參數(shù)計算。演示:rank,det,trace的使用;子行列式的計算。A=reshape(1:9,3,3) r=rank(A) d3=det(A) d2=det(A(1:2,1:2)) t=trace(A) 3題:行階梯陣簡化指令rref計算結(jié)果的含義(1)對4階魔方陣進行rref分解A=magic(4) %[R,ci]=rref(A) %(2)ci的含義r_A=length(ci)(3)R的含義aa=A(:,1:3)*R(1:3,4) %err=norm(A(:,4)-aa) %六、實驗報告要求根據(jù)自己上機的內(nèi)容,將實驗內(nèi)容填寫在實驗報告中。實驗五符號計算實驗目的掌握符號變量和符號表達式的創(chuàng)建,掌握MATLAB的symbol工具箱的一些基本應用。實驗內(nèi)容(1)符號變量、表達式、方程及函數(shù)的表示。(2)符號微積分運算。(3)符號表達式的操作和轉(zhuǎn)換。(4)符號微分方程求解。三、實驗步驟1.符號運算的引入在數(shù)值運算中如果求,則可以不斷地讓x接近于0,但不能得到精確結(jié)果,MATLAB的符號運算能解決這類問題:f=sym('sin(pi*x)/x')limit(f,'x',0)2.符號常量、符號變量、符號表達式的創(chuàng)建1)使用sym()創(chuàng)建輸入以下命令,觀察Workspace中A、B、f是什么類型的數(shù)據(jù),占用多少字節(jié)的內(nèi)存空間。A=sym('1')B=sym('x')f=sym('2*x^2+3*y-1')clearf1=sym('1+2')f2=sym(1+2)f3=sym('2*x+3')通過看MATLAB的幫助可知,sym()的參數(shù)可以使字符串或數(shù)值類型,無論是哪種類型都會生成符號類型數(shù)據(jù)。使用syms創(chuàng)建symsxyzx,y,zf1=x^2+2*x+1f2=exp(y)+exp(z)^2f3=f1+f23.符號矩陣創(chuàng)建例:symsa1a2a3a4A=[a1a2;a3a4]A(1),A(3)symsa1a2a3a4A=[a1a2;a3a4]符號算術(shù)運算1)符號量相乘、相除符號量相乘運算和數(shù)值量相乘一樣,分成矩陣乘和數(shù)組乘。a=sym(5);b=sym(7);c1=a*bc2=a/ba=sym(5);B=sym([345]);C1=a*B,C2=a\BsymsabA=[5a;b3];B=[2*ab;2*ba];C1=A*B,C2=A.*BC3=A\B,C4=A./B符號數(shù)值任意精度控制和運算任意精度的VPA運算可以使用命令digits(設定默認的精度)和vpa(對指定對象以新的精度進行計算)來實現(xiàn)。a=sym('2*sqrt(5)+pi')b=sym(2*sqrt(5)+pi)digitsvpa(a)digits(15)vpa(a)c1=vpa(a,56)c2=vpa(b,56)5.獨立變量的確定原則獨立變量的確定原則:在符號表達式中默認變量是唯一的。MATLAB會對單個英文小寫字母(除i、j)進行搜索,且以x為首選獨立變量。如果表達式中字母不唯一,且無x,就選在字母表順序中最接近x的字母。如果有相連的字母,則選擇在字母表中較后的那一個。例如:中,y是默認獨立變量。中,t是默認獨立變量。clearf=sym('a+b+i+j+x+y+xz')findsym(f)findsym(f,1),findsym(f,2),findsym(f,3)findsym(f,4),findsym(f,5),findsym(f,6)f=sym('a+b+i+j+x+y+xz')符號表達式的化簡:符號表達式化簡主要包括表達式美化(pretty)、合并同類項(collect)、多項式展開(expand)、因式分解(factor)、化簡(simple或simplify)等函數(shù)。分別按x的同冪項和e指數(shù)同冪項合并表達式:symsxt;f=(x^2+x*exp(-t)+1)*(x+exp(-t));f1=collect(f)f2=collect(f,'exp(-t)')化簡(simple或simplify).將函數(shù)化簡。clearall,symsx;f=(1/x^3+6/x^2+12/x+8)^(1/3);gi=simple(f)符號表達式的變量替換subs函數(shù)可以對符號表達式中的符號變量進行替換clearf=sym('(x+y)^2+4*x+10')f1=subs(f,'x','s')f2=subs(f,'x+y','z')符號極限、符號積分及微分求極限函數(shù)的調(diào)用格式>>limit(F,x,a)>>limit(F,a)>>limit(F)>>limit(F,x,a,'right')>>limit(F,x,a,'left')例:clearf=sym('sin(x)/x+a*x')limit(f,'x',0)limit(f,'a',0)limit(f)findsym(f)符號方程的求解1)常規(guī)方程求解函數(shù)的調(diào)用格式g=solve(eq)g=solve(eq,var)g=solve(eq1,eq2,...,var1,var2,...,varn)求一元二次方程的解。其求解方法有多種形式Seq=solve('a*x^2+b*x+c')或:Seq=solve('a*x^2+b*x+c=0')2)常微分方程求解求解常微分方程的函數(shù)是dsolve。應用此函數(shù)可以求得微分方程(組)的通解,以及給定邊界條件(或初始條件)后的特解。常微分方程求解函數(shù)的調(diào)用格式:r=dsolve('eq1,eq2,...','cond1,cond2,...','v')r=dsolve('eq1','eq2',...','cond1','cond2',...','v')說明:以上兩式均可給出方程eq1、eq2對應初始條件cond1、cond2...之下的以v作為解變量各微分方程的解。常微分方程解的默認變量為t。第二式中最多可接受的輸入式是12個,微分方程的表達方法。在用MATLAB求解常微分方程時,用大寫字母Dy表示微分符號,用D2y表示。依此類推。邊界條件以類似于或的等式給出。其中y為因變量,a、b為常熟。如果初始條件給得不夠,求出的解則為含有C1、C2等待定常數(shù)的通解。例:求微分方程的通解。Y=dsolve(‘Dy=2*x’,’x’)四、實驗報告要求根據(jù)自己上機的內(nèi)容,將實驗內(nèi)容填寫在實驗報告中。實驗六matlab圖形軸線框特性設置實驗目的1.掌握坐標軸特性設置的常用命令。2.掌握對線特性的設置。3.掌握圖形窗口的設置命令。實驗方法及內(nèi)容1.實驗指令axis——設定坐標比例和尺寸。其調(diào)用格式如下:axis([xminxmaxyminymax])axis([xminxmaxyminymaxzminzmax])v=axis設置x、y、z軸等的范圍。axistight設置當前數(shù)據(jù)為坐標范圍。axisequal等長刻度坐標軸。axissquare產(chǎn)生正方形坐標軸。axisnormal缺省坐標軸。axis(axes_handles,…)對軸進行命令設定。[mode,visibility,direction]=axis(‘state’)返回當前坐標軸設置的參數(shù)。set——設置圖形對象屬性。其調(diào)用格式如下:set(h,‘PropertyName’,PropertyValue,…)用來設置句柄h所對應的圖形對象的特定屬性值。若h是句柄組成的向量,則set函數(shù)將設置所有對象的屬性值。set(h,a)此處a是一個結(jié)構(gòu),其域名即為屬性名,屬性值包含在域中;它可以把屬性值設置給和域名相同的屬性。set(h,pn,pv)參數(shù)pn必須是1×N的單元矩陣,其元素為需要設置的屬性名;參數(shù)pv是一個M×N的由對應屬性值組成的單元矩陣,M為向量h的長度值。set(h,‘PropertyName1’,PropertyValue1,‘PropertyName2’,PropertyValue2,a=set(h,‘PropertyName’)或set(h,‘PropertyName’)返回或者顯示句柄h對應的對象的屬性值。此屬性值有可能為空。a=set(h)或set(h)返回或者顯示由句柄h對應的所有對象的屬性名和屬性值所構(gòu)成的結(jié)構(gòu)。set(gca,‘PropertyName’,PropertyValue,…)gca表示當前坐標軸,PropertyName是指坐標軸參數(shù),PropertyValue為參數(shù)的屬性值(王家文,曹宇,2004)。subplot——創(chuàng)建和控制多坐標軸。其調(diào)用格式如下:subplot(m,n,p)subplot(m,n,p,‘replace’)subplot(h)subplot(‘Position’,[leftbottomwidthheight])h=subplot(…)subplot(m,n,p)表示把當前窗口對象分成m×n塊矩陣區(qū)域并在第p塊區(qū)創(chuàng)建一個新的坐標軸,這個新的坐標軸設定為當前坐標軸。參數(shù)‘replace’表示當前坐標軸存在的話,刪除它并創(chuàng)建一個新的坐標軸。subplot(‘Position’,[leftbottomwidthheight])是在規(guī)格化的窗口對象(范圍:0.0到1.0)里創(chuàng)建一個位置為[leftbottomwidthheight]的坐標軸。h=subplot(…)返回創(chuàng)建新坐標軸的句柄。grid——控制網(wǎng)格線切換指令。gridon打開網(wǎng)格線gridoff關(guān)閉網(wǎng)格線2.實驗要點(1)熟悉坐標控制命令axis。坐標軸范圍必須設置恰當,否則圖像的某一部分將會無法顯示。(2)set為圖形對象屬性設置命令,掌握其參數(shù)的設置。(3)subplot函數(shù)用于創(chuàng)建和控制多坐標軸。3.實驗內(nèi)容程序1坐標軸特性設置figure(1)%創(chuàng)建窗口圖形.x=logspace(-2,0,500);%生成第一個元素為,最后一個元素為,500為采樣點.plot(x,((sin(1./x)).^2)./x);%plot命令,在二維坐標系里繪制線性圖形.set(gca,'XScale','log','YScale','linear')%XScale、Yscale可設定X軸、Y軸的縮放比例,其參數(shù)屬性值有l(wèi)inear(線型)、log(對數(shù)型).set(gca,'XGrid','on','YGrid','on')%XGrid、YGrid為設定X軸、Y軸的網(wǎng)格線的命令,其參數(shù)屬性值:on/off.%set(gca,'XDir','normal','YDir','reverse');%XDir、YDir可設定軸的方向,其參數(shù)屬性值:normal(默認)/reverse(反向).%set(gca,'XDir','reverse','YDir','reverse');%set(gca,'Xcolor','red','YColor','red');%XColor、YColor設定軸的顏色.figure(2)t=-2+eps:50+eps;%eps為浮點相對精度.y=((sin(1./t)).^2)./t;semilogy(t,y);%在y對數(shù)比例坐標系里繪制圖形.grid%打開網(wǎng)格線.axis([-250-715])%設定軸的范圍,X軸由-2到50,Y軸由-7到15.實驗結(jié)果如下:圖1-1坐標軸特性設置1圖1-2坐標軸特性設置2程序2線特性設置x=0:0.02:1;%設置x的范圍,由0到1,間隔值為0.02.hndl=plot(x,humps(x))set(hndl,'Marker','+')%設置數(shù)據(jù)的點型.set(hndl,'LineWidth',1)%設置線的線寬.set(hndl,'MarkerSize',8)%設置點型大小.set(hndl,'Color','red')%設置線的顏色.xlabel('x')ylabel('humps(x)')grid%打開網(wǎng)格線.實驗結(jié)果如下:圖1-3線特性設置程序3圖框特性設置t=0:pi/20:2*pi;%設定t的范圍從0到2*pi,間隔值為pi/20.subplot(1,3,1)%將當前窗口對象分成1×3塊矩形區(qū)域,并在第1塊區(qū)創(chuàng)建一個新的坐標軸.plot(sin(t),2*cos(t))%繪制線性圖形.gridon%打開網(wǎng)格線.subplot(1,3,2)%在第2塊區(qū)創(chuàng)建一個新的坐標軸.plot(sin(t),2*cos(t))gridonaxissquare%產(chǎn)生正方形坐標軸.subplot(1,3,3)%在第3塊區(qū)創(chuàng)建一個新的坐標軸.plot(sin(t),2*cos(t))gridonaxisequaltight%設置當前數(shù)據(jù)為坐標范圍,且產(chǎn)生等長刻度坐標軸.實驗結(jié)果如下:圖1-4圖框特性設置實驗步驟1.運行MATLAB,打開→M-file,新建M文件。2.將程序1輸入到M文件中,保存并運行。3.將程序2輸入到M文件中,保存并運行。4.將程序3輸入到M文件中,保存并運行。實驗要求修改命令set中的參數(shù)(參數(shù)見附錄)。附錄:表1線型符號符號含義符號含義-實線:虛線--雙劃線-.點劃線表2數(shù)據(jù)點型符號符號含義符號含義+十字符^上三角符o空心圓v下三角符*星號<左三角符.實心圓>右三角符x叉符p五星符s正方符h六星符d菱形符表3色彩符號含義符號含義r紅色m品紅色g綠色y黃色b藍色k黑色c青色w白色實驗七多圖特性設置實驗目的熟悉對多圖特性的設置。實驗方法及內(nèi)容1.實驗指令linspace(a,b,n)表示在a到b間創(chuàng)建n個采樣點,n的默認值為100。hold控制是否在當前圖形里繪制數(shù)據(jù)。holdon在當前坐標軸圖形里繪制數(shù)據(jù)。holdoff重新繪制數(shù)據(jù)圖形,即置換當前的圖形對象。legend在當前圖形上加上圖例。調(diào)用格式如下:legend(‘string1’,‘string2’,legend(h,‘string1’,‘string2’,legend(string_matrix)用字符數(shù)組來表示圖例(每行對應)。legend(h,string_matrix)用指定的句柄對象h添加圖例。legend(axes_handle,…)指下圖形句柄對象axes_handle。legend(‘off’)刪除圖例。legend(‘hide’)隱藏圖例。legend(‘show’)顯示圖例。legend(‘boxoff’)移除圖例邊框。legend(‘boxon’)顯示圖例邊框。legend(h,…)legend(…,pos)參數(shù)pos用于設定圖例位置,其參數(shù)值參見附表。h=legend(…)[legend_h,object_h,plot_h,text_strings]=legend(…)返回值分別為圖例句柄,圖例對象中l(wèi)ine、patch和text圖形句柄,圖形中l(wèi)ine和patch對象句柄,圖例對象中的字符元胞。xlabel、ylabel函數(shù)分別在x軸、y軸加上標識。調(diào)用格式如下:xlabel(‘string’)xlabel(fname)xlabel(…,‘PropertyName’,PropertyValue,…)h=xlabel(…)title該函數(shù)用于在坐標軸圖形上端中間標注標題。調(diào)用格式如下:title(‘string’)標注字符串‘string’。title(fname)標注返回的函數(shù)名。title(…,‘PropertyName’,PropertyValue,…)對標題進行參數(shù)設置。h=title(…)名柄返回2.實驗要點(1)注意holdon命令。在當前坐標軸圖形中繪制數(shù)據(jù)時,若不使用holdon命令,圖形將會置換當前的數(shù)據(jù)。(2)掌握圖形標識命令legend。3.實驗內(nèi)容程序多圖特性設置x=linspace(0,2*pi,60);%在0到2*pi之間創(chuàng)建60個采樣點。a=sin(x);b=cos(x);stem_handles=stem(x,a+b);%返回圖形句柄,

stem為二維桿狀圖函數(shù)。holdon%在當前圖形上繪制數(shù)據(jù)。plot_handles=plot(x,a,'--r',x,b,'--g');%繪制特定線型、顏色的線性圖形。holdoff%關(guān)閉。legend_handles=[stem_handles(1);plot_handles];%返回值為圖例名柄。legend(legend_handles,'a+b','a=sin(x)','b=cos(x)')%為指定的句柄對象legend_handles添加圖例。xlabel('Timein\musecs')%為x軸添加標題‘Timein\musecs’。ylabel('Magnitude')%為y軸添加標題‘Magnitude’。title('LinearCombinationofTwoFuntions')%為圖形添加標題。實驗結(jié)果如下:圖2-1多圖特性設置實驗步驟1.運行MATLAB,打開→M-file,新建M文件。2.將程序輸入到M文件中。3.保存并運行程序,得出結(jié)果。附錄:表1pos參數(shù)值pos取值圖例位置Pos取值圖例位置-1坐標軸之外的右邊2坐標軸的左上角0坐標軸之內(nèi),有可能遮擋部分圖形3在坐標軸的左下角1坐標軸的右上角(缺省位置)4坐標軸的右下角實驗八特殊二維圖形實驗目的熟悉MATLAB特殊二維圖形命令(bar、barh、polar、pie、stem、stairs)。實驗方法及內(nèi)容1.實驗指令bar函數(shù)繪制二維垂直直方圖。barh函數(shù)繪制二維水平直方圖。兩個函數(shù)的用法基本相同,差別在繪制圖形的方向上。bar函數(shù)的調(diào)用格式:bar(Y)bar(X,Y)bar(…,width)bar(…,‘style’)bar(…,LineSpec)h=bar(…)bar(Y)繪制Y每個元素的直方圖,如果Y是矩陣,繪制Y行數(shù)個條形組。條形的高度對應于Y的值。bar(X,Y)用法和bar(Y)一樣,但不是對應Y下標而是對應X來繪制直方圖,這里的X向量必須具有單調(diào)性。參數(shù)width來設定條形的寬度,默認的寬度是0.8,如果寬度大于1,則直方圖間就會出現(xiàn)交迭。參數(shù)‘style’對應條形圖的兩種風格,可選‘grouped’

或者‘stacked’,這時‘grouped’為垂直排列組的條形圖,‘stacked’為垂直堆型的條形圖,其中‘grouped’是默認值。參數(shù)LineSpec,用來設置線型、色彩及點型等。h=bar(…)返回繪制直方圖的名柄。polar(theta,rho)為極坐標繪圖。以角度theta為一個坐標,表示極坐標的角度,單位是弧度;另外一個是矢徑rho,表示相對應的半徑。在其后使用grid命令,可以繪出網(wǎng)狀極坐標圖。pie——顯示數(shù)據(jù)元素在總體中所占的百分比的命令。其調(diào)用格式:pie(X)pie(X,explode)h=pie(…)pie(X)中,X既可以是向量也可以是矩陣。如果X中各個元素的和大于等于1,則繪制出來的餅圖中每個切片占整個餅圖的百分比為這個元素值占X的元素值和的百分比。如果X中各個元素的和小于1,則繪制的是一個不完整的餅圖,每個切片占整個餅圖的百分比就對應于這個元素的值。參數(shù)explode用于設定餅圖中切片的分離情況,參數(shù)explode的大小必須和X的大小一致,explode中非零元素對應的切片就是分離的切片。stem二維桿狀圖函數(shù),將每個離散數(shù)據(jù)顯示為末端帶有標志符號的線條。調(diào)用格式如下:stem(Y)stem(X,Y)stem(…,‘fill’)stem(…,Linespec)h=stem(…)stem(Y)中Y表示需要繪制的離散數(shù)據(jù),當Y為矩陣時,會遞加繪制每一列數(shù)據(jù)的桿狀圖。參數(shù)X可以是向量或矩陣,X為矩陣時,X和Y的維數(shù)需要相同;X為向量、Y為矩陣時,X的長度需要和Y的行數(shù)保持一致。參數(shù)‘fill’是對一些標記符號進行填充。參數(shù)Linespec定義線型、標記符號的類型以及顏色,參數(shù)可以同時使用。階梯圖是以一定的間隔的上升沿或下降沿顯示數(shù)據(jù)。階梯圖可以體現(xiàn)出數(shù)據(jù)的變化情況。stairs函數(shù)的調(diào)用格式如下:stairs(Y)stairs(X,Y)stairs(…,LineSpec)[xb,yb]=stairs(Y)[xb,yb]=stairs(X,Y)參數(shù)LineSpec用來設置線型、色彩及點型。[xb,yb]=stairs(Y)和[xb,yb]=stairs(X,Y)的返回值[xb,yb]對應plot[xb,yb],使得plot[xb,yb]所繪制的圖形實現(xiàn)stairs函數(shù)的功能。2.實驗要點注意在pie命令中,參數(shù)explode的非零元素對應的切片即為分離的切片。3.實驗內(nèi)容程序1繪制直方圖y=[521;873;956;515;432];figure(1)%創(chuàng)建窗口1.bar(y)%繪制二維垂直直方圖.title('bar(y)')figure(2)%創(chuàng)建窗口2.barh(y)%繪制二維水平直方圖.title('barh(y)')實驗結(jié)果如下:圖3-1二維垂直條形圖圖3-2二維水平條形圖程序2繪制極坐標圖t=0:.01:2*pi;%劃分t的范圍,從0到2*pi,間隔值為0.001.polar(t,abs((cos(2*t)).*(sin(2*t))))%polar為極坐標繪圖命令,前一參數(shù)為極坐標的角度,后一參數(shù)為相對應的半徑.實驗結(jié)果如下:圖3-3極坐標圖程序3繪制餅圖x=[51346545];explode=zeros(size(x));%產(chǎn)生1×4的全0數(shù)組,并賦給explode.[c,offset]=min(x);%求數(shù)組x中的最小值,該數(shù)值賦給c,其下標賦給offset.explode(offset)=1;%給數(shù)組explode中第offset個元素重新賦值.h=pie(x,explode);%返回圖形對象句柄,參數(shù)explode用于設定餅圖中切片的分離情況.names={'工業(yè)51';'農(nóng)業(yè)34';'服務65';'商業(yè)45'};textobjs=findobj(h,'type','text');%findobj,查找圖形對象的特征值,并賦給textobj.set(textobjs,{'string'},names);title('pie')實驗結(jié)果如下:圖3-4餅圖程序4繪制桿狀圖n=[-3:10];%定義n的范圍從-3到10,間隔值為1.x=[(n-2)>=0];%>=為關(guān)系運算函數(shù).stem(n,x);%繪制桿狀圖.grid%顯示網(wǎng)格線.axis([-3,11,-.2,1.2])%設定x、y軸的范圍.title('stem')xlabel('n')ylabel('x')實驗結(jié)果如下:圖3-5桿狀圖程序5繪制階梯圖x=0:0.25:10;%設定x的范圍從0到10,其間隔值為0.25.stairs(x,sin(x));%繪制sin(x)的階梯圖.grid%打開網(wǎng)格線.axis([010-1.21.2])%設置x、y軸的范圍.title('stairs')xlabel('x')ylabel('sin(x)')實驗結(jié)果如下:圖3-6階梯圖實驗步驟1.運行MATLAB,打開→M-file,新建M文件。2.將程序1輸入到M文件中,保存并運行。3.將程序2輸入到M文件中,保存并運行。4.將程序3輸入到M文件中,保存并運行。5.將程序4輸入到M文件中,保存并運行。6.將程序5輸入到M文件中,保存并運行。實驗九雙Y軸圖形及平面幾何圖形繪制實驗目的熟悉雙Y軸圖形的繪制,掌握平面幾何中直線、圓、橢圓和雙曲線的繪制。一、雙Y軸圖形實驗方法及內(nèi)容1.實驗指令plotyy函數(shù)調(diào)用格式如下:plotyy(X1,Y1,X2,Y2)plotyy(X1,Y1,X2,Y2,‘function’)plotyy(X1,Y1,X2,Y2,‘function1’,‘function2[AX,H1,H2]=plotyy(…)plotyy(X1,Y1,X2,Y2)表示分別以左y軸、右y軸和x軸畫(X1,Y1)和(X2,Y2)的圖形。字符串‘function’代表繪制圖形的方式,可選擇plot、semilogx、semilogy、loglog、stem等,或者自定義MATLAB可以接收的函數(shù):h=function(x,y)plotyy(X1,Y1,X2,Y2,‘function1’,‘function2[AX,H1,H2]=plotyy(…)中,AX返回兩個坐標軸的句柄,其中AX(1)是左坐標軸的句柄,AX(2)是右坐標軸的句柄,而H1和H2分別為兩個圖形的句柄。2.實驗要點注意plotyy函數(shù)中參數(shù)‘function’的設置,該參數(shù)的設置將改變圖形的顯示。3.實驗內(nèi)容繪制雙Y軸圖形t=0:900;A=1000;a=0.005;b=0.005;%為各參數(shù)賦值.z1=A*exp(-a*t);z2=sin(b*t);[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot');%繪制雙Y軸圖形.xlabel('t')axes(haxes(1))ylabel('SmeilogPlot')%標注左邊的y軸.axes(haxes(2))ylabel('LinearPlot')%標注右邊的y軸.set(hline2,'LineStyle','--')%設定第二條線的線型為雙劃線.實驗結(jié)果如下:圖5-1雙Y軸實驗步驟1.運行MATLAB,打開→M-file,新建M文件。2.將程序輸入到M文件中。3.保存并運行程序。二、平面幾何圖形實驗內(nèi)容及方法1.實驗方程直線方程:圓方程:橢圓方程:雙曲線方程:或2.實驗內(nèi)容程序1直線a=1;b=2;x=1:1:10;y=x.*a+b;%直線方程y=ax+b.plot(x,y)gridxlabel('x')ylabel('y')axis([010010])實驗結(jié)果如下:圖7-1直線程序2圓a=-3;b=4;%%a,b分別為圓坐標平移后的坐標值.r=2;%r為圓的半徑.x=(a-r):0.01:(a+r);%設置x的范圍.y1=-sqrt(r.^2-(x-a).^2)+b;y2=sqrt(r.^2-(x-a).^2)+b;plot(x,y1,'b',x,y2,'b');gridxlabel('x')ylabel('y')axis([-66-66])axissquare實驗結(jié)果如下:圖7-2圓程序3橢圓a=4;b=3;%a,b分別為橢圓的長半徑,短半徑X=1;Y=1;%X,Y分別為橢圓坐標平移后的坐標值.x=(X-a):0.001:(X+a);%設定x的取值范圍.y1=-(b/a)*sqrt(a^2-(x-X).^2)+Y;y2=(b/a)*sqrt(a^2-(x-X).^2)+Y;plot(x,y1,'b',x,y2,'b');axis([-66-66])axissquaregridxlabel('x')ylabel('y')實驗結(jié)果如下:圖7-3橢圓程序4雙曲線figure(1)a=3;b=5;%a,b分別為雙曲線的實半軸,虛半軸的長度.y=-10:0.0001:10;x1=-(a/b)*sqrt(b^2+y.^2);x2=(a/b)*sqrt(b^2+y.^2);plot(x1,y,'b',x2,y,'b');gridtitle('雙曲線')xlabel('x')ylabel('y')figure(2)a=3;b=5;%a,b分別為雙曲線的實半軸,虛半軸的長度.x=-15:0.0001:15;y1=-(a/b)*sqrt(b^2+x.^2);y2=(a/b)*sqrt(b^2+x.^2);plot(x,y1,'b',x,y2,'b');gridtitle('雙曲線')xlabel('x')ylabel('y')實驗結(jié)果如下:圖7-4雙曲線1圖7-5雙曲線2實驗步驟1.運行MATLAB,打開→M-file,新建M文件。2.將程序1輸入到M文件中,保存并運行。3.將程序2輸入到M文件中,保存并運行。4.將程序3輸入到M文件中,保存并運行。實驗十圖形用戶界面(GUI)制作一、 實驗目的1、 熟悉句柄圖形體系的對象樹結(jié)構(gòu)。2、 熟練掌握句柄圖形體系的對象屬性的創(chuàng)建、設置、查詢。3、 熟練掌握句柄的獲取。4、 熟練掌握圖形用戶界面(GUI)的制作。二、 實驗內(nèi)容1、 句柄的獲取。[Gcfgcagcofindobj圖形創(chuàng)建指令追溯法等方法獲取圖形句柄的聯(lián)系。常用的圖形句柄操作函數(shù)如下表]在command窗口鍵入以下指令:X=linspace(-pi,pi,25);Y=sin(X);plot(X,Y,'rX');gcfgca觀察指令窗及圖形窗中的結(jié)果。2、 句柄圖形體系的對象屬性的創(chuàng)建、設置、查詢。在command窗口鍵入以下指令:h_line=findobj(gca,'Marker','X')get(h_line)h_line_parent=get(h_line,'Parent');isequal(h_line_parent,gca)set(gca,'Color',[0,0,0])set(h_line,'Color',[111],'MarkerSize',10);set(gca,'XGrid','on','GridLineStyle','-.','XColor',[0.750.750])set(gca,'YGrid','on','GridLineStyle','-.','YColor',[00.750.75])set(gcf,'Color',[001])觀察指令窗及圖形窗中的結(jié)果。3、 對象屬性的缺省設置和查詢鍵入以下程序:t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;line(t,Y,'Color',[100],'LineStyle','-.')clfresetset(gca,'ColorOrder',[000;0.70.70.7],'LineStyle','-|:')line(t,Y)clfresetset(gcf,'DefaultAxesLineStyleOrder','-|:');set(gcf,'DefaultAxesColorOrder',[100;001]);line(t,Y)觀察指令窗及圖形窗中的結(jié)果。4、 界面菜單、快捷菜單、現(xiàn)場菜單的制作:figure、set、uimenu的使用○1在command窗口鍵入以下指令:>>h_fig=figure觀察圖形窗中的結(jié)果?!?在command窗口鍵入以下指令:Set(h_fig,'menubar','none')觀察圖形窗中的結(jié)果?!?在command窗口鍵入以下指令:Set(gcf,'menubar','figure')觀察圖形窗中的結(jié)果?!?自制用戶菜單鍵入以下程序:figureh_menu=uimenu(gcf,'label','&Color');h_submenu1=uimenu(h_menu,'label','&Blue',...'callback','set(gcf,''color'',''blue'')');h_submenu2=uimenu(h_menu,'label','&Red',...'callback','set(gcf,''color'',''red'')',...'Accelerator','r');觀察指令窗及圖形窗中的結(jié)果。還可將其中的句柄改變?yōu)閯e的圖形對象的句柄,或?qū)⑵渲械囊恍傩缘膶傩灾敌薷暮罂雌湫Ч??!?現(xiàn)場菜單的制作鍵入以下程序:t=(-3*pi:pi/50:3*pi)+eps;y=sin(t)./t;hline=plot(t,y);cm=uicontextmenu;uimenu(cm,'label','Red','callback','set(hline,''color'',''r''),')uimenu(cm,'label','Blue','callback','set(hline,''color'',''b''),')uimenu(cm,'label','Green','callback','set(hline,''color'',''g''),')set(hline,'uicontextmenu',cm)觀察指令窗及圖形窗中的結(jié)果。還可將其中的句柄改變?yōu)閯e的圖形對象的句柄,或?qū)⑵渲械囊恍傩缘膶傩灾敌薷暮罂雌湫Ч?、 用戶控件的制作:按鈕、復選框、單選框、文本編輯框、靜態(tài)文本、下拉列表框、列表框等控件的制作。鍵入以下程序:clfresetset(gcf,'menubar','none')set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]);set(gcf,'defaultuicontrolunits','normalized')h_axes=axes('position',[0.05,0.2,0.6,0.6]);t=0:pi/50:2*pi;y=sin(t);plot(t,y);set(h_axes,'xlim',[0,2*pi]);set(gcf,'defaultuicontrolhorizontal','left');htitle=title('正弦曲線');set(gcf,'defaultuicontrolfontsize',12);uicontrol('style','frame',...'position',[0.67,0.55,0.25,0.25]);uicontrol('style','text',...'string','正斜體圖名:',...'position',[0.68,0.77,0.18,0.1],...'horizontal','left');hr1=uicontrol(gcf,'style','radio',...'string','正體','position',[0.7,0.69,0.15,0.08]);set(hr1,'value',get(hr1,'Max'));set(hr1,'callback',[...'set(hr1,''value'',get(hr1,''Max'')),',...'set(hr2,''value'',get(hr2,''Min'')),',...'set(htitle,''fontangle'',''normal''),']);hr2=uicontrol(gcf,'style','radio',...'string','斜體','position',[0.7,0.58,0.15,0.08],...'callback',[...'set(hr1,''value'',get(hr1,''Min'')),',...'set(hr2,''value'',get(hr2,''Max'')),',...'set(htitle,''fontangle'',''italic''),']);ht=uicontrol(gcf,'style','toggle',...'string','Grid',...'position',[0.67,0.40,0.15,0.12],...'callback','grid');觀察指令窗及圖形窗中的結(jié)果。三、實驗要求:1、會獲取和顯示圖形對象的句柄。2、會設置菜單和子菜單。3、會設置用戶控件。實驗十一離散系統(tǒng)時域分析一、實驗目的1.學習MATLAB語言的編程和調(diào)試技巧;2.差分方程的求解;3.掌握筆算離散卷積方法和MATLAB語言實現(xiàn)。二、實驗內(nèi)容時域中,離散時間系統(tǒng)對輸入信號或延遲信號進行運算處理,生成具有所需特性的輸出信號。本實驗通過MATLAB仿真一些簡單的離散時間信號和系統(tǒng),并研究其時域特性。涉及到離散時間信號、離散時間系統(tǒng)、系統(tǒng)性質(zhì)及線性卷積等知識點。三、實驗原理及方法和手段一個離散時間系統(tǒng),輸入信號為x(n),輸出信號為y(n),運算關(guān)系用T[﹒]表示,則輸入及輸出的關(guān)系可表示為y(n)=T[x(n)]。在《信號及系統(tǒng)》和《數(shù)字信號處理》課程中,我們知道描述線性移不變離散時間系統(tǒng)的數(shù)學模型是常系數(shù)差分方程,它及系統(tǒng)的結(jié)構(gòu)流圖之間可以互相推導。迭代解法(也稱遞推解法)是求解差分方程的最簡單也最適用的方法,也是實現(xiàn)數(shù)字濾波器的一種基本方法。差分方程通式為:x(n)及y(n)分別為系統(tǒng)的激勵和響應。MATLAB以函數(shù)filter(num,den,x),來計算在給定輸入和差分方程系數(shù)時求差分方程的數(shù)值解。num,den分別為系統(tǒng)方程的系數(shù)向量。x是輸入序列,線性時不變系統(tǒng)的輸入輸出關(guān)系可通過單位脈沖響應h(n)表示:可物理實現(xiàn)的線性時不變系統(tǒng)是穩(wěn)定的、因果的。這種系統(tǒng)的單位脈沖響應是因果的(單邊)且絕對可和的,即:h(n)=0,n<0;。在MATLAB語言中采用conv實現(xiàn)卷積運算即:y=conv(x,h),它默認從n=0開始。四、實驗組織運行要求1.學生在進行實驗前必須進行充分的預習,熟悉實驗內(nèi)容;2.學生根據(jù)實驗要求,讀懂并理解相應的程序;3.學生嚴格遵守實驗室的各項規(guī)章制度;4.學生實驗過程中獨立完成實驗;五、實驗條件1.具有WINDOWS98/2000/NT/XP操作系統(tǒng)的計算機一臺;2.。MATLAB編程軟件。六、實驗步驟在“開始--程序”菜單中,找到MATLAB程序,運行啟動;進入MATLAB后,首先熟悉界面;在CommandWindow中輸入?yún)⒖汲绦?,并?zhí)行;記錄運行結(jié)果圖形,并及筆算結(jié)果對照。(MATLAB的使用請參考附錄)具體步驟如下:1.已知某一系統(tǒng)方程為:y(n)+3y(n-1)+2y(n-2)=x(n)(1)利用MATLAB計算系統(tǒng)的脈沖響應h(n)并畫出波形圖,其中n=(-2,10)(2)若x(n)=u(n),利用MATLAB計算系統(tǒng)的零狀態(tài)響應y(n)并畫出波形圖。2.設某LSI的單位脈沖響應和h(n)=,(1)判斷此系統(tǒng)是否可實現(xiàn);(2)當輸入為時,利用卷積和手工計算此LSI的輸出y(n);(3)用MATLAB實現(xiàn)第二步,并畫出圖形(h(n)的n取值范圍自定)。3.x(n)=[2,3,1,1,2,-1,0,3],-2≤n≤5;h(n)=[2,4,1,-2,0,-1],-3≤n≤2,手工計算和MATLAB計算卷積y(n)=x(n)*h(n)。七、實驗報告要求1.報告中要給出實驗的MATLAB程序;2.簡述實驗目的和原理;3.給出用筆算時差分方程解、卷積和conv計算線性卷積對照圖;4.給出收獲和體會。八、參考程序程序1y(n)-y(n-1)+0.9y(n-2)=x(n),計算并畫出脈沖響應h(n),n=(-10,100)%xh08n=[-10:100];b=[1];a=[1-10.9];x=impseq(-10,100,0);h=filter(b,a,x);stem(n,h);xlabel('時間序號n');ylabel('脈沖響應h');title('脈沖響應');程序2設某LSI的單位脈沖響應(1)判斷此系統(tǒng)是否可實現(xiàn);(2)當輸入為矩形脈沖時,手工計算此LSI的輸出;%xh09n1=0:9;x=[ones(1,10)];N1=length(x);n2=0:39;h=0.8.^n2;N2=length(h);y=conv(x,h);N=N1+N2-1;n=0:N-1;subplot(2,2,1);stem(n1,x,'.');xlabel('時間序號n');title('輸入序列x(n)');subplot(2,2,2);stem(n2,h,'.');xlabel('時間序號n');title('單位取樣序列h(n)');subplot(2,2,3);stem(n,y,'.');xlabel('時間序號n');title('輸出序列y(n)');程序3如果、的起點不為0,則采用conv_m計算卷積;編寫conv_m函數(shù):function[y,ny]=conv_m(x,nx,h,nh)%改進卷積程序nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);在命令窗口輸入:x=[3,11,7,0,-1,4,2];nx=[-3:3];h=[2,3,0,-5,2,1];nh=[-1:4];[y,ny]=conv_m(x,nx,h,nh)stem(ny,y,'.');xlabel('時間序號n');title('卷積和y(n)=x(n)*h(n)');4.function[x,n]=impseq(n1,n2,n0)function[x,n]=stepseq(n1,n2,n0)n=[n1:n2];n=[n1:n2];x=[(n-n0)==0];x=[(n-n0)>=0];實驗十二線性時不變離散系統(tǒng)頻域分析一.實驗目的1.掌握離散時間系統(tǒng)的頻域表示法。2.在學習了離散時間系統(tǒng)的時域分析的基礎上,對這些系統(tǒng)在頻域上進行分析,掌握LTI系統(tǒng)的頻域分析法。3.掌握系統(tǒng)函數(shù)、傳輸函數(shù)和系統(tǒng)頻率響應的計算機仿真方法。二.實驗原理1.系統(tǒng)傳輸函數(shù)、系統(tǒng)函數(shù)一般稱為系統(tǒng)的傳輸函數(shù),它表征系統(tǒng)的頻率響應。|H(ejω)|稱為幅度響應,而相位∠H(ejω)稱為相位響應。對h(n)進行Z變換,得到H(Z),一般稱H(z)為系統(tǒng)的系統(tǒng)響應,系統(tǒng)函數(shù)的一般表示式為:若H(z)的收斂域包含單位圓,則:2.用到的MATLAB命令基本函數(shù):abs(計算復數(shù)模)angle(計算復數(shù)相角)imag(虛部)real(實部)zplane可以查看零極點poly2rc可以直接檢測穩(wěn)定性實驗內(nèi)容及參考程序求由h(n)=(0.9)nU(n)所表征的系統(tǒng)頻率響應H(ejω).clf;w=[0:1:500]*pi/500;%[0pi]axisdividedinto501pointsH=exp(j*w)./(exp(j*w)-0.9*ones(1,501));magH=abs(H);angH=angle(H);subplot(2,1,1);plot(w/pi,magH);grid;title(‘MagnitudeResponse’);xlabel(‘frequencyinpiunits’);ylabel(‘|H(ejω)|’);subplot(2,1,2);plot(w/pi,angH);grid;xlabel(‘frequencyinpiunits’);ylabel(‘phaseinpiradians’);title(‘PhaseResponse’)線性時不變系統(tǒng)的零點的位置研究。下列程序先產(chǎn)生四類線性時不變系統(tǒng)(有限長線性相位濾波器)的沖激響應,然后產(chǎn)生零極點圖,最終顯示零點的位置。clf;b=[1-8.530.5-63];num1=[b81fliplr(b)];num2=[b8181fliplr(b)];num3=[b0-fliplr(b)];num4=[b81-81-fliplr(b)];n1=0:length(num1)-1;n2=0:length(num2)-1;subplot(2,2,1);stem(n1,num1);xlabel('Timeindexn');ylabel('Amplitude

溫馨提示

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

評論

0/150

提交評論