Минимизация длины Конечной Импульсной Характеристики 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);

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

  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.

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 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. Меньше, чем линейная фаза равновесия и минимальная фаза проектов.