滑动平均滤波算法 您所在的位置:网站首页 MATLAB求平均值模块 滑动平均滤波算法

滑动平均滤波算法

2024-06-18 01:48| 来源: 网络整理| 查看: 265

算法原理

滑动平均滤波算法的基本思想是设定一个宽度固定的滑动窗口,该窗口沿着时间序列滑动,同时取窗内数据的算术平均值作为输出值,而由输出值组成另一个数字序列,也就是滤波后的序列。设N为滑动窗口的宽度,若N=2k+1,输入、输出分别为 x ( n ) x(n) x(n)和 y ( n ) y(n) y(n),则 y ( n ) = 1 2 k + 1 ⋅ ∑ i = − k i = k x ( n + i ) y(n)=\frac{1}{2k+1}\cdot\sum^{i=k}_{i=-k}{x(n+i)} y(n)=2k+11​⋅i=−k∑i=k​x(n+i)

MATLAB代码实现: function x1 = MovingAverageFilter(x,win_sz) % x:待滑动平均的数据 % win_sz:窗宽 if nargin < 2 %默认窗宽等于7 win_sz=7; end L = length(x); %数据长度 x1 = zeros(L,1); %平均之后的数据 half_win = ceil(win_sz/2); half_win_ = floor(win_sz/2); if half_win==half_win_ half_win = half_win+1; end x1(1:half_win) = x(1:half_win); x1(L-half_win:L) = x(L-half_win:L); for i = half_win:L-half_win k=0; for j = i-half_win_:i+half_win_ %对第i个窗里面的数求平均 k = k+1; temp(k) = x(j) ; %临时存储第i个窗的数据 end x1(i) = mean(temp); %第i个窗里面的平均值给第i个数 end end


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有