第7章智能仪器中的数据处理及算法_第1页
第7章智能仪器中的数据处理及算法_第2页
第7章智能仪器中的数据处理及算法_第3页
第7章智能仪器中的数据处理及算法_第4页
第7章智能仪器中的数据处理及算法_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.1 测量误差分类及处理方法测量误差分类及处理方法测量误差按照表示方法可分为绝对误差、相对误差和引用误差。测量误差按照表示方法可分为绝对误差、相对误差和引用误差。1 1)绝对误差)绝对误差 由测量所得到的被测量的值由测量所得到的被测量的值x x与其真值与其真值A A0 0之差称为绝对误差之差称为绝对误差, ,用用x x表示表示, ,即即x x= =x x - -A A0 0 因为测量结果因为测量结果x x总含有误差总含有误差, ,可能大于可能大于A A0 0, ,也可能小于也可能小于A A0 0, ,所所以以,x x是既有大小是既有大小, ,又有正负且有单位的数值又有正负且有单位的数值, ,

2、其大小和符号其大小和符号分别表示测量结果偏离真值的程度和方向。分别表示测量结果偏离真值的程度和方向。7.1.1测量误差分类测量误差分类第第7章智能仪器中的数据处理技术章智能仪器中的数据处理技术 A A0 0表示真值。实际应用中通常是用实际值表示真值。实际应用中通常是用实际值A A来代替真值来代替真值A A0 0。实际。实际值又称为约定真值值又称为约定真值, ,它是根据测量误差的要求它是根据测量误差的要求, ,使用高一级或几使用高一级或几级的标准仪器或计量器具测量所得之值级的标准仪器或计量器具测量所得之值, ,这时这时, ,上式可改写为上式可改写为 x x= =x x- -A A 这是绝对误差通

3、常使用的表达式。这是绝对误差通常使用的表达式。 与绝对误差的绝对值大小相等而符号相反的值称为修正值与绝对误差的绝对值大小相等而符号相反的值称为修正值, ,用用C C表示:表示: C C=-=-x x= =A A- -x x 对仪器进行定期检定(校准)时对仪器进行定期检定(校准)时, ,用标准仪器与受检仪器相对比用标准仪器与受检仪器相对比, ,获得修正值获得修正值, ,并将修正值以表格、曲线或公式的形式给出。这样并将修正值以表格、曲线或公式的形式给出。这样, ,在测量时在测量时, ,利用测量的结果与已知的修正值相加利用测量的结果与已知的修正值相加, ,即可得到被测即可得到被测量的实际值量的实际值

4、, ,即即A A= =x x+ +C C 例例7-17-1 一只量程为一只量程为10V10V的电压表的电压表, ,当用它进行测量时当用它进行测量时, ,测量指示测量指示值为值为7.5V7.5V。若检定时。若检定时,7.5V,7.5V刻度处的修正值为刻度处的修正值为-0.1V,-0.1V,求被测电求被测电压的实际值压的实际值U U。 解解U=7.5+(-0.1)=7.4VU=7.5+(-0.1)=7.4V2 2)相对误差)相对误差 绝对误差虽然可以说明测量结果偏离实际值的情况绝对误差虽然可以说明测量结果偏离实际值的情况, ,但不能确但不能确切反映测量的精确程度。例如切反映测量的精确程度。例如,

5、,分别测量两个频率分别测量两个频率, ,其中一个频其中一个频率为率为f f1 1=1000Hz,=1000Hz,其绝对误差其绝对误差ff1 1=1Hz=1Hz;另一个频率为;另一个频率为f f2 2=1000000Hz,=1000000Hz,其绝对误差其绝对误差ff2 2=10Hz=10Hz。l为了弥补绝对误差的不足为了弥补绝对误差的不足, ,引入相对误差的概念。引入相对误差的概念。 绝对误差与被测量真值的比值用百分数来表示绝对误差与被测量真值的比值用百分数来表示, ,称为相对称为相对误差误差, ,用用表示表示, ,即即%1000Ax 相对误差没有量纲相对误差没有量纲, ,只有大小及符号。由于

6、真值在实际测量只有大小及符号。由于真值在实际测量中是难以得到的中是难以得到的, ,因此通常用实际值因此通常用实际值A A代替真值代替真值A A0 0来表示相对来表示相对误差误差, ,用用A A来表示来表示, ,称为实际相对误差:称为实际相对误差: 在误差较小、要求不高的场合在误差较小、要求不高的场合, ,也可用测量值也可用测量值x x代替实际值代替实际值A A, ,由此得出示值相对误差由此得出示值相对误差, ,用用x x来表示:来表示: 在测量仪器中在测量仪器中, ,经常用绝对误差与仪器满刻度值经常用绝对误差与仪器满刻度值x xm m之比来表之比来表示相对误差示相对误差, ,称为引用相对误差(

7、或称满度相对误差)称为引用相对误差(或称满度相对误差), ,用用n n表示:表示:%100AxA%100 xxx%100mnxx 由于仪器在不同刻度上的绝对误差不完全相等由于仪器在不同刻度上的绝对误差不完全相等, ,故采用最大引故采用最大引用误差来衡量仪器的准确度则更为合适。即用误差来衡量仪器的准确度则更为合适。即 式中式中: :xxm m仪器在该量程范围内出现的最大绝对误差;仪器在该量程范围内出现的最大绝对误差; x xm m满刻度值;满刻度值; nmnm仪器在工作条件下的最大引用误差。仪器在工作条件下的最大引用误差。%100mmnmxx1 1)随机误差)随机误差 在相同条件下进行多次测量,

8、单次测量误差出现无规律的在相同条件下进行多次测量,单次测量误差出现无规律的随机变化,而多次测量误差服从统计规律且大多数按正态随机变化,而多次测量误差服从统计规律且大多数按正态分布,这种误差称为随机误差或偶然误差。随机误差反映分布,这种误差称为随机误差或偶然误差。随机误差反映了测量结果的精确度,随机误差越小,测量精确度越高。了测量结果的精确度,随机误差越小,测量精确度越高。根据测量误差的性质和特性根据测量误差的性质和特性,误差可分为误差可分为随机误差、系统误差和粗随机误差、系统误差和粗大误差大误差。2 2)系统误差)系统误差 在一定的条件下在一定的条件下, ,测量误差的数值(大小及符号)保持恒定

9、或测量误差的数值(大小及符号)保持恒定或按照一定的规律变化的误差称为系统误差。按照一定的规律变化的误差称为系统误差。 恒定不变的误差称为恒定系统误差恒定不变的误差称为恒定系统误差, ,例如例如, ,在校验仪器时在校验仪器时, ,标准标准表存在的固有误差、仪器的基准误差等。表存在的固有误差、仪器的基准误差等。 按一定规律变化的误差称为变化系统误差按一定规律变化的误差称为变化系统误差, ,例如例如, ,由仪器的零由仪器的零点漂移、放大倍数的漂移以及热电偶冷端随室温变化而引入点漂移、放大倍数的漂移以及热电偶冷端随室温变化而引入的误差等。的误差等。 系统误差决定了测量的准确度。系统误差越小系统误差决定

10、了测量的准确度。系统误差越小, ,测量结果越准测量结果越准确。确。3 3)粗大误差)粗大误差 粗大误差是指在一定的条件下粗大误差是指在一定的条件下, ,测量值明显地偏离实际值时测量值明显地偏离实际值时所对应的误差所对应的误差, ,简称为粗差。简称为粗差。 粗大误差是由读数错误、记录错误粗大误差是由读数错误、记录错误 、操作不正确、测量中、操作不正确、测量中的失误以及存在不被允许的干扰等原因造成的的失误以及存在不被允许的干扰等原因造成的, ,所以所以, ,粗大误粗大误差又称为疏失误差。差又称为疏失误差。 粗大误差明显地歪曲了测量结果粗大误差明显地歪曲了测量结果, ,就其数值而言就其数值而言, ,

11、它远远大于它远远大于随机误差和系统误差。随机误差和系统误差。7.1.2 克服误差的方法克服误差的方法一、克服系统误差的方法一、克服系统误差的方法系统误差是指在相同条件下多次测量同一量时,误差的系统误差是指在相同条件下多次测量同一量时,误差的绝对值和符号保持恒定或在条件改变时按某种确定的规绝对值和符号保持恒定或在条件改变时按某种确定的规律而变化的误差。对系统误差没有通用的处理方法,只律而变化的误差。对系统误差没有通用的处理方法,只能根据具体情况采取相应的措施。能根据具体情况采取相应的措施。1利用误差模型修正系统误差利用误差模型修正系统误差2利用校正数据表修正系统误差利用校正数据表修正系统误差3通

12、过曲线拟合来修正系统误差通过曲线拟合来修正系统误差1利用误差模型修正系统误差利用误差模型修正系统误差先通过分析来建立系统的误差模型,再由误差模型求出误差修先通过分析来建立系统的误差模型,再由误差模型求出误差修正公式。误差修正公式一般含有若干误差因子,修正时,先通正公式。误差修正公式一般含有若干误差因子,修正时,先通过校正技术把这些误差因子求出来,然后利用修正公式来修正过校正技术把这些误差因子求出来,然后利用修正公式来修正测量结果,从而削弱了误差的影响。测量结果,从而削弱了误差的影响。X X是输入电压(被测量),是输入电压(被测量),y y是是带有误差的输出电压(测量结带有误差的输出电压(测量结

13、果),果),是影响量(例如零点是影响量(例如零点漂移或干扰),漂移或干扰),i i是偏差量(例是偏差量(例如直流放大器的偏置电流),如直流放大器的偏置电流),K K是影响特性(例如放大器增益是影响特性(例如放大器增益变化)。变化)。)yx(Ky21RyiRyy)R1R1ik1(yx2101bybx(1)零点校正:零点校正:0010byb (2)增益校正:增益校正:011bybE (3)实际测量:实际测量:01001)(yyyyEbybx 011yyEb 0101yyEb 2 利用校正数据表修正系统误差利用校正数据表修正系统误差如果对系统误差的来源及仪器工作原理缺乏充分的认识而不能建立如果对系统

14、误差的来源及仪器工作原理缺乏充分的认识而不能建立误差模型时,可以通过建立校正数据表的方法来修正系统误差。误差模型时,可以通过建立校正数据表的方法来修正系统误差。(1 1)在仪器的输入端逐次加入一个个已知的标准电压)在仪器的输入端逐次加入一个个已知的标准电压x x1 1,x,x2 2,.,x,.,xn n,并实测出对应的测量结果并实测出对应的测量结果y y1 1,y,y2 2,y,yn n。(2 2)如果将实测的)如果将实测的y yi i(i=1,2,n)(i=1,2,n)值对应于存储器中的某一区域,值对应于存储器中的某一区域,y yi i作为存储器中的一个地址,再把对应的作为存储器中的一个地址

15、,再把对应的x xi i值存入其中,这就在存值存入其中,这就在存储器中建立了一张校准数据表。储器中建立了一张校准数据表。(3 3)实际测量时,令微处理器根据实测的)实际测量时,令微处理器根据实测的y yi i去访问内存,读出其去访问内存,读出其中的中的x xi i。x xi i即为经过修正的测量值。即为经过修正的测量值。(4 4)若实际测量的)若实际测量的y y值介于某两个标准点值介于某两个标准点y yi i和和y yi+1i+1之间,为了减少之间,为了减少误差,还要在查表基础上作内插计算来进行修正。误差,还要在查表基础上作内插计算来进行修正。线性内插:线性内插:1 iiyyy)yy(yyxx

16、xxii1ii1ii 3通过曲线拟合来修正系统误差通过曲线拟合来修正系统误差曲线拟和是指从曲线拟和是指从n n对测定数据(对测定数据(xi,yixi,yi)中,求得一个函数)中,求得一个函数f(x)f(x)来作为实际函数的近似表达式。来作为实际函数的近似表达式。曲线拟和的实质就是找出一个简单的、便于计算机处理的近似曲线拟和的实质就是找出一个简单的、便于计算机处理的近似表达式来代替实际的非线性关系。表达式来代替实际的非线性关系。采用曲线拟和对测量结果进行修正的方法是,首先定出采用曲线拟和对测量结果进行修正的方法是,首先定出f(x)f(x)的的具体形式,然后再通过实测值进行选定函数的数值计算,求出

17、具体形式,然后再通过实测值进行选定函数的数值计算,求出精确的测量结果。精确的测量结果。曲线拟和的方法分为连续函数拟和和分段曲线拟和两种。曲线拟和的方法分为连续函数拟和和分段曲线拟和两种。 随机误差通常是由于仪器在测量过程中的一系列互不相关的随机误差通常是由于仪器在测量过程中的一系列互不相关的独立因素独立因素, ,如外界电磁场的变化、温度的变化、空气的扰动、如外界电磁场的变化、温度的变化、空气的扰动、大地的微震以及随机干扰信号对测量值的综合影响所造成的。大地的微震以及随机干扰信号对测量值的综合影响所造成的。相对于一次测量而言相对于一次测量而言, ,随机误差是没有一定规律的。如上所述随机误差是没有

18、一定规律的。如上所述, ,当测量次数足够多时当测量次数足够多时, ,测量结果中的随机误差服从一定的统计测量结果中的随机误差服从一定的统计规律规律, ,而且大多数按正态分布。因此而且大多数按正态分布。因此, ,消除随机误差最为常用的消除随机误差最为常用的方法是取多次测量结果的算术平均值方法是取多次测量结果的算术平均值, ,即即NiixNx11(7-11) 二、随机误差的处理方法二、随机误差的处理方法式中式中,N为测量次数为测量次数, xi(i=1,2,n)为测量值。显然为测量值。显然,N越大越大,x就越接近就越接近真值真值,但所需要的测量时间也越长。但所需要的测量时间也越长。三、粗大误差的处理方

19、法三、粗大误差的处理方法粗大误差是指在一定的测量条件下,测量值明显的偏离实际粗大误差是指在一定的测量条件下,测量值明显的偏离实际值所形成的误差。粗大误差明显的歪曲了测量结果,应予以值所形成的误差。粗大误差明显的歪曲了测量结果,应予以剔除。在测量次数比较多时(剔除。在测量次数比较多时(N20N20),测量结果中的粗大),测量结果中的粗大误差宜采用莱特准则判断。若测量次数不够多时,宜采用格误差宜采用莱特准则判断。若测量次数不够多时,宜采用格拉布斯准则。拉布斯准则。当对仪器的系统误差采取了有效技术措施后,对于测量过程当对仪器的系统误差采取了有效技术措施后,对于测量过程中所引起的随机误差和粗大误差一般

20、可按下列步骤处理。中所引起的随机误差和粗大误差一般可按下列步骤处理。(5 5)如果判断存在粗大误差,给予剔除,然后重复上述步骤(每次只允许剔)如果判断存在粗大误差,给予剔除,然后重复上述步骤(每次只允许剔除其中最大一个)。如果判断不存在粗大误差,则当前算术平均值、各项剩余除其中最大一个)。如果判断不存在粗大误差,则当前算术平均值、各项剩余误差及标准偏差估计值分别为误差及标准偏差估计值分别为 NiixNx11xxvii NiivN1211 iiGv aNiixaNx11xxvii aNiivaN1211 A为坏值个数为坏值个数(1)求测量数据的算术平均值)求测量数据的算术平均值(2)求各项的剩余

21、误差)求各项的剩余误差(3)求标准偏差)求标准偏差(4)判断粗大误差(坏值)判断粗大误差(坏值)G为系数,若测量次数足够多,可采用莱特准则判断,为系数,若测量次数足够多,可采用莱特准则判断,取取G=3,若测量次数不多,宜采用格拉布斯准则判断,若测量次数不多,宜采用格拉布斯准则判断,G需要通过查表求出。需要通过查表求出。7.2 常用的数字滤波处理常用的数字滤波处理数字滤波:数字滤波:即通过一定的计算程序,对采集的数据进行某种处理,即通过一定的计算程序,对采集的数据进行某种处理,从而消除或减弱干扰和噪声的影响,提高测量的可靠性和精度。从而消除或减弱干扰和噪声的影响,提高测量的可靠性和精度。数字滤波

