第5章运算程序及数据处理教材课程

上传人:yuzo****123 文档编号:141249278 上传时间:2020-08-05 格式:PPT 页数:59 大小:1.02MB
返回 下载 相关 举报
第5章运算程序及数据处理教材课程_第1页
第1页 / 共59页
第5章运算程序及数据处理教材课程_第2页
第2页 / 共59页
第5章运算程序及数据处理教材课程_第3页
第3页 / 共59页
第5章运算程序及数据处理教材课程_第4页
第4页 / 共59页
第5章运算程序及数据处理教材课程_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第5章运算程序及数据处理教材课程》由会员分享,可在线阅读,更多相关《第5章运算程序及数据处理教材课程(59页珍藏版)》请在金锄头文库上搜索。

1、第5章 智能仪器的运算程序和数据处理,5.1 常用函数算法,三角函数的计算,泰勒级数,正弦函数sin(x),2 平方根的算法,1). 牛顿迭代算法原理,设x表示f(x)=0的根的真值,x0表示根的近似值,h为校正量,则有,因此,方程f(x)=0可写成f(x0+h)=0。用泰勒级数展开有,设余项很小,可以忽略,则,即,令,显然,x(1)是比x0更精确的根的估计值,重复这个过程,求得更精确的近似值。,5.2 测量数据的非数值处理,数据结构:指数据之间的相互关系,即数据的组织形式。 逻辑结构:数据之间的逻辑关系,通常称为数据结构。 存储结构:数据元素在计算机存储器中的表示机器配置。,数据结构,线性结

2、构,非线性结构,线性表 线性链表 堆栈,树 图,数据结构,(1) 线性表,是智能仪器中最简单也是最常用的一种数据结构。一个线性表是N个元素为a1,a2,. an,的集合,各数据元素之间具有线性的位置关系。 在比较复杂的线性表中,一个数据元素可以由若干数据项组成,这时数据元素称为记录,含有大量记录的线性表称为文件。,(2) 堆栈,堆栈是一种特殊形式的线性表,数据写入和读取遵循“后进先出”的原则,通常是在子程序或响应一个中断保护现场时使用。每个堆栈必须设立一个指针指示栈顶的位置。,(3) 队列 队列是一种“先入先出”的链式结构的线性表。每个队列必须设置两个指针指示排头和排尾。,(4) 线性链表 线

3、性链表的存储方式为链式结构。 线性链表的数据元素在存储器内可以任意存放,既不要求连续,也不要求按顺序。为了确定数据元素在表中的位置,除了存储元素值之外,还需要一个指针,用以指明下一个元素在存储器中的位置。 数据的元素和指针两者组成链表的一个结点。,结点,元素值 指针,节点1 节点 2 节点 3 节点4,一个链表由一个起始指针FIRST和若干结点组成。,一个链表,起始指针FIRST:指向链表的第一个结点。 结点(若干),元素值 指针 最后一个元素的指针为0,表示结束。,节点 A 节点B 节点 C,为了对链表进行插入或删除,要留出一定的存储空间组成链表,称为自由表或可利用空间。,2. 线性表查找技

4、术,查找-检索。就是从内存的数据表中找出某个元素(记录)。一个表有N个记录,每个记录都有关键项。查表操作就是从表中找出一个关键项与已知的关键字相同的元素(记录)。,1) 顺序查找,序列查找是从头开始,按顺序把表中元素的关键项逐一的与给定的关键字进行比较。如果比较结果相同,比较元素是找到的元素。如果表的所有元素都比较结果都不相同,则该元素在表中无法找到。 适合于无序表,记录不多的情况。,例:在一个存储器的线性表中查找一个给定的元素。 线性表中每一个元素占两个字节,DPTR存放线性表的首地址,(R2)=线性表的长度,(R0R1)=查找元素,若查找成功,则返回查找元素的地址,存入DPTR,若查找失败

