强电磁环境下的抗干扰滤波算法的制作方法

文档序号:17627694发布日期:2019-05-10 23:50阅读:622来源:国知局
强电磁环境下的抗干扰滤波算法的制作方法

本发明涉及电磁滤波算法技术领域,具体涉及一种强电磁环境下的抗干扰滤波算法。



背景技术:

在工程实践和实验中,经常要对将被测温度、气体浓度、压力等物理量转换成的电压信号进行a/d采集处理计算并显示,但由于存在外界电磁干扰,尤其是高强度的空间辐射干扰,将会导致数据不停的跳变,非常不稳定。为了改善这种情况,有效的去除干扰,常会采用各种滤波算法。其中均值滤波算法是常用的一种,循环采集采样值n次,然后取其平均值,得到最终的值。这种滤波算法虽然简单,但是,由于干扰的存在,会使得这n个值中有部分值跳变比较大,偏离中心值较远,因此取平均值后,得到的均值距离真值偏差较大,并不能有效的去除干扰信号,滤波效果不能满足工业传感器产品在强电磁干扰环境中的应用。



技术实现要素:

有鉴于此,本发明的目的是提供一种强电磁环境下的抗干扰滤波算法,在连续测量并对被测温度、气体浓度、压力等物理量转换成的电压信号进行a/d采集处理计算的数据处理过程中,有效判别滤除由于群脉冲、空间电磁辐射等电磁环境干扰因素引起的测量异常数据,保证了测量结果的准确性。

本发明提供一种强电磁环境下的抗干扰滤波算法,包括步骤:

s1:建立用于存放传感器测量数据的数组d,其中,数组d的长度为n,且n≥3;

s2:设定传感器测量误差上限为δmax;分别设定第一趋势判别变量cequ、第二趋势判别变量cup和第三趋势判别变量cdown;设定测量显示值变量dshow;

s3:对数组d进行初始化;

s4:初始化cequ、cup和cdown;

s5:传感器采测量得到最新的数据dnew,对数组d进行更新;

s6:对数组d中的相邻元素进行趋势判断,并根据趋势判断结果更新cequ、cup或cdown;

s7:根据cequ、cup或cdown,判断数组d内是否存在受干扰异常数据;

若不存在,则将d[0]作为当前时刻的测量显示值赋值给dshow,进行显示传输;

若存在,则将前一时刻的测量显示值给dshow,将dshow赋值给数组d内所有元素,进行显示传输;

s8:重复步骤s4至s7,实现连续对传感器测量数据进行滤波。

进一步,所述步骤s6具体包括:

对数组d中的所有相邻元素进行大小比较,若相邻元素中前一个元素大于后一个元素与δmax之和,则cup数值加1,得到更新后的cup;若相邻元素中后一个元素大于前一个元素与δmax之和,则cdown数值加1,得到更新后的cdown;若相邻元素中既不满足前一个元素大于后一个元素与δmax之和,也不满足后一个元素大于前一个元素与δmax之和,则cequ数值加1,得到更新后的cequ。

进一步,所述步骤s7中根据cequ、cup或cdown,判断数组d内是否存在受干扰异常数据具体包括:

若cequ、cup两者之和不小于n-1,或者cequ、cdown两者之和不小于n-1,则数组d内不存在受干扰异常数据;

若cequ、cup两者之和小于n-1,并且cequ、cdown两者之和也小于n-1,则认为数组d内存在受干扰异常数据。

进一步,所述步骤s5具体包括:传感器采测量得到最新的数据dnew,依次令d[0]=d[1],d[1]=d[2],…,d[n-2]=d[n-1],d[n-1]=dnew,对数组d进行更新。

进一步,所述步骤s4中初始化cequ、cup和cdown具体包括:将cequ、cup和cdown均初始化为0。

进一步,所述步骤s3具体包括:将传感器启动测试第一次获得的测量数据dpre作为初始值赋值给数组d内的所有元素。

本发明的有益效果:本发明在连续测量并对被测温度、气体浓度、压力等物理量转换成的电压信号进行a/d采集处理计算的数据处理过程中,有效判别滤除由于群脉冲、空间电磁辐射等电磁环境干扰因素引起的测量异常数据,保证了测量结果的准确性,且方法合理简单,计算简便,在工业传感器产品在线测量方面具有很好的推广应用价值。

附图说明

下面结合附图和实施例对本发明作进一步描述:

图1为本发明的方法流程图;

具体实施方式

如图1所示,本发明提供的一种强电磁环境下的抗干扰滤波算法,包括步骤:

s1:建立用于存放传感器测量数据的数组d,其中,数组d的长度为n,且n≥3;n的取值应根据工业传感器产品的测量采样频率和响应时间要求综合确定,一般n的合理取值应10≤n≤100。在具体实施时根据采样频率和响应时间综合确定。

s2:设定传感器测量误差上限为δmax;分别设定第一趋势判别变量cequ、第二趋势判别变量cup和第三趋势判别变量cdown;设定测量显示值变量dshow;

s3:对数组d进行初始化;

s4:初始化cequ、cup和cdown;每进行一次趋势判断都需对cequ、cup和cdown进行初始化,以避免cequ、cup和cdown数据累积,对后续的趋势判断结果造成误差影响。

s5:传感器采测量得到最新的数据dnew,对数组d进行更新;

s6:对数组d中的相邻元素进行趋势判断,并根据趋势判断结果更新cequ、cup或cdown;

s7:根据cequ、cup或cdown,判断数组d内是否存在受干扰异常数据;

