译码方法、装置、存储介质和计算机程序产品
技术领域
本申请涉及通信技术领域,尤其涉及一种译码方法、装置、存储介质和计算机程序产品。
背景技术
比特交织编码调制(Bit-Interleaved Coded Modulation,BICM)技术是一种编码和调制技术结合的信道调制技术。如图1所示,BICM系统的发送端主要包括编码器、交织器和调制器等,BICM系统中对应的接收端主要包括解调器、解交织器和译码器等。BICM技术可通过有更强纠错能力的编码来弥补由于信号集扩大造成的通信系统性能的降低,获得较大的编码增益,使得通信系统在没有占用额外频谱资源的情况下提高频谱和功率效率。
为了提高通信系统利用BICM技术在高斯白噪声信道和瑞利衰落信道下的性能。学者们又提出了比特交织编码调制迭代译码(Bit-Interleaved Coded Modulation withIterative Decoding,BICM-ID)技术。BICM-ID技术在BICM系统的接收端的解调器和译码器之间加入了迭代译码方法。由于在BICM-ID系统的接收端中传输的码字的长度都较长,比如,在DVB S2(即欧洲的一种数字视频广播二代标准)的长码码字的长度为64800比特,短码码字的长度为16200比特。解交织器用于按序存储经过解调后的比特软信息的值,交织器用于按序存储译码器输出的比特软信息。因此解交织器和交织器会消耗大量的存储资源,而且写入或读取解交织器和交织器中存储的比特软信息会花费较长的时间,从而增大了译码的延时,降低了译码的效率。
发明内容
本申请提供了一种译码方法、装置、存储介质和计算机程序产品,能够减小译码的延时,提高了译码的效率。
第一方面,本申请提供一种译码方法,包括:按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息,符号数据由发送端调制生成;根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器中;对变量节点存储器中的比特软信息进行更新,得到中间比特软信息;根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址,并依据读地址中的中间比特软信息确定解调先验信息;继续按照接收顺序对符号数据进行带先验信息的解调,带先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件,预设条件表征译码正确率达到期望正确率。
利用解交织地址计算规则和交织地址计算规则,得到将比特软信息写入变量节点存储器中的写地址,以及从变量节点存储器中读取用于确定解调先验信息的校验更新后的比特软信息的读地址。从而利用变量节点存储器的读地址中的中间比特软信息,确定解调先验信息,以便进行下一次解调。本申请实施例中的解交织地址计算规则和交织地址计算规则采用逻辑计算搭建,省去了接收端中的交织器和解交织器,减小了接收端的硬件面积,而且节省了将比特软信息写入交织器和将比特软信息写入解交织器所花费的时间和占用的资源,示例性的,减小了硬件实现资源,并提高误码性能。从而减小了译码的延时,提高了译码的效率。
在一种可能的设计中,对变量节点存储器中的比特软信息进行更新,包括以下至少一项:利用校验节点存储器中的校验节点信息对变量节点存储器中的比特软信息进行更新,校验节点信息用于表征某个符号数据对应的多个比特软信息之间的约束关系;或者,计算变量节点存储器中地址相同的带先验信息的解调得到的比特软信息和初始比特软信息的第一差值,初始比特软信息为初次解调得到的比特软信息;利用第一差值对中间比特软信息进行更新。
在一种可能的设计中,依据读地址中的中间比特软信息确定解调先验信息,包括:计算读地址相同的中间比特软信息和初始比特软信息的第二差值;将第二差值作为解调先验信息。
可利用初始比特软信息,对变量节点存储器中的中间比特软信息进行更新,从而减小变量节点存储器中存储的中间比特软信息可能会产生的误差。还可利用初始比特软信息参与解调先验信息的生成,从而减小生成解调先验信息可能会产生的误差。进而提高译码的精确度。
在一种可能的设计中,一个读地址中存储有多个比特软信息;依据读地址中的中间比特软信息确定解调先验信息包括:一次性读取一个读地址中的多个中间比特软信息;分别计算读地址中的多个中间比特软信息与对应的多个初始比特软信息的第二差值;将多个第二差值作为多个中间比特软信息分别对应的多个解调先验信息。
一次性读取变量节点存储器中一个读地址的多个比特软信息,连续进行解调操作,减少对变量节点存储器的读取次数和写入次数,节省了变量节点存储器读写操作所花费的时间,从而加快了外迭代的速度,提高了译码的效率。
在一种可能的设计中,更新的比特软信息满足预设条件,包括:更新的比特软信息与校验矩阵满足校验方程;或者,更新的比特软信息的更新次数达到预设最大迭代次数。
在一种可能的设计中,上述译码方法还包括:依据中间比特软信息对校验节点信息进行更新,得到更新的校验节点信息;按照更新的校验节点信息对中间比特软信息进行校验更新。
在一种可能的设计中,按照接收顺序对符号数据进行带先验信息的解调,包括:在依据中间比特软信息对校验节点信息进行更新,以及依据更新后的校验节点信息对中间比特软信息进行校验更新的过程占用的多个时钟中的空闲时钟内,按照接收顺序对符号数据进行带先验信息的解调。
在依据中间比特软信息对校验节点信息进行更新,以及依据更新后的校验节点信息对中间比特软信息进行校验更新的过程占用的多个时钟中的空闲时钟内,按照接收顺序对符号数据进行带解调先验信息的解调。从而使得内迭代可以与外迭代同时进行,充分利用了变量节点存储器的所有带宽,进一步提高译码的效率以及资源的利用率。变量节点存储器存储的比特软信息的读写可交错进行,因此可采用单端口的变量节点存储器,相对于双端口的变量节点存储器,单端口的变量节点存储器的面积更小,减小了变量节点存储器的面积,从而简化了接收端的结构。
在一种可能的设计中,先进行N次内迭代,N次内迭代的过程中不进行外迭代;在完成N次内迭代后,触发启动外迭代。
信道条件比较差的条件下,初始的多次内迭代生成的解调先验信息错误较多,将错误较多的解调先验信息提供给外迭代即提供给解调器进行解调,会降低译码的精确度。因此,可先进行N次内迭代,N次内迭代时并不进行外迭代。待完成N次内迭代后,利用N次内迭代之后进行的内迭代生成的解调先验信息进行外迭代,即提供给解调器进行解调。从而提高译码的精确度
第二方面,本申请提供一种译码装置,包括解调器、地址计算单元、变量节点存储器、更新单元和计算单元;解调器,用于按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息,符号数据由发送端调制生成;地址计算单元,用于根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器中;更新单元,用于对变量节点存储器中的比特软信息进行更新,得到中间比特软信息;地址计算单元,还用于根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址;计算单元,用于依据读地址中的中间比特软信息确定解调先验信息;解调器,还用于继续按照接收顺序对符号数据进行带先验信息的解调,带先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件,预设条件表征译码正确率达到期望正确率。
在一种可能的设计中,上述译码装置还包括校验节点存储器,校验节点存储器中存储有与校验矩阵对应的校验节点信息;更新单元具体用于利用校验节点存储器中的校验节点信息对变量节点存储器中的比特软信息进行校验更新,校验节点信息用于表征某个符号数据对应的多个比特软信息之间的约束关系。
在一种可能的设计中,更新单元具体用于:计算变量节点存储器中地址相同的带先验信息的解调得到的比特软信息和初始比特软信息的第一差值,初始比特软信息为初次解调得到的比特软信息;利用第一差值对中间比特软信息进行更新。
在一种可能的设计中,计算单元具体用于:计算读地址相同的中间比特软信息和初始比特软信息的第二差值;将第二差值作为解调先验信息。
在一种可能的设计中,一个读地址中存储有多个比特软信息;计算单元具体用于:一次性读取一个读地址中的多个中间比特软信息;分别计算读地址中的多个中间比特软信息与对应的多个初始比特软信息的第二差值;将多个第二差值作为多个中间比特软信息分别对应的多个解调先验信息。
在一种可能的设计中,更新的比特软信息满足预设条件,包括:更新的比特软信息与校验矩阵满足校验方程;或者,更新的比特软信息的更新次数达到预设最大迭代次数。
在一种可能的设计中,更新单元还用于:依据中间比特软信息对校验节点信息进行更新,得到更新的校验节点信息;按照更新的校验节点信息对中间比特软信息进行校验更新。
在一种可能的设计中,解调器还用于:在依据中间比特软信息对校验节点信息进行更新,以及依据更新后的校验节点信息对中间比特软信息进行校验更新的过程占用的多个时钟中的空闲时钟内,按照接收顺序对符号数据进行带先验信息的解调。
第三方面,本申请提供一种译码装置,译码装置包括:输入接口和处理器,输入接口,用于按照接收顺序接收符号数据,符号数据由发送端调制生成;处理器被配置为读取存储器中的软件指令,执行软件指令以实现如下操作:按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息;根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器中;对变量节点存储器中的比特软信息进行更新,得到中间比特软信息;根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址,并依据读地址中的中间比特软信息确定解调先验信息;继续按照接收顺序对符号数据进行带先验信息的解调,带先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件,预设条件表征译码正确率达到期望正确率。
第四方面,本申请提供一种计算机可读存储介质,其特征在于,存储介质上存储有程序,程序被处理器执行时实现上述技术方案中的译码方法。
第五方面,本申请提供一种计算机程序产品,计算机程序产品中包含有指令,当指令在计算机或处理器上运行时,使得计算机或处理器执行上述技术方案中的译码方法。
附图说明
图1为本申请实施例中的译码场景应用示意图;
图2为本申请实施例中一种译码的方法的流程图;
图3为本申请实施例中一种变量节点存储器的数据存储示意图;
图4为本申请实施例中的变量节点存储器中的比特软信息进行读写的举例示意图;
图5为本申请一实施例中一种译码装置的具体实现的示意图;
图6a为交织置换后的数据的读写的示例意图;
图6b为解交织置换后的数据的读写的示例示意图;
图7为本申请一实施例中一种译码装置的结构示意图;
图8为本申请一实施例中一种译码装置的结构示意图。
具体实施方式
本申请实施例提供的译码的方法、装置、译码装置和存储介质应用于比特交织编码调制的迭代译码场景中。图1为本申请实施例中的译码场景应用示意图。如图1所示,译码装置接收通过信道的符号数据,并将符号数据输入解调器进行解调,得到比特软信息。通过交织/解交织计算单元对比特软信息进行解交织地址计算,相当于对比特软信息进行解交织。以将接收的符号数据对应的比特软信息的顺序打乱,减弱比特软信息之间序列的相关性,避免译码中的突发错误对译正确率的不良影响。将比特软信息按照解交织后的顺序写入变量节点存储器。通过交织/解交织计算单元,可计算得到每个比特软信息的写地址。将比特软信息写入变量节点存储器中后,可对变量节点存储器中的比特软信息进行更新得到中间比特软信息,并将中间比特软信息存储在变量节点存储器中。还可利用变量节点存储器中的中间比特软信息对校验节点存储器中存储的校验节点信息进行更新。中间比特软信息为写入变量节点存储器中的比特软信息。通过交织/解交织计算单元可计算得到中间比特软信息的读地址。读地址即为需从变量节点存储器中读取的中间比特软信息的存储地址。依次读取读地址的顺序为变量节点存储器中中间比特软信息的顺序经过交织后的顺序。经过交织后的中间比特软信息的顺序与符号数据的接收顺序一致。利用读地址从变量节点存储器中读取出中间比特软信息,依据中间比特软信息得到下一次解调需要的解调先验信息,继续开始新的一轮译码过程。其中,解调器对符号数据进行解调,得到比特软信息,将比特软信息写入变量节点存储器,变量节点存储器中的比特软信息得到更新,更新后的比特软信息即中间比特软信息参与解调先验信息的生成,解调先验信息结合符号数据再次进行解调的迭代过程可称为外迭代。译码器可包括变量节点存储器和校验节点存储器,校验节点存储器存储的校验节点信息对变量节点存储器中的比特软信息进行校验更新,对应的,变量节点存储器中的比特软信息对校验节点存储器存储的校验节点信息进行更新,变量节点存储器的比特软信息与校验节点存储器存储的校验节点信息之间相互的更新迭代可称为内迭代。
图2为本申请实施例中一种译码的方法的流程图。译码具体可为比特交织编码调制迭代译码(Bit-Interleaved Coded Modulation with Iterative Decoding,BICM-ID)。译码的方法可由译码装置执行。如图2所示,译码的方法可包括步骤S101至步骤S107。
在步骤S101中,按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息。
其中,译码装置接收发射端发射的经过信道的符号数据。符号数据为发射端进行调制生成的。具体的,符号数据可为星座图符号。一个符号数据占用的比特数与发射端的调制方法具有对应关系。比如,一个符号数据可占用2比特或占用6比特。译码装置按照符号数据发送来的先后顺序接收符号。在一种具体的实施方式中,可按照译码装置接收符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息。比如,符号数据包括s1、s2、s3和s4,且接收顺序为s1、s2、s3、s4。则可将s1、s2、s3、s4依次输入解调器进行解调,得到与符号数据s1对应的比特软信息b0和b1,与符号数据s2对应的比特软信息b2和b3,与符号数据s3对应的比特软信息b4和b5,与符号数据s4对应的比特软信息b6和b7。且解调器输出比特软信息的顺序为b0、b1、b2、b3、b4、b5、b6和b7。
比特软信息可视为解调后在外迭代过程中的输入参数,比如,比特软信息可为似然比等。为了便于计算,比特软信息可为根据似然比计算得到的对数似然比。下面以BICM-ID为例对符号数据的解调进行说明。
具体的,译码装置可利用如下的公式(1)至公式(11)对符号数据进行解调:
yk=ρk·sk+nk (1)
其中,yk为译码装置接收的符号数据。ρk为信道衰落系数。sk为发射端发射的符号数据。nk为加性高斯噪声。
第一次解调时,没有解调先验信息,可以假设组成符号数据sk的m个比特取0和1的先验概率相等,得到解调器的外信息为:
其中为符号中第i个比特取值为j的所有调制符号的集合,j为0或1。p(yk|sk)为信道概率密度函数。
其中σ2为噪声方差。为第k个符号数据sk中第i个比特的初始对数似然比。若表示第i个比特为0的概率更大;若表示第i个比特为1的概率更大。
对于第二次、第三次等后续的解调称为有先验信息的解调,此时组成符号数据的各比特取0和取1的先验概率不一定相等,此时得到解调器的外信息为:
其中,为组成符号数据sk的第i个比特的先验概率,其值可由第t-1次外迭代时译码器输出的外信息得到,即为解调器的符号数据各比特对应的解调先验信息,定义为:
其中,
结合公式(4)至公式(7),在第t次解调且有解调先验信息的参与时,可得到公式(8)如下:
在实际解调计算过程中,为了便于译码装置硬件的计算,可利用Max-Log近似方法简化上述公式,具体的,Max-Log近似方法可参见下面的公式(9),利用Max-Log近似方法简化后具有解调先验信息的对数似然比计算可参见下面的公式(10),利用Max-Log近似方法简化后无解调先验信息的对数似然比计算可参见下面的公式(11)。
在步骤S102中,根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器中。
其中,解交织地址计算规则可视为解交织器中的解交织算法,经解交织地址计算规则计算出的写地址的顺序与经过解交织器解交织后的排列顺序一致。解交织地址计算规则具体可以用解交织算法函数表示。写地址为比特软信息写入到变量节点存储器中的地址。
比如,解调得到的比特软信息为ui,交织地址计算函数用π表示,解交织地址计算函数为交织地址计算函数的反函数,解交织地址计算函数用π-1表示,则经过解交织后的比特软信息通过换算,yπ(i)=ui,π(i)即为计算得到的写地址。也就是说,解交织前的第i个比特软信息为解交织写入到变量节点存储器中的第π(i)个地址中的比特软信息。也即变量节点存储器中存储的地址为π(i)的比特软信息为解调后的第i个比特软信息。
在一个示例中,变量节点存储器的一个存储地址中可以存储一组比特软信息,本实施例对这一组比特软信息的数目并不限定。比如,可在变量节点存储器的一个存储器中存储连续的360个比特软信息。
在步骤S103中,对变量节点存储器中的比特软信息进行更新,得到中间比特软信息。
中间比特软信息为更新后的比特软信息。译码器可包括变量节点存储器和校验节点存储器,校验节点存储器中存储有与校验矩阵对应的校验节点信息。同一符号数据解调得到的比特软信息彼此相互约束。校验节点信息用于表征某个符号数据对应的多个比特软信息之间的约束关系。初始的校验节点信息可均设为0。在一种可选的方案中,可利用校验节点存储器中的校验节点信息对变量节点存储器中的比特软信息进行校验,并依据校验结果对变量节点存储器中的比特软信息进行更新。校验节点信息与比特软信息之间可进行迭代运算,每次迭代运算得到的比特软信息均继续与校验矩阵进行向量运算,并根据运算结果判断是否满足校验方程。通过校验节点信息对比特软信息的多次更新,使得比特软信息与校验矩阵的计算逐渐满足校验方程,即使得比特软信息逐渐接近正确的比特软信息。因此将校验节点信息对比特软消息的更新称为校验更新。需要说明的是,变量节点存储器中的比特软信息或中间比特软信息也可对校验节点存储器中的校验节点信息进行更新。再利用更新后的校验节点信息对中间比特软信息进行校验更新。重复中间比特软信息对校验节点信息的更新,以及校验节点信息对中间比特软信息的更新,直至中间比特软信息与校验矩阵满足校验方程,停止内迭代,校验方程表征译码正确率达到期望译码正确率。或者,中间比特软信息更新的次数达到预设最大迭代次数,停止内迭代。也就是说,内迭代次数达到预设最大迭代次数,停止内迭代。需要说明的是,外迭代随着内迭代的停止而停止。
在一个示例中,译码器可采用低密度奇偶校验(Low Density Parity Check,LDPC)译码。LDPC译码算法包括置信传播(Belief Propagation,BP)算法、MinSum算法等。LDPC译码算法中,先读取变量节点存储器中存储的比特软信息或中间比特软信息,读取变量节点存储器中存储的比特软信息对校验节点存储器中的校验节点信息进行更新的过程,称为前向过程。利用校验节点存储器中的校验节点信息对变量节点存储器中存储的比特软信息进行校验更新,并将校验更新后的中间比特软信息写入变量节点存储器的过程,称为后向过程。下面以BP算法为例进行译码器中内迭代的说明。
首先初始化变量节点存储器中存储的比特软信息和校验节点存储器中存储的校验节点信息。可参照公式(14)和公式(15)初始化变量节点存储器中存储的比特软信息和校验节点存储器中存储的校验节点信息。
其中,为第一次内迭代中变量节点存储器中存储的第n个比特软信息返回给校验节点存储器中存储的第m个校验节点信息的信息。为第一次内迭代中校验节点存储器中存储的第m个校验节点信息返回给变量节点存储器中存储的第n个比特软信息的信息。N(m)为与校验节点存储器中存储的第m个校验节点信息连接的变量节点存储器中存储的比特软信息的集合。M(n)为与变量节点存储器中存储的第n个比特软信息连接的校验节点存储器中存储的校验节点信息的集合。un为发送端发送的信元信息中第n个比特。yn为译码装置接收的信元信息中第n个比特。
依据下面的公式(16)至公式(19),对变量节点存储器中存储的每一个比特软信息和校验节点存储器中存储的每一个校验节点信息进行计算。
其中sgn(x)定义为,若x>1,则sgn(x)=1,否则sgn(x)=0。
n'为除n外的N(m)中的所有值。
根据上述方式,可以得到公式(20)和公式(21)如下:
其中,为对λn(un)的硬判值。λn(un)为迭代后的比特un的比特软信息。
在一种可选的方案中,若满足校验方程则停止内迭代,H为校验矩阵。或者,内迭代在相应时间内还未满足校验方程,则可在内迭代的次数达到预设的最大迭代次数时,停止内迭代。在一个示例中,外迭代可随着内迭代的停止而停止。
在内迭代过程中对每个校验节点信息Λm→n(un)依次进行运算,同时校验更新与此校验节点信息相连的比特软信息λn(un)的值,而校验更新后的比特软信息λn(un)可以在内迭代过程中马上用于其他校验节点信息的更新,从而加快了收敛速度,减少了迭代次数。
在一个示例中,LDPC译码算法可具体为准循环低密度奇偶校验(Quasi-cyclicLow Density Parity Check,QC-LDPC)算法。图3为本申请实施例中一种变量节点存储器的数据存储示意图。对于利用QC-LDPC形式的纠错码,设码长为N,校验位长为M,每个单位循环矩阵为B×B。N、M和B均为正整数。变量节点存储器的每一个存储地址存储B个比特软信息,则共有N/B个存储地址存储比特软信息,N/B为正整数。如图3所示,变量节点存储器中存储地址0至存储地址N/B-1,每个存储地址中存储B个比特软信息。比如,存储地址0存储比特软信息D0至比特软信息DB-1。
QC-LDPC的码一般都是采用并行迭代结构,即一次更新可对B个比特软信息同时完成更新,与变量节点存储器的数据存储方式相对应,完成校验节点信息的更新,需要经过M/B次更新完成一次完整的迭代译码。
在步骤S104中,根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址,并依据读地址中的中间比特软信息确定解调先验信息。
在变量节点存储器中的存储地址存储的比特软信息更新后,解调器还可从变量节点存储器中读取更新后的比特软信息即中间比特软信息,从而根据中间比特软信息得到参与下一次解调的解调先验信息。其中,解调先验信息指上一次外迭代的反馈信息。
由于再次进行解调时依然按照与首次解调相同的顺序对符号数据进行解调,因此需要按照符号数据的接受顺序从变量节点存储器中读出符号数据对应的中间比特软信息,经过交织地址计算规则可以计算出符号数据对应的中间比特软信息在变量节点存储器中的读地址。读地址为从变量节点存储器中读取中间比特软信息的地址。从读地址读取出的中间比特软信息参与解调先验信息的计算。
输入解调器的解调先验信息的顺序与现有技术中更新后的比特软信息从交织器中的输出的顺序一致。可根据交织地址计算规则,得到当前需要读取的中间比特软信息在变量节点存储器中的读地址。
比如,交织地址计算函数用π表示,解交织地址计算函数为交织地址计算函数的反函数,解交织地址计算函数用π-1表示。变量节点存储器中存储的中间比特软信息为si,即解交织后的第i个中间比特软信息为si。经过交织置换后的比特软信息通过换算,也就是说,π-1(i)为需要读取的中间比特软信息的读地址,交织置换后的第π-1(i)个中间比特软信息为解交织置换后的第i个中间比特软信息。即变量节点存储器中存储的第i个中间比特软信息为交织置换后的第π-1(i)个中间比特软信息。在一种可选的方案中,交织置换后按读顺序读取的第1组比特软信息对应的是变量节点存储器中存储的第27组比特软信息。
比如,图4为本申请实施例中的变量节点存储器中的比特软信息进行读写的举例示意图。如图4所示,信元存储器中的符号数据依次为s0、s1、s2和s3,其中,每个符号数据对应两比特,每个符号数据解调后包括两个比特软信息。符号数据s0对应软比特信息b0和b1,符号数据s1对应软比特信息b2和b3,符号数据s2对应软比特信息b4和b5,符号数据s3对应软比特信息b6和b7。比特软信息经过解交织置换后,写入变量节点存储器的顺序为b0、b2、b4、b6、b1、b3、b5和b7。经过交织置换后,从变量节点存储器中读取比特软信息的顺序为b0、b1、b2、b3、b4、b5、b6和b7。比如,如图4所示,变量节点存储器中的地址从上至下依次为地址1至地址8,则软比特信息b0的读地址和写地址均为地址1,软比特信息b1的读地址和写地址均为地址5。
在一个示例中,译码装置为依据所述中间比特软信息对所述校验节点信息进行更新,以及依据所述更新后的校验节点信息对所述中间比特软信息进行校验更新的过程提供多个时钟,即为内迭代过程分配了多个时钟,但在这多个时钟中存在空闲时钟,即没有进行依据所述中间比特软信息对所述校验节点信息进行更新和依据所述更新后的校验节点信息对所述中间比特软信息进行校验更新的过程的时钟,即没有运行进程的时钟为空闲时钟。在本示例中,可以在依据中间比特软信息对校验节点信息进行更新,以及依据更新后的校验节点信息对中间比特软信息进行校验更新的过程占用的多个时钟中的空闲时钟内,按照接收顺序对符号数据进行带解调先验信息的解调。从而使得内迭代可以与外迭代同时进行,充分利用了变量节点存储器的所有带宽,进一步提高译码的效率以及资源的利用率。变量节点存储器存储的比特软信息的读写可交错进行,因此可采用单端口的变量节点存储器,相对于双端口的变量节点存储器,单端口的变量节点存储器的面积更小,减小了变量节点存储器的面积,从而简化了译码装置的结构。而且,在本申请实施例中,不需要改变原有的译码器的结构,也不需要新增加译码器所占用的资源,进一步节省了译码装置所占用的资源。
在步骤S105中,继续按照接收顺序对符号数据进行带解调先验信息的解调,带解调先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件。
解调先验信息是上一次外迭代生成的。解调器接收的符号数据是译码装置当前新接收的。解调器对解调先验信息和新接收的符号数据进行解调,得到解调后的符号数据的比特软信息,再次执行步骤S101至步骤S105,直至更新的比特软信息满足预设条件。预设条件表征译码正确率达到期望正确率。期望正确率可根据工作场景和工作需求设定,在此并不限定。
在一个示例中,当所述更新的比特软信息与校验矩阵满足校验方程时,停止步骤S101至步骤S105的迭代执行。在另一个示例中,当更新的比特软信息的更新次数达到预设最大迭代次数时,即内迭代的次数达到预设最大迭代次数时,停止步骤S101至步骤S105的迭代执行。
在一个示例中,在信道条件比较差的条件下,初始的多次内迭代生成的解调先验信息错误较多,将错误较多的解调先验信息提供给外迭代即提供给解调器进行解调,会降低译码的精确度。因此,可先进行N次内迭代,N次内迭代时并不进行外迭代。待完成N次内迭代后,利用N次内迭代之后进行的内迭代生成的解调先验信息进行外迭代,即提供给解调器进行解调。从而提高译码的精确度。比如,先进行5~10次内迭代,在这5~10次内迭代中,并不进行外迭代。在这5~10次内迭代后,再开始进行外迭代。
在本申请实施例中,利用解交织地址计算规则和交织地址计算规则,得到将比特软信息写入变量节点存储器中的写地址,以及从变量节点存储器中读取用于确定解调先验信息的校验更新后的比特软信息的读地址。从而利用变量节点存储器的读地址中的中间比特软信息,确定解调先验信息,以便进行下一次带先验信息的解调。本申请实施例中的解交织地址计算规则和交织地址计算规则采用逻辑计算搭建,省去了译码装置中的交织器和解交织器,减小了译码装置的硬件面积,而且节省了将比特软信息写入交织器和将比特软信息写入解交织器所花费的时间和占用的资源,示例性的,减小了硬件实现资源,并提高误码性能。并且减小了译码的延时,提高了译码的效率。
图5为本申请一实施例中一种译码装置200的具体实现的示意图。如图5所示,在译码装置200中,译码的外迭代和内迭代持续进行,直至译码结束。
如图5所示,译码装置200接收到发送端发送的且经过信道传输的符号数据,将符号数据存储在信元存储器201中。信元存储器201向解调器202输入译码装置200接收的符号数据。在第一次外迭代中,先验信息存储器208中还未存储有解调先验信息。也就是说,在第一次外迭代中,对译码装置200接收的符号数据进行解调,得到比特软信息。比特软信息通过交织/解交织地址计算单元203进行解交织的写地址计算,得到比特软信息写入变量节点存储器205的写地址。
变量节点存储器205中的比特软信息与校验节点存储器206中的校验节点信息利用彼此相互进行更新和校验更新。应当理解,这里的利用彼此相互进行更新和校验更新具体是指校验节点存储器206中的校验节点信息对变量节点存储器205中的比特软信息进行校验更新;对应的,变量节点存储器205中的比特软信息也对校验节点存储器206中的校验节点信息进行更新。
通过交织/解交织地址计算单元203进行交织的读地址计算,得到从变量节点存储器205中读取中间比特软信息的读地址。不需要经过交织器,即可在变量节点存储器205读取对应的参与解调先验信息确定的中间比特软信息。
软信息存储器207中存储的是初始存储入变量节点存储器205中的比特软信息。即软信息存储器207中存储的是还未经校验节点存储器206中检验节点信息校验更新的比特软信息。计算变量节点存储器205中地址相同的带解调先验信息的解调得到的比特软信息和初始比特软信息的第一差值。可将第一差值作为对中间比特软信息进行更新所需的更新增量。利用第一差值对中间比特软信息进行更新。其中,初始比特软信息即为初次解调得到的比特软信息。在一个示例中,可设置更新量存储器209,在更新量存储器209中存储该更新增量即第一差值。利用更新增量即第一差值对中间比特软信息进行更新。更新后的中间比特软信息与校验节点信息可进行内迭代运算。
也可不设置软信息存储器207,而是实时利用信元存储器201中的符号数据计算初始比特软信息,再利用初始比特软信息进行更新增量即第一差值的计算。
在一个示例中,为下一次外迭代的解调器202提供的解调先验信息的计算,具体可计算读地址相同的中间比特软信息和初始比特软信息的第二差值。将第二差值作为解调先验信息。在一个示例中,可设置先验信息存储器208,在先验信息存储器208中存储解调先验信息。在下一次外迭代进行解调时,可读取先验信息存储器208中存储的解调先验信息,利用解调先验信息和输入到解调器202中的符号数据进行带先验信息的解调。
在本申请实施例中,可利用初始比特软信息,对变量节点存储器205中的中间比特软信息进行更新,从而减小变量节点存储器205中存储的中间比特软信息可能会产生的误差。还可利用初始比特软信息参与解调先验信息的生成,从而减小生成解调先验信息可能会产生的误差。进而提高译码的精确度。
在一个示例中,可在变量节点存储器205中的一个读地址中存储多个比特软信息。在读取比特软信息时,可将这一个读地址中的多个比特软信息一次性读取,并分别计算读地址中的多个中间比特软信息与对应的多个初始比特软信息的第二差值。将多个第二差值作为多个中间比特软信息分别对应的多个解调先验信息,将这一个存储地址中的多个比特软信息分别对应的解调先验信息连续输入解调器202,从而进行解调。在本示例中,一次性读取变量节点存储器205中一个存储地址的多个比特软信息,连续进行解调操作,减少对变量节点存储器205的读取次数和写入次数,节省了变量节点存储器205读写操作所花费的时间,从而加快了外迭代的速度,提高了译码的效率。
需要说明的是,发送端的调制模式与译码装置的解调模式相对应。在一个示例中,发送端的解调模式可以为QAM调制、PSK调制或其他调制方式,在此不做限定。在一个示例中,交织地址计算规则可以为比特交织地址计算规则、块交织地址计算规则或校验位交织地址计算规则等。对应的,解交织地址计算规则可以为比特解交织地址计算规则、块解交织地址计算规则或校验位解交织地址计算规则等。
下面以ATSC3.0标准中码长为64800,调制模式为64QAM,码率为6/15的LDPC码为例(以下简称6/15LDPC长码),介绍本申请实施例中译码方法的具体实施过程。
6/15LDPC长码的交织种类包含校验位交织(即parity interleaving),组间交织(即group-wise interleaving)和块交织(即block interleaving)三种。
其中,校验位交织的作用是使校验位的位置顺序与信息位的位置顺序相同,便于并行译码。经过校验位交织后,校验位也变为360*360的单位循环移位矩阵。下文中的数据指比特软信息。
组间交织是以360个数据为一组,共180个数据组,按照标准中的解交织置换规则或交织置换规则进行数据组与数据组之间的置换。解交织置换规则与解交织地址计算规则对应,交织置换规则与交织地址计算规则对应。置换公式可为Yj=Xπ(j),0≤j<180,其中Yj为交织后的数据组,Xπ(j)为交织前的数据组,π为交织置换规则。表一为本申请实施例中6/15LDPC长码按照块交织置换后的位置顺序表格。如表一所示,表中从左到右从上到下是Yj,0≤j<180,的位置顺序,表格中的数值为对应的Xπ(j)中π(j)的值,即组间交织置换后第0组的数据对应的是组间交织置换前第29组的数据,组间交织置换后第1组的数据对应的是组间交织置换前第17组的数据,组间交织置换后的第2组数据对应的是组间交织置换前第38组的数据,其余组间交织置换后的数据可参照表一,依次类推。
表一
29 |
17 |
38 |
37 |
27 |
43 |
31 |
35 |
16 |
46 |
44 |
9 |
23 |
1 |
34 |
45 |
14 |
18 |
156 |
19 |
22 |
40 |
50 |
24 |
56 |
49 |
26 |
42 |
69 |
47 |
59 |
61 |
66 |
52 |
64 |
65 |
67 |
54 |
170 |
68 |
132 |
51 |
70 |
41 |
21 |
5 |
160 |
7 |
13 |
55 |
62 |
53 |
63 |
58 |
3 |
167 |
71 |
57 |
151 |
60 |
36 |
25 |
74 |
39 |
32 |
72 |
85 |
86 |
107 |
113 |
48 |
88 |
2 |
129 |
137 |
20 |
73 |
166 |
75 |
77 |
142 |
174 |
15 |
149 |
28 |
145 |
92 |
169 |
30 |
133 |
163 |
119 |
82 |
176 |
152 |
134 |
139 |
148 |
164 |
99 |
173 |
104 |
83 |
106 |
112 |
135 |
153 |
0 |
128 |
144 |
98 |
171 |
94 |
97 |
143 |
110 |
118 |
127 |
84 |
79 |
108 |
126 |
131 |
93 |
111 |
91 |
4 |
125 |
162 |
157 |
158 |
109 |
140 |
123 |
154 |
150 |
80 |
11 |
12 |
146 |
96 |
81 |
165 |
8 |
89 |
138 |
105 |
141 |
103 |
6 |
100 |
161 |
172 |
78 |
101 |
115 |
179 |
147 |
116 |
136 |
122 |
87 |
33 |
130 |
124 |
175 |
120 |
90 |
102 |
10 |
114 |
159 |
76 |
177 |
178 |
121 |
168 |
95 |
117 |
155 |
|
|
|
|
6/15LDPC长码的块交织是行列交织。图6a为交织置换后的数据的读写的示例意图。图6b为解交织置换后的数据的读写的示例示意图。如图6a和图6b所示,交织置换过程是列写入,行读出;而解交织置换过程是行写入,列读出。解交织置换过程中行写入的6个数据正好对应一个符号数据。解交织置换过程是按照块解交织、组间解交织、校验位解交织的顺序进行的。
在一个示例中,可在变量节点存储器的每个地址存储连续360个数据,每一个地址的数据记为yj,其中,0≤i<180。由图6a和图6b可知,64QAM调制时每个符号数据对应的比特分布在6个地址中。第一个符号数据对应的比特分别是变量节点存储器的地址0、30、60、90、120、150中的第一个数据,第二个符号数据对应的比特分别是变量节点存储器的地址0、30、60、90、120、150中的第二个数据,以此类推,第360个符号数据对应的比特分别是变量节点存储器的地址0、30、60、90、120、150中的最后一个数据。即1至360个符号数据对应的数据是y0、y30、y60、y90、y120、y150。第361~720个符号数据对应的比特分别是变量节点存储器中的y1、y31、y61、y91、y121、y151。第12601~12960个符号数据对应的比特分别是变量节点存储器中的y29、y59、y89、y119、y149、y179。解交织置换规则为π-1,经交织置换后的数据为(0≤j<180),例如x0=y107,x29=y0,x59=y30,x36=y60,x163=y90,x108=y120,x100=y150等,依次类推。校验位交织是为了使LDPC码字的校验位与信息位具有相同的单位循环移位矩阵结构,因此在迭代过程中不需要做解交织操作。
将上述的块解交织和组间解交织结合起来,可以直接得到解交织置换后的地址。例如第一个符号数据对应的6比特软信息,直接写入变量节点存储器中的29、59、36、163、108、100地址中作为该地址的第一个数据;第二个符号对应的6比特软信息值,直接写入校验节点存储器中的29、59、36、163、108、100地址中作为该地址的第二个数据;第360个符号对应的6比特软信息值,直接写入校验节点存储器中的29、59、36、163、108、100地址中作为该地址的最后一个数据。其他的符号,相应的也是以360个符号为一组,写入对应的6个地址中。
而对于译码器内迭代后输出的比特软信息作为生成解调先验信息的元素反馈回解调模块,由于解调模块是以符号位顺序进行解调的。因此也是从第一个符号开始,前360个符号做解调时直接读取变量节点存储器和软信息存储器中对应的29、59、36、163、108、100地址的值,求差值后存储于解调先验信息存储器中,用于解调过程
图7为本申请一实施例中一种译码装置300的结构示意图。如图7所示,译码装置300包括解调器301、地址计算单元302、变量节点存储器303、更新单元304和计算单元305,译码装置300还可包括校验节点存储器306。
其中,解调器301,用于按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息,符号数据由发送端调制生成。
地址计算单元302,用于根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器303中。
更新单元304,用于对变量节点存储器303中的比特软信息进行更新,得到中间比特软信息。
地址计算单元302,还用于根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址。
计算单元305,用于依据读地址中的中间比特软信息确定解调先验信息。
在一个示例中,计算单元305具体用于:计算读地址相同的中间比特软信息和初始比特软信息的第二差值;将第二差值作为解调先验信息。
在另一个示例中,一个读地址中存储有多个比特软信息。计算单元305具体用于:一次性读取一个读地址中的多个中间比特软信息;分别计算读地址中的多个中间比特软信息与对应的多个初始比特软信息的第二差值;将多个第二差值作为多个中间比特软信息分别对应的多个解调先验信息。
解调器301,还用于继续按照接收顺序对符号数据进行带先验信息的解调,带先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件,预设条件表征译码正确率达到期望正确率。
具体的,更新的比特软信息满足预设条件,包括:更新的比特软信息与校验矩阵满足校验方程;或者,更新的比特软信息的更新次数达到预设最大迭代次数。
在一个示例中,解调器301还用于:在依据中间比特软信息对校验节点信息进行更新,以及依据更新后的校验节点信息对中间比特软信息进行校验更新的过程占用的多个时钟中的空闲时钟内,按照接收顺序对符号数据进行带先验信息的解调。
更新单元304具体用于利用校验节点存储器306中的校验节点信息对变量节点存储器303中的比特软信息进行校验更新,校验节点信息用于表征某个符号数据对应的多个比特软信息之间的约束关系。
在一个示例中,更新单元304具体用于利用校验节点存储器306中的校验节点信息对变量节点存储器303中的比特软信息进行校验更新,校验节点信息用于表征某个符号数据对应的多个比特软信息之间的约束关系。
在另一个示例中,更新单元304具体用于:计算变量节点存储器中地址相同的带先验信息的解调得到的比特软信息和初始比特软信息的第一差值,初始比特软信息为初次解调得到的比特软信息;利用第一差值对中间比特软信息进行更新。
在又一个示例中,更新单元304还用于:依据中间比特软信息对校验节点信息进行更新,得到更新的校验节点信息;按照更新的校验节点信息对中间比特软信息进行校验更新。
校验节点存储器306中存储有与校验矩阵对应的校验节点信息。
图8为本申请一实施例中一种译码装置400的结构示意图。如图8所示,译码装置400包括输入接口401、处理器402和存储器403。存储器403上存储有可在处理器402上运行的计算机程序。
输入接口401用于按照接收顺序接收符号数据,符号数据由发送端调制生成。
处理器402被配置为读取存储器403中的软件指令,执行软件指令以实现如下操作:按照符号数据的接收顺序对符号数据进行解调,得到与符号数据对应的比特软信息;根据解交织地址计算规则计算得到解交织后的比特软信息的写地址,并按照写地址将比特软信息写入变量节点存储器中;对变量节点存储器中的比特软信息进行更新,得到中间比特软信息;根据交织地址计算规则计算得到与符号数据的接收顺序对应的中间比特软信息的读地址,并依据读地址中的中间比特软信息确定解调先验信息;继续按照接收顺序对符号数据进行带先验信息的解调,带先验信息的解调以解调先验信息为依据,以得到符号数据对应的更新的比特软信息,直至更新的比特软信息满足预设条件,预设条件表征译码正确率达到期望正确率。
存储器403可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器403可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器403可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器403可在译码装置400的内部或外部。在特定实施例中,存储器403是非易失性固态存储器。在特定实施例中,存储器403包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器402通过读取存储器403中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行上述各个实施例中的译码方法。
在一个示例中,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,输入接口401、处理器402与存储器403可采用总线404连接。总线404包括硬件、软件或两者,将译码装置400的部件彼此耦接在一起。举例来说而非限制,总线404可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线404可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
应当理解,本申请所提供的装置实施例仅仅是示意性的,图7中的单元划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
本申请一实施例还提供一种存储介质,该存储介质上存储有程序,该程序被处理器执行时可实现上述各个实施例中的译码方法。
本申请一实施例还提供一种计算机程序产品,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备、移动终端或其中的处理器执行本申请各个实施例所述译码方法的全部或部分步骤。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置实施例、网元设备实施例和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。