差错控制编码解决加性噪声 第5页
dmin>=e+1
(2)在一个码组内纠正个t误码,要求最小码距
dmin>=2t+1
(3)在一个码组内纠正t个误码,同时检测e个(e>=t)误码(当误码数大于t时就不能纠错,只能检测e个误码),要求最小码距
dmin>=t+e+1
1.4 汉明(Hamming)码
汉明码是1950年由美国贝尔实验室汉明提出来的,是第一个设计用来纠正错误的线性分组码,汉明码被广泛用于数字通信和数据存储系统中。
对于奇偶校验的偶校验,我们用下式作为作为监督方程。
在接收端译码时,若S=0,就认为无错。
若S=1,就认为有错。
这里称S为校正子(校验子),又称伴随式。
在上例中,由于只有一位监督码元,一个监督方程,所以只能检错,无法纠错。
汉明码(n,k)是一种可用于纠单个随机错误的循环编码。一般汉明码的参数如下:
码长 n=2^r-1
信息位 k=2^r-1-r
监督位 r=n-k,r是不小于3的任意正整数。
(因为要纠t位错误,dmin大于2t+1)
最小汉明距离 d=3
下表是纠错一位的一般汉明码结构。
码子长度n |
信息位k |
校验位r |
7 |
4 |
3 |
15 |
11 |
4 |
31 |
26 |
5 |
63 |
57 |
6 |
(7,4)汉明码的编码器和译码器
若图片无法显示请联系QQ3249114,本论文免费,转发请注明源于www.751com.cn
该仿真原理图包含两个子系统,分别是(7,4)汉明码的编码器和译码器。仿真时的信号源采用了一个PROM,并由用户自定义数据内容,数据的输出由一个计数器来定时驱动,每隔一秒输出一个4位数据(PROM的8位仅用了其中4位),由编码器子系统编码转换后成为7位汉明码,经过并串转换后传输,其中的并串、串并转换电路使用了扩展通信库2中的时分复用合路器和分路器图符,该合路器和分路器最大为16位长度的时隙转换,这里定义为7位时隙。此时由于输入输出数据的系统数据率不同,因此必须在子系统的输入端重新设置系统采样率,将系统设置为多速率系统。因为原始4位数据的刷新率为1Hz,因此编码器的输入端可设置重采样率位10Hz,时分复用合路器和分路器的数据帧周期设为1秒,时隙数位7,则输出采样率为输入采样率的7倍,即70Hz。如果要加入噪声,则噪声信号源的采样率也应设为70Hz。
1.5 BCH码
BCH码是循环码的一个重要子类,它具有纠多个错误的能力,BCH码有严密的代数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的关系,人们可以根据所要求的纠错能力t很容易构造出BCH码,它们的译码器也容易实现,是线性分组码中应用最普遍的一类码。
BCH码的生成多项式若图片无法显示请联系QQ3249114,本论文免费,转发请注明源于www.751com.cn
若循环码的生成多项式具有如下形式:
,这里t为纠错个数,为最小多项式,LCM表示取最小公倍式,则由此生成的循环码称之为BCH码。该码是以三个发现者博斯(Bose)、查德胡里(Chaudhuri)和霍昆格姆(Hocquenghem)名字的开头字母命名的。其最小码距dmin≥2t+1,能纠t个错误。BCH的码长为n=或的因子。码长为n=的BCH码称为本原BCH码。码长为因子的BCH码称为非本原BCH码。对于纠t个错误的本原BCH码,其生成多项式为 。纠正单个错误的本原BCH码就是循环汉明码。
下面介绍几种常见的BCH码。
1、戈雷码(Golay)
(23,12)码是一个特殊的非本原BCH码,称为戈雷码,它的最小码距7,能纠正3个错误,其生成多项式为。它也是目前为止发现的唯一能纠正多个错误的完备码。
2、扩展形式
实际应用中,为了得到偶数码长,并增加检错能力,可以在BCH码的生成多项式中乘D+1,从而得到(n+1,k+1)扩展BCH码。扩展BCH码相当于将原有BCH码再加上一位的偶校验,它不再有循环性。
3、缩短形式
几乎所以的循环码都存在它另一种缩短形式。实际应用中,可能需要不同的码长不是或它的因子,我们可以从
BCH译码
BCH码的译码方法可以有时域译码和频域译码两类。频移译码是把每个码组看成一个数字信号,把接受到的信号进行离散傅氏变换(DFT),然后利用数字信号处理技术在“频域”内译码,最后进行傅氏反变换得到译码后的码组。时域译码则是在时域直接利用码的代数结构进行译码。BCH的时域译码方法有很多,而且纠多个错误的BCH码译码算法十分复杂。常见的时域BCH译码方法有彼得森译码、迭代译码等。BCH的彼得森译码基本过程为:1、用的各因式作为除式,对接收到的码多项式求余,得到t个余式,称为“部分校验式”。2、用t个部分校验式构造一个特定的译码多项式,它以错误位置数为根。3、求译码多项式的根,得到错误位置。4、纠正错误。
事实上,BCH码是一种特殊的循环码,因此它的编码器不但可以象其它循环码那样用除法器来实现,而且原则上所有适合循环码译码的方法也可以用于BCH码的译码。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>