ようこそ、ecd-assist.com へ

パワースペクトルについて

1.パワースペクトルとは

 スペクトルはフランス語から来ており、対応する英語はスペクトラム(spectrum)です。
パワースペクトルとは信号がもつ有限時間区間のエネルギ(パワー)を周波数成分に分解して表現したものです。
パワースペクトル=パワースペクトラム(power spectrum)は、多くの場合正確にはパワースペクトル密度PSD(power spectral density)のことです。

2.デジタルフーリエ変換/FFTに関する基本事項

 デジタルフーリエ変換(DFT)の公式は 時間軸上の離散データをx(n)、周波数軸上の値をX(k)と書くと、
画像の説明  ここにk=0,1,2,---N-1
画像の説明  ここにn=0,1,2,---N-1

時間軸上の信号のパワーは周波数軸上のパワースペクトルの総和と一致します。(パーセバル(Parseval)の等式) 同じものを別の視点から見ているだけなので、これは当然でしょう。
画像の説明
信号の自乗平均パワーPは、データ数Nで割って、画像の説明

パワースペクトルを画像の説明でノーマライズしておくと 和がそのままパワーになって都合がよいことが分かります。x(n)の単位が[V]のときは、Pの単位は[Vrms^2]になります。

 DFTはN個(FFTで計算するにはNは2の冪)の時間軸データを周波数軸上のN個のデータに変換します。変換された周波数軸上のデータの1番目はDC成分です。N/2+1番目がサンプリング周波数の1/2であるナイキスト周波数成分です。それより上の残りの成分はDCとナイキスト周波数の間の成分をナイキスト周波数で折り返して共役複素数にした値になっています。
したがって、ナイキスト周波数より上の成分N/2+2番目〜N番目の成分はナイキスト周波数以下の成分から復元できます。

3.実例による確認

 以上のことを、フリーソフトであるMaTXを使って確認してみます。(Matlabを使いたいところですが、個人で所有するには高すぎます。)

x=[0,5,4,8,-8,2,0,0] で8個の時系列データを用意し、X=fft(x) を実行すると
(以下はMaTXインタプリタの実行結果です。MaTX(6)、MaTX(7)などはプロンプトです。)

    MaTX Interpreter (matx)
    Windows9x/ME/NT/2000/XP(Borland C++) version 5.3.33
    last modified Mon May 15 17:00:46 JST 2006
    Copyright (C) 1989-2006, Masanobu Koga

    Send bugs and comments to matx@matx.org
    Type 'quit' to exit, 'help' for functions, 'demo' for demonstration.

 MaTX (6) x=[0,5,4,8,-8,2,0,0];
 MaTX (7) X=fft(x)
  === X ( 1 x 8) CoMatrix ===
     [ ( 1)-Real         ( 1)-Imag ]  [ ( 2)-Real         ( 2)-Imag ]
  ( 1) 1.10000000E+01 0.00000000E+00 4.46446609E+00 -1.17781746E+01
     [ ( 3)-Real         ( 3)-Imag ]  [ ( 4)-Real         ( 4)-Imag ]
  ( 1) -1.20000000E+01 1.00000000E+00 1.15355339E+01 -3.77817459E+00
     [ ( 5)-Real         ( 5)-Imag ]  [ ( 6)-Real         ( 6)-Imag ]
  ( 1) -1.90000000E+01 0.00000000E+00 1.15355339E+01 3.77817459E+00
     [ ( 7)-Real         ( 7)-Imag ]  [ ( 8)-Real         ( 8)-Imag ]
  ( 1) -1.20000000E+01 -1.00000000E+00 4.46446609E+00 1.17781746E+01

N=8個のデータをデジタルフーリエ変換しました。第1項がDC成分で、虚数部はゼロになっています。またN/2+1番目である第5項はナイキスト周波数成分で、これも虚数部がゼロです。その次の第6項は、ナイキスト周波数成分の第5項を中心に折り返したときに対応する、1つ手前の第4項と共役複素数の関係になっています。同様に第7項は第3項、第8項は第2項の共役複素数です。

上記の例で、更にMaTXを使って、パーセバルの等式を確認してみます。
時間軸上のデータの自乗和を求めると、

MaTX (8) P=sum(x.*x)
P = 173

フーリエ変換されたデータ列とその共役複素数の列を要素毎に掛けて絶対値の自乗の列を計算し、その要素の総和を求めると、

MaTX(9) W=sum(X.*conj(X))
W = (1384,0)

上記計算では、答えのWが複素数として表示されており、実数部=1384、虚数部=0です。
Re( )により実数部だけを取り出して、N=8で割ると、確かに時間軸上のデータの自乗和173と一致します。

MaTX(10) Re(W)/N
ans = 173
MaTX(11) exit

(exitでインタープリタ終了です。)

信号x(n)は大抵の場合実数ですが、フーリエ変換されたX(k)は上記の例のように一般には複素数であり、多くの場合その絶対値の自乗|X(k)|2を計算して用います。これがパワースペクトルです。
(尚、絶対値や絶対値の自乗にしてしまうと、位相情報が失われるので、逆変換によって元の時間軸情報に戻すことはできなくなります。)

次へ

powered by Quick Homepage Maker 5.0
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional