islinphase

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

Описание

пример

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

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

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

Для более входных опций смотрите islinphase в Signal Processing Toolbox™.

Примеры

свернуть все

Используйте метод окна, чтобы спроектировать 10-й порядок КИХ-фильтр lowpass с нормированной частотой среза 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 object. The axes object contains an object of type line.

БИХ-фильтры в целом не имеют линейной фазы. Проверьте это путем построения Баттерворта, Чебышева, и эллиптических фильтров с подобными техническими требованиями. Установите частоту полосы пропускания на 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 object and other objects of type uitoolbar, uimenu. The axes object 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'единственный, или 'Fixed'. Когда арифметический вход не задан, и Системный объект фильтра разблокирован, аналитический инструмент принимает фильтр с двойной точностью. Когда арифметический вход не задан, и Системный объект заблокирован, функция выполняет анализ на основе типа данных заблокированного входа.

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

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

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

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

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

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

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

свернуть все

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

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

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

Типы данных: логический

Смотрите также

Введенный в R2013a