你做的咐槐这方面叫做“小波分析对信号奇异性检测”。
小波确实有这方面的应用。建议你直接去图书馆借《MATLAB小波分析(张德丰等编著)》(第二版),第一版有没有我不不知道哈。其中有一节就专门讲如何用小波检测第一类间断点和第二类间断点的,并且有方法将奇异点消磨知除。讲的比较详细。
根据你的问题补充,我觉着你可以用欧几里得距离作为衡量波动的标准,具体程序如下:
data=[...
20000101 1221790 794164 427626
20000102 1282410 833566.4 448843.6
20000103 1241980 807287 434693
20000104 1265880 822822 443058
20000105 1301360 767802 533558
20000106 1298670 727255 571415
20000107 1273770 700573.5 573196.5
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 855861.4 460848.6
20000117 瞎简消1293410 840717 452693
20000118 1303150 847047.4 456102.6
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号。你可以自己设个门限,超过门限的都作为奇异值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)