STFTスペクトログラム
- 更新日2025-07-30
- 9分で読める
短時間フーリエ変換 (STFT) アルゴリズムを使用して、時間/周波数共同領域における信号エネルギー分布を計算します。

入力/出力
時間-周波数構成
—
時間-周波数構成は、周波数ビンの構成を指定する他、STFTスペクトログラム{X}{X}の列数を決定します。
X
—
Xは、入力時間領域信号を指定します。
時間-周波数サンプリング情報
—
時間-周波数サンプリング情報は、時間/周波数共同領域内での信号のサンプルに使用する密度を指定し、結果の2D時間/周波数配列の大きさを定義します。
窓情報
—
窓情報は、STFTの計算に使用する窓の情報を指定します。
窓パラメータ
—
窓パラメータは、カイザー窓ではベータパラメータ、ドルフ・チェビシェフ窓ではメインローブとサイドローブの比率s、ガウス窓では標準偏差です。窓タイプが他の窓の場合、このVIはこの入力を無視します。 窓パラメータのデフォルト値はNaNです。カイザー窓ではベータ~0、ドルフ・チェビシェフ窓ではs~60、ガウス窓では
エネルギー節約?
—
エネルギー節約?は、時間/周波数共同領域が時間領域のエネルギーに等しくなるようにSTFTスペクトログラム{X}をスケールするかどうかを指定します。デフォルトはTRUEです。
STFTスペクトログラム{X}
—
STFTスペクトログラム{X}は、時間/周波数共同領域の時間波形エネルギー分布を記述する2次元配列です。
エラー
—
エラーは、VIからのエラーまたは警告を返します。エラーは「エラーコードからエラークラスタ」VIに配線して、エラーコードまたは警告をエラークラスタに変換できます。 |
このVIでは、STFTスペクトログラム{X}を計算するためにまずXのSTFTが計算されます。XのSTFTを計算するには、このVIでスライド式窓を使用して信号を複数ブロックのデータに分割します。次に、Nポイントの高速フーリエ変換を各ブロックのデータに適用し、各ブロックのデータの周波数内容を取得します。ここで、Nは周波数ビンです。STFTは信号Xの最初のサンプルで最初のスライド式窓の中心に整列し、ゼロを追加して信号の最初を拡張します。スライド式窓は時間ステップサンプルを次のブロックのデータに移動させます。窓をXから移動する場合、このVIはゼロでXをパッドします。
以下の図は、このVIでSTFTを計算する手順を示します。

周波数ビンを2の累乗に強制?がTRUEで周波数ビンが2の累乗でない場合、以下の式も真となります。
K = 2[log2(周波数ビン)]ここで、[ ] は最近接法です。
FALSEの場合、K = 周波数ビンとなります。
STFTが行列STFT{X},の結果である場合、STFT{X}の大きさはM x Kで、以下が真となります。

- LはXの要素数です。
は切り下げ演算です。
STFT{X}を以下の式で使用して、時間/周波数共同領域のエネルギーを近似できます。

この結果は、以下の式で示すように時間領域のエネルギーとほぼ等しくなります。

XのSTFTの計算完了後、XのSTFTスペクトログラムが計算されます。このVIでは、STFTスペクトログラムがはSTFT{X}の要素の振幅の平方根として計算されます。FFTは対称な結果を返すため、STFTスペクトログラム{X}は以下の式で示すようにSTFT{X}の左半分だけで計算します。

ここで、以下はTRUEです。
- i = 0, 1, ..., M-1
- j = 0, 1, ..., N-1

は切り上げ演算です。
時間ステップに小さい値を指定すると、大きなスペクトログラムが返され、演算時間とメモリが大幅に増加する可能性があります。NIでは、スペクトログラムが512を超えないように、時間ステップを設定することをお勧めします。また、詳細データを検証する小さいサンプリングレートが必要なときに信号の長さが大きい場合、信号をより小さいセグメントに分割して各セグメントのスペクトログラムを計算してください。
窓の長さは、STFTの時間分解能と周波数分解能に影響します。幅が狭い窓を適用すると、精度の高い時間分解能が得られますが周波数分解能の精度が低くなります。これは、窓の持続時間が短いのに対し、周波数帯域幅が広いためです。幅が広い窓を適用すると、精度の高い周波数分解能が得られますが時間分解能の精度が低くなります。これは、窓の持続時間が長いのに対し、周波数帯域幅が広いためです。
このVIは、 force freq bins to power of 2?、 exclude Nyquist frequency?、 energy conservation? をTRUEに設定すると、LabVIEW Advanced Signal Processing Toolkitの TFA STFT Spectrogram VIと同じ結果を返します。
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi
時間-周波数構成
—
周波数ビンを2の累乗に強制?
—
X
—
時間-周波数サンプリング情報
—
時間ステップ
—
タイプ
—
窓パラメータ
—
への標準偏差に設定され、ここでLは窓の長さを示します。
STFTスペクトログラム{X}
—
エラー
—