Fortran Coder

标题: 请问这段代码怎么变为阶跃波 [打印本页]

作者: 懒癌症患者    时间: 2018-11-21 21:55
标题: 请问这段代码怎么变为阶跃波
本帖最后由 懒癌症患者 于 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的值不是进行取整运算吗?怎么还有比较,有大神能详细解释吗?



作者: li913    时间: 2018-11-22 10:03
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波,横坐标的间隔取尽量小。
作者: 懒癌症患者    时间: 2018-11-22 10:44
li913 发表于 2018-11-22 10:03
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波, ...

好的,谢谢




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2