Menu
Is free
check in
the main  /  the Internet Whether in cyclic prefix useful information. Cyclic codes

Do useful information contain in cyclic prefix. Cyclic codes

Cyclic codes are named because they are part of the code combinations or all combinations can be obtained by cyclic shift of one or more code combinations. The cyclic shift is carried out right to left, with the extreme left symbol every time transferred to the end of the combination. Cyclic codes, practically, all belong to systematic codes, in them control and information discharges are located on strictly defined places. In addition, codes are the number of block codes. Each unit (one letter is a private block case) is encoded independently.

The idea of \u200b\u200bconstructing cyclic codes is based on the use of irreducible in the binary number of polynomials. Irreduciblecalled polynomials that cannot be presented as a product of low-degree polynomials with coefficients from the same field, as well as simple numbers cannot be represented by the work of other numbers. In other words, irreducible polynomials are divided without a balance only on themselves or one.

Involve polynomials in the theory of cyclic codes plays the role of forming polynomials. If the specified code combination is multiplied by the selected irreducible polynomial, then we obtain a cyclic code, the corrective abilities of which are determined by the irreducible polynomial.

Suppose you need to encode one of the combinations of the four-digit binary code. Suppose also that this combination G (x) \u003d x 3 + x 2 + 1 ®1011. While not justifying your choice, we take from the table of irreducible polynomials as an forming polynomial P (x) \u003d x 3 + x + 1 ®1011. Then intelligent G (x) On the same degree, the formming polynomial. From multiplication of polynomial to unrocked degree n. The degree of each member of the polynomial will increase on n.that is equivalent to attributing n. zeros from the side of the lowest discharges of the polynomial. Since the degree of selected irreducible polynomial is equal to three, then the initial information combination is multiplied by one-sided three degrees.

G (x) x n \u003d(x 3 + x 2 + 1) x 3 \u003d x 6 + x 5 + x 3 \u003d1101000.

This is done in order to subsequently in the place of these zeros, it would be possible to record corrective discharges.

The value of corrective discharges are found by results from division. G (x) x n on the P (X):

x 6 + x 5 + 0 + x 3 + 0 + 0 + 0 ½x 3 + x + 1

x 6 + 0 + x 4 + x 3

x 5 + x 4 + 0 + 0 x 3 + x 2 + x + 1 + x 5 + 0 + x 3 + x 2

x 4 + x 3 + x 2 +0

x 4 + 0 + x 2 + x

x 3 + 0 + x + 0

x 3 + 0 + x + 1

In this way,

or in general

where Q (x) ¾ private, and R (x) ¾ Balance from division G (x) × x n on the P (X).



Since in binary arithmetic 1 Å 1 \u003d 0, and therefore, -1 \u003d 1, then it is possible to carry the components of the components from one part to another to another without changing the sign (if it is convenient), therefore equality of the type a Å b \u003d0 can be recorded and how a \u003d B., And How a - B \u003d 0. All three equalities in this case mean that either a. and b. equal 0 or a. and b.equal to 1, i.e. Have the same parity.

Thus, the expression (5.1) can be written as

F (x) \u003d q (x) p (x) \u003d g (x) x n + r (x),

that in the case of our example will give

F (x) \u003d(x 3 + x 2 + x +1) (x 3 + x +1)= (x 3 + x 2 +1) x 3 +.1,

F (x) \u003d1111 1011 = 1101000 + 001 = 1101001.

The polynomial 1101001 is the desired combination, where the 1101- information part, and 001 - control characters. Note that we would get the desired combination and as a result of multiplying one of the combinations of the total four-digit binary code (in this case, 1111) on the forming polynomial and multiplying the given combination on a single-wing, having the same degree as the selected polynomial form (in Since our case, a combination of 1101,000 was obtained in this way), followed by the addition to the resulting product of the residue from dividing this product to the forming polynomial (in our example, the residue has a view 001).

And then the properties of the polynomial forming are played by a decisive role. P (X). The method of constructing a cyclic code is such that the forming polynomial takes part in the formation of each code combination, therefore any polynomial of the cyclic code is divided into forming without a residue. But without residue, only those polynomials that belong to this code, i.e. forming a polynomial allows you to select the allowed combinations of all possible. If, when dividing a cyclic code for a multi-forming polynomial, the residue will be obtained, it means that an error occurred in the code, or this is a combination of some other code (prohibited combination). By the residue, the presence of a prohibited combination is detected, i.e. an error is detected. Remains from the division of polynomials are identification of cyclic code errors.

On the other hand, the remains of dividing units with zeros for a forming polynomial are used to build cyclic codes.

When dividing units with zeros for a forming polynomials, it should be remembered that the length of the residue should be no less than the number of control discharges, so in the event of a shortage of discharges, the required number of zeros is attributed to the residue to the residue.

01100 11111+

starting from the eighth, the remains will be repeated.

The remains of division are used to build forming matrices, which, thanks to their visibility and convenience of producing derived combinations, were widespread to build cyclic codes. The construction of the forming the matrix is \u200b\u200breduced to the preparation of a single transposed and an additional matrix, the elements of which are residues from dividing units with zeros for a forming polynomial P (X). Recall that a single transposed matrix is \u200b\u200ba square matrix, all the elements of which are zeros, except for the elements of the diagonal on the right to be left on top (in a non-transcript matrix, a diagonal with single elements is located left to right above). Elements of an additional matrix are attributed to the right of a single transposed matrix. Only those residues whose weight can be used. W ³ d 0 - 1, where d 0. - Minimum code distance. The length of the residues should be no less than the number of control discharges, and the number of residues should be equal to the number of information discharges.

Rows of the forming matrix are the first combinations source code. The remaining combinations of the code are obtained as a result of the summation of the module 2 of all sorts of combinations of strings of the forming matrix.

Example.

Construct a full forming cyclic code matrix that detects all single and double errors when transmitting 10-bit binary combinations.

Decision.

Table 5.12, choose the nearest meaning k ³ 10..

Table 5.12 - ratios between information and inspection symbols for code up to 16 categories

n. k. ρ n. k. ρ

According to the table, this value will be k \u003d.11, while r \u003d.4, but

n \u003d15. Also choose the formming polynomial x 4 + x 3 +1.

The complete forming matrix is \u200b\u200bsystemated from a single transposed matrix in canonical form and an additional matrix corresponding to the test discharges.

Transposed matrix for k \u003d.11 has the form:

An additional matrix can be constructed by the residues of the combination division in the form of a unit with zeros (the last line of a single transposed matrix) to the selected forming polynomial.

Full forming matrix will look:

The method of constructing forming matrices described above is not the only one. The forming matrix can be constructed as a result of the immediate multiplication of the elements of a single matrix to the forming polynomial. This is often more convenient than finding balances from division. The obtained codes are no different from the codes constructed by forming matrices in which an additional matrix consists of residuals from dividing units with zeros for a forming polynomial.

The forming matrix can also be constructed by cyclic shift of the combination resulting from multiplying a string of a single grade matrix k. on the forming polynomial.

Errors in cyclic codes are detected using residuals from dividing the resulting combination to the forming polynomial. The remains of division are error identification, but do not directly indicate the error in the cyclic code directly.

The idea of \u200b\u200bcorrecting errors is based on the fact that an erroneous combination after a certain number of cyclic shifts "Customs" under the residue in such a way that in the amount with the residue it gives a corrected code combination. The remainder at the same time represents nothing but the difference between distorted and correct symbols, the units in the residue are just at the places of distorted discharges in the combination cyclic shifts. Customize a distorted combination until the number of units in the residue is equal to the number of errors in the code. At the same time, naturally, the number of units can be either equal to the number of errors s, corrected by this code (code corrects 3 errors and in a distorted combination of 3 errors), or less s. (The code corrects 3 errors, and in the received combination of 1 error).

The place of errors in the code combination does not matter. If a k ³ (N / 2), after a certain number of shifts, all errors will be in the zone of "one-time" action of the forming polynomial, i.e. it is enough to get one residue whose weight W £ S.And this will already be enough to correct the distorted combination.

