实验一matlab编程基础,实验一、MATLAB编程基础及典型实例.doc

实验一、MATLAB编程基础及典型实例.doc

实验九 连续信号时域分析的MATLAB实现实验九 连续信号时域分析的MATLAB实现一. 实验目的 1. 熟悉MATLAB软件平台; 2. 掌握MATLAB编程方法、常用语句和可视化绘图技术; 3. 编程实现常用信号及其运算MATLAB实现方法。二. 实验原理 连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。矩阵是MATLAB进行数据处理的基本单元,矩阵运算是MATLAB最重要的运算。通常意义上的数量(也称为标量)在MATLAB系统中是作为11的矩阵来处理的,而向量实际上是仅有一行或者一列的矩阵。通常用向量表示信号的时间取值范围,如n = -5:5,但信号x(n)、向量n本身的下标都是从1开始的,因此必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。 1.单位阶跃信号e(t)和单位冲激信号d(t)的m文件在自己的工作目录中创建如下两个m文件。(1)单位阶跃信号e(t)function f=heaviside(t) %阶跃信号f=(t0);(2)单位冲激信号d(t)function chongji(t1,t2,t0) %冲激信号d(t- t0),t1和t2分为起始时间和终止时间dt=0.01;t=t1:dt:t2;n=length(t);x=zeros(1,n);x(1,(t0-t1)/dt+1)=1/dt;stairs(t,x); %以阶梯方式绘画axis(t1,t2,0,1.1/dt)2.连续信号的相加、相乘、时移、反转和尺度变换等基本运算(1)两个连续信号的相加在MATLAB中要实现两个连续信号f1(t)、f2(t)的相加,可用如下语句:x=symadd(f1,f2) 或 x=f1+f2 % x(t)= f1(t)+f2(t)(2)两个连续信号的相乘在MATLAB中要实现两个连续信号f1(t)、f2(t)的相乘,可用如下语句:x=symmul(f1,f2) 或 x=f1*f2 % x(t)= f1(t) f2(t)(3)连续信号的平移要实现连续信号f(t)向右平移t0,MATLAB语句格式为:x=subs(f,t,t-t0) % x(t)= f(t-t0)(4)连续信号的反转要实现连续信号f(t)的反转,MATLAB语句格式为:x=subs(f,t,-t) % x(t)= f(-t)(5)连续信号的尺度变换要实现连续信号f(t)的尺度变换,MATLAB语句格式为:x=subs(f,t,a*t) % x(t)= f(at)要实现连续信号f(t)的平移、尺度变换的综合运算,MATLAB语句格式为:x=subs(f,t,a*t-b) % x(t)= f(at-b)例9-1:信号f1(t)、 f2(t)如图9-1(a)、(b)所示,编制一个m文件,绘出f1(t)=e-0.5te(t)-e(t-2)、 f2(t)=sin(5pt)e(t)-e(t-2)、f1(-2t+1)、f1(t) f2(t-1)的波形。解:实现所要求运算的m文件如下,syms tf1=sym(exp(-0.5*t)*(heaviside(t)-heaviside(t-2);f2=sym(sin(5*pi*t)*(heaviside(t)-heaviside(t-2);图9-1subplot(2,2,1),ezplot(f1);title(f1);subplot(2,2,2), ezplot(f2);title(f2);f3=subs(f1,t,-2*t+1); subplot(2,2,3);ezplot(f3);title(f3); f4=f1*subs(f2,t,t-1);subplot(2,2,4);ezplot(f4);title(f4); 运算结果如图9-1所示。其中,图9-1(a)、(b)、(c)、(d)分别为f1(t)、f2(t) 、f1(-t+1) 、f1(t) f2(t-1)的波形。3.连续信号的卷积运算由于MATLAB运算的特点,两个连续信号f1(t)、f2(t)的卷积f(t)=f1(t)*f2(t),用MATLAB实现的过程应为:(1)将连续信号f1(t)、f2(t)以时间间隔进行取样,得离散序列f1(kD)、f2(kD);(2)构造f1(kD)、f2(kD)与相对应的时间向量k1和k2;(3)调用conv()函数计算卷积积分f(t)的近似向量f(kD);(4)构造f(kD)对应的时间向量k。下面是利用MATLAB实现连续信号卷积运算的通用函数sconv(),它在计算出卷积积分近似值的同时,还绘出f(t)的波形图。function f,k=sconv(f1,f2,k1,k2,p)%计算连续信号卷积积分f(t)=f1(t)*f2(t)%f:卷积积分f(t)对应的非零值向量%k:f(t)的对应时间向量%f1,f2:f1(t),f2(t)的非零样值向量%k1,k2:f1(t),f2(t)的对应时间向量%p:取样时间间隔f=conv(f1,f2); %计算序列f1,f2的卷积和ff=f*p;k0=k1(1)+k2(1); %计算序列f非零样值的起点位置k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度k=k0:p:k3*p; %确定卷积和f非零样值的时间向量subplot(2,2,1);plot(k1,f1); title(f1(t); xlabel(t); ylabel(f1(t);subplot(2,2,2);plot(k2,f2); title(f2(t); xlabel(t); ylabel(f2(t);subplot(2,2,3);plot(k,f); %画出卷积f(t)的波形title(f(t)=f1(t)*f2(t); xlabel(t); ylabel(f(t);h=get(gca,position);h(3)=2.5*h(3);set(gca,position,h) %将第三个子图的横坐标扩展为原来的2.5倍图9-2例9-2:已知f1(t)=e-te(t)-e(t-2)、 f2(t) = e(t)-e(t-3),编制一个m文件,绘出f1(t)、f2(t)和f(t)=f1(t)* f2(t)的波形。解:实现所要求运算的m文件如下,运算结果如图9-2所示。p=0.01;k1=0:p:2f1=exp(-k1);k2=0:p:3;f2=ones(1,length(k2);f,k=sconv(f1,f2,k1,k2,p)三. 实验内容1.建立以自己的汉语名字命名一个文件夹,用以存放自己所编制的M文件和产生的结果,并设置成当前工作目录。 2. 编写M文件,绘出信号、的波形及其卷积结果的波形,取样时间间隔为0.05s。(结果见图9-3)3. 编写M文件,绘出、f(2t-2)的波形,t的范围在-2 2s。(结果见图9-4)4. 利用heaviside(t)函数实现如图9-5所示的信号f(t)。5. 编写M文件,绘出单边复指数信号的模值、相角、实部和虚部的时域波形。(结果见图9-6) 四. 实验报告 1. 在调用某一函数文件时,该文件中除了输入、输出变量外的其它变量在调用函数结束后是否还存在?这些变量是全局还是局部变量? 2. 列写出实验内容2、3、4、5的M文件,并将运算结果附于M文件之后。图9-3 图9-4图9-5 图9-652

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值