在众多的调制方式中,连续相位调制信号(CPM 信号)具有恒包络特性,它用于承载信息的相位轨迹连续变化,因此该类信号拥有较高的带宽效率。基于CPM信号的恒包络、带宽紧凑和能量利用率高等优点,近几年来,它受到广泛的研究与应用。文中分析了二进制,部分响应L=2 的连续相位调制方式,提出了一种该调制方式下解调器的FPGA 设计方法,并运用VHDL 硬件描述语言实现。
1 CPM 的基本原理
连续相位调制信号可以用式(1)表示:
式(1)中, b E 表示信号的码元能量,T 是码元间隔,
即表示信号幅度。c f 是载波频率,φ (t, I )是带有传输信息的信号相位函数,其中I 表示发生的符号序列。φ (t, I )的表达式如下:
其中n I 是M (M = 2,4,8,16……) 进制的符号信息,取值为{±1,±3,……,±(M -1)}。文中M 为二进制调制, n I 的取值为+1、-1。h 是调制指数,g(t)是成形脉冲函数。脉冲函数g(t)采用升余弦脉冲RC:
式(3)中, L 又称为关联长度。
根据式(2)计算CPM 信号的基带相位,根据相位计算基带信号的I/Q 两路,之后使用两路信号相加就可以得到调制后的CPM 信号,见图1。
图1 CPM 信号调制
2 CPM 解调模块的原理及其实现
2.1 解调器实现原理
对CPM 信号的接收、解调,常采取的步骤为:解调-最大似然序列估计-Viterbi 译码-判决。首先将接收到的复包络信号分为I,Q两路,下变频为基带信号,分别与cos(ψ (t, a))和sin(ψ (t, a))相关后相加,从而得到节点的度量值。对于t时刻每个状态,可以根据其输入值的不同,计算来自前一级节点的两条路径的路径度量,并分别加上前一级节点的节点度量,然后从中选择一个最小的度量值作为节点度量,并存储前一级节点的信息。
2.2 解调器实现框图
这里仿真采用二进制2RC 的调制方式,根据Viterbi 译码方式可知,调制信号共有8 个状态,将这些状态分别编码为000,001,010,011,100,101,110,111。输入数据与状态间转移关系见表1。笔者在设计中将其分为四个模块:分支度量模块、加比选模块、回溯模块和控制模块。其结构设计如图2 所示。
图2 解调过程
(1)分支度量模块
此模块根据输入数据计算分支度量值。在FPGA设计中,预先将每种基准状态抽样时刻的值存入STD 寄存器中,在计算分支度量时通过查表得到基准状态的值。将输入I,Q 两路数据进行串/并转换,得到一个码元持续时间内的调制信号后,与每种基准状态的抽样值相乘并相加,从而得到I,Q 两路的路径度量值。最后将I,Q 两路度量值相加,便可以得到各状态的分支度量值。
(2)加比选ACS 模块
此模块分为两部分:①计算路径度量值;②选择当前时刻最佳路径。当前状态的路径度量值为该状态下所有可能的路径度量值中的最大值。最佳路径为最大路径度量值对应的上一状态。在设计中采用确定CPM 调制的起始状态的方法。复位时将起始状态的路径度量值赋值为0;将其他状态的路径度量值赋值为一个较小的负数。采用这种方式有效避免解调时起始状态的不确定性。
CPM 的解调在一定的译码数量后,路径度量值的存储器便会饱和溢出。该设计采用一种简单方法防止溢出:每次路径度量值计算完成后,判断其最大值,如果最大值超过某一确定的正值,则所有的路径度量值减去一个正值。再判断是否有度量值小于一个确定的负数,如果有,则将其值重新赋值为一个较小的负数。仿真中,证明了这种方法的可行性。
表1 输入数据与状态间转移关系
(3)回溯模块
此模块包括幸存路径存储和判决输出。在模块中比较当前时刻各状态的路径度量值,求得最大路径度量值,以及对应的当前状态。从表1 可知,状态的最低位可以表现上一时刻的输入值,最低位为0 时,表示上一时刻的输入码字为-1;最低位为1 时表示上一时刻的输入码字为1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)