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

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 Comments

Does it have to specifically be white noise? Also, if you're limiting it to [0,2], then (to my limited knowledge) it wouldn't actually be white noise.
What have you tried so far? There is probably already code you could find online that would generate different colors of noise.
Actually it doesn't. Any noise could be fine.
I've tried something but not sure it is exact true.
sigmas = 2;
randomNoise = randn(length(r1), 1)*sigmas+a;
r11 = r1 + randomNoise;

Sign in to comment.

 Accepted Answer

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;

More Answers (1)

Hi Ayberk,
Have you tried awgn(r1)?
r1Gaus = awgn(r1);
Kind regards,
Christopher

6 Comments

I tried it but i don't have 'Communications System Toolbox', so it didn't work unfortunately.
Hi Ayberk,
If you are using an instatutional licesne you might be able to get the Communications System toolbox from the addon manager.
If not, you can always use randn() to generate a noise patterns and add it to the signal.
Christopher
I've tried something but not sure it is exact true.
sigmas = 2;
randomNoise = randn(length(r1), 1)*sigmas+a;
r11 = r1 + randomNoise;
Hi Ayberk,
This is good work.
Ploting the input vs output gives you this, your output (red) follows the input (yellow) with a potential deviation of 4. Is this what you were looking for? I am not sure if you are only looking this over the first 2 seconds or for a max min of two?
I have shown from x = 0 => x = 1.
Christopher
Yes, that's what i was looking for. Thanks for the answer.
No worries,
I am glad to be of help! If you could accept this answer that would be fantastic!
Christopher

Sign in to comment.

Categories

Products

Release

R2020b

Community Treasure Hunt

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

Start Hunting!