matlab語言編程self.ppt_第1頁
matlab語言編程self.ppt_第2頁
matlab語言編程self.ppt_第3頁
matlab語言編程self.ppt_第4頁
matlab語言編程self.ppt_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.5MATLAB程序MATLAB是解釋性語言,輸入一行語句后回車,就會立即執(zhí)行得出結(jié)果。如果要實現(xiàn)比較復(fù)雜的功能,單靠一條一條地在命令窗口中輸入指令執(zhí)行,效率是很低的。如何解決這個問題呢?為此MATLAB提供了擴展名為“.m”的文本文件,在文件中事先寫入一行行的MATLAB命令,存盤后從MATLAB的命令窗口調(diào)入執(zhí)行(類似于DOS下的批處理),這種文件稱為底稿文件或MATLAB腳本文件。,在文本編輯器中輸入語句,然后將文件存盤,例如命名文件名為“my1stprg.m”,保存于MATLAB的默認(rèn)工作路徑中。然后回到MATLAB命令窗口,在提示符“”下鍵入文件名(可以省略擴展名)后回車,即可運行

2、程序得到結(jié)果。,2.5.1M文件簡介MATLAB除了如前所述的在命令窗口進(jìn)行的直接交互的指令操作方式外,另外一種更為重要的工作方式就是M文件的編程工作方式。,M文件有兩種形式:一種是腳本文件,另一種是函數(shù)文件。,腳本文件(命令文件)實際上是一串指令的集合,與在命令窗口逐行執(zhí)行文件中的所有指令,其結(jié)果是一樣的。如果M文件的第一行是以關(guān)鍵字“function”開頭的,則就是函數(shù)文件。,M文件,二者在內(nèi)存使用上存在重要的區(qū)別:,函數(shù)文件內(nèi)部所定義的變量僅僅在該函數(shù)文件內(nèi)部有效,函數(shù)返回后這些內(nèi)部變量將自動被清除,也就是說,函數(shù)內(nèi)部所定義的變量僅在函數(shù)內(nèi)部起作用,是局部變量。,而腳本文件中所定義的變量

3、,在使用“clear”命令清除之前,始終存在于工作空間當(dāng)中,是全局變量。,注意:不要和MATLAB已經(jīng)定義的系統(tǒng)函數(shù)和其它自定義的函數(shù)同名。,另外,函數(shù)文件的文件名必須和函數(shù)名相同.,(1)函數(shù)定義行(關(guān)鍵字function)functionout1,out2,.=filename(in1,in2,.)輸入和輸出(返回)的參數(shù)個數(shù)分別由nargin和nargout兩個MATLAB保留的變量來給出。(2)第一行幫助行,即H1行以(%)開頭,作為lookfor指令搜索的行(3)函數(shù)體說明及有關(guān)注解以(%)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容(4)函數(shù)體語句函數(shù)體內(nèi)使用的除返回和輸入變量這些在func

4、tion語句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會自動在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個程序中都起作用的變量,則可以將它們設(shè)置為全局變量。,函數(shù)M文件,1.M文件的建立M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器,有3種方法:(1)菜單操作。File菜單中選擇New菜單項,再選擇M-file命令。(2)命令操作。在MATLAB命令窗口輸入命令edit。(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕。,只是一個簡單的ASCII碼文本

5、文件,執(zhí)行程序時逐行解釋運行程序,matlab是解釋性的編程語言。,M文件的打開(1)菜單操作。從File菜單中選擇Open命令,在Open對話框中選中所需打開的M文件。(2)命令操作。在MATLAB命令窗口輸入命令:edit文件名。(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。,3.數(shù)據(jù)和文件的輸入輸出1)inputinput指令提示用戶從鍵盤輸入數(shù)據(jù)、字符串或表達(dá)式,并接受該輸入。指令的調(diào)用格式有兩種:A=input(prompt)%輸入數(shù)據(jù)或表達(dá)式A=input(prompt,s)%輸入字符串例如:xm=input(

6、Whatsyourname?,s);,2)數(shù)據(jù)的輸出MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。,例輸入x,y的值,并將它們的值互換后輸出。程序如下:x=input(Inputxplease.);y=input(Inputyplease.);z=x;x=y;y=z;disp(x)disp(y),數(shù)據(jù)文件.matmat文件是matlab以標(biāo)準(zhǔn)二進(jìn)制格式保存的數(shù)據(jù)文件,可將工作空間中有用的數(shù)據(jù)變量保存下來。mat文件的生成和調(diào)用是由函數(shù)save和load完成的。,(3)matlab文件的類型,m文件,m文件有兩類:獨立

