フラクタル信号を作る

フラクショナルブラウン運動(fBm)

 任意のHurst指数 H をもつfBmは以下のように定義される.

ここで W ( T ) はガウシァンノイズである.fBmの特徴として,スペクトル P ( f ) ,パワースペクトル密度 Sv ( f ) は以下の関係を近似的に有する.

フラクショナル積分による作成

  H = 0.5 とするとそのパワースペクトルの傾きは f -2 となり,ブラウン運動(ランダムウォーク)とよばれるこの信号は次式により与えられる.

即ち,単純な1階積分によって得られるわけだが,1 / f ノイズなどを作ろうとすると, 次の面倒な積分処理をおこなう必要がある.

 ・非整数階の微積分
    信号f(t)のα階微分は以下の式で定義される.

    微分された信号は以下のような,α階の積分により復元される.

 ここで, f (α)f ( t ) をα階微分した信号であり, フラクタル信号を生成するさいは,一般的に無相関のガウシアン乱数が用いられる. この非整数階の積分を利用することで任意のHurst指数のfBmを生成できる.
 フラクショナル微積分を利用して生成した H = {1.0, 0.9, ・・・, -0.9} のフラクタル信号の波形,および, パワースペクトルを以下に示す.





生成されたフラクタル信号の波形






生成されたフラクタル信号のパワースペクトル

スペクトル近似法による作成

 ここでは要求されるスペクトル密度 f をもつランダム関数を直接作る方法がある. まず,擬似乱数発生器によって,スペクトル密度 Sw(f) が一定なホワイトノイズ W(t) を生成する. この W(t) に対して,伝達関数 T(t) のフィルタを通すとスペクトル密度が,

の出力 V(t) を得る.ここで T(f)~f-β/2 である.

 実際の処理は以下のようにおこなう.
(1) 無相関のガウシァン乱数 W(t) をつくる
(2) FFTを使って,フーリエ級数 P(f) = R(f) + j I(f) を求める
(3) パワースペクトル S(f) = R(f)2 + I(f)2 で与えられるので, パワースペクトルの傾きが -(2H+1) となるように,P(f)' = P(f) × f-(H+1/2) を求める
   ※注意 FFTでは最初の半分のデータと後半の半分のデータに分かれるため,該当周波数を与える際に間違わないようにする
   ※注意 FFTでの折り返された成分は共役を取っておかないと,逆FFTをかけたときに実数データに戻らなくなる
   ※補足 P(f)' の直流成分は 0 とする.
(4) 変換後のパワースペクトル P(f)' を逆FFTにかける
(5) 実数のフラクタルデータが生成される

 FFTの影響による高周波成分の折り返しが気になる場合は,時間刻みを細かくした W(t) から フラクタルデータを生成し,最後に希望のサンプリング周波数でリサンプリングすればよい.
戻る
2002/3
by Hiroyuki Koga