MATLAB剔除奇异点的问题
本帖最后由 wdhd 于 2016-9-14 10:53 编辑在振动数字信号的采集中,由于采集不当或外界干扰,或仪器的临时故障等原因,有时候会出现异常数据,即所谓的错点(也叫做奇异点)。错点的存在会严重影响信号的分析结果,特别是对高频分量的影响,必须给予剔除。
剔除奇异点可以用以标准差(均方根)为基础的奇异点剔除法。这种方法是以数据值是否超过标准差的3倍为判别标准。通过对奇异点相邻点的值求和,再取平均的方法,剔除错点。
以下是我剔除奇异点的MATLAB程序,可是剔除后的数据的长度和原始信号的不一样长,而且数据不同,长度相差的也不同,为什么呢?
还有做剔除前后数据的互相关函数时,中间的那个极大值有什么意义?
clear all
fidin=fopen('qidong1.txt','r')
u1=fscanf(fidin,'%f',inf)
u_1=u1(abs(u1-mean(u1))<=3*std(u1))
figure(1)
subplot(211)
plot(u1)
subplot(212)
plot(u_1,'m')
hold on
plot(u1,'b')
=xcorr(u1,u_1)
figure(2)
plot(a)
[ 本帖最后由 baobao1982 于 2009-3-3 17:47 编辑 ]
小波模极大值去噪,去看看吧
回复 楼主 baobao1982 的帖子
在处理个别奇异值时,可以直接剔除该点吗?回复 沙发 Juneliu 的帖子
你的小波模极大值去噪我不是很懂
请赐教 个人讯号处理并非专家! 仅说说个人意见
LZ说的错点(奇异点), 看起来好像就是个人所称的spike
平常工程上会设定一准则(如是否超过标准差的3倍), 但不会剔除掉, 而会使用前後几点进行拟合(fitting)
u_1=u1(abs(u1-mean(u1))<=3*std(u1))就会剔除掉
LZ画互相关函数时, 使用plot(b,a)可能较可看出意义
回复 7楼 ChaChing 的帖子
但还有个问题我的奇异点都是出现在每个文件的开头的
使用u_1=u1(abs(u1-mean(u1))<=3*std(u1))
确实可以剔除掉
我上面已经说过了
当该值比较大时,剔除的效果等于把该值直接提出,文件少了1个数据
当该值比较小时,剔除的效果是以牺牲数据的长度为代价,这时文件少了数十个到数百个个数据
我觉得此方法不适合我的数据的奇异值剔除
不知道主任同意吗?
页:
[1]