基于FPGA的LDPC编码器设计与实现_第1页
基于FPGA的LDPC编码器设计与实现_第2页
基于FPGA的LDPC编码器设计与实现_第3页
基于FPGA的LDPC编码器设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于FPGA的LDPC编码器设计与实现引言低密度奇偶校验(LowDensityParityCheckCode,LDPC)码是一类具有稀疏校验矩阵的线性分组码,不仅有逼近Shannon限的良好性能,而且译码复杂度较低,结构灵活,是近年信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。LDPC码已成为第四代通信系统(4G)强有力的竞争者,而基于LDPC码的编码方案已经被下一代卫星数字视频广播标准DVB-S2采纳。编码器实现指标分析作为前向纠错系统的重要引言低密度奇偶校验(Low Density Parity C

2、heck Code,LDPC)码是一类具有稀疏校验矩阵的线性分组码,不仅有逼近Shannon限的良好性能,而且译码复杂度较低, 结构灵活,是近年信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。LDPC码已成为第四代通信系统(4G)强有力的竞争者,而基于LDPC码的编码方案已经被下一代卫星数字视频广播标准DVB-S2采纳。编码器实现指标分析作为前向纠错系统的重要部分,设计高速率低复杂度LDPC码编译码器成为提高系统性能的关键。对LDPC码来说,其编码复杂度相对较大,编码器的设计与实现是首要任务,也是译码器设计与实现的前提,有着十分重要的作用。编码速率与复

3、杂度是评价LDPC编码器好坏的重要指标。考虑高清晰度电视(HDTV)标准在分辨率为1920×1080,帧率为60帧/s,每个像素以24比特量化时,总数据率在2Gb/s的数量级。采用MPEG-2压缩,要求数据率大约在2040Mb/s。编码器设计思路设LDPC码检验矩阵为H、生成矩阵为G。传统的编码方法是利用生成矩阵G直接进行编码。由于G并不具有稀疏性,直接编码的复杂度与码长N的平方成正比。本文的编码器采用RU编码算法。该算法通过对交换校验矩阵行列的位置,保持矩阵的稀疏性,利用交换行列后的校验矩阵进行编码,有效降低了编码的复杂度。经过行列交换的校验矩阵具有近似下三角形式,如图1所

4、示。图1  交换校验矩阵设信息序列为s,码字为C利用图1的矩阵可对信息序列s进行编码。码字分为三部分:C=(s,p1,p2),其中s是信息比特序列,长度为k;p1和p2是校验比特序列,长度分别为g和N-k-g。校验比特序列p1、p2计算公式如下:编码流程如图2所示。图2  编码流程图设计LDPC编码器的时候注意:在RU算法中,对校验矩阵进行行列交换,转化为近似下三角形式称为编码预处理过程。给定一个校验矩阵,编码预处理过程和矩阵的计算只需要做一次,所以可先用软件完成。实际的编码计算通过硬件实现。这样做有利于提高编码硬件实现的效率。LDPC码编码器实现LDPC码编码器硬件结构基

5、于RU算法的LDPC编码实现过程主要是计算p1、p2的过程。设计编码器时,为了提高编码速度,将可以同时计算的步骤作并行处理,得到编码器的硬件结构如图3所示。图3  LDPC码编码器结构图3中A、B、C、E分别代表图1中相应的矩阵,F代表矩阵。从图3可知,LDPC编码器主要由缓冲器(buffer)、矩阵向量乘法器(MVM)、矩阵加法器(VA)、前向迭代运算器(FS)、向量合成器(CWG)等运算单元以及存储各个矩阵相关信息的存储器组成。因为前向迭代运算基本上是矩阵与向量的乘法计算,所以矩阵向量乘法是LDPC编码过程最核心的单元。分析图3可知,编码过程中,Cs与As的计算是同时进行的,其他

6、的操作都是串行进行的。由于行列交换保持了矩阵的稀疏性,所以与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也是下

7、三角矩阵,为了降低复杂度,可采用前向迭代进行计算。例如:假设Qx=y,Q为下三角矩阵,求x。计算过程如下:编码器核心模块矩阵向量乘法器(MVM)的实现矩阵与矩阵的乘法运算以及前向迭代运算实质上都是矩阵与向量的乘法。下面举例说明矩阵向量乘法器硬件实现的过程:假设,对于LDPC编码器,如何有效率地存储各个矩阵的信息是降低复杂度的关键。下面给出一种矩阵存储的方案:矩阵存储器中记录“1”在行中的位置以及对应行行重,如表3所示。例如矩阵X第3行的“1”元素,在行中的位置为“0”,该行的行重为1。由于LDPC编码过程中使用的矩阵大多是稀疏矩阵,所以采用该矩阵存储方案能比较有效地利用存储的空间并有利于矩阵与

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

9、法器包括以下六个部分:调度单元(Scheduler),产生各模块单元的使能信号;缓存单元(Info_buffer),对输入信息序列进行缓存处理;存储器控制单元(Rom_ctrl),产生存储器的地址信号;“1”位置存储器(Rom_num),存储矩阵各行“1”的位置;行重存储器,存储矩阵相应各行行重;乘法单元(Multipler),进行向量乘法运算,最后输出码字。矩阵向量乘法器仿真结果验证在Quartus II环境下,实现output=Xs,得到如图5所示时序图。图5  output=Xs仿真时序图图5中“en”是使能信号,“clock”是时钟信号,addr_num、addr_wei分别为两个存储器的地址信号,info_seq是输入信息信号,rece是信息信号经过缓存后的输出信号,num_t是“1”在各行的位置信息,row_wei_t是相应各行的行重,output是矩阵与向量相乘的结果。由图5可知,output=1 1 1,信号输出有一个时钟周期的延时,仿真结果正确。编码器方案验证与优缺点分析本文利用FPGA实现了基于RU算法的编码器设计实现。在Quartus II软件环境下对LDPC编码器进行仿真,使用Stratix系列EP1s25F672I7芯片,对码长为504的码字进行编码。编码器占用约9%的逻辑单元,约5%的存储单元,综合后时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论