通信原理MATLAB仿真基礎(chǔ)新_第1頁
通信原理MATLAB仿真基礎(chǔ)新_第2頁
通信原理MATLAB仿真基礎(chǔ)新_第3頁
通信原理MATLAB仿真基礎(chǔ)新_第4頁
通信原理MATLAB仿真基礎(chǔ)新_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章 設(shè)計(jì)性實(shí)驗(yàn)(MATLA仿真實(shí)驗(yàn))3.1 MATALAB語言概述3.1.1 MATALAB 語言的發(fā)展MATALAB 是一種科學(xué)計(jì)算軟件,主要適用于矩陣運(yùn)算及控制和信 息處理領(lǐng)域的分析設(shè)計(jì)。它使用方便,輸入簡潔,運(yùn)算高效,內(nèi)容豐 富,并且很容易由用戶自行擴(kuò)展,因此,當(dāng)前已成為美國和其他發(fā)達(dá) 國家大學(xué)教學(xué)和科學(xué)研究中最常用而必不可少的工具。MATLAB是由美國Mathworks公司與1984年正式推出的,從那時(shí) 到現(xiàn)在已升級到 7.x 版本。隨著版本的升級,內(nèi)容不斷擴(kuò)充,功能更強(qiáng) 大。特別是在系統(tǒng)仿真和實(shí)時(shí)運(yùn)行等方面,有很多新進(jìn)展,更擴(kuò)大了 它的應(yīng)用前景。MATLAB 是“矩陣實(shí)驗(yàn)室”(

2、MATrix Laboratoy )的縮寫,它是一 種以矩陣運(yùn)算為基礎(chǔ)的交互式程序語言,專門針對科學(xué)、工程計(jì)算及 繪圖的需求。它用解釋方式工作,鍵入程序立即得出結(jié)果,人機(jī)交互 性能好,適應(yīng)于多種平臺。 MATLAB 語言在國外的大學(xué)工學(xué)院中,特 別是數(shù)值計(jì)算用的最頻繁的電子信息類學(xué)科中,已成為每個(gè)學(xué)生都掌 握的工具了。它大大提高了課程教學(xué)、解題作業(yè)、分析研究的效率。MATLAB 語言比較好學(xué),因?yàn)樗挥幸环N數(shù)據(jù)類型,一種標(biāo)準(zhǔn)的 輸入輸出語句,不用“指針”,不需編譯,比其他語言少了很多內(nèi)容 聽三、四個(gè)小時(shí)課,上機(jī)練幾個(gè)小時(shí),就可入門了。以后自學(xué)也十分 方便,通過它的演示(demo)和求助(hel

3、p)命令,人們可以方便地 在線學(xué)習(xí)各種函數(shù)的用法及其內(nèi)涵MATLAB 語言的難點(diǎn)是函數(shù)較多,僅基本部分就有 700多個(gè),其 中常用的有二三百個(gè),要盡量多記少查,可以提高編程效率。3.1.2MATLAB 語言的特點(diǎn)1. 矩陣運(yùn)算:每個(gè)變量代表一個(gè)矩陣,它以矩陣運(yùn)算見長;每個(gè)元素都 看作復(fù)數(shù),所有的運(yùn)算都對矩陣和復(fù)數(shù)有效。(虛部符號可用i或j) clear %清除內(nèi)存 變量format short %c1=1-2i,c2=3*(2-sqrt(-1)*3),c3=6+sin(.5)*1jc4=complex(1,2) %建立復(fù)數(shù)c1 =1.0000 - 2.0000ic2 =6.0000 - 9.0

4、000ic3 =6.0000 + 0.4794i c4 =1.0000 + 2.0000i c1r=real(c1),c1i=imag(c1),abs_c1=abs(c1),angle_c1=angle(c1)結(jié)果:c1r =1c1i =-2abs_c1 =2.2361angle_c1 =-1.1071(1) 所有的標(biāo)點(diǎn)符號必須是在英文狀態(tài)下輸入。(2) 各指令行可以用逗號或分號隔開,如用分號,則分號前的指令只執(zhí) 行,不顯示結(jié)果。(3) 在命令窗口中輸入指令后,必須按下 enter 鍵, 該指令才會被執(zhí) 行.(4) %為注釋符,即后面的內(nèi)容為注釋,對 MATLA的計(jì)算不產(chǎn)生任 何影響。2. 人

