如何加噪声可能是我写毕设时遇到的第一个难题,之前在网上找了很久,但是都是些理论知识,不知道如何运用到实际的代码当中。最主要的原因是因为不知道如何把Eb/N0转换为SNR。
我的指标是Eb/N0,而噪声是用SNR,所以我主要讲一下如何把Eb/N0转换为SNR。
首先把我找到的理论知识摆出来:
信噪比SNR是信号平均功率和噪声平均功率之比,信噪比的归一化形式Eb/N0,Eb代表平均到每个比特上的信号能量,等于信号功率S与每比特持续时间Tb的乘积;N0代表噪声的功率谱密度,等于噪声功率N与带宽W之比;又因为每比特持续时间Tb与比特速率Rb互为倒数。因此,Eb/N0和信噪比S/N的关系式为:
这个带宽是系统的带宽,由于噪声大部分是在接收机产生的,所以和我代码中接收机的采样率有关,直接用采样率带入就行,Rb就是我发送端数据的速率,所以最后结果为:
snr_db = ebn0_db + 10 * log10(Rb / Fs);
如果有错误的地方各位大佬可以指正一下,谢谢。
dmm8 2022-4-18 11:37