LDPC码的编译码算法研究本科毕业论文

上传人:仙*** 文档编号:74527101 上传时间:2022-04-14 格式:DOC 页数:41 大小:639.01KB
收藏 版权申诉 举报 下载
LDPC码的编译码算法研究本科毕业论文_第1页
第1页 / 共41页
LDPC码的编译码算法研究本科毕业论文_第2页
第2页 / 共41页
LDPC码的编译码算法研究本科毕业论文_第3页
第3页 / 共41页
资源描述:

《LDPC码的编译码算法研究本科毕业论文》由会员分享,可在线阅读,更多相关《LDPC码的编译码算法研究本科毕业论文(41页珍藏版)》请在装配图网上搜索。

1、 毕业论文题 目: LDPC码的编译码算法研究 摘 要低密度奇偶校验码(Low Density Parity Check Codes,简称LDPC码),本质上是一种线性分组码,更接近香农限。目前的研究均表明LDPC 码是信道编码中纠错能力最强的一种码,其译码器结构简单,在深空探测、卫星通信等领域可得到广泛的应用。文章介绍了LDPC 码,综述了其编码方法和译码方法。在编码方法中分别描述了校验矩阵的构造和基于校验矩阵的编码算法,对LDPC 码的快速编码方法进行分析。在译码方法中主要论述了消息传递译码算法、置信传播译码方法、最小和译码算法、比特翻转译码算法和加权比特翻转译码方法。对部分LDPC码的编

2、译码就行了仿真,同时对LDPC 码的编译码方法的发展及应用前景作了分析。本文的重点是对LDPC码的编译码算法的论述与研究,介绍LDPC码的基本原理和分类,分别从基于生成矩阵和基于校验矩阵详细讨论了LDPC码编码算法,简单介绍了线性分组码编码,LU分解法,RU分解法。并用简明例子对RU算法做了清晰的解释。对译码大致做了解释:分为软判决译码(MP算法)和硬判决译码(比特翻转算法和加权比特翻转算法)。在本文的最后用AWGN信道下LDPC码的性能仿真,主要是针对比特翻转算法进行仿真。做出理论比较。关键词:LDPC码 编译码 MATLAB Title:Encoding and Decoding Algo

3、rithms of LDPC Codes Abstract:LDPC code, namely Low Density Parity Check Code, is a kind of linear block codes in nature, and the decoding performance of LDPC is more nearer to the Shannon limit. With it s best performance and simple decoder structure, LDPC codes will be widely used in deep space ex

4、ploration, satellite communications and other fields. While briefly introducing LDPC codes are introduced briefly, this paper summarizes the encoding and decoding algorithms. The encoding algorithm is described in two steps: the const ruction of parity-check matrix and the encoding method based on p

5、arity-check matrix. Analyze the rapidly coding method for LDPC code. As to decoding algorithm, MP decoding method, BP decoding method, Min-Sum decoding method, Bit-Flipping method and Weighted Bit-Flipping method are discussed. Emulate for the LDPC codes .The development and application of encoding

6、and decoding methods is analyzed as well. This article focuses on encoding and decoding algorithms of LDPC codes,According to the different methods of decoding algorithm, and makes the theoretical MATLAB simulation.Key words:LDPC codes encoding and decodingMATLAB 37目 录1引言12 LDPC码概述32.1 线性分组码32.2 低密度

7、奇偶校验码(LDPC码)42.2.1 LDPC码定义43 LDPC码的编码算法63.1 基于生成矩阵的编码算法 (线性分组码编码)63. 2基于校验矩阵的编码算法 (LU 分解法)73.3基于校验矩阵的编码算法(RU算法)74 LDPC码的译码概述114.1 MP算法集114.2 硬判决译码算法134.2.1 比特翻转算法134.2.2加权比特翻转译码算法145 AWGN信道下LDPC码的性能仿真155.1 仿真软件简介(matlab&simulink)155.2 仿真与结果分析155.3 译码仿真系统框图及系统总流程图165.4 BF算法及其改进算法仿真17结 论19致 谢20参考文献21代

8、码221 引言通信系统的基本目的在于将信息由信源高效、可靠、有时还需安全地传送到信宿。有扰通信信道中的噪声会不可避免地对传输信息产生不同程度的干扰,从而可能降低通信可靠性。所以通信系统设计的核心问题就是在存在随机噪声的信道中如何克服干扰,减小信息传输的差错,同时又不降低信息传输的效率,即如何解决系统的有效性与可靠性之间的矛盾。一般地,通信系统的可靠性用误比特率(BER)来衡量,其有效性则用信息传输速率R比特/信道符号来衡量。早期的人们普遍认为:通信系统的可靠性与有效性之间是一对不可调和的矛盾,一方的改善总是以牺牲另一方为代价,并指出当功率受限时,在有扰通信信道上实现任意小错误概率的信息传输的唯

