2-LDPC实验基本参照的网上的程序来的,而且实验公式有些是在二进制情况下进行了公式化简,当推到多进制时候便不再适用,鉴于个人编程和理解能力有限,唉,只是在LDPC编译码的基础公式上进行了实现。

1.编码

q-LDPC编码部分主要可以分为3步:生成q-H矩阵、矩阵分解、编码;

关于生成矩阵方面,自然可以沿用二进制的方法,我这里采用的是规则(3,6)矩阵,关于非零元素的替代由于尚未弄明白边缘熵最大化的问题,所以就随机替换为GF(q)域的非零值;

编码采用文献中提到的改进LU编码,而这要保证B矩阵的满秩条件,因此,需要自己编写的就是B矩阵的调整。由于是多进制,为了保证所有非零元素为正整数,先对B矩阵中对角线上进行了调整,将该列最大的数放在对角线位置上,然后寻找该列其他位置非零值与对角线上值得最小公倍数,将B矩阵化为对角阵,完成这步后,可以检查下B是否为满秩,如果不满秩,那么就需要对A、B矩阵进行列交换来保证B满秩,在列交换的算法中,偶选择构造了解集的矩阵,对每个需要进行列交换的B的列找出在A中可以交换的所有列集组成矩阵,之后对每个解——即A中的备选列,求出度数,这里的度数就是B中有几个列可以和A中的某列交换,之后先交换只有一个解的列,然后按列的度数来取解,当然,这种方法还是存在很大的随机性,因此不能保证每次运行完都是合适的B,需要改进啊......增加复杂度......还有一点,由于H矩阵的初等运算都是mod(q)运算,很可能经过一系列的运算即是对角变换中,B的秩减小;

编码自然不用说,有统一的公式了。

2.译码

关于译码,无非就是初始化、校验节点的更新和变量节点的更新,以及最后的判决;

说初始化,不得不提一下,多进制的LDPC系统全套信息流,至少在现在我的理解中是二进制信号——转为多进制信号——LDPC编码——转为二进制信号——信道——LDPC译码——转为二进制信号——误码判断,在这套系统中,译码的初始化依然需要判断每位的0-1概率,但需要将每位判断出来的概率按照q进制进行计算,得到GF(q)域上每个值取值的概率,那么从信道出来的二进制序列到多进制的转化过程就包含在了译码的初始化中,这块需要在二进制的基础上进行添加;

校验节点更新,个人认为,校验节点更新的理解要比变量节点更新复杂,而且在实现上也确实复杂了不少,按照基础的公式,校验节点的更新编程复杂度为O(q^(rowflag-1)),这里rowflag为行重,要求出当某点为GF(q)上每个值得时候,其他非零变量取值使得该m齐次方程成立的所有解集,在二进制的情况下,解集的数量并不大,毕竟只有0-1两种可能,但转到多进制,取值的可能变大了,计算又是模q计算,可能在第m个校验点,某变量的某一个取值就有上万个解,不得不说,这块的运行速度实在堪忧......但在查看的文献中,虽然都是对译码的改进,但其改进都不是在这块......

当上面校验节点更新结束,剩下的就可以跟着二进制的走了,并无难度。

3.实验结果

现在误码率倒是感觉可以,不过由于运行时间可以说成指数增长,就像2进制需要3s,4进制需要50s,8进制需要200s,差不多类似这种吧,16进制的一直没有勇气把它运行完......

转载于:https://www.cnblogs.com/heyuheitong/archive/2013/04/01/2994296.html

