这可能会打开一堆蠕虫或者很容易回答: 我正在Python中构建一个系统模型:如何定量添加噪声?到目前为止,我有这个(下面的代码) -
我。我是否可以通过广播来做到这一点,即使每个样本中添加了独特的噪音?
和
II。电信号建模的噪声应该是高斯还是均匀? (高斯我认为虽然我不确定)
import random
import numpy as np
import matplotlib.pyplot as plt
f = 1e6
T = 1/f
pi = np.pi
t = np.arange(0,20e-6,10e-9)
# create signal and normalise
y = np.sin(2*pi*f*t)
y /= max(y)
# add noise
for i in range(0, len(y)):
noise = random.uniform(-1, 1) / 10 **#10% noise added**
y[i] += noise
plt.figure(1)
plt.plot(t*1e6,y,'r-')
plt.grid()
plt.show()
答案 0 :(得分:1)
根据你产生的信号来判断它看起来像伏特与时间的关系。在这种情况下,你想要添加高斯噪声。
您可以通过利用中心极限定理生成高斯噪声。只需生成一堆随机数(分布无关紧要),将它们加在一起,存储结果。重复len(y)次,结果列表将是随机的,但高斯分布。然后将该列表添加到y信号中。但是,可能有一个预定义的例程,首先为你提供高斯噪声。
至于以更加pythonic的方式进行,我希望numpy有一个向量添加例程。