谁发明了纠错码?

本文探讨错误校正编码技术的发展历史,以及哈明、里德-所罗门等主要发明者的贡献。
On this page

谁发明了纠错码?

摘录

像理查德·哈明、欧文·里德、古斯塔夫·所罗门和克劳德·贝鲁这样的先驱者发明了今天在数字系统中广泛使用的纠错码技术。

介绍

纠错码在现代数字通信和存储系统中起着至关重要的作用。它们能够检测和纠正在传输或存储过程中引起的数据意外变化。如果没有纠错,静态、信号噪声和其他环境因素将使数字数据无用。

纠错码的基础是在 20 世纪 40 年代和 50 年代建立的,当时数字计算开始出现。数十年来,各种科学家和工程师做出了渐进式的创新,导致了复杂的纠错实现。本文探讨了纠错码的历史和开创性发明者。

错误检测

纠错的第一步是检测出错误。早期开发了一些简单的错误检测技术:

奇偶校验位 - 奇偶校验位方法包括在二进制数据流中添加一个额外的 0 或 1,以确保数据块中的 1 的总数是偶数或奇数。接收端检查奇偶校验位,如果计数错误,则检测到错误。奇偶校验提供了基本的错误检测,但无法确定或纠正错误。

校验和 - 校验和通过从数据块中计算一个短的固定长度哈希值来工作。这个校验和被附加到消息中。接收端独立计算校验和以检测任何差异。循环冗余校验(CRC)是常用的校验和算法。然而,校验和只能检测错误。

这些方法为真正的错误纠正奠定了基础。

错误校正

纠错编码不仅仅是检测错误,它们还能在许多情况下重建原始数据。一项开创性的技术是由工程师Richard Hamming在 1950 年代发明的Hamming codes

Hamming codes通过在数据中计算不同重叠比特模式的奇偶校验位来工作。通过巧妙地设计奇偶校验计算,可以根据哪些奇偶校验检查失败来推断出错误的位置。这使得可以翻转错误的比特位来纠正错误。Hamming codes 被用于 RAM 错误校正。

Hamming 的发明证明了在传输之前通过智能地对数据进行冗余信息编码来实现错误校正的可能性。这为更高级的方案奠定了基础。

Reed-Solomon 编码

1960 年,工程师Irving ReedGustave Solomon发表了一篇有影响力的论文,介绍了Reed-Solomon 编码。基于抽象代数,这些编码通过将数据映射到多维多项式中的点来工作。添加冗余数据点,以便即使有几个点被损坏,仍然可以重建原始的多项式曲线。

与 Hamming codes 相比,Reed-Solomon codes 具有更高的错误校正能力。它们可以在高错误率下恢复数据。Reed-Solomon 编码在存储介质、卫星通信、条形码和其他应用中起着关键作用。与 Hamming codes 一起,它们推动了错误校正的采用。

Turbo Codes

在 20 世纪 90 年代,信息理论确定了在给定冗余级别下的纠错能力的理论极限。传统技术难以达到这些极限。1993 年,克洛德·贝鲁和他的同事们引入了Turbo codes,打破了这一限制。

Turbo codes通过使用迭代译码过程来接近理论极限。多个译码器按顺序运行,反复改进和提高错误恢复能力。Turbo 编码实现了高效无差错的移动通信。这些概念影响了现代蜂窝移动通信和 Wi-Fi 标准。

结论

像 Hamming、Reed、Solomon 和 Berrou 这样的开拓性研究人员在开发当今普遍使用的纠错码方面发挥了重要作用。他们的发明使得在嘈杂环境中也能实现可靠的数字数据传输和存储。

随着技术的进步,出现了更多类型的错误,需要更复杂的编码方案。例如,量子计算对加密安全性构成威胁。后量子密码学是一个正在研究的活跃领域。

自 20 世纪 40 年代以来,纠错码已经取得了长足的进步,但在未来创新方面仍有很大的空间。随着数字系统的普及,这些算法对于强大可靠的数据通信和存储变得更加重要。