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

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

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

 

как я понимаю вопрос у вас про каскадную децимацию ? Если да то считать надо насколько вы портите нужную вам полосу. Без цифр сложно судить.

 

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

 

Если вы про фильтр хогенауэра, как уже сказал читайте теорию у первоисточников

 

"An Economical Class of Digital Filters for Decimation and Interpolation" EUGENE В. HOGENAUER -> Register Growth

 

Not only is Bmax the MSB at the filter output, but it is also

the MSB for all stages of the filter. This can be shown by

applying modulo arithmetic to the filter output function. For

two’s complement arithmetic, the modulo operation can be

implemented by simply eliminating bit positions above Bmax .

 

Но если очень хочется то можно, но с умом, но это вам не сильно поможет. Все равно первый интегратор должен быть точным по разрядности. В других типах CIC фильтров усекать между ступенями фильтра можно.

 

не могу найти именно ответ на вопрос - как правильно сделать переменное прореживание в фильтре Хогенауэра.

 

что сложного то ? логика здравого смысла + сделайте 4 разных цик фильтра и сравните. Перестройка частоты вообще делается элементарно, этот блок на виду у всех. Остается только сделать перестройку усиления фильтра, т.к. у циков он сильно зависит от коэфф. децимации.

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


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

Сейчас окончательно определился с т.з.

У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.

При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.

Скажите чего еще не хватает?

что сложного то ? логика здравого смысла + сделайте 4 разных цик фильтра и сравните. Перестройка частоты вообще делается элементарно, этот блок на виду у всех. Остается только сделать перестройку усиления фильтра, т.к. у циков он сильно зависит от коэфф. децимации.

Т.е. вы предлагаете сделать несколько циков и включать только нужное количество для децимации. При этом надо ставить еще умножители для коррекции усиления?

 

У меня родилась еще одна мысль, что если сделать один переменный цик + постоянный FIR. Только второму коэффициенты подгружать из вне. Получатеся, что не надо никаких умножителей дополнительных. Скорость переключаться будет один раз за сессию - очень редко. В этом случае нужно рассчитать 4 компенсирующих FIR. Что скажете?

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


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

Сейчас окончательно определился с т.з.

У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.

При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.

Скажите чего еще не хватает?

Постановка задачи кардинально отличается от первоначальной формулировки. Скорее всего потребуется переносить частоту 1-30 МГц в область низких частот и там уже заниматься фильтрацией.

 

Не хватает ещё требований к полосовому фильтру: диапазон пропускаемых частот, неравномерность АЧХ в нём, диапазон задерживаемых частот, коэффициент подавления в нём.

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

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


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

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

 

 

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

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

 

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

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

А почему именно CIC, да потом ещё париться с коррекцией, вытягивать высшие гармоники, загубленные CIC, из шумов квантования? Не проще ли сразу ставить FIR, для таких коэффициентов прореживания два каскада вполне хватит, если совсем прямоугольную АЧХ надо, то три. Считать коэффициенты можно в matlab для ваших вариантов и делать несколько банков коэффициентов для разных коэффициентов прореживания. Если ПЛИС с DSP слайсами, то такие фильтры требуют очень мало ресурсов и работают на 450-550 МГЦ спокойно.

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


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

Сейчас окончательно определился с т.з.

У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.

При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.

Скажите чего еще не хватает?

 

вы будет сносить в 0?

 

Т.е. вы предлагаете сделать несколько циков и включать только нужное количество для децимации. При этом надо ставить еще умножители для коррекции усиления?

 

Я предлагаю вам сделать в матлабе/маткаде/верилоге нужные вам CIC фильтры и посмотреть что у них общего, а что у них специфическое. Но если исследовательская жилка в вас умерла то вот ответ : нужен перестраиваемый дециматор в середине фильтра (тот самый что везде рисуется со стрелкой вниз) + корректор усиления т.к децимирующий фильтр хогенауэра имеет усиление G = (R*M)^N.

 

У меня родилась еще одна мысль, что если сделать один переменный цик + постоянный FIR. Только второму коэффициенты подгружать из вне. Получатеся, что не надо никаких умножителей дополнительных. Скорость переключаться будет один раз за сессию - очень редко. В этом случае нужно рассчитать 4 компенсирующих FIR. Что скажете?

 

Какой тогда смысл вообще использовать CIC ?

 

А почему именно CIC, да потом ещё париться с коррекцией, вытягивать высшие гармоники, загубленные CIC, из шумов квантования? Не проще ли сразу ставить FIR, для таких коэффициентов прореживания два каскада вполне хватит, если совсем прямоугольную АЧХ надо, то три. Считать коэффициенты можно в matlab для ваших вариантов и делать несколько банков коэффициентов для разных коэффициентов прореживания. Если ПЛИС с DSP слайсами, то такие фильтры требуют очень мало ресурсов и работают на 450-550 МГЦ спокойно.

 