9、一途径就是把信息传输速率降低至零。Shannon信息和编码理论的奠基性论文“通信的数学理论”发表之后,改变了这一观点。他首次阐明了在有扰信道上实现可靠通信的方法,指出实现有效而可靠地传输信息的途径就是通过编码。根据Shannon的信息理论,数字通信系统的基本组成如图。 图1.1 数字通信系统基本模型Shannon的信息理论从通信系统的整体最佳化来研究信息的传输和处理。比特是一种通用的信息表示形式,它本身并不依赖于信源或信道特征。这就允许我们分别设计图11所示的两个阶段的信息处理,即信源编码和信道编码。Shannon不失最佳性地证明了这种分离性。图11中的信道部分只是信息传输所通过媒介的一种抽象

10、,实际的信道是多种多样的,如电缆、光缆、存储设备、甚至我们所处的实际空间及外太空等等。对于通信系统设计者来讲,了解系统中信道的特性是必需的。根据信道的输入输出的取值连续与否可以将其分为离散信道、连续信道和离散输入连续输出信道;根据信道统计特性是否随时间改变可以将其分为平稳信道和非平稳信道:根据信道的输出之间是否具有相关性可将其分为记忆信道和无记忆信道;根据信道的特性对输入端是否具有对称性可以将其分为对称信道和非对称信道。实际应用中所涉及到的信道大多都是离散输入的平稳无记忆对称信道,下面给出几种常用的编码信道模型。二进制对称信道(BSC):输入为二值变量0、1,输出也为二值变量0、l,且传输过程

11、中发生错误(输入为0输出为1或输入为1输出为0)的概率与输入无关:二进制删除信道(BEC):输入为二值变量0、1,输出或为输入的二值变量0、1,或为删除E,且通常传输过程中不同输入被删除的概率相同;二进制输入高斯信道(BIAWGN):输入为二值变量,输出为连续变量,且信道中的加性噪声为服从N(O,万2)的高斯随机变量。在过去的几十年里,移动通信技术得到了迅猛的发展和广泛的应用,至今已发展了三代。第一代移动通信(1G)是以模拟传输的方式进行语音通话,主要是采用以蜂窝结构网为核心的模拟技术和频分多址(FDMA)动态寻址技术。第二代移动通信(2G)以数字传输的方式进行语音通话和数据业务,2G系统采用

12、的是数字的时分多址(TDMA)或码分多址(CDMA)实现动态寻址功能,以GSM、CDMA系统为代表,实现了从模拟到数字系统的跨越。第三代移动通信(3G)是着重实现传统的移动通信与开放式的因特网融合,各个国家的网络将融合为一个整体。而在移动通信更新换代中,信道编码技术是其中非常重要的一项。本文所论述的LDPC码即是信道编码的其中之一。 MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对 MATLAB的功能进行扩充。MATLAB的数据分析和处理功

13、能十分强大,运用它对所涉及到的LDPC编译码进行仿真。 2 LDPC码概述2.1 线性分组码因为低密度奇偶校验码是一种特殊的线性分组码,所以本章将首先对线性分组码做一个概述,为讨论LDPC码作铺垫。 定义l:整数0,l,2,q1,q是自然数,在模P加和乘运算下构成一个伽逻华域GF(q)。定义2:如果一个分组码C,包含N个由GF(q)中的元素构成的码字(,),则当且仅当C构成一个GF(q)上的矢量子空间时,称C为q进制线性码。在本篇论文里,只考虑二进制码,所以q=2。定义3:线性码的维数等于对应的矢量空间的维数,一个长度为N,维数为K的线性码总共包括个长度为N的码字。线性码还有如下一些有用的性质

