—程序设计实验实验报告
一、 实验目的
(1) 掌握连续时间信号的时域运算的基本方法; (2) 掌握相关函数的调用格式及作用; (3) 掌握连续信号的基本运算;
(4) 掌握利用计算机进行卷积运算的原理和方法; (5) 熟悉连续信号卷积运算函数conv的应用。
二、 设计的MATLAB函数极其实现 1. stepfun函数
功能:产生一个阶跃信号 调用格式:stepfun(t,t0)
其中t是时间区间,在该区间内阶跃信号一定会产生;t0是信号发生从0到1的条约的时刻。 2. diff函数 调用格式:
diff(f):求函数f对预设的变数的一次微分值。 diff(f,’t’):求函数f对变数t的一次微分。 3. int函数 调用格式:
Int(f):函数F对预设变数的积分值。
Int(f,’t’):函数f对和变数t的积分值。 4. conv函数
功能:实现信号的卷积运算。
调用格式:w = conv(u,v):计算两个有限长度序列的卷积。 说明:该函数假定两个序列都从零开始。
三、 实验内容
(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) = f2(t)×f3(t) (d) f6(t) = f1(t)×f2(t)
(2)已知信号f(t)的波形如图所示。试画出下列个函数对时间t的波形。
- 1 -
f(t) 2 1 -2 -1 1 2 t
(a) f(-t) (b) f(-t+2) (c) f(-t-2) (d) f(2t) (e) f(t/2) (f) f(t-2) (g) f(-t/2+1)
(h) d[f(t/2+1)]/dt (i)∫-∞
t
f(2-t)dt
(3)若f1(t) = δ(t),f2(t)=U(t),f3(t)=U(t)-U(t-4) 证明卷积满足如下结论: ① f1(t) * f2(t) = f2(t) * f1(t)
② f1(t) * [f2(t) + f3(t)] = f1(t) * f2(t) + f1(t) * f3(t) (3)自己寻找两个不同的函数,重复上述操作,比较所得结果。
四、实验结果 (1) 程序如下: clear all; t=-5:0.0001:5; u=stepfun(t,-4); u1=stepfun(t,0); u2=stepfun(t,4);
f1=(-t+4).*(u1-u2); /构造f1(t)=(-t+4)[U(t)-U(t-4)]/ f2=sin(2*pi*t); /构造f2(t)=sin(2πt)/ g=(t+4).*(u-u1); /构造f1(-t)/ f3=g+f1; /定义f3(t)/ plot(t,f3);
xlabel('t');ylabel('f3(t)');title('f3(t)=f1(-t)+f1(t)'); grid on;
f4=-f3; /定义f4(t)/ plot(t,f4);
xlabel('t');ylabel('f4(t)');title('f4(t)=-[f1(-t)+f1(t)]'); grid on;
- 2 -
f5=f2.*f3; /定义f5(t)/ plot(t,f5);
xlabel('t');ylabel('f5(t)');title('f5(t)=f2(t)*f3(t)'); grid on;
f6=f1.*f2; /定义f6(t)/ plot (t,f6);
xlabel('t');ylabel('f6(t)');title('f6(t)=f1(t)*f2(t)');grid on;
实验结果图如下: f3(t)=f1(-t)+f1(t)
f4(t)= -[f1(-t)+f1(t)]
- 3 -
f5(t)=f2(t)*f3(t)
- 4 -
f6(t)=f1(t)*f2(t)
(2)分析:由题图可知函数f(t)=(-t/2+1)*[U(t+2)-U(t-2)] 程序如下: clear all; t=-6:0.001:6;
u1=stepfun(t,-2); u2=stepfun(t,2);
f=(-t/2+1).*(u1-u2); /构造函数f(t)/ f1=(t/2+1).*(u1-u2); /函数f(-t)/ plot(t,f1);
xlabel('t');ylabel('f(-t)');title('f(-t)');grid on; f2=subs(f,t,-t+2); /函数f(-t+2)/ plot(t,f2);
xlabel('t');ylabel('f(-t+2)');title('f(-t+2)');grid on; f3=subs(f,t,-t-2); /函数f(-t-2)/ plot(t,f3);
xlabel('t');ylabel('f(-t-2)');title('f(-t-2)');grid on; f4=subs(f,t,2t); /函数f(2t)/ plot(t,f4);
xlabel('t');ylabel('f(2t)');title('f(2t)');grid on; f5=subs(f,t,t/2); /函数f(t/2)/ plot(t,f5);
- 5 -
xlabel('t');ylabel('f(t/2)');title('f(t/2)');grid on; f6=subs(f,t,t-2); /函数f(t-2)/ plot(t,f6);
xlabel('t');ylabel('f(t-2)');title('f(t-2)');grid on; f7=subs(f,t,-t/2+1); /函数f(-t/2+1)/ plot(t,f7);
xlabel('t');ylabel('f(-t/2+1)');title('f(-t/2+1)');grid on; a— g结果如下: f(-t) F(-t+2)
- 6 -
F(-t-2)
F(2t)
- 7 -
F(t/2)
F(t-2)
- 8 -
F(-t/2+1)
- 9 -
(h)程序如下: Clear all;syms t
f=sym('(-t/2+1)*(heaviside(t+2)-heaviside(t-2))'); g=subs(f,t,t/2+1);d=diff(g); ezplot(d,[-7,7]);
xlabel('t');ylabel('f''(t/2+1)');title('f(t/2+1)的微分'); h=subs(f,t,2-t);j=int(h); ezplot(j,[-7,7]);
xlabel('t');title('f(2-t)的积分');
实验结果:
- 10 -
Heaviside的函数M文件如下:
function[x,n]=Heaviside(n0,n1,n2) n=[n1:n2];x=[(n-n0)==0];
(3) ①
程序如下: a=1000
t=-5:1/a:5;
f1=stepfun(t,0)-stepfun(t,1/a); f2=stepfun(t,0);
f3=stepfun(t,0)-stepfun(t,4); x=conv(f1,f2); y=conv(f2,f1);
t1=-10:1/a:10;
plot(t1,x);
subplot(1,2,1);plot(t1,x); subplot(1,2,2);plot(t1,y);
结果如下:则可看出两个卷积结果相同!
- 11 -
②程序如下: a=1000 t=-5:1/a:5;
f1=stepfun(t,0)-stepfun(t,1/a); f2=stepfun(t,0);
f3=stepfun(t,0)-stepfun(t,4); f4=f2+f3;
a=conv(f1,f4);
b=conv(f1,f2)+conv(f1,f3); m=-10:0.001:10;
subplot(1,2,1);plot(m,a); subplot(1,2,2);plot(m,b);
结果如下:可以看出两个卷积结果相同!
- 12 -
- 13 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务