LDPC码程序设计_第1页
LDPC码程序设计_第2页
LDPC码程序设计_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、LDPCB编/译码程序设计要求:用Matlab编程实现(2016,1008)LDPC码的编码器和译码器,并搭建仿真系统统计误码性能。设计内容:一、LDPC码参数二、编码器三、噪声信道a) 四、译码器和积算法译码器最小和算法译码器修正最小和算法译码器五、仿真分析一、LDPC码参数本设计采用准循环LDPC码码型(QuasiCyclicLDPC,QC-LDPC),此种码型性能良好,并有利于硬件实现,现已被各种工业标准所采纳。例如,Wimax标准,DVB-S2标准。具体矩阵请见:Matrix(2016,1008)Block56.mat。具有如下所示的结构:本设计采用系统码,码长为2016比特,1/2码

2、率,信息序列长度为1008比特。其H矩阵表示如下:Hi%,bH2%,bFrHn,%b_Hi,iHi,2IIIH2,1H2,2HIH=+,+dI-+IF:椭,1Hmb,2HI其中Hi,j是大小为zxz的循环移位矩阵,行重为1,它的值表示该矩阵的循环移位偏移量。例如:Hi,j=n,则表示此矩阵第1行的第n列为1,其余列为0,其余各行均是上一行的循环移位;如果Hj,j=0,则表明该矩阵是一个全零矩阵。例如Hi,j=4,z=乙则对应的矩阵结构为:由于本设计采用系统码,H矩阵被分为两个部分:Hp|Hs:H=11,1IIIH*H1,kb1IIIH1,nb2,1+IIIriH2,kbiH2,kb11iIII

3、*H2,nbri-+川Hmb,kb1HIPH%,nbHH其中Hp对应校验比特部分,大小为pmbzmbz;Hs对应信息比特部分,大小为-000100。100001000000010Hij000000110000000100000-0010000-码,z取56。本设计给出的QC-LDPCmbZkbZ,其中kb=(nb-mib)z。Hp具有如下规则结构:Hp1001100119+.00000000a00000100110011其中Hp右上角a表示的矩阵具有如下结构:p00010gip01Biba00:°-010_【注】1. 上文Hp中的子矩阵a'由文档直接给出,不利用循环移位方法计

4、算;2, 本次作业中的LDPC为系统码,其中校验位在前,信息为在后。二、LDPC码编码器LDPC码属于线性分组码,可以应用线性分组码传统的编码方式进行编码,即利用生成矩阵进行编码。但LDPC码通常用其稀疏校验矩阵(H矩阵)进行定义,把校验矩阵转化成生成矩阵运算量极大。由于LDPC码码长一般较长,校验矩阵较大,就更增加了运算负担。并且转化的生成矩阵并不是稀疏的,这就给硬件实现带来了困难。实际中一般采用校验矩阵直接进行编码,利用公式VH=0(其中,V为编码生成的码字),直接解出码字V。这里在不影响性能的前提下,一般需要特殊结构的校验矩阵,以简化解方程组运算。具体算法如下:由于采用的是系统码,利用输

5、入信息比特s=§,22,111,8,得到校验比特p=p,p2,|,pmzI即可完成编码。编码分为如下两个步骤进行:步骤一:利用输入信息矢量S,计算中间结果X=x!,X2,|j|,XmbZ:x=sHST步骤二:利用X计算校验比特p,采用如下公式:X,i=1pi=<Xp(mb4_)zX,1<*Z,其中表示GF(2)中的加法。qp,3编码时首先得到第一个校验比特p1=X1,然后依次得到pz=Xz书国p1,p2z老=X2z书pz*,P(mb)z4l=Xg)z老p(m2)z+,p2=X2Pg*,pmbz=X"P(mb)z。三、噪声信道本设计需要在AWGN信道下进行误码率性

6、能仿真,调制方式采用BPSK调制(0映射成1,1映射成-1),可能用到的Matlab函数有:wgn或者awgn。四、LDPC码译码器本设计要求编程实现三种LDPC码译码器,一种为在系统仿真中较为常用的和积算法译码器,另一种为利于硬件实现的最小和算法以及其修正算法译码器。具体算法流程如下:a)和积算法程序流程为了方便说明,定义LDPC码长为N,校验方程数目为M,则该LDPC码的二分图包含了N个变量节点,M个校验节点以及条边线。在该二分图中,和积算法(sum-productalgorithm)的译码过程被分为以下三个主要步骤,如图1所示:1. 初始化:a)每个比特从信道中接收到的信道信息作为初始置

