はじめに
スペクトル解析に関する情報のうち,「〇〇スペクトル (△△)」という用語についてまとめる.各文献・HPで定義の仕方が異なるため,筆者は混乱極まった.ようやっとそれっぽくまとめられたので,公開する.同じようにスペクトル解析初心者の人たちの参考になれば幸いである (色々と並べたので逆に混乱することになるかもしれないが).また,記述や解釈に誤りがあった場合は編集リクエストを送っていただけるとありがたい.
「スペクトル解析」なので,FFTのサンプルプログラムも載せようと考えたが,存外用語をまとめるだけで長くなってしまったので別記事にFFTのことはまとめる (予定,記事が書け次第リンクを追加).
なお,可能な限り参考文献・リンクを載せているが,ネットフリーではないものも含まれていることを注記しておく.
ONOSOKKI定義による用語の整理
本稿では,まずONOSOKKIの計測コラムの定義に倣って関連用語をまとめ,次にそれらの用語が別資料ではどのように定義されているのかを総ざらいしていく.主にパワースペクトル,エネルギースペクトル,パワースペクトル密度 (関数),エネルギースペクトル密度 (関数) の定義を整理する.なお,各種スペクトルの実用的な使い分けについてはONOSOKKI1等を参照する.
フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)
時間関数$x(t)$に対して,周波数$f$におけるフーリエスペクトル (フーリエ成分) を以下のフーリエ変換から得られるとする (ONOSOKKI2 p. 1).
$$
X(f) = \int^\infty_{-\infty} x(t)e^{-i2\pi ft}\mathrm{d}t
$$
フーリエスペクトルは,時間波形$x(t)$に含まれる周波数成分の大きさ (強さ) を表す.次元は,元の信号$x(t)$の単位を$\mathrm{EV}$とすると,$\mathrm{EV\ s}$.
ここで,フーリエスペクトル (フーリエ成分) は上式で定義されるが,フーリエ級数 (フーリエ係数) はフーリエ級数展開における値であり,「有限時間長$T$で除算したフーリエスペクトル」が,ONOSOKKI2の式 (1) での複素フーリエ係数$c_n$と等価となることに注意する.離散周波数$k$に対しては,ONOSOKKI2の式 (10) の関係が成り立つ.
$$
c_k = \frac{1}{T} X(k)
$$
片側スペクトル,両側スペクトル (One-sided spectrum, Two-sided spectrum)
スペクトルの周波数領域は,$-\infty\lt f \lt\infty$として扱われる場合,両側スペクトル (Two-sided spectrum) と呼ぶ.実験や観測データの解析では$0\lt f\lt\infty$とするほうが便利なため,スペクトルの大きさを2倍にして$0\lt f\lt\infty$の範囲で定義したスペクトルを片側スペクトル (One-sided spectrum) と呼んで区別する.
エネルギースペクトル (Energy spectrum)
信号のエネルギーが周波数に対してどのように分布するかを示したもの.すなわち,周波数$f$に対するエネルギー$|X(f)|^2$の分布のこと (ONOSOKKI3 p. 4).
$$
E(f) = |X(f)|^2
$$
エネルギースペクトルは,次式のパーセバルの定理 (Parseval's theorem): 時間軸上の全エネルギーは,周波数軸上の全エネルギーに等しい,を満たす (ONOSOKKI4 p. 5).
$$
\int_{-\infty}^\infty x^2(t) \mathrm{d}t = \int_{-\infty}^\infty |X(f)|^2 \mathrm{d}f
$$
パワースペクトル (Power spectrum)
上式のパーセバルの定理において,信号$x(t)$を$t=0$から有限時間長$T$に限定するとして,片側スペクトルを考える ($0<f<\infty$) と,次のように変形できる.ただし,信号は周期$T$の周期信号を仮定する.
$$
\int_0^T x^2(t) \mathrm{d}t = 2\int_0^\infty |X(f)|^2 \mathrm{d}f
$$
右辺を離散化すると,$\mathrm{d}f \to 1/T$ ($f = k/T,\ k=0,1,2,\cdots$),また,[フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)](#フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient))で挙げた複素フーリエ級数 (係数) とフーリエスペクトルの関係から,
$$
\int_0^T x^2(t) \mathrm{d}t = 2 \sum_{k=0}^\infty |c_k|^2 T
$$
右辺の$T$を左辺に移動し,$P(k) = 2|c_k|^2$とおくと,
$$
\frac{1}{T} \int_0^T x^2(t) \mathrm{d}t = \sum_{k=0}^\infty P(k)
$$
となる.この式 (ONOSOKKI5 p. 2 式 (6)) は,周波数毎の成分$P(k)$の総和が時間信号$x(t)$のパワー (左辺) となるので,周波数関数$P(k)$を (離散) パワースペクトルと呼ぶ.パワースペクトルの単位は,元の信号の単位を$\mathrm{EU}$とすると,$\mathrm{EU}^2$.
パワースペクトル密度 (関数) (Power spectral density function: PSD)
「元の時間信号に含まれる単位周波数 (1 Hz幅) 当たりのパワー (パワー = 単位時間あたりのエネルギー) を周波数の関数として表現したもの」(ONOSOKKI3 pp. 2–3),つまりパワースペクトル$P(k)$を単位周波数で規格化したスペクトルであり,周波数分解能を$\varDelta f$とすると,$\mathrm{PSD}(k)$ (ONOSOKKIでは$G(k)$と表現しているが分かりにくいので変更) は,
$$
\mathrm{PSD}(k) = \frac{P(k)}{\varDelta f}
$$
FFT (高速フーリエ変換) における周波数分解能$\varDelta f$に対して,FFT の時間窓長は$T = 1/\varDelta f$であることから,
$$
\mathrm{PSD}(k) = \frac{P(k)}{\varDelta f} = \frac{1}{\varDelta f}2|c_k|^2 = \frac{1}{\varDelta f}2\left|\frac{X(k)}{T}\right|^2 = 2\frac{|X(k)|^2}{T}
$$
係数$2$はone-sided spectrumを表しているので,two-sided spectrumにして係数を削除し,ランダム信号 (周期$\infty$の信号) に対してFFTをかけるとする ($T\to\infty$) と,ONOSOKKI3 p. 3 式 (2) となる.
$$
\mathrm{PSD}(k) = \lim_{T\to\infty}\frac{|X(k)|^2}{T}
$$
なお,周波数$f$に対しても,上式の離散周波数$k$を$f$に変えた式が同様に成り立つ.PSDの単位は,$P(k)$の単位が元の信号の単位を$\mathrm{EU}$とすると,$\mathrm{EU}^2$となることから,$\mathrm{EU}^2/\mathrm{Hz}$.
ちなみに,パワースペクトル (Power spectrum)で最後に示した式 (ONOSOKKI5 p. 2 式 (6)) より,
$$
\frac{1}{T} \int_0^T x^2(t) \mathrm{d}t = \sum_{k=0}^\infty \mathrm{PSD}(k)\varDelta f
$$
両辺の連続極限をとると (離散系から連続系に変換すると),
$$
\lim_{T\to \infty}\frac{1}{T} \int_0^T x^2(t) \mathrm{d}t = \int_0^\infty \mathrm{PSD}(f)\mathrm{d} f
$$
左辺は自己相関関数のラグ$\tau = 0$の場合を表し,右辺には$\exp(i2\pi f \tau)|_{\tau = 0} = 1$が省略されていると考えると,この式は自己相関関数のフーリエスペクトルがPSDになることを示している.このような両者の関係をWiener-Khintchineの公式という.
エネルギースペクトル密度 (関数) (Energy spectral density function: ESD)
「衝撃波形のPSDを求めると,例えば,$T_1$と$T_2$の時間窓でそのパワー値に違いが出てきますので,求められたPSDにさらに時間窓長$T$を乗算する処理を行います.」(ONOSOKKI3 p. 4)
$$
\mathrm{ESD}(k) = T \cdot \mathrm{PSD}(k) = T \cdot 2\frac{|X(k)|^2}{T} = 2|X(k)|^2
$$
係数$2$はOne-sided spectrumを表す.ESDの単位は,PSDの単位が元の信号の単位を$\mathrm{EU}$とすると$\mathrm{EU}^2/\mathrm{Hz}$となることから,$\mathrm{EU}^2\ \mathrm{s}/\mathrm{Hz}$.以上より,この定義はエネルギースペクトル (Energy spectrum)で示したエネルギースペクトルと等価である.
ONOSOKKI定義と他資料の突き合わせ
ONOSOKKI定義による用語の整理で示した各定義が,確認した限りの各資料において,どのように対応しているのかを整理する.
乱流工学ハンドブック
乱流工学ハンドブック6 p. 159,式 (8.2.5) による定義 (同様の内容がながれ7 p. 321 式 (1.51) にあり) では時間関数ではなく3次元空間関数を考えて,角周波数に対応する波数も波数ベクトルとなるためややこしいことになっているが,スペクトル解析の基本的な概念はONOSOKKIと同じである.
流体の速度$\boldsymbol{u}(\boldsymbol{x},t)$に対して,そのフーリエ展開,フーリエ係数をそれぞれ以下のように定義する (フーリエ展開はONOSOKKIのフーリエ逆変換,フーリエ係数はフーリエスペクトルに対応).ここで,積分は無限領域とする.
$$
\boldsymbol{u}(\boldsymbol{x},t) = \int \hat{\boldsymbol{u}}(\boldsymbol{\kappa},t) e^{i \kappa x} \mathrm{d}\boldsymbol{x},\qquad \hat{\boldsymbol{u}}(\boldsymbol{\kappa},t) = \frac{1}{(2 \pi)^3} \int \boldsymbol{u}(\boldsymbol{x},t) e^{-i \kappa x} \mathrm{d}\boldsymbol{x}
$$
$\boldsymbol{\kappa}$は波数ベクトルであり,$\boldsymbol{u}(\boldsymbol{x},t)$が$x$,$y$,$z$方向それぞれに周期的でその周期を$L_\mathrm{box}$,$\boldsymbol{n}$を各成分が整数であるベクトルとして$\kappa = (2\pi / L_\mathrm{box})\boldsymbol{n}$と表される.すなわち,波数ベクトルの各方向は角周波数に対応し,仮に変換式中の$\kappa$を$2\pi \kappa$とすると (周波数に対応させると) $\hat{\boldsymbol{u}}$の$1/(2\pi)^3$は消える.また,乱流場が統計的に一様で$\boldsymbol{x}$によらないとして,単位質量あたりの平均運動エネルギー$E(t) \equiv \overline{u_i(\boldsymbol{x},t) \cdot u_i(\boldsymbol{x},t)}/2$ (上付きバーは空間平均を表す) ,2点速度相関関数 (空間方向の自己相関関数) $Q_{ij}(\boldsymbol{r},t) \equiv \overline{u_i(\boldsymbol{x}+\boldsymbol{r},t) \cdot u_j(\boldsymbol{x},t)}$,フーリエ係数の2次相関$\hat{Q}_{ij}(\boldsymbol{\kappa},t) \equiv \overline{\hat{u}_i(\boldsymbol{\kappa},t) \hat{u}_j(-\boldsymbol{\kappa},t)} = 1/(2\pi)^3 \int Q_{ij}(\boldsymbol{r},t) \exp(-i\boldsymbol{\kappa} \cdot \boldsymbol{r}) \mathrm{d}^3\boldsymbol{r}$の間には,次式の関係が成り立つ.
\begin{align}
E(t) &\equiv \frac{1}{2} \overline{u_i(\boldsymbol{x},t) \cdot u_i(\boldsymbol{x},t)} \\
&= \frac{1}{2} Q_{ii}(0,t) \\
&= \frac{1}{2} \int \hat{Q}_{ii}(\boldsymbol{\kappa},t) \mathrm{d}^3 \boldsymbol{\kappa} \\
&= \int_0^\infty E(\kappa,t) \mathrm{d}\kappa \qquad\text{($\kappa = |\boldsymbol{\kappa}|$)} \\
\end{align}
これは,3次元空間スペクトルにおけるWiener-Khintchineの公式 (ただし,$\boldsymbol{r} = \boldsymbol{0}$) を表している.ここで,$E(\kappa,t)$はエネルギースペクトル (energy spectrum) と呼ばれ (ながれ7では,「$E(\kappa)$は波数が$\kappa$と$\kappa + \varDelta \kappa$の球殻内に含まれるすべてのフーリエ成分の振幅の自乗平均の和を表し,エネルギースペクトルとよばれる」とあるのでこの定義だと上式の$E(\kappa,t)\mathrm{d}\kappa$がエネルギースペクトルとなる...のはまずいから乱流工学ハンドブック6 (発行年が新しいほう) では訂正した?),波数ベクトル空間内の与えられた波数$\kappa$をもつ球面上での$\hat{Q}_{ii}(\boldsymbol{\kappa},t)/2 = \hat{Q}(\kappa,t)/2$の積分,すなわち,
$$
E(\kappa,t) = 2\pi \kappa^2 \hat{Q}(\kappa,t)
$$
である (ながれ7では$\hat{Q}(\kappa,t)$をエネルギースペクトル密度と呼んでいる.乱流工学ハンドブック6では未定義.$E(\kappa,t)$を球表面積で割り,球表面の平均エネルギースペクトルという解釈に則れば,「密度」と呼ぶのも頷ける).
さて,1次元に単純化して考えると,エネルギー$E(t)$とエネルギースペクトル$E(\kappa,t)$の両者には次式が成り立つ.
$$
E(t) \equiv \frac{1}{2} \overline{u(x,t) u(x,t)} = \int_0^\infty E(\kappa,t) \mathrm{d}\kappa
$$
左辺は空間平均値を表すので,これは[パワースペクトル密度 (関数) (Power spectral density function: PSD)](#パワースペクトル密度 (関数) (Power spectral density function: PSD))で示した時間のWiener-Khintchineの公式に対応し,$E(\kappa,t)$はPSDに対応している.ちなみに,ながれ7で定義されているエネルギースペクトル密度は,[エネルギースペクトル密度 (関数) (Energy spectral density function: ESD)](#エネルギースペクトル密度 (関数) (Energy spectral density function: ESD))で示した定義とは対応していない.
日野 (2010), 「スペクトル解析 (新装版)」
フーリエスペクトル$X(f)$の定義は,[フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)](#フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient))で示した定義と同じである.
また,「周波数$f$と成分波のエネルギー$|X(f)|^2$の分布の関係をエネルギースペクトル (energy spectrum) と定義する.」(スペクトル解析8 p. 21) とある.したがって,$|X(f)|^2$だろうが,$\lim_{T\to\infty}|X(f)|^2/T$だろうが,関係を表しているという意味ではどちらもスペクトル解析8におけるエネルギースペクトルであるといえる.ただし,パワースペクトル密度関数は[パワースペクトル密度 (関数) (Power spectral density function: PSD)](#パワースペクトル密度 (関数) (Power spectral density function: PSD))と同じ式でその用語を定義しており,エネルギースペクトルとは区別している.
辻ら (2009), 「相関とスペクトル解析」
フーリエ成分$X(f)$ ([フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)](#フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient))と同じ定義) は,「周期$f$の波の振幅であり,$|X(f)|^2$はその波のエネルギーに対応する.フーリエ係数は,$[-T/2,+T/2]$の範囲で算出されていることから区間$T$を1周期と考え,周期$T$での平均エネルギーを用いてパワースペクトル (密度関数) を定義する.
$$
P(f) = \lim_{T\to \infty}\left[\frac{1}{T}|X(f)|^2\right] = \lim_{T\to \infty}\left[\frac{1}{T}X(f)X^*(f)\right]
$$
ここで,上付き添え字$\ast$は複素共役数をあらわす.」(相関とスペクトル解析9) とあるように,[パワースペクトル密度 (関数) (Power spectral density function: PSD)](#パワースペクトル密度 (関数) (Power spectral density function: PSD))と同じ定義を,パワースペクトルとパワースペクトル密度関数両方に区別なしに利用している.
北海道大学 (2012), PDF資料「スペクトル解析」
フーリエ成分$X(f)$ ([フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)](#フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient))と同じ定義) に対して,エネルギースペクトルは[エネルギースペクトル密度 (関数) (Energy spectral density function: ESD)](#エネルギースペクトル密度 (関数) (Energy spectral density function: ESD))と同定義,パワースペクトルは[パワースペクトル密度 (関数) (Power spectral density function: PSD)](#パワースペクトル密度 (関数) (Power spectral density function: PSD))と同定義である.しかし,北大資料10中にパワースペクトル密度の記述は存在しない.
東京大学 (2013), PDF資料「数理地球科学基礎演習 II 時系列解析 (1)」
フーリエ成分$X(f)$ ([フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient)](#フーリエ変換,フーリエスペクトル (フーリエ成分),フーリエ係数 (Fourier transform, Fourier spectrum, Fourier coefficient))と同じ定義),区間$T$に対して,「有限区間での周期関数や$(−T/2,T/2)$以外では変動がゼロの場合にはエネルギー$|X(f)|^2$も有限となるが,区間$T$が無限の場合にはエネルギーも無限大になってしまう.そこで,単位時間あたりの平均エネルギーを考えたものがパワースペクトル密度である.
$$
P(f) = \lim_{T\to \infty}\frac{|X(f)|^2}{T} = \lim_{T\to \infty}\frac{X(f)\cdot X^*(f)}{T}
$$
ここで,$X^*(f)$は$X(f)$の共役複素数である.」(東大資料11 p. 6).すなわち,[パワースペクトル密度 (関数) (Power spectral density function: PSD)](#パワースペクトル密度 (関数) (Power spectral density function: PSD))と同定義である.しかし,東大資料11中で「パワースペクトル」が「パワースペクトル密度」と同じ扱いを受けていることから,両者の区別はつけていない.
また,エネルギースペクトル密度は,「信号のエネルギーが周波数に対してどのように分布するかを示したもの.すなわち,周波数$f$に対するエネルギー$|X(f)|^2$の分布のこと,
$$
\Phi(f) = |X(f)|^2
$$
」(東大資料11 p. 6).すなわち,[エネルギースペクトル密度 (関数) (Energy spectral density function: ESD)](#エネルギースペクトル密度 (関数) (Energy spectral density function: ESD))と同定義である.