fdesign.nyquist

Спецификация фильтра Найквиста

Синтаксис

d = fdesign.nyquist
d = fdesign.nyquist(l, spec)
d = fdesign.nyquist(l,spec,specvalue1,specvalue2,...)
d = fdesign.nyquist(l,specvalue1,specvalue2)
d = fdesign.nyquist(...,fs)
d = fdesign.nyquist(...,magunits)

Описание

d = fdesign.nyquist создает объект d спецификации Найквиста или L-ленточного-фильтра, применяя значения по умолчанию для свойств tw и ast. По умолчанию объект фильтра разрабатывает полуполосу минимального заказа (L=2) фильтр Найквиста.

Используя fdesign.nyquist наряду с design метод генерирует Систему object™, если флаг 'SystemObject' в методе design установлен в true.

d = fdesign.nyquist(l, spec) объект d построений и наборы его свойство Specification к spec. Используйте l, чтобы задать требуемое значение для L. L = 2 проекта фильтр полуполосы FIR, L = 3 КИХ-фильтр третьей полосы, и так далее. Когда вы используете фильтр Найквиста в качестве интерполятора, l, или L является коэффициентом интерполяции. Первый входной параметр должен быть l, когда вы не используете синтаксис по умолчанию d = fdesign.nyquist.

Записи в spec представляют различные функции ответа фильтра, такие как порядок фильтра, которые управляют проектом фильтра. Действительные доступы для spec показывают ниже. Записи не являются чувствительными к регистру.

  • tw, ast (опция по умолчанию)

  • n, tw

  • n

  • n, ast

где,

  • \ast затухание в полосе задерживания в децибелах (модули по умолчанию).

  • n отфильтруйте порядок.

  • tw — ширина области перехода между передачей и полосами задерживания. Заданный в нормированных единицах частоты.

Методы разработки фильтра, которые применяются к изменению объекта спецификации фильтров Найквиста в зависимости от опции Specification. Используйте designmethods, чтобы определить, какой метод разработки применяется к объекту и его опции спецификации. Различные методы разработки фильтра также имеют опции, которые можно задать. Используйте designopts с методом разработки видеть доступные параметры. Например:

f=fdesign.nyquist(4,'N,TW');
designmethods(f)

d = fdesign.nyquist(l,spec,specvalue1,specvalue2,...) создает объект d и устанавливает его спецификацию на spec и значения спецификации к specvalue1, specvalue2, и так далее во время создания.

d = fdesign.nyquist(l,specvalue1,specvalue2) создает объект d со значениями, которые вы обеспечиваете в l, specvalue1,specvalue2 как значения для l, tw и ast.

d = fdesign.nyquist(...,fs) добавляет аргумент fs, заданный в Гц, чтобы задать частоту дискретизации, чтобы использовать. В этом случае все частоты в спецификациях находятся в Гц также.

d = fdesign.nyquist(...,magunits) задает модули для любой спецификации значения, которую вы обеспечиваете во входных параметрах. magunits может быть одним из

  • linear — задайте значение в линейных модулях

  • dB — задайте значение в дБ (децибелы)

  • squared — задайте значение в блоках питания

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

Ограничения Найквиста fdesign Объект

Используя объекты спецификации фильтров Найквиста с equiripple метод разработки налагает несколько ограничений на получившийся фильтр, вызванный алгоритмом проекта equiripple.

  • Когда вы запрашиваете проект минимального заказа от equiripple с вашим объектом Найквиста, алгоритм проекта не может сходиться и может перестать работать с ошибкой сходимости фильтра.

  • Когда вы задаете порядок своего желаемого фильтра и используете метод разработки equiripple, проект не может сходиться.

  • Обычно следующие спецификации, одни или друг в сочетании с другом, могут вызвать проблемы сходимости фильтра с объектами Найквиста и методом разработки equiripple.

    • очень старший разряд

    • маленькая ширина перехода

    • очень большое затухание полосы задерживания

Обратите внимание на то, что полуленточные фильтры (фильтрует, где полоса = 2) не показывают проблемы сходимости.

Когда проблемы сходимости возникают, или в упомянутых случаях или в других, вы можете смочь разработать свой фильтр с методом kaiserwin.

Кроме того, если вы используете объекты Найквиста разработать decimators или интерполяторы (где фактором интерполяции или десятикратного уменьшения не является простое число), использование многоступенчатых проектов фильтра может быть вашим лучшим подходом.

Примеры

свернуть все

Эти примеры показывают, как создать объект спецификации фильтров Найквиста.

Во-первых, создайте объект спецификаций по умолчанию, не используя входные параметры.

d = fdesign.nyquist; %#ok

Теперь создайте объект путем передачи and, типа спецификации ast' - полученный объект использует значения по умолчанию для n и ast.

d = fdesign.nyquist(2,'n,ast'); %#ok

Создайте другой объект фильтра Найквиста, передав значения спецификации объекту вместо того, чтобы принять значения по умолчанию для n и ast.

d = fdesign.nyquist(3,'n,ast',42,80) %#ok
d = 
  nyquist with properties:

               Response: 'Nyquist'
          Specification: 'N,Ast'
            Description: {2x1 cell}
    NormalizedFrequency: 1
            FilterOrder: 42
                  Astop: 80
                   Band: 3

Наконец, передайте спецификации фильтра, которые соответствуют Спецификации по умолчанию - tw, ast. Когда вы передаете только значения, fdesign.nyquist принимает опцию Спецификации по умолчанию.

d = fdesign.nyquist(4,.01,80)
d = 
  nyquist with properties:

               Response: 'Nyquist'
          Specification: 'TW,Ast'
            Description: {2x1 cell}
    NormalizedFrequency: 1
        TransitionWidth: 0.0100
                  Astop: 80
                   Band: 4

Теперь разработайте фильтр Найквиста с помощью kaiserwin метода разработки.

hd = design(d,'kaiserwin','SystemObject',true);

Создайте два equiripple 4-х ленточных фильтра Найквиста с и без неотрицательного нулевого фазового отклика:

f = fdesign.nyquist(4,'N,TW',12,0.2);

4-й ленточный фильтр Экюриппла Найквиста с неотрицательным нулевым фазовым откликом

Hd1 = design(f,'equiripple','zerophase',true,'SystemObject',true);

4-й ленточный фильтр Экюриппла Найквиста с 'ZeroPhase' установил на ложь 'zerophase', ложь является значением по умолчанию

Hd2 = design(f,'equiripple','zerophase',false,'SystemObject',true);

Получите амплитуды с действительным знаком (не значения)

[Hr_zerophase,~] = zerophase(Hd1);
[Hr,W] = zerophase(Hd2);

Постройте и сравните ответ

plot(W,Hr_zerophase,'k','linewidth',2);
xlabel('Radians/sample'); ylabel('Amplitude');
hold on;
plot(W,Hr,'r');
axis tight; grid on;
legend('with ''ZeroPhase'', true','with ''ZeroPhase'' false');

Обратите внимание на то, что амплитуда нулевого фазового отклика (черная линия) является неотрицательной для всех частот.

Опция 'ZeroPhase' допустима только для equiripple проектов Найквиста с and, TW' спецификация. Вы не можете задать 'MinPhase' и 'ZeroPhase', чтобы быть одновременно 'верными'.

Введенный в R2011a