5、機(jī)界面適合科技人員 :其程序與科技人員的書寫習(xí)慣相近,易寫易 讀。矩陣行數(shù)列數(shù)無需定義。鍵入算式即得結(jié)果,無需編譯。36 的輸入步驟912例如:簡單矩陣 A 4578(1) 在鍵盤上輸入下列內(nèi)容A=1,2,3;4,5,6;7,8,9結(jié)果:789 按enter鍵,指令執(zhí)行。注意:直接輸入矩陣時(shí),矩陣元素用空格或逗號”,”分隔,整個(gè)矩 陣放到方括號“”里。標(biāo)點(diǎn)符號一定要在英文狀態(tài)下輸入。(3) 指令執(zhí)行后,矩陣A被保存在MATLA的工作空間(Workspace) 中。如果用戶不用clear指令清除它,或?qū)λ匦沦x值,那么該矩陣 會一直保存在工作空間中,直到本 MATLAB!令窗被關(guān)閉為止。(4)

6、MATLA區(qū)分大小寫字母。3強(qiáng)大而簡易的作圖功能(1) 能根據(jù)輸入數(shù)據(jù)自動(dòng)確定坐標(biāo)繪圖。(2) 能規(guī)定多種坐標(biāo)系(極坐標(biāo),對數(shù)坐標(biāo)等)。(3) 能繪制三維坐標(biāo)中的曲線和曲面。(4) 可設(shè)置不同顏色、線型和視角等。如果數(shù)據(jù)齊全,通常只需要一條命令即可出圖。例:用圖形表示離散函數(shù)y |(n 6) 1。n=(0:12); %產(chǎn)生一組自變量數(shù)據(jù)y=1./abs( n-6);%計(jì)算相應(yīng)點(diǎn)的函數(shù)值plot( n, y,'r*','MarkerSize',15)% 用紅花標(biāo)出數(shù)據(jù)點(diǎn)grid on %畫坐標(biāo)方格顯示的圖形:圖3-1函數(shù)y (n 6)說明: ./表示點(diǎn)除,用于元素

7、對元素的除法。而 /表示矩陣除法。還有'*''八'及 '*''八'4.智能化程度高(1) 繪圖時(shí)自動(dòng)選擇最佳坐標(biāo)。(2) 做數(shù)值積分時(shí),自動(dòng)按精度選擇步長。(3) 自動(dòng)檢測和顯示程序錯(cuò)誤的能力強(qiáng),易于調(diào)試。 5.功能豐富,可擴(kuò)展性強(qiáng)MATLAB 軟件包括基本部分和專業(yè)擴(kuò)展兩大部分?;静糠职?括:矩陣的運(yùn)算和各種變換;代數(shù)和超越方程的求解,數(shù)據(jù)處理和傅 里葉變換,數(shù)值積分等等。擴(kuò)展部分稱為工具箱。它實(shí)際上是用 MATLAB 的基本語句編成的各種子程序集,用于解決某一方面的專門 問題,或?qū)崿F(xiàn)某一類的新算法?,F(xiàn)在已經(jīng)有控制系統(tǒng),信號處

8、理、圖 像處理、系統(tǒng)辨識、模糊集合、神經(jīng)元網(wǎng)絡(luò)和小波分析等數(shù)十個(gè)工具 箱,并且還在繼續(xù)發(fā)展中。MATLAB 的核心內(nèi)容是它的基本部分,所有的工具箱子程序都是 用它 的基本語句編寫的。學(xué)好這部分內(nèi)容是掌握 MATLAB 的關(guān)鍵。3.1.3M ATLAB 的工作環(huán)境MATLAB7.X的工作環(huán)境主要由命令窗(Comma nd Win dow)、圖 形窗(Figure Window)和文本編輯窗(File Editor)組成。 1. 命令窗( Command Window)Comma nd Window是MATLAB中最重要的部分,它是人機(jī)交互的 主要環(huán)境,也是和編譯器連接的主要窗口。用戶通過在提示符

