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 'DefaultOption'

  • 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