Details The error correction process is discussed below on the examples of building specific codes.

This is a subclass of linear codes with a gem property that cyclic permutation of characters in the coded block gives another possible coded block of the same code. Cyclic codes are based on the use of ideas of algebraic theory of Galua1 fields.

Many of the most important interference communication codes of communication systems -

in particular, cyclic, based on the structures of the final arithmetic

galua fields. Field called many elements that end the final field

the ranks of operations are taken in quotes, because they are not always generally accepted arithmetic operations. The field always has a zero element (0), or zero, and a single element (1), or a unit. If the number q. Field elements is limited, the field is called finite field, or the final field of Galoisand is designated GF (Q) Y Where q - Field order. The smallest field of Galois is a two-element Iol GF (2) consisting of only two elements 1 and 0. In order to

1 Galois Evariste (Evariste Galois, 1811 - 1832) - French mathematician, laid the foundations of modern algebra.

performing operations over elements GF (2) did not lead to the output beyond the limits of this field, they are carried out in module 2 (in general it is determined by the order of the field for simple fields of Galois).

The field has a number of specific mathematical properties. For field elements, the operations of addition and multiplication are determined, and the results of these operations should belong to the same set.

For the operations of addition and multiplication, conventional mathematical rules of associativity are performed - but + (B + c) \u003d (and + B) + C, commutativeness - a + b \u003d b + aand but b \u003d B. but and distribution - but (B + C) \u003d but b. + but from.

