您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2017电子测量大作业 测量误差理论和测量数据处理
测量误差理论和测量数据处理班级:姓名:学号:指导老师:1.变值系统误差的判定1.1马利科夫判据马利科夫判据是常用的判别有无累进性系统误差的方法。把n个等精密度测量值所对应的残差按测量顺序排列,把残差分成前后两部分求和,再求其差值。若测量中含有累进性系统误差,则前后两部分残差和明显不同,差值应明显地异于零。所以马利科夫判据是根据前后两部分残差和的差值来进行判断。当前后两部分残差和的差值近似等于零,则上述测量数据中不含累进性系统误差,若其明显地不等于零(与最大的残差值相当或更大),则说明上述测量数据中存在累进性系统误差。n为偶数时:n为奇数时:若,则存在累进性系差,否则不存在累进性系差。1.2阿卑-赫梅特判据通常用阿卑—赫梅特判据来检验周期性系统误差的存在。把测量数据按测量顺序排列,将对应的残差两两相乘,然后求其和的绝对值,再与总体方差的估计相比较,若式成立则可认为测量中存在周期性系统误差。当我们按照随机误差的正态分布规律检查测量数据时,如果发现应该剔除的粗大误差占的比例较大时,就应该怀疑测量中含有非正态分布的系统误差。存在变值系统误差的测量数据原则上应舍弃不用。但是,若虽然存在变值系统误差,但残差的最大值明显地小于测量允许的误差范围或仪器规定的系统误差范围,则测量数据可以考虑使用,在继续测量时需密切注意变值系统误差的情况。2.粗大误差剔除的常用准则2.1莱特准则若,则xi为异常值剔除不用;否则不存在异常值。莱特检验法是一种测量数据服从正态分布情况下判别异常值的方法,主要用于测量数据数量较多的情况,一般要求测量次数n大于10。2.2肖维纳准则若,则xi为异常值应剔除不用。否则不存在异常值。肖维纳检验法也是以正态分布作为前提的,假设多次重复测量所得n个测量值中,当残差绝对值时,则认为是粗大误差。式中n是系数,可通过查肖维纳准则表得到。要注意的是肖维纳检验法是建立在测量数据服从正态分布的前提下,要求在n>5时使用。另外,肖维纳检验法没有给出剔除数据判据对应得置信概率。2.3格拉布斯准则nniiniivvMnniiniivvM2)3(2)1(1若)(ˆ12111Xnvvniii)(ˆ3,10Xxxni)(ˆ,5Xchxxni若,则xi为异常值应剔除不用。否则不存在异常值。格拉布斯检验法是在未知总体标准偏差的情况下,对正态样本或接近正态样本异常值进行判别的一种方法,是一种从理论上就很严密、概率意义明确、经实验证明效果较的判据。对g值根据重复测量次数n及置信概率由格拉布斯准则表查出。注意以下几个问题:(1)当偏离正态分布、测量次数少时,检验可靠性将受影响。(2)逐个剔除原则:若有多个可疑数据同时超过检验所定置信区间,应逐个剔除,先剔出残差绝对值最大的,然后重新计算标准偏差估计值,再行判别。若有多个相同数据超出范围时,也应逐个剔除。(3)在一组测量数据中,可疑数据应极少;反之,说明系统工作不正常。(4)剔除异常数据是一件需慎重对待的事。3.测量结果的置信问题置信区间是指由样本统计量所构造的总体参数的估计区间。在统计学中,一个概率样本的置信区间是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。置信区间给出的是被测量参数的测量值的可信程度,即前面所要求的“一个概率”。对于一组给定的样本数据,其平均值为μ,标准偏差为σ,则其整体数据的平均值的100(1-α)%置信区间为(μ-Ζα/2σ,μ+Ζα/2σ),其中α为非置信水平在正态分布内的覆盖面积,Ζα/2即为对应的标准分数。有限次测量结果的置信问题通常是以t分布为基础来研究的。在n为有限次,t分布情况下,置信系数为ta,置信区间为xtxxtxaa,置信概率为)](ˆ)()(ˆ[][xtxXMxtxPttPaaa,其中XXMxnxXMxt,自由度k=n-1(n为测量次数)。已知自由度,通过t分布表,可进行置信系数ta与置信概率P的互查。)(ˆ,2nXgxxi题目2-21:参考例2-2-6的解题过程,用C语言或MATLAB设计测量数据处理的通用程序,要求如下:(1)提供测试数据输入、粗大误差判别准则等的人机界面;(2)编写程序使用说明;(3)通过实例来验证程序的正确性。用vc++6.0编写程序,可实现:(1)均值、标准差、残差的计算;(2)变值系统误差的判定;(3)粗大误差剔除准则的选择;(4)置信概率的选择;(5)置信区间的确定等。程序运行截图如下:(测试数据来自例2-2-6,画黄线部分为手动输入)经验证,计算结果无误。源代码:#includestdio.h#includemath.hmain(){floatx[50],v[50],sum=0,y=0,dx,s1,s2,vmax,v1=0,v2=0,v3=0,a,b;doublech,g,t;doublech1[33]={1.65,1.73,1.79,1.86,1.92,1.96,2.00,2.04,2.07,2.10,2.13,2.16,2.18,2.20,2.22,2.24,2.26,2.28,2.30,2.32,2.33,2.34,2.35,2.37,2.38,2.39,2.45,2.50,2.58,2.64,2.74,2.81,3.02};//肖特纳准则表doubleg1[28]={1.15,1.46,1.67,1.82,1.94,2.03,2.11,2.18,2.23,2.29,2.33,2.37,2.41,2.44,2.47,2.50,2.53,2.56,2.58,2.60,2.62,2.64,2.66};//格拉布斯准则表0.95doubleg2[28]={1.16,1.49,1.75,1.94,2.10,2.22,2.32,2.41,2.48,2.55,2.61,2.66,2.71,2.75,2.79,2.82,2.85,2.88,2.91,2.94,2.96,2.99,3.01};//格拉布斯准则表0.99doublet1[30]={12.706,4.303,3.182,2.776,2.571,2.447,2.365,2.306,2.262,2.228,2.201,2.179,2.160,2.145,2.131,2.120,2.110,2.101,2.093,2.086,2.080,2.074,2.069,2.064,2.060,2.056,2.052,2.048,2.045,2.042};//t分布表0.95doublet2[30]={63.657,9.925,5.841,4.604,4.032,3.707,3.499,3.355,3.250,3.169,3.106,3.054,3.012,2.977,2.947,2.921,2.898,2.878,2.861,2.845,2.831,2.819,2.807,2.797,2.787,2.779,2.771,2.763,2.756,2.750};//t分布表0.99inti,j,n,u;printf(请输入数据个数(不超过30个)n=);scanf(%d,&n);printf(请输入%d个数据:\n,n);for(i=0;in;i++)scanf(%f,&x[i]);for(j=0;jn;j++){y=0;printf(\n请选择粗大误差判别准则:\n);printf(1.莱特准侧\n2.肖维纳准则\n3.格拉布斯准则(置信概率为0.95)\n4.格拉布斯准则(置信概率为0.99)\n\n);scanf(%d,&u);for(i=0;in;i++)sum=sum+x[i];dx=sum/n;//求平均值printf(输出平均值:%.4f\n,dx);printf(输出残差值:\n);for(i=0;in;i++){v[i]=x[i]-dx;//求残差printf(%4.4f:,v[i]);y=x[i]*x[i]+y;}putchar('\n');s2=sqrt((y-n*dx*dx)/(n-1));//求标准差printf(输出标准差值:%.6f\n,s2);if(v[0]0)vmax=-v[0];elsevmax=v[0];for(i=0;in-1;i++){if(v[i+1]0)v[i+1]=0-v[i+1];if(vmaxv[i+1])vmax=v[i+1];}printf(输出残差最大绝对值vmax=%.4f\n\n,vmax);for(i=0;in;i++)if(vmax==v[i]){i=i+1;//第i个数残差绝对值最大break;}if(u==1){if(n10){printf(莱特准则不可用。请选择其他准则:\n\n);scanf(%d,&u);}elseif(vmax3*s2)printf(由莱特准则可知第%d个数据为异常值\n\n,i);else{printf(由莱特准则可知该数据无异常值\n\n);break;}}if(u==2){ch=ch1[n-5];printf(ch=%.2f\n,ch);if(vmaxch*s2)printf(由肖维纳准则可知第%d个数据为异常值\n\n,i);else{printf(由肖维纳准则可知该数据无异常值\n\n);break;}}if(u==3){if(n=25)g=g1[n-3];else{if(n==30)g=2.74;if(n==35)g=2.81;if(n==40)g=2.87;if(n==50)g=2.96;if(n==100)g=3.17;}printf(g=%.2f\n,g);if(vmaxg*s2)printf(由格拉布斯准则可知第%d个数据为异常值\n\n,i);else{printf(由格拉布斯准则可知该数据无异常值\n\n);break;}}if(u==4){if(n=25)g=g2[n-3];else{if(n==30)g=3.10;if(n==35)g=3.18;if(n==40)g=3.24;if(n==50)g=3.34;if(n==100)g=3.58;}printf(g=%.2f\n,g);if(vmaxg*s2)printf(由格拉布斯准则可知第%d个数据为异常值\n\n,i);else{printf(由格拉布斯准则可知该数据无异常值\n\n);break;}}if(in)for(i=i-1;in-1;i++)x[i]=x[i+1];n=n-1;sum=0;}printf(判断数据系统误差:\n);if(n/2==0)//偶数个数据{for(i=0;in/2;i++)v1=v1+v[i];for(i=n/2;in;i++)v2=v2+v[i];if(v1v2&&v1-v2=vmax)printf(由马利科夫判据知该数据存在累进性系统误差\n);elseprintf(由马利科夫判据知该数据不存在累进性系统误差\n);if(v1v2&&v2-v1=vmax)printf(由马利科夫判据知该数据存在累进性系统误差\n);elseprintf(由马利科夫判据知该数据不存在累进性系统误差\n);}else//奇数个数据{for(i=0;i(n-1)/2;i++)v1=v1+v[i];for(i=(n-1)/2;in;i++)v2=v2+v[i];if(v1v2)if(v1-v2=vmax)printf(由马利科夫判据知该数据存在累进性系统误差\n);elseprintf(由马利科夫判据知该数据不存在累进性系统误差\n);if(v1v2)if(v2-v1=vmax)printf(由马利科夫判据知该数据存在累进性系统误差\n);elseprintf(由马利科夫判据知该数据不存在累进性系统误差\n);}for(i=0;in-1;i++)v3=v3+v[i]*v[i+1];if(v3sqrt(n-1)*s2)printf(由阿卑-赫梅特判据知该数据存在周期性系统
本文标题:2017电子测量大作业 测量误差理论和测量数据处理
链接地址:https://www.777doc.com/doc-4614351 .html