14. z 変換

14.1 z 変換の導入

やらない夫
さて,ラプラス変換を理解したところで本題の z 変換に進もう.

やる夫
長い道のりだったお.

やらない夫
ラプラス変換ってのは,フーリエ変換する際に元の関数に $ e^{-ct}$ をかけておいて,収束しやすくしてやろうというものだった.同じようなことを離散時間システムについて考えてやろうというのが z 変換だ.

やる夫
てことは,フーリエ変換の代わりに離散時間フーリエ変換から出発すればよさそうだお.

やらない夫
そうなるな.離散時間信号 $ x[n]$$ e^{-cn}$ をかけたものを離散時間フーリエ変換しよう.ただしラプラス変換と同様に単位ステップ関数もかけておこう.総和範囲を 0 〜 $ \infty$ にすることに相当する.

DTFT$\displaystyle \left[x[n] u_0[n] e^{-cn}\right]$ $\displaystyle = \sum_{n = 0}^{\infty} x[n] e^{-cn} e^{-j\omega n}$ (14.1)
  $\displaystyle = \sum_{n = 0}^{\infty} x[n] e^{-(c + j\omega) n}$ (14.2)

ここで $ e^{c + j\omega}$ を新しい変数 $ z$ と置いたものが z 変換だ.


やる夫
あっさり出てきたお.

やらない夫
全く同じことを,ラプラス変換を出発点として導いてもいい.連続時間信号 $ x(t)$くし型関数をかけてサンプリングしたものをラプラス変換してみよう.

$\displaystyle {\cal L}\left[ x(t) \sum_{n = -\infty}^{\infty} \delta(t - n)\right]$ $\displaystyle = \int_0^{\infty} x(t) \sum_{n = -\infty}^{\infty} \delta(t - n) e^{-st}dt$ (14.4)
  $\displaystyle = \sum_{n = 0}^{\infty} x(n) e^{-sn}$ (14.5)

やる夫
んー? 1行目から2行目にいくときに,総和の範囲がどうして $ n = 0$ 以降だけになったんだお?

やらない夫
ああ,それは積分範囲が $ t = 0$ 以降に限定されていたからだな.デルタ関数のインパルスは $ n = -\infty, \cdots, \infty$ まで存在していたが,$ n$ が負の範囲は積分範囲に含まれていないので,無かったのと同じことになっている.

やる夫
あー,そうか,ていうか,そもそも $ n = 0$ 以降にだけインパルスが立っているようなくし型関数をかけると考えてもいいんだお.結局同じことになるお.

やらない夫
そんなこんなで,式 (14.5) で $ z = e^{s}$ と置いたものが z 変換の定義になる.ラプラス変換の $ s$ ってのは $ c + j\omega$ だったので,さっきの定義と一致していることがわかる.

やる夫
んー, $ s = c + j\Omega$ じゃなかったかお? どうして小文字の $ \omega$ になるのかお?

やらない夫
その辺の議論は,離散時間フーリエ変換を導入したときと同じだな.今はサンプリングしたときのサンプリング周期を単位時間として考えている.単位時間が「1秒」じゃなく「1 サンプル時刻」になっているから,正規化角周波数で考える.

やる夫
ああ,そうだったお.

やらない夫
ともかく以上のように定義されるのが z 変換だ.

$\displaystyle {\cal Z}\left[ x[n] \right]$ $\displaystyle = X(z)$ (14.6)
$\displaystyle x[n]$ $\displaystyle \stackrel{\cal Z}{\longrightarrow}X(z)$ (14.7)

などと書くことにしよう.

ちょっといくつか簡単なものの計算をしてみるか.

$\displaystyle \cdots, x[-1]$ $\displaystyle = 0,$ (14.8)
$\displaystyle x[0]$ $\displaystyle = 1,$    
$\displaystyle x[1]$ $\displaystyle = 3,$    
$\displaystyle x[2]$ $\displaystyle = -2,$    
$\displaystyle x[3]$ $\displaystyle = -1,$    
$\displaystyle x[4]$ $\displaystyle = 0, \cdots$    

