合成積

この辺りはもう工学寄りの話になってくる。

[前の記事へ]  [物理数学の目次へ]  [次の記事へ]


合成積の定義

 合成積という概念があって、フーリエ変換に深い関わりを持っている。合成積の意味を自然に受け容れることのできるような導入方法を考えてはみたが、うまく行かなかった。これはとりあえず意味など考えずにそのまま受け入れてもらう方が効率が良いだろう。
 意味は色々と後付けすることができるが、 そのような意味のものがなぜここで使われるのか、と聞かれるとそれもまた困ってしまうのである。  意味を見出そうとするのは暇な時で構わない。
 合成積とは次のようなものである。
\[ \begin{align*} f \!\ast\! g(x) \ \equiv\ \int^{\infty}_{-\infty} f(y)\, g(x-y) \diff y \tag{1} \end{align*} \]
 二つの関数\( f(x) \)\( g(x) \)を組み合わせることで一つの関数を作り、その作られた関数の名前を\( f \!\ast\! g \)と表す。上のような積分計算では\( x \)が変数として残るから、左辺は\( f \!\ast\! g(x) \)と書いてあるわけだ。

 \( f \!\ast\! g(x) \)では意味の区切りが分かりにくいので\( (f \!\ast\! g)(x) \)のように表すこともある。

 このような\( f \!\ast\! g(x) \)\( f(x) \)\( g(x) \)の「合成積」と呼ぶ。「畳み込み」「畳み込み積分」「コンボリューション」「重畳(ちょうじょう)積分」「接合積」と呼ばれることもある。

 ここでは積分範囲を\( (-\infty,\infty) \)としてあるが、これは場合により様々である。これからしばらくは上に書いたような、無限の範囲で積分した合成積を使いたい。

豆知識: コンボリューションという言葉を別のところで見たことのある人もいるだろう。  和の記号を使って定義された離散値についてのコンボリューションもある。  ここで紹介した「コンボリューション」の定義はそれと似た操作を連続関数に拡張したものになっている。
 おっと、書き忘れるところだった。合成積を作る二つの関数は順序を入れ替えても結果は変わらない。
\[ \begin{align*} (f \!\ast\! g)(x) \ =\ (g \!\ast\! f)(x) \end{align*} \]
 これは合成積の定義の式で何をやっているかを考えれば分かるだろう。どうしても式で証明したければ、(1) 式の\( x-y \)のところを別の変数に置き換えて積分の変数変換をすれば簡単に確かめることができる。


合成積のフーリエ変換

 フーリエ変換と合成積の関係を説明してゆきたいのだが、もう結論から言ってしまおう。次のような関係になっていることを言いたいのである。
\[ \begin{align*} \mathcal{F}[f \!\ast\! g] \ =\ \mathcal{F}[f] \, \mathcal{F}[g] \tag{2} \end{align*} \]
 フーリエ変換したものどうしの積は、合成積をフーリエ変換したものに等しい。なるほど、こんな分かりやすい関係があるのなら、そのためだけに合成積を導入したのだと説明されても納得しそうになる。実際はそういうわけでもないと思うが。この関係のことを「畳み込み(たたみこみ)の定理」と呼ぶ。

 後は、こんな関係になっていることがどうやって確認できるのかが分かれば一安心できるだろう。それは全く難しくない。素直にそっくりそのまま式に直して変形すれば良いだけである。使う技術といえば、途中で変数変換を使うくらいなものである。試しにやってみせよう。

\[ \begin{align*} \mathcal{F}[f \!\ast\! g] \ &=\ \int^{\infty}_{-\infty} \left( \int^{\infty}_{-\infty} f(y) \, g(x-y) \diff y \right) \, e^{-ikx} \diff x \\ &=\ \int^{\infty}_{-\infty} f(y) \left( \int^{\infty}_{-\infty} g(x-y) \, e^{-ikx} \diff x \right) \diff y \\ &=\ \int^{\infty}_{-\infty} f(y) \left( \int^{\infty}_{-\infty} g(t) \, e^{-ik(t+y)} \diff t \right) \diff y \\ &=\ \int^{\infty}_{-\infty} f(y) \left( \int^{\infty}_{-\infty} g(t) \, e^{-ikt} \diff t \right) \, e^{-iky} \diff y \\ &=\ \int^{\infty}_{-\infty} f(y) \mathcal{F}[g] \, e^{-iky} \diff y \\ &=\ \int^{\infty}_{-\infty} f(y) \, e^{-iky} \diff y \ \mathcal{F}[g] \\ &=\ \mathcal{F}[f] \, \mathcal{F}[g] \end{align*} \]
 フーリエ変換として係数\( 2\pi \)が出てこないタイプの流儀を使っているからこのような結果になるのであって、別の流儀を採用している場合には余分な係数が含まれた形の関係が出てくることになる。


