- 249 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:10:35 ]
- ↑からさらに自分で考えてみた。
>>244 log(sum(sqrt(re*re+im*im))) の方式で仮に1バンド=1octで出力することを考える。 1個上のバンドに行くに従って加算するデータ数が2倍になっていくわけだから、 結果は+6dB/octの右上がりになるはず。 問題は、ホワイトノイズを入れると+3dB/octの右上がりになってほしい。 sqrtとsumの順番を入れ替えると(sqrtを消して20→10でも等価)、 数が2倍になると3dB上がるので+3dB/octになる。 つまり、20*log10(sqrt(sum(re*re+im*im))) 最初に書いた、絶対値の2乗で足して平方根をとる、でいいみたい。 ピンクノイズの各バンドの平均値は1バンド上がると-3dBずつ下がっていくはず つまり1/√2に減っていくはずで、これの2乗の次元(1/2ずつ減ってく)で 数が2倍になっていくものを合計していくと皆同じになるという理屈。 ちなみに、素直に(?)、ホワイトで水平、ピンクで右下がりにするには、 sumのところを平均にすればいいはず。 (1バンド上がるごとに2倍になる個数で割ったやつをsqrtするので、1バンド上がると 1/√2つまり-3dBさがっていく) root mean squareってやつですね。 あ〜すっきりした。
|

|