Как предлагается в комментариях, выход установившегося режима КИХ-фильтра будет постоянным входом, равным 1, равным сумме коэффициентов фильтра. Итак, чтобы получить выходное значение в установившемся режиме, равное входному, сумма коэффициентов фильтра должна быть равна 1.
Чтобы получить коэффициенты фильтра, суммирующие до 1, вы должны разделить все коэффициенты на их сумму. 0.64843691063300202
, чтобы получить:
float filter[] = {0.03734897708530974, 0.92530204582938058, 0.03734897708530974};
С этими нормализованными коэффициентами фильтра вы должны теперь получить выходные данные в диапазоне 0-1023 для входов в том же диапазоне 0-1023.
Также обратите внимание, что операция фильтрации обычно требует, чтобы функция использовала индекс входной выборки (аргумент n
функции fir
), а не жестко запрограммированное значение k=3
.