您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 实验八MATLAB在《信号与系统》中的应用
实验八MATLAB在《信号与系统》中的应用一、实验目的1.学会用MATLAB表示常用连续信号的方法;2.学会用MATLAB进行信号基本运算的方法;3.学会用MATLAB表示常用离散信号的方法;4.2.学会用MATLAB实现离散信号卷积的方法;5.学会用MATLAB求解离散系统的单位响应;6.学会用MATLAB求解离散系统的零状态响应;二、实验原理1.连续信号的MATLAB表示MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。2.离散信号的MATLAB表示表示离散时间信号f(k)需要两个行向量,一个是表示序号k=[],一个是表示相应函数值f=[],画图命令是stem。1实现)3(sin)()(ttttStfa)(sin)sin()sin(sin)()(tctttttttStfam11.mt=-3*pi:0.01*pi:3*pi;%定义时间范围向量tf=sinc(t/pi);%计算Sa(t)函数plot(t,f);%绘制Sa(t)的波形运行结果:2信号相加:tttf20cos18cos)(m13.msymst;%定义符号变量tf=cos(18*pi*t)+cos(20*pi*t);%计算符号函数f(t)=cos(18*pi*t)+cos(20*pi*t)ezplot(f,[0pi]);%绘制f(t)的波形运行结果:3信号的调制:tttf50cos)4sin22()(m14.msymst;%定义符号变量tf=(2+2*sin(4*pi*t))*cos(50*pi*t)%计算符号函数f(t)=(2+2*sin(4*pi*t))*cos(50*pi*t)ezplot(f,[0pi]);%绘制f(t)的波形运行结果:4实现卷积)(*)(thtf,其中:)2()()()],1()([2)(ttthtttfm21.mp=0.01;%取样时间间隔nf=0:p:1;%f(t)对应的时间向量f=2*((nf=0)-(nf=1));%序列f(n)的值nh=0:p:2;%h(t)对应的时间向量h=(nh=0)-(nh=2);%序列h(n)的值[y,k]=sconv(f,h,nf,nh,p);%计算y(t)=f(t)*h(t)subplot(3,1,1),stairs(nf,f);%绘制f(t)的波形title('f(t)');axis([0302.1]);subplot(3,1,2),stairs(nh,h);%绘制h(t)的波形title('h(t)');axis([0301.1]);subplot(3,1,3),plot(k,y);%绘制y(t)=f(t)*h(t)的波形title('y(t)=f(t)*h(t)');axis([0302.1]);子程序sconv.m%此函数用于计算连续信号的卷积y(t)=f(t)*h(t)function[y,k]=sconv(f,h,nf,nh,p)%y:卷积积分y(t)对应的非零样值向量%k:y(t)对应的时间向量%f:f(t)对应的非零样值向量%nf:f(t)对应的时间向量%h:h(t)对应的非零样值向量%nh:h(t)对应的时间向量%p:取样时间间隔y=conv(f,h);%计算序列f(n)与h(n)的卷积和y(n)y=y*p;%y(n)变成y(t)left=nf(1)+nh(1)%计算序列y(n)非零样值的起点位置right=length(nf)+length(nh)-2%计算序列y(n)非零样值的终点位置k=p*(left:right);%确定卷积和y(n)非零样值的时间向量运行结果:5实现卷积)(*)(thtf,其中:)()()],2()([2)(tethtttftm22.mp=0.01;%取样时间间隔nf=0:p:2;%f(t)对应的时间向量f=2*((nf=0)-(nf=2));%序列f(n)的值nh=0:p:4;%h(t)对应的时间向量h=exp(-nh);%序列h(n)的值[y,k]=sconv(f,h,nf,nh,p);%计算y(t)=f(t)*h(t)subplot(3,1,1),stairs(nf,f);%绘制f(t)的波形title('f(t)');axis([0602.1]);subplot(3,1,2),plot(nh,h);%绘制h(t)的波形title('h(t)');axis([0601.1]);subplot(3,1,3),plot(k,y);%绘制y(t)=f(t)*h(t)的波形title('y(t)=f(t)*h(t)');axis([0602.1]);运行结果:6如图所示周期矩形脉冲,试求其幅度谱。f(t)-0.50.5t0…………143.54.5-4-4.5-3.5m31.m:clearallsymstnTtaoAT=4;A=1;tao=1;f=A*exp(-j*n*2*pi/T*t);fn=int(f,t,-tao/2,tao/2)/T;%计算傅立叶系数fn=simple(fn);%化简n=[-20:-1,eps,1:20];%给定频谱的整数自变量,eps代表0fn=subs(fn,n,'n');%计算傅立叶系数对应各个n的值subplot(2,1,1),stem(n,fn,'filled');%绘制频谱line([-2020],[00]);%在图形中添加坐标线title('周期矩形脉冲的频谱');subplot(2,1,2),stem(n,abs(fn),'filled');%绘制频谱title('周期矩形脉冲的幅度谱');axis([-202000.3]);运行结果:
本文标题:实验八MATLAB在《信号与系统》中的应用
链接地址:https://www.777doc.com/doc-2531486 .html