Перейти к содержанию
    

Как вычисляется общая АЧХ CIC и КИХ в связке

Вот у меня есть CIC фильтр после которого идет КИХ. Понятно, что для общего АЧХ этой связки надо перемножить АЧХ фильтров. С АЧХ КИХ фильтра вопросов нет. А вот с АЧХ CIC у меня сплошная путаница. Сам СIC у меня очень простой (т.е. первого порядка, четырехкратная децимация) и описан он очень примитивно:

 

R = 4; % четырехкратная децимация 
D = 2; % задержка
delayBuffer = zeros(1,D);
Acum = 0;
xn = zeros(1,128); xn(1) = 1; % входной сигнал, Дельта функция
output = zeros(1,(length(xn) / R));

decim = 0;
n = 1;

% Сначала интегрируем
for ii=1:length(xn)
 Acum = Acum + xn(ii);
 decim = decim + 1;

% ... потом децимируем
 if(decim == R)
     % ... тут гребеньчатый фильтр
     Comb = Acum - delayBuffer(end);
     delayBuffer(2:end) = delayBuffer(1:end-1);
     delayBuffer(1) = Acum;
     output(n) = Comb;
     n = n + 1;
     decim = 0;
 end
end

 

Для АЧХ этого фильтра я делаю freqz(output) и получаю (см. первый график). И тут у меня начались "проблемы в понимании". Неужели АЧХ не должно выглядить как-то вот так (см. второй график)? Я догадываюсь что АЧХ на выходе "свернулось" в один лепесток из-за прореживания дециматора - это так? Как тогда понимать, что при расчете CIC фильтра, учитывают уровни подавления последующих лепестков (за счет увеличения порядка фильтра), но при этом на выходе фильтра имеем АХЧ с одним лепестком...? А так же, уровень усиления в обоих случаях разнится:( Очевидно, я что-то не так понял в CIC...

post-82671-1473329778_thumb.png

post-82671-1473330053_thumb.png

Изменено пользователем honeycomb0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

анализ цик сильно упрощается, если вспомнить, что цик1 это ких со всеми к-тами равными 1. Если децимация в 4 раза, то таких к-ов 4. нули такого фильтра расположены на частотах kFd/4, k=1...3, которые при децимации сворачиваются в 0. Поэтому рассматривают уровень ачх вокруг нулей +- половина полосы полезного сигнала. Исходя из требуемого подавления выбирают количество последовательно включенных циков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно! Я правильно понимаю, что для АЧХ двух таких последовательных CIC фильтров мне надо "свернуть" их отдельные к-ты, например freqz(conv(ones(1,4), ones(1,4)))?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ! Вы правы - перечитал ветку 136444 и понял что там есть ответы на мои вопросы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...