how to generate gaussian noise with certain covariance and zero mean ?
157 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tejas Appaji
am 25 Sep. 2017
Beantwortet: getahun kibret
am 22 Feb. 2023
i have a signal and i want to add gaussian noise to it with zero mean and 0.1 covariance.
variance = 0.1
W = sqrt(variance).*randn(1,size(Xmodt,2)); %Gaussian white noise W
mysignal = mysignal + W; %Add the noise
this code lets me define variance. but i need an algorithm or code to generate gaussian noise with specific covariance and zero mean.
thanks in advance
0 Kommentare
Akzeptierte Antwort
David Ding
am 27 Sep. 2017
Hi Tejas,
If I understand your question correctly, you wish to generate AWGN with certain co-variance. In this case, you would have a vector of zero-mean Gaussian noises that are statistically dependent. In order to model this in MATLAB, your workflow would be to generate an n x 1 noise vector and then pre-multiply that by the co-variance matrix.
For example:
% Generate a 2 x 1 Gaussian noise vector with covariance
noiseVec = randn(2, 1);
var1 = 0.1;
var2 = 0.2;
covar = 0.05;
cMatrix = [var1, covar; covar, var2];
noiseVec = cMatrix * noiseVec;
4 Kommentare
Shah Mahdi Hasan
am 14 Aug. 2020
I agree with JUNHO. There should have been sqrt(). Think about the scalar analogy. If you have a standard normal random variable x~N(0,1) and want to have a certain variance sigma, then you would multiply the following:
y ~ N(0,sigma^2) = sigma*x
Brendan Nichols
am 26 Nov. 2020
I agree with Junho as well. Test out a variation of David's answer:
noiseVec = randn(2, 1e6);
var1 = 0.1;
var2 = 0.2;
covar = 0.05;
cMatrix = [var1, covar; covar, var2];
noiseVec = cMatrix * noiseVec;
cov(noiseVec(1, :), noiseVec(2, :))
Note the covariance is not equal to cMatrix. Try the following instead:
noiseVec = randn(2, 1e6);
var1 = 0.1;
var2 = 0.2;
covar = 0.05;
cMatrix = [var1, covar; covar, var2];
noiseVec = chol(cMatrix, 'lower') * noiseVec;
cov(noiseVec(1, :), noiseVec(2, :))
Note the addition of the Cholesky decomposition to get the covariance of the noise to match.
Weitere Antworten (1)
getahun kibret
am 22 Feb. 2023
i want to get a matlab code that adds AWGN with zero mean and variance 0.85
0 Kommentare
Siehe auch
Kategorien
Mehr zu Get Started with Curve Fitting Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!