MATLAB軟件設(shè)計(jì)上機(jī)指南_第1頁
MATLAB軟件設(shè)計(jì)上機(jī)指南_第2頁
MATLAB軟件設(shè)計(jì)上機(jī)指南_第3頁
MATLAB軟件設(shè)計(jì)上機(jī)指南_第4頁
MATLAB軟件設(shè)計(jì)上機(jī)指南_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MATLAB軟件設(shè)計(jì)應(yīng)用技術(shù)學(xué)院2008-6第一章 MATLAB程序設(shè)計(jì)一、M文件v 用戶如想靈活應(yīng)用matlab去解決實(shí)際問題,充分調(diào)用matlab的科學(xué)技術(shù)資源,就需要編輯m文件v 包含matlab語言代碼的文件稱為m文件,其擴(kuò)展名為m。v 編輯m文件可使用各種文本編輯器。v m文件的類型是普通的文本文件,我們可以使用系統(tǒng)認(rèn)可的文本文件編輯器來建立m文件。如dos下的edit,windows的記事本和word等。v 具體的創(chuàng)建方法:1. 在matlab命令窗口點(diǎn)擊file 菜單 new m-file2. m文件m文件的語法類似于c語言,但又有其自身特點(diǎn)。它只是一個(gè)簡(jiǎn)單的ASCII碼文本文件

