채널 코딩이란 무엇입니까?
채널 코딩은 디지털 통신에 사용되는 기술로 최소한의 오류없이 전송이 수신되도록합니다. 이용 될 수있는 다양한 코딩 방법은 추가적인 이진수를 전송에 삽입함으로써 달성된다. 수신단에서 디코딩 될 때, 발생 된 에러에 대해 전송이 점검 될 수 있고, 대부분의 경우 수리 될 수있다. 다른 경우에는 수신자가 단순히 다시 전송을 요청합니다.
채널 코딩의 기본 개념은 특정 유형의 통신 채널에 불가피한 오류가 존재하기 때문에 개발되었습니다. 광섬유 채널의 전파, 전기 신호 및 심지어 광파도 매체에 약간의 노이즈가있을뿐만 아니라 거리에 따라 발생하는 신호의 열화가 있습니다. 의사 소통에서 흔히 발생하는 문제이기 때문에이를 다루는 방법에 대한 수많은 이론이 정보 이론 및 코딩 이론과 같은 응용 수학 분야에서 발전해 왔습니다.
일반적으로 사용되는 방법 중 하나 인 ARQ (Automatic Repeat Request)는 수신자가 전송에서 오류를 확인하고 발생하는 경우 재전송을 요청하는 것만 포함합니다. 이를 때때로 오류 정정이라고합니다. 반면에, 채널 코딩은 순방향 오류 정정 (FEC) 기술이다. 송신자는 에러 정정 코드 (error-correcting code)로 알려진 특수 알고리즘을 사용하여 송신을 위해 비트를 준비한 다음 수신단에서 디코딩한다. 두 방법 모두 하이브리드 방식으로 자주 사용되기 때문에 전송에서 작은 오류를 채널 코드로 복구 할 수 있으며, 큰 오류는 완전한 재전송이 필요합니다.
첫 번째 채널 코딩 기술은 Richard Hamming이라는 수학자에 의해 만들어졌으며, Hamming 코드라고 알려진 것을 개발했습니다. 이것은 최초의 순방향 오류 정정 코드로서, 패리티 비트 라 불리는 전송에 추가적인 이진수를 포함하는 것을 수반한다. 전송의 수신단에서 패리티 비트를 영리하게 계산하면 전송에서 오류가 발생했는지, 비트 열에 있는지, 원래 전송을 복구하기 위해 오류를 수정하는 방법을 알 수 있습니다.
해밍 코드는 블록 코드 라 불리는 채널 코딩 방법의 패밀리에 속하며, 그 중 다수는 수년에 걸쳐 개발되었다. 블록 코드는 일반적으로 고정 길이의 블록으로 수집되는 비트를 포함하며,이를 코드 워드라고합니다. 각 코드 워드에는 수신자가 디코딩 할 수있는 적절한 검사 비트가 제공됩니다. 블록 코드 방법은 코드 워드에 추가 된 비트로 인해 전송 크기를 증가시키는 경향이 있으며, 이는 채널의 대역폭에 영향을 줄 수 있습니다.
다른 채널 코딩 방법은 컨벌루션 코드 (convolutional code)로 알려져있다. 이러한 방법은 훨씬 빠르며 모든 길이의 비트 스트림을 인코딩 할 수 있습니다. 이 유형의 일반적으로 사용되는 코드를 이탈리아 수학자 Andrew Viterbi가 만든 Viterbi 코드라고합니다. 이 방법의 단점은 컨볼 루션 코드의 길이가 길어질수록 디코딩시 복잡성이 증가한다는 것입니다. 많은 경우에 컨볼 루션 코드는 연결된 오류 수정 코드로 알려진 블록 코드와 함께 사용됩니다.