Перейти к содержанию
    

Решил не создавать новую тему а спросить здесь.

Получается что в реализации CIC-фильтра задумано, что будет возникать переполнение регистров. Необходимо ли делать сбрасывание интеграторов самому?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывать интеграторы не нужно. Выше в этой ветке была ссылка на статью (кусок из книги Харриса): http://www.informit.com/articles/article.a...85&seqNum=1

На второй странице статьи подробно объясняется почему переполнение аккумулятора не приводит к ошибкам в децимирующих CIC фильтрах.

 

Если вкратце, то при использовании арифметики с переполнением и достаточно большой разрядности интегратора каскаду comb не важно было переполнение в интеграторе или нет, поскольку разность двух отсчетов даже при переполнении в интеграторе все равно будет правильной.

В интерполирующих фильтрах проблем с переполнением интеграторов нет вообще.

 

ЗЫ: Ссылку поправил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сбрасывать интеграторы не нужно.

за исключением случая смены коэффициента преобразования частоты на лету %)

 

ЗЫ. линк нормальный дайте %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Для расчета разрядности используется формула К*log_2(N)+b

что понимается под b? Выходная разрядность 16 бит, вход от дельта сигма модулятора, т.е. однобитный.

Я так понял что в моем случае b=16, я не ошибаюсь?

 

Конечно, ошибаюсь, b - разрядность входа.

Изменено пользователем Artemij14

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Для расчета разрядности используется формула К*log_2(N)+b

что понимается под b? Выходная разрядность 16 бит, вход от дельта сигма модулятора, т.е. однобитный.

Я так понял что в моем случае b=16, я не ошибаюсь?

 

Конечно, ошибаюсь, b - разрядность входа.

 

Для расчета разрядности CIC фильтров удобно и наглядно заменить CIC (интегратор + дифференциатор или наоборот ) на эквивалентный

FIR фильтр и подсчитать усиление этого фира на нулевой частоте.

Т.е. например, есть у Вас СIC интерполятор в 100 раз 2го порядка. Эквивалентная схема интерполятор в 100 раз (т.е между входными отсчетами вставляется 99 нулей) и два последовательный фира длиной 100 все коэф. которых == 1. Усиление фиров 100^2 = 10000. Т.o на входе у Вас

1 разряд на выходе 1+log2(100^2) разрядов.

 

p.s. в принципе разрядность внутри фильтра можно несколько сократить , но тут начинается уже область искусства (читать Хогенауэра).

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

p.s. в принципе разрядность внутри фильтра можно несколько сократить , но тут начинается уже область искусства (читать Хогенауэра).

или не использовать цики, а сделать acc фильтр на памяти, в нем еще и разрядность можно усекать %)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подниму старую тему...

Чисто теоретический вопрос, что же сожрёт больше ресурсов: известно, что для CIC-фильтров повышается разрядность выхода. В связи с этим предполагается реализация его сумматоров на DSP-блоках. При такой постановке вопроса CIC-фильтр съест больше DSP-блоков (включая корректирующий КИХ фильтр), чем просто эквивалентный ему по АЧХ КИХ фильтр?

Для этой задачи возможно 2 варианта:

1. Оба фильтра работают на предельной частоте, так что полифазная обработка невозможна. Т.е. под каждое сложение или умножение съедается отдельный DSP-блок.

