打印

求程序

[复制链接]
1003|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2012-3-12 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们有一组数据,
例如:
(C语言方便,借一下C的方法表达)
data[20]={1,2,4,2,3,5,1,4,6,7,8,9,0,2,6,7,-1,-9,1,-20}

想要用一种方法计算数据的抖动频率(往复频率)。

然后我自己想了一个算法,就是:
   
  If (data(i) > data(i - 1)) Then
  Ady1 = 1
  Else
  Ady1 = -1
  End If
   
  If (data(i - 1) > data(i - 2)) Then
  Ady2 = 1
  Else
  Ady2 = -1
  End If
   
  Ady2 * Ady1 <0 说明数的增减方向有转向(抖动)


  If (Ady2 * Ady1 < 0) Then  

  ShakeY = ShakeY + 1 '抖动次数累加
   
  End If

但是这个方法有一个缺陷,那就是前面的抖动点会重复计算两次,而最后一次却不会。

所以最后结果:Label14 = Round(ShakeX / 2) 会有1HZ的误差。

谁能想到好的算法帮我解决这个问题?

相关帖子

沙发
无冕之王| | 2012-3-12 18:20 | 只看该作者
LZ的意思没表达清楚

使用特权

评论回复
板凳
dfsa| | 2012-3-13 19:37 | 只看该作者
估计高手都没有时间帮你编这个程序,LZ还得自立更生

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