极化码是由2008年土耳其毕尔肯大学教授ErdalArikan首次提出的,是目前唯一一种能够被严格证明“达到”信道容量的信道编码方法。
2016年在3GPP RAN1 #87次会议,确定Polar Code作为5G增强移动宽带场景下控制信道编码方案。
简言之,极化码就是一种信道的编码方式,由于其性能优越故被拿到5g标准中使用。极化码是已知的唯一一种能够被证明“达到”香农限的信道编码方法。

极化码在设计的时候不考虑最小距离特性,而是利用信道联合和信道分裂的过程来选择具体的编码方案。而且在译码时也是采用概率算法。

码长=N的极化码,它利用信道W的N个独立副本,进行信道联合和信道分裂,得到新的N个分裂之后的信道,随着码长的增加,分裂之后的信道将向两个极端发展:其中一部分分裂信道会趋近于完美信道,即信道容量趋近于1的无噪声;而另一部分分裂信道会趋近于完全噪声信道,即信道容量趋近于0的信道。

信道极化:信道在一系列的组合和分裂后一部分的信道的信道容量会增大,另一部分的信道容量会减小。这种现象就叫信道极化。(信道容量越大,该信道的噪声就会小,信道容量为1即无噪声信道,信道容量为0即全噪声信道)

极化码就是采用在信道容量大的信道用来传输数据比特信息,用信道容量小的信道来传输固定比特信息,固定比特通常为全0bit
原信道W的二进制输入对称容量记作I(W),那么当码长趋近于无穷的时候,信道容量趋近于1的分裂信道比例约为K=N×I(W):信息比特的数量,而信道容量趋近于0的比例约为N×(1−I(W)):冻结比特的数量。对于信道容量为1的可靠信道,可以直接放置消息比特而不采用任何编码,即相当于编码速率为R=1R=1;而对于信道容量为0的不可靠信道,可以放置发送端和接收端都事先已知的冻结比特,即相当于编码速率为R=0。那么当码长N→∞时,极化码的可达编码速率R=K/N=N×I(W)/N=I(W),即在理论上,极化码可以被证明是可达信道容量的。

对极化码可靠性度量有三个方法:巴氏参数法、密度进化法、高斯近似法。这里我们介绍巴氏参数法。
这里我们介绍巴氏参数构造算法,其计算公式如下

下列算法给出了BEC信道下求K个最可靠子信道的步骤 :

1.输入极化码长度N和BEC信道删除概率。
2.信道巴氏参数初始化
3.利用下列公式,计算出每一个子信道的可信度
将计算后的N个子信道的巴氏参数进行排序,将巴氏参数值最小的K个信道序号选择为信息位。一般情况下,1024位的极化码,取前512位不可靠的比特位做固定比特位,其他512位较可靠的比特位做信息比特位。
苦于在CSDN上难已找到该算法的代码(尤其是对于我这种只会C语言的人来说),所有这里将用C语言实现的算法摆出。(原理要是看不懂直接用就行)

 jisuan_kexindu[1][1] = 0.5;//犯错概率0.5的前提下计算可信度for (int i = 1; i < 11; i++){int k = (int)pow(2.0, i - 1.0);for (int j = 1; j < k + 1; j++){float tmp = jisuan_kexindu[i][j];jisuan_kexindu[i + 1][2 * j - 1] = (float)pow(tmp, 2);jisuan_kexindu[i + 1][2 * j] = 2 * tmp - pow(tmp, 2);}}

我们使用的二维数组下标从0到10主要是计算方便起见。

 for (int i = 1; i < 1025; i++){kexindu[i - 1] = jisuan_kexindu[11][i];bianhao[i - 1] = i - 1;}

之后我们将1024位码的可信度与其下标取出。

for (int i = 0; i < 1024; i++)    //对每个比特的可信度进行排序for (int j = 0; j < 1023 - i; j++)    if (kexindu[j] > kexindu[j + 1]){float t = kexindu[j];   kexindu[j] = kexindu[j + 1];kexindu[j + 1] = t;int tt = bianhao[j];    bianhao[j] = bianhao[j + 1];bianhao[j + 1] = tt;}

之后利用冒泡排序法对其进行排序,并将其对应的下标进行排序,这样主要是为了方便起见。
计算结果如下:


取出前100位可信度较低的比特位下标