を z 変換するとどうなる?

やる夫
えーと,公式通り計算して

$\displaystyle X(z)$ $\displaystyle = \sum_{n = 0}^{\infty} x[n] z^{-n}$ (14.9)
  $\displaystyle = 1 + 3z^{-1} - 2z^{-2} - z^{-3}$ (14.10)

でいいのかお?

やらない夫
いいだろう.じゃあ次の例だ.$ \alpha$ を定数として

$\displaystyle x[n]$ $\displaystyle = \alpha^n$ (14.11)

だとどうだ?

やる夫
んーと,

$\displaystyle X(z)$ $\displaystyle = \sum_{n = 0}^{\infty} \alpha^n z^{-n}$ (14.12)
  $\displaystyle = \sum_{n = 0}^{\infty} (\alpha z^{-1})^n$ (14.13)
  $\displaystyle = \frac{1}{1 - \alpha z^{-1}}$ (14.14)

ってことかお.ただし $ \vert \alpha z^{-1}\vert < 1$ じゃないと収束しないお.

やらない夫
ああ,ラプラス変換と同じく,z 変換にも収束範囲がある.この場合の収束範囲は $ \vert z\vert > \vert\alpha \vert$,つまり原点を中心とする半径 $ \vert\alpha\vert$ の円の外側になる.


\includegraphics[scale=0.5]{fig_zt/z_gt_alpha.eps}

3つめ,最後の例だ.

$\displaystyle x[n]$ $\displaystyle = \delta[n]$ (14.15)

だとどうだろう.

やる夫
単位インパルスかお.えーと

$\displaystyle X(z)$ $\displaystyle = \sum_{n = 0}^{\infty} \delta[n] z^{-n}$ (14.16)
  $\displaystyle = z^{-0}$ (14.17)
  $\displaystyle = 1$ (14.18)

でいいのかお? まあ,ラプラス変換とかフーリエ変換と対応する結果なので,違和感はないお.

やらない夫
そうだな.連続時間の単位インパルス (= デルタ関数) はフーリエ変換しても,ラプラス変換しても 1 になる.離散時間の単位インパルスは,離散時間フーリエ変換しても z 変換してもやっぱり 1 になる.覚えておく価値がある事実だ.

やる夫
ふーん,まあ z 変換がどんな計算をするものかは何となくわかったお.でも,定義するときにどうして $ z = e^{c + j\omega}$ なんて置き換えをしないといけないのかわからんお.$ \omega$ のままじゃダメなのかお?

やらない夫
ああ,ちょっとそこは順を追って説明していこうと思う.が,その前に $ s$$ z$ の対応関係について見ておこう.どっちも複素数だってのはいいよな. $ s = c + j\omega$ で実数 $ c$ だけが変化すると,対応する $ z$ はどう動く?

やる夫
えーと, $ z = e^{c + j\omega} = e^{c} e^{j\omega}$$ c$ だけ動くんだから,$ z$ は偏角が変わらず絶対値だけが変わるお.

やらない夫
そうだな.原点を通る半直線上を動くことになるわけだ. $ c \rightarrow
-\infty$ で原点にえんえんと近づき, $ c \rightarrow
\infty$ で無限遠に飛んでいくことになる.


\includegraphics[scale=0.5]{fig_zt/s_z_omega_const.eps}

じゃあ $ \omega$ だけが変化するとどうだ?

やる夫
もう簡単だお. $ z = e^{c} e^{j\omega}$ なんだから,原点を中心とした半径 $ e^{c}$ の円周上を回ることになるお.

やらない夫
$ \omega = 0$ のときが実軸上の $ \mathop{\rm Re}\nolimits\{z\} = e^c$ のところに対応することになる.$ \omega$ が増えるとともに円周上を反時計回りに回って, $ \omega =
2\pi$ で 1 周するわけだ.$ c$ が大きくなれば円の半径も大きくなる.


\includegraphics[scale=0.5]{fig_zt/s_z_c_const.eps}

