我有一个名为test.xlsx的文件,其链接可以在下面找到。它的图是
根据该图,在第62点之后,该图有向上移位。有没有办法通过图像处理来识别这一点?
我在MATLAB中使用medfilt1(list,5)
(link)使用不同大小的窗口,但结果并不好。
你能给我任何建议或评论吗?
https://drive.google.com/file/d/0B5QzBOKhSsdgY3Juc3BlaDVuaTA/view?usp=sharing
答案 0 :(得分:0)
请参阅下面的代码。该代码使用ztest
在数据的移动平均值(index-k:index)和数据(index)之间进行统计比较。 ztest
的链接是here。 ztest
测试零假设data(index) = mean(data(index-k:index))
。如果ztest
返回h=1
,则拒绝原假设,结束data(index) <> mean(data(index-k:index))
。对于您的数据,ztest
会检测到升档或降档w.r.t.指定的alpha
级别。
尝试使用您的数据代码。使用alpha=0.05
,代码可以检测index = 48
和index = 66
处的更改。这些是发生升档(或降档)的位置。请注意,您所描述的升档发生在index=66
而不是index=62
,正如您所说的那样。
另外,请尝试使用不同的alpha
和k
值。
data=xlsread('test.xlsx');
m = length(data);
start_index = 11;
alpha = 0.05;
k = 10;
h_array = zeros(length(data),1);
for index = start_index:m
avg = mean(data(index-k:index));
stdev = std(data(index-k:index));
if index > start_index
val = data(index);
h = ztest(val,avg,stdev,'alpha',alpha);
h_array(index) = h;
end
end
答案 1 :(得分:-1)
只需将存储的功能用于此目的
detrend(list);