0

这可能会打开一堆蠕虫,或者很容易回答:我正在用 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()

在此处输入图像描述

4

1 回答 1

1

从您生成的信号来看,看起来您的电压与时间的关系。在这种情况下,您想要添加高斯噪声。

您可以通过利用中心极限定理来生成高斯噪声。只需生成一堆随机数(分布无关紧要),将它们加在一起,存储结果。重复 len(y) 次,结果列表将是随机的,但呈高斯分布。然后将该列表添加到您的 y 信号中。但是首先可能有一个预定义的例程可以为您提供高斯噪声。

至于以更 Pythonic 的方式进行操作,我希望 numpy 有一个向量添加例程。

于 2013-11-03T05:46:39.360 回答