短時間
フーリエ変換(Short-Time Fourier Transform, STFT)は、時間とともに変化する信号の
周波数特性を解析するための手法です。特に、音声信号のように時間的に
周波数が変動する信号の分析に有効です。STFTは、信号に
窓関数を適用し、その
窓関数を時間軸上でずらしながら
フーリエ変換を行うことで、時間的な
周波数変化を捉えます。
STFTの原理
フーリエ変換は、理論的には
無限の区間にわたる積分を必要としますが、現実の信号は有限な時間範囲でしか観測できません。そのため、ある時間範囲の信号に対して
フーリエ変換を行う際、その範囲外の信号は周期的に繰り返されると仮定して計算します。しかし、この仮定は信号の不連続性を生み、正確な
周波数解析を妨げる可能性があります。そこで、
窓関数を用いて信号を切り出すことで、不連続性の影響を軽減します。
窓関数は、中央付近で大きな値を持ち、範囲外でゼロに近づく関数です。この
窓関数を信号に掛けることで、信号の端での不連続性を緩和し、より正確な
周波数解析を可能にします。
STFTの数式表現
STFTは以下の数式で表現できます。
$$ \mathrm{STFT}_{x,w}(t,\omega) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j\omega\tau} d\tau $$
ここで、\( x(t) \)は変換対象の信号、\( w(t) \)は
窓関数、\( t \)は時間、\( \omega \)は角
周波数、\( j \)は
虚数単位です。
窓関数 \( w(t) \)は、通常 \( t=0 \)付近を中心とした山型の関数で、\( t=0 \)から離れると0に収束します。 \( \mathrm{STFT}_{x,w}(t,\omega) \)は、時刻 \( t \)における角
周波数 \( \omega \)のスペクトルを表す
複素数です。
離散時間信号に対するSTFTは以下のようになります。
$$ \mathrm{STFT}_{x,w}[n,\omega] = \sum_{m=-\infty}^{\infty} x[m] w[m-n] e^{-j\omega m} $$
ここで、\( x[n] \)は離散時間信号、\( w[n] \)は
窓関数、\( n \)は離散時間です。\( \omega \)は連続値でも構いませんが、実際には計算機で高速
フーリエ変換(FFT)を用いて計算されるため、\( \omega \)も離散化されます。
STFTの絶対値の二乗はパワースペクトル、偏角は
位相スペクトルを表します。これらの時間変化を調べることで、信号の時間的な
周波数特性を把握できます。
STFTには、
フーリエ変換に起因する
不確定性原理が影響します。
不確定性原理とは、時間分解能と
周波数分解能の間には
トレードオフの関係があるという原理です。つまり、時間分解能を高くしようとすると
周波数分解能が低くなり、逆に
周波数分解能を高くしようとすると時間分解能が低くなります。
具体的には、
窓関数の幅を広くすると
周波数分解能が向上しますが、時間分解能は低下します。逆に、
窓関数の幅を狭くすると時間分解能は向上しますが、
周波数分解能は低下します。この
トレードオフの関係は、時間変化する信号の解析において重要な考慮事項となります。
この
不確定性原理は、数式で以下のように表されます。
$$ \Delta t \Delta \omega \geq \frac{1}{2} $$
ここで、\( \Delta t \)は時間の不確定さ、\( \Delta \omega \)は
周波数の不確定さです。
この
不確定性原理は、量子力学におけるハイゼンベルクの
不確定性原理とも関連があります。量子力学では、
運動量と
位置の不確定さの間に同様の
不確定性原理が存在しますが、これは
フーリエ変換の
不確定性原理に由来します。
例
例えば、10 Hz、25 Hz、50 Hz、100 Hzと5秒ごとに
周波数が変化する信号を考えます。この信号に対して、
窓関数幅を25msと1000msでSTFTを行った場合、25msの窓では時間分解能が高いため、信号の
周波数変化のタイミングは正確に捉えられますが、
周波数はぼやけてしまいます。一方、1000msの窓では
周波数分解能が高いため、
周波数は正確に特定できますが、
周波数が変化したタイミングはぼやけてしまいます。
逆短時間
フーリエ変換(Inverse Short-Time Fourier Transform, ISTFT)は、STFTによって得られた時間
周波数表現を時間表現に戻す操作です。ISTFTでは、各フレームのフーリエ係数を逆変換して時間表現に戻し、合成
窓関数を掛けてフレーム群を重ね合わせます。この時、信号を完全に再構成するための条件(完全再構成条件)が存在します。
しかし、一般的には、時間的に重なった信号を重畳加算するため、元の信号を完全に再構成することは難しい場合があります。特に、矩形窓を使い複数フレームを重ねた場合、元の信号よりも振幅が大きくなってしまうことからも明らかです。
まとめ
短時間
フーリエ変換(STFT)は、時間変化する信号の
周波数特性を分析する上で非常に重要なツールです。
窓関数を用いることで、信号の不連続性による影響を低減し、時間と
周波数分解能の間で
トレードオフを考慮する必要があります。この技術は、音声処理、音楽分析、画像処理など、幅広い分野で活用されています。