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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Multirate decimation filter, Как правильно сделать?
des00
сообщение Dec 3 2009, 05:39
Сообщение #16


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

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



Цитата(Vitaliy_ARM @ Dec 2 2009, 23:11) *
Тогда вопрос, каким способом делать переменное прореживание?
Делаем прореживание в 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 разных цик фильтра и сравните. Перестройка частоты вообще делается элементарно, этот блок на виду у всех. Остается только сделать перестройку усиления фильтра, т.к. у циков он сильно зависит от коэфф. децимации.


--------------------
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Dec 7 2009, 15:24
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Сейчас окончательно определился с т.з.
У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.
При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.
Скажите чего еще не хватает?
Цитата(des00 @ Dec 3 2009, 08:39) *
что сложного то ? логика здравого смысла + сделайте 4 разных цик фильтра и сравните. Перестройка частоты вообще делается элементарно, этот блок на виду у всех. Остается только сделать перестройку усиления фильтра, т.к. у циков он сильно зависит от коэфф. децимации.

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

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


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
serebr
сообщение Dec 7 2009, 15:46
Сообщение #18


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

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Цитата(Vitaliy_ARM @ Dec 7 2009, 21:24) *
Сейчас окончательно определился с т.з.
У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.
При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.
Скажите чего еще не хватает?

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

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

Сообщение отредактировал serebr - Dec 7 2009, 15:51
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 7 2009, 16:26
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Vitaliy_ARM @ Dec 3 2009, 09:11) *
К сожалению пока нет матлаба. Обязательно гляну при возможности.


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

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

А почему именно CIC, да потом ещё париться с коррекцией, вытягивать высшие гармоники, загубленные CIC, из шумов квантования? Не проще ли сразу ставить FIR, для таких коэффициентов прореживания два каскада вполне хватит, если совсем прямоугольную АЧХ надо, то три. Считать коэффициенты можно в matlab для ваших вариантов и делать несколько банков коэффициентов для разных коэффициентов прореживания. Если ПЛИС с DSP слайсами, то такие фильтры требуют очень мало ресурсов и работают на 450-550 МГЦ спокойно.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 7 2009, 16:52
Сообщение #20


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

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



Цитата(Vitaliy_ARM @ Dec 7 2009, 09:24) *
Сейчас окончательно определился с т.з.
У меня 80Мгц ацп, надо принимать сигналы с полосой 500кГц в диапазоне частот 1-30МГц.
При этом полоса должна переключаться: 500кГц, 250кГц, 125кГц, 62,5кГц, чтобы уменьшить трафик.
Скажите чего еще не хватает?


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

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


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

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


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

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


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

2 Vitaliy_ARM

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


--------------------
Go to the top of the page
 
+Quote Post
hobgoblin
сообщение Dec 8 2009, 10:03
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 2-10-06
Из: Петербург
Пользователь №: 20 881



В догонку, на всякий случай, посмотрите вот этот файл:
http://www.mathworks.com/matlabcentral/fx_...1/firdesign.pdf

Там в конце пример расчета в Matlab фильтров для кристалла GC4016. Задача похожа на вашу, только полоса одна - 80 кГц и частота дискретизации в районе 70 Мегов. Может пригодиться.
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Dec 8 2009, 10:58
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(serebr @ Dec 7 2009, 18:46) *
Постановка задачи кардинально отличается от первоначальной формулировки. Скорее всего потребуется переносить частоту 1-30 МГц в область низких частот и там уже заниматься фильтрацией.

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

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

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


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

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


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
анатолий
сообщение Dec 8 2009, 17:54
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Посмотрите вот сюда http://kanyevsky.kpi.ua/Studentam/labexercise%203.pdf
Там есть Bireciprocal WDF - 2 таких каскада подряд дают ваши -80 дб,
а неравномерность в полосе пропускания - минимальная.
И умножителей не нужно.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 9 2009, 04:33
Сообщение #24


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

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



Цитата(анатолий @ Dec 8 2009, 11:54) *
Посмотрите вот сюда 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ть надо %)


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 9 2009, 17:24
Сообщение #25


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

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



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


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


--------------------
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 9 2009, 18:08
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(des00 @ Dec 9 2009, 20:24) *
кстати как вариант посмотрите еще реализацию на полифазных фирах в принципе можно ужаться по ресурсу, но умножители в любом случае потребуются.

А зачем, собственно, они нужны? Неужели нельзя подкопить данные в буфере и переставлять указатель в буфере не на 1, а на M (где M коэффициент прореживания). Для macc архитектуры буфер данных всячески есть, если прореживание в первом каскаде хотя бы в 16 раз (а можно и много больше, но неравномерность АЧХ возрастёт), то частота данных на выходе 80/16 = 5 МГц, для умножителя на 200 МГц (если какой-нибудь слабенький циклон) получаем порядок фильтра 180/5 = 36 с запасом на нестабильность тактовой. Если сделать симметричный фильтр, то уже 72, а это неплохо для первого каскада, 80 дБ подавление вполне можно сделать. Правда, не знаю как циклон справится с умножением и аккумуляцией на 24-25 разряда на 200 МГц, там нет DSP слайсов, spartan 3a или 6 влёгкую такую задачу решит.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 11 2009, 04:49
Сообщение #27


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

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



Цитата(dmitry-tomsk @ Dec 9 2009, 12:08) *
Неужели нельзя подкопить данные в буфере и переставлять указатель в буфере не на 1, а на M (где M коэффициент прореживания).


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

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


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


--------------------
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 11 2009, 07:02
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(des00 @ Dec 11 2009, 07:49) *
вам конечно виднее, но что то мне подсказывает что где то здесь есть подвох.



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

А кто сказал, что нужен CIC? Я имею ввиду децимацию только на FIR, у меня подобную задачу решают два каскада FIR, дают 90 дБ в полосе запирания и 0.001 дБ неравномерность в полосе пропускания. Работают на частоте 400 МГц на virtex.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 11 2009, 07:38
Сообщение #29


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

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



Цитата(dmitry-tomsk @ Dec 11 2009, 01:02) *
Я имею ввиду децимацию только на FIR, у меня подобную задачу решают два каскада FIR, дают 90 дБ в полосе запирания и 0.001 дБ неравномерность в полосе пропускания. Работают на частоте 400 МГц на virtex.


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


--------------------
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 11 2009, 08:07
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(des00 @ Dec 11 2009, 11:38) *
огласите пожалуйста параметры символьных частот вашего фильтра? Символьная/тактовая на входе, символьная/тактовая на выходе ?

параметры почти такие же, как и у автора топика
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th June 2025 - 17:39
Рейтинг@Mail.ru


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