当前位置:文档之家› MATLAB_实验5

MATLAB_实验5

实验5 MATLAB在信号与系统的应用【实验目的】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'; % 用范德蒙特矩阵求对应于各极点的系数for k=1:n y= 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+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注halft=ceil(length(t)/2);mesh(t(1:halft),[1:10],y(:,1:halft)) %绘制三维图形例10 比较调幅信号通过带通滤波器后与原波形的区别。

用到了频率响应函数求解滤波器在各个频点上的频率响应,可以用H=polyval(b,j*w) ;也可以用H=freqs(b,a,w);可以再下图中观察到它们的去区别:例11 非周期信号(方波)的频谱分析,用到了傅里叶变换,F1 = f*exp(-j*t'*w1)*dt; % 求付利叶变换w = [-fliplr(w1),w1(2:Nf)]; % 补上负频率F = [fliplr(F1),F1(2:Nf)]; % 补上负频率区的频谱2、连续信号表示:编写程序:产生下列连续信号,并且绘制出相应的波形图:1)、()(2)(4)(26)=-+- -≤≤f t u t u t t程序如下:t=-2:0.05:6;x1=t>=2;x2=t>=4;x=x1+x2;stairs(t,x,'linewidth',1.5)axis([-2,6,-0.1,2.1])grid ontitle('f(t)=u(t-2)+u(t-4)') xlabel('t') ylabel('f(t)')图形显示:2)、()c o s (4)(03)t ft et t π-= ≤≤程序如下:t=(0:0.01:3)';x1=exp(-t)*[1 -1];%生成exp(-t)和-exp(-t),即包络曲线 x2=cos(4*pi*t); x=exp(-t).*x2; plot(t,x1,t,x)legend('x1','x1','x'),grid on图形显示:3)、(0.20.5)()3(04)j tf t et ππ+= ≤≤ 程序如下:t=0:pi/100:4*pi;f=3*exp((0.2+j*0.5*pi)*t);plot(t,f),gridlegend('f')xlabel('t'),ylabel('f')图形显示:4)、周期矩形信号。

一连续周期矩形信号频率为10Hz,信号幅度在-1~1之间,脉冲宽度与周期的比例是1:2,用128点采样,显示三个周期的信号波形(square 函数)。

程序如下:U=1;N=128;f=10;T=1/f;t=0:T/N:3*T;u=U*square(2*pi*f*t);plot(t,u)axis([0,3*T+eps,-1.1,1.1]),grid on图形显示:3、信号卷积求解: 1)、已知两信号分别为:0.61()(010)t f e u t t -= <<2()(015)f u t t = <<求两信号的卷积和并画出卷积波形。

程序如下: cleart1=0:0.1:10; t2=0:0.1:15; f1=exp(-0.6*t1); f2=ones(1,length(t2));tn=t1(length(f1))+t2(length(f2)); f=conv(f1,f2) t=0:0.1: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'),grid on结果显示:2)、已知两信号分别为:f1(t)=0.5t (0<t<2) f2(4)=2t (-1<t<3) 计算两信号的卷积并画出卷积波形。

由于conv 求卷积时,两个函数的时间是从0开始求解的,所以对于该题不能直接利用conv 函数来求解卷积,所以必须编写一个函数,函数可以从任意时刻开始求卷积,编写的Function 函数如下,命名为conv_m ,以便调用:function [ y ny] = 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:0.05:2;dt=0.05; t2=-1:0.05:3; x1=0.5*t1; x2=2*t2;[ y ny] = conv_m(x1,x2,t1,t2,dt);%以上所有程序可以用下面一个式子代替,实现的功能都相同 % [ y ny] = conv_m(0.5*[0:0.05:2],2*[-1:0.05:3],0:0.05:2,-1:0.05:3,0.05) plot(ny,y) grid onxlabel('ny'),ylabel('y')title('f1(t)=0.5t 与f2(4)=2t 的卷积')4、系统时域求解:已知某连续时间系统的微分方程为:()2()()()2()r t r t r t e t e t ''''++=+,输入信号为)()(2t u e t e t -=1)、求解该系统的冲激响应h(t),及阶跃响应g(t)。

2)、求解该系统的零状态响应。

3)、当r(0-)=2,r’(0-)=-1时,求解该系统的零输入响应。

要求写出表达式,并且绘制波形。

先编写程序绘制各自响应的波形图,再求其表达式①绘制冲激响应、阶跃响应与零状态响应图形的程序如下:clearb=[0,1,2];a=[1,2,1];t=-1:0.05:10;ut=t>=0;x=exp(-2*t).*ut;impulse(b,a),grid on,hold on %冲激响应step(b,a,'--');%阶跃响应legend('冲激响应','阶跃响应')figure(2)lsim(b,a,x,t);%零状态响应legend('零状态响应')结果显示:②绘制零输入响应图形的程序如下:cleara=[1,4,3];n=length(a)-1;r0=[2,-1];p=roots(a); % 求系统的极点V=rot90(vander(p));c= V\r0'; % 用范德蒙特矩阵求对应于各极点的系数t=0:0.001:5; y=zeros(1,length(t));for k=1:n y= y+c(k)*exp(p(k)*t);end % 将各分量叠加plot(t,y),grid ontitle('零状态响应')图形为:③下面是求各自响应表达式的程序:clearb=[1,2];a=[1,4,3];syms txt=exp(-2*t);sys=tf(b,a)[r,p,k]=residue(b,a);ht=0;for i=1:length(r)ht=ht+r(i)*exp(p(i)*t);endht %冲激响应gt=int(ht) %阶跃函数结果显示:Transfer function:s + 2-------------s^2 + 4 s + 3ht =1/(2*exp(t)) + 1/(2*exp(3*t))- 1/(2*exp(t)) - 1/(6*exp(3*t))5、连续信号频谱分析(1)傅里叶变换:a、设有一周期方波信号,幅度E=1.5V,周期T=100sμ,脉冲宽度与周期之τ=,时间轴上采样点数取1000点。

比为12t1)、试演示其谐波合成情况。

程序如下:clearT=100e-6;w=2*pi/T;E=1.5;t=linspace(0,4e-4,1000);n=input('n= ');y=0;for i=1:ny=y+4*E/(i*pi)*sin(i*pi/2)^2*sin(i*w*t);endplot(t,y),grid ony = zeros(10,max(size(t))); x = zeros(size(t));for k=1:2:19x = x +4*E/(k*pi)*sin(k*pi/2)^2*sin(k*w*t) ; y((k+1)/2,: ) = x; end% 将各波形迭合绘出figure(2),plot(t,y(1:9,: )),grid,hold onx=E*square(2*pi/T*t);plot(t,x,'k')text(pi+0.5,pi/4,'pi/4')halft=ceil(length(t)/2);figure(3),mesh(t(1:halft),[1:10],y(:,1:halft)), pause显示结果:n= 5 n=99从上图中比较6次谐波与99次谐波合成的图形,99次谐波合成的图形更加接近原方波,说明谐波次数越多,合成效果越好,误差越小。

相关主题