若不存在,则将d[0]作为当前时刻的测量显示值赋值给dshow,进行显示传输;

若存在,则将前一时刻的测量显示值给dshow,将dshow赋值给数组d内所有元素,进行显示传输;

s8:重复步骤s4至s7,实现连续对传感器测量数据进行滤波,有效避免了群脉冲、电磁辐射等干扰因素对测量结果准确性的影响。通过上述方法,在连续测量并对被测温度、气体浓度、压力等物理量转换成的电压信号进行a/d采集处理计算的数据处理过程中,有效判别滤除由于群脉冲、空间电磁辐射等电磁环境干扰因素引起的测量异常数据,保证了测量结果的准确性,保证了测量结果的准确性,且方法合理简单,计算简便,在工业传感器产品在线测量方面具有很好的推广应用价值。

所述步骤s6具体包括:

对数组d中的所有相邻元素进行大小比较,若相邻元素中前一个元素大于后一个元素与δmax之和,则cup数值加1,得到更新后的cup;若相邻元素中后一个元素大于前一个元素与δmax之和,则cdown数值加1,得到更新后的cdown;若相邻元素中既不满足前一个元素大于后一个元素与δmax之和,也不满足后一个元素大于前一个元素与δmax之和,则cequ数值加1,得到更新后的cequ。

所述步骤s7中根据cequ、cup或cdown,判断数组d内是否存在受干扰异常数据具体包括:

若cequ、cup两者之和不小于n-1,或者cequ、cdown两者之和不小于n-1,则数组d内不存在受干扰异常数据;

若cequ、cup两者之和小于n-1,并且cequ、cdown两者之和也小于n-1,则认为数组d内存在受干扰异常数据。通过根据相邻元素的大小比较结果,对cequ、cup和cdown进行更新,并根据cequ、cup和cdown对数组d中的测量数据变化趋势进行判断,从而判断是否存在与数组d中元素总体变化趋势相比,跳变比较大,偏离中心值较远的元素,此类元素即为受干扰异常数据。

本实施例中,为了实现连续滤波,对测量信号进行采集处理得到最新数据dnew,将数组d内的n个元素依次前移赋值,具体地,所述步骤s5具体包括:传感器采测量得到最新的数据dnew,依次令d[0]=d[1],d[1]=d[2],…,d[n-2]=d[n-1],d[n-1]=dnew,对数组d进行更新。通过上述方法,采用同一条件下,连续对物理量目标进行采样测量,对电磁环境下的工业传感器测量数据进行抗干扰滤波。有效避免了群脉冲、电磁辐射等干扰因素对测量结果准确性的影响。

所述步骤s4中初始化cequ、cup和cdown具体包括:将cequ、cup和cdown均初始化为0。每完成一次趋势判断,均需对cequ、cup和cdown进行初始化,避免了cequ、cup和cdown的值不断变大对趋势判断造成误差影响。

所述步骤s3具体包括:将传感器启动测试第一次获得的测量数据dpre作为初始值赋值给数组d内的所有元素。

实施例一:在矿用一氧化碳传感器数据处理mcu系统中,建立一个存放测量数据的数组d,长度为n,n=10;根据行业标准,其测量误差最大值为δmax为4,建立三个数据趋势变量cequ、cup、cdown;传感器上电后,数组d第一次获得测量值dpre,将dpre作为初始值赋值给数组d内的所有元素,即d[0]=d[1]=…=d[9]=dpre。对测量信号进行采集处理得到最新数据dnew,将数组d内的n个元素依次前移赋值,即d[0]=d[1],d[1]=d[2],…,d[8]=d[9],d[9]=dnew;数组d内10次测量数据结果依次对相邻两元素进行趋势判定,初始化变量cequ、cup、cdown都为0,若前一个元素大于后一个元素与δmax之和,则cup数值加1,若后一个元素大于前一个元素与δmax之和,则cdown数值加1,若非上述两种情况,则cequ数值加1,完成对数组d内n次测量数据结果的趋势判断;

假设一段时间测量后数组d内10个测量数据如下,10、11、10、11、11、15、20、30、45、70,则根据趋势判断cequ=5、cup=4、cdown=0,则cequ、cup两者之和等于9,认为数组d内不存在受干扰异常数据,则传感器最终测量显示值dshow=d[0]=10,进行显示并传输。所述mcu型号为stm32f103rbt6。

实施例二:

在甲烷传感器数据处理系统中,建立一个存放测量数据的数组d,长度为n,n=14;根据行业标准,其测量误差最大值为δmax为0.06,建立三个数据趋势变量cequ、cup、cdown;假设前一时刻的测量显示值为0.00,数组d内14个测量数据如下,0.00、0.00、0.03、0.15、0.28、0.19、0.10、0.03、0.00、0.00、0.00、0.00、0.00、0.00,则根据趋势判断cequ=8、cup=2、cdown=3,则cequ、cup两者之和等于10,cequ、cdown两者之和等于11,均小于13,则认为数组d内存在受干扰异常数据,则将最终测量显示值dshow赋值给数组d内每一个元素,d[0]=d[1]=d[2]=…=d[13]=dshow=0.00,进行显示并传输,即在接下来的14个时刻(包括当前时刻)均显示0.00;甲烷传感器数据处理系统采用型号为pic16f877单片机。本申请能够实现工业用传感器产品在连续测量的过程中因群脉冲、电磁辐射等空间干扰因素引起的测量异常数据有效判别和剔除,保证了测量结果的准确性。本方法逻辑合理,计算简便,在工业传感器在线测量方面具有很好的推广应用价值。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1