2、,執(zhí)行程序時(shí)逐行解釋運(yùn)行程序,matlab是解釋性的編程語言。m文件有兩類獨(dú)立的m文件 稱命令文件、可調(diào)用m文件 稱函數(shù)文件(1). 命令文件 簡(jiǎn)單的m文件命令文件實(shí)際上是一串指令的集合,與在命令窗口逐行執(zhí)行文件中的所有指令,其結(jié)果是一樣的。沒有輸入輸出參數(shù)v 命令文件包括兩部分:注釋文件和程序文件%RANKNumber of linearly independent rows or columns.%K = RANK(X) is the number of singular values of X%that are larger than MAX(SIZE(X) * NORM(X) * EP

3、S.%K = RANK(X,tol) is the number of singular values of X that%are larger than tol.%Copyright (c) 1984-94 by The MathWorks, Inc.s = svd(x);if (nargin = 1) tol = max(size(x) * max(s) * eps;endr = sum(s tol);(2).matlab內(nèi)置函數(shù)文件 matlab自定義的函數(shù)文件稱內(nèi)置函數(shù)文件 調(diào)用內(nèi)置函數(shù)的方法:使用函數(shù)名并給出相應(yīng)的入口、出口參數(shù)即可。 例如:sin.m函數(shù)用type sin查不到。

4、調(diào)用格式:y=sin(2*x) 實(shí)際應(yīng)用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y)函數(shù)m文件的格式: function 返回變量=函數(shù)名(輸入變量) 注釋說明語句段 程序語句段特定規(guī)則:1. 函數(shù)m文件第一行必須以單詞function作為引導(dǎo)詞,必須遵循如下形式: function =()2. m文件的文件名必須是 .m。3. 程序中的變量均為局部變量,不保存在工作空間中。 其變量只在函數(shù)運(yùn)行期間有效二、微分方程一般微分方程式描述系統(tǒng)內(nèi)部變量的變化率如何受系統(tǒng)內(nèi)部變量和外部激勵(lì),如輸入,的影響。當(dāng)常微分方程式能夠解析求解時(shí),可用MATLAB的符號(hào)工具箱

5、中的功能找到精確解。在本書的后面將介紹該工具箱的一些特點(diǎn)。在微分方程難以獲得解析解的情況下,可以方便地在數(shù)值上求解。為了說明起見,考慮描述振蕩器的經(jīng)典的范得波(Var der Pol)微分方程。與所有的數(shù)值求解微分方程組的方法一樣,高階微分方程式必須等價(jià)地變換成一階微分方程組。對(duì)于上述微分方程,通過重新定義兩個(gè)新的變量,來實(shí)現(xiàn)這種變換。令y1=x 且 y2=dy/dx則 dy1/dt=y2根據(jù)這個(gè)微分方程組,可用MATLAB的函數(shù)ode23和ode45求出系統(tǒng)隨時(shí)間變化的運(yùn)動(dòng)情況。調(diào)用這些函數(shù)時(shí),需要編寫一個(gè)函數(shù)M文件,給定當(dāng)前時(shí)間及y1和y2的當(dāng)前值,該函數(shù)返回上述導(dǎo)數(shù)值。MATLAB中,這

6、些導(dǎo)數(shù)由一個(gè)列向量給出。在本例中,這個(gè)列向量為yprime。同樣,y1和y2合并寫成列向量y。所得函數(shù)M文件是:function yprime=vdpol(t , y);% VDPOL(t , y) returns derivatives of the Van der Pol equation:% % x -mu *(1-x 2)*x +x=0 ( = d/dx , = d2/dx2)% % let y(1)=x and y(2)=x% % then y(1) = y(2)% y(2) = MU*(1-y(1)2)*y(2)-y(1)global MU % choose 0MUglobal M

7、U % define MU as a global variable in the Command WorkspaceMU=2; % set global parameter to desired valuet , y=ode23( vdpol , 0 , 30 , 1 ; 0); % to=0 , tf=30 , yo=1 ; 0y1=y( : , 1); % first column is y(1) versus time points in ty2=y( : , 2); % second column is y(2)plot(t , y1 , t , y2 , - )xlabel( Ti

8、me , Second ) , ylabel( Y(1) and Y(2) )title( Van der Pol Solution for mu=2 )當(dāng)mu=2時(shí)的范得波方程的運(yùn)動(dòng)曲線第二章 流程控制與繪圖一、流程控制1. For 循環(huán) For循環(huán)允許一組命令以固定的和預(yù)定的次數(shù)重復(fù)。For循環(huán)的一般形式是:for x = arraycommandsend在for和end語句之間的commands按數(shù)組中的每一列執(zhí)行一次。在每一次迭代中,x被指定為數(shù)組的下一列,即在第n次循環(huán)中,x=array(:, n)。例如, for n=1:10 x(n)=sin(n*pi/10); end xx =

9、 Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 換句話,第一語句是說:對(duì)n等于1到10,求所有語句的值,直至下一個(gè)end語句。第一次通過For循環(huán)n=1,第二次,n=2,如此繼續(xù),直至n=10。在n=10以后,F(xiàn)or循環(huán)結(jié)束,然后求end語句后面的任何命令值,在這種情況下顯示所計(jì)算的x的元素。 For循環(huán)的其它重要方面是: 1. For循環(huán)不能用For循環(huán)內(nèi)重新賦值循環(huán)變量n來終止。 for n=1:10 x(n)=si

10、n(n*pi/10); n=10; end xx = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000 2. 語句1 :10 是一個(gè)標(biāo)準(zhǔn)的MATLAB數(shù)組創(chuàng)建語句。在For循環(huán)內(nèi)接受任何有效的MATLAB數(shù)組。 data=3 9 45 6; 7 16 -1 5data = 3 9 45 6 7 16 -1 5for n=data x=n(1)-n(2) endx = -4x = -7x = 46x = 1 3. For循環(huán)可

11、按需要嵌套。for n=1:5 for m=5:-1:1 A(n,m)=n2+m2; end disp(n) end 1 2 3 4 5 AA = 2 5 10 17 26 5 8 13 20 29 10 13 18 25 34 17 20 25 32 41 26 29 34 41 50 4. 當(dāng)有一個(gè)等效的數(shù)組方法來解給定的問題時(shí),應(yīng)避免用For循環(huán)。例如,上面的第一個(gè)例子可被重寫為 n=1:10; x=sin(n*pi/10)x = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8

12、through 10 0.5878 0.3090 0.0000兩種方法得出同樣的結(jié)果,而后者執(zhí)行更快,更直觀,要求較少的輸入。 5. 為了得到最大的速度,在For循環(huán)(While循環(huán))被執(zhí)行之前,應(yīng)預(yù)先分配數(shù)組。例如,前面所考慮的第一種情況,在For循環(huán)內(nèi)每執(zhí)行一次命令,變量x的大小增加1。迫使MATLAB每通過一次循環(huán)要花費(fèi)時(shí)間對(duì)x分配更多的內(nèi)存。為了消去這個(gè)步驟,F(xiàn)or循環(huán)的例子應(yīng)重寫為x=zeros(1,10); % preallocated memory for x for n=1:10 x(n)=sin(n*pi/10); end現(xiàn)在,只有x(n)的值需要改變。2. While 循環(huán)

13、 與For循環(huán)以固定次數(shù)求一組命令的值相反,While 循環(huán)以不定的次數(shù)求一組語句的值。While循環(huán)的一般形式是: while expression commands end只要在表達(dá)式里的所有元素為真,就執(zhí)行while和end 語句之間的commands。通常,表達(dá)式的求值給出一個(gè)標(biāo)量值,但數(shù)組值也同樣有效。在數(shù)組情況下,所得到數(shù)組的所有元素必須都為真。考慮下列例子: num=0;EPS=1; while (1+EPS)1 EPS=EPS/2; num=num+1; end numnum = 53 EPS=2*EPSEPS = 2.2204e-016 這個(gè)例子表明了計(jì)算特殊MATLAB值e

14、ps的一種方法,它是一個(gè)可加到1,而使結(jié)果以有限精度大于1的最小數(shù)值。這里我們用大寫EPS,因此MATLAB的eps的值不會(huì)被覆蓋掉。在這個(gè)例子里,EPS以1開始。只要(1+EPS)1為真(非零),就一直求While循環(huán)內(nèi)的命令值。由于EPS不斷地被2除,EPS逐漸變小以致于EPS+1不大于1。(記住,發(fā)生這種情況是因?yàn)橛?jì)算機(jī)使用固定數(shù)的數(shù)值來表示數(shù)。MATLAB用16位,因此,我們只能期望EPS接近10-16。) 在這一點(diǎn)上,(1+EPS)1是假(零),于是While循環(huán)結(jié)束。最后,EPS與2相乘,因?yàn)樽詈蟪?使EPS太小。3. IF-ELSE-END 結(jié)構(gòu) 很多情況下,命令的序列必須根據(jù)關(guān)

