exponenta event banner

Минимизация длины фильтра КИХ нижних частот

В этом примере показано, как минимизировать числовые коэффициенты путем создания фильтров минимального или минимального порядка.

Минимально-фазовая конструкция фильтра нижних частот

Для запуска настройте параметры фильтра и используйте fdesign для создания конструктора для проектирования фильтра.

  N = 100;
  Fp = 0.38;
  Fst = 0.42;
  Ap = 0.06;
  Ast = 60;
  Hf = fdesign.lowpass('Fp,Fst,Ap,Ast',Fp,Fst,Ap,Ast);

До сих пор мы рассматривали только линейно-фазовые конструкции. Линейная фаза желательна во многих применениях. Тем не менее, если линейная фаза не является обязательным требованием, конструкции с минимальной фазой могут обеспечить значительные улучшения по сравнению с аналогами линейной фазы. Например, возвращаясь к случаю минимального заказа, можно вычислить конструкцию минимальной фазы/минимального заказа для тех же спецификаций с помощью:

  Hd1 = design(Hf,'equiripple','systemobject',true);
  Hd2 = design(Hf,'equiripple','minphase',true,...
              'systemobject',true);
  hfvt = fvtool(Hd1,Hd2,'Color','White');
  legend(hfvt,'Linear-phase equiripple design',...
         'Minimum-phase equiripple design')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Linear-phase equiripple design, Minimum-phase equiripple design.

Обратите внимание, что количество коэффициентов уменьшено со 146 до 117. Во втором примере рассмотрим конструкцию с замедляющей полосой, распадающейся линейно. Обратите внимание на увеличение затухания полосы останова. Пульсация полосы пропускания также значительно меньше.

  setspecs(Hf,'N,Fp,Fst',N,Fp,Fst);
  Hd3 = design(Hf,'equiripple','StopbandShape','linear',...
      'StopbandDecay',53.333,'systemobject',true);
  setspecs(Hf,'Fp,Fst,Ap,Ast',Fp,Fst,Ap,Ast);
  Hd4 = design(Hf,'equiripple','StopbandShape','linear',...
      'StopbandDecay',53.333,'minphase',true,'systemobject',true);
  hfvt2 = fvtool(Hd3,Hd4,'Color','White');
  legend(hfvt2,'Linear-phase equiripple design with linearly decaying stopband',...
      'Minimum-phase equiripple design with linearly decaying stopband')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent Linear-phase equiripple design with linearly decaying stopband, Minimum-phase equiripple design with linearly decaying stopband.

Проектирование фильтра нижних частот минимального порядка с использованием многоступенчатых методов

Другой подход к минимизации числа коэффициентов, который не включает в себя минимально фазовые конструкции, заключается в использовании многоступенчатых методов. Здесь мы показываем интерполированный подход FIR (IFIR).

  Hd5 = ifir(Hf);
  hfvt3 = fvtool(Hd1,Hd5,'Color','White');
  legend(hfvt3,'Linear-phase equirriple design',...
        'Linear-phase IFIR design')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Linear-phase equirriple design, Linear-phase IFIR design.

Число ненулевых коэффициентов, требуемых в случае IFIR, равно 111. Меньше, чем как равнодействующие линейно-фазовые, так и минимально-фазовые конструкции.