|
Реализация нерекурсивного фильтра CIC |
|
|
|
 |
Ответов
|
Jul 18 2016, 10:03
|
Знающий
   
Группа: Участник
Сообщений: 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-го (???) порядка.
|
|
|
|
|
Jul 19 2016, 12:08
|
Знающий
   
Группа: Участник
Сообщений: 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)))
|
|
|
|
|
Jul 20 2016, 10:06
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
Сообщений в этой теме
_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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|