22、的优点数字滤波的优点: :无需硬件,可靠性高,不存在阻抗匹配问题。无需硬件,可靠性高,不存在阻抗匹配问题。用软件算法实现,因此可以使多个输入通道共用一个软件用软件算法实现,因此可以使多个输入通道共用一个软件“滤波器滤波器”,降低了仪器硬件成本。,降低了仪器硬件成本。适当改变软件滤波器的滤波程序或运算参数,就能方便的改适当改变软件滤波器的滤波程序或运算参数,就能方便的改变滤波特性,对于低频、脉冲干扰、随机噪声特别有效变滤波特性,对于低频、脉冲干扰、随机噪声特别有效常用的数字滤波算法常用的数字滤波算法有:程序判断、中值滤波、算术平均滤波、递有:程序判断、中值滤波、算术平均滤波、递推平均滤波、加权递

23、推平均滤波、一阶惯性滤波和复合滤波算法等。推平均滤波、加权递推平均滤波、一阶惯性滤波和复合滤波算法等。随机误差随机误差是由窜入仪器的随机干扰所引起的,这种误差是指在相同是由窜入仪器的随机干扰所引起的,这种误差是指在相同条件下同一量时,其大小和符号作无规则的变化而无法预测,但是条件下同一量时,其大小和符号作无规则的变化而无法预测,但是在多次测量中他是符合统计规律的,而且大多数按正态分布。在多次测量中他是符合统计规律的,而且大多数按正态分布。7.2.1 克服大脉冲干扰的数字滤波法克服大脉冲干扰的数字滤波法 克服由仪器外部环境偶然因素引起的突变性扰动或仪器内部克服由仪器外部环境偶然因素引起的突变性扰

24、动或仪器内部不稳定引起误码等造成的尖脉冲干扰,是仪器数据处理的第不稳定引起误码等造成的尖脉冲干扰,是仪器数据处理的第一步。通常采用简单的非线性滤波法,包括限幅滤波、中值一步。通常采用简单的非线性滤波法,包括限幅滤波、中值滤波等。滤波等。一、程序判断法一、程序判断法 21112,nnnnnnnnnnyyyyyayyayyy或或程序判断法又称限幅滤波,由于测控系统存在随机脉冲干扰,或程序判断法又称限幅滤波,由于测控系统存在随机脉冲干扰,或由于变送器不可靠而将脉冲干扰引入输入端,从而造成测量信号由于变送器不可靠而将脉冲干扰引入输入端,从而造成测量信号的严重失真。对于这种随机干扰,限幅滤波是一种十分有

25、效的方的严重失真。对于这种随机干扰,限幅滤波是一种十分有效的方法。法。其基本方法:比较相邻(其基本方法:比较相邻(n和和n-1时刻)的两个采样值时刻)的两个采样值yn和和yn-1,如果如果他们的差值过大,超过了参数可能的最大变化范围,则认为发生他们的差值过大,超过了参数可能的最大变化范围,则认为发生了随机干扰,并视后一次采样值了随机干扰,并视后一次采样值yn为非法值,应予剔除。为非法值,应予剔除。yn作废后,作废后,可以用可以用yn-1替代;或用递推方法由替代;或用递推方法由yn-1,yn-2来近似推出,其相应算法来近似推出,其相应算法为:为:通常按参数可能的最大变化速度通常按参数可能的最大变

26、化速度Vmax及采样周期及采样周期T决定决定a值,即值,即a=Vmax*T程序程序【7-2】限幅滤波子程序。】限幅滤波子程序。假设从假设从8位位AD中读取数据,子程序为中读取数据,子程序为get_ad()。()。/* A值可以根据实际情况调整,值可以根据实际情况调整,Value为上次采样的有效值,为上次采样的有效值,new_value为当前采样值,滤波程序返回本次采样的有效值为当前采样值,滤波程序返回本次采样的有效值*/#define A 10 /设置两次采样允许的最大偏差值设置两次采样允许的最大偏差值char value;/上次采样后的有效值变量上次采样后的有效值变量char filter(

27、)()char new_value; /本次采样值变量本次采样值变量 new_value=get_ad();();/读入本次采样值读入本次采样值 if(new_value- value)A)|(value - new_value)A) /是否超出最大偏是否超出最大偏差值差值return value; /如果超出,返回上次的有效值作为本次的有效值如果超出,返回上次的有效值作为本次的有效值else return new_value;/如果没有超出,返回本次的采样值作为本如果没有超出,返回本次的采样值作为本次的有效值次的有效值二、中值滤波二、中值滤波中值滤波是一种典型的非线性滤波器,它运算简单,在滤

28、除中值滤波是一种典型的非线性滤波器,它运算简单,在滤除脉冲噪声的同时可以很好地保护信号的细节信息。对某一被脉冲噪声的同时可以很好地保护信号的细节信息。对某一被测参数连续采样测参数连续采样n次(一般次(一般n应为奇数),然后将这些采样值应为奇数),然后将这些采样值进行排序,选取中间值为本次采样值。这种方法能有效克服进行排序,选取中间值为本次采样值。这种方法能有效克服因偶然因素引起的波动干扰,对温度、液位等缓慢变化的被因偶然因素引起的波动干扰,对温度、液位等缓慢变化的被测参数,有良好的滤波效果。缺点是对流量、速度等快速变测参数,有良好的滤波效果。缺点是对流量、速度等快速变化的参数不宜使用。化的参数

