Chapter 6 Channel Coding and Transmission Technology in Image Communication

6.1.1 Error control method

1. Error control coding

Error control coding is also called error correction coding , which belongs to the category of channel coding .

Coding purpose: to correct and detect transmission errors, reduce bit error rate, and improve communication quality

Design idea: Add some redundant code elements (supervisory code elements) to the sent signal code , which is like packaging the signal code. There is a certain mathematical constraint relationship between these supervisory code elements and information code elements. relationship to find or correct code errors generated during transmission.

2. Error control method of image communication

  1. Forward error control technology: adding redundancy, no decoder is required to reduce the impact of transmission errors
  2. Error-tolerant coding technology: In the case of bit errors, the technology that obtains the maximum gain with the minimum redundancy
  3. Error post-processing technology: Errors that have occurred are masked to produce visually acceptable images

1/2 is considered in the encoding segment, 3 is in the decoding end

 Automatically request a retransmission:

 After the coder performs block coding (adding Duyuan) to the input signal code, it is sent and temporarily stored in the buffer memory.

If  the decoder detects an error code , it generates a resend command. This command is sent to the sender through the back channel. The retransmission controller at the sending end controls the buffer memory to retransmit once.

When the decoder finds no error code , it will issue an instruction that does not need to be resent through the reverse channel. After receiving this instruction, the sending end will continue to send the next code group, and the content in the buffer memory of the sending end will also be updated accordingly.

Only when the decoder thinks that the received information symbol is correct , the receiving end will send the signal code to the recipient, otherwise, delete the received symbol in the output buffer memory.

 Automatic Repeat Request System - Stop Waiting for ARQ Systems

 This method has low transmission efficiency. In order to improve efficiency, the originator does not need to wait and keeps sending information.

Automatic repeat request system - ARQ system that rolls back N frames

If you want to improve the efficiency, you only need to resend the wrong code group, and you don’t need to retransmit all the wrong groups.

Automatic repeat request system - ARQ system that selects retransmission 

3. Automatic request resend system - features 

 advantage:

  1. The code rate is higher. The bit error rate can be reduced to a very low level with less supervisory symbols;
  2. The computational complexity of error detection is low;
  3. The coding method used for error detection has basically nothing to do with the statistical characteristics of additive interference, and can adapt to channels with different characteristics.

shortcoming:

  1. A two-way channel is required for retransmission, and it is not suitable for one-way channels and point-to-multipoint communication systems.
  2. Retransmission reduces the transmission efficiency of the ARQ system. 
  3. When channel interference is severe, actual communication interruption will occur due to repeated retransmissions.
  4. Not suitable for occasions requiring real-time communication, such as telephone communication.

6.1.2 Generation of linear block codes 

 Channel coding and transmission are two important links in image communication, and linear block code is the most basic type of coding in channel coding.

1. Linear block code encoding - basic concept

block code

Divide K information codes into one group, and add r supervisory codes to each group of information codes according to certain rules, which is called group codes.

linear code

The algebraic code formed according to a set of linear equations, that is, the supervisory code element of each code word is a linear combination of information code elements. In other words, the supervisory code units of the code group only supervise the information code units of the code group.

linear block code

A block code formed according to a set of linear equations.

Puppet Supervision Principles

Features: There is only one supervision bit.

Coding rule: first group the data code element (information change) to be transmitted, and add 1-bit supervision code after the group information code element, so that the number of "1" combined with the information code and supervision code in the code group is An even number is called an even parity; an odd number is called an odd parity.

Let the code group length be n, expressed as (an-1, an-2...a1, a0). Among them, the first n-1 bits are information symbols, and the nth bit is the supervision bit a0.

Even supervision: the number of "1" in the code group is an even number. That is, the constraint relationship between the information bit and the supervisory bit should be

When S=0, it is considered that there is no error; if S=1, it is considered that there is an error. Call S the syndrome.

 2. Linear block code encoding - construction principle

 Take K=4 as an example, (7,4) code

 The nature of the G matrix (generating matrix):

  1. The rows of the G matrix are linearly independent . A=[ a_{6}a_{5}a_{4}a_{3}]·G Any code group A is a linear combination of each row of G. G has k rows in total, and if they are linearly independent, different code groups A can be combined2^{k} .
  2. Each line of G is itself a code group. So if there are k linearly independent code groups, the generator matrix G can be composed of these k linearly independent code groups, and the remaining code groups can be generated from it

Linear block code properties:

1. Closed 

The sum of any two allowed code groups in a linear block code (bitwise modulo 2 addition, binary field, XOR) is still an allowed code group in the code

