一种方便ldpc长码在fpga实现的编码器及编码方法

文档序号:7698530阅读:157来源:国知局
专利名称:一种方便ldpc长码在fpga实现的编码器及编码方法
技术领域
本发明涉及卫星数字多媒体广播领域,特别是涉及一种方便LDPC长码 在FPGA实现的编码器及编码方法。
背景技术
数字广播具有覆盖范围广、信号容量大等特点,因此,作为信息通信业 的一个重要组成部分,在国家信息基础设施建设、实现普遍服务和国家信息 安全战略中具有重要地位。
广播信道传输中,传输媒质和其它信号源会对信号引入一 系列的影响, 信号会出现衰落、畸变和干扰等,从而导致误码,通过信道编码交织等环节, 可以极大减少误码率。
现在的移动多媒体广播系统,将视频流进行外编码、外交织、LDPC内 编码、比特内交织等进行信号编码;解码时LDPC内解码可纠正外解码无法 纠正的一些错误。
DVB-S2外编码采用BCH编码,内编码也是使用LDPC编码,内外交 织都是采用比特交织。LDPC具有非常好的特点很逼近香农限的性能,且 解码简单,可实行并行操作,易于进行理论分析和研究。
中国专利"一种移动多媒体广播中的信道编码和交织方法"(专利号为 200610149782.0),对LDPC算法在通信领域中的运用优点做一些算法性 的说明和一些与具体运用环境相关的说明描述,说明了 LDPC在信道编码中 重要性和实现复杂性,但该专利对LDPC校验矩阵进行高度复杂和结构化设 计,造成具体实现和推广运用困难。

