本文にスキップする

Select your region & language

Global

Region

基礎からの周波数分析(10)-「離散フーリエ変換(DFT)その2」

前回、高速フーリエ変換(FFT)について説明しましたが、FFTは離散フーリエ変換(DFT)を単に高速に演算する算法に過ぎないので、今回は引き続きDFTのいろんな性質に関してお話しします。なお、今後の説明でDFT演算は、FFTを使っていることを前提とします。

前々回(基礎からの周波数分析(8) 「離散フーリエ変換(DFT)」)で説明したように、N点の時間信号xnをDFTすることにより、同じくN点の周波数関数Xkが得られます。さらに、時間信号と周波数関数 の両方とも、N点を1周期とする周期的な関数となります(図1参照)。

  • 図1 N点時間関数をxnをDFTしたN点周波数関数Xk
    図1 N点時間関数をxnをDFTしたN点周波数関数Xk

DFTの定義式を再掲します。

  • mg-measurement-column-20130719-01

................................(1)

ここで、n=0,1,...,N-1、k=0,1,..., 1 ,N-1

複素フーリエ級数で説明したように、フーリエ変換すると正負の周波数が現れますが、DFTでは、図で明らかなように、点の後半は負の周波数に相当します。周波数関数XkをX(k)と書くと;

X(N-k)= X*(k)                   ................................(2)
ここで、* は複素共役を表す

式(2)の証明は、xn は実数ですから;

  • mg-measurement-column-20130719-02

すなわち、周波数関数 Xk の複素数データ列は、k = N/2 に関して実数部は線対称、虚数部
は点対称、あるいは、k = N/2 に関して、絶対値が同じで位相は符号だけが逆となります
(図1 の下の図は、絶対値を表していることに注意してください)。

「時間信号のサンプリング」(emm 136 号)でのサンプリング定理でも理解できるように、
N点の時間データから、N/2 点の複素数の周波数データが得られることになります。
図2 は、N = 64 点の時間データをDFT(FFT)することにより、同じくN点の周波数デ
ータ(複素数)が得られ、正の周波数と負の周波数のデータ並びを表しています。

  • 図 2 DFT( FFT) における周波数領域のデータ並び(N = 64 の例)
    図 2 DFT( FFT) における周波数領域のデータ並び(N = 64 の例)

実際の DFT の計算方法ですが、式(1)において時間関数xn は複素数データとして扱われ、
通常時間データは実数なので虚数部に0 データを付加してN 点の複素数時間データに変換
して演算を実行しています。

これらの DFT に関する機能や性質を利用して、2ch の実数時間データを1 回のDFT(FFT)
で効率よく演算処理する方法を紹介します。

2 つのN 点の実数時間関数x (n)とy (n)に対して以下の複素数時間関数z (n)を定義します。

................................(3)

式(3)の右辺のDFT は、その線形性の性質より;

.................................(4)

実際の計算で得られた DFT の結果を;

.................................(5)

とすると、式(4)と式(5)を比較して

.................................(6)

.................................(7)

となることが分かります。

時間関数 x (n)とy (n)はともに実数なので、それらの周波数データは式(2)の複素共役の関係が成り立ちますので、式(6)から;

  • mg-measurement-column-20130719-04

また、式(7)から;

  • mg-measurement-column-20130719-05

この結果より、時間関数 x (n)のDFT X (k)は;

  • mg-measurement-column-20130719-06

................................(8)

ここで、k=0, 1,…, N / 2

また、時間関数 y (n)のDFT Y (k)は;

  • mg-measurement-column-20130719-07

.................................(9)

ここで、k=0, 1, …, N / 2

となります。

このように、FFT 演算した後に最後に式(8)と式(9)の演算をすることにより、2ch の時
間関数のDFT を1 回のFFT で実行することが出来ます。また、これから、N 点の複素数時
間データから、同じくN 点の有効な複素数周波数データが得られることが理解できます。

さらに、2N 点の1ch 時間データを前半と後半(あるいは偶数値と奇数値)部分に分解して
それを実数部と虚数部とみなしてN 点の複素数時間データとして、2N 点の時間データの
DFT を1回のN 点FFT で求める方法もあります。

次回は、DFT を使って、FFT アナライザでは、どのように周波数軸上の関数を計算してい
るかをご説明します。

最後に、まとめです。

  1. N 点の時間信号xn をDFT することにより、同じくN 点の周波数関数Xk が得られ、時間信号xn と周波数関数Xk の両方とも、N 点を1周期とする周期的な関数となります。
  2. DFT では、N 点の周波数データのうち、前半が正の周波数領域で後半が負の周波
    数領域となります。
  3. 周波数関数Xk の複素数データ列は、k = N/2 に関して実数部は線対称、虚数
    部は点対称、あるいは、k = N/2 に関して、絶対値が同じで位相は符号だけ
    が逆となります
  4. DFT の性質を利用して、2ch の実数時間データを1 回でFFT する方法や1ch
    の2N 点の時間データを1 回のN 点FFT で求める方法など、効率的な演算が
    可能です。

【キーワード】
DFT(離散フーリエ変換)、FFT(高速フーリエ変換)、複素共役、サンプリング定理

【参考資料】

  1. 「高速フーリエ変換」E. ORAN BRIGHAM 著 科学技術出版社
  2. 「ディジタルフーリエ解析(I)-基礎編-」城戸健一著 コロナ社

(2013年7月19日発行メールマガジンより抜粋)