Moving average on window of latest inputs with Exponential Weighting method
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to create a subsystem in Simulink that performs moving average with exponential weighting method on a finite-size window of latest inputs.
Currently, the Moving Average block in Simulink performs this task on on the entire input while I wish to perform the moving average with exponential weighting on the 10 most recent elements only.
What is the best way to do this in Simulink? Thanks in advance.
0 commentaires
Réponses (1)
Benjamin Großmann
le 22 Mai 2018
One possibility is to use the discrete filter block with denominater = [1] and Numerator are the exponential weights. If you do not want some static gain, then the sum of the weights shoul equal 1, e.g.
Numerator = exp(-[1:10])./sum(exp(-[1:10]));
A hand made solution could exist of a tapped delay block which outputs N delays of the input inside a vector. Then you can multiply your weights to this vector and sum up all elements:
0 commentaires
Voir également
Catégories
En savoir plus sur Sources dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!