我编写了一个算法来计算信号中过零的数量。我的意思是一个值从 + 变为 - 的次数,反之亦然。
算法解释如下:
如果有以下元素:
v1 = {90, -4, -3, 1, 3}
然后将该值乘以它旁边的值。(i * i+1)
然后取符号值 sign(val) 确定这是正数还是负数。例子:
e1 = {90 * -4} = -360 -> sigum(e1) = -1
e2 = {-4 * -3} = 12 -> signum(e2) = 1
e3 = {-3 * 1} = -3 -> signum(e3) = -1
e4 = {1 * 3} = 3 -> signum(e4) = 1
因此,从负数变为正数的值的总数为 = 2 ..
现在我想把这个论坛的算法放到一个方程中,这样我就可以呈现它了。
我问了一个类似的问题,但真的很困惑,所以离开并考虑了一下并想出了(我认为方程式应该是什么样子)..这可能是错误的,好吧,可笑的错误。但这里是:
现在它背后的逻辑:
我传入一个 V (val)
我通过计算 (Vi * Vi+1) 得到符号总和的绝对值。符号 (Vi * Vi+1) 应该产生 -1, 1, ..., 值
当且仅当值为 -1 时(因为我只对穿越零的次数感兴趣,因此,零值。
这看起来是否正确,如果不是,任何人都可以提出改进建议吗?
谢谢 :)!
编辑:
现在这正确吗?