フーリエ級数でホワイトノイズを表現する
フーリエ変換では例えば時系列をcos, sinで分解してその係数をa0,a1,a2...., b1,b2,......を求めることになると思います.cosの方の係数がa, sinの方の係数がbです.(このあたりは十分説明し切れていませんが,標準テキストの表現と同じなので知っている方にはおなじみのことです.)
さて,質問ですが,ホワイトノイズは各周波数成分(n)のパワーが均等になっているものだと思います.
すなわちan^2+bn^2=1 という関係が全部のnで成り立つということですね.ただし,an, bnの値はこれでは決まらないので(0,1)の乱数を発生させてanを決め,それに応じたbnを決めました.位相のランダム性ということですが.そしてそれをフーリエ級数の時系列を表現する式に代入してプログラムでホワイトノイズ波形を作成しようとしたのですが,おかしいのです.ここまでの考え方で何か間違っているでしょうか.
自分としては以下の点を疑っています.
1.an, bnは正負の符号はどうなっていたでしょうか.この考え方では両方共正の値となっています.乱数を発生させても正・負は決めることができません.平方根をとる時に正の値だけになってしまいます.
2.時系列を表現する式というのはフーリエ逆変換と同じですが,FFTなどの方式は使わず,単純に和を取りました.Σan cos(theta)+bn sin(theta) というような式で初項はa0/2としました.最終項もちょっと違いますが,普通のテキストに載っている式です.フーリエ成分の重ねあわせと時間方向の進行があるので2重ループとなりますが.
3.乱数の発生のさせ方がまずい.Fortranのサイトから持ってきたものです.時間で発生させるものとか整数を与えて発生させるものなどいろいろです.
以上です.発生させた波形がどうおかしいのか言っていませんが,最初の数項だけはこうなっています.
0 128.288
1 128.345
2 0.443
3 42.991
4 0.497
5 26.035
6 0.667
7 18.964
ホワイトノイズ波形などそもそも作れるのかなと思いますが.どうでしょうか.よろしくお願いします.
補足
知識のベースが理系ではないので、高校数学レベルを想定していただけると助かります。 どのように積分するかというところでまずつまづきます。ブラウンノイズを作るのにホワイトノイズを足し合わせると考えたのは、ただ離散的な値を累積させただけのものを言っています。0.5階積分とかになるんでしょうか。 積分器という言葉は、今回初めて知りました……。 このレベルで改めて解説いただけるとうれしいのですが、よろしくお願いします。