实验名称:连续时间信号的时域分析 实验名称:2012年5月19日星期六
1. 验证性实验(直接利用符号法进行编程)
1) 相加
实现两个连续信号的相加,即f(t)=f1(t)+f2 (t) Matlab程序:
clear all; t=0:0.0001:3; b=3;
t0=1;u=stepfun(t,t0); n=length(t); for i=1:n
u(i)=b*u(i)*(t(i)-t0); end
y=sin(2*pi*t); f=y+u; plot(t,f);
xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号的相加'); 两个连续信号的相加结果如1.1图所示。
图1.1 2) 相乘
实现两个连续信号的相乘,即f(t)=f1(t)*f2(t) Matlab 程序:
clear all; t=0:0.0001:5; b=3;
t0=1; u=stepfun(t,t0); n=length(t); for i=1:n
u(i)=b*u(i)*(t(i)-t0); end
y=sin(2*pi*t); f=y.*u; plot(t,f);
xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号相乘'); 两个连续信号的相乘结果如图1.2
图1.2
3) 移位
实现连续信号的移位,即f(t-??0),或者f(t+??0),常数??0>0. Matlab 程序;
clear all;
t=0:0.001:1; a=2;
y=sin(2*pi*t); y1=sin(2*a*pi*t); subplot(2,2,1) plot(t,y);
ylabel('y(t)');xlabel('t'); title('尺度变化'); subplot(2,1,2) plot(t,y1);
ylabel('y1(t)');xlabel('t'); 信号及其移位结果如图1.3所示。
图1.3
4) 卷积
利用离散conv函数实现连续运算,并寻找其他方法。 (1) 函数卷积计算
若f1 t =δ(t), f2(t)=u(t),计算f(t)=f1(t)*f2(t),f(t)=f1(t)*f1(t),f(t)=f2 (t)* f2(t)。(利用conv函数)。 Matlab 程序: %连续函数卷积计算 clear all; a=1000;
t1=-5:1/a:5;
f1=stepfun(t1,0);
f2=stepfun(t1,-1/a)-stepfun(t1,1/a); subplot(2,3,1);
plot(t1,f1);axis([-5,5,0,1.2]);xlabel('时(t)');ylabel('f1(t)');title('单位阶跃函数'); subplot(2,3,2);plot(t1,f2);ylabel('f2(t)'); title('单位冲激函数');
y=conv(f1,f2);r=2*length(t1)-1;t=-10:1/a:10; subplot(2,3,3);plot(t,y);axis([-5,5,0,1.2]); title('f1与f2的卷积');ylabel('y(t)'); f11=conv(f1,f1);f22=conv(f2,f2);
subplot(2,3,4);plot(t,f11);title('f1与f1的卷积'); ylabel('f11(t)');axis([-5,5,0,5000]);
subplot(2,3,5);plot(t,f22);title('f2与f2卷积');ylabel('f22(t)'); 连续函数卷积计算结果如图1.4所示。
间
图1.4
2. 程序设计实验
(1)已知信号f1(t)=(-t+4)[U(t)-U(t-4)],f2(t)=sin(2πt),用matlab绘出下列信号的时
域波形。要求写出全部程序,并绘制出信号时域波形。 (a) f3(t)=f1(-t)+f1(t)
(b) f4(t)=-[f1(t)+f1(t)] (c) f5(t)=f1(t)×f3(t)
(d) f6(t)=f1(t)×f2(t) Matlab程序: syms t
f1=sym('(4-t)*(heaviside(t)-heaviside(t-4))'); subplot(2,3,1);ezplot(f1,[-5,5]);title('f1');
f2=sin(2*pi*t);subplot(2,3,2);ezplot(f2,[-5,2,5]);title('f2'); f3=subs(f1,t,-t)+f1;subplot(2,3,3);ezplot(f3,[-5,5]);title('f3');
f4=-f3;subplot(2,3,4);ezplot(f4,[-5,5]);title('f4');f5=f2*f3;subplot(2,3,5); ezplot(f5,[-5,5]);title('f5');
f6=f1*f2 ;subplot(2,3,6);ezplot(f6,[-5,5]);title('f6');axis([-5,5,-4,4]); 各个信号波形如图1.5所示。
图1.5
(2) 若 f1 t =δ(t), f2(t)=u(t),f3(t)=u(t)-u(t-4)试证明卷积满足如下结论:
(a) f1(t)*f2(t)= f2(t)* f1 t
?? f1(t)*[f2(t)+f3(t)]= f1(t)*f2(t)+??1(t)*f3 t Matlab 程序: clear all; a=1000;
t1=-5:1/a:5;
f1=stepfun(t1,0);
f2=stepfun(t1,-1/a)-stepfun(t1,1/a); f3=stepfun(t1,0)-stepfun(t1,4);