15、系的檢驗(yàn)有條件地執(zhí)行。在編程語言里,這種邏輯由某種If-Else-End結(jié)構(gòu)來提供。最簡(jiǎn)單的If-Else-End結(jié)構(gòu)是: if expression commands end 如果在表達(dá)式中的所有元素為真(非零),那么就執(zhí)行if和end語言之間的commands。在表達(dá)式包含有幾個(gè)邏輯子表達(dá)式時(shí),即使前一個(gè)子表達(dá)式?jīng)Q定了表達(dá)式的最后邏輯狀態(tài),仍要計(jì)算所有的子表達(dá)式。例如, apples=10; % number of apples cost=apples*25 % cost of applescost = 250 if apples5 % give 20% discount for larg

16、er purchases cost=(1-20/100)*cost; end costcost = 200 假如有兩個(gè)選擇,If-Else-End結(jié)構(gòu)是: if expression commands evaluated if True else commands evaluated if False end在這里,如果表達(dá)式為真,則執(zhí)行第一組命令;如果表達(dá)式是假,則執(zhí)行第二組命令。 當(dāng)有三個(gè)或更多的選擇時(shí),If-Else-End結(jié)構(gòu)采用形式 if expression1 commands evaluated if expression1 is True elseif expression2

17、commands evaluated if expression2 is True elseif expression3 commands evaluated if expression3 is True elseif expression4 commands evaluated if expression4 is True elseif else commands evaluated if no other expression is True end 最后的這種形式,只和所碰到的、與第一個(gè)真值表達(dá)式相關(guān)的命令被執(zhí)行;接下來的關(guān)系表達(dá)式不檢驗(yàn),跳過其余的If-Else-End結(jié)構(gòu)。而且,最后

18、的else命令可有可無。 現(xiàn)在我們知道了如何用If-Else-End結(jié)構(gòu)來決策,就有可能提出一種合理的方法來跳出或中斷For循環(huán)和While循環(huán)。 EPS=1; for num=1:1000 EPS=EPS/2; if (1+EPS)=1 EPS=EPS*2 break end endEPS = 2.2204e-016 numnum = 53 這個(gè)例子演示了估算EPS的另一種方法。在這種情況下,F(xiàn)or循環(huán)構(gòu)造成要執(zhí)行足夠多的次數(shù)。If-Else-End結(jié)構(gòu)檢驗(yàn)要看EPS是否變得足夠小。如果是,EPS乘2,break命令強(qiáng)迫For循環(huán)提早結(jié)束,num=53。 在這個(gè)例子里,當(dāng)執(zhí)行break 語句

