您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MATLAB程序设计实验报告
MATLAB程序设计实验报告一、实验目的1.通过实验熟悉MATLAB仿真软件的使用方法;2.掌握用MATLAB对连续信号时域分析、频域分析和s域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;3.掌握用MATLAB对离散信号时域分析、频域分析和z域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;4.通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。二、实验设备1.计算机2.MATLABR2007a仿真软件三、实验原理1.MATLAB对系统的时域分析信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。(1)信号的相加和相乘:已知信号)(1tf和)(2tf,信号相加和相乘记为)()(1tftf)(2tf;)()(1tftf)(2tf。(2)信号的微分和积分:对于连续时间信号,其微分运算是用diff函数来完成的,其语句格式为:diff(function,’variable’,n),其中function表示需要进行求导运算的信号,或者被赋值的符号表达式;variable为求导运算的独立变量;n为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int函数来完成,语句格式为:diff(function,’variable’,a,b),其中function表示需要进行被积信号,或者被赋值的符号表达式;variable为求导运算的独立变量;a,b为积分上、下限,a和b省略时为求不定积分。(3)信号的平移、翻转和尺度变换信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(tf的面积和能量。信号的尺度变换是对信号)(tf在时间轴上的变化,可使信号压缩或扩展。)(atf将原波形压缩a倍,)/(atf将原波形扩大a倍。2.MATLAB对系统频率特性的分析(1)系统的频率响应设线性时不变(LTI)系统的冲激响应为)(th,该系统的输入(激励)信号为)(tf,则-2-此系统的零状态输出(响应))(ty为:)()()(tfthty(3-1)假设)(tf,)(th及)(ty的傅里叶变换分别为)(),(jwHjwF及)(jwY,根据时域卷积定理,与(1-1)式对应的及)(),(jwHjwF及)(jwY在频域上的关系式为:)()()(jwFjwHjwY(3-2)一般地,连续系统的频率响应定义为系统的零状态响应)(ty的傅里叶变换)(jwY与输入信号)(tf的傅里叶变换)(jwF之比,即:)()()(jwFjwYjwH(3-3)通常,)(jwH可表示成两个有理多项式)(jwB与)(jwA的商,即:nnnnmmmmajwajwajwabjwbjwbjwbjwAjwBjwH)()()()()()()()()(11211121(3-4)(2)连续时间信号卷积及MATLAB实现卷积积分:卷积积分在信号与系统分析中具有非常重要的意义,是信号与系统分析的基本方法之一。有两个与卷积相关的重要结论:)()()(ttftf,即连续信号可分解为一系列幅度由)(tf决定的冲激信号)(t及其平移信号之和;线性时不变连续系统,设其输入信号为)(tf,单位响应为)(th,其零状态响应为)(ty,则有:)()()(thtfty。MATLAB实现连续时间信号的卷积:将连续信号)(1tf与)(2tf以时间间隔进行取样,得到离散序列)(1kf和)(2kf;构造与)(1kf和)(2kf相对应的时间向量1k和2k(注意,此时时间序号向量1k和2k的元素不再是整数,而是取样时间间隔的整数倍的时间间隔点),最后调用conv()函数可近似的求解连续时间信号的卷积积分。(3)离散时间信号的卷积离散时间序列)(1kf和)(2kf的卷积和定义为:-3-iikfifkfkfkf)()()(*)()(2121卷积和可调用conv()函数执行。四、实验内容及步骤1.上机实验前,认真阅读实验原理,掌握连续系统频率特性的MATLAB实现的方法。2.利用MATLAB相关命令实现以下实验内容。(1)利用MATLAB实现)()(25.0tetft向右移3和向左移3的波形。解:实现该过程的MATLAB命令程序如下:clear;closeall;t=-5:0.01:5;x=exp(-0.25*t).*stepfun(t,0);x1=exp(-0.25*(t+3)).*stepfun(t,3);x2=exp(-0.25*(t-3)).*stepfun(t,-3);subplot(331);plot(t,x);gridon;title('原信号x(t)');subplot(312);plot(t,x1);gridon;title('左移信号x(t)');subplot(313);plot(t,x2);gridon;title('右移信号x(t)');xlabel('时间t');程序运行结果如图所示:-50500.51原信号x(t)-50500.20.4左移信号x(t)-50505右移信号x(t)时间t-4-(2)设信号)]2()2([)21()(ttttf,用MATLAB求)2(tf,)2(tf,)(tf,)2(tf,)(tf,并绘出其时域波形。解:实现该过程的MATLAB命令程序如下:t=-6:0.001:6;f=(1+1/2*t).*[stepfun(t,-2)-stepfun(t,2)];f1=(1+1/2*(t+2)).*[(t+2-2)-(t+22)];f2=(1+1/2*(t-2)).*[(t-2-2)-(t-22)];f3=(1+1/2*(-t)).*[(-t-2)-(-t2)];f4=(1+t).*[(2*t-2)-(2*t2)];f5=-(1+1/2*t).*[(t-2)-(t2)];subplot(611)plot(t,f);gridon;title('时域波形');subplot(612)plot(t,f1);gridon;title('左移信号f(t+2)');subplot(613)plot(t,f2);gridon;title('右移信号f(t-2)');subplot(614)plot(t,f3);gridon;title('翻转信号f(-t)');subplot(615)plot(t,f4);gridon;title('压缩信号f(2t)');subplot(616)plot(t,f5);gridon;title('反向信号-f(t)');xlabel('时间t');程序运行结果如图所示:-5--6-4-20246012时域波形-6-4-20246012左移信号f(t+2)-6-4-20246012右移信号f(t-2)-6-4-20246012翻转信号f(-t)-6-4-20246012压缩信号f(2t)-6-4-20246-2-10反向信号-f(t)时间t(3)已知1-2-)(1ttf,ttf9)(2,利用MATLAB计算卷积)()(21tftf的波形。解:实现该过程的MATLAB命令程序如下:s=0.01;k1=0:s:2;k2=k1;f1=-2*k1-1;f2=9*k2;f=conv(f1,f2);f=f*s;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:s:k3*s;subplot(3,1,1);plot(k1,f1);title('f1(t)');subplot(3,1,2);plot(k2,f2);title('f2(t)');subplot(3,1,3);plot(k,f);title('f(t)');程序运行结果如图所示:00.511.52-4-20f1(t)00.511.5201020f2(t)00.511.522.533.54-100-500f(t)-6-(4)设连续时间信号为一个正弦信号ttx25.0cos)(,采样周期sTs81,试编写程序绘制信号)(tx和已采样信号)(kx的波形图。解:实现该过程的MATLAB命令程序如下:clear;closeall;dt=0.01;t=0:dt:10;Ts=1/8;n=0:Ts:10;x=cos(0.25*pi*t);xn=cos(0.25*pi*n);subplot(211);plot(t,x);title('Acontinuous-timesignalx(t)'),xlabel('Timet');subplot(212);stem(n,xn,'.');title('Thesampledversionx[n]ofx(t)'),xlabel('Timeindexn');程序运行结果如图所示:0246810-1-0.500.51Acontinuous-timesignalx(t)Timet0246810-1-0.500.51Thesampledversionx[n]ofx(t)Timeindexn(5)已知信号)()(4tGtf,利用MATLAB实现其傅里叶变换。解:实现该过程的MATLAB命令程序如下:clearall;R=0.01;t=-3:R:3;f=stepfun(t,-1)-stepfun(t,1);w1=2*pi*5;N=500;k=0:N;w=k*w1/N;F=f*exp(-j*t'*w)*R;F=real(F);-7-w=[-fliplr(w),w(2:501)];F=[fliplr(F),F(2:501)];subplot(2,1,1);plot(t,f);xlabel('t');ylabel('f(t)');title('门函数');subplot(2,1,2);plot(w,F);xlabel('w');ylabel('F(w)');title('f(t)的傅里叶变换F(w)');程序运行结果如图所示:-3-2-1012300.20.40.60.81tf(t)门函数-40-30-20-10010203040-0.500.511.52wF(w)f(t)的傅里叶变换F(w)(6)利用MATLAB实现信号)(98)(2tetft及其)1(tf的频谱图。解:实现该过程的MATLAB命令程序如下:clearall;R=0.02;t=-5:R:5;N=200;w=2*pi;k=-N:N;w=k*w/N;f1=8/9*exp(-2*t).*stepfun(t,0);F=R*f1*exp(-j*t'*w);F1=abs(F);P1=angle(F);subplot(3,1,1);plot(t,f1);xlabel('t');ylabel('f(t)');title('f(t)');subplot(3,1,2);plot(w,F1);xlabel('w');ylabel('F(jw)');subplot(3,1,3);plot(w,P1);xlabel('w');ylabel('相位');程序运行结果如图所示:-8--50500.51tf(t)f(t)-8-6-4-20246800.5wF(jw)-8-6-4-202468-202w相位(7)已知负指数序列jkkekf204014)(,利用MATLAB绘出其实部和虚部波形。解:实现该过程的MATLAB命令程序如下:clearall;a=-(1/40)+(pi/20)*i;k=4;n=0:60;x=k*exp(a*n);subplot(2,1,1);stem(n,real(x));ylabel('幅值f(k)');title('实部');subplot(2,1,2);stem(n,imag(x));xlabel('时间(k)');ylabel('幅值f(k)');title('虚部');程序运行结果如图所示:0102030405060-4-2024幅值f(k)实部0102030405060-2024时间(k
本文标题:MATLAB程序设计实验报告
链接地址:https://www.777doc.com/doc-6434273 .html