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

 
 
> Реализация нерекурсивного фильтра CIC
_Anatoliy
сообщение Jul 18 2016, 06:45
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Коллеги,есть несколько вопросов по фильтрам описанным в книге Лайонса в главе 13.24.1 Нерекурсивные АГФ.
Там предлагается строить фильтр по следующей структуре(см.рисунок)
Но если построить АЧХ фильтра первого каскада для М = 5 то получим следующую картинку. Имхо,фильтр с такой АЧХ вообще нельзя использовать в качестве децимирующего wacko.gif
Подскажите кто в курсе в чём здесь секрет.

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Jul 18 2016, 09:11
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



По-моему, мы уже говорили. Сначала задавите полосу, потом децимируйте.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 18 2016, 09:33
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(ViKo @ Jul 18 2016, 12:11) *
По-моему, мы уже говорили. Сначала задавите полосу, потом децимируйте.

Наш разговор немного напоминает разговор слепого с глухим. Если не можете ответить на поставленный вопрос то я немного озвучу задачу. Мне нужно продецимировать сигнал полосой 50МГц в 16 раз из 1200 MSPS в 75 MSPS. АЧХ CIC фильтра пятого порядка на картинке. Видно офигенное подавление боковых лепестков что хорошо, но так же видно и коэффициент передачи 150дБ! Неслабенький такой. Второй минус - неравномерность АЧХ в полосе около 50дБ. Только не говорите мне что эту неравномерность можно легко скомпенсировать дополнительным фильтром. Думаю сначала децимировать на 8 (тогда неравномерность будет всего 10 дБ,решаемо), а потом поставить ещё один дециматор на 2 на half-band фильтре. Но и в этом случае коэффициент усиления остаётся очень большим. Вот и ищу компромиссы...
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 18 2016, 10:03
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 18 2016, 12:33) *
Наш разговор немного напоминает разговор слепого с глухим. Если не можете ответить на поставленный вопрос то я немного озвучу задачу. Мне нужно продецимировать сигнал полосой 50МГц в 16 раз из 1200 MSPS в 75 MSPS. АЧХ CIC фильтра пятого порядка на картинке. Видно офигенное подавление боковых лепестков что хорошо, но так же видно и коэффициент передачи 150дБ! Неслабенький такой. Второй минус - неравномерность АЧХ в полосе около 50дБ. Только не говорите мне что эту неравномерность можно легко скомпенсировать дополнительным фильтром. Думаю сначала децимировать на 8 (тогда неравномерность будет всего 10 дБ,решаемо), а потом поставить ещё один дециматор на 2 на half-band фильтре. Но и в этом случае коэффициент усиления остаётся очень большим. Вот и ищу компромиссы...



1. Преобразование частоты дискретизации при помощи cic должно содержать минимум 2 стадии.
стадия один - сам cic. После него децимация не до целевой, а до минимум - удвоенной.
стадия два - корректирующий ких фнч с прореживанием до целевой.

2. В вашем случае нужен cic с прореживанием на 8 и ких с прореживанием на 2.

3. Картинки ваши - лажа. Ибо соответствуют фильтру аж 32-го (???) порядка.


Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 10:37
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jul 18 2016, 13:03) *
3. Картинки ваши - лажа. Ибо соответствуют фильтру аж 32-го (???) порядка.

Спорить не буду ибо считаю Вас одним из самых компетентных посетителей конференции.На картинке изображено три секции CIC - значит фильтр третьего порядка. Я в своём фильтре задаю 5 секций, поэтому и думал что работаю с фильтром пятого порядка. Как из параметров R,M,N получить номер порядка?

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 19 2016, 12:08
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 19 2016, 13:37) *
Спорить не буду ибо считаю Вас одним из самых компетентных посетителей конференции.На картинке изображено три секции CIC - значит фильтр третьего порядка. Я в своём фильтре задаю 5 секций, поэтому и думал что работаю с фильтром пятого порядка. Как из параметров R,M,N получить номер порядка?




Спасибо за лестный отзыв о моей компетентности. Что касается порядка cic:

порядок определяется количеством нулей передаточной функции. 3 нуля - 3-й порядок (N=4 коэффициента эквивалентного однородного), 32 - 32-го (N=33 к-та).
числа 3, 5 и т д означают количество каскадов или кратность нулей передаточной функции cic.

Смысл использования cic при децимации/интерполяции заключается в том, что такой фильтр имеет нули точно на частотах Fd/N*k k = 1 ... N-1 и при децимации в N раз накладываются на частоты 0 и Fd. Избирательные свойства однородного фильтра весьма убоги, поэтому используют последовательное соединение нескольких таких фильтров, что в свою очередь приводит к значительной неравномерности в полосе полезного сигнала.

В вашем случае нужна децимация в 16 раз (1200/75) при этом вы получаете полезный сигнал с 1.5-оверсэмплингом т е нужен фильтр с 16-ю к-тами. Результат можно скорректировать (если есть смысл) ких-фильтром без децимации.

Что получается?

p=ones(1,16);% однородный эквивалент cic1
h=conv(conv(conv(conv(p,p),p),p),p);%эквивалент cic5

plot(0:1200/10000:1200-1200/10000,20*log10(abs(freqz(h,1,10000,'whole'))))

Видно, что на частотах 0... 25мгц подавление наложенных частот будет не менее 40 дб. Но и неравномерность в полосе будет 8 дб. Если такое подавление недостаточно - делаем cic c децимацией на 8 и 2 с ких. итд

Теперь про разрядность:

К-т усиления одного звена будет N, к звеньев будут иметь к-т передачи N^k. Поэтому разрядность аккумуляторов интеграторов выбирают ceil(k*log2(N))+ разрядность исходных данных. После интеграторов результат прореживается в N раз и обрабатывается каскадом гребенок которая вырождается в фильтр y(n)=x(n)-x(n-1). Затем результат приводится к нужной разрядности через правый сдвиг на М разрядов. Обычно, М=ceil(k*log2(N)), т е к исходной разрядности. К-т передачи такого фильтра будет (N^k) / (2^ceil(k*log2(N)))

Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 13:42
Сообщение #7


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jul 19 2016, 15:08) *

Большое спасибо за развёрнутый ответ! Красиво Вы свёртки посчитали,а я каждую отдельно считал...

Кстати, а почему у Вас первый ноль на частоте 75МГц? Я думал нужно чтобы первый ноль был на частоте 75/2 == 37,5МГц.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 19 2016, 14:10
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 19 2016, 16:42) *
Большое спасибо за развёрнутый ответ! Красиво Вы свёртки посчитали,а я каждую отдельно считал...

Кстати, а почему у Вас первый ноль на частоте 75МГц? Я думал нужно чтобы первый ноль был на частоте 75/2 == 37,5МГц.


При децимации cic нули фильтра должны быть на частотах, кратных новой частоте дискретизации, а не ее половине. Иначе конская неравномерность будет. В этом и фишка cic.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 19 2016, 15:04
Сообщение #9


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(thermit @ Jul 19 2016, 17:10) *
При децимации cic нули фильтра должны быть на частотах, кратных новой частоте дискретизации, а не ее половине. Иначе конская неравномерность будет. В этом и фишка cic.

А,так вот почему у меня получилось 50 дБ неравномерности...Спасибо!
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 07:53
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Потихоньку двигаюсь дальше. Скажите, а как правильно посмотреть суммарную АЧХ такой цепочки : fir1-децимация-fir2? Допустим в качестве fir1 выступает фильтр с h1=conv(conv(conv(conv(p,p),p),p),p);
Сигнал с его выхода децимирую на 8 и подаю на второй фильтр с ИХ h2.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 20 2016, 10:06
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(_Anatoliy @ Jul 20 2016, 10:53) *
Потихоньку двигаюсь дальше. Скажите, а как правильно посмотреть суммарную АЧХ такой цепочки : fir1-децимация-fir2? Допустим в качестве fir1 выступает фильтр с h1=conv(conv(conv(conv(p,p),p),p),p);
Сигнал с его выхода децимирую на 8 и подаю на второй фильтр с ИХ h2.



h=conv(h1,8*upsample(h2,8));