このうち特に $ c
= 0$ のとき,つまり $ s$ 領域の虚軸に対応するのは,$ z$ 領域の単位円になる.$ e^0 = 1$ だからな.


\includegraphics[scale=0.5]{fig_zt/s_z_c_zero.eps}

やる夫
結局,$ s$ 領域で実軸に平行な直線群は $ z$ 領域では放射状に伸びる直線群に対応して,$ s$ 領域で虚軸に平行な直線群は $ z$ 領域の同心円群に対応することになるお.


\includegraphics[scale=0.5]{fig_zt/s_z_lines.eps}

やらない夫
そうなるな.ラプラス変換では,虚軸に平行な直線を境にして右側か左側かってのがよく重要な分かれ目になった.$ z$ 領域ではこれが,原点を中心とする円を境にして外側か内側かに対応することになる.例えばラプラス変換の収束範囲ってどんな領域だった?

やる夫
虚軸に平行なある直線の右側が収束範囲になるんだお.その範囲なら $ c$ が十分に大きくて $ e^{-ct}$ が強く減衰するって話だったお.

やらない夫
それに対応して,z 変換の場合は,原点を中心とするある円の外側が収束範囲になる.


\includegraphics[scale=0.5]{fig_zt/s_z_roc.eps}

こんな風に,$ s$$ z$ の対応関係を把握しておくことは重要だ.

14.2 逆 z 変換

やる夫
で,逆 z 変換はどうなるのかお? ラプラス逆変換とか離散時間フーリエ逆変換の公式で適当に変数を置き換えるだけでいいのかお?

やらない夫
基本的にはそういうことだが,今話したような $ z$ 領域と $ s$ 領域の対応関係をイメージしながら考えることが重要だ.

z 変換を導入したときの元々の関係は

$\displaystyle X(z) =$   DTFT$\displaystyle \left[x[n] u_0[n] e^{-cn}\right]$ (14.19)

だった.これの逆を考えることから始めよう.

やる夫
えーと逆ってことは

$\displaystyle x[n] u_0[n] e^{-cn} =$   DTFT$\displaystyle ^{-1}\left[ X(z) \right]$ (14.20)

ってことかお.

やらない夫
離散時間フーリエ逆変換の公式に入れると,

$\displaystyle x[n] u_0[n] e^{-cn}$ $\displaystyle = \frac{1}{2\pi} \int_{-\pi}^{\pi} X(z) e^{j\omega n} d\omega$ (14.21)

になる.$ e^{-cn}$ を右辺に移すと


になるな.ここで $ z = e^{c + j\omega}$ の関係を使って,積分変数を $ \omega$ から $ z$ に置換しよう.

やる夫
ええと, $ dz/d\omega = j e^{c + j\omega}$ だから,

$\displaystyle x[n] u_0[n]$ $\displaystyle = \frac{1}{2\pi j} \int_{\Gamma} X(z) e^{(c + j\omega) n} e^{-(c + j\omega)} dz$ (14.23)
  $\displaystyle = \frac{1}{2\pi j} \int_{\Gamma} X(z) e^{(c + j\omega)(n - 1)} dz$ (14.24)
  $\displaystyle = \frac{1}{2\pi j} \int_{\Gamma} X(z) z^{n - 1} dz$ (14.25)

って書けるお.積分経路はとりあえず $ \Gamma$ って書いといたけど,えーと,これはどうなるかお….

やらない夫
$ z = e^{c + j\omega}$$ \omega$$ -\pi$ から $ \pi$ まで動かすことを考えればいい.

やる夫
あ,そうか,だから半径 $ e^c$ の円周上をちょうど 1 周する積分経路になるお.…ああ,ラプラス逆変換で $ \mathop{\rm Re}\nolimits\{s\} = c$ の直線を積分経路に取ったことに対応してるわけだお.


\includegraphics[scale=0.5]{fig_zt/izt_integral.eps}

