Пн фев 06, 2023 16:44:15
Пн фев 06, 2023 16:46:05
Пн фев 06, 2023 16:52:54
Пн фев 06, 2023 16:58:34
Пн фев 06, 2023 21:54:16
Пн фев 06, 2023 22:42:22
а разве A[t+1] не нужно сдвигать влево на 1 разряд (или 2 разряда)?КРАМ писал(а):A[t+1] - текущее измерение uint16_t (10 значащих разрядов)
Вт фев 07, 2023 04:24:54
Вт фев 07, 2023 07:37:25
Вт фев 07, 2023 08:04:35
Вт фев 07, 2023 19:13:43
Чт фев 09, 2023 23:00:27
Пт фев 10, 2023 01:41:02
Пт фев 10, 2023 04:59:01
S_IIR=S_IIR-(S_IIR>>4)+resultADC; // S[t+1]=((1-β)*S[t])+A[t+1], где β=0,0625=1/16
outputResult=(S_IIR+8)>>4; // округление и приведение к целому
uint16_t S_IIR; //тело фильтра (максимум 14 значащих разрядов)
uint16_t resultADC; // результат преобразования АЦП (10 разрядов)
uint16_t outputResult; // выводимый результат фильтрации (10 разрядов)
Пт фев 10, 2023 08:38:02
Пт фев 10, 2023 14:41:43
Пт фев 10, 2023 15:20:35
Пт фев 10, 2023 15:30:32
Пт фев 10, 2023 16:39:40
Пт фев 10, 2023 16:51:11
КРАМ писал(а):Вы не в состоянии написать простейший код по несложной формуле?
Demiurg писал(а):Если я не ошибаюсь
Пт фев 10, 2023 17:53:34
вот эти две:mont-oriol писал(а):Какие две итерации?
mont-oriol писал(а):Например, если сначала resultADC было 5, затем стало 3.
outputResult в этом случае устаканивается на 4.