function filtered_data = firstOrderFilter(data, alpha)
    % 数据校验
    if ~isvector(data)
        error('Data input must be a vector.');
    end
    if alpha < 0 || alpha > 1
        error('Alpha must be between 0 and 1.');
    end
    
    % 初始化过滤后的数据数组
    filtered_data = zeros(size(data));
    filtered_data(1) = data(1); % 初始化第一个元素，通常设为原始数据的第一个值

    % 应用一阶滑动窗口滤波
    for i = 2:length(data)
        filtered_data(i) = alpha * filtered_data(i - 1) + (1 - alpha) * data(i);
    end
end