やらない夫
ちょっとした相違点として,ラプラス変換のときの積分経路は $ \Omega$$ -\infty$ から $ \infty$ まで動かしたが,z 変換の場合の $ \omega$$ -\pi$$ \pi$ でいいってことに注意しておこう.離散時間フーリエ逆変換を導入したときに,積分範囲を $ -\pi$$ \pi$ に限定したのと同じ理屈だ.

というわけで得られた式 (14.25) が逆 z 変換の公式だ.$ x[n]$ じゃなくて $ x[n] u_0[n]$ にしか戻らないというのもラプラス逆変換と同じだな.

やる夫
ラプラス逆変換に負けず劣らず,実際に計算するのは面倒くさそうな複素積分だお.

やらない夫
まあ否定はしないがな.ただし,何となく類推できるんじゃないかと思うが,ラプラス逆変換と同様,逆 z 変換もこの公式を使わなくて済む場合が多いんだ.

やる夫
やっぱり z 変換表なんてのを使うことになるのかお?

やらない夫
そういうことだ.その具体的な方法はまた後でやることにして,今は,逆 z 変換によって離散時間信号が「成分の重ね合わせ」の形式で表現されていることに注意しておこう.

やる夫
えーと,どういうことだお? 何が重ね合わされてるんかお.

やらない夫
完全に $ z$ で表した逆 z 変換の公式よりも, $ \omega$ が残っている式 (14.22) の方がイメージしやすいかもな.この式なら, $ e^{(c + j\omega)n}$ の重ね合わせになっていることが見て取れるだろう.その際の重ね合わせの係数が $ X(z) = X(e^{c +
j\omega})$ になる.

やる夫
あー,なるほど,こっちならわかるお.

やらない夫
ざっと振り返ると,フーリエ逆変換ってのは $ e^{j\Omega t}$ の重ね合わせで,ラプラス逆変換ってのは $ e^{(c + j\Omega) t}$ の重ね合わせで元の連続時間信号を表そうというものだと解釈できた.それと同じ話で,離散時間フーリエ逆変換ってのは $ e^{j\omega n}$ の重ね合わせで,逆 z 変換ってのは $ e^{(c + j\omega)n}$ の重ね合わせで元の離散時間信号を表そうとしていることになる.

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

やらない夫
さて,いま何をしたかったのかというと,線形差分方程式で表されるディジタルフィルタを解析したいんだった.

やる夫
ああ,忘れかけてたお.

$\displaystyle \sum_{k = 0}^{N} a_k y[n - k]$ $\displaystyle = \sum_{k = 0}^{M} b_k x[n - k]$ (12.15)

みたいな形の差分方程式の話だったお.そこからいったん微分方程式に話が移って,ようやく戻ってきたんだお.

やらない夫
微分方程式をラプラス変換で等価な代数方程式に転換できたのと同じようなことを,差分方程式に対しては z 変換でやることができる.その話をしよう.

やる夫
やっぱり微分方程式のときと同じような考え方をするんかお?

やらない夫
そうだな.微分方程式のときは,信号を成分分解して考えることで,微分演算 $ d/dt$$ s$ 倍にすげ替えることができたんだった.

やる夫
でも差分方程式には微分演算なんか出てこないお.

やらない夫
その代わりに鍵になるのが,1時刻分の遅延だ.$ D$ という演算子で書くことにしよう.

$\displaystyle D y[n] = y[n - 1]$ (14.26)

これを使ってさっきの差分方程式を書き直すと

$\displaystyle \sum_{k = 0}^{N} a_k D^k y[n]$ $\displaystyle = \sum_{k = 0}^{M} b_k D^k x[n]$ (14.27)

になる.

やる夫
えーと,$ k$ 時刻遅らせるのは $ D$$ k$ 回作用させることだから $ D^k$ って書いてるわけだお.なるほど,微分方程式の $ d/dt$$ D$ に置き換わったような表現になるんだお.

やらない夫
じゃあ,微分方程式のときと同じように $ x$$ y$ を成分分解して考えよう.離散時間フーリエ逆変換で置き換えて,総和と積分を入れ替えると

