How to Design a Moving average filter?

Hi everyone im kinda new with filter design in Matlab and in need of some help..
So basically i need to reduce the noise in an record and playback system based on DSP TMS320c6713.
Right now im stuck in writing the code for Moving average filter (exponential or simple). so can somebody help me out or give me some examples please.. I've been reading a lot and still dont seem to understand much!! Thanks in advance..

1 comentario

pankaj jood
pankaj jood el 22 de Jun. de 2017
M = movmean(A,k) M = movmean(A,[kb kf]) M = movmean(___,dim) M = movmean(___,nanflag) M = movmean(___,Name,Value)

Iniciar sesión para comentar.

 Respuesta aceptada

Wayne King
Wayne King el 1 de Feb. de 2014
Editada: Wayne King el 1 de Feb. de 2014
To implement a simple causal moving average filter in MATLAB, use filter()
Ten-point moving average filter
B = 1/10*ones(10,1);
out = filter(B,1,input);
Adjust as needed for a different number of time steps.

7 comentarios

mohsen
mohsen el 2 de Feb. de 2014
Thank you Wayne.. could u tell me how this works please? i have no idea!!
It is mathematically equivalent to
y(n) = 1/N(x(n)+x(n-1)+x(n-2)+....x(n-N))
so for each n, y(n) is the average of the preceding n points.
Obviously at the beginning of the output, y(n), it is an average of fewer points because you don't have N points in the past.
nani kalyan
nani kalyan el 20 de Abr. de 2015
i am having 24000 values, so how can i filter hese all value please will you say me the code to enter in MATLAB SCRIPT.
You can use Wayne's code. I'm going to adapt it slightly to give an odd number for the filter width so there's not a time shift between the output signal and the input signal.
windowWidth = 11; % Whatever you want.
kernel = ones(windowWidth,1) / windowWidth;
out = filter(kernel, 1, yourInputSignal);
3011
3011 el 24 de Oct. de 2015
What code shall I use if I want to develop a simple non-causal moving average filter? what alterations should will there be?
Christopher Bitikofer
Christopher Bitikofer el 23 de Ag. de 2018
I think using filtfilt would work... I'm trying to figure something similar out
Osman Atay Öztürk
Osman Atay Öztürk el 24 de Ag. de 2021
windowWidth = 11; % Whatever you want.
kernel = ones(windowWidth,1) / windowWidth;
out = filter(kernel, 1, yourInputSignal);
How can I know this window width?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 1 de Feb. de 2014

Comentada:

el 24 de Ag. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by