CN113872615A - 一种可变长度的Turbo码译码器装置 - Google Patents
一种可变长度的Turbo码译码器装置 Download PDFInfo
- Publication number
- CN113872615A CN113872615A CN202111176822.1A CN202111176822A CN113872615A CN 113872615 A CN113872615 A CN 113872615A CN 202111176822 A CN202111176822 A CN 202111176822A CN 113872615 A CN113872615 A CN 113872615A
- Authority
- CN
- China
- Prior art keywords
- length
- module
- data
- variable
- metric
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/2978—Particular arrangement of the component decoders
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种可变长度的Turbo码译码器装置,属于Turbo码译码器领域。其包括可变长度交织器模块、控制器、SISO分量译码器模块、数据存储模块,该装置可以根据***对信息可靠性和数据实时性不同的指标要求,由用户自行设置输入数据帧长度,可适应不同的应用场景,具有广泛的应用价值。
Description
技术领域
本发明涉及Turbo码译码器技术领域,尤其是指一种可变长度的Turbo码译码器装置。
背景技术
Turbo码由C.Berrou和Alain Glavieux于1993年提出的,由于其具有逼近香农理论极限值这样优异的性能,使得它在通信***中得到了广泛的应用。Turbo码是一种并行级联卷积码,将分量码和随机交织器结合起来,采用并行级联的结构,实现了随机编码的思想。Turbo译码采用软输入软输出的迭代译码思想,达到了接近香农理论极限的性能。
常见的Turbo码译码器原理如图1所示,由两个软输入软输出(SISO)分量译码器DEC1和DEC2串行级联组成,译码器中使用的交织器必须与编码器中的交织器相同。其中,DEC1和DEC2分别对编码器中的两个分量码进行最佳译码,并将各自得到的外信息送给另一个分量译码器作为其先验信息。经过多次迭代,DEC1和DEC2的外信息趋于稳定,似然比逼近于最大似然译码,然后对此似然比进行硬判决,完成译码过程。
Turbo码的误码性能和延时很大程度取决于信息帧长,帧长越长,交织器交织长度越长,Turbo码则更逼近于随机长码,译码性能越好,随之译码时延也越大。传统的Turbo码译码器硬件设计都是根据仿真结果选择单一的参数进行固化设计,指标变化时则需要对程序进行大幅度修改及重新配置,甚至更换***方案,缺乏通用性。
发明内容
有鉴于此,本发明的目的在于避免上述背景技术中的不足而提供一种可变长度的Turbo码译码器装置,该装置可以由用户根据需求自行设置帧长度,使译码延时与译码性能在不同信道环境下均能达到最佳平衡,具有广泛的应用价值。
为了实现上述目的,本发明采用的技术方案为:
一种可变长度的Turbo码译码器装置,包括可变长度交织器模块、控制器、SISO分量译码器模块、数据存储模块;其中,
Turbo码译码器装置接收完一帧待译码的数据后,将数据存储到数据存储模块中;
控制器发出启动标识,启动可变长度交织器模块,根据不同的数据长度完成交织运算后,将映射图样写入数据存储模块中存储;
交织地址生成完成后,控制器发出第一帧数据译码启动标识,控制SISO分量译码器模块开始迭代译码;
SISO分量译码器模块采用一个分量译码器电路,在控制器的控制下通过复用的方式实现两个分量译码器的功能;SISO分量译码器模块采用滑窗MAX-LOG-MAP译码算法,将输入的数据帧均匀细分成小块的数据帧,对每个子帧进行单独的译码,直到全部子帧完成译码;
当迭代次数达到程序设定值时,控制器对SISO分量译码器模块输出的似然比进行硬判决,得到译码结果。
进一步的,所述可变长度交织器模块采用3GPP标准中推荐的交织器生成方式,交织器为可变长,交织器的长度由用户输入控制;可变长度交织器模块计算出交织与解交织的映射图样后将其写入数据存储模块中,待使用时通过控制器读取使用,完成交织和解交织。
进一步的,所述SISO分量译码器模块包括分支转移度量γ计算模块、训练后向度量train-β计算模块、有效后向度量β计算模块、前向度量α和对数似然比llr计算模块;其中,
将一帧数据均匀分成长度一致的子帧数据,每一子帧数据成为一个独立的窗口,对每一个子帧数据进行单独的译码操作;SISO分量译码器模块使用滑窗MAX-LOG-MAP算法,译码流程为:
(1)计算分支转移度量γ并保存到内存中;
(2)假设每一个窗口的训练后向度量初值train-β为0或等概值,用前一窗口的逆向递归计算到该窗口的第一个比特为止,这个比特状态信息即该窗口的train-β;
(3)将train-β值作为当前窗口的有效后向度量β递归计算的初始值,读取γ用于求解出β;
(4)读取γ和β来求解前向度量α和对数似然比llr;
(5)根据网格时刻进行不断递推,直到求解出完整的一帧数据;
(6)重复上述操作,直到迭代次数满足程序中设定的值为止。
本发明相比背景技术具有如下优点:
(1)本发明采用滑窗MAX-LOG-MAP算法,结合存储表实现可变长度交织器的方式,有效解决了资源占用过多、译码时延长的问题,具有新颖性和创造性的特点。
(2)本发明适用于可变长度数据帧的译码,使译码性能和译码时延达到最佳平衡,具有应用场景多、实用性强的特点,具有广泛的应用价值。
附图说明
图1是背景技术中常见的Turbo译码原理的结构框图。
图2是本发明实施例中Turbo译码装置的结构框图。
图3是图2中SISO模块的具体结构框图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案做进一步的详细说明。
如图1-3所示,一种可变长度的Turbo码译码器装置,包括可变长度交织器模块、控制器、SISO分量译码器模块、数据存储模块,本例中的数据存储模块采用RAM;其中,
Turbo码译码器装置接收完一帧待译码的数据后,将数据存储到RAM中;控制器发出启动标识,启动可变长度交织器模块,根据不同的数据长度完成交织运算后,将映射图样写入RAM中存储;交织地址生成完成后,控制器发出第一帧数据译码启动标识,控制SISO分量译码器模块始迭代译码。SISO分量译码器模块采用一个分量译码器电路,在控制器的控制下通过复用的方式实现两个分量译码器的功能,SISO分量译码器模块采用滑窗MAX-LOG-MAP译码算法,将输入的数据帧均匀细分成小块的数据帧,对每个子帧进行单独的译码,直到全部子帧完成译码。重复译码流程,当迭代次数达到程序设定值时,对分量译码器输出的似然比进行硬判决,得到译码结果。
进一步的,所述可变长度交织器模块采用3GPP标准中推荐的交织器生成方式,交织器为可变长。为降低硬件复杂度,节省硬件资源,在实现时通过设计C程序计算出交织与解交织的映射图样,将其写入RAM中,待使用时通过控制器的控制读取使用,完成交织和解交织。
进一步的,所述控制器主要完成以下部分的控制:
1)控制RAM的读写操作;
2)控制分量译码器的复用,决定作为DEC1还是DEC2使用;
3)决定对外信息进行交织或解交织;
4)迭代次数控制;
5)启动硬判决输出。
具体流程如下:
1)等待外部输入数据,启动可变长度交织器模块,根据输入数据长度计算出映射图样,存入RAM中;
2)将窗口开始进行计算的标识信号发送给各个译码器模块;
3)给各个模块发送首次迭代启动信号以及是否进行交织、解交织选择的信号;
4)发送进行下一次迭代的启动信号给各个译码器模块;
5)在所有模块结束运行时等待窗口运行结束的标识信号;
6)根据接收到的窗口结束标识信号输出译码后的数据。
进一步的,所述SISO分量译码器模块采用一个分量译码器电路,在控制器作用下通过复用的方式实现两个分量译码器的功能。本例采用滑窗MAX-LOG-MAP译码算法,将输入的数据帧均匀细分成小块的数据帧,对每个子帧进行单独的译码。对于一次完整的分量译码,包括分支转移度量γ计算模块、训练后向度量train-β计算模块、有效后向度量β计算模块、前向度量α和对数似然比llr计算模块。其中,
分支转移度量γ的求解是求出其他各个模块的关键所在。前向度量α,后向度量β和对数似然比llr都需要用到γ值来进行计算。分支转移度量计算公式:
上式中,MK(s',s)为分支转移度量γ的对数值;分别为k时刻译码器输入的信息位和校验位;uk、分别为编码器输出的信息位和校验位;La(uk)是先验信息,来自于上一个分量译码器所产生的外信息经过交织或者解交织,在译码首次迭代时,La(uk)为0;LC为信道置信度,取值为2。
求解出分支转移度量的结果之后,根据输入的信息比特是“1”还是“0”将求出来的分支度量分开保存到两个硬件存储器中。存储器共存储三份相同的分支度量,分别用来求解训练后向度量train-β模块、有效后向度量β模块、前向度量α和对数似然比llr模块。
训练后向度量train-β计算的计算过程为:
假设每一个窗口的后向度量初始值train-β为0或者等概值,用前一窗口的逆向递归计算到该窗口的第一个比特为止,此时把这个比特状态信息train-β作为当前窗口的有效后向度量β递归计算的初始值。为求出准确的有效后向度量的初始状态,需要训练5至8倍卷积码编码器的约束长度,本例中编码器为(13,15)分量码,约束长度大小为4,所以训练窗口的长度设置值为32比特。将计算得到的train-β值存储到RAM中提供给有效后向度量模块的计算,作为其递归计算的初始值。
有效后向度量β计算公式:
Bk(s)=lnβk(s')=max(Bk+1(s)+MK(s',s))
公式中,Bk(s)为有效后向度量β的对数值,MK(s',s)为分支转移度量γ的对数值。
有效后向度量的计算是根据初始值由后往前不断递归运算的,当前时刻的β计算要用到后一个时刻的β值,并且得到的计算结果需要存储到内存中,用来计算前一个网格时刻的β值。
前向度量α计算公式为:
Ak(s)=lnαk(s)=max(Ak-1(s')+MK(s',s))
公式中,Ak(s)为前向度量α的对数值,MK(s',s)为分支转移度量γ的对数值。
前向度量α的计算根据前向状态初始值进行前向递归计算的,当前时刻的α计算要用到前一个时刻的α值,并且得到的计算结果需要存储到内存中,用来计算下一个网格时刻的α值。
对数似然比llr计算公式为:
公式中,Ak-1(s')为前向度量的对数值,MK(s',s)为分支转移度量的对数值,Bk(s)为后向度量的对数值。
在计算对数似然比llr时必须先求出α值、β值和γ值。在实现的过程中,采用顺序输出外信息的次序,先计算出β值,再计算α值和llr以进行判决输出。对数似然比llr计算的顺序是:
1)求出γ值,保存为3个备份;
2)根据已经求出的γ值来求解β值并且保存起来;
3)根据γ值,求出α值;
4)据α值和β值求解出对数似然比llr的值。
总之,该装置可以根据***对信息可靠性和数据实时性不同的指标要求,由用户自行设置输入数据帧长度,可适应不同的应用场景,具有广泛的应用价值。
需要说明的是,除上述实施步骤外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形式的技术方案,均落在本发明要求的保护范围。
Claims (3)
1.一种可变长度的Turbo码译码器装置,其特征在于,包括可变长度交织器模块、控制器、SISO分量译码器模块、数据存储模块;其中,
Turbo码译码器装置接收完一帧待译码的数据后,将数据存储到数据存储模块中;
控制器发出启动标识,启动可变长度交织器模块,根据不同的数据长度完成交织运算后,将映射图样写入数据存储模块中存储;
交织地址生成完成后,控制器发出第一帧数据译码启动标识,控制SISO分量译码器模块开始迭代译码;
SISO分量译码器模块采用一个分量译码器电路,在控制器的控制下通过复用的方式实现两个分量译码器的功能;SISO分量译码器模块采用滑窗MAX-LOG-MAP译码算法,将输入的数据帧均匀细分成小块的数据帧,对每个子帧进行单独的译码,直到全部子帧完成译码;
当迭代次数达到程序设定值时,控制器对SISO分量译码器模块输出的似然比进行硬判决,得到译码结果。
2.根据权利要求1所述的一种可变长度的Turbo码译码器装置,其特征在于,所述可变长度交织器模块采用3GPP标准中推荐的交织器生成方式,交织器为可变长,交织器的长度由用户输入控制;可变长度交织器模块计算出交织与解交织的映射图样后将其写入数据存储模块中,待使用时通过控制器读取使用,完成交织和解交织。
3.根据权利要求2所述的一种可变长度的Turbo码译码器装置,其特征在于,所述SISO分量译码器模块包括分支转移度量γ计算模块、训练后向度量train-β计算模块、有效后向度量β计算模块、前向度量α和对数似然比llr计算模块;其中,
将一帧数据均匀分成长度一致的子帧数据,每一子帧数据成为一个独立的窗口,对每一个子帧数据进行单独的译码操作;SISO分量译码器模块使用滑窗MAX-LOG-MAP算法,译码流程为:
(1)计算分支转移度量γ并保存到内存中;
(2)假设每一个窗口的训练后向度量初值train-β为0或等概值,用前一窗口的逆向递归计算到该窗口的第一个比特为止,这个比特状态信息即该窗口的train-β;
(3)将train-β值作为当前窗口的有效后向度量β递归计算的初始值,读取γ用于求解出β;
(4)读取γ和β来求解前向度量α和对数似然比llr;
(5)根据网格时刻进行不断递推,直到求解出完整的一帧数据;
(6)重复上述操作,直到迭代次数满足程序中设定的值为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176822.1A CN113872615A (zh) | 2021-10-09 | 2021-10-09 | 一种可变长度的Turbo码译码器装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176822.1A CN113872615A (zh) | 2021-10-09 | 2021-10-09 | 一种可变长度的Turbo码译码器装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113872615A true CN113872615A (zh) | 2021-12-31 |
Family
ID=79002225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111176822.1A Pending CN113872615A (zh) | 2021-10-09 | 2021-10-09 | 一种可变长度的Turbo码译码器装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113872615A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745076A (zh) * | 2022-03-22 | 2022-07-12 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga的码长自适应交织/解交织器及方法 |
-
2021
- 2021-10-09 CN CN202111176822.1A patent/CN113872615A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745076A (zh) * | 2022-03-22 | 2022-07-12 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga的码长自适应交织/解交织器及方法 |
CN114745076B (zh) * | 2022-03-22 | 2024-04-30 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga的码长自适应交织/解交织器及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5479580B2 (ja) | Lteにおける並列turboデコーディングの方法及び装置 | |
CN100542051C (zh) | 解码方法和设备 | |
KR100512668B1 (ko) | 터보 부호들의 품질 지수 기준을 사용한 반복 종료 | |
US6799295B2 (en) | High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture | |
US20030097633A1 (en) | High speed turbo codes decoder for 3G using pipelined SISO Log-Map decoders architecture | |
US8112698B2 (en) | High speed turbo codes decoder for 3G using pipelined SISO Log-MAP decoders architecture | |
RU2571597C2 (ru) | Способ и устройство для декодирования турбокода | |
CN101026439A (zh) | 一种提高Turbo码译码速率的译码方法 | |
CN105634508A (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
CN113258940B (zh) | turbo译码方法、装置、译码设备及存储介质 | |
US20130007568A1 (en) | Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program | |
JP2004343716A (ja) | 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器 | |
CN113872615A (zh) | 一种可变长度的Turbo码译码器装置 | |
US6950476B2 (en) | Apparatus and method for performing SISO decoding | |
CN107196666B (zh) | 一种通用Turbo编译码器快速验证方法 | |
CN103595424A (zh) | 分量译码方法、译码器及Turbo译码方法、装置 | |
CN106712778B (zh) | 一种turbo译码装置及方法 | |
CN103701475A (zh) | 移动通信***中8比特运算字长Turbo码的译码方法 | |
CN113765622B (zh) | 分支度量初始化方法、装置、设备及存储介质 | |
CN113258937B (zh) | 分量译码器、外信息存储单元以及Turbo码译码器 | |
CN106788899A (zh) | 高可靠的Turbo译码器后向边界初始化方法 | |
CN113824452B (zh) | 基于网格图的译码方法、分量译码器和信道译码器 | |
CN1286533A (zh) | 一种高速并行级联码的译码方法及译码器 | |
CN115529048A (zh) | 一种基于线性逼近与滑动窗口的Turbo码译码方法 | |
Bai et al. | Hardware implementation of Log-MAP turbo decoder for W-CDMA node B with CRC-aided early stopping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |