UA MATH636 信息论9 Reed-Solomon Code

  • Reed-Solomon Code的构造
    • 一个例子

先介绍一类code,maximum distance separable code (MDS code)。考虑一个(n,k,d)(n,k,d)(n,k,d)-code,之前我们讨论的都是ddd最小能是多少,下面来讨论一下给定(n,k)(n,k)(n,k)最大的distance能有多少?之所以想要最大的ddd是因为ddd越大能correct的error就越多。

Singleton Bound给出了线性码的ddd的上界:d≤n−k+1d \le n-k+1d≤n−k+1
证明
假设codebook的alphabet size为qqq,则一共有qkq^kqk中不同的code。删除每一个code的前d−1d-1d−1个符号,则剩下的code长度为n−(d−1)n-(d-1)n−(d−1),根据ddd的含义,剩下的这个codebook每两个code至少也有一个符号不同,而长度为n−(d−1)n-(d-1)n−(d−1)的code最多有qn−(d−1)q^{n-(d-1)}qn−(d−1)种,因此
qk≤qn−(d−1)q^k \le q^{n-(d-1)}qk≤qn−(d−1)
根据这个关系可以得到Singleton Bound。

MDS code就是d=n−k+1d=n-k+1d=n−k+1的code system。

Reed-Solomon Code的构造

考虑MDS code (n,k,n−k+1)(n,k,n-k+1)(n,k,n−k+1),满足k≤n≤pk \le n \le pk≤n≤p。则message vector为
m=[x1,⋯,xk],xi∈GF(p),i=1,⋯,km = [x_1,\cdots,x_k],x_i \in GF(p),i=1,\cdots,km=[x1​,⋯,xk​],xi​∈GF(p),i=1,⋯,k
我们可以用定义在Galois域上的多项式来表示这个message:
P(t)=∑i=1kxiti−1P(t) = \sum_{i=1}^k x_i t^{i-1}P(t)=i=1∑k​xi​ti−1
然后我们用这个多项式来编码:
c=[c1,⋯,cn]=[P(0),P(1),⋯,P(n−1)]c = [c_1,\cdots,c_n] = [P(0),P(1),\cdots,P(n-1)]c=[c1​,⋯,cn​]=[P(0),P(1),⋯,P(n−1)]
其实更一般的,只需要选择nnn个不同的数值就可以了,比如α0,⋯,αn−1∈GF(p)\alpha_0,\cdots,\alpha_{n-1} \in GF(p)α0​,⋯,αn−1​∈GF(p)
c=[c1,⋯,cn]=[P(α0),P(α1),⋯,P(αn−1)]c = [c_1,\cdots,c_n] = [P(\alpha_0),P(\alpha_1),\cdots,P(\alpha_{n-1})]c=[c1​,⋯,cn​]=[P(α0​),P(α1​),⋯,P(αn−1​)]

性质1 RS code是线性码
[P(0),P(1),⋯,P(n−1)][P(0),P(1),\cdots,P(n-1)][P(0),P(1),⋯,P(n−1)]可以用message vector乘以Vandermonde矩阵来表示,定义生成矩阵为
G=V(0,1,2,⋯,n)TG = V(0,1,2,\cdots,n)^TG=V(0,1,2,⋯,n)T

c=mGc = mGc=mG

性质2 RS code是MDS code
假设aaa是P(t)P(t)P(t)的一个根,则t−at-at−a是P(t)P(t)P(t)的一个因式。如果P(t)P(t)P(t)有k−1k-1k−1个根,则P(t)P(t)P(t)的阶至少为k−1k-1k−1。现在考虑ddd,它是所有code的Hamming weight的最小值。所以我们要考虑的是c=[P(α0),P(α1),⋯,P(αn−1)]c=[P(\alpha_0),P(\alpha_1),\cdots,P(\alpha_{n-1})]c=[P(α0​),P(α1​),⋯,P(αn−1​)]中能有几个数字不为0。因为P(t)P(t)P(t)的阶数是k−1k-1k−1,也就是说ccc中最多有k−1k-1k−1个零,也就是说最小的Hamming weight是n−(k−1)n-(k-1)n−(k−1)。

一个例子

考虑GF(7)GF(7)GF(7)上的(4,2)-RS code,这种code一共有72=497^2 = 4972=49种,它们的生成矩阵是
G=[11110123]G = \left[ \begin{matrix} 1 & 1 & 1 & 1 \\ 0& 1 & 2 & 3 \\ \end{matrix} \right] G=[10​11​12​13​]
假设message vector是[1,2][1,2][1,2](信源编码器的输出),它的RS-code就是
mG=[1350]mG=[1\ 3\ 5\ 0]mG=[1 3 5 0](噪声信道的输入)。假设噪声信道的输出为R=[2,3,4,0]R=[2,3,4,0]R=[2,3,4,0],因为d=n−k+1=3d=n-k+1=3d=n−k+1=3,所以这个RS-code最多可以改掉(d−1)/2=1(d-1)/2=1(d−1)/2=1个error,经过噪声信道传输后正好出现了一个error,所以在解码的时候这个error可以被改掉。

