中值滤波在一维数据处理中的应用

中值滤波在一维数据处理中的应用


  滤波操作是单片机接受数据完之后的常用操作之一,中值滤波是用来处理椒盐噪声的常用操作。椒盐噪声即脉冲噪声,指数据接受到一个类似于脉冲一样的极大值或者极小值,例如在处理温度数据时,正常的温度数据都集中在14-30摄氏度。但有的时候会收到大于100摄氏度的极大值,滤除这种错误数据就可以采用中值滤波法来处理。
  中值滤波是一种常用的图像处理算法,但它也可以用在一维数据的滤波上。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
  具体的操作方案为取最近获取的5次数据,取其中值,将其作为当前获取的数值输出。具体实现的c语言代码如下

		//中值滤波,缺陷:会晚两帧的数据时间,并且拐点峰股值会偏差两帧数据
		//temp为传感器获取到的数值,temp5是最近的五次数值temprank5是经过排序后的最近的5次数值
		for(i=4;i>0;i--)
			temp5[i]=temp5[i-1];
		temp5[0]=temp;
		for(i=0;i<5;i++)//将temp5传给temprank5
			temprank5[i]=temp5[i];
		for(i=0;i<5;i++)//对temprank5进行冒泡排序
		{
	        for (j = 0; j < 5 - 1 - i; j++)
		        if (temprank5[j] > temprank5[j + 1])
		        {
		            x =temprank5[j];
		            temprank5[j] = temprank5[j + 1];
		            temprank5[j + 1] = x;
		        }
		}
		ADCData=temprank5[2]+0.5;//四舍五入取整
		//中值滤波结束
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值