|
Multirate decimation filter, Как правильно сделать? |
|
|
|
Dec 2 2009, 04:40
|
Знающий
   
Группа: Свой
Сообщений: 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?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
 |
Ответов
|
Dec 8 2009, 17:54
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052

|
Посмотрите вот сюда http://kanyevsky.kpi.ua/Studentam/labexercise%203.pdfТам есть Bireciprocal WDF - 2 таких каскада подряд дают ваши -80 дб, а неравномерность в полосе пропускания - минимальная. И умножителей не нужно.
|
|
|
|
|
Dec 9 2009, 04:33
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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ть надо %)
--------------------
|
|
|
|
|
Dec 9 2009, 18:08
|
Знающий
   
Группа: Свой
Сообщений: 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 влёгкую такую задачу решит.
|
|
|
|
|
Dec 11 2009, 04:49
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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 %) Но автору виднее %)
--------------------
|
|
|
|
|
Dec 11 2009, 08:10
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(dmitry-tomsk @ Dec 11 2009, 02:07)  параметры почти такие же, как и у автора топика т.е. нарезка АЦП на 80МГц, интерполяция в 40 раз. Если я правильно понял вашу фразу Цитата Неужели нельзя подкопить данные в буфере и переставлять указатель в буфере не на 1, а на M (где M коэффициент прореживания). вы непрерывно пишете в фильтр на 80МГц, потом берете каждый M ый записанный отсчет и считаете выход фильтра так ? На выходе фильтра у вас уже тактовая 1МГц.
--------------------
|
|
|
|
Сообщений в этой теме
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 подумал на досуге о вашей проблеме.
Варианта с н... Dec 3 2009, 04:04 Vitaliy_ARM Цитата(MKS @ Dec 2 2009, 19:27) В догонку... Dec 3 2009, 05:11  des00 Цитата(Vitaliy_ARM @ Dec 2 2009, 23:11) Т... Dec 3 2009, 05:39   Vitaliy_ARM Сейчас окончательно определился с т.з.
У меня 80Мг... Dec 7 2009, 15:24    serebr Цитата(Vitaliy_ARM @ Dec 7 2009, 21:24) С... Dec 7 2009, 15:46     Vitaliy_ARM Цитата(serebr @ Dec 7 2009, 18:46) Постан... Dec 8 2009, 10:58    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         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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|