CN107682019B - 一种tpc高速译码方法 - Google Patents
一种tpc高速译码方法 Download PDFInfo
- Publication number
- CN107682019B CN107682019B CN201710894564.8A CN201710894564A CN107682019B CN 107682019 B CN107682019 B CN 107682019B CN 201710894564 A CN201710894564 A CN 201710894564A CN 107682019 B CN107682019 B CN 107682019B
- Authority
- CN
- China
- Prior art keywords
- bits
- test
- error
- bit
- syndrome
- 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.)
- Active
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/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/2906—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 using block codes
- H03M13/2909—Product codes
- H03M13/2915—Product codes with an error detection code in one dimension
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种TPC高速译码方法,两次迭代之间,只处理活动的比特,就可以最小化操作和中间变量的数量,从而最小化计算和存储资源,大大提升了TPC译码速率。
Description
技术领域
本发明涉及数字通讯技术领域,特别涉及一种TPC高速译码方法。
背景技术
TPC码由Elias在1954年提出,最开始,受限于硬件资源,TPC码并未取得广泛应用。直到Pyndiah基于Chase算法改进TPC码的SISO译码算法,TPC码的研究和应用才有比较大的进展。SISO尽管不是最优译码算法,在低误码率下依然能够达到接近最优的性能。目前,TPC码被广泛地应用于各种通信标准中,如IEEE 802.16。
TPC码的最小汉明距离等于分量码的最小汉明距离之积,而与分块大小无关。假设分量码的复杂度固定不变,则分量码的数量越多,性能越好。从而,在一般情况下,TPC码的维度越高,性能越好。
基于GPU运算的TPC译码模块主要利用GPU实现对TPC码的高速译码,CHASE算法处理过程的主体在于遍历码字。通常,最不可靠比特的数量显著地小于分量码长,因此,在两次迭代之间,大部分比特处于不活动的状态,只处理活动的比特,就可以最小化操作和中间变量的数量,从而最小化计算和存储资源。
发明内容
本发明的目的是,设计一种TPC高速译码方法。
本发明通过以下技术方案实现:
一种TPC高速译码方法,通过加入固定的判断,避免处理不必要的比特,其特征在于,步骤如下:
步骤1):定义R0为码字阵列,
初始化R=R0,W=0,
按行/列迭代
R=R+W/2
对于第k行/列
对R(k)进行符号判决得到C(k);
步骤2):将W(k)更新为C(k)的BPSK形式,
寻找p个最不可靠比特,并且生成2^p个测试图案,对应2^p个测试分支,
对于测试分支i,按照以下步骤实现:
步骤①计算相应的测试序列,伴随式S(i)和校验值P(i),若S(i)不为0,则通过查表得到错误比特的位置并纠错,同时更新P(i),若P(i)不为0,则修正测试序列的校验比特;
步骤②对测试序列计算平方欧氏距离SED(i);
步骤③对2^p个平方欧氏距离排序,按竞争规则逐比特更新W(k)。
对上述算法进行算法层面优化:
进一步,在所述步骤1)中形成测试分支之前,先计算原始序列C(k)的伴随式S和校验值P,测试分支通过计入当前测试图案中的‘1’即可由S和P得到S(i)和P(i),这样,每个测试分支只访问p个比特即可得到伴随式和校验值。
进一步,在所述步骤2)中竞争码字只可能在最不可靠比特,错误比特,或校验比特这三个位置出现,并且测试分支的SED的相对大小也只受不一致的码字的影响,因此计算SED和更新W都不需要访问全部比特,最不可靠比特的位置是测试分支无关的;错误比特的位置由测试分支的伴随式确定;校验比特的位置固定为最后一比特。
进一步,在所述步骤2)中存储测试序列时,保留最不可靠比特、错误比特和校验比特,其中,最不可靠比特,以及校验比特是测试分支无关的(全局的);而错误比特是各个测试分支私有的。
进一步,所述步骤2)中若错误比特的位置与某个最不可靠比特的位置重叠,则纠错,并且将错误比特的位置标记为无效;在所有测试分支均完成译码之后,对错误比特进行汇总,生成一个无重复元素的全局表;在测试分支计算SED时,遍历全局表的项,若与当前上下文的记录一致,则当前项为当前上下文的错误比特,在计算SED之前先纠错;否则,当前项是其他测试分支产生的,直接计算SED。
本发明提供了一种TPC高速译码方法,与现有技术相比,本发明两次迭代之间,只处理活动的比特,就可以最小化操作和中间变量的数量,从而最小化计算和存储资源,大大提升了TPC译码速率。
附图说明
图1为二维TPC结构示意图。
图2为三维TPC结构示意图。
图3为8比特hamming码测试分支示例图。
图4为简化的CHASE算法的复杂度随码长变化曲线示例图。
图5为TPC46*64的测试结果图谱。
图6为TPC32*32*4的测试结果图谱。
具体实施方式
参阅附图1、图2、图3、图4、图5及图6所示对本发明做进一步描述。
本发明涉及一种TPC高速译码方法,通过加入固定的判断,避免处理不必要的比特,其特征在于,步骤如下:
步骤1):定义R0为码字阵列,
初始化R=R0,W=0,
按行/列迭代
R=R+W/2
对于第k行/列
对R(k)进行符号判决得到C(k);
步骤2):将W(k)更新为C(k)的BPSK形式,
寻找p个最不可靠比特,并且生成2^p个测试图案,对应2^p个测试分支,
对于测试分支i,按照以下步骤实现:
步骤①计算相应的测试序列,伴随式S(i)和校验值P(i),若S(i)不为0,则通过查表得到错误比特的位置并纠错,同时更新P(i),若P(i)不为0,则修正测试序列的校验比特;
步骤②对测试序列计算平方欧氏距离SED(i);
步骤③对2^p个平方欧氏距离排序,按竞争规则逐比特更新W(k)。
对上述算法进行算法层面优化:
进一步,在所述步骤1)中形成测试分支之前,先计算原始序列C(k)的伴随式S和校验值P,测试分支通过计入当前测试图案中的‘1’即可由S和P得到S(i)和P(i),这样,每个测试分支只访问p个比特即可得到伴随式和校验值。
进一步,在所述步骤2)中竞争码字只可能在最不可靠比特,错误比特,或校验比特这三个位置出现,并且测试分支的SED的相对大小也只受不一致的码字的影响,因此计算SED和更新W都不需要访问全部比特,最不可靠比特的位置是测试分支无关的;错误比特的位置由测试分支的伴随式确定;校验比特的位置固定为最后一比特。
进一步,在所述步骤2)中存储测试序列时,保留最不可靠比特、错误比特和校验比特,其中,最不可靠比特,以及校验比特是测试分支无关的(全局的);而错误比特是各个测试分支私有的。
进一步,所述步骤2)中若错误比特的位置与某个最不可靠比特的位置重叠,则纠错,并且将错误比特的位置标记为无效;在所有测试分支均完成译码之后,对错误比特进行汇总,生成一个无重复元素的全局表;在测试分支计算SED时,遍历全局表的项,若与当前上下文的记录一致,则当前项为当前上下文的错误比特,在计算SED之前先纠错;否则,当前项是其他测试分支产生的,直接计算SED。
与现有技术相比,本发明两次迭代之间,只处理活动的比特,就可以最小化操作和中间变量的数量,从而最小化计算和存储资源,大大提升了TPC译码速率。发明设计的TPC高速译码方法可用于支持如图1所示的TPC2964(20同步头+46*64二维TPC)及图2所示的TPC4116(20同步头+32*32*4三维TPC)项目开发。
以下结合实施例对本发明做进一步说明。
以8比特HAMMING码为例(如图3所示),当取p=2,变量分布示例如下:第2和第4比特为最不可靠比特;分支#0的错误比特为第1比特,分支#1无错误比特,分支#2的错误比特为第2比特,分支#3的错误比特为第6比特。第7比特为校验比特。综上,在计算SED和更新W时,只计入第1,第2,第4,第6和第7比特。
由于不存储全部比特,在测试分支译码时,纠错无法进行,而只能把错误比特的位置记录下来。若错误比特的位置与某个最不可靠比特的位置重叠,则纠错,并且将错误比特的位置标记为无效。在所有测试分支均完成译码之后,对错误比特进行汇总,生成一个无重复元素的全局表。在测试分支计算SED时,遍历全局表的项,若与当前上下文的记录一致,则当前项为当前上下文的错误比特,在计算SED之前先纠错;否则,当前项是其他测试分支产生的,直接计算SED。
由于在计算SED和更新W时,只处理最不可靠比特,错误比特,和校验比特,比特存储和访问的规模被大大地减少。取p=4,则比特存储和访问的规模为p+2^p+1=4+16+1=21。考虑到这种处理方式引入用于处理三个位置互相重叠的情况的控制开销,主体处理过程的复杂度可以看作一个不受分量码长影响的常量,只要分量码长足够大,简化的CHASE算法就能提供正的处理速度收益,并且这个处理速度受益随分量码长的增长而扩大,简化的CHASE算法的时间复杂度曲线如图4中右侧端线性所示。
本发明设计在具体实施时,具备以下特征和执行要点:
①多帧数据并行处理,从而提供足够多的线程;
②每帧数据处理仅存在16个测试分支,即16个线程,因此每个warp(32个线程)包含两帧数据处理;
③把4个最不可靠比特的位置信息打包成1个int32,多行/列数据的最不可靠比特的位置信息为一个一维数组,从而在访问时形成合并地址;
④记录全局错误比特的符号信息,从而指导竞争判断,把符号信息表示成掩码形式,并且写入共享存储而非直接使用寄存器,从而最小化资源占用;
⑤尽量采用0/1形式而非+1/-1形式表示中间数据,从而最小化寄存器占用
⑥采用int8或者float16存储R矩阵和W矩阵,从而最小化外部存储带宽占用。
试验验证结果如下:
一个并发块包含4096帧FEC数据,迭代次数设置为3,在单张TESLA K20上,TPC46*64的测试结果如图5所示,TPC32*32*4的测试结果如图6所示。在吞吐上,分别为88~89Mbps和97~98Mbps(附带校验模块)。在误码性能上,纠错后均达到10-7量级。
按照以上描述,即可对本发明进行应用。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种TPC高速译码方法,通过加入固定的判断,避免处理不必要的比特,其特征在于,步骤如下:
步骤1):定义R0为码字阵列,
初始化R=R0,W=0,
按行/列迭代
R=R+W/2
对于第k行/列
对R(k)进行符号判决得到C(k);
步骤2):将W(k)更新为C(k)的BPSK形式,
寻找p个最不可靠比特,并且生成2^p个测试图案,对应2^p个测试分支,
对于测试分支i,按照以下步骤实现:
步骤①计算相应的测试序列,伴随式S(i)和校验值P(i),若S(i)不为0,则通过查表得到错误比特的位置并纠错,同时更新P(i),若P(i)不为0,则修正测试序列的校验比特;
步骤②对测试序列计算平方欧氏距离SED(i);
步骤③对2^p个平方欧氏距离排序,按竞争规则逐比特更新W(k);
在所述步骤1)中形成测试分支之前,先计算原始序列C(k)的伴随式S和校验值P,测试分支通过计入当前测试图案中的‘1’即可由S和P得到S(i)和P(i),这样,每个测试分支只访问p个比特即可得到伴随式和校验值。
2.根据权利要求1所述的TPC高速译码方法,其特征在于,在所述步骤2)中竞争码字只可能在最不可靠比特,错误比特,或校验比特这三个位置出现,并且测试分支的SED的相对大小也只受不一致的码字的影响,因此计算SED和更新W都不需要访问全部比特,最不可靠比特的位置是测试分支无关的;错误比特的位置由测试分支的伴随式确定;校验比特的位置固定为最后一比特。
3.根据权利要求1所述的TPC高速译码方法,其特征在于,在所述步骤2)中存储测试序列时,保留最不可靠比特、错误比特和校验比特,其中,最不可靠比特,以及校验比特是测试分支无关的;而错误比特是各个测试分支私有的。
4.根据权利要求1所述的TPC高速译码方法,其特征在于,所述步骤2)中若错误比特的位置与某个最不可靠比特的位置重叠,则纠错,并且将错误比特的位置标记为无效;在所有测试分支均完成译码之后,对错误比特进行汇总,生成一个无重复元素的全局表;在测试分支计算SED时,遍历全局表的项,若与当前上下文的记录一致,则当前项为当前上下文的错误比特,在计算SED之前先纠错;否则,当前项是其他测试分支产生的,直接计算SED。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710894564.8A CN107682019B (zh) | 2017-09-28 | 2017-09-28 | 一种tpc高速译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710894564.8A CN107682019B (zh) | 2017-09-28 | 2017-09-28 | 一种tpc高速译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107682019A CN107682019A (zh) | 2018-02-09 |
CN107682019B true CN107682019B (zh) | 2020-12-22 |
Family
ID=61138876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710894564.8A Active CN107682019B (zh) | 2017-09-28 | 2017-09-28 | 一种tpc高速译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107682019B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113452383A (zh) * | 2020-03-26 | 2021-09-28 | 湖南智领通信科技有限公司 | 针对软件无线电系统tpc译码的gpu并行优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557235A (zh) * | 2009-05-12 | 2009-10-14 | 清华大学深圳研究生院 | Turbo乘积码译码器迭代因子的构造方法 |
CN101777926A (zh) * | 2010-01-12 | 2010-07-14 | 浙江大学 | 一种Turbo乘积码的通用译码器及其方法 |
CN101958720A (zh) * | 2010-09-24 | 2011-01-26 | 西安电子科技大学 | 缩短Turbo乘积码的编译码方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10218388B2 (en) * | 2015-12-18 | 2019-02-26 | SK Hynix Inc. | Techniques for low complexity soft decoder for turbo product codes |
-
2017
- 2017-09-28 CN CN201710894564.8A patent/CN107682019B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557235A (zh) * | 2009-05-12 | 2009-10-14 | 清华大学深圳研究生院 | Turbo乘积码译码器迭代因子的构造方法 |
CN101777926A (zh) * | 2010-01-12 | 2010-07-14 | 浙江大学 | 一种Turbo乘积码的通用译码器及其方法 |
CN101958720A (zh) * | 2010-09-24 | 2011-01-26 | 西安电子科技大学 | 缩短Turbo乘积码的编译码方法 |
Non-Patent Citations (2)
Title |
---|
ASyndrome-BasedHybridDecoderforTurboProductCodes;erlhuei lu等;《2010 international symposium on computer,communication,control and automation》;20100729;第280-282页 * |
基于Chase算法的Turbo乘积码解码算法研究与应用;文富鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110415(第4期);参见第46-49页及附图5-6 * |
Also Published As
Publication number | Publication date |
---|---|
CN107682019A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100703271B1 (ko) | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 | |
US6986098B2 (en) | Method of reducing miscorrections in a post-processor using column parity checks | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
WO2007019187A2 (en) | Systems and methods for a turbo low-density parity-check decoder | |
KR20060032464A (ko) | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 | |
CN109361403A (zh) | Ldpc译码方法、ldpc译码器及其存储设备 | |
US10742355B2 (en) | Apparatus that receives non-binary polar code and decoding method thereof | |
CN107682019B (zh) | 一种tpc高速译码方法 | |
CN107665152B (zh) | 一类纠删码的译码方法 | |
CN112332869A (zh) | 改进的tpc迭代方法和装置 | |
CN105187162B (zh) | 一种多粒度并行解速率匹配方法和装置 | |
CN109245775B (zh) | 一种译码器及其实现译码的方法 | |
US9916240B2 (en) | Interleaver and de-interleaver for correcting a burst bit error | |
CN107111878A (zh) | 数据处理方法、装置及系统 | |
CN114978195A (zh) | 一种极化码串行抵消列表译码码字相关的错误图样集搜索方法及系统 | |
US20130198582A1 (en) | Supercharged codes | |
TWI744679B (zh) | 利用錯誤碼進行資料處理的方法與裝置 | |
CN113131947A (zh) | 译码方法、译码器和译码装置 | |
CN111600613B (zh) | 一种校验方法、装置、译码器、接收机及计算机存储介质 | |
CN112534724A (zh) | 用于解码极化码和乘积码的解码器和方法 | |
CN112152637B (zh) | Dvb-s2 ldpc译码变量节点更新模块及其实现方法 | |
CN111698060B (zh) | 编码方法、装置、设备及存储介质 | |
CN111211792B (zh) | Turbo译码方法、装置及系统 | |
JP7479401B2 (ja) | バイナリ対称不変積符号によって符号化された符号語の効率的な誤り訂正 | |
CN109495210B (zh) | 用于在无线通信系统中交织数据的方法、设备和计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |