串口采集数据偶尔出现突变值

2019-07-18 02:21发布

本帖最后由 hejin515 于 2015-11-4 16:23 编辑

如图,程序是采集串口发送来的数据,处理后实时显示在波形图表上然后存入TXT文档。但是昨晚采集了一晚上,整体曲线是对的,但是发现有几个夸张的突变(如图,一晚上的室内温度变化)。现在想两种解决方法:一时看看谁知道我程序哪里有问题,所以出现了那么夸张的野值。二是,进行适当的滤波,比较前后两个温度值,如果差值太大就舍弃新值用上一次的值代替。但是不知道这种方法具体该如何实现。各位有何高见,请不吝赐教!多谢了!! 单通道调试程序.png


1103-04~14h.png



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
hejin515
1楼-- · 2019-07-18 05:46
 精彩回答 2  元偷偷看……
hejin515
2楼-- · 2019-07-18 06:04
谁知道方法二也行啊,怎么比较去除野值?
hejin515
3楼-- · 2019-07-18 09:46
有没有会的,看看啊 ?
ShuiMoLise
4楼-- · 2019-07-18 13:27
如果传感器发送的数据没有问题,估计还是程序有问题,程序周期性发生错误。你传感器发过来的数据帧有帧头帧尾吗,没有的话容易发生这种错误,尤其是数据帧是由多个字节组成,而且没有帧头帧尾的时候。你波特率别太高,太高的话虽然传输速度快了,但是容易受到干扰,如果非要用这么高波特率,要加校验,简单的如奇偶校验
hejin515
5楼-- · 2019-07-18 17:41
说到点子上 了,谢谢!数据有格式的:0xaa 0xxx 0xxx 0xxx 0xxx 0xff。AA是帧头,FF是帧尾,第二位是温度符号位,第三位是温度数据的高位,第四位是温度数据的低位,第五位是校验位,是第二三四位的和,但不知道这是哪种校验方式?还有,这个温度传感器的波特率115200是固定的,主动发送的,不需要发送指令就会自己盲发。它一秒钟可以发大概212组数据,但是因为温度变化不大,所以我采样的频率其实很低,两三秒一次就可以了。高手您再给看看,给我提点提点吧,感激不尽。
hejin515
6楼-- · 2019-07-18 18:46
 精彩回答 2  元偷偷看……

一周热门 更多>