一种基于准循环生成矩阵的码率兼容LDPC编码器的制作方法

文档序号:23173384发布日期:2020-12-04 14:04阅读:290来源:国知局
一种基于准循环生成矩阵的码率兼容LDPC编码器的制作方法

本发明属于ldpc码编码器技术领域,尤其涉及一种基于准循环生成矩阵的码率兼容ldpc编码器。



背景技术:

低密度奇偶校验(ldpc)码由于具有可逼近容量极限的纠错性能、内在的自交织特性、可高度并行的译码算法和复杂度较低的译码器实现结构,在移动通信、光纤通信、磁记录设备和卫星通信等领域获得了广泛应用。

ldpc码的编码方法分为两大类,一是利用校验矩阵的特殊结构,如双对角结构等,直接根据校验矩阵进行编码;二是将校验矩阵变换为具有准循环结构的生成矩阵,再利用生成矩阵计算校验位。在卫星通信领域,使用准循环生成矩阵进行编码的一类ldpc码被广泛使用,由国际空间数据系统咨询委员会(ccsds)制定的近地和深空标准均使用了该类ldpc码,其中近地标准使用了7/8码率的ldpc码,深空标准则使用了1/2、2/3、4/5三种码率的基于原模图构造的ldpc码。

针对该类ldpc码ccsds组织提出了一种基于循环移位寄存器的高效编码器实现结构,如图1所示,这种编码器使用循环移位寄存器高效地实现了生成矩阵的准循环移位及编码累加计算,校验位的输出可共用移位电路,使得编码器的资源使用量极低,并且电路可达的时钟工作频率很高。



技术实现要素:

本发明解决的技术问题是:克服现有技术的不足,提供了一种基于准循环生成矩阵的码率兼容ldpc编码器,在硬件资源增加较少的情况下实现了多种不同的ldpc编码,解决了卫星通信中在硬件资源有限的条件下实现多种不同ldpc编码的难题,给出了一种复杂度低、可兼容多种ldpc码的高效编码器实现方法。

本发明目的通过以下技术方案予以实现:一种基于准循环生成矩阵的码率兼容ldpc编码器,包括:选择信号产生模块、移位首向量存储器模块和校验计算模块;其中,所述选择信号产生模块,根据编码器输入的编码类型(code_type)、虚拟填充长度(filled_len)和缩短长度(shorten_len),计算产生当前的块内计数值(cnt_cycle)、分块计数值(cnt_block)、各移位寄存器的路由选择信号(sel_shift)和校验选择输出信号(sel_out);所述移位首向量存储器模块,根据编码器输入的编码类型(code_type)和选择信号产生模块送来的分块计数值(cnt_block),计算当前码率下的移位首向量(shift_vector),送入校验计算模块的进行校验位的计算;所述校验计算模块,将移位首向量存储器模块输入的移位首向量(shift_vector)和当前编码器输入的信息位(input_message)相乘,并与上一级移位寄存器的输出值加和后送入本级移位寄存器,其中,上一级移位寄存器的位置可能随着码率和当前的分块计数不同而不同,由选择信号产生模块输入的路由选择信号(sel_shift)进行选择。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,所述选择信号产生模块包括查找表电路、起始计数值计算电路、结束计数值计算电路、块内计数器、分块计数器、输出选择电路和移位选择电路;其中,查找表电路根据输入的编码类型(code_type)以查表的方式产生对应生成矩阵的3个参数值,其中,3个参数值分别是生成矩阵的分块大小l、检验矩阵的行分块数量r和校验矩阵的信息行分块数c;起始计数值计算电路根据拟填充长度(filled_len)计算块内计数起始值(index_begin)和分块计数起始值(block_begin);结束计数值计算电路根据缩短长度(shorten_len)计算分块计数结束值(block_end)和块内计数结束值(index_end);块内计数器的值cnt_cycle在编码开始从块内计数起始值(index_begin)开始计数,直到cnt_cycle等于l-1时,再从0到l-1进行循环计数;分块计数器的分块计数值(cnt_block)在编码开始从分块计数起始值(block_begin)开始计数,每当分块计数值(cnt_block)等于l-1时,将分块计数值(cnt_block)加1,直到cnt_cycle等于块内计数结束值(index_end)且分块计数值(cnt_block)等于分块计数结束值(block_end)时,停止计数,并向输出选择电路发出帧结束标识end_frame;输出选择电路在分块计数值(cnt_block)小于或等于c-1时,校验选择输出信号(sel_out)输出0值使得编码器输出信息位,当分块计数值(cnt_block)大于c-1时,校验选择输出信号(sel_out)输出1值使得编码器输出校验位,直到收到分块计数器发送的帧结束标识end_frame,将校验选择输出信号(sel_out)输出0值,结束校验位输出;移位选择电路根据生成矩阵的分块大小l、检验矩阵的行分块数量r、校验矩阵的信息行分块数c和校验选择输出信号(sel_out)对校验计算模块的移位寄存器的移位链接关系进行控制,产生不同上级寄存器的路由选择信号(sel_shift)。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,移位首向量存储器模块为rom结构,由编码器输入的编码类型(code_type)和分块计数值(cnt_block)得到当前分块对应的rom读地址,再根据rom读地址读取得到当前分块的移位首向量。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,分块计数值(cnt_block)作为移位首向量存储器模块的输入,用于计算当前分块的移位首向量;路由选择信号(sel_shift)作为校验计算模块的输入,用于控制各移位寄存器的移位和反馈分支的选择;校验选择输出信号(sel_out)作为校验计算模块的输入,用于控制信息位和校验位的选择输出。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,当校验选择输出信号(sel_out)为0时,校验计算模块将编码器输入的信息位(input_message)直接输出;当校验选择输出信号(sel_out)为1时,则将移位寄存器的最低位reg_0作为校验位输出,输出校验位的过程中移位寄存器一直进行右移操作,所有校验位因此逐一从reg_0向外输出。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,分块计数起始值(block_begin)等于虚拟填充长度(filled_len)除以生成矩阵的分块大小l所得的商,块内计数起始值(index_begin)等于虚拟填充长度(filled_len)除以生成矩阵的分块大小l所得的余数。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,分块计数结束值(block_end)等于r-1减去缩短长度(shorten_len)除以l的商,块内计数结束值(index_end)等于l-1减去缩短长度(shorten_len)除以l的余数。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,当校验选择输出信号(sel_out)为0且当前寄存器reg_x的下标x满足x=l×i-1,i为任意小于c-r的正整数时,寄存器reg_x选择下标为l×(i-1)的寄存器作为上一级寄存器,否则将选择下标为x-1的寄存器作为上一级寄存器。