19、時(shí),MATLAB跳到循環(huán)外下一個(gè)語句。在現(xiàn)在情況下,它返回到MATLAB的提示符并顯示EPS。如果一個(gè)break語句出現(xiàn)在一個(gè)嵌套的For循環(huán)或While循環(huán)結(jié)構(gòu)里,那么MATLAB只跳出break所在的那個(gè)循環(huán),不跳出整個(gè)嵌套結(jié)構(gòu)。4. 小結(jié) MATLAB控制流功能可以概括如下:表7.1控 制 流 結(jié) 構(gòu)for x = array commandsendFor循環(huán),每一次迭代將x賦以數(shù)組的第i列,執(zhí)行命令while expression commandsendWhile循環(huán),只要表達(dá)式的所有元素為真或非零,執(zhí)行命令。if expression commandsend簡(jiǎn)單的If-Else-En

20、d結(jié)構(gòu),若在表達(dá)式中的所有元素是真值或非零,執(zhí)行命令。if expression commands evaluated if Trueelse expression commands evaluated if Falseend具有兩條路徑的If-Else-End結(jié)構(gòu),若表達(dá)式為真或非零,則執(zhí)行一組命令。若表達(dá)式為假或零,則執(zhí)行另一組命令。if expression1 commands evaluated if expression1 is Trueelseif expression2 commands evaluated if expression2 is Trueif expression3

21、 commands evaluated if expression3 is Trueelseif else commands evaluated if no other expression is Trueend最一般的If-Else-End結(jié)構(gòu)。只執(zhí)行與第一個(gè)真值表達(dá)式相關(guān)的命令。break結(jié)束For循環(huán)和While循環(huán)的執(zhí)行二、 繪圖plot的基本調(diào)用格式【1】簡(jiǎn)單例題,比較方便的試驗(yàn)指令。t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y) plot指令基本操作演示【2】用圖形表示連續(xù)調(diào)制波形 及其包絡(luò)線。t=(0:pi/100:pi);%長(zhǎng)

