位相スペクトルは、信号の周波数成分ごとの位相情報を表した重要な解析ツールです。
「振幅スペクトルはわかるけど位相スペクトルって何?」「どうやって解析すればいいの?」という疑問をお持ちの方も多いのではないでしょうか。
位相スペクトルは振幅スペクトルと並んで信号の完全な情報を担っており、音声処理・画像処理・通信解析など幅広い応用で重要な役割を果たします。
この記事では、位相スペクトルの定義・計算方法・フーリエ変換との関係・解析の実践手順・応用例まで丁寧に解説します。
信号処理・データ解析に関わるすべての方に役立つ内容ですので、ぜひ最後までお読みください。
位相スペクトルとは「フーリエ変換によって得られる各周波数成分の位相(偏角)の分布」
それではまず、位相スペクトルの基本的な定義と意味について解説していきます。
位相スペクトルとは、信号 x(t) をフーリエ変換して得られる複素スペクトル X(f) の各周波数成分の偏角(位相角)φ(f)を周波数に対してプロットしたものです。
X(f)=|X(f)|×e^(jφ(f)) において、|X(f)|が振幅スペクトル、φ(f)=arg(X(f))が位相スペクトルに対応します。
フーリエ変換と2つのスペクトル:信号x(t)のフーリエ変換X(f)は複素数値を持ちます。振幅スペクトル|X(f)|は「各周波数成分の大きさ」、位相スペクトルφ(f)=arctan(Im(X(f))/Re(X(f)))は「各周波数成分の時間的タイミング」を表します。信号を完全に再現するには両方の情報が必要です。
位相スペクトルの計算方法
位相スペクトルの計算手順をご説明します。
まず離散フーリエ変換(DFT)またはFFT(高速フーリエ変換)を使って信号の複素スペクトルX[k]を計算します。
各周波数ビンkの位相スペクトルはφ[k]=arctan(Im(X[k])/Re(X[k]))または angle() 関数(MATLAB・NumPy)で計算します。
位相の値は−π〜+πの範囲に「折り返されている」ため、連続した位相を見たい場合は「アンラッピング(unwrapping)」処理が必要です。
位相スペクトルと振幅スペクトルの役割の違い
振幅スペクトルは「どの周波数成分がどれだけ含まれているか(エネルギー)」を表します。
位相スペクトルは「各周波数成分が時間的にどこに位置しているか(タイミング)」を表します。
有名な実験として、画像のフーリエ変換において振幅スペクトルと位相スペクトルを2つの画像間で交換すると、位相スペクトルを提供した側の画像の形が復元されるという結果が知られており、位相スペクトルが信号の「形の情報」を主に担っていることを示しています。
DFTとFFTによる位相スペクトルの数値計算
実際の信号処理では、離散時間信号に対してFFTを使って位相スペクトルを計算します。
Python(NumPy)での計算例:import numpy as np; x = np.array([信号データ]); X = np.fft.fft(x); phase = np.angle(X);(位相スペクトル、単位ラジアン)。unwrappedPhase = np.unwrap(phase);(位相アンラッピング後)
MATLABでは angle() と unwrap() 関数を組み合わせて同様の計算が行えます。
位相スペクトルの解析方法と注意点
続いては、位相スペクトルの具体的な解析方法と実践上の注意点を確認していきます。
位相アンラッピングの必要性と手法
arctan関数による位相計算の結果は−π〜+πの範囲に限定されます(ラッピングされた位相)。
実際の位相が2π以上の変化をする場合、ラッピングされた位相には±2πの不連続ジャンプが生じます。
位相アンラッピングとは、このジャンプを検出して連続した位相に復元する処理で、群遅延解析・位相速度計算・干渉縞解析では必須の前処理です。
線形位相と非線形位相の意味
位相スペクトルが周波数に対して線形(φ(f)=−2πft₀)の場合、これは信号全体が時間t₀だけ遅延していることを意味します(線形位相系)。
線形位相フィルター(FIRフィルターなど)は波形の歪みなく信号を遅延させることができるため、音声・画像処理での使用に適しています。
非線形位相(位相歪み)があると各周波数成分の遅延時間が異なるため、波形が歪んで伝送されてしまいます。
ゼロ位相フィルタリングの意味
信号処理において、前向きと逆向きの2回フィルタリングを行う「ゼロ位相フィルタリング(Matlab: filtfilt)」は位相スペクトルを変化させないフィルタリング方法です。
前向きフィルターで生じた位相遅れを逆向きフィルターが打ち消すため、位相スペクトルが保存され、信号の時間的な位置情報(タイミング)が保たれます。
脳波・心電図・音声信号など生体信号処理での時刻情報が重要な解析にゼロ位相フィルタリングが活用されています。
位相スペクトルの応用分野
続いては、位相スペクトルが実際にどのような分野で活用されているかを確認していきます。
音声処理・音楽解析への応用
音声合成・音声変換・音楽の音色分析では、振幅スペクトルだけでなく位相スペクトルの管理が重要です。
ボコーダー・位相ボコーダー(Phase Vocoder)はSTFT(短時間フーリエ変換)の振幅・位相スペクトルを操作することで音声の時間伸縮・ピッチ変換を実現する技術です。
近年の深層学習を使った音声生成モデルでも、位相スペクトルの推定・再構成が高品質な音声合成の鍵となっています。
地震波・医療信号解析への応用
地震波解析では、位相スペクトルの周波数依存性(位相速度の分散)から地球内部の構造を推定するサーフェスウェーブトモグラフィーが行われます。
医療分野では、脳波(EEG)・筋電図(EMG)の位相スペクトル解析が神経活動の同期・位相結合の評価に使われています。
通信・レーダー信号処理での位相スペクトル
レーダー・ソナー・通信システムでは、受信信号の位相スペクトル解析によって距離・速度・方向などの情報を抽出します。
FMCW(周波数変調連続波)レーダーでは送受信信号の位相差から距離を、位相の時間変化率(ドップラー位相シフト)から速度を計測します。
まとめ
位相スペクトルとは、フーリエ変換で得られる複素スペクトルの偏角(位相角)を周波数に対してプロットした、信号の時間的タイミング情報を表す重要な解析ツールです。
FFTと arctan 計算・位相アンラッピング処理で求められ、振幅スペクトルとセットで信号の完全な情報を構成します。
線形位相・ゼロ位相フィルタリング・位相ボコーダー・レーダー信号処理など、位相スペクトルの応用は信号処理技術の中核をなしています。
ぜひ今回の内容を参考に、位相スペクトルの解析方法と応用を実践で活用してください。