实验一 熟悉MATLAB环境
2、(2)粗略描绘下列各函数的波形 说明:MATLAB中有函数sinc(t)?sin?t?t ④ f(t)=sint/t
t=-3*pi:0.01*pi:3*pi; t1=t/pi; y=sinc(t1); plot(t,y); hold on plot(t,0)
⑤在自己的工作目录work下创建Heaviside函数的M文件,该文件如下:function f=Heaviside(t)
f=(t>0) %t>0时f为1,否则f为0
在命令窗口输入如下语句,就能绘出u(t)的波形。 t=-1:0.01:3; f=Heaviside(t); plot(t,f)
axis([-1 3 –0.2 1.2]) ⑥t=-1:0.01:2;
g=Heaviside(t)-Heaviside(t-1); plot(t,g);
axis([-1 2 -0.2 1.2]) hold on plot(t,0)
4、 分别用for和while循环结构编写程序,求出
63s=
?2k=1+2+22+23+…+262+263
k?0并考虑一种避免循环的简洁方法来进行求和。 程序如下: s=1; for k=1:63
1
s=s+2^k; end s
运行结果是: s =
1. 8447e+019 (2)s=1; k=1;
while k<=63 s=s+2^k; k=k+1; end s
运行结果: s =
1. 8447e+019
(3) k=0:63;
s=sum(2.^k)
实验二 信号的卷积与系统的响应和阶跃响应
1. n=0:20;
hn=0.9.^n;
xn=[0,0 ones(1,8),0,0]; yn=conv(hn,xn); stem(yn)
3. 利用MATLAB绘制下列信号的卷积积分f1(t)*f2(t)的时域波形。
(1) f1(t)=2[u(t+1)-u(t-1)], f2(t)=u(t+2)-u(t-2) (2) f1(t)=tu(t), f2(t)=u(t)
(3) f1(t)=u(t)-u(t-4), f2(t)=sin(лt)u(t); (4) f1(t)=e-2tu(t), f2(t)=e-tu(t)
(1) 先编写实现连续信号卷积的通用函数sconv(),程序如下: function[f,k]=sconv(f1,f2,k1,k2,p)
%计算连续信号卷积积分f(t)=f1(t)*f2(t) %f:卷积积分f(t)对应的非零样值向量 %k:f(t)的对应时间向量 ?:f1(t)非零样值向量 ò:f2(t)非零样值向量 %k1:f1(t)的对应时间向量
%k2:序列f2(t)的对应时间向量 %p:取样时间间隔
2
f=conv(f1,f2); %计算序列f1与f2的卷积f f=f*p;
k0=k1(1)+k2(1); %计算序列f的非零样值的起点位置
k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度 k=k0:p:((k3-(0-k0)/p)*p); %确定卷积和f非零样值的时间向量 subplot(2,2,1)
plot(k1,f1) %绘制f1(t) 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);
h=get(gca,'position'); h(3)=2.5*h(3);
set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的2.5倍 title('f(t)=f1(t)*f2(t)') xlabel('t') ylabel('f(t)')
p=0.01; k1=-1:p:1;
f1=2*ones(1,length(k1)); k2=-2:p:2;
f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)
3
(2)p=0.01; k1=0:p:10; f1=k1 k2=0:p:10;
f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)
第(2)题图上
4

