一种通过矢量处理器实现viterbi解码的方法技术

技术编号:14705467 阅读:37 留言:0更新日期:2017-02-25 10:47
本申请提供一种通过矢量处理器实现viterbi解码的方法,该系统利用自定义的Viterbi分支度量指令、Viterbi加比选指令以及Viterbi回溯指令,通过矢量处理器中的矢量运算单元可以实现Viterbi解码。同时本发明专利技术还设计了高效的地址指针变换模式,能够方便快速的进行Viterbi输出和输入数据的存取,从而实现高效的Viterbi的解码运算。

【技术实现步骤摘要】

本申请涉及通信数据处理领域,尤其涉及一种通过矢量处理器实现viterbi解码的方法
技术介绍
Viterbi算法作为一种最大似然算法,可以在网格图上找出最大似然的状态转移路径,从而对噪声环境中的接受信号进行纠错译码。由于他的前向纠错性能,Viterbi译码器广泛应用于各种数字通信系统如:卫星通信系统、GSM、3G、DVB标准和ATSC标准等各种通信系统中。传统意义上的Viterbi译码器通常包含五部分:分支度量计算单元(BranchMetricUint,BMU),加比选单元(AddCompareSelect,ACS),累加度量值存储RAM,幸存信息存储RAM和回溯判决模块(Traceback)。分支度量单元接受经过信道传输的卷积编码序列,计算分支度量值送给加比选单元,对于每一个状态,ACS单元从累加度量RAM中读出转移到该状态的前两个状态的累加度量值和相应的分支度量值进行加比选运算,得到新的累加值存入到累加度量RAM,同时得到1比特的幸存信息送入缓存器,等所有状态都完成运算后一起存入幸存信息RAM。当达到回溯深度后,回溯判决单元根据幸存信息RAM的幸存信息用回溯的办法往前回溯即可得到信息比特。由于实时性的要求,Viterbi译码的传统实现方式通常是将Viterbi译码器做成一个专用的硬件加速器,这种实现方式增加了硬件开销而且通用性差。
技术实现思路
有鉴于此,本申请提供一种通过矢量处理器实现viterbi解码的方法和系统,以解决现有技术viterbi解码方式增加了硬件开销而且通用性差的问题。具体地,本申请是通过如下技术方案实现的:本专利技术提供一种通过矢量处理器实现viterbi解码的方法,利用自定义的Viterbi分支度量指令、Viterbi加比选指令以及Viterbi回溯指令,通过矢量处理器中的矢量运算单元实现Viterbi解码。所述方法包括:接收待解码信号,并通过预设的viterbi分支度量指令,利用矢量运算单元对所述待解码信号进行分支度量值计算;通过预设的viterbi加比选指令,对经过所述分支度量值计算的待解码信号进行viterbi加比选计算;通过预设的viterbi回溯指令,对经过所述viterbi加比选计算的待解码信号进行viterbi回溯操作,完成解码。本专利技术还设置了多个存储器地址指针,并为每个存储器地址指针设置了独立的模式寄存器,通过配置对应的存储器地址指针模式寄存器为自增模式或保持模式,可对Viterbi解码运算过程中输入和输出数据的地址变换进行设定,方便进行数据读取。本专利技术实施例,通过预设的viterbi分支度量指令对待解码信号进行分支度量值计算,对经过分支度量值计算的待解码信号进行viterbi加比选计算,对经过viterbi加比选计算的待解码信号进行viterbi回溯操作,完成解码,使得viterbi解码只需矢量处理器即可,不再需要专用的viterbi硬件加速器,节省了硬件资源。本方案所设计的Viterbi译码装置,只需要调用本方案设计的指令,通过软件编程即可快速完成Viterbi译码,简化了Viterbi译码器的设计。附图说明图1是本申请一示例性实施例示出的矢量处理器的系统架构图;图2是本申请一示例性实施例示出的矢量寄存器单元的结构图;图3是本申请示出的卷积编码器的结构图;图4是本申请示出的编码器的状态转移图;图5是本申请示出的编码器的第一类状态转移图;图6是本申请示出的编码器的第二类状态转移图;图7是本申请示出的编码器的第三类状态转移图;图8是本申请示出的编码器的第四类状态转移图;图9是本申请一示例性实施例示出的一种通过矢量处理器实现viterbi解码的方法的流程图图10是本申请示出的1/2码率下通过矢量运算单元进行viterbi分支度量计算的过程示意图;图11是本申请示出的1/3码率下通过矢量运算单元进行viterbi分支度量计算的过程示意图;图12是本申请示出的viterbi加比选指令计算的过程示意图;图13是本申请示出的viterbi路径度量值读取和存储地址变换示意图;图14是本申请示出的viterbi解码流程示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。如图1所示为本申请一示例性实施例示出的矢量处理器的系统架构图,所述矢量处理器包括:指令存储器106、取指单元107、译码单元108、矢量寄存器单元100、数据交换网络101、矢量运算单元102、地址产生单元103、数据存取单元104、数据存储器105。利用自定义的Viterbi分支度量指令、Viterbi加比选指令以及Viterbi回溯指令,通过矢量处理器中的矢量运算单元102可实现高效Viterbi解码运算。地址产生单元103则用于产生Viterbi解码过程中软比特的读取地址、分支度量值的存取地址以及最后解码出的硬比特的存储地址。如图2所示为本申请示出的矢量寄存器单元的结构图,该矢量寄存器单元100由8个64bit的矢量寄存器(v0~v7)或者16个32bit的寄存器(d0~d15)或者32个16bit寄存器(s0~s31)组成。每个v寄存器由两个d寄存器组成,每个d寄存器由两个s寄存器组成,每个s寄存器都叫做矢量的一个元素。例如:v0是一个64bit的矢量寄存器,它的低32bit为d0寄存器,高32bit为d1寄存器。d0寄存器的低16bit为s0寄存器,高16bit为s1寄存器。d1寄存器的低16bit为s2寄存器,高16bit为s3寄存器。s0~s3分别对应v0寄存器的四个元素(e0~e3)。该矢量寄存器包含4个bank,每个v寄存器的元素e0构成bank0,元素e1构成bank1,元素e2构成bank2,元素e3构成bank3。矢量运算单元102具有4个并行的ALU单元,可对矢量寄存器单元100中的矢量数据进行并行计算。矢量运算单元102和数据存取单元104可对矢量寄存器单元100进行读写操作,每次读写操作可针对v寄存器(ld64或st64)、d寄存器(ld32或st32)或s寄存器(ld16或st16)。如图3所示为本申请示出的卷积编码器的结构图,图中含有6个编码寄存器,其约束长度为7。对这六个编码寄存器做如下的状态本文档来自技高网...
一种通过矢量处理器实现viterbi解码的方法

