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

16 次查看(过去 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 中查找有关 Link-Level Simulation 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by