Цитата(diwil @ Aug 21 2009, 15:01)

Фильтр такой -
диф. задержка = 2
звеньев - 8
прореживание - 1450 (тысяча четыреста пятьдесят)
вход.выход = 32 бита.
У меня получается следующая последовательность количества бит:
125 113 102 91 81 71 61 51 | 46 45 44 43 42 41 40 40
Ну и в конце сброс с 40 бит до 32х
Или я что-то не правильно делаю, или...
В общем сигнал на выходе примерно 1/2 от входного.
Фильтр с другими параметрами работает правильно.
Если кто может посчитать эту последовательность, то быду безумно признателен в пределах разумного.
Для CIC фильтра отношение выход/вход на нулевой частоте равно (R*M)^N, где R-прореживание, M-диф.задержка, N-число звеньев. Очевидно, что нормирование АЧХ к единице, выполняемое путем простейшего отбрасыванием младших разрядов прокатывает далеко не всегда, а только в случае, когда R*M равно степени двойки. В остальных случаях выход фильтра масштабируется умножением на некоторый коэффициент.
Вот и у Вас, (1450*2)^8 это примерно 1.0102*2^92, следовательно, для представления выходного сигнала после фильтра с абсолютной точностью нужно 93+32 = 125 разрядов. И нормирование выхода путем простого отбрасывания 93 младших разрядов и дает те самые "примерно 1/2 от входного", а точнее 0.5051. Это, разумеется, без учета погрешностей от округления на промежуточных стадиях, но это Вы уж сами считайте как они влияют на результат