matlab-信号与系统

本文详细介绍了MATLAB中阶跃函数`heaviside`、单位冲激函数`dirac`的使用及区别,并通过实例展示了它们的图形与积分特性。同时,讨论了冲激函数的表示方法及其与`dirac`函数的差异。此外,还讲解了如何创建和理解分段函数,通过代码实例展示了如何定义和绘制分段函数的图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用函数注意点

阶跃函数u(x)

clc;clear;
x=0:100;
%y=sign(x);
f=@(x)sign(x);

结果是在x=0处从-1跳变到1

单位阶跃函数

clc;clear;
x=0:100;
%y=heaviside(x);
f=@(x)heaviside(x);

结果是在x=0处从0跳变到1

狄拉克函数(单位冲激信号

clc;clear;
x=0:100;
%y=dirac(x);
f=@(x)dirac(x);
disp(['dirac函数在x=0处的值为:' num2str(dirac(0))]);
disp(['dirac函数在x不为0处的值为:' num2str(dirac(1))]);

f_int=integral(f,-Inf,Inf);
disp(['dirac函数的积分为:' num2str(f_int)]);

结果是在x=0处函数值为Inf,在其他点为0,函数从 − ∞ -\infty ∞ \infty 积分值为0

冲激函数

clc;clear;
x=0:100;
%y=sign(dirac(x));
f=@(x)sign(dirac(x));
disp(['冲激函数在x=0处的值为:' num2str(sign(dirac(0)))]);
disp(['冲激函数在x不为0处的值为:' num2str(sign(dirac(1)))]);

f_int=integral(f,-Inf,Inf);
disp(['冲激函数的积分为:' num2str(f_int)]);

结果是在x=0处函数值为1,在其他点为0,函数从 − ∞ -\infty ∞ \infty 积分值为0

冲激函数与dirac函数的区别

冲激函数的图形是三角形,x的取值间隔越小,三角形底边越窄

dirac函数的图形是看不见图形,只能在x=0点处看到取Inf值点,x的取值间隔越小,取值点宽度越小

冲激函数进阶

正确plot方法:

  • 平时我们创造冲激函数就是sign(dirac(x))即可,重点在于想实现dirac(x+1)-dirac(x-1)并且plot出来,但是单纯的dirac(x)只会得到函数值为Inf的结果,因此,当我们把多个dirac函数与其他函数相乘时,可以采用(设有函数 f ( x ) f(x) f(x)​​句柄)sign(f.*(dirac(x+1)-dirac(x-1))),然后plot即可得到可视的图像结果,如下图

测试方法采用:

  • 句柄函数不能看到具体值,而直接赋值y=sign(f.*(dirac(x+1)-dirac(x-1)))即可在结果中看到函数值,该写法可看到0和1

错误的plot方法:

  • 若改变一种思路,我们把冲激函数先写成f0=@(x)sign(dirac(x)),然后写成f.*(f0(x+1)-f0(x-1)),那么我们再去函数值中观察,即可看见0和Inf两种值,因此plot出来看不到冲激函数的图像,只能看到在 x = 1 x=1 x=1 x = − 1 x=-1 x=1​​​处的取值间隔

分段函数

例:

x=-20:0.01:20;
f=@(x)(x+1).*(x>-2&x<=-1)+(x<=0&x>-1)+2.*(x>0&x<1)+(-x+2).*(x>=1&x<2);

该分段函数分为四段,x区间分别为[-2,1],[-1,0],[0,1],[1,2],其中代码的上下区间位置无具体要求,先>再<或先<再>都可

重点在于 ≥ \geq ≤ \leq ,如果只有>和<​的话,分段的位置会归零,明显程度取决于x取值间隔的大小​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值