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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Реализация нерекурсивного фильтра CIC
soldat_shveyk
сообщение Jul 20 2016, 09:32
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Скажите, а как правильно посмотреть суммарную АЧХ такой цепочки : fir1-децимация-fir2?

Анатолий, здесь все очень просто.
АЧХ децимируюещй системы (DDC в наших случаях) мы смотрим на частоте дискретизации АЦП.
С первым фильтром fir1 все понятно, он работает до децимации на 2.
Чтобы привести частоте дискретизации АЦП АЧХ второго фильтра fir2, который стоит после децимации на 2, мы должны его импульсную характристику h2 интероплировать на 2.
После этого берем свертку от h1 и интерполированной h2, и затем АЧХ от результата свертки.

Общее правило такое, если перед каким-то фильтром есть децимация на N, то для приведения его к частоте дискретизации АЦП, надо его импульсную характеристику интерполировать на N.
И так с каждым каскадом DDC. Потом свертка всех интероплированных результатов.


h1 = [-1 4 10 4 -1] ./ 16;
h2 = [0.00142192172987358 -0.00222268508122243 -0.0137433922997260 -0.0322604508637608 -0.0458124362883413 -0.0346645776223707 0.0163109682969986 0.102976693990851 0.197188326792324 0.258848499145519 0.258848499145519 0.197188326792324 0.102976693990851 0.0163109682969986 -0.0346645776223707 -0.0458124362883413 -0.0322604508637608 -0.0137433922997260 -0.00222268508122243 0.00142192172987358];

h_stage1 = conv(h1, h1); % Каскад 1 (без децимации

h_stage2 = h2;
h_stage2 = upsample(h_stage2, 2); % С учетом децимации на 2.

% Результирующая импульсная характеристика.
h_ddc = conv(h_stage1, h_stage2);
fvtool(h_ddc);
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 10:03
Сообщение #32


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

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



Цитата(soldat_shveyk @ Jul 20 2016, 12:32) *

Большое спасибо за квалифицированный ответ! А я пытался наоборот - децимировать h1 и естественно ничего не получалось. Поехал дальше.

p.s.
А вот эта строчка зачем?
Код
h_stage1 = conv(h1, h1); % Каскад 1 (без децимации

Зачем сворачивать самого с собой?
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 20 2016, 10:06
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 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
сообщение Jul 20 2016, 10:12
Сообщение #34


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

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



Цитата(thermit @ Jul 20 2016, 13:06) *
h=conv(h1,8*upsample(h2,8));
дальше freqz

Вот это ответ! Проще не бывает. Спасибо!
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Jul 20 2016, 11:41
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
А вот эта строчка зачем?

В моем примере стояло два фильтра h1 перед децимацией на 2, забыл это упомянуть.

Цитата
А я пытался наоборот - децимировать h1 и естественно ничего не получалось.

Децимировать h надо если перед фильтром есть интеропляция, например когда делаете DUC.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 20 2016, 12:16
Сообщение #36


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

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



Цитата(soldat_shveyk @ Jul 20 2016, 14:41) *
Децимировать h надо если перед фильтром есть интеропляция, например когда делаете DUC.

Спасибо! Я понял свою ошибку.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 21 2016, 06:45
Сообщение #37


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

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



Вот такая сквозная АЧХ моего DDC получилась. Спасибо всем участникам обсуждения!
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Кнкн
сообщение Jul 21 2016, 12:48
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 646
Регистрация: 21-06-04
Пользователь №: 71



Цитата(thermit @ Jul 20 2016, 13:06) *
h=conv(h1,8*upsample(h2,8));

дальше freqz


Скажите,пожалуйста, можно ли это сделать в частотной области?
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 21 2016, 12:54
Сообщение #39


Знающий
****

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



Цитата(Кнкн @ Jul 21 2016, 15:48) *
Скажите,пожалуйста, можно ли это сделать в частотной области?


Можно.
Go to the top of the page
 
+Quote Post
honeycomb0
сообщение Sep 5 2016, 13:28
Сообщение #40


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

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



Вот что-то читаю и никак не могу понять...

Цитата(_Anatoliy @ Jul 18 2016, 10:33) *
Мне нужно продецимировать сигнал полосой 50МГц в 16 раз из 1200 MSPS в 75 MSPS.

Полосу сигнала в 50МГц при частоте дискретизации 75МSPS??? Где-то ошибка? wacko.gif

Цитата(thermit @ Jul 19 2016, 13:08) *
порядок определяется количеством нулей передаточной функции.

Тут имелось ввиду "задержка" а не порядок? Порядок фильтра обеспечивает подавление лепестков, насколько я это понимаю (http://www.dsplib.ru/content/cic/cic.html). Т.е. кол-во нулей при разных порядках фильтра остается тем же, отличается только амплитуды "лепестков" в АЧХ. Разве не так?
Go to the top of the page
 
+Quote Post
honeycomb0
сообщение Sep 5 2016, 14:48
Сообщение #41


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

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



Цитата(honeycomb0 @ Sep 5 2016, 14:28) *
Вот что-то читаю и никак не могу понять...
Полосу сигнала в 50МГц при частоте дискретизации 75МSPS??? Где-то ошибка? wacko.gif

Первый вопрос снят... Наверняка имелось ввиду полоса с центром на 0Гц. rolleyes.gif
Go to the top of the page
 
+Quote Post

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

 


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


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