UA MATH636 信息论9 Reed-Solomon Code相关推荐

  1. UA MATH636 信息论9 Berlekamp-Welch算法

    UA MATH636 信息论9 Berlekamp-Welch算法 Naive RS decoder Berlekamp-Welch算法 一个例子 上一讲介绍了RS code,这一讲介绍RS code ...

  2. UA MATH636 信息论9 有限域简介

    UA MATH636 信息论9 有限域简介 域.有限域 有限域上的多项式的四则运算 有限域是研究Reed-Solomon code (RS code)的基础,RS code是一种非常常用的error- ...

  3. UA MATH636 信息论8 线性纠错码的解码算法

    UA MATH636 信息论8 线性纠错码的解码算法 standard array decoding syndrome decoding 考虑BSC,上一讲提到了ML decoder与MAP deco ...

  4. UA MATH636 信息论8 线性纠错码

    UA MATH636 信息论8 线性纠错码 线性码的性质 Decode Linear Code 更细致地定义下记号,记 kkk bits信号为向量 m=[m0,⋯,mk−1]m=[m_0,\cdots ...

  5. UA MATH636 信息论8 纠错码简介

    UA MATH636 信息论8 纠错码简介 Hamming Distance Property of Error Correction 这一讲开始介绍纠错码,error correction code ...

  6. UA MATH636 信息论5 信道编码定理的证明

    UA MATH636 信息论5 信道编码定理的证明 Random Coding Scheme 平均错误率 最大错误率 逆命题的证明 信道编码定理说的是所有小于 CCC的传输率是可实现的.这里的 CCC ...

  7. UA MATH636 信息论5 信道编码定理

    UA MATH636 信息论5 信道编码定理 信道编码问题 信道容量的正式定义 信道编码定理 Joint Typical Set Joint AEP 上一篇简介里面介绍了通讯的过程,并用下面的流程图来 ...

  8. UA MATH636 信息论1 熵

    UA MATH636 信息论1 熵 基本概念 熵.条件熵.交叉熵 K-L Divergence 互信息 基本性质 链式法则 Jensen不等式与Gibbs不等式 熵的有界性 Conditioning ...

  9. UA MATH636 信息论2 数据压缩

    UA MATH636 信息论2 数据压缩 AEP Most Likely Sequence Properties of Typical Set Limit of Data Compression So ...

最新文章

  1. 架构设计之分布式文件系统
  2. Linux运行脚手架vue,【Vue】Vue-cli 搭建 脚手架
  3. 安装中文和英文man(c函数)
  4. Web模板引擎—Mustache
  5. 参数迁移表达的第三种形态相互作用
  6. Docker入门(运行.net core asp项目)
  7. matlab imcrop 对应python函数_Python精讲Numpy基础,大牛笔记详细解释
  8. 华为新系统鸿蒙能互通吗,「连接」万物的鸿蒙,能拯救华为手机吗?
  9. 7-5 统计大写辅音字母 (15 分)
  10. 一万个“无序”数查找两个重复数,在O(N)的基础上再快一点
  11. c语言max函数是什么,什么是C语言函数
  12. html中如何出现三重阴影,探索 CSS3 中的 box-shadow 属性
  13. 大数据Hive数据查询语言DQL
  14. 17.10.21B组题解
  15. 哈工大软件构造期末知识点总结
  16. 数组连接中的vstack()函数与hstack()函数
  17. base64模块的b64encode函数
  18. java导出excel
  19. 智能眼镜技术特点与挑战
  20. 解决xxx.exe-无法找到入口,无法定位程序输入点......于动态链接库

热门文章

  1. 人类无法抗拒的10种心理(转)
  2. TI CC2530的BasicRF与Zstack的同与异(重点讲了MAC层)
  3. amd的处理器能兼容idea么_250元就能买到16GB内存 这背后究竟是道德的沦丧还是人性的扭曲?...
  4. nodeValue以及其与value的区别以及JS nodeName、nodeValue、nodeType返回类型
  5. PHP 知识点笔记-常用数据类型
  6. C# 学习笔记(14)自己的串口助手----多行发送
  7. 模拟电路技术之基础知识(一)
  8. 找不到或无法加载主类的原因之一
  9. Django学习 -- 第一个项目(Hello World)
  10. C++多线程简单入门(Windows版本)