How to generate Gaussian white noise with certain variance in Matlab?

230 visualizaciones (últimos 30 días)
Hey, I have a signal Xmodt to which I want to add Gaussian white noise W with mean value equal to zero (by definition) and variance equal to 1/(Ts*(10^(SNRdb/10))). From what I have found online, I created the following code:
Ts=0.1; %Given sampling period
SNRdb = 10; %Given SNRdb
variance = 1/(Ts*(10^(SNRdb/10)));
W = sqrt(variance).*randn(1,size(Xmodt,2)); %Gaussian white noise W
Xmodt = Xmodt + W; %Add the noise
I know that in this example variance equals to 1, but I need to find a general solution. So, is this code correct? Thanks in advance!

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Dic. de 2013
Skip the first 2 lines, assign the desired value to the variance, and continue on with W and Xmodt.
  1 comentario
Konstantinos
Konstantinos el 8 de Dic. de 2013
Editada: Konstantinos el 8 de Dic. de 2013
Well, the first 3 lines are not my problem but I added them for typical reasons. So, you mean that the last 2 lines of code are correct? Do they produce and add white Gaussian noise to the signal?

Iniciar sesión para comentar.

Más respuestas (3)

Zerihun Abebe
Zerihun Abebe el 26 de Abr. de 2016
Computer Experiment. Consider the linear system defined by Generate 1500 samples of a unit-variance, zero-mean, white-noise sequence xn, n = 0, 1, . . . , 1499 and filter them through the filter H to obtain the output sequence yn. Compute the sample cross-correlation ˆRyx(k) for k = 0, 1, . . . , 50 to obtain estimates of the impulse response hk. On the same graph, plot the estimated impulse response versus time, together with the simulated response Repeat, using a different realization of xn.

fluid
fluid el 22 de Oct. de 2017
Editada: fluid el 22 de Oct. de 2017
y1 = wgn(1000, 1, 0); % a 1000-element white noise with power 0dBW, that is 1W
var(y1)
ans:
ans = 0.9979

Juan José Retana Díaz
Juan José Retana Díaz el 27 de Oct. de 2022
I have a doubt, what does the number "2" means in the line: W = sqrt(variance).*randn(1,size(Xmodt,2));
Please help me, I need to add white gaussian noise to a signal with zero mean and a variance of 4.7 x 10^-5.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by