Hamming code. Encoding Numeric Information

In its functioning, any automated system is faced with the problem of adequate perception of data, the purity of the information received, finding errors, as well as their corrections. The more serious the tasks assigned to the information processing object , the more complex and sensitive the system for determining failed software elements and errors in the flow of information he has to work.

One of the options for checking the information flow for errors, and even correcting them, is the encoding of numerical information. There are many codes and methods used when working with various data. The so-called Hamming code is a classic example, which became the starting point for creating more complex and sophisticated ways to find and eliminate errors that occur during data transfer .

The story of the code begins in the mid 1940s. At this time, Richard Hamming mastered the calculating machine Bell Model V, working in the eminent Bell Labs. Then it was an ultramodern mechanism using the electromechanical principle of action. The design of the machine used relay blocks. Their use did not give a significant gain in speed. It took several seconds to complete one revolution. Data was entered using punch cards, and errors in the process of reading them were not uncommon. On weekdays, special codes were used to detect and correct errors found. The machine informed the operator by the glow of bulbs, which in turn corrected the error and restarted the calculation process. But on weekends, the process took place according to other rules. Finding an error, the machine automatically stopped the execution of the first program and proceeded to the execution of another.

Since Hamming very often had to work on weekends, he was very annoyed by the similar behavior of the computer, because he had to restart the program he worked on every time, and all the fault was the unreliability of punch cards. He had to spend several years building the most effective error correction algorithms. As a result, by 1950 he managed to find and make public the best way to solve this problem, now it is known around the world as the Hamming code.

The output proposed by Richard Hamming, was immediately widespread. Methods of encoding information have replenished with several large blocks. For example, systematic codes represent a large group, which consists of block, so-called separable codes (in other words, those in which all characters are divided into information and verification).

Systematic codes have a peculiarity, verification characters are the result of linear operations on information symbols. Moreover, in any permitted code combination, there is the possibility of obtaining a result from linear operations performed on a set of independent linear code combinations.

The Hamming code is a self-checking code. These codes allow you to detect errors automatically during data transfer. To build them, you only need to assign to each word one control (incremental) binary digit. The number is selected so that the total number of units in the image of the number is, by condition, even.

If a single error occurs, then it will change the parity in the total number of units.

Codes that lead to the correction of errors in automatic mode are called self-correcting. To build such a code, one controlling bit is no longer enough. Of greatest interest are binary block codes , which are corrective.

To summarize, we can conclude that the Hamming code uses the principle of parity, where the number of unit characters is examined.

Source: https://habr.com/ru/post/G12481/


All Articles