首页 > 解决方案 > 重复阶跃函数

问题描述

我正在尝试在 matlab 中创建一个信号,该信号将是一个最初关闭然后打开然后关闭的阶跃函数。但是,我需要在剩余的时间间隔内重复这个信号,并且需要重复这个步进函数三十次左右。

而不是每次打开和关闭时都写重载。我试图将 hevistep 函数放在 for 循环中,但收效甚微。我不认为 heaviestep 函数是为 for 循环设计的,有什么更好的方法来创建这个信号。

y = 0
    for a = 1:2:10
        x = heaviside(t-a) - heaviside(t-(a+1));
        y = y + x
    end

标签: matlab

解决方案


要获得重磅功能,您可以执行以下操作,t您的自变量在哪里,period您的周期在哪里,duty您的占空比(您想要高的周期分数)是哪里,并且shift是转移。

heavy =@(t, period, duty, shift) double( mod( t - shift , period ) < duty * period )

然后你可以做类似的事情

t = linspace(0,10,1E4);
plot(t , heavy( t , pi , 0.25 , pi/3 ) )

推荐阅读