exponenta event banner

Проектирование фильтров с непревзойденной полосой останова

В этом примере показано, как проектировать фильтры нижних частот с непревзойденными полосами останова.

Оптимальные неэквириптные фильтры нижних частот

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

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

Конструкции Equiripple достигают оптимальности, равномерно распределяя отклонение от идеального отклика. Это имеет преимущество минимизации максимального отклонения (пульсации). Однако общее отклонение, измеренное с точки зрения его энергии, имеет тенденцию быть большим. Это не всегда может быть желательным. Когда низкочастотная фильтрация сигнала, это подразумевает, что остаточная энергия сигнала в полосе останова может быть относительно большой. Когда это является проблемой, методы наименьших квадратов обеспечивают оптимальные конструкции, которые минимизируют энергию в полосе останова.

  Hd1 = design(Hf,'equiripple','systemobject',true);
  Hd2 = design(Hf,'firls','systemobject',true);
  hfvt = fvtool(Hd1,Hd2,'Color','White');
  legend(hfvt,'Equiripple design','Least-squares 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 Equiripple design, Least-squares design.

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

Конструкции Equiripple с увеличением затухания полосы останова

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

  Hd3 = design(Hf,'equiripple','StopbandShape','1/f',...
              'StopbandDecay',4,'systemobject',true);
  hfvt2 = fvtool(Hd2,Hd3,'Color','White');
  legend(hfvt2,'Least-squares design',...
        'Equiripple design with stopband decaying as (1/f)^4')

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 Least-squares design, Equiripple design with stopband decaying as (1/f)^4.

Обратите внимание, что стопорные полосы очень похожи. Однако конструкция equiripple имеет значительно меньшую пульсацию полосы пропускания,

  mls = measure(Hd2);
  meq = measure(Hd3);
  mls.Apass
ans = 0.3504
  meq.Apass
ans = 0.1867

Фильтры со стоп-полосой, которая распадается как (1/f) ^ M, будут распадаться при 6M дБ на октаву. Другим способом формирования стопорной полосы является использование линейного затухания. Например, при приблизительном ослаблении 38 дБ при 0,4 * pi, если затухание 70 дБ желательно при pi, и следует использовать линейный затухание, наклон линии задается как (70-38 )/( 1-0,4) = 53,333. Такая конструкция может быть достигнута путем:

  Hd4 = design(Hf,'equiripple','StopbandShape','linear',...
              'StopbandDecay',53.333,'systemobject',true);
  hfvt3 = fvtool(Hd3,Hd4,'Color','White');
  legend(hfvt3,'Equiripple design with stopband decaying as (1/f)^4',...
      'Equiripple design with stopband decaying linearly and a slope of 53.333')

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 Equiripple design with stopband decaying as (1/f)^4, Equiripple design with stopband decaying linearly and a slope of 53.333.

Еще одна возможность состоит в том, чтобы использовать произвольную спецификацию величины и выбрать две полосы (одну для полосы пропускания и одну для полосы останова). Затем, используя веса для второй полосы, можно увеличить затухание по всей полосе.

  N = 100;
  B = 2;  % number of bands
  F = [0 .38 .42:.02:1];
  A = [1 1 zeros(1,length(F)-2)];
  W = linspace(1,100,length(F)-2);
  Harb = fdesign.arbmag('N,B,F,A',N,B,F(1:2),A(1:2),F(3:end),...
                        A(3:end));
  Ha = design(Harb,'equiripple','B2Weights',W,...
             'systemobject',true);
  fvtool(Ha,'Color','White')

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.