在Python中使用正态分布添加噪声的困惑

0 投票
1 回答
1532 浏览
提问于 2025-04-18 16:09

我对如何在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

这可能正是你想要的东西?

撰写回答