J'ai une valeur continue pour laquelle je voudrais calculer un moyenne mobile exponentielle . Normalement, j'utiliserais simplement la formule standard pour cela :
- S n \= αY + (1-α)S n-1
où S n est la nouvelle moyenne, α est l'alpha, Y est l'échantillon, et S n-1 est la moyenne précédente.
Malheureusement, en raison de divers problèmes, je ne dispose pas d'un temps d'échantillonnage constant. Je peux savoir que je peux échantillonner au maximum, disons, une fois par milliseconde, mais en raison de facteurs hors de mon contrôle, je peux ne pas être en mesure de prendre un échantillon pendant plusieurs millisecondes à la fois. Un cas probablement plus courant, cependant, est que j'échantillonne simplement un peu en avance ou en retard : au lieu d'échantillonner à 0, 1 et 2 ms. J'échantillonne à 0, 0,9 et 2,1 ms. Je prévois que, quels que soient les retards, ma fréquence d'échantillonnage sera très, très supérieure à la limite de Nyquist, et que je n'ai donc pas à me soucier du crénelage.
Je pense que je peux traiter ce problème de manière plus ou moins raisonnable en faisant varier l'alpha de manière appropriée, en fonction du temps écoulé depuis le dernier échantillon.
Une partie de mon raisonnement pour que cela fonctionne est que l'EMA "interpole linéairement" entre le point de données précédent et le point actuel. Si nous considérons le calcul d'une EMA de la liste suivante d'échantillons à des intervalles t : [0,1,2,3,4]. Nous devrions obtenir le même résultat si nous utilisons l'intervalle 2t, où les entrées deviennent [0,2,4], n'est-ce pas ? Si l'EMA avait supposé que, à t 2 la valeur était de 2 depuis t 0 cela reviendrait à dire que le calcul de l'intervalle t calcule sur [0,2,2,4,4], ce qu'il ne fait pas. Ou est-ce que cela a un sens ?
Quelqu'un peut-il me dire comment faire varier l'alpha de manière appropriée ? "S'il vous plaît, montrez votre travail." C'est-à-dire, montrez-moi les maths qui prouvent que votre méthode fait vraiment ce qu'il faut.