完整版Matlab学习系列012数据预处理1剔除异常值及平滑处理Word格式.docx
- 文档编号:15001072
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:14
- 大小:181.45KB
完整版Matlab学习系列012数据预处理1剔除异常值及平滑处理Word格式.docx
《完整版Matlab学习系列012数据预处理1剔除异常值及平滑处理Word格式.docx》由会员分享,可在线阅读,更多相关《完整版Matlab学习系列012数据预处理1剔除异常值及平滑处理Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
这实质上是规定了置信概率为1-1/2n,根据这一置信概率,可计
算出肖维勒系数,也可从表中查出,当要求不很严格时,还可按下列
近似公式计算:
10.41n(n)
Tabl.肖维勒系数表
n
3
4
5
6
7
8
9
10
11
12
GJn
1.38
1.53
1.65
1.73
1.80
1.86
1.92
1.96
2.00
2.03
13
14
15
20
30
40
50
100
200
500
2.07
2.10
2.13
2.24
2.39
2.49
2.58
2.81
3.02
3.20
如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系
数之积,则该测量值被剔除
Sx
例1.利用肖维勒方法对下列数据的异常值(2.5000)进行剔除:
1.50341.50621.50341.50241.49852.50001.5007
1.50671.49931.4969
上述数据保存于文件erro.dat
代码:
x=load('
error.dat'
);
n=length(x);
subplot(2,1,1);
plot(x,'
o'
title('
原始数据'
)
axis([0,n+1,min(x)-1,max(x)+1]);
w=1+0.4*log(n);
yichang=abs(x-mean(x))>
w*std(x);
%若用拉依达方法,把w改成3即可,但本组数据将不能成功剔除异常值。
x(yichang)=[];
saveerrornew.datx-ASCIIsubplot(2,1,2);
rs'
异常值剔除后数据'
运行结果:
x=
1.5024
1.4985
2.5000
1.5007
1.5067
1.50341.50621.5034
y=
1.49931.4969
原始数据
3.5Iiiir~
2.5-c
1.5-oo□ouooo
I-
[匚LiiIii_
‘0246810
3.一阶差分法(预估比较法)
用前两个测量值来预估新的测量值,然后用预估值与实际测量值
比较,若大于事先给定的允许差限值,则剔除该测量值
预估值
xnXn1(Xn1Xn2)
比较判别:
Xn?
nW
该方法的特点是
(1)适合于实时数据采集与处理过程;
(2)精度除了与允许误差限的大小有关外,还与前两点测量值的
精确度有关;
(3)若被测物理量的变化规律不是单调递增或单调递减函数,这
一方法将在函数的拐点处产生较大的误差,严重时将无法使用。
(二)数据的平滑处理
对于一组测量数据(xi,yi)i=1,…”n不要直接就想着求出的拟合多项式的线性参数,而是要先平滑处理去掉“噪声”。
平滑处理在科学研究中广泛使用,它可以减少测量中统计误差带来的影响,尤其
被用于无法利用多次重复测量来得到其平均值的情况和当yi随xi
有徒然变化的那些测量段。
1.(2n+1点)单纯移动平均”平滑滤波
取出以yi为中心的前后各n个数据(yi-n,…,y-1,yi,…yi+n求
平均值代替yi,即
优点:
方法简单,计算方便。
缺点:
方法产生误差会造成信号失真;
前后各n个数据无法平滑。
适用性:
适用于变化缓慢的数据。
n越大平滑效果越好,但失真也越大。
例2.“9点单纯移动平均”平滑滤波
%建立“n点单纯移动平均”的滤波函数
%注意函数要单独保存为与函数名同名的.m文件
functionY=smooth_data(y,n)
m=length(y);
j=1;
fori=(n-1)/2+1:
(m-(n-1)/2)
p=i-(n-1)/2;
q=i+(n-1)/2;
Y(j)=sum(y(p:
q))/n;
j=j+1;
end
%主程序
clc
clear
t=-15:
0.5:
15;
n=length(t);
Y=5./(1+t.A2);
%原始测试数据
y=Y+(0.5-rand(1,n));
%给测试数据加上噪声干扰plot(1:
n,Y,1:
n,y,'
-o'
5:
n-4,y1,'
-*'
legend('
无噪声'
'
含噪声'
9点平滑后'
运行结果:
4JII||JI
'
010203040506070
2.“加权移动平均”平滑滤波
加权的基本思想:
作平均的区间内中心处数据的权值最大,愈远离中心处的数据权值越小小。
这样就减小了对真实信号本身的平滑作用。
权重系数可以采用最小二乘原理,使平滑后的数据以最小均方差逼近原始数据。
即令
2
min(y,kyik)
k
2
(yik
k2
(%k
AAkAk2)0
A0AkA>
k2)k0
A0AkA,k2)k20
归一系数
y-2
y-1
yo
y1
y2
y-2‘
35
31
-3
-5
y-1'
yo'
17
y1'
y2‘
五点二次平滑权重系数表:
1
3y2I2yi
17yo12yi3y2
3.用“smooth函数”平滑滤波
调用格式:
Z=smooth(Yspan,method)
说明:
乙平滑后的数据向量
Y:
被平滑的数据向量
span:
平滑点数,缺省为5点
method:
平滑方法,缺省为移动平滑,其它还有
‘moving'
Movingaverage(default)单纯移动平均
‘lowess'
Lowess(linearfit)线性加权平滑
‘loess'
Loess(quadraticfit二次加权平滑
sgolay'
Savitzky-Golay
rlowess'
RobustLowess(linearfit)
rloess'
RobustLoess(quadraticfit)
例3.用matlab自带的平滑函数作平滑滤波实例。
t=-10:
10;
y=5./(1+t.A2);
y1=y+0.5*(0.5-rand(1,n));
%给测试数据加上噪声干扰
%调用多个滤波函数作滤波处理
y2=smooth(y1,3);
y3=smooth(y1,9);
y4=smooth(y1,3,'
lowess'
y5=smooth(y1,9,'
y6=smooth(y1,3,'
loess'
y7=smooth(y1,9,'
y8=smooth(y1,3,'
y9=smooth(y1,9,'
figure
(1);
%第一张图
subplot(3,2,1);
plot(t,y);
axis([-1010-16]);
gridon
无噪声信号'
subplot(3,2,2);
plot(t,y1,'
含噪声信号'
subplot(3,2,3);
plot(t,y2,'
gridontitle('
3点单纯移动平均'
subplot(3,2,4);
plot(t,y3,'
9点单纯移动平均'
subplot(3,2,5);
plot(t,y4,'
3点线性加权平滑'
subplot(3,2,6);
plot(t,y5,'
9点线性加权平滑'
figure
(2);
%第二张图
subplot(3,2,3);
plot(t,y6,'
3点二次加权平滑'
plot(t,y7,'
9点二次加权平滑'
plot(t,y8,'
3点rloess平滑'
plot(t,y9,'
axis([-1010-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 Matlab 学习 系列 012 数据 预处理 剔除 异常 平滑 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)