第14章

z変換

この章のねらい

  • z変換の定義と、ラプラス変換・DTFT との関係を説明できるようになる
  • 差分方程式を z変換して伝達関数 H(z) を求められるようになる
  • 部分分数展開による逆 z変換を1問通しで実行できるようになる

14.1 z変換の導入

やる夫

前章のラプラス変換、たしかに強かったお。でもやる夫が安定かどうか知りたかったのは、第12章のディジタルフィルタだお。あっちは微分方程式じゃなくて差分方程式だから、∫\int も d/dtd/dt も出てこないお。

やらない夫

だから今度はラプラス変換の離散時間版を作る。それが z変換だ。数列 x[n]x[n](n≥0n \ge 0)に対して

X(z)=∑n=0∞x[n] z−n(14.1)X(z) = \sum_{n=0}^{\infty} x[n]\, z^{-n} \tag{14.1}

と定義する。zz は複素変数。積分が総和に、e−ste^{-st} が z−nz^{-n} に置き換わっただけで、骨格はラプラス変換 (13.2) と同じだ。

やる夫

骨格が同じって言うけど、e−ste^{-st} と z−nz^{-n} じゃ見た目がだいぶ違うお。どこが対応してるんだお。

やらない夫

いいところを突く。x[n]x[n] が連続信号 f(t)f(t) をサンプリング周期 TT で標本化したもの、つまり x[n]=f(nT)x[n] = f(nT) だとしよう。ラプラス変換の核 e−ste^{-st} を標本点 t=nTt = nT で評価すると e−snT=(esT)−ne^{-snT} = (e^{sT})^{-n} だ。ここで

z=esT(14.2)z = e^{sT} \tag{14.2}

と名前を付ければ、(esT)−n=z−n(e^{sT})^{-n} = z^{-n}。つまり z変換とは、ラプラス変換の標本点版で、esTe^{sT} をひとまとめに zz と呼んだものなんだ。

やる夫

なるほどだお。じゃあ ss 平面の話は、式 (14.2) の翻訳表を通せば全部 zz 平面に持ってこられるってことかお。

やらない夫

そういうことだ。翻訳の目玉をひとつ先に見せておく。s=jωs = j\omega、つまり前章で「周波数応答が住んでいる」と言った虚軸は、z=ejωTz = e^{j\omega T} に移る。これは複素平面の半径1の円周だ。実際、式 (14.1) で z=ejωz = e^{j\omega} と置くと

X(ejω)=∑nx[n] e−jωn(14.3)X(e^{j\omega}) = \sum_n x[n]\, e^{-j\omega n} \tag{14.3}

これは離散時間フーリエ変換(DTFT)そのものだ。DTFT は z変換を単位円の上で眺めた特殊ケース。「ラプラス変換の虚軸=フーリエ変換」の関係と同じ構図が、円になって現れている。

14.2 逆z変換

やる夫

ラプラス変換のときは「変換 → 代数 → 逆変換」の3ステップだったお。z変換の逆変換はどうやるんだお。

やらない夫

公式としては複素平面上の周回積分

x[n]=12πj∮X(z) zn−1 dz(14.4)x[n] = \frac{1}{2\pi j} \oint X(z)\, z^{n-1}\, dz \tag{14.4}

が定義だ。が、安心しろ、この積分を実際に計算することはこの教材では一度もない。

やる夫

その宣言、嫌いじゃないお。じゃあ実際はどうするんだお。

やらない夫

実務は2つの読み方で済む。

  1. べき級数として読む: 定義 (14.1) は X(z)=x[0]+x[1]z−1+x[2]z−2+⋯X(z) = x[0] + x[1]z^{-1} + x[2]z^{-2} + \cdots だ。つまり X(z)X(z) を z−1z^{-1} のべき級数に展開できれば、係数を順に読むだけで x[n]x[n] が出る
  2. 部分分数に割って対応表を読む: X(z)X(z) が有理関数なら、簡単な分数の和に割って、各項を既知のペアで逆変換する。ラプラスのときの式 (13.7) と同じ作戦だ

ほとんどの場合は 2 で片付く。その「既知のペア」の代表が、これから作る 1/(1−az−1)1/(1 - az^{-1}) だ。

14.3 線形差分方程式とz変換

やらない夫

