デルタ関数    delta function

ごく日常的に、「インパルス」や「サンプリング」といった言葉を使いますが、それらには「瞬間的に物理的操作をする」というイメージがあります。 太鼓をバチでたたくとドーンと鳴ります。 物体が衝突すると、運動量が瞬間的に移動します。 このような瞬間的な現象をどう表現するか悩ましい問題ですね。 どこまで正確に記述できるかということになると、まさに禅問答のようになってしまいそうです。 20世紀初頭はまさに量子力学の黎明期であり、この問題に多くの物理学者が挑戦しました。 W.K.Heisenberg (1901-1976, Nobel Prize 1932) の不確定性理論は、それを観測するとき、物理理的限界が存在することを追求したものです。 同世代のP.A.M.Dirac 1902-1984, Nobel Prize 1933:E.R.J.A Schrodinger (1887-1961) と共同受賞) は瞬間的現象をデルタ関数という数学的道具で処理しました。 しばらくして(1940年ごろ)、このような関数の数学的一般化 (超関数: Generalized Function、あるいは、Distribution ) が L.Schwartz (1915-2002) によってなされました。

話はちょっとそれますが、総務省は 60GHz 帯の 7GHz の帯域幅を、大出力中継を除いてライセンスフリーにしました。 長い間、陽の目を見なかったミリ波が注目を集めています。 この帯域を目一杯使って超高速ディジタル無線通信をしようとすると、パルスを電気回路で扱うことは容易ではありません。 まして、AD変換して、RAKE受信や等化をするなんて高級な方法はお呼びではありません。 連続信号から瞬間の大きさを打ち抜くサンプリングで精一杯です。単に、丸いパルスを四角にしてフリップ・フロップに入力することが精一杯だというわけです。 以上は、あくまでも製品化を意識した話ですが、先端技術ではフェムト秒単位の信号処理の領域に入っています。 私がくたばるまでには、ミリ波通信もデルタ関数のお世話になっているかもしれません。 下表は、時間の単位と光の進む距離です。

img1.gif

信号のサンプリングを例にとってみると、デルタ関数のストーリーは次のようです。

    1. 波形をサンプリングすることは、狭い時間窓で波形の瞬時値を打ち抜くことである。
    2. 瞬時値を正確に得るために時間窓を狭くしたい。 しかし、そうすると、打ち抜かれた信号の電力はどんどん小さくなってしまう。
    3. これを解決するために、時間窓を高くする。すなわち、打ち抜かれた信号を増幅する。
    4. この結果、波形の瞬時値が観測でるようになる。

とりあえず、もっとも簡単な矩形窓で、上のストーリーを追ってみましょう。 矩形窓を で表し、下のようにしてみます。 積分は によらずになっています。

img6.gif

この時間窓で信号 を時刻 で打ち抜いて信号の大きさを求める操作は次のようです。

信号 を連続とすれば、右辺の積分に関して、下図からわかるように、

と表せる時刻 が区間 で必ず見つかります(平均値の定理)。 

img5.gif

 したがって、

がいえるので、 を小さくすれば限りなく に近い値が得られることがわかりました。 以上までの理解で、工学的なサンプリングの理解になんの支障もないのですが、理論的な障害は、 がはっきりしないということです。 平均値の定理がいえるための に関する十分条件は、区間内で積分可能で、かつ、一定の符号であることですが、矩形窓は有限の でこれを満たしていました。 しかし、極限 では、窓の高さが無限大になってしまうので、普通の意味で積分の定義ができないからです。 また、一定符号という条件もデルタ関数の一般化に障害になります。 これらの障害をクリアするためには、微分した結果が であるような関数列を想定し、そのような関数列の収束をもって の収束を連動させることが合理的です。 このようにすれば、扱う関数列が の積分

ですから、これを有界な関数に限定しながら、 を扱うことができるわけです。 この意味で定義される関数を超関数と呼んでいます。 上の場合、微分が矩形になる関数は、下のようです。

img6.gif

しかし、この関数は、区分的に微分可能ですが、 で微分が定義できないことから、残念ながら超関数から除かれます。 矩形窓の次に簡単な窓関数は、下図のような3角窓です。

img7.gif

この積分は、放物線を滑らかにつないだ形をしており、すべての時刻で一回微分可能であり、超関数になり得ます。 以上を念頭において、デルタ関数を次のように定義しましょう。

    • ゼロに収束する正の数列を とし、番号 に連続関数 を対応させる。
    • のとき、区間 の幅はゼロに収束し、

この定義に従う関数列 は、これを積分した有界な関数列 について言えば、 で下図のようなステップ関数(ヘビサイド関数)に一様収束しているというわけです。

デルタ関数を得る常套的方法の一つは、

を満たす関数 を考え、これを、パラメーター n を変化させて、

のように時間軸で、押し潰したり引き伸ばしたりします。 こうすれば、を大きくしても、積分値が変化しない関数列を表現することができます。 ここで、パルスを押し潰しとき(を無限に大きくしたとき)のパルスの電力(自乗積分)をみてみましょう。

と変形できるので、あきらかに、 n を無限に大きくすれば電力は発散します。

