コンピュータやデジタル機器は連続的な信号を直接扱えません。マイクから入る音声も、センサーからの温度データも、全て一定時間間隔でサンプリングされた離散時間信号 $x[0], x[1], x[2], \ldots$ として処理されます。ラプラス変換が連続時間システムの解析ツールであるのと同様に、離散時間システムの解析ツールがz変換です。
日常的なアナロジーで考えてみましょう。映画は毎秒24フレームの静止画を高速に切り替えて「連続」に見せていますが、実際には離散的な画像の列です。音楽CDは毎秒44,100回のサンプルで音声を記録しています。現代のデジタル世界では、連続信号はほぼすべてサンプリングされて離散信号になります。この離散信号を数学的に扱うために開発されたのがz変換です。
z変換はラプラス変換の「離散版」であり、連続時間における微分方程式が離散時間では差分方程式に、ラプラス変換がz変換に対応します。連続時間のラプラス変換で「微分が $s$ の乗算」になったように、z変換では「1サンプルの遅延(シフト)が $z^{-1}$ の乗算」になります。デジタル信号処理の全ての理論はz変換の上に構築されています。
z変換を理解すると、以下のような応用が開けます。
- ディジタル信号処理: FIRフィルタ・IIRフィルタの設計と解析。音声のノイズ除去や音楽イコライザの設計に使われます
- 制御工学: ディジタル制御器の設計(離散時間伝達関数)。マイコンやFPGAで実装する制御器の理論的基盤です
- 通信: 適応フィルタ、イコライザの理論。携帯電話の通信品質を支える技術です
- 画像処理: 2次元z変換による画像フィルタリング。ぼかしやエッジ検出の数学的記述に利用されます
本記事の内容
- z変換の定義とラプラス変換との対応
- 基本信号のz変換表
- z変換の基本性質(シフト、たたみ込み)
- 収束領域(ROC)
- 逆z変換と離散時間システム
- Pythonによる実装と可視化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- ラプラス変換の定義と基本性質を解説する — 連続時間のラプラス変換
z変換とは
ラプラス変換から z変換へ
連続時間信号 $x(t)$ をサンプリング周期 $T$ でサンプリングすると、離散時間信号 $x[n] = x(nT)$ が得られます。ラプラス変換 $X(s) = \int_0^\infty x(t)e^{-st}dt$ の離散版を導出してみましょう。
連続時間のラプラス変換の積分を、サンプリング点での和で近似することを考えます。積分 $\int_0^\infty$ を区分求積法で $\sum_{n=0}^{\infty}(\cdots) \cdot T$ に置き換えると
$$ X(s) \approx \sum_{n=0}^{\infty} x(nT) e^{-s(nT)} \cdot T = T \sum_{n=0}^{\infty} x[n] (e^{sT})^{-n} $$
ここで $z = e^{sT}$ と変数変換を行います。すると $(e^{sT})^{-n} = z^{-n}$ と書けるので、定数倍 $T$ を吸収して
$$ X(z) = \sum_{n=0}^{\infty} x[n] z^{-n} $$
これがz変換の定義です。$z = e^{sT}$ という対応は、ラプラス変換の $s$ 平面からz変換の $z$ 平面への写像です。
この写像の性質を確認しておきましょう。$s$ 平面の虚軸上の点 $s = j\omega$ は $z = e^{j\omega T}$ に対応します。$|e^{j\omega T}| = 1$ なので、$s$ 平面の虚軸は $z$ 平面の単位円 $|z| = 1$ に写ります。同様に、$s$ 平面の左半平面($\text{Re}(s) < 0$、安定領域)は $z$ 平面の単位円の内部($|z| < 1$)に、$s$ 平面の右半平面($\text{Re}(s) > 0$、不安定領域)は単位円の外部($|z| > 1$)に対応します。つまり、安定性の判定基準が「左半平面」から「単位円内部」に変わるだけで、本質的な考え方は同じです。
数学的定義
離散時間信号 $x[n]$($n = 0, 1, 2, \ldots$)の片側z変換は
$$ \begin{equation} X(z) = \mathcal{Z}\{x[n]\} = \sum_{n=0}^{\infty} x[n] z^{-n} \end{equation} $$
ここで $z$ は複素変数です。この級数がべき級数($z^{-1}$ のべき級数)であることに注目してください。べき級数の収束理論がそのまま適用できます。
直感的には、z変換は信号 $x[n]$ の各サンプルに「重み」$z^{-n}$ を掛けて足し合わせる操作です。$z$ の値を変えることで異なる重み付けを行い、信号のさまざまな特徴を抽出できます。特に $z = e^{j\omega}$(単位円上)を代入すると、$z^{-n} = e^{-j\omega n}$ となり、これは離散時間フーリエ変換(DTFT)そのものです。つまり、z変換はDTFTの一般化でもあります。
ラプラス変換との対応表
| 連続時間 | 離散時間 |
|---|---|
| $x(t)$ | $x[n]$ |
| ラプラス変換 $X(s)$ | z変換 $X(z)$ |
| 微分 $x'(t)$ | シフト $x[n-1]$ |
| $s$ の乗算 | $z$ の乗算 |
| $s$ 平面の虚軸 | $z$ 平面の単位円 |
| $\text{Re}(s) < 0$: 安定 | $|z| < 1$: 安定 |
z変換の定義を理解したところで、具体的な信号のz変換を計算してみましょう。
基本信号のz変換
単位インパルス $\delta[n]$
$\delta[n] = \begin{cases} 1 & n = 0 \\ 0 & n \neq 0 \end{cases}$ のz変換:
$$ \mathcal{Z}\{\delta[n]\} = \sum_{n=0}^{\infty} \delta[n] z^{-n} = 1 $$
単位ステップ $u[n]$
$u[n] = \begin{cases} 1 & n \geq 0 \\ 0 & n < 0 \end{cases}$ のz変換を定義に従って計算します。
$$ \mathcal{Z}\{u[n]\} = \sum_{n=0}^{\infty} u[n] z^{-n} = \sum_{n=0}^{\infty} 1 \cdot z^{-n} = 1 + z^{-1} + z^{-2} + z^{-3} + \cdots $$
これは初項1、公比 $z^{-1}$ の等比級数です。等比級数の和の公式 $\sum_{n=0}^{\infty} r^n = \frac{1}{1-r}$($|r| < 1$のとき)を $r = z^{-1}$ として適用すると
$$ = \frac{1}{1 – z^{-1}} = \frac{z}{z – 1} \quad (|z| > 1) $$
収束条件は $|z^{-1}| < 1$ すなわち $|z| > 1$ です。ラプラス変換で $\mathcal{L}\{u(t)\} = \frac{1}{s}$ であったのと対比すると、連続時間の $\frac{1}{s}$ が離散時間では $\frac{z}{z-1}$ に対応することがわかります。
指数信号 $a^n u[n]$
$a$ を定数として、指数信号 $x[n] = a^n u[n]$ のz変換を求めます。
$$ \mathcal{Z}\{a^n u[n]\} = \sum_{n=0}^{\infty} a^n z^{-n} = \sum_{n=0}^{\infty} \left(\frac{a}{z}\right)^n $$
これも等比級数であり、公比 $a/z$ の絶対値が1未満のとき収束します。
$$ = \frac{1}{1 – az^{-1}} = \frac{z}{z – a} \quad (|z| > |a|) $$
この結果は非常に重要です。ラプラス変換で $\mathcal{L}\{e^{at}\} = \frac{1}{s-a}$ であったのと対比すると、連続時間の $e^{at}$ は離散時間の $a^n$ に、$s – a$ は $z – a$ に対応しています。$|a| < 1$ なら $a^n \to 0$(減衰信号)、$|a| > 1$ なら $a^n \to \infty$(発散信号)、$|a| = 1$ なら $|a^n| = 1$(持続信号)です。
z変換表
| $x[n]$($n \geq 0$) | $X(z)$ | ROC |
|---|---|---|
| $\delta[n]$ | $1$ | 全 $z$ |
| $u[n]$ | $\frac{z}{z-1}$ | $|z| > 1$ |
| $a^n u[n]$ | $\frac{z}{z-a}$ | $|z| > |a|$ |
| $n u[n]$ | $\frac{z}{(z-1)^2}$ | $|z| > 1$ |
| $n a^n u[n]$ | $\frac{az}{(z-a)^2}$ | $|z| > |a|$ |
| $\cos(\omega_0 n) u[n]$ | $\frac{z(z-\cos\omega_0)}{z^2 – 2z\cos\omega_0 + 1}$ | $|z| > 1$ |
| $\sin(\omega_0 n) u[n]$ | $\frac{z\sin\omega_0}{z^2 – 2z\cos\omega_0 + 1}$ | $|z| > 1$ |
基本信号のz変換表を手に入れたところで、z変換の重要な性質を見ていきましょう。これらの性質は、ラプラス変換の性質と見事に対応しています。
z変換の基本性質
線形性
$$ \mathcal{Z}\{ax[n] + by[n]\} = aX(z) + bY(z) $$
これはz変換の定義が線形和であることから直接導かれます。定数倍と加法が保存されるため、複雑な信号を基本信号の線形結合として分解し、各成分のz変換を求めてから足し合わせることができます。
時間シフト(遅延)
$$ \begin{equation} \mathcal{Z}\{x[n-1]\} = z^{-1}X(z) + x[-1] \end{equation} $$
この性質はz変換の最も重要な性質です。証明は定義から直接得られます。$\mathcal{Z}\{x[n-1]\} = \sum_{n=0}^{\infty} x[n-1]z^{-n}$ で $m = n – 1$ と置換すると $\sum_{m=-1}^{\infty} x[m]z^{-(m+1)} = z^{-1}\sum_{m=-1}^{\infty} x[m]z^{-m} = z^{-1}(x[-1] + X(z))$ です。
片側z変換で $x[n] = 0$($n < 0$)の場合、単に $z^{-1}X(z)$ です。$z^{-1}$ は「1サンプル遅延」を表し、これがデジタルフィルタの基本要素です。ラプラス変換で微分 $\frac{d}{dt}$ が $s$ 倍に対応したのと同様に、z変換では1サンプル遅延が $z^{-1}$ 倍に対応します。一般に $k$ サンプルの遅延は $z^{-k}$ 倍に対応します。
たたみ込み
$$ \begin{equation} \mathcal{Z}\{(x * y)[n]\} = X(z) \cdot Y(z) \end{equation} $$
ここで $(x * y)[n] = \sum_{k=0}^{n} x[k] y[n-k]$ は離散たたみ込みです。ラプラス変換と同様に、時間領域のたたみ込みがz領域の積に変換されます。この性質のおかげで、フィルタリング(たたみ込み演算)の解析がz領域での代数的な積の操作に帰着します。
初期値定理と最終値定理
初期値: $x[0] = \lim_{z \to \infty} X(z)$
$z \to \infty$ のとき $z^{-n} \to 0$($n \geq 1$)なので、和の中で $n = 0$ の項だけが残り、$x[0]$ が得られます。
最終値: $\lim_{n \to \infty} x[n] = \lim_{z \to 1} (z-1)X(z)$($(z-1)X(z)$ の全ての極が単位円内にある場合)
最終値定理はラプラス変換の $\lim_{t \to \infty} f(t) = \lim_{s \to 0} sF(s)$ の離散版です。連続時間で $s \to 0$ だったものが、$z = e^{sT}$ の対応により $z \to 1$ になっています。制御工学ではディジタル制御系の定常偏差の計算に頻繁に使われます。
収束領域(ROC)
z変換の定義 $X(z) = \sum_{n=0}^{\infty} x[n] z^{-n}$ はべき級数であり、$z$ の値によっては発散する可能性があります。この級数が収束する $z$ の範囲を収束領域(Region of Convergence, ROC)と呼びます。
ROCの基本的な性質
片側z変換(因果信号)の場合、ROCは常に $|z| > R$ という円の外部の形をとります。ここで $R$ は収束半径です。
例えば、$x[n] = a^n u[n]$ のz変換 $X(z) = \frac{z}{z-a}$ のROCは $|z| > |a|$ でした。これは級数 $\sum (a/z)^n$ の収束条件 $|a/z| < 1$ から導かれます。
ROCと安定性の関係
離散時間システムがBIBO安定(有界入力有界出力安定)であるための条件は、インパルス応答 $h[n]$ が絶対可和であること、すなわち $\sum_{n=0}^{\infty} |h[n]| < \infty$ です。これはz変換の言葉では、$H(z)$ のROCが単位円を含むことと等価です。
因果システム($h[n] = 0$ for $n < 0$)の場合、ROCは $|z| > R$ の形なので、単位円がROCに含まれるためには $R < 1$ でなければなりません。つまり、$H(z)$ の全ての極の絶対値が1未満(極が単位円の内部にある)ことが安定性の条件です。
具体例で理解するROC
信号 $x[n] = (0.5)^n u[n] + (0.8)^n u[n]$ を考えます。z変換は
$$ X(z) = \frac{z}{z – 0.5} + \frac{z}{z – 0.8} $$
第1項のROCは $|z| > 0.5$、第2項のROCは $|z| > 0.8$ です。両方が同時に収束するのは、両方のROCの共通部分、すなわち $|z| > 0.8$ です。一般に、複数の項の和のROCは各項のROCの共通部分になります。
z変換の性質とROCの概念を理解したところで、離散時間システムの解析に応用してみましょう。
離散時間システムと伝達関数
差分方程式
離散時間の線形時不変システムは差分方程式で記述されます。連続時間では微分方程式 $a_0 y + a_1 y’ + a_2 y” + \cdots = b_0 x + b_1 x’ + \cdots$ でシステムを記述しましたが、離散時間では微分が差分(シフト)に置き換わります。
$$ \sum_{k=0}^{N} a_k y[n-k] = \sum_{k=0}^{M} b_k x[n-k] $$
展開すると $a_0 y[n] + a_1 y[n-1] + \cdots + a_N y[n-N] = b_0 x[n] + b_1 x[n-1] + \cdots + b_M x[n-M]$ です。
z変換の時間シフト性質を適用すると、$y[n-k] \leftrightarrow z^{-k}Y(z)$、$x[n-k] \leftrightarrow z^{-k}X(z)$(初期値がすべて0の場合)となるので
$$ \left(\sum_{k=0}^{N} a_k z^{-k}\right) Y(z) = \left(\sum_{k=0}^{M} b_k z^{-k}\right) X(z) $$
これは $Y(z)$ と $X(z)$ の代数方程式であり、ラプラス変換法と同様に、差分方程式が代数方程式に変換されました。
伝達関数は入出力のz変換の比として定義されます。
$$ \begin{equation} H(z) = \frac{Y(z)}{X(z)} = \frac{\sum_{k=0}^{M} b_k z^{-k}}{\sum_{k=0}^{N} a_k z^{-k}} = \frac{b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}}{a_0 + a_1 z^{-1} + \cdots + a_N z^{-N}} $$
伝達関数 $H(z)$ はシステムの入出力特性を完全に記述します。分子の零点がゼロゲインの周波数を、分母の極がピークゲインの周波数を決定します。$M < N$(分子次数 < 分母次数)の場合を厳密にプロパーなシステムと呼び、物理的に実現可能なシステムの多くがこの条件を満たします。
安定性
離散時間システムが安定であるための条件は、伝達関数の全ての極が単位円の内部 $|z| < 1$ にあることです。これはラプラス変換での「全ての極が左半平面にある」条件に対応します。
差分方程式の解法例
z変換を使って差分方程式を解く具体例を示します。これはラプラス変換による微分方程式の解法の離散版です。
問題: $y[n] – 0.5y[n-1] = \delta[n]$, $y[-1] = 0$
ステップ1: 両辺をz変換します。$\mathcal{Z}\{\delta[n]\} = 1$、$\mathcal{Z}\{y[n-1]\} = z^{-1}Y(z)$($y[-1] = 0$)を代入すると
$$ Y(z) – 0.5z^{-1}Y(z) = 1 $$
ステップ2: $Y(z)$ についてまとめると
$$ (1 – 0.5z^{-1})Y(z) = 1 $$
$$ Y(z) = \frac{1}{1 – 0.5z^{-1}} = \frac{z}{z – 0.5} $$
ステップ3: z変換表から $\frac{z}{z – a} \leftrightarrow a^n u[n]$ を $a = 0.5$ で適用すると
$$ y[n] = (0.5)^n u[n] $$
検算: $y[0] = 1$, $y[1] = 0.5$, $y[2] = 0.25$ です。$y[1] – 0.5y[0] = 0.5 – 0.5 = 0 = \delta[1]$、$y[0] – 0.5y[-1] = 1 – 0 = 1 = \delta[0]$ で確かに元の差分方程式を満たしています。
この解はインパルス応答 $h[n] = (0.5)^n u[n]$ そのものです。極 $z = 0.5$ が単位円内にあるため、$h[n]$ は減衰して安定です。もし極が $z = 1.5$ であれば $h[n] = (1.5)^n$ となり発散してしまいます。
理論を一通り学んだところで、Pythonで実装して理論の正しさを確認してみましょう。
Pythonでの実装と可視化
z変換の基本と離散システム
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
fig, axes = plt.subplots(1, 3, figsize=(16, 5))
# (a) z平面の極零プロット
ax = axes[0]
# IIRフィルタ: H(z) = (1 - 0.5z^{-1}) / (1 - 0.8z^{-1} + 0.6z^{-2})
b = [1, -0.5]
a = [1, -0.8, 0.6]
# 極と零点
zeros = np.roots(b)
poles = np.roots(a)
# 単位円
theta = np.linspace(0, 2*np.pi, 200)
ax.plot(np.cos(theta), np.sin(theta), 'k-', linewidth=1, alpha=0.5)
ax.plot(np.real(zeros), np.imag(zeros), 'bo', markersize=10,
label=f'Zeros: {zeros}')
ax.plot(np.real(poles), np.imag(poles), 'rx', markersize=12, markeredgewidth=2,
label=f'Poles')
for p in poles:
ax.annotate(f'{p:.2f}', xy=(np.real(p), np.imag(p)),
xytext=(10, 10), textcoords='offset points', fontsize=9)
ax.set_xlabel('Re(z)', fontsize=12)
ax.set_ylabel('Im(z)', fontsize=12)
ax.set_title('Pole-Zero Plot in z-plane', fontsize=13)
ax.set_aspect('equal')
ax.legend(fontsize=9)
ax.grid(True, alpha=0.3)
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
# (b) 周波数応答
ax = axes[1]
w, h = signal.freqz(b, a, worN=1024)
freq = w / np.pi # 正規化周波数
ax.plot(freq, 20 * np.log10(np.abs(h)), 'b-', linewidth=2)
ax.set_xlabel('Normalized frequency ($\\times \\pi$ rad/sample)', fontsize=11)
ax.set_ylabel('Magnitude (dB)', fontsize=12)
ax.set_title('Frequency Response', fontsize=13)
ax.grid(True, alpha=0.3)
# (c) インパルス応答
ax = axes[2]
n_samples = 30
impulse = np.zeros(n_samples)
impulse[0] = 1
h_imp = signal.lfilter(b, a, impulse)
ax.stem(range(n_samples), h_imp, linefmt='b-', markerfmt='bo', basefmt='gray',
label='h[n]')
ax.set_xlabel('n (sample)', fontsize=12)
ax.set_ylabel('h[n]', fontsize=12)
ax.set_title('Impulse Response', fontsize=13)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('z_transform.png', dpi=150, bbox_inches='tight')
plt.show()
# 安定性の判定
print(f"極: {poles}")
print(f"極の絶対値: {np.abs(poles)}")
print(f"安定(全ての極が単位円内): {all(np.abs(poles) < 1)}")
このグラフから、z変換に基づくシステム解析の基本が確認できます。
-
左図(極零プロット): z平面上に極(赤い×印)と零点(青い丸)が描かれています。極が全て単位円(黒い円)の内部にあるため、このシステムは安定です。極が単位円に近いほどインパルス応答の減衰が遅くなります。極の位置が $0.4 \pm 0.64j$ 付近にあり、$|z| \approx 0.77$ なので、インパルス応答は1サンプルごとに約0.77倍に減衰します。
-
中央図(周波数応答): 正規化周波数に対するゲイン(dB)を示しています。零点の位置が周波数応答の谷(ノッチ)を、極の位置がピーク(共振)を形成しています。極の偏角に対応する正規化周波数付近でゲインが最大になり、零点の偏角に対応する周波数付近でゲインが最小になるという対応関係が読み取れます。
-
右図(インパルス応答): $h[n]$ は振動しながら減衰しており、極が複素数対であることに対応しています。減衰の速さは極の絶対値($\approx 0.77$)で決まります。振動の角周波数は極の偏角で決まり、およそ $\arg(0.4 + 0.64j) \approx 1.01$ rad/sample です。20サンプル程度でインパルス応答はほぼゼロに収束しており、有限時間で過渡状態が終了するシステムであることがわかります。
FIRフィルタとIIRフィルタの比較
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# FIRフィルタ(移動平均: 5点)
N_fir = 5
b_fir = np.ones(N_fir) / N_fir
a_fir = [1]
# IIRフィルタ(1次ローパス: y[n] = 0.2*x[n] + 0.8*y[n-1])
b_iir = [0.2]
a_iir = [1, -0.8]
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# (a) 周波数応答の比較
ax = axes[0]
w_fir, h_fir = signal.freqz(b_fir, a_fir, worN=1024)
w_iir, h_iir = signal.freqz(b_iir, a_iir, worN=1024)
ax.plot(w_fir/np.pi, 20*np.log10(np.abs(h_fir) + 1e-10), 'b-',
linewidth=2, label=f'FIR (moving avg, N={N_fir})')
ax.plot(w_iir/np.pi, 20*np.log10(np.abs(h_iir) + 1e-10), 'r-',
linewidth=2, label='IIR (1st order)')
ax.set_xlabel('Normalized frequency ($\\times \\pi$ rad/sample)', fontsize=11)
ax.set_ylabel('Magnitude (dB)', fontsize=12)
ax.set_title('FIR vs IIR Filter', fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_ylim(-40, 5)
# (b) テスト信号のフィルタリング
ax = axes[1]
n = np.arange(100)
# 低周波 + 高周波ノイズ
x = np.sin(0.1 * np.pi * n) + 0.5 * np.sin(0.9 * np.pi * n)
y_fir = signal.lfilter(b_fir, a_fir, x)
y_iir = signal.lfilter(b_iir, a_iir, x)
ax.plot(n, x, 'gray', linewidth=0.8, alpha=0.7, label='Input')
ax.plot(n, y_fir, 'b-', linewidth=1.5, label='FIR output')
ax.plot(n, y_iir, 'r-', linewidth=1.5, label='IIR output')
ax.set_xlabel('n', fontsize=12)
ax.set_ylabel('Amplitude', fontsize=12)
ax.set_title('Filtering Example', fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('z_transform_filters.png', dpi=150, bbox_inches='tight')
plt.show()
このグラフから、FIRとIIRフィルタの違いが明確に理解できます。
左図の周波数応答では、FIR(移動平均、青線)は周期的なノッチが特徴的です。5点移動平均の場合、$H(z) = \frac{1}{5}(1 + z^{-1} + z^{-2} + z^{-3} + z^{-4})$ で、零点が等間隔に単位円上に配置されるため、ノッチが周期的に現れます。IIR(1次ローパス、赤線)は滑らかなロールオフを示しています。$H(z) = \frac{0.2}{1 – 0.8z^{-1}}$ は極が $z = 0.8$(実軸上で単位円に近い位置)にあるため、低周波でのゲインが高く、高周波に向けて滑らかに減衰します。
右図のフィルタリング結果を見ると、入力信号(灰色)は低周波成分 $\sin(0.1\pi n)$ と高周波ノイズ $0.5\sin(0.9\pi n)$ の合成波です。FIR出力(青線)とIIR出力(赤線)のどちらも高周波ノイズを効果的に除去しています。IIRフィルタの方が少ない係数(分子1つ、分母1つの計2係数)でFIRフィルタ(5係数)と同等以上のフィルタリング性能を発揮していることがわかります。ただし、IIRフィルタは位相特性が非線形であるため、信号の波形が歪む可能性があります。用途に応じてFIRとIIRを使い分けることが重要です。
ラプラス変換とz変換の包括的な対応
本記事の最後に、ラプラス変換とz変換の対応関係を包括的に整理しておきます。この対応を理解しておくと、連続時間で学んだ知識をそのまま離散時間の問題に転用できます。
| 概念 | ラプラス変換(連続時間) | z変換(離散時間) |
|---|---|---|
| 変換定義 | $X(s) = \int_0^{\infty} x(t) e^{-st} dt$ | $X(z) = \sum_{n=0}^{\infty} x[n] z^{-n}$ |
| 変数の対応 | $s = \sigma + j\omega$ | $z = e^{sT}$($T$: サンプリング周期) |
| 安定領域 | $s$ 平面の左半平面($\text{Re}(s) < 0$) | $z$ 平面の単位円内部($|z| < 1$) |
| 周波数解析の軸 | $s$ 平面の虚軸($s = j\omega$) | $z$ 平面の単位円($z = e^{j\omega T}$) |
| 微分/シフト | $\mathcal{L}\{x'(t)\} = sX(s) – x(0)$ | $\mathcal{Z}\{x[n-1]\} = z^{-1}X(z)$ |
| たたみ込み | $\mathcal{L}\{(f*g)(t)\} = F(s)G(s)$ | $\mathcal{Z}\{(x*y)[n]\} = X(z)Y(z)$ |
| 指数関数 | $\mathcal{L}\{e^{at}\} = \frac{1}{s-a}$ | $\mathcal{Z}\{a^n\} = \frac{z}{z-a}$ |
| 最終値定理 | $\lim_{s \to 0} sF(s)$ | $\lim_{z \to 1} (z-1)X(z)$ |
この対応表を見ると、z変換がラプラス変換の自然な離散化であることが明確にわかります。連続時間の理論をマスターしていれば、z変換の理論を学ぶ際に多くの概念をそのまま移植できます。逆に、z変換の方を先に学んでからラプラス変換に進むことも可能です。
一つ注意すべき点があります。連続時間から離散時間への変換(連続フィルタのデジタル化)を行う場合、単純に $s = \frac{z-1}{T}$ とするのは近似に過ぎず、高周波領域で大きな誤差が生じます。実用的には双一次変換 $s = \frac{2}{T} \cdot \frac{z-1}{z+1}$ やインパルス不変法が用いられます。これらの手法はディジタルフィルタ設計の重要なトピックです。
まとめ
本記事では、z変換の定義と離散時間システムへの応用について解説しました。
- z変換 $X(z) = \sum x[n]z^{-n}$ はラプラス変換の離散版であり、$z = e^{sT}$ の対応がある
- 時間シフト $x[n-1] \leftrightarrow z^{-1}X(z)$ — $z^{-1}$ は1サンプル遅延を表す。ラプラス変換の「微分 → $s$ 倍」に対応する離散版
- たたみ込みはz領域で積に変換される(ラプラス変換と同様)
- 収束領域(ROC)はz変換が収束する $z$ の範囲であり、安定性判定の鍵となる
- 離散時間システムの安定性は、全ての極が単位円内 $|z| < 1$ にあることで判定。これはラプラス変換での「左半平面」条件の離散版
- FIRフィルタは有限インパルス応答(全ての極が $z = 0$)で常に安定、IIRフィルタは無限インパルス応答で極の位置によっては不安定になりうる
- 差分方程式はz変換により代数方程式に帰着され、体系的に解ける
次のステップとして、以下の記事も参考にしてください。
- ラプラス変換の定義と基本性質を解説する — 連続版との比較
- ラプラス変換による微分方程式の解法 — 連続版の微分方程式解法