ラプラス変換の必殺技は「微分が ss 倍」だった。z変換の必殺技はこれだ。

Z[x[n−1]]=z−1X(z)(14.5)\mathcal{Z}\big[ x[n-1] \big] = z^{-1} X(z) \tag{14.5}

1サンプルの遅延が、z−1z^{-1} を掛けるだけの操作に化ける。導出は 14.5 節に回して、まず使う。第12章の IIR フィルタを覚えているか。

y[n]=x[n]+0.9 y[n−1](14.6)y[n] = x[n] + 0.9\, y[n-1] \tag{14.6}

両辺を z変換しろ。遅延は z−1z^{-1} 倍、それ以外は線形だからそのまま和になる。

やる夫

えーと、Y(z)=X(z)+0.9z−1Y(z)Y(z) = X(z) + 0.9 z^{-1} Y(z) …。Y(z)Y(z) を左に集めると (1−0.9z−1)Y(z)=X(z)(1 - 0.9z^{-1}) Y(z) = X(z) だから…

H(z)=Y(z)X(z)=11−0.9z−1(14.7)H(z) = \frac{Y(z)}{X(z)} = \frac{1}{1 - 0.9 z^{-1}} \tag{14.7}

お、ラプラスのときの伝達関数と同じ顔のやつが出てきたお。

やらない夫

それがディジタルフィルタの伝達関数 H(z)H(z) だ。一般の差分方程式でも同じことが起きる。

y[n]=∑k=0Mbkx[n−k]−∑k=1Naky[n−k]  →  Z    H(z)=b0+b1z−1+⋯+bMz−M1+a1z−1+⋯+aNz−N=B(z)A(z)(14.8)y[n] = \sum_{k=0}^{M} b_k x[n-k] - \sum_{k=1}^{N} a_k y[n-k] \;\xrightarrow{\;\mathcal{Z}\;}\; H(z) = \frac{b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}}{1 + a_1 z^{-1} + \cdots + a_N z^{-N}} = \frac{B(z)}{A(z)} \tag{14.8}

差分方程式が、z−1z^{-1} の多項式の比=有理関数にきれいに化ける。分子 B(z)B(z) には入力側の係数(FIR 部分)、分母 A(z)A(z) にはフィードバック側の係数が並ぶ。FIR フィルタなら分母が 1 で、H(z)H(z) はただの多項式だ。

やる夫

で、式 (14.7) からインパルス応答は読めるのかお? 第12章で手計算したときは h[n]=0.9nh[n] = 0.9^n だったお。

やらない夫

読める。等比級数の公式 11−r=1+r+r2+⋯\frac{1}{1-r} = 1 + r + r^2 + \cdots に r=0.9z−1r = 0.9z^{-1} を入れてみろ。

11−0.9z−1=1+0.9z−1+0.81z−2+⋯=∑n=0∞0.9nz−n(14.9)\frac{1}{1 - 0.9z^{-1}} = 1 + 0.9 z^{-1} + 0.81 z^{-2} + \cdots = \sum_{n=0}^{\infty} 0.9^n z^{-n} \tag{14.9}

さっき言った「べき級数として読む」だ。係数列はまさに 0.9n0.9^n。一般化すれば、逆変換ペアの主役が手に入る。

11−az−1⟺h[n]=an(n≥0)(14.10)\frac{1}{1 - a z^{-1}} \quad\Longleftrightarrow\quad h[n] = a^n \quad (n \ge 0) \tag{14.10}

そして H(z)=11−az−1H(z) = \frac{1}{1-az^{-1}} の分母が 0 になる点、つまり極は z=az = a だ。∣a∣<1|a| < 1 なら ana^n は減衰し、∣a∣>1|a| > 1 なら発散する。第12章の「0.9 はセーフ、1.1 はアウト」の境界線が、zz 平面の単位円として目に見える形になった。

14.4 逆z変換の実際

やる夫

極が1個ならわかったお。でも本物のフィルタは式 (14.8) みたいに分母がもっと長いお。そういうときはどうするんだお。

やらない夫

部分分数展開で式 (14.10) の形の和にバラす。これを1問、最後まで通しでやろう。お題はこれだ。

H(z)=1(1−0.5z−1)(1−0.8z−1)(14.11)H(z) = \frac{1}{(1 - 0.5z^{-1})(1 - 0.8z^{-1})} \tag{14.11}