7、的m文件稱命令文件(腳本文件)可調(diào)用m文件稱函數(shù)文件,4)利用文件輸入輸出數(shù)據(jù)指令“save”和“l(fā)oad”用于MATLAB與磁盤的數(shù)據(jù)交換。“save”指令將MATLAB工作空間的數(shù)據(jù)存入磁盤;“l(fā)oad”指令則將數(shù)據(jù)從磁盤送入到MATLAB工作空間。舉例說明如下:A=1,2;3,4;b=81;save(Cmydate.mat,A,b)%將變量A和b保存在文件C:mydate.mat,load(Cmydate.mat,A,b);%調(diào)入數(shù)據(jù)文件whos%顯示調(diào)入的變量NameSizeBytesClassA2x232doublearrayb11x18doublearrayGrandtotalis

8、5elementsusing40bytes,2.5.2程序控制任何計算機語言,只要利用順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)以及分支結(jié)構(gòu),就可以完成任何程序功能。由于MATLAB語言矩陣計算功能十分強大,常常僅使用順序結(jié)構(gòu)借以矩陣的邏輯運算就可以完成計算任務(wù)。由于循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)在MATLAB語言中的運行速度相對較慢,因此在算法優(yōu)化的編程中應(yīng)當(dāng)盡可能避免使用,而代之以矩陣運算,從而提高程序運行速度,簡化程序代碼,并使得程序代碼更加接近于數(shù)學(xué)表達(dá)。,1).for循環(huán)語句基本格式for循環(huán)變量起始值:步長:終止值循環(huán)體end步長缺省值為1,可以在正實數(shù)或負(fù)實數(shù)范圍內(nèi)任意指定。對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)

9、結(jié)束;對于負(fù)數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束。循環(huán)結(jié)構(gòu)可以嵌套使用。,1.循環(huán)結(jié)構(gòu),例如,最簡單的forend循環(huán):fork=1:10x(k)=k.2;end事實上,采用矩陣思想也可以獲得相同的結(jié)果,但編程更加簡單明了:k=1:10;x=k.2,絕大部分循環(huán)都可以遵從這樣的方法變成向量化(矩陣化)的算法,避免采用循環(huán)語句,從而大大提高程序的執(zhí)行效率。,2).while循環(huán)語句基本格式while表達(dá)式循環(huán)體end若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真,若不為真,則跳出循環(huán)體,向下繼續(xù)執(zhí)行。,While循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不

10、是確定的,而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的。,與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句,它們一般與if語句配合使用。break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。,2.條件分支結(jié)構(gòu)if,switch,if表達(dá)式語句1else語句2end,if表達(dá)式執(zhí)行語句end,(1)ifelseend語句有3種形式,if表達(dá)式1多分支語句1elseif表達(dá)式2語句2elseif表達(dá)式3語句3else

11、語句nend,這種結(jié)構(gòu)實現(xiàn)了一種多路選擇,比較復(fù)雜??商娲话愀呒壵Z言中的switch-case-end語句,在條件表達(dá)式中,通常都是由關(guān)系操作符,=,=,=等邏輯操作符%清除MATLAB內(nèi)存空間,這一命令常用于腳本文件的首句%以避免前面命令在內(nèi)存空間形成的變量的意外影響F=inline(t,t);%用inline函數(shù)建立積分的被積函數(shù)forx=1,3,5;f_x(k)=x3+x+log(x)*sin(x)+quadl(F,0,x);%計算表達(dá)式值k=k+1;%數(shù)組下標(biāo)加1end,f-x%顯示計算結(jié)果文件編輯存盤后,在MATLAB命令窗口執(zhí)行:,helpcalcfx這是開頭的注釋行,可以用he

