2

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

665
0

はじめに

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

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

録音を始めてから,最初に得られたサンプルを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[t1]以前の信号が分かっているので,ここを時刻0とすればx[1]が定義されます.

用語の定義

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

離散デルタ関数

離散デルタ関数

次の式で定義される関数δ: Z{0,1}を離散デルタ関数という.
δ[n]={1n=00n0

遅延作用素

遅延作用素

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

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

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

まとめると,kZに対して,Dkは信号の時間を時間をkだけ進める作用素です.

線形時不変システム

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

線形時不変システム

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

  • (線形性)L(sx+ty)=sLx+tLy
  • (時不変性)LDx=DLx

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

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

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

まず,信号を遅延作用素と離散デルタ関数を使った形に書き換えておく.任意の信号xと整数t,nについて
x[n](Dnδ)[t]=x[n]δ[tn]={x[n]t=n0tn
が成り立つので,信号xは次のように書き表せる.
x=n=x[n](Dnδ)

また,Lに線形時不変性を課しているので
Lx=Ln=x[n](Dnδ)=n=x[n]Dn(Lδ)=n=x[n]Dnh
と計算できる.明らかに,右辺はh,xに対して一意である.

ここで,証明の最後に出てきた
Lx=n=x[n]Dnh
という式について少し考察しましょう.時刻nにおけるLの出力(Lx)[n]は次のようになります.
(Lx)[n]=(k=x[k]Dkh)[n]=k=x[k]h[nk]

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

畳み込み

信号a,bに対して,次の式で定義される信号aba,bの畳み込みという.
(ab)[n]=k=a[k]b[nk]

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

z変換と伝達関数

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

z変換

信号xを次の規則で複素関数Zxに写す写像,および結果Zxをz変換という.
(Zx)(z)=n=x[n]zn

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

z変換と畳み込みの関係

任意の信号a,bに対して,C上の適切な範囲では次の式が成り立つ.
Z(ab)=(Za)(Zb)

[Z(ab)](z)=n=(ab)[n]zn=n=(k=a[k]b[nk])zn=n=k=a[k]zkb[nk]z(nk)
である.ここで(厳密には,交換可能であることは自明ではないが)和の順序を交換して
k=n=a[k]zkb[nk]z(nk)
を計算すると
k=a[k]zkn=b[nk]z(nk)=k=a[k]zk(Zb)(z)=[(Zb)(z)][(Za)(z)]
であり,Z(ab)=(Za)(Zb)が確認できた.

この定理により,Lが線形時不変システムなら
Z(Lx)=Z(xLδ)=(Zx)[Z(Lδ)]
が成り立ちます.よって,(Zx)(z)0なら
[Z(Lx)](z)(Zx)(z)=[Z(Lδ)](z)
という関係が成り立ちます.左辺をH(z)とおきHを定義すると,H
[Z(Lx)](z)=H(z)(Zx)(z)
という関係を満たす関数です.この関数Hを伝達関数といいます.

伝達関数

線形時不変システムLに対し,入力のz変換と出力のz変換の比
H(z)=[Z(Lx)](z)(Zx)(z)
で定義される関数Hを伝達関数という.Hは入力によらずZ(Lδ)に等しい.

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

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

この証明について少し補足します.まず
LD1x=D1Lx
であることを確認します.時不変性の式
LDx=DLx
について,入力をD1xに変えて
LDD1x=DLD1xLx=DLD1x
さらに,両辺にD1を作用させると
D1Lx=LD1x
が得られます.2つの式
DLx=LDxD1Lx=LD1x
を繰り返し用いれば,すべての整数nについて
DnLx=LDnx
であることが確認できます.

z変換と畳み込みの関係

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

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

投稿日:2021118
OptHub AI Competition

この記事を高評価した人

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

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

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

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

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 用語の定義
  3. 線形時不変システム
  4. z変換と伝達関数
  5. 補足:厳密でない証明のフォロー