Цик очень простой и очень просто перестраивается по частоте. Хотя в данном случае, при таком диком отношении тактовой к символьной проще сделать все с помошью фиров на маках.

 

2 Vitaliy_ARM

 

Кстати а основная селекция у вас где будет делаться? просто есть красивый вариант поставить сначала переменный CIC, а потом уже фиксированный FIR на 128. В этом случае CIC можно вообще не корректировать. Подставил ваши параметры в выложенный маткадовский файл, на частоте найквиста после децимации такой цик будет вам заваливать полосу, в худшем случае на дикие 0.00065дБ для 3-х каскадов и 0.00102 дБ для 5ти каскадов %)

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


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

В догонку, на всякий случай, посмотрите вот этот файл:

http://www.mathworks.com/matlabcentral/fx_...1/firdesign.pdf

 

Там в конце пример расчета в Matlab фильтров для кристалла GC4016. Задача похожа на вашу, только полоса одна - 80 кГц и частота дискретизации в районе 70 Мегов. Может пригодиться.

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


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

Постановка задачи кардинально отличается от первоначальной формулировки. Скорее всего потребуется переносить частоту 1-30 МГц в область низких частот и там уже заниматься фильтрацией.

 

Не хватает ещё требований к полосовому фильтру: диапазон пропускаемых частот, неравномерность АЧХ в нём, диапазон задерживаемых частот, коэффициент подавления в нём.

Да, надо сделать квадратурный приемник пачки радиоимпульсов (АМ) (в дальнейшем предполагается менять демодуляторы). Перенос на ПЧ. Остальное будет в DSP процессоре. На входе стоит NCO+аппаратные умножители, после них надо сделать прореживающий фильтр с перечислинными выше полосами, неравномерность ачх в полосе 0-450кГц не должна превышать 0,1%, подавление на частоте 500кГц и далее должно быть не хуже 80дБ. Под все остальные фильтры требования изменяются пропорционально полосе пропускания. На сколько мне известно, обычный фир с полосами пропускания меньшими 50..100 относительно частоты найквиста, потребляют больше ресурсов, чем CIC+FIR. Задача проредить полосу в 80/2 = 40МГц в полосу 0,5МГц. Нелинейность АЧХ не критична. Желательно залезть в 500..1000 Альтеровских ячеек с двумя фильтрами.

 

Кстати а основная селекция у вас где будет делаться? просто есть красивый вариант поставить сначала переменный CIC, а потом уже фиксированный FIR на 128. В этом случае CIC можно вообще не корректировать. Подставил ваши параметры в выложенный маткадовский файл, на частоте найквиста после децимации такой цик будет вам заваливать полосу, в худшем случае на дикие 0.00065дБ для 3-х каскадов и 0.00102 дБ для 5ти каскадов %)

 

Полученные IQ каналы будут подаваться на DSP процессор (причем это может подаваться как по проводному интерфейсу так и беспроводному, в общем имею то что имею, тз поставлено такое :unsure: ), в котором так же будет стоять квадратурный смеситель и FIR с переменной полосой пропускания (основная селекция на нем), после этого демодулятор сигналов.

 

Забыл упомянуть. Фаза должна быть линейна.

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


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

Посмотрите вот сюда http://kanyevsky.kpi.ua/Studentam/labexercise%203.pdf

Там есть Bireciprocal WDF - 2 таких каскада подряд дают ваши -80 дб,

а неравномерность в полосе пропускания - минимальная.

И умножителей не нужно.

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


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

Посмотрите вот сюда http://kanyevsky.kpi.ua/Studentam/labexercise%203.pdf

Там есть Bireciprocal WDF - 2 таких каскада подряд дают ваши -80 дб,

а неравномерность в полосе пропускания - минимальная.

И умножителей не нужно.

 

лаба конечно интересная, но

A single filter stage can provide the downsamphng to R=2. To achieve the dovvnsampling to 4,8,16 etc. 2,3,4,... such downsamphng stages are connected in a chain.

 

явно двумя каскадами не обойдется + характеристики этого фильтра по полосе автора не должны устроить

 

2 Vitaliy_ARM

 

Задача проредить полосу в 80/2 = 40МГц в полосу 0,5МГц.

 

