第五章智能仪器典型处理功能_第1页
第五章智能仪器典型处理功能_第2页
第五章智能仪器典型处理功能_第3页
第五章智能仪器典型处理功能_第4页
第五章智能仪器典型处理功能_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 智能仪器典型处理功能,5.1 硬件故障的自检 5.2 自动测量功能 5.3 仪器测量精度的提高 5.4 干扰与数字滤波 5.5 测量数据的标度变换,第5章 智能仪器典型处理功能,智能仪器的主要特征是以微处理器为核心进行工作,因而智能仪器具有强大的控制和数据处理功能,使测量仪器在实现自动化,改善性能,增强功能以及提高精度和可靠性方面发生了较大的变革。 本章侧重讨论一般智能仪器都具有的典型处理功能。,智能仪器的这些功能是通过执行某种专门程序所规定的测量算法来实现的。所谓算法即计算方法,它是为了使计算机获得某种特定的计算结果而制定的一套详细的计算方法和步骤,一般表现为数学公式或操作流程。测量

2、算法则是指直接与测量技术有关的算法。,5.1 硬件故障的自检,5.1.1 自检方式 5.1.2 自检算法 5.1.3 自检软件,所谓自检就是利用事先编制好的检测程序对仪器的主要部件进行自动检测,并对故障进行定位。自检功能给智能仪器的使用和维修带来很大的方便。,5.1.1 自检方式,(1) 开机自检。开机自检在仪器电源接通或复位之后进行。自检中如果没发现问题,就自动进入测量程序,如果发现问题,则及时报警,以避免仪器带病工作。开机自检是对仪器正式投入运行之前所进行的全面检查。 (2) 周期性自检。周期性自检是指在仪器运行过程中,间断插入的自检操作,这种自检方式可以保证仪器在使用过程中一直处于正常状

3、态。周期性自检不影响仪器的正常工作,因而只有当出现故障给予报警时,用户才会觉察。 (3) 键控自检。有些仪器在面板上设有“自检”按键,当用户对仪器的可信度发出怀疑时,便通过该键来启动一次自检过程。,5.1.1 自检方式,自检过程中,如果检测仪器出现某些故障,应该以适当的形式发出指示。智能仪器一般都借用本身的显示器,以文字或数字的形式显示“出错代码”,出错代码通常以“Error X”字样表示,其中“X”为故障代号,操作人员根据“出错代码”,查阅仪器手册便可确定故障内容。仪器除了给出故障代号之外,往往还给出指示灯的闪烁或者音响报警信号,以提醒操作人员注意。 ,一般来说,自检内容包括ROM、RAM、

4、总线、显示器、键盘以及测量电路等部件的检测。仪器能够进行自检的项目越多, 使用和维修就越方便,但相应的硬件和软件也越复杂。,5.1.2 自检算法,由于ROM中存在着仪器的控制软件,因而对ROM的检测是至关重要的。 ROM 故障的测量算法常采用“校验和”方法,具体作法是:在将程序机器码写入ROM的时候,保留一个单元(一般是最后一个单元),此单元不写程序机器码而是写“校验字”,“校验字”应能满足ROM中所有单元的每一列都具有奇数个。自检程序的内容是:对每一列数进行异或运算,如果ROM无故障,各列的运算结果应都为“”,即校验和等于FFH。,一、 ROM或EPROM的检测,一、 ROM或EPROM的检

5、测,表5-1 校验和算法,理论上,这种方法不能发现同一位上的偶数个错误,但是这种错误的概率很小,一般可以不予考虑。若要考虑,须采用更复杂的校验方法。,二、 RAM的检测,上述检验属于破坏性检验,一般用于开机自检。若RAM中已存有数据,若要求在不破坏RAM中原有内容的前提下进行检验就相对麻烦一些。,数据存储器RAM是否正常的测量算法是通过检验其“读/写功能”的有效性来体现的。 常选特征字55H和AAH,分别对RAM 中的每一个单元进行先写后读的操作。判别读/写内容是否相符的常用方法是,把该单元的内容求反并与原码进行“异或”运算,若结果为FFH,表明正常。,三、 总线的自检,所谓总线的自检是指对经

