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

CODE
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 фильтра, учитывают уровни подавления последующих лепестков (за счет увеличения порядка фильтра), но при этом на выходе фильтра имеем АХЧ с одним лепестком...? А так же, уровень усиления в обоих случаях разнитсяsad.gif Очевидно, я что-то не так понял в CIC...
thermit
анализ цик сильно упрощается, если вспомнить, что цик1 это ких со всеми к-тами равными 1. Если децимация в 4 раза, то таких к-ов 4. нули такого фильтра расположены на частотах kFd/4, k=1...3, которые при децимации сворачиваются в 0. Поэтому рассматривают уровень ачх вокруг нулей +- половина полосы полезного сигнала. Исходя из требуемого подавления выбирают количество последовательно включенных циков.
honeycomb0
Интересно! Я правильно понимаю, что для АЧХ двух таких последовательных CIC фильтров мне надо "свернуть" их отдельные к-ты, например freqz(conv(ones(1,4), ones(1,4)))?
thermit
да. в той ветке, где вы задавали вопросы про цик это есть.
honeycomb0
Спасибо за ответ! Вы правы - перечитал ветку 136444 и понял что там есть ответы на мои вопросы...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.