电子信息工程系实验报告课程名称:信号与系统实验项目名称:连续时间信号在MATLAB 中的运算 实验时间:2013-11-22班级:电信112班 姓名: 学号:一、实 验 目 的:1、学会运用MATLAB 进行连续信号的时移、反折和尺度变换;2、学会运用MATLAB 进行连续信号的相加、相乘运算;3、学会运用MATLAB 数值计算方法求连续信号的卷积。
二、实 验 环 境:1、Windows 72、MATLAB 7.1三、实 验 原 理:2.1信号的时移、反折和尺度变换信号的时移、反折和尺度变换是针对自变量时间而言的,其数学表达式与波形变换之间存在一定的变换规律。
信号()f t 的时移就是将信号数学表达式中的t 用0t t ±替换,其中0t 为正实数。
因此,波形的时移变换是将原来的()f t 波形在时间轴上向左或者向右移动。
0()f t t +为()f t 波形向左移动0t ;0()f t t -为()f t 波形向右移动0t 。
信号()f t 的反折就是将表达式中的自变量t 用t -替换,即变换后的波形是原波形的y 轴镜像。
信号()f t 的尺度变换就是将表达式中的自变量t 用at 替换,其中,a 为正实数。
对应于波形的变换,则是将原来的()f t 的波形以原点为基准压缩(1a >)至原来的1/a ,或者扩展(01a <<)至原来的1/a 。
上述可以推广到0()f at t ±的情况。
2.2 MATLAB 数值计算法求连续时间信号的卷积用MATLAB 分析连续时间信号,可以通过时间间隔取足够小的离散时间信号的数值计算方法来实现。
可调用MATLAB 中的conv( )函数近似地数值求解连续信号的卷积积分。
如果对连续时间信号1()f t 和2()f t 进行等时间间隔t ∆均匀抽样,则1()f t 和2()f t 分别变为离散序列1()f m t ∆和2()f m t ∆。
其中m 为整数。
当t ∆足够小时,1()f m t ∆和2()f m t ∆即为连续时间信号1()f t 和2()f t 。
因此连续信号的卷积积分运算转化为:1212()()*()()()f t f t f t f f t d τττ∞-∞==-⎰120lim()()t m f m t f t m t t ∞∆→=-∞=∆⋅-∆⋅∆∑采用数值计算法,只求当t n t =∆时卷积积分()f t 的值()f n t ∆,其中,n 为整数,即12()()()m f n t f m t f n t m t t ∞=-∞∆=∆⋅∆-∆⋅∆∑12()[()]m tf m t f n m t ∞=-∞=∆∆⋅-∆∑其中,12()[()]m f m t f n m t ∞=-∞∆⋅-∆∑实际就是离散序列1()f m t ∆和2()f m t ∆的卷积和。
当t∆足够小时,()f n t ∆就是卷积积分的结果,从而连续时间信号12()()[()*()]f t f n t f n f n ≈∆=∆上式表明通过MATLAB 实现连续信号1()f t 和2()f t 的卷积,可以利用各自抽样后的离散时间序列的卷积再乘上抽样间隔t ∆。
抽样间隔t ∆越小,误差也就越小。
四、实 验 内 容 及 结 果 分 析:4.1 试用MATLAB 命令绘制信号/2()sin(10)sin(9)tt f t e t e t ππ--=+的波形图。
解:为画出/2()sin(10)sin(9)tt f t e t e t ππ--=+连续信号的波形图编写如下程序代码:clear; clc; t = -1:0.001:3;ft = exp(-t).*sin(10*pi*t)+exp(-t/2).*sin(9*pi*t); plot(t,ft); grid on ; axis([-1,3,-2.5,2.5]);把编写好程序以sye41.m 为文件名保存,并执行此文件,然后在窗口中可看到/2()sin(10)sin(9)t t f t e t e t ππ--=+连续信号的波形如图1所示:图1/2()sin(10)sin(9)t t f t e t e t ππ--=+连续信号的波形4.2 已知信号()()(1)(1)[(1)()]f t u t u t t u t u t =--+-+-,画出()f t 、(2)f t +、()f t -、(21)f t -+的波形。
解:(1)先在MATLAB 的工作目录下创建uCT 的M 文件,其MATLAB 源文件为: function f = uCT(t)f = (t>=0);(2)然后建立()f t 函数文件,即在MATLAB 的工作目录下创建funct1.m 文件,MATLAB 源程序为: function f = funct1(t)f=uCT(t)-uCT(t-1)+(t-1).*(uCT(t+1)-uCT(t));(3)调用上述函数来绘制所求的信号波形。
程序运行完,产生如图2所示的波形。
MATLAB 源程序为: clear;clc; t=-2:0.001:4; ft1=funct42(t); ft2=funct42(t+2); ft3=funct42(-t); ft4=funct42(-2*t+1);subplot(2,2,1) plot(t,ft1); grid on ; title('f(t)'); axis([-2 2 -2 2]);subplot(2,2,2) plot(t,ft2); grid on ; title('f(t+2)'); axis([-2 2 -1 2]); subplot(2,2,3) plot(t,ft3);grid on ; title('f(-t)'); axis([-2 4 -2 2]); subplot(2,2,4) plot(t,ft4);grid on ; title('f(-2*t+1)'); axis([-2 4 -2 2]);图 2 ()f t 、(2)f t +、()f t -、(21)f t -+的波形图4.3 求信号1()()(2)f t u t u t =--与2()()(1)(2)(3)f t u t u t u t u t =+-----的卷积结果12()()*()f t f t f t =,并画出12(),()f t f t 和()f t 的波形。
解:为画出12(),()f t f t 和()f t 的波形图编写如下程序代码: clear; clc; dt = 0.001; t = -2:dt:11; f1 = uCT(t)- uCT(t-2); f2 = uCT(t)+uCT(t-1) -uCT(t-2)-uCT(t-3); f = conv(f1,f2)*dt; n=length(f);tt = (0:n-1)*dt-2; subplot(2,2,1); plot(t,f1); grid on ; axis([-2 4 -0.2 1.2]); title('f1(t)'); xlabel('t');subplot(2,2,2); plot(t,f2); grid on ;axis([-2 4 -0.2 2.2]);title('f2(t)'); xlabel('t');subplot(2,1,2); plot(tt,f); grid on ;axis([-2 11 -0.2 3.2]); title('f(t)=f1(t)*f2(t)'); xlabel('t');把编写好程序以sye43.m 为文件名保存,并执行此文件,然后在窗口中可看到12(),()f t f t 和()f t 的波形如图3所示:图3 12(),()f t f t 和()f t 的波形图4.4 求信号1()(0.5)(0.5)f t u t u t =+--与自身的卷积结果11()()*()f t f t f t =,并画出1()f t 和()f t 的波形。
解:为画出1()f t 和()f t 的波形图编写如下程序代码:clear; clc; dt = 0.001; t = -2:dt:2; f1 = uCT(t+0.5)- uCT(t-0.5); f = conv(f1,f1)*dt; n =length(f); tt = (0:n-1)*dt-2;subplot(1,2,1); plot(t,f1); grid on ; axis([-1, 1, -0.2,1.2]); title('f1(t)'); xlabel('t'); subplot(1,2,2); plot(tt,f);grid on ; axis([0, 4, -0.2,1.2]);title('f(t)=f1(t)*f1(t)');xlabel('t');把编写好程序以sye44.m为文件名保存,并执行此文件,然后在窗口中可看到1()f t和()f t的波形如图4所示:图41()f t和()f t的波形图五、问题与思考:MATLAB运算符中 .*和 * 的区别?可结合例子说明。
编写如下程序代码:clc;clear;A=[1 2 3;4 5 6;7 8 9]B=[1 1 1;10 10 10;100 100 100]C=A*BD=A.*B运行结果如右图:总结如下:C=A*B表示的是矩阵A和矩阵B的基本运算。
D=A.*B表示的是矩阵A中的元素乘以矩阵B中对应的元素。