基于GNU Radio的BPSK星座解调输出与输入帧不匹配问题求助
BPSK解调输出不匹配问题修复方案
- 检查星座编解码配置一致性
确认Constellation Modulator和Constellation Decoder使用完全相同的BPSK星座定义:比特映射规则(是否启用格雷码)、判决模式(硬判决/软判决)需严格匹配。如果使用软判决输出,需额外添加硬判决转换模块后再存储数据,否则输出为浮点软信息而非比特值。 - 处理BPSK相位模糊问题
BPSK解调存在固有180度相位模糊,仅做符号时间同步无法校正相位偏差,可先验证输出比特整体取反后是否与输入匹配:- 若匹配,可在调制端添加差分编码、解调端对应添加差分解码消除相位模糊,或在符号同步前增加
Costas Loop模块做载波相位恢复,也可通过帧头唯一字做相位校正。
- 若匹配,可在调制端添加差分编码、解调端对应添加差分解码消除相位模糊,或在符号同步前增加
- 修正比特打包规则
Constellation Decoder默认输出为未打包的离散比特流(每个样点对应1bit),直接存储会和输入的打包字节格式不匹配,需在解码后添加Pack K Bits模块,参数K设为8,将8个比特拼接为1个字节后再写入文件,同时需确认打包的端序(MSB优先/LSB优先)和输入字节的打包规则一致。 - 过滤符号同步锁定前的无效数据
Symbol Sync模块在完成时间同步锁定前会输出乱码数据,这部分无效数据会被写入输出文件导致整体帧不匹配,可在解码链路中添加Correlate Access Code - Tag Stream模块,用输入帧的帧头特征码做匹配,过滤掉锁定前的无效数据后再存储。
内容的提问来源于stack exchange,提问作者Ncaseau
相关产品推荐
相关产品推荐

