#author("2021-04-10T22:27:04+09:00","default:LabMember","LabMember") [[PythonTutorial]] * Pythonを使ったデータ解析その3 [#xc25415b] #contents ** 準備 [#d44aa4e0] [[ex3.zip>https://granite.phys.s.u-tokyo.ac.jp/wiki/Lab/?plugin=attach&pcmd=open&file=ex1.zip&refer=PythonTutorialExample1]] をダウンロードして展開し,ex3.ipynbを開く *** 中身について [#y6c67512] 今回は地震計(geophone)から取得した時系列データから地面振動のスペクトルを求める. - ex3.ipynb: メインのデータ解析をするnotebook - [x/y/z]_timetrend.txt: [x/y/z]軸方向の地震計の信号 ** FFTの計算 [#e854f6f1] scipy.signalモジュールを使ってFFTをする. *** パワースペクトル密度 [#h3d4f719] パワースペクトル密度を計算するには, scipy.signal.welch を使う. scipy.signal.welch(時系列データ, fs=サンプリングレート, window=窓関数(デフォルトはハニング), nperseg=1セグメントの長さ, noverlap=オーバーラップする長さ(デフォルトはnperseg/2)) welch はウェルチ法によるパワースペクトルの推定を行う関数.ウェルチ法は, + 時系列をいくつかのセグメントに分ける + それぞれのセグメントに窓関数をかける + それぞれのセグメントについてFFTをしてパワースペクトル密度を計算する + 求めたパワースペクトル密度の平均をとる という手順でパワースペクトル密度を推定する方法.特徴的なのは,セグメントをオーバーラップして分けていること. オーバーラップは50%にすることが多い.この時,例えばセグメント長全データ長の半分に取ればセグメント数は3, セグメント長全データ長の1/3に取ればセグメント数は5,といった感じになる.