exponenta event banner

isstable

Определение стабильности фильтра

Синтаксис

flag = isstable(b,a)
flag = isstable(sos)
flag = isstable(d)

Описание

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

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

flag = isstable(d) прибыль true если цифровой фильтр, d, стабилен. Использовать designfilt произвести d на основе характеристик частотно-отклика.

Примеры

свернуть все

Спроектируйте IIR-фильтр Butterworth шестого порядка, используя секции второго порядка. Укажите нормированную частоту 3-dB 0,7. Определите, является ли фильтр стабильным.

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

zplane(z,p)

Figure contains an axes. The axes contains 4 objects of type line, text.

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

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

zplane(d)

Figure Filter Visualization Tool - Pole-Zero Plot contains an axes and other objects of type uitoolbar, uimenu. The axes with title Pole-Zero Plot contains 4 objects of type line, text.

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

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