该【MATLAB 实验5 】是由【guoxiachuanyue006】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【MATLAB 实验5 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。mesh(t(1:halft),[1:10],y(:,1:halft))%绘制三维图形
实验5MATLAB在信号与系统的应用
【实验目的】
1、了解并熟悉MATLAB实现常用连续时间信号的产生方法;连续系统的时域和频域分析方法。
2、掌握MATLAB程序的编程方法。
3、了解MATLAB信号处理工具箱函数的调用方法。
【实验内容】
1、对书上例题的总结
例1绘制了单位冲激函数、单位阶跃函数与复指数函数的图形,用到的关键语句
单位冲激函数:x1=zeros(1,length(t));%对所有信号初始化,t为时间
x1(n1)=1/dt;%合出t1时刻脉冲信号,dt为时间间隔
单位阶跃函数:x2=[zeros(1,n1),ones(1,length(t)-n1)];%产生阶跃信
号,n1为t1对应的样本序号
例2求解了LTI系统的零输入响应,用到了经典法求解,关键语句如下:
p=roots(a);求系%统的极点
V=rot90(vander(p));c=V\Y0';%用范德蒙特矩阵求对应于各极点的系数
fork=1:ny=y+c(k)*exp(p(k)*t);end
例3求解n阶LTI系统的冲激响应,用到了residue函数求解极点和留数,还用到了for语句叠加各根分量。
例4主要是卷积的计算。用到的函数有conv函数计算卷积,input函数等待用户输入数值,fliplr(h)函数将h左右翻转。
例5求LTI系统的零状态响应,和求解零输入同样用到留数residue函数来求解冲激响应函数,并且绘制冲激响应函数的图形,然后将其与输入信号的卷积求出,即输出函数,最后绘制输出函数的图形。
例7将周期方波分解为多次正弦波之和,用程序演示谐波合成情况。用到的
新函数是line([0,pi+],[pi/4,pi/4])%加上方波幅度线及标注
mesh(t(1:halft),[1:10],y(:,1:halft))%绘制三维图形
halft=ceil(length(t)/2);
x
例10比较调幅信号通过带通滤波器后与原波形的区别。用到了频率响应函数求解滤波器在各个频点上的频率响应,可以用H=polyval(b,j*w);也可以用H=freqs(b,a,w);可以再下图中观察到它们的去区别:
x
1
F1
0
w
Fi
%补上负频率
亍波)的频谱分析,用到
变换U
t
x2=t>=4;
x=x1+x2;
stairs(t,x,'linewidth',)
axis([-2,6,-,])
gridon
x
x
title('f(t)=u(t-2)+u(t-4)')xlabel('t')ylabel('f(t)')
图形显示:
图形显示:
t=0:pi/100:4*pi;f=3*exp((+j**pi)*t);plot(t,f),gridlegend('f')xlabel('t'),ylabel('f')
图形显示:
4)、周期矩形信号。一连续周期矩形信号频率为10Hz,信号幅度在-1~1之间,
脉冲宽度与周期的比例是:1:2,用一128一点采样,显示三个周期的信号波形(squareJH||||'l.|/|
函数)。
程序如下:2-■:j
U=1;N=128;f=10;T=1/f;t=0:T/N:3*T;'
10
12
14
u=U*square(2*pi*f*t);
plot(t,u)
axis([0,3*T+eps,-,]),gridon
图形显示:
3、信号卷积求解:
、已知两信号分别为:
fl二e-0-6tu(t)(0<t<10)
f2二u(t)(0<t<15)
求两信号的卷积和并画出卷积波形。
程序如下:
clear
t1=0::10;
t2=0::15;
f1=exp(-*t1);
f2=ones(1,length(t2));tn=t1(length(f1))+t2(length(f2));
f=conv(f1,f2)
t=0::tn;
subplot(3,1,1),plot(t1,f1),title('f1的图形')
subplot(3,1,2),plot(t2,f2),title('f2的图形')subplot(3,1,3),plot(t,f),title('f=conv(f1,f2)的图形')xlabel('t'),ylabel('f'),gridon
结果显示:
计算两信号的卷积并画出卷积波形。
由于conv求卷积时,两个函数的时间是从0开始求解的,所以对于该题不能直接
利用conv函数来求解卷积,所以必须编写一个函数,函数可以从任意时刻开始
求卷积,编写的Function函数如下,命名为conv_m,以便调用:
function[yny]=conv_m(x1,x2,t1,t2,dt)y=conv(x1,x2);
ny1=t1(1)+t2(1);ny2=t1(length(x1))+t2(length(x2));
ny=ny1:dt:ny2;
end
程序如下:
t1=0::2;dt=;
t2=-1::3;
x1=*t1;
x2=2*t2;
[yny]=conv_m(x1,x2,t1,t2,dt);%以上所有程序可以用下面一个式子代替,实现的功能都相同
%[yny]=conv_m(*[0::2],2*[-1::3],0::2,-1::3,)plot(ny,y)
gridonxlabel('ny'),ylabel('y')
title('f1(t)=(4)=21的卷积')
输入
2)、求解该系统的零状态响应。
、当r(0-)=2,r'(0-)=-1时,求解该系统的零输入响应。要求写出表达式,并且绘制波形。
先编写程序绘制各自响应的波形图,再求其表达式
①绘制冲激响应、阶跃响应与零状态响应图形的程序如下:
clearb=[0,1,2];a=[1,2,1];t=-1::10;
ut=t>=0;x=exp(-2*t).*ut;impulse(b,a),gridon,holdon%冲激响应step(b,a,'--');%阶跃响应
legend('冲激响应','阶跃响应')
figure(2)lsim(b,a,x,t);%零状态响应legend('零状态响应')结果显示:
ImpulseR已sponse
n=length(a)-1;
r0=[2,-1];p=roots(a);%求系统的极点
V=rot90(vander(p));c=V\r0';%用范德蒙特矩阵求对应于各极点的系数
t=0::5;y=zeros(1,length(t));
fork=1:ny=y+c(k)*exp(p(k)*t);end%将各分量叠加plot(t,y),gridon
title('零状态响应')
图形为:
2
零状态响应
③下面是求各自响应表达式的程序:
clear
b=[1,
symsxt=^xsys=t[r,p疔
2];a=[l,4,3-]];---
t::
p(-2*t广厂…节…
f(b,a)::
]=residue(b,a);il;2策33E--EE
fori=1:length(r)
ht=ht+r(i)*exp(p(i)*t);
end
ht%冲激响应
gt=int(ht)%阶跃函数
结果显示:
Transferfunction:sA2+4s+3ht=1/(2*exp(t))+1/(2*exp(3*t))
gt=
-1/(2*exp(t))-1/(6*exp(3*t))
MATLAB 实验5 来自淘豆网m.daumloan.com转载请标明出处.