
- •1 Purpose, structure and classification of error-control codes
- •1.1 Error-control codes in transmission systems
- •1.2 Classification of error-control codes
- •Questions
- •2 Parameters of block error-control codes
- •Questions
- •3 Error detection and correction capability of block codes
- •4 Algebraic description of block codes
- •5.2 Syndrome decoding of the block codes
- •5.3 Majority decoding of block codes
- •Questions
- •6 Boundaries of block codes parameters
- •6.1 Hamming upper bound
- •6.2 Varshamov-Gilbert lower bound
- •6.3 Complexity of coding and decoding algorithms
- •Questions
- •7 Important classes of block codes
- •7.1 Hamming codes
- •7.2 Cyclic codes
- •Questions
- •8 Decoding noise immunity of block codes
- •8.1 Decoding noise immunity of block codes
- •8.2 Energy coding gain
- •Questions
- •9 Structure and characteristics of convolutional codes
- •9.1 Description methods of convolutional codes
- •9.2 Key parameters and classification of convolutional codes
- •Questions
- •10 Decoding algorithms of convolutional codes
- •10.1 Classification of decoding algorithms
- •10.2 Viterbi algorithm for decoding of convolutional codes
- •Questions
- •11 Noise immunity of convolutional code decoding
- •11.1 Decoding error probability of convolutional code
- •11.2 Energy coding gain
- •12.2 Limiting efficiency of transmission systems and Shannon bound
- •12.3 Perspective ways of further increasing efficiency
- •Attachment а. Performances of error-correcting codes а.1 Performances and generator polynomials of cyclic codes
- •А.2 Energy coding gain by using of the cyclic codes
- •А.3 Performances of binary convolution codes
- •Attachment b. Methodical manual for the course work
- •It is necessary:
- •Methodical instructions
- •Example of calculations and code optimisation procedure
- •Input data:
- •3 Questions
- •4 Home task
- •5 Laboratory task
- •6 Description of laboratory model
- •Questions
- •4 Home task
- •5 Laboratory task
- •6 Description of laboratory model
- •7 Requirements to the report
- •Lw 4.3 Noise immunity of block error-control codes researching
- •1 Objectives
- •2 Main positions
- •2.3 Coding gain
- •3 Questions
- •4 Home task
- •5 Laboratory task
- •6 Description of the computer program of (n, k) code correcting ability research
- •7 Requirements to the report
- •Lw 4.4 Studying of coding and decoding by error-control convolution codes
- •1 Objectives
- •2 Main principles
- •3 Questions
- •4 Home task
- •5 Laboratory task
- •6 Description of laboratory model
- •7 Requirements to the report
- •Attachment d. Dictionaries d.1 English-Russian dictionary
- •D.2 Russian-English dictionary
- •References
- •Ivaschenko Peter Vasilyevich
- •Bases of the error-control codes theory Education manual
Example of calculations and code optimisation procedure
Input data:
1 The rate of digital signal R = 64 kbit/s.
2 S/N ratio = 4,5 dB.
3 A modulation method is QPSK.
4 Mode of reception is coherent.
5 Pass band of transmission channel Fch = 100 kHz.
6 Acceptable bit error probability pacc = 10–5.
7 Admissible code trellis complexity no more Cperm = 150.
Solution
1 Calculation of a necessary channel pass band for transmission with the method QPSK is made under formula FQPSK = [R(1 + α)]/2, where α is roll-off factor of spectrum . Being set by value α = 0,4, we receive
FQPSK =[R(1 + α)]/2 = [64 (1+0,4)]/2 = 44,8 kHz.
2 According to the formula (B.1) it is defined limiting value of code rate
.
3 Under code tables we select the codes, satisfying to the requirement on a rate. Data about these codes are shown in table B.1. From the table it is visible, that for the solving given task can be used codes with the rate Rcode = 1/2 which ensure enough big A-gain. in the table data the code with generator polynomials (133, 171) which at rate Rcode = 0,5 ensures A-gain =6,99 dB is chosen for the project. Data of bit error probability calculation is given on figure 8.1 (signals BPSK and QPSK have the same noise immunity). It is visible, that the using of a such code ensures such performance: by the ratio signal/noise = 4,5 dB the bit error probability is less than 10–5. Comparison with curves for uncoded QPSK shows that by p = 10–5 this code ensures coding gain 6 dB.
table B.1 – Performances for a code choice
Code rate Rcode |
Generator polynomials |
Code length |
Trellis complexity C |
A-gain, dB |
1/8 |
25,27,33,35, 37,25,33,37 |
4 |
32 |
6,02 |
1/8 |
115,127,131,135, 157,173,175,123 |
6 |
128 |
6,99 |
1/4 |
25,27,33,37 |
4 |
32 |
6,02 |
1/4 |
463,535,733,745 |
8 |
512 |
8,29 |
1/3 |
47,53,75 |
5 |
64 |
6,42 |
1/3 |
557,663,711 |
8 |
512 |
7,78 |
1/2 |
53,75 |
5 |
64 |
6,02 |
1/2 |
61,73 |
5 |
64 |
6,02 |
1/2 |
71,73 |
5 |
64 |
6,02 |
1/2 |
133,171 |
6 |
128 |
6,99 |
1/2 |
247,371 |
7 |
256 |
6,99 |
Table B.2 – Input data for the course work
variant number for an elaborating of course work should correspond to the number of student surname in the academic group register |
||||||
variant number |
S/N ratio , dB |
modulation method |
Rate of signal R, kbit/s |
Bandwidth of channel Fch, kHz |
Bit error probability pacc |
Trellis complexity Cperm |
1 |
4,0 |
QPSK |
64 |
80 |
10-6 |
150 |
2 |
5,0 |
QPSK |
16 |
25 |
10-4 |
160 |
3 |
6,0 |
BPSK |
256 |
800 |
10-5 |
170 |
4 |
6,5 |
BPSK |
64 |
200 |
10-6 |
180 |
5 |
4,0 |
QPSK |
16 |
25 |
10-4 |
250 |
6 |
7,0 |
QPSK |
128 |
200 |
10-5 |
350 |
7 |
5,0 |
BPSK |
2400 |
7000 |
10-8 |
560 |
8 |
6,0 |
QPSK |
32 |
50 |
10-6 |
200 |
9 |
5,0 |
BPSK |
24 |
70 |
10-4 |
300 |
10 |
4,5 |
QPSK |
256 |
400 |
10-5 |
250 |
11 |
5,5 |
BPSK |
300 |
1200 |
10-8 |
550 |
12 |
4,0 |
QPSK |
48 |
70 |
10-6 |
150 |
13 |
4,0 |
QPSK |
32 |
50 |
10-4 |
250 |
14 |
5,0 |
BPSK |
256 |
800 |
10-5 |
300 |
15 |
4,0 |
QPSK |
450 |
1300 |
10-9 |
550 |
16 |
7,0 |
QPSK |
56 |
90 |
10-6 |
150 |
17 |
5,0 |
BPSK |
24 |
70 |
10-4 |
160 |
18 |
4,5 |
QPSK |
256 |
400 |
10-5 |
200 |
19 |
5,5 |
QPSK |
500 |
1400 |
10-9 |
550 |
20 |
6,0 |
BPSK |
64 |
200 |
10-6 |
150 |
21 |
7,5 |
QPSK |
32 |
400 |
10-4 |
250 |
23 |
6,5 |
QPSK |
16 |
50 |
10-5 |
150 |
24 |
6,0 |
QPSK |
64 |
150 |
10-6 |
150 |
25 |
4,5 |
BPSK |
16 |
25 |
10-4 |
200 |
26 |
5,0 |
BPSK |
6000 |
16000 |
10-9 |
550 |
27 |
6,0 |
QPSK |
384 |
600 |
10-5 |
250 |
28 |
4,5 |
QPSK |
56 |
100 |
10-6 |
150 |
29 |
5,0 |
BPSK |
16 |
50 |
10-5 |
250 |
30 |
5,5 |
BPSK |
5500 |
32000 |
10-9 |
560 |
31 |
4,5 |
QPSK |
64 |
200 |
10-5 |
150 |
32 |
5,0 |
QPSK |
64 |
300 |
10-5 |
250 |
Attachment C. Education manual for laboratory works
LW 4.1 Studying of block error-control Hamming code codecs structure
1 Objectives
1.1 Studying of Hamming systematic code (7, 4) codec structure.
1.2 Research of the code (7, 4) control ability.
2 Main principles
The systematic code is error-control code, which code word contain k information bits and r = n – k checking symbols (checking symbols are linear combination of information bits). Systematic codes are denoted as (n, k) or (n, k, dmin). In this work code (7, 4) or (7, 4, 3) is studied.
Error-control codes with code distance dmin = 3, allowing to correct first order errors at decoding, name as Hamming codes [5, p. 149]. We will determine connection between error-control code parameters n and k. It is known that for any natural number r the Hamming code of lengths n = 2r – 1 or k + r = 2r – 1 exists [5, p. 149]. These equalities can be used and as inequalities k 2r ‑ r ‑ 1. The last expression allows choosing n and r at given k.
The matrix method of linear block codes coding and decoding processes description is most useful (see Sections 5, 6). So, coding by systematic code (n, k) consist in addition to code words checking symbols and can be described by matrix equality
AG = B, (1)
where A = (b1 b2 … bk) is row matrix size k, correspond to information code word;
B = (b1 b2 … bk bk+1 … bn) is row matrix size n, correspond to error-control code word.
G – generator matrix kn, the elements of which gij take on values 1 or 0.
The G matrix rows must satisfy next conditions [6, p. 86…88].
1 Distance between any two rows must not be less dmin.
2 Every row must contain no less then dmin units.
3 All rows must be linearly independent, i.e. none of rows can be got by adding (XOR) of some other rows.
For example, for a code (7, 4) generator matrix looks like formulas (4.4), (4.7).
The coder operation algorithm:
1 k information bits in a parallel code or in a series code (in last case a shift register is needed) on the coder input.
2 The checking symbols r = n – k by adders with r calculates.
3 k information bits and r checking symbols in a parallel or series code (in last case the converter of parallel in series code is needed) on the coder output.
On the figure 5.1 the code (7, 4) with generator matrix (4.4) encoder functional diagram is resulted. Input and output code words are represented in a parallel code.
The process of decoding includes the syndrome calculation. In matrix form is written down as:
S=
H
,
(2)
where H is check matrix rn.
is matrix-column, size n, correspond to the code word on the decoder input;
S is syndrome, matrix-column, size r.
The decoder algorithm is following:
1 n symbols of the code word come on the decoder input.
2 Using (6) a syndrome calculates.
3 Syndromes analyzer, built on the syndromes table basis, forms signals for error symbols correction.
4
Error symbols correction consist in their inverting: XOR for error
symbol and unit (lets
is some symbol, then
).
5 After correction of error the information code word of k symbols come on the decoder output.
On the figure 5.2 the code (7, 4) decoder functional diagram is resulted. Input and output code words are represented in a parallel code.
A code, encoder and decoder of which, is built on multiinput adders (with XOR operation), name as Hamming code or even parity check code. Using the indicated principles it is possible to build encoder and decoder for different values of n and k.