アクサンの場合

Python3初心者が段々上達するログ

経験的モード分解(Empirical Mode Decomposition)とは

経験的モード分解とは

Huangらによって提案された時系列信号を非定常・非線形な時間-周波数な空間に変換する手法のことで, 大まかな理解として, もともとの信号 x(t) を固有モード関数IMF(Intrinsic Mode Function)と残滓に分解するということを頭に入れておけば良い.

分解するということ

信号を分解する手法は従来から存在しており, FFTやウェーブレット変換がある. これは大学の授業でも扱うくらい古典的で強い手法だ. では何がEMDと違うのか.

FFTやウェーブレット変換は基底を用意してから周波数領域へと変換する一方, EMDは所謂ヒューリスティックな変換を行う. 基底の仮定を置かずに信号を順々に分解していき閾値でもってループの終了とする.

アルゴリズム

これはすでに様々な論文が出回っており再掲するのも忍びない.が, 引用させてもらう.

1. 入力信号 x_0(t)の全ての極値を検出する
2. 極大点と極小点をそれぞれ補間し,上側包絡線 emax(t)と下側包絡線 emin(t)を得る
3. 上側包絡線と下側包絡線の局所平均m(t) = ( emin(t) + emax(t) ) / 2 を算出する
4. 入力と局所平均の差分 y(t) = x(t) - m(t)を入力とみなして 1~4 を繰り返す。
5. 局所平均の標準偏差が閾値以下になった時点で,y(t) を IMF とみなし,ループを終了する
6. 入力信号と IMF の残差 x1(t) = x0(t) - y(t)を新たな入力信号として 1~6 を繰り返す
7. 全ての IMF を抽出したら(x_n(t)の極値が1 つになったら)終了する

出典:http://old.acoust.ias.sci.waseda.ac.jp/publications/happyou/asj/asj-yatabe-2012sep.pdf

要するになにか

暴論ではあるが, EMDは入力信号を,時間軸を中心とした信号に分解することと言って良いかもしれない. 信号の平均が0になるような信号をIMFとしているため波形全体として上下のトレンドがあるような信号は存在しない.

例えば、下のようなトレンドのある信号は, sin波のような切片が存在しない平均面積0の波形に分解できるのだろう. http://touki-tousi.com/wp-content/uploads/2015/09/943578ab5a1148ce847c2eb36745c84d.jpg

何に使うのか

目下調査中だが, 一つとしてIMFの中にホワイトノイズのようなものがあったらそれを削除すれば元々の信号からノイズを削減できたことになる, といったノイズ除去に使う例がある.