久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

00講稿實驗二 用MATLAB實現線性系統的時域分析

時間:2019-05-14 16:58:46下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《00講稿實驗二 用MATLAB實現線性系統的時域分析》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《00講稿實驗二 用MATLAB實現線性系統的時域分析》。

第一篇:00講稿實驗二 用MATLAB實現線性系統的時域分析

實驗二

用MATLAB實現線性系統的時域分析

[實驗目的] 1.研究線性系統在典型輸入信號作用下的暫態響應; 2.熟悉線性系統的暫態性能指標;

3.研究二階系統重要參數阻尼比ξ對系統動態性能的影響; 4.熟悉在MATLAB下判斷系統穩定性的方法; 5.熟悉在MATLAB下求取穩態誤差的方法。

[實驗指導] MATLAB中有兩類用于求解系統時域響應的方法。

其一是利用 MATLAB 中的控制系統工具箱(Control System Toolbox)提供的函數(命令);

其二是Simulink仿真,它主要用于對復雜系統進行建模和仿真。

一、用MATLAB函數(命令)進行暫態響應分析 1 求取線性連續系統的單位階躍響應的函數——step

基本格式為: step(sys)

step(num,den)

step(A,B,C,D)step(sys,t)step(sys1,sys2,…,t)y=step(sys,t)[y,t]=step(sys)[y,t,x]=step(sys)

其中模型對象的類型如下:

sys = tf(num,den)多項式模型 sys = zpk(z,p,k)零點極點模型 sys = ss(a,b,c,d)狀態空間模型 參數無t,表示時間向量t的范圍自動設定。

參數有t,表示給定時間向量t,應該有初值,時間增量,末值,如t=0:0.01:2。

前5種函數可以繪出階躍響應曲線;后3種函數不繪階躍響應曲線,而是返回響應變量y,時間向量t,以及狀態變量x。求取線性連續系統的單位脈沖響應的函數——impulse

基本格式為: impulse(sys)impulse(num,den)impulse(sys,tf)impulse(sys,t)impulse(sys1,sys2,…,t)y=impulse(sys,t)[y,t]=impulse(sys)[y,t,x]=impulse(sys)求取線性連續系統的單位斜坡響應

MATLAB沒有直接求系統斜坡響應的功能函數。在求取控制系統的斜坡響應時,通常用階躍響應函數step()求取傳遞函數為 G(s)/s的系統的階躍響應,則其結果就是原系統G(s)的斜坡響應。原因是,單位階躍信號的拉氏變換為1/s,而單位斜坡信號的拉氏變換為1/s2。4.求取線性連續系統對任意輸入的響應的函數——lsim 其格式為

y=lsim(sys,u,t)

其中,t為仿真時間,u為控制系統的任意輸入信號。5.暫態響應性能指標

在階躍響應曲線窗口,使用右鍵彈出浮動菜單,選擇其中的Characteristics子菜單,有4個子項:

①Peak Response

峰值響應,點擊將出現標峰值記點,單擊此標記點可獲得峰值幅值,超調量和峰值時間。

②Settling Time

調節時間,點擊將出現調節時間標記點,單擊此標記點即可獲得調節時間。

③Rise Time

上升時間,點擊將出現上升時間標記點,單擊此標記點即可獲得上升時間。

④Steady State

穩定狀態,若系統穩定,點擊將在穩態值處出現標記點,單擊此標記點即可獲得穩態值;若系統不穩定,標記點不會出現。

對于不同的系統響應類型,Characteristics菜單的內容并不相同。雖然不同響應曲線的特 性參數不相同,但是均可以使用類似的方法從系統響應曲線中獲得相應的信息。

Step Response1.5 System: sys Settling Time: 3.4 1.5Step ResponseAmplitude0.5Amplitude110.5 System: sys Peak amplitude: 1.11 Overshoot(%): 10.8 At time: 2.22 00123450024Time(sec)68Time(sec)

6、其它

①hold on 命令:可以允許在已經畫曲線的圖形窗口上再畫新曲線;hold off命令取消該功能。

②figure(i)命令:打開第i個圖形窗口,把曲線繪在該圖形窗口。③grid on命令:使圖上出現網格。

④subplot(m,n,p)命令;把一個畫面分成m×n個圖形區域, p代表當前的區域號,可在每個區域中分別畫一個圖。

⑤也可以通過主界面菜單file/new/figure打開1個新圖形窗口,系統自動為其編號。7.舉例

例1:系統傳遞函數為G(s)?20s?33,求其階躍響應、脈沖響應、斜坡響應、2s?2s?10①分3個圖形窗口分別顯示的程序:

>> n=[20,33];d=[1,2,10];sys=tf(n,d);step(sys);figure(2);impulse(sys);n1=[20,33];d1=[1,2,10,0];sys1=tf(n1,d1);figure(3);step(sys1)運行結果:

Step Response7 System: sys Peak amplitude: 6.68 Overshoot(%): 103 At time: 0.607 65Amplitude4 System: sys Rise Time: 0.142 System: sys Settling Time: 4.13 System: sys DC gain: 3.3 32100123Time(sec)456

Impulse Response20 System: sys Peak amplitude: 20 At time: 0 1510Amplitude5 System: sys Settling Time: 3.5 0-5-100123Time(sec)456

Step Response353025Amplitude20***5Time(sec)678910

③在1個窗口中的3個子圖形窗口顯示的程序:

>> figure(1);n=[20,33];d=[1,2,10];sys=tf(n,d);subplot(2,2,1);impulse(sys);subplot(2,2,2);n1=[20,33];d1=[1,2,10,0];sys1=tf(n1,d1);step(sys1);subplot(2,2,3);step(sys)運行結果:

Impulse Response204030AmplitudeStep ResponseAmplitude10201000-1002Time(sec)4605Time(sec)10Step Response86Amplitude42002Time(sec)46

例2:系統傳遞函數為G(s)?10,求輸入分別是自定義的1(t)和4*1(t)時的響應。2s?2s?10①2個輸入和2個輸出波形分別在4個子圖形窗口顯示的程序:

>> figure(7);n=[10];d=[1,2,10];sys=tf(n,d);subplot(2,2,1);u=1+0*t;t=0:0.01:10;plot(t,u);subplot(2,2,3);y=lsim(sys,u,t);plot(t,y);>> u1=4+0*t;subplot(2,2,2);plot(t,u1);subplot(2,2,4);y1=lsim(sys,u1,t);plot(t,y1)

運行結果:

21.510.5054.543.53051005101.56140.520051000510 ②2個輸入和2個輸出波形在1個圖形窗口同時顯示的程序:

>> n=[10];d=[1,2,10];sys=tf(n,d);t=0:0.01:10;u=1+0*t;sys2=tf([1],[1]);lsim(sys2,u,t);hold on;lsim(sys,u,t);u1=4+0*t;plot(t,u1);lsim(sys,u1,t)

Linear Simulation Results654Amplitude3210012345Time(sec)678910

例3:系統傳遞函數為G(s)?20,求輸入分別是自定義的1(t)+3*sin(t)時的響應。2s?2s?10程序;

>> n=[20];d=[1,2,10];sys=tf(n,d);t=0:0.001:15;u=1+sin(t);sys2=tf([1],[1]);figure(16);lsim(sys2,u,t);hold on;lsim(sys,u,t)

Linear Simulation Results105Amplitude0-505Time(sec)1015

例4:系統傳遞函數為G(s)?20,求系統的階躍響應。

s3?2s2?2s?10程序;

>> n=[20];d=[1,2,6,10];sys=tf(n,d);figure(24);step(sys)

Step Response32.52Amplitude1.510.5005101520Time(sec)25303540

二、用Simulink進行暫態響應分析

1.系統仿真方框圖的建立

方框圖的建立與實驗一中所述相同,不同點是不用輸入點與輸出點標記,輸入點安置信號發生器,比如階躍輸入信號;輸出點安置示波器。需要如下操作:

打開Simulink→Sources子庫,將step模塊(階躍輸入信號)復制到(拽到)模型文件窗口,放到相應位置。(或其他輸入信號模塊)

打開Simulink→Sinks子庫,將scope模塊(示波器)復制到(拽到)模型文件窗口,放到相應位置。

輸入信號模塊和示波器模塊都可以進行參數設置。2.設置仿真控制參數

打開Simulation菜單,找到Parameters選項,可打開參數設置對話框。它包括仿真時間范圍的選擇、仿真算法的選擇、仿真步長的指定及仿真精度(誤差)的定義等。

3.運行

可選擇 Simulation→ Start。點擊示波器,在示波器窗口中可以看到響應仿真曲線。

舉例;系統方框圖和階躍輸入下示波器顯示的響應曲線如下:

s+242s +s+10StepTransfer FcnScope

三、在MATLAB下判斷系統穩定性

首先求得閉環傳遞函數,再使用MATLAB函數(命令)roots(den)解出特征方程的根,即閉環極點,再根據極點位置,判斷系統是否穩定。

舉例:判斷系統G(s)?程序和結果:

>> d=[1 2 8 5 26];roots(d)ans =

-1.4509 + 2.1633i

-1.45091.9049i 分析判斷:有2個根在s平面右半部分,系統不穩定。或者:

>> n=[50];d=[1 2 8 5 26];sys=tf(n,d)

Transfer function:

50---------s^4 + 2 s^3 + 8 s^2 + 5 s + 26

是否穩定。

s4?2s3?8s2?5s?26>> roots(sys.den{1})

ans =

-1.4509 + 2.1633i

-1.45091.9049i

四、在MATLAB下求取穩態誤差

求取穩態誤差終值的函數(命令)為dcgain()調用格式為

dcg=dcgain(G)其中

G=s·R(S)·φe(S)

R(S): 輸入信號的拉氏變換;

φe(S):誤差傳遞函數;

