Сравнение производительности фильтров CIC и FIR

Все что касается фильтрации
mr.bit
Сообщения: 50
Зарегистрирован: 19 окт 2010, 13:08

Сравнение производительности фильтров CIC и FIR

Сообщение mr.bit »

2 Бахурин Сергей

В своей статье http://www.dsplib.ru/content/cic/cic.html Вы достаточно подробно описали структуру построения и характеристики CIC фильтров и указали на их привлекательность с точки зрения простоты реализации (ввиду отсутствия операций умножения). В связи с этим обстоятельством у меня вопрос: насколько такой фильтр будет выигрывать по скорости обработки у обычного КИХ фильтра при программной реализации (или же выигрыша по скорости не будет, а все удобство заключается лишь в малой утилизации кристалла ПЛИС), который реализуется с помощью обычной операции свертки, при прочих равных условиях? Есть ли у Вас какие-нибудь конкретные цифры? Можно, конечно, взять вашу DLL и поэкспериментировать самому, но хотелось бы сначала узнать мнение самого автора. В данный момент у меня остро стоит вопрос получения более высокого быстродействия в задачах программной интерполяции/децимации. Спасибо.

ivan219
Сообщения: 61
Зарегистрирован: 09 май 2011, 16:39

Re: Сравнение производительности фильтров CIC и FIR

Сообщение ivan219 »

В скорости они выйграют по любому. А вот качество страдает. После CIC фильтра нужно ставить ещё и коректирующий FIR фильтр.

mr.bit
Сообщения: 50
Зарегистрирован: 19 окт 2010, 13:08

Re: Сравнение производительности фильтров CIC и FIR

Сообщение mr.bit »

ivan219 писал(а):В скорости они выйграют по любому. А вот качество страдает. После CIC фильтра нужно ставить ещё и коректирующий FIR фильтр.
По поводу корректора прочитал, думаю это не проблема, все-таки интересуют конкретные цифры, стоит ли вообще связываться, так как в моей задаче коэффициент децимации может достигать 3000.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Сравнение производительности фильтров CIC и FIR

Сообщение Бахурин Сергей »

ну для того чтобы принять объективное решение надо исходить из следующих соображений: На чем программная реализация? Разрядность представления (фиксированная или плавающая точка, разрядность)? Наличие - отсутствие мат сопроцессора, позволяющего выполнять умножение за такт?

На мой взгляд на современном компьютере с мат сопроцессором поставить просто ких проще чем cic+корректор. Если FPGA то cic дает существенный выигрыш. Если процессор с фиксированной точкой или без мат сопроцессора, то cic тоже неплох, но в отличии от FPGA надо следить за переполнением сетки это чревато неустойчивостью + все равно ставить корректор. Честно говоря с к-том децимации 3000 не пробовал никогда. 3000 довольно большой к-т децимации там могут всякие эффекты полезть. Лучше предварительно потратить день два промоделить все как следует.

mr.bit
Сообщения: 50
Зарегистрирован: 19 окт 2010, 13:08

Re: Сравнение производительности фильтров CIC и FIR

Сообщение mr.bit »

Бахурин Сергей писал(а):ну для того чтобы принять объективное решение надо исходить из следующих соображений: На чем программная реализация? Разрядность представления (фиксированная или плавающая точка, разрядность)? Наличие - отсутствие мат сопроцессора, позволяющего выполнять умножение за такт?

На мой взгляд на современном компьютере с мат сопроцессором поставить просто ких проще чем cic+корректор. Если FPGA то cic дает существенный выигрыш. Если процессор с фиксированной точкой или без мат сопроцессора, то cic тоже неплох, но в отличии от FPGA надо следить за переполнением сетки это чревато неустойчивостью + все равно ставить корректор. Честно говоря с к-том децимации 3000 не пробовал никогда. 3000 довольно большой к-т децимации там могут всякие эффекты полезть. Лучше предварительно потратить день два промоделить все как следует.
Реализация выполнена на х86 в арифметике с плавающей точкой с использованием инструкций SSE 4.x, причем реализация КИХ структуры в целочисленной арифметике по скорости обработки уступала модели с плавающей точкой. Почему так получается - не могу сказать.
Видимо, все-таки, не стоит заморачиваться с CIC, а оставить полифазный фильтр с FIR. Еще раз спасибо.

Ответить