列表译码方法、装置、设备及存储介质 |
|||||||
申请号 | CN202410080755.0 | 申请日 | 2024-01-19 | 公开(公告)号 | CN117914332A | 公开(公告)日 | 2024-04-19 |
申请人 | 深圳市汇川技术股份有限公司; | 发明人 | 张汝楠; 祁璞; 张华; 李长庚; 林之楠; 刘奇; | ||||
摘要 | 本 申请 公开了一种列表译码方法、装置、设备及存储介质,属于通信技术领域。本申请通过在接收 信号 对应译码树的目标 节点 非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。 | ||||||
权利要求 | 1.一种列表译码方法,其特征在于,所述列表译码方法包括以下步骤: |
||||||
说明书全文 | 列表译码方法、装置、设备及存储介质技术领域[0001] 本申请涉及通信技术领域,尤其涉及一种列表译码方法、装置、设备及存储介质。 背景技术[0002] 传统对Polar码(Polar code,极化码)的SCL(Successive Cancellation List,串行抵消列表)译码算法引入二进制决策树的概念,从根节点开始前向分裂路径,对译码树中每层节点的分支路径进行判断;具体地,若当前节点为冻结比特,则直接判定该节点为0;否则将分支路径分裂成两条路径,再分别对分裂出的两条路径进行判断,不断重复上述步骤,直至到达译码树的最后一个节点。 [0003] 在这个过程中,只要路径分裂过程中所有的分支路径总和大于列表长度,就需要计算各路径的路径度量值,并基于路径度量值的大小,对各路径进行排序,仅保留小于列表长度对应数量的路径,在译码列表长度较长的情况下,会因为计算量高而增加译码复杂度。发明内容 [0004] 本申请的主要目的在于提供一种列表译码方法、装置、设备及存储介质,旨在解决译码复杂度较高的技术问题。 [0005] 为实现上述目的,本申请提供一种列表译码方法,所述列表译码方法包括以下步骤: [0007] 在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0008] 基于所述分裂路径确定译码结果。 [0009] 可选地,所述判断所述目标节点对应目标路径是否为不可靠路径的步骤之前,还包括: [0010] 基于高斯近似算法,计算各子信道的对数似然比的期望值; [0011] 基于所述期望值,从大到小对各所述子信道进行排序,并确定期望值排列在前预设位数的第一子信道; [0012] 确定期望值小于预设数值的第一子信道为不可靠子信道,其中,所述不可靠子信道与所述不可靠路径存在映射关系。 [0013] 可选地,所述预设数值是基于所述第一子信道中期望值最低的第二子信道对应期望值,以及预设信道数量调节因子确定的。 [0014] 可选地,所述基于所述分裂路径确定译码结果的步骤,包括: [0015] 确定所述分裂路径对应子节点的比特度量值; [0017] 更新未经过剪枝的剩余路径的路径度量值; [0018] 若所述子节点是所述译码树的终点,则基于所述路径度量值,确定译码结果。 [0019] 可选地,所述基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝的步骤之前,还包括: [0020] 基于预设信道容量,确定修剪掉正确路径的概率; [0021] 基于所述修剪掉正确路径的概率以及预设性能调节因子,确定比特度量阈值。 [0022] 可选地,所述基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝的步骤,包括: [0023] 若所述比特度量值小于所述预设比特度量阈值,则对所述分裂路径进行剪枝。 [0024] 可选地,所述判断所述目标节点对应目标路径是否为不可靠路径之前,还包括: [0025] 计算所述目标节点的对数似然比; [0026] 基于所述对数似然比,判断所述目标节点是否为冻结比特。 [0027] 可选地,所述更新未经过剪枝的剩余路径的路径度量值的步骤之后,还包括: [0028] 判断所述子节点是否为所述译码树的终点; [0029] 若所述子节点不是所述译码树的终点,则返回所述计算所述目标节点的对数似然比的步骤,直至所述子节点为所述译码树的终点,所述目标节点包括所述子节点。 [0030] 可选地,所述判断所述目标节点对应目标路径是否为不可靠路径的步骤之后,还包括: [0031] 在所述目标路径为不可靠路径的情况下,基于所述目标节点的对数似然比,确定所述目标节点的二进制值。 [0032] 可选地,所述更新未经过剪枝的剩余路径的路径度量值的步骤,包括以下至少一项: [0033] 基于所述目标节点的二进制值,更新所述不可靠路径的路径度量值; [0034] 在所述目标节点为冻结比特的情况下,基于所述冻结比特的二进制值,更新预设节点对应路径的路径度量值,所述预设节点是冻结比特; [0035] 基于所述比特度量值,更新剪枝过程中保留的分裂路径的路径度量值。 [0036] 可选地,所述基于所述路径度量值,确定译码结果的步骤,包括: [0037] 基于所述路径度量值,从大到小对所述剩余路径进行排序; [0038] 依次对所述剩余路径进行CRC校验,将首次通过所述CRC校验的路径作为译码结果。 [0039] 此外,为实现上述目的,本申请还提供一种列表译码装置,所述列表译码装置包括: [0040] 路径判断模块,用于在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径; [0041] 路径分裂模块,用于在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0042] 译码结果确定模块,用于基于所述分裂路径确定译码结果。 [0043] 此外,为实现上述目的,本申请还提供一种设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的列表译码程序,所述列表译码程序配置为实现如上所述的列表译码方法的步骤。 [0044] 此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有列表译码程序,所述列表译码程序被处理器执行时实现如上所述的列表译码方法的步骤。 [0045] 本申请通过在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。附图说明 [0046] 图1为本申请列表译码方法第一实施例的第一流程示意图; [0047] 图2为本申请列表译码方法第一实施例的第一场景示意图; [0048] 图3为本申请列表译码方法第二实施例的第二流程示意图; [0049] 图4为本申请列表译码方法第二实施例的第二场景示意图; [0050] 图5为本申请列表译码装置实施例的结构框图; [0052] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。 具体实施方式[0053] 应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。 [0054] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。 [0055] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。 [0056] 应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。本申请使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。例如,“包括以下至少一个:A、B、C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”,再如,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。 [0057] 应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。 [0058] 取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。 [0059] 需要说明的是,在本文中,采用了诸如S10、S20等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S20后执行S10等,但这些均应在本申请的保护范围之内。 [0060] 在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。 [0061] 参照图1,图1为本申请列表译码方法第一实施例的流程示意图。 [0062] 在第一实施例中,所述列表译码方法包括以下步骤: [0063] S10:在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径; [0064] 需要说明的是,本实施例的列表译码方法的执行主体为列表译码装置(或设备)。 [0065] 具体地,本实施例的列表译码方法的应用场景可以是无线设备之间进行数据传输的过程中,接收端对执行该列表译码方法对接收信号进行译码。 [0066] 对Polar码解码的SCL译码算法在短包通信中性能较好,但是实际在中等长度下,由于极化发生得相对较慢,导致信道极化不充分,容量损失尤其显著,为了防止这种容量损失,提出PAC(Polarization‑Adjusted Convolutional Code,极化调整卷积)码,仿真表明PAC码可以在列表译码(列表大小L=256)下以接近AWGN(Additive White Gaussian Noise,加性高斯近似白噪声)近似色散界的性能进行有效解码。 [0067] 由于工业场景下工业设备之间需要在短时间内传输大量指令,且编码后的指令的码长较长(码长大于1000),若采用传统的对Polar码的SCL译码算法:从根节点开始前向分裂路径,对译码树中每层节点的分支路径进行判断;只要路径分裂过程中所有的分支路径总和大于列表长度,就需要计算各路径的路径度量值,并基于路径度量值的大小,对各路径进行排序,仅保留小于列表长度对应数量的路径,则会因为计算量高而增加译码复杂度。因此,本实施例提供的列表译码方法也适用于上述工业设备在指令传输过程中编码后指令的译码。 [0068] 因此,上述接收信号可以是无线数据传输过程中通过信道传输的编码后的数据,还可以是上述工业设备之间通过信道传输的编码后的指令等。 [0069] PAC码由外卷积码和内极化码级联而成;对指令进行编码得到上述接收信号(PAC码形式的接收信号)的过程包括:将K位信息比特d=(d0,d1,…,dK‑1)经速率匹配映射到长度位N的向量v=(v0,v1,…,vN‑1);速率匹配是基于信息位索引集Α形成的,使得uA=d,并且在速率匹配之后,使用卷积生成多项式g=[g0,g1,…,gm]将向量v转换为其中gi∈{0,1};等价地,卷积变换可以用矩阵形式表示,其中上三角生成器矩阵G的行是通过移动向量g=[g0,g1,…,gm]形成的,行的数量等于消息块的长度。给定生成矩阵G,我们可以将消息块v编码为u=vG,最终通过极化编码矩阵变换到向量x=(x0,x1,…,xN‑1),将向量x=(x0,x1,…,xN‑1)通过信道传输,得到接收信号y。 [0070] 在对接收信号进行译码的过程中,需要从接收信号对应译码树的根节点开始前向分裂路径,对译码树中每层节点进行判断,因此,所述目标节点为当前判断的节点,具体地,所述目标节点可以是所述译码树的根节点,也可以是所述根节点对应子节点,为了便于说明,本实施例以目标节点为根节点进行举例。 [0071] 因此,参照图2,在对当前节点进行判断的过程中,若接收信号对应译码树的目标节点非冻结比特,则判断所述目标节点对应目标路径是否为不可靠路径。 [0072] 其中,在判断所述目标节点对应目标路径是否为不可靠路径之前,还计算所述目标节点的对数似然比(log‑likelihood ratio,LLR);基于所述对数似然比,判断所述目标节点是否为冻结比特。 [0073] 具体地,若对数似然比大于等于0,则认为该目标节点为冻结比特,冻结比特对应二进制值为0;反之,则认为该目标节点为非冻结比特,非冻结比特对应二进制值为0或者1。 [0074] 进一步地,所述不可靠路径是预先确定的,可以是预先确定所述译码树中所有的不可靠路径,将所有的不可靠路径放入一个集合,判断所述目标节点对应目标路径是否为不可靠路径时只需判断该目标路径是否在所述集合,或者可以基于预先确定的所述译码树中不可靠路径的标识,确定目标路径的标识是否与不可靠路径的标识一致等,在此不做限定。 [0075] 具体地,所述判断所述目标节点对应目标路径是否为不可靠路径的步骤之前,还可以基于高斯近似算法,计算各子信道的对数似然比的期望值;基于所述期望值,从大到小对各所述子信道进行排序,并确定期望值排列在前预设位数的第一子信道;确定期望值小于预设数值的第一子信道为不可靠子信道,其中,所述不可靠子信道与所述不可靠路径存在映射关系。 [0076] 需要说明的是,假设信道的噪声符合高斯近似(Gaussian approximation,GA),则经过信道传输的上述接收信号服从高斯分布,计算得到的各子信道的对数似然比也符合高斯分布,因此,各子信道的对数似然比的期望值mi为理论上各子信道的对数似然比的值;由于对数似然比能够用于评估各子信道传输比特的错误概率,若对数似然比的期望值越大,则错误概率越低,可靠性越高。 [0077] 基于所述期望值,从大到小对各所述子信道进行排序,并确定期望值排列在前预设位数的第一子信道,即,选取可靠性较高的前K个(前预设位数)子信道作为信息位(该信息位用于放置信息比特),其余的N‑K个子信道作为冻结位(该冻结位用于放置冻结比特)。 [0078] 进一步地,参照图2,确定期望值小于预设数值的第一子信道为不可靠子信道,可以理解,所述不可靠子信道传输的比特的错误概率较高,即,所述不可靠子信道对应的路径为不可靠路径。 [0079] 具体地,所述预设数值是基于所述第一子信道中期望值最低的第二子信道对应期望值,以及预设信道数量调节因子确定的。 [0080] 其中,所述第二子信道为上述信息位中期望值最低的(最不可靠的)子信道,假设所述第二子信道的LLR的期望值为mb;预设信道数量调节因子α决定了第二子信道的数量的多少;所述预设数值为α*mb(α>1)。 [0081] 可以理解,当mi小于α*mb(α>1)时,得到对应的第二子信道;若α取1,则不存在第二子信道;α取值越大,就会有越多的第二子信道;因此,需要在实际仿真过程中,采用蒙特卡洛模拟的方法寻找最优的α值,即,在不降低译码性能的情况下选择尽量大的α,才能够保证除第二子信道之外的第一子信道的可靠性。 [0082] 本实施例通过所述第一子信道中期望值最低的第二子信道对应期望值,以及预设信道数量调节因子确定的不可靠信道,对非冻结比特的目标节点对应目标路径的可靠性进行判断,从而对不可靠的目标路径进行筛选,提高判断准确性。 [0083] S20:在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0084] 目前,在对PAC码进行译码的过程中,若判断当前节点为冻结比特,则直接判定该节点为0;否则将分支路径分裂成两条路径,再分别对分裂出的两条路径进行判断,不断重复上述步骤,直至到达译码树的最后一个节点;在这个过程中,只要路径分裂过程中所有的分支路径总和大于列表长度,就需要计算各路径的路径度量值,并基于路径度量值的大小,对各路径进行排序,仅保留小于列表长度对应数量的路径(路径竞争过程),在译码列表长度较长的情况下,会因为计算量高而增加译码复杂度。 [0085] 而本实施例通过判断所述目标节点对应目标路径是否为不可靠路径,只在所述目标路径为不可靠路径的情况下,对该目标路径进行路径分裂,得到所述目标节点对应分裂路径,不会对可靠路径进行路径分裂,减少分裂路径的数量,避免了路径竞争过程中的大量排序操作。 [0086] S30:基于所述分裂路径确定译码结果。 [0087] 在得到分裂路径之后,对分裂路径对应子节点进行可靠性的判断,对分裂路径对应子节点进行可靠性判断的过程与上述对目标节点的可靠性判断方式相同,在此不在赘述,直至判断完所述译码树的所有节点,得到该译码树的译码结果。 [0088] 本实施例通过在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。进一步地,还通过所述第一子信道中期望值最低的第二子信道对应期望值,以及预设信道数量调节因子确定的不可靠信道,对非冻结比特的目标节点对应目标路径的可靠性进行判断,从而对不可靠的目标路径进行筛选,提高判断准确性。 [0089] 如图2所示,基于第一实施例提出本申请列表译码方法第二实施例,本实施例中,所述步骤S30包括: [0090] A1:确定所述分裂路径对应子节点的比特度量值; [0091] 首先,基于贝叶斯公式,可将子节点的错误概率表示为: [0092] [0093] 由于P(ui)对最大值没有影响,可以去除,并且对最优度量取对数时也同样不影响函数的变化趋势,故可将子节点对应路径度量值表示为: [0094] [0095] 在对第i个子节点ui进行译码的过程中,比特度量函数可以表示为: [0096] [0097] 对于具有均匀分布的二进制输入信道,所述分裂路径对应子节点的比特度量值可以进一步表示为: [0098] [0099] 其中,Li为接收信号的LLR,具体地,Li的表达式为: [0100] [0101] A2:基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝; [0102] 首先,对上述比特度量值取期望值,可以得到: [0103] [0104] 即,比特度量值的期望值为其信道对称容量 [0105] 进一步地,考虑充分极化理想情况下,对于无噪声子信道i,其信道容量 应为1;而对于错误分支,比特度量值为: [0106] [0107] 上式说明在理想情况下,正确路径的比特度量值应为1,错误路径的比特度量值为一个很大的负数,因此,可以根据比特度量值的大小来判断路径的好坏,并通过预先设置比特度量阈值mT来对分裂路径进行剪枝。 [0108] 具体地,在基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝的步骤之前,可以基于预设信道容量,确定修剪掉正确路径的概率;基于所述修剪掉正确路径的概率以及预设性能调节因子,确定比特度量阈值。 [0109] 其中,修剪掉正确路径的概率的表达式为: [0110] [0112] 基于上式可知比特度量阈值mT的表达式为:mT≥log2(P{φ(ui;y,ui‑1)≤mT})+1; [0113] 若令D表示特定SNR(Signal‑to‑Noise Ratio,信噪比)下近似色散界达到的FER(Frame error rate,帧差错率)性能,为了在保证FER性能的前提下尽可能多地剪枝,本实施例将上述修剪掉正确路径的概率维持在D以下,则能够降低修剪掉正确路径的概率,提升修剪掉错误路径的概率,提升路径剪枝的准确性,从而达到在尽可能多地剪枝的同时,还能够保证达到FER性能。 [0114] 因此,本实施例提出预设性能调节因子h(h大于0且小于1),用于调节该修剪掉正确路径的概率,例如,假设预设性能调节因子h为(1/10),则i‑1 [0115] P{φ(ui;y,u )≤mT}=D/10,计算得到 其中 [0116] 因此,对于(128,64(码率:128个里面有64个是信息位))的PAC码,可以得到不同信噪比下的动态剪枝阈值,如下表1所示。 [0117] 表1(128,64)Polar码动态剪枝阈值 [0118] SNR 1 1.5 2 2.5 3mT ‑6 ‑8 ‑10 ‑13 ‑17 [0119] 进一步地,参照图2,所述基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝的实施方式可以是:若所述比特度量值小于所述预设比特度量阈值,则对所述分裂路径进行剪枝。 [0120] 具体地,在译码过程中,丢弃比特度量值低于mT的路径,保留比特度量值大于等于mT的路径。 [0121] 通过设置比特度量阈值,来实时地对不可靠路径进行修剪,在降低复杂度的同时能够保证FER性能,提升译码准确性。 [0122] A3:更新未经过剪枝的剩余路径的路径度量值; [0123] 需要说明的是,第i个比特ui是卷积预编码后的比特。译码的过程中需要再卷积一次,即,L条路径分别需要一个移位寄存器,通过创建大小等于卷积码约束长度的L个向量(辅助移位寄存器)来计算ui,将译码出的比特存储至对应移位寄存器中。 [0124] 因此,参照图2,在对分裂路径进行剪枝之后,判断确定未经过剪枝的剩余路径,并计算该剩余路径的路径度量值,通过路径度量值判断该剩余路径的可靠性。 [0125] 令 表示对第l条路径的第i个比特ui的估计,其中l∈{1,2,…,L}。基于LLR的路径度量值(PM)用于测量每条路径的可靠性,以做出关于保留哪条路径和丢弃哪条路径的局部决策。 [0126] 处的路径度量值的表达式为: [0127] [0128] 其中, [0129] 上式PM值的表达式表明,当实际比特偏离了可能的比特值时,对应的路径将接受一个惩罚值|λi[l]|(对数似然比),因此,PM值越小代表路径越可靠。 [0130] 具体地,通过更新未经过剪枝的剩余路径的路径度量值,以基于剩余路径的路径度量值对确定译码结果,依此在译码树的每一层中保留最可靠的L条路径。 [0131] 参照图2,所述判断所述目标节点对应目标路径是否为不可靠路径的步骤之后,在所述目标路径为不可靠路径的情况下,基于所述目标节点的对数似然比,确定所述目标节点的二进制值。 [0132] 由于该不可靠路径对应目标节点的二进制值可能是1或者0,需要直接对该不可靠路径对应目标节点进行硬判决,即确定所述目标节点的二进制值。 [0133] 进一步地,参照图2,所述更新未经过剪枝的剩余路径的路径度量值的步骤,包括以下至少一项: [0134] 基于所述目标节点的二进制值,更新所述不可靠路径的路径度量值; [0135] 在所述目标节点为冻结比特的情况下,基于所述冻结比特的二进制值,更新预设节点对应路径的路径度量值,所述预设节点是冻结比特; [0136] 基于所述比特度量值,更新剪枝过程中保留的分裂路径的路径度量值。 [0137] 在所述更新未经过剪枝的剩余路径的路径度量值的步骤之后,还包括: [0138] 判断所述子节点是否为所述译码树的终点; [0139] 若所述子节点不是所述译码树的终点,则返回所述计算所述目标节点的对数似然比的步骤,直至所述子节点为所述译码树的终点,所述目标节点包括所述子节点。 [0140] A4:若所述子节点是所述译码树的终点,则基于所述路径度量值,确定译码结果。 [0141] 若所述子节点是所述译码树的终点,则译码结束,得到多条剩余路径,基于多条剩余路径的路径度量值,确定译码结果。 [0142] 具体地,所述基于所述路径度量值,确定译码结果的实施方式可以是:基于所述路径度量值,从大到小对所述剩余路径进行排序;依次对所述剩余路径进行CRC校验,将首次通过所述CRC校验的路径作为译码结果。 [0143] 若剩余路径数超过列表大小L,则进行基于路径度量值从大到小进行排序并选择前L个路径度量值的路径,否则无需排序;若所有路径均被丢弃(剩余路径为0),则宣告解码失败;若i=N,则译码结束,选择度量最大的那条路径。 [0144] 依次对所述剩余路径进行CRC校验,将首次通过所述CRC校验的路径作为译码结果。 [0145] 在本实施例中,通过设置比特度量阈值,来实时地对不可靠路径进行修剪,在降低复杂度的同时能够保证FER性能,提升译码准确性。 [0146] 为了验证上述列表译码算法的复杂度,在N=128,R=0.5(码率:128个里面有64个是信息位)的条件下进行仿真,选取的参数如下表2所示。 [0147] 表2仿真参数 [0148] List大小 32速率匹配方式 GA 路径修剪阈值mT [‑6 ‑8 ‑10 ‑13 ‑15] 卷积生成多项式 [1 0 1 1 0 1 1] [0149] 进一步地,将仿真结果与其他译码算法进行比较,其他译码算法包括PAC码的费诺译码算法、5G Polar码的CA‑SCL算法、改进前的PAC码的列表译码算法,以及AWGN近似色散界。 [0150] 在复杂度方面,采用f和g运算的总次数来衡量复杂度,传统SCL译码算法的复杂度最高为LNlog2(N)=28672,采用本实施例上述列表译码方法进行译码的平均复杂度如下表3所示,与改进前的SCL译码算法相比,复杂度降低了44%。 [0151] 表3,排序次数和复杂度 [0152]SNR(dB) 1 1.5 2 2.5 3 平均排序数(次)/帧 33.5453 32.6960 31.9154 29.4628 22.5328 平均复杂度(次)/帧 17354 16948 16035 14965 11880 [0153] 此外,采用本实施例上述列表译码方法进行译码的减少了路径竞争过程中的排序次数。改进前的PAC‑List算法在列表大小L=32的情况下,每次解码排序次数固定为59次,而本实施例提供的上述列表译码方法在译码过程中的平均所需排序数如表3所示,相较于改进前的59次有明显的减少。 [0154] 采用本实施例上述列表译码方法进行译码,在性能方面,相比剪枝前并没有下降,如图4所示,在列表大小L=256时仍可以达到FER性能,而5G Polar算法无法达到。 [0155] 综上所述,本实施例上述列表译码方法通过设置比特度量阈值,来实时地对不可靠路径进行修剪,还能够减少路径竞争过程中所需的排序次数,在降低复杂度的同时能够保证FER性能,提升译码准确性。 [0156] 此外,本申请实施例还提出一种列表译码装置,参照图5,所述列表译码装置包括: [0157] 路径判断模块10,用于在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径; [0158] 路径分裂模块20,用于在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0159] 译码结果确定模块30,用于基于所述分裂路径确定译码结果。 [0160] 本实施例通过在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。 [0161] 需要说明的是,上述装置中的各模块可用于实现上述方法中的各个步骤,同时达到相应的技术效果,本实施例在此不再赘述。 [0162] 参照图6,图6为本申请实施例方案涉及的硬件运行环境的设备的结构示意图。 [0163] 如图6所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。 用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口 1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI‑FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non‑volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器 1001的存储装置。 [0164] 本领域技术人员可以理解,图6中示出的结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。 [0166] 在图6所示的设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;所述设备通过处理器1001调用存储器1005中存储的列表译码程序,并执行以下操作: [0167] 在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径; [0168] 在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0169] 基于所述分裂路径确定译码结果。 [0170] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0171] 基于高斯近似算法,计算各子信道的对数似然比的期望值; [0172] 基于所述期望值,从大到小对各所述子信道进行排序,并确定期望值排列在前预设位数的第一子信道; [0173] 确定期望值小于预设数值的第一子信道为不可靠子信道,其中,所述不可靠子信道与所述不可靠路径存在映射关系。 [0174] 可选地,所述预设数值是基于所述第一子信道中期望值最低的第二子信道对应期望值,以及预设信道数量调节因子确定的。 [0175] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0176] 确定所述分裂路径对应子节点的比特度量值; [0177] 基于所述比特度量值和预设比特度量阈值,对所述分裂路径进行剪枝; [0178] 更新未经过剪枝的剩余路径的路径度量值; [0179] 若所述子节点是所述译码树的终点,则基于所述路径度量值,确定译码结果。 [0180] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0181] 基于预设信道容量,确定修剪掉正确路径的概率; [0182] 基于所述修剪掉正确路径的概率以及预设性能调节因子,确定比特度量阈值。 [0183] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0184] 若所述比特度量值小于所述预设比特度量阈值,则对所述分裂路径进行剪枝。 [0185] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0186] 计算所述目标节点的对数似然比; [0187] 基于所述对数似然比,判断所述目标节点是否为冻结比特。 [0188] 可选地,所述更新未经过剪枝的剩余路径的路径度量值的步骤之后,还包括: [0189] 判断所述子节点是否为所述译码树的终点; [0190] 若所述子节点不是所述译码树的终点,则返回所述计算所述目标节点的对数似然比的步骤,直至所述子节点为所述译码树的终点,所述目标节点包括所述子节点。 [0191] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0192] 在所述目标路径为不可靠路径的情况下,基于所述目标节点的对数似然比,确定所述目标节点的二进制值。 [0193] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下至少一项操作: [0194] 基于所述目标节点的二进制值,更新所述不可靠路径的路径度量值; [0195] 在所述目标节点为冻结比特的情况下,基于所述冻结比特的二进制值,更新预设节点对应路径的路径度量值,所述预设节点是冻结比特; [0196] 基于所述比特度量值,更新剪枝过程中保留的分裂路径的路径度量值。 [0197] 可选地,处理器1001可以调用存储器1005中存储的列表译码程序,还执行以下操作: [0198] 基于所述路径度量值,从大到小对所述剩余路径进行排序; [0199] 依次对所述剩余路径进行CRC校验,将首次通过所述CRC校验的路径作为译码结果。 [0200] 本实施例通过在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。 [0201] 此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有列表译码程序,所述列表译码程序被处理器执行时实现如下操作: [0202] 在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径; [0203] 在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径; [0204] 基于所述分裂路径确定译码结果。 [0205] 本实施例通过在接收信号对应译码树的目标节点非冻结比特的情况下,判断所述目标节点对应目标路径是否为不可靠路径;在所述目标路径为不可靠路径的情况下,对所述目标路径进行路径分裂,得到所述目标节点对应分裂路径;即,在所述目标路径为可靠路径情况下,则不对其进行路径分裂,减少分裂路径的数量,从而在基于分裂路径确定译码结果的过程中,能够减少计算量,从而降低译码复杂度。 [0206] 需要说明的是,上述计算机可读存储介质被处理器执行时还可实现上述方法中的各个步骤,同时达到相应的技术效果,本实施例在此不再赘述。 [0207] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。 [0208] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。 |