29、不宜使用。中值滤波程序主要由数据排序和取中间值两步分组成。数据中值滤波程序主要由数据排序和取中间值两步分组成。数据排序可采用几种常规的排序方法,如冒泡法、沉底法等排序可采用几种常规的排序方法,如冒泡法、沉底法等【例【例7-3】中值滤波子程序。】中值滤波子程序。/* N值可根据实际情况调整,排序采用冒泡法值可根据实际情况调整,排序采用冒泡法*/ #define N 11 /设置连续采样的次数设置连续采样的次数 char filter() char value_bufN, count, i, j, temp; for(count=0;countN;count+)/N个采样值个采样值 Value_b

30、ufcount=get_ad(); delay(); for(j=1;jN-1;j+) /冒泡排序,由小到大冒泡排序,由小到大 for(i=0;i value_bufi+1) temp= value_bufi; value_bufi= value_bufi+1 ; value_bufi+1=temp; return value_buf (N-1)/2; /将排序后的中间值作为最后结果将排序后的中间值作为最后结果 7.2.2 抑制小幅度高频噪声的平均滤波法抑制小幅度高频噪声的平均滤波法 对于小幅度高频电子噪声包括电子器件热噪声、对于小幅度高频电子噪声包括电子器件热噪声、A/D量化量化噪声等,通常

31、采用具有低通特性的线性滤波器进行数据处噪声等,通常采用具有低通特性的线性滤波器进行数据处理,如算数平均滤波法、滑动平均滤波法、加权滑动平均理,如算数平均滤波法、滑动平均滤波法、加权滑动平均滤波法等。滤波法等。最基本的平均滤波程序是算术平均滤波程序。最基本的平均滤波程序是算术平均滤波程序。N1iixN1x一、算术平均滤波一、算术平均滤波算术平均滤波对滤除混杂在被测信号上的随机干扰非常有效。算术平均滤波对滤除混杂在被测信号上的随机干扰非常有效。一般讲,采样次数一般讲,采样次数N N愈大,滤除效果愈好,但系统的灵敏度要下愈大,滤除效果愈好,但系统的灵敏度要下降。为了提高运算速度,程序中常用移位来代替

32、除法,因此降。为了提高运算速度,程序中常用移位来代替除法,因此N N一一般取般取4 4,8 8,1616等等2 2的整数幂。的整数幂。算术平均滤波的缺点是:对于测量速度较慢或要求数据计算速算术平均滤波的缺点是:对于测量速度较慢或要求数据计算速度较快的实时控制不适用;比较浪费度较快的实时控制不适用;比较浪费RAM空间。空间。 ORG 0000H LJMP FILT3ORG4000HFILT3: CLRA;清累加和清累加和MOVR2,AMOVR3,AMOVR0,#30H;指向第一个采样值指向第一个采样值FILT30:MOVA,R0;取一个采样值取一个采样值ADDA,R3MOVR3,ACLRAADD

33、C A,R2MOVR2,AINCR0CJNER0,#38H,FILT30;累加完累加完8次次MOVR0,#03HFILT31:CLRCMOVA,R2RRCAMOVR2,AXCHA,R3RRCAMOVR3,ADJNZR0,FILT31RET; ;设设8 8次采样值依次存放在次采样值依次存放在30H30H37H37H的连续单元中,的连续单元中,; ;累加和存放在累加和存放在R2,R3R2,R3中中; ;平均值求出后,保留在累加器平均值求出后,保留在累加器A A中。中。【例【例7-67-6】算术平均滤波子程序。】算术平均滤波子程序。 / /* * N N为进行平均运算的每组采样值的数量为进行平均运算

34、的每组采样值的数量* */ / #define N 12#define N 12 / /设置每组参与平均运算的采样值个数设置每组参与平均运算的采样值个数 char filterchar filter()() intint sum=0sum=0; /求和变量,用于存储采样值的累加值求和变量,用于存储采样值的累加值 char countchar count; forfor(count=0;countN;count+count=0;countN;count+) sum+=get_adsum+=get_ad();(); delaydelay();(); returnreturn(charchar)()

35、(sum/Nsum/N);); /将累加值进行平均计算作为返回值将累加值进行平均计算作为返回值 为了克服算术平均滤波速度较慢的缺点,采用移动平均滤为了克服算术平均滤波速度较慢的缺点,采用移动平均滤波。即先在波。即先在RAM中建立一个数据缓冲区,依顺序存放中建立一个数据缓冲区,依顺序存放N次次采样数据,然后每采进一个新数据就将最早采集的数据去采样数据,然后每采进一个新数据就将最早采集的数据去掉,最后再求出当前掉,最后再求出当前RAM缓冲区中的缓冲区中的N个数据的算术平均个数据的算术平均值或加权平均值。这样每进行一次采样,就可计算出一个值或加权平均值。这样每进行一次采样,就可计算出一个新的平均值,

