matlab软件仿真实验(信号与系统)
⽬录
实验⼀、MATLAB 基本应⽤
实验⼆信号的时域表⽰
实验三、连续信号卷积
实验四、典型周期信号的频谱表⽰实验五、傅⽴叶变换性质研究
实验六、系统的零极点分析
实验七离散信号分析
实验⼀ MATLAB 基本应⽤
⼀、实验⽬的:学习MATLAB的基本⽤法,了解 MATLAB 的⽬录结构和基本功能以及MATLAB在信号与系统中的应⽤。⼆、实验内容:
例⼀已知x的取值范围,画出y=sin(x)的图型。
参考程序:x=0:0.05:4*pi;
y=sin(x);
plot(y)
例⼆计算y=sin(π/5)+4cos(π/4)
例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;
x=sin(z);
y=cos(z);
plot3(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
例四已知x的取值范围,⽤subplot函数绘图。
参考程序:x=0:0.05:7;
y1=sin(x);
y2=1.5*cos(x);
y3=sin(2*x);
y4=5*cos(2*x);
subplot(2,2,1),plot(x,y1),title('sin(x)')
subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')
subplot(2,2,3),plot(x,y3),title('sin(2*x)')
subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')
连续信号的MATLAB表⽰
1、指数信号:指数信号Ae at在MATLAB中可⽤exp函数表⽰,其调⽤形式为:y=A*exp(a*t) (例取A=1,a=-0.4)
参考程序:A=1;a=-0.4;
t=0:0.01:10;
ft=A*exp(a*t);
plot(t,ft);grid on;
2、正弦信号:正弦信号Acos(w0t+?)和Asin(w0t+?)分别由函数cos和sin表⽰,其调
⽤形式为:A*cos(w0t+phi) ;A*sin(w0t+phi) (例取A=1,w0=2π,?=π/6)
参考程序:A=1;w0=2*pi; phi=pi/6;
t=0:0.001:8;
ft=A*sin(w0*t+phi);
plot(t,ft);grid on ;
3、抽样函数:抽样函数Sa(t)在MATLAB中⽤sinc函数表⽰,其定义为:
sinc(t)=sin(πt)/( πt)
其调⽤形式为:y=sinc(t)
参考程序:t=-3*pi:pi/100:3*pi;
ft=sinc(t/pi);
plot(t,ft);grid on;
4、矩形脉冲信号:在MATLAB中⽤rectpuls函数来表⽰,其调⽤形式为:y=rectpuls(t,width),⽤以产⽣⼀个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中⼼向左右各展开width/2的范
围,width的默认值为1。
(取T=1)例:以t=2T(即t-2?T=0)为对称中⼼的矩形脉冲信号的MA TLAB源程序如下:
t=0:0.001:4;
T=1;
ft=rectpuls(t-2*T,2*T);
plot(t,ft);grid on; axis([0 4 –0.5 1.5]);
周期性矩形波(⽅波)信号在MA TLAB中⽤square函数来表⽰,其调⽤形式为:y=square(t,DUTY)⽤以产⽣⼀个周期为2π、幅值为±1的周期性⽅波信号,其中的DUTY 参数表⽰占空⽐,即在信号的⼀个周期中正值所占的百分⽐。例如频率为30Hz的周期性⽅波信号的MA TLAB参考程序如下:
t=-0.0625:0.0001:0.0625;
y=square(2*pi*30*t,75);
plot(t,y);axis([-0.0625 0.0625 –1.5 1.5]);grid on ;
实验⼆信号的时域表⽰
实验⽬的:利⽤ MATLAB 实现信号的时域表⽰以及图形表⽰
题⽬⼀:连续信号的MATLAB描述
设计要求:列出单位冲激函数、单位阶跃函数、复指数函数的MATLAB表达式。
建模:1、单位冲激函数δ(t)⽆法直接⽤MATLAB描述,可以把它看作是宽度为?(程序中⽤dt表⽰),幅度为1/?的矩形脉冲,即
x1(t)= δ?(t-t1)= 1/? t1
0其余
表⽰在t=t1处的冲激。
2、单位阶跃函数:在t=t1处跃升的阶跃可写为u(t-t1).定义为
x2(t)= u(t-t1)= 1 t1
0t<0
3、复指数函数 x3(t)=e(u+jω)t
若ω=0,它是实指数函数,如u=0,则为虚指数函数,其实部为余弦函数,虚部为正弦函数。本例u=-0.5, ω=10.
参考程序:
clear, t0=0;tf=5;dt=0.05;t1=1;
t=[t0:dt:tf]; st=length(t);
n1=floor((t1-t0)/dt);
x1=zeros(1,st);
x1(n1)=1/dt;
subplot(2,2,1),stairs(t,x1),grid on axis([0,5,0,22])
x2=[zeros(1,n1-1),ones(1,st-n1+1)]; subplot(2,2,3),stairs(t,x2),grid on axis([0,5,0,1.1])
alpha=-0.5;w=10;x3=exp((alpha+j*w)*t); subplot(2,2,2),plot(t,real(x3)),grid on subplot(2,2,4),plot(t,imag(x3)),grid on 程序运⾏结果:如图2-1
图2-1程序运⾏结果
题⽬⼆:LTI系统的零输⼊响应
设计要求:描述n阶线性时不变(LTI)连续系统的微分⽅程为:
a1(d n y/dt n)+ a2(d n-1y/dt)+…+ an(dy/dt)+ (an+1)y= b1(d m u/dt m)+…+ bm(du/dt)+ (bm+1)u,已知y及其各阶导数的初始值为y(0),y(1)(0),…, y(n-1)(0),求系统的零输⼊响应。
参考程序:a=input('输⼊分母系数向量a=[]=');
n=length(a)-1;
Y0=input('输⼊初始条件向量 Y0=[y0,Dy0,D2y0,....]=');
p=roots(a);V=rot90(vander(p));c=V\Y0';
dt=input('dt='); tf=input('tf=')
t=0:dt:tf; y=zeros(1, length(t));
for k=1:n y=y+c(k)*exp(p(k)*t);end
plot(t,y),grid;
hold on
运⾏此程序并输⼊:a=[3,5,7,1]; dt=0.2;tf=8;
Y0取[1,0,0];[0,1,0];[0,0,1],三种情况,运⾏结果如图2-2
图2-2程序运⾏结果
实验三连续信号卷积
实验⽬的:掌握使⽤ MATLAB 实现信号的卷积运算、卷积的可视化
题⽬⼀:卷积的计算
设计要求:某LTI系统的冲激响应h(t)=e-0.1t,输⼊u(t)如图3-1(a)所⽰,初始条件为零,求系统的响应y(t).参考程序:clear
uls=input('输⼊u数组 u=(例如ones(1,10))');
lu=length(uls);
hls=input('输⼊h数组 h=(例如exp(-0.1*[1:15]))');
lh=length(hls);
lmax=max(lu,lh);
if lu>lh nu=0;nh=lu-lh;
elseif lu
else nu=0;lh=0;
end
dt=input('输⼊时间间隔dt=(例如0.5)')
lt=lmax;
u=[zeros(1,lt),uls,zeros(1,nu),zeros(1,lt)];
t1=(-lt+1:2*lt)*dt;
h=[zeros(1,2*lt),hls,zeros(1,nh)];
hf=fliplr(h);
y=zeros(1,3*lt);
for k=0:2*lt
p=[zeros(1,k),hf(1:end-k)];
用subplot函数
y1=u.*p*dt;
yk=sum(y1);
y(k+lt+1)=yk;
subplot(4,1,1);stairs(t1,u)
axis([-lt*dt,2*lt*dt,min(u),max(u)]),hold on ylabel('u(t)')
subplot(4,1,2);stairs(t1,p)
axis([-lt*dt,2*lt*dt,min(p),max(p)])
ylabel('h(k-t)')
subplot(4,1,3);stairs(t1,y1)
axis([-lt*dt,2*lt*dt,min(y1),max(y1)+eps])
ylabel('s=u*h(k-t)')
subplot(4,1,4);stem(k*dt,yk)
axis([-lt*dt,2*lt*dt,floor(min(y)+eps),ceil(max(y+eps))]) hold on,ylabel('y(k)=sum(s)*dt')
if k==round(0.8*lt) disp('暂停,按任意键继续'),pause
else pause(1),
end
end
运⾏结果如图3-1
图3-1 程序运⾏结果程序2:u=input('输⼊u数组u=');
h=input('输⼊h数组h=');
dt=input('输⼊时间间隔dt=');
y=conv(u,h);
plot(dt*([1:length(y)]-1),y),grid
题⽬⼆:LTI系统的零状态响应
设计要求:设⼆阶连续系统,其特性可⽤常微分⽅程表⽰:d2y/dt2+2(dy/dt)+8y=u 求其冲激响应。若输⼊为u=3t+cos(0.1t),求其零状态响应。
参考程序:clf,clear
a=input('多项式分母系数向量a=');
b=input('多项式分⼦系数向量b=');
t=input('输⼊时间序列t=[0:dt:tf]');
u=input('输⼊序列u=');
tf=t(end);
dt=tf/(length(t)-1);
[r,p,k]=residue(b,a);
h=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t);
subplot(2,1,1),plot(t,h);grid;
y=conv(u,h)*dt;
subplot(2,1,2);
plot(t,y(1:length(t)));grid
运⾏该程序,取a=[1,2,8],b=1,t=[0:0.1:5]及u=3*t+cos(0.1*t),所得结果如图3-2
图3-2 冲激响应和卷积法求输出
实验四典型周期信号的频谱表⽰
实验⽬的:⽤ MATLAB 分析周期矩形脉冲、三⾓波脉冲的频谱
题⽬⼀:周期信号的频谱
设计要求:周期电流、电压(统称其为信号)f(t)可展开为直流与各次谐波之和,即

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。