舉例:系統前向通道傳遞函數為G(s)?50,反饋通道傳遞函數為322s?8s?5s?8H(s)?4/25,求輸入為r(t)=1(t)時的穩態誤差。

1?解:?e(s)?1?G(s)H(s)程序和結果:

12s3?8s2?5s?8?3

5042s?8s2?5s?161?3?2s?8s2?5s?825>> n=[50];d=[ 2 8 5 8];sys=tf(n,d);n1=4;d1=25;sys1=tf(n1,d1);sys2=1+sys*sys1;sys3=tf(sys2.den,sys2.num);n4=[1,0];d4=[1];sys4=tf(n4,d4);n5=1;d5=[1 0];r=tf(n5,d5);dcg=dcgain(sys3*sys4*r)dcg =

0.5000 [實驗內容] 1.研究一階系統對階躍輸入、脈沖輸入、斜坡輸入、自定義輸入的響應及性能指標。一階系統系統具體參數自定。

2.研究二階系統對階躍輸入、脈沖輸入、斜坡輸入、自定義輸入的響應及性能指標。具體參數自定。哪一個參數變化及變化方案自定。

①典型二階系統在階躍輸入下,阻尼比或自然振蕩頻率改變對某1項性能指標的影響。②非典型二階系統與典型二階系統在階躍輸入下的響應有什么不同。

3.高于二階的系統對階躍輸入、脈沖輸入、斜坡輸入、自定義輸入的響應。具體參數自定。4.自定一系統閉環傳遞函數,計算在r(t)=1(t)、t、0.5t2下的給定穩態誤差。5.自定一系統閉環傳遞函數,判斷系統穩定性。[實驗報告要求] 1.寫明實驗目的和實驗原理。實驗原理中簡要說明得到系統暫態響應的方法和采用的語句或函數,說明求取給定穩態誤差的方法及采用的語句或函數,說明判斷系統穩定性方法。

2.在實驗過程和結果中,要列項目反映各自的實驗內容,編寫的程序,運行結果,按實驗內容對結果的分析與判斷。程序和運行結果(圖)可以從屏幕上復制,打印報告或打印粘貼在報告上。不方便打印的同學,要求手動從屏幕上抄寫和繪制。

3.簡要寫出實驗心得和問題或建議。

第二篇:第5章高等數學計算的MATLAB實現講稿

第5章 高等數學計算的MATLAB實現

高等數學是大學數學學習的基本內容。利用MATLAB的符號工具箱,可以解決極限、導數、微分、積分、級數和微分方程等方面的問題。

5.1 函數和極限

5.1.1 函數

使用符號表達式,可以進行復合函數運算和反函數運算,下面分別予以介紹。

⒈ 復合函數運算

在MATLAB中,符號表達式的復合函數運算主要是通過函數compose來實現的。compose函數的調用格式如下:

●compose(f,g):返回復合函數f(g(y))。在這里f?f(x),g?g(y)。其中,x是findsym定義的f函數的符號變量,y是findsym定義的g函數的符號變量。

●compose(f,g,z):返回自變量為z的復合函數f(g(z))。在這里,f=f(x),g=g(y),x,y分別是findsym定義的f函數和g函數的符號變量。

●compose(f,g,x,z):返回復合函數f(g(z)),并且使x成為f函數的獨立變量。如:f=cos(x/t),compose(f,g,x,z)返回cos(g(z)/t),而compose(f,g,t,z)返回cos(x/g(z))。

●compose(f,g,x,y,z):返回復合函數f(g(z)),并且使x與y分別成為函數f與g的獨立變量。

例5-1 將f?x和x?tany復合到一個函數中,指定x和y為它們的獨立變量,自變量為z。

程序:

syms x y t z;g=tan(y);f=x^t;compose(f,g,x,y,z)%求復合函數 運行結果: ans = tan(z)^t ⒉ 符號表達式的反函數運算 在MATLAB中,符號表達式的反函數運算主要是通過函數finverse來實現的。finverse函數的調用格式如下。

5.2 導數

5.2.1 求函數的導數

在MATLAB中,微分和求導都可以由函數diff實現。diff函數可同時處理數值和符號兩種情況下的求導和微分。該函數的調用格式如下所示。

●diff(F):對findsym函數返回獨立變量求微分,F為符號表達式。●diff(F,'a'):對a變量求微分,F為符號表達式。

●diff(F,n):對findsym函數返回的獨立變量求n次微分,F為符號表達式。●diff(F,'a',n)或diff(F,n,'a'):對變量a求n次微分,F為符號表達式。

(x?1)5例5-4 求f(x)?的二階導數。

x?1程序: syms x f=(x-1)^5/(x+1);df=diff(f,1);%求導數 d2f=diff(f,2);df=simplify(df)%化簡 d2f=simplify(d2f)運行結果: df = 2*(x-1)^4*(2*x+3)/(x+1)^2 d2f = 4*(x-1)^3*(3*x^2+9*x+8)/(x+1)^3 5.2.2 求隱函數的導數

例5-5 求隱函數

1F(x,y)?x?y?siny

2所確定的導數dy。dx程序:

%求隱函數的導數

f=sym('x-y+1/2*sin(y)');fx=diff(f,'x');fy=diff(f,'y');

5.3.1 漸近線

求函數圖形的水平漸近線,需要求x趨于無窮時f的極限,即

limit(f,inf)limit(f,-inf)求f的垂直漸近線,使分母等于0,用下面的命令進行求解。roots=solve(denom)%返回方程x?x?3?0的解。綜合程序: syms x num=3*x^2+6*x-1;denom=x^2+x-3;f=num/denom;a=limit(f,inf);b=double(a);roots=solve(denom);ezplot(f)%符號函數作圖命令。

hold on%在原有的圖形上面疊加圖形。plot([-2*pi 2*pi],[b b], 'g')%繪水平漸近線

plot(double(roots(1))*[1 1],[-5 10], 'r')%繪垂直漸近線 plot(double(roots(2))*[1 1],[-5 10], 'r')%繪垂直漸近線 title('水平漸近線和垂直漸近線')hold off%取消圖形疊加 運行結果見圖5-1。5.3.2 極值

23x2?6x?1從圖5-1可以看出,函數f(x)?至少有2個極值點,求解

x2?x?3程序:

syms x num=3*x^2+6*x-1;denom=x^2+x-3;f=num/denom;a=limit(f,inf);b=double(a);roots=solve(denom);ezplot(f)%符號函數作圖命令。

hold on%在原有的圖形上面疊加圖形。plot([-2*pi 2*pi],[b b], 'g')%繪水平漸近線

圖5-2 表示函數的漸近線和極值

5.3.3 拐點

求函數的拐點,需要先求函數的2階導數,后面的處理方法與求極值方法相似。

5.4 不定積分和定積分

MATLAB中,用符號工具箱的int函數求函數的不定積分和定積分。int函數的調用格式如下所示。

●int(F):對findsym函數返回獨立變量求不定積分,F為符號表達式。

●int(F,v):對v變量求不定積分,F為符號表達式。

●int(F,a,b):對findsym函數返回獨立變量求從a到b的定積分,F為符號表達式。

●int(F,v,a,b):對v變量求從a到b的定積分,F為符號表達式。

5.4.4 定積分的應用

例5-11 計算由兩條拋物線y2?x,y?x2所圍成的圖形的面積。程序:

%求曲線的交點

[x1,y1]=solve('y^2=x','y=x^2');x1=double(x1);y1=double(y1);n=numel(x1);%下面尋找實數解 m=1;x0=[];y0=[];for k=1:n

if isreal(x1(k))&&isreal(x1(k))

x0(m)=x1(k);y0(m)=y1(k);

m=m+1;

end end x0=sort(x0);y0=sort(y0);%排序 %下面計算定積分 syms x f=sqrt(x)-x^2;A=int(f,x,x0(1),x0(2))運行結果: A = 1/3 x2y2例5-12 計算由橢圓2?2?1所圍成的圖形繞x軸旋轉而成的旋轉ab體的體積。

V??程序:

syms a b x f=pi*b*b*(a*a-x*x)/a/a;V=int(f,x,-a,a)運行結果: V = 4/3*pi*b^2*a 例5-13 計算由曲線y?a?a?b2a2(a2?x2)dx

23/2x上相應于x從a到b的一段弧的長度。3-9

0 d =

-3 f =

-1 g =

-3 例5-16 已知三點M(1,1,1)、A(2,2,1)和B(2,1,2),求?AMB。程序:

M=[1 1 1];A=[2 2 1];B=[2 1 2];ma=A-M;mb=B-M;c=dot(ma,mb)/sqrt(dot(ma,ma))/sqrt(dot(mb,mb));amb=acos(c)運行結果: amb =

1.0472 例5-17 已知三角形ABC的頂點是A(1,2,3)、B(3,4,5)和C(2,4,7)求三角形ABC的面積。

程序:

A=[1 2 3];B=[3 4 5];C=[2 4 7];ab=B-A;ac=C-A;S=sqrt(dot(cross(ab,ac),cross(ab,ac)))/2 運行結果: S =

3.7417 5.5.2 曲面及其方程

利用MATLAB提供的繪圖函數,可以繪制給定函數的曲面。相關內容在前面已介紹過,請參見4.2.4小節。

5.6 多元函數的極限和求導

對于函數有多個變量的情況,求極限和導數時需要指定函數對哪個變量進行求取。在MATLAB中仍然使用limit和diff函數求多元函數的極限和導數。5.6.1 求多元函數的極限

例5-18 求極限limsin(x?y)?sin(x)。

y?0y-11●symsum(s):求符號表達式s相對于符號變量k的和,k由findsym函數確定,取值從0到k-1。

●symsum(s,v):求符號表達式s相對于符號變量v的和,v從0到v-1。●symsum(s,a,b)和symsum(s,v,a,b):指定符號表達式s從v=a累加到v=b。

?1例5-21 求級數?k、?2和?xk(x?1)。

i?0k?1kk?0n?1?程序:

syms x k n s1=symsum(n)s2=symsum(1/k^2,1,inf)s3=symsum(x^k,k,0,inf)運行結果: s1 = 1/2*n^2-1/2*n s2 = 1/6*pi^2 s3 =-1/(x-1)5.7.2 泰勒級數展開

用taylor函數進行泰勒級數展開。該函數的調用格式如下:

●taylor(f,n,v):返回f的n-1階馬克勞林多項式近似。f為表示函數的符號表達式,v指定表達式中的獨立變量。v可以是字符串或符號變量。

●taylor(f,n,v,a):返回f關于a的n-1階泰勒級數近似。變量a可以是數值、符號或表示數值值或未知值的字符串。n,v和a的順序沒有先后之分。taylor函數根據變量的位置和類型確定它們的用途。還可以忽略n,v,a等變量中的任何一個。如果不確定v,taylor函數用findsym函數確定函數的獨立變量。n的默認值為6。

f(n)(a)泰勒級數:f(x)??(x?a)n。

n!n?01例5-22 求函數f(x)?的泰勒級數展開,取前9項。

5?4cosx?程序: syms x f=1/(5+4*cos(x));t=taylor(f,9)運行結果:

3?d2y?2?cos2x?y?dx例5-24 求解微分方程?yx?0?1

?dy?x?0?0dx?程序:

y=dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x');%求解微分方程 y=simplify(y)%化簡y的形式。運行結果: y = 4/3*cos(x)-2/3*cos(x)^2+1/3

習題五

1、完成實驗指導書中的實驗五的上半部分。

第三篇:武漢工程大學matlab實驗二離散時間信號的分析實驗

武漢工程大學

數字信號處理實驗報告二

專業班級:

14級通信03班 學生姓名:秦重雙 學號:

1404201114 實驗時間:

2017年5月3日 實驗地點:

4B315 指導老師:楊述斌

實驗一離散時間信號的分析實驗

一、實驗目的

① 認識常用的各種信號,理解其數學表達式和波形表示。② 掌握在計算機中生成及繪制數值信號波形的方法。③ 掌握序列的簡單運算及計算機實現與作用。

④ 理解離散時間傅里葉變換、Z變換及它們的性質和信號的頻域特性。

二、實驗設備

計算機,MATLAB語言環境。

三、實驗基礎理論

1、序列的相關概念

離散時間信號用一個稱為樣本的數字序列來表示。一般用{x[n]}表示,其中自變量n的取值范圍是﹣∞到﹢∞之間的整數。為了表示方便,序列通常直接用x[n]表示。

離散時間信號可以是一個有限長序列,也可以是一個無限長序列。有限長(也稱為有限時寬)序列僅定義在有限的時間間隔中:﹣∞≤N1 ≤N2 ≤+∝.有限長序列的長度或時寬為N=N1-N2+1。

滿足x[n+kN]=x[n](對于所有n)的序列稱為周期為N的周期序列,其中N取任意正整數;k取任意整數;

2、常見序列

常見序列有單位取樣值信號、單位階躍序列、矩形序列、斜變序列、單邊指數序列、正弦序列、復指數序列等。

3、序列的基本運算

序列的基本運算有加法、乘法、倒置(反轉)、移位、尺度變換、卷積等。

4、離散傅里葉變換的相關概念

5、Z變換的相關概念

四.實驗內容與步驟

1、知識準備

認真復習以上基礎理論,理解本實驗所用到的實驗原理。

2、離散時間信號(序列)的產生

利用MATLAB語言編程和繪制單位樣值信號、單位階躍序列、指數序列、正弦序列及隨機離散信號的波形,以加深對離散信號時域表示的理解。① 單位取樣值信號

Matlab程序

x=0;y=1;stem(x,y);title('單位樣值');axis([-2,2,0,1]);

② 單位階躍序列 Matlab程序

n0=0;n1=-5;n2=5;n=[n1:n2];x=[(n-n0)>=0];stem(n,x);xlabel('n');ylabel('x(n)');title('單位階躍序列');

③ 指數序列、正弦序列 Matlab程序

n=[0:10];x=(1/3).^n;stem(n,x);xlabel('n');ylabel('x(n)');title('指數序列');

n=[-20:20];x=2*sin(0.5.*n);stem(n,x);xlabel('n');ylabel('x(n)');axis([-20,20,-3,3]);title('正弦序列');

④ 隨機離散信號矩形序列 Matlab程序

n=[1:10];x=rand(1,10);stem(n,x);xlabel('n');ylabel('x(n)');title('隨機序列');

3、序列的運算

