python高斯白噪声
时间: 2023-10-30 11:01:56 浏览: 217
高斯白噪声程序(python)
5星 · 资源好评率100%
要在Python中生成高斯白噪声,你可以使用numpy库中的random.randn函数。这个函数可以生成一个符合标准正态分布(均值为0,方差为1)的随机数序列。你可以根据需要将这些随机数放大到所需的信噪比水平。下面是一个实现的示例代码:
import numpy as np
def awgn(x, snr, seed=7):
'''
加入高斯白噪声 Additive White Gaussian Noise
:param x: 原始信号
:param snr: 信噪比
:return: 加入噪声后的信号
'''
np.random.seed(seed) # 设置随机种子
snr = 10 ** (snr / 10.0)
xpower = np.sum(x ** 2) / len(x)
npower = xpower / snr
noise = np.random.randn(len(x)) * np.sqrt(npower)
return x + noise
在这个示例代码中,x是原始信号,snr是信噪比。np.random.randn函数生成了与原始信号长度相同的随机数序列,并通过乘以np.sqrt(npower)来放大噪声信号。最后,将生成的噪声信号加到原始信号上返回。
请注意,这里的信噪比是以分贝(dB)为单位的。如果你有一个信噪比的值,你可以将其传递给awgn函数进行噪声添加。
阅读全文