2019-07-18 02:21发布
ShuiMoLise 发表于 2015-11-6 20:48 关于终止符,千万别启用,不适合你现在的程序。 你说“如果某次校验发现数据不对,想用上一次的代替,或者直接舍去进行下次循环读取串口然后计算”,关于这个首先找出帧头帧尾就是确定数据是否有效的方法一,然后那个代码和校验就是确定这一帧数据发送过程中是否收到干扰出现错误。这两个解决了基本不会有问题。 现在说一下 ...
18442610 发表于 2015-11-7 17:40 数值突变可能是你的线路接触不紧密导致的信号变化
ShuiMoLise 发表于 2015-11-7 17:29 使用移位寄存器,你已经判断出当前值无效,再写入移位寄存器的值应该是上次的值,不是无效的值。还有要注意首次运行,移位寄存器里没有有效值,所以要判断是否是首次运行,
最多设置5个标签!
你说“如果某次校验发现数据不对,想用上一次的代替,或者直接舍去进行下次循环读取串口然后计算”,关于这个首先找出帧头帧尾就是确定数据是否有效的方法一,然后那个代码和校验就是确定这一帧数据发送过程中是否收到干扰出现错误。这两个解决了基本不会有问题。
现在说一下那个怎么用上一次的值替换,可以利用移位寄存器,本次的值先和移位寄存器里的值相减后取绝对值,然后看差值占原值的百分比,超过100%就认为数据无效把就使用上次的值
判断数据是否有突变好说,关键是有什么好的滤波方法。下面图中三通道的,是判断某一通道有突变值时,把该突变值用该通道的平均值代替,所以还是有些小毛刺,但是比滤波前好多了。下图中一个通道的,是直接判断出如果有突变,直接舍去,不进行显示也不写入TXT。但是我们老师不满意,那个用平均值代替突变值的还是有毛刺,看起来给人感觉很不好。那个去掉突变值不显示不存储的也不好,虽然看着曲线很完美,但是写入的文本会少一些时刻的温度。我测了一些,突变率大概是0.5%,可能是我程序时序有问题,但是这个真的很难发现,所以就行用滤波的方法处理。关于你说的移位寄存器的,我试过了,假设有突变值来,虽然这次比较通不过可以用上次的值代替,但是这个突变值会进入移位寄存器而不被删除,所以下次正常值来了和它比较肯定会被判断有突变,反而正常值会被这个突变值代替了。现在就是想想有啥好的滤波方法,不知道这个你有何高见。
我焊接的确实不是很好,但是我就放这里测一晚上的又没人动,应该不会吧。
把你说的想了很久,可能我对labview还不是很了解,感觉这个逻辑似乎不对啊。我是合移位寄存器里的值比较,所以怎么做到把正确的值写入移位寄存器然后再写入文本。搞这个滤波几天了,一直没想明白这个怎么处理。如果可以,烦请你稍具体说一下或者给个图吧,十分感谢!
一周热门 更多>