通过不同的SNR修改噪声强度

问题描述 投票:1回答:1

我正在尝试信号处理库ThinkDSP

我想要的操作是在原始的.wav文件上添加一些噪音

我知道这个操作很容易通过add_noise = my_wav + noise实现

但是,我想在不同的SNR条件下修改噪声

我如何通过ThinkDSP实现这一目标?或者也欢迎其他方法。谢谢。

signal-processing noise
1个回答
1
投票

您需要计算wav文件中的功率并确定能够为您提供所需snr的噪声功率。在Python中使用scipy这很容易。

# Import scipy
import scipy as sp

# Signal power in data from wav file
psig = sig.var()

# For 10 dB SNR, calculate linear SNR (SNR = 10Log10(Psig/Pnoise)
snr_lin = 10.0**(10.0/10.0)

# Find required noise power
pnoise = psig/snr_lin

# Create noise vector
noise = sp.sqrt(pnoise)*sp.randn(len(sig))

# Add noise to signal
sig_plus_noise = sig + noise

有关Add random noise with specific SNR to a signal的更多信息,请参阅此答案

© www.soinside.com 2019 - 2024. All rights reserved.