Main Content

ismaxphase

フィルターが最大位相であるかどうかを判別

構文

flag = ismaxphase(b,a)
flag = ismaxphase(sos)
flag = ismaxphase(d)
flag = ismaxphase(...,tol)

説明

flag = ismaxphase(b,a) では、logical の出力 flag が返されます。分子係数 b と分母係数 a で指定されるフィルターが最大位相フィルターの場合、true になります。

flag = ismaxphase(sos) では、2 次セクション行列 sos で指定されるフィルターが最大位相フィルターの場合、true が返されます。sos は K 行 6 列の行列です。ここで、セクション数 K は 2 以上でなければなりません。sos の各行は 2 次 (双二次) フィルターの係数に対応しています。sos 行列の i 行目は [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)] に対応しています。

flag = ismaxphase(d) では、デジタル フィルター d が最大位相をもっている場合、true が返されます。d を周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

flag = ismaxphase(...,tol) では、許容誤差 tol を使用して、2 つの数が等しいと見なせる程度に近づく時点が判別されます。tol を指定しない場合は、既定値の eps^(2/3) が使用されます。

すべて折りたたむ

最大位相および最小位相ラティス フィルターを設計し、それらの位相のタイプを検証します。

k = [1/6 1/1.4];
bmax = latc2tf(k,'max');
bmin = latc2tf(k,'min');
max_flag = ismaxphase(bmax)
max_flag = logical
   1

min_flag = isminphase(bmin)
min_flag = logical
   1

一連の単精度の分子係数と分母係数で定義されるフィルターが、さまざまな許容誤差の値に対して最大位相であるかどうかをチェックします。

b = single([1 -0.9999]);
a = single([1 0.45]);
max_flag1 = ismaxphase(b,a)
max_flag1 = logical
   0

max_flag2 = ismaxphase(b,a,1e-3)
max_flag2 = logical
   1

バージョン履歴

R2013a で導入