Какой "шум" вы пытаетесь смоделировать?
rand (1) дает вам равномерное случайное число в диапазоне 0 Uniform " означает, что каждое значение одинаково вероятно, подобно броску одного идеального кубика.
Другими словами, случайное значение имеет диапазон +/- 0,5 с центром около 0,5. Вы хотите сосредоточиться вокруг своего фактического значения, и вы можете масштабировать диапазон в зависимости от фактического значения. например,
2 * (rand(1) - 0.5)
дает вам случайные случайные числа в диапазоне -1
Например, если шум не должен превышать 1%, вам необходимо использовать:
newValue = oldValue * ( 1 + 2*(rand(1) - 0.5) * 0.01)
0,01 - это шкала (1%), которую я использовал для примера, 1 + ... центрируется вокруг исходного значения.
Многие процессы не имеют равномерного распределения. Распространенным распределением для случайного шума (такого как шум датчика) является нормальное распределение , где значения, близкие к центру, более вероятны, чем значения, удаленные от центра.
Matlab поддерживает randn () для нормального распределения.
Другие распределения, которые моделируют другие системы, могут быть получены из равномерных случайных чисел.