极化码的巴氏参数构造算法相关推荐

  1. CTPN源码解析5-文本线构造算法构造文本行

    文本检测算法一:CTPN CTPN源码解析1-数据预处理split_label.py CTPN源码解析2-代码整体结构和框架 CTPN源码解析3.1-model()函数解析 CTPN源码解析3.2-l ...

  2. 转载-极化码系列(4)-编码之极化信道可靠性估计

    前言 由Arikan发明的Polar Code的经典编码算法已经在第二节基本阐述完毕,第三节则是对前文的举例.在编码实例中,有两个前提假设: 1.假设采用二进制删除信道 2.假设采用巴氏参数来评估各分 ...

  3. 极化码的matlab仿真(2)——编码

    第二篇我们来介绍一下极化码的编码. 首先为了方便进行编码,我们需要进行数组的定义 signal = randi([0,1],1,ST); %信息位比特,随机二进制数 frozen = zeros(1, ...

  4. 转载-极化码系列(3)-极化码的编码实例

    前言 在<Polar Code(2)编码原理>中详细阐述了Polar Code的编码原理.为了更好的理解编码的过程,本文将给出一个编码实例. 设码长 N = 8 N=8 N=8,信息比特数 ...

  5. matlab画极化码,极化码的matlab仿真(1)——参数设置

    根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...

  6. 用力和应变片计算弹性模量_弹性模量巴氏论文,关于应变电测法测定巴氏合金ZChSnSb11-6力学性能相关参考文献资料-免费论文范文...

    导读:本文关于弹性模量巴氏论文范文,可以做为相关参考文献. (1. 山西三明重工机械制造有限公司,晋中 山西 030600:2. 太原科技大学机械工程学院,太原 山西 030024) 摘 要:针对锡基 ...

  7. 在灰度图像上进行Mean Shift迭代搜索目标 ,一维加权直方图 + 巴氏系数 + Mean Shift迭代

    今天要给大家分享的是: 在灰度图像上进行Mean Shift迭代搜索目标 一维加权直方图+巴氏系数+Mean Shift迭代 关于 加权直方图.巴氏系数.Mean Shift迭代 这三者之间的关系请大 ...

  8. jquery 1.7.2源码解析(二)构造jquery对象

    构造jquery对象 jQuery对象是一个类数组对象. 一)构造函数jQuery() 构造函数的7种用法: 1.jQuery(selector [, context ]) 传入字符串参数:检查该字符 ...

  9. 两个多元正态分布的KL散度、巴氏距离和W距离

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 正态分布是最常见的连续型概率分布之一.它是给定均值和协方差后的最大熵分布(参考<&quo ...

  10. 基于极化码(Polar Code)的加密

    一. 历史背景 香农曾提出,在任何信道上,可信通信的要求如下: 上式子中R代表码率,C代表信道容量.其中码率的计算公式如下: 上式子中K代表码字长度,N代表总长度.Erdal Arikan第一个发现能 ...

最新文章

  1. 前后端分离的探索(三)
  2. 浅析 Linux 初始化 init 系统:sysvinit
  3. CTF web题总结--http header 修改、cookie注入
  4. 重新分区_手机DATA重新分区教程(超详细)
  5. java多态强制类型转换_java多态和强制类型转换
  6. java解析xml实例——获取天气信息
  7. 笨方法“学习python笔记之转义序列
  8. python求解分支定界(branch-and-bound)问题使用pybnb基本架构
  9. wpf之blend之自定义最小化按钮
  10. 万能点位图软件_万能点位图软件_BoardViewer
  11. c语言计算函数零点个数,遗传算法-求函数零点-C语言代码.doc
  12. 信号处理:频域转时域
  13. 利用Bandzip批量解压缩文件
  14. Spring乱码问题解决
  15. python随机生成4位验证码并判断是否正确_python生成4位验证码
  16. 用 Adobe 设置 PDF 文件在文件管理器右侧预览窗格预览
  17. 明日之后最新服务器开服时间,明日之后新区开服时间 新区开放表[图]
  18. Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用)
  19. 读书百客:《惜牡丹花二首》鉴赏
  20. html中seo三大标签,探索者SEO告诉你三大标签如何正确使用

热门文章

  1. Java Web项目开发项目经验总结
  2. 使用Nginx配置反向代理,完成端口转发
  3. vld在MFC 中内存泄漏检测
  4. 18650锂电池保护板接线图_锂电池保护板的基础知识
  5. 车牌自动识别在智能交通系统中的应用及前景分析
  6. mysql重启服务命令_重启mysql命令
  7. 分形吧matlab,Matlab在分形模拟上的一些应用
  8. 可以使用C#语言的在线ACM题库
  9. dos2unix命令详解
  10. php nlpir,NLPIR简介及使用配置