一种Turbo码译码系统及方法_3

文档序号:9754071阅读:来源:国知局
完成多个 序列的译码操作。图3是本实施例中译码系统的配置结构的示意图,其中将译码系统的其 他单元表示为Turbo码译码系统主体模块。如图3所示,该微控制器通过ABP总线与AXI 总线将译码参数传递给Turbo码译码系统主体模块,这种配置方式可使系统层的调度更加 灵活。
[0080] 根据本发明的一个实施例,还提供一种Turbo码译码方法,该方法可利用上述实 施例提供的Turbo码译码系统来实现。
[0081] 图4示出了本实施例提供的译码方法的数据处理流向。需要说明的是,为了使译 码过程更加清晰,图4中将SIS0单元的工作用SIS01和SIS02两部分表示,其中SIS01表 示第一次半迭代译码、SIS02表示第二次半迭代译码。结合图4并概括而言,该方法包括: 对分量码1进行译码,同时计算并存储交织地址;对分量码2进行译码得到软信息;以及, 对软信息进行硬判决并且进行解交织,根据迭代次数或者得到的硬比特数据进行判定,基 于判定结果选择结束或者重新执行译码。
[0082] 下面将具体描述该方法的每个步骤。
[0083] 第一步:对分量码1进行译码,同时计算并存储交织地址。
[0084] 在本步骤中,将系统信息1和校验信息1组成分量码1,SIS0单元根据译码算法, 利用先验信息2对分量码1进行译码(即第一次半迭代译码),产生外信息1。需要说明的 是,由于译码是一个迭代执行的过程,这里SIS0单元对分量码1进行译码时需要用到的先 验信息2是由后续步骤产生的,所以在首次执行第一步时,先验信息2为0。
[0085] 与此同时,交织单元计算交织地址并存储。由于在整个译码过程中,需要对系统信 息1和SIS0单元产生的数据进行交织或解交织,所以在此时计算交织地址以便为交织和解 交织操作做基础,其中该交织地址的长度与交织数据的长度相等。如上文所述,计算交织地 址的过程是按照交织算法将一段顺序的地址打乱,然后将乱序的地址顺序保存。当数据需 要进行交织时,只需根据乱序的地址读取数据即可完成数据的映射,达到交织或解交织的 目的。
[0086] 当交织地址的计算和存储完成,并且第一次半迭代译码完成时,执行第二步。也就 是说SIS0单元对分量码1进行译码以及交织单元计算交织地址是在同一时间段完成的,在 此将执行第一步的时间段称为T1。
[0087] 在进一步的实施例中,如本领域技术人员所公知的,由于SIS0单元的译码过程实 际是通过一个已知的接收数据求一个可能的输入数据的似然概率过程,译码过程针对每个 输入的数据计算先验概率Ct,后验概率β和转移概率 Y。由于先验概率α的计算方式是 根据输入数据中的第一个信息依次计算到最后一个信息的,而β、Υ的计算方式是从输入 数据中最后一个信息开始反向依次计算到第一个信息的,为了提高译码速度,在本实施例 中,分量码1输入SIS0单元时是采用滑动窗结构进行输入的。即将输入的数据分成相等的 两部分,以两个滑动窗进行输入,这种输入方式可以在译码的计算时间上产生一部分重叠 从而提1?译码效率。
[0088] 具体来说,将译码数据(如系统信息1和校验信息1或者系统信息2和校验信息 2)分成长度相当的两段,分别作为两个滑动窗的输入,滑动窗1和滑动窗2的长度分别设置 为N/2和N-N/2,其中N为译码数据的总长度。图8是本实施例中计算概率信息的时序图, 下面结合图8按照时间顺序介绍SIS0单元的第一次半迭代译码过程,在此将上述的T1时 间段分为Til、T12、T13三个子时间段,则SIS0单元对分量码1的译码过程如下:
[0089] 在T11子时间段,计算滑动窗1输入数据的先验概率α 1。此过程为顺序读取分 量码1并计算先验概率,并且缓存滑动窗1长度的系统信息1、校验信息1、先验信息2和 α 1 (第一次执行步骤1时先验信息2为0)。
[0090] 在Τ12子时间段,计算滑动窗2输入数据的先验概率α 2,并缓存滑动窗2长度的 系统信息1、校验信息1、先验信息2和α 2 ;与此同时,根据在Τ11时缓存的前半部分系统 信息1、校验信息1、外信息2计算滑动窗1输入数据的后验概率β 1 ;根据在Τ11中缓存的 前半部分系统信息1、校验信息1、先验信息2、α 1和上一次半迭代译码过程计算出的β 1 计算转移概率Υ1和外信息1的前半部分,并将Υ 1和外信息1顺序缓存。
[0091] 在Τ13子时间段,根据在Τ12中缓存的后半部分系统信息1、校验信息1计算滑动 窗2输入数据的后验概率β 2,并根据在Τ12中缓存的后半部分系统信息1、校验信息1、先 验信息2、先验概率(12和上一次半迭代译码过程计算出的β 2计算得到转移概率γ 2和外 信息1的后半部分,并顺序缓存Υ 2和外信息1。
[0092] 至此,SIS0单元完成了分量码1的译码工作。其中,外信息1由α 1、β 1、γ 1计 算得到。同理,SIS0单元对分量码2的译码过程与此过程相同,同样可以采用滑动窗的结 构输入译码数据并计算译码结果。
[0093] 第二步:对分量码2进行译码得到软信息。
[0094] 在本步骤中,利用系统信息1根据交织单元计算出的交织地址产生系统信息2,由 系统信息2与校验信息2组成分量码2 ;以及,利用外信息1根据交织单元计算出的交织地 址产生先验信息1。
[0095] SIS0单元根据译码算法,利用先验信息1对分量码2进行译码(即第二次半迭代 译码),产生外信息2和软信息输出;对外信息2进行解交织可得到先验信息2。
[0096] 当SIS0单元对分量码2的译码完成时,执行第三步,在此将执行第二步的时间段 称为T2。
[0097] 下面结合图5和图6对第二步中涉及的数据交织与解交织过程进行介绍,如上文 所述,由于分量码2和先验信息1是通过交织得到的,所以在SIS0单元对分量码2进行译 码之前,首先要进行数据交织的工作。在一个实施例中,在译码开始时,交织单元与SIS0单 元同时开始工作,交织单元生成乱序地址并存储到两个交织存储器中。数据需要交织时则 可以采用滑动窗结构以乱序地址读取数据以完成交织工作,其中两个交织存储器的大小分 别与两个滑动窗大小对应。
[0098] 如图5和图6所示,系统信息1和外信息1的交织过程如下:
[0099] 步骤21、滑动窗1以交织存储器1中的乱序地址读取N/2的系统信息1,即得到 N/2的系统信息2,在此将执行步骤21的子时间段称为T21。
[0100] 步骤22、滑动窗2以交织存储器2中的乱序地址读取N-N/2的系统信息1即得到 N-N/2的系统信息2 ;同时滑动窗1以交织存储器1中的乱序地址读取N/2的外信息1即得 到N/2的先验信息1,在此将执行步骤22的子时间段称为T22。
[0101] 步骤23、滑动窗2以交织存储器2中的乱序地址读取N-N/2的外信息1即得到 N-N/2的先验信息1,在此将执行步骤23的子时间段称为T23。
[0102] 对于外信息2以及译码结果的解交织过程与数据交织的过程相似,同样可采用滑 动窗结构使用交织地址来读取数据,不同的是解交织过程是逆序使用交织地址读取数据 的。
[0103] 如上文所述,交织单元计算交织地址的工作独立于SIS0单元的迭代译码工作,每 个序列的译码过程只启动一次交织地址的计算和存储工作,因此交织单元与SIS0单元可 以同时启动,从而提高了译码系统的并行度。并且,独立的交织单元结构可支持随机非连续 的交织算法,也能支持3GPP信道复用和编码协议规定的交织算法。此外,这种结构也有利 于并行化升级。
[0104] 在一个实施例中,译码过程中还包括对先验信息1和先验信息2进行修正的操作, 如上文所述,该操作是将从SIS0单元输出的先验信息1和先验信息2乘以一个修正因子。 采用修正后的先验信息可使译码的性能提高,几乎能够接近Log-MAP算法的性能。
[0105] 第三步:对软信息进行硬判决并且进行解交织,根据迭代次数或者得到的硬比特 数据进行判定,基于判定结果选择结束或者重新执行第一步至第三步。在此,将执行第三步 的时间段称为T3。
[0106] 本领域技术人员应理解,在每一次迭代计算产生译码结果后进行判定,其目的是 判定该结果是否符合输出要求,如果不符合则要进行下一次迭代译码,直到译码结果符合 输出要求为止。
[0107] 在一个实施例中,对SIS0单元输出的软信息进行硬判决并进行解交织,对得到的 硬比特数据进行判定,若判定结果符合停止条件则输出译码结果;若判定结果不符合停止 条件则回到第一步重新进行译码。图7示出了该判定方法的流程图,如图7所示,判定单元 首先进行CRC校验,如果CRC校验正确则输出译码结果,否则进行HDA判决。HDA判决包括: 比较SIS0单元连
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1