畳み込み
出典: フリー百科事典『ウィキペディア(Wikipedia)』
畳み込み(たたみこみ、convolution)とは関数fを平行移動しながら関数gを重ね足し合わせる二項演算である。畳み込み積分・合成積・重畳積分とも呼ばれる。
目次 |
[編集] 定義
関数f,gの畳み込みはf*gと書き、以下のように定義される:
積分範囲は関数の定義域に依存する。通常は区間で定義される関数を扱うことが多いので、積分範囲はで計算されることが多い。一方f,gが有限区間でしか定義されない場合には、g(t - τ)が定義域内に入るようにf,gを周期関数とみなして計算される。この周期関数とみなして畳み込みをすることを循環畳み込み(じゅんかんたたみこみ、cyclic convolution)と呼ぶ。
離散値で定義された関数に対する畳み込みは、積分のかわりに総和を使って同様に定義される:
総和の範囲も関数の定義域に依存し、関数が有限区間でしか定義されていない場合は周期関数とみなして畳み込み演算が行なわれる。また、離散系の場合、定義域外の値を0と定義し直した関数での畳み込みをよく行なわれる。これを線形畳み込み(せんけいたたみこみ、linear convolution)と呼ぶ。なお離散系の場合は積分を使わずに総和を使うので、畳み込み積分・重畳積分とは呼ばず、畳み込み和・重畳和と呼ぶ。
[編集] 性質
積分演算に由来する性質として以下の性質がある。
- 交換律
- f*g = g*f
- 結合律
- (f*g)*h = f*(g*h)
- 分配律
- f*(g+h) = (f*g) + (f*h)
- スカラー倍
- a(f*g) = (a f)*g = f*(a g)
- 但し、a:任意の実数(複素数でもよい)
- 微分
- D(f*g) = Df*g = f*Dg
- 但し、D:微分演算子。(離散系の場合はDf(n)=f(n + 1) - f(n))
[編集] 畳み込み定理
但しは関数fのフーリエ変換である。この定理はラプラス変換・Z変換やメリン変換といった変換に対しても適用できる。
フーリエ変換を使って畳み込み演算を単純な掛け算に変換することが出来る。離散系での関数の場合、定義通りの畳み込み計算をしないで、関数f,gの高速フーリエ変換(FFT)を掛け算した結果を逆高速フーリエ変換(IFFT)をすることで、高速に畳み込みの計算処理をするのが一般的である。
[編集] 応用
[編集] 確率測度における畳み込み
集合関数の一種である確率測度の畳み込みは次のように表現される。確率測度μ1,μ2において任意のボレル集合Bに対し、 と表現される。これはμ1,μ2を集合関数として捉えて、変数変換することで求まる。これにより、μ1,μ2を分布に持つ 確率変数X,Yにおいてその和X+Yの分布が畳み込みにあたることがわかる。
[編集] 多項式の掛け算
多項式の掛け算の結果の係数列は、元の多項式の係数列の線形畳み込みになる。実際
であり、掛け算の結果の係数が a*b となる。
[編集] 線形システム
電気回路といった古典的な時不変(シフト不変)線形システムは、任意の入力x(t)に対する出力y(t)がx(t)とインパルス応答h(t)の畳み込みで記述できる:
- y(t) = h(t) * x(t)
ここで特に、入力x(t)がデルタ関数δ(t)のとき出力はh(t)そのものになる。
ここで上式の両辺をフーリエ変換もしくはラプラス変換(離散系の場合はZ変換)すると、#畳み込み定理より下式のようになる
- Y = H X
ここで、H = Y / X を伝達関数といい、この式は古典制御論の基礎となっている。
[編集] 音響学
エコーは元の音波と、音を反射するさまざまな物体に因る特性(インパルス応答)との畳み込みで記述される。カラオケやシンセサイザーに搭載されているエコー機能は、この畳み込みの効果を電気回路もしくはコンピュータでシミュレートすることで実現している。
[編集] 光学および画像処理
撮像時のブレなどの多くのぶれ(blur)は畳み込みで記述できる。例えば、焦点がぼけた写真は、焦点があった仮想的な画像と、絞りの特性を示す円との畳み込みである。また被写体等の動きによるブレも、静止した仮想的な画像と動きの特性との畳み込みであり、画像処理ソフトウェアのモーションブラーはこの畳み込み演算を計算によりシミュレートすることで実現している。
[編集] 統計学
スタブ
[編集] 関連項目
[編集] 外部リンク
- The Joy of Convolution Java Applet を使った視覚的な畳み込みの説明