exponenta event banner

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 создает объект спецификации фильтра Nyquist или L-диапазона d, применение значений по умолчанию для свойств tw и ast. По умолчанию объект фильтра проектирует фильтр Найквиста с полуполосой минимального порядка (L = 2).

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

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

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

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

  • n,tw

  • n

  • n,ast

где,

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

  • n - порядок фильтрации.

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

Методы конструкции фильтра, применяемые к объекту спецификации фильтра Nyquist, изменяются в зависимости от 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 сохраняет все значения в децибелах (при необходимости преобразуя их в децибелы) независимо от способа задания значений.

Ограничения объекта Nyquist fdesign

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

  • При запросе конструкции минимального заказа от equiripple с объектом Nyquist алгоритм конструирования может не сходиться и привести к ошибке сходимости фильтра.

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

  • Как правило, следующие спецификации, по отдельности или в сочетании друг с другом, могут вызвать проблемы сходимости фильтра с объектами Найквиста и equiripple СПОСОБ КОНСТРУИРОВАНИЯ.

    • очень высокий порядок

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

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

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

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

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

Примеры

свернуть все

В этих примерах показано, как создать объект спецификации фильтра Nyquist.

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

d = fdesign.nyquist; %#ok

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

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

Создайте другой объект фильтра Nyquist, передав значения спецификации объекту, а не приняв значения по умолчанию для 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

Теперь создайте фильтр Найквиста, используя метод конструирования кайзервин.

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

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

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

Фильтр Equiripple Nyquist 4-го диапазона с неотрицательным откликом нулевой фазы

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

Фильтр Equiripple Nyquist 4-го диапазона с «ZeroPhase», установленным на false «zerophase», false - значение по умолчанию

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');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent with 'ZeroPhase', true, with 'ZeroPhase' false.

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

Опция «ZeroPhase» действительна только для эквириптных конструкций Найквиста со спецификацией «N, TW». Нельзя одновременно задать значения MinPhase и ZeroPhase как true.

Представлен в R2011a