6、过缓冲器的总线进行检测。 由于总线没有记忆能力,因此需要设置了两组锁存触发器,分别记忆地址总线和数据总线上的信息。这样,只要执行一条对存储器或I/O设备的写操作指令,地址线和数据线上的信息便能分别锁存到这两组触发器中,我们通过对这两组锁存触发器分别进行读操作,便可判知总线是否存在故障。 实现原理如图5-2所示。,具体做法是:使被检测的每根总线依次为1态, 其余总线为0态。如果某总线停留在0态或1态,说明有故障存在。,三、 总线的自检,四、 显示与键盘的检测,智能仪器显示器、键盘的检测往往采用与操作者合作的方式进行。检测程序的内容为:先进行一系列预定的操作,然后操作者对这些操作的结果进行验收,如

7、果结果与预先的设定一致,就认为功能正常,否则,应对有关通道进行检修。,键盘检测的方法是: CPU每取得一个按键闭合的信号,就反馈一个信息。如果按下某单个按键后无反馈信息,往往是该键接触不良,如果按某一排键均无反馈信号,则一定与对应的电路或扫描信号有关。,5.1.2 自检算法,四、 显示与键盘的检测,显示器的检测一般有两种方式: 第一种方式是:让显示器全部发亮,即显示出888 ,当显示表明显示器各发光段均能正常发光时,操作人员只要按任意键,显示器应全部熄灭片刻,然后脱离自检方式进入其他操作。 第二种方式是:让显示器显示某些特征字,几秒钟后自动进入其他操作。,5.1.2 自检算法,上述各自检项目一

8、般应分别编成子程序,以便需要时调用。 设各段子程序的入口地址为TST i(I = 0,1,2), 对应的故障代号为TNUM(0,1,2)。编程时, 由序号通过表所示的测试指针表(TSTPT)来寻找某一项自检子程序入口,若检测有故障发生,便显示其故障代号TNUM。,5.1.3 自检软件,表52 测试指针表,一个典型的含有自检在内的 智能仪器程序流程图,5.2.1 自动量程转换 5.2.2 自动触发电平调节 5.2.3 自动零点调整 5.2.4 自动校准,5.2 自动测量功能,智能仪器通常都含有自动量程转换、自动零点调整、自动校准功能,有的仪器还能进行自动触发电平调节。这样,仪器操作人员就省去了大

9、量烦琐的人工调节,同时也提高了测试精度。 不同仪器的自动测量功能及性能差别很大,本节仅讨论几种带有共同性的问题。,5.2.1 自动量程转换,自动量程转换可以使仪器在很短的时间内自动选定在最合理的量程下,从而使仪器获得高精度的测量,并简化了操作。许多智能仪器,例如数字示波器、智能电桥、数字多用表等都设置有自动量程转换功能。,例如:某数字电压表共有 0.4V,4V,40V,400V 四个量程,这些量程的设定是由CPU通过特定的输出端口送出量程控制代码来实现的,这些代码就是控制量程转换电路各开关(如继电器)的控制信号,送出不同的控制代码就可以决定开关的不同的组态,使电压表处于某一量程上。 该数字电压

10、表自动量程转换的操作流程如图5-5所示。,自动判别由最大量程开始,逐级比较,直至选出最合适量程。 本例各量程可使用同一个判断依据,即A/D转换的数据应落在3 999N399之间。,5.2.2 自动触发电平调节,示波器、通用计数器等仪器触发电平的设定是很重要的。一般情况下,触发电平应设定在波形的中点。有时为了满足其他测量的要求,例如测定波形上升时间或下降时间时,又需要将触发点设定在波形的10或90处。过去,要迅速而准确地自动找到理想的触发点是困难的,然而借助微处理器,并辅以一定硬件支持,就可以很好地实现这项功能。,调节原理如框图示。输入信号经过可程控衰减器传输到比较器,而比较器的比较电平(即触发

11、电平)由 D/A转换器设定。,5.2.3 自动零点调整,仪器零点漂移的大小以及零点是否稳定是造成零点误差的主要来源之一。消除这种影响最直接的方法是选择优质输入放大器和AD转换器,但这种方法代价高,而且也是有限度的。智能仪器的自动零点调整功能,可以较好地解决这个问题。,接着微处理器通过输出口控制继电器释放,使仪器输入端接被测信号,此时的测量值Uox应是实际的测量值与Uos之和。 最后微处理器做一次减法运算,使Ux=Uox-Uos,并将此差值作为本次测量结果加以显示。 很显然,上述测量过程能有效地消除硬件电路零点漂移对测量结果的影响。,首先控制继电器吸合使仪器输入端接地,启动一次测量并将测量值存入

12、RAM 中。此值便是仪器衰减器、放大器、A/D转换器等模拟部件所产生的零点偏移值Uos。,5.2.4 自动校准,1:通过与更高精度的同类仪器(称标准仪器,其精度一般应比被校准仪器的精度高一个量级)进行比较测量来实现。校准时,标准仪器与被校准仪器同时测量信号源输出的信号,标准仪器的显示值作为被测信号的真值,它与被校准仪器显示值的差值为该仪器的测量误差(即校准值),由小到大改变信号源的输出,可以获得仪器在所有测量点上的校准值; 2:采用输出值可步进调节的标准信号源。校准时,信号源的示值作为真值,它与被校准仪器示值的差值即为该仪器的测量误差,由小到大改变标准信号源的输出,可以获得仪器在所有测量点上的

13、校准值。,为保证仪器精度,仪器必须定期进行校准。传统仪器的校准一般采用两种方式:,5.2.4 自动校准,自动校准时,操作者按下自动校准的按键,仪器显示屏便提示操作者应输入的标准电压,当操作者按提示要求将相应标准电压加到输入端,并按下确认键之后,仪器就会对标准电压进行一次测量并将标准量(或标准系数)存入到“校准存储器”中,然后提示下一个要求输入的标准电压值,再重复上述测量、存储过程。 当对预定的校正测量完成之后,校准程序还能自动计算每两个校准点之间的插值公式的系数,并把这些系数也存入“校准存储器”,这样就在仪器内部固存了一张校准表和一张内插公式系数表。 正式测量时,这些参数值将与测量值一起形成经

14、过修正后形成准确的测量值。,5.2.4 自动校准,目前,智能仪器较多采用自动校准系统进行自动校准。 自动校准系统由控制器、校准源和被校准仪器组成,这些单元通过GP-IB总线组成一个自动测试系统。 校准源是一台精度比被校准仪器的精度高一个量级以上的程控标准信号源,它的输出信号种类、量程和步进值都可以通过控制器发出的命令进行控制(目前已有多种不同种类的标准信号源的产品供应)。控制器由计算机担任,由它发送命令给校准源和被校准仪器。 一个具体的自动校准系统的例子见6.2.7节。,5.3 仪器测量精度的提高,5.3.1 随机误差的处理方法 5.3.2 系统误差的处理方法 5.3.3 粗大误差的处理方法,

15、智能仪器的主要优点之一是利用微处理器的数据处理能力可以减小测量误差,提高仪器测量的精确度。 测量误差按其性质和特性可分为随机误差、系统误差、粗大误差3类。下面分述其处理方法。,随机误差是由于测量过程中一系列随机因素的影响而造成的。就一次测量而言,随机误差无一定规律;当测量次数足够多时,测量结果中的随机误差服从统计规律,而且大多数按正态分布。因此,消除随机误差最为常用的方法是取多次测量结果的算术平均值,即 (式.),5.3.1 随机误差的处理方法,上式中的N为测量次数,很显然,N愈大,x就愈接近真值,但所需要的测量时间也就愈长。为此,智能仪器常常设定专用功能键来输入具体的测量次数N。测量时,根据

16、实际情况自动变动N值。 例如,某具有自动量程转换功能的电压表,,某数字电压表设置了由小到大的六挡量程,其编号分别为1,2,6。 当工作于最低挡即第挡量程时, 被测信号很弱,随机误差的影响相对较大,取N=10,第挡,随机误差影响相对小,因而取N=6。同理,第挡取N=4;第挡取N=2;第挡和第挡只作单次测量处理,取N=1。 上述过程可以有效地克服仪器随机误差的影响,同时对随机干扰也有很强的抑制作用。因而这一过程可以理解为一个等效的滤波过程。,5.3.1 随机误差的处理方法,5.3.2 系统误差的处理方法,系统误差是指在相同条件下多次测量同一量时,误差的绝对值和符号保持恒定或在条件改变时按某种确定的