5、,则返回FFFF,即(DPTR)=FFFF。,MOV DPTR, #0FFFFH,2) 对半查找 对于有序表,其数据排列有一定规律,就不必像无序表那样逐个查找,可以采用对半查找。 对半查找也叫二分法查找,就是每次截取表的一半,确定查找元素在哪一部分,逐步细分,缩小了查找范围,从而大大加快了查找速度。,对半查找要设置两个指针,LO:表的低界元素的序号 HI:表的高界元素的序号,设表中有N个元素按照从小到大的顺序排列,(LO)=0;(HI)=N-1,则中心元素的序号为,式中,X表示小于等于X的最大整数。,计算中心元素的地址,(AM)=表首地址+(MI)l,l为数据元素的字节数。根据中心元素的位置找

6、出中心元素,并和查找的元素进行比较,若X(AM),则选取低半表,修改高界指针HI(低界指针LO不变)。,(HI)=(MI)-1,若X(AM),则选取高半表,修改低界指针LO(高界指针HI不变)。,(LO)=(MI)+1,若X=(AM),则查找成功。,设在MCS-51外部数据RAM中有一个有序表,表长N小于256,表首的第一个字节存放表的长度N值。每一个数据都有3个数据项ai、bi、ci,它们分别为1、2、1个字节。表的结构如图所示。,现在需要根据给定值X到表中查找等于X的ai,如找到,则读出bi,ci,如找不到,则把X和X对应的两个数据插入到表中相应的位置上去。,说明 根据放在R2中的X值,从

7、外部数据RAM的表格中查找等于X的ai放在R2中,如找到,则把bi放在R3、R4中,把ci放在累加器A中,并置CY=0;如找不到,则把对应插入地址送到DPTR中,并置CY=1。 对半查找程序如下,R2,JNC,说明 把(DPTR)指向的表元素全部向下移动四个字节,然后在(DPTR)处插入R2,R3,R4,R5的内容。R1,B中分别存放表末地址的低位和高位。 有序表插入子程序如下。,3) 直接查表法 在表中直接搜索的关键项目或直接由一个简单的计算,可以找到数据。因此要求关键项与数据记录所在的位置或次序有严格的对应关系。这种方法仅适宜于有序表格。,例,为驱动八段数码管显示器(LED),需要查出欲显

8、示数据的段码。09的段码按数字的ASCII顺序排列。这样,可以根据显示数字的ASCII码,直接从段码表中查出数字的段码,送到显示驱动电路中。,说明(R0)存放欲显示数据的数值,#PORT为LED显示端口,查到的段码由#PORT输出。,3 链表的插入、删除和查找,1) 链表的插入, 先判断FREE指针 = 0 ?,将Free 指针指向自由表的下一个结点,确定结点K地址,在新的结点指针域存放K+1结点地址,在结点K的指针域写入新结点的指针,存储新结点数据,把自由表中的结点A插入到离链表结点K与K+1之间。 步骤为,2) 链表的删除, 确定k-1结点的地址。 把结点k+1的地址存入节点k-1的指针域

9、。 把结点k指针的原内容存放在FREE指针域。 把结点k的地址存放在FREE的指针域。,删除链表中的结点K,将其放在自由表中,使之成为自由表中的一个结点。 步骤为,3) 链表的查找,链表的查找较方便,一般从FIRST的指向的第一个结点开始向后逐个查找,查找结点的数据项关键字等于给定值,说明找到成功。否则,继续寻找下一个结点,直到查到或指针等于零为止。,4. 排序,气泡排序法,排序是使一组记录按照关键字的大小,有序地排列起来。,希尔排序法,排序方法,1) 气泡排序法,气泡排序法是依次比较两个相邻的数据,如果不符合规定的递增(递减)顺序,则交换两个数据的位置。,例:对内存中一个连续存储的线性表进行

10、排序,排序后的数据元素按从小到大的次序排列。表中每个元素占一个字节。R2指向线性表在内部数据存储器的首址。R3中为线性表的长度。,2) 希尔排序 希尔排序是一种容易编程而且运行速度较快的一种排序方法。,确定比较数据的间距ht,比较所有相距为ht的各对数据,若符合排序要求,则保持原状,继续向前比较;若不符合排序要求,则交换两数位置,并沿反方向逐对比较结束后,再继续向前比较,直至表中所有间距为ht的数据排序正确为止。 取ht-1=ht/2,继续以ht-1为间距,比较各对数据,进行排序。 以此类推,每进行一轮后,减小一次间距,直至h=1为止,全部数据按规定次序排列完毕。,例:R0为数据首地址,R2为