12、lp命令顯示程序calcfx.m的功能是計算表達(dá)式calcfxf-x=2.500034.6550140.9567,下面是函數(shù)編程的例子,函數(shù)的文件名與函數(shù)名相同,為stat.m。程序2-2functionmean,stdev=stat(x)n=length(x);%求輸入向量x的長度mean=sum(x)/n;%求平均值stdev=sqrt(sum(x-mean).2/n);%求均方根值,m-函數(shù)實例:利用級數(shù)展開近似計算sin,sin的級數(shù)展開為,1:functions=powersin(x);2:%POWERSIN.Powerseriesforsin(x).3:%POWERSIN(x)tr

13、iestocomputesin(x)fromapowerseries,4:s=0;5:t=x;6:n=1:,7:whileabs(t)eps8:s=s+t;9:t=-x.2/(n+1)*(n+2).*t;10:n=n+2;11:end,利用“tic”和“toc”指令可以對程序段的執(zhí)行時間進(jìn)行測定,從而估計出程序執(zhí)行效率,并找出改進(jìn)程序、提高效率的方法?!皌ic”用于計時開始,而“toc”用于計時結(jié)束并顯示計時結(jié)果。,6.測定程序執(zhí)行時間和時間分配,7.提高程序執(zhí)行速度的原則要提高編程的執(zhí)行效率,則一定要根據(jù)MATLAB的特點來編寫程序,具體有以下原則:,其次,在使用大型數(shù)組或矩陣之前對其進(jìn)行初

14、始化,即采用指令“zeros”或“ones”對矩陣定維,這樣可以減少MATLAB在內(nèi)存分配過程中的耗時,大大提高速度。,首先,在編程中要盡量避免采用循環(huán)語句。利用向量化語句來代替循環(huán)語句可以大大提高程序運行速度。如果不得不采用多重循環(huán),那么內(nèi)循環(huán)的次數(shù)應(yīng)該盡可能多于外循環(huán)的次數(shù)。,第三,應(yīng)該優(yōu)先考慮使用MATLAB的內(nèi)在函數(shù)。MATLAB的內(nèi)在函數(shù)是采用C語言優(yōu)化構(gòu)造的,并固化在MATLAB的內(nèi)核中,其運行速度可以和C語言的速度等價,而用戶自行編制的M文件則是在MATLAB中解釋執(zhí)行的。另外,采用更先進(jìn)更有效的算法也可以提供計算效率??焖俑盗⑷~變換就是一個典型的例子。,2.5.4MATLAB編

15、程仿真,仿真也稱為模擬,在本質(zhì)上,系統(tǒng)的計算機仿真就是根據(jù)物理系統(tǒng)的運行原理建立相應(yīng)的數(shù)學(xué)描述并進(jìn)行計算機數(shù)值求解的過程。,建模和仿真過程,建立系統(tǒng)數(shù)學(xué)模型或仿真模型。編寫系統(tǒng)的計算機仿真模型。求解。分析。,求解算法算法的改進(jìn)簡化系統(tǒng)模型,關(guān)鍵問題:,1.系統(tǒng)仿真的數(shù)學(xué)基礎(chǔ),2.計算機仿真的一般過程,建立計算機程序(層次化的)。執(zhí)行仿真。對仿真模型和仿真結(jié)果的檢驗。,對仿真數(shù)學(xué)模型有效性的驗證。對計算機仿真模型(程序)的驗證。對仿真算法的驗證。仿真結(jié)果置信度分析。,仿真驗證包含以下方面內(nèi)容:,例1:試對空氣中在重力作用下不同質(zhì)量物體的下落過程進(jìn)行建模和仿真。已知重力加速度g=9.8m/s2,在

16、初始時刻t0=0s時物體由靜止開始墜落??諝鈱β潴w的影響可以忽略不計。,質(zhì)量為m的物體在自由墜落過程中受到豎直向下的恒定重力的作用,由牛頓第二定律,我們知道,重力F,加速度a以及物體質(zhì)量m之間的關(guān)系是:,F=ma其中a=g,初始時刻為t0=0,物體的初始速度為v(t0)=0,并設(shè)物體下落的瞬時速度為v(t)。,(1)建立數(shù)學(xué)模型,設(shè)物體在t時刻的位移為s(t),并設(shè)初始位移為零,即s(t0)=0,根據(jù)加速度、速度、位移三者之間的微積分關(guān)系,我們得到一組數(shù)學(xué)方程:,a=dt/dvv=dt/dsF=ma,以及初始條件(也稱為方程的邊界條件),v(t0)=0s(t0)=0,(2)數(shù)學(xué)模型的解析分析,

