在Python中使用正态分布添加噪声的困惑
我对如何在Python中使用正态分布(高斯概率密度函数)来模拟测量误差感到很困惑。
我想做的就是在高斯分布下生成一些噪声(误差),然后把这些噪声加到测量值上。简单来说,我把问题整理成这样:
输入:
- M(i) - 测量值;i = 1...n,
n
- 测量的数量;
输出:
M_noisy(i) = M(i) + noise(i);
其中,
noise(i)
- 测量中的噪声;M(i)
- 测量值。
重要:这个噪声应该是均值为零的高斯噪声,方差等于测量值的10%。
我写了以下代码,但不知道该怎么继续……
我的代码:
import numpy as np
# sigma - standard deviation of M
# mu - mean value of M
# n - number of measurements
# I dont know if this is correct or not:
noise = sigma * np.random.randn(n) + mu;
## M_noisy(i) - ?
谢谢大家的回答和建议。
1 个回答
0
random_scale_ammounts = np.random.randn(n)
#creates a list of values between -1 and 1
offset_from_mean = sigma *random_scales #randomly -std to +std
noise = offset_from_mean + mu;
clean_y_data = np.arange(n)
noisy_y_data = clean_y_data + noise
这可能正是你想要的东西?