$\displaystyle \frac{1}{2\pi} \sum_{k = 0}^{N} a_k D^k \int_{-\pi}^{\pi} Y(\omega) e^{j\omega n} d\omega$ $\displaystyle = \frac{1}{2\pi} \sum_{k = 0}^{M} b_k D^k \int_{-\pi}^{\pi} X(\omega) e^{j\omega n} d\omega$ (14.28)
$\displaystyle \frac{1}{2\pi} \int_{-\pi}^{\pi} \sum_{k = 0}^{N} a_k D^k Y(\omega) e^{j\omega n} d\omega$ $\displaystyle = \frac{1}{2\pi} \int_{-\pi}^{\pi} \sum_{k = 0}^{M} b_k D^k X(\omega) e^{j\omega n} d\omega$ (14.29)

やる夫
微分方程式のときは,$ d/dt$ を指数関数 $ e^{j\Omega t}$ に作用させて $ j\Omega$ が出てきたんだお.

やらない夫
代わりに今回は,遅延演算子 $ D$ を指数関数 $ e^{j\omega n}$ に作用させることを考える.

$\displaystyle D e^{j\omega n}$ $\displaystyle = e^{j\omega (n - 1)}$ (14.30)
  $\displaystyle = e^{-j\omega} e^{j\omega n}$ (14.31)

やる夫
あっ,やっぱり指数関数 $ e^{j\omega n}$ のまま, $ e^{-j\omega}$ 倍になるだけだお.

やらない夫
そこがミソだ.成分分解された各ベクトルの方向が変わらないことに相当していたわけだな.遅延演算の場合も同じことが言える.

$\displaystyle \frac{1}{2\pi} \int_{-\pi}^{\pi} \left[ \sum_{k = 0}^{N} a_k (e^{-j\omega})^k Y(\omega) \right] e^{j\omega n} d\omega$ $\displaystyle = \frac{1}{2\pi} \int_{-\pi}^{\pi} \left[ \sum_{k = 0}^{M} b_k (e^{-j\omega})^k X(\omega) \right] e^{j\omega n} d\omega$ (14.32)

やる夫
ここまで来るともう続きがわかるお.大カッコ [ ] の中身の離散時間フーリエ逆変換同士が等しいので,大カッコの中身同士も等しいんだお.

$\displaystyle \sum_{k = 0}^{N} a_k (e^{-j\omega})^k Y(\omega) = \sum_{k = 0}^{M} b_k (e^{-j\omega})^k X(\omega)$ (14.33)

やらない夫
離散時間フーリエ逆変換で考える代わりに逆 z 変換で考えても同様だ. $ e^{j\omega n}$ の代わりに $ e^{(c + j\omega)n}$ の重ね合わせで表すわけだ.

$\displaystyle D e^{(c + j\omega) n}$ $\displaystyle = e^{(c + j\omega) (n - 1)}$ (14.34)
  $\displaystyle = e^{-(c + j\omega)} e^{(c + j\omega) n}$ (14.35)

という風に 1 時刻の遅延は $ e^{-(c + j\omega)}$ 倍に化けるので,全く同じように議論して


が得られる. $ z = e^s = e^{c + j\omega}$ と書くことに決めていたので,結局


と書かれることになる.これが,元の差分方程式を z 変換して得られる代数方程式だ.

やる夫
微分が $ s$ になったのと同じく,1 時刻の遅延が $ e^{-(c + j\omega)} =
e^{-s} = z^{-1}$ になるってことだお.

やらない夫
そうだな.ブロック図で遅延素子を「$ z^{-1}$」と表示した理由がこれだ.


\includegraphics[scale=0.5]{fig_zt/block_delay.eps}

やる夫
後は,$ Y(z)$ について解いた

$\displaystyle Y(z) = \frac{\sum_{k = 0}^{M} b_k z^{-k}}{\sum_{k = 0}^{N} a_k z^{-k}} X(z)$ (14.38)

を逆変換で時間領域に戻せば,差分方程式の解 $ y[n]$ が得られるってわけだお.微分方程式のときと話の筋は同じだお.

