Making a moving average filter without looking in to the future. So forecasting the data, how do you do it?

6 Ansichten (letzte 30 Tage)
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 Kommentare
Kaz Van Rijsewijk
Kaz Van Rijsewijk am 12 Apr. 2022
Hello Mathieu,
This is the question that I have to answer and also apply to my script:
If we want to filter in real time we can't filter this way, we can only do it backwards.
24. Adjust the moving average filter accordingly, such that at the same value of M is filtered over as many points as before. Is there a phase delay now?
Mathieu NOE
Mathieu NOE am 12 Apr. 2022
sorry ; it's late here and I must be tired ,
I don't understand the question 24

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Steven Lord
Steven Lord am 12 Apr. 2022
Bearbeitet: Steven Lord am 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)
x = 1×5
3 6 9 6 8
M = movmean(x, [1 0])
M = 1×5
3.0000 4.5000 7.5000 7.5000 7.0000
N = 4;
check = (x(N-1)+x(N))/2 - M(N)
check = 0
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".
  1 Kommentar
Kaz Van Rijsewijk
Kaz Van Rijsewijk am 12 Apr. 2022
Hello Steven,
Thank you! But just be sure does this still apply to next question. My first question was a bit unclear I think.
  • If we want to filter in real time we can't filter this way, we can only do it backwards.
24. Adjust the moving average filter accordingly, such that at the same value of M is filtered over as many points as before. Is there a phase delay now?

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by