五点三次平滑滤波其原理是对通过采样信号使用最小二乘法的思想进行三次平滑。
采用五点三次平滑滤波对信号进行滤波,其效果如图所示:
五点三次平滑滤波的Matlab相关程序如下所示:
function [X2] = F_smooth(X1)
% 简单的滤波处理,主要目的在于消除毛刺和去除趋势项,寻找最大和最小值。
m = 3; %循环的次数
N = length(X1); %数据的长度
a = X1;
for M = 1:m
b(1) = (3 * a(1) + 2 * a(2) + a(3) - a(4)) / 5;
b(2) = (4 * a(1) + 3 * a(2) + 2 * a(3) + a(4)) / 10;
for j = 3:N-2
b(j) = (a(j-2) + a(j-1) + a(j) + a(j+1) + a(j+2)) / 5;
end
b(N-1) = (a(N-3) + 2 * a(N-2) + 3 * a(N-1) + 4 * a(N)) / 10;
b(N) = (-a(N-3) + a(N-2) + 2 * a(N-1) + 3 * a(N)) / 5;
a = b;
end
X2=a;
end