17、规律而变化的误差。系统误差的处理不像随机误差那样有一些普遍适用的处理方法,而只能针对具体情况采取相应的措施。本节介绍几种最常用的修正方法。,一、 利用误差模型修正系统误差 二、 利用校正数据表修正系统误差 三、 通过曲线拟合来修正系统误差,一、 利用误差模型修正系统误差,先通过分析建立系统的误差模型,再由误差模型求出误差修正公式。误差修正公式一般含有若干误差因子,修正时,先通过校正技术把这些误差因子求出来,然后利用修正公式来修正测量结果, 从而削弱了系统误差的影响。 不同的仪器或系统其误差模型的建立方法也不一样,无统一方法可循,如图所示的误差模型在电子仪器中是具有相当普遍意义的典型的例子。,图

18、中x是输入电压(被测量),y是带有误差的输出电压(测量结果),是影响量(例如零点漂移或干扰),是偏差量(例如直流放大器的偏置电流),K 是影响特性(例如放大器增益变化)。从输出端引一反馈量到输入端以至改善系统的稳定性。,图中x是输入电压(被测量),y是带有误差的输出电压(测量结果),是影响量(例如零点漂移或干扰),是偏差量(例如直流放大器的偏置电流),K 是影响特性(例如放大器增益变化)。从输出端引一反馈量到输入端以至改善系统的稳定性。,在无误差的理想情况下,有=0,i=0,K=1,于是存在关系 在有误差的情况下,可以推出 可改写成简明形式 :xb1yb0 上式即为误差修正公式,其中,b0,b

19、1即误差因子。如果能求出b0,b1 的数值,即可由误差修正公式获得无误差的x值,从而修正了系统误差。,误差修正公式 中含有二个误差因子b0和b1,因而需要作两次校正。设建立的校正电路如右图所示,图中E为标准电池,校正步骤如下: (1) 零点校正:先令输入端短路,即S1闭合,此时有x=0,得到输出为y0,于是可得方程:0b1y0b0 (2) 增益校正 令输入端接上标准电压,即S2闭合,此时有x=E,于是得到输出为y1,同样可得方程: Eb1y1b0 联立求解上述二方程,可得误差因子b1E y1y0b0E1y1 y0 (3) 实际测量 令S3闭合,此时得到输出为y(结果),于是被测量的真值为 智能

20、仪器每次测量过程均按上述三步来进行。由于上述过程自动进行,且过程很快,即使各误差因子随时间有缓慢的变化,也可消除其影响,实现近似于实时的误差修正。,二、 利用校正数据表修正系统误差,(1)获取校正数据 在仪器的输入端逐次加入一个个已知的标准电压x1,x2,xn,并实测出对应的测量结果y1,y2,yn。则xi(i=1,2,,n)即为测量值yi(i=1,2,,n)对应的校正数据。 (2)查表 将xi(i=1,2,,n)这些校正数据依大小顺序存入一段存储器中,处理时,根据实测的yi(i=1,2,,n)值查表,即可得到对应的经过修正的测量值。 表格的形式对于查表十分重要。在yi按等差数列取数时,查找特

21、别方便。这时可以用yi做为地址偏移量,将yi对应的校正数据存入相应的存储单元中,就可以直接从表格中取出待查找的数据 (3)差值处理,二、 利用校正数据表修正系统误差,如果对系统误差的来源及仪器工作原理缺乏充分的认识而不能建立误差模型时,可以通过建立校正数据表的方法来修正系统误差。步骤如下: (1)获取校正数据: 在仪器的输入端逐次加入一个个已知的标准电压x1,x2,xn,并实测出对应的测量结果y1,y2,yn。则即为测量值yi(i=1,2,,n)对应的校正数据。 (2)查表: 将xi(i=1,2,,n)依次存入一段存储器中,处理时,根据实测的y(i=1,2,,n)值查表,即可直接从表中读出经过

