pytorch中生成信噪比为4dB的高斯白噪声
时间: 2024-02-03 07:14:09 浏览: 134
可以使用以下代码生成信噪比为4dB的高斯白噪声:
```python
import torch
import math
# 信噪比(SNR)为4dB
snr = 4
# 生成原始信号(假设为长度为1000的向量)
original_signal = torch.randn(1000)
# 计算原始信号的功率
original_power = original_signal.pow(2).mean()
# 根据信噪比计算噪声功率
noise_power = original_power / (10**(snr / 10))
# 生成高斯白噪声
noise = torch.randn(1000) * math.sqrt(noise_power)
# 添加噪声到原始信号中
noisy_signal = original_signal + noise
```
其中,`torch.randn(1000)` 生成长度为1000的随机向量,`original_signal.pow(2).mean()` 计算原始信号的平均功率,`math.sqrt(noise_power)` 计算标准差,从而保证生成的噪声功率为所需的值。
阅读全文