误码率概念
传输信息的有效性和可靠性是通信系统最重要的质量指标,对于数字通信系统,有效性用信息的传输速率来衡量,可靠性用错误率(误比特率和误码率)来衡量。
公式:误码率=错误码元数/传输的总码元数
将发送端的码元序列和接收端码元序列进行比较,得到错误码元数,具体过程是按位异或发送端的码元序列和接收端码元序列,使不同位表达为1,相同位表达为0,并计算异或后的和,即得到错误码元数,按上面的公式计算出误码率。
绘制误码率曲线
信号的传送过程中,由于噪声的干扰,可能出现解码错误,对于QPSK通信系统,在信号进行调制后,在信道中对信号采用加性高斯白噪声进行干扰,所以在这一过程中在调制信号中加入高斯白噪声,然后对这个调制信号进行解调,将原始信号与解调信号进行比较,计算出误码率。
代码实现
其中调制解调信号的产生在前面的博客中已经介绍过了,不在赘述。
1、首先自定义异或函数,用于后面计算误码率:
def bitxor(lst1, lst2):
"""两个二进制列表的逐位异或"""
if len(lst1) != len(lst2):
print('两个列表长度不一致!')
return []
else:
return [lst1[x]^lst2[x]