CN109861695B - 利用码本进行卷积码译码的方法 - Google Patents
利用码本进行卷积码译码的方法 Download PDFInfo
- Publication number
- CN109861695B CN109861695B CN201910134064.3A CN201910134064A CN109861695B CN 109861695 B CN109861695 B CN 109861695B CN 201910134064 A CN201910134064 A CN 201910134064A CN 109861695 B CN109861695 B CN 109861695B
- Authority
- CN
- China
- Prior art keywords
- codebook1
- register state
- decoding
- information bits
- input information
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
技术领域
本发明涉及一种卷积码译码方法。更具体地说,本发明涉及利用码本进行卷积码译码的方法。
背景技术
信道编码是数字通信***中的重要组成部分,他是保证信号可靠传输的一种重要方式。卷积码以其优越的性能被广泛使用在无线通信标准中,如GSM,CDMA2000,IS95中。
卷积码是1955年由爱里斯提出的一种性能优越的信道编码,通常用(n,k,m)来表示,该方法是把k个信息比特编成n个信息比特,但k和n通常很小,特别适宜于以串行方式传输信息,延时小。m为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n个码元不仅与当前组的k个信息比特有关,而且与前m-1个输入组的信息比特有关。
卷积码有四种比较好的译码方法:1961年由沃曾克拉夫特提出,1963年由费诺改进的序列译码;1963年由梅西提出的门限译码;1967年由维特比提出的Viterbi算法;1974年,Bahl、Cocke、Jelinek和Raviv(BCJR)对信息比特具有不等先验概率的卷积码提出了最大后验概率(MAP)译码算法。这四种算法中,后两种即Viterbi和BCJR译码方法得到了更为广泛的应用,这边介绍一下Viterbi译码方法。
Viterbi算法是一种基于网格图的最大似然译码方法,它并不是在网格图中一次比较所有可能的路径,而是接收一段,计算、比较一段,选择一段最可能的分支,从而达到整个码序列是一个有最大似然函数的序列。译码的总体流程是更新状态的度量值,并由此获得状态转移表,最后通过状态转移表的回溯完成最终译码。其具体步骤如下:
1、路径度量的计算。从某一时间单位开始,对进入每一状态的所有长为j段分支的部分路径,计算部分路径度量。对每一状态,挑选并存一条有最大度量的部分路径及其部分度量值,称此部分路径为幸存路径。
2、路径度量的更新。j增加1,把此时刻进入每一状态的所有分支度量,和同这些分支相连的前一时刻的幸存路径的度量相加,得到了此时刻进入每一状态的幸存路径,加以存并删去其它所有路径,因此幸存路径延长了一个分支。
3、循环直到结束。
4、反向索引幸存路径,得到译码估值序列,这一过程称为回溯。
其存在着如下缺点:
1、回溯判决单元通过从存储的幸存路径中往前回溯来得到解码后的信息,所以需要先存储较长长度的幸存路径数据,回溯完成之后,才能开始输出第一个解码数据,延时较高。
2、一直存贮路径再保留最优路径删除其他路径,复杂度较高。
3、路径度量以单个时间单元为标准进行更新容易连环错误,噪声较大的时候误码率较高。
发明内容
本发明的目的是提供利用码本进行卷积码译码的方法,该方法复杂度较低、保证了误码率性能,且在保证误码率性能的情况下,可进一步降低复杂度。
为了实现根据本发明的这些目的和其它优点,提供了利用码本进行卷积码译码的方法,包括:
1)、生成两个码本
L个时间单元内,输入信息比特为[ui+1,ui+2,...,ui+L],有2L种可能,初始寄存器状态为[S(0),S(1),...,S(2m-1)],有2m种可能;
codebook1为2m+L行L·n列的输出信息比特码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的输出信息比特,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的输出信息比特,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的输出信息比特;
codebook2为2m+L行m列的最终寄存器状态码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的最终寄存器状态,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的最终寄存器状态,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的最终寄存器状态;
2)解码
输出信息比特经过信道之后进行接收解码;
取L1和L2,L1<L2,分别生成这两个时间单元对应的输出信息比特码本codebook1L1和codebook1L2,以及L1对应的最终寄存器状态码本codebook2L1;
采用codebook1L1进行解码的方法如下:
G中每一行L1·n个数相加得到的矩阵为:
本发明至少包括以下有益效果:
1、该方法根据码本索引进行直接对应,取消回溯的步骤。
2、该方法根据码本直接选择最优路径,复杂度较低。
3、该方法以多个时间单元为标准进行解码,保证了误码率性能。
4、该方法可进行误码率和复杂度的折中,在保证误码率性能的情况下,可进一步降低复杂度。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1是(2,1,2)卷积编码器;
图2是本发明只用L=6产生的码本解码,只用L=12产生的码本解码,用L=6、L=12产生的码本进行折中解码的性能仿真图;
图3是本发明只用L=6产生的码本解码,只用L=12产生的码本解码,用L=6、L=12产生的码本进行折中解码的运行时间仿真图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
需要说明的是,在本发明的描述中,术语“横向”、“纵向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
一个(n,k,m)卷积编码器,是将k个输入信息比特编成n个信息比特输出。
输入信息比特为u,根据一定的卷码器规则得到输出信息比特c,寄存器状态为S,有2m种情况。
生成两个码本:
L个时间单元内,输入信息比特为[ui+1,ui+2,...,ui+L],有2L种可能,初始寄存器状态为[S(0),S(1),...,S(2m-1)],有2m种可能。第一个码本codebook1为2m种初始寄存器状态2L种输入信息比特情况下的输出信息比特,第二个码本codebook2为2m种初始寄存器状态2L种输入信息比特情况下的最终寄存器状态。
codebook1为2m+L行L·n列的输出信息比特码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的输出信息比特,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的输出信息比特,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的输出信息比特。
codebook2为2m+L行m列的最终寄存器状态码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的最终寄存器状态,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的最终寄存器状态,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的最终寄存器状态。
解码:
输出信息比特经过信道之后进行接收解码,接收信息比特为r,每L·n个比特为一组,与codebook1的每一行进行模二加后,选取非零数最少的那一行,得到那一行的索引,从而得到了对应的估计初始寄存器状态和估计输入信息比特/>
取L1和L2(L1<L2),分别生成这两个时间单元对应的输出信息比特码本codebook1L1和codebook1L2,以及L1对应的最终寄存器状态码本codebook2L1。
采用codebook1L1进行解码的方法如下:
矩阵G的第d行为因为是模二加,/>为0、1向量,0表示接收比特和码本中的输出信息比特一致,1表示不同。将G中第d行L1·n个数相加,得到第d行的非零数若numd=0,表示码本第d行和向量r完全一致,若numd>0,表示码本第d行和向量r有numd个不同。
G中每一行L1·n个数相加得到的矩阵为:
该矩阵最小值意味着和接收向量最吻合的码本单元,可以选出该矩阵值最小的那一行,比如第dopt行值最小,意味着cb1dopt和接收向量最吻合,而codebook1L1是由输入信息比特对应得到的,确定了最优行数dopt,也就确定了输入信息比特向量
若说明解码情况良好,此时继续用codebook1L1进行下L1·n个比特的解码,并且取codebook2L1的第dopt行作为下一次解码的寄存器初始状态,确定码本初始状态可减少了码本单元的量,进一步减少复杂度。
若说明信道状况可能不好,噪声可能较大,此时用codebook1L2进行下L2·n个比特的解码,解码方法与采用codebook1L1进行解码的方法相同(即只是将采用codebook1L1进行解码的方法中的L1替换成L2),直到/>继续用codebook1L1进行解码。
举例说明,图1是一个(2,1,2)卷积编码器,用时延算子表示就是G(D)=[G1(D),G2(D)]=[1+D2,1+D+D2],其中D为时延算子,D的幂表示延迟时延单元数。
若输入为u1,u2,...,ui,输出为c1,1,c2,1,...,ci,1、c1,2,c2,2,...,ci,2。若每一时间单位输入编码器一个新的信息比特ui,且寄存器内的数据往右移一位,则ui与前两个单位时间送入的信息比特ui-1、ui-2,按图1中所确定的规则进行运算,得到此时刻的两个输出信息比特ci,1、ci,2,组成一个码字ci=(ci,1,ci,2)送入信道。由图1可知:
ci,1=ui+ui-2
ci,2=ui+ui-1+ui-2
上式中的加代表模二加,下一个时间单元输入的信息比特为ui+1,与其对应的输出信息比特为:
ci+1,1=ui+1+ui-1
ci+1,2=ui+1+ui+ui-1
组成下一个码字ci+1=(ci+1,1,ci+1,2)送至信道。由此可知,第i时刻的输入至编码器的信息比特ui以及其相应的输出信息比特ci不仅与前m(这里m=2)个码字ci-1,ci-2,...,ci-m中的信息比特有关,而且也参与了后m个码字ci+1,ci+2,...,ci+m的运算。
卷积码寄存器数目为m,这边为2,寄存器状态数有2m种,这边为22=4种,第i个时间单元的寄存器状态与之前的输入信息比特有关,这边Si=[ui-1,ui-2],有四种可能:S0=[0,0],S1=[0,1],S2=[1,0],S3=[1,1],等号右边为寄存器内容,左边是寄存器状态标号。
假设第i个时间单元的寄存器状态为Si=[0,0],第i+1个时间单元的输入信息比特ui+1若为0,第i+1个时间单元的寄存器状态为Si+1=[0,0],并且可以计算出第i+1个时间单元的输出信息比特ci+1=[0,0],ui+1若为1,Si+1=[1,0],ci+1=[1,1]。
假设第i个时间单元的寄存器状态为Si=[0,1],ui+1若为0,Si+1=[0,0],ci+1=[1,1],ui+1若为1,Si+1=[1,0],ci+1=[0,0]。
假设第i个时间单元的寄存器状态为Si=[1,0],ui+1若为0,Si+1=[0,1],ci+1=[0,1],ui+1若为1,Si+1=[1,1],ci+1=[1,0]。
假设第i个时间单元的寄存器状态为Si=[1,1],ui+1若为0,Si+1=[0,1],ci+1=[1,0],ui+1若为1,Si+1=[1,1],ci+1=[0,1]。
若某个时间单元初始寄存器状态为Si,L个时间单元内输入的信息比特为[ui+1,ui+2,...,ui+L],可计算得到输出信息比特[ci+1,ci+2,...,ci+L]以及最终的寄存器状态Si+L。
初始寄存器状态有2m种,L个输入信息比特有2L种,也就是共有2m+L种情况,2m+L种对应输出结果。
可以生成码本,假设L=3,输入信息比特有2L种情况{000;001;010;011;100;101;110;111},生成码本codebook1的1到2L行为Si=[0,0]时各种输入信息比特情况下的输出信息比特
{000000;000011;001101;001110;110111;110100;111010;111001},码本codebook2的1到2L行为Si=[0,0]时各种输入信息比特情况下的最终寄存器状态{00;10;01;11;00;10;01;11},同理可生成codebook1的2L+1到2L+1行为Si=[0,1]时各种输入信息比特情况下的输出信息比特,码本codebook2的2L+1到2L+1行为Si=[0,1]时各种输入信息比特情况下的最终寄存器状态。最终可生成2m+L行L·n列的codebook1和2m+L行m列的codebook2。
输出信息比特经过信道之后进行接收解码,接收信息比特向量为r,每6个比特为一组,与codebook1的每一行进行模二加后,选取非零数最小的那一行,得到那一行的索引,从而得到了对应的估计初始寄存器状态和估计输入信息比特/>
比如r=[1,1,0,1,1,1],和codebook1的每一行进行对应模二加,第五行为[0,0,0,0,0,0],六个数相加为0,说明码本第五行和接收比特最吻合,码本第五行是初始寄存器状态为[0,0],输入信息比特为[1,0,0]得到的,所以可得到估计输入向量
下面是对200000个比特进行卷积编码,BPSK调制解调,只用L=6产生的码本解码,只用L=12产生的码本解码,用L=6、L=12产生的码本进行折中解码的性能仿真图和运行时间仿真图,如图2和图3所示,运行时间包括生成码本的时间和解卷积码的时间。
由图2和图3可得,L越大,性能越好,但是复杂度也越大,混合码本折中解码可达到性能和复杂度的折中效果。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (1)
1.利用码本进行卷积码译码的方法,其特征在于,包括:
1)、生成两个码本
L个时间单元内,输入信息比特为[ui+1,ui+2,...,ui+L],有2L种可能,初始寄存器状态为[S(0),S(1),...,S(2m-1)],有2m种可能;
codebook1为2m+L行L·n列的输出信息比特码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的输出信息比特,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的输出信息比特,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的输出信息比特;
codebook2为2m+L行m列的最终寄存器状态码本,1到2L行为初始寄存器状态为S(0)时2L种输入信息比特情况下对应的最终寄存器状态,2L+1到2L+1行为初始寄存器状态为S(1)时2L种输入信息比特情况下对应的最终寄存器状态,...,2m+L-1+1到2m+L行为初始寄存器状态为S(2m-1)时2L种输入信息比特情况下对应的最终寄存器状态;
2)解码
输出信息比特经过信道之后进行接收解码;
取L1和L2,L1<L2,分别生成L1和L2这两个时间单元对应的输出信息比特码本codebook1L1和codebook1L2,以及L1对应的最终寄存器状态码本codebook2L1;
采用codebook1L1进行解码的方法如下:
G中每一行L1·n个数相加得到的矩阵为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910134064.3A CN109861695B (zh) | 2019-02-22 | 2019-02-22 | 利用码本进行卷积码译码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910134064.3A CN109861695B (zh) | 2019-02-22 | 2019-02-22 | 利用码本进行卷积码译码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109861695A CN109861695A (zh) | 2019-06-07 |
CN109861695B true CN109861695B (zh) | 2023-06-20 |
Family
ID=66898603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910134064.3A Active CN109861695B (zh) | 2019-02-22 | 2019-02-22 | 利用码本进行卷积码译码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109861695B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115882873B (zh) * | 2023-02-23 | 2023-05-23 | 成都星联芯通科技有限公司 | 低密度奇偶校验码译码方法、装置、通信设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911195A (zh) * | 2017-10-19 | 2018-04-13 | 重庆邮电大学 | 一种基于cva的咬尾卷积码信道译码方法 |
CN109194448A (zh) * | 2018-09-30 | 2019-01-11 | 西安电子科技大学 | 卷积码的自叠加传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3338370A1 (en) * | 2015-09-24 | 2018-06-27 | Huawei Technologies Co., Ltd. | Tail-biting convolutional codes with very short information blocks |
-
2019
- 2019-02-22 CN CN201910134064.3A patent/CN109861695B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911195A (zh) * | 2017-10-19 | 2018-04-13 | 重庆邮电大学 | 一种基于cva的咬尾卷积码信道译码方法 |
CN109194448A (zh) * | 2018-09-30 | 2019-01-11 | 西安电子科技大学 | 卷积码的自叠加传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109861695A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5406570A (en) | Method for a maximum likelihood decoding of a convolutional code with decision weighting, and corresponding decoder | |
US8726137B2 (en) | Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes | |
CA2180311C (en) | Soft-decision receiver and decoder for digital communication | |
US8219896B2 (en) | Reduced-complexity decoding algorithms for tail-biting convolutional codes | |
US7765459B2 (en) | Viterbi decoder and viterbi decoding method | |
US6999531B2 (en) | Soft-decision decoding of convolutionally encoded codeword | |
CN107911195B (zh) | 一种基于cva的咬尾卷积码信道译码方法 | |
JP2000216689A (ja) | 反復式ターボ符号復号装置及び該装置の性能を最適化する方法 | |
EP3996285A1 (en) | Parallel backtracking in viterbi decoder | |
CN109861695B (zh) | 利用码本进行卷积码译码的方法 | |
US8055986B2 (en) | Viterbi decoder and method thereof | |
US8009773B1 (en) | Low complexity implementation of a Viterbi decoder with near optimal performance | |
JP2012170077A (ja) | 通信システムでの復号化のための装置及び方法 | |
Wu et al. | Polar codes for low-complexity forward error correction in optical access networks | |
CN108471341B (zh) | 一种卷积编解码的方法 | |
KR20070074213A (ko) | 통신 시스템의 복호화 방법 | |
JPH07254861A (ja) | ヴィタビ復号方法及び畳み込み符号化伝送方法 | |
US7031406B1 (en) | Information processing using a soft output Viterbi algorithm | |
CN105721104A (zh) | 一种维特比译码实现方法 | |
KR101267756B1 (ko) | 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 | |
CN116073952B (zh) | 一种基于MaPU架构的快速并行卷积编译码方法、***、设备及介质 | |
CN114095042B (zh) | 低码率双正交码译码器及译码的方法 | |
KR100726170B1 (ko) | 비터비 복호 장치 및 방법 | |
Bourichi | A low power parallel sequential decoder for convolutional codes | |
TWI383596B (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 |