%% Functions
function y=us(t) % continuous time unit step function
y=(sign(t)+1)/2;
end
function y=rect(t) % continuous time unit rectangle function
y=us(t+0.5) - us(t-0.5);
end
function y=tri(t) % continuous time unit triangle function
y = (t+1).*rect(t+0.5) + (-t+1).*rect(t-0.5);
end
function y=usD(n) % Discrete time unit step, n must be an integer!
y = 1.*(n>=0);
end
3条答案
按热度按时间u4vypkhs1#
这是来自MatLab文档的Heaveside阶跃函数的定义。
如果x<0,则Heaviside(X)返回值0,如果x>0,则返回值1,如果x=0,则返回值1/2。
请注意此积分的结果,以确定实施是否正确:
sulc1iza2#
请注意,
heaviside
是在符号库中定义的,它主要用于符号积分、傅里叶变换等连续计算。您也可以在离散设置中使用它,但x=0
的行为是否符合您的需要取决于应用程序。创建阶跃函数(不带任何工具箱)的更简单方法是:
而第一个在
x=0
处从0跳到1,第二个类似于heaviside
。8cdiaqws3#
我希望这些功能会有帮助,你正在寻找的是最后一个!