реклама на сайте
подробности

 
 
> отличие CIC от FIR, просветите плиз
shf_05
сообщение Jul 22 2008, 17:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



вроде бы без проблем использую CIC и FIR для децимации и интерполяции, знаю их характеристики (АЧХ, ФЧХ, ПФ). использую микросхемы дециматор и интерполятор (AD6620 и AD9856), там CIC фильтры, + в первой FIR есть на последней стадии децимации.

Но так до конца не понимаю разницы между CIC и FIR. Попытался найти в учебнике по ЦОС- про CIC нет ни слова...

За свою жизнь воплотил проект, где сигнал интерполировался в 4 раза FIR фильтром, причем свойства фильтра выбрал так-
* неравномерность АЧХ в полосе <= необходимой,
* затухание на 2-й гармонике исходного сигнала не менее требуемого
получил коэф-ты, зарядил в ДСПш-ку и все.
правильно ли я это сделал?

Вот что не дает покоя-
1. зачем тогда в ряде прог по расчету ЦФ (напр. MATLAB) есть фильтры, к-е наз-ся интерполирующие/децимир.
2. в чем фишка использовать CIC? не лучше ли FIR?
3. может просто все дело в простоте реализации CIC?
4. можно ли использовать IIR, если не важна ФЧХ интерполятора/дециматора?
Go to the top of the page
 
+Quote Post
9 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
Alex65111
сообщение Jul 22 2008, 18:00
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Есть вопросы изменения частоты дискретизации. Там необходимо использовать предварительно фильтрацию. В принципе, если ФЧХ не важна, то фильтрация может осуществляться как FIR так и IIR. Однако, теория теорией, но в жизни важны реализационные аспекты. С учетом этого, FIR в этих задачах предпочтительнее, так как именно на их базе возможны вычислительно эффективные полифазные структуры.
А CIC фильтры эффективно реализуются на аппаратном уровне так как не требует умножителей. При этом надо учесть, что CIC это по сути FIR, только типа рекурсивная реализация.
При чисто программной фильтрации-децимации архитектура CIC вычислительно менее эфективна, чем полифазные FIR. При аппаратной реализации CIC более эффективны.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 23 2008, 06:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



спасибо за лекцию - про CIC и FIR понял.
а если необходима минимальная задержка сигнала при децимации/интерполяции, можно ли использовать IIR фильтр при чисто программной реализации (на ДСП)?
Дело в том, что сейчас использую дециматор на 256, 8 из которых- CIC2, 16- CIC5 и 2- FIR, при этом задержка в фильтре порядка 1,5 мс. полоса сигнала порядка 4-16кГц.
Время задержки весьма критичный для меня параметр, вот и думаю использовать IIR фильтр для децимации. Будет ли это решением проблемы?
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 23 2008, 06:30
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата
сейчас использую дециматор на 256, 8 из которых- CIC2, 16- CIC5 и 2- FIR
- а почему Вы приняли именно такую схему децимации? Вообще то считается, что первый каскад должен максимально децимировать, т.е в Вашем случае как минимум 64, а то и все 128.

По поводу IIR сам не работал по такой схеме, но чисто теоритически (если фаза не страшна) можно, однако вычислительная сложность будет нерационально большой, так как в этом случае придется рассчитывать отсчеты, которые потом все равно удалять (децимировать).
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 23 2008, 09:18
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(Alex65111 @ Jul 23 2008, 12:30) *
- а почему Вы приняли именно такую схему децимации? Вообще то считается, что первый каскад должен максимально децимировать, т.е в Вашем случае как минимум 64, а то и все 128.



схема такова потому что она реализуется на ИМС AD6620, у нее ограниченные возможности, можно сделать CIC2= 8, CIC5=16, FIR=2.

Цитата(Alex65111 @ Jul 23 2008, 12:30) *
По поводу IIR сам не работал по такой схеме, но чисто теоритически (если фаза не страшна) можно, однако вычислительная сложность будет нерационально большой, так как в этом случае придется рассчитывать отсчеты, которые потом все равно удалять (децимировать).


а дляинтерполятора все равно- выч сложность будет примерно одного порядка?
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jul 23 2008, 10:27
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Есть еще одно отличие CIC от FIR. При реализации FIR можно получить АЧХ с требуемыми параметрами, например косинусный фильтр с нужным коэффициентом скругления. А вот с CIC такой гибкости нету. Поэтому при децимации сначала используют CIC, а затем FIR, дабы получить нужные свойства. Еще один немаловажный параметр фильтра - ГВЗ. У рекурсивных фильтров, которым является CIC она не линейна (линейна лишь в части полосы)Кстати, утверждение, что первый каскад должен максимально децимировать не верно. Лучше для максимальной децимации использовать FIR, а уж чего не хватает - добивать CICом. Так можно получить меньшую неравномерность АЧХ и ГВЗ.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Jul 23 2008, 13:19
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(Михаил_K @ Jul 23 2008, 14:27) *
Еще один немаловажный параметр фильтра - ГВЗ. У рекурсивных фильтров, которым является CIC она не линейна (линейна лишь в части полосы)


