柏延文
MATLAB去除数据中的异常值、离群值以及平滑处理
2023-3-13 09:57
阅读:4468

数据预处理(1)在数据采集与传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丢失,这种数据称为异常值。为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数据(1)剔除异常值; 另外,无论是人工观测的数据还是由数据采集系统获取的数据,都不可避免叠加上“噪声”干扰(反映在曲线图形上就是一些“毛刺和尖峰”)。为了提高数据的质量,必须对数据进行(2)平滑处理(去噪声干扰);

(一)剔除异常值

rmoutliers 语法

用rmoutliers()函数即可移除数据组中的离群值,可作数据清洗的初步方法。

Detect and remove outliers in data

B = rmoutliers(A)

B = rmoutliers(A,method)

B = rmoutliers(A,'percentiles',threshold)

B = rmoutliers(A,movmethod,window)

B = rmoutliers(___,dim)

B = rmoutliers(___,Name,Value)

[B,TF] = rmoutliers(___)


效果演示

GW_ZZS_UP_1=rmoutliers(GW_ZZS_UP); %去除数据中的异常值、离群值

% 绘制结果,比较平滑处理前后的效果

plot(-GW_ZZS_UP,'k-')

hold on

plot(-GW_ZZS_UP_1,'r-')

legend('origin','rmoutliers');

image.png

(二)平滑处理

smoothdata语法

Smooth noisy data


Syntax

B = smoothdata(A)

B = smoothdata(A,dim)

B = smoothdata(___,method)

B = smoothdata(___,method,window)

B = smoothdata(___,nanflag)

B = smoothdata(___,Name,Value)

[B,window] = smoothdata(___)

效果演示

% 平滑

GW_ZZS_UP_2=smoothdata(GW_ZZS_UP_1);

plot(-GW_ZZS_UP_1,'k-')

hold on

plot(-GW_ZZS_UP_2,'r-')

legend('rmoutliers','smooth')

image.png

参考资料1:https://blog.csdn.net/Davidietop/article/details/115441236

参考资料 2:https://blog.csdn.net/weixin_42395980/article/details/115825594?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-115825594-blog-115441236.pc_relevant_multi_platform_whitelistv3&spm=1001.2101.3001.4242.1&utm_relevant_index=3


转载本文请联系原作者获取授权,同时请注明本文来自柏延文科学网博客。

链接地址:https://m.sciencenet.cn/blog-3402238-1380149.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?