Coding and Error Control

두비니

·

2023. 4. 12. 11:52

 

 

 

1. Background Knowledge - Wireless Communications System

 

다음은 간단하게 요약된 무선통신 시스템의 모습이다.

무선통신 시스템은 크게 4가지 단계를 거친다.

1. Source Coding: 정보 압축단계

2. Channel Coding: 에러 검출 및 수정

3. Modulation: 변조과정

4. Transmitter: 전송

 

[공기를 통해 RF통신(이건 아날로그)]

 

1. Receiver: 송신

2. Demodulation: 복조

3. Channel Decoding: 에러 검증 및 정정

4. Source Decoding: 압축을 푸는 과정

 

본 글에서는 Channel Coding을 다룰 예정이다

 

 

2. Coding and Error Control

 

송/수신 과정에 있어서 오류를 탐지하고, 나아가 수정하는 것까지 Channel Coding에서 처리

크게 Automatic Repeat Request(ARQ) protocols, 그리고 Error Correction Codes, Forward Correction Codes(FEC)로 나누어 알아 볼 예정

 

Error Detection Process

 

기본적인 error detecting process는 다음과 같다.

기존의 데이터에 무결성을 확인할 수 있는 값을 덧붙여 이를 확인하는 식으로 진행한다.

 

Parity Check

각각 Odd Parity & Even Parity가 있다.

이는 각각 data를 비트로 보았을 때, 1의 개수가 홀수면 1로 하자 (odd parity), 1의 개수가 짝수면 1로 하자(even parity)가 있다.

  • 단범: 2비트 단위로 에러가 생기면 에러를 검출할 수가 없다

 

 

Cyclic Redundancy Check (CRC)

Frame Check Sequence(FCS)를 기반으로 error detection을 위한 bit를 생성함

 

CRC를 붙이면 전체 data가 특정 다항식에 의해 나누어 떨어짐 (CRC using Polynomials)

 

 

 

Block Error Correction Codes

Forward Error Correction(FEC)를 뜻함

Error Detection 기술들 (Parity Check, CRC)은 단순히 문제가 있다/없다만 가능하다면, 여기는 직접 교정까지 가능하도록 하는 과정

 

 

 

이 과정을 통해서 Error Correction 과정은 총 4개의 판단을 하게 됨

  • 오류 없이 성공적으로 전송됨
  • 오류를 탐지하고, 오류를 잘 고침
  • 오류는 탐지를 햇지만, 교정은 불가능
  • 오류가 없다고 결정했지만, 실제로는 있음(오탐)

 

 

Block Code Principles

Hamming Distance

두 값의 다른 비트를 탐지하여 고치는 방식

  • hamming distance P에 대해서 (P-1)개 만큼 탐지할 수 있고 (P-1)/2개만큼 수정할 수 있음
  • redundancy에 초점을 맞춤

 

  • 만약 01100이 보내졌다면? 00000, 11110과 hamming distance가 같기 때문에 틀렸다는 것만 알고 교정은 불가능
  • 이러한 과정이 BER을 낮추는 효과가 있다

 

 

 

Low Density Parity Check(LDPC) codes

 

  • 4G, 5G에서 가장 많이 쓰이는 technique
  • 여러개의 Parity Check를 이어놓음

 

 

 

참고

https://www.youtube.com/watch?v=RWUxtGh-guY 

 

 

Block Interleaving

impluse를 통해 갑자기 error가 몰리는 경우가 발생함

이때 error를 분산시켜 error correction이 더 용이하도록 함

 

 

Convolutional Codes

Block Code와 반대 개념

솔직히 이해 제대로 못함ㅎㅎ;

https://www.youtube.com/watch?v=kRIfpmiMCpU 

 

Turbo Coding

(구)트렌드

  • 3~4세대때 사용, 현재는 LDPC에 밀렸음

 

 

Automatic Reqeat Request (ARQ)

Error Detection Code를 기반으로, 다시 보내달라고 요청하는 것

효과 2가지

  • Flow Control: 수신측이 준비가 될 때까지 송신이 기다리는 것
  • Error Control: Error가 발생했을 때 감당 가능한 것

 

발생할 수 있는 에러의 종류

 

 

Stop-and-wait ARQ

ACK가 오기 전까지 다음거를 보내지 않는 ARQ

효율적이지 않음

 

Go-back-N ARQ

일단 쭉 보내고 NAK가 오면 그때거부터 다시 보내줌

 

Selective-Repeat ARQ

Go-back-N ARQ랑 비슷한데, 얘는 NAK가 온 애만 다시 보냄

 

Hybrid ARQ

FEC + ARQ

사실상 이걸 제일 많이 씀

FEC: too much redundancy

ARQ: too much 재전송, delay

스마트폰에서도 사용중

정해진 환경 안에서 더 신뢰도 높게 데이터를 전송하기 위해 사용

 

 

'WEB > NETWORK' 카테고리의 다른 글

Spectrum Considerations  (0) 2023.04.18
Antennas  (0) 2023.04.17
Digital Signal Encoding Techniques  (0) 2023.04.12
TCP/IP Configuration Example  (0) 2023.03.29
The TCP/IP Protocol  (0) 2023.03.27