CN1411235A - 用于提高乘积码译码速度的方法及译码装置 - Google Patents

用于提高乘积码译码速度的方法及译码装置 Download PDF

Info

Publication number
CN1411235A
CN1411235A CN 02153873 CN02153873A CN1411235A CN 1411235 A CN1411235 A CN 1411235A CN 02153873 CN02153873 CN 02153873 CN 02153873 A CN02153873 A CN 02153873A CN 1411235 A CN1411235 A CN 1411235A
Authority
CN
China
Prior art keywords
row
decoder
decoding
product code
ram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 02153873
Other languages
English (en)
Other versions
CN1176541C (zh
Inventor
张秀军
赵明
高春艳
周世东
许希斌
王京
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB021538735A priority Critical patent/CN1176541C/zh
Publication of CN1411235A publication Critical patent/CN1411235A/zh
Application granted granted Critical
Publication of CN1176541C publication Critical patent/CN1176541C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

用于提高乘积码译码速度的方法及译码装置属于乘积译码器技术领域,其特征在于:它是在已有的单次迭代译码和乘积码迭代译码方法的基础上,利用并行工作的P个行译码器和并行工作的P个列译码器组成的P行或P列译码器来先列后行依次并行的处理乘积码P行或P列信息的译码方法。相应的提出了一个含有并行处理P行或P列的子译码器、接收信号存储器、外信息存储器、RAM读写控制器和多层计数器的乘积码译码装置。它在提高乘积码译码速度的同时,能使所需存储器的数量尽量少,而且总的存储量不变,即采用存储器的数量是原来的P倍,每个存储器的存储量是原来的1/P,但所占的芯片面积增加了不到一倍,因而用很小的代价换取了译码速度的显著提高。

Description

用于提高乘积码译码速度的方法及译码装置
技术领域
用于提高乘积码译码速度的方法及译码装置属于乘积码译码器技术领域。
背景技术
在通信系统中,在信息发送之前,需要按照一定的规则,在数据流中人为地加入冗余,以便接收端能够进行误码检测和校正,估计出最初发送的数据。迭代译码的乘积码是其中性能较为优越且较易实现的一种方法。
乘积码是由两个短分组码——码C1和C2,构成比较长的分组码。其中短分组码是把K个信息比特的序列通过加入N-K个校验位,编成N个比特的码组。码Cl的编码参数是(N1,K1),码C2的编码参数是(N2,K2),其中Ni、Ki分别表示码长和信息比特个数。编码如图1所示,步骤如下:
1.把信息位a0、a1、a2、…aK1×K2-1排成K1×K2的矩阵,K1行K2列;
2.对K1个行逐行用C2编码,每行加入N2-K2个校验位,变成K1×N2的矩阵;
3.对N2个列逐列用C1编码,每列加入N1-K1个校验位,变成N1×N2的矩阵。
编码后,乘积码矩阵的每一行都构成码C2的一个码字,每一列都构成码C1的一个码字。其译码算法是以列码C1和行码C2的软输入软输出译码算法为核心,对乘积码矩阵反复多次逐行逐列的迭代译码算法。
单次迭代译码是根据接收序列和前次计算的结果重新计算每个符号的二进制判决结果的似然比估计(是1的概率除以是0的概率),由此得到接收序列可靠性的一个修正值,即外信息。如图2所示,乘积码的迭代译码就是逐列译码再逐行译码,再逐列译再逐行译,如此反复多次,每次在行与列译码器之间传递中间计算结果——外信息,使得最终的结果与正确结果越来越接近。乘积码译码需要存储并多次读取接收的符号序列同时还要多次读取并更新外信息。
由于迭代译码使得译码速度十分受限,例如:采用传统的串行译码方法,4次迭代的译码器译1个比特需要8个时钟周期,这里迭代一次包括一次逐列译码和一次逐行译码。如果工作频率50MHz,则吞吐量大约为6Mbit/s。为了提高译码速度,并行处理是一个关键的方法。已有的一种并行译码方法如图3所示,是把逐行和逐列译码同时进行,但对于二维矩阵的乘积码这种方法并行度只能为2,所以能且只能提高一倍的速度,而且需要存储两组译码的中间计算结果,增加了存储量。
发明内容
本发明的目的在于提供一种既可提高译码器的速度又可使所占用的硬件资源尽量小的用于提高乘积码译码速度的方法及译码装置。
乘积码的结构是每行每列都相对独立的组成一个较短的码字,其矩阵的行数和列数较大,适于并行译码,即同时计算若干行或若干列的符号的似然比的外信息,其基本框图与传统的串行译码的类似,不同的是用P列或P行并行译码器代替了逐行逐列译码器,单次迭代的框图如图4所示。
P列或P行并行译码器由并行工作的P个行和P个列译码器组成,这样占用了更多的硬件资源,行和列采用相同的编码参数,则行译码和列译码可共用同一个译码器,可以减少译码器的数目。此外并行译码要把存储器分成若干个小的存储器以支持并行的读写操作。本方法能使所需存储器的数量尽量小,而且总的存储量不变,即采用存储器的数量是原来的P倍,每个存储器的存储量是原来的1/P。
本发明所提出的方法的特征在于:它是一种利用并行工作的P个行译码器和并行工作的P个列译码器组成的P行或P列译码器来依次并行的处理乘积码的P行或P列的译码方法。它所述的译码方法依次含有以下步骤:
(a)把接收到的信号的对数似然值存储到接收信号存储器R1的N×N个存储单元中,按下列方法得出它们在存储器R1中所属的RAM序号:令M=N/P,先求出它在矩阵中所处的行号与列号之差,除以M向零取整,再除以P求余数,即为其RAM序号;
(b)每次把R1的P列与外信息存储器R2相应位置的P列相加,得到P个和矢量,由P个软输入软输出(SISO)的子译码器译码,再把各子译码器的输出即各个外信息向量存入R2相应的列中,外信息的初始值为0;
(c)重复M次步骤b,求出乘积码中所有位的外信息;
(d)再把R1的P行与R2相应位置的P行相加,得到P个和矢量,分别送入P个子译码器,再把所求的P个外信息向量存入R2对应的P行;
(e)重复M次步骤d,求出乘积码中所有位的外信息;
(f)把(b),(c),(d),(e)步骤重复多次,最终输出所有信息位的判决结果。
本发明提出的译码装置的特征在于它含有:采集接收信号的RAM读写控制器,依次由向量元素计数器、向量计数器、迭代次数计数器串接而成、且上述各计数器又分别向RAM读写控制器输出数据的多层计数器,受控于RAM读写控制器且平行处理P行或P列信息的P个子译码器,在RAM读写控制器控制下各自分别接收读写控制信号和写入数据且输出读出数据的各内含P个RAM的接收信号存储器和外信息存储器。
附图说明
图1表示乘积码的组成结构。
图2表示乘积码的多次迭代串行译码。
图3表示已有的行向列向并行译码的单次迭代。
图4表示P行P列并行译码器的单次迭代。
图5表示P行P列并行译码器的组成结构。
图6表示64×64的乘积码并行度P=8时P行P列并行译码器的流程图。
图7表示64×64的乘积码并行度P=8时RAM的组织和数据的存储。
具体实施方式
假设乘积码的矩阵是N行N列的,并行度为P,其中P能整除N。译码器需要两组RAM,R1和R2,每组RAM包含N×N个存储单元,对应于乘积码的矩阵。R1用来存储接收信号的对数似然值,R2用来存储外信息。为了并行处理,每组RAM都由P个小RAM组成,每个小RAM在逻辑上划分成P个部分,每个部分的深度为M×M,看成M行M列,其中M=N/P。我们将以64×64的乘积码,P=8的译码器为例来说明有关问题。
该乘积码的码矩阵为64×64,所以每组RAM包含64×64个存储单元。由于并行度为8,所以每组RAM分成8个小RAM。每个小RAM是物理上独立的存储器,深度为512(=8×8×8),地址宽9位。每个小RAM在逻辑上看成8个部分,每部分包含8×8个存储单元。RAM的具体结构如图7所示,其中左图表示一组RAM(R1或R2),每个小方格表示一个部分,从第一列的8个部分(即编号从0到7的8个小方格),分别向右下方划出8条对角线,划到最后一行则拐到下一列的第一行继续向右下方划,直到最后一列为止,这样每条对角线上的8个部分属于同一个小RAM,小方格上所标的整数代表它属于第几个小RAM。一共8个这样的小RAM,小RAM的编号RAM num从0到7。一个小RAM中的8个部分的排列是按照它们所处的列号从小到大的顺序,也就是它们对应的高3位地址与所在的列号相同,图7左图中第0列的8个部分的高3位地址都为0,第一列的8个部分的高3位地址都为1。对应的地址范围如图7右图所示,标号为3.0的部分的地址范围是0到63,标号为3.1的部分地址范围是64到127。而每个部分对应了乘积码矩阵的一个8×8方阵,在其内部地址排列的顺序是先逐列排、一列排完再排下一列,即9位地址线的中间3位表示列号,低3位表示行号,图中给出了3.0和3.7两个部分的内部地址排列。
有8个译码器,序号Dec_num从0到7。因为并行度为8,分组码的码长为64,有64行64列,所以每个译码器需要处理8个向量才能完成一次迭代,每个向量含64个元素。向量号Vec_num(宽3位),元素号Ele_num(宽6位)。每个子译码器都顺序的从R1和R2中读入一个向量,并存储在它内部的缓存器中,经过相同的时间处理后,更新的外信息再顺序的写入R2,因此同时读写的8个元素的元素号Ele_num相同。
逐列译码时,先读出矩阵第0行第0、8、16、24、32、40、48、56列的数据,计数器Vec_num为0,Ele_num为0;然后依次读第1、2…63行中这8列的数据,Vec_num仍为0,Ele_num递增为1、2…63。第0列的数据由0号译码器处理,第8列的数据由1号译码器处理,…第56列的数据由7号译码器处理。处理完这8列,再处理第1、9、17、25、33、41、49、57列的数据,Vec_num为1,Ele_num为0、1、2…63。同样的,第1列的数据由0号译码器处理,第9列的数据由1号译码器处理,…第57列的数据由7号译码器处理,Vec_num从0到7。从中可以看出第0个译码器依次处理第0到第7列,第1个译码器依次处理第8到第15列,第7个译码器依次处理第56到第63列,其规律是每次用第Dec_num个译码器处理第8×Dec_num+Vec_num(Dec_num=0、1、2、..7)的8列数据,一列中元素序号Ele_num依次为0、1、2、…63。Vec_num为0、1、2、..7,则处理完整个矩阵的逐列译码。
逐行译码时,先读出矩阵第0、8、16、24、32、40、48、56行第0列的数据,计数器Vec_num为0,Ele_num为0;然后依次读第1、2…63列中这8行的数据,Vec_num仍为0,Ele_num递增为1、2…63。第0行的数据由0号译码器处理,第8行的数据由1号译码器处理,…第56行的数据由7号译码器处理。处理完这8行,再处理第1、9、17、25、33、41、49、57行的数据,Vec_num为1,Ele_num为0、1、2…63。同样的,第1行的数据由0号译码器处理,第9行的数据由1号译码器处理,…第57行的数据由7号译码器处理,Vec_num从0到7。每次用第Dec_num个译码器处理第8×Dec_num+Vec_num(Dec_num=0、1、2、..7)的8行数据,一行中元素序号Ele_num依次为0、1、2、…63。Vec_num为0、1、2、..7,则处理完整个矩阵的逐行译码。
从中可以看出,逐列译码时,如果序号为RAM_num的小RAM与序号为Dec_num的译码器传输数据,则读写地址和序号满足如下关系:
addr=(Ele_num(5 downto 3)-RAM_num)& Vec_num & Ele_num(2 downto 0);
RAM_num+Dec_num=Ele_num(5 downto 3);
(这里的加减运算为模8的加减运算,“m downton”表示二进制的第m位到第n位,“&”表示二进制数的并接运算,例如1&2=”01”&”10”=”0110”=6)。
逐行译码时,如果序号为RAM_num的小RAM与序号为Dec_num的译码器传输数据,则读写地址和序号满足如下关系:
addr=Ele_num & Vec_num;
Dec_num-RAM_num=Ele_num(5 downto 3);
RAM读写控制器根据各个计数器的值,按照以上算法,产生读写RAM的地址和使能信号,并把输入的8路数据分配到对应的RAM的数据端口,以及把从8个RAM中读出的8路数据分配到8个子译码器的数据端口。这样控制数据的存储,可以最大程度的减少RAM的数量。
综上所述,接收端的译码过程如下:
a)把接收到的信号的对数似然值存储到R1中的64×64个存储单元中。求出它在矩阵中所处的行号与列号之差,除以8向零取整([/8]),再除以8求余数(%8),得出所属的RAM序号,例如接收到的信号处在第37行55列,则37-55=-18,[-18/8]=-2,(-2)%8=6,所以存储在第6号RAM中,若在第55行37列,则55-37=18,[18/8]=2,2%8=2,所以存储在第2号RAM中。
b)每次把R1的8列与R2相应位置的8列相加,得到8个和矢量。这8个向量由8个软输入软输出(SISO)的子译码器译码。第i个译码器的输出,也就是第i个外信息向量,存入R2的第i列的部分中。注意外信息的初值为0,第一次译码时只有R1中的8列送入子译码器。
c)重复8次步骤b,求出乘积码中所有位的外信息。
d)把R1的8行与R2相应位置的8行相加,得到8个和矢量,分别送入8个子译码器译码。再把所求的8个外信息向量存入R2对应的8行。
e)重复8次步骤d,求出乘积码中所有位的外信息。
f)把b、c、d、e重复4次,最终输出所有信息位的判决结果。
并行度为8的译码器速度是串行译码的8倍,需要增加硬件资源用来实现8个子译码器,包括子译码器内部的缓存器。而用来存储乘积码整个矩阵的接收信号和外信息的R1和R2的存储量不变,只是每个都分成了8个小RAM。并行度太高,硬件实现的时候面积会变得很大,极其不利;并行度太低,处理速度慢,比较适合低速的译码器,所以应该在速度和面积两方面进行折中地考虑选择并行度。基于这种考虑,在具体实施中采用了8并行度。
以下对译码装置进行说明:
译码装置即乘积码译码器包括并行处理P行或P列的子译码器、接收信号存储器、外信息存储器、RAM读写控制器和多层计数器。
子译码器部分用于逐行或逐列的译码,根据接收信号和上次迭代的结果计算并更新每个符号的外信息。P个子译码器并行处理P行或P列,每个时钟周期内并行处理P个元素。译码器流水工作,即输出当前求出的外信息的同时,读入并处理下一组行(或列)向量,设乘积码矩阵为N×N,每个译码器处理N/P个行或列,则处理完整个乘积码矩阵。迭代一次包括一次逐行和一次逐列的译码,在译码速度和纠错性能两方面进行折中地考虑选择迭代次数。每个子译码器内部有用于存储所处理的向量的缓存器,采用双端口存储器。
接收信号存储器用于存储接收信号,包括P个RAM。每接收一个信号,按照译码时每次同时处理的P个数据不在同一块RAM的原则,选择并存入RAM。
外信息存储器用于存储外信息,包括P个RAM。第一次迭代时外信息为0(不用读外信息),每次迭代读出接收信号和相应的外信息,处理后把更新的外信息写入。因为每次所读的外信息的位置和接收信号的位置相同,所以外信息RAM的组织方式与接收信号RAM的相同。
多层计数器包括三种计数器,向量元素计数器——用于子译码器逐行或逐列译码时,对一行或一列的N个元素进行顺序计数;向量计数器——用于一次迭代过程中,每个子译码器所处理的N/P个行向量(或列向量)进行顺序计数;迭代次数计数器——用于迭代次数的计数,一次逐行译码或一次逐列译码算半次迭代。
RAM读写控制器根据上述三个计数器和译码器的读写方式产生所要读写的RAM的地址并控制P个RAM和P个子译码器之间数据的交换。
图5为P行P列并行译码器的总图。
图6为64×64的乘积码P行P列并行译码器在P=8时所用的译码方法的程序流程图。
图7为64×64的乘积码并行度P=8时RAM的组织和数据存储地址的分配方法,用图5中的数据存储部分来实现。
本方法可在各种可编程逻辑器件中实施,一个具体实施是用Xilinx公司的VirtexExcv600e hq240-6芯片来作乘积码译码器,也可用专用集成电路实现。

