1.信噪比
信噪比的计算公式为:
其中,Ps和Pn分别表示信号和噪声的有效功率,信噪比SNR的单位为dB。
或者信噪比的计算公式也可以表示为:
其中,x(n)表示干净信号,n(n)表示噪声信号。
上面提到的信号功率其实就是信号的能量或强度,在连续的情况下就是对信号x平方后求积分,而在离散情况下就是使用对信号x平方后求和。
2.加入高斯白噪声
我们的目标是给原始信号x(n)加入多少分贝的高斯白噪声。已知信噪比SNR,则噪声功率的计算公式为:,噪声信号的计算公式为 。推导过程不再累述。
根据公式可以得到给原始信号x
添加snr
分贝的噪声信号函数为:
def wgn(x, snr):
Ps = np.sum(abs(x)**2)/len(x)
Pn = Ps/(10**((snr/10)))
noise = np.random.randn(len(x)) * np.sqrt(npower)
signal_add_noise = x + noise
return signal_add_noise
参考文档:
Python向信号中添加不同强度dB的噪音
python信号中加入高斯信号
用python给数据加上高斯噪声
网友评论