针对基于最小二乘法的ICP 曲面匹配算法难以处理待比较曲面的局部大变形问题, 提出一种改进算 法。即采用遗传算法确定曲面初始相对位置以保证匹配优化结果为全局最优值, 利用ICP 算法匹配结果构造 偏差阈值, 以此阈值过滤点群后再以最小二乘法进行匹配处理, 消除局部大变形影响, 获得合理的变换矩阵。以此变换矩阵变换初始点群再进行误差计算, 从而获得理想的匹配结果
上传时间: 2017-07-02
上传用户:qb1993225
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定义 sfr WDT_CONTR = 0xe1;//stc2051的看门狗?????? /**********全局常量************/ //写卡的命令 #define write_command0 0//写密码 #define write_command1 1//写配置字 #define write_command2 2//密码写数据 #define write_command3 3//唤醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //读卡的时间参数us #define ts_min 250//270*11.0592/12=249//取近似的整数 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10调整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI总线 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//测试绿灯 sbit led_light1 = P1^5;//测试红灯 sbit led_light_ok = P1^1;//读卡成功标志 sbit fengmingqi = P1^5; /***********全局变量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存储卡上用户数据(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram uchar command; //第一个命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //缓存定时值,因用同一个定时器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //缓存定时值,因用同一个定时器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函数原型*****************/ //读写操作 void f_readcard(void);//全部读出1~7 AOR唤醒 void f_writecard(uchar x);//根据命令写不同的内容和操作 void f_clearpassword(void);//清除密码 void f_changepassword(void);//修改密码 //功能子函数 void write_password(uchar data *data p);//写初始密码或数据 void write_block(uchar x,uchar data *data p);//不能用通用指针 void write_bit(bit x);//写位 /*子函数区*****************************************************/ void delay_2(uint x) //延时,时间x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能频繁的复位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允许接收 //SCON =0x50; //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1, //REN=1允许接收 TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位) TCON = 0x40; //设定时器1 允许开始计时(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //启动定时器 WDT_CONTR = 0x3c;//使能看门狗 p_U2270B_Standby = 0;//单电源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//读卡 { EA = 0;//全关,防止影响跳变的定时器计时 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用唤醒功能来防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作码读0页 write_bit(0); write_password(&bankdata[24]);//密码block7 p_U2270B_CFE =1 ;// delay_2(516);//编程及确认时间5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断? while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定时器晚启动10个周期 //同步头 if((324 < a.W) && (a.W < 353)) ;//检测同步信号1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //读0~7块的数据 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8个位 { //等待下降沿的到来 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再赋值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//读卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//写卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//写密码:初始化密码 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 for(i = 0;i < 35;i++) { write_bit(1);//写数据位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//测试使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密码存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡参数:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密码写数据 { uchar data*data p; p = &bankdata[24]; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_password(p);//发口令 write_bit(0);//写锁定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//写数据 } else if(x == write_command3)//aor //唤醒 { //cominceptbuff[1]操作码10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密码 p_U2270B_CFE = 1;//此时数据不停的循环传出 } else //停止操作码 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密码 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密码 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作码10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//写新配置参数:pwd=0 //密码无效:即清除密码 DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密码 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密码 DATA = 0x80;//操作码10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//写新密码 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密码存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函数***********************************/ void write_bit(bit x)//写一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延时448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写0 } } /*******************写一个block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0数据 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //读卡 f_writecard(command1); //写卡 f_clearpassword(); //清除密码 f_changepassword(); //修改密码 } }
标签: 12345
上传时间: 2017-10-20
上传用户:my_lcs
delay.c 文件实现iic的精准延迟..如果有其他的精准延迟程序可以替代.miic.c 文件 实现模拟iic通信tcs34725.c 文件实现对颜色传感器的通信 通信常用程序如下TCS34725_Init() 为颜色传感器初始化程序 返回值 true或者false 例 if(TCS34725_Init()==true)TCS34725_GetRawData() 为采集颜色. 返回值 true或者false 例 if(TCS34725_GetRawData()==true) 颜色数据储存在已经定义的静态变量中.颜色读取 为 调用u16 GetRData(void);u16 GetGData(void);u16 GetBData(void);u16 GetCData(void); 这四个函数读取静态变量的数值并分别返回16位的R,G,B,C值.RGBLEDOFF RGBLEDON 分别是灯光开关.颜色传感器,采集时长设置在 tcs34725.c 文件中 的void TCS34725_Setup(void){ TCS34725_SetIntegrationTime(TCS34725_INTEGRATIONTIME_154MS); TCS34725_SetGain(TCS34725_GAIN_16X);}TCS34725_SetIntegrationTime 是设置单次采集时长TCS34725_SetGain 是设置多次采集的次数. 这两个函数需要的参数 选择在tcs34725.h 中. 自行组合在速度和准确间取舍.
上传时间: 2022-06-11
上传用户:XuVshu
51单片机自动浇花器源程序(附PCB文件),1、土壤干湿度传感器实时给单片机传输信号。2、按键设置土壤干湿度阈值,实现土壤水分的动态控制。3、液晶实时显示土壤湿度情况,所设置的阈值,直观明了。4、ADC0832将模拟信号转换成数字信号传给单片机。自动浇花系统采用51单片机+LCD1602液晶+土壤传感器+继电器+ADC0832+水泵设计而成。系统三个按键分别是:系统复位键、设置键、加键、减键。
上传时间: 2022-07-19
上传用户:
1.1芯片特性◆计量√提供全波、基波有功电能,5000.1动态范围内,非线性误差<0.1%,满足0.58和0.28级有功电能表精度要求√提供全波、基波无功电能,5000.1动态范围内,非线性误差<0.1%√提供全波、基波视在电能√提供有功、无功功率方向,支持无功四象限判断√具有潜动启动功能,启动阀值可调√电表常数可调√提供有功、无功、视在的快速脉冲计数√提供全波、基波,有功、无功和视在脉冲输出◆测量√提供全波和基波有功、无功、视在功率√提供全波、基波和谐波三相电压电流有效值√提供全波、基波功率因数√提供电压线频率,测量误差<0.02%√提供各相电压电流相角,测量误差<0.02°√提供七路过零检测,过零阈值可设置√提供电压相序错检测√提供失压指示,失压阈值可设置√提供灵活的电压、电流波形缓存数据√提供电压暂降检测√提供过压、过流检测
标签: rn8302b
上传时间: 2022-07-27
上传用户:
电子元器件抗ESD技术讲义:引 言 4 第1 章 电子元器件抗ESD损伤的基础知识 5 1.1 静电和静电放电的定义和特点 5 1.2 对静电认识的发展历史 6 1.3 静电的产生 6 1.3.1 摩擦产生静电 7 1.3.2 感应产生静电 8 1.3.3 静电荷 8 1.3.4 静电势 8 1.3.5 影响静电产生和大小的因素 9 1.4 静电的来源 10 1.4.1 人体静电 10 1.4.2 仪器和设备的静电 11 1.4.3 器件本身的静电 11 1.4.4 其它静电来源 12 1.5 静电放电的三种模式 12 1.5.1 带电人体的放电模式(HBM) 12 1.5.2 带电机器的放电模式(MM) 13 1.5.3 充电器件的放电模型 13 1.6 静电放电失效 15 1.6.1 失效模式 15 1.6.2 失效机理 15 第2章 制造过程的防静电损伤技术 2.1 静电防护的作用和意义 2.1.1 多数电子元器件是静电敏感器件 2.1.2 静电对电子行业造成的损失很大 2.1.3 国内外企业的状况 2.2 静电对电子产品的损害 2.2.1 静电损害的形式 2.2.2 静电损害的特点 2.2.3 可能产生静电损害的制造过程 2.3 静电防护的目的和总的原则 2.3.1 目的和原则 2.3.2 基本思路和技术途径 2.4 静电防护材料 2.4.1 与静电防护材料有关的基本概念 2.4.2 静电防护材料的主要参数 2.5 静电防护器材 2.5.1 防静电材料的制品 2.5.2 静电消除器(消电器、电中和器或离子平衡器) 2.6 静电防护的具体措施 2.6.1 建立静电安全工作区 2.6.2 包装、运送和存储工程的防静电措施 2.6.3 静电检测 2.6.4 静电防护的管理工作 第3章 抗静电检测及分析技术 3.1 抗静电检测的作用和意义 3.2 静电放电的标准波形 3.3 抗ESD检测标准 3.3.1 电子元器件静电放电灵敏度(ESDS)检测及分类的常用标准 3.3.2 标准试验方法的主要内容(以MIL-STD-883E 方法3015.7为例) 3.4 实际ESD检测的结果统计及分析 3.4.1 试验条件 3.4.2 ESD评价试验结果分析 3.5 关于ESD检测中经常遇到的一些问题 3.6 ESD损伤的失效定位分析技术 3.6.1 端口I-V特性检测 3.6.2 光学显微观察 3.6.3 扫描电镜分析 3.6.4 液晶分析 3.6.5 光辐射显微分析技术 3.6.6 分层剥离技术 3.6.7 小结 3.7 ESD和EOS的判别方法讨论 3.7.1 概念 3.7.2 ESD和EOS对器件损伤的分析判别方法 第4 章 电子元器件抗ESD设计技术 4.1 元器件抗ESD设计基础 4.1.1抗ESD过电流热失效设计基础 4.1.2抗场感应ESD失效设计基础 4.2元器件基本抗ESD保护电路 4.2.1基本抗静电保护电路 4.2.2对抗静电保护电路的基本要求 4.2.3 混合电路抗静电保护电路的考虑 4.2.4防静电保护元器件 4.3 CMOS电路ESD失效模式和机理 4.4 CMOS电路ESD可靠性设计策略 4.4.1 设计保护电路转移ESD大电流。 4.4.2 使输入/输出晶体管自身的ESD阈值达到最大。 4.5 CMOS电路基本ESD保护电路的设计 4.5.1 基本ESD保护电路单元 4.5.2 CMOS电路基本ESD保护电路 4.5.3 ESD设计的辅助工具-TLP测试 4.5.4 CMOS电路ESD保护设计方法 4.5.5 CMOS电路ESD保护电路示例 4.6 工艺控制和管理
上传时间: 2013-07-13
上传用户:2404
随着工业技术的不断发展,大型结构件的应用越来越多。在这些大型结构件的焊接生产中存在大量的弯曲角焊缝和折线角焊缝,实现这些焊缝的自动化焊接对于提高生产效率和保证产品质量具有非常重要的意义。这些工件结构庞大,很多焊接作业必须在现场进行,难以采用手臂式机器人进行自动焊接,也难以采用编程或示教的方式进行焊缝跟踪;另外在对这些焊缝进行自动焊接时,不仅要控制焊枪跟踪焊缝移动,同时还要调整焊枪的倾角,以保证焊接质量。 为此,本文以轮式移动焊接机器人为平台,解决大范围移动焊接问题;同时采用旋转电弧作为传感器,进行焊枪偏差识别与倾角检测,从而实现大型构件角焊缝自动焊接。研究内容主要包括:焊接电流信号的滤波处理;焊枪偏差与倾角检测;水平弯曲角焊缝、具有直角转弯的角焊缝和水平折线角焊缝跟踪及焊枪倾角调整控制器的设计。 针对焊接电流信号易受外界噪声干扰影响的问题,本文提出以软阈值小波滤波为核心的组合滤波算法,对旋转电弧传感器采集到的电流信号进行滤波处理,使电流波形得到了明显地改善,提高了电流信号的信噪比,为焊枪的偏差和倾角检测奠定了基础。
上传时间: 2013-04-24
上传用户:yan2267246
印刷电路板( PCB)是集成各种电子元器件的信息载体,在各个领域得到了广泛的应用。近年来随着印刷电路板生产复杂度和产量的提高,传统PCB缺陷检测方式因接触受限、高成本、低效率等因素,已经逐渐不能满足现代检测需要,因此研究实现一种PCB缺陷的自动检测系统具有很大的现实意义和实用价值。 @@ 本论文根据机器视觉检测理论,运用数字图像处理技术,构建了一套PCB缺陷自动检测系统方案。该系统主要由光照、CCD摄像机、图像采集卡、运动控制台及计算机图像处理软件组成。其中图像处理软件部分作为本论文的核心,着重研究了其关键功能模块包括图像预处理、阈值分割、图像识别几个部分算法的选择与设计,并在MATLAB 7.0的环境下进行仿真。 @@ 运用现代成熟的数字图像处理技术,本文实现了PCB缺陷的软件检测方案。在预处理模块中,结合PCB板的特点运用图像预处理手段得到高质量的PCB图像。在阈值分割模块中,实现了四种当前成熟的阈值分割算法,以得到特征清晰、低噪声的PCB二值图像。在识别模块中结合电路板的短路、断路、毛刺、缺损、空洞五大缺陷的特征,设计相应算法并予以实现,并提示缺陷信息。 @@关键词:缺陷检测;图像预处理;图像分割;图像识别
上传时间: 2013-06-23
上传用户:lgnf
目前,小波分析在信息技术和其他学科方面的应用是众多科技工作者关心的课题。在理论方面,新观点、新方法不断涌现。本文旨在完善小波的基本理论,对原有的小波去噪方法作进一步的改进。 经典的信号处理方法,例如傅立叶变换、短时傅立叶变换等具有局限性,因而限定了它们的应用范围。小波分析作为一种全新的信号处理方法,它将信号中各种不同的频率成分分解到互不重叠的频带上,为信号滤波、信噪分离和特征提取提供了有效途径,特别在信号去噪方面显出了独特的优势。本文介绍了经典的去噪方法,并对其适用范围和效果进行了分析和比较。并且,讨论了小波分析的基本理论,介绍了连续小波变换、离散小波变换和小波变换的快速分解与重构算法,最后研究了小波基的数学特性,分析了它们对实际应用的影响和作用。进而,介绍了小波的几种去噪方法:小波变换高频系数置零去噪方法、小波变换模极大值去噪方法、小波阈值去噪方法、小波空域相关性去噪方法。用小波变换将高频系数强制置零去噪的方法是比较方便的,但它的不足之处是经将高频系数强制置零去噪后重构的信号会使信号丢失一些细节,且小波基的选择亦有相当的难度,只有靠经验来确定,不过比传统的滤波方法所得的效果还是要好。对于小波变换模极大值去噪的原理,分析了去噪过程中几个参数的选取问题,并给出了一些选取依据;对小波阈值去噪方法的几个关键问题进行了详细讨论。对阈值去噪进行了改进,利用均值逼近与阈值去噪相结合的方法来实现信号的处理,并通过实验仿真实现。实验结果表明该方法提高了信噪比,去噪效果优于单独应用阈值去噪的方法。 在空域相关去噪算法的基础上,进行了改进,利用阈值滤波与相关去噪算法相结合的一种组合去噪算法,仿真试验结果表明,由该算法滤波之后得到的小波系数不仅连续性好,准确率高,而且易于重构信号。 本文分别对这四种方法进行了算法分析比较,通过实验仿真来实现,并对实验结果进行了分析。实验仿真结果表明了利用小波分析理论对信号去噪的可行性和有效性。 关键词:小波分析,信号去噪,阈值,均值逼近,空域相关
上传时间: 2013-07-19
上传用户:啊飒飒大师的
为了解决现有环形线圈车检器在工程应用中出现的误检问题,尤其是对同一辆大车的多次误触发问题,本文深入研究导致误检现象的具体原因,并在这基础上提出了一套软硬件的解决方法,以减少误触发现象,提高检测的准确率。 为了方便测量与调试,本文设计了一个PC端软件。它与实验室原有的频率采集工具一块配合工作,能实时而直观地察看车检器的工作状况,从而有利于实验数据的采集与问题分析。通过实验分析,本文总结了误检现象的若干情形,以及导致误检问题的主要原因。 针对上述分析的发现—车检器采用的单一阈值法不能适应复杂的应用环境,本文对检测算法作了改进:对车辆到达的检测,仍采用单一阈值法;对车辆离开的检测,则采用平坦性判定法。后者利用了在车辆离开时,线圈频率从非平坦变为平坦这一特征。它有简单、易移植和防误检的特点。 为了从应用层面解决问题,本文设计了一种基于改进算法的车检器。与同类车检器相比,它除了集成上述车检算法外,还提供一个RS-232的测试端口,按一定的数据协议与PC端的诊断软件通讯,能够帮助现场测试工作的开展。 本文还利用了新车检器做了两组的实验:实验室环境与高速公路车辆检测现场环境下的实验。第一组验证了改进算法的防误检性能,并计算它的检测延迟。其中检测延迟的计算,有助于协调车辆检测系统中线圈、车检器与摄像头三者间的工作。第二组验证了新车检器的检测性能,包括识别和延迟两方面内容。两组实验结果都证实了改进算法的实用价值。
上传时间: 2013-06-16
上传用户:1406054127