RS(255,223)纠错编码的MATLAB仿真课程设计1.doc
《RS(255,223)纠错编码的MATLAB仿真课程设计1.doc》由会员分享,可在线阅读,更多相关《RS(255,223)纠错编码的MATLAB仿真课程设计1.doc(27页珍藏版)》请在三一办公上搜索。
1、编号: 课程设计说明书题 目: RS(255,223)纠错编码的 MATLAB仿真 目 录1 引言21.1信道编码理论与技术的发展历程及应用21.2 纠错编码简介42 Reed Solomon编码概述53 Reed Solomon编码抽象代数基础63.1 群63.2 环和域73.3 有限域73.4 欧几里得算法84 BCH码、RS码及其编码94.1 BCH码、RS码简介94.2 RS码的构造方法105 RS码的译码115.1 关键方程的引入125.2 多项式的欧几里得算法135.3 BCH/RS码的解码步骤156 MATLAB主要程序及其仿真结果187 总结19致谢20参考文献21附 录22摘
2、 要在纠错码领域中Reed-Solomon码是一类具有严格代数结构的线性分组码。由于它突出的纠错能力(特别是纠突发错误的能力),常被应用于数据存储以及现代数字通信系统中。在卫星通讯中,差错控制编码技术对降低误码率、提高通信的可靠性具有非常重要的作用。RS(Reed-Solomon)码是差错控制领域中一种性能优异的线性分组循环码,由于其具有很强的随机错误和突发错误的纠错能力,所以被CCSDS、NASA、ESA 等空间组织接受,广泛用于深空探测中。目前我国还没有高码速率的 RS 硬件译码器,虽然“双星计划”已经采用 RS纠错编码技术,在卫星上使用 RS(255,223)硬件编码器进行编码,但是由于
3、硬件译码器的复杂性,地面接收系统采用的是软件译码,无法保证通信的实时性。为此,本文在详细介绍RS(255,223)编码译码的基础上,利用MATLAB软件对该理论进行仿真。关键词:Reed-Solomon编码;抽象代数;RS码编码;RS码译码算法;RS(255,223)仿真;MATLAB1 引言1.1 信道编码理论与技术的发展历程及应用Shannon 的信道编码定理给出了有噪信道通信的最大速率,证明了好码的存在性,但对该定理证明是非构造性的,它没有告诉我们怎么构造好码。如何通过不可靠信道进行可靠的通信,是编码理论所要研究的问题。半个多世纪以来,众多的学者为构造逼近容量限的纠错码做了大量的工作,但
4、这一问题直到 45 年后才基本得到解决。但是,“过程比目标更重要”,在应对这一挑战的过程中,编码理论家和工程师们应用组合数学、线性代数、概率论、有限域理论等数学工具,建立了纠错码的性能参数限,发现了许多构造纠错码的方法,并设计了有效的编译码算法,为信息技术的蓬勃发展建立了不朽的功勋!在 Shannon 的论文发表之前,Richard Hamming 就已经为早期的计算机设计了一种纠单个错误的码,迈出了信道编码理论与技术研究的第一步。之后,信道编码理论与与技术的大致经历了以下几个发展阶段:1. 50 年代至 60 年代初这是编码理论从无到有并得到迅速发展的年代,现代编码理论的许多思想都起源于这一
5、时期。1)发现了几种线性分组码,如 Golay 码、Reed-Muller 码(RM 码)、Reed-Solomon 码(RS 码)、Bose-Chaudhuri-Hocquengham 码(BCH 码)、低密度校验码(LDPC 码)等,以及卷积码;2)为这些码设计了有效的译码算法,如用于 RS 码和 BCH 码译码的 PGZ 算法、用于卷积码译码的 Fano 译码算法;3)证明了纠错码的几个最小码距限,如 Hamming 限(H 限)、Singleton限、Plotkin 限(P 限)、Gilbert-Varshamove 限(GV 限),其证明可以在编码理论的基础教材中找到;4)1957
6、年,Elias 提出了一种概念译码器表单译码器(List Decoder),以突破传统的限定距离译码(BDD)的半最小码距的纠错半径;5)1961 年,W. W. Peterson 编写了第一本关于纠错码理论的专著,系统地阐述了纠错码的基本理论。2. 60 年代至 70 年代初这是纠错码发展最为活跃的时期之一。在此期间,以代数方法特别是以有限域理论为基础的线性分组码理论已趋成熟。1)提出了许多有效的编、译码方法。1965年,E. R. Berlekamp提出了一种实用分组码的代数译码算法,1969年, J.L. Massey从序列综合的角度重新推导了这一算法,后人称之为Berlekamp-Ma
7、ssey算法(BM算法)。BM算法的提出,是分组码走向实用的一个重要里程碑。1966年,G. D. Forney第一次采用简单的分量码构造级联码,以提高码的性能。第一个成功的级联码是采用卷积码作内码、RS码作外码的串行级联码,其典型应用是在卫星通信、深空探测等领域,如Voyager、Galileo、Cassini等任务,这种编码方式还被应用于美国的数字电视(ATSC)、欧洲的数字视频广播(DVB)和数字音频广播(DAB)等系统中;另一种典型的级联码是C. Berrou于1993年发现的并行级联卷积码(PCCC),即我们通常所称的Turbo码,这是一种逼近Shannon限的码。1967年,A.
8、J. Viterbi提出了卷积码的最大似然译码算法,实现了数字通信中信道编码技术的一次实质性突破。Viterbi算法还在其它领域得到了广泛应用。1974年,Bahl等提出了一种最大后验概率(MAP)译码算法(也称为BCJR算法),其误比特率(BER)性能优于Viterbi算法。但由于计算复杂度大大增加,MAP算法直到1993年Berrou发现Turbo码之后才得到广泛应用。由于硬判决译码通常较软判决译码损失23dB,对分组码的软判决译码算法的研究也逐渐成为一个重要的课题。对于卷积码,硬判决译码和软判决译码通过相同的格图进行译码,其复杂度大体相同。而对于分组码,基于格图的译码与代数译码相比,复杂
9、度会大大增加,因此次优的译码算法成为首选。在这方面,著名的有广义最小距离(GMD)译码算法、Chase算法等。2)研究了与码的性能有关的各种问题,如码的重量分布、译码错误概率和不可检错误概率的计算、信道的模型化等,所有这些问题的研究为信道编码技术的实用化打下了坚实的基础。3. 70 年代初至 80 年代这是信道编码发展史中最具重要意义的时期,信道编码在理论和实践方面都取得了丰硕的成果。1)在理论上,以 Goppa 为首的一批学者在 70 年代初较系统地构造了一类逼近 Shannon 限的有理多项式码Goppa 码,这在纠错码的历史上具有划时代的意义。80 年代初,Goppa 等将代数几何的理论
10、与方法系统地应用于编码理论中,由 Goppa 码引出了代数几何码,使得 Goppa 码日益引起了人们的极大兴趣。1987 年,G. Ungerboeck 提出了著名的格图编码调制(TCM)技术,展示了如何将编码和调制结合起来,改善系统的整体性能,这是编码理论的又一重要里程碑。之后,众多研究者开始对 TCM 进行了深入研究,并将这一概念推广到分组编码调制(BCM)。2)这期间微电子技术的迅速发展,为编码技术的实用化打下了坚实的物质基础;各种实际应用也带动了信道编码技术的发展,编码技术的实用化得到了极大关注,并取得了巨大的进展。例如,用于 RS 码译码的 BM 算法进一步发展成熟,出现了无求逆的
11、BM(iBM)算法、Euclid 算法、Welch-Berlekamp 算法(WB 算法)等,其超大规模集成电路(VLSI)实现也得到了充分的发展。信道编码技术最成功的应用在于卫星通信和深空探测领域,这使得宇宙飞船从遥远的太空传回了许多极其宝贵的天文学资料。特别值得一提的是,在 1989年的 Galileo 任务中,由于主天线的故障,数据传输的速率比原设计指标大大下降,喷气式推进实验室(JPL)的科学家们从地面发送指令,重新配置板上计算机,在数据传输之前进行了更多的编码处理,使得由于硬件故障引起的数据传输速率下降得以部分恢复,从而挽救了整个探测计划。若不应用信道编码技术,这些成就的取得是不可企
12、及的。此外,信道编码技术还用于数据存储系统,提高数据存储密度;用于数据传输系统,提高数据传输速率;用于各种数字通信系统,提高通信质量;用于数字音频/视频传输系统以及视听娱乐设备,为我们的生活带来美妙的音乐和完美的视觉享受;而且纠错码技术还应用于超大规模集成电路设计中,以提高集成电路芯片的成品率,降低芯片的生产成本。4. 90 年代以后这一时期,编码理论的重大发现当首推1993年Berrou等发现的Turbo码。Turbo码是一种利用伪随机交织器构造的具有随机码行为的长码,它采用并行级联卷积码的方式进行编码,用最大后验概率(MAP)译码器进行迭代译码,分量译码器之间通过传递所谓的外信息来减少信息
13、损失,其性能非常接近Shannon限,这一惊人的性能打破了长期以来的猜想:利用二元卷积码和序列译码是达到截止速率R (即所谓的“实际容量”)的一种可实现的方法。在迭代译码器中,所采用的分量码MAP译码器可以用软入输出Viterbi算法(SOVA)代替,这会使Turbo码译码性能略有下降,但大大降低了计算复杂度和存储量要求。更为实用的分量码译码器是Koch等提出的Max-Log-MAP译码算法和Robertson等提出的Log-MAP译码算法。后来,Hagenauer、Pyndiah又分别将Turbo码迭代译码的思想用于级联二元分组码和乘积码。现在,Turbo码的迭代算法已经成为“Turbo原理
14、”,广泛应用于各种级联系统,如均衡、编码调制、信源压缩、信源信道联合编码以及信号检测等。另一方面,在探究Turbo码迭代算法的过程中,Mackay和Neal于1996年重新发现了Gallager于60年代提出的具有稀疏校验矩阵的线性分组码LDPC码,基于Tanner图进行迭代译码,其性能与Turbo码差不多。最近,采用BCH码作外码、LDPC码作内码的级联码已经被DVB-S2采纳。1998年,Tarokh、Seshadri和Calderbank提出的格图空时码,在时间和空间上都引入了编码,集前向纠错(FEC)、发送分集和接收分集于一体,能获得较大的编码增益和分集增益,实现数据的高速传输。几个月
15、后,Alamouti发明了低复杂度的分组空时码。空时码的基本思想是采用多个发射天线和多个接收天线来提高系统容量,关于空时码已有许多研究文献。由于RS码在众多数字通信系统、数据存储系统中的成功应用,以及其软判决译码性能的巨大潜力,RS码的软判决译码问题也得到了很大的关注。其中,Sudan于1997年提出了多项式复杂度的表单译码(List Decoding)算法,将RS译码问题转化成有限域上的曲线拟合问题,给出并证明了几个重要的定理,奠定了RS码表单译码的基础。但Sudan算法只适用于码率不大于1/3的RS码,而1999年提出的Guruswami-Sudan算法则可适用于任意码率的RS码和代数几何
16、码。另一方面,Koetter和Vardy基于Guruswami-Sudan算法,将接收符号的软信息转化为一系列的代数条件,用代数方法实现了RS码的软判决译码。1.2 纠错编码简介我们知道,在计算机和数据通信中,经常需要将二进制数字信号进行传递,这种传递的距离近则数米!数毫米,远则超过数千公里。在传递信息过程中,由于存在着各种干扰,可能会使二进制信号产生失真现象,即在传递过程中二进制信号O可能会变成1,1可能会变成0。试想一个二进制信号传递的简单模型,它有一个发送端和一个接收端,二进制信号串从发送端发出经传输介质而至接收端。由于存在着干扰,因而接收端接收到的二进制信号串可能与原来的二进制信号串不
17、相等,从而产生了二进制信号的错误传递。由于在计算机和数据通信系统中的信号传递是非常的频繁与广泛,因此,如何防止传输错误就变得相当重要了,当然,要解决这个问题可以有不同的途径。人们所想到的第一个途径是提高设备的抗干扰能力和信号的抗干扰能力。但是,大家都知道,这种从物理角度去提高抗干扰能力并不能完全消除错误的出现。第二个途径就是我们所要谈到的采用纠错码(Error correcting code)的方法以提高抗干扰能力。这种纠错码的方法是从编码上下功夫,使得二进制数码在传递过程中一旦出错,在接收端的纠错码装置就能立刻发现错误,并将其纠正。由于这种方法简单易行,因此目前在计算机和数据通信系统中被广泛
18、采用采用这种方法后,二进制信号传递模型就可以变为纠错码模型了。由纠错码模型可以想到,当二进制信号串从发送端发送时,需按规定转换成具有抗干扰能力的纠错码,然后才发送出去。在接收端,当接收到二进制信号串后立即对接收到的纠错码进行检查,查对在途中是否失真,如失真则负责纠正。该模型的一个典型实现,就是在远程数据传输系统中具有纠错能力的数据传输装置,该装置的纠错过程是二进制信号发生器发出信号(二进制信号发生器可以是计算机,或者是由人控制的某些装置如终端),经差错控制器形成纠错码,然后经调制器使二进制信号变成为适宜于信道传播的电信号,这种信号通过信道传输至接收端,首先通过解调器将其还原为原来的二进制信号,
19、再经差错控制器检验经信道传输后是否产生失真,并采取措施进行纠正。经纠正后的二进制信号送入二进制信号接收器,从而完成整个传输过程二进制信号接收器可以是计算机,或其他接收装置如终端等。但是,为什么纠错码具有发现错误!纠正错误的能力呢?纠错码又是按什么样的原理去编的呢?为了说明这些问题,我们首先介绍一些基本概念:由0和1组成的串称为字(Word),一些字的集合称为码(Code)。码中的字称为码字(Code Word)。不在码中的字称为废码(Invalid Code)。码中的每个二进制信号0或1称为码元(Code Letter)。我们下面举出几个关于纠错码的例子。设有长度为2的字,它们一共可有2x2=
20、4个,创门所组成的字集S,=00,01,10,11。当选取编码为52时,这种编码不具有抗干扰能力。因为当52中的一个字如10,在传递过程中其第一个码元1变为0,因而整个字成为00时,由于00也是52中的字,故我们不能发现传递中是否出错。但是,当我们选取52的一个子集如C2二00,川作为编码时就会发生另一种完全不同的情况。因为此时01和10均为废码,而当H在传递过程中第一个码元由1变为O,即整个字成为01时,由于01是废码,因而我们发现传递过程中出现了错误。对00也有同样的情况。但是,这种编码有一个缺点,即它只能发现错误而不能纠正错误,因此我们还需要选择另一种能纠错的编码现在我们考虑长度为3的字
21、,它们一共可有2!3=8个,它们所组成的字集凡000,001,010,011,100,101,110,111中我们选取编码q二001,110。利用此编码我们不仅能发现错误而且能纠正错误。因为码字001出现错误后将变为:000,011,101,而码字110出现错误后将变为:111,100,010。故如码字001在传递过程中任何一个码元出现了错误,整个码字只会变为101!011或000,但是都可知其原码为001。对于码字110也有类似的情况故对编码q,我们不仅能发现错误而且能纠正错误当然,上述编码还有一个缺点,就是它只能发现并纠正单个错误。当错误超过两个码元时,它就既不能发现错误,更无法纠正了。2
22、 Reed Solomon编码概述Reed-Solomon 码(RS 码)是 Reed和 Solomon于 1960 年发现的一类多元最大距离可分(MDS)码,其最小距离达到了 Singleton 限mind = n k+ 1,从这个意义上讲,RS 码是最佳的。之后几十年里,RS 码的硬判决译码得到了深入的研究,其理论和技术都已经非常成熟。因而,RS码在现代数字通信、数据存储系统中得到了广泛的应用,见下表应用领域编码方案硬盘驱动器RS(32, 28, 5)码CD交叉交织 RS 码(CIRC)DVDRS(208, 192, 17)码、RS(182, 172, 11)码乘积码DAB、DVB内码为卷
23、积码、外码为 RS(204, 188, 17)码的级联码ATSC内码为卷积码、外码为 RS(207, 187, 21)码的级联码深空通信内码为卷积码、外码为 RS(255, 223, 33)码的级联码光纤通信RS(255, 239, 17)码 有限域算术是 RS 码的基础,并行通用有限域乘法器的时延决定了 RS 码译码器的工作频率。如何用现场可编程门阵列(FPGA)实现通用有限域乘法器,降低其运算时延,是软件无线电中 RS 码译码子系统设计过程中要考虑的一个关键的问题。在工程实践中通常采用的“直接二级逻辑设计”仅仅依靠综合工具对所设计的电路进行优化,不能有效地利用 FPGA 所提供的资源,降低
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RS 255 223 纠错 编码 MATLAB 仿真 课程设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4200315.html