Chapter 10 Error Detection and Correction 1 Data

  • Slides: 97
Download presentation
Chapter 10 오류 발견과 교정 (Error Detection and Correction) 1

Chapter 10 오류 발견과 교정 (Error Detection and Correction) 1

오류 검출 및 수정 데이터는 전송 중에 변경될 수 있다. 신뢰성 있는 통신을 위해

오류 검출 및 수정 데이터는 전송 중에 변경될 수 있다. 신뢰성 있는 통신을 위해 오류들은 검출·정정되어야 한다. Data can be corrupted during transmission. Some applications require that errors be detected and corrected. 3

10. 1 개요 오 류 검 출 및 오 류 정 정 에 직

10. 1 개요 오 류 검 출 및 오 류 정 정 에 직 /간 접 적 으 로 관 련 된 사항들에 대해 먼저 살펴본다. Topics discussed in this section: Types of Errors Redundancy Detection Versus Correction Forward Error Correction Versus Retransmission Coding Modular Arithmetic 4

폭주 오류는 데이터 단위에서 2개 이상의 비트들이 변경 되는 경우를 일컫는다. A burst error

폭주 오류는 데이터 단위에서 2개 이상의 비트들이 변경 되는 경우를 일컫는다. A burst error means that 2 or more bits in the data unit have changed. 8

q 중복(redundancy) 10

q 중복(redundancy) 10

q 부호화 방법 1. 블록 부호화(block coding) 2. 나선형 부호화(convolution coding) 13

q 부호화 방법 1. 블록 부호화(block coding) 2. 나선형 부호화(convolution coding) 13

본 교재에서는 블록 부호화에 집중하며 나선형 부호화는 다른 책에서 참조하기 바란다. In this book,

본 교재에서는 블록 부호화에 집중하며 나선형 부호화는 다른 책에서 참조하기 바란다. In this book, we concentrate on block codes; we leave convolution codes to advanced texts. 14

Figure 10. 4 모듈로-2 연산(XORing of two single bits or two words) 16

Figure 10. 4 모듈로-2 연산(XORing of two single bits or two words) 16

Figure 10. 6 Process of error detection in block coding 20

Figure 10. 6 Process of error detection in block coding 20

Table 10. 1 A code for error detection (Example 10. 2) 23

Table 10. 1 A code for error detection (Example 10. 2) 23

오류 검출 코드는 찾도록 설계된 오류만을 찾아낸다. 다 른 오류는 검출되지 못한다. An error-detecting

오류 검출 코드는 찾도록 설계된 오류만을 찾아낸다. 다 른 오류는 검출되지 못한다. An error-detecting code can detect only the types of errors for which it is designed; other types of errors may remain undetected. 24

Figure 10. 7 Structure of encoder and decoder in error correction 25

Figure 10. 7 Structure of encoder and decoder in error correction 25

Table 10. 2 A code for error correction (Example 10. 3) 28

Table 10. 2 A code for error correction (Example 10. 3) 28

최소 해밍 거리는 모든 가능한 워드 조합 중 가장 작은 해밍 거리이다. The minimum

최소 해밍 거리는 모든 가능한 워드 조합 중 가장 작은 해밍 거리이다. The minimum Hamming distance is the smallest Hamming distance between all possible pairs in a set of words. 31

s 개까지의 오류가 발생해도 오류가 생긴 것을 알아내는 것을 보장하기 위해서는 블록 코드의 최소

s 개까지의 오류가 발생해도 오류가 생긴 것을 알아내는 것을 보장하기 위해서는 블록 코드의 최소 해밍 거리는 dmin = s + 1 이어야 한다. To guarantee the detection of up to s errors in all cases, the minimum Hamming distance in a block code must be dmin = s + 1. 34

Figure 10. 8 Geometric concept for finding dmin in error detection 37

Figure 10. 8 Geometric concept for finding dmin in error detection 37

Figure 10. 9 Geometric concept for finding dmin in error correction 38

Figure 10. 9 Geometric concept for finding dmin in error correction 38

모든 경우에서 t 개의 오류까지 정정을 보장하기 위하여 블록 코드의 최소 해밍 거리는 dmin

모든 경우에서 t 개의 오류까지 정정을 보장하기 위하여 블록 코드의 최소 해밍 거리는 dmin = 2 t + 1 이어야 한다. To guarantee correction of up to t errors in all cases, the minimum Hamming distance in a block code must be dmin = 2 t + 1. 39

선형 블록 코드에서는 임의의 두 유효 코드워드에 XOR 연산을 가하면 다른 유효 코드워드가 생성된다.

선형 블록 코드에서는 임의의 두 유효 코드워드에 XOR 연산을 가하면 다른 유효 코드워드가 생성된다. In a linear block code, the exclusive OR (XOR) of any two valid codewords creates another valid codeword. 42

단순 패리티 확인 코드는 n = k + 1 이며 dmin = 2 인

단순 패리티 확인 코드는 n = k + 1 이며 dmin = 2 인 단일 비트 오류 검출 코드이다. A simple parity-check code is a single-bit error-detecting code in which n = k + 1 with dmin = 2. 45

Table 10. 3 Simple parity-check code C(5, 4) 46

Table 10. 3 Simple parity-check code C(5, 4) 46

Figure 10. 10 Encoder and decoder for simple parity-check code 47

Figure 10. 10 Encoder and decoder for simple parity-check code 47