以上のようにして、デルタ関数をいくらでも作ることができますが、三角窓以外に、工学の分野で頻繁に遭遇する例をみておきましょう。 下図は、n を大きくするにしたがってデルタ関数に近づく様子を示したものですが、見やすいように適当に や縦軸を調整してあります。

img1.gif

 

img2.gif

 

 デルタ関数の物理的な解釈として、これを線形システムのインパルス応答と考えれば、どんなに高い周波数成分をもった信号も、そのまま(歪みなしで)通過させるといえます。 この解釈からすれば、その線形システムの周波数特性 は、

ということになります。 実際、上の二つの関数列は

のように、フラットな周波数特性に収束します。 逆に、フラット特性に収束するスペクトルのフーリエ逆変換はデルタ関数になります。 下記は頻繁に現われるデルタ関数のフーリエ逆変換の定義です。

 以下、ウェーブレットとの関連について、少し見ておきましょう。 上では、関数列をデルタ関数に収束させましたが、離散ウェーブレットでは、関数の級数

でデルタ関数に収束させます。 その狙いは、それぞれのウェーブレット が信号の変動の細かさに対応し、階層的に解像度解析ができることにあります。 すなわち、 のフーリエ変換 で周波数軸を埋めてフラットな周波数特性を作るということです。 たとえば、 を下図のように帯域幅 W Hz でフラットな特性とし、ウェーブレットのように、 を中心にして、帯域を 倍して埋めてみます。 厳密なことが気になれば、各帯域の右端を閉じ、左端を開いておきましょう。

注1: 下図では、正周波数側のみを示してありますが、負周波数側はこの対称成分があると考えてください。

 

すなわち、0 --> では の右側(高域側)を の帯域の2倍、4倍、8倍、・・・で埋めていき、 では の左側(低域側)を の帯域の1/2倍、1/4倍、1/8倍、・・・で埋めていきます。 こうして、継ぎ目なく帯域を埋めた結果、

が実現しそうに思われます。 低域側 の帯域の埋まり方をみると、

 

ですから、直流近傍まで埋まる計算になります。 でも、たしかに直流のまわりは全部埋め尽くされてしまいますが、直流成分

 

が本当にゼロでない値になるかどうかという疑問が残りますね。 実際、 でない限り、直流を含んでいないわけですから。 しかし、 では、 の積分値( )は無限に小さくなるので、上の式はデルタ関数を与えることがいえます。 また、関数 は、その帯域が重複していないので、明らかに直交関数系

をなしています。 もちろん、帯域を重複させながら、帯域を2倍スケールした関数系

を直交させ、かつ、その総和をデルタ関数に近似させることも可能です。

注2: 時間-周波数の2次元空間を局在したウェーブレットで埋めていき、それらの一次結合で、信号を表現することを離散ウェーブレットと呼んでいます。 上の議論では、ある時刻の回りにエネルギーが集中した信号(パルス状の信号)を念頭に置いて、それを低周波から高周波へ離散化したウェーブレットで表そうとしていました。 これだけでは、永遠に続く信号の時間軸の展開が欠けているので、時間-周波数空間の完全な離散化になっていません。 時間-周波数の2次元空間に局在したウェーブレットで永遠に続く信号を表現するためには、

のような形をした離散ウェーブレットを考え、これらで完備な直交展開をしなければなりません。 上の矩形バンドパスの例題は完備直交系になっています。 また、おなじみのハール・ウェーブレットも完備直交系です。 これらが完備直交であることは、両者とも矩形関数なので直感的に簡単に確認することができます。 しかし、滑らかな(何回も微分可能な)波形で完備直交関数系を作るとなると容易ではなさそうです。 当初、それは不可能と考えられていました。 しかし、1980年代に Mayer によってその可能性が証明されました(離散ウェーブレット参照)。

以下、離散ウェーブレットから離れて、上のストーリーを連続パラメーターで扱う連続ウェーブレットについて考察しておきましょう。 信号 を窓関数 で周波数分析する問題を考えます。 周波数分析(短時間フーリエ変換)のページでは、窓関数は でした。 連続ウェーブレットでは、窓関数 を時間軸で伸縮して

0 -->

のような分析をします。 短時間フーリエ変換と同様に、1次元の信号を2次元に拡大して観測していることになります。 この逆変換は a 軸にそって をなんらかの意味で集積することになります。 その集積を、 の整合フィルターをかけて、 a で積分する操作、

で定義し、具体的に計算してみましょう。

{ }内のフーリエ変換は、

ここで、 として変数変換 により、

この値は周波数に依存しない定数であり、非ゼロで有界ならば、{ }はデルタ関数となり、逆変換が実現します。 有限なエネルギーをもち、直流成分がない はこの条件を満たします。 ウェーブレットでは、この条件をアドミッシブル( admissible )条件と呼んでいます。

ついでに、短時間フーリエ変換の逆変換も同じようにすればできそうなので、当たっておきましょう。 周波数分析の結果

に対して、連続ウェーブレットと同じように、窓関数の整合フィルターをかけて、周波数軸で集積する操作をしてみましょう。

上の{ }内はフラットスペクトルのフーリエ逆変換なのでデルタ関数になり、

が得られ、信号が復元されることがいえました。