python awgn
时间: 2024-03-15 08:40:50 浏览: 20
在Python中,AWGN(Additive White Gaussian Noise)是一种常用的噪声模型,用于模拟通信系统或信号处理中的噪声。AWGN是一种高分布的加性噪声,其特点是均值为0且方差为常数。
在Python中,可以使用NumPy库来生成AWGN噪声。下面是一个示例代码:
```python
import numpy as np
def add_awgn_noise(signal, snr_db):
# 计算信号的功率
signal_power = np.sum(np.abs(signal) ** 2) / len(signal)
# 根据信噪比计算噪声的功率
snr_linear = 10 ** (snr_db / 10)
noise_power = signal_power / snr_linear
# 生成高斯噪声
noise = np.random.normal(0, np.sqrt(noise_power), len(signal))
# 添加噪声到信号中
noisy_signal = signal + noise
return noisy_signal
# 示例使用
signal = np.array([1, 2, 3, 4, 5])
snr_db = 10
noisy_signal = add_awgn_noise(signal, snr_db)
print("原始信号:", signal)
print("加入AWGN噪声后的信号:", noisy_signal)
```
上述代码中,`add_awgn_noise`函数接受两个参数:原始信号和信噪比(以分贝为单位)。函数首先计算信号的功率,然后根据信噪比计算噪声的功率。最后,使用`np.random.normal`函数生成均值为0、方差为噪声功率的高斯噪声,并将其添加到原始信号中。