在matlab中创建离散步长函数

时间:2017-01-26 07:48:33

标签: algorithm matlab

我使用以下代码在MATLAB中创建标准离散单位步进函数。

>> n = -5 : 5;
>> y = heaviside(n);
>> stem(n,y);

然而,这打印enter image description here我尝试了很多不同的变化,并尝试搞乱代码。但是我无法创建这个功能。优选地,我希望将功能集成在单个变量中,以便我可以进行更复杂的信号处理。关于我做错什么的任何想法?

2 个答案:

答案 0 :(得分:2)

这是Matlab文档中Heaveside步骤函数的定义。

  

heaviside(x)返回x的值0< 0,1表示x> 0和1/2,x = 0。

注意这个积分的结果,看看实现是否正确:

syms x
int(exp(-x)*heaviside(x), x, -Inf, Inf)

答案 1 :(得分:0)

注意heaviside在符号库中定义,它主要用于连续计算,如符号集成,傅里叶变换等。您也可以在离散设置中使用它,但x=0的行为是否与您所需要的一致取决于应用程序。

创建步骤函数(没有任何工具箱)的更简单方法是:

step1 = @(x) x>=0;
step2 = @(x) (sign(x)+1)/2;

figure(1);clf;
stem(-5:5,step1(-5:5)); 
hold on;
stem(-5:5,step2(-5:5),'rx'); 

而第一个在x=0从0跳到1,第二个与heaviside相似。