以下是本人初次学习使用MATLAB写出的实验内容,如果有错误的地方,恳请予以指正,将不胜感激。
问题2 利用MATLAB命令画出下列连续信号的波形图
(1)(2-e^(-t))*u(t)
clear
t = -5:0.1:5; %起始时间:采样步长:结束时间
y1 = (2-exp(-t)) .* heaviside(t); %heaviside 阶跃信号
plot(t,y1) %绘图
xlabel('t'); %设置x坐标
ylabel('y1'); %设置y坐标
title('y1=(2-exp(-t))*u(t)'); %设置标题
grid on %打开方格线
axis([-5 5 -1 3]) %划定波形图展示区域[最左侧 最右侧 最下侧 最上侧]
print(gcf,'-dpng','y1.png'); %形成波形图文件,存储于默认文件夹中
(2)u(cos(t))
clear
t = -2*pi:0.1:2*pi;
y2 = heaviside(cos(t));
plot(t,y2)
xlabel('t');ylabel('y2');title('y2=u(cos(t))');
grid on
axis([-6.5 6.5 -1 2])
print(gcf,'-dpng','y2.png');
(3)产生幅度为1、周期为1、占空比为0.5的周期矩形
clear
t = -5:0.1:5;
y3 = square(2*pi*t,50);
plot(t,y3)
xlabel('t');ylabel('y3');
grid on
axis([-5 5 -2 2])
问题3
根据图像可以写出f(t)=t*u(t)*u(1-t)-u(t-1)+u(t-2)
clear
t = -2:0.01:4;
f = t .* heaviside(t) .* heaviside(1-t) - heaviside(t-1) + heaviside(t-2);
f1 = f + f;
f2 = f .* f;
f3 = diff(f);
subplot(2,2,1);plot(t,f);axis([-1 3 -3 3]);xlabel('t');ylabel('f');grid on;
subplot(2,2,2);plot(t,f1);axis([-1 3 -3 3]);xlabel('t');ylabel('f1');grid on;
subplot(2,2,3);plot(t,f2);axis([-1 3 -3 3]);xlabel('t');ylabel('f2');grid on;
subplot(2,2,4);plot(t(1:end-1),f3);axis([-1 3 -3 3]);xlabel('t');ylabel('f3');
grid on
print(gcf,'-dpng','f1-2-3.png');
求f(t)的积分
clear
syms t
f = t .* heaviside(t) .* heaviside(1-t) - heaviside(t-1) + heaviside(t-2);
f4 = int(f,t);
ezplot(t,f4);xlabel('t');ylabel('f4');title('积分图像')
grid on
print(gcf,'-dpng','f4.png');
f(3-4t) f(1-t/1.5)
clear
t = -5:0.001:5;
f =t .* heaviside(t) .* heaviside(1-t) - heaviside(t-1) + heaviside(t-2);
f5 = (3-4*t) .* heaviside((3-4*t)) .* heaviside(1-(3-4*t)) - heaviside((3-4*t)-1) + heaviside((3-4*t)-2);
f6 = (1-t/1.5) .* heaviside((1-t/1.5)) .* heaviside(1-(1-t/1.5)) - heaviside((1-t/1.5)-1) + heaviside((1-t/1.5)-2);
subplot(3,1,1);plot(t,f);xlabel('t');ylabel('f');grid on;
subplot(3,1,2);plot(t,f5);xlabel('t');ylabel('f5');grid on;
subplot(3,1,3);plot(t,f6);xlabel('t');ylabel('f6');grid on;
print(gcf,'-dpng','f5-6.png');
f(t)*f(3-4t)
linspace(x1,x2,N)是均分计算指令,用于产生x1和x2之间的N点行线性的矢量。起始值、终止值、元素个数
clear
t = -10:0.001:10;
f =t .* heaviside(t) .* heaviside(1-t) - heaviside(t-1) + heaviside(t-2);
f5 = (3-4*t) .* heaviside((3-4*t)) .* heaviside(1-(3-4*t)) - heaviside((3-4*t)-1) + heaviside((3-4*t)-2);
f7 = 0.001 * conv(f,f5);
k = 2*length(t)-1;
k1 = linspace(2*t(1),2*t(end),k);
plot(k1,f7);axis([-0.5 3 -0.3 0.5]);xlabel('t');ylabel('f7');grid on;
print(gcf,'-dpng','f7.png');
f(t)的奇、偶分量
fliplr取反操作
clear
t = -4:0.01:4;
f =t .* heaviside(t) .* heaviside(1-t) - heaviside(t-1) + heaviside(t-2);
f8 = fliplr(f);
e = (f+f8)/2;
o = (f-f8)/2;
subplot(3,1,1);plot(t,f);axis([-3 4 -2 2]);xlabel('t');ylabel('f');title('原信号');grid on;
subplot(3,1,2);plot(t,e);axis([-3 4 -2 2]);xlabel('t');ylabel('e');title('偶分量');grid on;
subplot(3,1,3);plot(t,o);axis([-3 4 -2 2]);xlabel('t');ylabel('o');title('奇分量');grid on;
print(gcf,'-dpng','f-e-0.png');
问题4
1、讨论f(t+t0)与f(-t+t0)平移的方向是否相同?为什么?
分2种情况
(1) f(t)->f(-t)->f(-(t-t0))=f(-t+t0)
平移方向不同,f(-t+t0)=f(-(t-t0))相当于f(-t)函数向右平移了t0个单位长度
f(t+t0)则是f(t)函数向左平移了t0个单位长度
(2) f(t)->f(t+t0)->f(-t+t0)2
平移方向相同,均是向左平移t0个单位长度
2、将信号f(t)变成f(-2t+4)共有多少种方法,请列举出来。
由函数分析可知,一共进行了压缩、翻转、平移 3种操作,共有6种情况(A 3 3 =3*2*1)
方法1:f(t)->f(t+4)->f(-t+4)->f(-2t+4)
先将函数f(t)左移4个单位长度,再关于y轴翻转,再横向压缩为原来的1/2
方法2:f(t)->f(t+4)->f(2 * t+4)->f(-2t+4)
先将函数f(t)左移4个单位长度,再横向压缩为原来的1/2,再关于y轴翻转
方法3:f(t)->f(2*t)->f(-2*t)->f(-2*(t-2))=f(-2t+4)
先将函数f(t)横向压缩为原来的1/2,再关于y轴翻转,再向右平移2个单位长度
方法4:f(t)->f(2*t)->f(2*(t+2))->f(2*(-t+2))=f(-2t+4)
先将函数f(t)横向压缩为原来的1/2,再向左平移2个单位长度,再关于y轴翻转
方法5:f(t)->f(-t)->f(-(t-2))->f(-(2*t-4))=f(-2t+4)
先将函数f(t)关于y轴翻转,再向右平移4个单位长度,再横向压缩为原来的1/2
方法6:f(t)->f(-t)->f(-2*t)->f(-2*(t-2))=f(-2t+4)
先将函数f(t)关于y轴翻转,再横向压缩为原来的1/2,再向右平移2个单位长度