UA MATH636 信息论8 纠错码简介
UA MATH636 信息论8 纠错码简介
- Hamming Distance
- Property of Error Correction
这一讲开始介绍纠错码,error correction codes,大概是从forward error correction codes (FECC)。先介绍block code的记号[n,k,d][n,k,d][n,k,d],其中nnn表示code length,kkk代表dimension of code,ddd是minimal distance of code。
有点抽象,举一个例子来说明:
假设信号大小是kkk bits,经过信道编码之后变成nnn bits的码(编码率为k/nk/nk/n),放入噪声信道传输到接收端,接收端收到的nnn bits的码可能有错误的。假设通过信道发送的码是xxx,接收端接收到的码是yyy,xxx和yyy的差别可以用它们的距离量化地表示,ddd就表示这个距离的最小值。
Hamming Distance
为了定义ddd先定义Hamming Distance的概念:
假设xxx,yyy是噪声信道输入和输出的nnn bits的码,则
d(x,y)=sum(x⊕y)d(x,y) = sum(x \oplus y)d(x,y)=sum(x⊕y)
其中⊕\oplus⊕表示异或运算,比如n=5n=5n=5,x=[11100]x=[1\ 1\ 1\ 0\ 0]x=[1 1 1 0 0],y=[10000]y=[1\ 0\ 0\ 0\ 0]y=[1 0 0 0 0],则x⊕y=[01100]x \oplus y = [0\ 1\ 1\ 0\ 0 ]x⊕y=[0 1 1 0 0],sum(x⊕y)=2sum(x\oplus y)=2sum(x⊕y)=2
再定义下Hamming Weight,假设eee是一个向量,则
w(e)=sum(e≠0)w(e) = sum(e\ne 0)w(e)=sum(e=0)
其中≠\ne=就是对eee的每个元素做的比较运算,e≠0e \ne 0e=0的结果是0-1向量,因此w(e)w(e)w(e)就是eee中非零元素的数目,显然
d(x,y)=w(x−y)d(x,y)=w(x-y)d(x,y)=w(x−y)
这两个概念类似范数与距离,Hamming distance也具有距离的性质:
- d(x,y)≥0d(x,y) \ge 0d(x,y)≥0
- d(x,y)=d(y,x)d(x,y) = d(y,x)d(x,y)=d(y,x)
- d(x,y)+d(y,z)≥d(x,z)d(x,y)+d(y,z) \ge d(x,z)d(x,y)+d(y,z)≥d(x,z)
考虑binary code,一个重要的问题是,在知道nnn和kkk的情况下,如何计算ddd?
例1 (Repetition Code)
Repetition code可以记为[n,1,n][n,1,n][n,1,n],比如信号000会被信道编码为0000⋯000 000\cdots 000000⋯00(nnn个),因此Hamming distance为nnn。
更一般的情况,nnn bits的信息最多可能有2n2^n2n种,kkk bits的信息最多可能有2k2^k2k种(记它们的集合为C\mathcal{C}C),我们需要对他们进行两两比较计算Hamming distance,然后找出最小的那一个就是ddd。
Property of Error Correction
给定一个[n,k,d][n,k,d][n,k,d],有下面三个结论:
- 最多能够做[d−12][\frac{d-1}{2}][2d−1]个error correction,[][\ ][ ]是高斯函数,表示不超过括号内的数的最大整数
- 最多能够做d−1d-1d−1个error detection
- 最多能够做d−1d-1d−1个erasure correction
证明
先考虑性质1,定义最邻近解码器 (Nearest Neighbor Decoder),记为D(y)D(y)D(y),其机制是在2k2^k2k个码中找与yyy距离最小的码。重述一下性质1,假设error的数目不超过d−12\frac{d-1}{2}2d−1个,则NN Decoder可以把他们全部改正过来。假设ccc是正确的码,则
d(y,c)=w(y−c)≤d−12d(y,c) = w(y-c) \le \frac{d-1}{2}d(y,c)=w(y−c)≤2d−1
用反证法,假设D(y)=c′≠cD(y) = c' \ne cD(y)=c′=c,根据最邻近的含义
d(y,c′)≤d(y,c)d(y,c') \le d(y,c)d(y,c′)≤d(y,c)
根据Hamming distance的三角不等式以及ddd的含义
d≤d(c,c′)≤d(y,c)+d(y,c′)≤2d(y,c)≤d−1d \le d(c,c') \le d(y,c) + d(y,c') \le 2d(y,c) \le d-1d≤d(c,c′)≤d(y,c)+d(y,c′)≤2d(y,c)≤d−1
显然这是矛盾的。
现在考虑这个性质的几何解释,假设yyy在以c′c'c′为圆心,τ\tauτ为半径的圆中,ccc是另一个半径为τ\tauτ的圆,则d(c,c′)≥dd(c,c') \ge dd(c,c′)≥d意味着两个圆的圆心距离大于ddd。因为D(y)=c′D(y)=c'D(y)=c′,这意味着两个圆不会相交,那么d(c,c′)≥2τd(c,c') \ge 2 \taud(c,c′)≥2τ,最小的超过2τ2 \tau2τ的可能的取值为2τ+12\tau + 12τ+1,只要控制
d≤2τ+1d \le 2 \tau + 1d≤2τ+1
就可以让yyy被准确修正。因此τ≤[d−12]\tau \le [\frac{d-1}{2}]τ≤[2d−1]。
对于性质2。
考虑解码器:D(y)=yIC(y)D(y)=yI_{ \mathcal{C}}(y)D(y)=yIC(y),如果D(y)=0D(y)=0D(y)=0,认为yyy是错误的码,则最多可以侦测到d−1d-1d−1个错误。一个更一般的结论是,如果要侦测σ\sigmaσ处错误,并改正另外τ\tauτ处错误,则2τ+σ≤d−12 \tau + \sigma \le d-12τ+σ≤d−1
对于性质3。
考虑erasure correction,比如发送的码是11011,但收到的码是11??1,则第三位和第四位就被erased了。定义δ\deltaδ是被擦除掉的bit数目,上面这个例子δ=2\delta=2δ=2。考虑解码器D(y)=cD(y)=cD(y)=c,其中c∈Cc \in \mathcal{C}c∈C是唯一一个与yyy没有被擦除的符号匹配的,不存在就认为是一个error。如果δ≤d−1\delta \le d-1δ≤d−1,则解码之后不会有error:
d≤d(c,c′)=d(cδ,c′δ)≤δ≤d−1d \le d(c,c') = d(c^{\delta},c'^{\delta}) \le \delta \le d-1d≤d(c,c′)=d(cδ,c′δ)≤δ≤d−1
显然也是能得出矛盾的。
UA MATH636 信息论8 纠错码简介相关推荐
- UA MATH636 信息论9 有限域简介
UA MATH636 信息论9 有限域简介 域.有限域 有限域上的多项式的四则运算 有限域是研究Reed-Solomon code (RS code)的基础,RS code是一种非常常用的error- ...
- UA MATH636 信息论7 高斯信道简介
UA MATH636 信息论7 高斯信道简介 微分熵的性质 Gaussian Channel简介 微分熵的性质 讨论Gauss信道之前,先给出几条微分熵的有用的性质: Gibbs不等式:D(p∣∣q) ...
- UA MATH636 信息论5 信道编码简介
UA MATH636 信息论5 信道编码简介 通讯的过程可以用下面这个流程图表示.信源发送一个随机信号WWW给信源编码器,编码器将信号WWW编码为XXX后发送到噪声信道进行传输,传输到接收端的解码器, ...
- UA MATH636 信息论8 线性纠错码的解码算法
UA MATH636 信息论8 线性纠错码的解码算法 standard array decoding syndrome decoding 考虑BSC,上一讲提到了ML decoder与MAP deco ...
- UA MATH636 信息论8 线性纠错码
UA MATH636 信息论8 线性纠错码 线性码的性质 Decode Linear Code 更细致地定义下记号,记 kkk bits信号为向量 m=[m0,⋯,mk−1]m=[m_0,\cdots ...
- UA MATH636 信息论7 并行高斯信道简介
UA MATH636 信息论7 并行高斯信道简介 考虑并行的高斯信道:将一个长信号分为kkk段,走一个并行的高斯信道,被接受后再把信号拼起来.每一个高斯信道的输入为Xi,i=1,⋯,kX_i,i=1, ...
- UA MATH636 信息论5 信道编码定理
UA MATH636 信息论5 信道编码定理 信道编码问题 信道容量的正式定义 信道编码定理 Joint Typical Set Joint AEP 上一篇简介里面介绍了通讯的过程,并用下面的流程图来 ...
- UA MATH636 信息论9 Berlekamp-Welch算法
UA MATH636 信息论9 Berlekamp-Welch算法 Naive RS decoder Berlekamp-Welch算法 一个例子 上一讲介绍了RS code,这一讲介绍RS code ...
- UA MATH636 信息论9 Reed-Solomon Code
UA MATH636 信息论9 Reed-Solomon Code Reed-Solomon Code的构造 一个例子 先介绍一类code,maximum distance separable cod ...
最新文章
- 干货 | 《利用Python进行数据分析》资料开源下载
- python绘制中国加油_软件开发|使用 Python 为你的油箱加油
- build muduo网络库undefined reference to问题
- linux sftp自动输入密码,使用autoexpect避免sftp输入密码
- Java Object.hashCode()方法
- 今晚8点直播丨经典知识库:数据库对象命名设计规范手册
- spring-cloud Sleuth
- Android框架之AsyncHttpClient
- MySQL(3)-----DML数据库操作(上)
- VS2010使用c++、gSOAP创建WebService 图文教程
- linux 升级内核和设置默认启动内核
- python12306抢票_Python3.6实现12306火车票自动抢票,并短信和邮件通知
- html中siblings方法,jQuery siblings()方法的用法
- Java基础-进程与线程
- 蝴蝶效应(Butterfly effect)[FROM 百度ZD]
- mysql b树_为什么 MongoDB 索引选择B树,而 Mysql 选择B+树(精干总结)
- wifi动不动就断开_WIFI经常自动断网,大多数是因为此原因
- 学校开展计算机教学的简报,教学工作简报(2019年第5期)
- PSPICE理想恒功率负载(CPL)建立方法
- Linux常用指令(详解)