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 commentaire

pankaj jood
pankaj jood le 22 Juin 2017
M = movmean(A,k) M = movmean(A,[kb kf]) M = movmean(___,dim) M = movmean(___,nanflag) M = movmean(___,Name,Value)

Connectez-vous pour commenter.

 Réponse acceptée

Wayne King
Wayne King le 1 Fév 2014
Modifié(e) : Wayne King le 1 Fév 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 commentaires

mohsen
mohsen le 2 Fév 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 le 20 Avr 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 le 24 Oct 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 le 23 Août 2018
I think using filtfilt would work... I'm trying to figure something similar out
Osman Atay Öztürk
Osman Atay Öztürk le 24 Août 2021
windowWidth = 11; % Whatever you want.
kernel = ones(windowWidth,1) / windowWidth;
out = filter(kernel, 1, yourInputSignal);
How can I know this window width?

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by