isstable

Определите, устойчив ли фильтр

Синтаксис

flag = isstable(b,a)
flag = isstable(sos)
flag = isstable(d)
flag = isstable(hs)
flag = isstable(hs,'Arithmetic',arithtype)

Описание

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

flag = isstable(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 = isstable(d) возвращает true если цифровой фильтр, d, устойчиво. Используйте designfilt сгенерировать d на основе спецификаций частотной характеристики.

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

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

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

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

Примеры

свернуть все

Спроектируйте шестой порядок Баттерворт highpass БИХ-фильтр с помощью разделов второго порядка. Задайте нормированную частоту на 3 дБ 0,7. Определите, устойчив ли фильтр.

[z,p,k] = butter(6,0.7,'high');
SOS = zp2sos(z,p,k);    
flag = isstable(SOS)        
flag = logical
   1

zplane(z,p)

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

d = designfilt('highpassiir','DesignMethod','butter','FilterOrder',6, ...
               'HalfPowerFrequency',0.7);
dflg = isstable(d)
dflg = logical
   1

zplane(d)

Создайте фильтр и определите его устойчивость в двойной и одинарной точности.

b = [1 -0.5];
a = [1 -0.999999999];
act_flag1 = isstable(b,a)
act_flag1 = logical
   1

act_flag2 = isstable(single(b),single(a))
act_flag2 = logical
   0

Введенный в R2013a

Для просмотра документации необходимо авторизоваться на сайте