앞서 전파가 전달되는 과성에서 생길 수 있는 여러가지 손실과 왜곡에 대해서 언급 하였다. 이런 문제를 근본적으로 개선시키는 여러가지 방법들이 있지만 아무리 노력해도 데이터가 100% 정확하게 전달될 수는 없다. 그때문에 만약 잘못된 데이터가 들어오거나 데이터가 소실되었을때 이를 검출하고 가능하다면 복구까지 하기 위한 매커니즘이 필요하다.
Channel Coding 이란 오류 검출을 위해 부가적인 정보(redundancy information)을 첨가하는 것이다. 송신측에선 기존 데이터와 연관된 부가정보를 데이터에 포함 시키고 수신측은 데이터와 이 부가적인 코드를 비교하여 맞지 않는게 있다면 전송과정에 오류가 있었음을 알 수 있다. 물론 이 부가적인 코드라는 것은 송신측과 수신측에서 모두 알고 있는 프로토콜화된 알고리즘에 의해서 첨가되어야 한다.
코딩 방식은 셀 수 없을 정도로 다양하지만 대표적인것 몇 가지만 언급 하자면
Linear Block Codes
데이터를 일정한 크기의 여러 블록으로 자르고 그 블록마다 특정 코드를 첨가하여 전송하는 방식이다. 전송할 데이터가 1011이라면 1011101 과 같이 redundancy information를 첨가하여 codeword를 만든다. 그리고 수신자 측에선 이를 통해 오류가 없는지 검사를 하는데 codeword끼리 통일성을 주어 그 통일성에 어긋나면 오류로 판단 하는 방법도 있고(패티리 방식 또는 codeword끼리 XOR연산 값을 모두 통일시켜 두는 방식도 있다) 송신측과 수신측이 동일한 테이블을 가지고 테이블의 값과 대조해 보는 방법도 있다.
Cyclic Codes
* Interleaving
인터리빙이란 무선통신에서 흔히 활용되는 오류 복구 능력 향상 매커니즘이다. 무선통신은 오류가 한번 생기면 burst하게 생기는 특징이 있다. 무슨 말이냐면 파동이 전파되다가 어떠한 사유로 인해 소실, 또는 왜곡 되어 오류가 나는 경우 그 오류는 한비트씩 나는게 아니라 일련의 데이터들이 한꺼번에 오류가 나는 경우가 많다. 위에서 언급만 여러 부호화 방식은 비트 단위로 오류를 검출하고 복구 하기 때문에 한두비트가 아니라 어려 비트가 연속되어 오류가 나버리면 복구율이 많이 떨어지게 된다.
인터리빙은 이런 특징을 이용하여 송신측에선 보낼 데이터를 뒤섞어 보내고 수신 측에서는 뒤섞인 데이터를 다시 정렬하는 과정을 거친다. 이렇게 하면 어떤 구간에 burst한 오류가 발생 하더라도 실제 데이터에서는 한두비트씩 산발적으로 오류가 난것 처럼되는 것이다. 그럼 오류 복구율이 높아진다.
'IT 이론 > 네트워크&무선통신' 카테고리의 다른 글
Transport Layer에서의 Congetion control (0) | 2013.12.11 |
---|---|
Mobile Communication Systems (0) | 2013.12.11 |
Propagation loss - Fading, Path loss, Delay spread, ISI (0) | 2013.10.23 |
Propagation Mechanisms (0) | 2013.10.23 |
전파의 속도, 파장, 주파수와의 상관관계 (0) | 2013.10.22 |
댓글