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

Доброе время суток.

 

Возникла необходимость сделать прореживающий фильтр с коэффициентами прореживания R = 512, 1024, 2048, 4096 на базе CIC + компенсирующий FIR. У альтеры в апноуте (AN 455) описан алгоритм расчета коэффициентов FIR-а для компенсации "односкоростного" CIC. Вопрос, как это применить для многоскоростного фильтра? Правильно ли будет разбить CIC на две части, первая допустим с коэффициентами прореживания 4,8,16,32, вторая с прореживанием на 128, и рассчитать компенсирующий FIR для второго CIC?

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


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

Возникла необходимость сделать прореживающий фильтр с коэффициентами прореживания R = 512, 1024, 2048, 4096 на базе CIC

 

А вам необходимы все коэффициенты одновременно (т.е. будете 4 канала обрабатывать), или они будут переключаться во время работы? Если второй вариант - нет смысла разбивать CIC на части.

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


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

А вам необходимы все коэффициенты одновременно (т.е. будете 4 канала обрабатывать), или они будут переключаться во время работы? Если второй вариант - нет смысла разбивать CIC на части.

 

Второй вариант. Т.е. если я рассчитаю для CIC с R = 512 коэффициенты компенсирующего FIR фильтра, то и на всех остальных R это будет тот же фильтр?

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


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

Второй вариант. Т.е. если я рассчитаю для CIC с R = 512 коэффициенты компенсирующего FIR фильтра, то и на всех остальных R это будет тот же фильтр?

 

нет, там фильтр будет другой, но в интересующей вас полосе разность частотных характеристик будет ~0.005Дб если вас это устроит то этим можно пренебречь %)

 

ЗЫ. Кстати считается такой фильтр элементарно в любом каде (Matlab/Matcad/Mapple) зная АЧХ цика %)

ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика.

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


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

нет, там фильтр будет другой, но в интересующей вас полосе разность частотных характеристик будет ~0.005Дб если вас это устроит то этим можно пренебречь %)

Меня интересует максимальная полоса на выходе, т.е. близкая к Fs/2. Т.е. может имеет смысл разбить цик на две части? Чтобы влияние первого ачх было как можно меньше

 

ЗЫ. Кстати считается такой фильтр элементарно в любом каде (Matlab/Matcad/Mapple) зная АЧХ цика %)

Я не силен пока в цифровой обработке сигналов, может подскажите ссылку на статью или информацию, что с чем связано и как это делать в матлабе?

ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика.

Почему? Фирмы типа альтеры рекомендуют в дециматорах ставить после, в интерполяторах до. Вы имеете ввиду потерю динамического диапазона на краях АЧХ Цика?

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


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

ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика.

Если фильтр децимальный, то FIR ставят после CIC и прореживания для сокращения количества вычислительных операций.

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


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

Если фильтр децимальный, то FIR ставят после CIC и прореживания для сокращения количества вычислительных операций.

 

сыплю голову пеплом, писал ответ о дециматоре, а написал про интерполятор %)

 

Меня интересует максимальная полоса на выходе, т.е. близкая к Fs/2. Т.е. может имеет смысл разбить цик на две части? Чтобы влияние первого ачх было как можно меньше

 

Но полоса то вам нужна после децимации верно ? Теперь оцените на сколько вы делаете децимацию и какую часть вашей полосы портит CIC. Сложно делать заявления без опоры на цифры(считать лень), но по опыту начиная с коэфф. децимации 8 АЧХ различаются не более чем на 0.1Дб для 6ти каскадов CIC. Незнаю ваших требований к CIC фильтру, но если входная разрядность ~16, число каскадов больше 3-х, и делаете вы это на фпга то лучше вам НЕ делать фильтр хогенауэра. Для проца смотреть надо %)

 

Я не силен пока в цифровой обработке сигналов, может подскажите ссылку на статью или информацию, что с чем связано и как это делать в матлабе?

 

В атаче расчет RC фильтра с коррекцией АЧХ CIC фильтра, 13 маткад. Все комментарии на русском. Ничего сложного %)

_______RC________.zip

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


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

Но полоса то вам нужна после децимации верно ? Теперь оцените на сколько вы делаете децимацию и какую часть вашей полосы портит CIC. Сложно делать заявления без опоры на цифры(считать лень), но по опыту начиная с коэфф. децимации 8 АЧХ различаются не более чем на 0.1Дб для 6ти каскадов CIC. Незнаю ваших требований к CIC фильтру, но если входная разрядность ~16, число каскадов больше 3-х, и делаете вы это на фпга то лучше вам НЕ делать фильтр хогенауэра. Для проца смотреть надо %)

