
| 成 绩: |
| 指导老师(签名): |
实验项目名称:连续时间信号在MATLAB中的表示 实验时间:2015.11.11
班级:通信141 姓名:林志斌 学号:201411402115
一、实 验 目 的:
1、学会运用进行连续信号的时移、反折和尺度变换;学会运用MATLAB进行连续信号的相加、相乘运算;学会运用MATLAB数值计算方法求连续信号的卷积。
二、实 验 设 备 与 器 件
三、实 验 原 理
1信号的时移、反折和尺度变换
信号的时移、反折和尺度变换是针对自变量时间而言的,其数学表达式与波形变换之间存在一定的变换规律。
信号的时移就是将信号数学表达式中的用替换,其中为正实数。因此,波形的时移变换是将原来的波形在时间轴上向左或者向右移动。为波形向左移动;为波形向右移动。信号的反折就是将表达式中的自变量用替换,即变换后的波形是原波形的y轴镜像。信号的尺度变换就是将表达式中的自变量用替换,其中,为正实数。对应于波形的变换,则是将原来的的波形以原点为基准压缩()至原来的,或者扩展()至原来的。
上述可以推广到的情况。
2 MATLAB数值计算法求连续时间信号的卷积
用MATLAB分析连续时间信号,可以通过时间间隔取足够小的离散时间信号的数值计算方法来实现。可调用MATLAB中的conv( )函数近似地数值求解连续信号的卷积积分。如果对连续时间信号和进行等时间间隔均匀抽样,则和分别变为离散序列和。其中为整数。当足够小时,和即为连续时间信号和。因此连续信号的卷积积分运算转化为:
采用数值计算法,只求当时卷积积分的值,其中,为整数,即
其中,实际就是离散序列和的卷积和。当足够小时,就是卷积积分的结果,从而连续时间信号
上式表明通过MATLAB实现连续信号和的卷积,可以利用各自抽样后的离散时间序列的卷积再乘上抽样间隔。抽样间隔越小,误差也就越小。
四、实 验 内 容 与 步 骤
4.1 试用MATLAB命令绘制信号的波形图。
4.2 已知信号,画出、、、的波形。
4.3 求信号与的卷积结果,并画出和的波形。
4.4 求信号与自身的卷积结果,并画出和的波形。
5问题与思考
MATLAB运算符中 .*和 * 的区别?可结合例子说明。(实验1和实验2都有碰到的)
解:4.1、MATLAB源程序为:
clear;clc;
t = 0:0.01:3;
ft=exp(-1*t).*sin(10*pi*t)+exp(-1*t).*sin(9*pi*t);
plot(t,ft);grid on
axis([0,3,-2.2,2.2]);
title('ft');
4.2、MATLAB源程序为:
function f = uCT(t)
f = (t>=0);
function f = funct1(t)
f=uCT(t)-uCT(t-1)+(t-1).*(uCT(t+1)-uCT(t));
Clear;clc;
t = -2:0.01:2;
ft1 = funct1(t);
ft2 = funct1(t+2);
ft3 = funct1(-t);
ft4 = funct1(-2*t+1);
subplot(221)
plot(t,ft1);grid on
title('f(t)');
axis([-2 2 -2.5 1.5]);
subplot(222)
plot(t,ft2);grid on
title('f(t+2)');
axis([-2 2 -1 2]);
subplot(223)
plot(t,ft3);grid on
title('f(-t)');
axis([-2 2 -2.5 1.5]);
subplot(224)
plot(t,ft4);grid on
title('f(-2t+1)');
axis([-0.5 1.5 -2.5 1.5]);
4.3、MATLAB源程序为:
clear;clc;
dt = 0.01; t = -1:dt:3.5;
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(221), plot(t,f1),grid on;
axis([-1,3.5,-0.2,1.5]);
title('f1(t)'); xlabel('t');
subplot(222), plot(t,f2),grid on;
axis([-1,3.5, -0.2,2.2]);
title('f2(t)'); xlabel('t');
subplot(212), plot(tt,f),grid on;
title('f(t)=f1(t)*f2(t)'); xlabel('t');
4.4、MATLAB源程序为:
clear;clc;
dt = 0.01; 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(121), plot(t,f1),grid on;
axis([-2, 2, -0.2,1.2]);
title('f1(t)'); xlabel('t');
subplot(122), plot(tt,f),grid on;
title('f(t)=f1(t)*f1(t)'); xlabel('t');
5、问题与思考
MATLAB运算符中 .*和 * 的区别?可结合例子说明。(实验1和实验2都有碰到的)
答:*是矩阵中的元素对应相乘,.*是按照矩阵本身的乘法运算实现的。
例如:a=[1,2;3,4] b= [1,2;3, 4]
则a.*b=[1,4;9,16] a*b=[7,10;15,22]
五、实 验 结 果 及 分 析:
4.1、(1)的波形图如图1所示:
图1
4.2、的波形图如图2所示:
图2
4.3、的波形图如图3所示:
图3
4.4、的波形图如图6所示:
图4
六、实 验 总 结:
附 录:图、关键代码等(可给出适当注释,提高可读性)