17、將方程轉(zhuǎn)換為一種在自變量(時間)上的“遞推”表達(dá)式,(3)根據(jù)數(shù)學(xué)模型建立計算機仿真模型(編程),v(t+dt)=v(t)+dv=v(t)+adts(t+dt)=s(t)+ds=s(t)+v(t)dt,(4)執(zhí)行仿真和結(jié)果分析,%ch1example1prg1.mg=9.8;%重力加速度v=0;%設(shè)定初始速度條件s=0;%設(shè)定初始位移條件t=0;%設(shè)定起始時間dt=0.1;%設(shè)置計算步長N=20;%設(shè)置仿真遞推次數(shù).仿真時間等于N與dt的乘積fork=1:Nv=v+g*dt;%計算新時刻的速度s(k+1)=s(k)+v*dt;%新位移t(k+1)=t(k)+dt;%時間更新end,%理論計算,

18、以便與仿真結(jié)果對照t_theory=0:0.01:N*dt;%設(shè)置解析計算的時間點v_theory=g*t_theory;%解析計算的瞬時速度s_theory=1/2*g*t_theory.2;%解析計算的瞬時位移%作圖:仿真結(jié)果與解析結(jié)果對比t=0:dt:N*dt;plot(t,s,o,t_theory,s_theory,-);xlabel(時間t);ylabel(位移s);legend(仿真結(jié)果,理論結(jié)果);,5)仿真程序的功能擴展-以動態(tài)方式來觀察物體墜落的過程,將作圖語句放在遞推計算循環(huán)內(nèi),并設(shè)置即時作圖刷新方式,從而得到這種“動畫”仿真的效果。,%ch1example1prg2.mg

