CIC фильтр
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
CIC фильтр
Здорово, котяры
Хочу реализовать CIC фильтр на ПЛИС. Его вход, как известно, состоит из цепочки каскадно включённых интеграторов, которые охвачены положительной обратной связью, что рано или поздно вызовет их переполнение. Всязи с чем вопрос: В РЯДЕ ИСТОЧНИКОВ НАПИСАНО, ЧТО ПЕРЕПОЛНЕНИЯ НЕ НАСТУПИТ, ЕСЛИ РАЗРЯДНОСТЬ РЕГИСТРОВ ВЫБРАТЬ ДОСТАТОЧНО БОЛЬШОЙ, НО Я НЕ МОГУ ЭТОГО ПОНЯТЬ, ВЕДЬ СКОЛЬКОБ Я ТУДА РАЗРЯДОВ НЕ ПИХАЛ, СУММАТОРЫ СУММИРУЮТ И РАНО ИЛИ ПОЗДНО ЭТО ПРИВЕДЁТ К ТОМУ, ЧТО РАЗРЯДНОЙ СЕТКИ НЕ ХВАТИТ
. Кто нибудь, может сказать что нибудь конкретное по этому вопросу, был бы очень признателен. На рисунке показаны 2 интегратора, состоящие из сумматоров и триггеров, выполняющих задержку отсчёта на 1 такт.
- Вложения
-
- integrators.JPG
- (15.58 КБ) 1187 скачиваний
- Реклама
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: CIC фильтор
А что Вас смущает? Коэффициент передачи итегратора на постоянном токе равен бесконечности. Но CIC-фильтры состоят не только из Itegrators, но и Combs. Коэффициент передачи на DC можно сделать единичным.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
меня смущает то, что я не понимаю как сделать сумматор... т.е. Вы хотите сказать, что если я правильно выберу разрядность триггера, то переполнение мне не страшно, так? но вот представьте ситуацию, у меня 3-х разрядный (к примеру) регистр. И в какой то момент времени значение на нём 111, приходящий отсчёт увеличивает его до 1 000, но на шине у меня 000 => вместо 8 я получаю 0. Это ведь ошибка! Я конечно могу округлить результат на шине до 111 но я где то прочитал, что округление в данном случае неприемлемо. Как тогда быть?
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: CIC фильтор
Although the gain of an Mth-order CIC decimation filter is (NR)M individual integrators can experience overflow. (Their gain is infinite at DC.) As such, the use of two's complement arithmetic resolves this overflow situation just so long as the integrator word width accommodates the maximum difference between any two successive samples (in other words, the difference causes no more than a single overflow). Using the two's complement binary format, with its modular wrap-around property, the follow-on comb filter will properly compute the correct difference between two successive integrator output samples.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Ммм... мне пока сложно переводить английский текст, тем более технический, но если я прально понял, то тут говорится о том, что если в интеграторе и наступит ошибка, то в секции гребёнки, она исправится, если применит там при вычитании дополнительный код, так? Но тогда выходит, что разрядность регистров роли не играет (лишь бы она была не меньше длинны слова), а в ряде статеик буржуинских, я прочитал, что разрядность надо делать побольше, даже формула есть... И вот эта строка интересная:
Если правильно понял, здесь говорится что могут переполнится отдельные интеграторы... но интересно, если у меня 1 переполнился, он из запоя не выйдет уже, а остальные такт за тактом уйдут за ним... Вообщем чёт мутновато всёрано.... на уровне интуиции понимание всёравно не приходит
...filter is (NR)M individual integrators can experience overflow.
Если правильно понял, здесь говорится что могут переполнится отдельные интеграторы... но интересно, если у меня 1 переполнился, он из запоя не выйдет уже, а остальные такт за тактом уйдут за ним... Вообщем чёт мутновато всёрано.... на уровне интуиции понимание всёравно не приходит

