CN103873073A - 一种基于并行与加窗结构的Turbo码高速译码实现方法 - Google Patents
一种基于并行与加窗结构的Turbo码高速译码实现方法 Download PDFInfo
- Publication number
- CN103873073A CN103873073A CN201410105878.1A CN201410105878A CN103873073A CN 103873073 A CN103873073 A CN 103873073A CN 201410105878 A CN201410105878 A CN 201410105878A CN 103873073 A CN103873073 A CN 103873073A
- Authority
- CN
- China
- Prior art keywords
- information
- section
- module
- check digit
- divided
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种基于并行与加窗结构的Turbo码高速译码实现方法,通过Turbo码高速译码器实现,包括第一、第二输入缓存模块、第一、二外信息存储模块、交织/解交织模块、N个SISO译码单元、硬判决模块和输出缓存模块,第一、二输入缓存模块以乒乓操作方式连续接收外部输入的数据帧,N个SISO译码单元完成第一次迭代的第一分量译码和第二分量译码,依次类推,完成第M次迭代的第一分量译码与第二分量译码,迭代终止,对第M次迭代的第二分量译码得到的对数似然比信息LLR在硬判决模块中进行解交织处理,并将解交织处理结果进行硬判决,最后将硬判决结果存入输出缓存模块;该方法结合并行译码与滑动窗译码的优点,大幅提高了译码运行速度,具有较好的译码性能。
Description
技术领域
本发明涉及一种基于并行与加窗结构的Turbo码高速译码实现方法,属于卫星移动通信***技术领域。
背景技术
在卫星移动通信***中,接收机收到的信号常受到衰落信道和干扰噪声等影响。对此,卫星移动通信***常采用具有高信道编码增益的差错控制码Turbo或LDPC(低密度奇偶校验码)码来提高信息传输的可靠性,将误码率降低并逼近香农极限。Turbo码的优势在于,其短码码字在低信噪比条件下具有更好的误码性能,更适于突发传输或实时通信应用中。目前,Turbo码已被作为DVB-RCS(数字视频广播-卫星回传信道)、CCSDS(空间数据***资讯委员会)等卫星移动通信***和深空通信***的推荐信道编码方案之一。同时,Turbo码也在地面移动通信***如3GPP(第3代合作伙伴计划)标准组织的LTE(长期演进)***和WiMax等***中得到广泛应用。
比较这几种***采用的Turbo码,可以发现3GPP TS212标准所定义的码字采用了最大无竞争交织器,可以提供更加灵活的并行阶数选择,更适用于宽带通信***中高速编译码应用。所以,这里以母码编码效率为1/3的Turbo码为例,生成多项式表示为
g0(D)=1+D2+D3,g1(D)=1+D+D3.
也可表示为八进制(15,13),该编码器的约束长度为v=4,其结构包含2个8状态子编码器、1个Turbo码内交织器。输入长度为K的信息ck,编码输出长度为N=3K的码字,包含信息位uk和校验位两部分。该码字在信息比特编码之后,添加尾比特使编码器回到初始状态0,经过不同删余方案可得到更多更高编码效率的Turbo码字。
相对于编码器,译码器的实现结构要复杂得多,也是宽带卫星通信接收机的设计难点。采用迭代译码的思想是Turbo码的一个重要特点,为了实现迭代译码过程中在分量译码器之间交换软信息,Turbo码的分量译码必须采用SISO(软输入软输出)算法。其中,MAP(最大后验概率)类算法相比SOVA(软输出维特比)算法类性能要好,而且降低复杂度的MAP类算法较易于硬件实现,得到了广泛的应用。其中,Max-Log-MAP算法的实现复杂度最低。常用的MAP译码器结构如下图所示,其中,表示分量编码器在k时刻的输出的信息位uk,ys、y1p、y2p表示接收机解调之后、译码之前的信息位和2个分量译码器各自的校验位信息,并记Y={ys、y1p、y2p}。如图1所示为常用的MAP译码器结构图。
式中,π表示交织处理:
L2a(uk)=L1e(uπ(k))、L1a(uπ(k))=L2e(uk)
记当前状态为s,前一状态为s',则Log-MAP译码算法的对数似然信息为
其中,定义
1)前向状态度量,
2)后向状态度量,
3)分支度量,γk(s',s)=p(uk)p(yk|s',s)
定义操作 若采用近似 则得到Max-Log-MAP译码算法
1)
2)
3)
得到对数似然信息
由于MAP类算法在译码过程中需要计算后向状态度量值,因此只有接收完整个序列后才能开始译码。这样,在数据序列比较长的情况下,MAP类算法的译码时延就比较大,必须通过修改算法来降低译码时延。
发明内容
本发明的目的在于克服现有技术的上述不足,提供一种基于并行与加窗结构的Turbo码高速译码实现方法,该方法结合并行译码与滑动窗译码的优点,大幅提高了译码运行速度,具有较好的译码性能,实测性能比理论性能相差小于0.15dB;同时采用实时计算的方式,节约了存储资源。
本发明的上述目的主要是通过如下技术方案予以实现的:
一种基于并行与加窗结构的Turbo码高速译码实现方法,通过Turbo码高速译码器实现,所述Turbo码高速译码器包括第一输入缓存模块、第二输入缓存模块、第一外信息存储模块RAM3、第二外信息存储模块RAM4、交织/解交织模块、SISO译码模块、硬判决模块和输出缓存模块RAM5,其中第一输入缓存模块包括信息位存储单元RAM1和校验位存储单元RAM2,第二输入缓存模块包括信息位存储单元RAM1’和校验位存储单元RAM2’,SISO译码模块包括N个SISO译码单元,具体实现过程如下:
步骤(一)、第一输入缓存模块和第二输入缓存模块以乒乓操作方式连续接收外部输入的数据帧,所述数据帧为待译码数据yk,将待译码数据yk中的信息位ys分为等长的N段存入信息位存储单元RAM1或RAM1’,将第一校验位y1p、第二校验位y2p分别均分为等长的N段存入校验位存储单元RAM2或RAM2’;
步骤(二)、交织/解交织模块产生顺序地址和交织地址,N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys和校验位存储单元RAM2或RAM2’中的分为N段的第一校验位y1p,进行第一次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L1e,将所述外信息L1e按照所述顺序地址存入第二外信息存储模块RAM4;N个SISO译码单元根据所述交织地址分别从第二外信息存储模块RAM4读取分为等长的N段的外信息L1e,同时根据所述交织地址读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2或RAM2’中的分为N段的第二校验位y2p,进行第一次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L2e,将外信息L2e根据所述交织地址存入第一外信息存储模块RAM3;
步骤(三)、N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys和校验位存储单元RAM2或RAM2’中的分为N段的第一校验位y1p,同时读取第一外信息存储模块RAM3中的外信息L2e,进行第二次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'1e,将外信息L'1e按照所述顺序地址存入第二外信息存储模块RAM4;N个SISO译码单元根据所述交织地址从第二外信息存储模块RAM4读取分为等长的N段的外信息L'1e,根据所述交织地址读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2或RAM2’中的分为N段的第二校验位y2p,进行第二次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'2e,将外信息L'2e按照所述交织地址存入第一外信息存储模块RAM3;
步骤(四)、依次类推,重复步骤(三),完成N个SISO译码单元的第M次迭代的第一分量译码与第二分量译码,迭代终止,所述M为设定的迭代次数;
步骤(五)、对第M次迭代的第二分量译码得到的对数似然比信息LLR在硬判决模块中进行解交织处理,并将解交织处理结果进行硬判决,最后将硬判决结果存入输出缓存模块RAM5中;
其中N、M均为正整数,且N≥4,M≥6。
在上述基于并行与加窗结构的Turbo码高速译码实现方法中,步骤(一)中信息位ys分为等长的N段,第一校验位y1p、第二校验位y2p均分为等长的N段,具体表示为:定义K为信息位长度,用比特数表示,m=K/N为每段的长度,r为每段头或尾添加的重叠比特数,一帧数据被均匀分成N段,送入N个SISO译码单元的第1段长度为m+r;中间段长度为m+2r;最后一段长度m+r+tail_bit,tail_bit表示信息位ys、第一校验位y1p、第二校验位y2p的尾比特。
在上述基于并行与加窗结构的Turbo码高速译码实现方法中,步骤(一)中分为等长的N段的信息位ys表示如下:
Bs[1,…,N]={{y0,y1,...,yK/N-1},...,{y(N-1)K/N,y(N-1)K/N+1,...,yK-1}};
分为等长的N段的第一校验位y1p、第二校验位y2p分别表示如下:
B1p[1,…,N]={{yK,yK+1,...,y(N+1)K/N-1},...,{y(2N-1)K/N,y(2N-1)K/N+1,...,y2K-1}};
B2p[1,...,N]={{y2K,y2K+1,...,y(2N+1)K/N-1},...,{y(3N-1)K/N,y(3N-1)K/N+1,...,y3K-1}};
将重新组合的数据{Bs[1](k),Bs[2](k),....,Bs[N](k)},k∈[0,K/N-1]按顺序存入信息位存储单元RAM1或RAM1’;将重新组合的数据{B1p[1](k),B1p[2](k),….,B1p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2或RAM2’中的上半部分;将重新组合的数据{B2p[1](k),B2p[2](k),....,B2p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2中的下半部分,其中,K为信息位长度。
在上述基于并行与加窗结构的Turbo码高速译码实现方法中,N个SISO译码单元内部均采用滑动窗译码流程,进行每次迭代的第一分量译码和第二分量译码的实现过程如下,其中每个SISO译码单元包括LIFO存储器RAM6和RAM7:
步骤(一)、在第1个滑动窗时间内,计算当前数据段最后一个滑动窗前向状态度量α,作为下一数据段第一个滑动窗前向状态度量α的初始值;计算当前数据段第一个滑动窗后向状态度量β,作为上一数据段最后一个滑动窗后向状态度量β的初始值;
步骤(二)、在第2个滑动窗时间内,把第一滑动窗中的信息位ys、校验位yp、先验信息La存入深度为1个滑动窗长度SW的LIFO存储器RAM6中;计算第1个滑动内数据的前向状态度量α,存储到深度为1个滑动窗长度SW的LIFO存储器RAM7;计算第2个滑动窗的后向状态度量β,作为第1个滑动窗后向状态度量β值的有效初始状态;
步骤(三)、在第3个滑动窗时间内,计算第一个滑动窗的后向状态度量有效β值,同时从LIFO存储器RAM6中读取缓存的信息位ys、校验位yp、先验信息La,从LIFO存储器RAM7中读取前向状态度量α,一起计算对数似然比LLR和外信息Le;
步骤(四)、依次类推,重复步骤(二)、(三),直到完成SISO译码单元内最后一个滑动窗译码。
在上述基于并行与加窗结构的Turbo码高速译码实现方法中,N个SISO译码单元内部可以同时进行前向状态度量α和后向状态度量β值的计算,进一步降低译码时延。
在上述基于并行与加窗结构的Turbo码高速译码实现方法中,还包括逻辑控制模块,用于对Turbo码高速译码器所有模块进行控制,包括第一、第二输入缓存模块中待译码数据的分段存储的读写控制、乒乓操作的片选控制;第一、第二外信息存储模块数据使能、地址控制;SISO译码单元中滑动窗译码的启动、终止,整个译码迭代控制;交织/解交织模块中顺序地址、交织地址的选择控制;硬判决模块的使能控制;输出缓存模块中译码结果的存储和分段输出控制。
本发明与现有技术相比具有如下有益效果:
(1)、本发明创新设计了一种基于并行与加窗结构的Turbo码高速译码实现方法,该方法所设计的译码结构结合并行译码与滑动窗译码的优点,大幅提高了译码运行速度,在译码时钟110MHz时,有效信息大于36Mbps;
(2)、本发明Turbo码高速译码实现方法中***信息位、校验位、外信息存储过程中,按照合并存储方式,减少了RAM个数,便于译码控制;
(3)、本发明Turbo码高速译码***中存储单元均采用双口RAM形式,SISO译码单元可以同时进行前向状态度量α和后向状态度量训练β值的计算,进一步减小了译码时延;
(4)、本发明所设计的并行加窗译码器采用了优化的Max-Log-MAP算法,具有较好的译码性能,实测性能比理论性能相差小于0.15dB;
(5)、本发明仿真并寻找了最佳的数据位宽,一帧数据被均匀分成N段,并对每段的长度进行优化设计,在实现资源消耗与译码性能之间有较好的折中。
附图说明
图1为常用的MAP译码器结构图;
图2为本发明Turbo码高速译码方法所采用的译码器结构框图;
图3为本发明SISO译码单元结构示意图;
图4为本发明SISO译码单元译码工作流程图;
图5为本发明Turbo码理论与实测性能曲线,r=0.4333、0.4888、0.5444。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
本发明结合分块并行译码和滑动窗译码的优点,设计一种基于N个SISO译码单元的并行Turbo码译码器,并在SISO内部采用固定长度的滑动窗译码流程,以进一步降低译码延时并节约存储。
如图2所示为本发明Turbo码高速译码方法所采用的译码器结构框图,本发明Turbo码高速译码器包括第一输入缓存模块、第二输入缓存模块、第一外信息存储模块RAM3、第二外信息存储模块RAM4、交织/解交织模块、逻辑控制模块、SISO译码模块、硬判决模块和输出缓存模块RAM5,其中第一输入缓存模块包括信息位存储单元RAM1和校验位存储单元RAM2,第二输入缓存模块包括信息位存储单元RAM1’和校验位存储单元RAM2’,SISO译码模块包括N个SISO译码单元。各模块的功能如下:
(1)第一输入缓存模块/第二输入缓存模块:存储整个待译码数据yk,将信息位ys存入信息位存储单元RAM1/RAM1’,将第一校验位y1p、第二校验位y2p存入校验位存储单元RAM2/RAM2’。同时,为了实现帧间数据连续处理,需要两块相同的存储空间对连续的数据帧进行乒乓操作。
(2)第一、二外信息存储模块:存储SISO译码模块得到的外信息Le到存储单元RAM3或RAM4中,作为下一次SISO译码的先验信息,RAM3、RAM4分别提供第1分量译码、第2分量译码所需的先验信息;
(3)SISO译码模块:作为Turbo译码器的核心模块,主要完成译码算法的实现,包括前向状态度量α、后向状态度量β的计算,译码器的输出为对数似然比信息LLR和外信息Le。本发明所设计的SISO译码单元有N个:SISO_1、SISO_2、…、SISO_N;
(4)交织/解交织模块:提供读/写***位、校验位和外信息的地址信号,地址包括顺序地址和交织地址,第1分量译码时提供顺序地址,第2分量译码时提供交织地址,其中,按照交织地址读出的信息需要进行相应的移位;
(5)输出缓存模块:输出缓存模块RAM5用于存储译码结果并输出。
(6)逻辑控制模块:产生整个译码器的控制信号,用于对上述所有模块进行控制,包括第一、第二输入缓存模块中待译码数据的分段存储的读写控制、乒乓操作的片选控制;第一、第二外信息存储模块数据使能、地址控制;SISO译码单元中滑动窗译码的启动、终止,整个译码迭代控制;交织/解交织模块中顺序地址、交织地址的选择控制;硬判决模块的使能控制;输出缓存模块中译码结果的存储和分段输出控制。
设一个有符号定点数据类型的比特数是nc位,第1位表示符号位,低p位用来表示小数部分,高nc-p-1位用来表示整数部分,记作(nc,p)定点量化。数据的位宽选择对性能和资源消耗有很大的影响,本发明通过分析和仿真来寻找最佳的数据位宽,本发明中的数据位宽采用以下格式:
1)经过信道的信息位和校验位的定点格式为(6,2),
2)先验信息的定点格式为(8,2),
3)α和β的定点格式为(11,2),
4)对数似然比的定点格式为(12,2)。
Turbo码译码器中两个分量译码的计算在时间上是顺序完成的,分量译码器1和分量译码器2之间各自需要对方的外信息作为先验信息,所以第1分量译码器和第2分量译码器复用同一个分量SISO译码模块。
本发明基于并行与加窗结构的Turbo码高速译码实现方法具体包括如下步骤:
步骤(一)、第一输入缓存模块和第二输入缓存模块以乒乓操作方式连续接收外部输入的数据帧,所述数据帧为待译码数据yk,将待译码数据yk中的信息位ys分为等长的N段存入信息位存储单元RAM1或RAM1’,将第一校验位y1p、第二校验位y2p分别均分为等长的N段存入校验位存储单元RAM2或RAM2’。
其中信息位ys分为等长的N段,第一校验位y1p、第二校验位y2p均分为等长的N段,具体表示为:定义K为信息位长度(比特数),用比特数表示,m=K/N为每段的长度,r为每段头(或尾)添加的重叠比特数。一般的,每段与每段之间添加的重叠比特数为RSC编码器约束长度的5~8倍即可获得较好的性能,为简化操作,选取固定的r=32bit,第一段的开始处和最后一段的最后不需要添加重叠比特。一帧数据被均匀分成N段,送入N个SISO译码单元的第1段长度为m+r;中间段长度为m+2r;最后一段长度m+r+tail_bit,tail_bit表示信息位ys、第一校验位y1p、第二校验位y2p的尾比特。
第一输入缓存模块接收完一帧数据yk,k∈[0,3K-1],将***位信息ys和校验位信息y1p、y2p分别划分,其中分为等长的N段的信息位ys表示如下:
Bs[1,…,N]={{y0,y1,...,yK/N-1},...,{y(N-1)K/N,y(N-1)K/N+1,...,yK-1}};
分为等长的N段的第一校验位y1p、第二校验位y2p分别表示如下:
B1p[1,…,N]={{yK,yK+1,...,y(N+1)K/N-1},...,{y(2N-1)K/N,y(2N-1)K/N+1,...,y2K-1}};
B2p[1,...,N]={{y2K,y2K+1,...,y(2N+1)K/N-1},...,{y(3N-1)K/N,y(3N-1)K/N+1,...,y3K-1}};
将重新组合的数据{Bs[1](k),Bs[2](k),….,Bs[N](k)},k∈[0,K/N-1]按顺序存入信息位存储单元RAM1;将重新组合的数据{B1p[1](k),B1p[2](k),....,B1p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2中的上半部分;将重新组合的数据{B2p[1](k),B2p[2](k),....,B2p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2中的下半部分,并初始化外信息存储单元RAM3为0。SISO译码单元开始进行一帧数据的译码,同时第二输入缓存模块接收下一帧数据并对其存储缓冲,K为信息位长度。
步骤(二)、交织/解交织模块产生顺序地址和交织地址,N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1中的分为N段的信息位ys和校验位存储单元RAM2中的分为N段的第一校验位y1p,进行第一次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L1e,将所述外信息L1e按照所述顺序地址存入第二外信息存储模块RAM4。
如图3所示为本发明SISO译码单元结构示意图;如图4所示为本发明SISO译码单元译码工作流程图,本发明N个SISO译码单元内部均采用滑动窗译码流程,每个SISO译码单元包括LIFO存储器RAM6和RAM7,第一次迭代的第一分量译码的具体方法如下:
(1)、在第1个滑动窗时间内,计算当前数据段最后一个滑动窗前向状态度量α,作为下一数据段第一个滑动窗前向状态度量α的初始值;计算当前数据段第一个滑动窗后向状态度量β,作为上一数据段最后一个滑动窗后向状态度量β的初始值;
(2)、在第2个滑动窗时间内,把第一滑动窗中的信息位ys、校验位yp、先验信息La存入深度为1个滑动窗长度SW的LIFO存储器RAM6中;计算第1个滑动内数据的前向状态度量α,存储到深度为1个滑动窗长度SW的LIFO存储器RAM7;计算第2个滑动窗的后向状态度量β2,作为第1个滑动窗后向状态度量β1值的有效初始状态;
(3)、在第3个滑动窗时间内,计算第一个滑动窗的后向状态度量有效β1值,同时从LIFO存储器RAM6中读取缓存的信息位ys、校验位yp、先验信息L1a(首次迭代为0),从LIFO存储器RAM7中读取前向状态度量α,一起计算对数似然比LLR和外信息L1e;
(4)、依次类推,重复步骤(2)、(3),直到完成SISO译码单元内最后一个滑动窗译码。
存储单元均采用双口RAM形式,所以SISO译码单元可以同时进行前向状态度量α和后向状态度量训练β值的计算,进一步降低译码时延。
如图4所示的SISO译码单元工作流程图中,Cl步骤包括了后向状态度量训练β2值的计算;C2步骤包括了前向状态度量α值的计算;C3步骤包括后向状态度量有效β1值、对数似然比值LLR以及外信息值Le计算。
后向状态度量训练β2计算的最后临界值作为β1值计算的有效初始状态,β1值计算出来后马上用来计算对数似然比LLR,所以均无需存储。
之后N个SISO译码单元根据所述交织地址分别从第二外信息存储模块RAM4读取分为等长的N段的外信息L1e,同时根据所述交织地址读取信息位存储单元RAM1中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2中的分为N段的第二校验位y2p,进行第一次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L2e,将外信息L2e根据所述交织地址存入第一外信息存储模块RAM3。第一次迭代的第二分量译码方法同第一分量译码方法。
为获得更好地译码性能,计算得到的外信息可以通过乘以一个加权因子ω来优化Max-Log-MAP译码算法。本发明取ω=0.75,并通过移位加法运算来实现,以避免使用乘法器资源。
步骤(三)、N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1中的分为N段的信息位ys和校验位存储单元RAM2中的分为N段的第一校验位y1p,同时读取第一外信息存储模块RAM3中的外信息L2e,进行第二次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'1e,将外信息L'1e按照所述顺序地址存入第二外信息存储模块RAM4;N个SISO译码单元根据所述交织地址从第二外信息存储模块RAM4读取分为等长的N段的外信息L'1e,根据所述交织地址读取信息位存储单元RAM1中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2中的分为N段的第二校验位y2p,进行第二次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'2e,将外信息L'2e按照所述交织地址存入第一外信息存储模块RAM3。第二次迭代的译码方法同步骤(二)。
步骤(四)、依次类推,重复步骤(三),完成N个SISO译码单元的第M次迭代的第一分量译码与第二分量译码,迭代终止,所述M为设定的迭代次数;
步骤(五)、对第M次迭代的第二分量译码得到的对数似然比信息LLR在硬判决模块中进行解交织处理,并将解交织处理结果进行硬判决,最后将硬判决结果存入输出缓存模块RAM5中;SISO译码单元等待或开始进行下一帧的译码。
实施例
本发明针对3GPP TS212标准所定义的一组K={1248、1408、1568},L=2880的码字,设计一种基于N(N=8)个SISO译码单元的并行Turbo码译码器。
输入缓存单元接收完一帧数据yk,k∈[0,3K-1],将***位信息ys和校验位信息y1p、y2p分别划分为8个等长的段:Bs[1,…,8],B1p[1,…,8],B2p[1,…,8],将重新组合的数据{Bs[1](k),Bs[2](k),….,Bs[8](k)},k∈[0,K/8-1]按顺序存入信息位存储单元RAM1;将重新组合的数据{B1p[1](k),B1p[2](k),....,B1p[8](k)},k∈[0,K/8-1]按顺序存入校验位存储单元RAM2中的上半部分;将重新组合的数据{B2p[1](k),B2p[2](k),....,B2p[8](k)},k∈[0,K/8-1]按顺序存入校验位存储单元RAM2中的下半部分。并初始化外信息存储单元RAM3为0,译码单元开始进行一帧数据的译码,同时接收下一帧数据对其存储缓冲。
初始化状态度量参数。对所有子段,除第1个子段首状态和最后子段的尾状态已知外,其它子段首尾的状态都是未知的。对于已知子段α(或β)8个状态s∈{0,1,2,...,7}的初始值,令已知状态为0,未知状态为-256;对未知子段α(或β)8个状态的初始值,采用重叠比特递推的方式获得,重叠比特α(或β)状态的初始值设为0,即8个状态是等概率出现的。
然后,开始对所有子段并行地进行第1次迭代译码。
对第1分量译码器译码。从RAM1、RAM2、RAM3中按顺序分别读取信息位ys、第1校验位y1p、先验信息L1a(即外信息L2e,首次迭代为0)送入SISO译码单元做第1分量译码,译码后得到的外信息L1e按顺序存入外信息存储单元RAM4中,作为第2分量译码器的先验信息。
对第2分量译码器译码。首先,对状态度量参数进行初始化。然后,从RAM1、RAM4中按交织顺序分别读取信息位ys、先验信息L2a(即外信息L1e),并和RAM2中的第2校验位y2p一起送入SISO译码单元做第2分量译码,译码后得到的外信息L2e按解交织顺序存入外信息存储单元RAM3,作为第1分量译码器的先验信息。
反复迭代直到迭代次数达到预先设定的最大迭代次数M。其中存储单元均采用双口RAM形式,所以SISO译码模块可以同时进行前向状态度量α和后向状态度量训练β值的计算。
迭代终止、输出缓存。在完成预定的迭代次数M之后,对第2分量译码后得到的已经经过解交织的对数似然比进行硬判决,并将硬判决结果存入输出缓存RAM5中,译码单元等待或开始进行下一帧的译码。
采用Xilinx XC6VLX240T芯片对所设计的软件程序进行实现,所设计译码器工作时钟可达110MHz,有效信息速率可达36Mbps;消耗资源为占用slice数目为6024,是此芯片37680个slice的16%,占用8个36k RAM,是此芯片资源的2%。
如图5所示给出了本发明FPGA实现的Turbo码译码器性能曲线,并给出理论曲线做比较,信号采用BPSK调制,信息为长度分别为K={1248、1408、1568},编码后经过速率匹配模块Turbo码长为L=2880。所有仿真结果均以信噪比(Eb/N0)与误码率(BER)的关系曲线形式给出。从仿真曲线可以看出,FPGA实现的Turbo码译码器与理论曲线在8次迭代时,性能损失不超过0.15dB。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (6)
1.一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:通过Turbo码高速译码器实现,所述Turbo码高速译码器包括第一输入缓存模块、第二输入缓存模块、第一外信息存储模块RAM3、第二外信息存储模块RAM4、交织/解交织模块、SISO译码模块、硬判决模块和输出缓存模块RAM5,其中第一输入缓存模块包括信息位存储单元RAM1和校验位存储单元RAM2,第二输入缓存模块包括信息位存储单元RAM1’和校验位存储单元RAM2’,SISO译码模块包括N个SISO译码单元,具体实现过程如下:
步骤(一)、第一输入缓存模块和第二输入缓存模块以乒乓操作方式连续接收外部输入的数据帧,所述数据帧为待译码数据yk,将待译码数据yk中的信息位ys分为等长的N段存入信息位存储单元RAM1或RAM1’,将第一校验位y1p、第二校验位y2p分别均分为等长的N段存入校验位存储单元RAM2或RAM2’;
步骤(二)、交织/解交织模块产生顺序地址和交织地址,N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys和校验位存储单元RAM2或RAM2’中的分为N段的第一校验位y1p,进行第一次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L1e,将所述外信息L1e按照所述顺序地址存入第二外信息存储模块RAM4;N个SISO译码单元根据所述交织地址分别从第二外信息存储模块RAM4读取分为等长的N段的外信息L1e,同时根据所述交织地址读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2或RAM2’中的分为N段的第二校验位y2p,进行第一次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L2e,将外信息L2e根据所述交织地址存入第一外信息存储模块RAM3;
步骤(三)、N个SISO译码单元根据所述顺序地址分别读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys和校验位存储单元RAM2或RAM2’中的分为N段的第一校验位y1p,同时读取第一外信息存储模块RAM3中的外信息L2e,进行第二次迭代的第一分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'1e,将外信息L'1e按照所述顺序地址存入第二外信息存储模块RAM4;N个SISO译码单元根据所述交织地址从第二外信息存储模块RAM4读取分为等长的N段的外信息L'1e,根据所述交织地址读取信息位存储单元RAM1或RAM1’中的分为N段的信息位ys,根据所述顺序地址读取校验位存储单元RAM2或RAM2’中的分为N段的第二校验位y2p,进行第二次迭代的第二分量译码,得到对数似然比信息LLR和分为等长的N段的外信息L'2e,将外信息L'2e按照所述交织地址存入第一外信息存储模块RAM3;
步骤(四)、依次类推,重复步骤(三),完成N个SISO译码单元的第M次迭代的第一分量译码与第二分量译码,迭代终止,所述M为设定的迭代次数;
步骤(五)、对第M次迭代的第二分量译码得到的对数似然比信息LLR在硬判决模块中进行解交织处理,并将解交织处理结果进行硬判决,最后将硬判决结果存入输出缓存模块RAM5中;
其中N、M均为正整数,且N≥4,M≥6。
2.根据权利要求1所述的一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:所述步骤(一)中信息位ys分为等长的N段,第一校验位y1p、第二校验位y2p均分为等长的N段,具体表示为:定义K为信息位长度,用比特数表示,m=K/N为每段的长度,r为每段头或尾添加的重叠比特数,一帧数据被均匀分成N段,送入N个SISO译码单元的第1段长度为m+r;中间段长度为m+2r;最后一段长度m+r+tail_bit,tail_bit表示信息位ys、第一校验位y1p、第二校验位y2p的尾比特。
3.根据权利要求1所述的一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:所述步骤(一)中分为等长的N段的信息位ys表示如下:
Bs[1,…,N]={{y0,y1,...,yK/N-1},...,{y(N-1)K/N,y(N-1)K/N+1,...,yK-1}};
分为等长的N段的第一校验位y1p、第二校验位y2p分别表示如下:
B1p[1,…,N]={{yK,yK+1,...,y(N+1)K/N-1},...,{y(2N-1)K/N,y(2N-1)K/N+1,...,y2K-1}};
B2p[1,...,N]={{y2K,y2K+1,...,y(2N+1)K/N-1},...,{y(3N-1)K/N,y(3N-1)K/N+1,...,y3K-1}};
将重新组合的数据{Bs[1](k),Bs[2](k),….,Bs[N](k)},k∈[0,K/N-1]按顺序存入信息位存储单元RAM1或RAM1’;将重新组合的数据{B1p[1](k),B1p[2](k),….,B1p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2或RAM2’中的上半部分;将重新组合的数据{B2p[1](k),B2p[2](k),....,B2p[N](k)},k∈[0,K/N-1]按顺序存入校验位存储单元RAM2中的下半部分,其中,K为信息位长度。
4.根据权利要求1所述的一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:所述N个SISO译码单元内部均采用滑动窗译码流程,进行每次迭代的第一分量译码和第二分量译码的实现过程如下,其中每个SISO译码单元包括LIFO存储器RAM6和RAM7:
步骤(一)、在第1个滑动窗时间内,计算当前数据段最后一个滑动窗前向状态度量α,作为下一数据段第一个滑动窗前向状态度量α的初始值;计算当前数据段第一个滑动窗后向状态度量β,作为上一数据段最后一个滑动窗后向状态度量β的初始值;
步骤(二)、在第2个滑动窗时间内,把第一滑动窗中的信息位ys、校验位yp、先验信息La存入深度为1个滑动窗长度SW的LIFO存储器RAM6中;计算第1个滑动内数据的前向状态度量α,存储到深度为1个滑动窗长度SW的LIFO存储器RAM7;计算第2个滑动窗的后向状态度量β,作为第1个滑动窗后向状态度量β值的有效初始状态;
步骤(三)、在第3个滑动窗时间内,计算第一个滑动窗的后向状态度量有效β值,同时从LIFO存储器RAM6中读取缓存的信息位ys、校验位yp、先验信息La,从LIFO存储器RAM7中读取前向状态度量α,一起计算对数似然比LLR和外信息Le;
步骤(四)、依次类推,重复步骤(二)、(三),直到完成SISO译码单元内最后一个滑动窗译码。
5.根据权利要求1所述的一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:所述N个SISO译码单元内部可以同时进行前向状态度量α和后向状态度量β值的计算,进一步降低译码时延。
6.根据权利要求1所述的一种基于并行与加窗结构的Turbo码高速译码实现方法,其特征在于:还包括逻辑控制模块,用于对Turbo码高速译码器所有模块进行控制,包括第一、第二输入缓存模块中待译码数据的分段存储的读写控制、乒乓操作的片选控制;第一、第二外信息存储模块数据使能、地址控制;SISO译码单元中滑动窗译码的启动、终止,整个译码迭代控制;交织/解交织模块中顺序地址、交织地址的选择控制;硬判决模块的使能控制;输出缓存模块中译码结果的存储和分段输出控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410105878.1A CN103873073B (zh) | 2014-03-20 | 2014-03-20 | 一种基于并行与加窗结构的Turbo码高速译码实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410105878.1A CN103873073B (zh) | 2014-03-20 | 2014-03-20 | 一种基于并行与加窗结构的Turbo码高速译码实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873073A true CN103873073A (zh) | 2014-06-18 |
CN103873073B CN103873073B (zh) | 2017-03-15 |
Family
ID=50911254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410105878.1A Active CN103873073B (zh) | 2014-03-20 | 2014-03-20 | 一种基于并行与加窗结构的Turbo码高速译码实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103873073B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702294A (zh) * | 2015-03-26 | 2015-06-10 | 中国科学院自动化研究所 | 一种Turbo译码器的位宽非对称仿存接口 |
WO2016015592A1 (zh) * | 2014-07-28 | 2016-02-04 | 华为技术有限公司 | 一种图拨检测方法及其装置 |
CN106712778A (zh) * | 2015-08-05 | 2017-05-24 | 展讯通信(上海)有限公司 | 一种turbo译码装置及方法 |
CN107302371A (zh) * | 2016-04-14 | 2017-10-27 | 联芯科技有限公司 | 一种turbo码译码***及译码方法 |
CN107370555A (zh) * | 2016-05-12 | 2017-11-21 | 博通集成电路(上海)有限公司 | 误差判决方法及其装置 |
CN107453761A (zh) * | 2016-05-31 | 2017-12-08 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
CN107565983A (zh) * | 2017-09-08 | 2018-01-09 | 广东工业大学 | 一种Turbo码的译码方法及装置 |
CN108270452A (zh) * | 2016-12-30 | 2018-07-10 | 芯原微电子(成都)有限公司 | 一种Turbo译码器及译码方法 |
CN108604903A (zh) * | 2016-01-25 | 2018-09-28 | 高通股份有限公司 | 使用删余来生成具有可变块长度的极性码 |
CN108736900A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | Turbo码译码的控制方法及装置、计算机可读介质、终端 |
CN110601792A (zh) * | 2019-07-31 | 2019-12-20 | 苏州门海微电子科技有限公司 | 一种用于宽带电力载波通讯的前端编解码***及方法 |
CN111147084A (zh) * | 2018-11-06 | 2020-05-12 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111525980A (zh) * | 2019-02-01 | 2020-08-11 | 华为技术有限公司 | 译码方法及装置 |
CN112332868A (zh) * | 2020-10-20 | 2021-02-05 | 陕西航天技术应用研究院有限公司 | 一种基于DVB-RCS2的turbo并行译码方法 |
CN112398487A (zh) * | 2020-12-14 | 2021-02-23 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种降低Turbo并行译码复杂度的实现方法及*** |
CN113055027A (zh) * | 2021-03-18 | 2021-06-29 | 北京得瑞领新科技有限公司 | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 |
CN116881183A (zh) * | 2023-09-06 | 2023-10-13 | 北京融为科技有限公司 | 译码数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6202178B1 (en) * | 1995-08-21 | 2001-03-13 | Alcatel N.V. | Complementary methods for interleaving and deinterleaving data frames and corresponding forward error correcting devices in a transmitter and receiver |
US20040025103A1 (en) * | 2002-06-05 | 2004-02-05 | Kazuhisa Obuchii | Turbo decoding method and turbo decoding apparatus |
CN102064838A (zh) * | 2010-12-07 | 2011-05-18 | 西安电子科技大学 | 基于新型无冲突交织器的低延迟并行Turbo译码方法 |
CN102270993B (zh) * | 2011-03-24 | 2013-03-27 | 中国人民解放军国防科学技术大学 | 一种同时实现交织与解交织的Turbo译码器 |
-
2014
- 2014-03-20 CN CN201410105878.1A patent/CN103873073B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6202178B1 (en) * | 1995-08-21 | 2001-03-13 | Alcatel N.V. | Complementary methods for interleaving and deinterleaving data frames and corresponding forward error correcting devices in a transmitter and receiver |
US20040025103A1 (en) * | 2002-06-05 | 2004-02-05 | Kazuhisa Obuchii | Turbo decoding method and turbo decoding apparatus |
CN102064838A (zh) * | 2010-12-07 | 2011-05-18 | 西安电子科技大学 | 基于新型无冲突交织器的低延迟并行Turbo译码方法 |
CN102270993B (zh) * | 2011-03-24 | 2013-03-27 | 中国人民解放军国防科学技术大学 | 一种同时实现交织与解交织的Turbo译码器 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016015592A1 (zh) * | 2014-07-28 | 2016-02-04 | 华为技术有限公司 | 一种图拨检测方法及其装置 |
CN104702294B (zh) * | 2015-03-26 | 2018-04-27 | 北京思朗科技有限责任公司 | 一种Turbo译码器的位宽非对称仿存接口 |
CN104702294A (zh) * | 2015-03-26 | 2015-06-10 | 中国科学院自动化研究所 | 一种Turbo译码器的位宽非对称仿存接口 |
CN106712778A (zh) * | 2015-08-05 | 2017-05-24 | 展讯通信(上海)有限公司 | 一种turbo译码装置及方法 |
CN106712778B (zh) * | 2015-08-05 | 2020-05-26 | 展讯通信(上海)有限公司 | 一种turbo译码装置及方法 |
US11309997B2 (en) | 2016-01-25 | 2022-04-19 | Qualcomm Incorporated | Generation of polar codes with a variable block length utilizing puncturing |
CN108604903B (zh) * | 2016-01-25 | 2021-08-24 | 高通股份有限公司 | 使用删余来生成具有可变块长度的极性码 |
CN108604903A (zh) * | 2016-01-25 | 2018-09-28 | 高通股份有限公司 | 使用删余来生成具有可变块长度的极性码 |
CN107302371A (zh) * | 2016-04-14 | 2017-10-27 | 联芯科技有限公司 | 一种turbo码译码***及译码方法 |
CN107302371B (zh) * | 2016-04-14 | 2020-10-27 | 联芯科技有限公司 | 一种turbo码译码***及译码方法 |
CN107370555B (zh) * | 2016-05-12 | 2020-03-17 | 博通集成电路(上海)股份有限公司 | 误差判决方法及其装置 |
CN107370555A (zh) * | 2016-05-12 | 2017-11-21 | 博通集成电路(上海)有限公司 | 误差判决方法及其装置 |
CN112968709B (zh) * | 2016-05-31 | 2022-08-19 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
CN107453761A (zh) * | 2016-05-31 | 2017-12-08 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
CN112968709A (zh) * | 2016-05-31 | 2021-06-15 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
CN107453761B (zh) * | 2016-05-31 | 2021-04-06 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
CN108270452A (zh) * | 2016-12-30 | 2018-07-10 | 芯原微电子(成都)有限公司 | 一种Turbo译码器及译码方法 |
CN108736900B (zh) * | 2017-04-21 | 2021-08-24 | 展讯通信(上海)有限公司 | Turbo码译码的控制方法及装置、计算机可读介质、终端 |
CN108736900A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | Turbo码译码的控制方法及装置、计算机可读介质、终端 |
CN107565983B (zh) * | 2017-09-08 | 2020-08-11 | 广东工业大学 | 一种Turbo码的译码方法及装置 |
CN107565983A (zh) * | 2017-09-08 | 2018-01-09 | 广东工业大学 | 一种Turbo码的译码方法及装置 |
CN111147084B (zh) * | 2018-11-06 | 2023-12-19 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111147084A (zh) * | 2018-11-06 | 2020-05-12 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111525980B (zh) * | 2019-02-01 | 2021-09-17 | 华为技术有限公司 | 译码方法及装置 |
CN111525980A (zh) * | 2019-02-01 | 2020-08-11 | 华为技术有限公司 | 译码方法及装置 |
CN110601792B (zh) * | 2019-07-31 | 2022-02-01 | 苏州门海微电子科技有限公司 | 一种用于宽带电力载波通讯的前端编解码***及方法 |
CN110601792A (zh) * | 2019-07-31 | 2019-12-20 | 苏州门海微电子科技有限公司 | 一种用于宽带电力载波通讯的前端编解码***及方法 |
CN112332868A (zh) * | 2020-10-20 | 2021-02-05 | 陕西航天技术应用研究院有限公司 | 一种基于DVB-RCS2的turbo并行译码方法 |
CN112332868B (zh) * | 2020-10-20 | 2024-05-28 | 陕西航天技术应用研究院有限公司 | 一种基于DVB-RCS2的turbo并行译码方法 |
CN112398487A (zh) * | 2020-12-14 | 2021-02-23 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种降低Turbo并行译码复杂度的实现方法及*** |
CN112398487B (zh) * | 2020-12-14 | 2024-06-04 | 中科南京移动通信与计算创新研究院 | 一种降低Turbo并行译码复杂度的实现方法及*** |
CN113055027A (zh) * | 2021-03-18 | 2021-06-29 | 北京得瑞领新科技有限公司 | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 |
CN116881183A (zh) * | 2023-09-06 | 2023-10-13 | 北京融为科技有限公司 | 译码数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103873073B (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873073A (zh) | 一种基于并行与加窗结构的Turbo码高速译码实现方法 | |
Masera et al. | VLSI architectures for turbo codes | |
CN101388674B (zh) | 一种译码的方法、译码器以及Turbo码译码器 | |
CN102638278B (zh) | 迭代解码器 | |
CN101026439B (zh) | 一种提高Turbo码译码速率的译码方法 | |
CN1236507A (zh) | 对经卷积编码的码字解码的软判定输出解码器 | |
CN102523076B (zh) | 通用可配置的高速率Turbo码译码方法 | |
US9048877B2 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
CN1327653A (zh) | 移动通信***中的分量解码器及其方法 | |
CN101442321B (zh) | 涡轮码的并行译码以及数据处理方法和装置 | |
RU2571597C2 (ru) | Способ и устройство для декодирования турбокода | |
WO2005006564A1 (ja) | 復号装置および復号方法 | |
CN105634508A (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
US6732327B1 (en) | Scaled-feedback turbo decoder | |
CN1157883C (zh) | 实现并行滑动窗最大后验概率算法的高速Turbo码译码器 | |
CN103856218B (zh) | 译码处理方法及译码器 | |
CN102611464B (zh) | 基于外信息并行更新的Turbo译码器 | |
CN103595424A (zh) | 分量译码方法、译码器及Turbo译码方法、装置 | |
US9048866B2 (en) | Apparatus and method for checking decoded data, apparatus and method for decoding, and receiving terminal | |
CN102571107B (zh) | LTE***中高速并行Turbo码的解码***及方法 | |
Sujatha et al. | Performance improvement of Turbo decoder using VLSI optimization Techniques | |
CN113872615A (zh) | 一种可变长度的Turbo码译码器装置 | |
Reddy et al. | A low complexity stopping criterion for reducing power consumption in turbo decoders | |
CN109379088B (zh) | 一种并行Turbo码迭代译码的方法及*** | |
Espluga et al. | New solutions to reduce the time-to-CED and to improve the CED robustness of the Galileo I/NAV message |
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 |