[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Это класическая формула. Если на вход такого фильтра подать то же значение, которое он имеет на выходе (т.е. X=Y), то получим то же самое значение (без масштабного коэффициента).
Деление в любом случае не нужно. Коэффициент T (и 1) умножаете (мысленно) на 2^16, а у результата Y используете только старшие 16 разрядов из 32 (что эквивалентно делению на 2^16).
Пример: T=0,7
0,7 -- 0,7*65536=45875
0,3 -- 65536-45875=19661
Y=hiword(Y*45875*X*19661)
Если хотите задавать постоянную времени не в абстрактных единицах 0..1, а, например, в секундах, то
T=e^(-dt/tau), где dt-время дискретизации (темп поступления выборок), а tau - постоянная времени фильтра. При большом соотношении tau/dt, кажется, можно считать T=tau/(dt+tau). Проверьте сами.
E-mail: info@telesys.ru