上述基于准循环生成矩阵的码率兼容ldpc编码器中,rom的位宽等于所有编码类型中校验位长度的最大值max_p_len,用li表示第i种编码类型的生成矩阵分块大小,ri表示第i种编码类型的检验矩阵行分块数量,ci表示第i种编码类型的信息行分块数,那么第i种编码类型的校验位长度为li×(ri-ci)。

一种基于准循环生成矩阵的码率兼容ldpc编码方法,所述方法包括如下步骤:选择信号产生模块根据编码器输入的编码类型、虚拟填充长度和缩短长度得到当前的块内计数值、分块计数值、各移位寄存器的路由选择信号和校验选择输出信号;移位首向量存储器模块根据编码器输入的编码类型和选择信号产生模块送来的分块计数值,计算当前码率下的移位首向量,送入校验计算模块的进行校验位的计算;校验计算模块将移位首向量存储器模块输入的移位首向量和当前编码器输入的信息位相乘,并与上一级移位寄存器的输出值加和后送入本级移位寄存器,其中,上一级移位寄存器的位置可能随着码率和当前的分块计数不同而不同,由选择信号产生模块输入的路由选择信号进行选择。

本发明与现有技术相比具有如下有益效果:

本发明克服现有基于循环移位寄存器的编码器只能针对一个准循环生成矩阵进行编码的不足,提供一种可兼容多种ldpc码的高效编码器,通过rom地址的划分及控制访问,实现对不同ldpc码生成矩阵循环移位向量的兼容,通过在寄存器循环移位电路中加入路由选择,实现对不同大小的矩阵分块的兼容。提出的编码器能够在增加少量硬件资源的基础上,实现多种不同的ldpc编码。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是现有技术中的ccsds提出的基于循环移位寄存器的高效编码器的示意图;

图2是本发明实施例提供的基于准循环生成矩阵的码率兼容ldpc编码器的结构框图;

图3是本发明实施例提供的选择信号产生模块结构图;

图4是本发明实施例提供的移位首向量存储器模块的存储结构图;

图5是本发明实施例提供的移位首向量存储器模块存储移位首向量的rom结构图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

图2是本发明实施例提供的基于准循环生成矩阵的码率兼容ldpc编码器的结构框图。如图2所示,该基于准循环生成矩阵的码率兼容ldpc编码器包括:选择信号产生模块、移位首向量存储器模块和校验计算模块;其中,

