小波确实有这方面的应用。建议你直接去图书馆借《MATLAB小波分析(张德丰等编著)》(第二版),第一版有没有我不不知道哈。其中有一节就专门讲如何用小波检测第一类间断点和第二类间断点的,并且有方法将奇异点消除。讲的比较详细。
根据你的问题补充,我觉着你可以用欧几里得距离作为衡量波动的标准,具体程序如下:
data=[
20000101 1221790 794164 427626
20000102 1282410 8335664 4488436
20000103 1241980 807287 434693
20000104 1265880 822822 443058
20000105 1301360 767802 533558
20000106 1298670 727255 571415
20000107 1273770 7005735 5731965
20000108 1300620 845403 455217
20000109 1301750 846138 455612
20000110 1318300 856895 461405
20000111 1327550 862908 464642
20000112 1356910 800577 556333
20000113 1329360 744442 584918
20000114 1312580 721919 590661
20000115 1330460 864799 465661
20000116 1416710 8558614 4608486
20000117 1293410 840717 452693
20000118 1303150 8470474 4561026
20000119 1304690 769767 534923
20000120 1301800 729008 572792
];
date=data(:,1)-20000000;
data=data(:,2:end);
x1=data(:,1);
x2=data(:,2);
x3=data(:,3);
x1_m=mean(x1);
x2_m=mean(x2);
x3_m=mean(x3);
data_m=repmat([x1_m,x2_m,x3_m],size(data,1),1);
temp=(data-data_m)^2;
temp=sum(temp')';
stem(date,temp);
得到的结果如下图:
可以看出波动最大是1月6号和1月16号。你可以自己设个门限,超过门限的都作为奇异值。
以上就是关于求小波分析在数据检测方面的matlab代码,比如给您一组数据,利用小波分析来找出其中的异常值。全部的内容,包括:求小波分析在数据检测方面的matlab代码,比如给您一组数据,利用小波分析来找出其中的异常值。、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)