0

繰り返しますが、私の質問はホワイトノイズに関連していますが、意味が異なります.次の2つのコードを比較してみましょう.まず

function [ x ] = generate(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = rand(length(t),1).*2 - 1;
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
%[pks,locs] = findpeaks(x);
 plot(x)
end

使用してgenerate(3,500,10)

このコードのグラフは次のとおりです

ここに画像の説明を入力

しかし、コードを変更して、ホワイト ノイズでゼロ平均になるようにしましょう。

function [ x ] = generate1(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = rand(length(t),1).*2 - 1;
mn=wn-mean(wn);
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*mn;
%[pks,locs] = findpeaks(x);
 plot(x)
end

そしてグラフは次のとおりです ここに画像の説明を入力

これらの2つの図を比較すると、ほとんど同じであると言えますが、いくつかの変更があるだけなので、平均値をゼロにするかどうかは重要です?実際の分析では、ピークを見つけるなど.どうもありがとう

更新: 更新されたコードがあります

function [ x ] = generate1(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = randn(length(t),1); %zero mean variance 1
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
%[pks,locs] = findpeaks(x);
 plot(x)
end

ここに画像の説明を入力

そして絵です

4

2 に答える 2

1

mean(wm)の値は? ゼロに近い場合は問題ありません。

技術的には、ホワイト ノイズは定義上ゼロ平均です。

于 2013-04-09T08:35:04.153 に答える
1

初期ノイズは -1 と +1 の間で均一に分布しています

平均がすでにゼロであるため、2番目のノイズも-1と+1の間で均一に分散され、それを差し引いても意味がありません

ホワイトノイズを取得するには、次のrandn()関数を使用できます。

wn = randn(length(t),1); %zero mean variance 1

ノイズ係数 A3 の値が、信号の係数である 20 および 30 と比較してはるかに低い場合、大きな違いは見られない可能性があります。

ノイズは信号の情報量を減少させる傾向があるため、ピークを見つけるためにノイズを追加しても何の役にも立たない場合があります。

于 2013-04-09T08:36:42.427 に答える