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

 
 
> Децимирующий КИХ фильтр, Завал АЧХ после децимации
ilynxy
сообщение Oct 18 2014, 10:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-04-10
Пользователь №: 56 562



Доброго всем.

Уважаемые! Поясните пожалуйста, почему после децимирующего FIR "классический" анализ ответа фильтра на ступеньку (единичная функция) выдаёт неправильные результаты. А анализ ответа на ГКЧ (или просто на набор синусоид) -- правильные.

Вот код MATLAB, где я моделирую подобное измерение:
Код
% классическая ступенька
x = [zeros(1, 1024*m) ones(1, 1024*m)];

% Фильтр на ~1/4 исходной полосы, с подавлением 100 dB
Fp  = 0.20;
Fst = 0.25;
Ap  = 0.0001;
Ast = 100;

hf = design(fdesign.lowpass('Fp,Fst,Ap,Ast', Fp, Fst, Ap, Ast));

% Фильтруем сигнал
y = filter(hf, x);

% Децимируем в 4 раза (имеем право, теорема Котла не нарушена, отрезали
% всё что выше с помощью FIR фильтра)
k = 4;
y_decim = downsample(y, k);

% классика жанра: FFT от дифференциала ответа на ступеньку
PRy = 20*log10(abs(fft(diff(y))));
% и для децимированного сигнала
PRy_decim = 20*log10(abs(fft(diff(y_decim))));

% Рисуем спектр
Fx = [0:length(PRy)-1] / length(PRy) * 2;
Fx_decim = [0:length(PRy_decim)-1] / length(PRy_decim) / k * 2;
plot(Fx, PRy, Fx_decim, PRy_decim);


И получается, что после децимации дифференциал ответа на ступеньку даёт завал АЧХ в конце где-то на 3 dB. Если поэкспериментировать с децимацией (например, сделать в два раза), то завал уменьшится.


Собственно вопрос: почему так происходит?
И попутный вопрос: как исследовать характеристики фильтра "в живой природе"? Получается, что если фильтр децимирующий, то исследовать его характеристики методом подачи "единичной функции" нельзя? В более общем случае: если я не знаю характеристики системы и мне нужно построить её АЧХ, то я не имею права исследовать воздействуя на неё единичной функцией и получая спектр дифференциала ответа?

Сообщение отредактировал ilynxy - Oct 18 2014, 11:48
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ilynxy   Децимирующий КИХ фильтр   Oct 18 2014, 10:19
- - des00   1. Кто вас научил исследовать фильтры с помощью фу...   Oct 18 2014, 10:29
|- - ilynxy   Цитата(des00 @ Oct 18 2014, 14:29) 1. Кто...   Oct 18 2014, 12:28
||- - andyp   Цитата(ilynxy @ Oct 18 2014, 16:28) Возмо...   Oct 18 2014, 13:15
||- - ilynxy   Цитата(andyp @ Oct 18 2014, 17:15) Во-пер...   Oct 18 2014, 16:27
|- - ViKo   Цитата(des00 @ Oct 18 2014, 13:29) Кто ва...   Oct 18 2014, 17:18
- - thermit   нет здесь никакой функции хевисайда. есть дискретн...   Oct 18 2014, 11:00
|- - des00   Цитата(thermit @ Oct 18 2014, 18:00) нет ...   Oct 18 2014, 12:20
|- - thermit   Цитата(des00 @ Oct 18 2014, 16:20) вы гур...   Oct 18 2014, 14:54
- - ViKo   Undefined function or variable 'm'. MATLAB...   Oct 18 2014, 14:25
|- - V_G   Цитата(ViKo @ Oct 19 2014, 00:25) Undefin...   Oct 18 2014, 15:12
- - ViKo   Если нарисовать разность между y_decim и у, прореж...   Oct 18 2014, 18:40
|- - thermit   Цитата(ViKo @ Oct 18 2014, 22:40) Если на...   Oct 18 2014, 19:31
|- - ViKo   Цитата(thermit @ Oct 18 2014, 22:31) не н...   Oct 18 2014, 20:31
|- - thermit   Цитата(ViKo @ Oct 19 2014, 00:31) Кодfigu...   Oct 18 2014, 20:54
- - ilynxy   http://electronix.ru/forum/index.php?showtopic=618...   Oct 18 2014, 22:10
|- - andyp   Цитата(ilynxy @ Oct 19 2014, 02:10) http:...   Oct 19 2014, 08:22
|- - ilynxy   Цитата(andyp @ Oct 19 2014, 12:22) Децима...   Oct 19 2014, 11:35
|- - dmitry-tomsk   Как-то странно вы матлаб пользуете. Фильтр цифрово...   Oct 20 2014, 07:50
|- - ilynxy   Цитата(dmitry-tomsk @ Oct 20 2014, 11...   Oct 20 2014, 13:49
- - ViKo   Цитата(ilynxy @ Oct 18 2014, 13:19) И пол...   Oct 19 2014, 10:48


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

 


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


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