Wykładnicza średnia ruchoma próbkowana w różnych czasach

Mam ciągłą wartość, dla której chciałbym obliczyćwykładnicza średnia ruchoma. Normalnie używałbym po prostu standardowej formuły:

Sn = αY + (1-α) Sn-1

gdzie Sn to nowa średnia, α to alfa, Y to próbka, a Sn-1 to poprzednia średnia.

Niestety z powodu różnych problemów nie mam stałego czasu próbkowania. Mogę wiedzieć, że mogę pobierać próbki co najwyżej, powiedzmy, raz na milisekundę, ale z powodu czynników poza moją kontrolą, może nie być w stanie pobrać próbki przez kilka milisekund na raz. Prawdopodobnym przypadkiem jest jednak to, że próbuję nieco wcześniej lub późno: zamiast próbkowania w 0, 1 i 2 ms. Próbuję w 0, 0.9 i 2.1 ms. Przewiduję, że niezależnie od opóźnień, moja częstotliwość próbkowania będzie daleko, znacznie powyżej limitu Nyquista, a zatem nie muszę się martwić o aliasing.

Uważam, że mogę sobie z tym poradzić w mniej lub bardziej rozsądny sposób, zmieniając odpowiednio alfa, w oparciu o czas, jaki upłynął od ostatniej próbki.

Część mojego rozumowania, że ​​to zadziała, polega na tym, że EMA „interpoluje liniowo” między poprzednim punktem danych a bieżącym. Jeśli rozważymy obliczenie EMA następującej listy próbek w odstępach t: [0,1,2,3,4]. Powinniśmy uzyskać ten sam wynik, jeśli użyjemy interwału 2t, gdzie dane wejściowe staną się [0,2,4], prawda? Jeśli EMA to założyła, t2 wartość wynosiła 2 od t0, to byłoby takie samo jak obliczanie przedziału t w dniu [0,2,2,4,4], którego nie robi. Czy to w ogóle ma sens?

Czy ktoś może mi powiedzieć, jak odpowiednio zmieniać alfa? „Proszę pokazać swoją pracę”. To znaczy, pokaż mi matematykę, która dowodzi, że twoja metoda naprawdę działa dobrze.

questionAnswers(8)

yourAnswerToTheQuestion