求答案:用matlab 实现数据处理:现场取得的一系列数据(5 5 5 5 10 20 30 30 30)把其中不平稳的数据去掉

[复制链接]
查看11 | 回复5 | 2011-6-19 01:39:34 | 显示全部楼层 |阅读模式
最后取得5555和303030这些数据,1020这些数据都去掉。ps:老师说用移动窗口
x=[5,5,5,5,5,10,20,30,30,30,30];
z=0;
n=length(x);
form=1:n-2;
b=x(m:m2);
pinjun=sum(b)/3;
bzc=sqrt((sum(b.*b))/(3-1));
if(bzc==pinjun*0.1)
a=x(m);
end
end
a
这是我自己编的,因为没有学过matlab,所以这个程序很破,当然运行不出来,请教matlab高手!!!
回复

使用道具 举报

千问 | 2011-6-19 01:39:34 | 显示全部楼层
x=[5,5,5,5,5,10,20,30,30,30,30];
diffx=diff(x);%求差分
rate=0.5;
m=mean(abs(diffx))*rate;%差分模均值的rate倍作为门限,rate可以根据平稳要求调整
index=find(abs(diffx)m);%差分模大于门限的下标
if~isempty(index)%非空即可能存在非平稳值
index2=diff(index);
index3=find(index2==1);%寻找与左右点相差都较大的值(认为这些值是非平稳值)
if~isempty(index3)
x(index(index3)1)=[];%去掉非平稳值
end
end
L=length(x);
ifL2%判断第一点数据是否为非平稳值
ifabs(x(1)-x(2))m
x(1)=[];
end
end
L=length(x);
ifL2%判断最后一点数据是否为非平稳值
ifabs(x(end)-x(end-1))m
x(end)=[];
end
end









<h4class=\"ask\">追问


x=

5555530303030
这是运行结果,能不能编程知到留下的这些数具体是数组中的第几个数?比方说刚才运行结果这些数是12345891011
谢谢啦
回复

使用道具 举报

千问 | 2011-6-19 01:39:34 | 显示全部楼层
可以呀
x=[5,5,5,5,5,10,20,30,30,30,30];
snumber=1:length(x);
diffx=diff(x);%求差分
rate=0.5;
m=mean(abs(diffx))*rate;%差分模均值的rate倍作为门限,rate可以根据平稳要求调整
index=find(abs(diffx)m);%差分模大于门限的下标
if~isempty(index)%非空即可能存在非平稳值
index2=diff(index);
index3=find(index2==1);%寻找与左右点相差都较大的值(认为这些值是非平稳值)
if~isempty(index3)
x(index(index3)1)=[];%去掉非平稳值
snumber(index(index3)1)=[];%snumber中存放的是保留数据的原始序号
end
end
L=length(x);
ifL2%判断第一点数据是否为非平稳值
ifabs(x(1)-x(2))m
x(1)=[];
snumber(1)=[];
end
end
L=length(x);
ifL2%判断最后一点数据是否为非平稳值
ifabs(x(end)-x(end-1))m
x(end)=[];
snumber(end)=[];
end
end
回复

使用道具 举报

千问 | 2011-6-19 01:39:34 | 显示全部楼层
应该是if(bzc=pinjun*0.1)
a=x(m);如果便准差大于平均值的10%就说明这个移动窗口内三个数已经不平稳,要除去
回复

使用道具 举报

千问 | 2011-6-19 01:39:34 | 显示全部楼层
pinjun=sum(b)/3;求平均
bzc=sqrt((sum(b.*b))/(3-1));求标准差
if(bzc=pinjun*0.1)%如果便准差大于均值的10%,则说明这三个数不平稳了,要除去。
老师说用移动窗口,三个为一个窗口,if语句要把不平稳的除去。我的if语句随便写的,不用在意。请帮帮忙,谢谢啦!
回复

使用道具 举报

千问 | 2011-6-19 01:39:34 | 显示全部楼层
移动平均可以考虑下面递归计算公式:头2项上面的横线表示平均的值
----------
x(k)=x(k-1)(x(k)-x(k-3))/3

另外,就3个点求标准差似乎样本点太少了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行