もうひとひねり

 (2) 式の関係以外にも何かまだ作れそうである。フーリエ逆変換を使って (2) 式をもっと複雑な形に書き換えることはすぐに思い付くが、ただの「同じ事の別表現」なので、それほど有り難みもない。それはたとえば次のようなもののことを言っている。
\[ \begin{align*} f \!\ast\! g \ =\ \mathcal{F}^{-1}\bigg\{ \mathcal{F}[f] \, \mathcal{F}[g] \bigg\} \tag{3} \end{align*} \]
 確かにこういう式変形では面白味がない。しかし次のようにしたらどうだろう。(3) 式で使っている関数の記号を別のものに置き換えてやる。
\[ \begin{align*} F \!\ast\! G \ =\ \mathcal{F}^{-1}\bigg\{ \mathcal{F}[F] \, \mathcal{F}[G] \bigg\} \tag{4} \end{align*} \]
 単に別の記号に置き換えただけなのだから、これは当然成り立っているし、意味も (2) 式や (3) 式とは変わっていない。しかしこの見た目からインスピレーションが得られるかも知れない。ここでの\( F \)\( G \)\( f \)\( g \)をフーリエ変換した関数だと考えたら新しい公式が作れないだろうか?左辺は\( \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \)と表現できることになる。では右辺はと言うと・・・いや、ダメか。関数\( f \)をフーリエ変換したものである関数\( F \)をさらにフーリエ変換する形になってしまっている。いやいや、フーリエ変換を 2 度繰り返すとどうなるかという公式があったのだった。
\[ \begin{align*} \mathcal{F}[\mathcal{F}[f(x)]] \ =\ 2\pi\, f(-x) \end{align*} \]
 すると (4) 式は次のように書き直せる。
\[ \begin{align*} \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \ =\ \mathcal{F}^{-1}\Big[ (2\pi)^2 f(-x) \, g(-x) \Big] \end{align*} \]
 これではあまり美しくないし、使い勝手も悪そうだ。もう少し整理できないだろうか。ここで\( f(x) \)\( g(x) \)\( h(x) = f(x)\, g(x) \)という一つの関数として見てやれば、