22、度為101的時(shí)間采樣列向量y1=sin(t)*1,-1;%包絡(luò)線函數(shù)值,是(101x2)的矩陣y2=sin(t).*sin(9*t);%長(zhǎng)度為101的調(diào)制波列向量t3=pi*(0:9)/9;%y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo)%axis(0,pi,-1,1)%控制軸的范圍 第三章 句柄與SIMULINK一、句柄獲取示例【1】畫網(wǎng)線圖,并得相應(yīng)句柄;追溯法找所在圖形窗句柄;gcf 和gca演示。clf reset;H_mesh=mesh(peaks(20)H_grand_parent=get(get(H_mesh,Parent)

23、,Parent)disp( 圖柄 軸柄),disp(gcf gca)%顯示當(dāng)前圖形窗和軸的句柄 H_mesh = 73.0135H_grand_parent = 1 圖柄 軸柄 1.0000 72.0051【2】低層指令繪圖,獲得句柄;獲取同軸上字對(duì)象的句柄和相應(yīng)對(duì)象類型。clf reset,t=(0:100)/100*2*pi;H_line=line(Xdata,t,Ydata,sin(t)text(pi,0.8,fontsize14sin(t)H_c=get(get(H_line,parent),children)%軸之所有“子”的句柄T=get(H_c,Type)%軸之所有“子”對(duì)象名稱

24、 H_line = 72.0052H_c = 74.0116 72.0052T = text line二、 SIMULINKsimulink工具箱簡(jiǎn)介 simulink 是實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模、仿真和分析的一個(gè)集成環(huán)境,使得matlab的功能得到進(jìn)一步擴(kuò)展,它可以非常容易的實(shí)現(xiàn)可視化建模,把理論研究和工程實(shí)踐有機(jī)的結(jié)合在一起。 大部分專用工具箱只要以matlab主包為基礎(chǔ)就能運(yùn)行,有少數(shù)工具箱(通訊工具箱、信號(hào)處理工具箱等)則要求有simulink工具箱的支持。 由于matlab和simulink是集成在一起的,因此用戶可以在兩種環(huán)境下對(duì)自己的模型進(jìn)行仿真、分析和修改。 不用命令行編程,由方框圖產(chǎn)

25、生m文件(s函數(shù)) 當(dāng)創(chuàng)建好的框圖保存后,相應(yīng)的m文件就自動(dòng)生成,這個(gè).m文件包含了該框圖的所有圖形及數(shù)學(xué)關(guān)系信息。 框圖表示比較直觀,容易構(gòu)造,運(yùn)行速度較快?!?】模擬一個(gè)微分方程x = -2x + uu xx-2x.【2】 8-3線編碼器的設(shè)計(jì)要求:用SIMULINK實(shí)現(xiàn)8線3線編碼器,它的功能是對(duì)輸入端的8個(gè)信號(hào)進(jìn)行編碼,輸出三位二進(jìn)制數(shù)。要求輸入信號(hào)每次只有一個(gè)0,其余7個(gè)都是1.其中0值是待編碼信號(hào)。step1:首先列出下面的真值表。輸入信號(hào)輸出信號(hào)I0 I1I2 I3I4I5I6I7Y2Y1Y001111111000101111110011101111101011101110111

26、1110111100111110111011111110111011111110111step2: 寫出輸入輸出之間的邏輯函數(shù)關(guān)系:step3:建立SIMULINK模型。(1)在MATLAB中運(yùn)行SIMULINK,打開模塊瀏覽器,然后新建一個(gè)模型。(2)把本次仿真需要用到的模塊添加到模型中(這里共需要三種模塊:與非門4個(gè),離散信號(hào)脈沖源8個(gè),示波器3個(gè))。其中,與非門位于SIMULINK模塊庫下的Math子模塊庫中的logocal operator中,離散信號(hào)脈沖源位于SIMULINK-sources-discrete pulse generator,示波器位于SIMULINK-Sinks-S

27、cope。 點(diǎn)擊與非門模塊的名稱,將其改為Y0,然后點(diǎn)擊選中的與非門模塊不要松開鼠標(biāo),按住Ctrl鍵拖動(dòng)模塊到另一個(gè)位置,就會(huì)自動(dòng)復(fù)制生成新的與非門模塊Y2,用同樣的方法生成Y3。類似地將離散信號(hào)脈沖源模塊名字改為I0,并得到I1I7。最后再將示波器復(fù)制3個(gè)。(3)修改模塊參數(shù)。雙擊Y0,打開屬性對(duì)話框,將操作(operator)改為“NAND”,輸入節(jié)點(diǎn)數(shù)改為4,然后點(diǎn)擊OK確定。Y1,Y2也要進(jìn)行同樣的修改。雙擊示波器模塊scope0,得到一個(gè)圖形界面,在其工具欄上單擊Parameter圖標(biāo),打開是示波器屬性對(duì)話框,將坐標(biāo)軸數(shù)改為3,同樣,示波器Scope1和Scope2的坐標(biāo)數(shù)改為4。最

28、后修改脈沖源的屬性。雙擊離散脈沖源I0,將打開其屬性對(duì)話框。針對(duì)本例子,我們需要I0-I7依次為低電平,所以將I0到I7的周期調(diào)整為8,脈沖寬度設(shè)定為7,相位延遲依次為-7到0,其他采用默認(rèn)值。這樣在零時(shí)刻,I0為低電平,其余輸入為高電平;經(jīng)過一個(gè)采樣時(shí)間,I1變?yōu)榈碗娖剑源祟愅?,到?個(gè)采樣時(shí)間,I7變?yōu)榈碗娖剑瑥亩鴮?shí)現(xiàn)了設(shè)計(jì)要求。注意:參數(shù)Pulse Type要選擇Sample Based,而且Sample time為默認(rèn)值1。(4)連線仿真將各個(gè)模塊之間的連線連好。根據(jù)輸入輸出邏輯表達(dá)式,將I1,I3,I5,I7接到Y(jié)0的輸入,將I2,I3,I6,I7接Y1輸入,將I4,I5,I6,I

29、7接Y2輸入。然后用示波器Scope0監(jiān)測(cè)Y2,Y1,Y0的輸出,Scope1檢測(cè)I0I3,Scope2監(jiān)測(cè)I4I7。(5)保存模型到自己的工作目錄。(6)點(diǎn)擊開始仿真的按鈕進(jìn)行仿真。仿真結(jié)束后可以從Scope1和Scope2上看到編碼器的8個(gè)輸入波形,可以在示波器Scope0上看到編碼器的輸出波形?!?】 利用SIMULINK產(chǎn)生數(shù)字基帶信號(hào)用SIMULINK建立數(shù)字基帶傳輸系統(tǒng)模型,并觀察輸出信號(hào)的波形和頻譜。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)序列,信號(hào)波特率為1000B;(2)用波形成型法生成數(shù)字基帶信號(hào),波形為滾降系數(shù)為1的升余弦滾降濾波器沖擊響應(yīng)的截至函數(shù),要求包含主瓣和一對(duì)旁瓣;