Claims (3)

1.用于提高乘积码译码速度的方法,它的单次迭代译码是根据接收序列和前次计算的结果重新计算每个符号的二进制判决结果的似然比估计,得到接收序列可靠性的一个修正值即外信息,乘积码的迭代译码是使列译码→行译码→列译码→行译码…反复进行多次,每次在行的与列的译码器之间传递中间计算结果即外信息,使最终结果逐渐趋向正确,其特征在于:它是一种利用并行工作的P个行译码器和并行工作的P个列译码器组成的P行或P列译码器来依次并行的处理乘积码的P行或P列的译码方法。
2.根据权利要求1所述的用于提高乘积码译码速度的方法其特征在于:它所述的译码方法依次含有以下步骤:
(a)把接收到的信号的对数似然值存储到接收信号存储器R1的N×N个存储单元中,按下列方法得出它们在存储器R1中所属的RAM序号:令M=N/P,先求出它在矩阵中所处的行号与列号之差,除以M向零取整,再除以P求余数,即为其RAM序号;
(b)每次把R1的P列与外信息存储器R2相应位置的P列相加,得到P个和矢量,由P个软输入软输出(SISO)的子译码器译码,再把各子译码器的输出即各个外信息向量存入R2相应的列中,外信息的初始值为0;
(c)重复M次步骤b,求出乘积码中所有位的外信息;
(d)再把R1的P行与R2相应位置的P行相加,得到P个和矢量,分别送入P个子译码器,再把所求的P个外信息向量存入R2对应的P行;
(e)重复M次步骤d,求出乘积码中所有位的外信息;
(f)把(b),(c),(d),(e)步骤重复多次,最终输出所有信息位的判决结果。
3.根据权利要求1所述的用于提高乘积码译码速度的方法而提出的译码装置,其特征在于,它含有:采集接收信号的RAM读写控制器,依次由向量元素计数器、向量计数器、迭代次数计数器串接而成、且上述各计数器又分别向RAM读写控制器输出数据的多层计数器,受控于RAM读写控制器且平行处理P行或P列信息的P个子译码器,在RAM读写控制器控制下各自分别接收读写控制信号和写入数据且输出读出数据的各内含P个RAM的接收信号存储器和外信息存储器。
CNB021538735A 2002-12-06 2002-12-06 用于提高乘积码译码速度的方法及译码装置 Expired - Lifetime CN1176541C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021538735A CN1176541C (zh) 2002-12-06 2002-12-06 用于提高乘积码译码速度的方法及译码装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021538735A CN1176541C (zh) 2002-12-06 2002-12-06 用于提高乘积码译码速度的方法及译码装置

