LDPC的概率域的BP译码_第1页
LDPC的概率域的BP译码_第2页
LDPC的概率域的BP译码_第3页
全文预览已结束

下载本文档

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

文档简介

1、functionz_hat,success,k=ldpc_decode(z,f0,f1,H)%decodingofbinaryLDPCasinElec.LettersbyMacKay&Neal13March1997%Fornotationsseethesamereference.%functionx_hat,success,k=ldpc_decode(y,f0,f1,H)%outputstheestimatex_hatoftheENCODEDsequencefor%thereceivedvectorywithchannellikelihoodsof0and1s%inf0andf1andpari

2、tycheckmatrixH.Success=1signals%successfuldecoding.Maximumnumberofiterationsissetto100.%kreturnsnumberofiterationsuntilconvergence.%Example:%WeassumeGissystematicG=A|Iand,obviously,mod(G*H,2)=0%sigma=1;%AWGNnoisedeviation%x=(sign(randn(1,size(G,1)+1)/2;%randombits%y=mod(x*G,2);%coding%z=2*y-1;%BPSKm

3、odulation%z=z+sigma*randn(1,size(G,2);%AWGNtransmission%fl=l./(l+exp(-2*z/sigma2);%likelihoods%f0=1-f1;%z_hat,success,k=ldpc_decode(z,f0,f1,H);%x_hat=z_hat(size(G,2)+1-size(G,1):size(G,2);%x_hat=x_hat;%Copyright(c)1999byIgorKozintsev HYPERLINK mailto:%$Revision:1.1$Da

4、te:1999/07/11$%fixedhigh-SNRdecodingm,n=size(H);ifmn,H=H;m,n=size(H);endifissparse(H)%makeHsparseifitisnotsparseyet如果不是稀疏矩阵,将HD为稀疏矩阵ii,jj,sH=find(H);H=sparse(ii,jj,sH,m,n);end%initialization初始化ii,jj=find(H);%subscriptindextononzeroelementsofH将非零元素标上indx=sub2ind(size(H),ii,jj);%H的非零下标q0=H*spdiags(f0(

5、:),0,n,n);sq0=full(q0(indx);sff0=sq0;%变量节点传向校验节点的初始信息q1=H*spdiags(f1(:),0,n,n);sq1=full(q1(indx);sff1=sq1;%iterations迭代处理k=0;success=0;max_iter=20;while(success=0)&(kmax_iter),k=k+1;%horizontalstep第一步校验节点的信息处理。sdq=sq0-sq1;sdq(find(sdq=0)=1e-20;%iff0=f1=.5若先验概率一样的话,令sdq为一个很小很小的数dq=sparse(ii,jj,sdq,m,

6、n);%以ii,jj为横纵坐标,用概率差sdqDOm*n的稀疏矩阵Pdq_v=full(real(exp(sum(spfun(log,dq),2);%thisisuglybutworks:)%将dq在对数域求和,即将dq相乘,构成数组Pdq_vPdq=spdiags(Pdq_v(:),O,m,m)*H;%0新了rij,以坐标形式6*12的矩阵sPdq=full(Pdq(indx);%QD000sr0=(1+sPdq./sdq)./2;sr0(find(abs(sr0)1e-20)=le-20;%每个元素的rij都归一化,更新rij。概率译码的第一步完成sr1=(1-sPdq./sdq)./2;

7、sr1(find(abs(sr1)1e-20)=le20;%比值非常小,则设为1e-20r0=sparse(ii,jj,srO,m,n);%将更新完的rij存入对应的位置,方便后面要用r1=sparse(ii,jj,sr1,m,n);%verticalstep第二步目的更新qij变量节点消息处理。Pr0_v=full(real(exp(sum(spfun(log,r0),1);Pr0=H*spdiags(Pr0_v(:),0,n,n);sPr0=full(Pr0(indx);Q0=full(sum(sparse(ii,jj,sPr0.*sff0,m,n),1);sq0=sPr0.*sff0./sr0;Pr1_v=full(real(exp(sum(spfun(log,r1),1);Pr1=H*spdiags(Pr1_v(:),0,n,n);sPr1=full(Pr1(indx);Q1=full(sum(sparse(ii,jj,sPr1.*sff1,m,n),1);sq1=sPr1.*sff1./sr1;sqq=sq0+sq1;sq0=sq0./sqq;sq1=sq1./sqq;%t

温馨提示

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

评论

0/150

提交评论