\[ \begin{align*} \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \ =\ (2\pi)^2 \ \mathcal{F}^{-1}[ h(-x)] \end{align*} \]
と書けて、見通しが良くなる。この関数\( h \)の変数が\( -x \)になっていることが気に入らないのである。これを何とかしたい。フーリエ変数を 2 度繰り返すと変数の符号が逆転したものが出てくるという性質を再度利用してみてはどうだろう。\( 2\pi\, h(-x) = \mathcal{F}[\mathcal{F}[h(x)] \)が言えるはずだ。これを代入してみる。
\[ \begin{align*} \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \ &=\ 2\pi \ \mathcal{F}^{-1}[ \mathcal{F}[\mathcal{F}[h(x)]]] \\ &=\ 2\pi \ \mathcal{F}[h(x)] \end{align*} \]
 あとは\( h(x) \)を元に戻せば良い。
\[ \begin{align*} \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \ =\ 2\pi \ \mathcal{F}[fg] \tag{5} \end{align*} \]
 フーリエ変換したものどうしの合成積は、積をフーリエ変換したものの\( \color{red}{2\pi} \)倍に等しい。先ほどの畳み込みの定理によく似ているが、内容が少しひっくり返っている面白い性質だ。

 実はこんな議論を経由せずとも、簡単にこの性質を確認することもできる。次のように割りと素直に目標を目指して計算すれば良いのである。

\[ \begin{align*} \mathcal{F}[fg] \ &=\ \int_{-\infty}^{\infty} f(x)\,g(x) \, e^{-ikx} \diff x \\ &=\ \int_{-\infty}^{\infty} f(x)\,\left[ \frac{1}{2\pi} \int_{-\infty}^{\infty} G(k') e^{ik'x} \diff k' \right] \, e^{-ikx} \diff x \\ &=\ \frac{1}{2\pi} \, \int_{-\infty}^{\infty} G(k') \,\left[ \int_{-\infty}^{\infty} f(x) \, e^{-i(k-k')x} \diff x \right] \diff k' \\ &=\ \frac{1}{2\pi} \, \int_{-\infty}^{\infty} G(k') \, F(k-k') \diff k' \\ &=\ \frac{1}{2\pi} \, (G \!\ast\! F)(k) \\ &=\ \frac{1}{2\pi} \, \mathcal{F}[f] \!\ast\! \mathcal{F}[g] \end{align*} \]
 しかし (2) 式と (5) 式の二つの公式を、こんな方法で両方とも素っ気なく紹介して終わることはしたくなかった。これらは互いに形が似ているので何か関係がありそうなのだが、そこを説明してくれている教科書がなかなか見つからなかったので、私は気になって仕方なかったのである。少し苦労して自力で解決できたので、喜びが冷めない内にそこをこだわって説明してみた次第である。

 ところで今の式変形を見れば分かると思うが、(5) 式の\( 2\pi \)はフーリエ変換と逆変換が対称的な流儀を採用している場合には出てこない。流儀によって色々とややこしいことが起こるものだ。


合成積の意義

 これらの合成積についての公式はフーリエ変換の色々な性質を証明をするときに援用されることも多い。しかしこれまでずっとそれを使わないで済むように説明を工夫してきた。そしてその方が分かりやすかったと思っている。
 例えば、パーセバルの等式を証明するのに合成積を技巧的に使う方法はあちこちでよく見かけるし、 内積の保存の証明にも同様の方法を使ったりする。  内積の保存は超関数のフーリエ変換の根拠となる式変形に使われることもあるので (それもややこしかったので私の説明からは排除した)、 結局何を説明するにもまずは合成積の概念が必要になるという印象がなかなか拭えなかったのだった。
 合成積を使う機会をここまで排除してしまっては合成積の意義がどこにあるのか分からなくなってしまうので、使う実例を何か挙げておかねばなるまい。


インパルス応答

 コンサートホールの音響特性がどうなっているのかを調べるためにフーリエ変換が使われている。デルタ関数はあらゆる波長の波を含んでいるというイメージのものであった。だからデルタ関数のような一瞬の衝撃音をステージ上で発してその反響音を観客席に設置したマイクで記録すれば、あらゆる種類の波がどのような具合にその地点に到達するかを一度にまとめて測定できる。

 観客席のその地点まで音が届くのには時間がかかるし、到達するまでの経路も様々だ。何度も何度も反射されて残響音となったりもする。一瞬のパルス音を出したにもかかわらず、記録される音は時間的に持続したものとなるだろう。この記録された音の波形を\( h(t) \)としよう。

 実は、この\( h(t) \)というデータさえ持っていれば、ステージ上でどんな演奏がされたときに、聴衆にはどんな風に聴こえるかを再現できるのである。それをこれから説明しよう。

 この\( h(t) \)という波形はコンサートホールという未知のシステムにデルタ関数的な波形を入力したときの出力であると考えられるから、この入力と出力の関係を次のように表すことにする。

\[ \begin{align*} h(t) \ =\ T[\delta(t)] \end{align*} \]
 知りたいのは演奏音の波形\( f(t) \)をこのシステムに入力した時の結果として得られる\( T[f(t)] \)がどうなるかである。それは次のように変形して表すことができる。
\[ \begin{align*} T[f(t)] \ &=\ T\left[ \int_{-\infty}^{\infty} f(s) \, \delta(t-s) \diff s \right] \\ &=\ \int_{-\infty}^{\infty} T[f(s) \, \delta(t-s)] \diff s \\ &=\ \int_{-\infty}^{\infty} f(s) \, T[\delta(t-s)] \diff s \\ &=\ \int_{-\infty}^{\infty} f(s) \, h(t-s) \diff s \\[3pt] &=\ (f \!\ast\! h)(t) \tag{6} \end{align*} \]
 こんな具合に、演奏音声データ\( f(t) \)とインパルス応答のデータ\( h(t) \)の合成積として得られる波形が、聴衆側で聴こえる音声となっている。こういう計算はコンピュータにやらせることができるので楽なものだ。

 最近の実際の測定装置では正確なデルタ関数を使うのではなく、コンピュータが解析しやすい成分を合成して作ったパルス的な音をスピーカーから出すわけだが、原理は同じようなものである。そんなに大それた装置でもなく、パソコン 2 台とスピーカーとマイクがあれば実現できる。近頃はゲーム機(多分、キネクトとかはそういうことをやってそう)やテレビ、オーディオ機器などにも似たような機能が付いていて、使用環境に合ったエフェクトを予めかけて音声を出力してくれるようなものもあるようだ。

 ところで上の式変形では幾つか重要な仮定を用いている。入力の大きさに比例した出力が得られることと重ね合わせが成り立つことで、その性質は次のように表現される。

\[ \begin{align*} T[ a \, f(t) + b \, g(t)] \ =\ a\ T[f(t)] \ +\ b\ T[g(t)] \end{align*} \]
 これは 1 行目から 2 行目、そして 2 行目から 3 行目への変形で使っている。もう一つはこのシステムの特性が時間的に変化しないことであり、3 行目から 4 行目への式変形で使っている。これらの性質を持つ系を「線形時不変システム」と呼ぶ。


周波数特性

 今の話を理解するには「デルタ関数はあらゆる波長の成分を含む」というイメージが理解の助けになるかも知れないが、式の中ではフーリエ変換を利用している様子は少しもない。もう少しフーリエ変換らしい話で締めくくりたいものだ。

 コンサートホールでは、ある波長の波はどこかで吸収されてほとんど返って来ないこともあるだろうし、干渉の効果で聞こえにくくなる波長もあれば、共鳴して強く聴こえる波長もあるだろう。先ほどの測定で得た\( h(t) \)にはそのような情報も含まれている。

 もしデルタ関数の代わりにある一定の周波数の音を使って測定してみたならどうなるだろう。音速が途中で急激に変わるようなことはコンサートホールでは起きてはいないはずなので、周波数自体は変化しない。ただその音量が元の何倍かに変化して耳に届くことになる。その倍率は周波数によって違っており\( H(\omega) \)という記号で表すことにしよう。次のような関係になっているはずだ。

\[ \begin{align*} T[e^{i\omega t}] \ =\ H(\omega)\, e^{i\omega t} \tag{7} \end{align*} \]
 この\( e^{i\omega t} \)のところは別に\( \cos \omega t \)と書いても成り立つのだが、実数部分だけを見ればどちらにしても同じだし、フーリエ変換の形式にあてはまるように考えるならこう表しておいた方が整合性があるというくらいの理由でこのように\( H(\omega) \)を定義したのである。この\( H(\omega) \)を「周波数特性」と呼ぶ。

 デルタ関数にはあらゆる周波数の波が含まれており、それぞれの波が観客席の測定点に到達するまでに何倍になったかというのを重ね合わせた結果が\( h(t) \)である。そう考えれば、要するに\( h(t) \)をフーリエ変換したものが\( H(\omega) \)だということになる。

 これではイメージに頼り過ぎなので、結論は同じだがもう少し理詰めで行こうか。(6) 式のルールを使えば、(7) 式の左辺は次のように表すことができる。

\[ \begin{align*} T[e^{i\omega t}] \ =\ e^{i\omega t} \ast h(t) \ =\ \int_{-\infty}^{\infty} h(y) \, e^{i\omega(t-y)} \diff y \end{align*} \]
 この左辺は (7) 式によれば\( H(\omega)\, e^{i\omega t} \)であるし、右辺も少し変形してやって次のような関係になっていると言える。
\[ \begin{align*} H(\omega)\, e^{i\omega t} \ =\ \left[ \int_{-\infty}^{\infty} h(y) \, e^{-i\omega y} \diff y \right] \ e^{i\omega t} \end{align*} \]
 両辺を比較すれば、先ほども言ったように、\( h(t) \)をフーリエ変換したものが\( H(\omega) \)だということが導かれるのである。
\[ \begin{align*} H(\omega) \ =\ \int_{-\infty}^{\infty} h(t) \, e^{-i\omega t} \diff t \end{align*} \]