一. 滑动窗口平均滤波的原理
二.matlab实现
function [data_m] = window_smooth(data,n)
%n为窗口长度
L = length(data);%数据长度
%均值滤波
m = 0;
k = 0;
for i = 1:L
if(i<n)
data_m(i) = data(i);
else
for(j = i-n+1:i)
k = k+1;
w1(k) = data(j);
end
data_m(i) = mean(w1);
k = 0;
end
end
三.滤波效果展示
(1) 函数调用
[num2,txt2,raw2]=xlsread('D:\datas\acc_data\val_y1.xls',1);%在表格中读取数据
acc_X = num2(60:end,4);%加计数据x的值在第4列
N = 20;%窗口长度
[acc_x] = window_smooth(acc_X,N);%调用函数进行滤波
figure(7);
plot(acc_X,'b');hold on;%画图观察滤波效果
plot(acc_x,'r');hold on;
(2)滤波结果展示
其中,蓝色是原始数据,红色是滤波后数据,可以看到效果还可以。