Как я понял идет снос в 0 и задача изменить частоту дискретизации с 80МГц до 0.5/0.25/0.125/0.0625МГц, всего в 160/320/640/1280 раз. Я бы рассмотрел вариант 4 каскада CIC на 8/16/32/64 + FIR на 20. В этом случае подавление CIC ом зеркал будет не хуже 80 Дб, но влияние на сам сигнал будет ~0.12Дб. Но коррекцию можно перенести на стоящий дальше фир, который должен добить нужное вам затухание уже по основному каналу.

 

Желательно залезть в 500..1000 Альтеровских ячеек с двумя фильтрами.

 

500 ячеек на канал, сильно сомневаюсь. Один CIC вылезет вам где то под 400/500 плиток + FIR, скорее всего не менее 64го порядка, раздует где то под ~5000 (это если на логике), или ~3000 (это на умножителях) или ~2000 (это на маках).

 

Забыл упомянуть. Фаза должна быть линейна.

 

а какая еще она будет то у FIR (CIC это тот же FIR) %)

 

 

ЗЫ. я могу сильно ошибаться в расчетах ибо в ДСП еще ламер %)

 

PPS. так и есть ошибся в 2 раза с коэффициентом децимации, фир не на 20, а на 10ть надо %)

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


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

500 ячеек на канал, сильно сомневаюсь. Один CIC вылезет вам где то под 400/500 плиток + FIR, скорее всего не менее 64го порядка, раздует где то под ~5000 (это если на логике), или ~3000 (это на умножителях) или ~2000 (это на маках).

 

кстати как вариант посмотрите еще реализацию на полифазных фирах в принципе можно ужаться по ресурсу, но умножители в любом случае потребуются.

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


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

кстати как вариант посмотрите еще реализацию на полифазных фирах в принципе можно ужаться по ресурсу, но умножители в любом случае потребуются.

А зачем, собственно, они нужны? Неужели нельзя подкопить данные в буфере и переставлять указатель в буфере не на 1, а на M (где M коэффициент прореживания). Для macc архитектуры буфер данных всячески есть, если прореживание в первом каскаде хотя бы в 16 раз (а можно и много больше, но неравномерность АЧХ возрастёт), то частота данных на выходе 80/16 = 5 МГц, для умножителя на 200 МГц (если какой-нибудь слабенький циклон) получаем порядок фильтра 180/5 = 36 с запасом на нестабильность тактовой. Если сделать симметричный фильтр, то уже 72, а это неплохо для первого каскада, 80 дБ подавление вполне можно сделать. Правда, не знаю как циклон справится с умножением и аккумуляцией на 24-25 разряда на 200 МГц, там нет DSP слайсов, spartan 3a или 6 влёгкую такую задачу решит.

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


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

Неужели нельзя подкопить данные в буфере и переставлять указатель в буфере не на 1, а на M (где M коэффициент прореживания).

 

вам конечно виднее, но что то мне подсказывает что где то здесь есть подвох.

 

Правда, не знаю как циклон справится с умножением и аккумуляцией на 24-25 разряда на 200 МГц, там нет DSP слайсов, spartan 3a или 6 влёгкую такую задачу решит.

 

Любите вы высокие частоты аж жуть %) правда оценка в 25 разрядов слишком уж оптимистична. Со смесителя пойдет около 14-18 ти битов, с выхода цика еще будет накинуто битов 6. Итого на фир прилетит ~24х бита и сам он накинет еще бит ~14 итого аккумы нужны будут бит на 38 %) Но автору виднее %)

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


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

вам конечно виднее, но что то мне подсказывает что где то здесь есть подвох.

 

 

 

Любите вы высокие частоты аж жуть %) правда оценка в 25 разрядов слишком уж оптимистична. Со смесителя пойдет около 14-18 ти битов, с выхода цика еще будет накинуто битов 6. Итого на фир прилетит ~24х бита и сам он накинет еще бит ~14 итого аккумы нужны будут бит на 38 %) Но автору виднее %)

А кто сказал, что нужен CIC? Я имею ввиду децимацию только на FIR, у меня подобную задачу решают два каскада FIR, дают 90 дБ в полосе запирания и 0.001 дБ неравномерность в полосе пропускания. Работают на частоте 400 МГц на virtex.

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


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

Я имею ввиду децимацию только на FIR, у меня подобную задачу решают два каскада FIR, дают 90 дБ в полосе запирания и 0.001 дБ неравномерность в полосе пропускания. Работают на частоте 400 МГц на virtex.

 

огласите пожалуйста параметры символьных частот вашего фильтра? Символьная/тактовая на входе, символьная/тактовая на выходе ?

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


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

огласите пожалуйста параметры символьных частот вашего фильтра? Символьная/тактовая на входе, символьная/тактовая на выходе ?

параметры почти такие же, как и у автора топика

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


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

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

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

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

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

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

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

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

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

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