離散フーリエ変換

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:混同テンプレート:脚注の不足 テンプレート:読み仮名は有限長の離散時間信号フーリエ変換様に周波数領域へ変換する操作である[1]

概要

離散フーリエ変換(以下、DFT)は有限長の離散時間信号フーリエ変換様に周波数領域へ変換する操作である[1](⇒ #定義)。応用数学から信号処理まで、幅広く応用される(⇒ #応用)。

DFTは(計算機上で)高速フーリエ変換を使って高速に計算できる。

定義

k{0,1,,N1} を離散変数とし、有限長 N1 をもつ複素離散時間信号 x[n]離散フーリエ変換 X[k] は次式で定義される[1][2]

X[k]=n=0N1x[n]eiωkn,ωk=2πkN

ωk正規化角周波数と呼ばれ[3]X[k]周波数スペクトルとも呼ばれる。

連続時間信号に対する定義

t1 を連続変数、N1 を任意定数とし、無限長の複素連続時間信号 f(x)離散フーリエ変換 F(t) は次式で定義される:

F(t)=x=0N1f(x)exp(i2πtxN)

この定義においてDFTは複素関数 f(x) を複素関数 F(t) に写す写像と理解される。{x=0,,N1}は標本点と呼ばれる。また、この変換を N という記号で表し、テンプレート:Indent のように略記することが多い。

なお、この定義は1つめの定義において x[n]f(n) で置き換えた(=有限長の離散時間信号を無限長の連続時間信号で置き換えた)ものである。この置き換えは総和 Σ の部分で f(n) から離散的に N 個の値を取り出している(=その場で x[n] を作っている)ため成立する。

以下では、フーリエ変換やサンプリングとの関係を説明するために、2つめの定義で説明している箇所がある。

表記

DFTの定義は別の表記法で表現されることもある。

回転因子

テンプレート:読み仮名は定数 N+ で特徴づけられる複素指数定数 ei2π/N である[2]W あるいは WN で略記される。

回転因子 WN は定数 N+ で特徴づけられる、絶対値 1偏角 2π/N,(0arg2π) の複素指数定数である。絶対値が 1 であるため、WN の実数乗はこの複素指数を複素平面上で回転することと解釈できる。そのため実数変数(例: n)で累乗すれば WN が周波数を規定する回転の信号を表現でき(例: y(n)=WNn)、それを実数定数(例: k)で累乗すれば k 倍の周波数をもった信号を表現できる(例: yk(n)=WNkn)。

回転因子を用いて DFT の定義は以下の式でも表現される[2]

X[k]=n=0N1x[n]WNkn

性質

離散フーリエ変換はフーリエ変換に類似した変換であるので、フーリエ変換と類似した性質を持つ。

完全性

離散フーリエ変換においては、有限個の標本点しか使わないため、ある関数を離散フーリエ変換し、それを逆変換した場合に、標本点以外で元の関数と一致するとは限らない。

すなわち、複素関数fに対して、

F(t)=x=0N1f(x)exp(i2πtxN)

により離散フーリエ変換を行い、それを逆変換したものをgとすると

f(x)=g(x)x=0,,N1

は言えるが、その他の点でf(x)=g(x)が言えるとは限らない。これを高周波の問題、あるいはエイリアシング(aliasing)という。

選点直交性

h(t,x)=exp(i2πtx/N)内積

(f,g)=n=0N1f(n)*g(n)

に関し、t,tが整数のとき直交基底である。

(h(t,x),h(t,x))=n=0N1exp(i2πtnN)exp(i2πtnN)=Nδtt

δttクロネッカーのデルタ

畳み込み定理と相互相関定理

二つの(一般には複素数値の)関数f(x)g(x) の畳み込みf*gは次のように定義される。

(f*g)(x)=n=0N1f(n)g(xn)

ただし、fgは次のような周期性を持つとする。

f(x+N)=f(x)g(x+N)=g(x)

周期関数の畳み込みを離散フーリエ変換したものは、それぞれの離散フーリエ変換の積になる(畳み込み定理)。 つまり

N(f*g)=N(f)N(g)

畳み込み和を直接定義式を用いて計算すると O(N²) の計算量が掛かる。しかし、上式より一旦 DFT をしてから掛算をして、そして IDFT で戻す方法もある。DFT の高速アルゴリズムである FFT を介してこのように計算すると O(N log N) の計算量で済む。

また、二つの(一般には複素数値の)関数f(x)g(x)相互相関fgは以下のように定義される。

テンプレート:Indent f,gが上記の周期性を持てば、 テンプレート:Indent さらにfの関数値が実数であれば、N(f)(u)=N(f)(u)となる.ここで上線をつけたz¯zの複素共役を表す。

実数値関数の離散フーリエ変換

応用上は、実数値関数を対象とすることが多いが、fが実数値関数であるときには、 テンプレート:Indent (z¯z複素共役)。そのため出力(Nf)(t)の半分(t>0)で全ての情報を持っていることになる。

逆離散フーリエ変換

テンプレート:読み仮名は次で定義される:

f(x)=1Nt=0N1F(t)exp(i2πxtN)

正規化係数(DFT は 1, IDFT は 1/N)や指数の符号は単なる慣習的なものであり、上式とは異なる式を扱うことがある。DFT と IDFT の差について、それぞれの正規化係数を掛けると 1 / N になることと、指数の符号が異符号であるということがだけが重要であり、根本的には同一の変換作用素と考えられる。DFT と IDFT の正規化係数を両方とも 1/N にすると、両方ともユニタリ作用素(ユニタリ変換)になる。理論的にはユニタリ作用素にするのが好ましいが、実用上数値計算を行うときは上式のように正規化係数を1つにまとめて、スケーリングを一度に行うことが多い。

2次元での変換

デジタル画像処理では2次元変換が画像の周波数成分を解析するのに使われる。

変換は以下のように定義される。

F(u,v)=x=0M1y=0N1f(x,y)e2πi(uxM+vyN)

そして逆変換は次のようになる。

f(x,y)=1MNu=0M1v=0N1F(u,v)e2πi(uxM+vyN)

但し

  • f(x,y)は2次元信号(例えば画像)であり、fxy行成分のことである。
  • F(u,v)f(x,y)の2次元周波数スペクトラムである。ここでux成分の周波数、vy成分の周波数である。

2次元DFT は行列を用いて簡単に記述できる。

テンプレート:Indent

ここで

  • F=[F(0,0)F(1,0)F(M1,0)F(0,1)F(1,1)F(M1,1)F(0,N1)F(1,N1)F(M1,N1)]
  • W=[ωn00ωn01ωn0(N1)ωn10ωn11ωn1(N1)ωn(N1)0ωn(N1)1ωn(N1)(N1)] (注:これはユニタリ行列)
  • f=[f(0,0)f(1,0)f(M1,0)f(0,1)f(1,1)f(M1,1)f(0,N1)f(1,N1)f(M1,N1)]

行列の表記による変形

2次元DFT を行列計算によって以下のように変形できる。

  1. F(u,v)=x=0M1y=0N1f(x,y)e2πi(uxM+vyN)
  2. F(u,v)=x=0M1[y=0N1f(x,y)e2πivyN]e2πiuxM
  3. F(u,v)=x=0M1[y=0N1f(x,y)e2πivyN]yf(x,y)e2πiuxM
  4. Fv=Wf
  5. F(u,v)=x=0M1Fv(x,v)e2πiuxM
  6. F=WFvT
  7. F=WfTW

以下上式の 1 - 7 を解説すると、

  1. 2次元DFTの定義
  2. 式1から e-2πiux/M を内側σから出した
  3. 内側のσは、信号f(x,y)yの次元(y{f(x,y)}と書いた行)の1次元DFTであることを示している
  4. 式3で示した、y{f(x,y)}の行列表現
  5. 式3の注目箇所をFv(x,v)で書き変えた - Fv(x,v)f(x,y)x行目の行のv番目の周波数。f(x,y)の1次元DFTの行を集めたものがFvである。
  6. 式4の1次元DFTの行列表現と同様に、FvTを使って式5を表現した
  7. 式4を式6に代入した結果。ここでW対称行列であるのでW=WTとした。

Fvの行はf(x,y)x行目の行を1次元DFTしたものである。ゆえにFvf(x,y)の各行の1次元DFTした結果の行ベクトルを集めたものになる。F=WFvTにおける、FvTを後から掛ける作用素はFvの列の1次元DFTしたものと同じと考えて良い。

つまり、2次元DFT(2次元フーリエ変換も同様だが)はf(x,y)を、各行ごとに1次元DFTし、その結果をさらに各列ごとに1次元DFTする事と等価である。ここで、1次元DFTの計算はFFTアルゴリズムで高速に計算できる。そのため実用上は2次元DFTも、2次元FFTとして計算される。

他の変換との関係

一般化

離散フーリエ変換が持つ多くの性質は、ωN=ei2πN が1の原始N乗根(primitive root)であることのみに依存している。そのため、単位元の原始N乗根 ωN が存在するならば、複素数以外の環や体においても同様に離散フーリエ変換を定義することができる。離散フーリエ変換 (一般)を参照のこと。

表中で、

W=ei2πN

時間領域 周波数領域 備考
f(x)=1Nk=0N1F(k)Wkx F(t)=n=0N1f(n)Wtn IDFT,DFTのWを使った定義
f(x) F(t) 定義
g(x) G(t) 定義
af(x)+bg(x) aF(t)+bG(t) 線形性
f(x)ei2πmxN F(tm) 時間軸変調、周波数軸移動
f(xa) WatF(t) 時間軸移動(正)
f(x+a) WatF(t) 時間軸移動(負)
m=0N1f(m)g(xm) F(t)G(t) 時間軸畳み込み、周波数軸積
f(x)g(x) 1Nm=0N1F(m)G(tm) 時間軸積、周波数軸畳み込み
f(x) F(Nt) 時間軸共役、周波数軸反転
f(Nx) F(t) 時間軸反転、周波数軸共役
Re(f(x)) 12(F(t)+F(Nt)) 時間軸実部、周波数軸偶関数
Im(f(x)) 12i(F(t)F(Nt)) 時間軸虚部、周波数軸奇関数
12(f(x)+f(Nx)) Re(F(t)) 時間軸偶関数、周波数軸実部
12i(f(x)f(Nx)) Im(F(t)) 時間軸奇関数、周波数軸虚部
ax 1aNWtx1aWt べき乗

応用

DFTは多くの広い分野で利用されている。ここでは、その中の一部を示しているだけに過ぎない。これらの応用は高速フーリエ変換(FFT)とその逆変換(IFFT)で高速に計算できることを前提としていて、定義通りにDFTを計算しているのではない。

信号解析

信号x(t)を解析するのに使われる。ここでtは時間で[0,T]の範囲をとるものとする。例えば、音声信号の場合は、x(t)は時刻tでの空気の圧力を表現することになる。

この信号はN個の等間隔の点で標本化されて、x0, x1, x2, ... , xN-1 の実数列になる。但し標本化の間隔を Δx(=T/N) とすると xk=x(k Δx) である。これのDFTである f0, ..., fN−1 をFFTで計算できる。ただし標本化定理からこれの半分(Nが偶数とすると、fN/2 + 1, ..., fN−1)は冗長であるので捨てるか無視する。

DFT から得られる |fk|/N は信号の周波数 j/T 成分の振幅の半分の値であり、振幅スペクトルと呼ばれる。また、この偏角である arg(fj) はこの周波数成分の位相を表す。また、|fk|2パワースペクトルと呼ばれ、この周波数成分のエネルギーを表している。

fkは信号x(t)のフーリエ級数の係数に相当するものと考えることができる。そのために、無限に広がるフーリエ級数計算を、有限のサンプル点に対しての DFT を使って近似するという形になる。連続信号の場合はこれをスペクトル推定(spectral estimation)と呼び、色々な推定法がある。(例えば、DFT が有限サンプル点を扱うことに起因するスペクトル漏れの弊害を少しでも和らげるために窓関数(窓))を使うことがよく行われる。)

データ圧縮

信号処理の分野では周波数領域(フーリエ変換)で処理をすることも少なくない。例えば、画像の非可逆圧縮や音声圧縮技術などでは離散フーリエ変換の考えが用いられている。信号に対して DFT (実装上ではFFT) を行い、人間が知覚しづらい周波数成分の情報を取り除くことで、正味の情報量を削減(圧縮)する。最も単純な方法では、IDFTの際にその取り除いた周波数情報(フーリエ係数)を0にすることにより、通常のIDFTを実現する。実装の単純化(計算の効率化)のために、実数演算のみで可能な離散コサイン変換を使って2次元情報を圧縮した例がJPEGである。

大きな数の掛け算の計算

テンプレート:Main 大きな数や多項式テンプレート:仮リンクにおいて、DFTを使う高速なアルゴリズムとして1971年にショーンハーゲ・ストラッセン法が発見された。数字や多項式の係数の列を畳み込み演算の対象のベクトルテンプレート:要曖昧さ回避と見なす。するとそれぞれのベクトルの DFT を造り、その結果同士のベクトルを要素ごとに乗算した新たなベクトルを作り、それを逆変換することにより掛算の計算結果が得られる(つまり畳み込み定理を使う)。2007年に理論上はショーンハーゲ・ストラッセン法よりも高速なアルゴリズム(en:Fürer's algorithm)が発見された。

別な定義

離散フーリエ変換 Fn=1Nk=0N1fkei2nπNk

離散フーリエ逆変換 fk=n=0N1Fnei2nπNkとするところもある(図解雑学 フーリエ変換)。

これは、フーリエ変換をF(ω)=f(x)eiωxdx、フーリエ逆変換をf(x)=12πF(ω)eiωxdωとしたときの式である。

脚注

テンプレート:脚注ヘルプ テンプレート:Notelist2

出典

テンプレート:Reflist

参考文献

  • E. O. Brigham, The Fast Fourier Transform and Its Applications (Prentice-Hall, Englewood Cliffs, NJ, 1988).
  • A. V. Oppenheim, R. W. Schafer, and J. R. Buck, Discrete-Time Signal Processing (Prentice-Hall, 1999).
  • S. W. Smith, The Scientist and Engineer's Guide to Digital Signal Processing, (California Technical Publishing, San Diego, 2nd edition, 1999)
  • W. L. Briggs and van E. Henson: The DFT - An Owner's Manual for the Discrete Fourier Transform (SIAM, 1995).

関連項目

テンプレート:デジタル信号処理