首页> 中国专利> 一种方便LDPC长码在FPGA实现的编码器及编码方法

一种方便LDPC长码在FPGA实现的编码器及编码方法

摘要

本发明涉及一种方便LDPC长码在FPGA实现的编码器及编码方法,LDPC编码模块接收从乒乓缓冲分组输入模块输出的待编码数据和从SDRAM校验矩阵分组模块输出的校验矩阵,进行编码运算得到奇偶矩阵校验码,输出给编码输出缓冲模块进行码数率匹配,并将匹配后一定长度的奇偶矩阵校验码传输给LDPC内交织模块,进行比特合并和比特交织,并输出交织后的编码数据,采用本发明技术方案具有硬件资源少,设计复杂性低,操作频率高、实现简单,可靠性高的特点,并且可以根据实际运用需求和硬件资源情况,灵活实现不同的应用环境需求。

著录项

  • 公开/公告号CN101489135A

    专利类型发明专利

  • 公开/公告日2009-07-22

    原文格式PDF

  • 申请/专利权人 航天恒星科技有限公司;

    申请/专利号CN200910077283.9

  • 发明设计人 叶南生;邹光南;王海涛;

    申请日2009-01-22

  • 分类号H04N7/26(20060101);H03M13/11(20060101);H03M13/23(20060101);

  • 代理机构11009 中国航天科技专利中心;

  • 代理人安丽

  • 地址 100086 北京市海淀区知春路82号院

  • 入库时间 2023-12-17 22:23:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-04-27

    授权

    授权

  • 2009-09-16

    实质审查的生效

    实质审查的生效

  • 2009-07-22

    公开

    公开

说明书

技术领域

本发明涉及卫星数字多媒体广播领域,特别是涉及一种方便LDPC长码在FPGA实现的编码器及编码方法。

背景技术

数字广播具有覆盖范围广、信号容量大等特点,因此,作为信息通信业的一个重要组成部分,在国家信息基础设施建设、实现普遍服务和国家信息安全战略中具有重要地位。

广播信道传输中,传输媒质和其它信号源会对信号引入一系列的影响,信号会出现衰落、畸变和干扰等,从而导致误码,通过信道编码交织等环节,可以极大减少误码率。

现在的移动多媒体广播系统,将视频流进行外编码、外交织、LDPC内编码、比特内交织等进行信号编码;解码时LDPC内解码可纠正外解码无法纠正的一些错误。

DVB-S2外编码采用BCH编码,内编码也是使用LDPC编码,内外交织都是采用比特交织。LDPC具有非常好的特点:很逼近香农限的性能,且解码简单,可实行并行操作,易于进行理论分析和研究。

中国专利“一种移动多媒体广播中的信道编码和交织方法”(专利号为200610149782.0),对LDPC算法在通信领域中的运用优点做一些算法性的说明和一些与具体运用环境相关的说明描述,说明了LDPC在信道编码中重要性和实现复杂性,但该专利对LDPC校验矩阵进行高度复杂和结构化设计,造成具体实现和推广运用困难。

发明内容

本发明的目的在于克服现有技术的不足,提供一种方便LDPC长码在FPGA实现的编码器及编码方法,以达到硬件资源少,设计复杂性低,操作频率高、实现简单,可靠性高的特点。

本发明目的通过如下技术方案予以实现:

一种方便LDPC长码在FPGA实现的编码器,其特征在于包括编码控制单元、乒乓缓冲分组输入模块,SDRAM校验矩阵分组模块、LDPC编码模块、编码输出缓冲模块、LDPC内交织模块和内交织存储器,其中:

乒乓缓冲分组输入模块:包括两个缓冲模块,其中一个模块存储接收到的待编码数据A,同时另一个模块输出需要进行编码的待编码数据B;

SDRAM校验矩阵分组模块:用于读取FLASH存储器中的校验矩阵并进行存储;根据LDPC编码模块的指令将所需的校验矩阵传输给LDPC编码模块;

LDPC编码模块:用于接收从SDRAM校验矩阵分组模块输出的校验矩阵和从乒乓缓冲分组模块输出的待编码数据B,进行编码运算得到奇偶矩阵校验码序列;

编码输出缓冲模块,用于接收从LDPC编码模块输出的奇偶矩阵校验码序列,并与编码控制器输出的码速率进行校验码匹配,输出匹配后的奇偶矩阵校验码;

LDPC内交织模块:用于接收从编码输出缓冲模块输出的匹配后的奇偶矩阵校验码和没有进行编码运算的待编码数据B,进行比特合并,再根据内交织存储器中的内交织数据进行比特交织,并输出交织后的编码数据;

内交织查找表:用于存储内交织数据;

