Честно говоря, не стал вникать в код, да и картинку смотреть не стал.
Фильтры, как правило, очень удобно конструировать с помощью fdatool, где можно выбрать дофига разных параметров. В том числе, можно посмотореть, какой результат будет в случае использования целочисленной арифметики. Далее, полученные коэффициенты фильтров загоняются в программу практически "в лоб" и проблем не возникает, если не допущена какая-нибудь грубая ошибка. Как правило, основные проблемы БИХ фильтров - это, собственно, устойчивость фильтра и разрядность/точность аккумулятора. В первую очередь смотреть это. Если там все будет в порядке, то, практически наверняка, ошибка в реализации. Здесь смотреть, скорее всего, на то, как из линии задержки берутся отсчеты.
|