길쌈부호화 (Convolutional Coding)
쉽게 풀면
길쌈부호화는 실을 꼬아 튼튼한 밧줄을 만드는 것에 비유할 수 있습니다. 한 가닥의 데이터 비트만으로는 약하지만, 앞서 지나간 몇 개의 비트와 지금 들어온 비트를 서로 얽어서 새로운 출력 비트를 만들면 오류에 더 강한 신호가 됩니다. 데이터를 한 덩어리씩 끊어서 처리하는 대신, 마치 실을 계속 꼬아 나가듯 연속적으로 부호화한다는 점이 특징입니다.
왜 중요한가
연속적인 데이터 흐름을 실시간으로 부호화하고 복호할 수 있어 지연이 중요한 통신 시스템에 적합하며, 구조가 비교적 단순하면서도 효과적인 오류정정 성능을 보여 초기 이동통신과 위성통신 등 다양한 표준에서 오랫동안 다뤄져 온 기법입니다. 길쌈부호는 하드웨어로 구현하기 비교적 쉬워, 계산 자원이 제한된 초창기 통신 장비에서도 실시간 오류정정을 가능하게 한 실용적인 배경을 가집니다.
논문에서는 이렇게 쓰입니다
과거 몇 개의 비트까지 참조하는지를 나타내는 구속장 값을 설정해 실험했다는 뜻입니다.
연속으로 몰아서 발생하는 오류에도 잘 견디도록 부호화와 순서 섞기를 함께 적용했다는 의미입니다.
조금 더 깊게 보면
길쌈부호는 시프트 레지스터를 이용해 입력 비트와 몇 개의 이전 비트를 조합한 출력을 만들어내며, 이 구조는 상태 천이 관계를 나타내는 트렐리스(trellis)로 표현할 수 있습니다. 수신 측에서는 이 트렐리스 구조를 바탕으로 가장 가능성이 높은 원래 비트열을 추정하는 복호 알고리즘을 사용합니다. 길쌈부호의 부호율은 한 번에 몇 개의 입력 비트를 받아 몇 개의 출력 비트를 내보내는지로 정해지며, 동일한 구속장에서도 생성 다항식의 선택에 따라 오류정정 성능이 달라져 이를 최적화하는 연구가 이루어져 왔습니다.
주의할 점
구속장을 늘리면 오류정정 능력은 좋아지지만 복호에 필요한 계산량이 급격히 증가하므로, 실제 시스템에서는 성능과 복잡도 사이의 균형을 고려해 구속장을 선택해야 합니다.
길쌈부호는 단독으로도 쓰이지만, 리드솔로몬 부호와 결합해 연접 부호로 구성하면 서로 다른 종류의 오류(무작위 오류와 버스트 오류)에 함께 대응할 수 있습니다.