30、(3)抽樣速率為8000Hz;(4)觀察輸出信號(hào)的波形和頻譜。提示:(1)首先利用SIMULINK生成波特率為1000B的隨機(jī)序列。(2)數(shù)字基帶信號(hào)的時(shí)域表達(dá)式:將上面的公式離散化,變?yōu)椋?,其中為抽樣間隔。當(dāng)時(shí),否則為1。又抽樣頻率,所以可以表示為序列,這一操作可以用插值器(Upsampler)來實(shí)現(xiàn)。(3)建立SIMULINK模型【4】 DSB調(diào)制解調(diào)系統(tǒng)仿真基帶信號(hào)經(jīng)過DSB調(diào)制,載頻500Hz。已知AWGN信道中噪聲的比特信噪比為10dB,然后經(jīng)過相干解調(diào)。試觀察信道中傳輸?shù)男盘?hào)波形以及解調(diào)輸出的信號(hào)波形。clf%生成DSB調(diào)制信號(hào)%計(jì)算抽樣時(shí)間間隔fh=100;%調(diào)制信號(hào)帶寬(Hz)

31、fs=40*fh;ts=1/fs;%根據(jù)抽樣時(shí)間間隔進(jìn)行抽樣t=(0:ts:5*pi);%抽樣時(shí)間間隔要足夠小,要滿足抽樣定理。m=cos(2*pi*t);%基帶信號(hào)y=m.*cos(1000*pi*t);%已調(diào)信號(hào)%生成AWGN中的噪聲%計(jì)算信號(hào)功率p_baseband=(norm(m)2)/length(m);p_DSB=(norm(y)2)/length(y);snr=10;%信噪比10dBsnr_lin=10(snr/10);%分貝信噪比轉(zhuǎn)換為線性信噪比noise_power=p_DSB/snr_lin;noise_std=sqrt(noise_power);noise=randn(1

32、,length(y)*noise_std;signal_in_channel=y+noise;%繪出調(diào)制信號(hào)和信道中傳輸?shù)男盘?hào)subplot(2,1,1);plot(t,signal_in_channel,b)xlabel(t);ylabel(DSB signal plus noise);axis(0,16,-1,1);subplot(2,1,2);plot(t,y,r);xlabel(t);ylabel(DSB signal); %解調(diào)df=0.3;%所需要的頻率分辨率r=y.*cos(1000*pi*t);%接收的信號(hào)與載波相乘%傅立葉變換n1=fs/df;n2=length(r);n=2

