一种DVB-S2LDPC编译码校验矩阵的存储结构及方法与流程

文档序号:21636282发布日期:2020-07-29 02:46阅读:403来源:国知局
本发明涉及信号与信息处理领域,特别涉及一种dvb-s2ldpc编译码校验矩阵的存储结构及方法。
背景技术
::dvb-s2标准阐述了不同码长、不同码率下ldpc(lowdensityparitycheckcode,低密度校验码)的编码过程,根据该编码过程,能够得到对应的校验矩阵。dvb-s2标准下的ldpc性能接近香农极限,结合8psk、16apsk、或32apsk的调制体系,ldpc能够满足数字视频通信的要求。ldpc译码器的硬件实现一直是国内外研究的热点问题。在dvb-s2/s2x标准中,由于ldpc码长很长(16200、32400、64800),因此其硬件实现需要耗费很多的硬件资源,所以目前对dvb-s2ldpc编译码的研究主要集中在以下方面:改进算法从而降低运算复杂度,改进译码器架构从而折中速率和资源消耗、提高硬件主频和降低成本。而在编译码器实现中,校验矩阵的存储也是一个重要的组成部分,目前,由于dvb-s2标准全部21种码率,每种码率的校验矩阵的维度各不相同,校验矩阵中各个数值的动态范围也很大,导致现有校验矩阵的存储访问逻辑复杂,逻辑资源消耗大,难以实现低资源消耗的存储。技术实现要素:本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种dvb-s2ldpc编译码校验矩阵的存储结构及方法,能够使用较少的资源实现dvb-s2标准下全部21种码率的校验矩阵存储,有效节省逻辑资源消耗,且便于存储访问。根据本发明的第一方面,提供了一种dvb-s2ldpc编译码校验矩阵的存储结构,包括边沿表存储模块,所述边沿表存储模块存储一个校验矩阵的边沿表;所述边沿表存储模块包括多个描述字存储单元,所述描述字存储单元存储边沿表的行特征;所述行特征包括对应行的行描述字和所述行每个校验位置值对应的校验描述字;其中:所述行描述字包括对应行的校验位置值的数量、最后一行标志位以及对应码字类型的q值;q=(n-k)/360,n为该码字类型的输出码长,k为该码字类型的输入码长;所述校验描述字包括对应校验位置值除以边沿表q值的整除部分和余数部分。在对边沿表进行存储时,不直接存储边沿表每行的校验位置值,而是存储每行的行特征,该行特征包括行描述字和校验描述字,校验描述字是对每行中的各个校验位置进行计算,得到的表征该校验位置值的特征值,相较于校验位置值,校验描述字缩小q倍,存储该校验描述字,相较于校验位置值不仅所需存储空间减小,且不同校验位置值的校验描述字之间的动态范围也相应减小,有效的降低了校验矩阵的存储访问逻辑复杂,减小逻辑资源消耗,实现低资源消耗的存储。本发明的一个的实施例中,所述存储结构还包括指针存储模块,用于存储每个所述边沿表存储模块的首地址;每个所述边沿表存储模块的首地址为存储所述边沿表第一行行描述字的地址。只要读取码字类型对应边沿表存储模块的首地址,就能实现对应边沿表的读取。本发明的一个的实施例中,所述存储结构还包存储地址字,用于标识每个所述指针存储模块的地址以及所述边沿表存储模块存储行描述字的地址和校验描述字的地址;每个行描述字的地址和校验描述字的地址都通过一个存储地址字进行标识,采用该种地址标识结构能够实现边沿表的快速读取。本发明的一个的实施例中,所述行描述字的数据结构占用14比特;其中:[13:9]比特位为所述行校验位置值的度数j;[8]比特位为最后一行标志位,用于区别所述行是否为该码字类型边沿表的最后一行;[7:0]比特位为所述边沿表对应码字类型的q值。所述行描述字从整体上表征了边沿表每行的校验位置值,并提供根据校验描述字读取每个校验位置值的必要参数。本发明的一个的实施例中,实现所述行描述字linedescriptor数据结构的m语言计算公式为:linedescriptor=dec2hex(((j-1)*2+if(lastgroup))*2^8+q);其中,j为边沿表所述行校验位置值的度数;lastgroup为最后一行的标志位值。上述公式,不仅实现行描述字结构的快速计算,而且还进一步进行了十六进制转换,减少存储位,节省存储空间。本发明的一个的实施例中,所述校验描述字的数据结构占16比特;其中:[15:9]比特位为校验位置值除以q取整数部分值;[8:0]比特位为校验位置值除以q取余数部分值。所述校验描述字的数据结构存储的数值相较于边沿表的校验描述字缩小q倍,不仅减小存储空间,且不同校验位置值的校验描述字之间的动态范围也相应减小,有效的降低了校验矩阵的存储访问逻辑复杂,减小逻辑资源消耗,实现低资源消耗的存储;更重要的是,所述整数部分也表示要与校验节点cn对齐,变量节点vn输入需要移动的距离,所以在进行边沿表读取时,不再需要单独计算变量节点vn输入需要移动的距离,直接读取高位7位的值就能直接获取,方便读取,提高读取效率。本发明的一个的实施例中,实现所述校验描述字paritydescriptor数据结构的m语言公式为:paritydescriptor=dec2hex(mod(c(r,:),q).*2^9+(floor(c(r,:)./q)));其中,c(r,:)表示边沿表中第r行的校验位置值,r为不小于边沿表行数x的整数。上述公式,不仅实现校验描述字结构的快速计算,而且还进一步进行了十六进制转换,减少存储位,节省存储空间。根据本发明的第二方面,还提供了一种dvb-s2ldpc编译码校验矩阵的存储方法,包括以下步骤:计算校验矩阵对应边沿表每行的行特征;所述行特征包括对应行的行描述字和每个校验位置值的校验描述字;其中:所述行描述字包括对应行的校验位置值的数量、最后一行标志位以及对应码字类型的q值;所述校验描述字包括所述校验位置值除以所在边沿表对应q值的整除部分和余数部分;q=(n-k)/360,n为该码字类型的输出码长,k为该码字类型的输入码长;存储边沿表每行的所述行特征。在对边沿表进行存储时,不直接存储边沿表每行的校验位置值,而是存储每行的行特征,该行特征包括行描述字和校验描述字,校验描述字是对每行中的各个校验位置进行计算,得到的表征该校验位置值的特征值,相较于校验位置值,校验描述字缩小q倍,存储该校验描述字,相较于校验位置值不仅所需存储空间减小,且不同校验位置值的校验描述字之间的动态范围也相应减小,有效的降低了校验矩阵的存储访问逻辑复杂,减小逻辑资源消耗,实现低资源消耗的存储。本发明的一个的实施例中,计算校验矩阵对应边沿表每行的行特征,包括:计算对应行的行描述字;计算所述行的每个校验位置值的校验描述字。本发明的一个的实施例中,在存储边沿表的第一行的行特征后,将所述行的行描述字对应的存储地址字作为该边沿表存储模块的首地址存入指针存储模块。只要读取码字类型对应边沿表存储模块的首地址,就能实现对应边沿表的读取。本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为dvb-s24/9码率的校验矩阵的子矩阵h1的示意图。图2为dvb-s24/9码率的校验矩阵的子矩阵h2的示意图。图3为dvb-s24/9码率的校验矩阵h的示意图。图4为本发明一实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构的示意图。图5为本发明一实施例提供的行描述字的数据结构的示意图。图6为本发明一实施例提供的校验描述字的数据结构的示意图。图7为本发明一实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构的外部接口示意图。图8为本发明一实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构进行逻辑仿真和资源消耗分析时,分析得到的逻辑资源消耗窗口截图。图9为本发明一实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储方法的流程图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的结构必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。在本发明的描述中,需要理解的是,涉及到具体内部存储方式,并不代表此存储方式是唯一的可行方案,该发明的存储方式只是若干种储存方式中的一种,仅仅作为举例说明作用,并不能理解为对该发明的内部存储方式的限定。dvb-s2标准的ldpc码是一种非规则重复累积码(ira码),其编码和译码均可以通过校验矩阵而非生成矩阵进行,所以其校验矩阵的存储十分重要。在本发明中,将校验矩阵h表示为h=[h1,h2],h维度为m×n,h1维度为m×k,h2维度为m×m。其中,n位不同码率码字的输出码长,k为不同码率码字的输入码长,m为n-k。每种码字的n、k具体值参见表1;表2为dvb-s2ldpc中的子矩阵h1特性分析表;图1为dvb-s24/9码率的校验矩阵的子矩阵h1的示意图,图2为dvb-s24/9码率的校验矩阵的子矩阵h2的示意图,图3为dvb-s24/9码率的校验矩阵h的示意图。dvb-s2标准附录b和c中给出了各码字的校验位地址表,由校验位地址表可以求得码字的校验矩阵,并进而进行编译码。表1:不同码字类型的各参数值表。表2:dvb-s2ldpc中的子矩阵h1特性分析表。在表2中可以看出,对于校验矩阵h的子矩阵h1,其本身存在一些特殊性质,例如其矩阵的行重和列重是规律性的;但短帧的行重中存在v1,v2,v3,v4,v5五个向量,不再是固定值,表示该校验矩阵的行重以该向量为一周期循环至最后。其中:v1=[2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2,1,1,1,2,1,2,2,2,2,2];v2=[3,4,5,4,2,3,2,3,4,3,3,4,4,4,4,3,2,4,3,2,4,3,4,3,5];v3=[8,10,9,7,8,11,9,10,9,8,9,10];v4=[10,9,11,10,10,1l,11,11,11,11];v5=[14,14,14,14,17,16,17,15]。而对于dvb-s2标准中各ldpc码的校验矩阵的存储,也不是直接存储校验矩阵,实际上是对每个校验矩阵对应的边沿表(edgetable)的存储,边沿表是校验矩阵加扰前的缩减简化值,每个边沿表有x行(x=k/360,k为该码字类型的输入码长),每行有j(j也称度数,边沿表每行j取3或j,即每行校验位置值的数量为3或j)个校验位置值,每个校验矩阵对应的边沿表具体可参看dvb-s2标准的附录b和附录c,在此不再做更详细描述。存储边沿表,相较于直接存储校验矩阵,可以使存储量降为1/360,在一定程度上能够减少资源消耗,但21种码字的边沿表具有的行数各不相同,且边沿表中,每个校验位置值较大,各个校验位置值的动态范围依然很大,并没有解决现有校验矩阵的存储访问逻辑复杂,逻辑资源消耗大,难以实现低资源消耗的存储的问题。所以本发明实施例,采用新的存储逻辑,以边沿表的每行为一个存储单元,先存储每行的总体特征(行描述字),再对每行中的各个校验位置进行计算,得到表征该校验位置值的特征值(校验描述字),该校验描述字为按照校验位置值对应的q值对该校验位置值取模,相较于校验位置值,校验描述字缩小q倍,存储该校验描述字,相较于校验位置值所需存储空间减小,且不同校验位置值的校验描述字之间的动态范围也相应减小,有效的降低了校验矩阵的存储访问逻辑复杂,减小逻辑资源消耗,实现低资源消耗的存储。本发明实施例使用verilog实现了边沿表的存储结构ldpc_edgetable(校验矩阵的存储结构),并基于xc7vx485tffg1158做了仿真和综合后资源评估。本发明实施例的校验矩阵的存储结构使用case-switch语句实现存储地址romaddr和存储数据romdata的映射。为了能够存储dvb-s2标准的全部码字类型,存储地址romaddr的取值范围为0~7976,存储地址输入为13位。实施例一。如图4所示,本发明实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构,包括多个边沿表存储模块100,每个边沿表存储模块100存储一个校验矩阵的边沿表,由于dvb-s2标准全部21种码率(码字类型),如果对应的21个校验矩阵的边沿表都需要存储,此时,边沿表存储模块100有21个,每个边沿表存储模块100存储一个码字类型对应的边沿表;每个边沿表存储模块100包括多(边沿表的校验位置值行数)个描述字存储单元110,每个描述字存储单元110存储描述边沿表的第i行的行特征;其中,i取x以下的正整数,行特征是对应行的特征描述,能够完全表征边沿表的对应行;所以,如果边沿表校验位置值的行数为x,则每个边沿表存储模块100包括x个描述字存储单元110;每个描述字存储单元110存储的行特征包括一个行描述字111和j个校验描述字112(边沿表第i行校验位置值的数量)。其中:行描述字111至少包括对应行的校验位置值的数量j、最后一行标志位(例如,当前计算的为该边沿表的最后一行,该最后一行标志位记为1,当然最后一行标志位也可记为其它值)以及对应码率的q值;q=(n-k)/360,n为该码率的输出码长,k为该码率的输入码长。每个校验位置对应的校验描述字112包括对应的校验位置值除以所在边沿表对应q值的整除部分(「校验位置值/q」)和余数部分(校验位置值%q)。可见,本实施例在对边沿表进行存储时,不直接存储边沿表每行的校验位置值,而是存储每行的行特征,该行特征包括行描述字和校验描述字,校验描述字是对每行中的各个校验位置进行计算,得到的表征该校验位置值的特征值,相较于校验位置值,校验描述字缩小q倍,存储该校验描述字,相较于校验位置值不仅所需存储空间减小,且不同校验位置值的校验描述字之间的动态范围也相应减小,有效的降低了校验矩阵的存储访问逻辑复杂,减小逻辑资源消耗,实现低资源消耗的存储。在本实施例中,边沿表存储模块100的多个描述字存储单元110为连续存储单元;连续的x个描述字存储单元110依次(按照边沿表由上至下的顺序或由下至上的顺序)存储边沿表每行的行特征,每个描述字存储单元110存储第i行的行特征。每个描述字存储单元110先存储行描述字111,再依次(按照该行由左至右或由右至左的顺序)存储该行的j个校验描述字112,j∈{3,j}。本实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构还包括连续的多个指针存储模块200,每个指针存储模块200存储一个边沿表存储模块100的首地址,称该首地址为码字指针codepointer,即指针存储模块200的数量与边沿表存储模块100数量相同,如果第一种码字类型为0,则存储该码字类型边沿表的边沿表存储模块100码字指针为code0pointer。其中,每个边沿表存储模块100的首地址为存储边沿表第一行行特征的描述字存储单元110的首地址,该描述字存储单元的首地址是存储行描述字的地址。本实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构还包括存储地址字romaddr;用于标识每个指针存储模块200的地址以及边沿表存储模块100存储行描述字的地址和校验描述字的地址。在一些实施例中,为了支持dvb-s2标准全部21种码字类型,存储地址字取值范围为0~7976之间的正整数。其中,存储地址字0~20用于标识21个指针存储模块的地址;标识每种码字类型的代码与一个指针存储模块200的地址相同,被指针存储模块200存储首地址的边沿表存储模块100,存储的边沿表对应的码字类型标识码与该指针存储模块的地址相同。所以当需要读取任何一个码字类型的边沿表时,只需向本发明实施例提供的存储结构输入标识该码字类型的代码(0~20),以该代码作为存储地址字进行寻址,找到该存储地址字对应的指针存储模块,读取指针存储模块中存储的边沿表存储模块的首地址,通过该首地址读取对应边沿表存储模块中存储的边沿表,并最终得到该码字类型相应的校验矩阵。存储地址字21~7976用于标识21个边沿表存储模块100的地址,即用于标识每个边沿表存储模块100存储x个行描述字和j×x个校验描述字的地址,每个行描述字和第校验描述字对应一个存储地址字,边沿表存储模块100的地址为连续地址,这样连续的x个描述字存储单元的地址为连续地址,边沿表的每行的行特征依次(由边沿表第一行到最后一行,或由最后一行至第一行,读取时选择相应读取程序,得到正确的边沿表)存储在地址连续的x个描述字存储单元中,每一行行描述字的存储地址为对应描述字存储单元的首地址,j个校验描述字依次(由每行的左端第一个校验位置值至右端最后一个校验位置值,或由端第一个校验位置值至左端最后一个校验位置值,读取时选择相应读取程序,得到正确的边沿表)存储在行描述字后,这样知道边沿表存储模块100的首地址后,就可以依次读取到对应边沿表存储模块100存储的边沿表的每行,直到读到最后一行。例如,从上至下,第一个边沿表存储模块的首地址为21,该边沿表存储模块存储的是码字类型代码为0(code0)的边沿表,则该边沿表存储模块的第一个描述字存储单元(linedescriptor1forcode0)的存储地址范围为21至(21+j10),存储地址字21为该第一个描述字存储单元存储行描述字的地址,22~(21+j10)依次为存储j个校验描述字112的地址;该边沿表存储模块100的第二个描述字存储单元(linedescriptor2forcode0)的存储地址范围为(21+j10+1)至(21+j10+1+j20),存储地址字(21+j10+1)为第二个描述字存储单元存储行描述字111的地址,(21+j10+2)~(21+j10+1+j20)依次为存储j个校验描述字112的地址;依次类推,该边沿表存储模块100的第x个描述字存储单元的存储地址范围为(21+j10+j20+……+j(x-1)0+(x-1))至(21+j10+j20+……+jx0+(x-1)),存储地址字(21+j10+j20+……+j(x-1)0+(x-1))为第x个描述字存储单元存储行描述字111的地址,存储地址字(21+j10+j20+……+j(x-1)0+x)~21+j10+j20+……+jx0+(x-1))依次为存储j个校验描述字112的地址。在本实施例中,行描述字的数据结构如图5所示,共有14比特,其中,[13:9]共5比特,为该行校验位置值的度数(该行校验位置值的数量)j;[8]共1比特,为最后一行标志位,用于区别该行是否为该码字类型边沿表的最后一行;例如,为1则代表本行为边沿表最后一行(当然也可以为0时为最后一行),读完次行表明该边沿表读取完成,只要不为最后一行就继续读取;[7:0]共8比特,为该边沿表对应码字类型的q值。实现上述数据结构的行描述字linedescriptor的m语言计算公式为:linedescriptor=dec2hex(((j-1)*2+if(lastgroup))*2^8+q);其中,j为所述行校验位置值的度数,j∈{3,j},即每种码字类型边沿表每行校验位置值的度数可能为3或j,j的具体取值参见表1;lastgroup为最后一行的标志位值,lastgroup为1表示本行为该码字类型边沿表的最后一行,为0代表非最后一行,在该公式中还进一步进行了十六进制转换,减少存储位。在本实施例中,每个校验位置值的校验描述字的数据结构如图6所示,共占16比特,并没有直接存储边沿表的每个校验位置值,其中,高位[15:9]共7比特为「校验位置值/q」,即校验位置值除以q取整部分值,该整数部分也表示要与校验节点cn对齐,变量节点vn输入需要移动的距离,所以不再需要单独计算变量节点vn输入需要移动的距离,直接读取高位7位的值就能直接获取,方便读取,提高读取效率。[8:0]共9比特为校验位置值%q,校验位置值除以q取取余值,表示本校验节点cn的cn地址。实现上述数据结构的校验描述字paritydescriptor的m语言计算公式为:paritydescriptor=dec2hex(mod(c(r,:),q).*2^9+(floor(c(r,:)./q))),其中,c(r,:)表示边沿表edgetable中第r行的校验位置值,r为不小于边沿表行数x的整数,q=(n-k)/360,n为对应码字类型的输出码长,k为对应码字类型的输入码长;在进行校验描述字计算时,还对整数部分进行了十六进制转换(dec2hex),进一步减小存储空间。综上所述,本实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构,如图7所示,外部接口包括时钟输入端口clk,复位输入端口rst,存储地址输入端口,数据输出端口,其中,存储地址字取值范围为0~7976,需要存储地址输入端口为13位,即romaddr[12:0];数据输出端口为16位并行数据输出,即romdata[15:0];数据输出端口也可以为17位,即romdata[16:0],[16]比特位用于区分该码字类型为short帧(短帧)还是normal帧(普通帧),为1代表normal帧,输出码长n为64800。为0代表short帧,输出码长n为16200,当然也可以为0时代表normal帧,为1代表short帧,在此对其不做限定。因为有先验信息前11种码字类型为normal帧,后10种码字类型为short帧,因此[16]位也可以省略,省略后数据输出端口的输出数据只有[15:0]共16位。如图8所示,为对本实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储结构进行逻辑仿真和资源消耗分析时,分析得到的逻辑资源消耗窗口截图,blockram(块随机存储器)消耗为4.5个,消耗的存储资源在25kbytes以内,只需要消耗很少的资源,实现低资源消耗。实施例二。如图9所示,本发明实施例提供的一种dvb-s2ldpc编译码校验矩阵的存储方法,包括如下步骤:步骤s100、计算每个码率(码字类型)校验矩阵对应边沿表每行的行特征;行特征包括对应行的行描述字和每个校验位置值的校验描述字;其中:行描述字包括对应行的校验位置值的数量、最后一行标志位(例如,当前计算的为该边沿表的最后一行,该最后一行标志位为记为1)以及对应码字类型的q值;q=(n-k)/360,n为该码字类型的输出码长,k为该码字类型的输入码长;校验描述字包括所述校验位置值除以所在边沿表对应q值的整除部分和余数部分。在本实施例中,按照一定顺序计算每一行的行特征,并在计算至边沿表最后一行时,在该行的行描述字添加最后一行标志。具体行特征的计算顺序为:(1)按照边沿表由上至下或由下至上依次计算每一行的行特征;(2)在计算每一行的行特征时,先计算行描述字,再计算校验描述字;(3)在计算一行校验位置值的校验描述字时,按照该行校验位置值由左至右或由右至左依次计算每个校验位置值的校验描述字。步骤s200、存储边沿表每行的行特征,得到存储该边沿表的边沿表存储模块,完成该边沿表的存储。在本实施例中,行特征存储的顺序与行特征的计算顺序一致;进一步地,可以计算一个行特征存储一个行特征,也可以计算完所有行的行特征,再按照计算顺序对所有行特征进行存储;在进行行特征存储时,先存储行描述字,再按照计算顺序对校验描述字进行存储。在读取时,根据行特征存储顺序进行相应读取,以便读取到校验位置值顺序正确的边沿表。在本实施例中,dvb-s2标准有21个码字类型的21个边沿表,在步骤s100中,需要按照一定顺序对21个边沿表进行计算,其中,按照一定顺序可以在计算前为每个码率的边沿表进行码字类型编号,并以该编号作为该码字类型的标识,按照编号顺序进行计算,例如,按照码率由小到大顺序,并先编标准帧,再编短帧的顺序,对21个码率依次进行码字类型编号,1/4码率标准帧的码字类型为0,1/3码率标准帧的码字类型为1,1/2标准帧码率的码字类型为2,……,37/45码率短帧的码字类型为19,8/9码率短帧的码字类型为20,也可以采用其它顺序,在此不对其做具体限定。在本实施例中,步骤s100包括:计算对应行的行描述字;计算该行的每个校验位置值的校验描述字。在本实施例中,每个边沿表包括x行,每行包括j个校验位置值(元素),称每行校验位置值的数量j为度数,其中,j∈{3,j},即每个码率对应的边沿表每行的校验位置值数量为3个或j个;每个码率的边沿表都对应一个j,j、校验位置值为3的行数以及校验位置值为j的行数通过边沿表直接获得;如表1所示,为根据dvb-s2标准附录b和c整理计算得到的不同码字类型(码率)的各参数值表,从表可知每种码字类型j的具体值,校验位置值个数为3和校验位置值个数为j的行数x,其中,x=k/360;以1/4码率标准码为例,其每行的校验位置值个数为3,或j=12,校验位置值个数为3和为12的行一共有45行,也就是说,该边沿表能够计算出45个行描述字,每个行描述字包括对应行的校验位置值的数量j(3或12)、最后一行标志位(0或1)以及对应码率的q值135;每行的校验描述字为3或12,校验描述字包括:校验位置值除以135的整数部分和余数部分。在本实施例中,每个边沿表的行描述字和校验描述字存储在连续的存储块上;对应行的行描述字与该行各个校验位置值的校验描述字连续存储;每行的行特征按照计算顺序连续存储,这样只要知道存储每个边沿表的边沿表存储模块首地址,就可以完成边沿表的读取。在本实施例中,在存储边沿表的第一行的行特征后,将该行的行描述字对应的存储地址字作为该边沿表存储模块的首地址存入指针存储模块,该指针存储模块对应的存储地址字与该码字类型的标识码相同,这样只要输入码字类型对应的标识码就能读取到存储该码字类型边沿表的边沿表存储模块首地址,从而读取到边沿表。在本实施例中,行描述字linedescriptor的m语言计算公式为:linedescriptor=dec2hex(((j-1)*2+if(lastgroup))*2^8+q);其中,j为所述行校验位置值的度数,j∈{3,j},即每种码字类型边沿表每行校验位置值的度数可能为3或j,j的具体取值参见表1;lastgroup为最后一行的标志位值,lastgroup为1表示本行为该码字类型边沿表的最后一行,为0代表非最后一行。校验描述字paritydescriptor数据结构(如图6所示)的m语言计算公式为:paritydescriptor=dec2hex(mod(c(r,:),q).*2^9+(floor(c(r,:)./q))),其中,c(r,:)表示边沿表edgetable中第r行的校验位置值,r为不小于边沿表行数x的整数,q=(n-k)/360,n为对应码字类型的输出码长,k为对应码字类型的输入码长。上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述
技术领域
:普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1