極は z=0.5z = 0.5 と z=0.8z = 0.8 の2つ。これを

H(z)=A1−0.5z−1+B1−0.8z−1(14.12)H(z) = \frac{A}{1 - 0.5z^{-1}} + \frac{B}{1 - 0.8z^{-1}} \tag{14.12}

と置く。A,BA, B を決めるには、両辺に元の分母を掛けて

1=A(1−0.8z−1)+B(1−0.5z−1)(14.13)1 = A(1 - 0.8z^{-1}) + B(1 - 0.5z^{-1}) \tag{14.13}

これがどんな zz でも成り立つように選ぶ。ここでひとつ約束をしておく。z−1z^{-1} を「ひとつの変数」とみなして部分分数するんだ。w=z−1w = z^{-1} と置き換えて 1(1−0.5w)(1−0.8w)\frac{1}{(1-0.5w)(1-0.8w)} を ww の有理関数として分解している、と思えばいい。だから次に出てくる「z−1=2z^{-1}=2 を代入」も、w=2w=2 という ww への代入であって、zz そのものに妙な値を入れているわけではない(離散版の部分分数展開のコツは付録A.5にまとめた)。楽をするコツは、片方の項が消える点を代入することだ。やってみろ。

やる夫

ええと、BB の項を消したいなら 1−0.5z−1=01 - 0.5z^{-1} = 0、つまり z−1=2z^{-1} = 2 を入れるお。すると 1=A(1−0.8×2)=−0.6A1 = A(1 - 0.8 \times 2) = -0.6A だから A=−53A = -\frac{5}{3} だお。

今度は z−1=1/0.8=1.25z^{-1} = 1/0.8 = 1.25 を入れると 1=B(1−0.5×1.25)=0.375B1 = B(1 - 0.5 \times 1.25) = 0.375B だから B=83B = \frac{8}{3} だお。

やらない夫

正解だ。あとは各項に式 (14.10) を当てるだけ。

h[n]=−53 (0.5)n+83 (0.8)n(n≥0)(14.14)h[n] = -\frac{5}{3}\,(0.5)^n + \frac{8}{3}\,(0.8)^n \quad (n \ge 0) \tag{14.14}

無限に続くインパルス応答の全貌が、閉じた式で手に入った。

やる夫

…本当に合ってるのかお? 検算したいお。

やらない夫

いい習慣だ。式 (14.11) の分母を展開すると 1−1.3z−1+0.4z−21 - 1.3z^{-1} + 0.4z^{-2}、つまり元の差分方程式は y[n]=x[n]+1.3y[n−1]−0.4y[n−2]y[n] = x[n] + 1.3y[n-1] - 0.4y[n-2] だ。インパルスを入れて直接回すと h[0]=1h[0] = 1、h[1]=1.3h[1] = 1.3。一方、式 (14.14) は

h[0]=−53+83=1,h[1]=−53(0.5)+83(0.8)=−56+3215=3930=1.3h[0] = -\tfrac{5}{3} + \tfrac{8}{3} = 1, \qquad h[1] = -\tfrac{5}{3}(0.5) + \tfrac{8}{3}(0.8) = -\tfrac{5}{6} + \tfrac{32}{15} = \tfrac{39}{30} = 1.3

一致だ。さらに式 (14.14) からは数値以上のことが読める。応答は (0.5)n(0.5)^n と (0.8)n(0.8)^n の2成分の混合で、すぐ消えるのは前者、しぶとく残って応答の「しっぽ」を支配するのはいちばん単位円に近い極 z=0.8z = 0.8 の方だ。

やる夫

極の位置を見れば、計算しなくても応答の性格が読めるってことかお。ラプラスのときの「左半平面なら安定」と同じノリだお。

やらない夫

そのノリの離散版を、目で確かめよう。下のデモは共役な極ペア z=re±jθz = re^{\pm j\theta} を持つシステムだ。インパルス応答は h[n]=rncos⁡θnh[n] = r^n \cos\theta n になる。rr と θ\theta を動かしてみろ。

