DBC动态检泡法(EMS)
来源:互联网 发布:淘宝中式旗袍图片大全 编辑:程序博客网 时间:2024/06/06 00:42
根据西电白宝明导师的Dynamic Bubble-Check Algorithm for Check Node Processing in Q-Ary LDPC Decoders [J]. IEICE transactions on communications, 2012, 95(5): 1815-1818.这一文章,大致仿真出动态检泡算法,可能理解的不够透彻,还没有拜读过这篇文章,从其他西电高手的毕业论文中看到了这一算法。
DBC算法是对EMS算法的改进,其改进是针对校验节点更新过程基本运算的简化,首先要明确的是,进行动态检泡算法的前提是参与运算的向量是有序排列的(下列程序是降序排列),然后对这些向量进行两两之间的相互运算,嘴巴比较笨,讲的不是很清楚。我是参考了西电的博士毕业论文才理解了这些算法的:多元LDPC码:设计、构造与译码(林伟),这篇论文写得比较好,里面详细讲解了DBC算法的流程,细读肯定会收获很多。下面附上自己写的动态检泡算法的程序,希望能够帮到同路人。
function [U,Uq]=D_Bubble_check(V,Vq,I,Iq) %%动态检泡算法% clear% clc% tic% V=[9.8 9.5 9 8.7 8.6 8.4 8.1 7.6 7.4 7 5.2 4.9 4.5 4.2 3.7 3];% I=[9.6 9.5 9.3 9.2 8.3 8.2 8 7.3 7 6.5 6.3 6.2 5 4 3 1];% Vq=[14 24 17 6 25 28 26 27 15 4 1 29 0 5 11 3];% Iq=[10 5 13 8 5 4 24 22 12 19 29 23 3 11 30 31];% q=32;q=16;Nm=q/2;Uq(1:Nm)=-1;U=zeros(1,Nm);% for i=1:16% for j=1:16% S(i,j)=V(i)+I(j);% end% end% 多进制处理P=2;M=log2(q);field = gftuple((-1:P^M-2)',M,P);%产生00,10,01,11,左比特表示低位,右比特表示高位[tuple power] = gftuple((-1:P^M-2)',M,P);% tuple即field,power是0-3的指数形式的指数alpha = tuple*2.^(0:M-1)';%转化为十进制数,即0-3beta(alpha + 1) = 0:P^M-1;Vq_z=power(beta(Vq+1)+1);Iq_z=power(beta(Iq+1)+1);FV=zeros(1,Nm+1);FV(1,1)=1;FV(1,Nm+1)=1;FI=FV;S=V(1)+I(1);i=1;j=1;ii=0;% BB=0;while (ii~=Nm) [x y]=max(S); uu_z=gfadd(Vq_z(i(y)),Iq_z(j(y)),field); if uu_z== -Inf uu= 0; else uu= alpha(uu_z + 2); % 十进制 end% BB=[BB,uu]; if isempty(find(Uq==uu,1)) ii=ii+1; U(ii)=x; Uq(ii)=uu; end if((FV(i(y)+1)==0)&&(FI(j(y)+1)==0)) S(y)=V(i(y))+I(j(y)+1); aa=V(i(y)+1)+I(j(y)); FI(j(y)+1)=1; FV(i(y)+1)=1; S=[S,aa]; jz=j(y); j(y)=j(y)+1; iz=i(y)+1; i=[i,iz]; j=[j,jz]; elseif((FV(i(y)+1)==1)&&(FI(j(y)+1)==0)) S(y)=V(i(y))+I(j(y)+1); FI(j(y))=0; FI(j(y)+1)=1; j(y)=j(y)+1; elseif((FV(i(y)+1)==0)&&(FI(j(y)+1)==1)) S(y)=V(i(y)+1)+I(j(y)); FV(i(y))=0; FV(i(y)+1)=1; i(y)=i(y)+1; elseif((FV(i(y)+1)==1)&&(FI(j(y)+1)==1)) FV(i(y))=0; FI(j(y))=0; S(y)=[]; i(y)=[]; j(y)=[]; end end%tocend
0 0
- DBC动态检泡法(EMS)
- dbc
- EMS
- EMS
- TODA EMS(设备管理系统)简介
- 快递(EMS)增值业务解决方案
- 建筑能源管理系统(EMS)
- vfp的数据库(.dbc)如何连接access(.mdb)?
- Mangos源码分析(一):DBC文件分析
- DBC批量Insert深度优化(有事务)的方法。
- 什么是DbC
- 什么时候DBC
- SPELL-DBC
- EMS (www.ems.com.cn不能直接访问)查询解决方案
- SMS Encoder & Concatenated EMS Encoder (短信编码器)
- EMS 排名
- EMS-API
- EMS 常用命令
- 工作笔记:linux绑定CPU、软中断
- Java日期时间处理
- 三种继承方式的区别
- Weka与R
- 修复Mavericks唤醒后连不上Wi-Fi
- DBC动态检泡法(EMS)
- 电脑的快捷方式——快捷关闭电脑启动项的方法
- mysql分组分页
- 设置状态条的样式Demo
- 指针 引用 区别
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
- Qt事件处理的五个层次、Qt自定义事件的实现
- android中调用浏览器的代码
- oracle 在分组内排序的方法(转载)