1. Z逆变换

    求Z逆变换的常用方法有三种:围线积分法(留数法)、部分分式展开法和幂级数展开法(长除法)。

    理论公式推导参考教材,下面就matlab内置函数进行讨论:

 

2. Z逆变换函数

    2.1 residues

    2.2 residue

          对拉普拉斯算子s的,适用于连续系统;

    2.3 residuez

          对Z变换算子z的,适用于离散系统;

          [r,p,k] = residuez(b,a)

          inputs:

              b:按z^{-1}的升幂排列的多项式的分子;

              a:按z^{-1}的升幂排列的多项式的分母;

          outputs:

              r:对应与根向量中各个根的留数向量;

              p:分母的根向量(即X(z)的极点向量);

              k:无穷多项式系数向量;

          计算由下列 传递函数描述的三阶IIR低通滤波器对应的部分分数展开式:

                  H(z)=\frac{0.05634(1+z^{-1})(1-1.0166z^{-1}+z^{-2})}{(1-0.683z^{-1})(1-1.4416z^{-1}+0.7957z^{-2}))}

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];
b = b0*conv(b1,b2);
a = conv(a1,a2);
[r,p,k] = residuez(b,a)

r =

  -0.1153 - 0.0182i
  -0.1153 + 0.0182i
   0.3905 + 0.0000i


p =

   0.7230 + 0.5224i
   0.7230 - 0.5224i
   0.6830 + 0.0000i


k =

   -0.1037

画出传递函数的极点和零点  ;

zplane(b,a)
hold on
plot(p,'^r')
hold off

                        

再次使用残差来重建传递函数

[bn,an] = residuez(r,p,k)

bn =

    0.0563   -0.0009   -0.0009    0.0563


an =

    1.0000   -2.1291    1.7834   -0.5435

    2.4 iztrans(常用)

          Syntax
               iztrans(F);
               iztrans(F,transVar);
               iztrans(F,var,transVar);

下面  计算2*z/(z-2)^2的z逆变换(默认情况下,逆变换是以n为单位的)    以下例子计算得到的结果需加上u(n)

syms z
F = 2*z/(z-2)^2;
iztrans(F)
 
ans =
 
2^n + 2^n*(n - 1)
syms z n;
X=z/(z-0.5);
x=iztrans(X,z,n)
 
x =
 
(1/2)^n
syms z n;
X=(z^2)/(z-1)^2;
x=iztrans(X,z,n)
 
x =
 
n + 1

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