《智能仪器8.3.ppt》由会员分享,可在线阅读,更多相关《智能仪器8.3.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、8.3 数字滤波技术数字滤波技术当存在随机干扰使被测信号中混入了噪声成分时,可以采用滤波器滤掉信号中的噪声成分、提高信号质量。模拟滤波器在低频和甚低频时实现是比较困难的,而数字滤波器则不存在这些问题。由于它具有高精度、高可靠性和高稳定性的特点,因此在智能仪器中被广泛用于克服随机误差。2采用数字滤波算法克服随机误差具有如下优点:数字滤波是由软件程序实现的,不需要硬件,因此不存在阻抗匹配问题。对于多路信号输入通道,可以共用一个软件“滤波器”,从而降低仪表的硬件成本。适当改变滤波器程序或运算参数,就能方便池改变滤波特性。3限幅滤波生产经验告诉人们,很多物理量的变化是需要一定时间的,相邻两采样值之间的
2、变化也有一个限度,这就是程序判断法的客观依据。限幅滤波又称为程序判断滤波,由于测控系统存在随机脉冲干扰,或由于变送器不可靠而将尖脉冲干扰引入输入端,从而造成测量信号的失真。对于这种随机干扰,限幅滤波是一种十分有效的方法。其基本方法是比较相邻的两个4567通过A送出;补码运算,取反加1得真值8中位值滤波中位值滤波就是对某一被测参数连续采样n次(一般取n为奇数),然后把n次采样值按大小排队,取中间值为本次采样值。中位值滤波能有效地克服因偶然因素引起的波动或仪表不稳定引起的误码所造成的脉冲干扰。对温度、液位等缓慢变化的被测参数,采用这种方法能收到良好的效果;但对于流量、压力等快速变化的参数,一般不采
3、用中位值滤波算法。9采样次数N越大,滤波效果越好,但采样次数N太大则会影响仪器的测试速度,所以N一般取3或5。对于变化很慢的参数,有时也可增加次数,例如15次。中值滤波程序主要由数据排列和取中间值两部分组成。数据排列可采用几种常规的排序方法,如冒泡法、沉底法等。中位值滤波子程序设SWAP为存放采样值的内存单元首地址,DATA为存放滤波值的内存单元地址,N为采样值个数。101112;A=SWAP+N/213算术平均滤波算术平均滤波法就是连续取n个采样值进行平均,其数学表达式为算术平均滤波法用于对一般具有随机干扰的信号进行滤波。这种信号的特点是围绕着一个平均值,在某一范围附近作上下波动,因此,仅取
4、一个采样值作为滤波值是不准确的。算术平均滤波法对信号的平滑程度完全取决于N。理论上讲,在无系统误差的情况下,当N,其平均值趋于最大期望值,但实际上N是有限的。当N较大时,平滑度高,但灵敏度低;当N较小时,平滑度低,但灵敏度高。应根据具体情况选取N,既保证滤波效果,又尽量减少计算时间。14程序8.13 算术平均滤波子程序 设N为采样值个数。10位的采样值存放在SWAP开始的单元中,采样值数据高2位放于高字节,低8位放于低字节,且假定N个采样值之和不超过16位。滤波结果放在SWAP和SWAP+1单元中。DIV21为双字节除以单字节子程序,(R7,R6)为被除数,(R5)为除数,商在R7,R6中。1
5、516 算术平均滤波法每计算一次数据需测量N次,故这种方法不适于测量速度较快或要求数据计算速度较高的实时系统。17去极值平均滤波算术平均滤波不能将明显的脉冲干扰消除,只是将其影响削弱。因明显干扰使采样值远离真实值,可以比较容易地将其剔除,不参加平均值计算,从而使平均滤波的输出更接近真值。算法原理:连续采样N次,将其累加求和,同时找出其中的最大值与最小值,再从累加和中减去最大值和最小值,按N-2个采样值求平均,即得有效采样值为18为使平均滤波方便,N-2应为2、4、8、16。具体方法有两种:对于快变参数,先连续采N次,然后再处理,但要在RAM中开辟N个数据暂存区;对于慢变参数,可一边采样,一边处
6、理,而不必在RAM中开辟数据暂存区。下面以N10为例,介绍边采样边计算的程序设计方法。程序流程如下图所示。1920去极值平均滤波子程序 设R4保存采样最大值,R5保存采样最小值,R6保存采样值,R2保存采样和的进位,R3保存采样值之和,按上图所示流程进行处理,结果保存在寄存器A中。212223;准备计算准备计算(R2:R3)-R4;交换后交换后R2保存和的低字节保存和的低字节;R3保存和的高字节保存和的高字节;准备计算准备计算(R3:R2)-R5;交换后交换后R3保存和的低字节保存和的低字节;R2保存和的高字节保存和的高字节2425递推(滑动)平均滤波该方法是先在RAM中建立一个数据缓冲区,依
7、顺序存放N次采样数据(即把N个测量数据看成一个队列,队列的长度固定为N)。然后每采进一个新的数据,就将新数据存入队尾,同时将缓冲区中最早采集(队首)的一个数据去掉。再求出当前RAM缓冲区中的N个数据的算术平均值。这样,每进行一次采样,就可计算出一个新的平均值,即测量数据取一丢一,测量一次便计算一次平均值,大大加快了数据处理能力。其数学表达式为26式中:yn第n次采样值经滤波后的输出;yn-i未经滤波的第n-i次采样值;N递推平均项数。通常采用环形队列结构实现数据的存放和平均值的计算,具体方法举例如下:假设环形队列的地址为40H4FH,共16个单元,用R0作队尾指示,并且INPUT为新采样数据处
8、理子程序,子程序已将新数据置入累加器A中,其流程图如下图所示。27282930递推平均滤波法对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲性干扰引起的采样值偏差。因此,它不适用于脉冲干扰比较严重的场合。通过观察不同N值下递推平均的输出响应来选取N值,既能少占用计算机时间,又能达到最好的滤波效果。可以看出,递推平均滤波法与算术平均滤波法在数学处理上是完全相似的,只是N个数据的实际意义不同而已。31加权递推平均滤波算术平均滤波和递推平均滤波方法的主要缺点是:为了提高对干扰的抑制效果,必须增大平均范围N;但增大N将会引起有用信号的失真,特别是
9、会引起有用信号中高频分量丰富的峰值部位的失真。下图表示了递推平均滤波中峰值失真、噪声幅度与平均次数N的关系。为协调三者的关系,可以采用加权平均滤波法。32所谓加权平均,是指参加平均运算的各采样值按不同的比例进行相加并求取平均值。加权系数一般先小后大,以突出后若干次采样值的效果,加强系统对参数变化趋势的辨识。N项加权平均滤波的算法为 式中,C0,C1,CN-1为常数,它们的选取有多种方法,但应满足C0+C1+CN-1=1。33一阶惯性滤波假设滤波器的输入电压为x(t),输出为y(t),它们之间存在如下关系:数字化时应用其采样值,即 yn=y(nt),xn=x(nt)如果采样间隔t足够小,则上式的
10、离散值近似为:即34令则可化为yn=axn+byn-1 可见,系数a+b=1对于直流,yn=xn,即该滤波器的直流增益为1。若取采样间隔t足够小,则at/RC,滤波器的截止频率为:系数a越大,滤波器的截止频率越高。若取t=50s,a=1/16,则截止频率为:35 当采用模拟滤波器来抑制低频干扰时,要求滤波器有大的时间常数和高精度的RC网络。增大时间常数要求增大R值,其漏电流也随之增大,从而使RC网络的误差增大,降低了滤波效果。而采用数字滤波算法来实现动态的RC滤波,则能很好地克服上述模拟滤波器的缺点。在滤波常数要求较大的场合,这种方法更为适用。一阶惯性滤波算法对于周期干扰具有良好的抑制作用,其
11、不足之处是带来了相位滞后,灵敏度低。滞后程度取决于b值的大小。同时它不能滤除频率高于采样频率l2(奈奎斯特频率)的干扰信号,例如采样频率为100Hz,则它不能滤除50Hz以上的干扰信号。对于高于奈奎斯持频率的干扰信号,应该采用模拟滤波器。36一阶惯性滤波子程序设yn-1在DATA1为首址的单元中,xn在DATA2为首地址的单元中,均为双字节。取a=0.25,b=0.75,滤波结果在R2、R3中。FOF:MOV R0,DATA1MOV R1,DATA2CLR C ;0.5Yn-1存入(R2:R3)INC R0MOV A,R0RRC AMOV R2,ADEC R0MOV A,R0RRC AMOV R3,AMOV A,R0 ;Yn-1+Xn存入(A:R7)ADD A,R1MOV R7,AINC R037INC R1MOV A,R0ADDC A,R1CLR C ;(Xn+Yn-1)0.5存入(R6:R7)RRC AMOV R6,AMOV A,R7RRC AMOV R7,ACLR C ;(Xn+Yn-1)0.25存入(R6:A)MOV A,R6RRC AMOV R6,AMOV A,R7RRC AADD A,R3 ;0.25(Xn+Yn-1)+0.5Yn-1存于(R2:R3)MOV R3,AMOV A,R6ADDC A,R2MOV R2,ARET38