MATLAB信號與系統分析(三)——連續信號與系統的復頻域分析及MATLAB實現


一、系統的拉普拉斯變換和反變換

1、MATLAB函數

F=laplace(f)  %求拉氏變換
f=ilaplace(F) %求拉氏反變換

2、例子

image

clear all;clc;close all
f=sym('exp(-t)*sin(a*t)*heaviside(t)')
F=laplace(f)  %求拉氏變換
F=sym('s^2/(s^2+1)')
f=ilaplace(F) %求拉氏反變換

 

二、利用部分分式展開求解拉氏反變換(數學表達式):

1、MATLAB函數

[r,p,k]=residue(num,den)
%r為所得部分分式展開式的系數向量
%p為極點
%k為直流分量

image

2、例子

image

%shiyan3_2 用部分分式展開法求解拉氏反變換
clear all;clc;close all
num=[1 2];%分母多項式的系數向量,從高次冪往低次冪排列
den=[1 4 3 0];%分子多項式的系數向量,從高次冪往低次冪排列,不要忘記該補零的補零值
[r,p,k]=residue(num,den); %用esidue函數進行展開%
f=0;
syms t;
for i=1:length(p)
    f=f+r(i)*exp(p(i)*t);
end
f

 

三、 系統的零極點分布及其穩定性

1、穩定性的條件,系統的極點位於零極點圖的左半平面。

2、利用matlab計算h(s)的零極點並分析系統穩定性。

3、畫極點的例子

image

%shiyan3_3 求H(s)=(s-1)/(s^2+2s+2)的零極點及其分布圖

%采用roots和plot函數
clear all ; clc; close all;
b=[1,-1];
a=[1 2 2];
zs=roots(b);ps=roots(a);
figure(1)
plot(real(zs),imag(zs),'o',real(ps),imag(ps),'kx','markersize',12);
axis([-2,2,-2,2]);grid on;legend('零點','極點')

%利用pole和zero函數
num=[1,-1];
den=[1,2,2];
H = tf(num,den);%采用tf函數獲得LTI系統模型sys
zs=zero(H);ps=pole(H);
figure(2)
plot(real(zs),imag(zs),'o',real(ps),imag(ps),'kx','markersize',12);
axis([-2,2,-2,2]);grid on;legend('零點','極點')

%采用pzmap函數
num=[1,-1];
den=[1,2,2];
H = tf(num,den);%采用tf函數獲得LTI系統模型sys
figure(3)
pzmap(H);

%采用tf2zp和zplane函數
A=[1,2,2];
B=[1,-1];
figure(4)
[z,p]=tf2zp(B,A)
zplane(z,p)

 

4、計算h(s)的零極點並分析系統穩定性

image

image

 

四、系統的零極點分布與系統沖激響應時域特性(P294)

1、例子

image

clear all;clc;close all;

a=[1,1,16.25];
b=[1];
impulse(b,a,5)

 

五、連續系統的頻率響應

1、MATLAB提供了專門對連續系統頻率響應H(jw)進行分析的函數freqs(),該函數可以求出系統頻率響應的數值解,並可繪出系統的幅頻和相頻響應曲線

image

2、例子:

image

clear all;clc;close all;

b=[1];
a=[0.08 0.4 1];
[h,w]=freqs(b,a,100)
h1=abs(h);     %求幅頻
h2=angle(h);    %求相頻
figure(1)
subplot(211);
plot(w,h1);grid,xlabel('角頻率(W)');ylabel('幅度');title('H(jw)的幅頻特性');
subplot(212);
plot(w,h2*180/pi);grid,xlabel('角頻率(w)');ylabel('相位(度)');title('H(jw)的相頻特性');
figure(2)
freqs(b,a)

 

3、由連續系統零極點分布分析系統的頻率特性

image

由連續系統零極點分布求系統的頻率特性的步驟:

定義包含系統所有零點&極點的行向量z&列向量y

定義繪制系統頻率響應曲線的頻率起始值f1&終止值f2、頻率取樣間隔k(頻率的變化步長),並產生頻率等分點向量f;

求出系統所有零點&極點到這些等分點的距離;

l求出系統所有零點&極點到這些等分點的矢量的相角;

根據(1)式&(2)式求出f1到f2頻率范圍內各頻率等分點的 & 的值

繪制f1到f2頻率范圍內的幅頻響應&相頻響應曲線

function pz_plxy(f1,f2,k,p,z)

%根據系統零極點分布繪制系統頻率響應曲線程序
%f1、f2:繪制頻率響應曲線的頻率范圍(即頻率起始和終止點,單位為赫茲)
%p、z:系統函數極點和零點位置行向量
%k:繪制頻率響應曲線的頻率取樣間隔

p=p';   %變成列向量
z=z'; 

f=f1:k:f2;                                    %定義繪制系統頻率響應曲線的頻率范圍
w=f*(2*pi);
y=i*w; %虛數軸上

n=length(p);
m=length(z);

if n==0                                            %如果系統無極點
   yq=ones(m,1)*y; 
   vq=yq-z*ones(1,length(w));
   bj=abs(vq);
   bw=angle(vq);
   ai=1;
   aw=0;
elseif m==0                                    %如果系統無零點
   yp=ones(n,1)*y;
   vp=yp-p*ones(1,length(w));
   aw=angle(vp);
   ai=abs(vp);
   bj=1;
   bw=0;
else 
   yp=ones(n,1)*y;
   yq=ones(m,1)*y;
   vp=yp-p*ones(1,length(w));
   vq=yq-z*ones(1,length(w));
   ai=abs(vp);
   aw=angle(vp);
   bj=abs(vq);
   bw=angle(vq)
end

figure(1)
Hw=prod(bj,1)./prod(ai,1);
plot(f,Hw);
title('   系統幅頻響應曲線')
xlabel(' 頻率w(單位:赫茲)')
ylabel('H(jw)')

figure(2)
Anglew=sum(bw,1)-sum(aw,1);
plot(f,Anglew);
title('   系統相頻響應曲線')
xlabel(' 頻率w(單位:rad)')
ylabel('angle(jw)')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM