?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 快乐十分复式玩法:分布图法在疏失误差处理中的应?- 工程应用 - 广东快乐十分走势图云南快乐十分走势广东快乐十分走势图云南快乐十分一定牛云南快乐十分单双
你好,欢迎访?广东快乐十分走势图 | 注册

快乐十分复式玩法: 分布图法在疏失误差处理中的应?/h1>
2014/11/13 23:14:44  来源?/span>计测网通讯?/a> 

广东快乐十分走势图 www.4sny7.cn   摘要:本文在简单介绍了常用的疏失误差剔除算法及其各自的优缺点后,着重介绍了利用分布图法剔除疏失误差的方法和优点,并用Visual C++设计了实际的应用开发程序?/p>

  1 引言

  在计量测试中由于各种干扰因素的存?常常会引起疏失误?疏失误差又叫过失误差,是指显然与事实不符的误差。它通常是由于操作者失误、系统内部器件受损或接线松动、脱落、外界突发的冲击引起的。疏失误差的存在对测量结果是一种严重的歪曲,必须予以剔除?/p>

  2 常用的疏失误差剔除算?/strong>

  2·1 莱特准则

  判别疏失误差一般采用莱特准?即把剩余误差绝对值超?σ的数据Xi判为疏失误差点删除。但莱特准则的判据是建立在测量次数n→∞的前提下的。当n值有?特别是当n≤值很小时,这种采用3σ作为判据的方法就不很可靠了。尤其是当n≤10?以n=10为例,由贝塞耳公式得:

  由上式可以看?当n≤10?即使在测量数据中含有疏失误差,应用莱特准则也无法剔除。所?莱特准则只能用于处理大容量样本数据的疏失误差,在处理少量采集数据的疏失误差时存在着很大的局限性?/p>

  2·2 格罗贝斯判据准则

  格罗贝斯判据准则是另一种常用的疏失误差剔除方法,它是基于测得值服从正态分布假设上的一种递归算法。其计算步骤?

  (1)将测试数据按升序排列,并分别计算均值X、标准差σ?/p>

  (2)根据顺序统计的原?找出统计量g的确切分?g的定义为:

  (3)在给定显著水平a(通常?·05?·01)?即可用查表法找出格罗贝斯统计量的临界值g0(n,a),然后将测量顶端值与其比?判断是否应该删除?/p>

  利用格罗贝斯准则进行判据不受样本数据容量大小的限?对单个或多个疏失误差的剔除都有较好的效果,在实际测试分析中得到了大量的应用?/p>

  但格罗贝斯准则判据是一个递归算法,每次只能剔除一个可疑?并要计算一?sigma;,需重复进行判别,直到判定无可疑值为?而且其判别还涉及到查表操作。在用计算机编程实现?必须引入数据库或者大容量数组,影响了程序设计的结构优化,降低了软件的运行速度,在某些需要实时响应的场合受到一定的限制。更重要的是,该准则是以测量数据列服从正态分布为前提?在实际测?尤其是电子测量中,很多数据服从于非正态分?如均匀分布、三角分布等),此时还采用格罗贝斯准则就会产生较大误?影响测试的准确性?/p>

  3 利用分布图法剔除疏失误差

  分布图法是一种新型的数据处理算法,其算法如?

  首先对N个测量结果从小到大进行排?得到测量序列:

  X1,X2,………XN

  其中X1为下极限,XN为上极限?/p>

  再定义中位值为:

  上四分位数Fu为区间[XM,XN]的中位数,下四分位数Fl为区间[X1,XM]的中位数。四分位离散度为:

  认定与中位数的距离大?beta;dF的数据为离异数据,即无效数据的判断区间为[ρ12]:

