CN114629596B - 前向纠错码Zigzag轮转解码方法 - Google Patents
前向纠错码Zigzag轮转解码方法 Download PDFInfo
- Publication number
- CN114629596B CN114629596B CN202210271863.7A CN202210271863A CN114629596B CN 114629596 B CN114629596 B CN 114629596B CN 202210271863 A CN202210271863 A CN 202210271863A CN 114629596 B CN114629596 B CN 114629596B
- Authority
- CN
- China
- Prior art keywords
- decoding
- data packet
- sequence number
- shift matrix
- original data
- 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
Classifications
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/04—Error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了前向纠错码Zigzag轮转解码方法。现有方法对于可解数据位的判断存在很大程度冗余,并且随着编码数据包增多,冗余量会逐渐增大,影响可Zigzag解码的前向纠删码的解码效率。本方法首先将Zigzag解码算法分为三个阶段,非轮转解码阶段,轮转判断阶段,轮转解码阶段。在非轮转解码阶段,通过调整解码特定顺序,确保轮转阶段一定会出现长度固定的循环。在轮转解码阶段,按照轮转判断阶段的结果直接解码,无需判断可解数据位的位置。本发明在保证适用于所有Zigzag编码的前提下,通过调整解码顺序和特殊的解码流程,大幅度降低Zigzag解码对于可解数据位的判断,从而降低整体复杂度。
Description
技术领域
本发明属于通信技术领域,具体是信道编码中纠删码技术,涉及一种前向纠错码Zigzag轮转解码方法。
背景技术
随着5G网络基础设施普及,用户对于高质量多媒体应用,实时业务需求进一步提高。随着3GPP R15对于5G eMBB应用场景协议的冻结,很多大带宽流4K/8K媒体传输成为主要研究方向。急速增长的流媒体业务对通信***的可靠性和有效性要求越来越高。即使网络基础设施升级,由于路由器拥塞,信道衰落等因素的影响,网络中依旧存在数据传输过程中数据包丢失的问题。前向纠错码技术,在这样大带宽的基础条件下,更适合用来应对网络丢包,但必须在编解码复杂度和纠删性能之间权衡。
Chi Wan Sung等人在2013年提出一种Zigzag解码方法,该解码方法采用遍历的方式寻找每个编码数据包中的可解数据位,计算复杂度O(K3L)。Chi Wan Sung等人在2017年提出Zigzag优化解码方法,通过牺牲存储空间,减少对不可解数据包进行判断,计算复杂度优化为O(K2L)。Zigzag方法本身仅仅需要使用异或和移位算法,但是需要对于每个可解数据位依次进行判断。如果能进一步减少Zigzag解码中可解数据位的判断,可以进一步降低Zigzag前向纠错码复杂度,使其更有效的应用于5G网络通信中。
发明内容
本发明的目的是针对Zigzag解码中对于遍历寻找可解数据位的过程过于重复冗余的问题,提供一种前向纠错码Zigzag轮转解码方法。该方法适用于任何Zigzag编码方法。
本发明方法基于对解码流程的调整和判断,产生一种轮转过程,避免了遍历寻找有效数据位的过程,与现有相比,解码复杂度更低,趋近于编码复杂度。
本发明方法包括非轮转解码阶段[步骤(2)~(4)]、轮转判断阶段[步骤(6)~(8)]、轮转解码阶段[步骤(9)]。
本发明中,编码端对接收到的原始数据包分组进行Zigzag编码,原始数据包分组具有K个原始数据包,编码后得到的编码数据包由相同的K个原始数据包移位异或得到;解码端每收到K个编码数据包,将其作为一个编码数据包分组进行Zigzag轮转解码;具体如下:
步骤(1)初始化解码移位矩阵R等同于K×K编码移位矩阵,ri,j为矩阵中第i行第j列的元素值,i=1,2,…,K,j=1,2,…,K,元素值表征了编码数据包首位和原始数据包中未被解码部分的首位之间的移位关系,i表示编码后的编码数据包序号,即每一行元素对应一个编码数据包,j表示需要解码恢复的原始数据包序号;初始化已经有数据位被恢复的原始数据包序号的集合/>为空;
步骤(2)解码端从i=1行开始遍历解码移位矩阵R,找到符合条件的元素ri′,j′则停止遍历,执行步骤(3):R中一行元素值中存在唯一最小值ri′,j′<ri′,k,k∈{1,2,…,K}\{j′};
步骤(3)将序号i′的编码数据包的首位映射到序号为j′的原始数据包的末位,更新解码移位矩阵R,得到更新后解码移位矩阵R*:R*中第j′列元素值均加1,其他元素值不变;
步骤(4)如果集合中已经存在序号j′,保持/>不变,否则将序号j′添加到集合中;如果集合/>的元素个数等于K,表明该原始数据包分组中的所有原始数据包中都有数据位被解码,执行步骤(5);否则执行步骤(2),遍历更新后解码移位矩阵R*;
步骤(5)初始化轮转解码顺序队列K*为空;
步骤(6)解码端从i=1行开始遍历步骤(3)最终更新的解码移位矩阵找到符合条件的元素值ri″,j″则停止遍历,执行步骤(7):/>中一行元素值中存在唯一最小值ri″,j″<ri″,k′,k′∈{1,2,…,K}\{j″};
步骤(7)更新解码移位矩阵得到再次更新解码移位矩阵R**:R**中第j″列元素值均加1,其他元素值不变;
步骤(8)将编码数据包序号i″和原始数据包序号j″作为一个元素(i″,j″)添加到轮转解码顺序队列K*的尾部;如果队列K*中的元素个数等于K,表明已经找到长度K的解码顺序,执行步骤(9);否则执行步骤(6),遍历再次更新解码移位矩阵R**;
步骤(9)依次从轮转解码顺序队列K*中读取元素(i″,j″),将序号为i″的编码数据包的首位映射到序号为j″的原始数据包的末位,直到编码数据包分组中包含的所有原始数据包都被解码,结束解码过程。
本发明方法在保证Zigzag成功解码的前提下,利用特殊的解码过程,相对于现有的Zigzag解码方法,可以显著减少对于可解数据位查询的算法复杂度,从而降低整体算法复杂度。
附图说明
图1为本发明方法流程图。
具体实施方式
前向纠错码Zigzag轮转解码方法,编码端对接收到的原始数据包分组进行Zigzag编码,原始数据包分组具有K个原始数据包,编码后得到的编码数据包由相同的K个原始数据包移位异或得到;解码端每收到K个编码数据包,将其作为一个编码数据包分组进行Zigzag轮转解码。具体方法如图1所示:
步骤(1)初始化解码移位矩阵R等同于K×K编码移位矩阵,ri,j为矩阵中第i行第j列的元素值,i=1,2,…,K,j=1,2,…,K,元素值表征了编码数据包首位和原始数据包中未被解码部分的首位之间的移位关系,i表示编码后的编码数据包序号,即每一行元素对应一个编码数据包,j表示需要解码恢复的原始数据包序号;初始化已经有数据位被恢复的原始数据包序号的集合/>为空;
步骤(2)解码端从i=1行开始遍历解码移位矩阵R,找到符合条件的元素ri′,j′则停止遍历,执行步骤(3):R中一行元素值中存在唯一最小值ri′,j′<ri′,k,k∈{1,2,…,K}\{j′};
步骤(3)将序号i′的编码数据包的首位映射到序号为j′的原始数据包的末位,更新解码移位矩阵R,得到更新后解码移位矩阵R*:R*中第j′列元素值均加1,其他元素值不变;
步骤(4)如果集合中已经存在序号j′,保持/>不变,否则将序号j′添加到集合中;如果集合/>的元素个数等于K,表明该原始数据包分组中的所有原始数据包中都有数据位被解码,执行步骤(5);否则执行步骤(2),遍历更新后解码移位矩阵R*,再次更新解码移位矩阵;
步骤(5)初始化轮转解码顺序队列K*为空;
步骤(6)解码端从i=1行开始遍历步骤(3)最终更新的解码移位矩阵找到符合条件的元素值ri″,j″则停止遍历,执行步骤(7):/>中一行元素值中存在唯一最小值ri″,j″<ri″,k′,k′∈{1,2,…,K}\{j″};
步骤(7)更新解码移位矩阵得到再次更新解码移位矩阵R**:R**中第j″列元素值均加1,其他元素值不变;
步骤(8)将编码数据包序号i″和原始数据包序号j″作为一个元素(i″,j″)添加到轮转解码顺序队列K*的尾部;如果队列K*中的元素个数等于K,表明已经找到长度K的解码顺序,执行步骤(9);否则执行步骤(6),遍历再次更新解码移位矩阵R**;
步骤(9)依次从轮转解码顺序队列K*中读取元素(i″,j″),将序号为i″的编码数据包的首位映射到序号为j″的原始数据包的末位,直到编码数据包分组中包含的所有原始数据包都被解码,结束解码过程。
以下结合具体编码数据包分组进行说明。
解码端收到四个编码数据包,作为一个编码数据包分组进行Zigzag轮转解码。分组中编码数据包序号i∈{1,2,3,4},原始数据包的序号j∈{1,2,3,4}。
初始化解码移位矩阵,如初始化已经有数据位被恢复的原始数据包序号的集合/>为空。
解码端从i=1行开始遍历解码移位矩阵R,找到符合条件的元素R中第一行元素值存在唯一最小值,本实施例中r1,4=0,即i0=1,j0=4。
将序号i0=1的编码数据包的首位映射到序号为j0=4的原始数据包的末位,然后更新解码移位矩阵R,得到更新后解码移位矩阵
将序号j0=4添加到集合中,/> 的元素个数小于4,因此返回继续遍历。以此类推,最终得到/>过程是:
1、解码端从i=1行开始遍历解码移位矩阵找到符合条件的元素/> 中第一行元素值存在唯一最小值1,r1,4=1,即i1=1,j1=4。将序号i1=1的编码数据包的首位映射到序号为j1=4的原始数据包的末位,更新得到解码移位矩阵/>由于j1=4不需添加到集合/>中,/>
2、解码端从i=1行开始遍历解码移位矩阵找到符合条件的元素/> 中第三行元素值存在唯一最小值0,r3,3=0,即i2=3,j2=3。将序号i2=3的编码数据包的首位映射到序号为j2=3的原始数据包的末位,更新得到解码移位矩阵/>将序号j2=3添加到集合/>中,/>
3、解码端从i=1行开始遍历解码移位矩阵找到符合条件的元素/> 中第二行元素值存在唯一最小值2,r2,4=1,即i3=2,j3=4。将序号i3=2的编码数据包的首位映射到序号为j3=4的原始数据包的末位,更新得到解码移位矩阵/>由于j3=4不需添加到集合/>中,/>
4、解码端从i=1行开始遍历解码移位矩阵找到符合条件的元素/> 中第一行元素值存在唯一最小值2,r1,2=2,即i4=1,j4=2。将序号i4=1的编码数据包的首位映射到序号为j4=2的原始数据包的末位,更新得到解码移位矩阵/>将序号j4=2添加到集合/>中,/>
5、解码端从i=1行开始遍历解码移位矩阵找到符合条件的元素/> 中第四行元素值存在唯一最小值0,r4,1=0,即i5=4,j5=1。将序号i5=4的编码数据包的首位映射到序号为j5=1的原始数据包的末位,更新得到解码移位矩阵/>将序号j5=1添加到集合/>中,/>
初始化轮转解码顺序队列K*为空。
解码端从i=1行开始遍历找到符合条件的元素值:/>中第三行元素值存在唯一最小值ra,b,本实施例中r3,3=1,即a1=3,b1=3。将(a1,b1)添加到K*中,K*=[(3,3)]。更新得到解码移位矩阵/>
解码端从i=1行开始遍历找到符合条件的元素值:/>中第二行元素值存在唯一最小值ra,b,本实施例中r2,4=3,即a2=2,b2=4。将(a2,b2)添加到K*中,K*=[(3,3),(2,4)]。
更新得到解码移位矩阵
解码端从i=1行开始遍历找到符合条件的元素值:/>中第一行元素值存在唯一最小值ra,b,本实施例中r1,2=3,即a3=1,b3=2。将(a3,b3)添加到K*中,K*=[(3,3),(2,4),(1,2)]。更新得到解码移位矩阵/>
解码端从i=1行开始遍历找到符合条件的元素值:/>中第三行元素值存在唯一最小值ra,b,本实施例中r3,1=2,即a4=4,b4=1。将(a4,b4)添加到K*中,K*=[(3,3),(2,4),(1,2),(4,1)]。更新得到解码移位矩阵/>
依次从轮转解码顺序队列K*=[(3,3),(2,4),(1,2),(4,1)]中读取元素(i″,j″),将序号为i″的编码数据包的首位映射到序号为j″的原始数据包的末位,直到编码数据包分组中包含的所有原始数据包都被解码,结束解码过程。
Claims (1)
1.前向纠错码Zigzag轮转解码方法,其特征在于,包括以下步骤:
编码端对接收到的原始数据包分组进行Zigzag编码,原始数据包分组具有K个原始数据包,编码后得到的编码数据包由相同的K个原始数据包移位异或得到;解码端每收到K个编码数据包,将其作为一个编码数据包分组进行Zigzag轮转解码;具体如下:
步骤(1)初始化解码移位矩阵R等同于K×K编码移位矩阵,ri,j为矩阵中第i行第j列的元素值,i=1,2,…,K,j=1,2,…,K,元素值表征了编码数据包首位和原始数据包中未被解码部分的首位之间的移位关系,i表示编码后的编码数据包序号,即每一行元素对应一个编码数据包,j表示需要解码恢复的原始数据包序号;初始化已经有数据位被恢复的原始数据包序号的集合/>为空;
步骤(2)解码端从i=1行开始遍历解码移位矩阵R,找到符合条件的元素ri′,j′则停止遍历,执行步骤(3):R中一行元素值中存在唯一最小值ri′,j′<ri′,k,k∈{1,2,…,K}\{j′};
步骤(3)将序号i′的编码数据包的首位映射到序号为j′的原始数据包的末位,更新解码移位矩阵R,得到更新后解码移位矩阵R*:R*中第j′列元素值均加1,其他元素值不变;
步骤(4)如果集合中已经存在序号j′,保持/>不变,否则将序号j′添加到集合/>中;如果集合/>的元素个数等于K,表明该原始数据包分组中的所有原始数据包中都有数据位被解码,执行步骤(5);否则执行步骤(2),遍历更新后解码移位矩阵R*;
步骤(5)初始化轮转解码顺序队列K*为空;
步骤(6)解码端从i=1行开始遍历步骤(3)最终更新的解码移位矩阵找到符合条件的元素值ri″,j″则停止遍历,执行步骤(7):/>中一行元素值中存在唯一最小值ri″,j″<ri″,k′,k′∈{1,2,…,K}\{j″};
步骤(7)更新解码移位矩阵得到再次更新解码移位矩阵R**:R**中第j″列元素值均加1,其他元素值不变;
步骤(8)将编码数据包序号i″和原始数据包序号j″作为一个元素(i″,j″)添加到轮转解码顺序队列K*的尾部;如果队列K*中的元素个数等于K,表明已经找到长度K的解码顺序,执行步骤(9);否则执行步骤(6),遍历再次更新解码移位矩阵R**;
步骤(9)依次从轮转解码顺序队列K*中读取元素(i″,j″),将序号为i″的编码数据包的首位映射到序号为j″的原始数据包的末位,直到编码数据包分组中包含的所有原始数据包都被解码,结束解码过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210271863.7A CN114629596B (zh) | 2022-03-18 | 2022-03-18 | 前向纠错码Zigzag轮转解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210271863.7A CN114629596B (zh) | 2022-03-18 | 2022-03-18 | 前向纠错码Zigzag轮转解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629596A CN114629596A (zh) | 2022-06-14 |
CN114629596B true CN114629596B (zh) | 2023-09-22 |
Family
ID=81901755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210271863.7A Active CN114629596B (zh) | 2022-03-18 | 2022-03-18 | 前向纠错码Zigzag轮转解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629596B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299613A (zh) * | 2007-04-30 | 2008-11-05 | 华为技术有限公司 | ZigZag码译码方法及其装置 |
CN103096074A (zh) * | 2011-11-07 | 2013-05-08 | 索尼公司 | 视频数据编码和解码 |
CN105356892A (zh) * | 2015-06-24 | 2016-02-24 | 深圳大学 | 网络编码的方法及*** |
CN106603204A (zh) * | 2016-12-19 | 2017-04-26 | 中国电子科技集团公司第二十研究所 | 一种基于改进冗余避免的网络编码广播重传方法 |
CN107241414A (zh) * | 2017-06-09 | 2017-10-10 | 深圳大学 | 一种基于zigzag 解码的私人信息检索方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102383892B1 (ko) * | 2017-07-11 | 2022-04-08 | 상하이 지아오통 유니버시티 | 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체 |
-
2022
- 2022-03-18 CN CN202210271863.7A patent/CN114629596B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299613A (zh) * | 2007-04-30 | 2008-11-05 | 华为技术有限公司 | ZigZag码译码方法及其装置 |
CN103096074A (zh) * | 2011-11-07 | 2013-05-08 | 索尼公司 | 视频数据编码和解码 |
CN105356892A (zh) * | 2015-06-24 | 2016-02-24 | 深圳大学 | 网络编码的方法及*** |
CN106603204A (zh) * | 2016-12-19 | 2017-04-26 | 中国电子科技集团公司第二十研究所 | 一种基于改进冗余避免的网络编码广播重传方法 |
CN107241414A (zh) * | 2017-06-09 | 2017-10-10 | 深圳大学 | 一种基于zigzag 解码的私人信息检索方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114629596A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102164026B (zh) | 基于深空通信环境下的喷泉码编译方法 | |
CN108494719B (zh) | 一种星座映射方法和解映射方法 | |
CN101047472A (zh) | 使用搜索深度维特比算法对咬尾卷积码的解码方法 | |
WO2009006812A1 (fr) | Procédé de modulation à codage, procédé de décodage et appareil de code de modulation à codage en treillis | |
CN1349335A (zh) | 数字残留边带发送*** | |
CN1320770C (zh) | 在调制前把卷积编码比特分配到符号中的方法和*** | |
CN111917512A (zh) | 一种在多跳传输***中基于bats码的高效编码设计方法 | |
CN110336639B (zh) | 一种基于容量分布的极化码多层编码调制方法及应用 | |
CN112600647B (zh) | 基于网络编码续航的多跳无线网络传输方法 | |
CN109951190B (zh) | 一种自适应Polar码SCL译码方法及译码装置 | |
CN114629596B (zh) | 前向纠错码Zigzag轮转解码方法 | |
CN113098661B (zh) | 一种基于喷泉码的卫星信道下的文件传输方法 | |
CN109245854B (zh) | 一种基于ai的端到端无线通信***及方法 | |
CN1127247C (zh) | 具有面向路径的解码器的编码或非编码调制的终结 | |
US7908544B2 (en) | Extended convolutional codes | |
CN110430011B (zh) | 基于规则变量节点度分布的bats码编码方法 | |
CN103220007B (zh) | 一种自适应调整子码不可靠位数的tpc迭代译码算法 | |
CN116938662A (zh) | 一种基于递归神经网络训练优化的星座概率成形方法及装置 | |
WO2023116504A1 (zh) | 一种基于模拟退火算法的双因子修正Turbo译码方法 | |
CN111314349A (zh) | 雾无线接入网中基于联合最大距离可分码与簇协作的编码缓存方法 | |
CN115037315B (zh) | 一种基于Polar码的多级灵活自适应SCL剪枝方法 | |
CN101459429B (zh) | 一种低密度生成矩阵码的译码方法 | |
CN113783933B (zh) | 基于编码缓存的双层网络通信方法、装置及介质 | |
CN102291198B (zh) | 信道译码方法和装置 | |
CN102263606B (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 |