2. Полифазная обработка нескольких отсчётов на одном и том же DSP-блоке возможна. В этом случае отношение съедаемых ресурсов тем и другим фильтром как-то изменится? (например, чисто гипотетически, допустим, один фильтр не может быть реализован полифазно и т.п.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этой теме я выкладывал старенький код под CIC на памяти, который съедает малое количество логики и не использует DSP/умножители. Посмотрите, мб подойдёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я CIC-фильтры реализовывал, представляю, что за зверь. Я хотел бы получить какую-то обобщающую оценку от опытных товарищей, которые не первый год делают и то, и то, при том в разных вариантах. На основе их опыта по совокупности реализаций. Просто сказать, например: Да, КИХ займёт меньше ресурсов, если бы аналогичный ему CIC делать на DSP-блоках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я CIC-фильтры реализовывал, представляю, что за зверь. Я хотел бы получить какую-то обобщающую оценку от опытных товарищей, которые не первый год делают и то, и то, при том в разных вариантах. На основе их опыта по совокупности реализаций. Просто сказать, например: Да, КИХ займёт меньше ресурсов, если бы аналогичный ему CIC делать на DSP-блоках.

 

Что такое CIC аналогичный КИХ? Аналогичный по АЧХ? Ну да, при небольших значениях интерполяции/децимации можно найти такой КИХ с wstop >> wband и подавлением > 80dB, и чтобы его порядок был небольшой и разрядность маленькая... Может и получится экономнее сделать. Но когда у вас интерполяция/децимация например раз так в 50-100, то такой КИХ сожрёт большой ресурс, т.к. потребуется лошадинный порядок, а CIC останется таким же. А если нет, то в чём измеряем аналогичность и как сравнивать? :laughing:

Изменено пользователем serjj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, по АЧХ аналогичность, я об этом написал в самом первом сообщении.

Спасибо Вам за мнение. Это и было надо. Учту.

 

К стати, Ваш ответ учитывает необходимость дополнительных ресурсов на корректирующий фильтр после CIC?

 

А будет ли разница в отношении потребляемых ресурсов между CIC и КИХ - фильтрами, если реализация полифазная и если реализация "в лоб"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К стати, Ваш ответ учитывает необходимость дополнительных ресурсов на корректирующий фильтр после CIC?

CIC используется (в большинстве случаев) в связке с КИХом (работающем уже на пониженной частоте с полосой 0,5 0,25 или максимум 0,125 от символьной). При рассчёте этого КИХ закладывают коррекцию АЧХ CIC фильтра. Использовать CIC без КИХ не выгодно, т.к.

1) это ограничивает полосу сигнала относительно символьной (до интерполяции и после децимации)

2) в дециматоре CIC недофильтрует полосу сигнала = потери чутья

 

Я имел в виду только ресурс на CIC, подразумевается что КИХ на малой символьной будет так и так.

 

А будет ли разница в отношении потребляемых ресурсов между CIC и КИХ - фильтрами, если реализация полифазная и если реализация "в лоб"?

Полифазными не занимался, увы.

Изменено пользователем serjj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CIC используется (в большинстве случаев) в связке с КИХом (работающем уже на пониженной частоте с полосой 0,5 0,25 или максимум 0,125 от символьной).

...

2) в дециматоре CIC недофильтрует полосу сигнала = потери чутья

Если фильтр-корректор поднимает заваленную после CIC-фильтра АЧХ, то получается при этом уже теряется чутьё? Получается для предотвращения этого необходимо заранее предусилить высокие частоты до их ослабления CIC-фильтром. Получается при повышении частоты фильтр-корректор нужно ставить на стороне низкой частоты, а при понижении - на стороне высокой частоты. Не так?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если фильтр-корректор поднимает заваленную после CIC-фильтра АЧХ, то получается при этом уже теряется чутьё? Получается для предотвращения этого необходимо заранее предусилить высокие частоты до их ослабления CIC-фильтром. Получается при повышении частоты фильтр-корректор нужно ставить на стороне низкой частоты, а при понижении - на стороне высокой частоты. Не так?

Нет неверно. В приёмнике коррекция делается FIRом после понижения частоты дискретизации. Соотношение сигнал-шум сохраняется, т.к. завал CIC фильтра затрагивает как сигнал так и шум. После коррекции все будет восстановлено. Чтобы это работало достаточно чтобы у вас в обработке был запас "снизу", т.е. шумовая полка в полосе обработке имела разрядов 8 например. Потери будут если задавить сигнал до уровня шумов округления (арифметические шумы всегда в самом низу, нужно тепловые шумы и сигнал держать выше них, чтобы их эффектом можно было принебречь).

 

Предискажения вводят тогда, когда завал АЧХ есть в канале (и он априори известен в передатчике). Если сигнал завалится в канале то в этом участке спектра сигнал-шум изменится в худшую сторону, и если сделать коррекцию в приёмнике, то вы "разгоните" шумы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понял. Да, я предполагал ухудшение на высоких частотах, если у шума мало разрядов. Если достаточно - то согласен, учту.

 

К стати, такой вопрос сравнения: стоит ли считать недостатком CIC его бОльшую задержку? Ведь при больших коэффициентах децимации увеличится задержка, а для хорошего подавления нужно много каскадов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...