选择信号产生模块,根据编码器输入的编码类型(code_type)、虚拟填充长度(filled_len)和缩短长度(shorten_len),计算产生当前的分块计数值(cnt_block)、各移位寄存器的路由选择信号(sel_shift)和校验选择输出信号(sel_out);其中,分块计数值(cnt_block)作为移位首向量存储器模块的输入,用于计算当前分块的移位首向量;路由选择信号(sel_shift)作为校验计算模块的输入,用于控制各移位寄存器的移位和反馈分支的选择;校验选择输出信号(sel_out)作为校验计算模块的输入,用于控制信息位和校验位的选择输出;

移位首向量存储器模块,根据编码器输入的编码类型(code_type)和选择信号产生模块送来的分块计数值(cnt_block),计算当前码率下的移位首向量(shift_vector),送入校验计算模块的进行校验位的计算;

校验计算模块,将移位首向量存储器模块输入的移位首向量(shift_vector)和当前编码器输入的信息位(input_message)相乘,并与上一级移位寄存器的输出值加和后送入本级移位寄存器,其中,上一级移位寄存器的位置可能随着码率和当前的分块计数不同而不同,由选择信号产生模块输入的路由选择信号(sel_shift)进行选择;其中,当校验选择输出信号(sel_out)为0时,校验计算模块将编码器输入的信息位(input_message)直接输出;当校验选择输出信号(sel_out)为1时,则将移位寄存器的最低位reg_0作为校验位输出,输出校验位的过程中移位寄存器一直进行右移操作,所有校验位因此逐一从reg_0向外输出。

图3是本发明实施例提供的选择信号产生模块结构图。如图3所示,该选择信号产生模块包括查找表电路、起始计数值计算电路、结束计数值计算电路、块内计数器、分块计数器、输出选择电路和移位选择电路;其中,

查找表电路根据输入的编码类型(code_type)以查表的方式产生对应生成矩阵的3个参数值,其中,3个参数值分别是生成矩阵的分块大小l、检验矩阵的行分块数量r和校验矩阵的信息行分块数c;

起始计数值计算电路根据拟填充长度(filled_len)计算块内计数起始值(index_begin)和分块计数起始值(block_begin),其中,分块计数起始值(block_begin)等于虚拟填充长度(filled_len)除以生成矩阵的分块大小l所得的商,块内计数起始值(index_begin)等于虚拟填充长度(filled_len)除以生成矩阵的分块大小l所得的余数;

结束计数值计算电路根据缩短长度(shorten_len)计算分块计数结束值(block_end)和块内计数结束值(index_end),其中,分块计数结束值(block_end)等于r-1减去缩短长度(shorten_len)除以l的商,块内计数结束值(index_end)等于l-1减去缩短长度(shorten_len)除以l的余数;

块内计数器的值cnt_cycle在编码开始从块内计数起始值(index_begin)开始计数,直到cnt_cycle等于l-1时,再从0到l-1进行循环计数;

分块计数器的分块计数值(cnt_block)在编码开始从分块计数起始值(block_begin)开始计数,每当分块计数值(cnt_block)等于l-1时,将分块计数值(cnt_block)加1,直到cnt_cycle等于块内计数结束值(index_end)且分块计数值(cnt_block)等于分块计数结束值(block_end)时,停止计数,并向输出选择电路发出帧结束标识end_frame;

输出选择电路在分块计数值(cnt_block)小于或等于c-1时,校验选择输出信号(sel_out)输出0值使得编码器输出信息位,当分块计数值(cnt_block)大于c-1时,校验选择输出信号(sel_out)输出1值使得编码器输出校验位,直到收到分块计数器发送的帧结束标识end_frame,将校验选择输出信号(sel_out)输出0值,结束校验位输出;

移位选择电路根据生成矩阵的分块大小l、检验矩阵的行分块数量r、校验矩阵的信息行分块数c和校验选择输出信号(sel_out)对校验计算模块的移位寄存器的移位链接关系进行控制,产生不同上级寄存器的路由选择信号(sel_shift),当校验选择输出信号(sel_out)为0且当前寄存器reg_x的下标x满足x=l×i-1,i为任意小于c-r的正整数时,寄存器reg_x选择下标为l×(i-1)的寄存器作为上一级寄存器,否则将选择下标为x-1的寄存器作为上一级寄存器。

