連続信号をサンプリングして離散信号を取り出すことにより、元の信号 (関数)の情報がどれくら い失われるのか、どのくらい保存されているのか、これは大事な問題である。離散 Fourier 変換で も考えたが(定理3.2.6)、ここでは周期関数でないf: R→Cに関する、有名なサンプリング定理を 紹介する。
以下のサンプリング定理の定式化と証明は、木村 [18] を参考にした(私はこの辺りの話題には詳 しくないけれど、他の色々な文献を見たところ、割と標準的な説明のようである)。
余談 5.0.1 (歴史覚書) ある意味で良くある話なので1、時間に余裕があれば話をするべきかも。
ナイキスト (Harry Nyquist, 1889–1976, スウェーデン) が 1928 年に予想したこと2を、シャノン (Calude E. Shannon, 1916–2001) がシャノン [4]3(1949年)の中で、染谷そ め やいさお勲 が染谷 [19] (1949年) の 中で、独立に証明したが、実はロシアのKotel’nikovは 1933 年にこの結果を得ていた、ということ は良く知られている。
でも実は数学分野では、もっと遡ることが出来て、補間法の公式として、E. T.Whittaker (1873–ホ イ テッカ ー 1956, 応用数学の大家) が 1915年に、小倉金之助お ぐ ら (1885–1962, 数学史・数学教育分野で大変有名な 先生だけれど、こういう研究をしていたとは!)が1920年に得ていた(Butzer他[20] —これは解読 すべき論文かもしれない。Whittaker のは補間法で、小倉のは正しくサンプリング定理である、と 言っているように読める。メイン・ストリームに合流しなかった研究成果は意味がない、と言う人 は多いのだけれど、Whitakker にしても小倉にしても、決してマイナーな人ではないので、気づか れなかったことをどのように捉えるべきか、考え込んでしまう。)。
一方で、定理がどのように応用されるかは、定理を発見した人も見通せず、その定理が必要な人 達に知られないというのも仕方がない面がある。実際に必要を感じた人達が独立に発見し、それを 生かすこと道を整備することは重要な業績である。電子通信情報学会編「電子情報通信学会創立100 周年記念マイルストール— 100年の偉業を振り返り未来に繋ぐ」[21] を見ると、通信の分野で、染 谷の業績が非常に高く評価されていることが良く分かる。
1必要がある場合は、ほぼ同時にたくさんの人が考える。ロシア人も後から一言もの申す(実際、ロシアの研究者が 先んじている場合が少なくないが、彼らの業績は西側に伝わりにくいのでそういうことになるみたい)。応用からは離れ て、数学者がずっと以前に片付けていることも結構ある。
2”Certain topics in telegraph transmission theory”の中で帯域幅W の信号を伝送するには、サンプリング周期を 1
2W 以下にする必要がある、と述べたそうである。
3“Communication in the presence of noise”の中で信号を復元する公式を導出した。
定理 5.0.2 (サンプリング定理, Nyquist, Shannon, 染谷) 関数 x:R→C のFourier変換 X(ω) = 1
√2π
∫ ∞
−∞
x(t)e−iωtdt が
(∃W >0)(∀ω∈R:|ω| ≥W) X(ω) = 0 を満たすならば、このような W を任意に一つ取って
T := π W とおくとき、次式が成り立つ。
(∀t∈R) x(t) =
∑∞ n=−∞
x(nT)sinπ(n−t/T) π(n−t/T) =
∑∞ n=−∞
x(nT) sinc [π(n−t/T)].
つまり、W
2π 以上の周波数成分を含まない信号は、サンプリング周波数fs := 1 T = W
π でサンプリ ングした離散信号から復元できる。言い換えると、f 以上の周波数成分を含まない信号は、2f 以上 のサンプリング周波数でサンプリングしたデータから復元できる。
証明 Fourier 変換の反転公式を思い出そう。
X(ω) := 1
√2π
∫ ∞
−∞
x(t)e−iωtdt (ω ∈R) とおくとき
x(t) = 1
√2π
∫ ∞
−∞
X(ω)eiωtdω (t∈R).
仮定|ω| ≥W ⇒X(ω) = 0より
(5.1) x(t) = 1
√2π
∫ W
−W
X(ω)eiωtdω (t∈R) この式は周期2W の関数の Fourier 係数の式に似ている。実際、
関数X(ω) (|ω| ≤W) の Fourier 級数展開
cn:= 1 2W
∫ W
−W
X(ω)e−inWπωdω とおくとき
X(ω) =
∑∞ n=−∞
cneinWπω (|ω| ≤W).
そこで (dn=c−n と対応させて)
dn := 1 2W
∫ W
−W
X(ω)einWπωdω とおくとき
(5.2) X(ω) =
∑∞ n=−∞
dne−inWπω (|ω| ≤W)
が成り立つことが分かる。
dn の定義式と (5.1) を見比べると dn= 1
√2π · π W · 1
√2π
∫ W
−W
X(ω)eiω·nWπdω= 1
√2πT x(nT), T := π
W.
(Fourier変換 X(ω) の Fourier 係数dn が、元の関数のサンプリング・データになっている!)
(5.2) は次のように書き換えられる:
X(ω) = T
√2π
∑∞ n=−∞
x(nT)e−inωT (|ω| ≤W).
これを (5.1) に代入して x(t) = 1
√2π
∫ W
−W
(
√T 2π
∑∞ n=−∞
x(nT)e−inωT )
eiωtdω = T 2π
∑∞ n=−∞
x(nT)
∫ W
−W
eiω(t−nT)dω.
右辺の積分は
∫ W
−W
eiω(t−nT)dω = eiW(t−nT)−e−iW(t−nT)
i(t−nT) = 2 sinW(t−nT)
t−nT = 2 sinTπ(nT −t) T(n−t/T)
= 1 T
2 sinπ(n−t/T) n−t/T . (実は、以前 1
2a
∫ a
−a
e−ixξ dx= sin(aξ)
aξ という計算をしてある。それを使えば良い。) ゆえに
x(t) =
∑∞ n=−∞
x(nT)sinπ(n−t/T) π(n−t/T) .
この証明はあまり見通しが良くないような気がする。後で少し違ったやり方で証明する(かもしれ ない…と言って、その後放置している)。
第 6 章 離散時間 Fourier 変換と Fourier ファミリー
6.1 離散時間 Fourier 変換
正とは限らない整数を添え字に持つ複素数列 {fn}n∈Z を離散信号と呼ぶ。
離散信号 {fn}n∈Z は、fn =f(n) とすることで、関数 f: Z→C とみなせる。離散信号全体の集 合をCZ で表す。
f の離散時間 Fourier 変換(discrete-time Fourier transform, DTFT) とは、
(6.1) Ff(ω) =fb(ω) :=
∑∞ n=−∞
f(n)e−inω (ω∈R) で定義される関数 fbのことをいう。
fbは、実は周期2π の関数である。実際、
fb(ω+ 2π) =
∑∞ n=−∞
f(n)e−in(ω+2π)=
∑∞ n=−∞
f(n)e−inω−i2nπ =
∑∞ n=−∞
f(n)e−inω =fb(ω).
ゆえに ω∈[0,2π] (あるいはω ∈[−π, π])で考えれば十分である。
f(n) は関数fbの第(−n) Fourier 係数と見做せるので(これはちゃんと理解するべし)、
(6.2) f(n) = 1
2π
∫ π
−π
fb(ω)einω dω (n ∈Z) が成り立つ。これが離散時間 Fourier 変換の反転公式である。
念のため後から補足
次のようにも考えられる。m̸=n とするとき、
(e−inω, e−imω)
=
∫ π
−π
e−inωe−imωdω =
∫ π
−π
ei(m−n)ωdω =
[ei(m−n)ω i(m−n)
]π
−π
= 0 であるから {e−inω} は直交系であり、(6.1) は直交系による fbの展開である。
(e−inω, e−inω)
=
∫ π
−π
e−inωe−inωdω=
∫ π
−π
dω = 2π であるから、e−inω の係数 f(n)は
f(n) = (f, e−inω) (e−inω, e−inω) =
∫ π
−π
f(ω)e−inω dω
2π = 1
2π
∫ π
−π
f(ω)einω dω.
無限和だから収束が問題になるが、ある程度の知識がある人を対象に簡単に触れておくと、
• {f(n)}n∈Z について、有限エネルギー条件
∑∞ n=−∞
|f(n)|2 <∞ (つまり {f(n)} ∈ ℓ2(Z) という こと) を課した場合、fb∈L2(0,2π) であり、(6.1) は L2 における等式と解釈すれば良い。
• {f(n)}n∈Z について、
∑∞ n=−∞
|f(n)|<∞ という条件 (つまり{f(n)} ∈ℓ1(Z) ということ)を課 すと、(6.1) の右辺は一様に絶対収束し、和は連続な関数となる (Weierstrass の M-test を使 う、知っている人にとっては「良くある議論」)。
6.2 Fourier ファミリーの一覧表
これまでに出て来た、Fourier 変換、Fourier 級数 (Fourier係数)、離散時間 Fourier 変換、離散
Fourier変換の一覧表を作って整理してみよう。
伝統的な数学科のカリキュラムでは、Fourier変換、Fourier係数 (Fourier級数) について学ぶが、
離散 Fourier 変換 (discrete Fourier transform) や、離散時間 Fourier 変換 (discrete-time Fourier
transform)は学ばないことが多い。
対象 操作の名前 変換の定義式 反転公式
R上の関数 Fourier変換 fb(ξ) = 1
√2π
∫ ∞
−∞
f(x)e−ixξdx (ξ∈R) f(x) = 1
√2π
∫ ∞
−∞
fb(ξ)eixξdξ R上の周期関数 Fourier係数 cn= 1
2π
∫ 2π 0
f(x)e−inxdx (n∈Z) f(x) =
∑∞ n=−∞
cneinx
Z 上の関数 (離散 信号)
離散時間 Fourier 変換
fb(ω) =
∑∞ n=−∞
f(n)e−inω (ω∈[0,2π]) f(n) = 1 2π
∫ 2π 0
fb(ω)einωdω
Z 上 の 周 期 関 数 (周期的離散信号)
離散Fourier変換 Cn= 1 N
N∑−1 j=0
fjω−nj (0≤n≤N−1), fj=
N∑−1 n=0
Cnωnj
ω:= exp (2πi
N )
しばらく観賞。
式が良く似ていることに注目しよう。(その気になれば、もっと似せることも出来るけれど、それ はやらないでおいた。)
どれもいわゆる「変換」であり、それぞれ (例えば) L2(R)→L2(R), L2(0,2π)→ℓ2(Z),ℓ2(Z)→ L2(0,2π),CN →CN の同型を与える( 1
2π や 1
N を公平に分配すると、内積を保つようになる。)。
離散 Fourier 変換は、Fourier係数を求める計算の離散化とみなすことができる。それは (定数倍
の調節をすれば)CN 上のユニタリ変換になっていて、逆変換は順方向の変換と良く似たものになる (そのあたりは、定数倍の調節をすればL2(R)上のユニタリ変換になる、Fourier変換と似て来るの は不思議である)。
一方、離散時間Fourier 変換は、離散Fourier変換よりももっと知名度が低いが、数学的には、関
数にそのFourier 係数を対応させる写像の逆写像と等価と言えるので(上の表で2行目と3行目の定
義式と反転公式の部分をたすきがけすると分かる)、実は知っていることになる。
今から用語を変えることは不可能だと思うが、例えば「離散時間 Fourier変換」, 「離散 Fourier 変換」をそれぞれ「離散Fourier変換」, 「離散Fourier係数」とすれば分かりやすかっただろうと 思う。
R 上の周期関数は、R 上の関数であるから、Fourier 変換をすることも考えられるが、素朴にや ると積分が発散してしまう。超関数論を用いると、デルタ関数で表すことが出来る。