complex Gaussian noise signals with zero mean and different variance?

Hi;
I need to generate in matlab complex Gaussian noise signals with zero mean and different typical values of variance .

 Accepted Answer

Assuming your signals are not correlated, you could do it with
cgnoise = std1*randn(n,1) + i*std2*randn(n,1);
where std1 and std2 are the standard deviations.
(Edited to correct errors)

5 Comments

what a bout implementing the following ,in aloop
cgnoise=sqrt(var)*randn(n,1)+j*sqrt(var)*randn(n,1)
If you want to generate one value at a time, you could use
for ii=1:n
cgnoise = std1*randn + i*std2*rand;
end
why you use different std for the real and imaginary part?
Are they different in reality for thermal noise ?
I am not sure about the std1 vs std2 but, it should be cgnoise(ii) in the loop so that it obtains a value for each ii.
for ii=1:n
cgnoise(ii) = std1*randn + i*std2*rand;
end
Does not make sense to have diff std_dev for real and imag..if you want snr controlled noise.,
var = (N different var);
for lp_var=1 : size(var,2)
noise_lvl(lp_var) = sqrt(lp_var)*complex(rand(1,sig_len),rand(1,sig_len));
end

Sign in to comment.

More Answers (0)

Categories

Asked:

on 2 Jan 2012

Commented:

on 30 Jan 2019

Community Treasure Hunt

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

Start Hunting!