具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。
维特比(Viterbi)译码是卷积码中应用最广泛的方法,它的基本思想是遍历格状图(Trellis)图中的所有路径,通过比较格状图状态转移过程中到达每个状态的多条支路与正确路径的距离,仅保留距离最小的路径,从而通过比较筛选得到正确路径的估计,实现译码。但是随着重叠重数K的增加,Viterbi译码中的状态数M=2^K会指数增加,造成该算法计算复杂度急剧增加,难以满足实时译码的需求。
本申请的发明构思在于:从格状图的原点开始,不管编码约束长度K’或重叠次数K多大,对于一个M维调制的***,它只有M个到达节点。分别计算到达这M个节点支路的瞬时测度,从M个到达节点的瞬时路径测度中选取最小者进行扩展,分别计算扩展的M条支路的瞬时测度,并记下这M个到达节点。每个时刻最多只保留Rn条到达节点及其路径瞬时测度,每次均从具有最小瞬时 路径测度的节点扩展,每扩展一次增加M-1个到达节点,存储其中较小的Rn个测度及其各自对应的路径。。如此继续进行直到格状图的数据帧结束,其具有最小测度的到达节点的路径就是判决输出。总结起来,在译码过程中不遍历所有状态节点及其扩展路径,而是每次通过测度排序选取最小测度对应的路径进行扩展,因此可以大幅度降低译码复杂度,并提高译码效率。
本申请公开了一种适用于高重OvXDM***的快速译码方法(以下简称快速译码方法),在本发明中,高重定义为叠加次数K大于等于8的***。在一实施例中,高重OvXDM***可为OvTDM***、OvFDM***、OvCDM***、OvSDM***或OvHDM***,其中T、F、C、S、H分别代表了时间域、频率域、码分域、空间域、混合域。
如图1所示,本申请的快速译码方法包括步骤S01~S17。下面具体说明。
步骤S01、分别计算前r个符号所潜在的全部路径与接收符号序列中前r个接收符号之间的测度。在一较优的实施例中,r为log
MR
n的数值向下取整,其中M表示***的维度,取值是大于等于2的整数。在一实施例中,本申请中的测度表示两个信号之间的距离,定义为:
当p=2时即为欧氏距离,欧氏距离是两个信号之间的真实距离,能够真实的反应实际信号和理想信号之间的距离,在一实施例中,可选欧氏距离作为本申请的测度,本专利中欧氏距离定义为
步骤S03、对步骤S01中计算得到的各测度进行排序。
步骤S05、存储步骤S03中排序得到的其中较小的Rn个测度及其各自对应的路径。其中Rn为一正整数,且小于高重OvXDM***对应的格状图的节点数,例如,在一较优实施例中,Rn小于MK-1,其中M表示***的维度,取值是大于等于2的整数。
步骤S07、对当前存储的最小测度对应的路径进行扩展。对于M维调制的OvTDM***和OvFDM***等,是对当前存储的最小测度对应的路径的最后一个节点进行M维扩展。
步骤S09、对扩展出的路径计算其与对应接收符号之间的瞬时测度。
步骤S11、将各瞬时测度与前一时刻对应的累加测度相加,得到当前时刻相加后的各扩展路径的累加测度。在一较优的实施例中,将各瞬时测度与前一时刻对应的累加测度相加时,前一时刻累加测度先与权重因子相乘后再与瞬时测度相加,这是为了使得随着路径深度的增加,逐渐弱化距离当前节点较远的节点测度的参考,使得译码准确度更高。在一较优实施例中,权重因子的取值为大于0且小于等于1。
步骤S13、对所述各扩展路径的累加测度与存储的其余未进行扩展的Rn-1个测度进行排序。
步骤S15、存储其中较小的Rn个测度及其各自对应的路径。
步骤S17、当步骤S07中对当前存储的最小测度对应的路径进行扩展后达到接收符号序列的深度时,则进行步骤S19、对扩展出的路径计算其与对应接收符号之间的瞬时测度,并比较各瞬时测度,将最小的测度对应的路径作为译码路径;否则重复步骤S07~S15。
如上所述,本申请在译码过程中,每次都只对当前存储的最小测度对应的路径进行扩展,并计算其对应的瞬时测度和累加测度,而没有遍历所有状态节点及其扩展路径,因此可以大幅度降低译码复杂度,并提高译码效率,其译码复杂度并不会像传统译码方案一样随着重叠复用次数K的增加而急剧增加,解决了频谱效率与译码复杂度、译码效率这一对矛盾需求。
相应地,本申请还提出一种适用于高重OvXDM***的快速译码装置(以下简称快速译码装置),如图2所示,本申请的快速译码装置包括第一计算模块01、第一排序模块03、Rn个距离存储器05、Rn个路径存储器07、扩展模块09、第二计算模块11、第二排序模块13和比较输出模块15,在一较优实施例中,本申请的快速译码装置还可以包括权重因子模块17。
下面具体说明。
第一计算模块01用于分别计算前r个符号所潜在的全部路径与接收符号序列中前r个接收符号之间的测度。在一较优的实施例中,r为logMRn的数值向下取整,其中M表示***的维度,取值是大于等于2的整数。
第一排序模块03用于对计算得到的各测度进行排序。
Rn个距离存储器05及对应的Rn个路径存储器07分别用于存储第一排序模块03中得到的较小的Rn个测度及其各自对应的路径。在一较优实施例中,Rn小于MK-1,其中M表示***的维度,取值是大于等于2的整数。
扩展模块09用于对当前存储的测度中最小值对应的路径进行扩展。
第二计算模块11用于对扩展模块09扩展出的路径计算其与接收符号序列中对应接收符号之间的瞬时测度,并将各瞬时测度与前一时刻对应的累加测度相加,得到当前时刻相加后的各扩展路径的累加测度。在一较优实施例中,权重因子模块17用于在第二计算模块11将各瞬时测度与前一时刻对应的累加测度相加时,先对前一时刻累加测度乘以权重因子,从而使得前一时刻累加测度先与权重因子相乘后再与瞬时测度相加。引入权重因子模块17是为了使得随着路径深度的增加,逐渐弱化距离当前节点较远的节点测度的参考,使得译码准 确度更高。在一较优实施例中,权重因子的取值为大于0且小于等于1。
第二排序模块13用于对第二计算模块11中计算得到的所述各扩展出的路径的累加测度与存储的其余未进行扩展的Rn-1个测度进行排序,其中较小的Rn个测度及其各自对应的路径用于更新所述Rn个距离存储器05及对应的Rn个路径存储器07的值。
当扩展模块09对当前存储的最小测度对应的路径进行扩展达到接收符号序列的深度时,第二计算模块11对扩展模块09扩展出的路径计算其与对应接收符号之间的瞬时测度,比较输出模块15比较各瞬时测度,并将最小的瞬时测度对应的路径作为译码路径;否则扩展模块09、第二计算模块11和第二排序模块13重复进行工作。
本申请还公开了一种OvXDM***,其包括上述的适用于OvXDM***的快速译码装置,在一实施例中,OvXDM***可以为OvTDM***、OvFDM***、OvCDM、OvSDM或OvHDM***。
下面再通过若干个实施例对本申请作进一步的说明。
实施例一
本实施例不妨以OvFDM***为例进行说明。
如图3所示,为OvFDM***发送端,其首先将频域信号按照一定的规律进行编码,然后将频域信号转换为时域信号即进行傅氏反变换,之后才将信号发送出去。具体地,先根据设计参数生成一个初始包络波形;然后根据重叠复用次数将上述初始包络波形在频域上按预定的频谱间隔进行移位,得到各子载波包络波形;再将输入数据序列与各自对应的子载波包络波形相乘,得到各子载波的调制包络波形;再将各子载波的调制包络波形在频域上进行叠加,得到频域上的复调制包络波形,最后将上述频域上的复调制包络波形变换为时域上的复调制包络波形以发送,其中频谱间隔为子载波频谱间隔△B,其中子载波频谱间隔△B=B/K,B为所述初始包络波形的带宽,K为重叠复用次数。数据序列编码叠加过程如图4所示。如图5所示为OvFDM***接收端,其通过天线收到的信号是时域的信号,如果要对接收信号译码,首先需要将时域信号转换为频域信号,即进行傅氏变换之后才能处理。具体地,先对接收信号在时间域形成符号同步;然后对各个符号时间区间的接收信号进行取样、量化,使它变成接收数字信号序列;将时域信号转换为频域信号,再对该频率域信号以频谱间隔△B分段,形成实际接收信号分段频谱;再形成接收信号频谱与发送的数据符号序列之间的一一对应关系,最后根据此种一一对应的关系,检测数据符号序列。OvFDM***中的傅氏反变换和傅氏变换都涉及采样点数的设置,两者的采样点数应保持一致,且取值为2n,n为正整数。
一个重叠次数为K的2维调制OvFDM***,即M=2,其格状图的节点数为2K-1,传统译码算法中需要的距离存储器为2K-1个,路径存储器也为2K-1个,如图6所示,其为一个接收信号长度N=4,重叠次数K=3时***对应的输入-输出关系码树图,从图中可以看出,码树图的状态数为2K-1=4,相应地,如图7所示,对应的格状图的节点数也为4,当译码状态充分展开时,每个译码步骤共有8条路径。本实施例中,选取距离存储器05为Rn个,路径存储器07也为Rn个,其中Rn小于2K-1,从而降低译码的复杂度,在一实施例中,令r为log2Rn的数值向下取整。对于一个二维调制的OvFDM***,从格状图的原点开始,不管重叠重数K多大,它只有两个到达节点。分别计算到达这两个节点支路的瞬时测度,从两个到达节点的瞬时路径测度中选取最小者进行扩展,分别计算扩展两支路的瞬时测度,并记下这两个到达节点。每个时刻最多只保留Rn条到达节点及其路径瞬时测度,每次均从具有最小瞬时路径测度的节点扩展,每扩展一次增加一个到达节点,具有较大瞬时路径测度的路径及其测度全部抛弃。如此继续进行直至格状图的数据帧结束,其具有最小瞬时路径测度的到达节点的路径就是判决输出。下面详述译码步骤,本实施例中不妨令Rn=2r。
需要说明的是,在以下的实施例中使用K=3的低重叠进行说明,仅是为了使得阐述本发明的具体方案时更加清晰,本发明更为适用于高重叠次数的***,例如K=8等,并随着重叠次数的提升,其优化的效果更为明显。
(1)确定初始前r个符号路径和对应测度。
长度为r的符号序列表示为
对于2维调制,共有2
r种可能组合信息,组合形式为
因此可得到2
r*r维的矩阵,表示为msg(2
r*r),其中每一行表示一组长度为r的符号序列。分别计算每组符号序列与前r个接收符号的瞬时测度,定义为:
其中v
r为前r个接收符号,x
r,j为OvFDM***的窗函数,
为msg(2
r*r)中第i行中第(r-j)个符号。此时译码到达第r个节点,包含2
r条译码路径U和2
r个瞬时测度d,每条译码路径的节点深度均为r。将瞬时测度和对应的译码路径分别存入距离存储器05和路径存储器07。
(2)寻找测度最小值和最大值。
将(1)中得到的2
r个瞬时测度依次排序,分别找出测度最小和最大对应的索引idx
min、idx
max,测度最小索引对应的瞬时测度为
将测度最小对应的 索引节点深度加1,节点深度变为r+1。
(3)扩展节点
对测度最小索引对应的译码路径进行扩展,可扩展为1和-1两条支路,即译码路径变为
和
扩展后的译码路径共有2
r+1,但是我们仅需要保留2
r条路径,因此将(2)中找到的最大测度索引对应的译码路径删除,将扩展为1的译码支路
存储在索引为idx
max的存储器中(也可以用-1支路替代),-1支路
继续存储在索引为idx
min的存储器中。此时译码路径中只有idx
min、idx
max索引对应的节点深度为r+1,其余索引的节点深度仍为r。节点状态转移参考附图8。
(4)计算累加测度
将扩展后的两条路径分别与接收到的符号求瞬时测度,计算公式同(2)中计算测度的公式,得到两条路径的测度分别为d'
r+1、d”
r+1,将其分别与r节点对应的瞬时测度相加,得到累加测度。在相加过程,可以引入权重因子alpha,取值为大于0且小于等于1的数,具体数值视***需求而定,这样做的目的是随着节点深度的增加,逐渐弱化距离当前节点较远的节点测度参考,相加过程可表示为:
得到的累加测度分别存储在(3)中对应的idx
min、idx
max存储器中。
对剩余的符号序列同样采用上述(2)~(4)的方式,进行筛选扩展,直到节点深度到达符号序列深度N,比较最后一次符号扩展后的瞬时测度,较小者即为最终输出的译码路径。
从以上步骤中可以看出,本专利中提出的快速译码方法每次仅需对Rn个节点进行扩展,而经典方法中需要对2K-1次个节点进行扩展,当K较大时,Rn可以取值相对较小,并且满足Rn<2K-1,因此对于长度为N的译码序列,译码复杂度大幅降低。
下面再以一个实际的例子说明本实施例。
由于重叠次数K较大时,其译码复杂度较高,同时若数据帧长度N过大难以用文字完整的表述,因此本实施例选取稍小的K值和N值为例,旨在描述快速译码的具体实施方案。
以重叠次数K=5的二维调制的OvFDM***为例,其采用矩形复用窗H={1 1 1 11}进行调制。需要说明的是,本申请的快速译码文法,适用于各种复用窗函数。由于重叠次数K=5,因此当格状图完全展开后共有2K-1=16个节点,本例子选取Rn=4,因此r为log2Rn的数值向下取整,即为2,需要说明的是,本申请的快速译码方法中,Rn的取值只要小于2K-1即可降低译码复杂度。
不妨令发送码序列为xi={+1 -1 -1 +1 -1 +1 +1 -1 +1 -1},经过OvFDM***调制编码后,接收端经过同步、信道估计均衡处理,转换为频域信号后得到的接收序列为yi={+1 0 -1 0 -1 -1 +1 +1 +1 +1}。按照上述快速译码方法对接收到的序列yi进行译码,其译码路径如图9所示,最终得到了正确的的译码结果。
本实施例通过采用一种快速译码方法,在译码过程中对格状图中访问节点进行筛选,结合权重因子计算累加测度,选取测度最小的路径进行扩展,最终筛选出最佳译码路径,从而实现了在高重OvFDM***译码过程中,使用此方法后降低了***设计复杂度和计算量,且同时具有较低的误码率。另外,普通OvFDM***中,在计算累加测度时,将当前节点之前的测度和瞬时测度直接相加,随着译码深度的增加,累加测度越来越大,对距离存储器有较高要求。但实施上,对于一个重叠次数为K的OvFDM***中,符号的相互重叠仅存在于当前符号相关联的前K-1个符号和后K-1个符号中,超过这个范围后即对当前符号的叠加就不会产生影响,因此其测度对当前节点的路径判断所占权重也就越来越小。基于这个原因,在计算累加测度时,通过瞬时测度和前一节点测度的权重结果相加,随着译码深度的增加,累加测度始终保持在一定范围内,对距离存储器要求降低,且最终的译码路径更具可靠性。
需要说明的是,本实施例中,由于每次只对测度最小的路径进行扩展,即每次只对一条路径进行扩展,因此每个时刻存储的各条路径的深度不同,因此信噪比较低时在筛选扩展的过程中节点和路径会出现反复的回退。另外,由于待译码的数据长度较长,且随着译码深度的加深,累加距离越来越大,***若将所有数据全部译码完成后再进行译码输出,较消耗***资源,因此对于路径的存储容量和距离的存储采取较优的处理方法。一般选取路径存储长度为4K~5K,此时如果路径存储器已经存满而译码判决输出还未进行可强行判决输出,将具有相同路径的初始节点先进行输出。另外,随着译码深度的加深,累加测度也会越来越大,可将累加测度存储为相对测度,即定义一个参考测度,其取值根据不同的***而定,距离存储记录的是每条路径的第二测度相对于参考测度的相对值,在进行最佳路径的筛选时通过相对测度进行比较。
实施例二
本实施例不妨以OvTDM***为例进行说明。
如图10所示,为OvTDM***发送端,先根据设计参数生成一个时域内的初始包络波形;然后根据重叠复用次数将上述初始包络波形在时域上按预定的时间间隔进行移位,得到各个时刻的偏移包络波形;再将输入数据序列与各个 时刻的偏移包络波形相乘,得到各个时刻的调制包络波形;再将各个时刻的调制包络波形在时域上进行叠加,得到时域上的复调制包络波形以发送,其中时间间隔为△t,△t=T/K,T为所述初始包络波形的时域宽度,K为重叠复用次数。数据序列编码叠加过程如图11所示。如图12所示,为OvTDM***接收端,其对每一帧内的接收信号形成接收数字信号序列,再对形成的接收数字信号序列实施检测,以得到所述帧长内的调制在全部符号上的调制数据的判决。
一个重叠次数为K的2维调制OvTDM***,即M=2,其格状图的节点数为2K-1,传统译码算法中需要的距离存储器为2K-1个,路径存储器也为2K-1个,如图13所示,其为一个接收信号长度N=4,重叠次数K=3时***对应输入-输出的码树图,从图中可以看出,码树图的状态数为2K-1=4,相应地,如图14所示,对应的格状图的节点数也为4,当译码状态充分展开时,每个译码步骤共有8条路径。本实施例中,选取距离存储器05为Rn个,路径存储器07也为Rn个,其中Rn小于2K-1,从而降低译码的复杂度,在一实施例中,令r为log2Rn的数值向下取整。对于一个二维调制的OvTDM***,从格状图的原点开始,不管重叠重数K多大,它只有两个到达节点。分别计算到达这两个节点支路的瞬时测度,从两个到达节点的瞬时路径测度中选取最小者进行扩展,分别计算扩展两支路的瞬时测度,并记下这两个到达节点。每个时刻最多只保留Rn条到达节点及其路径瞬时测度,每次均从具有最小瞬时路径测度的节点扩展,每扩展一次增加一个到达节点,具有较大瞬时路径测度的路径及其测度全部抛弃。如此继续进行直至格状图的数据帧结束,其具有最小瞬时路径测度的到达节点的路径就是判决输出。下面详述译码步骤,本实施例中不妨令Rn=2r。
(1)确定初始前r个符号路径和对应测度。
长度为r的符号序列表示为
对于2维调制,共有2
r种可能组合信息,组合形式为
因此可得到2
r*r维的矩阵,表示为msg(2
r*r),其中每一行表示一组长度为r的符号序列。分别计算每组符号序列与前r个接收符号的瞬时测度,定义为:
其中v
r为前r个接收符号,x
r,j为OvTDM***的窗函数,
为msg(2
r*r)中第i行中第(r-j)个符号。此时译码到达第r个节点,包含2
r条译码路径U和2
r个瞬时测度d,每条译码路径的节点深度均为r。将瞬时测度和对应的译码路径分别存入距离存储器05和路径存储器07。
(2)寻找测度最小值和最大值。
将(1)中得到的2
r个瞬时测度依次排序,分别找出测度最小和最大对应的 索引idx
min、idx
max,测度最小索引对应的瞬时测度为
将测度最小对应的索引节点深度加1,节点深度变为r+1。
(3)扩展节点
对测度最小索引对应的译码路径进行扩展,可扩展为1和-1两条支路,即译码路径变为
和
扩展后的译码路径共有2
r+1,但是我们仅需要保留2
r条路径,因此将(2)中找到的最大测度索引对应的译码路径删除,将扩展为1的译码支路
存储在索引为idx
max的存储器中(也可以用-1支路替代),-1支路
继续存储在索引为idx
min的存储器中。此时译码路径中只有idx
min、idx
max索引对应的节点深度为r+1,其余索引的节点深度仍为r。节点状态转移参考附图15。
(4)计算累加测度
将扩展后的两条路径分别与接收到的符号求瞬时测度,计算公式同(2)中计算测度的公式,得到两条路径的测度分别为d'
r+1、d”
r+1,将其分别与r节点对应的瞬时测度相加,得到累加测度。在相加过程,可以引入权重因子alpha,取值为0~1的数,具体数值视***需求而定,这样做的目的是随着节点深度的增加,逐渐弱化距离当前节点较远的节点测度参考,相加过程可表示为:
得到的累加测度分别存储在(3)中对应的idx
min、idx
max存储器中。
对剩余的符号序列同样采用上述(2)~(4)的方式,进行筛选扩展,直到节点深度到达符号序列深度N,比较最后一次符号扩展后的瞬时测度,较小者即为最终输出的译码路径。
从以上步骤中可以看出,本专利中提出的快速译码方法每次仅需对Rn个节点进行扩展,而经典方法中需要对2K-1次个节点进行扩展,当K较大时,Rn可以取值相对较小,并且满足Rn<2K-1,因此对于长度为N的译码序列,译码复杂度大幅降低。
下面再以一个实际的例子说明本实施例。
由于重叠次数K较大时,其译码复杂度较高,同时若数据帧长度N过大难以用具体实施例表述,因此本实施例选取稍小的K值和N值为例,旨在描述快速译码的具体实施方案。
以重叠次数K=5的二维调制的OvTDM***为例,其采用矩形复用窗H={1 1 1 11}进行调制。需要说明的是,本申请的快速译码文法,适用于各种复用窗函数。由于重叠次数K=5,因此当格状图完全展开后共有2K-1=16个节点, 本例子选取Rn=4,因此r为log2Rn的数值向下取整,即为2,需要说明的是,本申请的快速译码方法中,Rn的取值只要小于2K-1即可降低译码复杂度。
不妨令发送码序列为xi={+1 -1 -1 +1 -1 +1 +1 -1 +1 -1},经过OvTDM***调制编码后,接收端经过同步、信道估计均衡处理后得到的接收序列为yi={+1 0 -1 0 -1 -1 +1 +1 +1 +1}。按照上述快速译码方法对接收到的序列yi进行译码,其译码路径如图16所示,最终得到了正确的的译码结果。
本实施例通过采用一种快速译码方法,在译码过程中对格状图中访问节点进行筛选,结合权重因子计算累加测度,选取测度最小的路径进行扩展,最终筛选出最佳译码路径,从而实现了在高重OvTDM***译码过程中,使用此方法后降低了***设计复杂度和计算量,且同时具有较低的误码率。另外,普通OvTDM***中,在计算累加测度时,将当前节点之前的测度和瞬时测度直接相加,随着译码深度的增加,累加测度越来越大,对距离存储器有较高要求。但实施上,对于一个重叠次数为K的OvTDM***中,符号的相互重叠仅存在于当前符号相关联的前K-1个符号和后K-1个符号中,超过这个范围后即对当前符号的叠加就不会产生影响,因此其测度对当前节点的路径判断所占权重也就越来越小。基于这个原因,在计算累加测度时,通过瞬时测度和前一节点测度的权重结果相加,随着译码深度的增加,累加测度始终保持在一定范围内,对距离存储器要求降低,且最终的译码路径更具可靠性。
需要说明的是,本实施例中,由于每次只对测度最小的路径进行扩展,即每次只对一条路径进行扩展,因此每个时刻存储的各条路径的深度不同,因此信噪比较低时在筛选扩展的过程中节点和路径会出现反复的回退。另外,由于待译码的数据长度较长,且随着译码深度的加深,累加距离越来越大,***若将所有数据全部译码完成后再进行译码输出,较消耗***资源,因此对于路径的存储容量和距离的存储采取较优的处理方法。一般选取路径存储长度为4K~5K,此时如果路径存储器已经存满而译码判决输出还未进行可强行判决输出,将具有相同路径的初始节点先进行输出。另外,随着译码深度的加深,累加测度也会越来越大,可将累加测度存储为相对测度,即定义一个参考测度,其取值根据不同的***而定,距离存储记录的是每条路径的第二测度相对于参考测度的相对值,在进行最佳路径的筛选时通过相对测度进行比较。
实施例三
本实施例不妨以OvCDM***为例进行说明。OvCDM***的重叠码分复用的核心是重叠和复用,目的是提高通信***的频谱效率。OvCDM***将卷积编 码系数推广到复数域的广义卷积编码模型,通过符号重叠产生约束关系,主要参数包括编码支路数K’路和编码约束长度L,其***结构图如图17所示,对应的编码器结构如附图18所示。OvCDM***的关键是编码矩阵,即卷积扩展系数,要求其满足线性关系,此时输入序列与输出序列一一对应,因此理论上可以无误码的解码,一般通过计算机搜索所有测度较大的矩阵作为编码矩阵,其编码矩阵排列如附图19所示。
为了说明本实施例的快速译码方法,先给出OvCDM***的编码过程。
(1)将待发送数据经过串并转换成为K’路子数据流,第i路上的数据流记为ui=ui,0ui,1ui,2…。比如K’=2时,u0=u0,0u0,1u0,2…,u1=u1,0u1,1u1,2…,
(2)将每一路数据送入一个移位寄存器进行加权叠加,第i路的加权系数为bi=bi,0bi,1bi,2…,其为一复向量。
(3)把各路信号相加输出,得到最终OvCDM编码器的输出为c=c
0c
1c
2…,
OvCDM的码率为
其中n为子数据流长度。当n很长时,由移位寄存器拖尾所带来的码率损失可以忽略不计,于是有r
OVCDM≈k。
传统的二元域卷积编码模型码率一般小于1,会导致频谱效率损失。而OvCDM的复数域的卷积编码码率等于1,单路的卷积编码扩展不会导致频谱效率损失,还会增加额外的编码增益。
接收端收到信号后,先对信号进行同步、信道估计、数字化处理,再对处理后的数据进行译码。译码算法的核心是通过计算接收信号与理想状态的测度,采用路径存储器和测度判决出最佳的译码路径,得到最终的检测序列,序列检测过程框图如附图20所示。
以上是现有技术中OvCDM***的情况。本实施例中的快速译码方法,具体步骤如下。
不妨令OvCDM***的编码支路数为K’路和编码约束长度L,编码输出矢量的维数为N,采用二维调制,因此码元为+1、-1。由于编码支路数为K’路和编码约束长度为L,则每个状态可到达的节点数m为2K’,共计包含2K’个状态S,因此所有状态可到达的节点数共为22K’。本实施例中,选取距离存储器05为Rn个,路径存储器07也为Rn个,其中Rn小于2K’-1,从而降低译码的复杂度,在一实施例中,令r为log2Rn的数值向下取整。
(1)初始状态:
令初始节点状态(l=0)的路径测度为d0,0=0。
(2)确定初始前r个符号路径和对应测度
长度为r的符号序列表示为
对于2维调制,共有2
r种可能组合信息,组合形式为
因此可得到2
r*r维的矩阵,表示为msg(2
r*r),其中每一行表示一组长度为r的符号序列。分别计算每组符号序列与前r个接收符号的瞬时测度,定义为:
其中v
r为前r个接收符号,x
r,j为OvCDM的编码矩阵,
为msg(2
r*r)中第i行中第(r-j)个符号。此时译码到达第r个节点,包含2
r条译码路径U和2
r个瞬时测度d,每条译码路径的节点深度均为r。将瞬时测度和对应的译码路径分别存入距离存储器05和路径存储器07。
(3)计算节点测度:
每个节点共计包括S个状态,对第l个节点求其测度,方法为计算全部m条从前一状态转移到此状态的理想信号符号与接收信号序列
之间的测度d
s,m(l,l+1),其表达式为
(4)计算累加测度:
将当前节点各个状态S的欧氏距离ds,m(l,l+1)与它们各自出发状态S'的测度ds',l-1相加,形成新的m个路径的累加欧氏距离。在相加过程,可以引入权重因子alpha,取值为0~1的数,具体数值视***需求而定,这样做的目的是随着节点深度的增加,逐渐弱化距离当前节点较远的节点测度参考。
(5)路径筛选:
对累加的欧氏距离进行排序,选择累加欧氏距离最小的路径对其进行扩展,可扩展出m条支路,对这m条支路依次求当前节点测度,保留测度最小的路径,同时舍弃其余(m-1)条路径,此时存储器中共包含Rn条路径及其对应的测度。
(6)最终路径确定:
重复步骤(3)-(5)直至译码结束,此时存储器中共保留了Rn条路径及其对应的路径欧氏距离,欧氏距离最小的路径即为译码结果。
本实施例中,保留路径数Rn决定了译码过程保留的信息,对于编码支路数为K’的OvCDM***,舍弃的路径数量为22K’-Rn,因此Rn越小译码的复杂度越低。但Rn不可能无限小,Rn越小,译码性能损失越大,相同误码率条件下需要更高的信噪比。因此需要根据实际的***及信道,选择合适的Rn,在降低译码复杂度的同时,保证译码的性能损失较小。一般选择Rn的值为大于等于2L(K’-4)且小于等于2L(K’-2),此时能够保证译码性能同时大幅降低译码复杂度。
下面再以一个实例进行说明。
由于编码支路数K'和编码约束长度L较大时,其译码复杂度较高,同时若数据帧长度N过大难以用具体实施例表述,因此本实施例选取稍小的K'、L值和N值为例,旨在描述快速译码的具体实施方案。
本案例以输入数据流为u={+1,-1,-1,-1,-1,+1,-1,+1,+1,-1,+1,-1,-1,-1,-1,+1},K’=2,L=2,R
n=4,编码矩阵
为例说明OvCDM***译码过程,该参数设计下对应OvCDM***对应的格状图如图21所示。
(1)编码过程
首先对于K’=2,将输入数据流u转换为两路,对应为:
u1={+1,-1,-1,-1,+1,+1,-1,-1}
u2={-1,-1,+1,+1,-1,-1,-1,+1}
每一路的卷积系数表示为:b0=[1 j],b1=[j 1],参照附图18编码结构和附图21的格状图,其编码输出为c={1-j,-2,-2,0,2-2j,0,-2,-2}。OvCDM***的编码实现过程也可以采用其他方式,本申请的发明点在于译码过程而不在于编码过程。
(2)译码
经过信号同步、信道估计、数字化处理后,接收端得到信号序列,为方便说明,假定为理想状态,此时接收信号序列为c={1-j,-2,-2,0,2-2j,0,-2,-2},利用接收信号进行译码:
接收到的第一个符号为1-j,将其与理想的四个状态(1,1),(1,-1),(-1,1),(-1,-1)分别求测度,排序找出最小测度,其对应路径为(1,-1)。将四个测度及其对应的路径存入存储器中。
接着处理第2个符号-2,对测度最小的路径(1,-1)进行扩展,由当前状态可扩展出四条支路,分别为(1,-1,1,1)、(1,-1,1,-1)、(1,-1,-1,1)、(1,-1,-1,-1),将当前符号分别和这四条理想路径求测度,保留测度最小者对应的路径(1,-1,-1,-1),同时舍弃其余三条支路。此时路径存储器中存储的四条路径依次为(1,1),(1,-1,-1,-1),(-1,1),(-1,-1)。
后面的符号采用相同的方法,每次对测度最小的路径进行扩展,保留测度最小的,同时舍弃其余扩展的路径,直至到达最后一个符号,此时得到4条路径及其对应的测度,测度最小的路径对应的序列即为最终译码输出序列,为(1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,1),译码结束。译码过程如图22所示。
本申请提出的快速译码方法及装置,除了应用在OvXDM***中,也可广泛应用于实际移动通信***中,如TD-LTE、TD-SCDMA等***,还可以广泛应用于卫星通信、微波视距通信、散射通信、大气层光通信、红外通信与水生通信等任何无线通信***中。本申请的快速译码方法、装置及OvXDM***,既可以应用于大容量无线传输,也可以应用于小容量的轻型无线电***。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。