PythonTutorial
Pythonを使ったデータ解析その3 †
準備 †
ex3.zip
をダウンロードして展開し,ex3.ipynbを開く
中身について †
今回は地震計(geophone)から取得した時系列データから地面振動のスペクトルを求める.
- ex3.ipynb: メインのデータ解析をするnotebook
- [x/y/z]_timetrend.txt: [x/y/z]軸方向の地震計の信号
FFTの計算 †
scipy.signalモジュールを使ってFFTをする.
パワースペクトル密度 †
パワースペクトル密度を計算するには, scipy.signal.welch を使う.
scipy.signal.welch(時系列データ, fs=サンプリングレート, window=窓関数(デフォルトはハニング), nperseg=1セグメントの長さ, noverlap=オーバーラップする長さ(デフォルトはnperseg/2))
welch はウェルチ法によるパワースペクトルの推定を行う関数.ウェルチ法は,
- 時系列をいくつかのセグメントに分ける
- それぞれのセグメントに窓関数をかける
- それぞれのセグメントについてFFTをしてパワースペクトル密度を計算する
- 求めたパワースペクトル密度の平均をとる
という手順でパワースペクトル密度を推定する方法.特徴的なのは,セグメントをオーバーラップして分けていること.
オーバーラップは50%にすることが多い.この時,例えばセグメント長全データ長の半分に取ればセグメント数は3,
セグメント長全データ長の1/3に取ればセグメント数は5,といった感じになる.