數字信號處理的目的,就是從一個或幾個給定的離散時間信號中產生一個具有所需性質的信號。處理算法由加法、乘法、倒置(反轉)、移位、尺度變換、卷積等基本運算組合構成。此部分實驗將通過幾個簡單常見的例子說明這些基本運算的實際運用,以便進一步理解序列的簡單運算及計算機實現與作用。(1)信號平滑 利用MATLAB語言編程實現信號平滑運算。信號平滑是數字信號處理應用中的一個常見的算法,以慮出被加性噪聲污染的信號中的噪聲。假定信號s[n]被噪聲d[n]所污染,得到了一個含有加性噪聲的信號x[n]=s[n]+d[n]。要得到無污染的信號,可用簡單的信號平滑即信號的加法實現。例如,采用三點(可選,以信號特點來定)平滑來實現。y[n]=(x[n-1]+x[n]+x[n+1])/3 由此可以理解平滑濾波的處理方法。

Matlab程序

r=65;

d=0.8*(rand(r,1)-0.5);m=0:r-1;s=2*m.*(0.9.^m);x=s+d';subplot(2,1,1);

plot(m,d','r-',m,s,'g--',m,x,'b-.');xlabel('n');ylabel('振幅');

legend('d[n]','s[n]','x[n]');x1=[0 0 x];x2=[0 x 0];x3=[x 0 0];y=(x1+x2+x3)/3;subplot(2,1,2);

plot(m,y(2:r+1),'r-',m,s,'g--');legand('y[n]','s[n]');xlabel('n');ylabel('振幅');

(2)調制信號的產生

利用MATLAB語言編程實現信號的調制。調制信號是工程應用中常用的一類信號,調制信號的產生可以通過序列的乘法運算得到。例如,用低頻調制信號xL[n]=cos(wln)來調制高頻正弦信號xH[n]=cos(wHn),就可得到振幅調制信號y[n]。

y[n]=A(1+m*xL[n])xH[n]=A(1+mcos(wLn))cos(wHn)其中m稱為調制指數,用來確保(1+m*xL[n])在所有可能的n的情況下m都是正數。以上式進行編程即可實現調制的目的。

Matlab程序

Fm=10;Fc=100;Fs=500;k=0:199;t=k/Fs;x=sin(2*pi*Fm*t);y=x.*cos(2*pi*Fc*t);X=fft(x,256);Y=fft(y,256);subplot(2,2,1);plot(x);

xlabel('t(s)');ylabel('x');title('原信號');

subplot(2,2,2);plot(X);

plot([-128:127],fftshift(abs(X)));xlabel('w');ylabel('X(jw)');title('原信號頻譜');

subplot(2,2,3);plot(y);xlabel('t(s)');ylabel('y');title('調制信號');subplot(2,2,4);

plot(Y);plot([-128:127],fftshift(abs(Y)));xlabel('w');ylabel('Y(jw)');title('調制信號頻譜');

(3)卷積的計算

用MATLAB語言編程可實現信號卷積運算。卷積是數字信號處理中非常重要的一個運算,用卷積可以計算一個序列通過離散系統后的響應信息。如可以編程實現9點對7點(序列長度可以自己設定)的序列卷積運算。

Matlab程序

x=[0 0.5 1 1.5 0];nx=0:4;h=[1 1 1 0 0];nh=0:4;[y,ny]=conv_m(x,nx,h,nh);subplot(2,2,1);stem(nx,x);title('序列x');xlabel('n');ylabel('x(n)');subplot(2,2,2);stem(nh,h);title('序列h');xlabel('n');ylabel('h(n)');subplot(2,2,3);stem(ny,y);title('');xlabel('n');ylabel('y(n)');

conv_m函數程序

function[y,ny]=conv_m(x,nx,h,nh)%信號處理的卷積程序

%[y,ny]=conv_m(x,nx,h,nh)%y=卷積結果

%ny=y的基底(support);%nx=x的基底;%h=基底nh上的第二個信號 %nh=h的基底 nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);end

(4)序列的離散傅里葉變換,Z變換及信號頻域特性 ? 用MATLAB語言編程實現信號離散傅里葉的正反變換。Matlab程序

xn=[1,1,1,1];N=4;k=dft(xn,N)' Xk=[4,0,0,0];N=4;Xk=idft(xn,N)' xn=[1,1,1,1];N=length(xn);n=0:N-1;k=0:N-1;Xk=xn*exp(-j*2*pi/N).^(n'*k);x=(Xk*exp(j*2*pi/N).^(n'*k))/N;subplot(1,2,2);stem(k,abs(Xk));grid on;title('|X(k)|');axis([-1,N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]);subplot(1,2,1);stem(n,xn);grid;title('x(n)');axis([-1,N,1.1*min(xn),1.1*max(xn)]);

dft函數程序

function[Xk]=dft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;end

idft函數程序

function[Xk]=idft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);Xk=xn*WNnk/N;

end

? 用MATLAB語言編程實現信號的圓周移位、圓周卷積、驗證DFT的圓周時移、圓周卷積性質和圓周卷積與線性卷積的關系。

圓周移位 Matlab程序

n=[0:10];M=6;N=11;x=10*0.8.^n;y=cirshift(x,M,N);subplot(2,1,1);stem(n,x);

title('?-DòáD2¨D?');xlabel('n');ylabel('x(n)');subplot(2,1,2);stem(n,y);

title('?2?üò???DòáD2¨D?');xlabel('n');ylabel('y(n)');

sigmod函數程序

function[ m ]= sigmod(n,N);m=rem(n,N);m=m+N;m=rem(m,N);end

cirshift函數程序

function[ y ]= cirshift(x,m,N);if length(x)>N

error('N must be greater than length(x)');end

x=[x zeros(1,N-length(x))];n=[0:N-1];n=sigmod(n-m,N);y=x(n+1);end

圓周卷積

Matlab程序

x1=[1 2 2];n1=[0:2];x2=[1 2 3 4];n2=[0:3];disp('N=5');n3=[0:4];N=5;y=circonvt(x1,x2,N)subplot(3,1,1);stem(n1,x1);title('x1');xlabel('n1');ylabel('x1(n)');subplot(3,1,2);stem(n2,x2);title('x2');xlabel('n2');ylabel('x2(n)');subplot(3,1,3);stem(n3,y);title('圓周卷積');xlabel('n3');ylabel('y(n)');

circonvt函數程序

function [y] = circonvt(x1,x2,N);if length(x1)>N error('Length(x1)is not great than N');end if length(x2)>N error('Length(x2)is not great than N');end x1=[x1, zeros(1,N-length(x1))];x2=[x2, zeros(1,N-length(x2))];m=[0:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);for n=1:N;H(n,:)=cirshift(x2,n-1,N);end y=x1*H';end

? 驗證一個實周期序列奇偶部分的DFT與此序列本身的DFT之間的關系。Matlab程序

function[xe,xo,m]=evenodd(x,n)if any(imag(x)~=0)error end

m=-fliplr(n);m1=min([m,n]);m2=max([m,n]);m=m1:m2;

nm=n(1)-m(1);n1=1:length(n);x1=zeros(1,length(m));x1(n1+nm)=x;x=x1;xe=0.5*(x+fliplr(x));xo=0.5*(x-fliplr(x));n=[0:10];x=stepseq(0,0,10)-stepseq(10,0,10);[xe,xo,m]=evenodd(x,n);

subplot(2,2,2);stem(m,xe);title('偶部');xlabel('n');ylabel('xe(n)');subplot(2,2,4);stem(m,xo);title('奇部');xlabel('n');ylabel('xo(n)');

? 用MATLAB語言編程實現信號的Z變換及其反變換、Z變換的零極點分布。

a=[1 1-6];b=[0 5 0];

[r,p,k]=residuez(b,a);subplot(121);zplane(b,a);

title('零極點分布圖');[H,w]=freqz(b,a,100);magH=abs(H);phaH=angle(H);figure(2)

subplot(222);plot(w/pi,magH);grid xlabel('frequency in pi units');title('magnitude part');

subplot(223),plot(w/pi,phaH/pi);grid xlabel('frequency in pi units');title('Angle part');

五、實驗擴展思考

① 編程產生方波信號序列和鋸齒波信號序列。

x=[0:1/256:8];y1=square(pi*x);

subplot(2,1,1);plot(x,y1);axis([0,8,-2,2]);title('方波');xlabel('x');ylabel('y1');grid on;y2=sawtooth(pi*x);subplot(2,1,2);plot(x,y2);title('鋸齒波');xlabel('x');ylabel('y2');grid on;

② 實驗中所產生的正弦序列的頻率是多少?怎樣才能改變它?分別是哪些參數控制該序列的相位、振幅和周期?

正弦序x[n=]Asin(w0n+Φ)頻率f=w0/2pi通過改變w0改變頻率f;Φ控制序列相位,A控制序列振幅,w0控制序列周期。

③ 編程實現序列長度為N的L點的正反離散傅里葉變換,并分析討論所得出的結果,其中L≧N,如L=8,N=6。