33、(max(nextpow2(n1),nextpow2(n2);R=fft(r,n);r=r,zeros(1,n-n2);df1=fs/n;R=R/fs;%縮放%設(shè)計(jì)濾波器f_cutoff=100;%濾波器截至頻率n_cutoff=floor(150/df1);f=0:df1:df1*(length(r)-1)-fs/2;H=zeros(size(f);H(1:n_cutoff)=2*ones(1,n_cutoff);H(length(f)-n_cutoff+1:length(f)=2*ones(1,n_cutoff);OUTPUT=H.*R;output=real(ifft(OUTPUT)*f

34、s;%觀察波形subplot(2,1,1);plot(t,m,b)xlabel(t);ylabel(m(t);subplot(2,1,2);plot(t,output(1:length(m),r);xlabel(t);ylabel(demodulation output);axis(0,16,-1,1) 第四章 練習(xí)題部分(任選一道完成)練習(xí)1. 數(shù)字信號(hào)的碼型和波形變換內(nèi)容:設(shè)計(jì)具有下列數(shù)字基帶碼型和波形變換功能的m文件:(1)AMI碼;(2)HDB3碼;(3)雙極性RZ差分碼波形。要求:(1)m文件共兩個(gè)輸入?yún)?shù),第一個(gè)參數(shù)用來控制進(jìn)行何種碼型變換,第二個(gè)參數(shù)是二進(jìn)制信息碼序列;(2)根據(jù)

35、參數(shù)進(jìn)行相應(yīng)的碼型變換,并輸出變換前后的碼;(3)畫出輸入二進(jìn)制信息碼對(duì)應(yīng)的雙極性RZ差分碼波形,要求占空比為1/2。練習(xí)2. 二進(jìn)制數(shù)字基帶傳輸系統(tǒng)及誤碼性能仿真(*選作)內(nèi)容:用SIMULINK建立數(shù)字基帶傳輸系統(tǒng)模型,并觀察輸出信號(hào)的波形和頻譜。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)序列,信號(hào)波特率為1000B;(2)用波形成型法生成數(shù)字基帶信號(hào),波形為滾降系數(shù)為1的升余弦滾降濾波器沖擊響應(yīng)的截至函數(shù),要求包含主瓣和一對(duì)旁瓣;(3)抽樣速率為8000Hz;(4)觀察輸出信號(hào)的波形和頻譜。練習(xí)3. 某商場(chǎng)對(duì)顧客所購買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示): price20

36、0 沒有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣5000price 14%折扣輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。練習(xí)4. 假設(shè)從實(shí)際自然界(力學(xué)、電學(xué)、生態(tài)等)或社會(huì)中,抽象出有初始狀態(tài)為0的二階微分方程,是單位階躍函數(shù)。本例演示如何用積分器直接構(gòu)搭求解該微分方程的模型。(1)改寫微分方程(2)利用SIMULINK庫中的標(biāo)準(zhǔn)模塊構(gòu)作模型求解微分方程的SIMULINK模型exm9312_1.mdl第五章 設(shè)計(jì)題(任選一個(gè)完成)采用MATLAB中的SIMULINK動(dòng)態(tài)仿真庫建立通信系

37、統(tǒng)模型,進(jìn)行系統(tǒng)性能的動(dòng)態(tài)仿真;或者使用TOOLBOX函數(shù)進(jìn)行M文件的編程實(shí)現(xiàn)對(duì)通信系統(tǒng)的仿真。題目1:平面內(nèi)移動(dòng)機(jī)器人跟蹤控制的matlab仿真內(nèi)容:建立一個(gè)M-文件:對(duì)平面內(nèi)移動(dòng)機(jī)器人跟蹤控制進(jìn)行matlab仿真。要求:(1)利用function 返回變量=函數(shù)名(輸入變量) 建立子函數(shù);(2)主函數(shù)部分調(diào)用ODE45解(1)的函數(shù);(3)分別對(duì)參考軌跡為圓形、直線型路徑的情形進(jìn)行仿真;(4)利用plot函數(shù)分別給出平面內(nèi)移動(dòng)軌跡圖。題目2:室內(nèi)移動(dòng)機(jī)器人自主避障的matlab仿真內(nèi)容:對(duì)室內(nèi)存在障礙物情況下移動(dòng)機(jī)器人的自主避障進(jìn)行matlab仿真。要求:(1)利用get獲得句柄圖形對(duì)象的

38、屬性和返回某些對(duì)象的句柄值、利用set: 改變圖形對(duì)象的屬性;(2)利用plot函數(shù)分別給出室內(nèi)障礙物;(3)利用各種流程(順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu))控制語句,以獲得動(dòng)畫效果。題目3:利用SIMULINK分析系統(tǒng)動(dòng)態(tài)性能內(nèi)容:如圖所示噴射動(dòng)力車的定位控制問題。裝置左右噴射發(fā)動(dòng)機(jī)的車輛示意圖利用SIMULINK實(shí)現(xiàn)對(duì)系統(tǒng)的動(dòng)態(tài)性能分析。要求:(1)利用SIMULINK搭建系統(tǒng)仿真環(huán)境;(2)對(duì)于系統(tǒng)動(dòng)態(tài)性能進(jìn)行分析,車輛速度與位移小于某閾值時(shí)被認(rèn)為控制目標(biāo)達(dá)到。要求程序的每一行語句都要有注釋說明。自由發(fā)揮:自己提出問題,實(shí)驗(yàn)探索,廣泛聯(lián)想,發(fā)現(xiàn)規(guī)律,大膽猜想。題目4: 2ASK傳輸系統(tǒng)及其誤

39、碼性能仿真內(nèi)容:仿真2ASK調(diào)制和解調(diào),并分析其在AWGN信道中傳輸?shù)恼`碼性能。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)波(單極性NRZ基帶信號(hào)),信號(hào)速率為200Hz;(2)對(duì)此信號(hào)進(jìn)行2ASK調(diào)制,載波頻率fc=400Hz,觀察調(diào)制信號(hào)波形;(3)通過AWGN信道,并觀察接收機(jī)收到的信號(hào)的波形;(4)對(duì)收到的2ASK信號(hào)進(jìn)行同步解調(diào),給出此時(shí)計(jì)算得到的誤碼率;(5)畫出仿真得到的誤碼率-比特信噪比(1dB-12dB)性能曲線,并與理論曲線進(jìn)行比較。(*提高要求)提示:系統(tǒng)實(shí)現(xiàn)原理圖解調(diào)原理圖題目5: 2FSK傳輸系統(tǒng)及其誤碼性能仿真內(nèi)容:仿真2FSK調(diào)制和解調(diào),并分析其在AWGN信道中傳輸?shù)恼`

40、碼性能。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)波(單極性NRZ基帶信號(hào)),信號(hào)速率為200Hz;(2)對(duì)此信號(hào)進(jìn)行2FSK調(diào)制,載波頻率fc1=400Hz,fc2=800Hz,觀察調(diào)制信號(hào)波形;(3)通過AWGN信道,并觀察接收機(jī)收到的信號(hào)的波形;(4)對(duì)收到的2FSK信號(hào)進(jìn)行相干解調(diào),給出此時(shí)計(jì)算得到的誤碼率;(5)畫出仿真得到的誤碼率-比特信噪比(1dB-12dB)性能曲線,并與理論曲線進(jìn)行比較。(*提高要求)提示:系統(tǒng)實(shí)現(xiàn)原理圖解調(diào)器原理圖:題目6: 2PSK傳輸系統(tǒng)及其誤碼性能仿真內(nèi)容:仿真2PSK調(diào)制和解調(diào),并分析其在AWGN信道中傳輸?shù)恼`碼性能。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)波

41、(單極性NRZ基帶信號(hào)),信號(hào)速率為200Hz;(2)對(duì)此信號(hào)進(jìn)行2PSK調(diào)制,載波頻率fc=400Hz,觀察調(diào)制信號(hào)波形;(3)通過AWGN信道,并觀察接收機(jī)收到的信號(hào)的波形;(4)對(duì)收到的2PSK信號(hào)進(jìn)行相干解調(diào),給出此時(shí)計(jì)算得到的誤碼率;(5)畫出仿真得到的誤碼率-比特信噪比(1dB-12dB)性能曲線,并與理論曲線進(jìn)行比較。(*提高要求)提示:系統(tǒng)實(shí)現(xiàn)原理圖解調(diào)原理圖題目7: 數(shù)字電路仿真綜合題內(nèi)容:用SIMULINK完成對(duì)數(shù)字電路的仿真。要求:1.對(duì)下面的組合邏輯電路進(jìn)行仿真測(cè)試:(1)設(shè)計(jì)二/四線譯碼器(2)設(shè)計(jì)四選一數(shù)據(jù)選擇器2.對(duì)下面的時(shí)序邏輯電路進(jìn)行仿真測(cè)試:(1)設(shè)計(jì)四位二進(jìn)制計(jì)數(shù)器(帶置位和清零)(2)設(shè)計(jì)四位同步加/減計(jì)數(shù)器。3.鋸齒波信號(hào)發(fā)生器設(shè)計(jì)及仿真函數(shù)信號(hào)源采用數(shù)字方式存儲(chǔ)一到幾個(gè)周期,再用時(shí)間計(jì)數(shù),循環(huán)執(zhí)行的方法實(shí)現(xiàn)函數(shù)信號(hào)的連續(xù)輸出。提示:系統(tǒng)基本結(jié)構(gòu)框圖4.三角波信號(hào)發(fā)生器(*提高要求)題目8: 2DPSK傳輸系統(tǒng)及其誤碼性能仿真內(nèi)容:仿真2DPSK調(diào)制和解調(diào),并分析其在AWGN信道中傳輸?shù)恼`碼性能。要求:(1)產(chǎn)生二進(jìn)制0,1隨機(jī)信號(hào)波(單極性NRZ基帶信號(hào)),信號(hào)速率為

溫馨提示

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