




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子测量技术大作业目录题目一 测量数据误差处理1(1)提供测试数据输入、粗大误差判别准则选择等的人机界面;1(2)编写程序使用说明;1(3)通过实例来验证程序的正确性。2题目二 时域反射计2(1)时域反射计简介2(2)时域反射计原理2(3)时域反射计(TDR)组成2(4)仿真与结果2附录2题目一 测量数据误差处理2-21 参考例2-2-6的解题过程,用C语言或Matlab设计测量数据误差处理的通用程序,要求如下:(1) 提供测试数据输入、粗大误差判别准则选择等的人机界面;图 1 测试数据误差处理的输入(2) 编写程序使用说明;本题用的是C语言编写的数据误差处理的通用程序,调试编译借助了CodeBlocks软件。运行exe文件后,只需输入所需测试数据的数目、各数值大小并选择误差处理方式与置信概率即可得出处理结果。在程序的子函数中已经将ta值表、肖维纳准则表及格拉布斯准则表的所有数据存入,无需人工查表填入。其他具体程序内容可见附录。图 2 程序运行流程图(3) 通过实例来验证程序的正确性。例2-2-6中的原始数据如下表1表 1 测量电压原始数据测量序号i1234567891011电压/U2.722.752.652.712.622.452.622.702.672.732.74由书上计算可得:计算所得结果与图3显示结果近似相等,说明程序编译无误。图 3 数据处理后的结果显示题目二 时域反射计6-14 在Multisim环境下,基于Tektronix TDS204虚拟示波器设计一种时域反射计,给出电路原理图和实验仿真结果。(本题设计以时域反射计测量阻抗为例)(1) 时域反射计简介时域反射计(TDR)用来测量信号在通过某类传输环境传导时引起的反射,如电路板轨迹、电缆、连接器等等。TDR仪器通过介质发送一个脉冲,把来自“未知”传输环境的反射与标准阻抗生成的反射进行比较。TDR 显示了在沿着一条传输线传播快速阶跃信号时返回的电压波形。波形结果是入射阶跃和阶跃遇到阻抗偏差时产生的反射的组合。(2) 时域反射计原理时域反射计TDR是最常用的测量传输线特征阻抗的仪器,它是利用时域反射的原理进行特性阻抗的测量。图 4 TDR原理图(3) 时域反射计(TDR)组成快沿信号发生器:典型的发射信号的特征是:幅度200mv,上升时间35ps,频率250kHz方波。 采样示波器:通用的采样示波器; 探头系统:连接被测件和TDR仪器。(4) 仿真与结果图 5 时域反射计仿真电路图 6 信号发生器设置选项图 7 信号发生器上升沿时间设置图 8 示波器仿真显示结果在图8中,第一条黄线为终端开路(反射系数为1)时的结果;第二条蓝线为终端有负载阻抗时的结果;第三条为终端短路(反射系数为-1)时的结果。图 9 TDR测试信号理论运行特征图图 10 被测传输线特征阻抗的计算附录#include #include /求绝对值的函数,因为“abs”只适用于整数float Abs(float a) if(a0.0) return a; return-a;/计算平均值的子函数float Average(float a,int n) int i; float sum=0.0; for(i=0; i=n-1; i+) sum+=ai; return sum/n;/计算方差的子函数float Variance(float a,int n) int i; float sum=0.0; float xi=Average(a,n); for(i=0; i=n-1; i+) sum+=(ai-xi)*(ai-xi); return (float)sqrt(sum/(n-1);/删除数组中指定位置的子函数void Delete(float a,int n,int i) int j; for(j=i; j=n-2; j+) aj=aj+1; /粗大误差处理1/莱特检验法,出口参数为所剔除坏值的个数int Laite(float a,int n) int t=0; /t用来装粗大误差的个数 int i; int z; int flag=1; float aver; float var; while(flag) z=n; aver=Average(a,n); var=Variance(a,n); for(i=0; i3*var) printf( %f是坏值!n,ai); Delete(a,n,i); n-; t+; if(n=z) flag=0; return t;/粗大误差处理2/肖维纳准则int Xiaown(float a,int n) float ch38= 0,0,0,0,0,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 ; /肖维纳准则表 int t=0; /t用来装粗大误差的个数 int i; int z; int flag=1; float aver; float var; while(flag) z=n; aver=Average(a,n); var=Variance(a,n); for(i=0; ichn*var) printf( %f是坏值!n,ai); Delete(a,n,i); n-; t+; if(z=n) flag=0; return t;/粗大误差处理3/格拉布斯准则/格拉布斯准则表1:95%float Ge95(int n) float Ge30= 0,0,0,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 ; if(n=25) return Gen; switch (n) case 30: return 2.74; case 35: return 2.81; case 40: return 2.87; case 50: return 2.96; case 100: return 3.17; default: printf( 输入n值错误!); return 0.0; /格拉布斯准则表2: 99%float Ge99(int n) float Ge30= 0,0,0,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 ; if(n=25) return Gen; switch (n) case 30: return 3.10; case 35: return 3.18; case 40: return 3.24; case 50: return 3.34; case 100: return 3.58; default: printf( 输入n值错误!); return 0.0; /格拉布斯执行函数int Glbs(float a,int n,int m) int t=0; /t用来装粗大误差的个数 int i; int z; float aver; float var; int flag=1,flag1=1,flag2=1; while(flag) if(m=1) while(flag1) z=n; aver=Average(a,n); var=Variance(a,n); for(i=0; iGe95(n)*var) printf( %f是坏值!n,ai); Delete(a,n,i); n-; t+; if(z=n) flag1=0; flag=0; return t; else if(m=2) while(flag2) z=n; aver=Average(a,n); var=Variance(a,n); for(i=0; iGe99(n)*var) printf( %f是坏值!n,ai); Delete(a,n,i); n-; t+; if(z=n) flag2=0; flag=0; return t; else printf( 输入有错!请重新输入:n); /误差处理子函数int Wucha(float a,int n,int x,int m) int pa=1; int t; int i; while (pa) if(x=1) pa=0; t=Laite(a,n); n=n-t; printf( 处理后的数据如下:ntt); for(i=0; i=n-1; i+) printf(%ft,ai); return n; else if(x=2) pa=0; t=Xiaown(a,n); n=n-t; printf( 处理后的数据如下:ntt); for(i=0; i=n-1; i+) printf(%ft,ai); return n; else if(x=3) pa=0; t=Glbs(a,n,m); n=n-t; printf( 处理后的数据如下:ntt); for(i=0; i=n-1; i+) printf(%ft,ai); return n; else printf( 输入错误,请重新输入!n); /判断有无累进性误差的子函数float Max(float a,int n) int i; float f=Average(a,n); float x,y; x=Abs(a0-f); for(i=0; i=x) x=Abs(ai-f); return x;void Mlkf(float a,int n) int i; float sum1=0.0,sum2=0.0; float f=Average(a,n); if(n%2=0) /偶数个 for(i=0; i=n/2-1; i+) sum1=sum1+(ai-f); for(i=n/2; i=Max(a,n) printf( 测量中存在累进性系统误差。n); else printf( 测量中不存在累进性系统误差。n); if(n%2=1) /奇数个 for(i=0; i=(n-1)/2-1; i+) sum1=sum1+(ai-f); for(i=(n+1)/2; i=Max(a,n) printf( 测量中存在累进性系统误差。n); else printf( 测量中不存在累进性系统误差。n); /判断有无周期性误差的子函数void Zwc(float a,int n) float sum=0.0; int i; float f=Average(a,n); for(i=0; isqrt(n-1)*Variance(a,n)*Variance(a,n) printf( 测量中存在周期性系统误差。n); else printf( 测量中不存在周期性系统误差。n);/置信区间子函数float Zhi05(int n) float z15= 0,0,1.000,0.816,0.765,0.741,0.727,0.718,0.711,0.706, 0.703,0.700 ; if(n=11)return zn; switch (n) case 15: return 0.691; case 20: return 0.687; case 25: return 0.684; case 30: return 0.683; case 40: return 0.681; case 60: return 0.679; case 120: return 0.677; case 999: /在这里把999作为无穷大! return 0.674; default: printf( 输入n值错误!); return 0.0; float Zhi06(int n) float z15= 0,0,1.376,1.061,0.978,0.941,0.920,0.906,0.896, 0.889,0.883,0.879 ; if(n=11)return zn; switch (n) case 15: return 0.866; case 20: return 0.860; case 25: return 0.856; case 30: return 0.854; case 40: return 0.851; case 60: return 0.848; case 120: return 0.845; case 999: /在这里把999作为无穷大! return 0.842; default: printf( 输入n值错误!); return 0.0; float Zhi07(int n) float z15= 0,0,1.963,1.386,1.250,1.190,1.156,1.134,1.119, 1.108,1.100,1.093 ; if(n=11)return zn; switch (n) case 15: return 1.074; case 20: return 1.064; case 25: return 1.058; case 30: return 1.055; case 40: return 1.050; case 60: return 1.046; case 120: return 1.041; case 999: /在这里把999作为无穷大! return 1.036; default: printf( 输入n值错误!); return 0.0; float Zhi08(int n) float z15= 0,0,3.078,1.886,1.638,1.553,1.476,1.440,1.415, 1.397,1.383,1.372 ; if(n=11)return zn; switch (n) case 15: return 1.341; case 20: return 1.325; case 25: return 1.316; case 30: return 1.310; case 40: return 1.303; case 60: return 1.296; case 120: return 1.289; case 999: /在这里把999作为无穷大! return 1.282; default: printf( 输入n值错误!); return 0.0; float Zhi09(int n) float z15= 0,0,6.314,2.920,2.353,2.132,2.015,1.943,1.895, 1.860,1.833,1.812 ; if(n=11)return zn; switch (n) case 15: return 1,753; case 20: return 1.725; case 25: return 1.708; case 30: return 1.697; case 40: return 1.684; case 60: return 1.671; case 120: return 1.658; case 999: /在这里把999作为无穷大! return 1.645; default: printf( 输入n值错误!); return 0.0; float Zhi095(int n) float z15= 0,0,12.706,4.303,3.182,2.776,2.571,2.447,2.365, 2.306,2.262,2.228 ; if(n=11)return zn; switch (n) case 15: return 2.131; case 20: return 2.086; case 25: return 2.060; case 30: return 2.042; case 40: return 2.021; case 60: return 2.000; case 120: return 1.980; case 999: /在这里把999作为无穷大! return 1.960; default: printf( 输入n值错误!); return 0.0; float Zhi098(int n) float z15= 0,0,31.821,6.965,4.541,3.747,3.365,3.143,2.998, 2.896,2.821,2.764 ; if(n=11)return zn; switch (n) case 15: return 2.602; case 20: return 2.528; case 25: return 2.485; case 30: return 2.457; case 40: return 2.423; case 60: return 2.390; case 120: return 2.358; case 999: /在这里把999作为无穷大! return 2.326; default: printf( 输入n值错误!); return 0.0; float Zhi099(int n) float z15= 0,0,63.657,9.925,5.841,4.604,4.032,3.707,3.499, 3.355,3.250,3.169 ; if(n=11)return zn; switch (n) case 15: return 2.947; case 20: return 2.845; case 25: return 2.787; case 30: return 2.750; case 40: return 2.704; case 60: return 2.660; case 120: return 2.617; case 999: /在这里把999作为无穷大! return 2.576; default: printf( 输入n值错误!); return 0.0; float Zhi0999(int n) float z15= 0,0,636.619,31.598,12.924,8.610,6.859,5.959,5.405, 5.041,4.781,4.587 ; if(n=11)return zn; switch (n) case 15: return 4.073; case 20: return 3.850; case 25: return 3.725; case 30: return 3.646; case 40: return 3.551; case 60: return 3.460; case 120: return 3.373; case 999: /在这里把999作为无穷大! return 3.291; default: printf( 输入n值错误!); return 0.0; /计算置信区间的子函数void Zhix(float a,int n,int t) float p=Average(a,n); float f=Variance(a,n); int flag=1; float pa; f=f/(sqrt(n); while(flag) switch(t) case 1: pa=Zhi05(n); flag=0; break; case 2: pa=Zhi06(n); flag=0; break; case 3: pa=Zhi07(n); flag=0; break; case 4: pa=Zhi08(n); flag=0; break; case 5: pa=Zhi09(n); flag=0; break; case 6: pa=Zhi095(n); flag=0; break; case 7: pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年黑龙江省大庆市【注册会计】公司战略与风险管理预测试题含答案
- 2025年岗位安全培训考试试题及参考答案(综合题)
- 2025年保密知识考试复习题库教育考试复习题库及答案解析
- 村人居垃圾付费协议书5篇
- 水果风味果糕与糕点创新创业项目商业计划书
- 2025年安全生产月标准化试题及答案及答案
- 5.13.2 血液循环(教学设计)生物苏教版2024八年级上册
- 海洋渔业品牌与市场营销创新创业项目商业计划书
- 小麦深加工产业孵化器运营计划创新创业项目商业计划书
- 智能写作辅助软件创新创业项目商业计划书
- 脓毒性休克护理要点
- 第1课 追求向上向善的道德
- “趣”破“蛐蛐”小妙招社交魔法课主题班会
- 《数据分析与决策》课件
- 海洋空间资源开发与国家安全教学课件-2024-2025学年人教版(2019)高中地理选择性必修三
- YY/T 1686-2024采用机器人技术的医用电气设备术语、定义、分类
- 职业素养 课件 专题七 主动 给自己创造机会
- 住宅小区保洁服务合同范本
- 《护士输血流程》课件
- 小学英语“have”和“has”的用法(附练习题)
- 《股骨干骨折骨折》课件
评论
0/150
提交评论