Fortran Coder

查看: 4369|回复: 2
打印 上一主题 下一主题

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

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
跳转到指定楼层
楼主
发表于 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的值不是进行取整运算吗?怎么还有比较,有大神能详细解释吗?


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

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

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
板凳
 楼主| 发表于 2018-11-22 10:44:56 | 只看该作者
li913 发表于 2018-11-22 10:03
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波, ...

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

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-25 16:26

Powered by Tencent X3.4

© 2013-2024 Tencent

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