信号与系统实验一连续信号的时域描述与运算

以下是本人初次学习使用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个单位长度

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值