根据信噪比SNR添加噪声
2022-11-17 16:06:28 星期四
什么是信噪比SNR
信噪比的计量单位是dB,其计算方法是
其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20Lg(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。在音频放大器中,我们希望的是该放大器除了放大信号外,不应该添加任何其它额外的东西。因此,信噪比应该越高越好。
根据信噪比SNR给信号添加噪声
实现代码如下:
点击查看代码
# x: 待处理信号序列
# y: SNR设定值
def wgn(x, snr):
snr = 10 ** (snr / 10.0)
xpower = np.sum(x ** 2) / 1024
npower = xpower / snr
random.seed(1)
noise = np.random.randn(1024) * np.sqrt(npower)
return x + noise
根据SNR计算公式与离散信号功率公式可推出代码含义
noise1 = np.random.randn(1024) * np.sqrt(npower)
过程如下:
故而可得add_noise为均值为0,方差1的序列:
add_noise = np.random.randn(1024)