Немного не так - CIC это не рекурсивный фильтр (в том смысле что это не IIR), это рекурсивная реализация FIR фильтра, причем с линейной ФЧХ во всей частотной области и следовательно постоянным ГВЗsmile.gif

Что касается использования IIR для децимации, то конечно можно. Но только ГВЗ для IIR будет не такая уж и маленькая. Хотя и меньшеsmile.gif Но будет нелинейной ФЧХ и будут (скорее всего) вычисления с плавающей точкой. Хотя, если не ошибаюсь, для IIR также возможна полифазная реализация.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 23 2008, 13:51
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



с дециматором ясно, а как насчет интерполятора?
ведь даже в матлабе по умолчанию ф-я decimate использует БИХ фильтр чебышева?
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jul 23 2008, 14:12
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(Самурай @ Jul 23 2008, 17:19) *
Немного не так - CIC это не рекурсивный фильтр (в том смысле что это не IIR), это рекурсивная реализация FIR фильтра, причем с линейной ФЧХ во всей частотной области и следовательно постоянным ГВЗsmile.gif


гм. Возможно я ошибся на счет ГВЗ....

Цитата(shf_05 @ Jul 23 2008, 17:51) *
с дециматором ясно, а как насчет интерполятора?
ведь даже в матлабе по умолчанию ф-я decimate использует БИХ фильтр чебышева?


С интерполяцией наоборот. Если есть требования к неравномерности АЧХ, то сначала нужно интерполировать FIRом, а потом можно добить CICом

Кстати, неплохо про CIC написано у Xilinx. Смотрите прикрепленный файлик
Прикрепленные файлы
Прикрепленный файл  cic.pdf ( 452.98 килобайт ) Кол-во скачиваний: 830
 
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Jul 23 2008, 14:57
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата
Лучше для максимальной децимации использовать FIR, а уж чего не хватает - добивать CICом
- Чето намудрили, если уж FIRом сумели много децимировать, то CIC уже нафиг не нужен.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 23 2008, 16:56
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(Alex65111 @ Jul 23 2008, 20:57) *
- Чето намудрили, если уж FIRом сумели много децимировать, то CIC уже нафиг не нужен.


вот вот я впал в замешательство зачем?!
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 24 2008, 02:14
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Немножко оффтопик, но частью по теме.

Господа просветите ламера.

Использую у себя на ФПГА в качестве дециматоров/интерполяторов N каскадов FIR со всеми единичными коэффициентами (порядок FIR определяется кратным изменением частоты).

АЧХ и ФЧХ CIC и этого FIR совпадают.

Чем такой фильтр хуже/лучше чем классический CIC (с рекурсивной частью) ?


Спасибо.


--------------------
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jul 24 2008, 06:31
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(Alex65111 @ Jul 23 2008, 18:57) *
- Чето намудрили, если уж FIRом сумели много децимировать, то CIC уже нафиг не нужен.


СIC нужен. С ростом коэффициента децимации возрастает объем оборудования, занимаемого FIRом. В частности величина линий задержки и объем памяти для коэффициентов. Так например на VirtexII в тысяыном плисе я реализовывал двухканальный FIR с коэффициентом децимации 128. При этом сожрало практически всю память плиса. А поставленный перед ним CIC, занимая небольшой объем позволил увеличить общий коэффициент децимации до 32768.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 24 2008, 08:49
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



спасибо всем за ответы.
как насчет реализации дециматоров и интерполяторов на FPGA, нужно реализовать интерполятор и дециматор на 256, "конечная" Fs>= 4MSPS.
насколько это трудоемкая задача? можно ли реализовать на cpld?
кто делал- поделитесь соображениями.
сам до этого не использовал FPGA, только ДСП.
если есть ссылки по теме скинте пожалуйста.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jul 24 2008, 09:51
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(shf_05 @ Jul 24 2008, 12:49) *
спасибо всем за ответы.
как насчет реализации дециматоров и интерполяторов на FPGA, нужно реализовать интерполятор и дециматор на 256, "конечная" Fs>= 4MSPS.
насколько это трудоемкая задача? можно ли реализовать на cpld?
кто делал- поделитесь соображениями.
сам до этого не использовал FPGA, только ДСП.
если есть ссылки по теме скинте пожалуйста.


Боюсь что на CPLD будет трудновато. Разве что действительно CIC использовать, если нет требования к АЧХ.

Если же использовать FIR, то нужно строить полифазную структуру, с учетом того, что фильтр как правило симметричный. Задача не слишком сложная, главное правильно понять. Помню когда делал дециматор, чуть мозг не спалил, когда делал разворот в центре фильтра smile.gif
Go to the top of the page
 
+Quote Post

9 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 04:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016