Разрядность 18бит, исполнение в FPGA. Полоса нужна после децимации, близкая к Fs/2, где Fs - частота дискретизации после прореживания. Неравномерность АЧХ должна быть как можно меньше, 0.05% устроит. Число каскадов цика можно выбирать от 3 до 8, чем меньше - тем лучше. Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места.

Вопрос тот же. Как правильно построить фильтр Хогенауэра с переменным коэффициентом прореживания?

В атаче расчет RC фильтра с коррекцией АЧХ CIC фильтра, 13 маткад. Все комментарии на русском. Ничего сложного %)

Спасибо за информацию.

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


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

Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места.

 

5 каскадов CIC, 18 бит на входе, R = 4096, M = 1, хогенауэр потребует первого интегратора на 78 бит (!!!), 3 каскада 54 бита. И это вы называете лучшим вариантом ? :) Почитайте теорию хогенауэра для начала, перед тем как делать такие заявления %)

 

Вопрос тот же. Как правильно построить фильтр Хогенауэра с переменным коэффициентом прореживания?

 

рассчитайте отдельные фильтры на все коэффициенты децимации, тогда вам станет ясно как сделать перестраиваемый %) Ответ там лежит на поверхности

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


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

Разрядность 18бит, исполнение в FPGA. Полоса нужна после децимации, близкая к Fs/2, где Fs - частота дискретизации после прореживания. Неравномерность АЧХ должна быть как можно меньше, 0.05% устроит. Число каскадов цика можно выбирать от 3 до 8, чем меньше - тем лучше. Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места.
Сказать, что нужна полоса после прореживания, близкая к Fs/2, это значит - ничего не сказать. Надо знать, насколько именно близко? На 1% от Fs/2 или на 0.01%? От этого порядок требуемого фильтра будет меняться в сотни раз, если есть требование подавления "зеркальных" частот при децимации.

В качестве аналогии могу привести такой пример: насколько сильно будут разгоняться протоны в Большом адронном коллайдере? Ответ - близко к скорости света. Так ведь это и ежу понятно, что близко, вопрос в том - насколько близко? На 1% от c или на 0.01%? Или ещё ближе? :) Энергия протонов при этом тоже будет меняться на порядки.

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


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

Сказать, что нужна полоса после прореживания, близкая к Fs/2, это значит - ничего не сказать. Надо знать, насколько именно близко? На 1% от Fs/2 или на 0.01%? От этого порядок требуемого фильтра будет меняться в сотни раз, если есть требование подавления "зеркальных" частот при децимации.

В качестве аналогии могу привести такой пример: насколько сильно будут разгоняться протоны в Большом адронном коллайдере? Ответ - близко к скорости света. Так ведь это и ежу понятно, что близко, вопрос в том - насколько близко? На 1% от c или на 0.01%? Или ещё ближе? :) Энергия протонов при этом тоже будет меняться на порядки.

 

Уточню. На частоте Найквиста должно быть подавление не хуже 70дБ. Порядок FIR = 110.

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


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

Уточню. На частоте Найквиста должно быть подавление не хуже 70дБ. Порядок FIR = 110.

 

маловато будет информации :)

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


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

В догонку, загляните еще в эту тему. Там решается похожая задача с примером в матлабе.

Успехов.

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


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

подумал на досуге о вашей проблеме.

 

Варианта с нормальной производительностью/ресурсом вижу два

1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти.

2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная.

 

Что из этого будет в итоге "весить" меньше решать вам %)

 

ЗЫ. еще немаловажный вопрос время выхода фильтра на режим при перестройке полосы, помните что интегральные части циков надо сбрасывать.

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


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

В догонку, загляните еще в эту тему. Там решается похожая задача с примером в матлабе.

Успехов.

 

К сожалению пока нет матлаба. Обязательно гляну при возможности.

 

подумал на досуге о вашей проблеме.

 

Варианта с нормальной производительностью/ресурсом вижу два

1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти.

2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная.

 

Что из этого будет в итоге "весить" меньше решать вам %)

 

ЗЫ. еще немаловажный вопрос время выхода фильтра на режим при перестройке полосы, помните что интегральные части циков надо сбрасывать.

Тогда вопрос, каким способом делать переменное прореживание?

Делаем прореживание в CICе и при этом используем один FIR, пренебрегая изменением АЧХ CICа?

 

Почему нельзя пользоваться усечением разрядности CIC?

p.s. приношу извинения за ламерские вопросы, не могу найти именно ответ на вопрос - как правильно сделать переменное прореживание в фильтре Хогенауэра.

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


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

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

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

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

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

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

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

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

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

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