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

 
 
 
Reply to this topicStart new topic
> Как вычисляется общая АЧХ CIC и КИХ в связке, MATLAB/Octave
honeycomb0
сообщение Sep 8 2016, 10:16
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 28-08-14
Пользователь №: 82 671



Вот у меня есть 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...

Сообщение отредактировал honeycomb0 - Sep 8 2016, 10:22
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Sep 8 2016, 11:20
Сообщение #2


Знающий
****

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



анализ цик сильно упрощается, если вспомнить, что цик1 это ких со всеми к-тами равными 1. Если децимация в 4 раза, то таких к-ов 4. нули такого фильтра расположены на частотах kFd/4, k=1...3, которые при децимации сворачиваются в 0. Поэтому рассматривают уровень ачх вокруг нулей +- половина полосы полезного сигнала. Исходя из требуемого подавления выбирают количество последовательно включенных циков.
Go to the top of the page
 
+Quote Post
honeycomb0
сообщение Sep 8 2016, 11:53
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 28-08-14
Пользователь №: 82 671



Интересно! Я правильно понимаю, что для АЧХ двух таких последовательных CIC фильтров мне надо "свернуть" их отдельные к-ты, например freqz(conv(ones(1,4), ones(1,4)))?
Go to the top of the page
 
+Quote Post
thermit
сообщение Sep 8 2016, 11:56
Сообщение #4


Знающий
****

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



да. в той ветке, где вы задавали вопросы про цик это есть.
Go to the top of the page
 
+Quote Post
honeycomb0
сообщение Sep 8 2016, 15:36
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 28-08-14
Пользователь №: 82 671



Спасибо за ответ! Вы правы - перечитал ветку 136444 и понял что там есть ответы на мои вопросы...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 4th August 2025 - 04:09
Рейтинг@Mail.ru


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