Z-PLANE → IMPULSE RESPONSE INTERACTIVE
再生すると極ペア(×印)の半径 r が内から外へ自動で動く。応答の減衰がだんだん鈍り、極が単位円(r = 1)を越えた瞬間に発散へ転じる=13章の「虚軸越え=発散」が、離散では「単位円越え=発散」になると見える。停止すれば r・θ を自分で置け、θ は振動の細かさだけを変える(σ→r、ω→θ の役割対応)。
やる夫

おお、前章のデモとそっくりの動きだお! あっちは「縦の虚軸を越えたら発散」だったけど、今度は単位円を越えたら発散だお。rr が前章の σ\sigma の役で、θ\theta が ω\omega の役だお。

やらない夫

そのとおり。z=esTz = e^{sT} の翻訳で ∣z∣=eσT|z| = e^{\sigma T} だから、σ<0⇔∣z∣<1\sigma < 0 \Leftrightarrow |z| < 1。「極が左半平面なら安定」は、離散時間では「極が単位円の内側なら安定」になる。これが第12章から引っ張ってきた問いへの最終回答だ。フィルタの分母 A(z)A(z) の根を求めて、全部単位円の内側にあれば安定。手計算で何十項も回す必要はない。

14.5 なぜ遅延が z^-1 になるのか

やる夫

最後に宿題を回収してほしいお。式 (14.5)、遅延が z−1z^{-1} 倍になるってやつだお。

やらない夫

定義に放り込むだけだ。1サンプル遅らせた信号 x[n−1]x[n-1] を式 (14.1) に入れて、m=n−1m = n - 1 と置き換える。

∑n=0∞x[n−1] z−n=∑m=−1∞x[m] z−(m+1)=z−1∑m=0∞x[m] z−m=z−1X(z)(14.15)\sum_{n=0}^{\infty} x[n-1]\, z^{-n} = \sum_{m=-1}^{\infty} x[m]\, z^{-(m+1)} = z^{-1} \sum_{m=0}^{\infty} x[m]\, z^{-m} = z^{-1} X(z) \tag{14.15}

途中で m=−1m = -1 の項を捨てたのは、n<0n < 0 で x[n]=0x[n] = 0(因果的な信号)としているからだ。kk サンプルの遅延なら同じ計算で z−kz^{-k} 倍になる。

やる夫

ほんとに総和の番号を付け替えただけだお。z−nz^{-n} が z−(m+1)z^{-(m+1)} になって、はみ出した z−1z^{-1} が外にこぼれ出てきた、って感じだお。

やらない夫

その「こぼれ出る」感覚で十分だ。仕上げに、2つの章を1枚の対応表にしておこう。

  • 連続時間: システムの基本操作は微分。este^{st} が微分の固有関数だから、ラプラス変換で「微分 →s\to s 倍」になり、微分方程式が代数方程式 H(s)H(s) に化けた
  • 離散時間: システムの基本操作は遅延。znz^n は遅延の固有関数(zn−1=z−1⋅znz^{n-1} = z^{-1} \cdot z^n で形が変わらない)だから、z変換で「遅延 →z−1\to z^{-1} 倍」になり、差分方程式が有理関数 H(z)H(z) に化けた

道具の見た目は違っても、**「システムの基本操作を、ただの掛け算に変える座標系を選ぶ」**という一つの思想で貫かれている。

この章のまとめ
  • z変換 X(z)=∑nx[n]z−nX(z) = \sum_{n} x[n] z^{-n} はラプラス変換の離散時間版。z=esTz = e^{sT} の関係で結ばれ、DTFT は単位円上(z=ejωz = e^{j\omega})の特殊ケース
  • 逆z変換は周回積分が定義だが、実際はべき級数の係数読みか部分分数展開で済ませる
  • 遅延の性質 Z[x[n−k]]=z−kX(z)\mathcal{Z}[x[n-k]] = z^{-k}X(z) により、差分方程式は有理関数 H(z)=B(z)/A(z)H(z) = B(z)/A(z) に化ける。ラプラスの「微分 →s\to s」と対になる「遅延 →z−1\to z^{-1}」
  • 基本ペアは 1/(1−az−1)⇔an1/(1 - az^{-1}) \Leftrightarrow a^n。複数極は部分分数展開でこの形の和に割る
  • 応答のしっぽは単位円にいちばん近い極が支配する
  • 安定条件: 極がすべて単位円の内側。ss 平面の左半平面⇔zz 平面の単位円内、虚軸⇔単位円周