function[Xk]=dft(xn,N)n=[0:1:8-1];k=n;WN=exp(-1j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;

function[Xk]=idft(xn,N)n=[0:1:8-1];k=n;WN=exp(-1j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);Xk=xn*WNnk/N;

④ 由實驗說明離散傅里葉變換的對稱關系,說明序列的時域和頻域的關聯特性。

離散傅里葉變換具有共軛對稱性

(1)復共軛序列的DFT。設x*(n)為x(n)的復共軛序列,長度為N,X(k)=DFT[x(n)],則DFT[x*(n)]=X*(N-K),0<=k<=N-1(2)DFT的共軛對稱性。

定義圓周共軛對稱分量xep(n)和圓周共軛反對稱分量xop(n)xep(n)=1/2[x(n)+x*(N-n)],xop(n)=1/2[x(n)-x*(N-n)]則 DFT[xep(n)]=Re[X(k)], DFT[xop(n)]=jIm[X(k)] 序列的時域和頻域的關聯特性(1)時域卷積對應頻域相乘

設f[x(n)]=X(ejw),f[h(n)]=H(ejw),y(n)=x(n)*h(n), 則Y(e^jw)=1/2pi[X(e^jw)*H(e^jw)](2)時域相乘對應于1/2*pi的頻域卷積 設f[x(n)]=X(e^jw),f[h(n)]=H(e^jw),y(n)=x(n)h(n),則Y(e^jw)=1/2*pi[X(e^jw)*H(e^jw)] ?

六、實驗報告要求

1、實驗中的主要結論:圓周卷積與線性卷積之間的關系。

設圓周卷積y(n)=∑x1(m)x2(n-m)LRL(n),線性卷積y1(n)=x1(n)*x2(n),則y(n)=[∑y1(n+rL)]Rl(n),及當L>=N1+N2-1,y(n)=y1(n)。

2、通過編寫程序,讓我更熟練的使用MATLAB,能更好的理解書本所學的內容

3、心得體會:在使用matlab軟件定義函數時,必須對函數的含義理解清楚,要不然很容易定義函數出現錯誤。其次要對matlab自帶函數的含義用法理解清楚。這次實驗我最大的收獲就是對離散時間序列的理論基礎的概念有了一個很好的復習和更深刻的認識。遇到最大的問題就是定義函數時考慮不夠全面。但是我相信隨著后面實驗的進行,我能將matlab這個工具與課本的理論基礎知識完美的結合起來。??

第四篇:實驗8 網絡協議分析和實現(綜合設計性)

實驗八網絡協議分析和實現

1.實驗目的掌握網絡應用程序的開發方法;

掌握Client/ Server結構軟件的設計與開發方法

掌握Socket機制的工作原理

2.實驗前的準備

閱讀教材關于TCP/IP協議和Socket的相關內容;

閱讀WinSock編程指南;

閱讀本實驗所附內容;

熟悉VC++6.0開發工具

3.實驗內容

學生可以從以下實驗題目中任選一個來完成也可以自己命題。

(1)用掌握的語言和所學網絡知識設計實現FTP的客戶端;

(2)用掌握的語言和所學網絡知識設計實現收發郵件的客戶端;

(3)使用Winsock實現點對點通信;

(4)對網絡實驗中的停止等待協議或滑動窗口協議的程序提出改進并實現;

(5)自己設計網絡要求條件,對其進行詳細需求分析(包括對條件的分析和實現,網絡設備的選擇,網絡拓撲的選擇,經費的考慮,以及網絡的可容性、可擴充性等),并劃出拓撲圖。

(6)按照所給綜合設計實驗1或是綜合設計實驗2的要求分別配置構建符合要求的網絡,并給相應的配置說明。

4.實驗要求

學生可以根據所選題目大小,獨立或兩人一組完成實驗。要求實驗報告中應包括所選實驗題目和一些必備內容。

若選擇具體網絡協議的實現,則應該能夠在理解所選擇的網絡協議的基礎上,對其進行分析和實現,要求給出分析和實現的過程,以及必要的程序代碼。程序語言不限,但不能直接調用模塊實現,必須通過調用socket或底層網絡接口實現。

若是選擇組網實現,則必須對網絡做出詳細的需求分析,包括對條件的分析和實現、網絡設備的選擇、網絡拓撲的選擇、經費的考慮、網絡的可容性、可擴充性、安全性等等,并劃出網絡拓撲圖。

若選擇綜合設計實驗1或綜合設計實驗2,需給出相應的網絡拓撲和配置說明。

下載00講稿實驗二 用MATLAB實現線性系統的時域分析word格式文檔
下載00講稿實驗二 用MATLAB實現線性系統的時域分析.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    主站蜘蛛池模板: 国产久久精品| 国产成人精品亚洲777人妖| 99福利资源久久福利资源| 亚洲国产欧美在线观看| 亚洲日韩av无码一区二区三区人| 国产在线午夜不卡精品影院| 日韩精品一区二区三区视频| 美女国产毛片a区内射| 99久久免费看少妇高潮a片特黄| 国产莉萝无码av在线播放| 国产欠欠欠18一区二区| 99久久无色码中文字幕人妻蜜柚| 亚洲爆乳aaa无码专区| 人妻精品久久无码专区精东影业| 国产精品无码久久av| 国产无遮挡又黄又爽高潮| 狠狠色综合网站久久久久久久| 一区一区三区产品乱码| 边做饭边被躁bd苍井空图片| 日本人妻丰满熟妇久久久久久| 国产成年女人特黄特色大片免费| 99久久免费精品国产72精品九九| 大香伊蕉国产av| 亚洲日韩一中文字暮av| 日本三级吃奶头添泬无码苍井空| 国产成人精品午夜视频| 99pao在线视频国产| 国产成人精品自产拍在线观看| 玩中年熟妇让你爽视频| 九九在线精品国产| 日本免费一区二区三区在线播放| 激情国产av做激情国产爱| 亚洲 欧美 中文 日韩aⅴ| 午夜无码区在线观看亚洲| 鲁鲁鲁爽爽爽在线视频观看| 无遮无挡爽爽免费视频| 日韩精品无码一区二区三区视频| 国产精品∧v在线观看| 爆乳一区二区三区无码| 久久狠狠色噜噜狠狠狠狠97| 国产人在线成免费视频|