Publications (2)

Publication Number Publication Date
CN1411235A true CN1411235A (zh) 2003-04-16
CN1176541C CN1176541C (zh) 2004-11-17

Family

ID=4752387

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021538735A Expired - Lifetime CN1176541C (zh) 2002-12-06 2002-12-06 用于提高乘积码译码速度的方法及译码装置

Country Status (1)

Country Link
CN (1) CN1176541C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447462A (zh) * 2011-12-13 2012-05-09 北京控制工程研究所 一种抗冲击的oc指令矩阵电路
CN103532569A (zh) * 2013-08-09 2014-01-22 上海数字电视国家工程研究中心有限公司 译码装置以及对解析数据进行译码的方法
CN103560797A (zh) * 2013-10-18 2014-02-05 烽火通信科技股份有限公司 超强前向纠错五次迭代译码的方法及装置
CN103856218A (zh) * 2012-12-05 2014-06-11 华为技术有限公司 译码处理方法及译码器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447462A (zh) * 2011-12-13 2012-05-09 北京控制工程研究所 一种抗冲击的oc指令矩阵电路
CN103856218A (zh) * 2012-12-05 2014-06-11 华为技术有限公司 译码处理方法及译码器
CN103856218B (zh) * 2012-12-05 2017-07-21 华为技术有限公司 译码处理方法及译码器
CN103532569A (zh) * 2013-08-09 2014-01-22 上海数字电视国家工程研究中心有限公司 译码装置以及对解析数据进行译码的方法
CN103560797A (zh) * 2013-10-18 2014-02-05 烽火通信科技股份有限公司 超强前向纠错五次迭代译码的方法及装置
CN103560797B (zh) * 2013-10-18 2016-05-25 烽火通信科技股份有限公司 超强前向纠错五次迭代译码的方法及装置

