時系列にButterworthバンドパスフィルターを施す関数。
y = bw_bandpass_filter(x, fca, fcb, opt, dim)
〔入力変数〕
x
フィルターをかけたい時系列を含む配列。未定義値を含んではならない。
fca
低周波数側のカットオフ周波数を,0.0<fca<0.5で指定する。値はサンプリング間隔依存であることに注意。例えば,dailyデータの場合,fca=0.2は周期5日に対応するが,6時間データならば周期5日はfca=0.05である(opt@dtでサンプリング間隔を指定できる)。
fcb
高周波数側のカットオフ周波数を,fca<fcb<0.5で指定する。
opt
Trueのとき,以下のattriduteをつけることができる。
opt@m:Butterworthフィルターの次数。デフォルトは6で,10以下で指定可能。通常4~6が適しているらしい。
opt@dt:サンプリング間隔を指定するスカラー。デフォルトは1.0。
opt@remove_mean:平均を除くかどうかを指定する。デフォルトはTrue。
opt@return_filtered:フィルターされた時系列を返すかどうかを指定する。デフォルトはTrue。
opt@return_envelope:包絡線時系列を返すかどうかを指定する。デフォルトはFalse。
dim
xのうちフィルターをかけたい次元。
〔出力変数〕
y
opt@return_filteredまたはopt@return_envelopeのいずれかがTrueの場合,フィルターされた時系列あるいは包絡線時系列が,xと同じ次元や大きさの配列として返される。opt@return_filteredとopt@return_envelopeがともにTrueの場合,xと同じ次元や大きさをもつ配列の左に長さ2の次元が加わったものが返される。最も左の次元が0番目の要素にフィルターされた時系列が含まれ,1番目の要素に包絡線時系列が含まれる。