| Signal Processing Toolbox | ![]() |
表示
[r,p,k]=residuez(b,a) [b,a]=residuez(r,p,k)
詳細
residuezは、2つの多項式の比で表される離散時間システムを部分分数展開型、または、剰余型に変換します。また、部分分数展開からオリジナルの多項式係数への逆変換も行います。
は、2つの多項式b(z)とa(z)の比から部分分数展開の剰余、極、直接項を求めます。ベクトル[r,p,k] = residuez(b,a)
bおよびaは、離散時間システムb(z)/a(z)の多項式の係数をzの次数の降順に設定します。
出力される列ベクトルrは剰余、列ベクトルpは極の位置、行ベクトルkは直接項をそれぞれ含みます。極の数は、つぎのように表されます。
n=length(a)-1=length(r)=length(p)
の場合、直接項の係数ベクトルkは空になります。そうでない場合には、つぎのようになります。
length(k) = length(b) - length(a) + 1
p(j) = ... = p(j+s-1)が、重複度sの極の場合、展開はつぎの型の項を含みます。
3つの入力引数と2つの出力引数を設定した[b,a] = residuez(r,p,k)は、部分分数展開を行ベクトルbおよびaに係数をもつ多項式に変換します。
MATLAB基本モジュールの関数residueは、residuezと非常に似ています。これは、residuezの場合のz領域の離散時間ではなく、Laplace領域(参考文献[1]を参照)の連続時間の部分分数展開を計算します。
アルゴリズム
residuezは、つぎのようにMATLABの基本モジュール関数と部分分数展開法を適用して、bおよびaからr, p, kを求めます。
length(b)>length(a)-1の場合、deconv(多項式除算法)を使って、直接項aを求めます。
p = roots(a)を使って極を求めます。
mpolesにより重複極を求め、その重複度に基づいて極を並べ替えます。
= piで計算して、剰余を求めます。
S2*r2=h - S1*r1
ここで、r2には\を使用します。hは換算された b(z)/a(z)のインパルス応答で、S1はその列が非重複根からなる1次システムのインパルス応答である行列で、また、r1は非重複根の剰余を含んだ列です。行列S2の各列は、インパルス応答です。 重複度 sjの各根pjについて、S2は、つぎの各システムのインパルス応答を表す sj列を含みます。
ベクトルhと行列S1およびS2は、n + xtra行をもちます。ここで、nは根の総数で、内部パラメータxtraはデフォルトでは1に設定され、連立方程式の冗長度の度合いです。
参考
|
コンボリューション行列 |
|
デコンボリューションおよび多項式除算(MATLAB Function Referenceを参照) |
|
指定した根をもつ多項式(MATLAB Function Referenceを参照) |
|
Prony法を使った時間領域IIRフィルタ設計 |
|
部分分数展開(MATLAB Function Referenceを参照) |
|
多項式の根(MATLAB Function Referenceを参照) |
|
状態空間(State space)型から伝達関数型への変換 |
|
伝達関数型から状態空間(State space)型への変換 |
|
伝達関数型から零点-極-ゲイン型への変換 |
|
零点-極-ゲイン型から状態空間(State space)型への変換 |
参考文献
[1] Oppenheim, A.V., and R.W. Schafer, Digital Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, 1975, pp. 166-170.
| resample | rlevinson | ![]() |