isminphase

Определите, является ли фильтр минимальной фазой

Синтаксис

flag = isminphase(b,a)
flag = isminphase(sos)
flag = isminphase(d)
flag = isminphase(...,tol)
flag = isminphase(hs,...)
isminphase(hs,'Arithmetic',arithtype)

Описание

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

flag = isminphase(b,a) возвращает логический выходной параметр, flag, равный true, если фильтр, заданный коэффициентами числителя, b, и коэффициентами знаменателя, a, является минимальным фильтром фазы.

flag = isminphase(sos) возвращает true, если фильтр, заданный матрицей разделов второго порядка, sos, является минимальной фазой. sos является K-by-6 матрица, где количество разделов, K, должно быть больше, чем или равным 2. Каждая строка sos соответствует коэффициентам второго порядка (biquad) фильтр. i th строка матрицы sos соответствует [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

flag = isminphase(d) возвращает true, если цифровой фильтр, d, имеет минимальную фазу. Используйте designfilt, чтобы сгенерировать d на основе спецификаций частотной характеристики.

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

flag = isminphase(hs,...) определяет, является ли Система фильтра object™ hs минимальной фазой, возвращая 1 если верный и 0 если ложь. У вас должно быть программное обеспечение DSP System Toolbox™, чтобы использовать этот синтаксис.

isminphase(hs,'Arithmetic',arithtype) анализирует Системный объект фильтра hs на основе заданного arithtype. arithtype может быть 'double', 'single' или 'fixed'. Когда вы задаете 'double' или 'single', функция выполняет дважды - или анализ с одинарной точностью. Когда вы задаете 'fixed', арифметические изменения в зависимости от установки свойства CoefficientDataType и заблокирован ли Системный объект или разблокирован. У вас должно быть программное обеспечение DSP System Toolbox, чтобы использовать этот синтаксис.

 Детали для вычислений с фиксированной точкой

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

Примеры

свернуть все

Разработайте шестой порядок lowpass БИХ-фильтр Баттерворта с помощью разделов второго порядка. Задайте нормированную частоту на 3 дБ 0,15. Проверяйте, имеет ли фильтр минимальную фазу.

[z,p,k] = butter(6,0.15);
SOS = zp2sos(z,p,k);            
min_flag = isminphase(SOS)
min_flag = logical
   1

Перепроектируйте фильтр с помощью designfilt. Проверяйте, что нули и полюса передаточной функции включены или в модульном кругу.

d = designfilt('lowpassiir','DesignMethod','butter','FilterOrder',6, ...
               'HalfPowerFrequency',0.25);
d_flag = isminphase(d)
d_flag = logical
   1

zplane(d)

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

b = single([1 1.00001]);  
a = single([1 0.45]);               
min_flag1 = isminphase(b,a)        
min_flag1 = logical
   0

min_flag2 = isminphase(b,a,1e-3)
min_flag2 = logical
   1

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

| | | | |

Введенный в R2013a