HOME

TheInfoList



OR:

In
coding theory Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and computer data storage, data sto ...
, a constant-weight code, also called an ''m''-of-''n'' code or ''m''-out-of-''n'' code, is an error detection and correction code where all codewords share the same
Hamming weight The Hamming weight of a string (computer science), string is the number of symbols that are different from the zero-symbol of the alphabet used. It is thus equivalent to the Hamming distance from the all-zero string of the same length. For the mo ...
. The one-hot code and the balanced code are two widely used kinds of constant-weight code. The theory is closely connected to that of designs (such as ''t''-designs and Steiner systems). Most of the work on this field of discrete mathematics is concerned with ''binary'' constant-weight codes. Binary constant-weight codes have several applications, including frequency hopping in GSM networks.D. H. Smith, L. A. Hughes and S. Perkins (2006).
A New Table of Constant Weight Codes of Length Greater than 28
. ''The Electronic Journal of Combinatorics'' 13.
Most barcodes use a binary constant-weight code to simplify automatically setting the brightness threshold that distinguishes black and white stripes. Most line codes use either a constant-weight code, or a nearly-constant-weight paired disparity code. In addition to use as error correction codes, the large space between code words can also be used in the design of
asynchronous circuit Asynchronous circuit (clockless or self-timed circuit) is a sequential logic, sequential digital logic electrical network, circuit that does not use a global clock circuit or clock signal, signal generator to synchronize its components. Instea ...
s such as delay insensitive circuits. Constant-weight codes, like Berger codes, can detect all unidirectional errors.


''A''(''n'', ''d'', ''w'')

The central problem regarding constant-weight codes is the following: what is the maximum number of codewords in a binary constant-weight code with length n,
Hamming distance In information theory, the Hamming distance between two String (computer science), strings or vectors of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number ...
d, and weight w? This number is called A(n,d,w). Apart from some trivial observations, it is generally impossible to compute these numbers in a straightforward way. Upper bounds are given by several important theorems such as the first and second Johnson bounds, and better upper bounds can sometimes be found in other ways. Lower bounds are most often found by exhibiting specific codes, either with use of a variety of methods from discrete mathematics, or through heavy computer searching. A large table of such record-breaking codes was published in 1990,A. E. Brouwer, James B. Shearer, N. J. A. Sloane and Warren D. Smith (1990). "A New Table of Constant Weight Codes". ''IEEE Transactions of Information Theory'' 36. and an extension to longer codes (but only for those values of d and w which are relevant for the GSM application) was published in 2006.


1-of-''N'' codes

A special case of constant weight codes are the one-of-''N'' codes, that encode \log_2 N bits in a code-word of N bits. The one-of-two code uses the code words 01 and 10 to encode the bits '0' and '1'. A one-of-four code can use the words 0001, 0010, 0100, 1000 in order to encode two bits 00, 01, 10, and 11. An example is dual rail encoding, and chain link used in delay insensitive circuits. For these codes, n=N,~ d=2,~ w=1 and A(n, d, w) = n. Some of the more notable uses of one-hot codes include biphase mark code uses a 1-of-2 code; pulse-position modulation uses a 1-of-''n'' code; address decoder, etc.


Balanced code

In
coding theory Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and computer data storage, data sto ...
, a balanced code is a binary forward error correction code for which each codeword contains an equal number of zero and one bits. Balanced codes have been introduced by Donald Knuth; they are a subset of so-called unordered codes, which are codes having the property that the positions of ones in a codeword are never a subset of the positions of the ones in another codeword. Like all unordered codes, balanced codes are suitable for the detection of all unidirectional errors in an encoded message. Balanced codes allow for particularly efficient decoding, which can be carried out in parallel. Some of the more notable uses of balanced-weight codes include biphase mark code uses a 1 of 2 code; 6b/8b encoding uses a 4 of 8 code; the Hadamard code is a 2^ of 2^k code (except for the zero codeword), the three-of-six code; etc. The 3-wire lane encoding used in MIPI C-PHY can be considered a generalization of constant-weight code to ternary -- each wire transmits a ternary signal, and at any one instant one of the 3 wires is transmitting a low, one is transmitting a middle, and one is transmitting a high signal.


''m''-of-''n'' codes

An ''m''-of-''n'' code is a separable error detection code with a code word length of ''n'' bits, where each code word contains exactly ''m'' instances of a "one". A single bit error will cause the code word to have either or "ones". An example ''m''-of-''n'' code is the 2-of-5 code used by the
United States Postal Service The United States Postal Service (USPS), also known as the Post Office, U.S. Mail, or simply the Postal Service, is an independent agencies of the United States government, independent agency of the executive branch of the federal governmen ...
. The simplest implementation is to append a string of ones to the original data until it contains ''m'' ones, then append zeros to create a code of length ''n''. Example: Some of the more notable uses of constant-weight codes, other than the one-hot and balanced-weight codes already mentioned above, include Code 39 uses a 3-of-9 code; bi-quinary coded decimal code uses a 2-of-7 code, the 2-of-5 code, etc.


References

{{reflist


External links


Table of lower bounds on A(n,d,w)
maintained by Andries Brouwer
Table of upper bounds on A(n,d,w)
maintained by Erik Agrell Information theory Error detection and correction