- Реклама
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: CIC фильтор
Грендайзер писал(а):Если правильно понял, здесь говорится что могут переполнится отдельные интеграторы... но интересно, если у меня 1 переполнился, он из запоя не выйдет уже
Интеграторы в CIC-фильтре всегда работают с переполнениями. Чтобы это не нарушало работу, данные нужно представлять в дополнительном коде. Суммирование делается без учета переноса. После переполнения суммирование продолжается, никакого запоя не наступает. Разрядность выбирается исходя из коэффициента передачи всего фильтра на DC.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Огромное спасибо! Если честно, Вы сильно помогли. Правда всё равно осталось некоторое недопонимание, так что если что я обязательно напишу снова. Пока попытаюсь переварить всё.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Мммм... такой вот ещё вопросик перед вычитанием в секции гребёнки, ведь необходимо сравнивать величины чисел... что бы не напартачить со знаком разности... так?
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: CIC фильтор
Зачем? Работаем в дополнительном коде и ни о чем не думаем.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Ясненько... т. е. в секции comb просто преобразуем вычитаемое и складываем с уменьшаемым, а там хоть не рассветай... кажется начинаю понимать, спасибо 
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Леонид Иванович, спасибо, всё получилось. Не сказать, что б я понял сокральный смысл CIC фильтров, но берега уже показались 
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: CIC фильтор
Так весь смысл в отсутствии умножений 
Re: CIC фильтор
спасибо, всё получилось
а можно пример того что получилось
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтор
Ух ну ты и спросил... сколько уж воды утекло... Но тебе повезло... щас точно не помню что рабочее что нет, но если чего могу поискать, если не заработает, напиши... там сам фильтр и тест бенч... возможно правда у файлов названия перепутаны...
- Вложения
-
- Xilinx.rar
- (4.02 КБ) 321 скачивание
Re: CIC фильтр
спасибо за ответ
если не лень будет попробуй написать статью по данной теме
типа такой http://bsvi.ru/cordic-dlya-chajnikov/
мне реально помогла несмотря на то что она на англиском
если не лень будет попробуй написать статью по данной теме
типа такой http://bsvi.ru/cordic-dlya-chajnikov/
мне реально помогла несмотря на то что она на англиском
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтр
Не думою, что моя статья кому то поможет... Я так до конца и не понял сокральной сути работы фильтров... А жизнь так сложилась, что сейчас я к сожалению не ЦОСом занимаюсь (хотя именно это у меня всегда интерес и вызывало) а скорей системами управления и работой с некоторыми интерфейсами и в ближайшее время ситуация скорей всего не изменится, свободного же время остаётся немного и разбираться с вопросами не касающимися нынешней деятельности остаётся или мало или совсем нет
Так что о том что там конкретно в коде написано и как он работает я бы мог написать но вот о теории работы данных фильтров к сожалению не ко мне... я ж ведь VHDL-ем фактически просто структурную схему этого фильтра описал это не сложно, сумматоры, щётчик, и опять сумматоры (только со знаком минус) 
Re: CIC фильтр
у меня альтера а не xilinx
поетому твой пример вряд ли заработает
вот еслиб он в графическом виде был
квартус кстати умеет показывать в графическом виде VHDL код но после того как он его скомпилит
поетому твой пример вряд ли заработает
вот еслиб он в графическом виде был
квартус кстати умеет показывать в графическом виде VHDL код но после того как он его скомпилит
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтр
От тебе графический вариант. Именно схему описанную в данном даташите я и описывал (правда кол-во интеграторов и дифференциаторов могут отличаться от количества на картинке). Код не содержит специализированных софтовых ядер и подключённых аппаратных ресурсов конкретной микросхемы (говоря нормальным языком код полностью синтезируем) мне просто в своё время довелось поработать с ПЛИС ф. Xilinx писал поэтому в ISE там автоматически создаётся шаблон... и да ISE тоже умеет схему рисовать (и может ещё много чего, как собсно и квартус). Сейчас работаю с сыклонами III и также компилил проект под них.. в коде ничего не менял....
Re: CIC фильтр
вход R это величина децимации ?
то есть чем он больше тем сильнее грубо говоря фильтрация
то есть чем он больше тем сильнее грубо говоря фильтрация
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: CIC фильтр
Грубо говоря... да. Я в тест бенче ЛЧМ сигнал сформировал (правда уж не момню что там надо раскомментировать а что закоментировать чтоб понеслось), очень наглядно выходит, если поставить большой R, то когда частота на входе высокая то на выходе ничего нет... но с уменьшением частоты на выходе начинает появляться сигнал... В моделсиме очень всё наглядно выходит...