19、=9.8;%重力加速度forL=1:5%仿真重復(fù)5次以便于觀察v=0;%初始速度s=0;%初始位置t=0;dt=0.01;%計算步長fork=1:200v=v+g*dt;%速度s=s+v*dt;%位移t=t+dt;%時間,plot(0,-s,o);axis(-22-200);%坐標(biāo)范圍固定text(0.5,-1,當(dāng)前時間:t=,num2str(t);text(0.5,-2,當(dāng)前速度:v=,num2str(v);text(0.5,-3,當(dāng)前位置:s=,num2str(s);set(gcf,DoubleBuffer,on);%雙緩沖避免作圖閃爍drawnow;%立即作圖endend,例2對乒乓球的

20、彈跳過程進(jìn)行仿真。忽略空氣對球的影響,乒乓球垂直下落,落點為光滑的水平面,乒乓球接觸落點立即反彈。如果不考慮彈跳中的能量損耗,則反彈前后的瞬時速率不變,但方向相反。如果考慮撞擊損耗,則反彈速率有所降低。我們希望通過仿真得出乒乓球位移隨時間變化的關(guān)系曲線,并進(jìn)行彈跳過程的“實時”動畫顯示。,設(shè)球是剛性的,質(zhì)量為m,垂直下落。碰擊面為水平光滑平面。在理想情況下碰擊無能量損耗。如果考慮碰擊面損耗,則碰擊前后速度方向相反,大小按比例系數(shù)K(0K1)下降。在t時刻的速度設(shè)為v=v(t),位移設(shè)為y=y(t),并以碰擊點為坐標(biāo)原點,水平方向為坐標(biāo)橫軸建立直角坐標(biāo)系。球體的速度以豎直向上方向為正方向。重力加

21、速度為g=9.8m/s2。,首先對乒乓球彈跳過程進(jìn)行一些理想化假設(shè)。,設(shè)初始時刻t0=0球體的初始速度為v0=v(t0),初始位移為y0=y(t0)。,v(t+dt)=v(t)-gdt在t+dt時刻小球的位移為y(t+dt)=y(t)+v(t)dt,在小球撞擊水平面的瞬間,即y(t)=0的時刻,它的速度方向改變,大小按比例K衰減。當(dāng)K=1時,就是無損耗彈跳情況。因此,小球反彈瞬間(t+dt時刻)的速度為,v(t+dt)=-Kv(t)-gdt;0K1,初始條件假設(shè):,在空中時小球受重力F=mg作用,其中,g=-(dt/dv)。則在t+dt時刻小球的速度為:,受力分析:,反彈瞬間的位移為,y(t+

22、dt)=y(t)-Kv(t)dt=-Kv(t)dt,(2)仿真模型設(shè)計(程序)從數(shù)學(xué)模型中可見,小球在空中自由運動時刻與撞擊時刻的動力方程不同。通過小球所處位置(位移)是否為零可判定小球處于何種狀態(tài)。,%ch1example2prg1.mg=9.8;%重力加速度v0=0;%初始速度y0=1;%初始位置m=1;%小球質(zhì)量t0=0;%起始時間K=0.85;%彈跳的損耗系數(shù)N=5000;%仿真的總步進(jìn)數(shù)dt=0.001;%仿真步長v=v0;%初狀態(tài)y=y0;,fork=1:Nif(y0)|(v0)%小球在空中的(含剛剛彈起瞬間)動力方程計算v=v-g*dt;y=y+v*dt;else%碰擊瞬間的計算

23、y=y-K.*v*dt;v=-K.*v-g*dt;ends(k)=y;%將當(dāng)前位移記錄到s數(shù)組中以便作圖end,t=t0:dt:dt*(N-1);%仿真時間長度plot(t,s);xlabel(時間t);ylabel(位移y(t);axis(0501.1);,%ch1example2prg2.mg=9.8;%重力加速度v0=0;%初始速度y0=1;%初始位置m=1;%小球質(zhì)量t0=0;%起始時間K=0.85;%彈跳的損耗系數(shù)N=5000;%仿真的總步進(jìn)數(shù)dt=0.005;%仿真步長v=v0;%初狀態(tài)y=y0;,5)仿真程序的功能擴展-以動態(tài)方式來觀察物體墜落的過程,fork=1:Nify0%小

24、球在空中的動力方程計算v=v-g*dt;y=y+v*dt;else%碰擊瞬間的計算y=-K.*v*dt;v=-K.*v-g*dt;endplot(0,y,o);axis(-2201);set(gcf,doubleBuffer,on)%雙緩沖避免作圖閃爍drawnow;end,實例3試仿真得出一個幅度調(diào)制系統(tǒng)的輸入輸出波形。設(shè)輸入被調(diào)制信號是一個幅度為2v,頻率為1000Hz的余弦波,調(diào)制度為0.5,調(diào)制載波信號是一個幅度為5v,頻率為10KHz的余弦波。所有余弦波的初相位為0。,(1)數(shù)學(xué)模型,該調(diào)幅系統(tǒng)的輸入輸出關(guān)系表達(dá)式為:,y(t)=(M+maMcos2fmt)cos2fct,其中,M=

25、2是被調(diào)信號的振幅,fm=1000是其頻率。A=5是載波信號的幅度,fc=104是其頻率。ma=0.5是調(diào)制度。,(2)編程實現(xiàn)在這個系統(tǒng)中的信號最高工作頻率為(fm+fc)=11KHz,根據(jù)取樣定理,只要離散取樣率高于該頻率的2倍即可無失真。在計算量和數(shù)據(jù)存儲量許可的條件下,取樣率可以設(shè)置更高,以使仿真計算的結(jié)果波形圖顯示更加光滑。我們設(shè)置取樣率為105,即在一個載波周期上取樣10次,相應(yīng)的取樣間隔為t=10-5s。本例中,取樣間隔也作為仿真步進(jìn)。程序代碼如下:,%ch2example1prg1.mdt=1e-5;%仿真采樣間隔T=3*1e-3;%仿真終止時間t=0:dt:T;input=2

26、*cos(2*pi*1000*t);%輸入被調(diào)信號carrier=5*cos(2*pi*1e4*t);%載波output=(2+0.5*input).*carrier;%調(diào)制輸出,%作圖:觀察輸入信號,載波,以及調(diào)制輸出subplot(3,1,1);plot(t,input);xlabel(時間t);ylabel(被調(diào)信號);subplot(3,1,2);plot(t,carrier);xlabel(時間t);ylabel(載波);subplot(3,1,3);plot(t,output);xlabel(時間t);ylabel(調(diào)幅輸出);,在實際中用雙蹤示波器來測量調(diào)幅的基帶輸入波形和調(diào)制輸

27、出波形時,只要基帶輸入余弦波的頻率與調(diào)幅載波頻率不是整數(shù)倍關(guān)系,示波器就只能夠?qū)ζ渲幸粋€信號進(jìn)行同步顯示,而另外一個信號在示波器上是滑動的。,如果調(diào)整示波器的掃描周期使之與兩個測試信號的周期都不呈整數(shù)倍關(guān)系,那么示波器屏幕上顯示的兩個信號都是滑動。能否通過仿真程序來再現(xiàn)這種波形顯示“滑動”現(xiàn)象呢?,(3)讓輸出波形“動”起來,考慮一個更接近真實物理系統(tǒng)的調(diào)幅模型??紤]了相位噪聲n(t)的載波表達(dá)為:,v(t)=Acos(2fct+n(t)),設(shè)信道是無衰減的,其加性噪聲為n(t),那么在接收機所收到的調(diào)幅信號r(t)為:,r(t)=y(t)+n(t),程序中,我們將仿真時間區(qū)間劃分為若干段,每

28、段稱為一幀,示波器的掃描周期等于幀周期,即我們每仿真得出一幀的數(shù)據(jù)就讓顯示刷新一次。程序中故意將輸入被調(diào)信號的頻率設(shè)置為1005Hz,這樣其信號周期就與仿真的幀周期不是整數(shù)倍關(guān)系,運行后將看到“不斷”滑動的被調(diào)信號,載波顯示出相位抖動現(xiàn)象,而接收信號則沾染了噪聲。,%ch2example1prg3.mdt=1e-6;%仿真采樣間隔T=2*1e-3;%仿真的幀周期forN=0:500%總共仿真的幀數(shù)t=N*T+(0:dt:T);%幀中的取樣時刻input=2*cos(2*pi*1005*t);%輸入被調(diào)信號carrier=5*cos(2*pi*(1e4)*t+0.1*randn);%載波outp

29、ut=(2+0.5*input).*carrier;%調(diào)制輸出noise=randn(size(t);%噪聲r=output+noise;%調(diào)制信號通過加性噪聲信道,%作圖:觀察輸入信號,載波,以及調(diào)制輸出subplot(3,1,1);plot(0:dt:T,input);xlabel(時間t);ylabel(被調(diào)信號);text(T*2/3,1.5,當(dāng)前幀數(shù):N=,num2str(N);subplot(3,1,2);plot(0:dt:T,carrier);xlabel(時間t);ylabel(載波);subplot(3,1,3);plot(0:dt:T,r);xlabel(時間t);yla

30、bel(調(diào)幅輸出);set(gcf,DoubleBuffer,on);%雙緩沖避免作圖閃爍drawnow;end,實例4仿真電容的充電過程。,一個電壓源通過電阻與電容串聯(lián)的網(wǎng)絡(luò)對電容充電。設(shè)t=0為初始時刻(初始時刻之前電路斷開,不工作),電壓源輸出電壓x(t)為單位階躍函數(shù),電容兩端的電壓為y(t),回路電流為i(t),并將電壓源視為系統(tǒng)輸入,電容上的電壓視為系統(tǒng)輸出。電路的初始狀態(tài)為y(0)。如圖:,電容的充電電路以及等價系統(tǒng),(1)數(shù)學(xué)分析首先根據(jù)網(wǎng)絡(luò)拓?fù)浜驮蔡匦越⒃撾娐贩匠探M,并化簡得:,該方程也稱為系統(tǒng)的狀態(tài)方程。在方程中,變量y代表電容兩端的電壓,是電容儲能的函數(shù)。本例中它既是系統(tǒng)的狀態(tài)變量,又是系統(tǒng)的輸出變量。,(2)數(shù)值求解最直接的求解方法是將上式轉(zhuǎn)換為以時間向前遞進(jìn)的計算遞推式,并以微小仿真時

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論