Create Moving Average filter WITHOUT filter() function
Mostrar comentarios más antiguos
Hello,
I can't seem to plot a desired output using a Hanning Moving Average equation. My goal is to create a moving average filter with a 3-point moving average with a created signal x. However, I don't notice a difference between the unfiltered signal and the filtered signal. May someone give advice on how to enter a moving average equation and it's coefficients without the use of the filter() function? Or is the 3-point moving average so small that there isn't a difference?
Hanning Moving Average filter:
y[n] = 1/4(x[n] + 2x[n-1] + x[n-2]).
fs = 200; %sampling frequency
Ts = 1/200; %sampling time
t = 0:Ts:1;
x = sin(2*pi*2*t) + sin(2*pi*10*t) + sin(2*pi*90*t) %signal
plot(t,x); %unfiltered signal
title('Signal with 2, 10, and 90 Hz');
xlabel('time (s)');
%Difference equation of Hanning Moving Average filter:
n = 3
yn = (.25*x(n)) + (.5*x*(n-1)) + (.25*(n-2)) %Attempt at creating the moving average equation.
plot(t,yn)
Thank You
5 comentarios
the second two expressions are at the moment just mutiplying with n-1 or n-2, i think you want this as index e.g. x(n-1)
edit: the x is missing completly in the last part
should be
1/4*(x(n) + 2*x(n-1) + x(n-2))
Terry Carney
el 6 de Mayo de 2021
Jonas
el 6 de Mayo de 2021
you have to calculate the value for every n, you have to create a y(n) array with the given formula. at the moment yn is only a single value.
Terry Carney
el 6 de Mayo de 2021
Editada: Terry Carney
el 6 de Mayo de 2021
you could calculate the main part e.g. by
y=1/4*(x(3:end) + 2*x(2:end-1) + x(1:end-2))
but then you jave to think about the first two samples of y because the normal formula will have negative index. maybe you want to assume 0 before the actual x(n) starts. similar to that you have to think about two values beyond x because the formula for y contains up to n-2. this way y will be longer than your original x by two samples
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre MATLAB en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!