For each field element but There must be a reverse element by adding (-but) and if but Not equal to zero, reverse element by multiplication (y ').

The field must contain adducative unit - element 0, such that but + 0 = butfor any field element but.

The field must contain multiplicative unit - element 1, such that al \u003d a. For any field element but.

For example, there are fields real numbers, rational numbers, integrated numbers. These fields contain an infinite number of items.

In fact, all sets formed by the cyclic permutation of the code combination are also code combinations. So, for example, cyclic permutations of the combination 1000101 will also be coded combinations 0001011, 0010110, 0101100, etc. This property allows you to largely simplify the encoder and decoding device, especially when errors are detected and correcting a single error. Attention to cyclic codes is due to the fact that their inherent high corrective properties are implemented on the basis of relatively simple algebraic methods. At the same time, tabular methods requiring a large amount of decoder memory are more often used to decode arbitrary linear block code.

Cyclic code called linear block (P, K) -the code that is characterized by the cyclic property, i.e. Shift to the left one step of any allowed code word also gives permission codewordbelonging to the same code and in which many code words seem to be a set of polynomials (P - 1) and less divided by the generating polynomial g (x) degree r \u003d n-k y Being a factory twist h. P +

In the cyclic code, code words represent polynomials (polynomials)

where p - code length; A I - Galua field coefficients (code combination values).

For example, for the code combination 101101 polynomial recording has the form

Examples of cyclic codes are even check codes, repetition codes, chemming codes, PC codes and turboctors.

Chemmming code. Error correction capabilities in the chemming code are associated with the minimum code distance d 0. All errors are fixed q. \u003d CNT. (D 0 - L) / 2 (here CNT means "integer part") and multiplicity errors are detected d 0 - 1. So, when controlling the accuracy d q \u003d. 2 And single errors are detected. In Hemming code d 0 \u003d. 3. Additionally, information discharge is introduced L \u003d. log 2 Q excess controlling discharges, where Q - Number of information discharges. Parameter L.rounded to the nearest more whole importance. The L-discharge control code is the inverted result of the disconnected addition (addition by module 2) of the numbers of information discharges whose values \u200b\u200bare equal to one.

Example 7.7.

Let them have the main code 100110, i.e. Q \u003d. 6. Determine the additional code.

Decision

We find that L. \u003d 3 and the optional code is equal

where P is a symbol of the operation of a bone addition, and after inversion we have 000. Now with the main code will be transmitted and optional. The receiver reoperate the additional code and compare with the transmitted. The comparison code is recorded, and if it is different from zero, its value is the number of the erroneously received discharge of the main code. So, if the code 100010 is passed, the calculated optional code is equal to the inversion from 010sh10 \u003d 100, i.e. 011, which means an error in the 3rd discharge.

The generalization of the chemming codes are cyclic codes of the BCH, which allow you to adjust multiple errors in the adopted code combination.

Reda Codes - Solomon Based on the fields of Galois, or finite zoli. Arithmetic action Addition, subtraction, multiplication, division and GD. Above the elements of the final zero give the result, which is also an element of this zero. The encoder or decoder of the Rida - Solomon must necessarily perform these operations. All operations for the implementation of the code require special equipment or specialized software.

TurboKodes Excess codes can be used both independently and in the form of a certain combination of several codes, when sets of symbols of one redundant code are considered as elementary information symbols of another redundant code. Such an association began to call cascade code. The enormous advantage of cascade codes is that their use allows you to simplify the encoder and especially the decoder compared to similar devices of non-skid codes of the same length and redundancy. Cascade coding led to the creation of turbo fogs. Turbo glass call the parallel signal structure consisting of two or more Systematic codes. The main principle of their construction is to use several parallel working component encoders. As a component, you can use both block and convolutional codes, chemming codes, PC code, FDM, etc. The use of perforation (digging) allows you to increase the relative speed of the turbo code, adapting it by correcting the ability to statistical characteristics of the communication channel. The principle of the formation of the turbo code is as follows: Input x, consisting of TO bit served in parallel to N. Interleavers. Each of the latter is a device that exercises the elements in the block from TO Bit in the pseudo-random order. Interleaving output - symbols with modified follow-ups - enters the corresponding elementary encoders. Binary sequences x R I. \u003d 1.2, ..., jv, at the output of the encoder are verification symbols that together with the information bits make up a single code word. The use of the interleaver makes it possible to prevent the sequences of correlated errors when decoding the turbo parts, which is important when using the traditional recurrent decoding method. Depending on the selection of the component code, turbookes are divided into convolutional turbockers and block codes-work.

Cyclic codes are a type of linear group codes and refer to systematic codes. Originally created to simplify decoding procedures. However, high efficiency to detect errors such codes ensured their widespread use in practice. The binary vector of cyclic code is conveniently considered not as a combination of zeros and units, but in the form of a polynomial of some extent

where x is the base of the number system, the coefficients belonging to the set in the case binary system Note.

Example. The binary vector can be represented as a polynomial as follows:

The representation of binary vectors in the form of polynomials allows you to reduce the action over vectors to action above the polynomials. Wherein:

the addition of polynomials is reduced to the sum of module 2 coefficients with equal degrees of variable

multiplication is made according to the usual rule of multiplication of power functions, however, the obtained coefficients are consistent with the module 2;

the division is carried out according to the rules of dividing power functions, and the subtraction operation is replaced by summing up module 2.

Example. Find the amount of polynomials

Find a product of polynomials

Perform division of polynomials

The main property of cyclic codes is the following: if the vector belongs to the cyclic code, then any vector obtained from the cyclic shifts considered by the cyclic shifts also belongs to the cyclic code.

The idea of \u200b\u200bconstructing cyclic codes is based on the concept of irreducible polynomial. The polynomial is called irreducible if it is divided only on himself and per unit, and it is not divided into any other polynomial. In other words, an irreducible polynomial cannot be submitted as a product of polynomials of lower degrees. A polynomial is divided into an irreducible polynomial without a residue. An irreducible polynomials play in the theory of cyclic codes The role of forming polynomials. Types of irreducible polynomials of various degrees are given in

Examples of irreducible polynomials:

The cyclic code vectors are built in accordance with the following rules. Suppose - any binary vector of some natural code; - unrocked degree irreducible to a polynomial degree then any vector of cyclic code is formed using the ratio

where the balance of division

Thus, any vector cyclic code can be formed by multiplying some natural binary code for a single degree with the addition of a residue from dividing when constructing cyclic codes in the specified way the location of information discharges in each code of the code is strictly ordered - they occupy senior category vector discharges, And the remaining discharges are verification.

Example. The vector of a natural binary code has the form to form a cyclic code vector from the ebony, provided that the forming polynom

Imagine a vector in the form of a polynomial

As a result of the division of the polynomial on the polynom, we get the residue. therefore

Cyclic code, like any systematic code, it is convenient to set in a matrix form using a generating matrix having a view

where - transposed single yatrice of the format - the matrix of test discharges formed by the residue

Let us set the cyclic code generating code with long information discharges and generating polynomials.

Obviously, the blank for the generating matrix is

To find the lines of verification discharges of the matrix calculate and write in the form of a polynomial each vector of a single matrix

The length of the cyclic code vector is therefore

(see scan)

As a result, we obtain a generating matrix with:

Any vector cyclic code is obtained as the sum of the vectors of its generating matrix. Since the cyclic code is a group, the zero vector is always attributed to the cyclic code as a single element of the group "

Table 13.5.

Example. Build all the cyclic code vectors given by the generating matrix

The code is presented in Table. 13.5.

It should be noted that each cyclic code specified by some generating matrix can be represented in several variants that differ from each other with the length and number of information discharges (with the same detecting abilities). These variants of the so-called shortened cyclic codes are obtained by crossing the last rows and the same number of columns on the left in the cyclic code generating matrix. At the same time, the number of test discharges remains unchanged, and the length of the code and the number of its information discharges decrease according to a value equal to the number of crossed lines and columns of the generating matrix.

Example, cyclic code set by its generating matrix

I cross out the six last lines and the six first left columns. We get a generating matrix

Characteristics (in the sense of error detection) of the resulting code are the same as the cyclic code represented by the generating matrix

Constructing cyclic codes with specified parameters is associated with the choice of an irreducible polynomial forming. The polynomic form is selected based on the following condition: the degree of polynomial should be equal to the number of test discharges of the cyclic code.

In practice, the task of constructing a cyclic code of a given power and a given detecting and corrective abilities occurs.

1. Since the power of the cyclic code is set, the number of its information discharges is determined in accordance with the formula

2. The optimal number of test discharges of the cyclic code is determined by special tables.

3. According to reference books are all irreducible polynomials.

4. For one of the non-transmissible polynomials (the polynomial with the maximum number of members) of the degree is built by the generating matrix of the cyclic code. Each code vector is calculated by the formula

where - the polynomial of the informational vector of the generating matrix; - Single degree - the balance of division

5. The constructed generating matrix is \u200b\u200bchecked for the following conditions:

a) the weight in the sense of the Hamming of any vector of generating matrix should satisfy the relation where - the minimum distance, in the sense of the Hamming of the cyclic code under consideration;

