于FPGA的LDPC编码器设计与实现

[09-12 18:12:34]   来源:http://www.88dzw.com  单片机学习   阅读:8192

文章摘要:图3 LDPC码编码器结构 图3中A、B、C、E分别代表图1中相应的矩阵,F代表Φ矩阵。从图3可知,LDPC编码器主要由缓冲器(buffer)、矩阵向量乘法器(MVM)、矩阵加法器(VA)、前向迭代运算器(FS)、向量合成器(CWG)等运算单元以及存储各个矩阵相关信息的存储器组成。因为前向迭代运算基本上是矩阵与向量的乘法计算,所以矩阵向量乘法是LDPC编码过程最核心的单元。 分析图3可知,编码过程中,Cs与As的计算是同时进行的,其他的操作都是串行进行的。由于行列交换保持了矩阵的稀疏性,所以与A、B、C、E矩阵的相关运算是稀疏矩阵的运算,存储矩阵所需的空间少同时实现的复杂度低和运算速

于FPGA的LDPC编码器设计与实现,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

图3  LDPC码编码器结构


   图3中A、B、C、E分别代表图1中相应的矩阵,F代表Φ矩阵。从图3可知,LDPC编码器主要由缓冲器(buffer)、矩阵向量乘法器(MVM)、矩阵加法器(VA)、前向迭代运算器(FS)、向量合成器(CWG)等运算单元以及存储各个矩阵相关信息的存储器组成。因为前向迭代运算基本上是矩阵与向量的乘法计算,所以矩阵向量乘法是LDPC编码过程最核心的单元。

   分析图3可知,编码过程中,Cs与As的计算是同时进行的,其他的操作都是串行进行的。由于行列交换保持了矩阵的稀疏性,所以与A、B、C、E矩阵的相关运算是稀疏矩阵的运算,存储矩阵所需的空间少同时实现的复杂度低和运算速度快。Φ是g×g的矩阵,由于在编码预处理过程中保证了g尽量小,所以与Φ矩阵相关的运算也是比较快的。

   LDPC码编码器复杂度

   表1和表2描述了编码器计算校验序列p1、p2的流程及相应的复杂度。

表1  p1的计算

表2 p2的计算


    从表1和表2可知RU算法的复杂度与N+g2成正比,g越小,编码复杂度越低。所以对校验矩阵进行行列交换时,使g尽量小是进一步降低编码复杂度的关键。

   表1中序号2与表2中序号4的操作涉及到下三角矩阵T。由于T-1也是下三角矩阵,为了降低复杂度,可采用前向迭代进行计算。例如:假设Qx=y,Q为下三角矩阵,求x。计算过程如下:


   编码器核心模块——矩阵向量乘法器(MVM)的实现

   矩阵与矩阵的乘法运算以及前向迭代运算实质上都是矩阵与向量的乘法。下面举例说明矩阵向量乘法器硬件实现的过程:


假设,

    对于LDPC编码器,如何有效率地存储各个矩阵的信息是降低复杂度的关键。下面给出一种矩阵存储的方案:矩阵存储器中记录“1”在行中的位置以及对应行行重,如表3所示。例如矩阵X第3行的“1”元素,在行中的位置为“0”,该行的行重为1。由于LDPC编码过程中使用的矩阵大多是稀疏矩阵,所以采用该矩阵存储方案能比较有效地利用存储的空间并有利于矩阵与向量乘法的快速实现。

    矩阵X每行中“1”的位置可看作选择向量s相应元素的地址索引,将选择的所有元素相加作和,即完成X中某行与向量的运算。由于涉及的运算都是二进制加法,相加作和操作可以作如下简化:根据矩阵每行“1”的位置选择向量s的元素。统计被选择的元素中“1”的个数,若结果为奇数则说明相加的结果为“1”,否则说明相加的结果为“0”。判断结果为奇数或者偶数可由其二进制形式的末位是“1”或者“0”得到。通过设置两个计数器分别计算各行行重和选择的向量s相应位置的元素中“1”的个数,即可实现乘法单元的运算。

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行