Moving Average Filter: A doubt

2 visualizaciones (últimos 30 días)
Filippo Grazioli
Filippo Grazioli el 28 de Dic. de 2016
Respondida: Julian el 5 de En. de 2017
Hello,
I need to develop a moving average filter that only considers the time window PRIOR TO a certain instant. In other words, considering the value of my output signal at a certain time t0, it must be the result of the prior time window. Therefore, the averaging time window must not be centred in t0, but end in t0. The application will be implemented real-time and there is not yet a time after t0.
filtCoeff = ones(1, T)/T;
output = filter(filtCoeff, 1, input);
Do you think these two lines correctly carry out what I am trying to do? If not, how to do it?
Thanks a lot. Filippo
  1 comentario
dpb
dpb el 28 de Dic. de 2016
Well, the implemented as written is simply
output=mean(input);
if input is the last T values of the data feed. If, OTOH, input continues to grow over time, filter will output a vector of results of length(input) each and every time it's called--probably not what you're looking for...

Iniciar sesión para comentar.

Respuestas (1)

Julian
Julian el 5 de En. de 2017
Yes, the 2 lines you wrote do achieve what you want. The filter function is causal and inclusively ends at t0. The much newer function movmean (since R2016a) centres on t0 by default (but allow you to specify the window extent forward and backward).

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by