Fortran Coder

查看: 58|回复: 2

[其他行业算法] 请问这段代码怎么变为阶跃波

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
82 元
贡献
41 点
发表于 2018-11-21 21:55:01 | 显示全部楼层 |阅读模式
本帖最后由 懒癌症患者 于 2018-11-21 22:14 编辑

      #Function INTEGER INT
      #LOCAL INTEGER X
      #LOCAL INTEGER Y
       X=$in
       Y=INT(X+0.5)
      IF((Y.LE.$dim).AND.(Y.GE.0)) THEN
       $out=Y
      ELSEIF(Y.GT.$dim) THEN
       $out=$dim
      ELSEIF(Y.LT.0) THEN
       $out=0
      ENDIF

我输入正弦波,就是in,$dim是我设定的一个值。结果这段代码产生阶梯波,但我想要阶跃波,有个大神说我X值有问题,第一个信号结束的x值与第二个信号开始的x值不一致,不知道理解,X的值不是进行取整运算吗?怎么还有比较,有大神能详细解释吗?


回复

使用道具 举报

282

帖子

1

主题

0

精华

宗师

F 币
1563 元
贡献
1048 点
发表于 2018-11-22 10:03:33 | 显示全部楼层
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波,横坐标的间隔取尽量小。

6

帖子

2

主题

0

精华

入门

F 币
82 元
贡献
41 点
 楼主| 发表于 2018-11-22 10:44:56 | 显示全部楼层
li913 发表于 2018-11-22 10:03
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波, ...

好的,谢谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-12-10 17:09

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表