やらない夫


と定義すれば,$ Y(z)$$ X(z)$$ H(z)$ 倍という関係が成り立つわけだな.ラプラス変換の場合と同じように $ H(z)$ を伝達関数と呼ぶ.これがインパルス応答の z 変換になっていることは,もうわかるだろう?

やる夫
えーと,単位インパルス $ \delta[n]$ の z 変換は 1 だったから, $ \delta[n]$ を入力したときの出力の z 変換は $ Y(z) = H(z) \cdot 1$ になるんだお.要するにインパルス応答の z 変換が $ H(z)$ だってことだお.

やらない夫
そうだな.時間領域の $ y[n] = h[n] * x[n]$$ z$ 領域で $ Y(z) =
H(z)X(z)$ に対応することになる.たたみこみと積の関係が z 変換でも成り立つということだな.もちろんラプラス変換のときと同様に,インパルス応答 $ h[n]$ のシステムに $ x[n] = e^{(c + j\omega)n} = z^n$ を入力して,その出力が $ H(z) z^n$ になることから理解するのでもいい.

やる夫
その考え方にもだいぶ慣れてきたお.

やらない夫
伝達関数から周波数応答を計算する方法も,ラプラス変換のときと同じように考えるとわかる.$ X(s)$ $ s = j\Omega$ を代入して連続時間システムの周波数応答が得られたのと同様に, $ X(z)$ $ z = e^{j\omega}$ を代入したものが離散時間フーリエ変換に一致するわけだ.離散時間フーリエ変換を $ X(e^{j\omega})$書く場合があるのは,そういう由来だ.

やる夫
z 変換で得られた関数の単位円上の値を拾っていくと離散時間フーリエ変換になるってことだお.単位円上を 1 周すると元に戻るわけで,離散時間信号のスペクトルが周期 $ 2\pi$ で周期的なのとも整合してるお.

14.4 逆 z 変換の実際

やらない夫
というわけで,z 変換で得られた代数方程式を $ Y(z)$ について解いてから逆 z 変換すれば,差分方程式の解 $ y[n]$ が得られるわけだ.

やる夫
でも逆 z 変換の公式を使うのは面倒だお.

やらない夫
なので,普通は何らかの式変形をした上で,z 変換表を見ながら置き換えていくのが常套手段だ.ラプラス変換のときと同じように,当面必要なものだけ抜粋しておこうか.

  時間領域 $ z$ 領域
単位インパルス $ \delta[n]$ 1
指数関数 $ \alpha^n u_0(t)$ $ \displaystyle \frac{1}{1 - \alpha z^{-1}}$
線形性 $ a f[n] + b g[n]$ $ a F(z) + b G(z)$
時間遅延 $ \displaystyle f[n - 1]$ $ z^{-1 }F(z)$
たたみこみ $ \displaystyle h[n] * x[n] = \sum_{m=0}^{\infty} h[m]x[n-m]$ $ H(z)X(z)$

やる夫
あー,ほとんど既に出てきたやつだお.

やらない夫
線形性は特には説明してないが,まあ定義から自明だろう.他はすべて説明済みだな.

じゃあ,これらを使って,具体例を逆 z 変換してみるか.

$\displaystyle H(z) = \frac{\frac{1}{2}z^{-1}}{1 - \frac{3}{2}z^{-1} + \frac{1}{2}z^{-2}}$ (14.40)

やる夫
っていきなり変換表にない式だお.

やらない夫
ああ,ラプラス変換と同様に,こういう場合にまず最初に考えるのは部分分数展開だ.ただし,ちょっと注意が必要なのは,$ z^{-1}$ の式として見てやらなくてはならないってことだ.

やる夫
えっ,どういうことだお?

やらない夫
ラプラス変換の場合,部分分数展開で $ \frac{1}{s - a}$ の形を作るのが基本だ.それが時間領域では $ e^{at} u_0(t)$ に対応するんだったな.z 変換の場合は,時間領域で $ \alpha^n u_0[n]$ に対応するもの,つまり $ \frac{1}{1 - \alpha z^{-1}}$ を作るのが基本になる.

