islinphase

Проверьте, что Системный объект фильтра в дискретном времени является линейной фазой

Описание

пример

flag = islinphase(sysobj) возвращает true если Системный object™ фильтра имеет линейную фазу.

flag = islinphase(sysobj,tol) использует tol допуска чтобы определить, когда два числа достаточно близки, чтобы считаться равными. Если не указано, tol по умолчанию является eps^(2/3).

flag = islinphase(___,'Arithmetic',arithType) анализирует Системный объект фильтра на основе арифметики, указанной в arithType вход с использованием любого из предыдущих синтаксисов.

Для получения дополнительных опций входа см. islinphase в Signal Processing Toolbox™.

Примеры

свернуть все

Используйте оконный метод для разработки lowpass конечной импульсной характеристики 10-го порядка с нормализованной частотой среза 0,55. Проверьте, что фильтр имеет линейную фазу.

firSpecs = fdesign.lowpass('N,Fc',10,0.55);
lpFIR = design(firSpecs,'window','SystemObject',true);

flag = islinphase(lpFIR)
flag = logical
   1

Постройте график фазового отклика фильтра и проверьте, что он линейный.

[phs,w] = phasez(lpFIR);
plot(w/pi,phs)
xlabel('Frequency \omega/\pi')
ylabel('Phase')

Figure contains an axes. The axes contains an object of type line.

БИХ в целом не имеют линейной фазы. Проверьте это, создав Butterworth, Chebyshev и эллиптические фильтры с аналогичными спецификациями. Установите частоту полосы пропускания равную 0,35, частоту полосы остановки равную 0,4, пульсацию полосы пропускания равную 1 дБ и ослабление полосы остановки равную 20 дБ.

Wp = 0.35;
Wst = 0.4;
atten = 20;
rippl = 1;

buttSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten);
buttIIR = design(buttSpecs,'butter','SystemObject',true);

chb1Specs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten);
chb1IIR = design(chb1Specs,'cheby1','SystemObject',true);

chb2Specs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten);
chb2IIR = design(chb2Specs,'cheby2','SystemObject',true);

ellpSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Wst,rippl,atten);
ellpIIR = design(ellpSpecs,'ellip','SystemObject',true);

Постройте график фазовых откликов фильтров. Определите, имеют ли они линейную фазу.

fv = fvtool(buttIIR,chb1IIR,chb2IIR,ellpIIR,'Analysis','phase');
legend(fv,'Butterworth','Chebyshev I','Chebyshev II','Elliptic')

Figure Filter Visualization Tool - Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Phase Response contains 4 objects of type line. These objects represent Butterworth, Chebyshev I, Chebyshev II, Elliptic.

phs = [islinphase(buttIIR) islinphase(chb1IIR) ...
       islinphase(chb2IIR) islinphase(ellpIIR)]
phs = 1x4 logical array

   0   0   0   0

Входные параметры

свернуть все

Значение допуска, чтобы определить, когда два числа достаточно близки, чтобы считаться равными, заданным как положительная скалярная величина. Если не указано, tol, по умолчанию является eps^(2/3).

Арифметика, используемая в анализе фильтра, задается как 'double', 'single', или 'Fixed'. Когда вход арифметики не задан и Системный объект фильтра разблокирован, инструмент анализа принимает фильтр двойной точности. Когда арифметический вход не задан и системный объект заблокирован, функция выполняет анализ на основе типа данных заблокированного входа.

The 'Fixed' значение применяется к фильтрации системных объектов только со свойствами с фиксированной точкой.

Когда 'Arithmetic' входной параметр задается как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный на 'Same word length as input'арифметический анализ зависит от того, разблокирован или заблокирован системный объект.

  • unlocked -- Функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.

  • locked -- Когда тип входных данных 'double' или 'single'функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.

Чтобы проверить, заблокирован ли или разблокирован системный объект, используйте isLocked функция.

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

Выходные аргументы

свернуть все

Флаг для определения, имеет ли фильтр линейную фазу, возвращаемый как логический:

  • 1 - Фильтр имеет линейную фазу.

  • 0 - Фильтр имеет нелинейную фазу.

Типы данных: logical

См. также

Введенный в R2013a