Loading

根据信噪比SNR添加噪声

2022-11-17 16:06:28 星期四

什么是信噪比SNR

信噪比的计量单位是dB,其计算方法是

image

其中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
离散信号的功率可以使用公式:

image
根据SNR计算公式与离散信号功率公式可推出代码含义
noise1 = np.random.randn(1024) * np.sqrt(npower)
过程如下:
image
故而可得add_noise为均值为0,方差1的序列:
add_noise = np.random.randn(1024)

posted @ 2022-11-17 16:31  TianZhi718  阅读(714)  评论(0编辑  收藏  举报