纠错码
维基百科,自由的 encyclopedia
在电脑,电信,资讯理论和编码理论中,纠错码(ECC,error correction/correcting code)是资讯传输中错误检测与纠正的工具。它通常用在不可靠或嘈杂的波道中。[1][2]数据发送方利用纠错码中的冗余资讯,使得接收方能够检测消息传输中发生的错误,而且通常可以纠正这些错误而无需重新传输。美国数学家理查德·汉明(Richard Hamming)在1940年代开创了这一领域,并在1950年发明了第一个纠错码:汉明(7,4)代码。[2]
![]() | 此条目可参照英语维基百科相应条目来扩充。 (2019年8月29日) |
相比错误检测,纠错码不仅能够检测到错误,而且可以将其更正。它的优点是在出现错误时不需要反向波道来请求重发数据,缺点是消息中增加了固定开销,因此需要更高的前向波道带宽。因此,纠错码用于重传成本高昂或无法实现的情况,例如单向通讯链路,时延较长的链接,以及以多播方式发送给多个接收者的链接。比如,绕天王星运行的卫星,由于传输错误而造成的重发会造成5个小时的延迟。纠错码资讯通常添加到大容量存储装置中,以恢复损坏的数据,并广泛用于调制解调器、固态硬盘,以及主存为 ECC 内存的系统中。
接收机中的纠错码处理可以应用于数码位元流,也可以应用于数码调制载波的解调。对于后者,纠错码是接收器中模拟数码转换器的组成部分。维特比(Viterbi)解码器采用软判决算法,以从被杂讯破坏的模拟信号中解调数码数据。许多纠错码编码器/解码器还可以生成比特误码率(BER)信号,该信号可用作反馈以微调模拟接收电子装置。
纠错码能够纠正的错误位/丢失位的最大数量取决于它的的设计,因此,不同的纠错码适用于不同的环境。一般来说,能够纠正大量错误的代码中有着更多的冗余资讯,所以会需要更多带宽进行传输,从而降低了有效比特率,且同时提高了接收到的有效信噪比。克劳德·香农(Claude Shannon)的有噪波道编码定理回答了以下问题:若使用最有效的代码将解码错误概率变为零,数据通讯还剩下多少带宽?对于具有基本杂讯水平的波道,该定理给出了理论上的最大资讯传输速率。但是,该证明不具建设性,也就是说它并不能用来构建实现最大速率的代码。经过多年的研究,如今[何时?]一些先进的纠错码系统,其速率已非常接近理论最大值。