22、修正的测量值。 (3)插值处理:若实际测量的y值介于某两个标准点yi和yi+1之间,为了减少误差,还要在查表的基础上作内插计算来进行修正。,二、 利用校正数据表修正系统误差,采用内插技术可以减少校准点从而减少内存空间。最简单的内插是线性内插, 当yiyyi+1 时取 线性内插方法是用两点间一条直线来代替原曲线,因而精度有限。如果要求更高的精度,可以采取增加校准点的方法,或者采取更精确的内插方法,例如n阶多项式内插、三角内插、牛顿内插等。,三、 通过曲线拟合来修正系统误差,曲线拟合是指从n对测定数据(xi,yi) 中,求得一个函数f(x)来作为实际函数的近似表达式。 曲线拟合实质就是找出一个简单

23、的、便于计算机处理的近似表达式来代替实际的非线性关系。因此曲线f(x) 并不一定代表通过实际的所有点。 采用曲线拟合对测量结果进行修正的方法是,首先定f(x) 的具体形式,然后再通过对实测值进行选定函数的数值计算,求出精确的测量结果。,连续函数拟合法 分段曲线拟合法,三、 通过曲线拟合来修正系统误差,连续函数拟合法,连续函数拟合法一般采用多项式拟合(当然也不排除采用解析函数,如ex、lnx和三角函数等),多项式的阶数应根据仪器所允许的误差来确定,一般情况下,拟合多项式的阶数愈高,逼近的精度也就愈高。但阶数的增高将使计算繁冗,运算时间也迅速增加,因此, 拟合多项式的阶数一般采用二三阶。 现以热电

24、偶的电势与温度之间的关系式为例,讨论连续函数拟合的方法。,三、 通过曲线拟合来修正系统误差,连续函数拟合法,热电偶的温度与输出热电势之间的关系一般用下列三阶多项式来逼近 R=abxPcxP2dxP3 (55) 变换成嵌套形式得 R(dxPc)xPbxPa (56) 式中,R是读数(温度值), xP由下式导出 xP=xabT0cT02 (57) 上式中x是被校正量,即热电偶输出的电压值。T0是使用者预置的热电偶环境(冷端)温度。热电偶冷端一般放在一个恒温槽中,保持在0。系数a,b,c,d,a,b,c是与热电偶材料有关的校正参数。,连续函数拟合法,R(dxPc)xPbxPa (5.6) 式中,xP

25、=xabT0cT02 多项式算法通常采用式(5.6)所示的嵌套形式。 一个阶多项式一般需要进行1/2n(n+1)次乘法,如果采用嵌套形式,只需进行n次乘法,从而使运算速度加快。 首先求出各校正参数a,b,c,d,a,b,c,并顺序地存放在首址为COEF的缓冲区内,然后根据测得的x值通过运算求出R(温度值)。,Solartron 70557065 型数字电压表具有处理四种热电偶(T型:CuCon; R型:RtPtPn;J型:FCon 和 K型:NiCrNiAl)的非线性校正功能,这四种热电偶的校正参数已预存在仪器ROM中。使用时,用户只需通过键盘送入热电偶种类及热电偶冷端温度,仪器即能直接显示热

26、电偶测得的温度值。,三、 通过曲线拟合来修正系统误差,2. 分段曲线拟合法,分段曲线拟合法,即是把非线性曲线的整个区间划分成若干段,将每一段用直线或抛物线去逼近。从而回避了高阶运算,使问题化繁为简。 分段基点的选取有等距分段法或非等距分段法之分。 非等距分段法是根据函数曲线形状的变化率来确定插值之间的距离,插值基点的选取比较麻烦,但在相等精度条件下,非等距插值基点的数目将小于等距插值基点的数目,从而节省了内存,减少了计算机的开销。,2. 分段曲线拟合法,(1) 分段直线拟合,分段直线拟合法是用一条折线来代替原来实际的曲线,这是一种最简单的分段拟合方法。,设某传感器的输入/输出特性如图所示,图中

27、分三段直线来逼近该传感器的非线性曲线。 由于曲线低端比高端陡峭,所以采用不等距分段法。 x为测量数据,y 为实际被测变量,各端的线性差值公式为 y3 ;xx3 y2K3(xx2) ;x2xx3 y1K2(xx1) ;x1xx2 K1x ;0 xx1时,y =,设某传感器的输入/输出特性如图所示,图中分三段直线来逼近该传感器的非线性曲线。 由于曲线低端比高端陡峭,所以采用不等距分段法。 x为测量数据,y 为实际被测变量,各端的线性差值公式为 y3 ;xx3 y2K3(xx2) ;x2xx3 y1K2(xx1) ;x1xx2 K1x ;0 xx1时,y =,(1) 分段直线拟合,(2) 分段抛物线

28、拟合,若输入/输出特性很弯曲,而测量精度又要求比较高,可考虑采用多段抛物线来分段拟合 。,如图示的曲线可以分成 四段,每段分别用一个二阶抛物线方程 yaix2bixci (i=1,2,3,4) 描绘。每一段找出三点xi1,xi1,xi(含两分段点)。然后解下列联立方程以求出系数ai,bi,ci 。 yi1 aixi12 bixi1ci yi1 aixi12 bixi1ci yi aix2i bixici,如图示的曲线可以分成 四段,每段分别用一个二阶抛物线方程 yaix2bixci (i=1,2,3,4) 描绘。每一段找出三点xi1,xi1,xi(含两分段点)。然后解下列联立方程以求出系数ai

29、,bi,ci 。 yi1 aixi12 bixi1ci yi1 aixi12 bixi1ci yi aix2i bixici,5.3.3 粗大误差的处理方法,粗大误差是指在一定的测量条件下,测量值明显地偏离实际值所形成的误差。粗大误差明显地歪曲了测量结果,应予以剔除。 在测量次数比较多时(N20),测量结果中的粗大误差宜采用莱特准则判断。若测量次数不够多时,宜采用格拉布斯准则。 当对仪器的系统误差采取了有效技术措施后,对于测量过程中所引起的随机误差和粗大误差一般可按下列步骤处理。 (1) 求测量数据的算术平均值 (2) 求各项的剩余误差 (3) 求标准偏差 (4) 判断粗大误差(坏值) (5)

30、 如果判断存在粗大误差,给予剔除,然后重复上述步骤(1)(4)(每次只允许剔除其中最大的一个)。 最后,如果判断不再存在粗大误差,则可计算当前算术平均值、各项剩余误差及标准偏差估计值,作为有效的测量结果。,随着测量数据增加,人工计算将相当烦琐和困难,若在智能仪器软件中按排一段程序,便可在测量进行的同时也能对测量数据进行处理。 图514 给出了实现上述功能的程序框图。,一般情况下可直接将采样数据作为测量结果,或进行一般滤波处理即可,以利于提高速度。 只有对被测参数要求比较精确,或者误差影响比较严重时,才需对数据按上述步骤进行处理。,5.4 干扰与数字滤波,5.4.1 中值滤波 5.4.2 平均滤

31、波程序 5.4.3 低通数字滤波,实际的测量过程中,被测信号中不可避免地会混杂一些干扰和噪声,在工业现场这种情况更为严重。 在传统仪器中,滤波通过选用不同种类的硬件滤波器予以实现。在智能仪器中,由于微处理器的引入,可以通过程序对采集的数据进行某种处理,消除或减弱干扰和噪声的影响,即数字滤波得方法。 数字滤波具有硬件滤波器的功效,却不需要硬件开销,从而降低了成本。由于软件算法的灵活性,还能产生硬件滤波器所达不到的功效。它的不足之处是需要占用机时。 数字滤波方法有多种,每种方法有其不同的特点和适用范围。,5.4 干扰与数字滤波,5.4.1 中值滤波,所谓中值滤波是对被测参数连续采样N次(N一般选为

32、奇数),然后将这些采样值进行排序并选中间值。 中值滤波对去掉脉冲性质的干扰比较有效,并且采样次数N愈大,滤波效果愈强,但采样次数N太大会影响速度,所以N一般取3或5。对于变化很慢的参数,有时也可增加次数,例如15次。对于变化较为剧烈的参数,此法不宜采用。 中值滤波程序主要由数据排序和取中间值两部分组成。数据排序可采用几种常规的排序方法,如冒泡法、沉底法等。,5.4.1 中值滤波,FLT10:MOV A,R2 ;R2R3,交换 XCH A, R3 MOV R2,A FLT11:MOV A, R3;R3R4,交换 XCH A, R3 XCH A,R4 ;R3R2否? CLRC SUBBA, R2