やる夫
ふーん,じゃあやってみるお.とりあえず分母を $ z^{-1}$ の式だと思って因数分解するお.

$\displaystyle H(z)$ $\displaystyle = \frac{\frac{1}{2}z^{-1}}{(1 - z^{-1})(1 - \frac{1}{2} z^{-1})}$ (14.41)

で,えーと,

$\displaystyle H(z)$ $\displaystyle = \frac{1}{1 - z^{-1}} - \frac{1}{1 - \frac{1}{2} z^{-1}}$ (14.42)

と展開できるお.z 変換表を見て時間領域に移すと

$\displaystyle {\cal Z}^{-1}[H(z)]$ $\displaystyle = 1^n u_0[n] - (\frac{1}{2})^n u_0[n]$ (14.43)
  $\displaystyle = (1 - (\frac{1}{2})^n) u_0[n]$ (14.44)

になるお.なるほど,$ z^{-1}$ の式と見なして部分分数展開ってのはこういうことかお.

やらない夫
そういうことだな.やってみると,ラプラス変換のときと似たような計算だってのがわかっただろう.

やる夫
だいたいこんな感じで逆変換できるのかお?

やらない夫
実は必ずしもそうとは限らない.例えば今最初に分母を因数分解したが,そこで重解が出て来る場合は部分分数展開がもう少しややこしい.具体的には $ \frac{1}{(1 - \alpha z^{-1})^k}$ みたいな形の項が出て来る.そういう項をどう扱えばいいかについては, 付録に回そう.


14.5 なぜ $ e^{s}$$ z$ にするのか

やる夫
うーん,z 変換がどんなものかってのはだいたいわかった気がするお.でも,どうして $ z =
e^{s} = e^{c + j\omega}$ って置くのかがまだピンと来ないお.ラプラス変換のときは,微分して前に出てくる $ c + j\Omega $$ s$ にしたんだお.だったら, $ e^{-(c + j\omega)} = e^{-s}$$ z$ にする方が素直じゃないかお?

やらない夫
その辺を理解するために,もう一度ラプラス変換のときにどう考えたかを振り返ろう.あのときは,システムを $ \dot{y}_i = \lambda_i y_i + x$ という基本的な要素に並列分解することを考えたんだった.

やる夫
$ s$ 領域では,伝達関数を $ \frac{1}{s - \lambda_i}$ の和に部分分数展開することに相当してたんだお.

やらない夫
そのとき伝達関数の分母は $ \prod_i (s - \lambda_i)$ の形になるわけで,結局,分母 = 0 を解くことで $ \lambda_i$ の値がわかる.

やる夫
$ \lambda_i$ の値が,インパルス応答の挙動,つまり,発散するのか減衰するのかとか振動性とかいったことを把握するために重要だったんだお.

やらない夫
さて,同様のことを z 変換の場合について考えたいんだが,何か思い当たることはないか?

やる夫
思い当たりまくりだお.ついさっき部分分数展開とかやったばっかりだお.

やらない夫
そう,その辺が鍵になる.ラプラス変換のときと同じように話を簡単にするため, $ z^{-1}$ の有理多項式で表される $ H(z)$ のうち,分母の次数が分子より高くて,分母 = 0 が重解を持たない場合に話を限定して考えよう.それ以外の場合は付録で扱うことにする.

そう限定すると,必ず

$\displaystyle H(z) = \sum_{i=1}^N \frac{w_i}{1 - \alpha_i z^{-1}}$ (14.45)

と展開できるわけだ.

やる夫
z 変換表にあるやつだお.時間領域では $ \alpha_i^n u_0[n]$ の足し合わせで書けることになるお.

やらない夫
そうだったな.システムを $ H_i(z) = \frac{1}{1 - \alpha_i z^{-1}}$ へ並列分解して考えることに相当する.これは