编码控制器:对乒乓缓冲分组输入模块进行输入控制;对SDRAM校验矩阵分组模块进行转存控制;对LDPC编码模块进行编码控制;对编码输出缓冲模块进行码速率输入;对LDPC内交织模块进行输出控制。

在上述方便LDPC长码在FPGA实现的编码器中,SDRAM校验矩阵分组模块包括SDRAM数据接口、SDRAM控制器和校验矩阵地址控制器,其中:

SDRAM数据接口:存储校验矩阵;

SDRAM控制器:读取FLASH存储器中的校验矩阵,并将校验矩阵存储在SDRAM接口中;根据校验矩阵地址控制器的指令将SDRAM接口中的校验矩阵传输给LDPC编码模块;

校验矩阵地址控制器:接收LDPC编码模块的指令,控制SDRAM控制器读取SDRAM接口中的校验矩阵传输给LDPC编码模块。

在上述方便LDPC长码在FPGA实现的编码器中,编码输出缓冲模块包括校验矩阵存储器和校验码输出控制器,其中:

校验矩阵存储器:接收从LDPC编码模块输出的奇偶矩阵校验码序列,并根据校验码输出控制器的指令将一定长度的奇偶矩阵校验码输出给LDPC内交织模块;

校验码输出控制器:根据编码控制器输出的码速率控制奇偶矩阵校验码序列的长度。

在上述方便LDPC长码在FPGA实现的编码器中,LDPC内交织模块包括LDPC内交织存储器和LDPC比特交织器,其中:

LDPC内交织存储器:接收待编码数据B和编码输出缓冲模块输出的奇偶矩阵校验码,形成比特合并;

LDPC比特交织器:读取LDPC内交织存储器中比特合并后的编码数据,并根据内交织查找表中的内交织数据对所述编码数据进行比特交织,并输出交织后的编码数据。

在上述方便LDPC长码在FPGA实现的编码器中,FLASH存储器中的校验矩阵通过如下步骤得到:

(1)预先设置HS-LDPC码的列重固定为3,生成一个具有三个分矩阵的校验矩阵;

(2)根据HS-LDPC码的码长和行重,将所述校验矩阵的分矩阵生成若干块校验子矩阵;

(3)根据所述的校验子矩阵码长除以所述的HS-LDPC码的行重值得到一单位校验矩阵;

(4)将所述的单位校验矩阵在所有的分矩阵中进行循环移位后,得到校验矩阵。

在上述方便LDPC长码在FPGA实现的编码器中,LDPC编码模块中实现编码的方法为:乘法单元将输入的所述待编码数据B和从SDRAM校验矩阵分组模块输出的校验矩阵进行并行乘法和累积运算得到运算结果z;将z输入到第一解算单元,根据第一单元求解方程U*y=z进行解运算,得到求解结果y;将y送入到第二解算单元,根据第二单元求解方程L*Xp=y进行解算,得到带有奇偶校验信息的奇偶矩阵校验码Xp;其中U为上三角矩阵,L为下三角矩阵。

一种方便LDPC长码在FPGA实现的编码方法,包括如下步骤:

(1)根据待编码数据和待编码数据对应的校验矩阵进行编码运算得到奇偶矩阵校验码;

(2)将所述奇偶矩阵校验码与码速率进行校验码的匹配,得到一定长度的奇偶矩阵校验码;

(3)将步骤(2)中的奇偶矩阵校验码和没有进行编码运算的待编码数据进行比特合并,得到合并结果;

(4)根据内交织数据对所述合并结果进行比特交织,得到交织后的编码数据。

本发明与现有技术相比具有如下优点:

(1)目前大多数LDPC矩阵都是长码,用普通的静态查表不仅复杂而且很占资源,本发明技术方案能够很方便实现LDPC编码功能,并达到资源少,设计复杂低,操作频率高的硬件特点。

(2)本发明乒乓缓冲是根据处理延时和速率匹配而设计,无需相关运算,具有实现简单,运算量少,可靠性高,所需硬件资源少的特点。

(3)本发明的LDPC处理速度是取决于工作时钟的频率、SDRAM的读写能力的累加时间以及内交织查找表LUT的深度和宽度,因此可根据实际运用需求和硬件资源情况,灵活实现不同的应用环境需求。

附图说明

图1为本发明编码器实现编码方法的工作流程图;

图2为本发明SDRAM校验矩阵分组模块结构图;

图3为本发明LDPC编码模块实现编码的工作流程图;

图4为本发明编码输出缓冲模块结构图;

图5为本发明LDPC内交织模块结构图;

图6为本发明编码控制器工作流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细描述:

如图1所示为本发明编码器实现编码方法的工作流程图,由图1可知编码器包括编码控制单元、乒乓缓冲分组输入模块,SDRAM校验矩阵分组模块、LDPC编码模块、编码输出缓冲模块、LDPC内交织模块和内交织查找表,其中乒乓缓冲分组输入模块,包括两个缓冲模块,其中一个模块用于将接收到的待编码数据A进行储存,同时另一个模块将需要进行编码的数据B输出。

如图2所示为本发明SDRAM校验矩阵分组模块的结构图,SDRAM校验矩阵分组模块用于读取FLASH存储器中的校验矩阵并进行存储,并根据LDPC编码模块的指令将所需的校验矩阵传输给LDPC编码模块。其中SDRAM校验矩阵分组模块包括SDRAM数据接口、SDRAM控制器和校验矩阵地址控制器,SDRAM数据接口存储校验矩阵,SDRAM控制器读取FLASH存储器中的校验矩阵,并将校验矩阵存储在SDRAM接口中,并根据校验矩阵地址控制器的指令将SDRAM接口中的校验矩阵传输给LDPC编码模块;校验矩阵地址控制器接收LDPC编码模块的指令,控制SDRAM控制器读取SDRAM接口中的校验矩阵传输给LDPC编码模块。

LDPC编码模块接收从SDRAM校验矩阵分组模块输出的校验矩阵和从乒乓缓冲分组模块输出的待编码数据B,进行编码运算得到奇偶矩阵校验码序列,具体编码方法为:整个编码过程包括一个乘法单元、第一解算单元和第二解算单元,其中两个解算单元过程在具体实现时被等价转换为一个查找表,乘法单元将输入的待编码数据B和从SDRAM校验矩阵分组模块输出的校验矩阵进行并行乘法和累积运算得到运算结果z;将z输入到第一解算单元,根据第一单元求解方程U*y=z进行解运算,得到求解结果y;将y送入到第二解算单元,根据第二单元求解方程L*Xp=y进行解算,得到带有奇偶校验信息的奇偶矩阵校验码Xp;其中U为上三角矩阵,L为下三角矩阵,如图3所示为本发明LDPC编码模块实现编码的工作流程图。

如图4所示为本发明编码输出缓冲模块结构图,编码输出缓冲模块用于接收从LDPC编码模块输出的奇偶矩阵校验码序列,根据编码控制器输出的码速率得到一定长度的奇偶矩阵校验码,并将所述奇偶矩阵校验码输出给LDPC内交织模块,由图4可以看出编码输出缓冲模块包括校验矩阵存储器和校验码输出控制器,其中校验矩阵存储器用于接收从LDPC编码模块输出的奇偶矩阵校验码序列,并根据校验码输出控制器的指令输出一定长度的奇偶矩阵校验码,校验码输出控制器则根据编码控制器输出的码速率控制奇偶矩阵校验码序列的长度,例如当码速率为1/2时,校验码序列为1152个重复的编码数据构成4608个信息比特,当码速率为3/4时,校验码序列为576个重复的编码数据构成2304个信息比特。

如图5所示为本发明LDPC内交织模块结构图,LDPC内交织模块用于接收从编码输出缓冲模块输出的匹配后具有一定长度的奇偶矩阵校验码和没有进行编码运算的待编码数据B,进行比特合并,再根据内交织查找表中的内交织数据进行比特交织,并输出交织后的编码数据,由图5可以看出LDPC内交织模块包括LDPC内交织存储器和LDPC比特交织器,其中LDPC内交织存储器接收待编码数据B和编码输出缓冲模块输出的匹配后的奇偶矩阵校验码,形成比特合并;LDPC比特交织器读取LDPC内交织存储器中比特合并后的编码数据,并根据内交织查找表中的内交织数据对所述编码数据进行比特交织,并输出交织后的编码数据。内交织查找表存储内交织数据,LDPC内交织模块根据内交织查找表完成比特交织。

如图6所示为本发明编码控制器工作流程图,编码控制器控制上述各模块的工作,包括对乒乓缓冲分组输入模块进行输入控制;对SDRAM校验矩阵分组模块进行转存控制;对LDPC编码模块进行编码控制;对编码输出缓冲模块进行码速率输入;对LDPC内交织模块进行输出控制。由图6可以看出,编码控制其首先进行校验矩阵转存处理,并检测校验矩阵转存状态,当转存完成后,进行乒乓缓存模块数据存储,并检测缓存模块状态,若满足编码要求,通知编码模块进行编码、编码输出缓冲模块接收奇偶校验码序列并检测检测校验码长度状态,如果满足码数率长度要求后输出奇偶校验码序列,在LDPC内交织模块将合并后的比特数据进行内交织,并输出交织后结果。

本发明编码器具体工作流程如步骤(1)-(5)所述:

(1)编码控制器对乒乓缓冲分组输入模块进行输入控制,乒乓缓冲分组输入模块接收待编码数据A并输出待编码数据B;

(2)在编码控制器的转存控制下,SDRAM校验矩阵分组模块读取FLASH存储器中的校验矩阵,并转存储在SDRAM中;

(3)在编码控制器的编码控制下,LDPC编码模块接收从SDRAM校验矩阵分组模块输出的校验矩阵和从乒乓缓冲分组模块输出的待编码数据B,进行编码运算得到奇偶矩阵校验码序列;

(4)编码输出缓冲模块接收步骤(3)中的奇偶矩阵校验码序列,并与编码控制器输出的码速率进行匹配得到一定长度的奇偶矩阵校验码;

(5)编码控制器将输出控制信号传输给LDPC内交织模块,LDPC内交织模块接收从编码输出缓冲模块输出的一定长度的奇偶矩阵校验码和没有进行编码运算的待编码数据B,进行比特合并,再根据内交织查找表进行比特交织,并输出交织后的编码数据。

本发明中采用一种“高度结构化的LDPC码”,表示为HS-LDPC码。HS-LDPC码是基于LDPC码的基础上对校验矩阵H进行高度结构化的编码设计。本发明中编码器具体实现方法包括如下四个步骤:步骤一,校验矩阵产生,利用编码器中的一校验矩阵产生单元预先设置的HS-LDPC码的码率、列重和行重值生成一奇偶校验矩阵,具体优选时将HS-LDPC码的列重固定为3,生成一个具有三个分矩阵的校验矩阵,然后根据HS-LDPC码的码长和行重,将所述校验矩阵的分矩阵生成若干块校验子矩阵,接着根据所述的校验子矩阵码长除以所述的HS-LDPC码的行重值得到一单位校验矩阵,最后将所述的校验单位矩阵在所有的分矩阵中进行循环移位的一校验矩阵,这个过程可以通过Matlab构造实现,然后将这个校验矩阵预先存放在FLASH存储器中并在进行编码运算之前编码控制器会将FLASH存储器中的数据读到SDRAM校验矩阵分组模块中供编码时使用;

步骤二,在编码控制器控制下,从乒乓缓冲分组输入模块中读取待编码数据块B和相对应的校验矩阵进行编码运算,整个编码过程包括一个乘法单元、第一解算单元和第二解算单元,其中两个解算单元过程在具体实现时被等价转换为一个查找表。所述的乘法单元将输入的待编码数据B和相对应的校验矩阵进行并行乘法和累积运算。

步骤三,接着将步骤二中的运算结果z输入到第一解算单元,根据第一单元求解方程U*y=z进行解运算,其中y是该单元的求解结果;然后将y送入到第二解算单元,根据第二单元求解方程L*Xp=y进行解算,得到带有奇偶校验信息的奇偶矩阵校验码Xp,其中U和L是上/下三角矩阵,具体流程如图3所示。

步骤二与步骤三过程在LDPC编码模块中实现。

步骤四,将所述的奇偶校验矩阵信息比特数据Xp和输入数据(图1中的待编码数据B)进行比特位合并,并将其结果数据输出,解算过程在LDPC内交织模块中实现,并参照内交织查找表。

下面为本发明的一个具体实施例:

LDPC编码器输入是以20M时钟,16比特宽的数据,最低位为最先输入的待编码数据符号,待编码数据以LDPC待编码块为单位进行输入,每次编码均连续输入十五个完整的待编码块;对1/2码率(4608是一个LDPC编码块),输入数据长度为15*4608/16=4320(word);对3/4码率(6912是一个LDPC编码块),输入数据长度为15*6912/16=6480(word);实现过程说明,以1/2码率为例,每个LDPC待编码数据块有15*4608比特,乒乓缓冲模块分组输入模块,按照每4608比特分组进行接收,当第一个分组已经接收完成,切换到另一个输入缓冲继续接收数据,乒乓缓冲模块分组输入模块,根据编码数率要求依次并行输出128比特进行编码,编码运算部分采用80MHz系统时钟,在切换缓冲后LDPC编码模块开始接收缓冲数据和读取SDRAM校验矩阵分组模块中的输出的校验矩阵进行简单与运算、异或运算和简单查表来实现LDPC编码运算,计算出具有奇偶矩阵校验矩阵信息的LDPC奇偶校验比特结果,得到本分组的校验比特,经过编码输出缓冲模块进行编码速率匹配后输出给LDPC内交织模块,LDPC内交织模块将具有奇偶校验矩阵信息的校验比特和待编码数据进行拼接,最后根据内交织查找表通过查表实现LDPC块内交织,并将编码输出。

本发明技术方案已在CMMB广播信道调制器上成功运用并通过相关广电测试。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号