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

 
 
> Multirate decimation filter, Как правильно сделать?
Vitaliy_ARM
сообщение Dec 2 2009, 04:40
Сообщение #1


Знающий
****

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



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

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


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des00
сообщение Dec 3 2009, 04:04
Сообщение #2


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

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



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

Варианта с нормальной производительностью/ресурсом вижу два
1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти.
2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная.

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

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


--------------------
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Dec 3 2009, 05:11
Сообщение #3


Знающий
****

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



Цитата(MKS @ Dec 2 2009, 19:27) *
В догонку, загляните еще в эту тему. Там решается похожая задача с примером в матлабе.
Успехов.


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

Цитата(des00 @ Dec 3 2009, 07:04) *
подумал на досуге о вашей проблеме.

Варианта с нормальной производительностью/ресурсом вижу два
1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти.
2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная.

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

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

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

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


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 3 2009, 05:39
Сообщение #4


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

Группа: Модераторы
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Свой
Сообщений: 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
Vitaliy_ARM
сообщение Dec 8 2009, 10:58
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- Vitaliy_ARM   Multirate decimation filter   Dec 2 2009, 04:40
- - Михаил_K   Цитата(Vitaliy_ARM @ Dec 2 2009, 07:40) В...   Dec 2 2009, 06:58
|- - Vitaliy_ARM   Цитата(Михаил_K @ Dec 2 2009, 09:58) А ва...   Dec 2 2009, 07:04
|- - des00   Цитата(Vitaliy_ARM @ Dec 2 2009, 01:04) В...   Dec 2 2009, 08:47
|- - Vitaliy_ARM   Цитата(des00 @ Dec 2 2009, 11:47) нет, та...   Dec 2 2009, 09:15
|- - serebr   Цитата(des00 @ Dec 2 2009, 14:47) ЗЗЫ. Ду...   Dec 2 2009, 10:48
|- - des00   Цитата(serebr @ Dec 2 2009, 04:48) Если ф...   Dec 2 2009, 11:29
|- - Vitaliy_ARM   Цитата(des00 @ Dec 2 2009, 14:29) Но поло...   Dec 2 2009, 11:41
|- - des00   Цитата(Vitaliy_ARM @ Dec 2 2009, 05:41) Ф...   Dec 2 2009, 11:54
|- - serebr   Цитата(Vitaliy_ARM @ Dec 2 2009, 17:41) Р...   Dec 2 2009, 12:18
|- - Vitaliy_ARM   Цитата(serebr @ Dec 2 2009, 15:18) Сказат...   Dec 2 2009, 13:35
|- - des00   Цитата(Vitaliy_ARM @ Dec 2 2009, 07:35) У...   Dec 2 2009, 13:42
- - MKS   В догонку, загляните еще в эту тему. Там решается ...   Dec 2 2009, 16:27
||- - des00   Цитата(Vitaliy_ARM @ Dec 7 2009, 09:24) С...   Dec 7 2009, 16:52
|- - dmitry-tomsk   Цитата(Vitaliy_ARM @ Dec 3 2009, 09:11) К...   Dec 7 2009, 16:26
- - hobgoblin   В догонку, на всякий случай, посмотрите вот этот ф...   Dec 8 2009, 10:03
- - анатолий   Посмотрите вот сюда http://kanyevsky.kpi.ua/Studen...   Dec 8 2009, 17:54
- - des00   Цитата(анатолий @ Dec 8 2009, 11:54) Посм...   Dec 9 2009, 04:33
- - des00   Цитата(des00 @ Dec 8 2009, 22:33) 500 яче...   Dec 9 2009, 17:24
- - dmitry-tomsk   Цитата(des00 @ Dec 9 2009, 20:24) кстати ...   Dec 9 2009, 18:08
- - des00   Цитата(dmitry-tomsk @ Dec 9 2009, 12...   Dec 11 2009, 04:49
- - dmitry-tomsk   Цитата(des00 @ Dec 11 2009, 07:49) вам ко...   Dec 11 2009, 07:02
- - des00   Цитата(dmitry-tomsk @ Dec 11 2009, 01...   Dec 11 2009, 07:38
- - dmitry-tomsk   Цитата(des00 @ Dec 11 2009, 11:38) огласи...   Dec 11 2009, 08:07
- - des00   Цитата(dmitry-tomsk @ Dec 11 2009, 02...   Dec 11 2009, 08:10
- - dmitry-tomsk   Цитата(des00 @ Dec 11 2009, 11:10) т.е. н...   Dec 11 2009, 08:24
- - des00   Цитата(dmitry-tomsk @ Dec 11 2009, 02...   Dec 11 2009, 08:38


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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 14:07
Рейтинг@Mail.ru


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