Also Published As

Publication number Publication date
CN1176541C (zh) 2004-11-17

Similar Documents

Publication Publication Date Title
CN1097880C (zh) 维特比译码器
CN1186880C (zh) 具有基于状态机的交织器的编码系统
CN102122966A (zh) 基于信道极化的交错结构重复码的编码器及其编译码方法
CN1130028C (zh) 维特比译码装置及维特比译码方法
CN100499380C (zh) 交织编解码的装置和方法
CN100546207C (zh) 一种基于DVB-RCS标准的双二元Turbo码译码方法
CN1933335A (zh) 一种译码方法及译码装置
CN101114834A (zh) 一种ldpc码的编码器装置及编码方法
CN1176541C (zh) 用于提高乘积码译码速度的方法及译码装置
CN101707510B (zh) 一种高速Turbo译码方法和装置
CN1254121C (zh) 特博码的解码方法
CN103137213B (zh) 具有低密度奇偶校验码译码能力的存储器控制装置及方法
CN102355331B (zh) 一种通用多模式译码装置
CN1140148C (zh) 在移动通信系统中执行特博解码的方法
CN101027843B (zh) 用于维特比追溯的分布式环形控制电路
CN1446406A (zh) 在高速acs维特比译码器实现的存储器中有效读取和存储状态量度的方法和设备
CN1144373C (zh) 维特比解码器的状态计量存储器及其解码方法
CN1328386A (zh) 并行滑动窗最大后验概率算法及其高速Turbo码译码器
CN1741614A (zh) 使用冗余对视/音频和语音数据进行解码的方法和系统
CN1311620A (zh) 在维特比译码器中储存线路节拍的方法
CN103873188B (zh) 一种并行解速率匹配方法和装置
CN104053011A (zh) 应用于jpeg2000解码器中的二维离散小波逆变换器
CN1787386A (zh) 一种维特比译码器路径度量存储的方法
CN102751994B (zh) 一种基于两个有限群符号的短码长分组码译码器装置
CN102571107A (zh) LTE系统中高速并行Turbo码的解码系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: QINGHUA UNIVERSITY; ZHANXUN COMMUNICATIONS (SHANG

Free format text: FORMER OWNER: QINGHUA UNIVERSITY

Effective date: 20060512

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20060512

Address after: 100084 mailbox 100084-82, Beijing City

Co-patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Patentee after: TSINGHUA University

Address before: 100084 mailbox 100084-82, Beijing City

Patentee before: Tsinghua University

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20041117