Цитата(andyp @ Nov 20 2014, 15:24)

Ну смотрите сами - нахождение обственных чисел (это единственное, что там сложно) по сложности пропорционально N^3, памяти потребуется N^2. N - длина полинома числителя или знаменателя. Потом группируем нули и полюса в комплексно сопряженные пары - это сортировка по реальной части и поиск близких реальных и мнимых частей. Потом нужно будет проверить, все ли нули и полюса находятся внутри единичного круга (это скорее всего так, так как в результате синтеза получен стабильный, минимально-фазовый фильтр). Потом группируем нули и полюса в пары. Начинаем с полюса, наиболее близкого к единичной окружности - выбираем для него самый близкий ноль, чтобы минимизировать коэффициент передачи секции. Дальше - следующий полюс и ноль и т.п.
Все это, разумеется, сложнее реализовать, чем просто фильтрацию. Если фильтр целочисленный, то потребуется проверить общий коэфициент передачи на переполнение, а также проверить коэффициент передачи в отвод внутренней линии задержки и выбрать общий коэффициент передачи секции, чтобы избежать переполнения.
Вощем, я бы подумал перед тем как делать такое автоматически. Легко можно получить переполнение внутри секций или нестабильный фильтр из-за погрешностей вычислений.
Спасибо за совет.
Просто пересчет фильтра N порядка в биквады сходу не получился. Слишком нестабильный результат. Даже на плавучке. Но пробема решилась подругому.
Реализовать фильтр N порядка, даже на плавучке C6748 неполучилось из-за архетектурных особенностей C674x. Задержка в 4 такта между операцией и результатом в рекурсивном фильтре оказалась решающей.

В общем проблему я решил вот как.
Оказалось что исходники расчета коэффициэнтов фильтра Баттерворта найти было очень просто. И соответственно когда есть нули и полюса изначального полинома, перегруппировать их оказалось очень просто.

В общем коэффициенты теперь считаются не пересчетом, а напрямую из нулей и полюсов. Так и живем.

Цитата(thermit @ Nov 18 2014, 21:35)

на биквадратные звенья разбивают из-за того, что квантование к-тов таких звеньев менее фатально, нежели квантование к-тов передаточной функции всего фильтра. да и шумы меньше при конечной разрядности внутренних переменных. так что разбивайте на бикважратные блоки. это прально.
Вы все сказали верно, но у меня плавучка. Так что квантование не актуально (почти).