首页 > 编程知识 正文

误码率BER,误码率和误比特率计算公式

时间:2023-05-05 19:08:47 阅读:272638 作者:4607

STK中误码率BER的计算 一、参数之间的关系

在Link Budget中有三个值是我们经常用到的:

1:误码率BER

2:码元能量 E b N o frac{E_b}{N_o} No​Eb​​

3:载波噪声密度比(Carrier to Noise Density Ratio): C N o frac{C}{N_o} No​C​

实际卫星通信的场景中多用载波噪声密度比作为接收机的信噪比,

1.1 为什么不用载噪比 C / N C/N C/N呢?

因为不同的接收机的接收带宽不同,造成了接收到的噪声功率不同。(例如信道为AWGN信道,接收机带宽越宽噪声功率越大)

为了消除不同接收机对于信号指标的影响,我们引入了载波噪声密度比: C N o = C N 1 B frac{C}{N_o}=frac{C}{N}frac{1}{B} No​C​=NC​B1​,其中B为接收机带宽。

1.2 码元能量和载波噪声密度比的关系

C N o = E b N o + R b frac{C}{N_o}=frac{E_b}{N_o}+R_b No​C​=No​Eb​​+Rb​

在传输速率一定的情况下,二者的差值为一个常数。

举个例子: R b = 100 M b p s , C N o = 20 d B / M H z , B a n d w i t h = 5000 M H z R_b=100Mbps,\frac{C}{N_o}=20dB/MHz,\Bandwith = 5000MHz Rb​=100Mbps,No​C​=20dB/MHz,Bandwith=5000MHz

则此时的码元能量 E b N o = C N o − R b = 20 − 10 l o g 10 ( 100 ) = 0 d B frac{E_b}{N_o}=frac{C}{N_o}-R_b=20-10log_{10}(100)=0dB No​Eb​​=No​C​−Rb​=20−10log10​(100)=0dB。

此时的载噪比 C N = C N o − B ( d B ) = 20 − 10 l o g 10 ( 5000 ) = − 16.989 d B frac{C}{N}=frac{C}{N_o}-B(dB)=20-10log_{10}(5000)=-16.989dB NC​=No​C​−B(dB)=20−10log10​(5000)=−16.989dB

二、BER的计算

上文讲述了三个量之间的关系,下文讲如何根据数字通信中的信噪比,即码元能量来确定误码率的理论上限:

首先要转换码元能量dB为比值关系,假设码元能量为 x x x,信噪比比值 r = 1 0 r / 10 r=10 ^ {r / 10} r=10r/10,

又由查表可知BPSK时的香农极限为

B E R = 1 2 e r f c ( r ) BER=frac{1}{2}erfc(sqrt{r}) BER=21​erfc(r ​)

因此带入数值即可。

当调制方式为QPSK时,由于一个码字由两个bit组成,两个bit均正确该码字才正确,因此QPSK情况下:

误比特率与BPSK相同

误信息率为(1-两个比特均正确的概率): 1 − ( 1 − 1 2 e r f c ( r ) ) 2 1-(1-frac{1}{2}erfc(sqrt{r}))^2 1−(1−21​erfc(r ​))2

三、Python实现 import mathBER = 0.5 * math.erfc(np.sqrt(10 ** (SNR / 10))) # 误比特率QPSK_Symbol_Error_Rate = 1 - (1 - 0.5 * math.erfc(np.sqrt(10 ** (SNR / 10)))) ** 2# QPSK下的误信息率

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。