дальше freqz
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Anatoliy   Реализация нерекурсивного фильтра CIC   Jul 18 2016, 06:45
- - ViKo   Так у всех ИГФ такая АЧХ. Там же Лайонс предлагает...   Jul 18 2016, 08:08
|- - _Anatoliy   Цитата(ViKo @ Jul 18 2016, 11:08) Так у в...   Jul 18 2016, 08:32
- - ViKo   Матлаб показывает диапазон только до половины част...   Jul 18 2016, 08:53
|- - _Anatoliy   Цитата(ViKo @ Jul 18 2016, 11:53) Матлаб ...   Jul 18 2016, 09:00
|- - bogaev_roman   Цитата(_Anatoliy @ Jul 18 2016, 12:33) Ви...   Jul 18 2016, 09:48
||- - _Anatoliy   Цитата(bogaev_roman @ Jul 18 2016, 12:48)...   Jul 18 2016, 10:00
|- - des00   Цитата(_Anatoliy @ Jul 18 2016, 16:33) Мн...   Jul 18 2016, 09:56
|- - des00   Цитата(thermit @ Jul 18 2016, 17:03) 3. К...   Jul 18 2016, 10:08
||- - _Anatoliy   Цитата(des00 @ Jul 18 2016, 13:08) Након...   Jul 19 2016, 10:28
||- - des00   Цитата(_Anatoliy @ Jul 19 2016, 17:28) Де...   Jul 19 2016, 10:33
||- - _Anatoliy   Цитата(des00 @ Jul 19 2016, 13:33) я дела...   Jul 19 2016, 10:46
||- - des00   Цитата(_Anatoliy @ Jul 19 2016, 17:46) Ни...   Jul 19 2016, 10:49
||- - _Anatoliy   Цитата(des00 @ Jul 19 2016, 13:49) Порядо...   Jul 19 2016, 10:57
||- - ViKo   Цитата(des00 @ Jul 19 2016, 13:49) В прил...   Jul 19 2016, 11:59
|- - des00   Цитата(_Anatoliy @ Jul 19 2016, 17:37) Ка...   Jul 19 2016, 10:39
|- - _Anatoliy   Цитата(thermit @ Jul 20 2016, 13:06) h=co...   Jul 20 2016, 10:12
|- - Кнкн   Цитата(thermit @ Jul 20 2016, 13:06) h=co...   Jul 21 2016, 12:48
|- - thermit   Цитата(Кнкн @ Jul 21 2016, 15:48) Скажите...   Jul 21 2016, 12:54
- - des00   И до кучи, построение дециматоров, методом комбина...   Jul 19 2016, 11:06
- - ViKo   Так, БПФ от результирующей импульсной характеристи...   Jul 20 2016, 08:29
|- - _Anatoliy   Цитата(ViKo @ Jul 20 2016, 11:29) Так, БП...   Jul 20 2016, 09:03
- - ViKo   Я вижу, мои ответы вас раздражают. Побережем нервы...   Jul 20 2016, 09:06
|- - _Anatoliy   Цитата(ViKo @ Jul 20 2016, 12:06) Я вижу,...   Jul 20 2016, 09:07
- - soldat_shveyk   ЦитатаСкажите, а как правильно посмотреть суммарну...   Jul 20 2016, 09:32
|- - _Anatoliy   Цитата(soldat_shveyk @ Jul 20 2016, 12:32...   Jul 20 2016, 10:03
- - soldat_shveyk   ЦитатаА вот эта строчка зачем? В моем примере стоя...   Jul 20 2016, 11:41
|- - _Anatoliy   Цитата(soldat_shveyk @ Jul 20 2016, 14:41...   Jul 20 2016, 12:16
|- - _Anatoliy   Вот такая сквозная АЧХ моего DDC получилась. Спаси...   Jul 21 2016, 06:45
- - honeycomb0   Вот что-то читаю и никак не могу понять... Цитата...   Sep 5 2016, 13:28
- - honeycomb0   Цитата(honeycomb0 @ Sep 5 2016, 14:28) Во...   Sep 5 2016, 14:48


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

 


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


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