本文是在“GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调”的基础上,给出BPSK调制解调的实例。BPSK与QPSK的主要区别在于每个符号的比特位数,QPSK是一个符号2个比特,BPSK是一个符号1个比特。

目录

一、发射一个BPSK信号

二、加上信道仿真

三、时钟恢复

四、多径效应消除

五、相位矫正和频率微调

六、解码

七、有用链接和联系方式


一、发射一个BPSK信号

下图与生成QPSK信号的最主要区别在于“Constellation Object”参数设置。

gnuradio另存文件后如何生成对应的python文件 gnuradio教程_映射关系

gnuradio另存文件后如何生成对应的python文件 gnuradio教程_数据_02

二、加上信道仿真

信道仿真内容,参见“GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调”相应内容。

三、时钟恢复

时钟恢复内容,参见“GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调”相应内容。

四、多径效应消除

多径效应消除内容,参见“GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调”相应内容。

五、相位矫正和频率微调

相位矫正和频率微调内容,参见“GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调”相应内容。

gnuradio另存文件后如何生成对应的python文件 gnuradio教程_GNU_03

六、解码

到现在为止,前边已经将比较难啃的骨头都解决了。最后一步就是实现解码了。我们在mpsk_stage6.grc程序中,添加一个Constellation Decoder模块来实现解码。并使用“Map”模块来实现符号映射关系的转换。使用“Unpack K Bits”模块来分解bit,得到原始的bit流数据。

gnuradio另存文件后如何生成对应的python文件 gnuradio教程_数据_04

但是,我们如何才能判断我们解码的数据是否是正确的呢?由于我们是仿真程序,我们知道发送的原始bit数据,我们通过对比这两份数据来查看解码数据是否正确。但是由于前边做各种同步和均衡等操作,引入了延迟,所以我们需要将发送的原始数据进行延迟后,再跟解码后数据进行比对。

gnuradio另存文件后如何生成对应的python文件 gnuradio教程_数据_05