フーリエ変換とは、数の流れを別な方法で表現するための変換方法のひとつである。
厳密ではない概要
フーリエ変換とは関数の表現方法をある別な方法にする変換のことである。
例えば、関数というのは線グラフのことを指すとする。このとき、線グラフは数の変化を結んだ線で表される。つまり、このグラフはそれぞれの数が分かっている上で描かれることになる。
このとき、この線グラフの流れを関数としてフーリエ変換を行うと、その変換後のグラフはそれぞれの数が分からなくても、この線グラフ(に限りなく近い線グラフ)を描くことができる。
フーリエ変換後の関数では、その線グラフのそれぞれの数を情報として持つのではなく、数の動きを作り出す単純な波の動き具合を情報として持つ。
例えば、「これくらいの大きさの波Aと別な大きさの波Bと、さらに別な大きさの波Cを足し算した波のグラフの一部が元々の線グラフに似ているから、この線グラフは波A+波B+波Cって事でいいんじゃね?」と言うのがフーリエ変換である。
ちょっと詳しい概要
1個以上の実数または複素数の組であるベクトルを標準基底という物の足し算で表現する方法がある。
例えばn次元のベクトルa=(a[0],a[1],…a[n-1])があるとする。これに対し標準基底e0=(1,0,…,0), e1=(0,1,…,0),…, en-1=(0,0,…,1)を用意すると、a=a[0]e0+a[1]e1+,…,+a[n-1]en-1と書ける。ここからekにはベクトルaからk番目の要素を取り出す作用があることを推察することができる。この考えを一般の基底にも適用できないか?と考えたのがフーリエ変換の出発点である。
一般化離散フーリエ変換
n個のベクトルの組v0,v1,…,vn-1で、内積〈vj,vk〉の値が0(j≠kの時)または 1(j=kの時)を満たすものを正規直交基底と呼び、正規直交基底で任意のn次元ベクトルaを展開することができる。具体的にはa=〈a,v0〉v0+,…,〈a,vn-1〉vn-1である。これを基底vによる一般化フーリエ展開、〈a,vk〉を一般化フーリエ係数と呼ぶ。
a[m]=Σk〈a,vk〉vk[m]=Σk(Σμa[μ]vk[μ])vk[m] と変形できる。(vk[μ]はvk[μ]の複素共役)ここでさらにTv(a)[m]=〈a,vk〉=Σμa[μ]vm[μ]、T-1v(a)[μ]=Σka[k]vk[μ] と置き、aにTv(a)=(Tv(a)[0],…,Tv(a)[n-1])を対応させる写像をTv、aにT-1v(a)=(T-1v(a)[0],…,T-1v(a)[n-1])を対応させる写像をT-1vと考える。このように定義すると、T-1v(Tv(a))=a、Tv(T-1v(a))=aとなっていることが確認できる。この写像はn×nの正方行列によるユニタリ変換と同一視できる。Tvはaの標準基底による表現からvによる表現へ変換しているとも読み取ることができる。
ようするに、正規直交基底v0,…,vn-1を使って、aをTv(a)に変換してやる操作を一般化離散フーリエ変換と呼び、Tv(a)をaに逆変換してやる操作を一般化逆離散フーリエ変換と呼ぶのである。
最も簡単な例として二次元の基底{(1/√2, 1/√2), (1/√2, -1/√2) }を考える。これは正規直行基底を成しており、(5,2)をこの基底でフーリエ変換すると(7/√2,3/√2)となる。
計算の利便性からTvを定数倍することがある。
N点離散フーリエ変換
k,n∈{0,1,…,N-1}とし、
Sk=(N-1/2sin(2πik/N), … ,N-1/2sin(2πikn/N), … , N-1/2sin(2πi(k(N-1)/N))
Ck=(N-1/2cos(2πik/N), … ,N-1/2cos(2πikn/N), … , N-1/2cos(2πi(k(N-1)/N))
つまりk番目のベクトルSk、Ckの第n成分Sk[n]、Ck[n]がそれぞれN-1/2sin(2πikn/N)、N-1/2cos(2πikn/N)となるようにSk、Ck構成するとこのベクトルの組は正規直交基底となる。これを実フーリエ基底と呼ぶ。しかし、一つのベクトルを展開するのに2種類の基底が必要となるので扱いが煩雑になる。そこで、exp(x)=cos(x)+isin(x)の関係を使う。
a,bを実数、k,n∈{0,1,…,N-1}とし、
Ek=(N-1/2exp(2πi(k+a)(0+b)/N), … ,N-1/2exp(2πi(k+a)(n+b)/N), … , N-1/2exp(2πi(k+a)(N-1+b)/N))
つまりk番目のベクトルEkの第n成分Ek[n]がN-1/2exp(2πi(k+a)(n+b)/N)となるようにE0,E1,…,EN-1を構成するとこのベクトルの組は正規直交基底となる。これを一般化フーリエ基底と呼ぶ。
Ekに関する直交変換TEをN1/2倍したものをFと置いたものを一般化離散フーリエ変換、その逆変換T-1EをN-1/2倍したものをF-1と置いたものを一般化逆離散フーリエ変換と呼び、a=b=0のものを特にN点離散フーリエ変換と呼ぶ。離散フーリエ変換はその名の通り関数版フーリエ基底を離散化したものとなっている。コンピューター上でデータを扱う場合は大抵は離散的なデータであるので、離散フーリエ変換が活躍する。
離散コサイン変換
離散フーリエ変換では複素指数関数を使うことで1種類の基底で表現できるようになるが、変換の対象となるベクトルが実ベクトルであっても必ず複素数が現れるので実数のデータを扱う上で不便である。そこで活用されるのが指数関数の実部である余弦成分だけを取り出した変換、離散コサイン変換(DCT)である。v0[n]=N-1/2、Vk[n]=(2/N)1/2cos(πk(2n+1)/2N)とすると正規直交基底となっている。用途により他の取り方が有用になる場合もある。余弦関数展開では偶関数しか展開できないが、元の像の鏡像を作って偶関数化し展開できるようにしている。
jpegの画像圧縮はこの基底を二次元配列化したDCT-Ⅱというものが使用されている。画像→DCT→周波数データ→逆DCT→元の画像、の過程で周波数データの高周波部分をカットしているため非可逆圧縮である。
離散コサイン基底に由来する特徴的なノイズが映像に入り込みUFOと勘違いされた例が過去にあるとかないとか。
周期関数のフーリエ展開
関数の集合に和とスカラー倍を導入するとベクトル空間になるので、原理的には周期関数のフーリエ変換は離散ベクトルの連続化として考えることができる。
周期2Lの関数f(x)、g(x)に対し、〈f,g〉=∫f(x)g(x)dxは内積の性質を持つ。|f|2=〈f,f〉が有限であるものを二乗可積分な関数と呼ぶが、この性質を持つ関数についてフーリエ展開が可能である。
定義域が[-L,L)の関数の場合、基底関数をexp(iπkx/L) (kは整数全体)と置くと、
CkL=(1/2L)∫f(y)exp(ーiπky/L)dy f(x)=Σk(CkLexp(iπkx/L))
であらわされる。CkLを複素フーリエ係数と呼ぶ。exp(iπkx/L)=cos(πkx/L)+isin(πkx/L)なので、必要であれば三角関数で展開することも可能である。離散フーリエ変換の場合と同様で、基底が二種類必要になるがcos(πkx/L)とsin(πkx/L)で展開すると現れる係数がすべて実数になる。ただしこの式からわかるように、連続関数を加算無限個の関数で展開しているため連続の点で定義されている連続関数へ変換することはできない。
フーリエ展開は関数の周波数展開とみなせるので、音声や映像、ノイズを疑似的に周期関数とみなすことでその周波数成分の解析を行うことができる。また、データの周波数解析だけでなく交流回路や熱伝搬のような物理現象に関する微分方程式とも密接に関係している。特に複素指数関数は量子力学の分野で頻出し、原理的にフーリエ変換と相性が良い。たとえば結晶中の電子の波動関数の平面波展開や固有エネルギーの運動量空間表示などに応用されている。
一般の関数のフーリエ変換
有界な区間またはそれらを周期的に配置した関数に対して定義されていたが、周期を無限大に拡大した物、つまり実数全体で定義された関数についてのフーリエ展開を考えることができる。
上式の係数についてπ/L=Δξ、ξk=kπ/Lと置き、L→∞に持っていく。
CkL=Σk((1/2L)∫f(y)exp(-iπky/L)dyexp(iπkx/L))=(1/2π)Σk(∫f(y)exp(-iξky)dy)exp(iξkx)Δξ
リーマン積分の定義から、f(x)=(1/2π)∫(∫f(y)exp(-iξy)dy)exp(iξx)dx となる。
離散フーリエ変換と同様に、xの関数fをξの関数へ変換する写像Fを考えることができる。まとめると、
F[f](ξ)=∫f(x)exp(-iξx)dx
F-1[f](x)=(1/2π)∫f(ξ)exp(iξx)dξ
こちらもF-1[F[f]](x)=f(x)、F[F-1[f]](x)=f(x)の関係を持つ。
例
関数exp(-x2/2)はフーリエ変換を作用させると定数倍になるという特徴がある。
定数関数1はフーリエ変換するとδ超関数で表現することができる。
注意
関数のフーリエ変換に関して、以上の解説では数学的に厳密な条件を無視して形式的に説明を進めた。応用上は離散的なデータを扱う事が多いためそれほど厳密な議論を必要とせず、考察の対象になる関数については大抵の場合、明らかな物を除いてフーリエ変換可能である。しかし以上の定義だけではフーリエ変換を施した関数が元の関数空間と同じ関数空間に属するとは限らない。変換前後で積分可能性や収束発散、連続性といった性質を維持する保証を得るために関数に急減少のような特別な性質を課す必要が出てくる。ルベーグ可積分関数は多くの場合にフーリエ変換可能だが、ある種のルベーグ可測関数に変換を施すと定義域上至る所で発散するという例もある。
どのような条件の時にフーリエ変換が可能か、二乗可積分でない関数や無限遠で発散する関数のフーリエ変換をどう定義するか、と言った内容を深く考察するには線形汎関数や超関数という関数よりさらに広いクラスでの議論が不可欠となる。
発表者のフーリエさんはそこまで考えておらず、あらゆる関数で三角関数による展開が可能と豪語していたらしい。しかし、数学的にも応用的にも非常に興味深い対象であったため、後世の数学者たちの刺激となり数学界を大いに発展させたのは事実である。
複素指数関数は微分や平行移動などの演算子との相性が良く、フーリエ基底に採用することで畳み込みなどの計算を簡単にすることができる。従って実用の面では使い勝手が良い複素指数関数が主に用いられるが、フーリエ変換の基底には正規直交性だけを要求しているので三角関数や複素指数関数に限らなくてもよい。有限区間の例であれば、1,x,x2,…,xn,…にグラムシュミットの正規直交化を施してやることでルジャンドル多項式になり、それを広義のフーリエ基底とみなせる。
関連項目
- 2
- 0pt