Минимизация КИХ-длины фильтра Lowpass

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

Минимальная фаза создание фильтра Lowpass

Чтобы запуститься, настройте параметры фильтра и использование 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);

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

  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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object 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.

Минимальный порядок создание фильтра Lowpass Используя многоступенчатые методы

Другой подход к минимизации количества коэффициентов, которое не включает проекты минимальной фазы, должен использовать многоступенчатые методы. Здесь мы показываем интерполированного КИХ (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 object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Linear-phase equirriple design, Linear-phase IFIR design.

Количество ненулевых коэффициентов, требуемых в случае IFIR, равняется 111. Меньше и, чем equiripple линейная фаза и, чем проекты минимальной фазы.