단순 패리티 확인 코드는 홀수 개의 오류를 검출한다. A simple parity-check code can detect

단순 패리티 확인 코드는 홀수 개의 오류를 검출한다. A simple parity-check code can detect an odd number of errors. 50

본 교재의 모든 해밍 코드는 dmin = 3이다. m과 n의 관계는 n = 2

본 교재의 모든 해밍 코드는 dmin = 3이다. m과 n의 관계는 n = 2 m – 1이다. All Hamming codes discussed in this book have dmin = 3. The relationship between m and n in these codes is n = 2 m − 1. 51

Figure 10. 11 Two-dimensional parity-check code 52

Figure 10. 11 Two-dimensional parity-check code 52

Figure 10. 11 Two-dimensional parity-check code 53

Figure 10. 11 Two-dimensional parity-check code 53

Figure 10. 11 Two-dimensional parity-check code 54

Figure 10. 11 Two-dimensional parity-check code 54

Table 10. 4 Hamming code C(7, 4) 55

Table 10. 4 Hamming code C(7, 4) 55

Figure 10. 12 The structure of the encoder and decoder for a Hamming code

Figure 10. 12 The structure of the encoder and decoder for a Hamming code 56

Table 10. 5 Logical decision made by the correction logic analyzer 57

Table 10. 5 Logical decision made by the correction logic analyzer 57

Figure 10. 13 Burst error correction using Hamming code 60

Figure 10. 13 Burst error correction using Hamming code 60

10. 4 순환 코드(CYCLIC CODE) 순환코드는 하나의 특별한 성질이 있는 선형 블록 코드이다. 순환코드(Cyclic

10. 4 순환 코드(CYCLIC CODE) 순환코드는 하나의 특별한 성질이 있는 선형 블록 코드이다. 순환코드(Cyclic codes)에서는 코드워드 를 순환시키면 다른 코드워드를 얻는다. Topics discussed in this section: Cyclic Redundancy Check Hardware Implementation Polynomials Cyclic Code Analysis Advantages of Cyclic Codes Other Cyclic Codes 61

순환 중복 확인 LAN이나 WAN에서 많이 사용 Table 10. 6 A CRC code with

순환 중복 확인 LAN이나 WAN에서 많이 사용 Table 10. 6 A CRC code with C(7, 4) 62

Figure 10. 14 CRC encoder and decoder 63

Figure 10. 14 CRC encoder and decoder 63

Figure 10. 15 Division in CRC encoder 64

Figure 10. 15 Division in CRC encoder 64

Figure 10. 16 Division in the CRC decoder for two cases 65

Figure 10. 16 Division in the CRC decoder for two cases 65

Figure 10. 17 Hardwired design of the divisor in CRC 66

Figure 10. 17 Hardwired design of the divisor in CRC 66

Figure 10. 18 Simulation of division in CRC encoder 67

Figure 10. 18 Simulation of division in CRC encoder 67

Figure 10. 19 The CRC encoder design using shift registers 68

Figure 10. 19 The CRC encoder design using shift registers 68

Figure 10. 20 General design of encoder and decoder of a CRC code 69

Figure 10. 20 General design of encoder and decoder of a CRC code 69

Figure 10. 21 A polynomial to represent a binary word 70

Figure 10. 21 A polynomial to represent a binary word 70

Figure 10. 22 CRC division using polynomials 71

Figure 10. 22 CRC division using polynomials 71

순환 코드에서 제수는 보통 생성 다항식 또는 생성식이라 고 부른다. The divisor in a

순환 코드에서 제수는 보통 생성 다항식 또는 생성식이라 고 부른다. The divisor in a cyclic code is normally called the generator polynomial or simply the generator. 72

순환 코드에서 g(x)로 나누어 떨어지는 오류는 검출되지 않는다. In a cyclic code, those e(x)

순환 코드에서 g(x)로 나누어 떨어지는 오류는 검출되지 않는다. In a cyclic code, those e(x) errors that are divisible by g(x) are not caught. 74

생성기가 두 개 이상의 항목을 가지면서 x 0 의 계수가 1 이면 모든 단일

생성기가 두 개 이상의 항목을 가지면서 x 0 의 계수가 1 이면 모든 단일 비트 오류는 검출된다. If the generator has more than one term and the coefficient of x 0 is 1, all single errors can be caught. 75

Figure 10. 23 Representation of two isolated single-bit errors using polynomials 77

Figure 10. 23 Representation of two isolated single-bit errors using polynomials 77

생성기가 xt + 1(t는 0과 n-1 사이)를 나누어 떨어지게 하지 못하면 모든 분리된 두

생성기가 xt + 1(t는 0과 n-1 사이)를 나누어 떨어지게 하지 못하면 모든 분리된 두 개의 오류를 검출할 수 있다. If a generator cannot divide xt + 1 (t between 0 and n – 1), then all isolated double errors can be detected. 78

x + 1을 인자로 갖는 생성기는 모든 홀수 개의 오류를 검 출할 수 있다.

x + 1을 인자로 갖는 생성기는 모든 홀수 개의 오류를 검 출할 수 있다. A generator that contains a factor of x + 1 can detect all odd-numbered errors. 80

Table 10. 7 표준 다항식 85

Table 10. 7 표준 다항식 85

Figure 10. 24 Example 10. 22 93

Figure 10. 24 Example 10. 22 93

Figure 10. 25 Example 10. 23 97

Figure 10. 25 Example 10. 23 97