目录
1.算法概述
“汉明码是一种常用的纠错码,具有纠一位错误能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。汉明码是一种线性分组码。线性分组码是指将信息序列划分为长度为k的序列段,在每一段后面附加r位的监督码,且监督码和信息码之间构成线性关系,即它们之间可由线性方程组来联系。这样构成的抗干扰码称为线性分组码。
汉明码是一种线性分组码。线性分组码是指将信息序列划分为长度为k的序列段,在每一段后面附加r位的监督码,且监督码和信息码之间构成线性关系,即它们之间可由线性方程组来联系。这样构成的抗干扰码称为线性分组码。
设码长为n,信息位长度为k,监督位长度为r=n-k。如果需要纠正一位出错,因为长度为n的序列上每一位都可能出错,一共有n种情况,另外还有不出错的情况,所以我们必须用长度为r的监督码表示出n+1种情况。而长度为r的监督码一共可以表示2^r种情况。因此
2^r >= n + 1, 即r >= log(n+1)
我们以一个例子来说明汉明码。假设k=4,需要纠正一位错误,则
2^r >= n + 1 = k + r + 1 = 4 + r + 1
解得r >= 3。我们取r=3,则码长为3+4=7。用a6,a5,...a0表示这7个码元。用S1,S2,S3表示三个监关系式中的校
本文介绍了基于软译码的汉明码在MATLAB中的编译码实现,详细阐述了汉明码的原理,包括码长、信息位长度和监督位长度的关系,以及如何通过监督关系计算监督位。通过MATLAB仿真展示了汉明码的纠错能力,并提供了相应的源代码。
订阅专栏 解锁全文
405

被折叠的 条评论
为什么被折叠?