36、即测量数据取一丢一,测量一次便计算一次新的平均值,即测量数据取一丢一,测量一次便计算一次平均值,大大加快了数据处理的能力。平均值,大大加快了数据处理的能力。这种数据存放方式可以采用环形这种数据存放方式可以采用环形队列结构来实现。设环形队列地队列结构来实现。设环形队列地址为址为40H4FH共共16个单元,用个单元,用R0作队尾指示。作队尾指示。二、移动平均滤波二、移动平均滤波移动平均滤波:移动平均滤波:FLT30:ACALL INPUT ;采样值放入;采样值放入A中中 MOV R0,A ;排入队尾;排入队尾 INC R0 ;调整队尾指针;调整队尾指针 MOV A,R0 ANL A,#4FH MO

37、V R0,A;建新队尾指针;建新队尾指针 MOV R1,#40H;初始化;初始化 MOV R2,#00H MOV R3,#00HFLT31:MOV A,R1;取一个采样值;取一个采样值 ADD A,R3;累加到;累加到R2,R3中中 MOV R3,A CLR A ADDC A,R2 MOV R2,A INC R1 CJNE R1,#50H,FLT31;累计完;累计完16次次 MOVR0,#04HFILT32:CLRC MOV A,R2 RRCA MOV R2,A XCHA,R3 RRCA MOV R3,A DJNZ R0,FILT32 RETINPUT: MOV A,R7 RET 【例【例7-

38、7】滑动平均滤波子程序。】滑动平均滤波子程序。 /* 缓冲队列长度缓冲队列长度N可以依据情况的不同进行改变可以依据情况的不同进行改变*/ #define N 12 /设置先进先出队列的变量设置先进先出队列的变量 char value_bufN;/先进先出队列变量先进先出队列变量 char filter()() char count; int sum=0; value_bufi+=get_ad();(); for(count=0;countN;count+) sum+= value_bufcount; return(char)()(sum/N);); 7.2.3 复合滤波法复合滤波法 在实际应用

39、中,有时既要消除大幅度的脉冲干扰,又要做数在实际应用中,有时既要消除大幅度的脉冲干扰,又要做数据平滑。因此常把前面介绍的两种以上的方法结合起来使用,据平滑。因此常把前面介绍的两种以上的方法结合起来使用,形成复合滤波。包括:去极值平均滤波算法,限幅平均滤波形成复合滤波。包括:去极值平均滤波算法,限幅平均滤波法,限幅消抖滤波法等。法,限幅消抖滤波法等。 一、去极值平均滤波算法一、去极值平均滤波算法算术平均滤波对抑制随机干扰效果较好,但对脉冲干扰的抑制能算术平均滤波对抑制随机干扰效果较好,但对脉冲干扰的抑制能力较弱,明显的脉冲干扰会使平均值远离实际值。而中值滤波对力较弱,明显的脉冲干扰会使平均值远离

