이하, 본 발명에 따른 바람직한 동작 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것 이라는 것에 유의하여야 한다.
본 발명은 가변 부호화율(coding rate)를 가지는 블록(block) 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호(이하 '가변 부호화율 블록 LDPC 부호'라 칭하기로 한다)를 부호화(encoding) 및 복호(decoding)하는 장치 및 방법을 제안한다. 즉, 본 발명은 블록 LDPC 부호의 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프상의 최소 사이클(cycle)의 길이가 최대가 되고, 상기 블록 LDPC 부호의 부호화를 위한 복잡도가 최소가 되고, 상기 블록 LDPC 부호의 factor 그래프상의 차수 분포가 최적 1의 분포를 가지면서도 다양한 부호화율을 지원하는 가변 부호화율 블록 LDPC 부호의 부호화 및 복호 장치 및 방법을 제안한다. 또한, 본 발명에서 별도로 도시하여 설명하지는 않지만 본 발명의 종래 기술 부분의 도 1에서 설명한 바와 같은 송수신기 구성에 본 발명의 가변 부호화율 블록 LDPC 부호의 부호화 및 복호 장치를 적용할 수 있음은 물론이다.
특히, 차세대 이동 통신 시스템은 패킷 서비스 통신 시스템(packet service communication system) 형태로 발전되어 왔으며, 패킷 서비스 통신 시스템은 버스트(burst)한 패킷 데이터(packet data)를 다수의 이동국들로 전송하는 시스템으로서, 대용량 데이터 전송에 적합하도록 설계되어 왔다. 특히, 상기 데이터 전송량을 증가시키기 위해 복합 자동 재전송 요구(HARQ: Hybrid Automatic Retransmission Request, 이하 'HARQ'라 칭하기로 한다) 방식과 적응적 변조 및 부호화(AMC: Adaptive Modulation and Coding, 이하 'AMC'라 칭하기로 한다) 방식 등과 같은 다양한 방식들이 제안되어 있으며, 상기 HARQ 방식 및 AMC 방식 등에서는 가변 부호 화율(coding rate)을 지원하므로 다양한 부호화율들을 지원하는 블록 LDPC 부호에 대한 필요성이 부각되고 있다.
상기와 같이 다양한 부호화율들을 가지는, 즉 가변 부호화율을 가지는 블록 LDPC 부호의 설계는 일반적인 LDPC 부호와 마찬가지로 패리티 검사 행렬(parity check matrix)의 설계를 통해 구현된다. 그런데, 이동 통신 시스템에서 1개의 코덱(CODEC)으로 가변 부호화율 블록 LDPC 부호를 제공하기 위해서는, 즉 다양한 부호화율들을 가지는 블록 LDPC 부호를 제공하기 위해서는 상기 패리티 검사 행렬 내에 다른 부호화율을 가지는 블록 LDPC 부호를 나타낼 수 있는 패리티 검사 행렬이 포함되는 형태가 되어야만 한다. 즉, 1개의 패리티 검사 행렬을 사용하여 2개 이상의 부호화율들을 지원할 수 있어야만 하는 것이다. 상기와 같이 1개의 패리티 검사 행렬을 사용하여 2개 이상의 부호화율들을 지원하도록 하는 대표적인 방식들로는 단축(shortening, 이하 'shortening'라 칭하기로 한다) 방식과, 제거 방식과, 천공(puncturing) 방식 등이 있다. 그러면 여기서 상기 단축 방식과, 제거 방식 및 천공 방식에 대해서 설명하면 다음과 같다.
첫 번째로, 상기 단축 방식에 대해서 설명하기로 한다.
상기 단축 방식은 상기 패리티 검사 행렬의 행(row)의 개수는 고정시키고, 정보어(information)에 해당하는 열(column)의 개수를 감소시켜가면서 부호화율을 감소시키는 방식으로서, 다양한 부호어(codeword) 길이에 대해 다양한 부호화율을 획득하고자 할 때 유용하게 사용되는 방식이다. 그러면 여기서 상기 단축 방식을 사용하여 패리티 검사 행렬을 생성하는 동작에 대해서 설명하기로 한다.
상기 도 11은 본 발명의 실시예에 따른 단축 방식을 사용하여 패리티 검사 행렬을 생성하는 과정을 개략적으로 도시한 도면이다.
상기 도 11을 참조하면,
는 부호화율
와, 부호어 길이
와, 정보어 길이
를 갖는 블록 LDPC 부호의 패리티 검사 행렬을 나타내며, i<j이면
,
의 관계를 가진다. 상기
의 패리티 검사 행렬에 상응하는 블록 LDPC 부호(이하 '(
)- 블록 LDPC 부호'라 칭하기로 한다)로부터
의 패리티 검사 행렬에 상응하는 블록 LDPC 부호(이하 '(
)- 블록 LDPC 부호'라 칭하기로 한다)로 변경되는 과정은 (
)- 블록 LDPC 부호의 처음
개의 정보어 비트(information bits)들이 모두 0으로 고정되어 있다고 가정하면 쉽게 유추할 수 있다. 또한, 상기 (
)- 블록 LDPC 부호이외의 (
)- 블록 LDPC 부호 역시 상기 (
)- 블록 LDPC 부호의
개의 정보어 비트들을 0으로 고정시킴으로써 쉽게 생성할 수 있다.
따라서, 상기 도 11에서 설명한 바와 같이 상기 단축 방식을 사용하여 패리티 검사 행렬을 생성하는 동작에서 해당 블록 LDPC 부호의 부호화율은 하기 수학식 5와 같이 나타낼 수 있다.
한편, i<j인 경우 상기 수학식 5는 하기 수학식 6과 같이 나타낼 수 있다.
상기 수학식 6에 나타낸 바와 같이, 상기 단축 방식을 사용하여 패리티 검사 행렬을 생성할 경우의 부호화율이 감소됨을 알 수 있다.
또한, 상기 도 11에서 상기 패리티 검사 행렬
이 최대 랭크(full rank)를 갖는다고 가정하면, 상기 단축 방식을 사용하여 패리티 검사 행렬을 생성한다고 하더라도 상기 단축 방식을 사용하여 생성된 패리티 검사 행렬의 행의 개수는 일정하게 유지되므로 정보어 길이는 짧아지는 반면에 패리티 길이는 그대로 유지되어 부호화율이 감소함을 알 수 있다. 일반적으로, 미리 설정되어 있는 패리티 검사 행렬에서 패리티에 상응하는 열을 제거할 경우, 상기 패리티에 상응하는 열을 제거하지 않을 경우에 생성되는 부호어 집합과는 전혀 상이한 부호어 집합이 생성되므로 상기 단축 방식은 정보어에 해당하는 열을 제거하는 것을 기본 원칙으로 한다.
두 번째로, 상기 제거 방식에 대해서 설명하기로 한다.
상기 제거 방식은 상기 패리티 검사 행렬의 열의 개수는 고정시키고, 행의 개수를 증가시켜가면서 부호화율을 감소시키는 방식이다. 여기서, 상기 패리티 검사 행렬의 행의 개수를 증가시킨다는 것은 부호어가 만족해야하는 검사 방정식 (check equation)의 수가 증가한다는 것을 나타낸다. 상기 검사 방정식의 수가 증가하면 상기 검사 방정식을 만족시키는 부호어의 수가 감소한다. 따라서, 상기 '제거 방식'이란 명칭은 기존 부호어 집합에서 상기 패리티 검사 행렬의 행의 개수 증가에 따라 추가된 검사 방정식을 만족시키지 못하는 부호어를 제거함에 따라 부여된 것이다. 그러면, 여기서 도 12를 참조하여 상기 제거 방식을 사용하여 패리티 검사 행렬을 생성하는 동작에 대해서 설명하기로 한다.
상기 도 12는 본 발명의 실시예에 따른 제거 방식을 사용하여 패리티 검사 행렬을 생성하는 과정을 개략적으로 도시한 도면이다.
상기 도 12를 참조하면,
은 부호화율
, 부호어 길이
을 갖는 부호의 패리티 검사 행렬을 나타낸다. 상기 도 12에 도시되어 있는 패리티 검사 행렬들 각각이 최대 랭크
를 갖는다고 가정하면, 상기 패리티 검사 행렬들 각각에 상응하게 생성되는 부호의 부호화율은 하기 수학식 7과 같이 나타낼 수 있다.
상기 수학식 7에 나타낸 바와 같이, 일반적으로
에 대해 최대 랭크
는 증가하기 때문에 부호화율
는 감소한다. 물론, 상기에서 설명한 제거 방식과는 반대로 상기 도 12에 도시한 바와 같은
과 같이 부호화율이 매우 낮은 패리티 검사 행렬을 기준으로 행을 제거해나가는 방식으로 부호화율이 높은 패리티 검 사 행렬을 생성할 수도 있음은 물론이다.
세 번째로, 상기 천공 방식에 대해서 설명하기로 한다.
상기 천공 방식은 터보 부호(turbo code)의 경우와 마찬가지로 부호화기로부터 생성된 패리티를 모두 송신하지 않고 상기 생성된 패리티중의 일부만 송신함으로써 부호화율을 증가시키는 방식이다. 상기 천공 방식은 생성된 패리티의 전부를 송신하지는 않지만 실질적으로는 패리티 검사 행렬에는 변화가 없는 것으로 간주할 수 있기 때문에 상기 단축 방식 혹은 제거 방식과 같이 패리티 검사 행렬의 열과 행을 삭제 혹은 추가하는 방식과는 상이한 방식이다. 그러면, 여기서 도 13을 참조하여 상기 천공 방식을 사용하여 패리티 검사 행렬을 생성하는 동작에 대해서 설명하기로 한다.
상기 도 13은 본 발명의 제1실시예에 따른 천공 방식을 사용하여 패리티 검사 행렬을 생성하는 과정을 개략적으로 도시한 도면이다.
상기 도 13에 도시되어 있는 패리티 검사 행렬은 부호화율
인
블록 LDPC 부호의 패리티 검사 행렬이며, 상기 패리티 검사 행렬은
개의 부분 블록(partial block)들을 포함하며, 상기 부분 블록들 각각에 대응하는 부분 행렬(partial matrix)은 정사각 행렬로서, 그 크기는
, 즉
이다.
한편, 상기 임의의 블록 LDPC 부호의 부호어를 정보어와 패리티로 구분할 경우, 상기 정보어와 패리티 역시 상기 부분 블록 단위로 생각하여 구분할 수 있으 며, 따라서 상기 임의의 블록 LDPC 부호의 부호어는 하기 수학식 8과 같이 나타낼 수 있다.
상기 수학식 8에서,
와
는
크기의 행 벡터(vector)를 나타낸다.
한편, 상기 도 13에 도시된 바와 같은 패리티 검사 행렬에서 상기 패리티에 대응되는 패리티 파트(parity part)에서 짝수번째(even) 블록들을 천공하면, 상기 천공에 따른 블록 LDPC 부호의 부호어는 하기 수학식 9와 같이 나타낼 수 있다.
상기 수학식 9에서,
는 상기 천공에 따른 블록 LDPC 부호의 부호어를 나타낸다. 상기 수학식 9에 나타낸 바와 같은 부호어는 결과적으로 부호화율
인 블록 LDPC 부호의 부호어와 동일하게 된다. 즉, 상기 천공 방식을 사용할 경우에는 부호화율은 변하지만 그 정보어의 길이는 동일하게 유지된다.
한편, 상기 천공 방식을 사용하여 생성한 블록 LDPC 부호의 부호어에 대한 복호시에는 상기 천공된 패리티 비트를 삭제(erasure)로 생각함으로써, 원래의 패리티 검사 행렬을 그대로 사용한다. 즉, 상기 천공된 패리티 비트가 송신되는 채널로부터 입력되는 LLR(Log-Likelihood Ratio) 값을 항상 0으로 간주하면, 복호시에는 원래의 패리티 검사 행렬을 그대로 사용할 수 있게 되는 것이다. 따라서, 천공 된 패리티에 대응되는 노드는 복호 과정에서 반복 복호(iterative decoding)에 따른 성능 개선 혹은 성능 열화에 전혀 영향을 주지 않으며, 단지 다른 노드들로부터 전달되는 메시지들이 이동하는 경로로서의 역할을 수행할 뿐이다. 그러면 여기서 도 14를 참조하여 상기 천공 방식을 사용하여 생성한 블록 LDPC 부호의 부호어에 대한 복호 과정에서 상기 천공 방식을 사용함에 따라 천공된 패리티에 대응되는 노드의 역할에 대해서 설명하기로 한다.
상기 도 14a-도14d는 본 발명의 실시예에 따른 천공 방식을 사용하여 생성된 블록 LDPC 부호의 부호어에 대한 복호 과정에서 천공된 패리티에 대응되는 노드의 역할을 설명하기 위해 도시한 도면이다.
상기 도 14a-도14d를 설명하기에 앞서, 상기 도 14a-도14d에 도시한
는 상기 천공된 패리티에 대응되는 노드를 나타내며, 도시한 화살표들은 실제 메시지가 전달되는 방향을 나타낸다. 먼저, 상기 도 14a에 도시한 바와 같이 천공된 패리티에 대응되는 노드에 LLR 값 '0'이 입력됨을 알 수 있다. 이후, 상기 도 14a에 도시한 채널로부터의 메시지 입력은 상기 도 14b에 도시한 바와 같이 첫 번째 복호 과정에서 검사 노드(check node)로 전달된다. 상기 도 14b에서 변수 노드들은 입력된 메시지, 즉 심볼 확률값과 연결된 검사 노드로 전달된다. 이때, 상기 패리티에 대응되는 노드는 LLR 값 '0'을 상기 연결된 검사 노드들로 전달한다.
한편, 상기 검사 노드들은 상기 검사 노드들에 연결된 변수 노드들로부터 입력되는 확률값들을 사용하여 소정의 연산을 수행하여 상기 변수 노드들 각각으로 전달할 확률값을 계산하고, 상기 계산한 확률값들을 해당 변수 노드들로 전달한다. 이때, 상기 검사 노드에서 천공된 패리티에 대응되는 노드와 연결되어 있는 모든 노드들로 전달되는 메시지는 상기 도 14c에 도시한 바와 같이 '0'이 된다. 또한, 상기 천공된 패리티에 대응되는 노드로 전달되는 메시지는 0이 아니며, 상기 천공된 패리티에 대응되는 노드들로 전달된 메시지들은 상기 도 14d에 도시한 바와 같이 상호간에 영향을 미치지 않고 각각의 경로에 상응하게 전달된다. 이후의 복호 과정은 일반적인 LDPC 부호의 복호 과정과 동일하며, 상기 천공된 패리티에 대응되는 노드는 지속적으로 복호에 따른 성능 개선에 영향을 미치지 않고 단순히 메시지들의 전달 경로로서만 그 역할을 수행하게 되는 것이다.
상기에서 설명한 바와 같이, 상기 천공 방식을 사용하면 부호화 및 복호시 최초에 구비하고 있는 부호화기 및 복호기를 그대로 사용할 수 있다. 즉, 상기 천공 방식은 부호화 복잡도와 복호 복잡도가 부호화율과 블록(부호어) 길이에 상관없이 거의 일정하고, 정보어 길이는 고정되고 패리티의 길이만을 가변시켜 부호화율을 가변시키기 때문에 그 신뢰성이 높다. 상기 천공 방식을 사용하여 생성한 블록 LDPC 부호는 그 천공 패턴(puncturing pattern)에 따라 그 성능이 상이해질 수 있으므로 상기 천공 패턴을 설계하는 것 역시 중요한 요인으로 작용한다.
다음으로, 상기 단축 방식 및 천공 방식을 사용하여 실제 블록 LDPC 부호를 생성하는 방법을 구체적으로 설명하기로 한다. 여기서, 상기 블록 LDPC 부호 역시 일반적인 블록 부호들과 마찬가지로 상기 단축 방식을 사용하여 부호화율을 가변시킬 수 있으므로, 본 발명의 실시예에서는 상기 단축 방식을 사용하여 상기 블록 LDPC 부호의 부호화율을 가변시키도록 한다.
그러면, 여기서 도 15를 참조하여 상기 단축 방식을 사용하여 패리티 검사 행렬을 생성하는 동작에 대해서 설명하기로 한다.
상기 도 15는 본 발명의 제2실시예에 따른 단축 방식을 사용하여 패리티 검사 행렬을 생성하는 과정을 개략적으로 도시한 도면이다.
상기 도 15를 참조하면, 도시되어 있는 패리티 검사 행렬은 상기 도 13에서 설명한 바와 같은 패리티 검사 행렬에 상응하는 블록 LDPC 부호의 부호어
의
,
, ... ,
,
,
을 모두
으로 간주하면 생성된다. 상기 단축 방식은 상기 패리티 검사 행렬에서 정보어 부분의 일부를 제거한 것과 동일한 효과를 가지므로 상기 천공 방식과는 상이한 방식이다. 즉, 상기 단축 방식을 사용하여 생성한 패리티 검사 행렬은 최초로 주어진 패리티 검사 행렬과 전혀 다른 부호화율과 차수 분포를 갖게 되므로 상기 단축 방식을 사용하여 생성되는 패리티 검사 행렬의 차수 분포를 고려하여 상기 최초로 주어진 패리티 검사 행렬에서 제거할 열을 선택해야만 하는 것이다. 이를 위해서는 상기 단축 방식을 사용하기 전 최초로 주어진 패리티 검사 행렬, 즉 모 패리티 검사 행렬(parent parity check matrix)과 상기 단축 방식을 사용한 후의 패리티 검사 행렬, 즉 자 패리티 검사 행렬(children parity check matrix)이 모두 최적화된 차수 분포를 가질 수 있도록 생성해야만 한다.
한편, 일반적으로 유한 길이를 가정할 경우 우수한 성능을 보이는 높은 부호화율의 블록 LDPC 부호가 우수한 성능을 보이는 낮은 부호화율의 블록 LDPC 부호 보다 검사 노드의 평균 차수가 크다. 따라서, 상기 단축 방식을 사용하여 낮은 부 호화율의 블록 LDPC 부호를 생성하고자 할 경우에는 상기 단축 방식을 사용한 이후에 검사 노드의 평균 차수가 감소되는 구조를 가져야만 한다. 뿐만 아니라, 상기 단축 방식을 사용하면 차수 분포가 변하게 되므로, 밀도 진화(density evolution) 분석 방식을 사용하여 잡음 임계치가 좋은 다양한 부호화율의 블록 LDPC 부호를 설계하기 위해서는 모 패리티 검사 행렬의 차수 분포와 상기 단축 방식을 사용하여 생성된 자 패리티 검사 행렬의 차수 분포를 동시에 고려해야만 한다. 그러나, 이와는 달리 상기 천공 방식을 사용할 경우에는 천공된 변수 노드를 실제로 제거하지 않고 소실(erasure)되었다고 간주하는 방식이므로 전체적으로 패리티 검사 행렬의 차수 분포 변화를 초래하지 않으면서도 부호화율이 높은 블록 LDPC 부호를 생성할 수 있다.
다음으로, 1개의 패리티 검사 행렬, 즉 1개의 모 패리티 검사 행렬을 사용하여 다양한 부호화율, 즉 가변 부호화율을 지원할 수 있는 블록 LDPC 부호를 생성하는 방법에 대해서 설명하기로 한다. 이하의 설명에서는 부호어 길이가 고정되어 있으면서도 가변 부호화율을 가지는 블록 LDPC 부호를 일 예로 하여 설명하기로 한다. 또한 블록 길이, 즉 부호어 길이가 고정되어 있는 다양한 부호화율의 블록 LDPC 부호의 예로써, 상기한 단축 방식과 천공 방식을 사용하여 부호화율이 1/3에서 1/2로 가변 가능한 블록 LDPC 부호를 생성하고, 모 패리티 검사 행렬과 상기 모 패리티 검사 행렬을 단축 방식을 사용하여 생성한 자 패리티 검사 행렬이 우수한 잡음 임계치를 가지도록 하는 방법에 대해서 설명하기로 한다.
도 16은 본 발명의 제3실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리 티 검사 행렬을 도시한 도면이다.
상기 도 16을 참조하면, 도시되어 있는 패리티 검사 행렬은 49개의 부분 블록 열(partial block column)들과 28개의 부분 블록 행(partial block row)들을 포함하며, 상기 패리티 검사 행렬을 구성하는 부분 블록들 각각에는 그 크기가
인 부분 행렬(partial matrix)이 대응된다. 여기서, 상기 부분 행렬이라 함은 상기 부분 블록들 각각에 대응되는 순열 행렬(permutation matrix)을 나타내며, 상기 부분 행렬의 크기가 N
S라 함은 상기 부분 행렬이
크기를 가지는 정사각 행렬임을 나타내며, 설명의 편의상 상기 부분 행렬의 크기를
혹은 N
s라고 혼용하여 표현한 것임에 유의하여야만 한다. 한편, 상기 도 16에 도시되어 있는 패리티 검사 행렬의 부호화율은 하기 수학식 10과 같이 나타낼 수 있다.
즉, 상기 도 16에 도시되어 있는 패리티 검사 행렬은 그 부호화율이 3/7이고, 부호어 길이가 49Ns인 블록 LDPC 부호에 상응하게 사용되나, 단축 방식과 천공 방식을 사용하여 1개의 패리티 검사 행렬로 가변 부호화율의 블록 LDPC 부호의 패리티 검사 행렬을 생성할 수도 있는 것이다. 일 예로, 제1부분 블록 열부터 제7 부분 블록 열들을 상기 단축 방식을 사용하여 단축시킨 후 제8 부분 블록 열부터 제21 부분 블록 열에 해당하는 부분 행렬들을 정보어에 매핑시키고, 제22 부분 블록 열부터 제49 부분 블록 열에 해당하는 부분 행렬들을 패리티에 매핑시키면, 부호화율이 1/3이고, 부호어 길이가 42Ns인 블록 LDPC 부호를 생성할 수 있다.
또 다른 예로, 제1부분 블록 열부터 제21 부분 블록열에 해당하는 부분 행렬들을 정보어에 매핑시키고, 제22 부분 블록 열부터 제49 부분 블록열 들중에서 7개의 부분 블록열들을 상기 천공 방식을 사용하여 천공하면 부호화율이 1/2이고, 부호어 길이가 42Ns인 블록 LDPC 부호를 생성할 수 있다. 상기 예들에서 설명한 바와 같이, 상기 단축 방식 혹은 천공 방식을 사용하여 실제 부호어 길이가 동일하더라도 부호화율이 서로 다른 블록 LDPC 부호를 생성하는 것이 가능하다.
한편, 상기 가변 부호화율을 지원하는 블록 LDPC를 생성함에 있어 고려해야만 하는 가장 중요한 요소는 모 패리티 검사 행렬뿐만 아니라 자 패리티 검사 행렬 역시 잡음 임계치 성능 면에서 우수하도록 설계해야만 한다는 것이다. 따라서, 부호화율이 낮은 블록 LDPC의 패리티 검사 행렬에 대해 차수 분포를 최적화하고, 부호화율이 높은 블록 LDPC의 패리티 검사 행렬은 상기 최적화된 패리티 검사 행렬을 포함하면서 동시에 차수 분포가 최적화되도록 생성한다.
즉, 상기 도 16에 도시되어 있는 패리티 검사 행렬은, 먼저 부호화율이 1/3인 블록 LDPC 부호의 패리티 검사 행렬에 대한 차수 분포를 최적화하고, 상기 최적화된 패리티 검사 행렬을 포함하면서 부호화율이 3/7인 블록 LDPC 부호의 패리티 검사 행렬에 대해 다시 차수 분포 최적화를 수행함으로써 생성할 수 있다. 상기 도 16에서는 상기 패리티 검사 행렬의 설계의 편의를 위해 변수 노드 차수의 종류는 2, 3, 5, 16의 4가지로 제한하였고, 검사 노드의 차수의 종류는 5, 6, 7의 3가지로 제한하였다.
여기서, 상기 도 16에 도시되어l 있는 패리티 검사 행렬은 1/3의 부호화율을 갖는 단축된 블록 LDPC 부호로서 잡음 임계치가
(-0.219[dB])이고, 부호화율이 3/7인 블록 LDPC 부호로서
(0.114[dB])의 잡음 임계치를 가지며, 차수 분포는 각각 다음과 같다(Shannon 한계는 각각 -0.495[dB], -0.122[dB]).
·1/3의 부호화율을 갖는 단축된 블록 LDPC 부호의 차수 분포:
·3/7의 부호화율을 갖는 블록 LDPC 부호의 차수 분포:
여기서, λi는(i = 2,3,5,16)는 i개의 degree를 갖는 변수 노드에 관련된 에지의 distribution을 나타내며, ρi는 i개의 degree를 갖는 검사 노드에 관련된 에지의 distribution을 나타낸다.
즉, 가변 부호화율을 지원하기 위해서는 상기 블록 LDPC 부호의 패리티 검사 행렬이 부호화율이 낮은 경우에 대해 먼저 최적화를 수행하여 얻은 결과를 하나의 제한 조건(constraint)으로 설정하고, 그 다음으로 부호화율이 높은 경우에 대하여 순차적으로 최적화를 수행해 나감으로써 각각의 부호화율에 대해 성능이 우수한 잡음 임계치를 갖도록 설계해야 한다. 또한, 상기 도 16에서는 설명의 편의를 위해 변수 노드의 차수 종류를 상기 4가지로 제한하였으나, 변수 노드의 차수를 보다 다양하게 허용할 경우 더 우수한 성능의 잡음 임계치를 획득할 수 있다.
여기서, 검사 노드의 수를 M, 변수 노드의 최대 차수를
로 제한하였을 경우 부호화율이
이고, 각각의 패리티 검사 행렬의 크기가
인 경우 가변 부호화율을 가지는 블록 LDPC 부호를 설계하는 과정에 대해서 설명하면 다음과 같다.
<제1단계>
먼저, 부호화율이 R
1인 경우에 대해 밀도 진화 방식을 사용하여 차수 분포의 최적화를 수행한다. 상기 차수 분포의 최적화 수행 결과로 획득된 차수 분포에서 전체 변수 노드에 대한 차수가 j(
)인 변수 노드의 비율을
라고 가정하기로 한다. 여기서, 상기 비율
와 에지(edge)의 차수 분포
는 하기 수학식 11과 같은 관계를 사용하여 상호간에 변형이 가능하며, 상기
는 전체 에지에 대한 차수가 j인 변수 노드에 연결된 에지의 비율을 나타낸다.
상기 수학식 11에서 k는 상기 차수 j와 동일한 값을 가지며, 상기 검사 노드 역시 상기 변수 노드와 동일하게 고려한다.
<제2단계>
임의의
,
에 대해, 상기 제1단계에서 획득한 차수 분포로부터 전체 N
l(R
i의 부호어 길이)개의 변수 노드들 중에 차수가 j인 변수 노드가 각각
만큼 포함되어 있음을 제한 조건으로 추가 설정하여 차수 분포의 최적화를 수행한다. 상기 검사 노드역시 상기 변수 노드와 동일하게 고려한다.
상기 제1단계 및 제2단계와 같은 방식으로 차수 분포 최적화를 수행함으로써 다양한 부호화율을 가지는 블록 LDPC 부호의 패리티 검사 행렬을 설계할 수 있다. 또한, 설계된 패리티 검사 행렬은 필요한 부호화율 Ri에 상응하게 상기 단축 방식을 사용하여 패리티의 길이는 M으로 일정하게 유지하면서도 블록 길이가 Ni로 가변하는 블록 LPDC 부호에 상응하는 패리티 검사 행렬임을 알 수 있다. 또한, 상기 단축 방식과 함께 천공 방식을 사용하면 더욱 다양한 부호화율과 블록(부호어) 길이를 갖는 블록 LDPC 부호를 생성할 수 있음은 물론이다.
한편, 부호화율이 R
i인 경우에 대해 천공된 패리티 비트 수를
(
)이라고 가정하면, 생성되는 블록 LDPC 부호의 블록 길이와 부호화율은 하기 수학식 12와 같이 나타낼 수 있다.
여기서, 블록 길이가 일정한 블록 LDPC 부호를 생성하기 위해서는 상기 천공된 패리티 비트수 Pi를 적정하게 결정하여
으로 일정한 값이 유지되도록 설정하면 된다. 이 경우의 부호화율은 하기 수학식 13과 같이 나타낼 수 있다.
상기에서 설명한 바와 같이, 가변 부호화율을 가지는 블록 LDPC 부호의 패리티 검사 행렬을 설계함에 있어서 고려해야할 가장 중요한 요소는 차수 분포의 최적화이다. 또한, 상기 가변 부호화율 지원시 너무 많은 개수의 부호화율을 지원할 경우에는 검사 노드의 차수가 증가하면서 사이클(cycle) 특성이 열화되기 때문에 지원하는 부호화율의 개수와, 획득하고자 하는 잡음 임계치 및 사이클 특성을 동시에 고려하여 상기 패리티 검사 행렬을 설계해야만 한다.
다음으로 도 17을 참조하여 본 발명의 실시예에 따른 가변 부호화율 블록 LDPC 부호를 부호화하는 과정에 대해서 설명하기로 한다.
상기 도 17은 본 발명의 실시예에 따른 가변 부호화율 블록 LDPC 부호의 부호화 과정을 도시한 순서도이다.
상기 도 17을 설명하기에 앞서, 상기 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬은 상기 종래 기술 부분의 도 8에서 설명한 바와 같은 6개의 부분 행렬들로 구성된 형태라고 가정하기로 한다.
상기 도 17을 참조하면, 먼저 제어기(도시하지 않음)는 1710단계에서 상기 가변 부호화율 블록 LDPC 부호를 생성하기 위해 미리 설정되어 있는 부호화율에 상응하게 모 패리티 검사 행렬에 적용할 부호화율 변경 방식을 결정하고 1711단계로 진행한다. 여기서, 상기 부호화율 변경 방식이라 함은 상기에서 설명한 바와 같은 단축 방식과 천공 방식 등이 존재하며, 상기 모 패리티 검사 행렬이 그대로 사용될 경우에는 상기 부호화율 변경 방식이 적용되지 않음은 물론이다. 또한, 상기 단축 방식과 천공 방식중 어느 한 방식만을 사용하거나 혹은 상기 단축 방식과 천공 방식 모두를 사용하여 상기 부호화율을 변경할 수 있다. 이하의 설명에서는 상기 단축 방식 혹은 천공 방식을 사용하여 상기 부호화율을 가변시키는 경우만을 일 예로 하여 설명하기로 한다.
상기 1711단계에서 상기 제어기는 상기 가변 부호화율 블록 LDPC 부호로 부호화하기 위한 정보어 벡터(
)를 입력받고 1713단계 및 1715단계로 진행한다. 여기서, 상기 정보어 벡터(
)의 길이는 상기 단축 방식을 사용할 경우에만 변경됨은 물론이다. 여기서, 상기 가변 부호화율 블록 LDPC 부호로 부호화하기 위해 입력받은 정보어 벡터(
)의 길이는 k라고 가정하기로 한다. 상기 1713단계에서 상기 제어기는 상기 입력받은 정보어 벡터(
)와 패리티 검사 행렬의 부분 행렬 A를 행렬 곱셈한 후(
) 1717단계로 진행한다. 여기서, 상기 부분 행렬 A에 존재하는 1의 값을 가지는 엘리먼트들의 개수는 0의 값을 가지는 엘리먼트들의 개수에 비해서 매우 적으므로 상기 정보어 벡터(
)와 패리티 검사 행렬의 부분 행렬 A의 행렬 곱셈은 비교적 적은 횟수의 합곱(sum-product) 연산만으로도 가능하게 된다. 또한, 상기 부분 행렬 A에서 1의 값을 가지는 엘리먼트들의 위치는 0이 아닌 블록의 위치와 그 블록의 순열 행렬의 지수승으로 나타낼 수 있으므로 임의의 패리티 검사 행렬에 비하여 매우 간단한 연산만으로도 행렬 곱셈을 수행할 수 있다. 또한, 상기 1715단계에서 상기 제어기는 상기 패리티 검사 행렬의 부분 행렬 C와 상기 정보어 벡터(
)의 행렬 곱셈을 수행하고(
) 1719단계로 진행한다. 한편, 상기 1713단계 및 1715단계에서 사용되는 부분 행렬 A와 C는 상기 모 패리티 검사 행렬에 상기 단축 방식을 적용하는 경우에는 단축되는 부분만큼 모 패리티 검사 행렬의 해당 열들을 사용하지 않는 것이므로 상기 모 패리티 검사 행렬의 부분 행렬 A와 C에서 상기 단축되는 부분에 해당하는 열들이 삭제되게 된다.
한편, 상기 1717단계에서 상기 제어기는 상기 정보어 벡터(
)와 패리티 검사 행렬의 부분 행렬 A의 행렬 곱셈 결과와 행렬 ET
-1의 행렬 곱셈을 수행하고(
) 1719단계로 진행한다. 여기서, 상기에서 설명한 바와 같이 상기 행렬 ET
-1의 1의 값을 가지는 엘리먼트들의 개수는 매우 적기 때문에 블록의 순열 행렬의 지수승만 알게되면 상기 행렬 곱셈을 용이하게 수행할 수 있다. 상기 1719단계에서 상기 제어기는 상기
와
를 가산하여 제1패리티 벡터 (
)를 계산한 후(
) 1721단계로 진행한다. 여기서, 가산 연산은 배타적 가산(exclusive OR) 연산으로 동일한 비트가 가산될 때는 0이 되고 상이한 비트가 가산될 때는 1이 된다. 결국, 상기 1719단계까지의 과정은 제1패리티 벡터(
)를 계산하기 위한 과정인 것이다.
상기 1721단계에서 상기 제어기는 상기 패리티 검사 행렬의 부분 행렬 B와 상기 제1패리티 벡터(
)를 곱셈한 후
를 가산한 후 1723단계로 진행한다. 여기서, 상기 정보어 벡터(
)와 제1패리티 벡터(
)를 알면, 제2패리티 벡터(
)를 구하기 위해 상기 패리티 검사 행렬의 부분 행렬 T의 역행렬 T
-1을 행렬 곱해야한다. 따라서, 상기 1723단계에서 상기 제어기는 상기 제2패리티 벡터(
)를 구하기 위해서 상기 1721단계에서 계산한 벡터에 상기 부분 행렬 T의 역행렬 T
-1을 곱한 후(
) 1725단계로 진행한다. 상기에서 설명한 바와 같이 부호화하고자 하는 가변 부호화율 블록 LDPC 부호의 정보어 벡터(
)만을 알면 제1패리티 벡터(
)와, 제2패리티 벡터(
)를 구할수 있고, 결과적으로 부호어 벡터 모두를 얻을 수 있는 것이다. 그리고, 상기 제어 기는 1725단계에서 상기 정보어 벡터(
)와, 제1패리티 벡터(
)와, 제2패리티 벡터(
)로 생성된 부호어 벡터(
)를 생성한 후 1727단계로 진행한다.
상기 1727단계에서 상기 제어기는 상기 부호어 벡터(
)의 패리티를 미리 설정되어 있는 천공 패턴에 상응하게 천공하여 상기 부호화율에 상응하는 블록 LDPC 부호로 생성하고 종료한다.
다음으로 도 18을 참조하여 본 발명의 실시예에 따른 가변 부호화율 블록 LDPC 부호의 부호화 장치 내부 구조에 대해서 설명하기로 한다.
상기 도 18은 본 발명의 실시예에 따른 가변 부호화율 블록 LDPC 부호의 부호화 장치 내부 구조를 도시한 블록도이다.
상기 도 18을 참조하면, 상기 가변 부호화율 블록 LDPC 부호의 부호화 장치는 제어기(1810)와, 행렬 A 곱셈기(1811)와, 행렬 C 곱셈기(1813)와, 행렬 ET-1 곱셈기(1815)와, 가산기(1817)와, 행렬 B 곱셈기(1819)와, 가산기(1821)와, 행렬 T-1 곱셈기(1823)와, 스위치(switch)들(1825, 1827, 1829)을 포함한다.
먼저, 입력 신호, 즉 가변 부호화율 블록 LDPC 부호로 부호화하고자 하는 길이 k의 정보어 벡터(
)는 상기 스위치(1825)와, 행렬 A 곱셈기(1811)와, 행렬 C 곱셈기(1813)로 입력된다. 여기서, 상기 제어기(1810)는 상기 가변 부호화율 블록 LDPC 부호화 장치에서 단축 방식을 사용할 경우 상기 정보어 벡터(
)의 길이 k 를 해당 부호화율에 상응하게 가변시키며, 또한 상기 해당 부호화율에 상응하게 상기 가변 부호화율 블록 LDPC 부호의 부호어 길이 및 천공 패턴을 결정한다.
상기 행렬 A 곱셈기(1811)는 상기 정보어 벡터(
)와 모 패리티 검사 행렬의 부분 행렬 A를 곱한 후 행렬 ET
-1 곱셈기(1815)와 상기 가산기(1821)로 출력한다. 또한, 상기 행렬 C 곱셈기(1813)는 상기 정보어 벡터(
)와 모 패리티 검사 행렬의 부분 행렬 C를 곱한 후 상기 가산기(1817)로 출력한다. 여기서, 상기 도 17에서 설명한 바와 같이 모 패리티 검사 행렬에 단축 방식이 적용될 경우에는 상기 행렬 A와 행렬 C는 상기 모 패리티 검사 행렬의 행렬 A와 행렬 C에서 단축되는 부분에 해당하는 열들이 제거된 형태를 가지게 된다. 상기 행렬 ET
-1 곱셈기(1815)는 상기 행렬 A 곱셈기(1811)에서 출력한 신호에 모 패리티 검사 행렬의 부분 행렬 ET
-1를 곱한 후 상기 가산기(1817)로 출력한다.
상기 가산기(1817)는 상기 행렬 ET
-1 곱셈기(1815)에서 출력한 신호와 상기 행렬 C 곱셈기(1813)에서 출력한 신호를 입력하여 가산한 후 상기 행렬 B 곱셈기(1819) 및 스위치(1827)로 출력한다. 여기서, 상기 가산기(1817)는 비트별로 배타적 논리합 연산을 수행한다. 일 예로, 길이 3인 벡터 x = (x
1, x
2, x
3)와 길이 3인 벡터 y = (y
1, y
2, y
3)가 상기 가산기(1817)로 입력될 경우, 상기 가산기(1817)는 상기 길이 3인 벡터 x = (x
1, x
2, x
3)와 길이 3인 벡터 y = (y
1, y
2, y
3)를 배타적 논 리합 연산하여 길이 3인 벡터
를 출력한다. 여기서, 상기
연산은 동일한 비트가 연산되면 0이 되고, 상이한 비트가 연산되면 1이 되는 배타적 논리합 연산을 나타낸다. 결국, 상기 가산기(1817)에서 출력하는 신호가 제1패리티 벡터(
)가 되는 것이다.
또한, 상기 행렬 B 곱셈기(1819)는 상기 가산기(1817)에서 출력한 신호, 즉 제1패리티 벡터(
)를 입력하여 상기 전체 패리티 검사 행렬의 부분 행렬 B를 곱한 후 상기 가산기(1821)로 출력한다. 상기 가산기(1821)는 상기 행렬 B 곱셈기(1819)에서 출력한 신호와 상기 행렬 A 곱셈기(1811)에서 출력한 신호를 가산한 후 상기 행렬 T
-1 곱셈기(1823)로 출력한다. 여기서, 상기 가산기(1821)는 상기 가산기(1817)에서 설명한 바와 같이 상기 행렬 B 곱셈기(1819)에서 출력한 신호와 상기 행렬 A 곱셈기(1811)에서 출력한 신호를 배타적 논리합 연산한 후 상기 행렬 T
-1 곱셈기(1823)로 출력하는 것이다.
상기 행렬 T
-1 곱셈기(1823)는 상기 가산기(1821)에서 출력한 신호와 상기 행렬 T
-1를 곱한 후 상기 스위치(1829)로 출력한다. 여기서, 상기 행렬 T
-1 곱셈기(1823)의 출력이 결국 제2패리티 벡터(
)가 되는 것이다. 한편, 상기 스위치들(1825, 1827, 1829) 각각은 자신이 전송하는 시점에서만 스위칭 온(switching on)되어 해당 신호를 전송하도록 한다. 즉, 상기 정보어 벡터(
)가 전송되는 시점에서는 상기 스위치(1825)가 스위칭 온되고, 상기 제1패리티 벡터(
)가 전송되는 시점에서는 상기 스위치(1827)가 스위칭 온되고, 상기 제2패리티 벡터(
)가 전송되는 시점에서는 상기 스위치(1829)가 스위칭 온되는 것이다. 여기서, 상기 제어기(1810)는 상기 모 패리티 검사 행렬에 천공 방식이 적용될 경우 상기 스위치(1627)와, 스위치(1629)를 제어하여 해당 부호화율에 상응하게 패리티를 천공하도록 제어한다.
또한, 하기에서도 구체적으로 설명할 것이지만, 본 발명의 실시예에서는 가변 부호화율을 가지는 블록 LDPC 부호를 생성하는 것이 가능해야하므로 상기 도 18의 가변 부호화율 블록 LDPC 부호의 부호화 장치에서 사용되는 행렬들 각각은 상기 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬이 변경될 때마다 상응하게 변경됨은 물론이다. 따라서, 상기 도 18에 별도로 도시하지는 않았으나, 상기 제어기(1810)가 상기 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬이 변경됨에 따라 상기 가변 부호화율 블록 LDPC 부호의 부호화 장치에서 사용되는 행렬들을 변경함은 물론이다.
한편, 상기 LDPC 부호 계열의 모든 부호들은 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프 상에서 합곱 알고리즘(sum-product algorithm)으로 복호가 가능하다. 상기 LDPC 부호의 복호 방식은 크게 양방향 전달 방식과 흐름 전달 방식 으로 분류할 수 있다. 상기 양방향 전달 방식으로 복호 동작을 수행할 경우에는 검사 노드(check node) 당 노드 프로세서(processor)가 각각 존재하여 복호기의 복잡도가 상기 검사 노드들의 개수에 비례하여 복잡해지지만, 모든 노드들이 동시에 업데이트되므로 복호 속도가 굉장히 빨라진다. 이와는 달리 상기 흐름 전달 방식은 한 개의 노드 프로세서가 존재하여 모든 factor 그래프 상의 노드를 지나가며 정보를 업데이트하게 된다. 따라서, 복호기의 복잡도는 간단해지지만 패리티 검사 행렬의 크기가 커질수록 즉, 노드들의 개수가 증가할수록 복호 속도가 느려지게 된다.
하지만 본 발명에서 제안하는 다양한 부호화율을 가지는 가변 부호화율 블록 LDPC 부호와 같이 블록 단위로 패리티 검사 행렬을 생성하게 되면, 복호시 상기 패리티 검사 행렬을 구성하고 있는 블록들의 개수만큼의 노드 프로세서를 이용하므로 상기 양방향 전달 방식보다는 복호기 복잡도가 감소되며, 또한 상기 흐름 전달 방식보다는 복호 속도가 빠른 복호기를 구현할 수 있다.
다음으로 도 19를 참조하여 본 발명의 실시예에 따른 모 패리티 검사 행렬을 사용하여 가변 부호화율 블록 LDPC 부호를 복호하는 복호 장치 내부 구조에 대해서 설명하기로 한다.
상기 도 19는 본 발명의 실시예에 따른 가변 부호화율 블록 LDPC 부호의 복호 장치 내부 구조를 도시한 도면이다.
상기 도 19를 참조하면, 상기 가변 부호화율 블록 LDPC 부호의 복호 장치는 블록 제어기(block controller)(1910)와, 변수 노드 파트(1900)와, 가산기(1915)와, 디인터리버(de-interleaver)(1917)와, 인터리버(interleaver)(1919)와, 제어기 (1921)와, 메모리(1923)와, 가산기(1925)와, 검사 노드 파트(1950)와, 경판정기(1929)를 포함한다. 상기 변수 노드 파트(1900)는 변수 노드 복호기(1911)와, 스위치들(1913,1914)를 포함하고, 상기 검사 노드 파트(1950)는 검사 노드 복호기(1927)를 포함한다.
먼저, 무선 채널을 통해 수신되는 수신 신호는 상기 블록 제어기(1910)로 입력된다. 상기 블록 제어기(1910)는 상기 수신 신호의 블록 크기를 결정하며, 또한 상기 복호 장치에 대응하는 부호화 장치에서 천공된 정보어 부분이 존재할 경우, 상기 천공된 정보어 부분에 0을 삽입하여 전체 블록 크기를 조정한 후 상기 변수 노드 복호기(1911)로 출력한다. 또한, 상기 블록 제어기(1910)는 상기 복호 장치에 대응하는 부호화 장치와 상호간에 미리 규약하여 해당 부호화율에 따라 모 패리티 검사 행렬에 단축 방식과 천공 방식을 적용하는 방식 등에 대한 정보를 미리 저장하고 있다. 여기서, 상기 해당 부호화율에 따라 모 패리티 검사 행렬에 단축 방식과 천공 방식을 적용하는 방식 등에 대한 정보는 단축 혹은 천공되는 부분 블록들의 개수 뿐만 아니라 단축 혹은 천공되는 부분 블록들의 위치 정보까지 포함한다. 따라서, 상기 블록 제어기(1910)는 수신 신호를 상기 부호화 장치에서 적용한 부호화율에 상응하게 단축된 부분은 제거하고, 천공된 부분에는 LLR 값을 0으로 삽입하여 상기 변수 노드 복호기(1911)로 출력한다.
상기 변수 노드 복호기(1911)는 상기 블록 제어기(1910)에서 출력한 신호를 입력하고, 상기 블록 제어기(1910)에서 출력한 신호의 확률값들을 계산하고, 상기 계산된 확률값들을 업데이트한 후 상기 스위치(1913) 및 상기 스위치(1914)로 출력 한다. 여기서, 상기 변수 노드 복호기(1911)는 상기 가변 부호화율 블록 LDPC 부호의 복호 장치에 미리 설정되어 있는 패리티 검사 행렬에 상응하게 변수 노드들을 연결하며, 상기 변수 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 변수 노드들 각각에 연결된 1의 개수는 상기 패리티 검사 행렬을 구성하는 열들 각각의 웨이트와 동일하다. 따라서, 상기 패리티 검사 행렬을 구성하는 열들 각각의 웨이트에 따라 상기 변수 노드 복호기(1911)의 내부 연산이 상이하게 된다. 상기 스위치(1914)는 상기 스위치(1913)가 스위칭 온될 경우만을 제외하고, 즉 상기 스위치(1913)가 스위칭 오프될 경우만을 제외하고 스위칭 온되어 상기 블록 제어기(1910)에서 출력하는 신호를 상기 가산기(1915)로 전달한다.
상기 가산기(1915)는 상기 변수 노드 복호기(1911)에서 출력한 신호와 이전 반복 복호(iteration decoding) 과정에서의 상기 인터리버(1919)의 출력 신호를 입력하고, 상기 변수 노드 복호기(1911)에서 출력한 신호에서 이전 반복 복호 과정에서의 상기 인터리버(1919)의 출력 신호를 감산한 후 상기 디인터리버(1917)로 출력한다. 여기서, 상기 복호 과정이 최초의 복호 과정일 경우, 상기 인터리버(1919)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기 디인터리버(1917)는 상기 가산기(1915)에서 출력한 신호를 입력하여 미리 설정되어 있는 설정 방식에 상응하게 디인터리빙(de-interleaving)한 후 상기 가산기(1925)와 검사 노드 복호기(1927)로 출력한다. 여기서, 상기 디인터리버(1917)의 내부 구조는 상기 패리티 검사 행렬에 상응하는 구조를 가지며, 그 이유 는 상기 패리티 검사 행렬의 1의 값을 가지는 엘리먼트들의 위치에 따라 상기 디인터리버(1917)에 대응하는 인터리버(1919)의 입력값에 대한 출력값이 상이해지기 때문이다.
상기 가산기(1925)는 이전 반복 복호 과정에서의 상기 검사 노드 복호기(1927)의 출력 신호와 상기 디인터리버(1917)의 출력 신호를 입력하고, 상기 이전 반복 복호 과정에서의 상기 검사 노드 복호기(1927)의 출력 신호에서 상기 디인터리버(1917)의 출력 신호를 감산한 후 상기 인터리버(1919)로 출력한다. 상기 검사 노드 복호기(1927)는 상기 블록 LDPC 부호의 복호 장치에 미리 설정되어 있는 패리티 검사 행렬에 상응하게 검사 노드들을 연결하며, 상기 검사 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 검사 노드들 각각에 연결된 1의 개수는 상기 패리티 검사 행렬을 구성하는 행들 각각의 웨이트와 동일하다. 따라서, 상기 패리티 검사 행렬을 구성하는 행들 각각의 웨이트에 따라 상기 검사 노드 복호기(1927)의 내부 연산이 상이하게 된다.
여기서, 상기 인터리버(1919)는 상기 제어기(1921)의 제어에 따라 미리 설정되어 있는 설정 방식으로 상기 가산기(1925)에서 출력한 신호를 인터리빙한 후 상기 가산기(1915) 및 상기 변수 노드 복호기(1911)로 출력한다. 여기서, 상기 제어기(1921)는 상기 메모리(1923)에 저장되어 있는 인터리빙 방식에 관련된 정보를 읽어 상기 인터리버(1919)의 인터리빙 방식과 상기 디인터리버(1917)의 디인터리빙 방식을 제어하게 되는 것이다. 또한, 상기 복호 과정이 최초의 복호 과정일 경우에는 상기 디인터리버(1917)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기와 같은 과정들을 반복적으로 수행함으로써 오류 없이 신뢰도 높은 복호를 수행하며, 미리 설정한 설정 반복 회수에 해당하는 반복 복호를 수행한 후에는 상기 스위치(1913)는 상기 변수 노드 복호기(1911)와 가산기(1915)간을 스위칭 오프(switching off)한 후, 상기 변수 노드 복호기(1911)와 경판정기(1929)간을 스위칭 온하여 상기 변수 노드 복호기(1911)에서 출력한 신호가 상기 경판정기(1929)로 출력하도록 한다. 상기 경판정기(1929)는 상기 변수 노드 복호기(1911)에서 출력한 신호를 입력하여 경판정한 후, 그 경판정 결과를 출력하게 되고, 상기 경판정기(1929)의 출력값이 최종적으로 복호된 값이 되는 것이다.
다음으로 도 20을 참조하여 본 발명의 제4실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 20은 본 발명의 제4실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 20에는 부호어의 길이가 2000이고, 부호화율이 4/5일 경우의 패리티 검사 행렬이 도시되어 있다. 여기서, 상기 패리티 검사 행렬의 각 블록의 크기는
이며, 상기 도 20에 도시되어 있는 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다. 상기 도 20에 도시되어 있는 바와 같이 상기 패리티 검사 행렬의 정보어에 매핑되는 정보 파트(information part)를 4개의 서브 파트(sub-part)들로 분할하고, 해당 부호화율에 상응하게 화살표로 표시된 부분에 상응하는 부분에 매핑되는 부호어만을 전송함으로써 부호화율 1/3, 1/2, 2/3, 3/4, 4/5를 지원하는 것이 가능하게 된다. 여기서, 상기 부호화율 1/3, 1/2, 2/3, 3/4, 4/5의 각각에 대한 부호어 (N,K)는 다음과 같이 표현된다.
(N,K)=(600,200), (800,400), (1200,800), (1600,1200), (2000,1600)
다음으로 도 21을 참조하여 본 발명의 다른 실시예에 따른 가변 부호화율 블록 LDPC 부호의 부호화 장치에 대해서 설명하기로 한다.
상기 도 21은 본 발명의 다른 실시예에 따른 가변 부호화율 블록 LDPC 부호의 부호화 장치의 내부 구조를 도시한 도면이다.
상기 도 21을 참조하면, 상기 가변 부호화율 블록 LDPC 부호의 부호화 장치는 0 삽입기(2100)와, 블록 LDPC 부호화기(2110)와, 천공기(2120)와, 제어기(2130)를 포함한다. 상기 도 21에 도시되어 있는 가변 부호화율 블록 LDPC 부호의 부호화 장치는 단축 방식을 사용할 경우 모 패리티 검사 행렬을 그대로 사용하는 가변 부호화율 블록 LDPC 부호화 장치에 0 삽입기(2100)만을 추가시킴으로써 기존의 가변 부호화율 블록 LDPC 부호화 장치를 어떤 변형없이 그대로 사용할 수 있는 구조를 가진다. 결과적으로, 상기 도 21에 도시되어 있는 가변 부호화율 블록 LDPC 부호의 부호화 장치는 간단하게 0 삽입기(2100)만을 구비하면 되므로 하드웨어적으로 큰 장점을 가진다.
먼저, 먼저 입력 정보 비트열이 상기 가변 부호화율 블록 LDPC 부호의 부호화 장치로 입력되기 이전에 해당 부호화율 및 상기 입력 정보 비트의 크기 정보가 상기 제어기(2130)로 전달된다. 그러면, 상기 제어기(2130)는 상기 부호화율에 대한 정보를 상기 0 삽입기(2100)와 천공기(2120)로 출력하고, 이와 동시에 상기 입력 정보 비트의 크기 정보에 따른 부호어 길이 정보를 상기 블록 LDPC 부호화기 (2110)로 출력한다. 이후, 상기 입력 정보 비트열은 이후, 상기 입력 정보비트열은 상기 0 삽입기(2100)로 입력된다.
상기 0 삽입기(2100)는 상기 제어기(2130)에서 출력한 부호화율 정보에 상응하게 상기 입력 정보 비트열에 0을 삽입한 후 상기 블록 LDPC 부호화기(2110)로 출력한다. 여기서, 상기 0 삽입기(2100)에서 출력하는 정보어의 크기는 상기 도 20의 패리티 검사 행렬에 따른 정보어의 크기(1600비트)와 동일하게 된다.
일 예로, 상기 블록 LDPC 부호화기(2120)가 (2000,1600) 부호, 즉, 1600 비트의 입력 정보 비트열을 입력받아 2000개의 부호화 심볼들을 출력하는 블록 LDPC 부호화기라고 가정하기로 한다. 여기서, 상기 블록 LDPC 부호화기(2120)가 부호화율이 3/4인 (1600,1200) 블록 LDPC 부호화기로 동작할 경우 상기 0 삽입기(2100)는 1200 비트의 입력 정보 비트열을 입력받아 400비트의 0을 삽입하여 총 1600비트를 출력하게 되고, 부호화율이 2/3인 (1200,800) 블록 LDPC 부호화기로 동작할 경우 상기 0 삽입기(2100)는 800비트의 입력 정보 비트열을 입력받아 800비트의 0을 삽입하여 총 1600비트를 출력하게 되며, 부호화율이 1/2인 (800,400) 블록 LDPC 부호화기로 동작할 경우 상기 0 삽입기(2100)는 400비트의 입력 정보 비트열을 입력받아 1200비트의 0을 삽입하여 총 1600비트를 출력하게 되고, 부호화율이 3/4인 (600,200) 블록 LDPC 부호화기로 동작할 경우 상기 0 삽입기(2100)는 200비트의 입력 정보 비트열을 입력받아 1400비트의 0을 삽입하여 총 1600비트를 출력하게 된다.
그리고, 상기 0 삽입기(2100)에서 출력한 1600비트의 비트열은 상기 블록 LDPC 부호화기(2110)로 입력되어 (2000,1600) 블록 LDPC 부호화가 수행된다. 상기 블록 LDPC 부호화기(2100)는 상기 0 삽입기(2100)에서 출력한 1600비트의 비트열을 상기 도 20에서 설명한 바와 같은 패리티 검사 행렬에 상응하게 부호화하여 2000개의 부호화 심볼들을 출력한다. 상기 블록 LDPC 부호화기(2100)에서 출력한 2000개의 부호화 심볼들은 상기 천공기(2120)로 입력되고, 상기 천공기 (2120)는 상기 입력되는 2000개의 심볼들중에서 상기 제어기(2130)로부터 제공된 부호화율 정보에 상응하는 개수만큼의 부호화 심볼들을 천공하여 출력한다.
일 예로, 상기 전체 부호화 장치가 부호화율이 3/4인 (1600,1200) 부호화 장치로 동작할 경우, 상기 천공기(2120)는 2000개의 부호화 심볼들을 입력받아 400개의 부호화 심볼들을 천공하여 총 1600개의 부호화 심볼들을 출력하게 되고, 상기 전체 부호화 장치가 부호화율이 2/3인 (1200,800) 부호화 장치로 동작할 경우 상기 천공기(2120)는 2000개의 부호화 심볼들을 입력받아 800개의 부호화 심볼들을 천공하여 총 1200개의 부호화 심볼들을 출력하게 되며, 상기 전체 부호화 장치가 부호화율이 1/2인 (800,400) 부호화 장치로 동작할 경우 상기 천공기(2120)는 2000개의 부호화 심볼들을 입력받아 1200개의 부호화 심볼들을 천공하여 총 800개의 부호화 심볼들을 출력하게 되고, 상기 전체 부호화 장치가 부호화율이 1/3인 (600,200) 부호화 장치로 동작할 경우 상기 천공기(2120)는 2000개의 부호화 심볼들을 입력받아 1400개의 부호화 심볼들을 천공하여 총 600개의 부호화 심볼들을 출력하게 된다.
다음으로 도 22를 참조하여 본 발명의 제5실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 22는 본 발명의 제5실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 22에는 부호어의 길이가 2000인 부호화율 4/5의 블록 LDPC 부호의 패리티 검사 행렬이 도시되어 있다. 여기서, 상기 패리티 검사 행렬의 각 부분 블록의 크기는
이며, 상기 도 22에 도시되어 있는 부분 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다.
상기 도 22에 도시되어 있는 바와 같이, 상기 패리티 검사 행렬의 정보어에 매핑되는 정보 파트를 4개의 서브 파트들로 분할하고, 해당 부호화율에 상응하게 화살표로 표시된 부분에 상응하는 부분에 매핑되는 부호어만을 전송함으로써 부호화율 1/3, 1/2, 2/3, 3/4, 4/5를 지원하는 것이 가능하게 된다. 상기 도 22에 도시되어 있는 패리티 검사 행렬과 상기 도 20에서 설명한 패리티 검사 행렬과의 상이점은순열 행렬의 분포가 상이하다는 것인데, 특히, 상기 도 22에 도시되어 있는 패리티 검사 행렬은 행 웨이트의 평균(Mean of Row Weight)이 '19.7'이고, 최소 사이클의 크기(girth)가 '6'인 구조를 갖는다. 여기서, 상기 부호화율 1/3, 1/2, 2/3, 3/4, 4/5의 각각에 대한 부호어 (N,K)는 다음과 같이 표현된다.
(N,K)=(600,200), (800,400), (1200,800), (1600,1200), (2000,1600)
다음으로 도 23을 참조하여 본 발명의 제6실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 23은 본 발명의 제6실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 23에 도시되어 있는 패리티 검사 행렬은 부호화율 2/3를 지원하는 패리티 검사 행렬이며, 상기 패리티 검사 행렬에서 첫 번째 선으로 분할된 부분을 단축 방식을 사용하여 단축시키면 부호화율 1/2인 블록 LDPC 부호를 생성할 수 있다.
다음으로 도 24를 참조하여 본 발명의 제7실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 24는 본 발명의 제7실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 24에 도시되어 있는 패리티 검사 행렬은 부호화율 3/4을 지원하는 패리티 검사 행렬이며, 상기 패리티 검사 행렬에서 첫 번째 선으로 분할된 부분을 단축 방식을 사용하여 단축시키면 부호화율 2/3인 블록 LDPC 부호를 생성할 수 있으며, 두 번째 선으로 분할된 부분을 단축 방식을 사용하여 단축시키면 부호화율 1/2인 블록 LDPC 부호를 생성할 수 있다.
다음으로 도 25를 참조하여 본 발명의 제8실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 25는 본 발명의 제8실시예에 따른 가변 부호화율 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 25에 도시되어 있는 패리티 검사 행렬은 부호화율 3/4를 지원하는 패리티 검사 행렬이며, 상기 패리티 검사 행렬에서 첫 번째 선으로 분할된 부분을 단축 방식을 사용하여 단축시키면 부호화율 2/3인 블록 LDPC 부호를 생성할 수 있 으며, 두 번째 선으로 분할된 부분을 단축 방식을 사용하여 단축시키면 부호화율 1/2인 블록 LDPC 부호를 생성할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.