9、“>>”后直接輸入各種命令并讀出相應(yīng)的結(jié)果。命令窗見 MATLAB 桌面系統(tǒng) 的默認(rèn)畫面。其左上視窗為當(dāng)前目錄(Current Directory),可切換為 工作空間(Workspace);其左下視窗為歷史命令(Comma nd History); 右半個(gè)視窗則為命令窗(Comma nd Win dow)。常用的窗口命令如 下: clc:清除Comma nd Window里的內(nèi)容; clear:清除內(nèi)存變量; home:光標(biāo)回到窗口的左上角; clf :清除當(dāng)前Figure窗口的所有非隱藏對象; close:關(guān)閉當(dāng)前 Figure窗口; close all:關(guān)閉所有 Figure

10、 窗口工作空間有多種應(yīng)用功能:內(nèi)存變量的查閱、保存和編輯;在命令行下,可以用who, whos查閱MATLAB內(nèi)存變量;who用于檢查現(xiàn)存 于工作空間(Workspace)的變量;whos用于檢查現(xiàn)存于工作空間的變 量的詳細(xì)資料。內(nèi)存變量可以用 clear命令清除。如 clear %清除所有內(nèi)存 變量a=(1:7)'%轉(zhuǎn)置>>a =1234567 who %顯示內(nèi)存變量名>>Your variables are:whos%顯示內(nèi)存變量名和尺寸、占用內(nèi)存空 間、類型>>Name SizeBytes Class Attributesa 7x156 dou

11、ble clear a %清除變量 a( 1) 命令窗編輯功能:鍵入和修改程序的方法與通常的文字處理相 仿。特殊的功能鍵為ESC 恢復(fù)命令輸入的空白狀態(tài)(即作廢命令)J調(diào)出下一行命令f調(diào)出上一行(歷史)命令這個(gè)功能在程序調(diào)試時(shí)十分有用。對于已執(zhí)行過的命令,如要做些修 改后重新執(zhí)行,就不必重新鍵入,用f鍵調(diào)出原命令做修改即可。(2)主菜單中的編輯( Edit )項(xiàng)功能:用它可以把屏幕上選中的文字 裁剪(Cut)或復(fù)制(Copy)下來,放到剪貼板上,然后粘貼(Paste)到任意其他視窗的任何位置上去。這是 MATLAB!其他 軟件(如Wore)交換文件、數(shù)據(jù)和圖形的重要方法。(3)Debug項(xiàng)是調(diào)

12、試程序時(shí)使用的。(4)Desktop 項(xiàng)功能:用它可以改變屏幕上顯示的視窗布局。如顯示 或隱藏命令窗、歷史命令窗、工作空間、當(dāng)前目錄;最大化命令 窗等。(5)Help 項(xiàng)功能:展示詳盡的幫助。(6)在命令行鍵入help,屏幕上將顯示系統(tǒng)中已裝入的函數(shù)庫(即子 目錄)的名稱。(7)鍵入help子目錄名,女口 help elfun,即得出elfun庫(初等數(shù)學(xué)函 數(shù)庫)中各函數(shù)名。(8)鍵入help函數(shù)名,如help eye,即得到eye函數(shù)的意義和用法。(9)退出MATLAB有兩種方法。一是鍵入exit或quit,還有一種是 用鼠標(biāo)雙擊左上角的小方塊或單擊右上角的x號。后一種情況屬 非正常退出,

13、該次進(jìn)程的所有的命令將不紀(jì)錄在“歷史命令窗 中”,故應(yīng)盡量避免使用。2 .圖形窗 通常,只要執(zhí)行了任一種繪圖命令,就會自動(dòng)產(chǎn)生圖形窗。以后 的繪圖都在這一個(gè)圖形窗中進(jìn)行。如想再建一個(gè)或幾個(gè)圖形窗,則可 鍵入 figure, MATLAB 會新建一個(gè)圖形窗,并自動(dòng)給它依次排序,如 果要人為規(guī)定新圖為圖3,則可鍵入figure (3)。如要調(diào)看已經(jīng)存在 的圖形窗n,也應(yīng)鍵入fingure (n)。3. 文本編輯窗( M 文件編輯窗)MATLAB 程序編制有兩種方式。一種稱為命令方式,在命令窗中 的命令符“ >>”下一行一行地輸入命令,計(jì)算機(jī)每次對一行命令做出 反應(yīng),像計(jì)算器那樣;這只能

