Main Content

residue

部分分式展开(部分分式分解)

说明

[r,p,k] = residue(b,a) 计算以如下形式展开的两个多项式之比的 部分分式展开式 的留数、极点和直项

b(s)a(s)=bmsm+bm1sm1++b1s+b0ansn+an1sn1++a1s+a0=rnspn+...+r2sp2+r1sp1+k(s).

residue 的输入是由多项式 b = [bm ... b1 b0]a = [an ... a1 a0] 的系数组成的向量。输出为留数 r = [rn ... r2 r1]、极点 p = [pn ... p2 p1] 和多项式 k。对于大多数教科书问题,k0 或常量。

示例

[b,a] = residue(r,p,k) 将部分分式展开式转换回两个多项式之比,并将系数返回给 ba

示例

示例

全部折叠

使用 residue 求以下多项式之比 F(s) 的部分分式展开式

F(s)=b(s)a(s)=-4s+8s2+6s+8.

b = [-4 8];
a = [1 6 8];
[r,p,k] = residue(b,a)
r = 2×1

   -12
     8

p = 2×1

    -4
    -2

k =

     []

此结果代表以下部分分式展开式

-4s+8s2+6s+8=-12s+4+8s+2.

使用 residue 将部分分式展开转换回多项式系数。

[b,a] = residue(r,p,k)
b = 1×2

    -4     8

a = 1×3

     1     6     8

此结果表示初始分式 F(s)。

如果分子的次数与分母的次数相等,输出 k 可以是非零值。

求解具有复数根和同次分子和分母的两个多项式 F(s) 之比的部分分式展示式,其中 F(s) 为

F(s)=b(s)a(s)=2s3+s2s3+s+1.

b = [2 1 0 0];
a = [1 0 1 1];
[r,p,k] = residue(b,a)
r = 3×1 complex

   0.5354 + 1.0390i
   0.5354 - 1.0390i
  -0.0708 + 0.0000i

p = 3×1 complex

   0.3412 + 1.1615i
   0.3412 - 1.1615i
  -0.6823 + 0.0000i

k = 
2

residue 返回代表部分分式展开式的复数根和极点,以及常项 k

F(s)=b(s)a(s)=2s3+s2s3+s+1=0.5354+1.0390is-(0.3412+1.1615i)+0.5354-1.0390is-(0.3412-1.1615i)+-0.0708s+0.6823+2.

当分子次数大于分母次数时,输出 k 为代表 s 中多项式系数的向量。

使用 residue 执行 F(s) 的以下部分分式展开式。

F(s)=b(s)a(s)=2s4+ss2+1=0.5-1is-1i+0.5+1is+1i+2s2-2.

b = [2 0 0 1 0];
a = [1 0 1];
[r,p,k] = residue(b,a)
r = 2×1 complex

   0.5000 - 1.0000i
   0.5000 + 1.0000i

p = 2×1 complex

   0.0000 + 1.0000i
   0.0000 - 1.0000i

k = 1×3

     2     0    -2

k 代表多项式 2s2-2

输入参数

全部折叠

分子中的多项式的系数,指定为数字的向量,代表 s 的降幂中的多项式的系数。

数据类型: single | double
复数支持:

分母中的多项式的系数,指定为数字的向量,代表 s 的降幂中的多项式的系数。

数据类型: single | double
复数支持:

输出参量

全部折叠

部分分式展开式的残差,以数字列向量的形式返回。

部分分式展开式的极点,以数字列向量的形式返回。

直项,以数字行向量的形式返回,这些数字按 s 的降幂指定多项式的系数。

详细信息

全部折叠

部分分式展开式

假设有一个分式 F(s),它由两个次数分别为 nm(其中 nm 为正数)的多项式 ba 组成

F(s)=b(s)a(s)=bnsn++b2s2+b1s+b0amsm++a2s2+a1s+a0.

分式 F(s) 可以表示为几个简单分式之和。

b(s)a(s)=rmspm+rm1spm1++r0sp0+k(s)

此总和称为 F 的部分分式展开式。值 rm,...,r1 为残差,值 pm,...,p1 为极点,k(s)s 多项式。对于大多数教科书问题,ks 为 0 或常量。

极点数 n

n = length(a)-1 = length(r) = length(p)

如果 length(b) < length(a),则直项向量为空;否则

length(k) = length(b)-length(a)+1

如果 p(j) = ... = p(j+m-1)m 重极点,则展开式包括以下形式的项

rjspj+rj+1(spj)2++rj+m1(spj)m.

提示

  • residue 计算拉普拉斯域中两个多项式之比的部分分式展开式。要计算 z 域中的部分分式展开式,可以使用 residuez (Signal Processing Toolbox)

算法

residue 首先会使用 roots 获取极点。接下来,如果分式不正确,则使用执行多项式长除法的 deconv 计算直项 k。最后,residue 通过计算移除了各个根的多项式来确定留数。对于重复根,resi2 计算重复根位置处的留数。

多项式之比的部分分式展开式以数值方法表示不适定问题。如果分母多项式 a(s) 与具有多个根的多项式接近,则数据的轻微改动(包括舍入误差)可使生成极点和留数产生任意大的变化。优先使用状态空间和零极点表示的问题公式。

参考

[1] Oppenheim, A.V. and R.W. Schafer. Digital Signal Processing. Prentice-Hall, 1975, p. 56.

版本历史记录

在 R2006a 之前推出