GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)
目录一、GMSK简介二、GMSK调制原理与步骤1、GMSK调制原理2、GMSK调制步骤三、GMSK调制MATLAB仿真验证1、GMSK调制MATLAB代码2、GMSK调制MATLAB仿真四、GMSK调制FPGA实现1、GMSK调制FPGA Verilog代码2、GMSK调制FPGA 仿真五、FPGA和MATLAB联合仿真1、共用数据源2、仿真结果对比一、GMSK简介GMSK高斯最小频移键控是基于MSK信号发展而来的是一种连续相位调制信号具有相位轨迹平滑、频带效率高、带外辐射小等特点。二、GMSK调制原理与步骤1、GMSK调制原理图1 GMSK调制原理框图非归零预编码的数据经过高斯滤波器进行积分运算核心步骤完成频率到相位的转换的同时保证信号的相位是连续的积分后的数据转换成基带的同相I路和正交Q路两路信号完成相位的cos和sin表达形式欧拉公式转换后的I和Q即为基带的GMSK调制信号。2、GMSK调制步骤预编码输入的不归零数据进行差分预编码具体编码方式为如图2所示。其中ak是编码完数据、dk是当前输入待编码数据、dk-1是前一个输入数据、k是序号1、2、3、...、n。dk和dk-1值为-1或者1。经过预编码的数据在解调时可以有效解决相位模糊问题。图2 GMSK预编码框图高斯低通滤波使用高斯滤波器gaussdesign(BT,SPAN,SPS)其中BT值决定了GMSK的带外衰减BT值越大带外衰减越大当BT0.3时即可满足GSM系统带外衰减60dB的要求SPAN一般固定为8SPS代表采样率例如4采样点或32采样点时SPS4或32。高斯滤波器的主要作用是限制信号带宽、降低带外辐射、避免相邻信道干扰。积分积分过程本质上是累加的过程积分的意义是完成信号从频率到相位的转换并且保证GMSK信号的相位是连续的。相位的cos和sin转换积分后的数据即为GMSK信号的相位信息根据欧拉公式相位可以由cos和sin组合方式表达这样的表达便于数字信号处理器如DSP或FPGA实现使用查找表即可实现。三、GMSK调制MATLAB仿真验证1、GMSK调制MATLAB代码图3 GMSK调制MATLAB代码2、GMSK调制MATLAB仿真图4 GMSK调制时域图-实部I图5 GMSK调制时域图-虚部Q图6 GMSK调制后星座图4采样点图7 GMSK调制后星座图32采样点从调制后的星座图得出GMSK信号的相位是分散在一个圆圈上固定位置。采样点数越多固定位置越密集。四、GMSK调制FPGA实现1、GMSK调制FPGA Verilog代码限于篇幅有限只能展示部分代码。图8 FPGA实现GMSK调制-预编码图9 FPGA实现GMSK调制-极化图10 FPGA实现GMSK调制-扩采样图11 FPGA实现GMSK调制-高斯滤波图12 FPGA实现GMSK调制-积分图13 FPGA实现GMSK调制-相位调制2、GMSK调制FPGA 仿真图14 GMSK调制FPGA仿真结果整体图图15 GMSK调制FPGA仿真结果局部放大图五、FPGA和MATLAB联合仿真1、共用数据源FPGA仿真时用MATLAB的测试数据源保证两者仿真的输入一致性。图16 FPGA导入MATLAB的测试数据源2、仿真结果对比将FPGA调制后的数据导入到MATLAB中分别画出MATLAB和FPGA调制后的星座图。图17 FPGA调制后数据导入到MATLAB中图18 GMSK调制时域图实部MATLAB和FPGA对比结果图19 GMSK调制时域图虚部MATLAB和FPGA对比结果图20 GMSK调制星座图MATLAB和FPGA对比结果对比可以看出FPGA调制后时域实部和虚部以及星座图均和MATLAB仿真的结果一致。