7、信度,赋予相应的变量节点,它们的置信度山二=u,其中u表示第i个比特从信道接收到的置信度业,其SNR中,yi为信道输入译码器的软信息,SNR=为符号能量与噪声的比值(注意:No这里单位不是dB,而是单纯的比值,即1010)。2. 迭代:a)每个变量节点将自己的置信度传递给具有校验关系的校验节点。第i个变量节点传di-1递给第j个校验节点的置信度vt=u+£uj,其中dj表示第i个变量节点的维度。b)校验节点根据变量节点传递来的置信度,为每一个变量节点计算更新置信度。第j个校验节点为第i个变量节点计算的更新置信度IdC4/_.-1_一VkT,.c.山=2tanhntanh,其中dj表示

8、第j个校验节点的维度。3. *m,k/<2;判决:a)变量节点根据校验节点传递来的更新置信度,更新本地置信度并进行硬判决:'di1if乏uj<0V二丁0if'化i_0k尖b)如果所有的校验关系得到满足,即VH=0,其中V=(Vi,V2,川,Vn),贝U译码结束;如果VH#0,则返回迭代的步骤a继续迭代,直至达到迭代次数的上限。变量节点接收信道信息变量节点传递置信度给校验节点校验节点计算置信度传递给变量节点图1和积算法译码流程b)最小和算法程序流程尽管和积算法的译码过程已经相最小和算法(Min-Sum)是和积算法的一种简化算法。当简洁,但其中积运算部分需要进行的反双曲

9、正切连乘等非常复杂的运算,在硬件实现中通常只能利用查表等相对繁琐的操作来完成。为了简化这一过程,Marc.P.C.Fossorier等人提出了最小和算法及其修正算法。最小和算法的流程与和积算法完全一致,唯一的区别在于将和积算法的积运算简化为求取最小值的运算,即每次校验节点在计算变量节点更新置信度时,采取的计算步骤由公式dCUj=2tanh'tanhk=1,k件VkTj2>dC简化为Ui=|nsgn(vij)!.-Mink=1,k=iI(vk>jk1,2mdCi具体算法流程如下:1)初始化:Uj=u°q,其中up表示第i个比特从信道接收到的信息yidivJ2)vj=

10、'Uk:,1£i£n,1£j三mkQk=j(衅v,3)uj.=|口sgn(v7)Min(v7)/皂,k#八k#,2hldjidiv4)V=£ukT0n毛=0(1in)k=0div5)V=£uk_j<0nx=1(1Gs;n)k=0如果校验和S=XH=0或者循环迭代计算次数超过门限值则结束计算;否则返回第1步继续迭代循环计算。C)修正的最小和算法修正的最小和算法分为两种,分别为NormalizedMin-Sum算法主要是在NormalizedMin-Sum算法、OffsetMin-Sum算法。Min-Sum算法的基础上,对迭代中的校验

11、节点消息uji加以归一化处理,以减小Min-Sum译码消息的幅度:dC=|口sgn(vjj)LM%)目,3k(1,2dCI*a,(a为归一化系数,0<0(<1);a取最佳值时,Normalized对于a的取值,大家可以通过性能仿真找到其最佳值,即当Min-Sum算法仿真性能最接近和积算法的性能(在此,为了简化要求,a取值精确到小数点后一位即可)。OffsetMin-Sum算法则主要是对迭代中的消息uji偏移一个常数6来减小Min-Sum译码在这个算法中,当Mink1,2|i|dCi消息的幅度:(Mt)小于6时,我们将其置为零,也就是消除了其对于下一步信息节点更新中的贡献。同样对于6取值,大家可以通过性能仿真找到其最佳值,当6取最佳值时,NormalizedMin-Sum算法仿真性能最接近和积算法的性能(在此,为了简化要求,6取值精确到小数点后一位即可)。五、仿真分析用MATLAB平台搭建仿真系统,信源采用伪随机序列发生器,调制方式为BPSK,映射关系采用0映射成1、1映射成-1。分别统计和积译码算法、最小和译码算法以及其两种Eb/N。,纵修正译码算法的误码性能,并将其画在一张图中进行比较分析,此图横坐标为汪息:1. 四种LDPC译码算法,最大迭代次数均设为30次。2. 当错误

温馨提示

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

最新文档

评论

0/150

提交评论