... но не любой ценой.
-
- Результат работы Вашего способа отличается от идеологически
правильного скользящего среднего тем, что у Вас результат
обновляется в 256 раз реже, чем поступают отсчеты, потому сигнал на
выходе ступенчатый. По времени в среднем он отстает на 128
отсчетов, как и в скользящем среднем, однако последнее реагирует на
любой скачек с такой задержкой, а время реакции Вашего способа
зависит от момента поступления скачка и плавает от нуля до 256
периодов дискретизации. Впрочем, для Yurasvs(78 знак., 12.10.2025 16:18)
- Именно так. И это осознанный размен дико избыточной скорости на дешевизну устройства. Cкpипaч(75 знак., 12.10.2025 18:03)
- Плывущее окно легко делать через аккумулятор, плюсуя в него вновь
поступившее значение и минусуя самое старое значение из буфера,
вместо которого в буфер кладётся новое, только что прибывшее
значение. - Nikolay_Po(12.10.2025 13:22)
- Именно так. Но под 256 отсчетов нужно 512 байт + указатели на
старое/новое. Полкило. У меня на atmega8 вся память кристала 1К. - Cкpипaч(12.10.2025 13:28)
- Я делал через 2 кольцевых буфера по 16 отсчётов, результат одного подавал на вход другого. Суть та же, что и при 256 отсчётах, но память экономится существенно, если нужно. И, кстати, использовал оверсемплинг в паре коммерческих девайсов на печатках с хорошей разводкой и во многих своих, не серийных, "макетных" поделках на PIC18 c 12-битным АЦП, вообще не запариваясь на тему подмешивания шума в сигнал. Расход памяти на окна - 2*16+3*16+2+3=85 байт + 2 байта сохраненный CS!(1054 знак., 24.10.2025 05:13)
- А, да, если отсчёты более чем 8 бит. А как иначе сделать скользящее
окно? Остаётся только экспоненциальный фильтр. - Nikolay_Po(12.10.2025 13:47)
- Можно вычесть 1/256 от текущего значения аккумулятора и прибавить
новый отсчёт. - LightElf(12.10.2025 14:39)
- Это и есть экспоненциальный фильтр. - Andreas(12.10.2025 14:46)
- Я таких умных слов не знаю, по-колхозному :-) - LightElf(12.10.2025 20:32)
- Да, удобная вещь и для сглаживания отсчетов годится, памяти -
только аккумулятор. - Visitor(12.10.2025 17:47)
- Но желательна не целочисленная арифметика. Хотя-бы - с фиксированной точкой. - Toчкa oпopы(12.10.2025 21:43)
- Это и есть экспоненциальный фильтр. - Andreas(12.10.2025 14:46)
- Можно вычесть 1/256 от текущего значения аккумулятора и прибавить
новый отсчёт. - LightElf(12.10.2025 14:39)
- Именно так. Но под 256 отсчетов нужно 512 байт + указатели на
старое/новое. Полкило. У меня на atmega8 вся память кристала 1К. - Cкpипaч(12.10.2025 13:28)
- Результат работы Вашего способа отличается от идеологически
правильного скользящего среднего тем, что у Вас результат
обновляется в 256 раз реже, чем поступают отсчеты, потому сигнал на
выходе ступенчатый. По времени в среднем он отстает на 128
отсчетов, как и в скользящем среднем, однако последнее реагирует на
любой скачек с такой задержкой, а время реакции Вашего способа
зависит от момента поступления скачка и плавает от нуля до 256
периодов дискретизации. Впрочем, для Yurasvs(78 знак., 12.10.2025 16:18)