硅谷杂志:基于软件实现的误差算法自动分析处理 |
2012-11-06 10:55 作者:唐 伟 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网11月6日文】据《硅谷》杂志2012年第16期刊文称,从测量数据的误差分析与处理角度出发,详细分析误差处理算法,用C语言编程实现误差算法的自动计算,将繁琐的误差计算交由计算机处理,从而实现误差的自动分析处理,为科研和工程领域提供快速的误差分析和处理工具。
0引言
测量是信息科学的源头,而任何一次测量所获得的数据都包含着误差,因此要对测量数据准确的运用就必须进行测量数据的误差分析与处理。误差的计算与处理是一件繁琐的事情,对于简单的几个到十几个测量数据还可以进行手工计算,但随着测量数据的增加,手工计算基本不可行。随着科学技术的发展,测量的自动化和测试数据量的巨增,误差的计算机自动计算与处理成为不可缺或的部分。本文从分析误差产生的原理和类型出发,采用C语言编程对测量数据进行误差自动分析处理。用软件的方法对误差处理不仅可以简化繁琐的计算,更可以提高误差处理的准确率和可靠性,还可以将误差处理软件作为独立的软件模块嵌入到任意的数据信息处理中。
1误差原理分析与数据处理
1.1误差及相关概念
误差是测得值与被测量的真值之间的差[1],其数学表达如式(1)。真值实际上是个理想值,本质上是不存在的,实际上用的是约定真值。约定真值有时称为指定值、最佳估计值、约定值或参考值[2]。根据误差的产生的原因,通常将误差分为系统误差、随机误差、粗大误差。
因为真值不存在,在实际测量中,常用有限次测量数据的算术平均值作为被测量真值的估计值。所以常将作为真值使用,其计算公式见式(2)。
残余误差是测得值与真值的算术平均值的差,用表示,第次测量所得到的残余误差。残余误差表示某次测量值偏离真值的程度。在误差计算中,残余误差是很重要的中间计算结果。
测量的标准差估计值,表示测量值的精度,越小说明测量的精度越高。常用贝赛尔(Bessel)公式计算,计算形式有两种,见公式(3)、(4)。
(1)为误差,为测量值,为真值。
(2)
(3)
(4)
1.2误差类型及判断依据
1.2.1系统误差及判断依据
系统误差是在重复测量时保持恒定不变或按可预见的方式变化的测量误差分量[2]。系统误差是因为仪器不准确,测量条件变化,测量方法不完善等引起。因为系统误差有恒定性或规律性,所以系统误差可以被消除。在计算机误差自动处理过程中,常对测量数据进行系统误差的修正,使测量结果尽可能的接近真值。系统误差又可以分为恒定误差、累进变化误差、周期误差。每种系统误差依据不同的判据进行判别。
累进性系统误差的判别:对于n次等精度测量所得到的残余误差,(=1,2,3…)按照测量顺序先后排列成,,…,,…,将到分成两部分求差,当为偶数时有公式(5),当为奇数时有公式(6)[3]。
为偶数:(5)
为奇数:(6)
若:,则测量数据存在系统误差。
,则测量数据存在累进性误差。
周期性系统误差的判别(阿卑—赫梅特准则):对于n次等精度测量所得到的残余误差为,标准差的估计值为。
当时,测量数据存在周期性误差。
1.2.2粗大误差及判断依据
粗大误差是明显超统计规律预期值的误差[4],它是因为测量人员偶然错误读值、某次不正确的操作或环境的突然干扰造成。对于包含粗大误差的测量值应该被剔除。本文采用肖维纳准则判断粗大误差。如果测量值遵循公式(7)的计算结果,则说明引起该误差的测量值为粗大误差[3]。
(7)
实际上是正态分布置信系数,可以通过查肖维纳准则表得到,也可以通过查正态分布积分表获得。
1.2.3随机误差及其特征
随机误差是在相同条件下对被测量进行重复测量实验,实验数据的误差大小和方向出现没有确定规律的变化。虽然误差的变化没有明确的规律,但只要是大量重复的实验就可以用数理统计的方法来研究随机误差变化的规律。而数理统计的基本特征数字就是数学期望和方差或标准差,因此在研究随机误差时最重要的就是要计算出测量值的数学期望估计值和测量的标准偏差估计值,这样才能知道测量的真值估计值和不确定度大小。所以在处理随机误差时要按照公式(2)计算出,以及按照下面公式(8)计算平均值的标准差的估计值,这个值即为测量结果表达式中随机误差的标准偏差或精度。
(8)
1.3测量数据的处理
测量数据中如果含有粗大误差,则该值被认为是坏值而剔除,如果包含系统误差,则应当根据系统误差的规律对测量数据进行修正。但在找误差的出现规律时,计算量相当大,所以一般都用计算机来完成。在误差处理中,要得到误差的函数经常使用的方法就是回归分析法,其基本方法是先绘制出测量值与引起误差变量的坐标曲线,观察符合哪种基本函数规律,从而运用最小二乘法对函数的系数和常量求解。
2误差算法的软件设计
根据误差算法的分析,如果1次等精度的测量数据有100个测量值,则很难用人工完成,用软件实现误差算法的计算则将问题变得简单化。本文的设计思想是先进行三个重要参数的计算,即先计算出、、,然后根据误差类型的判据进行判断;在对粗大误差和系统误差做出相应处理后,再计算出随机误差;最后计算出该次测量数据的结果。在对系统误差处理中,采用了回归分析方法和最小二乘法原理进行误差变化规律参数的估计,从而得到误差变化的函数关系,进而利用该函数对测量结果进行修正。算法软件用C语言编程,采用自顶向下的方法设计,软件流程如图1所示。
图1误差处理算法的软件流程图
3仿真验证
根据上面的程序流程,用C语言编程实现测量数据的分析和处理。以频率计读数为例,用数字频率计测量脉冲信号源的输出频率,每隔30秒读一次测量值,共读取了21个测量值,测量值依次如下:99.8KHz,99.97KHz,98.8KHz,99.50KHz,99.8KHz,99.98KHz,99.89KHz,99.6KHz,99.71KHz,99.75KHz,99.77KHz,99.62KHz,99.69KHz,99.78KHz,99.78KHz,99.88KHz,99.58KHz,99.12KHz,99.91KHz,99.92KHz,99.78KHz。
已知在有限多次测量中,误差服从正态分布规律。现通过基于上面流程图设计的程序求测量数据中是否有粗大误差,是否存在系统误差,设置信概率为97%,给出信号源的输出频率值的真值范围。
程序运行仿真结果如图2所示。
图2基于C语言的误差算法处理程序运行结果
在程序中,将外部送入的测量数据用数组进行存储,j是待处理的测量数据个数,ch是程序通过查找肖维纳准则表获取的系数。,;xp,dx,dxp分别对应着公式(2)、(4)、(8)的计算值;,。程序自动对输入的21个测量数据进行计算分析,发现一个粗大误差就立即剔除并对去掉该粗大误差后的测量数据重新计算。从上例可以看出,程序第一次计算出粗大误差是第三个测量数据即98.80KHz,当剔除第一次计算的粗大误差后,程序开始重新计算并判断是否还存在粗大误差,通过计算,最后共发现两个粗大误差,即测量数值序列中的98.80KHz,99.12KHz。剔除完粗大误差后程序继续计算并判断有无累进性和周期性误差,最后给出测量值的随机统计特性,并给出在置信概率下的真值的置信区间。
4结束语
本文从误差分析的实用性角度出发,分析误差产生的算法和内在计算的关联,从软件角度实现误差算法,并基于C语言进行程序设计和仿真运行,将大量的误差处理计算交由计算机自动完成,计算结果达到工程实验数据分析的要求,为工程和科研领域提供快速的误差分析工具。同时根据本文实现的误差处理算法能方便的将误差处理应用于嵌入计算中。
作者简介:
唐伟(1976-),男,四川德阳人,硕士研究生学历,主要从事电子和移动通信技术的研究和教学。
|
|
|
|
【对“硅谷杂志:基于软件实现的误差算法自动分析处理”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|