exponenta event banner

islinphase

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

Описание

пример

flag = islinphase(sysobj) прибыль true если фильтр System object™ имеет линейную фазу.

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

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

Дополнительные параметры ввода см. в разделе islinphase в Toolbox™ обработки сигналов.

Примеры

свернуть все

Используйте метод окна для проектирования фильтра нижних частот FIR 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'. Если арифметический ввод не задан и объект «Система фильтров» разблокирован, инструмент анализа использует фильтр двойной точности. Если арифметический ввод не указан и объект System заблокирован, функция выполняет анализ на основе типа данных заблокированного ввода.

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

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

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

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

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

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

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

свернуть все

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

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

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

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

См. также

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