发明内容
本发明的目的在于克服现有技术的不足,提供一种方便LDPC长码在 FPGA实现的编码器及编码方法,以达到硬件资源少,设计复杂性低,操作
6频率高、实现简单,可靠性高的特点。
本发明目的通过如下技术方案予以实现
一种方便LDPC长码在FPGA实现的编码器,其特征在于包括编码控 制单元、兵乓緩沖分组输入模块,SDRAM校验矩阵分组模块、LDPC编码 模块、编码输出緩沖模块、LDPC内交织模块和内交织存储器,其中
乒乓緩沖分组输入模块包括两个緩冲模块,其中一个模块存储接收到 的待编码数据A,同时另 一个模块输出需要进行编码的待编码数据B;
SDRAM校验矩阵分组模块用于读取FLASH存储器中的校验矩阵并 进行存储;根据LDPC编码模块的指令将所需的校验矩阵传输给LDPC编 码模块;
LDPC编码模块用于接收从SDRAM校验矩阵分组模块输出的校验矩 阵和从乒乓緩冲分组模块输出的待编码数据B,进行编码运算得到奇偶矩阵
校验码序列;
编码输出緩沖模块,用于接收从LDPC编码模块输出的奇偶矩阵校验 码序列,并与编码控制器输出的码速率进行校验码匹配,输出匹配后的奇偶 矩阵校验码;
LDPC内交织模块用于接收从编码输出緩沖模块输出的匹配后的奇 偶矩阵校验码和没有进行编码运算的待编码数据B,进行比特合并,再根据 内交织存储器中的内交织数据进行比特交织,并输出交织后的编码数据;
内交织查找表用于存储内交织数据;
编码控制器对乒乓緩冲分组输入模块进行输入控制;对SDRAM校 验矩阵分组模块进行转存控制;对丄DPC编码模块进行编码控制;对编码输 出緩冲模块进行码速率输入;对LDPC内交织模块进行输出控制。
在上述方便LDPC长码在FPGA实现的编码器中,SDRAM校验矩阵分 组模块包括SDRAM数据接口、 SDRAM控制器和校验矩阵地址控制器,其 中
7SDRAM数据接口 存储校验矩阵;
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输入到第一解算单元,根据第一单元求解方程LTy二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输入到第一解 算单元,根据第一单元求解方程ITy:z进行解运算,得到求解结果y;将y 送入到第二解算单元,根据第二单元求解方程rXp-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比特交织器,其中
iiLDPC内交织存储器接收待编码数据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输入到第一解算单元,根据第一 单元求解方程LTy-z进行解运算,其中y是该单元的求解结果;然后将y 送入到第二解算单元,根据第二单元求解方程L/Xp-y进行解算,得到带有 奇偶校验信息的奇偶矩阵校验码Xp,其中U和L是上/下三角矩阵,具体流 程如图3所示。
步骤二与步骤三过程在LDPC编码模块中实现。
步骤四,将所述的奇偶校验矩阵信息比特数据Xp和输入数据(图1中
13的待编码数据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广播信道调制器上成功运用并通过相关广 电测i式。
以上所述,仅为本发明最佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知 技术。
权利要求
1、一种方便LDPC长码在FPGA实现的编码器,其特征在于包括编码控制单元、乒乓缓冲分组输入模块,SDRAM校验矩阵分组模块、LDPC编码模块、编码输出缓冲模块、LDPC内交织模块和内交织查找表,其中乒乓缓冲分组输入模块包括两个缓冲模块,其中一个模块存储接收到的待编码数据A,同时另一个模块输出需要进行编码的待编码数据B;SDRAM校验矩阵分组模块用于读取FLASH存储器中的校验矩阵并进行存储;根据LDPC编码模块的指令将校验矩阵传输给LDPC编码模块;LDPC编码模块用于接收从SDRAM校验矩阵分组模块输出的校验矩阵和从乒乓缓冲分组模块输出的待编码数据B,进行编码运算得到奇偶矩阵校验码序列;编码输出缓冲模块用于接收从LDPC编码模块输出的奇偶矩阵校验码序列,根据编码控制器输出的码速率得到具有一定长度的奇偶矩阵校验码,并将所述奇偶矩阵校验码输出给LDPC内交织模块;LDPC内交织模块用于接收从编码输出缓冲模块输出的奇偶矩阵校验码和没有进行编码运算的待编码数据B,进行比特合并,再根据内交织查找表中的内交织数据进行比特交织,并输出交织后的编码数据;内交织查找表用于存储内交织数据;编码控制器对乒乓缓冲分组输入模块进行输入控制;对SDRAM校验矩阵分组模块进行转存控制;对LDPC编码模块进行编码控制;对编码输出缓冲模块进行码速率输入;对LDPC内交织模块进行输出控制。
2、 根据权利要求1所述的一种方便LDPC长码在FPGA实现的编码器, 其特征在于所述SDRAM校验矩阵分组模块包括SDRAM数据接口 、 SDRAM控制器和校验矩阵地址控制器,其中SDRAM数据接口存储校验矩阵;SDRAM控制器读取FLASH存储器中的校验矩阵,并将校验矩阵存储在SDRAM接口中;根据校验矩阵地址控制器的指令将SDRAM接口中的 校验矩阵传输给LDPC编码模块;校验矩阵地址控制器接收LDPC编码模块的指令,控制SDRAM控 制器读取SDRAM接口中的校验矩阵传输给LDPC编码模块。
3、根据权利要求1所述的一种方便LDPC长码在FPGA实现的编码器, 其特征在于所述编码输出緩冲模块包括校验矩阵存储器和校验码输出控制 器,其中校验矩阵存储器接收从LDPC编码模块输出的奇偶矩阵校验码序列, 并根据校验码输出控制器的指令将一定长度的奇偶矩阵校验码输出给 LDPC内交织模块;校验码输出控制器根据编码控制器输出的码速率控制奇偶矩阵校验 码序列的长度。
4、根据权利要求1所述的一种方便LDPC长码在FPGA实现的编码器, 其特征在于所述LDPC内交织模块包括LDPC内交织存储器和LDPC比特交 织器,其中LDPC内交织存储器接收待编码数据B和编码输出緩冲模块输出的奇 偶矩阵校验码,形成比特合并;LDPC比特交织器读取LDPC内交织存储器中比特合并后的编码数据, 并根据内交织查找表中的内交织数据对所述编码数据进行比特交织,并输出交 织后的编码数据。
5、根据权利要求1所述的一种方便LDPC长码在FPGA实现的编码器, 其特征在于所述FLAS H存储器中的校验矩阵通过如下步骤得到(1) 预先设置HS-LDPC码的列重固定为3 ,生成一个具有三个分矩阵 的校验矩阵;(2) 根据HS-LDPC码的码长和行重,将所述校验矩阵的分矩阵生成若 干块校验子矩阵;(3) 根据所述的校验子矩阵码长除以所述的HS-LDPC码的行重值得到一单位校验矩阵;(4) 将所述的单位校验矩阵在所有的分矩阵中进行循环移位后,得到校 验矩阵。
6、根据权利要求1所述的一种方便LDPC长码在FPGA实现的编码 器,其特征在于所述LDPC编码模块中实现编码的方法为乘法单元将输入 的所述待编码数据B和从SDRAM校验矩阵分组模块输出的校验矩阵进行 并行乘法和累积运算得到运算结果z;将z输入到第一解算单元,根据第一 单元求解方程LTy-z进行解运算,得到求解结果y;将y送入到第二解算单 元,根据第二单元求解方程rXp-y进行解算,得到带有奇偶校验信息的奇 偶矩阵校验码Xp;其中U为上三角矩阵,L为下三角矩阵。
7、 一种方便LDPC长码在FPGA实现的编码方法,其特征在于包括如 下步骤(1 )根据待编码数据和待编码数据对应的校验矩阵进行编码运算得到奇偶矩阵校验码;(2)将所述奇偶矩阵校验码与码速率进行校验码的匹配,得到一定长 度的奇偶矩阵校验码;(3)将步骤(2 )中的奇偶矩阵校验码和没有进行编码运算的待编码数 据进行比特合并,得到合并结果;(4)根据内交织数据对所述合并结果进行比特交织,得到交织后的编 码数据。
8、 根据权利要求7所述的一种方便LDPC长码在FPGA实现的编码方 法,其特征在于所述步骤(1)中进行编码运算的方法为乘法单元将待编 码数据和校验矩阵进行并行乘法和累积运算得到运算结果z;将z输入到第 一解算单元,根据第一单元求解方程LTy-z进行解运算,得到求解结果y; 将y送入到第二解算单元,根据第二单元求解方程L*Xp=y进行解算,得到带有奇偶校验信息的奇偶矩阵校验码Xp;其中U为上三角矩阵,L为下三角矩阵。
全文摘要
本发明涉及一种方便LDPC长码在FPGA实现的编码器及编码方法,LDPC编码模块接收从乒乓缓冲分组输入模块输出的待编码数据和从SDRAM校验矩阵分组模块输出的校验矩阵,进行编码运算得到奇偶矩阵校验码,输出给编码输出缓冲模块进行码数率匹配,并将匹配后一定长度的奇偶矩阵校验码传输给LDPC内交织模块,进行比特合并和比特交织,并输出交织后的编码数据,采用本发明技术方案具有硬件资源少,设计复杂性低,操作频率高、实现简单,可靠性高的特点,并且可以根据实际运用需求和硬件资源情况,灵活实现不同的应用环境需求。
文档编号H04N7/26GK101489135SQ20091007728
公开日2009年7月22日 申请日期2009年1月22日 优先权日2009年1月22日
发明者叶南生, 王海涛, 邹光南 申请人:航天恒星科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1