2017-10-17 24 views
0

whiteNoiseは、whiteNoise ~ N(0,1)分布のランダム変数です。次に、分散をepsilon*whiteNoiseと変更して別のノイズを生成したいと思います。この用語はepsilon*whiteNoise ~ N(0,epsilon^2)を意味します。この私は再びイプシロン*ホワイトノイズが分散0.0001の別のホワイトノイズを発生させると同じである場合だけ見るためにx = sqrt(epsilon)*randn(1,length(signal)); %epsilon*whiteNoise;を生成 epsilon_whitenoise = epsilon*whiteNoise;Matlab - - 分散を正確にスケーリングする方法を理解できません

文に示されています。

理論的には、信号xepsilon_whitenoiseは同じでなければなりません。しかし、彼らはそうではありません。

epsilon = 0.0001の値。私はこれを実装する方法が混乱しています。これは私が試みたものです。 xepsilon_whiteNoise(=ε* whiteNoise)を変更することによって生成された新しいノイズの分散の値は、0.0001である類似の分散を与えなければならないので間違っています。しかし、私はチェックしたが、それは0.0001ではない。私が何をしたのか説明するのを助けてください。ありがとうございました。

clear all 
Fs=1000; %sampling rate 
Fc=10; % carrier frequency for the dummy signal 
t=0:1/Fs:2; %time base 
variance = 1; %variance of white noise 
epsilon = 0.0001; %new variance of white noise 
%generate a dummy signal - Later on this can be replaced by the signal that you are interested in , so that the generated noise can be added to it. 
signal=5*sin(2*pi*Fc*t); 

whiteNoise=sqrt(variance)*randn(1,length(signal)); 

x= sqrt(epsilon)*randn(1,length(signal)); %epsilon*whiteNoise; 
epsilon_whitenoise = epsilon*whiteNoise; 

variance_whiteNoise = var(whiteNoise) 
var_x = var(x) 
var_epsilon_multiplied_whitenoise = var(epsilon_whitenoise) 

答えて

0

あなたは信号xとepsilon_whitenoiseが同じ分散を持つようにしたい場合は、次の式を使用し、epsilon_whiteNoise方程式に間違った何かをしました。

epsilon_whiteNoise =sqrt(epsilon)*whiteNoise 

あなたは信号の

variance_whiteNoise = 

    0.9932 


var_x = 

    1.0661e-04 


var_epsilon_multiplied_whitenoise = 

    9.9320e-05 

分散が正確に0.0001ではありませんが、それは非常に近い値を持つことになり得る。この

clear all 
Fs=1000; %sampling rate 
Fc=10; % carrier frequency for the dummy signal 
t=0:1/Fs:2; %time base 
variance = 1; %variance of white noise 
epsilon = 0.0001; %new variance of white noise 
%generate a dummy signal - Later on this can be replaced by the signal that you are interested in , so that the generated noise can be added to it. 
signal=5*sin(2*pi*Fc*t); 

whiteNoise=sqrt(variance)*randn(1,length(signal)); 

x= sqrt(epsilon)*randn(1,length(signal)); %epsilon*whiteNoise; 
epsilon_whitenoise = sqrt(epsilon)*whiteNoise; 

variance_whiteNoise = var(whiteNoise) 
var_x = var(x) 
var_epsilon_multiplied_whitenoise = var(epsilon_whitenoise) 

を試してみてください。

私の答えがわからない場合はお知らせください。

+0

ありがとうございました。私は基本的に数学記法と対応するコードのために混乱しています。 whiteNoiseがゼロ平均および分散1ガウス確率変数から生成される場合、 'signal +ε* whiteNoise'および' signal + whiteNoise'を考えてみましょう。数学的表現は、新しい分散εを白色雑音と乗算することである。 'signal = sqrt(ε)* whiteNoise'を数学的に表現するときは、' 'ε 'は' 'sqrt(variance)'というコードで生成されるので、分散は' 'ε''と書かれています。 ? –

+0

私はこの質問をしていました。ここの数学の部分はhttps://dsp.stackexchange.com/questions/44447/confusion-regarding-terms-noise-level-and-noise-intensity/44449?noredirect=1#44449です。答えを実装したいそうすることで、私は混乱しています。私は 'epsilon * whiteNoise'の実装を正しく伝えることができないのでリンクを見てください。 –

+0

私はそれらがεを標準偏差、ε2を分散とすると思います。標準偏差= sqrt(分散)。分散の表記法としてε2を、標準偏差の表記法としてイプシロンを使用することができます。次に、ε= sqrt(ε2) –

関連する問題