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

9 次查看(过去 30 天)
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 个评论
Ayberk Ay
Ayberk Ay 2022-4-12
I've tried something but not sure it is exact true.
sigmas = 2;
randomNoise = randn(length(r1), 1)*sigmas+a;
r11 = r1 + randomNoise;

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2022-4-12
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;

更多回答(1 个)

Christopher McCausland
编辑:Christopher McCausland 2022-4-12
Hi Ayberk,
Have you tried awgn(r1)?
r1Gaus = awgn(r1);
Kind regards,
Christopher
  6 个评论
Christopher McCausland
No worries,
I am glad to be of help! If you could accept this answer that would be fantastic!
Christopher

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by