欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

加速度计滑动窗口平均滤波matlab实现

程序员文章站 2022-03-07 12:53:06
...

一. 滑动窗口平均滤波的原理

加速度计滑动窗口平均滤波matlab实现

二.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)滤波结果展示

加速度计滑动窗口平均滤波matlab实现

其中,蓝色是原始数据,红色是滤波后数据,可以看到效果还可以。

相关标签: 定位导航 matlab