2

信号処理について(1):線形時不変システムと伝達関数

606
0
$$\newcommand{complex}[0]{\mathbb{C}} \newcommand{delay}[0]{\operatorname{\mathrm{D}}} \newcommand{dft}[0]{\operatorname{DFT}} \newcommand{dtft}[0]{\operatorname{DTFT}} \newcommand{pqty}[1]{\left(#1\right)} \newcommand{sys}[0]{\operatorname{\mathcal{L}}} \newcommand{then}[0]{\Rightarrow} \newcommand{zahl}[0]{\mathbb{Z}} \newcommand{zt}[0]{\operatorname{\mathcal{Z}}} $$

はじめに

初めに,これから扱う対象を明確にします.この記事で扱う対象は「信号」と「システム」,特に,関数$x \colon\ \zahl \to \complex$で表される離散時間の信号と,それに変形を加えるシステムです.

例として,マイクで声を録音することを考えましょう.マイクにより,音は電圧の時間変化に変換されます.これは時間的に連続な信号ですが,計算機で扱うために一定周期で値を記録(標本化)することで,離散時間の信号が得られます.

録音を始めてから,最初に得られたサンプルを$x[0]$とします.同様に,1つ目のサンプルを$x[1]$,2つ目のサンプルを$x[2]$,というふうにして,$n > 0$について$x[n]$を定義します.

ここで,ボイスチェンジャーなどの音声を加工する機器について考えます.ボイスチェンジャーは,信号$x$を加工後の信号$y$に写す写像として表現できます.広くこういうものを指してシステムといいます.

この例では$n < 0$のとき$x[n] = 0$としますが,一般には$n$が負のとき$x[n]$の値を$0$以外で定義することもあります.たとえば,録音済みの音声を加工するときは時刻$t$において既に$x[t-1]$以前の信号が分かっているので,ここを時刻$0$とすれば$x[-1]$が定義されます.

用語の定義

初めに,いくつかの用語を定義しておきます.

離散デルタ関数

離散デルタ関数

次の式で定義される関数$\delta \colon\ \zahl \to \{ 0, 1 \}$を離散デルタ関数という.
$$ \delta[n] = \begin{cases} 1 & n = 0 \\ 0 & n \neq 0 \end{cases} $$

遅延作用素

遅延作用素

任意の信号$x$に対して,時間を$1$だけ遅らせた信号を与える作用素$\delay$を遅延作用素という.言い換えると,$\delay x$は次の関係がすべての$n$で成り立つような信号である.
$$ (\delay x)[n] = x[n-1] $$

遅延作用素の逆は時間を$1$だけ進めることに注意してください.式で書くと(すべての$n$について)次の通りです.
$$ (\delay^{-1} x)[n] = x[n+1] $$

また,信号$x$に遅延作用素を$k$回作用させた信号を$\delay^k x$と書くことにします. たとえば,$k = 2$のときは
$$ (\delay^2 x)[n] = x[n-2] $$
です.2つを組み合わせて,$k < 0$のときは$\delay^k = (\delay^{-k})^{-1}$とします.

まとめると,$k \in \zahl$に対して,$\delay^k$は信号の時間を時間を$-k$だけ進める作用素です.

線形時不変システム

システムというとあまりに広いので,普通はシステムの中でも比較的扱いやすいものについて考察します.この記事では特に,次で定義される線形時不変システムについて考察します.

線形時不変システム

システム$\sys$が線形時不変システムであるとは,任意の入力$x$と定数$s,t$に対して,$\sys$が次の性質を持つことをいう.

  • (線形性)$\sys (sx + ty) = s \sys x + t \sys y$
  • (時不変性)$\sys \delay x = \delay \sys x$

線形時不変システムは,現実のシステムを近似するのによく用いられます.その理由の1つは,次に述べる定理により性質を解析しやすいためです.

線形時不変システムとインパルス応答の関係

$\sys$をシステム,$x$を信号とする.$\sys$が線形時不変システムなら,$\sys x$$\sys$のインパルス応答$h = \sys \delta$$x$から一意に定まる.

まず,信号を遅延作用素と離散デルタ関数を使った形に書き換えておく.任意の信号$x$と整数$t,n$について
$$ x[n] (\delay^n \delta)[t] = x[n] \delta [t-n] = \begin{cases} x[n] & t = n \\ 0 & t \neq n \\ \end{cases} $$
が成り立つので,信号$x$は次のように書き表せる.
$$ x = \sum_{n=-\infty}^\infty x[n] (\delay^n \delta) $$

また,$\sys$に線形時不変性を課しているので
$$ \sys x = \sys \sum_{n=-\infty}^\infty x[n] (\delay^n \delta) = \sum_{n=-\infty}^\infty x[n] \delay^n (\sys \delta) = \sum_{n=-\infty}^\infty x[n] \delay^n h $$
と計算できる.明らかに,右辺は$h, x$に対して一意である.

ここで,証明の最後に出てきた
$$ \sys x = \sum_{n=-\infty}^\infty x[n] \delay^n h $$
という式について少し考察しましょう.時刻$n$における$\sys$の出力$(\sys x)[n]$は次のようになります.
$$ (\sys x)[n] = \pqty{\sum_{k=-\infty}^\infty x[k] \delay^k h}[n] = \sum_{k=-\infty}^\infty x[k] h[n - k] $$

この右辺を$x, h$の「畳み込み」といいます.より正確に,畳み込みの定義を述べると以下の通りです.

畳み込み

信号$a, b$に対して,次の式で定義される信号$a * b$$a, b$の畳み込みという.
$$ (a * b)[n] = \sum_{k=-\infty}^\infty a[k] b[n - k] $$

これにより先述の定理を言い換えると,$\sys$が線形時不変システムなら常に式
$$ \sys x = x * h = x * (\sys \delta) $$
が成り立ちます.

z変換と伝達関数

前節によれば,線形時不変システムは畳み込みによって表現できるのでした.ここでは,システムを畳み込みによる表記よりも解析しやすい形で書くために,z変換という操作を導入します.

z変換

信号$x$を次の規則で複素関数$\zt x$に写す写像,および結果$\zt x$をz変換という.
$$ (\zt x)(z) = \sum_{n=-\infty}^\infty x[n] z^{-n} $$

z変換が持つ重要な性質として,畳み込みを積に変換するというものがあります.

z変換と畳み込みの関係

任意の信号$a, b$に対して,$\complex$上の適切な範囲では次の式が成り立つ.
$$ \zt (a * b) = (\zt a)(\zt b) $$

$$ \begin{aligned} {[\zt (a * b)]}(z) &= \sum_{n=-\infty}^\infty (a * b)[n] z^{-n} \\ &= \sum_{n=-\infty}^\infty \pqty{\sum_{k=-\infty}^\infty a[k] b[n - k]} z^{-n} \\ &= \sum_{n=-\infty}^\infty \sum_{k=-\infty}^\infty a[k] z^{-k} b[n - k] z^{-(n-k)} \end{aligned} $$
である.ここで(厳密には,交換可能であることは自明ではないが)和の順序を交換して
$$ \sum_{k=-\infty}^\infty \sum_{n=-\infty}^\infty a[k] z^{-k} b[n - k] z^{-(n-k)} $$
を計算すると
$$ \sum_{k=-\infty}^\infty a[k] z^{-k} \sum_{n=-\infty}^\infty b[n - k] z^{-(n-k)} = \sum_{k=-\infty}^\infty a[k] z^{-k} (\zt b)(z) = [(\zt b)(z)][(\zt a)(z)] $$
であり,$\zt (a * b) = (\zt a)(\zt b)$が確認できた.

この定理により,$\sys$が線形時不変システムなら
$$ \zt (\sys x) = \zt (x * \sys \delta) = (\zt x)[\zt (\sys \delta)] $$
が成り立ちます.よって,$(\zt x)(z) \neq 0$なら
$$ \frac{[\zt (\sys x)](z)}{(\zt x)(z)} = [\zt (\sys \delta)](z) $$
という関係が成り立ちます.左辺を$H(z)$とおき$H$を定義すると,$H$
$$ [\zt (\sys x)](z) = H(z) (\zt x)(z) $$
という関係を満たす関数です.この関数$H$を伝達関数といいます.

伝達関数

線形時不変システム$\sys$に対し,入力のz変換と出力のz変換の比
$$ H(z) = \frac{[\zt (\sys x)](z)}{(\zt x)(z)} $$
で定義される関数$H$を伝達関数という.$H$は入力によらず$\zt (\sys \delta)$に等しい.

補足:厳密でない証明のフォロー

線形時不変システムとインパルス応答の関係

この証明について少し補足します.まず
$$ \sys \delay^{-1} x = \delay^{-1} \sys x $$
であることを確認します.時不変性の式
$$ \sys \delay x = \delay \sys x $$
について,入力を$\delay^{-1} x$に変えて
$$ \sys \delay \delay^{-1} x = \delay \sys \delay^{-1} x \quad \therefore \sys x = \delay \sys \delay^{-1} x $$
さらに,両辺に$\delay^{-1}$を作用させると
$$ \delay^{-1} \sys x = \sys \delay^{-1} x $$
が得られます.2つの式
$$ \delay \sys x = \sys \delay x \quad \delay^{-1} \sys x = \sys \delay^{-1} x $$
を繰り返し用いれば,すべての整数$n$について
$$ \delay^n \sys x = \sys \delay^n x $$
であることが確認できます.

z変換と畳み込みの関係

和の交換は本来自明ではないので,この証明はあくまでもイメージと言うべきでしょう.厳密に示したい場合,$n$が負になる項がすべて$0$であると仮定すれば整級数の問題に帰着できます.具体的には,$z^{-1}$$z$と置きなおして,$z$が収束円の内側にあるときを考えれば,級数が絶対収束することから確認できます.この場合,z変換の収束領域はある円の外側(半径が$\infty$になることもある)なので,たまたま境界上にあるときなんかを除けば,$\zt a$$\zt b$がともに有限な値を持つ範囲であれば成り立ちます.

一見仮定が人工的にも見えますが,伝達関数について考える場合,この仮定はシステムに因果性(後述)を課すということです.そんなに無茶な仮定でもありません.実際,正冪の項が無いz変換(片側z変換)でz変換を定義することもあります.

投稿日:2021118
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

数学、特に応用数学が好きです。Mathlogでは主に、数学とプログラミングを絡めたようなことを書けたらいいなと思っています。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中