这可能会引起麻烦,或者很容易回答: 我正在Python中构建一个系统模型:如何定量地添加噪声?到目前为止,我有以下代码-
我能不能通过广播来做到这一点,即使是在每个样本中加入独特的噪音?在
以及
二。对于电信号建模,噪声应该是高斯噪声还是均匀噪声? (我想是高斯型的,但我不确定)
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()
从你产生的信号来看,它看起来像是你的电压与时间的关系。在这种情况下,你需要加上高斯噪声。在
你可以利用中心极限定理产生高斯噪声。只需生成一堆随机数(分布不重要),将它们相加,存储结果。重复len(y)次,结果列表将是随机的,但是是高斯分布的。然后把这个列表加到你的y信号上。但可能有一个预定义的程序,首先给你高斯噪声。在
至于用一种更像Python的方式来做,我希望numpy有一个向量加法例程。在
相关问题 更多 >
编程相关推荐