11、数据表的长度。表中每个元素占一个字节。,5.3系统误差的数据处理,系统误差模型的建立,由于系统误差有一定的规律,所以可以通过建立误差模型的方法对系统误差进行修正。,例仪器中运算放大器测量电压时,引入零位误差和增益误差。 设信号测量值x和实际值y是线性关系,用该电路测量标准电源VR和短路电压信号,可以得到两个误差方程,准确的数学模型的建立,解这两个方程可得,从而得到校正算式,1) 代数插值法,近似数学模型的建立,设有n+1组离散点(x0,y0),(x1,y1),(xn,yn),未知函数f(x),且有 f(x0)=y0, f(x1)=y1, f(xn)=yn,所谓插值法就是设法找一个函数g(x),

12、使在xi(i=0,1,n)处与f(xi)相等。 g(x)就是f(x)的插值函数,而xi称为插值节点。,如果插值函数为多项式,则称为代数插值。, 线性插值, 线性插值,线性插值就是从一组数据(xi,yi)中选取两个代表性的数据(x0,y0)、(x1,y1),根据插值原理求出插值方程。,求得待定系数, 抛物线插值,在数据中选取三点,采用抛物线拟合。,2) 最小二乘法,2 系统误差的标准数据校正法,通过实验求得校正曲线,把曲线上各个校正点的数据以表格形式存入仪器内存,实际测量时查表求得。,3 非线性校正,1) 校正函数,2) 用插值法进行校正,等距节点分段直线校正法,非等距节点分段直线校正法,设器件

13、的输出-输入特性x=f(y)存在非线性,引入函数g(x),,R=g(x)=gf(y),使R与y之间呈线性关系,函数g(x)就是校正函数。校正函数往往是被校正函数的反函数。,3) 最小二乘法进行非线性校正,4 零位误差和增益误差的校正,1) 零位误差的校正方法,使输入为0,测得输出值,并存入内存中。在以后每一次测量时,减去这个零位值,实现零位校正。,智能仪器,0,y,2) 增益误差的校正方法,其基本思路是仪器校准启动后或每隔一定的时间,测量基准参数,建立误差校正模型,保存在内存中。每一次测量时利用校正模型消除误差。,建立温度误差模型,测出温度,计算误差。,5 温度误差的补偿,5.4 随机误差的数

14、据处理,随机误差由随机因素引起,采用滤波方法克服随机干扰。,滤波,硬件滤波,数字滤波,限幅滤波 中位值滤波 算数平均滤波 递推平均滤波 加权递推平均滤波 去极值平均滤波,1. 限幅滤波,尖脉冲干扰信号随时可能窜入智能仪器中,使测量的信号突然增大,造成严重失真。对于这种随机干扰,限幅滤波是一种非常有效的方法。,算法,DATA1和DATA2存放yn+1和yn, 滤波值也存入DATA2单元中。,2. 中位置滤波,中值滤波是对某一被测参数连续采样N次(一般的n取奇数),然后把N次采样值按大小排队,取中间值为本次采样值。中值滤波能有效克服因偶然造成的波动或由仪器不稳定引起的误差所造成的脉冲干扰。对温度,

15、液位等缓慢变化的被测参数,采用这种方法能收到良好的效果,但对于流量和压力等急剧变化的参数通常不使用中值滤波算法。,SAMP存放采样值内存单元首址, DATA存放滤波值的内存单元地址,N为采样值个数,3. 算数平均滤波 算术平均滤波法是连续取n各采样值进行平均,对一般有随机干扰的信号进行滤波。,4. 递推平均滤波 递推平均滤波周期性干扰具有良好的抑制作用,平稳程度高,灵敏度低,但对于偶尔脉冲抑制性差,不易消除脉冲干扰所引起的采样值的偏差。因此,它不适用于脉冲干扰严重的场合,而适合于高频振荡系统 。,5. 加权递推平均滤波 为了增加新鲜采样数据在递推滤波中的比例,以提高系统对目前干扰的抑制能力,可以使用加权递推平均滤波。,6. 去极值平均滤波 对脉冲干扰信号有效。,去掉极大值与极小值。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号