Making a moving average filter without looking in to the future. So forecasting the data, how do you do it?
6 views (last 30 days)
Show older comments
M = 11
% 4. Moving average filter
for n = 1:M
yma(n) = average(y([1:n+M-1]));
end
for n = M+1:length(t)-M
yma(n) = average(y([n-M:n+M]));
end
for n = length(t)-M+1:length(t)
yma(n) = average(y([n-M:length(t)]));
end
yma = yma';
3 Comments
Mathieu NOE
on 12 Apr 2022
sorry ; it's late here and I must be tired ,
I don't understand the question 24
Answers (1)
Steven Lord
on 12 Apr 2022
Edited: Steven Lord
on 12 Apr 2022
Use the movmean function with the M = movmean(A, [kb kf]) syntax given on its documentation page. Choose kf = 0 to include 0 elements forward of the current element.
x = randi(10, 1, 5)
M = movmean(x, [1 0])
N = 4;
check = (x(N-1)+x(N))/2 - M(N)
Note that the expression for check (the moving mean for element 4) does not include x(5), so the moving mean computation didn't "look into the future".
See Also
Categories
Find more on Digital Filter Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!