14、編簡單的程序,在入門時(shí)可以用這種方 式。程序稍復(fù)雜一些,就應(yīng)把程序?qū)懗梢粋€(gè)有多行語句組成的文件, 即 M 文件,讓 MATLAB 來執(zhí)行這個(gè)文件;編寫和修改這種文件程序 就要用到文本編輯器Editor。文本編輯器可以將程序像文本一樣編輯, 如復(fù)制、粘貼等,非常方便。一行中可以鍵入幾個(gè)命令,用“;”或“,"隔開。如用“;”則該函數(shù)的執(zhí)行結(jié)果不顯示(圖形函數(shù)除 外);如用 "," 則該函數(shù)的運(yùn)行結(jié)果要顯示。命令窗上方最左邊的按鈕是用來打開文本編輯器空白頁的。左邊 第 2 個(gè)按鈕是用來打開原有程序文件的。3.2 基本語法3.2.1 變量及其賦值在 MATLAB 內(nèi)部所有

15、變量均保存成 double 的形式,即雙精度( 64 位)二進(jìn)制。這是為了簡化編程, MATLAB 省去了許多種數(shù)據(jù)格式。MATLAB 是基于矩陣運(yùn)算的, MATLAB 中的所有變量或常量都以 矩陣形式保存的。一個(gè)數(shù)也是矩陣,只不過它是1X1階的矩陣。變量名的命名規(guī)則如下: (1)變量名區(qū)分大小寫。( 2)變量名最多能包括 63個(gè)字符,其后的字符都被忽略。 (3)變量名必須以一個(gè)字母開始,其后可以是任意數(shù)量的字母、數(shù) 字、下劃線,字符中間不能留空格。( 4)不允許出現(xiàn)標(biāo)點(diǎn)符號,因?yàn)楹芏鄻?biāo)點(diǎn)符號在 MATLAB 中有特殊 的意義。(5)MATLAB 中的 關(guān)鍵字(又稱保留字)不能用作變量名。關(guān)鍵

16、字 如下: For end if while function return elseif case otherswise switch continue else try catch global persiste nt break 3.2.2矩陣及其元素的賦值賦值就是把數(shù)賦予代表常量或變量的標(biāo)示符。 MATLAB 中的變量 或常量都代表矩陣,標(biāo)量看作 1X 1 階的矩陣。賦值語句的一般形式 為:變量 =表達(dá)式(或數(shù)) 例如: a=1 2 3;4 5 6;7 8 9 x=-1.3,sqrt(3),(1+2+3)/5*4 >>a =123456789x =-1.30001.7321

