esc
Type to search, or take a leap:
1950 AD (Hamming codes)·Computing·verified

Error-correcting codes

A way of adding structured redundancy to data so that a message can not only reveal when it has been corrupted, but locate and repair the flipped bits itself, with no second copy and no request to resend. Extra check bits are arranged so their pattern of failures points straight at the error.

深层档案目前以英文写就——经核验的翻译已列入路线图。浏览器自带的翻译功能在本页表现良好。

Error-correcting codes
en:User:Cburnett · CC BY-SA 3.0 · Wikimedia Commons

✦ 等等,真的吗?

In 1947 Richard Hamming was allotted the Bell Labs relay computer only on weekends, and it ran his jobs unattended — he started a program Friday evening and collected the output Monday morning. Whenever the machine caught an error it simply halted and sat idle, wasting his whole weekend. Furious, he asked why a machine clever enough to *notice* an error couldn't also *fix* it — and by 1950 he had published codes that let a block of bits find and repair a flipped digit on their own. Every hard drive, QR code, and deep-space signal since carries his answer.

它是什么

An error-correcting code is a scheme for writing data with deliberate, structured redundancy, so that the data can heal itself. A simple check like a parity bit can tell you *that* something went wrong; a correcting code tells you *where*. Hamming's insight was to add several parity bits, each covering a carefully chosen, overlapping subset of the data bits. If a bit flips, some of those parity checks fail and others still pass, and the exact combination of failures — read as a binary number, the "syndrome" — is the address of the corrupted bit. Knowing the address, the receiver simply flips that bit back. No resend, no second copy, no human operator.

它为何重要

Before this, a machine or a channel that detected an error could only stop and complain. Shannon had just proved, in 1948, the startling result that error-free communication over a noisy channel was possible in principle — but his proof was an existence theorem; it did not hand you a code you could build. Hamming supplied the first practical one. That closed the gap between what information theory promised and what an engineer could actually wire up, and it turned reliability from a matter of luck and careful handling into a matter of design: you decide in advance how many errors a block must survive, and you pay for it in a fixed handful of extra bits.

它解锁了什么

Reliable digital storage and transmission at scale. ECC memory quietly corrects the bit-flips that cosmic rays and thermal noise inflict on server RAM; CDs, DVDs, and hard disks read cleanly through scratches and defects; QR codes still scan when a chunk is smudged or torn; and deep-space probes send pictures across billions of kilometres on a whisper of power because heavier codes descended from Hamming's — Reed–Solomon, convolutional, turbo, and LDPC codes — let the ground station reconstruct data the noise had mangled. Every modern link, from Wi-Fi to mobile phones to the wires inside a computer, assumes its bits will occasionally be wrong and is built to repair them on arrival.

最简可行版本

A single parity bit detects one flipped bit but cannot fix it. Hamming's smallest useful code, Hamming(7,4), sends four data bits plus three parity bits; if any one of the seven bits flips, the three parity checks that fail spell out, in binary, the exact position of the error — so the receiver just flips it back.

此条目尚待完整撰述——制图师正在工作。它在图中的位置已经核验无误。

前提

解锁

前沿——此后尚未绘制。

来源

  • R. W. Hamming, 'Error Detecting and Error Correcting Codes,' *Bell System Technical Journal* 29, no. 2 (April 1950): 147–160
  • Claude E. Shannon, 'A Mathematical Theory of Communication,' *Bell System Technical Journal* (1948)
  • Richard W. Hamming, *The Art of Doing Science and Engineering* (1997)

发现本页有误?这里的每一条论断,都应当经得起质疑。 提交更正 →