q-LDPC实验进展相关推荐

  1. 鹅厂分享:AB实验只是开始?如何归因和解读才是王道!

    分享嘉宾:钱橙 腾讯 高级数据研发工程师 编辑整理:Theodore 厦门大学 出品平台:DataFunTalk 导读:大家好,我是来自腾讯看点数据平台中心的钱橙,之前主要负责看点内部AB实验平台的建 ...

  2. 计算机操作系统指导书,《计算机操作系统》实验指导书-2015

    q.num++; System.out.println(\已生产第:\个产品!\ try { Thread.currentThread().sleep(100); } catch (Interrupt ...

  3. 博士生Science发文:很庆幸导师要求每周交工作进展汇报!

    很多研究生为每周开组会.写工作进展汇报而苦恼. 但日本大阪大学访问学者Pijar Religia近日在Science网站发文表示,很庆幸读博期间导师要求每周交工作进展汇报. Religia认为,工作周 ...

  4. Globally and Locally Consistent Image Completion 实验记录

    下面是我当时在复现这篇论文是时的过程,不想看的可以直接去我的Github上看代码. https://github.com/CoderAnn/GLCI 有问题可以留言,一定会尽全力解答. 实验过程简介: ...

  5. 用Hadoop分析金庸人物关系网-实验报告

    用Hadoop分析金庸人物关系网 --- 用大数据粗略的分析金庸人物关系网 整体结果报告 达到预期目标并完成了选做内容 实验目标描述: 金庸的江湖 课程设计目标 通过一个综合数据分析案例:" ...

  6. AB实验只是开始!如何归因才是王道!

    来源:DatafunTalk 导读:实验分析是决定整个实验最终结论产出的环节,相比于分析业务报表,对于实验结果的解读需要我们更多的挖掘以及归因,所需要的方法论和分析手段也更多.这里我将我们在实验分析中 ...

  7. 实验 Linux下C工具应用

    实验报告 实 验(一) 题     目 Linux下C工具应用 专       业 计算机科学与技术 计算机科学与技术学院 目  录 第1章 实验基本信息... - 4 - 1.1 实验目的... - ...

  8. 离散实验 真值表求主析取范式、主合取范式的计算机语言实现

    离散数学 实验一 标题:真值表求主析取范式.主合取范式的计算机语言实现 其他课程的一些其他实验源码也可在本人github主页找到哦 链接如下:https://github.com/Schiz0mani ...

  9. 通用量子计算实用化又进一步,俞大鹏团队实现量子纠错领域重大进展,首次超越盈亏平衡点|Nature...

    SIQSE 投稿 量子位 | 公众号 QbitAI 可扩展通用量子计算在实用化道路上迈出关键一步! 在俞大鹏院士的带领下,深圳国际量子研究院的助理研究员徐源课题组与合作者在基于超导量子线路系统的量子纠 ...

最新文章

  1. 资源 | 李沐等人开源中文书《动手学深度学习》预览版上线
  2. concurrent.futures模块(进程池线程池)
  3. Duilib vlc c++ 字符编码
  4. Debug system:无法显示数据
  5. Java基础课程---权限修饰符
  6. java blockingqueue_Java多线程进阶(三一)—— J.U.C之collections框架:BlockingQueue接口...
  7. boost::multi_array模块实现创建负步幅视图的小测试
  8. mybatis简单案例源码详细【注释全面】——前期准备
  9. 4.3.2 用jQuery进行异步加载(1)
  10. synchronized 解决死锁的问题 轉貼
  11. Appium框架中Android下EditText内容清除
  12. 盘点云计算的概念,分类和特点
  13. 数据结构课程设计1: 区块链
  14. 浅析:通过自定义DSL实现一个序列号生成器
  15. FMS直播和点播测试
  16. 百度火星WGS84坐标转换
  17. 计算机二级考试加油作文,为中考而加油作文(精选10篇)
  18. 2020年980计算机综合,2022年华北水利水电大学980计算机学科专业综合考研复习资料...
  19. 迅为iTOP6818开发板QtE5.7应用例程源码
  20. Matlab中sim函数的用法

热门文章

  1. Java 集合系列02之 Collection架构
  2. proxmox 之 与openstack的比较
  3. Linux kernel 不输出log信息
  4. JavaScript机器学习之线性回归
  5. IGMP V1 V2 V3 定义和区别
  6. 创建Cocos2d-x 3.x项目以及项目结构简要说明
  7. FreeMarker plugin for STS 配置
  8. ossec 学习二 (ossec -analogi安装)
  9. Unix实用工具教程:《sed与awk》修订第三版清晰版
  10. [NIO-1]缓冲区