2. Minimum distance d0

d0 is the minimum weight of the code (except for all "0" code groups) the weight of the code refers to the number of 1 in this code group

According to the closedness of the code, it can be known that the distance between the sum of A_{1}two code groups (that is, the number of different bits) must be the weight of another code group ( + ) (that is, the number of "1""). A_{2}A_{1}A_{2}

 6.1.3 Decoding of linear block codes

 Relationship between syndrome and error code position

 The relationship between H matrix and G matrix

 

  •  Knowing the generation matrix can obtain the supervision matrix, and the known supervision matrix can obtain the generation matrix
  • Block codes generated by typical H and G belong to systematic codes. In other words, both H and G of the systematic code are typical forms.
  • The characteristic of the system code is that after encoding, the position of the cell remains unchanged, and the governor element is attached thereafter.

 (n,k) Three steps of linear block code decoding:

(1) Calculated from the received code group B: S=B ·H^{T}

(2) Find the wrong pattern E by S

(3) The code group decoded by the decoder is obtained by the formula A=B+E, that is, the code group at the sending end

Note: When there are many error codes, which have exceeded the error detection capability of this code, the receiving code group B will become another allowed code group, and the formula B. H^{T}=0 can still be established. Such error codes are not detectable.

Any permissible code group A in the linear block code satisfies A* H^{T}=0 between it and the transpose of H.

6.1.4 Code Polynomials for Cyclic Codes

Cyclic Codes - Basic Concepts

Cyclic codes are an important subclass of (n, k) linear block codes.

  • The encoding and decoding equipment is simple, and the error detection (correction) ability is strong;
  • There are high-efficiency subclass codes such as RS and BCH, which are widely used. (RS code is a linear error correction code with strong error correction performance, which can correct random errors and burst errors. RS code is a multi-ary BCH code, which can correct multiple symbol errors at the same time)

In addition to the general properties of linear block codes, cyclic codes also have cyclic properties.

 Code Polynomials for Cyclic Codes - Definition of Code Polynomials

 Modulo Operation of Code Polynomials

         In the cyclic code, if A(x) is an allowed code group with a length of n, it is also x^{i}\cdot A(x)an allowed code group in the code under the operation of modulo x"+1, that is, if , A^{'}(x)it is also in the code An allowed code group for .

        This is because it A^{'}(x)is the result of the code group represented by A(x) being cyclically shifted i times to the left .

         A code polynomial of a cyclic code whose length is n is a remainder of the modulo (x^n + 1) operation.

6.1.5 Encoding and decoding of cyclic codes

The cyclic code is a linear block code, so its generator matrix G can be composed of k linearly independent code groups .

How to find these k linearly independent code groups?

2^{k}Pick out a code group whose front (k-1) bits are all "0" in the code groups of         (n, k) cyclic codes - represented by g(x) ;

        According to the cyclicity, g(x), xg(x), x^{2}g(x)...., x^{k-1}g(x) are all code groups of the cyclic code, and are linearly independent.

 show:

All code polynomials A(x) are divisible by g(x), and any polynomial whose degree is not greater than (k-1) multiplied by g(x) is a code polynomial.

In other words, any cyclic code polynomial A(x) is a multiple of g(x).

Cyclic code - generator polynomial g(x)

 Cyclic Code - Encoding

(n,k) code

g(x): generator polynomial

m(x): information polynomial

Encoding method 1

The code polynomial A(x) of the cyclic code is: A(x) = m(x)g(x) It can be seen that all codewords of the cyclic code can be generated by multiplying m(x) and g(x) , but is a non-systematic code.

Encoding method 2 (encoding steps of system cyclic code)

Cyclic Codes - Decoding 

Purpose: error detection, error correction

Error detection : use B(x)/g(x) for the received code group B(x   ). Because any code group polynomial A(x) can be divisible by the generator polynomial g(x).

If it can be divided completely, there is no error; if it cannot be divided and there is a remainder, it means that an error occurred in the transmission.

Note: The receiving code group with error code may also be divisible by g(x). At this time, the wrong code cannot be detected. Such errors are called undetectable errors.

Error correction: It is necessary to know the position of the wrong code, that is, the wrong pattern.

1. Do B(x)/g(x) to get the remainder, which is the syndrome polynomial S(X) of the cyclic code

2. Obtain the error pattern E(x) from S(x), and determine the position of the error code;

3. Subtract E(x) from B(x), and correct it into the original sending code group A(x)=B(x)-E(x).

6.2.1 Analog modulation method of image signal

 

Guess you like

Origin blog.csdn.net/m0_46303430/article/details/126067943