Is It Necessary to Select an Odd Span for Smoothing Data Using Moving Average Filter?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
When I use the moving average method in 'smooth' function, the number of data points for calculating the smoothed value must be an odd integer. If I specify span as an even number or as a fraction that results in an even number of data points, span is automatically reduced by 1. Is it necessary to select an odd span for smoothing data using the moving average filter? Does anyone know the reason?
Thanks,
0 commentaires
Réponses (1)
Bjorn Gustavsson
le 24 Fév 2020
Modifié(e) : Bjorn Gustavsson
le 24 Fév 2020
You can check what happens when smooting by averaging over an even number of points. simply use convolution to carry out the averaging:
Signal = zeros(107,1);
Signal(53) = 1;
filter_length = 2;
Filtered_signal = conv2(Signal,ones(filter_length,1),'same');
plot(51:60,[Signal(51:60),Filtered_signal(51:60)],'o-')
Then you'll see that there will be a shift of the filtered signal. That is rather undesired - often enough that Mathworks decided to explicitly prevent that.
HTH
4 commentaires
Bjorn Gustavsson
le 25 Fév 2020
Do you really get that when you use my example and only change filter_length to 3?
(HINT: I dont)
HTH
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!