图4是本发明实施例提供的移位首向量存储器模块的存储结构图。如图4所示,移位首向量存储器模块为rom结构,由code_type和cnt_block计算得到当前分块对应的rom读地址,再根据读地址读取得到当前分块的移位首向量。rom的位宽等于所有编码类型中校验位长度的最大值max_p_len,用li表示第i种编码类型的生成矩阵分块大小,ri表示第i种编码类型的检验矩阵行分块数量,ci表示第i种编码类型的信息行分块数,那么第i种编码类型的校验位长度为li×(ri-ci)。rom从0地址开始依次存入各编码类型对应的ci个移位首向量,移位首向量的起始比特右对齐,在li×(ri-ci)小于rom位宽时左侧填充0比特;在存储一种编码类型对应的ci个移位首向量时,生成矩阵的各信息分块对应的移位首向量从左往右,存储地址依次递增。当前分块对应的rom读地址计算如下:根据编码类型(code_type)得到当前码类型的起始存储地址add_s为前面所有编码类型的信息行分块数的和,即addr_st=∑ci,i<code_type。当前分块的移位首向量地址值addr等于addr_st与cnt_block的和,即addr=∑ci+cnt_block,i<code_type。

校验计算模块中包含max_p_len个二进制乘法器、max_p_len个二进制加法器、max_p_len个寄存器和若干多路选择器,max_p_len为所有编码类型中校验位长度的最大值。校验计算模块将长度为max_p_len比特的移位首向量(shift_vector)的每一位分别与当前的编码器输入的信息位(input_message)相乘,相乘的结果与上一级移位寄存器的输出值加和后送入本级移位寄存器,其中上一级移位寄存器的位置可能随着码率和当前的分块计数不同而不同,具体由选择信号产生模块产生的路由选择信号(sel_shift)控制多路选择器进行选通,多路选择器的位置由实现的不同码类型参数决定,如果实现的码类型的生成矩阵分块大小为l,检验矩阵的行分块数量为r,校验矩阵的信息行分块数为c,那么第x个移位寄存器的移位输入前端将加入多路选择器,其中移位寄存器下标x满足x=l×i-1,i为任意小于c-r的正整数。

下面给出了一个基于fpga的高速码率兼容ldpc编码器的实例。本实施例从ccsds标准中选取了5个ldpc码进行码率兼容编码器的fpga高速实现,这5个码分别为ldpc(8176,7154)、ldpc(1536,1024)、ldpc(6144,4096)、ldpc(2048,1024)和ldpc(8192,4096)。

具体参数如表1所示:

表1.实现的各ldpc码的相关参数

移位首向量存储器模块存储移位首向量的rom结构如图5所示。

对于本实施例提出的这种编码器架构,在xilinxvirtex5xc5vfx130tfpga上实现了一个兼容5种码率的qc-ldpc编码器,固定码率编码器的实现按照ccsds给定的编码器结构进行实现,综合和布局布线采用ise14.7。码率兼容编码器和5种固定码率ldpc码编码器的fpga实现结果及资源占用对比如表2所示。

从表2中可以看到,采用ccsds编码器结构实现的固定码率编码器的资源占用量基本与码字的校验比特数成比例关系,不同编码器的最高工作时钟频率在250m到285m之间,如果采用5个不同码率的编码器实现5种不同的ldpc编码,所需的registers资源共为17551个,所需的luts资源共为12857个,分别占芯片总资源的22%和16%。使用提出的码率兼容编码器实现方案,由于循环移位校验计算电路得到了有效的复用,码率兼容编码器使用的registers资源为8838个,luts资源为6545个,分别占芯片总资源的11%和7%。需要说明的是码率兼容编码器的实现资源不包含blockram资源,这是由于存储生成矩阵循环移位向量的rom深度只有62,由于深度很小,具体实现时使用luts资源而非blockram资源。

表2码率兼容编码器和5种单码率ldpc编码器的fpga实现结果及资源占用对比

根据表2的资源使用情况及可达的最高时钟频率情况可知,提出的码率兼容编码器与5种码率实现后的选通码率兼容方案相比,提出的编码器仅使用了约50%的registers资源和43%的luts资源,同时码率兼容设计相对于固定码率的编码器,在可达的最高工作时钟频率上没有明显降低,工作时钟频率可达250m。

本实施例的码率兼容编码器,在实现多种ldpc编码的同时,能够有效复用生成矩阵循环移位向量产生电路和循环移位校验计算电路,减少硬件资源的消耗,并且该编码器可实现较高的工作时钟频率,适合于设计兼容多种准循环生产矩阵结构的ldpc编码器系统,如:符合ccsdsldpc编码规范的卫星通信应用等。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1