matlab - 重复阶跃函数
问题描述
我正在尝试在 matlab 中创建一个信号,该信号将是一个最初关闭然后打开然后关闭的阶跃函数。但是,我需要在剩余的时间间隔内重复这个信号,并且需要重复这个步进函数三十次左右。
而不是每次打开和关闭时都写重载。我试图将 hevistep 函数放在 for 循环中,但收效甚微。我不认为 heaviestep 函数是为 for 循环设计的,有什么更好的方法来创建这个信号。
y = 0
for a = 1:2:10
x = heaviside(t-a) - heaviside(t-(a+1));
y = y + x
end
解决方案
要获得重磅功能,您可以执行以下操作,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 ) )
推荐阅读
- python - 如何在图像上按顺序粘贴大量徽标?
- java - 如何从适配器类调用片段?
- c++ - QVTKOpenGLWidget 不响应信号,而同一 .ui 中的其他小部件会响应它
- java - 无法修改 REST Web 服务中的文本文件
- python - 服务器运行时如何启动命令管理?
- ag-grid - Ag-grid quickFilter 缓存首次搜索
- dc.js - 有没有办法在 dc.js 选择菜单中使用 optgroup?
- java - Spring migrate 2.0.2 to 2.1.4 Hibernate 验证器错误
- java - 如果 url 包含特殊字符,Java ImageIO.read() 会崩溃
- c# - Entity Framework Core - 包括多个级别而不返回所有数据