GMSK 调制的的原理非常简单。

就是MSK调制前进行Gauss滤波。

在实现中有这样的方法,首先产生高斯系数,对称的上升陂和下降陂系数。输入一个符号,进行上采样,经过高斯滤波器,滤波器的输出做有符号的累加。

累加的输出与上限值和下限值比较,即大于PI的值减去2PI或者小于-PI的要加上2PI。把结果送到CORDIC中产生正弦和余弦波形,即GMSK波形。

GMSK调制仿真-LMLPHP

实际在modelsim 中实现滤波器的时候,用加法替代了乘法运算。设置一个数据长度和系数长度等长的数据寄存器或者说RAM。

输入一个符号,如果为1,则把这个RAM第一个值1,其他的值填0,如果为0,则把这个RAM第一个值-1,其他的值填0,

然后在时钟周期下,这个1(或者-1)一个时钟移动一次,这样这个寄存器中就是这样的值。

第1时刻:

·1--0--0--0--0--0--0--0--0--0--0--0--0--0--0--0--0--........

第2时刻:

·0--1--0--0--0--0--0--0--0--0--0--0--0--0--0--0--0--........

第3时刻:

0--0--1--0--0--0--0--0--0--0--0--0--0--0--0--0--0--........

第4时刻:

·0--0--0--1--0--0--0--0--0--0--0--0--0--0--0--0--0--........

第5时刻:

0--0--0--0--1--0--0--0--0--0--0--0--0--0--0--0--0--........

把不为0的寄存器对应的系数值做N个数的累加,N个周期后就输出一个波形,这个波形就是GMSK调制的相位。把相位输入到CORDIC,得到对应的正弦和余弦波形。

GMSK调制仿真-LMLPHP

05-02 06:00