QPSK调制误码率计算

QPSK调制误码率计算
⽂章⽬录
误码率概念
传输信息的有效性和可靠性是通信系统最重要的质量指标,对于数字通信系统,有效性⽤信息的传输速率来衡量,可靠性⽤错误率(误⽐特率和误码率)来衡量。
公式:误码率=错误码元数/传输的总码元数
将发送端的码元序列和接收端码元序列进⾏⽐较,得到错误码元数,具体过程是按位异或发送端的码元序列和接收端码元序列,使不同位表达为1,相同位表达为0,并计算异或后的和,即得到错误码元数,按上⾯的公式计算出误码率。
绘制误码率曲线
信号的传送过程中,由于噪声的⼲扰,可能出现解码错误,对于QPSK通信系统,在信号进⾏调制后,在信道中对信号采⽤加性⾼斯⽩噪声进⾏⼲扰,所以在这⼀过程中在调制信号中加⼊⾼斯⽩噪声,然后对这个调制信号进⾏解调,将原始信号与解调信号进⾏⽐较,计算出误码率。
代码实现
其中调制解调信号的产⽣在前⾯的博客中已经介绍过了,不在赘述。
陕西理工大学魏乐1、⾸先⾃定义异或函数,⽤于后⾯计算误码率:
def bitxor(lst1, lst2):
塞莱斯蒂娜>沙芦草
"""两个⼆进制列表的逐位异或"""
if len(lst1)!=len(lst2):
print('两个列表长度不⼀致!')
return[]
else:迈好构建新发展格局第一步
return[lst1[x]^lst2[x]for x in range(len(lst1))]
2、误码率计算
error1 = bitxor(data, demodata)
error11 = np.sum(error1)
Awgn_num_BER = error11/nb
3、绘制误码率曲线
#误码率曲线
SNRindB1 = np.arange(0,7,1)
SNRindB2 = np.arange(0,7,0.1)
#⾼斯信道
smld_bit_awgn_err_prb =[]
for i in range(len(SNRindB1)):
水葫芦之灾pb1 = cm_sm33(SNRindB1[i])
smld_bit_awgn_err_prb.append(pb1)
#理论曲线
theo_err_awgn_prb =[]
for i in range(len(SNRindB2)):
SNR = np.exp(SNRindB2[i]*np.log(10)/10)#信噪⽐
theo_err_awgn_prb.append(0.fc(np.math.sqrt(SNR)))#⾼斯噪声理论误码率
plt.figure(figsize=(12,8))
plt.semilogy(SNRindB2, theo_err_awgn_prb,'b')
plt.semilogy(SNRindB1, smld_bit_awgn_err_prb,'r*')
plt.title('误码率曲线', fontproperties=font,fontsize=20)
plt.axis([0,6,1.0e-3,1e-1])
plt.ylabel('BER',fontproperties=font, fontsize=20)苦恼人的笑
plt.legend(['理论AWGN','仿真AWGN',], fontsize=14)
plt.show()
运⾏结果:

本文发布于:2024-09-23 08:25:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/294541.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:误码率   信号   调制   码元
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议