/charging-curve-reconstruction

曾经在实习的时候,给我的一个小任务

Primary LanguageMATLAB

充电曲线的绘制

##曾经在实习的时候,给我的一个小任务

Ojective:

  1. 有一个充电曲线,请你用少的点去重新描绘这个曲线,同时减少信息的损失。

Methode: 方法很简单,也效果很好。接下来介绍代码的核心思路

%%Part one: Changing threshold
% initialisation 
x1  = power_downsampling(1);
outlier_index = [];

% iterator
for i=2:length(power_downsampling)

    x2 = power_downsampling(i);
    if abs(x1-x2) > threshold
        x1 = x2;
        outlier_index(end+1)=i;
    end
    
end

power_downsampling 是我们的原始数据,我们将他的第一个点power_downsampling(1)作为我们的第一个flag点,让它去和下一个点比较, 判断二者的差值:

大于阈值: 保存flag点的index,并更新flag点,令下一个点作为新的flag点。

小于阈值: 保持当先的flag点,并比较接下来的点。

遍历所有的点,记录被选中的index。

image

我们可以看到,中间部分的曲线比较平整,采用这种方法可以只用两个点就能表示中间大部分的点,节约了很大的存储空间