$\displaystyle Y_i(z) = \alpha_i z^{-1} Y_i(z) + X(z)$ (14.46)

つまり時間領域でいうと

$\displaystyle y_i[n] = \alpha_i y_i[n - 1] + x[n]$ (14.47)

というサブシステムに分解していることになるな.

各サブシステムの時間領域の挙動は $ \alpha_i$ の値で決まる.例えば $ \vert\alpha_i\vert > 1$ だったら発散するし, $ \vert\alpha_i\vert < 1$ なら減衰していく.複素数なら振動するって具合だ.

やる夫
そっか,ラプラス変換のときに 分母 = 0 の解として $ e^{\lambda_i t}$$ \lambda_i$ が得られたように,$ \alpha_i$ が簡単に得られると便利なんだお.

やらない夫
で,実際の z 変換はどうなってる?

やる夫
えーと,部分分数展開する前は

$\displaystyle H(z) = \frac{A(z)}{\prod_{i=1}^N (1 - \alpha_i z^{-1})}$ (14.48)

みたいな形になってるはずだお.だから,あー,確かに 分母 = 0 の解として $ \alpha_i    (i = 1, \cdots, N)$ が出てくるお!

やらない夫
あるいは分子・分母を $ z^n$ 倍して

$\displaystyle H(z) = \frac{z^n A(z)}{\prod_{i=1}^N (z - \alpha_i)}$ (14.49)

って書く方がわかりやすいかも知れない.まあどっちにしろ同じことだ.

やる夫
なるほど,つまりこうやって $ \alpha_i$ が得られるように $ z$ が定められてるって考えればいいわけだお.

やらない夫
ラプラス変換のときと同じく,分母 = 0 になるような点は極と呼ばれる.制御工学からの類推で容易に想像できるように,ディジタルフィルタの特性を考えていく際に,極がどこにあるかはとても重要になる.そういう分析がしやすいように変数 $ z$ が導入されているってことだな.

というわけで今回のまとめだ.

  • 離散時間 $ n = 0, 1, 2, \cdots$ で定義された関数 $ x[n]$ (のうち実用上重要なものの多くに対して,式 (14.3) で計算される $ X(z)$$ x[n]$ の z 変換と呼ぶ (あるいはこの計算をすること自体を z 変換と呼ぶ).
  • $ z = e^s = z^{c + j\omega}$ であり,$ \omega$ は正規化角周波数, $ c$ は適当な定数である.$ c$ を十分大きく取ることで,離散時間フーリエ変換より多くの関数で z 変換を収束させられる.
  • 時間領域での 1 時刻遅延は,$ z$ 領域での $ z^{-1}$ 倍に対応する.
  • $ X(z)$ から式 (14.25) によって元の $ x[n]$ が復元できる.この計算を逆 z 変換と呼ぶ.ただし,$ n < 0$ の範囲は 0 になる.
  • 実用上は,式 (14.3) や 式 (14.25) で直接計算せずに,z 変換表を用いて変換・逆変換を求められることが多い.
  • 式 (12.15) のような線形差分方程式の両辺を z 変換すると,代数方程式に変換できる.これを適当に式変形し,再度両辺を z 逆変換することで,差分方程式の解が容易に計算できる.
  • あるいは,逆変換せずに $ z$ 領域のまま解析することでも,多くの情報を得ることができる.
    • 入力と出力の z 変換の比 $ Y(z)/X(z)$ を伝達関数と呼ぶ.伝達関数はインパルス応答の z 変換である.
    • 伝達関数を部分分数展開することで,インパルス応答を発散・減衰・振動などの基本要素に分解できる.
    • 伝達関数の分母 = 0 とした方程式 (特性方程式) の解の複素平面上での位置が,それらの基本要素の挙動に対応している.
    • 伝達関数で $ z = e^{j\omega}$ と置き換えると周波数応答が得られる.

やる夫
ほとんど前回のコピペじゃないかお.

やらない夫
見比べながら理解しておくといい.いろいろ捗るぞ.

swk(at)ic.is.tohoku.ac.jp
2016.01.08