How to add noise in [0 2] interval to an elements of an array randomly?

11 visualizzazioni (ultimi 30 giorni)
I have an array that is called 'r1' and i need a white noise to add to elements of the array. Every noise that is gonna to be added to elements should be different (like randomly) in [0,2] interval.
a = 0;
b = 360;
rng('shuffle');
ncycles = 10;
npoints = 500000;
r1 = sort((b-a)*rand(npoints/ncycles,ncycles)+a,1,'ascend');
r1 = r1(:);
  3 Commenti
Ayberk Ay
Ayberk Ay il 12 Apr 2022
I've tried something but not sure it is exact true.
sigmas = 2;
randomNoise = randn(length(r1), 1)*sigmas+a;
r11 = r1 + randomNoise;

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 12 Apr 2022
I'd do it like this
noiseSignal = 2 * rand(size(r1));
r1WithNoise = r1 + noiseSignal;
If you want + or - 1 instead of adding noise, which will bias the signal upwards you can do:
noiseSignal = 2 * rand(size(r1)) - 1;
r1WithNoise = r1 + noiseSignal;

Più risposte (1)

Christopher McCausland
Christopher McCausland il 12 Apr 2022
Modificato: Christopher McCausland il 12 Apr 2022
Hi Ayberk,
Have you tried awgn(r1)?
r1Gaus = awgn(r1);
Kind regards,
Christopher
  6 Commenti
Ayberk Ay
Ayberk Ay il 12 Apr 2022
Yes, that's what i was looking for. Thanks for the answer.
Christopher McCausland
Christopher McCausland il 12 Apr 2022
No worries,
I am glad to be of help! If you could accept this answer that would be fantastic!
Christopher

Accedi per commentare.

Categorie

Scopri di più su Link-Level Simulation in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by