git-svn-id: http://moon:8086/svn/matlab/trunk@99 801c6759-fa7c-4059-a304-17956f83a07c
24 lines
365 B
Matlab
Executable File
24 lines
365 B
Matlab
Executable File
function [y, zf] = movingavg(x, zi)
|
|
if ~isstruct(zi)
|
|
N = zi;
|
|
zf = struct('N', N, 's', zeros(N+1, 1), 'ri', 2, 'wi', 1, 'y', 0);
|
|
else
|
|
zf = zi;
|
|
end
|
|
|
|
xn = x/zf.N;
|
|
zf.y = zf.y + xn - zf.s(zf.ri);
|
|
y = zf.y;
|
|
|
|
zf.ri = zf.ri + 1;
|
|
if zf.ri > length(zf.s)
|
|
zf.ri = 1;
|
|
end
|
|
|
|
zf.s(zf.wi) = xn;
|
|
zf.wi = zf.wi + 1;
|
|
if zf.wi > length(zf.s)
|
|
zf.wi = 1;
|
|
end
|
|
|