14、:性质1:任意码字的线性组合仍然是一个码字。此性质的一个结论是线性码必然包含一个全零码字。性质2:线性码的最小距离等于其中一个最轻非零码字的汉明重量。这一性质表明确定线性码的最小距离(决定检错和纠错能力)要比一般的分组码要容易的多。性质3:线性码中不可检测的错误图案与传输的码字无关,且由所有的非零码字组成。假设(, ,是组成(N,K)-进制码空闭的一组基底,对任意一个码字cC,存在唯一的表达形式C=+ (2-1)因为所有基元的线性组合仍然是一个码字,所以存在长度为K的码组和C中码字之间的一一映射。以下矩阵G就是由基矢按行排列而成。2.2 低密度奇偶校验码(LDPC码)2.2.1 LDPC码定义

15、 LDPC码是线性分组码中较为特殊的一种,但是目前LDPC码并没有严格的数学定义。考虑到其结构上的特点和叙述上的方便,本文对LDPC码做如下的定义。LDPC码是一个m行n列的稀疏矩阵H的零空间,H称为LDPC码的校验矩阵,并且满足:l、矩阵的行重、列重与码长的比值远小于1;2、任意两行(列)最多只有1个相同位置上的1;3、任意线性无关的列数尽量的大。这样的LDPC码码长为n,校验位长度大约为m,信息位长度为k n-m。一个规则LDPC码是指校验矩阵H满足列重和行重分别等于常数,和,因为我们并没有要求校验H是满秩矩阵,所以其码率为: r1-=1- (2-2)(2.3)式是一个n=10,=2, =

16、4 ,r=0.5规则LDPC码的校验矩阵。 (2-3)如果校验矩阵H的列重和行重并不是常数,我们就称其为不规则LDPC码,我们可以认为规则LDPC码是不规则LDPC码中的一个特例。不规则LDPC码可以用重量分布多项式来方便的描述。假设最大列重和最大行重分别是和,则H的列重分布多项式(x)可以表示为: (x)= (2-4) 其中,是重量为i的列所占的比例,同时(x) (1)=1。类似的,H的行重分布多项式(x)可以表示为: (x)= (2-5) 是重量为i的行所占的比例,(x)也满足(1)=1。此时,码率r满足: r1- (2-6)值得注意的是,对于一个给定的码长n和行、列重量分布多项式,我们得

17、到的是一类LDPC码而不是一个特定的LDPC码。我们得由上面的叙述我们知道,LDPC码是由其校验矩阵H定义的。对于一个线性分组码,其校验矩阵并不是唯一的。也就是说如果对于线性分组码的校验矩阵做行变换,得到的矩阵也是这个码的校验矩阵。但是,对于LDPC码这种特殊的线性分组码而言,由于译码算法的设计和性能分析的需要,我们仅仅关心其属于稀疏矩阵的这个校验矩阵,因此,定义一个LDPC码必须给出这个稀疏的校验矩阵才有意义。对于LDPC码的生成矩阵,并没有其他特殊的限制。为了分析的方便,我们可以用因子图来表示一个LDPC码。图中的变量节点 (i=0,l,n-1)与校验矩阵的列(也即码字中的每一位)一一对应

18、,校验节点j(j=0,1,m-1)与校验矩阵的行(也即各个校验方程)一一对应。和;相连接,当且仅当校验矩阵中对应位置的元素是1。这样,该因子图是一个偶图,其邻接矩阵就是该校验矩阵。图21是(27)式中校验矩阵的因子图。由于LDPC码定义中的第2条的限制,因子图中不会存在长度等于4的圈(对任意一个偶图,圈的最小长度为4)。 图2.1 LDPC码的因子图表示一般而言,不规则码的性能要优于规则码,但是实现的复杂度和分析的复杂度都要大得多。非规则码的编译码方法与规则码相似,而其性能却优于规则码,这是因为非规则码的“波浪效应”,在LDPC码的随机双向图中,对信息节点来说,其度数越高,它从校验节点所获得的

19、信息也就越多,也就能更准确的判断其校验值;反之,从校验节点的角度来看,希望度数低,其度数越低,那么传播到相邻节点的有用信息也就越多。而非规则码的随机双向图就很好的平衡了信息节点与校验节点二者对度数的要求。而所谓的“波浪效应”也就是度数大的信息节点首先获得正确值,然后度数小的信息节点也可以获得正确值。非规则码的产生,使规则LDPC码的定义产生了变化。在非规则码中,度的变化范围很大,往往最大度可达几十或上百,因此,我们更广泛地把度的变化很微小的LDPC码都称之为规则的。非规则码的产生,使规则LDPC码的定义产生了变化。在非规则码中,度的变化范围很大,往往最大度可达几十或上百,因此,我们更广泛地把度

20、的变化很微小的LDPC码都称之为规则的。3 LDPC码的编码算法 3.1 基于生成矩阵的编码算法 (线性分组码编码)设 mn 的较验矩阵H 的所有行都是线性无关的。根据分组码定义,对于输入信源u,u ,编码后得到的码字c,c ,满足方程:H = 0为了在接受端易于区分信息位和校验位,通常采用系统码。但是,对于任意一个随机构造的校验矩阵H,它具有非系统码的形式,因此首先需要对给定的校验矩阵H进行行列变换,分解成的形式,其中A为m (n - m)维的矩阵,B为mm的满秩矩阵,则码字c= 满足即 Au + Bp = 0 因此,得到校验位p = -Au 其中“-”表示向量- Au的逆元,在二进制编码中

21、逆元是其本身。3. 2基于校验矩阵的编码算法 (LU 分解法)利用矩阵 B 的系数特性,对校验位p = -B-1Au的求解采用以下方法:首先对 B 矩阵进行 LU 分解,即 B = LU,其中 L 为下三角矩阵,U 为上三角矩阵,则校验位满足LUp = -Au,然后通过以下步骤计算校验位:1z = Au,由于A是稀疏矩阵,所以计算复杂度正比于m。2令Up = y,则Ly = -z,通过前向递归运算得到y 的值。3通过后向递归运算,解方程Up = y 得到校验位p。3.3基于校验矩阵的编码算法(RU算法)在对LDPC码进行编码的时候,人们希望校验矩阵是下三角矩阵,如图31所表示。但在实际情况中,

22、校验矩阵往往不能化为下三角矩阵。Richardson和Urbankc在提出了一种很好的编码算法,即RU算法。RU算法仅仅通过行列置换将一般的低密度奇偶校验矩阵化为一个近似下三角矩阵,可以使编码复杂度从高斯消元法的o(m2)降为o(n+92),其中g为近似下三角矩阵与下三角矩阵的差距,并且在最恶劣的情况下,它也只是与码长行的一小部分成比例。首先,通过行变换与列变换的方法将奇偶检验矩阵重新排列为近似下三角形式,如图3.2所示。由于原矩阵J5r非常稀疏,而且在矩阵变换中只有行列交换,因此变换后的校验矩阵仍是稀疏矩阵,A、B、C、D、E、T分别是(m-g)(n-m)、(m-g)g、g (n-m)、g

23、g、g (m-g)、(m-g)(m-g)维稀疏矩阵。并且T是下三角矩阵矩阵且对角线上的元素全部为l。H= (3-2)长度为k=n-m的信源向量s被编码成一个码字向量x=(s,),、分别定义一个校验向量,长为g,长为m-g。编码步骤如下:1、 计算信源向量的上校正子 =A (3-3)2、 找出第二个校验向量的临时值,使得上校正子为零 = (3-4)通过回代算法可以在线性时间内得出这个向量,即计算的第一个比特,然后是第二个比特,然后是第三个,如此等等。3、计算向量的下校正子 (3-5)4、现在准备求第一个检验向量。定义矩阵F=-EB+D并求出它的逆矩阵,这个计算只需要完成一次而它的复杂度O(),这

24、个逆矩阵是一个gxg维高密度矩阵。设第一个校验向量为 (3-6)这个操作的复杂度为o()。注意这时找第一个校验向量的正确值。5、抛弃临时检验向量西并找出新的上校正子 (3-7)这也可以在线性时间内完成。6、求出第二个检验向量的值,使得上校正子为零 (3-8)这个向量可以用回代算法在线性时间内求出。计算,的复杂度如表3,1和表3.2所示。 表31计算的复杂度操 作复 杂 度备 注AO(n)稀疏矩阵和向量相乘 O(n) 稀疏矩阵和向量相乘 O(n)稀疏矩阵和向量相乘向量的减法运算 O(n)矩阵的求逆运算高密度矩阵和向量相乘表32计算的复杂度 操 作复 杂 度备 注AO(n)稀疏矩阵和向量相乘 O(

25、n)稀疏矩阵和向量相乘A+ O(n) 稀疏矩阵和向量相乘向量的加法运算- (A+) O(n)稀疏矩阵和向量相乘例 2.4 一个(12,3,6)LDPC 码的校验矩阵如下:将列重新按下序排列:1,2,3,4,5,6,7,10,11,12,8,9 得到一个g =2的近似下三角矩阵为用高斯消元法消去矩阵 E ,得到可以看到矩阵U 是奇异矩阵,这种奇异性可以通过交换列5,8 来消除。于是最终列的排序为:1,2,3,4,10,6,7,5,11,12,8,9。对应的等价矩阵为假设待编码的信息比特为s = (1 0 0 0 0 0),按照上述步骤计算:根据得到的计算 因此编码得到的码字为将上述码字代入式(2

26、.4)进行检验,得到HcT = 0,因此满足校验方程。上述有效编码方法,利用了校验矩阵的稀疏性,适用于任何基于稀疏校验矩阵的编码。4 LDPC码的译码概述LDPC码具有良好性能的重要原因之一是LDPC码采用了基于置信传播的迭代译码算法,这是一种迭代概率译码算法,是LDPC码与传统纠错码的重要区别。4.1 MP算法集信息传递(Message Propagation,MP)算法是最主要的一类LDPC码译码算法,它具有严格的数学结构和良好的性能,使用它能对译码性能做定量分析。LDPC码译码算法中很多种都可以被归结到信息传递算法集中。信息传递算法的主要思想就是通过在变量节点和校验节点之间来回传递概率似

27、然值,最终找到正确的码字。这一过程在Tanner图上可以直观的表示出来,信息在Tanner图中沿着连接变量节点和校验节点的边双向传递。变量节点接收与它相连接的校验节点送来的节点信息,然后根据这些信息计算出反馈给各校验节点的信息。校验节点开始接收与它相连接的变量节点送来的节点信息,然后根据这些信息计算出反馈给各变量节点的信息,如此往复形成迭代。每次迭代结束后,对每个变量节点做判决,得出一个码字,再通过校验矩阵验证码字正确性。如果译码成功,则译码结束;否则继续迭代,直到达到预先设定的最大迭代次数。信息传递算法为了保证传递信息的独立性,每个节点接收的信息都是从除自身之外的其他节点而来。但是由于现实中

28、所使用的码长都是有限的,使得节点不可能永远收到与自身无关的信息,即存在环的影响。以一个行重为,列重为的正则LDPC码为例,当前迭代周期中某一变量节点送来的信息直接来自。个校验节点,而这些校验节点所送来的信息又来自与各自相连的以一1个变量节点在上一迭代周期中送出的值,如下图所示的树状图表示它们之间的关系。因此,在LDPC码译码过程中环对译码的影响是不容忽视的。 图 3.3 节点树LDPC码有很多种译码方法,本质上大都是基于Tanner图的信息传递译码算法。根据信息迭代过程中传送消息的不同形式,可以将LDPC的译码方法分为硬判决译码和软判决译码。如果在译码过程中传送的信息是比特值,称之为硬判决译码

29、,如BF算法,它具有较低的译码复杂度,易于工程实现。但是与软判决译码相比,硬判决译码在性能上要损失约2-3dB;如果在译码过程中传送的信息是与后验概率相关的信息,称之为软判决译码,如置信传播译码算法。虽然软判决算法译码复杂度较高,但可以获得更好的译码准确性,比硬判决译码具有更大的编码增益。在AWGN信道中,它比硬判决译码要多2dB左右的软判决增益,而在衰落信道中,软判决增益超过5dB。硬判决译码可以看成是l比特量化译码,而软判决译码可以看成无穷多比特量化译码。主要的硬判决译码算法有比特翻转算法(BF)、加权的比特翻转算法(WBF)等;软译码算法主要有置信传播算法(BeliefPropagati

30、on)、简化的最小和算法(Min-sum)、归一化最小和算法(Normalized MinSum)、偏移量最小和算法(OffsetMinsum)等。4.2 硬判决译码算法4.2.1 比特翻转算法Gallager在其论文中提出了硬判决译码算法,该算法是一种比较简单而且容易理解的译码算法,它对运算量和存储量的要求都很低,但是其性能相对比较差。比特翻转算法(Bit Flipping Algorithm)可看成是置信传播算法的简化形式,而加权位翻转译码算法是在BF算法的基础上加上硬判决译码系数,其性能较比特翻转译码算法有一定程度的提高比特翻转算法(Bit Flipping Algorithm)是Gal

31、lager在其论文中提出的被命名为Gallager硬判决的译码算法。设码字c=为发送序列,经BPSK调制为序列x=,为接收的实数向量序列,由实数序列可以得到硬判决二元向量序列z=(): (4-1)由此得到码字伴随式s=()= ,若,则说明接收向量满足第j个校验方程;若s=0,则表示接收向量满足所有校验方程,接收码字z正确,译码成功;若伴随式为非全“0”向量时,接收序列z有错误,此时则需计算出每个码元不满足校验方程的个数f=,搜索f中的最大值,翻转对应位置的码元。再重复上述的过程,直到译码成功后达到最大迭代次数。BF译码算法步骤如下:(1)根据硬判决二元向量序列得到码字的伴随式s,判断s是否为全

32、“0”,如果为全“0”,则译码成功,否则转(2);(2)计算f,并找出其最大值=maxf,翻转对应位置的码元;(3)将得到的新的向量序列代替原向量,转(1),如满足伴随式全为“0”,译码成功,跳出,否则重复上述步骤,直到达到最大迭代次数。由于校验矩阵为稀疏矩阵,而且一般为随机构成,所以参与每个校验方程的比特很少,且这些比特在码字上分布很分散,那么任一校验方程所含的比特要么无错,要么以很高概率的只有一个比特错误,BF算法就可以有效地进行纠错。即使某一校验方程发生多于一个错误,纠错仍可以进行。但是相对的牺牲的就是译码性能,所以下面对于硬判决译码算法提出了一种加权硬判决译码算法,它是在BF算法基础上

33、进行了一定的改进,在性能上有了一定的提高。4.2.2加权比特翻转译码算法在译码接收端通过添加一些可信信息将可以提高BF算法的纠错性能。那么,加权比特翻转译码(WBF)算法就是在选择需要翻转的变量节点的时候,将每一个码字中不满足校验方程个数最多的码元的信道输出信息作为该判决式的权重信息。设译码器接收端的输入信息为,其中是经过调制后的信息,为加性高斯白噪声。为校验矩阵,表示与校验节点m相连的变量节点,表示与变量节点刀相连的校验节点。因此,WBF算法的一般步骤如下,其中m=0,1,M1,n=0,1,N1:(1)根据硬判决二元向量序列z得到码字的伴随式为s,判断s是否为全“0”,如果为全“0”,则译码

34、成功,否则转(2);(2)计算 0iN1,nN(m);(3)对于n=0,1,N1,计算,并找出其中最大的值,翻转对应位置的;(4)将得到的新的向量序列代替原向量,转(1),如满足伴随式全为“0”,译码成功,跳出,否则重复上述步骤,直到达到最大迭代次数。加权译码算法是通过软判决译码算法和附加信息来计算加权校验信息E,这种算法虽然比单纯的BF算法在复杂度上有了增加,但是却具有更好的译码性能。5 AWGN信道下LDPC码的性能仿真5.1 仿真软件简介(matlab&simulink)MATLAB软件MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据

35、、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业

36、性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。其中的Communication Toolbox通讯工具箱与Signal Processing Toolbox信号处理工具箱等在通信方面得到很多应用。Simulink仿真软件近年来,由于问题域的扩展和仿真支持技术的发展,系统仿真方法学致力与更自然地抽象事物的属性特征,寻求使模型研究者更自然地参与仿真活动的方法。在这些探索的推动下,MATHWORKS公司推出的Si

37、mulink提供了一个系统级的建模与动态仿真的图形用户环境,并且利用MATLAB在科学计算上的天然优势,建立起了一个从设计构思到最终要求的可视化桥梁,它的模块化,可以很方便的创建和维护一个完整的模型评估不同的算法和结构并验证系统性能5.2 仿真与结果分析仿真中采用的信道都是二进制输入的加性高斯白噪声信道,采用的调制方式都是基带BPSK调制。一般在仿真中要获得较低的误比特率需要大量的数据帧,而在码长较长时大量的数据帧的计算要花费很多时间,因此只选定了一些码长相对较短的规则LDPC码进行了仿真。而由于受码长和仿真数据量的限制使得仿真得到的性能结果较LDPC码所能够达到的性能指标有一定的差距。仿真中

38、所用的是规则的LDPC码,其校验矩阵使用Gallager的随机构造的方法生成,具有固定的列重和行重。由于在编码二分图中长度为4的圈的存在会导致LDPC码的误码率性能变得很差,因此构造的校验矩阵在编程上考虑了消除长度为4的圈。仿真中选用了码率为1/2和2/3,码长分别为48、96、204、408和816五种码长的LDPC码娜l;主要针对码长为816、码率为1/2的LDPC码,对基于BF算法的各种硬判决译码算法和基于BP算法的各种软译码算法及其改进算法的进行仿真,并比较了不同算法的误码率性能,同时得到了一些算法性能最好时的参数配置。然后对码长为204、408和816,码率都为1/2的三种码型进行了

39、仿真,分析码长与误码性能的关系;对于码长为%和 816,码率分别为1/2和2/3两种码型进行仿真,并比较其性能;然后对码长为816,码率都为1/2的迭代次数分别取20、30、40和50四种情况进行了仿真,分析迭代次数与误码性能的关系;从而确定了各种改进算法的性能及其码长、码率和迭代数对译码性能的影响。5.3 译码仿真系统框图及系统总流程图为了仿真LDPC码的译码性能要搭建一个从发送到接收的简单系统,系统框图如图5一1所示 图5-1 LDPC译码仿真系统框图针对LDPC译码仿真系统框图做了其对应的流程图,如图5一2所示。 图5-2 译码仿真系统总流程图5.4 BF算法及其改进算法仿真图5-3为比

40、特翻转算法和改进的加权比特翻转算法的误码率性能仿真结果。选用的码型为LDPC(8l6,3,6),最大迭代次数为50。 图5-3 BF算法及其3种改进算法在LDPC(816,3,6)中的性能由图5-3可以看出,比特翻转算法及其另外的三种改进算法的误码率性能总体比较差,在信噪比达到6dB以上时,它们的误码率才可以达到数量级的水平。从每个算法性能看,单纯的硬判决比特翻转的BF算法性能最差,当信噪比小于5dB时,误码率一直处于之上,即使信噪比达到6dB,它的误码率刚接近了。KLF算法的性能比BF算法相对要好一些,在信噪比小于 6dB时,KLF算法的性能比BF算法好很多,在误码率为处和处,KLF算法比B

41、F算法的大约有0.7dB的改善,在信噪比接近 6dB时,两种算法的性能差距大幅缩小,达到了同一数量级。而改进的两种加权的比特翻转算法IMMBF和RRWBF的性能较前两种算法相比,性能有了明显的改善,尤其是在信噪比小于4dB的范围内,但信噪比大于4dB时,它们的性能与KLF性能变得很接近,IMMBF算法的性能最佳,总体讲,改进的算法与原始的BF算法相比,误码率性能有了一定的提高,但效果有限在实际信号的信道译码中,这些算法虽然复杂度较小,然而实用性较差。结 论信道编码理论及技术作为现代通信系统必不可少的关键技术,在香农的信道编码定理的指引下, LDPC码作为一种新的编码方式,由于其校验矩阵具有稀疏

42、的特点,使得它的译码复杂度与码长呈线性的关系,而性能却很接近Shannon的极限,因此得到了人们更多的注意。本文在对LDPC码进行研究的时候,主要完成了以下几个方面(1)介绍LDPC码的基本原理和分类,分别从基于生成矩阵和基于校验矩阵详细讨论了LDPC码编码算法,简单介绍了线性分组码编码,LU分解法,RU分解法。并用简明例子对RU算法做了清晰的解释。(2)对译码大致做了解释:分为软判决译码(MP算法)和硬判决译码(比特翻转算法和加权比特翻转算法)。(3)在本文的最后用AWGN信道下LDPC码的性能仿真,主要是针对比特翻转算法进行仿真。作者在理解LDPC码基本编译码理论的基础之上,认为有待于对如

43、下问题将LDPC码做进一步的研究1、LDPC码的校验矩阵结构及其优化已经证明了非规则码比规则码具有更好的性能,采用具有非均匀行、列重量的非规则码均可改善码的性能,因此校验矩阵的结构及其优化还有待进一步的研究。2、LDPC码长码的快速编码由于编码的复杂度与码长二次方成正比,在实际应用中长码的编码是难以接受的如何实现LDPC码长码的快速编码也是一个很值得研究的问题。3、LDPC码的译码算法LDPC码的译码算法是影响其性能的一个重要因素。在存在闭合环路时BP算法会降低误码性能。如何在不造成过高译码复杂度的情况下,提高LDPC码的译码性能是一个研究课题 LDPC码是信道编码技术发展的一个新的里程碑,它

44、以卓越的性能和线性的译码方法,得到了人们的广泛重视,它的出现,必将为第四代移动通信技术带来新的发展。致 谢参考文献1贺鹤云. LDPC码基础与应用. 人民邮电出版社,20092袁东风, 张海刚. LDPC码理论与应用, 人民邮电出版社,20083符初生,周亮,文红. LDPC码原理与应用. 电子科技大学出版社,20064(美)传特. 通信系统仿真原理与无线应用. 机械工业出版社,20055周建兴. MATLAB从入门到精通. 人民邮电出版社, 20086(美)亨塞尔曼,(美)利特菲尔德. 精通Matlab 7. 清华大学出版社,20067张德丰. MATLAB/Simulink建模与仿真. 电

45、子工业出版社,20098邵玉斌. MATLAB/SIMULINK通信系统建模与仿真实例分析. 清华大学出版社,20089张建国.LDPC码的应用研究J.通信技术.2003年11期210李水平,刘玉君,王云鹤.串行级联LDPC码J.信息工程大学学报.2004年02期11苏杰,王琳,赵春雨.规则LDPC码在瑞利平坦衰落信道下的设计和仿真J.电讯技术.2004年05期12王鹏,王新梅.LDPC码的快速编码研究J.西安电子科技大学学报.2004年06期13仲海梅,王锐华.4G中的纠错编码技术LDPC码及其新进展J.广东通信技术.2004年12期14J Chen, A Dholakia, E Eleft

46、heriou. “Reduced-complexity decoding of LDPC codes”. 2005.代码% Bit error rate of BPSK modulated LDPC codes under AWGN channelclc; clear all;% LDPC matrix size, rate must be 1/2% Warning: encoding - decoding can be very long for large LDPC matrix!M = 1000;N = 2000;% Method for creating LDPC matrix (0

47、= Evencol; 1 = Evenboth)method = 1;% Eliminate length-4 cyclenoCycle = 1;% Number of 1s per column for LDPC matrixonePerCol = 3;% LDPC matrix reorder strategy (0 = First; 1 = Mincol; 2 = Minprod)strategy = 2;% EbN0 in dBEbN0 = 0 0.5 1 1.5;% Number of iteration;iter = 5;% Number of frame (N bits per

48、frame)frame = 10;% Make the LDPC matrixH = makeLdpc(M, N, 1, 1, onePerCol);for i = 1:length(EbN0) ber1(i) = 0; ber2(i) = 0; % Make random data (0/1) dSource = round(rand(M, frame); for j = 1:frame fprintf(Frame : %dn, j); % Encoding message c, newH = makeParityChk(dSource(:, j), H, strategy); u = c;

49、 dSource(:, j); % BPSK modulation bpskMod = 2*u - 1; % Additional white gaussian noise N0 = 1/(exp(EbN0(i)*log(10)/10); tx = bpskMod + sqrt(N0/2)*randn(size(bpskMod); % Decoding (select decoding method) %vhat = decodeProbDomain(tx, H, newN0, iter); vhat1 = decodeLogDomain(tx, newH, N0, iter); vhat2

50、= decodeLogDomainSimple(tx, newH, iter); %vhat = decodeBitFlip(tx, newH, ter); % Get bit error rate (for brevity, BER calculation includes parity bits) num1, rat1 = biterr(vhat1, u); ber1(i) = (ber1(i) + rat1); num2, rat2 = biterr(vhat2, u); ber2(i) = (ber2(i) + rat2); end % for j % Get average of B

51、ER ber1(i) = ber1(i)/frame; ber2(i) = ber2(i)/frame; end % for i% Plot the resultsemilogy(EbN0, ber1, o-);hold;semilogy(EbN0, ber2, o-);grid on;hold off;function H = makeLdpc(M, N, method, noCycle, onePerCol)% Create R = 1/2 low density parity check matrix% M : Number of row% N : Number of column% m

52、ethod : Method for distributing non-zero element% 0 Evencol : For each column, place 1s uniformly at random% 1 Evenboth: For each column and row, place 1s uniformly at random% noCyle : Length-4 cycle% 0 Ignore (do nothing)% 1 Eliminate% onePerCol: Number of ones per column% H : Low density parity ch

53、eck matrix % Copyright Bagawan S. Nugroho, 2007 % % Number of ones per row (N/M ratio must be 2)if N/M = 2 fprintf(Code rate must be 1/2n);endonePerRow = (N/M)*onePerCol;fprintf(Creating LDPC matrix.n);switch method % Evencol case 0 % Distribute 1s uniformly at random within column for i = 1:N onesI

54、nCol(:, i) = randperm(M); end % Create non zero elements (1s) index r = reshape(onesInCol(1:onePerCol, :), N*onePerCol, 1); tmp = repmat(1:N, onePerCol, 1); c = reshape(tmp, N*onePerCol, 1); % Create sparse matrix H H = full(sparse(r, c, 1, M, N); % Evenboth case 1 % Distribute 1s uniformly at rando

55、m within column for i = 1:N onesInCol(:, i) = randperm(M); end % Create non zero elements (1s) index r = reshape(onesInCol(1:onePerCol, :), N*onePerCol, 1); tmp = repmat(1:N, onePerCol, 1); c = reshape(tmp, N*onePerCol, 1); % Make the number of 1s between rows as uniform as possible % Order row inde

56、x r, ix = sort(r); % Order column index based on row index for i = 1:N*onePerCol cSort(i, :) = c(ix(i); end % Create new row index with uniform weight tmp = repmat(1:M, onePerRow, 1); r = reshape(tmp, N*onePerCol, 1); % Create sparse matrix H % Remove any duplicate non zero elements index using logi

57、cal AND S = and(sparse(r, cSort, 1, M, N), ones(M, N); H = full(S); end % switch% Check rows that have no 1 or only have one 1for i = 1:M n = randperm(N); % Add two 1s if row has no 1 if length(find(r = i) = 0 H(i, n(1) = 1; H(i, n(2) = 1; % Add one 1 if row has only one 1 elseif length(find(r = i) = 1 H(i, n(1) = 1; endend % for i% If desired, eli

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!