CN111277367B - 编码方法、装置 - Google Patents
编码方法、装置 Download PDFInfo
- Publication number
- CN111277367B CN111277367B CN202010062805.4A CN202010062805A CN111277367B CN 111277367 B CN111277367 B CN 111277367B CN 202010062805 A CN202010062805 A CN 202010062805A CN 111277367 B CN111277367 B CN 111277367B
- Authority
- CN
- China
- Prior art keywords
- data
- interleaved
- row
- storage unit
- bit 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
Images
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/0071—Use of interleaving
Abstract
本申请涉及一种编码方法、装置,该方法包括:将待交织数据包中每个待交织数据写入矩阵存储单元,每个待交织数据包括多个子数据;对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;分别获取每组数据组所包含的子数据的数目;将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;分别对每个待交织数据组内的子数据进行交织编码得到对应的交织编码数据。通过本申请技术方案提高了交织编码效率,极大降低了交织时间,提高了交织纠错能力,减少了逻辑开销。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种编码方法、装置。
背景技术
超宽带技术近年来成为无线通信的热点,对比传统的无线通信系统,基于TurboFSK技术的超宽带系统具有抗干扰能力强、抗多径能力强、发射功率低、信息保密性强等优点。Turbo FSK中往往会用到交织技术,交织编码的目的是把一个较长的突发差错离散成随机差错,再用纠正随机差错的编码FEC技术消除随机差错;交织深度越大,离散度越大,抗突发差错能力也越强。交织深度越大,交织编码处理时间也越长,即是以时间为代价。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种编码方法、装置。
第一方面,本申请实施例提供了一种编码方法,该方法包括:
将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据;
对所述矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;
分别获取每组数据组所包含的子数据的数目;
将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;
分别对每个待交织数据组内的子数据进行交织编码得到对应的交织编码数据。
可选地,子数据为比特数据,将待交织数据包中每个待交织数据写入矩阵存储单元,包括:
获取每个待交织数据的比特大小;
根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行;
将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素;
对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
可选地,根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行,包括:
根据每个待交织数据的比特大小与矩阵存储单元的列宽,获取每个待交织数据需分配的行数;
根据所有待交织数据需分配的行数与矩阵存储单元的行宽,获取矩阵存储单元需要的个数;
根据每个待交织数据写入的顺序、需分配的行数、矩阵存储单元需要的个数,确定每个待交织数据所在的矩阵存储单元和在所在矩阵存储单元写入比特数据的行。
可选地,对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据,包括:
对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
可选地,对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,包括:
获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据;
分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离;
分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离;
将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据;
将每条模拟对角线上的所有比特数据组成对应的数据组。
第二方面,本申请实施例提供了一种编码装置,该装置包括:
写入模块,用于将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据;
划分模块,用于对所述矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;
统计模块,用于分别获取每组数据组所包含的子数据的数目;
组合模块,用于将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;
编码模块,用于分别对待交织数据组内的子数据进行交织编码得到对应的交织编码数据。
可选地,子数据为比特数据,写入模块包括:
数据大小获取模块,用于获取每个待交织数据的比特大小;
分配模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行;
子写入模块,用于将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素;
填充模块,用于对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
可选地,分配模块包括:
第一计算模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽,获取每个待交织数据需分配的行数;
第二计算模块,用于根据所有待交织数据需分配的行数与矩阵存储单元的行宽,获取矩阵存储单元需要的个数;
子分配模块,用于根据每个待交织数据写入的顺序、需分配的行数、矩阵存储单元需要的个数,确定每个待交织数据所在的矩阵存储单元和在所在矩阵存储单元写入比特数据的行。
可选地,填充模块具体用于:对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
可选地,编码模块包括:
定位模块,用于获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据;
第一计算模块,用于分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离;
第二计算模块,用于分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离;
第一匹配模块,用于将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
第二匹配模块,用于将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
连线确认模块,用于分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据;
数据组获取模块,用于将每条模拟对角线上所有的比特数据组成对应的数据组。
第三方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如前面任一项所述的方法的步骤。
第四方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时执行如前面任一项所述的方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
通过本申请的技术方案提高了交织编码效率,极大降低了交织时间,提高了交织纠错能力,减少了逻辑开销。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例提供的一种编码方法的流程示意图;
图2为一个实施例提供的一种编码装置的结构框图;
图3为一个实施例提供的编码应用场景;
图4为另一个实施例提供的编码应用场景。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
超宽带技术近年来成为无线通信的热点,对比传统的无线通信系统,基于turboFSK技术的超宽带系统具有抗干扰能力强、抗多径能力强、发射功率低、信息保密性强等优点。Turbo FSK中用到交织技术,交织编码的目的是把一个较长的突发差错离散成随机差错,再用纠正随机差错的编码FEC技术消除随机差错。
图1为一个实施例提供的一种编码方法的流程示意图。参考图1,该方法包括以下步骤:
S100:将待交织数据包中每个待交织数据写入矩阵存储单元。
其中,每个待交织数据包括多个子数据。
具体地,在通信中,数据的传输一般要依次通过编码器、交织存储器、突发错误信道、去交织存储器、译码器等。其中,交织存储器和去交织存储器均包括多个矩阵存储单元。
待交织数据包中包含多个待交织数据,每个待交织数据会被写入到交织存储器中的矩阵存储单元中。
S200:对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据。
具体地,每个矩阵存储单元存储数据后,不论每个矩阵存储单元的行宽与列宽是否相同,每个矩阵存储单元的元素都能以模拟对角线的形式进行划分。划分后,每条模拟对角线上有对应的1个或多个元素。其中,每一行和每一列相交为一个元素。
S300:分别获取每组数据组所包含的子数据的数目。
具体地,每条模拟对角线上的元素的数目不一定相同,模拟对角线有长有短。
S400:将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组。具体地,每个数据组包含的子数据数目不同,如果行宽与列宽相等,则最长的模拟对角线对应的数据组的数目等于列宽,如果行宽与列宽不相等,则最长的模拟对角线对应的数据组的数目小于列宽,将数目之和等于列宽的多个数据组合并可以组成待交织数据组,因此可以得到多个待交织数据组。
S500:分别对每个待交织数据组内的子数据进行交织编码得到对应的交织编码数据。
在一个实施例中,子数据为比特数据,步骤S100具体包括:
获取每个待交织数据的比特大小;
根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行;
将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素;
对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
具体地,每个待交织数据的大小以bit为单位,矩阵存储单元的每个元素可写入1个bit数据,获取到了待交织数据的比特大小和矩阵存储单元的列宽,可以计算出每个待交织数据写入矩阵存储单元时需要分配的行数。计算出所有待写入数据需要分配的行数,再根据每个矩阵存储单元的总行数,可以计算出总共需要多少个矩阵存储单元来写入这个待交织数据包。然后可以按照写入的先后顺序为每个待交织数据分配矩阵存储单元以及在分配的矩阵存储单元中分配行。分配好后,待交织数据的每个比特数据会写入到对应的矩阵存储单元的对应行所在的列。其中,矩阵存储单元的每个元素用于存储一个比特数据,即一个元素代表一个比特数据。
每个待交织数据的所有比特数据可能不能完全写满分配的行的所有列,因此会有列没有写入比特数据。此时,需要对每个没有写满比特数据的行进行调整,使其写满比特数据。
在一个实施例中,对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
在一个实施例中,步骤S200具体包括:
获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据;
分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离;
分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离;
将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;
分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据;
将每条模拟对角线上的所有比特数据组成对应的数据组。
例如:一个4X4的矩阵存储单元,如果从左上角向右下角方向划分,则第一行第一列的比特数据、第二行第二列的比特数据、第三行第三列的比特数据、第四行第四列的的比特数据共四个比特数据组成一条模拟对角线;第二行第一列的比特数据、第三行第二列的比特数据、第四行第三列的比特数据共3个比特数据组成一条模拟对角线;第三行第一列的比特数据、第四行第二列的比特数据共2个比特数据组成一条模拟对角线;第四行第一列的比特数据共1个比特数据组成一条模拟对角线;第一行第二列的比特数据、第二行第三列的比特数据、第三行第四列的比特数据共3个比特数据组成一条模拟对角线;第一行第三列的比特数据、第二行第四列的比特数据共2个比特数据组成一条模拟对角线;第一行第四列的比特数据共1个比特数据组成一条模拟对角线。将有4个比特数据的模拟对角线对应的数据组作为有4个比特数据的待交织数据组,将有3个比特数据和1个比特数据的模拟对角线对应的数据组合并组成有4个比特数据的待交织数据组,将各有2个比特数据的模拟对角线对应的数据组合并组成有4个比特数据的待交织数据组。
例如一个2X3的矩阵存储单元,如果从左上角向右下角方向划分,则第一行第一列的比特数据、第二行第二列的比特数据共2个比特数据组成一条模拟对角线;第一行第二列的比特数据、第二行第三列的比特数据共2个比特数据组成一条模拟对角线;第二行第一列的比特数据共1个比特数据组成一条模拟对角线;第一行第三列的比特数据共1个比特数据组成一条模拟对角线。将每组有2个比特数据和1个比特数据的模拟对角线对应的数据组合并组成有3个比特数据的待交织数据组。
在一个实施例中,每组子数据的数目之和为矩阵存储单元的列宽的多个数据组为分布在最长模拟对角线的两侧的模拟对角线所对应的数据组。
以此类推,不论是矩阵存储单元的行宽和列宽是多少都可以划分为多条模拟对角线。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图2为一个实施例提供的一种编码装置的结构框图。参考图2,该装置包括:
写入模块100,用于将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据。
划分模块200,用于对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据。
统计模块300,用于分别获取每组数据组所包含的子数据的数目。
组合模块400,用于将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组。
编码模块500,用于分别对每个待交织数据组内的子数据进行交织编码得到对应的交织编码数据。
在一个实施例中,子数据为比特数据,写入模块100包括:
数据大小获取模块,用于获取每个待交织数据的比特大小。
分配模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行。子写入模块,用于将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素。
填充模块,用于对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
在一个实施例中,分配模块包括:
第一计算模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽,获取每个待交织数据需分配的行数;
第二计算模块,用于根据所有待交织数据需分配的行数与矩阵存储单元的行宽,获取矩阵存储单元需要的个数;
子分配模块,用于根据每个待交织数据写入的顺序、需分配的行数、矩阵存储单元需要的个数,确定每个待交织数据所在的矩阵存储单元和在所在矩阵存储单元写入比特数据的行。
在一个实施例中,填充模块具体用于:对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
在一个实施例中,编码模块包括:
定位模块,用于获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据。
第一计算模块,用于分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离。
第二计算模块,用于分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离。
第一匹配模块,用于将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据。
第二匹配模块,用于将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据。
连线确认模块,用于分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据。
数据组获取模块,用于将每条模拟对角线上所有的比特数据组成对应的数据组。
在一个实施例中提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行前面所述编码方法的步骤。
在一个实施例中提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时执行前面所述编码方法的步骤。计算机设备的存储器中可存储组成编码装置的各个程序模块,比如,图2所示的写入模块100、划分模块200、统计模块300、组合模块400、编码模块500。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的编码方法中的步骤。
具体地,计算机设备可以通过图2所示的编码装置中的写入模块100执行将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据。计算机设备可以通过划分模块200执行对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据。计算机设备可以通过统计模块300执行分别获取每组数据组所包含的子数据的数目。计算机设备可以通过组合模块400执行将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组。计算机设备可以通过编码模块500执行分别对每个待交织组内的子数据进行交织编码得到对应的交织编码数据。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据;对矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;分别获取每组数据组所包含的子数据的数目;将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;分别对每个待交织数据组内的子数据进行交织编码得到对应的交织编码数据。
图3为一个实施例提供的编码应用场景。参考图3,交织编码采用模拟对角线组合数据输出。该矩阵存储单元为7行、7列;比特数据C00、C01、C02、C03、C04、C05、C06组成一条最长模拟对角线;比特数据C10、C11、C12、C13、C14、C15组成一条模拟对角线;比特数据C20、C21、C22、C23、C24组成一条模拟对角线;比特数据C30、C31、C32、C33组成一条模拟对角线;比特数据C40、C41、C42组成一条模拟对角线;比特数据C50、C51组成一条模拟对角线;比特数据C60;C61、C62、C63、C64、C65、C66组成一条模拟对角线;比特数据C52、C53、C54、C55、C56组成一条模拟对角线;比特数据C43、C44、C45、C46组成一条模拟对角线;比特数据C34、C35、36组成一条模拟对角线;比特数据C25、C26组成一条模拟对角线;比特数据C16组成一条模拟对角线。
其中,比特数据C00、C01、C02、C03、C04、C05、C06组成一个待交织数据组;比特数据C10、C11、C12、C13、C14、C15、C16组成一个待交织数据组;比特数据C20、C21、C22、C23、C24、C25、C26组成一个待交织数据组;比特数据C30、C31、C32、C33、C34、C35、36组成一个待交织数据组;比特数据C40、C41、C42、C43、C44、C45、C46组成一个待交织数据组;比特数据C50、C51、C52、C53、C54、C55、C56组成一个待交织数据组;比特数据C60、C61、C62、C63、C64、C65、C66组成一个待交织数据组。
图4为另一个实施例提供的编码应用场景。参考图4,交织编码采用模拟对角线组合数据输出。该矩阵存储单元为6行、7列;比特数据C00、C01、C02、C03、C04、C05组成一条最长模拟对角线;比特数据C51、C52、C53、C54、C55、C56组成一条最长模拟对角线;比特数据C42、C43、C44、C45、C46组成一条模拟对角线;比特数据C33、C34、C35、C36组成一条模拟对角线;比特数据C24、C25、C26组成一条模拟对角线;比特数据C15、C16组成一条模拟对角线;比特数据C06组成一条模拟对角线;比特数据C10、C11、C12、C13、C14组成一条模拟对角线;比特数据C20、C21、C22、C23组成一条模拟对角线;比特数据C30、C31、C32组成一条模拟对角线;比特数据C40、C41组成一条模拟对角线;比特数据C50组成一条模拟对角线。
其中,比特数据C00、C01、C02、C03、C04、C05、C06组成一个待交织数据组;比特数据C51、C52、C53、C54、C55、C56、C50组成一个待交织数据组;比特数据C42、C43、C44、C45、C46、C40、C41组成一个待交织数据组;比特数据C33、C34、C35、C36、C30、C31、C32组成一个待交织数据组;比特数据C24、C25、C26、C20、C21、C22、C23组成一个待交织数据组;比特数据C15、C16、C10、C11、C12、C13、C14组成一个待交织数据组。
根据图3和图4,将同一个待交织数据组内的比特数据进行交织得到交织编码数据,这样既可以保证每一个码子的比特在不同的比特位置分布到一系列数字调制值中,并且对其循坏移位由所述调制值来确定的一系列调制的线性调频进行合成。
本申请的编码方法在电路实现时候,采用矩阵存储单元Memory,矩阵存储单元大小为nXm,刚好一个交织矩阵大小;把需要交织编码的数据先按照固定顺序填入Memory中;填满Memory后,按照上述描述的模拟对角顺序读出数据组成一个码子;极大的降低了交织编码的时间;降低了逻辑开销;方便在电路设计中实现低开销高效率。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种编码方法,其特征在于,所述方法包括:
将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据;
对所述矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;
分别获取每组数据组所包含的子数据的数目;
将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;
分别对每个所述待交织数据组内的子数据进行交织编码得到对应的交织编码数据;
其中,所述对所述矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,包括:获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据;分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离;分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离;将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据;将每条模拟对角线上的所有比特数据组成对应的数据组。
2.根据权利要求1所述的方法,其特征在于,所述子数据为比特数据,所述将待交织数据包中每个待交织数据写入矩阵存储单元,包括:
获取每个待交织数据的比特大小;
根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行;
将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素;
对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
3.根据权利要求2所述的方法,其特征在于,所述根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行,包括:
根据每个待交织数据的比特大小与矩阵存储单元的列宽,获取每个待交织数据需分配的行数;
根据所有待交织数据需分配的行数与矩阵存储单元的行宽,获取矩阵存储单元需要的个数;
根据每个待交织数据写入的顺序、需分配的行数、矩阵存储单元需要的个数,确定每个待交织数据所在的矩阵存储单元和在所在矩阵存储单元写入比特数据的行。
4.根据权利要求3所述的方法,其特征在于,所述对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据,包括:
对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
5.一种编码装置,其特征在于,所述装置包括:
写入模块,用于将待交织数据包中每个待交织数据写入矩阵存储单元,其中,每个待交织数据包括多个子数据;
划分模块,用于对所述矩阵存储单元的元素上所存储的子数据按模拟对角线方式进行划分得到多组数据组,每个数据组包括对应模拟对角线上的所有子数据;
统计模块,用于分别获取每组数据组所包含的子数据的数目;
组合模块,用于将每组子数据的数目之和为矩阵存储单元的列宽的多个数据组合并组成对应的待交织数据组,将子数据的数目为矩阵存储单元的列宽的数据组作为待交织数据组;
编码模块,用于分别对每个所述待交织数据组内的子数据进行交织编码得到对应的交织编码数据;
所述编码模块包括:定位模块,用于获取每个矩阵存储单元第一行、第一列、最后一行、最后一列的比特数据;第一计算模块,用于分别获取每个矩阵存储单元第一列的每个比特数据和最后一行的每个比特数据到第一列最后一行的比特数据的距离,将到第一列最后一行的比特数据的距离作为第一距离;第二计算模块,用于分别获取每个矩阵存储单元第一行的每个比特数据和最后一列的每个比特数据到第一行最后一列的比特数据的距离,将到第一行最后一列的比特数据的距离作为第二距离;第一匹配模块,用于将第一列和最后一行中每组第一距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;第二匹配模块,用于将第一行和最后一列中每组第二距离相等的两个比特数据作为对应模拟对角线的起始数据和截止数据;连线确认模块,用于分别获取每条模拟对角线的起始数据和截止数据的连线所包括的比特数据;数据组获取模块,用于将每条模拟对角线上所有的比特数据组成对应的数据组。
6.根据权利要求5所述的装置,其特征在于,所述子数据为比特数据,所述写入模块包括:
数据大小获取模块,用于获取每个待交织数据的比特大小;
分配模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽、行宽,确定每个待交织数据所在的矩阵存储单元和对应的行;
子写入模块,用于将每个待交织数据的每个比特数据写入到对应的矩阵存储单元的对应行所在的元素;
填充模块,用于对写入比特数据的每个矩阵存储单元进行调整,使矩阵存储单元的每行写满比特数据。
7.根据权利要求6所述的装置,其特征在于,所述分配模块包括:
第一计算模块,用于根据每个待交织数据的比特大小与矩阵存储单元的列宽,获取每个待交织数据需分配的行数;
第二计算模块,用于根据所有待交织数据需分配的行数与矩阵存储单元的行宽,获取矩阵存储单元需要的个数;
子分配模块,用于根据每个待交织数据写入的顺序、需分配的行数、矩阵存储单元需要的个数,确定每个待交织数据所在的矩阵存储单元和在所在矩阵存储单元写入比特数据的行。
8.根据权利要求7所述的装置,其特征在于,所述填充模块具体用于:对未填满比特数据的行进行随机比特数据填充,使矩阵存储单元的每行写满比特数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010062805.4A CN111277367B (zh) | 2020-01-19 | 2020-01-19 | 编码方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010062805.4A CN111277367B (zh) | 2020-01-19 | 2020-01-19 | 编码方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277367A CN111277367A (zh) | 2020-06-12 |
CN111277367B true CN111277367B (zh) | 2022-09-30 |
Family
ID=71003370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010062805.4A Active CN111277367B (zh) | 2020-01-19 | 2020-01-19 | 编码方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277367B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779453A (zh) * | 2007-08-07 | 2010-07-14 | 三星电子株式会社 | 具有用于均等差错保护(eep)和非均等差错保护(uep)的循环行列式比特交织器的数字通信系统和方法 |
CN102141976A (zh) * | 2011-01-10 | 2011-08-03 | 中国科学院软件研究所 | 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法 |
CN103546232A (zh) * | 2012-07-11 | 2014-01-29 | 中兴通讯股份有限公司 | 数据的处理方法及装置 |
CN109428675A (zh) * | 2017-08-30 | 2019-03-05 | 华为技术有限公司 | 数据传输方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2879318A1 (en) * | 2013-11-29 | 2015-06-03 | Panasonic Corporation | Efficient component interleaving for rotated constellations with time-frequency slicing |
-
2020
- 2020-01-19 CN CN202010062805.4A patent/CN111277367B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101779453A (zh) * | 2007-08-07 | 2010-07-14 | 三星电子株式会社 | 具有用于均等差错保护(eep)和非均等差错保护(uep)的循环行列式比特交织器的数字通信系统和方法 |
CN102141976A (zh) * | 2011-01-10 | 2011-08-03 | 中国科学院软件研究所 | 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法 |
CN103546232A (zh) * | 2012-07-11 | 2014-01-29 | 中兴通讯股份有限公司 | 数据的处理方法及装置 |
CN109428675A (zh) * | 2017-08-30 | 2019-03-05 | 华为技术有限公司 | 数据传输方法及装置 |
Non-Patent Citations (1)
Title |
---|
TD-SCDMA交织器参数设计与系统仿真;缪丹等;《无线通信技术》;20010330(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111277367A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108347302B (zh) | 一种编译码方法和终端 | |
CN109120276B (zh) | 信息处理的方法、通信装置 | |
RU2604992C2 (ru) | Устройство, содержащее кольцевой буфер и способ для присвоения вариантов избыточности кольцевому буферу | |
US7146545B2 (en) | Interleaving method and apparatus, de-interleaving method and apparatus, and interleaving/de-interleaving system and apparatus | |
US6910110B2 (en) | Interleaving apparatus and method for a communication system | |
CN101540654B (zh) | 一种交织速率匹配和解交织解速率匹配方法 | |
EA021966B1 (ru) | Устройство и способ обработки данных, а также кодирующее устройство и способ кодирования | |
US11342945B2 (en) | Method and apparatus for processing rate matching of polar codes | |
KR20010113801A (ko) | 터보 코드를 위한 행내 치환 | |
CN108494527A (zh) | 一种基于LoRa的数据发送和接收方法 | |
CN101151806A (zh) | 利用映射函数周期性的存储器有效的交织/去交织 | |
CN109474373A (zh) | 交织方法和交织装置 | |
CN111277367B (zh) | 编码方法、装置 | |
CN103023603A (zh) | 基于ldpc校验矩阵的比特交织编码调制的实现方法 | |
US8001449B2 (en) | Syndrome-error mapping method for decoding linear and cyclic codes | |
CN110445582B (zh) | 一种编码交织方法、系统、装置及计算机可读存储介质 | |
US8443253B2 (en) | Turbo decoding device and communication device | |
KR101356517B1 (ko) | 적응적 비트 인덱스를 고려한 서브 패킷 생성 방법 | |
CN109067407B (zh) | 信息处理的方法、装置和通信设备 | |
CN102118220B (zh) | 一种解速率匹配的方法及装置 | |
CN111600613B (zh) | 一种校验方法、装置、译码器、接收机及计算机存储介质 | |
WO2021027488A1 (zh) | 一种ldpc编码方法、装置、基站及可读存储介质 | |
KR101456299B1 (ko) | 무선통신 시스템에서 인터리빙 방법 | |
CN101753260B (zh) | 一种Turbo码编码器及编码方法 | |
CN111490797B (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 |