懒癌症患者 发表于 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的值不是进行取整运算吗?怎么还有比较,有大神能详细解释吗?


li913 发表于 2018-11-22 10:03:33

阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波,横坐标的间隔取尽量小。

懒癌症患者 发表于 2018-11-22 10:44:56

li913 发表于 2018-11-22 10:03
阶跃波是不可能的,它需要同一个点有两个值,这违背数学上函数的定义,也不符合实际。为了近似实现阶跃波, ...

好的,谢谢
页: [1]
查看完整版本: 请问这段代码怎么变为阶跃波