ノイズがどの程度「ホワイト」であるかをどのように定量化しますか?特定のサンプルがどれだけホワイトノイズに近いかを定量化できる統計的測定値、またはその他の測定値(FFTなど)はありますか?
ノイズがどの程度「ホワイト」であるかをどのように定量化しますか?特定のサンプルがどれだけホワイトノイズに近いかを定量化できる統計的測定値、またはその他の測定値(FFTなど)はありますか?
回答:
潜在的に白いシーケンスの自己相関に基づいて、統計テストを作成できます。デジタル信号処理ハンドブックには、次のことを示唆しています。
これは、以下のようにscilabで実装できます。
この関数を2つのノイズシーケンス(ホワイトノイズ1つ、および軽くフィルター処理されたホワイトノイズ1つ)で実行すると、次のプロット結果が得られます。ノイズシーケンスの各実現を生成するためのスクリプトは最後にあります。
ホワイトノイズの統計値の平均は9.79です。フィルタリングされたノイズの統計の平均は343.3です。
10自由度のカイ2乗テーブルを見ると、次のようになります。
また、ホワイトノイズが白色ではない(表内の)9.79の有意水準はないことがわかります。また、343.3の値は白ではない可能性が非常に高い(有意性列の23.2093の値と比較)。
function R = whiteness_test(x,m)
N = length(x);
XC = xcorr(x);
len = length(XC);
lags = len/2+1 + [1:m];
R = N*sum(XC(lags).^2)/XC(len/2+1).^2;
endfunction
X = rand(1,1000,'normal');
Y = filter(1,[1 -0.5],X)
R = [R; whiteness_test(X,10)];
R2 = [R2; whiteness_test(Y,10)];
白さは独立と同等です。
あなたはダイハードを見ることができます https://en.m.wikipedia.org/wiki/Diehard_testsをます
Knuthの半数値アルゴリズムの第2巻には、乱数発生器とテストに関するセクションがあります。
DFTベースのテストの問題は、スペクトルリークがわずかに存在することです。この手法では相関が生じるため、変換を「長く」する場合、通常は無視できます。
NISTにはランダムビットストリームのテストもあります