【技术保护点】
一种通过矢量处理器实现viterbi解码的方法,其特征在于,利用自定义的Viterbi分支度量指令、Viterbi加比选指令以及Viterbi回溯指令,通过矢量处理器中的矢量运算单元可以实现Viterbi解码。所述方法包括:接收待解码信号,并通过预设的viterbi分支度量指令,利用矢量运算单元对所述待解码信号进行分支度量值计算;通过预设的viterbi加比选指令,对经过所述分支度量值计算的待解码信号进行viterbi加比选计算;通过预设的viterbi回溯指令,对经过所述viterbi加比选计算的待解码信号进行viterbi回溯操作,完成解码。

【技术特征摘要】
1.一种通过矢量处理器实现viterbi解码的方法,其特征在于,利用自定义的Viterbi分支度量指令、Viterbi加比选指令以及Viterbi回溯指令,通过矢量处理器中的矢量运算单元可以实现Viterbi解码。所述方法包括:接收待解码信号,并通过预设的viterbi分支度量指令,利用矢量运算单元对所述待解码信号进行分支度量值计算;通过预设的viterbi加比选指令,对经过所述分支度量值计算的待解码信号进行viterbi加比选计算;通过预设的viterbi回溯指令,对经过所述viterbi加比选计算的待解码信号进行viterbi回溯操作,完成解码。2.如权利要求1所述的方法,其特征在于,所述通过预设的viterbi分支度量指令,利用矢量运算单元对所述待解码信号进行分支度量值计算,包括:将所述待解码信号由软比特量化为有符号整数;通过预设的viterbi分支度量指令对所述有符号整数进行分支度量计算。3.如权利要求2所述的方法,其特征在于,所述有符号整数的数值越大表示软比特值越接近0,越小表示越接近1。4.如权利要求1所述的方法,其特征在于,所述解码的码率包括:1/2码率和/或1/3码率。5.如权利要求1~4任一项所述的方法,其特征在于,如果viterbi编码为1/2码率,则将Viterbi输入的两个相邻...

【专利技术属性】
技术研发人员:李炜陶建平刘勇
申请(专利权)人:江苏宏云技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1