SNR、EbN0、EsN0的关系以及matlab仿真时添加AWGN噪声

在通信领域,衡量一个算法的性能经常使用误码率(BER),而横坐标自变量有时使用EbN0,有时又使用SNR。在利用matlab对算法进行性能仿真时,添加AWGN噪声时就需要清楚两者之间的差别及awgn函数的使用。

PS:这篇文章主要是对matlab文档中的“AWGN Channel”词条的翻译。经常被EbN0和SNR之间的关系困惑,导致添加AWGN噪声时出错,然后在网上查找相关说明时,大多要么说不清要么说得不准确,还是要多读官方的说明文档呀,详细而准确!

首先需要明确在matlab中对发送信号进行仿真时,都是对信号进行采样后的离散数据。

符号说明

  • SNR:Signal-to-noise ratio 信噪比(dB)信号功率比噪声功率,这是matlab的awgn函数的真正输入参数!!
  • S:信号功率,单位瓦特。
  • N:噪声功率,瓦特。由功率谱密度的概念知,N = N0*Bn。
  • EbN0:Ratio of bit energy to noise power spectral density,每个二进制bit能量与噪声能量谱密度的比值(dB)。一般以该参数作为性能衡量的横坐标
  • EsN0:Ratio of symbol energy to noise power spectral density,每个符号能量与噪声能量谱密度的比值(dB)。
  • Rb:比特率,即每秒传输多少个bit的二进制数据
  • Rs:符号率,每秒传输多少个符号的数据
  • K:每个符号所承载的二进制bit数。比如16QAM调制中一个符号承载4bit数据,K=4。因此Rb = K*Rs。
  • Tsym:符号周期,每个符号持续的时间,易知Tsym = 1/Rs,单位秒。
  • Tsamp:采样周期,每个采样点持续的时间,易知Tsamp = 1/Fs,其中Fs为采样率。
  • Bn:噪声带宽,单位赫兹,对于awgn噪声,对于复信号有 B n = F s = 1 / T s a m p Bn = Fs = 1/Tsamp Bn=Fs=1/Tsamp

联系与转换

E s N 0 ( d B ) = E b N 0 ( d B ) + 10 l o g 10 ( K ) EsN0(dB) = EbN0(dB) + 10log_{10}(K) EsN0(dB)=EbN0(dB)+10log10(K)
由两者的定义很容易得出上式, E s = K ∗ E b Es = K*Eb Es=KEb,都转换成dB形式即可。
然后需要由EsN0(dB)来推倒出awgn函数所需要的SNR:
E s / N 0 ( d B ) = 10 l o g 10 ( E s / N 0 ) , E s = S ∗ T s y m , N 0 = N / B n Es/N0(dB) = 10log_{10}(Es/N0) , Es=S*Tsym, N0 = N/Bn Es/N0(dB)=10log10(Es/N0),Es=STsym,N0=N/Bn
E s / N 0 = S ∗ T s y m / ( N / B n ) = ( T s y m ∗ F s ) ∗ ( S / N ) Es/N0 = S*Tsym/(N/Bn) = (Tsym*Fs)*(S/N) Es/N0=STsym/(N/Bn)=(TsymFs)(S/N)
E s / N 0 ( d B ) = 10 l o g 10 ( T s y m / T s a m p ) + S N R ( d B ) Es/N0(dB) = 10log_{10}(Tsym/Tsamp) + SNR(dB) Es/N0(dB)=10log10(Tsym/Tsamp)+SNR(dB)
S N R ( d B ) = E b N 0 ( d B ) + 10 l o g 10 ( K ) − 10 l o g 10 ( F s / R s ) SNR(dB) = EbN0(dB) + 10log_{10}(K)-10log_{10}(Fs/Rs) SNR(dB)=EbN0(dB)+10log10(K)10log10(Fs/Rs)
因此上式就是性能曲线图横坐标EbN0(dB)与awgn输入参数SNR(dB)之间的转换公式了。其中 F s / R s Fs/Rs Fs/Rs与过采样率有关。如利用4倍于符号率的采样率时,即Fs/Rs = 4,则表示每个符号采4个样点。
对于实信号则有 B n = 2 ∗ F s Bn = 2*Fs Bn=2Fs (双边带)。于是转换关系为:
S N R ( d B ) = E b N 0 ( d B ) + 10 l o g 10 ( K ) − 10 l o g 10 ( 0.5 ∗ F s / R s ) SNR(dB) = EbN0(dB) + 10log_{10}(K)-10log_{10}(0.5*Fs/Rs) SNR(dB)=EbN0(dB)+10log10(K)10log10(0.5Fs/Rs)

你可能感兴趣的:(通信)