40、实际值。而中值滤波对脉冲干扰的抑制能力却非常有效,因而可以将两者结合起来形成脉冲干扰的抑制能力却非常有效,因而可以将两者结合起来形成去极值平均滤波,也称中值平均滤波滤波。具体算法是:连续采去极值平均滤波,也称中值平均滤波滤波。具体算法是:连续采样样N次,去掉一个最大值,去掉一个最小值,再求余下次,去掉一个最大值,去掉一个最小值,再求余下N-2个采个采样值的平均值,样值的平均值, )yyy(2N1yN1iminmaxi 为了节省计算时间,为了节省计算时间,N-2应为应为2的整数幂(如的整数幂(如2、4、8等),等),因而常取因而常取N为为4、6、10等。此等。此外,对于快速变化的被测量,外,对于

41、快速变化的被测量,可以先连续采样可以先连续采样N次,把各采次,把各采样值存于缓冲区,然后进行滤样值存于缓冲区,然后进行滤波运算;对于慢变化的被测量,波运算;对于慢变化的被测量,可以一边采样一边运算处理,可以一边采样一边运算处理,这时不必在这时不必在RAM中开辟数据缓中开辟数据缓存区。存区。ORG 0000HLJMP MAINORG 4000HMAIN:CLR AMOV R2,A;0放最大寄存器放最大寄存器R2MOV R6,AMOV R7,A;0放累加和寄存器放累加和寄存器R6,R7MOV R4,#0FFH;FFH放最大寄存器放最大寄存器R4MOV R0,#04HDAV1:NOP ;LCALL

42、RDXP ;读读A/D结果到结果到A(采样子程序采样子程序)MOV R1,A;采样数据存采样数据存R1ADDA,R7; ;要求连续采样要求连续采样4 4次,去掉其中最大、最小值,次,去掉其中最大、最小值,; ;求剩下两数据的平均值求剩下两数据的平均值;R2;R2放最大值,放最大值,R4R4放最小值放最小值;R6,R7;R6,R7放累加和及最后结果。放累加和及最后结果。CLRCMOV A,R7SUBB A,R2MOV A,R6SUBB A,#00HMOV A,R7SUBB A,R4MOV A,R6SUBB A,#00H CLR C RRC AMOV R6,A MOV A,R7RRC AMOV R

43、7,ARET MOVR7,AMOV A,#00HADDCA,R6 MOV R6,ACLRCMOV A,R2SUBB A,R1JNCDAV2MOV A,R1MOV R2,ADAV2:CLRCMOV A,R1SUBB A,R4JNCDAV3MOV A,R1MOV R4,ADAV3:DJNZ R0,DAV1【例7-8】去极值平均滤波法子程序。/* 采样值N为每组采样值的数量,依据实际情况可以改变*/#define N 12 /设置每组采样值的数量char filter()char count,i,j;char value_bufN; /缓冲N个采样值的存储变量 int sum=0;/求和变量,用于存

44、储采样值的累加值for (count=0;countN;count+) value_bufcount =get_ad(); delay();for (j=1;jN-1;j+) /冒泡法排序,由小到大 for (i=0;i value_bufi+1) temp= value_bufi; value_bufi= value_bufi+1; value_bufi+1 = temp; for(count=1;countN-1;count+) sum+= value count;return (char)(sum/(N-2);7.2.4 低通数字滤波低通数字滤波X(t)y(t)RC低通滤波器)t ( x

45、)t ( ydt)t (dyRCyn =y (nt),xn=x (nt)数字化处理数字化处理若若t足够小,则上式近似为:足够小,则上式近似为:1babyaxytRC1tRCbtRC11aytRCxytRC1)tn( x)tn( ytt)1n(y)tn( yRC1nnn1nnn,则,令)即(将描述普通硬件将描述普通硬件RCRC低通滤波器特性的微分方程用差分方程来表低通滤波器特性的微分方程用差分方程来表示,便可用软件算法来模拟硬件滤波器的功能。示,便可用软件算法来模拟硬件滤波器的功能。)()1()1()(naXnYnY 式中式中X(n): 本次采样值本次采样值Y(n): 本次滤波的输出值本次滤波的

46、输出值Y(n-1):上次滤波的输出值上次滤波的输出值当当t 足够小,足够小,=T/:滤波平滑系数滤波平滑系数,远小于远小于1T:采样周期采样周期本次滤波的输出值本次滤波的输出值y(n) 主要取决于上次滤波的输出值主要取决于上次滤波的输出值y(n-1) 。本次采样值对滤波的输出值贡献比较小本次采样值对滤波的输出值贡献比较小,这就模拟了具有较大惯这就模拟了具有较大惯性的低通滤波器功能。低通数字滤波对滤除变化非常缓慢的被测性的低通滤波器功能。低通数字滤波对滤除变化非常缓慢的被测信号中的干扰是很有效的。硬件模拟滤波器在处理低频时信号中的干扰是很有效的。硬件模拟滤波器在处理低频时,电路电路实现起来很困难

47、实现起来很困难,而数字滤波器则不存在这个问题。而数字滤波器则不存在这个问题。一阶惯性滤波子程序一阶惯性滤波子程序设设Yn-1在在DATA1为首地址的单元中,为首地址的单元中,Xn在在DATA2为首地址的单元为首地址的单元中,均为双字节。取中,均为双字节。取a=0.25,b=0.75,滤波结果在,滤波结果在R2,R3中。中。FOF: MOV R0,#DATA1MOV R1,#DATA2CLRC ;0.5Yn-1存入存入R2,R3INCR0MOV A,R0RRCAMOV R2,ADECR0 MOV A,R0RRCAMOV R3,AMOV A,R0;Xn+Yn-1 MOV R7,AMOV A,R1A

48、DDA,R7 MOV R7,AINCR0 INCR1MOV A, R0 MOV R6,AMOV A,R1 ADDC A,R6 MOV R6,ACLR CRRCA;(Xn+Yn-1)*0.5,存入,存入R6,R7MOV R6,AMOV A,R7RRCAMOV R7,ACLRC;(Xn+Yn-1)*0.25MOV A,R6RRCAMOV R6,AMOV A,R7RRCAADDA,R3;0.25(Xn+Yn)+0.5Yn-1存入存入R2,R3MOV R3,AMOV A,R6ADDCA,R2MOV R2,ARET 【例【例7-12】一阶滞后滤波法子程序。一阶滞后滤波法子程序。 #define a 0.

49、25 /定义加权系数定义加权系数 char value; /上一个采样值变量上一个采样值变量 char filter()() char new_value; /本次采样值变量本次采样值变量 new_value=get_ad();(); return(1-a)*value+a* new_value; /返回的返回的本次滤波结果本次滤波结果 仪器采集的数据并不等于原来带有量纲的参数值,它仅仅对应仪器采集的数据并不等于原来带有量纲的参数值,它仅仅对应于参数的大小,必须把它转换成带有量纲的数值后才能显示、于参数的大小,必须把它转换成带有量纲的数值后才能显示、打印输出和应用,这种转换就是工程量变换,又称

50、标度变换。打印输出和应用,这种转换就是工程量变换,又称标度变换。 例:例:被测温度为被测温度为100,经热电偶转换成热电势,再经放大和,经热电偶转换成热电势,再经放大和A/D转换得到数字量为转换得到数字量为35,则这个,则这个A/D转换结果转换结果35与与100温度温度虽然是对应的,但数值上并不相等,因此不能将其当作温度值虽然是对应的,但数值上并不相等,因此不能将其当作温度值去显示或打印,必须把去显示或打印,必须把A/D转换结果转换结果35变成供显示或打印的温变成供显示或打印的温度值度值100,这个变换就是数字显示的标度变换。,这个变换就是数字显示的标度变换。7.3 智能仪器的标度变换技术智能

51、仪器的标度变换技术一、线性标度变换一、线性标度变换 7.3.1 标度变换的硬件实现方法标度变换的硬件实现方法对于不含任何非线性环节的测量通道,对于不含任何非线性环节的测量通道,A/D转换结果转换结果Di与被测与被测量量xi=x0Ni存在如下线性关系:存在如下线性关系:FSi0FSiFSiiD/ENksxD/EksxD/EkuD式中:式中:s为传感器灵敏度(即被测量转换成电压的转换系数),为传感器灵敏度(即被测量转换成电压的转换系数),E为为A/D转换器满量程输入电压,转换器满量程输入电压,DFS为为A/D转换器满量程输出数字转换器满量程输出数字量。只要适当选择和调整放大器增益量。只要适当选择和

52、调整放大器增益k,使它满足以下条件,使它满足以下条件1D/EksxFS0就可使就可使A/D转换结果转换结果Di与被测量与被测量xi的数值的数值Ni相等。一般可通过调相等。一般可通过调整线性电位器即可实现。整线性电位器即可实现。二、非线性通道的标度变换二、非线性通道的标度变换 硬件方法实现非线性通道变换的解决方法是在测量通道的非硬件方法实现非线性通道变换的解决方法是在测量通道的非线性环节之后,线性环节之后,A/D转换器之前,串联一个转换器之前,串联一个“模拟线性校正模拟线性校正电路电路”,只要该校正电路的输入,只要该校正电路的输入/输出特性曲线与非线性环节输出特性曲线与非线性环节的输入的输入/输

53、出特性曲线成反函数关系,就可使输出特性曲线成反函数关系,就可使A/D转换结果与转换结果与被测量呈线性关系,这样就可照线性通道的标度变换方法进被测量呈线性关系,这样就可照线性通道的标度变换方法进行标度变换。行标度变换。 例如一个流量测量仪表,采用差压式流例如一个流量测量仪表,采用差压式流 硬件实现法的优点是简单、直观、实时性强;缺点是增加硬件实现法的优点是简单、直观、实时性强;缺点是增加硬件费用,占用线路板面积,系统受温度、湿度等环境的硬件费用,占用线路板面积,系统受温度、湿度等环境的变化而漂移,使用上有很大的局限性。因此,在一般不要变化而漂移,使用上有很大的局限性。因此,在一般不要求进行实时控

54、制的检测系统中,应尽可能的采用软件方法求进行实时控制的检测系统中,应尽可能的采用软件方法进行标度变换。进行标度变换。7.3.2 标度变换的软件实现方法标度变换的软件实现方法软件实现法在智能仪表测量信号的标度变换中最为常见,它实软件实现法在智能仪表测量信号的标度变换中最为常见,它实现灵活,适用性广,能克服硬件实现标度变换的局限性。现灵活,适用性广,能克服硬件实现标度变换的局限性。实现的办法一般是借助于数学解析表达式来编写程序,从而达实现的办法一般是借助于数学解析表达式来编写程序,从而达到变换定标的目的。到变换定标的目的。一、线性变换公式一、线性变换公式 这种标度变换的前提是参数值与这种标度变换的

55、前提是参数值与A/D转换结果成线性关系,转换结果成线性关系,变换公式如下:变换公式如下:00 x0m0mxA)NN(NN)AA(AAx为参数测量值;Am为参数量程最大值;A0为参数量程最小值;Nm为Am对应的A/D转换后的数字量;N0为A0对应的A/D转换后的数字量;Nx为Ax对应的A/D转换后的数字量。应用实例应用实例:在一个数字直流电压表中,量程为在一个数字直流电压表中,量程为1500V,则,则A0=1V,Am=500V,而且当,而且当A0=1V时,时,Nm=50,当,当Am=500V时时Nm=4000,则,则Ax=(500-1)()(Nx-0)/(4000-500)+1=0.12633N

56、x+1二、公式转换法二、公式转换法 有些传感器传输特性与参数测量值不是线性关系,它们有着有些传感器传输特性与参数测量值不是线性关系,它们有着由传感器和测量方法决定的函数关系,并且这些函数关系可由传感器和测量方法决定的函数关系,并且这些函数关系可以用解析式表示,此时的标度变换则可根据解析表达式计算。以用解析式表示,此时的标度变换则可根据解析表达式计算。 例如当用差压变送器来测量流量信号时,由于差压与流量的例如当用差压变送器来测量流量信号时,由于差压与流量的平方成正比,这样实际流量平方成正比,这样实际流量A与差压变送器并经与差压变送器并经A/D转换后转换后的测量值的测量值N成平方根关系。成平方根关

57、系。00m0 x0mANNNN)A-A(Ax三、三、 多项式变换公式多项式变换公式 许多传感器测出的数据与实际的参数为非线性关系,但它们许多传感器测出的数据与实际的参数为非线性关系,但它们的函数关系无法用一个简单式表示,或者该解析式难以直接的函数关系无法用一个简单式表示,或者该解析式难以直接计算,这时可采用多项式来进行非线性标度变换。计算,这时可采用多项式来进行非线性标度变换。 例如,对一个热敏电阻来说,它的温度特性一般是非线性的,例如,对一个热敏电阻来说,它的温度特性一般是非线性的,这时可根据它的温度特性表这时可根据它的温度特性表(一般由生产热敏电阻厂商提供一般由生产热敏电阻厂商提供),求出一个插值多项式,然后在程序中按这个多项式进行计算。求出一个插值多项式,然后在程序中按这个多项式进行计算。 进行非线性标度变换时,应先根据所需要的逼近精度决定多进行非线性标度变换时,应先根据所需要的逼近精度决定多项式的次数项式的次数N,然后选取,然后选取N+1个测量点,测出这时的实际参个测量点,测出这时的实际参数值数值Ai与传感器输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论