17、 4.8000矩陣的值放在方括號中,同一行元素之間用逗號或空格分開,不同的 行則以分號或回車隔開,執(zhí)行語句要鍵入en ter鍵。變量的元素用圓括號“()”中的數(shù)字(也稱為下標(biāo))來注明,一維 矩陣中的元素用一個(gè)下標(biāo)表示,二維用兩個(gè)下標(biāo),以逗號分開。三維 或更高維數(shù)矩陣,可有三個(gè)或更多下標(biāo)。用戶可以單獨(dú)給元素賦值, 如x(2)=1.7321,等。如果賦值元素的下標(biāo)超出了原來矩陣的大小,矩陣 的行列會自動(dòng)擴(kuò)展。如:x(5)=abs(x(1)a(4,3)=6.5>>x =-1.30001.73214.80000 1.3000a =1.00002.00003.00004.00005.0000

18、6.00007.00008.00009.00000 0 6.5000可見跳空的元素x(4),a(4,1),a(4,2)被自動(dòng)賦值。這種自動(dòng)擴(kuò)展維數(shù)的功 能只適用于賦值語句,在其他語句中若出現(xiàn)超維調(diào)用的情況,系統(tǒng)將 給出出錯(cuò)提示。給全行賦值,可用冒號。如給 a的第5行賦值。鍵入a(5,:)=5,4,3>>1.00002.00003.00004.00005.00006.00007.00008.00009.000000 6.50005.00004.00003.0000把a(bǔ)的第2,4行及第1,3列交點(diǎn)上的元素取出,構(gòu)成一個(gè)新矩陣b可鍵入 b=a(2,4,1,3) >> b =4

19、.0000 6.0000 0 6.5000要抽去a中的第2、4, 5行,可利用空矩陣概念鍵入 a(2,4,5,:)=注意,“空矩陣”是指沒有元素的矩陣。對任何一個(gè)矩陣賦值 ,就是 使它的元素都消失。這完全不同于“零矩陣”,后者是元素存在,只 是其數(shù)值為零而已??梢钥闯?,空矩陣是使矩陣減縮是不可缺少的概 念。2.1.2復(fù)數(shù)MATLB 的每一個(gè)元素都可以使復(fù)數(shù) ,實(shí)數(shù)是復(fù)數(shù)的特例,復(fù)數(shù)的 虛數(shù)部分用 i 或 j 表示。這是 MATLAB 啟動(dòng)時(shí)就在內(nèi)部設(shè)定的。 對復(fù)數(shù)矩陣有兩種賦值方法。( 1)將其元素逐個(gè)賦予復(fù)數(shù),如:鍵入 z=1+2i,3+4i;5+6i,7+8i z =1.0000 + 2.

20、0000i 3.0000 + 4.0000i5.0000 + 6.0000i 7.0000 + 8.0000i (2)將其實(shí)部和虛部分別賦值,如: z=1,3;5,7+2,4;6,8*j z =1.0000 + 2.0000i 3.0000 + 4.0000i5.0000 + 6.0000i 7.0000 + 8.0000i兩種方法結(jié)果相同。注意,只有數(shù)字和i (或j)的乘積可省略乘號, 在上述矩陣式中若省略乘號“ *”,就會出錯(cuò)。另外,如果在前面程序 中曾經(jīng)給 i 或 j 賦過其他值,則 i , j 已經(jīng)不是虛數(shù)符號,這些虛數(shù)賦值 語句就都不對了。為此,應(yīng)使用 clear i, j 命令把原

21、賦值的 i, j 清掉, 然后再執(zhí)行復(fù)數(shù)賦值語句。MATLAB 中的所有的運(yùn)算符和函數(shù)都對復(fù)數(shù)有效。例如:鍵入 f=sqrt(1+2i)1.2720 + 0.7862i 2.1.3基本賦值矩陣魔方矩陣magic(n)的特點(diǎn)是:其元素由1到n2的自然數(shù)組成;每 行、每列及兩對角線上的元素之和均等于(n3+n) /2。單位矩陣eye(n) 是nxn階的方陣,其對角線上的元素為1,其余元素為0。全1矩陣 ones(n)是nx n階的單位陣。如:f1=ones(3,2),f2=zeros(2,3),f3=magic(3),f4=eye(2) f1 =1 11 11 1f2 =000000f3 =816

22、3 574 92f4 =1001又如:g=1,2,3,4;5,6,7,8;9,10,11,129 10 11 12 ones(3) ans =111111size(g)ans =3 4 ones(size(g) ans =1 1 1 11 1 1 11 1 1 1 eye(4) ans =1 0 0 00 1 0 00 0 1 00 0 0 1 eye(2,4) ans =1 0 0 00 1 0 0 eye(4,2) ans =1 00 10 00 0線形分割函數(shù)linspace(a,b,n在a與b之間均勻地產(chǎn)生n個(gè)點(diǎn)值,形成n維向量(步長為(b-a)/(n-1)。如: f5=linspac

23、e(0,1,5)f5 =0 0.2500 0.5000 0.7500 1.0000大矩陣可由若干小矩陣組成 ,但必須其行列數(shù)正確,恰好填滿全部元素。如鍵入fb1=f1,f3;f4,f2fb1 =1 18161 13571 14921 00000 1000下面的命令將創(chuàng)建隨機(jī)矩陣:randn('state',0) %把正態(tài)隨機(jī)數(shù) 發(fā)生器置零randn(3) %產(chǎn)生3x 3的正態(tài)隨機(jī)陣 ans =-0.4326 0.2877 1.1892-1.6656 -1.1465 -0.03760.1253 1.1909 0.3273 randn(2,5) %產(chǎn)生2X 5的正態(tài)隨機(jī)陣 ans

24、=0.1746 0.7258 2.1832 0.1139 0.0593-0.1867 -0.5883 -0.1364 1.0668 -0.0956 a=1:4;5:8;9:12 a =1 2 3 45 6789 10 11 12diag(a)%取 a的對角元素 ans =1611diag(diag(a) %內(nèi)diag取a的對角元素,外diag利用對角元素生成 對角陣ans =10006000113.3 數(shù)值數(shù)組及其運(yùn)算3.3.1 引導(dǎo) 數(shù)組是由一組實(shí)數(shù)或復(fù)數(shù)排成的長方形陣列。它可以是一維的“行” 或“列”,可以是二維或多維的矩陣。例:繪制函數(shù)y=xe-x在Owx< 1時(shí)的曲線。x=0:0

25、.1:1 %定義自變量的采樣點(diǎn)取值數(shù)組 y=x.*exp(-x) %利用數(shù)組運(yùn)算計(jì)算各自變量采樣點(diǎn)上的函數(shù)值 plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)') % 繪圖x =Columns 1 through 1OO O.1OOO O.2OOO O.3OOO O.4OOO O.5OOO O.6OOO O.7OOOO.8OOO O.9OOOColumn 111.OOOOy =Columns 1 through 1OO O.O9O5 O.1637 O.2222 O.2681 O.3O33 O

26、.3293 O.3476O.3595 O.3659Column 11O.3679y=x*exp(-x)0.40.350.30.25y 0.20.150.10.05000.10.20.30.40.50.60.70.80.91x圖3-2函數(shù)y=xe-x*"實(shí)施數(shù)組x和數(shù)組exp(x)對應(yīng)元素之間的相乘3.3.2 一維數(shù)組1. 創(chuàng)建(1) 逐個(gè)元素輸入法x=2 pi/2 sqrt(3) 3+5i x =2.00001.57081.73213.0000 + 5.0000i(2) 冒號生成法x=a:i nc:b說明:a是數(shù)組的第一個(gè)元素;inc是采樣點(diǎn)之間的間隔,即步長。如(b-a )是inc

27、的整數(shù)倍,則所生成數(shù)組的最后一個(gè)元素是b,否則小于b。注意:該冒號必須在英文狀態(tài)下產(chǎn)生。中文狀態(tài)下的冒號將導(dǎo)致 MATLAB!作錯(cuò)誤!(3) 線形分割函數(shù)linspace(a,b,n產(chǎn)生說明:a, b分別是生成數(shù)組的第一個(gè)和最后一個(gè)元素。n是采樣總點(diǎn)數(shù)。該命令生成(1x n)數(shù)組。該命令的作用與x=a:(b-a)/(n-1):b 相同。2. 尋訪和賦值x(1) 是 x 的在MATLAB,可以通過下標(biāo)來訪問單個(gè)數(shù)組元素。例如, 第一個(gè)元素。 x(2) 是 x 的第二個(gè)元素,依此類推。例如: clear x=1:2:12 x =1 3 5 7 9 11 x(3)ans =5x(1 2 5)ans

28、=1 3 9x(1:3)ans =1 3 5 x(3:e nd) %end是指一維數(shù)組的長度,即最大下標(biāo) ans =5 7 9 11 x(3:-1:1)ans =5 3 1 x(find(x>5) ans =11x(1 2 3 4 4 3 2 1) %對元素可以重 復(fù)訪問,使所得數(shù) 組長度允許大于原 數(shù)組ans =1 3 5 7 7 5 3 1 x(3)=07 9 11x(1 4)=2 2 %把當(dāng)前x數(shù)組的第一、四個(gè)元素都 賦值為2x =2 3 0 2 9 113.3.3 二維數(shù)組1 創(chuàng)建 可以采用直接輸入法。對于較小輸入數(shù)組,從鍵盤上直接輸入最 簡便。二維數(shù)組必須有以下三個(gè)要素:(1)

29、整個(gè)數(shù)組必須以方括號“ ”為其首尾;( 2)數(shù)組的行與行之間必須用分號“;”或回車鍵enter 隔離;( 3)數(shù)組元素必須由逗號“,”或空格分隔。例: a=2.7358;b=33/79;c =1.00000.7071 d=c'c=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i5.4716 + 0.4177i 0.69094.82443.5000 + 1.0000id =1.00000.70715.4716 - 0.4177i 4.82440.69093.5000 - 1.0000ie=c.' e =1.00000.70715.4716 + 0

30、.4177i 4.82440.69093.5000 + 1.0000i334 “非數(shù)”和“空”數(shù)組1. 非數(shù)NaN按IEEE規(guī)定,0/0, 乂/ 乂,0等都會產(chǎn)生非數(shù)。該數(shù)在 MATLAB中用NaN或nan記述。注意:(1) NaN參與運(yùn)算所得結(jié)果也是 NaN 即具有傳遞性。(2)非數(shù)沒有大小概念,因此不能比較兩個(gè)非數(shù)大 小。2. “空”數(shù)組在舊版本的MATLAB只有二維“空”數(shù)組,用表示。高版本的 “空”數(shù)組引進(jìn)了高維數(shù)組。注意:(1)不要把“空”數(shù)組和全零數(shù)組混淆。(2)不要把空數(shù)組看成“虛無”,它確實(shí)存在。3.3.5關(guān)系操作和邏輯操作MATLAB勺約定:(1) 在所有關(guān)系表達(dá)式和邏輯表達(dá)

31、式中,作為輸入的任何非0數(shù)都被 看作是“邏輯真”,而只有0才被認(rèn)為是“邏輯假”。(2) 所有關(guān)系表達(dá)式和邏輯表達(dá)式的計(jì)算結(jié)果,即輸出,是一個(gè)由0 和1組成的“邏輯數(shù)組”。在此數(shù)組中的 1表示“真”,0表示“假”。(3) 邏輯數(shù)組是一種特殊的數(shù)組數(shù)組。1.關(guān)系操作表3-1關(guān)系操作符指令含義指令含義<小于>=大于等于<=小于等于=等于>大于不等于說明:(1)標(biāo)量可以與任何數(shù)組進(jìn)行比較。比較在此標(biāo)量與數(shù)組每個(gè) 元素之間進(jìn)行,因此比較結(jié)果將與被比較數(shù)組同維。(2)當(dāng)比較中沒有標(biāo)量時(shí),關(guān)系符兩邊進(jìn)行比較的數(shù)組必修維數(shù)相 同。例:clear;A=1:9,B=10-A,r0=(A&l

32、t;4),r 仁(A=B)A =123456789B :987654321r0111000000r10000100002.邏輯操作表3-2邏輯運(yùn)算符指令含義&與I或非例:clear;A=1:9,L1=(A>5)L2=(A>3)&(A<7)A =123 456789L1 =111 110000L2 =000 1110003.4程序控制語句下面是MATLA編程中常用的程序控制語句。341判斷if語句if語句通過判斷邏輯表達(dá)式的值實(shí)現(xiàn)分支算法。當(dāng)表達(dá)式的邏輯 值為真,則執(zhí)行后面的語句塊所包含的指令;否則跳過該語句塊。(1)if邏輯表達(dá)式語句end2)if邏輯表達(dá)式語

33、句 1else語句 2end3)if邏輯表達(dá)式 1語句 1elseif邏輯表達(dá)式 2語句 2else語句 nend例:比較兩個(gè)數(shù)的大小。x=32;y=86;if x>y'x 大于 y'elseif x<y'x 小于 y'elseif x=y'x等于yelse'error' end ans =x 小于 y3.4.2 循環(huán)語句MATLAB勺循環(huán)語句有for循環(huán)語句和while循環(huán)語句兩種。 while 循環(huán)和 for 循環(huán)的區(qū)別在于: while 循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的 次數(shù)不是確定勺,而 for 循環(huán)結(jié)構(gòu)中循環(huán)體勺執(zhí)行次數(shù)是確

34、定勺。 (1)for 循環(huán)語句for循環(huán)變量 =起始值:步長:終止值循環(huán)體end 例:從 1 加到 10 clear; a=0;for i=1:1:10 a=a+i;enda a =55(2) while 循環(huán)語句while 表達(dá)式循環(huán)體end若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否是 真,若不為真,則跳出循環(huán)體,向下繼續(xù)執(zhí)行。例: num=0;a=5;while a>1a=a/2;num=num+1;endnum num =3當(dāng)"a>1"不為真時(shí)跳出循環(huán)體,共執(zhí)行了3次循環(huán)。例:Fibonacci 數(shù)組的元素滿足 Fibonacci 規(guī)則:比+

35、2二ak+ak+i, ( k=1,2,.);且a1=a>=1?,F(xiàn)要求出該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000a(i+1)=a(i-1)+a(i);i=i+1;endi,a(i),i =21ans =10946343 分支 switch/case語句分支switch/case語句是多分支選擇語句,有些情況可以用if語句表達(dá),但多層嵌套的情況,switch/case語句更清晰,容易理解。switch 表達(dá)式case值 1語句1case值 2語句2otherwise語句nend3.5 SIMULINK 交互式仿真集成環(huán)境

36、3.5.1使用入門為了讓大家盡早熟悉SIMULINK的建模和仿真能力,本節(jié)一簡例,分 步敘述如下:(1)在MATLAB的命令窗運(yùn)行指令simulink,或點(diǎn)擊命令窗中的圖 標(biāo)便打開如圖所示的SIMULINK模型庫瀏覽器(simulink Library Browser )。E.ile Edit Vi ca Help 0七錨File Edit Vi ew Help oS蟲鉢CoHbonJLy Vsed Blocks:1 丄iLk/ComimoiiLlrUsed BlocksSi muliinkComm only Used BlocksCont innoiiEAC ontiiruou.sDicon

37、tiziui tiIis;creleLogi c and Bi t OpLockup T %bl>e sMath Opertli &nsFilo del Verif i cati onHodel-Ti d« VtilitiesTorts 魁 Subsist電51 £ji al At tri buEe s環(huán)al R ngSinJssSour ces<Readdy+ztlrdrd土>a護(hù)3+ T *D iscDiiti jxud.-.Discr et&MathOper ati oilsLogi c an:! li tOperationsLook

38、up Tibies圖3-3 SIMULINK模型庫瀏覽器(2) 在庫瀏覽器中直接點(diǎn)擊左側(cè)分類目錄中的Source子庫,便可以看到各種信源模塊,如圖所示。S ine T av« :直 占 in色 帕U色:SimuliinkCofhmonly Used BlocksC out muonsliscretec and Bit Dp erati ons up TwbL沾Hath OfbrtiNodel Vexi £1 cti onHQdel-ffide UtilitiesTorts b Subsyst電msSignal AttributesSignal Roptin峯SinksVse

39、rDe£ineil FwctiQnsl/WIStquLftZkce StairK ep a a ting:Sequence:RtpeatinfS e queue e*I nt arpoLa, t e da 曰卯曰I 11 S i gjxal OOS ine= Vfav"BuilderSi grtalatetr<ReadyUni form Random Humber0(t) = Am®*Sin(Freq*t +Fliase) * Bias圖 3-4 Sources模塊(3) 點(diǎn)擊工具條上的口圖標(biāo),打開一個(gè)名為untitled的空白模型窗 口。圖3-5untit

40、led的空白模型窗(4)將鼠標(biāo)點(diǎn)中所需的模塊(如正弦波信源模塊Sine Wave)后,直接將它拖拉到untitled窗。巴 untitled *叵腿Til. EJil VUrrwlnljlgiU kiiTiflis果屜瞻|4=耳音耳總" |iao 阪沁 ®亙 I; 心 Wjv*肛髯 jy|00寓什*圖 3-6 含 Sine Wave模塊的 untitled 窗(5)類似地,將信宿Sinks中的示波器Scope拖拉到上述模型窗圖 3-7 含 Sine Wave和 Scope模塊的 untitled 窗(6) 用鼠標(biāo)指向信源右側(cè)的輸出端,當(dāng)鼠標(biāo)變成十字符時(shí),按住鼠標(biāo) 任一鍵,移向示波器的輸入端,松開鼠標(biāo)按鍵,就完成了兩個(gè)模 塊間的信號線連接。一個(gè)簡單的模型就建成了。Runtitled *L fclFxFile Edi t View Simnlatioil Fjrimat Tools HelpD | sS 日冒 J.嗨富 | 牛屮告 | £2 Q | b |iTo | g iSine Wjvf:嗨丘斶IQmQ盹45丄圖3-8模塊之間的連接(7) 為進(jìn)行仿真,雙擊示波器模塊,打開示波器顯示屏,調(diào)整顯示屏 窗口,使之與模型窗互不交疊,以便觀察。(8) 點(diǎn)擊模型窗中“仿真啟動(dòng)”圖標(biāo),或選擇菜單simulink- start,仿真開始。在示波器顯示

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論