|
Характеристика линейной системы |
|
|
|
Apr 19 2009, 13:59
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Leshii @ Apr 18 2009, 11:57)  Если посмотреть plot(20*log10(abs(fft(s_f))+eps)) то ровно посередке (точке соответствующей 0.5 от новой частоты дискретизации) мы увидем подавление около 30дБ.
А если в уме прикинуть то что должно получиться, то так как halfband в точке 0.25 от начальной частоты дискретизации по определению имеет 6дБ, то после децимации в 2 раза во время которой спектр накладывается, то в точке 0.5 (от новой частоты дискретизации) должно бы быть теже 6дБ, а не 30дБ!
Так что правильно 6 или 30? Не вдаваясь в анализ Ваших результатов, могу только еще раз повторить, что к системам типа дециматор-интерполятор совершенно не применимы такие понятия, как АЧХ и передаточная ф-я. Так что вопрос "что правильно 6 или 30?" не имеет смысла, ибо не правильно ни то ни другое  . В дополнение могу порекомендовать ознакомиться с работами Vaidyanathan P. P., например Quadrature mirror filter banks, M-band extensions and perfect-reconstruction techniques, цитата: "...decimator is a time-varying device, even thought it is linear. Accordingly, it cannot be represented by a transfer function..." И посмотреть (хотя бы на Wikipedia) что такое Time-variant system: "There are many well developed techniques for dealing with the response of linear time invariant systems, such as Laplace and Fourier transforms. However, these techniques are not strictly valid for time varying systems." "It does not have an impulse response in the normal sense"
|
|
|
|
|
Apr 19 2009, 16:02
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Цитата(Самурай @ Apr 19 2009, 17:59)  Не вдаваясь в анализ Ваших результатов, могу только еще раз повторить, что к системам типа дециматор-интерполятор совершенно не применимы такие понятия, как АЧХ и передаточная ф-я. Ну уж совсем ничем характеризоваться они не могут наверное. Что-то должно быть, что? Цитата ибо не правильно ни то ни другое - а какое подавление должно быть на самом деле если на вход системы будет подана частота 0.25?
|
|
|
|
|
Apr 19 2009, 19:01
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Leshii @ Apr 19 2009, 20:02)  - а какое подавление должно быть на самом деле если на вход системы будет подана частота 0.25? Далась Вам эта частота  )). Полистайте форум, пару-тройку месяцев назад тут были серьезные диспуты по поводу теоремы Котельникова (в который раз уже) и частоты 0.5*Fd (ну или 0.25*Fd до децимации). С практической точки зрения говорить про эту частоту не имеет смыла, в этом легко убедиться если посмотреть на результат фильтрации и децимации двух синусоидальных сигналов с одной и той же частотой 0.25*Fd но с разными фазами. Если же речь идет о частотах меньше 0.5*Fd (0.25*Fd), то насколько я помню, эта тема уже обсуждалась: Halfband фильтр...
|
|
|
|
|
Oct 20 2014, 08:58
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Перескочил сюда из недавней темы. Попробовал то, что здесь предложено. Но изменил длину входной последовательности, чтобы было кратно степени 2. Код clear; clf;
% Единичный импульс s = [zeros(1,127) 1 zeros(1,128)];
% Импульсная характеристика фильтра h = [0.042041 0 -0.087017 0 0.31156 0.5 0.31156 0 -0.087017 0 0.042041];
% Фильтр s_f = filter(h,1,s);
% Дециматор в два раза s_d = s_f(1:2:end);
% Преобразование Фурье от ИХ grid on hold on plot(20 * log10(abs(fft(s_f)) + eps), 'b'); plot(20 * log10(abs(fft(s_d)) + eps), 'm'); hold off Имею картинку, отличную от показанной топикстартером.
Если же последовательность другая, то и картинка другая. s = [zeros(1,128) 1 zeros(1,127)];
Как это понимать?
|
|
|
|
|
Oct 20 2014, 09:29
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(ViKo @ Oct 20 2014, 12:58)  ... Как это понимать? Еще раз: "...decimator is a time-varying device, even thought it is linear. Accordingly, it cannot be represented by a transfer function..." И для закрепления материала вот так попробуйте: % Дециматор в два раза s_d = s_f( 2:2:end);
Сообщение отредактировал Самурай - Oct 20 2014, 09:30
|
|
|
|
|
Oct 20 2014, 10:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955

|
Цитата(ViKo @ Oct 20 2014, 19:50)  С двумя единицами уже что-то бессмысленное вылазит... Вот с этим сигналом: Код % Единичный импульс s = [zeros(1,127) 1 1 zeros(1,128)]; ? Ничего не бессмысленное, а спектр отклика на сигнал из двух единиц подряд. Он уже устойчив к сдвигу при децимации в 2 раза.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|