ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1312623 Топик полностью
Dingo (25.05.2023 05:27, просмотров: 307) ответил Nikolay_Po на Простейший а-ля медианный фильтр. Инициализируешь 32-х битную целую переменную "Фильтр" первым измеренным значением АЦП, умноженным на 2^10, к примеру. Каждый период отсчётов, берёшь значение "Фильтра" и делишь его на 2^10. Сравниваешь полученное значение и значение свежего отсчёта АЦП. Если код АЦП больше делённого значения фильтра, то инкрементируешь "Фильтр". Если мешьше - декрементируешь. Если равно - ничего не делаешь. Выход фильтра - величина "Фильтр" поделённая
Спасибо! Красивое! 

Я экспоненциальный на целых числах делал, но в той моей реализации было ограничение что alpha = 1/4, 1/8, 1/(2^N). Результат как и в приведённом вами способе хранился ближе к максимальной разрядности переменной, чтобы меньше ловить ошибки округления; причём, вроде как даже накапливал их. Однако и математики было сильно больше, чем у Скрипача в ответах.