디지털 통신-오류 제어 코딩
잡음 또는 오류는 신호의 주요 문제이며 통신 시스템의 신뢰성을 방해합니다. Error control coding오류 발생을 제어하기 위해 수행되는 코딩 절차입니다. 이러한 기술은 오류 감지 및 오류 수정에 도움이됩니다.
적용된 수학적 원리에 따라 다양한 오류 수정 코드가 있습니다. 그러나 역사적으로 이러한 코드는Linear block codes 과 Convolution codes.
선형 블록 코드
선형 블록 코드에서 패리티 비트와 메시지 비트는 선형 조합을 가지며, 이는 결과 코드 워드가 임의의 두 코드 워드의 선형 조합임을 의미합니다.
다음을 포함하는 데이터 블록을 고려해 보겠습니다. k각 블록의 비트. 이 비트는n각 블록의 비트. 여기n 보다 큼 k. 송신기는 다음과 같은 중복 비트를 추가합니다.(n-k)비트. 비율k/n 이다 code rate. 다음과 같이 표시됩니다.r 그리고 가치 r 이다 r < 1.
그만큼 (n-k) 여기에 추가 된 비트는 parity bits. 패리티 비트는 오류 감지 및 오류 수정, 데이터 찾기에 도움이됩니다. 전송되는 데이터에서 코드 워드의 가장 왼쪽 비트는 메시지 비트에 해당하고 코드 워드의 가장 오른쪽 비트는 패리티 비트에 해당합니다.
체계적인 코드
선형 블록 코드는 변경 될 때까지 체계적인 코드가 될 수 있습니다. 따라서 변경되지 않은 블록 코드는systematic code.
다음은 structure of code word, 할당에 따라.
메시지가 변경되지 않으면 체계적인 코드라고합니다. 즉, 데이터 암호화가 데이터를 변경해서는 안됩니다.
컨볼 루션 코드
지금까지 선형 코드에서 우리는 체계적인 변경되지 않은 코드가 선호된다는 것을 논의했습니다. 여기에서 총 데이터n 전송되는 경우 비트, k 비트는 메시지 비트이며 (n-k) 비트는 패리티 비트입니다.
인코딩 과정에서 전체 데이터에서 패리티 비트를 빼고 메시지 비트를 인코딩합니다. 이제 패리티 비트가 다시 추가되고 전체 데이터가 다시 인코딩됩니다.
다음 그림은 정보 전송에 사용되는 데이터 블록 및 데이터 스트림의 예를 인용합니다.
위에서 언급 한 전체 프로세스는 지루하며 단점이 있습니다. 여기서 버퍼 할당은 시스템이 바쁠 때 주요 문제입니다.
이 단점은 컨볼 루션 코드에서 해결됩니다. 데이터의 전체 스트림에 심볼이 할당 된 다음 전송됩니다. 데이터는 비트 스트림이므로 저장을위한 버퍼가 필요하지 않습니다.
해밍 코드
코드 워드의 선형성 특성은 두 코드 워드의 합이 코드 워드라는 것입니다. 해밍 코드는linear error correcting 코드는 최대 2 개의 비트 오류를 감지하거나 수정되지 않은 오류를 감지하지 않고 1 비트 오류를 수정할 수 있습니다.
해밍 코드를 사용하는 동안 추가 패리티 비트는 단일 비트 오류를 식별하는 데 사용됩니다. 1 비트 패턴에서 다른 패턴으로 이동하려면 데이터에서 몇 비트를 변경해야합니다. 이러한 비트 수는 다음과 같이 불릴 수 있습니다.Hamming distance. 패리티의 거리가 2이면 1 비트 플립을 감지 할 수 있습니다. 그러나 이것은 고칠 수 없습니다. 또한 2 비트 플립은 감지 할 수 없습니다.
그러나 해밍 코드는 이전에 설명한 오류 감지 및 수정보다 더 나은 절차입니다.
BCH 코드
BCH 코드는 발명가의 이름을 따서 명명되었습니다. Bose, Chaudari 및 Hocquenghem. BCH 코드 설계 중에는 수정할 심볼 수를 제어 할 수 있으므로 다중 비트 수정이 가능합니다. BCH 코드는 오류 수정 코드에서 강력한 기술입니다.
모든 양의 정수 m ≥ 3 과 t < 2m-1BCH 바이너리 코드가 있습니다. 다음은 이러한 코드의 매개 변수입니다.
블록 길이 n = 2m-1
패리티 검사 자릿수 n - k ≤ mt
최소 거리 dmin ≥ 2t + 1
이 코드는 다음과 같이 호출 할 수 있습니다. t-error-correcting BCH code.
순환 코드
코드 단어의 순환 속성은 코드 단어의 순환 이동도 코드 단어라는 것입니다. 순환 코드는이 순환 속성을 따릅니다.
선형 코드의 경우 C, 모든 코드 단어 즉, C = (C1, C2, ...... Cn)from C는 구성 요소의 순환 오른쪽 시프트를 가지며 코드 워드가됩니다. 이 오른쪽 이동은 다음과 같습니다.n-1순환 왼쪽 이동. 따라서 어떤 변화에도 변하지 않습니다. 따라서 선형 코드C, 어떤 근무조에서도 변하지 않기 때문에 Cyclic code.
오류 수정에는 순환 코드가 사용됩니다. 주로 이중 오류 및 버스트 오류를 수정하는 데 사용됩니다.
따라서 이들은 수신기에서 감지되는 몇 가지 오류 수정 코드입니다. 이러한 코드는 오류가 발생하는 것을 방지하고 통신을 방해합니다. 또한 원하지 않는 수신기가 신호를 도청하는 것을 방지합니다. 이를 달성하기위한 시그널링 기법이 있으며, 이에 대해서는 다음 장에서 설명합니다.