www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/toolbox/moving_average.m

    function Y=moving_average(X,ap)
% MOVING_AVERAGE provide moving average filtration of time series x
% window - window size (in samples). By default 5
%
% last modified 01.12.04

if nargin<2
	ap=5;
end

Y=X;
L=length(X);
if mod(ap,2)
	for i=((ap-1)/2+1):(L-(ap-1)/2)
        Y(i)=mean(X((i-(ap-1)/2):(i+(ap-1)/2)));
    end
else
    for i=ap/2:(L-ap/2)
        Y(i)=mean(X((1+i-ap/2):(i+ap/2)));
    end
end