如何使用Matlab处理计时电流法数据?包括轮廓检测和数据平滑

时间:2019-04-26 04:01:07

标签: matlab

我的实验数据如下:

Imgur

它具有不同的阶段,在每个阶段中,都有几个不需要的数据点(外围数据)。

这称为计时电流法测试,结果为“电流与时间”图。我想要的是在每个阶段自动返回正确的数字。第一步是检测和删除异常点。

我做的很简单,用每个点减去前面的点,如果相差很大,那就是一个阶段。

a=xlsread('s38.xlsx'); %load data
x=a(:,1); % first column 
y=a(:,2)*1000000000;
x1=a(2:end,1); 
x2=0:2:40; 
[m n]=size(a);

for i=1:m-1
    y1(i)=y(i+1)-y(i);
end
z=y1';

% for i=1:21
%     t(i)=y(1000+450*i);
% end
%figure 1
subplot(2,2,1)
plot(x,y,'k','Marker','o','MarkerSize',2,'MarkerFaceColor','k','MarkerEdgeColor','k')
grid on
xlabel('time(s)')
ylabel('current(nA)')
xlim([1000 m])

subplot(2,2,2)
plot(x1,z,'k','Marker','o','MarkerSize',1,'MarkerFaceColor','k','MarkerEdgeColor','k')
grid on
xlabel('time(mM)')
ylabel('current difference(nA)')

我的问题:如何平滑此类数据? -使用哪种算法可以检测异常数据点?关键是有几个不同的阶段,每个阶段都有不同的趋势(不一定是平坦的)。

0 个答案:

没有答案