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



我正在尝试信号过程库 ThinkDSP

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

我知道add_noise = my_wav + noise

很容易实现此操作

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

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

您需要计算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

有关更多信息,请参见此答案,以将特定SNR的随机噪声添加到信号

最新更新