b) weight in the sense of the Hamming of the test vector, which is the sum of the module 2 of any two check vectors of the generating matrix, must satisfy the relation

6. If the generating matrix of the cyclic code satisfies all the above conditions, then all the cyclic code vectors are discharged and is determined in accordance with the well-known rules for linear group codes. If the code does not comply with the requirements, the other generating polynomial is selected and the procedure for the formation of the cyclic code is repeated for a new polynomial.

We construct a cyclic code with a capacity of 16 and adjusting with

For determining the value of

3 "According to reference books, we find all the irreducible polynomials of the degree of such polynomials two:

4. We choose as a polynomed polynom, the billet of the generating cyclic code matrix has the appearance

Each information vector from the matrix is \u200b\u200brepresenting the polynomial

Determine completely all vectors of the generating matrix using the formula

Since the length of the cyclic code vector (see the format of the generating matrix,

Similarly, we find all the other vectors of the generating mat rice

Table 13.6.

As a result, a generating matrix is \u200b\u200bobtained? cyclic code

5. The resulting generating matrix satisfies all the necessary conditions. Therefore, we build a cyclic code completely (Table 13.6). As follows from the table, the code has i.e. meets the requirements of the problem.

Comments. When using an irreducible polynomial in the quality of the generating code, also satisfying the requirements of the problem. Its generating matrix has a view

Error detection using cyclic codes is as follows. Any vector cyclic code is divided into polynomes forming without a residue. Therefore, the criterion for the presence of an error in the cyclic code vector is the appearance of a nonzero residue from dividing the cyclic code vector for forming polynomials. The nonzero residue is an error identification in the cyclic code vector, however, its view does not indicate the location of the error in the code vector. Bug fixes based on the following algorithm:

1. The adopted code vector is divided into forming polynomial.

If the number of units does not exceed the correction capacity of the code, then the adopted vector is folded in module 2 with the resulting residue. The summation result will give a corrected code vector. If the number of units of the residue is larger than the corrective capacity of the code, then carry out a cyclic shift of the distorted vector to the left by one category, and then make a division to the forming polynomial. If the resulting residue contains units no more corrective capacity of the cyclic code, then summarizing the shifted cyclically vector with the residue. The result of the summation move cyclically to one digit to the right. The resulting vector no longer contains errors and is a vector cyclic code.

3. If, after the first cyclic shift and subsequent division, the residue contains units greater than the corrective capacity of the code, then to repeat the procedure of the algorithm until the residue is obtained with the number of units that do not exceed the correction capacity of the code. In this case, the result of the last cyclic shift is summed up with the residue and the resulting vector is cyclically shifted to so many digits to the right, as long as the original it was shifted with an error. As a result, it turns out a corrected code vector.

Let the cyclic code set as a generating matrix with and forming a polynomial where

The code has in 3, that is, corrects the errors of the multiplicity let the 0011101 adopted instead of the vector 0001101. To correct the error, we carry out the following actions. The adopted vector is written in the form of polynomial: then divide on

The residue resulting as a result of division contains three units, which is more than the corrective capacity of the code. Therefore, we make a cyclic shift to the left by one category of the received code vector. As a result, have

We carry out division by

The resulting residue contains two units, which is more than the corrective capacity of the code. Therefore, we make another cyclic shift to the left by one category of the received code vector. As a result, have

We carry out division by

The resulting residue again contains two units, so we make another cyclical shift to the left for one category and we get divide on

Belarusian State University of Informatics and Radioelectronics

department of RES.

abstract on the topic:

"Cyclic codes. BCH codes "

Minsk, 2009.

Cyclic codes

The cyclic code is called linear block (n, k) -code, which is characterized by the property of cyclicity, i.e. Left to the left one step of any allowed code word also provides a permitted code word belonging to the same code and in which a set of code words seems to be a set of polynomials of degree (N-1) and less dividing on some polynomial G (x) degree R \u003d NK , which is a factor of twisted XN +1.

The polynomial G (x) is called generating.

As follows from the definition, in the cyclic code, code words are presented in the form of polynomials


where n is the length of the code; - coefficients from the GF (Q) field.

If the code is constructed over the GF (2) field, then the coefficients take values \u200b\u200b0 or 1 and the code is called binary.
Example. If the code word of the cyclic code

then the corresponding polynomial

For example, if the code is constructed over the GF field (q) \u003d Gf (2 3), which is an extension of GF (2) by the module of an irreducible polynomial F (z) \u003d z 3 + z + 1, and the elements of this field are viewed in Table 1,

that coefficients

Take the values \u200b\u200bof the elements of this field and therefore they themselves are displayed in the form of the following types of polynomials.
where M is the degree of polynomial according to which the expansion of the GF field (2) is obtained; A i - coefficients taking the value of GF elements (2), i.e. 0 and 1. Such code is called qn.

The length of the cyclic code is called primitive and the code itself is called primitive if its length n \u003d Q m -1 on GF (Q).

If the length of the code is smaller than the length of the primitive code, the code is called shortened or intransivant.

As follows from the definition general property The code words of the cyclic code are their divisibility without a residue for some polynomial G (x), called generating.

The resulting division of twisted x n +1 on a polynomial G (x) is a check polynomial H (x).

When decoding cyclic codes, the E (X) errors and the syndromic polynomial S (x) are used.

The degree error number is no more (N-1) is determined from the expression

Where are the polynomials that displays respectively accepted (with an error) and transmitted code words.

Nonal coefficients in E (x) occupy positions that correspond to errors.

Example.

The syndromic polynomial used in decoding the cyclic code is defined as the residue from dividing the received code word to the generating polynomial, i.e.


or

Consequently, the syndromic polynomial depends directly from the errors E (x). This is used when constructing a table of syndromes used in the decoding process. This table contains a list of error polynomials and a list of the corresponding syndromes determined from the expression

(See Table 2).

In the decoding process according to the received code word, the syndrome is calculated, then the table is the corresponding polynomial E (X), the summation of which with the received code word gives a corrected code word, i.e.

Listed polynomials can be folded, multiplying and divided using the well-known algebra rules, but with the result of MOD 2, and then according to mod x n +1, if the degree of result exceeds the degree (N-1).

Suppose that code length n \u003d 7, then the result is given by mod x 7 +1.

When constructing and decoding cyclic codes, as a result of the division of polynomials, it is usually necessary to have no particular, but the remainder of the division.
Therefore, a simpler fission method is recommended using not polynomials, but only its coefficients (option 2 in the example).

Example.

Code matrix job

The cyclic code can be specified by generating and verification matrices. To build them, it is enough to know the generating G (x) and verification H (x) polynomials. For non-systematic cyclic code, the matrix is \u200b\u200bconstructed by the cyclic shift of the generating and check polynomials, i.e. by multiplying them to x

and

When constructing the matrix H (n, k), the senior coefficient of the polynomial H (x) is located on the right.

Example. For cyclic (7.4) -code with a generating polynomial G (x) \u003d x 3 + x + 1, the matrices G (n, k) and h (n, k) are:

Where

For systematic cyclic code, the matrix G (n, k) is determined from the expression

where I k is a single matrix; R k, R is a rectangular matrix. Rows of the matrix R k, R are determined from expressions or where a i (x) is the value of the i-th row of the matrix I k; i - number of the matrix row R k, r.

Example. The matrix G (n, k) for (7.4) -code based on the generating polynomial G (x) \u003d x 3 + x + 1 is built in the following sequence


or

Determined R 4.3 using

as

Similar method is determined

The simplest cyclic code with allows you to detect single errors and errors of odd multiplicity. The polynomial forming this code has a view among the irreducible polynomials, which included in the decomposition of this polynomial is a polynomial of the smallest thus, with any number of information discharges, only one test discharge is required. The value of the symbol of this discharge ensures the parity of the number of units in any allowed code combination. The resulting cyclic code with parity check is able to detect not only single errors in individual discharges, but also errors in any odd number of discharges.

Example. Build a cyclic code for since the polynomic forming is a polynomial of 1st degree, the number of test discharges is therefore, to build a cyclic code, we build a production matrix

To construct an additional matrix, we find residues from dividing the lines of a single transposed matrix, supplemented with zeros, to the chosen polynomial:

Thus, an additional matrix C, K is

Now we build a producing matrix

Rows of this matrix are three first code combinations. The remaining of the permitted combinations can be obtained by summing up the module. Two all kinds of combinations of the matrix strings obtained destroyed code combinations are shown in Table. 39.

Table 39 (see Scan)

Knowing interest is consideration of the next simplest code with an undeveloped second degree polynomial

General form The producing matrix of the cyclic code formed by the polynomial is featured by the structure of an additional matrix having two columns.

It is easy to make sure that when dividing this forming a polynomial of single-wing, expressing lines

a single matrix (for finding an additional matrix is \u200b\u200bformed. Three types of residues: 11, 01, and 10. Therefore, the weight of each combination of the obtained-occurring will be at least two. The minimum code distance between two any combinations is also two. But the simplest characterizes the simplest The code with one parity for the parity formed by two-degree twisted however, however, the corrective ability of both non-model codes. The code under consideration has greater redundancy and allows you to detect not only any odd multiplicity errors, but also any paired adjacent errors, as well as all errors separated by one undistoned element.