33、JNC FLT12 ;R3R2,结束 MOV A,R2 ;否则R2为中值 MOV R3, A ;中值送入R3 FLT12:RET,中值滤波程序主要由数据排序和取中间值两部分组成。数据排序可采用几种常规的排序方法,如冒泡法、沉底法等。下面给出一个中值滤波程序的实例。 该中值滤波程序采样次数N选为3,三次采样后的数据分别存放在R2,R3,R4中,执行之后,中值放在R3。,5.4.2 平均滤波程序,最基本的平均滤波程序是算术平均滤波程序,见公式 5.1 算术平均滤波对滤除混杂在被测信号上的随机干扰非常有效。一般说来,采样次数N愈大,滤除效果愈好,但系统的灵敏度要下降。为了提高运算速度,程序中常用移位

34、来代替除法,因此 N一般取4,8,16 等。 为了进一步提高平均滤波的滤波效果,适应各种不同场合的需要,在算术平均滤波程序的基础上又出现了许多改进型,例如去极值平均滤波、移动平滑滤波、加权平均滤波等。,一、 去极值平均滤波 二、 移动平滑滤波 三、 加权平均滤波,5.4.2 平均滤波程序,算术平均滤波对抑制随机干扰效果较好,但对脉冲干扰的抑制能力弱,明显的脉冲干扰会使平均值远离实际值;而中值滤波对脉冲干扰的抑制非常有效,因而可以将两者结合起来形成去极值平均滤波。 去极值平均滤波的算法是:连续采样N次,去掉一个最大值,去掉一个最小值,再求余下N2个采样值的平均值。其程序框图如图示 。,一、 去极

35、值平均滤波,算术平均滤波需连续采样若干次后才能进行一次运算,因而速度较慢。 移动平均滤波:先在RAM 中建立一个数据缓冲区,依顺序存放N次采样数据;然后每采一个新数据,就将最早采集的数据去掉;再求出当前RAM缓冲区中N个数据的算术平均值或加权平均值。这样,每进行一次采样,就计算出一个新的平均值,大大加快了数据处理的能力。 这种数据存放方式可以采用环形队列结构来实现。设环形队列地址为 40H4FH共16个单元,R0作为队尾指示,其程序流程图如图示。,二、 移动平滑滤波,上述各种平均滤波法中,每次采样在平均结果中的比重是均等的。为了增强最后一次(或某一次)在平均结果中的比重,以增强实时性,可采用加

36、权平均滤波,三、 加权平均滤波,所谓加权平均的含义是指参加平均运算的各采样值按不同的比例进行相加求均。加权系数一般先小后大,以突出后若干次采样的作用,加强系统对参数变化趋势的辨识。 N项加权平均滤波的算法为: 式中 C0,C1,CN1为常数,它们的选取有多种方法,但应满足 C0 C1 CN1 1,WEIGHT: MOV R0, #DATA ;清 CLRA MOVR2, 03H LOOP: MOV R0, A INC R0 DJNZ R2, LOOP MOV R5, #SAMP ;采样值首址送R5 MOV R6, #COEFF ;系数首址送R6 MOV R1, #PRODT ;乘积首址送R1 M

37、OV R2, #N ;滤波数据项数送R2 LOOP1: ACLL MULT21 ;计算CkYk,最低字节为小数部分,设采样值已存于内部RAM中SAMP开始的单元中,采样值为双字节,加权系数Ck为二位小数,扩大256倍变成整数后,以二进制形式存于COEFF开始的单元中。 程序中调用双字节乘以单字节的乘法子程序MULT21,R5指出被乘数低位地址,R6指出乘数地址,乘积放在PRODT开始的三个单元中,由R1指出。运算结果去掉最低字节后即为滤波值,存于DATA开始的单元中。,MOV R0,#DATA ;累加 MOV R7,#03H CLR C LOOP2: MOV A, R0 ADDC A, R1 MOV R0, A INC R0 INC R1 DJNZ R7, LOOP2 INC R5 ;修正 INCR5 INCR6 DJNZR2, LOOP1 RET,5

温馨提示

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

评论

0/150

提交评论