式中?beta;为常?其大小取决于系统的测量精?通常??等值?/p>

  区间[ρ1,ρ2]内的测量数据被认为是有效的一致性测量数?利用这一有效区间的数据选定可以排除50%的离异值干扰。而且中位值XM和四分位离散度dF的选择与极值点的大小无?仅取决于数据的分布位?有效区间的获得与需要排除的可疑值关系不大。而且用分布图法来获得一致性测量数据的方法不受数据分布的限?能够增强数据处理对不确定因素的适应?即具有鲁棒性?/p>

  在实际编程实现分布图法时,由于该算法不需要复杂的数据结构,同时还具有运算量?计算机编程容易等优点,不仅可以用于校准测试数据的后期处?还可以将其应用于测量的实时数据处理和控制中。下面是笔者用Visual C++开发的程序源代?

  void Distri Graph(int count,float in[100])

  {

  ∥数据排序?/p>

  qksort(in,count);

  ∥定义中位值和四分位离散度?/p>

  If(MOD(count,2)==1)

  {

  i=count+1;

  xm=in[i/2];

  if(MOD(i,4)==0

  {

  fu=(in[i/2+i/4+1]+in[i/2+i/4])/2;

  fl=(in[i/4+1]+in[i/4])/2;

  }

  else

  {

  fu=in[(count+i/2)];

  fl=in[(1+i/2)/2];

  }

  }

  else

  {

  xm=(in[count/2+1]+in[count/2])/2;

  if(MOD(count,4)==0

  {

  fu= (in[count/2 + count/4 + 1] + in

  [count/2 count/4])/2;

  fl=(in[count/4+1]+in[count/4])/2;

  }

  else

  {

  fu=in[(count+1+count/2)/2];

  fl=in[(1+count/2)/2];

  }

  }

  df=fu-fl;

  ∥定义判别区间并进行判断剔除?/p>

  llimit=fl-df;

  hlimit=fu+df;

  for(j=1;j<=count;j++)

  {

  if((in[j]hlimit))

  delete(in,j)

  }

  }

  在程序设计中要注意两?

  (1)中位值的选取是算法的关键,要分别根据数据长度的奇偶分别定义,而且当输入数据分成两段后,仍需要根据两个数据段的奇偶来决定上、下四分位数?/p>

  (2)在该程序的设计中,为了方便起见,数组下标?为起?而不是通常的以0开始?/p>

  4 结束?/strong>

  本文是笔者根据多年从事计量检定工作对数据处理和误差分析的研究总结而成,设计开发的程序经过多次实验运行验证,取得了较满意的分析结果。但由于本人水平有限,算法还有许多有待改进完善的地?文中如有不妥之处,欢迎大家批评指正?/p>

  参考文?/strong>

  1) 肖明耀·误差理论与应?middot;中国计量出版?1985

  2) 刘文?周学?刘辉·现代测试系统·国防科大出版?1995

  3) 腾召?罗隆?童调?middot;智能检测系统与数据融合·机械工业出版?1999

  4) David Bennett?middot;Visual C++开发人员指?middot;机械工业出版?1999

  本文作?/strong>:夏卓君(中国工程物理研究院计量测试中?绵阳621900)

将本文分享至?/span>
分享到新浪微?/div> |

【免责声明】本文仅代表作者个人观点,与中国计量测控网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文?及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容?/p>

计测微信
前沿的计量测试资讯海量呈现,高端的计量测试技术权威发布?br>service@www.4sny7.cn
计测客户端下?/h6>
这里有计量领域最大的社交圈子,您可以在这里交流互动、拓展人脉、施展才华。iPhone
这里有计量领域最大的社交圈子,您可以在这里交流互动、拓展人脉、施展才华。Android

共有0参与评论,查看评论

用户名: 密码?input type="password" style="width: 80px;" class="fbbo01" id="password" value="******" onkeypress="quickSubmit(event);" onclick="if(this.value==valueofpassinout)this.value='';" onblur="if(this.value=='')this.value=valueofpassinout;" onfocus="if(this.value==valueofpassinout)this.value='';" />