따라서, 본 발명의 목적은 병렬 연접 LDPC 부호를 사용하는 채널 부호화/복호 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 코드 레이트 가변이 가능한, 병렬 연접 LDPC 부호를 사용하는 채널 부호화/복호 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 병렬 연접 LDPC 부호 성능을 향상시키기 위한 채널 부호화 장치의 인터리빙 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 채널 부호화 장치는; 채널 부호화 장치에 있어서, 정보어 비트들에 상응하게 제1컴퍼넌트 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 생성하는 제1LDPC 부호화기와, 상기 정보어 비트들을 인터리빙 규칙에 상응하게 인터리빙하는 인터리버와, 상기 인터리빙된 정보어 비트들에 상응하게 제2 컴퍼넌트 LDPC 부호를 생성하는 제2LDPC 부호화기와, 코드 레이트에 상응하게 상기 정보어 비트들과, 상기 제1컴퍼넌트 LDPC 부호와, 상기 제2컴퍼넌트 LDPC 부호를 조합하여 출력하도록 제어하는 제어기를 포함하며, 상기 인터리빙 규칙은, 상기 제1 컴퍼넌트 LDPC 부호의 팩터(factor) 그래프 상에서 낮은 차수의 변수 노드들을 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키고, 상기 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 낮은 차수의 변수 노드들을 제1 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키는 규칙임을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 채널 부화화 방법은; 채널 부호화 장치의 채널 부호화 방법에 있어서, 정보어 비트들에 상응하게 제1 컴퍼넌트 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 생성하는 과정과, 상기 정보어 비트들을 인터리빙 규칙에 상응하게 인터리빙하는 과정과, 상기 인터리빙된 정보어 비트들에 상응하게 제2 컴퍼넌트 LDPC 부호를 생성하는 과정과, 코드 레이트에 상응하게 상기 정보어 비트들과, 상기 제1컴퍼넌트 LDPC 부호와 제2컴퍼넌트 LPDC 부호를 조합하여 출력하는 과정을 포함하며, 상기 인터리빙 규칙은, 상기 제1 컴퍼넌트 LDPC 부호의 팩터(factor) 그래프 상에서 낮은 차수의 변수 노드들을 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키고, 상기 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 낮은 차수의 변수 노드들을 제1 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키는 규칙임을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 채널 복호 장치는, 채널 복호 장치에 있어서, 코드 레이트에 상응하게 제1저밀도 패리티 검사(LDPC: Low Density Parity Check) 복호기와 제2LDPC 복호기 모두를 사용할지 혹은 상기 제1LDPC 복호기와 제2LDPC 복호기중 어느 1개만을 사용할지 결정하는 코드 레이트 제어기와, 상기 코드 레이트 제어기가 상기 제1LDPC 복호기와 상기 제2LDPC 복호기 모두를 사용하기로 결정할 경우, 제1수신 신호가 입력되면, 이전 복호 과정에서 상기 제2LDPC 복호기에서 출력한 업데이트 정보와, 상기 제1수신 신호의 정보어 비트들과 제1패리티 비트들을 입력하여 상기 제1수신 신호를 위한 제1 컴퍼넌트 LDPC 부호로 복호하고, 상기 제1수신 신호를 위한 제1컴퍼넌트 LDPC 부호를 제1감산기로 출력하고; 상기 코드 레이트 제어기가 상기 제1LDPC 복호기를 사용하기로 결정할 경우, 제2수신 신호가 입력되면, 상기 제2수신 신호의 정보어 비트들과 제1패리티 비트들을 입력하여 상기 제2수신 신호를 위한 제1 컴퍼넌트 LDPC 부호로 복호하고, 상기 제2수신 신호를 위한 제1컴퍼넌트 LDPC 부호를 상기 코드 레이트 제어기로 출력하는 제1LDPC 복호기와, 상기 제1LDPC 복호기에서 출력한 신호에서 상기 업데이트 정보를 감산하는 제1감산기와, 상기 제1감산기에서 출력한 신호를 입력하여 인터리빙 규칙에 상응하게 인터리빙하는 인터리버와, 상기 인터리버에서 출력한 신호와 상기 제1수신 신호의 제2패리티 비트들을 입력하여 제2 컴퍼넌트 LDPC 부호로 복호하는 제2LDPC 복호기와, 상기 제2LDPC 복호기에서 출력한 신호에서 상기 인터리버에서 출력한 신호를 감산하는 제2감산기와, 상기 제2감산기에서 출력한 신호를 입력하여 상기 인터리빙 규칙에 대응하는 디인터리빙 규칙에 상응하게 디인터리빙하여 상기 제1LDPC 복호기 및 상기 제1감산기로 출력하는 디인터리버와, 상기 인터리빙 방식 및 디인터리빙 방식을 제어하는 제어기를 포함하며, 상기 코드 레이트 제어기는 상기 제1LDPC 복호기를 사용하기로 결정할 경우, 상기 제1LDPC 복호기에서 출력하는 신호를 최종 복호된 비트들로 출력하고, 상기 제1LDPC 복호기와 제2LDPC 복호기 모두를 사용하기로 결정할 경우, 상기 제2LDPC 복호기가 상기 제2컴퍼넌트 LDPC 부호를 최종 복호된 비트들로 출력하도록 제어하며, 상기 인터리빙 규칙은, 상기 제1 컴퍼넌트 LDPC 부호의 팩터(factor) 그래프 상에서 낮은 차수의 변수 노드들을 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키고, 상기 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 낮은 차수의 변수 노드들을 제1 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키는 규칙임을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 채널 복호 방법은; 채널 복호 장치의 채널 복호 방법에 있어서, 채널 부호화 장치에서 사용된 코드 레이트가 R2일 경우, 제1수신 신호가 입력되면, 이전 복호 과정에서 생성된 업데이트 정보와, 상기 제1수신 신호의 정보어 비트들과 제1패리티 비트들을 입력하여 상기 제1수신 신호를 위한 제1 컴퍼넌트 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호로 복호하거나, 상기 채널 부호화 장치에서 사용된 코드 레이트가 R1일 경우, 제2수신 신호가 입력되면, 상기 제2수신 신호의 정보어 비트들과 제1패리티 비트들을 입력하여 상기 제2수신 신호를 위한 제2컴퍼넌트 LDPC 부호로 복호하는 과정과, 상기 제1수신 신호를 위한 제1 컴퍼넌트 LDPC 부호에서 상기 업데이트 정보를 감산하는 과정과, 상기 제1수신 신호를 위한 제1 컴퍼넌트 LDPC 부호에서 상기 업데이트 정보를 감산한 신호를 입력하여 인터리빙 규칙에 상응하게 인터리빙하는 과정과, 상기 인터리빙된 신호와 상기 제1수신 신호의 제2패리티 비트들을 입력하여 제2 컴퍼넌트 LDPC 부호로 복호하는 과정과, 상기 제2 컴퍼넌트 LDPC 부호에서 상기 인터리빙된 신호를 감산하는 과정과, 상기 제2 컴퍼넌트 LDPC 부호에서 상기 인터리빙된 신호를 감산한 신호를 입력하여 상기 인터리빙 규칙에 대응하는 디인터리빙 규칙에 상응하게 디인터리빙하는 과정과, 코드 레이트에 상응하게 상기 제2수신 신호를 위한 제1 컴퍼넌트 LDPC 부호와 제2 컴퍼넌트 LDPC 부호 중 어느 하나를 최종 복호된 비트들로 출력하는 과정을 포함하며, 상기 인터리빙 규칙은, 상기 제1 컴퍼넌트 LDPC 부호의 팩터(factor) 그래프 상에서 낮은 차수의 변수 노드들을 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키고, 상기 제2 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 낮은 차수의 변수 노드들을 제1 컴퍼넌트 LDPC 부호의 팩터 그래프 상에서 높은 차수의 변수 노드들로 대응시키는 규칙임을 특징으로 한다.
이하, 본 발명에 따른 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 다양한 코드 레이트(code rate)를 지원할 수 있는 병렬 연접(parallel concatenation) 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호를 사용하여 채널 신호를 부호화/복호하는 장치 및 방법을 제안한다. 상기 종래 기술 부분에서 설명한 바와 같이 고속 대용량 데이터를 신뢰성있게 송수신하기 위해서 제안된 다양한 방식들, 즉 복합 자동 재전송 요구(HARQ: Hybrid Automatic Retransmission Request, 이하 'HARQ'라 칭하기로 한다) 방식과, 적응적 변조 및 코딩(AMC: Adaptive Modulation and Coding, 이하 'AMC'라 칭하기로 한다) 방식 등과 같은 방식들을 사용하는 경우에는 다양한 코드 레이트를 지원할 수 있어야만 하며, 따라서 본 발명에서는 가변 코드 레이트를 지원하는, 병렬 연접 LDPC 부호를 사용하는 채널 부호화/복호하는 장치 및 방법을 제안한다. 또한, 상기 병렬 연접 LDPC 부호의 성능을 최대화시키기 위해서 본 발명에서는 상기 병렬 연접 LDPC 부호를 구성하는 컴퍼넌트(component) LDPC 부호들간의 인터리빙(interleaving) 규칙을 제안한다.
도 3은 본 발명의 실시예에서의 기능을 수행하기 위한 병렬 연접 LDPC 부호를 사용하는 채널 부호화 장치 내부 구조를 도시한 도면이다.
상기 도 3을 참조하면, 상기 채널 부호화 장치는 제어기(311)와, 인터리버(interleaver)(313)와, LDPC 부호화기(encoder)들(315,317)을 포함한다. 즉, 본 발명에서 제안하는 채널 부호화 장치는 터보 부호의 병렬 연접 구조에서와 마찬가지로 LDPC 부호를 병렬 연접하는 구조로 사용함으로써 코드 레이트를 가변시킨다. 일반적으로, 터보 부호의 성능을 결정하는 가장 큰 두 요인은 어떤 컨볼루셔널 부호(convolutional code)를 컴퍼넌트 부호(component code)로 설정할 것인지와, 컴퍼넌트 부호들간에 연결되는 인터리버를 어떻게 설계할 것인지이다. 여기서, 상기 인터리버는 순열 함수(permutation function)의 기능, 즉 하나의 컴퍼넌트 부호의 특정 정보어 비트(information bit)를 또 다른 컴퍼넌트 부호의 어떤 정보어 비트에 대응시킬지를 결정하는 기능을 수행한다. 상기 터보 부호를 사용하는 채널 부호화 장치에서 인터리버를 잘못 설계할 경우 매우 작은 자유 거리(free distance)를 갖는 부호가 발생할 수도 있어 부호 성능에 악영향을 미치게 된다. 일반적으로 성능이 좋은 컴퍼넌트 부호를 검색하는 것은 수학적으로 쉽게 해결할 수 있지만, 상기 인터리버 설계의 경우 수학적인 접근이 쉽지 않으며, 이와 동시에 상기 인터리버를 잘못 설계하는 경우 단순한 랜덤(random) 인터리버를 사용할 경우보다도 좋지 않은 성능을 가지는 터보 부호가 생성될 수도 있다.
상기 터보 부호에서와 마찬가지로 상기 병렬 연접 LDPC 부호를 구성함에 있어서도 상기 인터리버(313)를 설계하는 것이 상기 LDPC 부호의 성능을 결정하는 중요한 요인으로 작용한다. 물론, 상기 터보 부호와 마찬가지로 컴퍼넌트 부호로 사용되는 LDPC 부호를 어떻게 생성할 것인지도 부호 성능을 결정하는 중요한 요인으로 작용한다. 먼저, 정보어 비트들 uk가 입력되면 LDPC 부호화기(315)와, 인터리버(313) 및 출력단으로 전달된다. 상기 LDPC 부호화기(315)는 상기 입력된 정보어 비트들 uk에 상응하게 제1패리티 비트들 p1을 생성한 후 출력한다. 상기 LDPC 부호화기(315)가 정보어 비트들 uk에 상응하게 제1패리티 비트들 p1을 생성하는 과정은 본 발명과 직접적인 연관이 없으므로 여기서는 그 상세한 설명을 생략하기로 한다. 또한, 상기 인터리버(313)는 상기 정보어 비트들 uk를 입력하여 미리 설정되어 있는 순열 함수에 상응하게 인터리빙(interleaving)한 후 상기 LDPC 부호화기(317)로 출력한다. 상기 LDPC 부호화기(317)는 상기 인터리버(313)에서 출력한 신호를 입력하여 제2패리티 비트들 p2을 생성한 후 출력한다. 여기서, 상기 LDPC 부호화기(317)가 상기 인터리버(317)에서 출력한 신호를 입력하여 제2패리티 비트들 p2를 생성하는 과정은 본 발명과 직접적인 연관이 없으므로 여기서는 그 상세한 설명을 생략하기로 한다. 또한, 상기 인터리버(313)의 동작에 대해서는 하기에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다. 한편, 상기 제어기(311)는 채널 상태에 따라 출력을 제어한다. 일 예로, 상기 제어기(311)는 채널 상태가 비교적 양호할 경우에는 정보어 비트들 uk와 제1패리티 비트들 p1만을 송신하도록 제어하며, 채널 상태가 비교적 열악할 경우에는 정보어 비트들 uk와 제1패리티 비트들 p1뿐만 아니라 제2패리티 비트들 p2까지 송신하도록 제어한다. 이렇게, 상기 제어기(311)는 송신하는 비트들수를 제어함으로써 결과적으로 코드 레이트를 제어할 수 있는 것이며, 여기서는 일 예로 채널 상태에 따른 코드 레이트 제어만을 설명하였으나, 상기에서 설명한 바와 같이 HARQ 방식을 적용함에 따른 코드 레이트 제어도 가능함은 물론이다.
한편, 상기 도 3에서 설명한 바와 같은 병렬 연접 LDPC 부호는 패리티 검사 행렬(parity check matrix)을 가지는 1개의 LDPC 부호로 간주할 수 있다. 그러면 여기서 도 4를 참조하여 상기 도 3에서 설명한 바와 같은 병렬 연접 LDPC 부호를 1개의 LDPC 부호로 간주할 경우의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 4는 도 3의 병렬 연접 LDPC 부호를 1개의 LDPC 부호라고 간주할 경우의 패리티 검사 행렬을 도시한 도면이다.
상기 도 4를 설명하기에 앞서, 상기 도 3에서 설명한 바와 같은 병렬 연접 LDPC 부호는 LDPC 부호화기(315)에서 출력하는 LDPC 부호와, LDPC 부호화기(317)에서 출력하는 LDPC 부호를 서로 다른 컴퍼넌트 부호로 간주하여 수신측에서 직렬 복호하기 때문에 1개의 LDPC 부호를 복호할 경우와 비교할 때 복호 성능에 있어 상이하게 됨은 물론이다. 상기 병렬 연접 LDPC 부호를 복호하는 경우와 LDPC 부호를 복호할 경우의 복호 동작의 상이점은 하기에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 도 4를 참조하면, 먼저 상기 도 3의 첫 번째 컴퍼넌트 부호인 상기 LDPC 부호화기(315)에서 출력하는 LDPC 부호는 상기도 4에 도시되어 있는 패리티 검사 행렬 H의 H1(411)과 P1(413)으로 표현 가능하며, 이때 상기 두 번째 컴퍼넌트 부호인 상기 LDPC 부호화기 (317)에서 출력하는 LDPC 부호의 패리티를 0(415)으로 패딩(padding)한다. 여기서, 상기 LDPC 부호화기(315)에서 출력하는 LDPC 부호를 ‘제1컴퍼넌트 LDPC 부호’라고 칭하기로 하며, 상기 LDPC 부호화기(317)에서 출력하는 LDPC 부호를 ‘제2컴퍼넌트 LDPC 부호’라고 칭하기로 한다. 또한, 상기 H1(411)은 상기 제1컴퍼넌트 LDPC 부호의 정보어 파트(information part)에 대응되는 부분 행렬이며, 상기 P1(413)과 0(415)은 상기 제1컴퍼넌트 LDPC 부호의 패리티 파트(parity part)에 대응되는 부분 행렬로서, 특히 본 발명에서는 상기 P1(413)만 상기 제1컴퍼넌트 LDPC 부호의 패리티 파트에 대응된다. 이와 마찬가지로, 두 번째 컴퍼넌트 부호인 상기 LDPC 부호화기 (317)에서 출력하는 LDPC 부호는 상기 패리티 검사 행렬 H의 H2(421)과 P2(425)로 표현 가능하며, 이때 상기 첫 번째 컴퍼넌트 부호인 상기 LDPC 부호화기 (315)에서 출력하는 LDPC 부호의 패리티를 0(423)으로 패딩한다. 여기서, 상기 H2(421)은 상기 제2컴퍼넌트 LDPC 부호의 정보어 파트에 대응되는 부분 행렬이며, 상기 0(423)과 P2(425)은 상기 제2컴퍼넌트 LDPC 부호의 패리티 파트에 대응되는 부분 행렬로서, 특히 본 발명에서는 상기 P2(425)만 상기 제2컴퍼넌트 LDPC 부호의 패리티 파트에 대응된다.
한편, 상기에서 설명한 바와 같이 상기 인터리버(313)는 미리 설정되어 있는 순열 함수에 상응하게 인터리빙 동작을 수행하므로
의 관계가 성립된다. 또한 상기 제1 컴퍼넌트 LDPC 부호와 제2 컴퍼넌트 LDPC 부호를 반드시 동일하게 사용할 필요는 없지만 수신측 채널 복호기의 복잡도를 고려할 때 동일하게 사용하는 것이 바람직하다. 따라서, 상기 도 4에서는
과
가 동일하다고 가정하기로 한다.
다음으로 도 5를 참조하여 동일한 LDPC 부호를 컴퍼넌트 부호로 사용하는 병렬 연접 LDPC 부호의 factor 그래프를 설명하기로 한다.
상기 도 5는 동일한 LDPC 부호를 컴퍼넌트 부호들로 사용하는 병렬 연접 LDPC 부호의 factor 그래프를 도시한 도면이다.
상기 도 5를 참조하면, 참조 부호 510은 제1 컴퍼넌트 LDPC 부호의 검사 노드(check node)들을 나타내며, 참조부호 520은 제1 컴퍼넌트 LDPC 부호의 factor 그래프 구조를 나타내는 순열 함수 π2를 나타내며, 참조부호 530은 제1 컴퍼넌트 LDPC 부호의 정보어 비트 uk 를 나타내며, 참조부호 540은 제1 컴퍼넌트 LDPC 부호의 제1패리티 비트 p1을 나타낸다. 여기서, 상기 제1 컴퍼넌트 LDPC 부호의 factor 그래프 구조를 나타내는 순열 함수 π2(520)는 검사 노드와 변수 노드(variable node)가 어떻게 연결되는지를 나타내며, 상기 순열 함수 π2(520)가 결정되면 상기 첫 번째 컴퍼넌트 LDPC 부호의 패리티 검사 행렬을 생성할 수 있다. 여기서, 상기 순열 함수 π2(520)를 어떻게 선택하느냐에 따라 첫 번째 컴퍼넌트 LDPC 부호의 factor 그래프의 사이클 구조가 변하게 되므로 상기 순열 함수 π2(520)를 설계하는 것은 상기 LDPC 부호의 성능을 결정하는 매우 중요한 요인으로 작용하게 된다. 여기서, 성능이 우수한 LDPC 부호를 생성하기 위한 상기 순열 함수 π2(520) 설계는 본 발명과 직접적인 연관이 없으므로 여기서는 그 상세한 설명을 생략하기로 한다.
또한, 참조 부호 550은 상기 도 3의 인터리버(313)의 순열 함수 π1를 나타내며, 참조 부호 560은 제2 컴퍼넌트 LDPC 부호의 제2패리티 비트들 p2을 나타내며, 참조 부호 570은 제2 컴퍼넌트 LDPC 부호의 factor 그래프 구조를 나타내는 순열 함수 π2를 나타내며, 참조부호 580은 제2 컴퍼넌트 LDPC 부호의 검사 노드들을 나타낸다. 상기 도 3에서 LDPC 부호화기(315)와 LDPC 부호화기(315)는 동일한 부호화기라고 가정하였기 때문에 상기 제2 컴퍼넌트 LDPC 부호의 factor 그래프 구조를 나타내는 순열 함수 역시 상기 제1 컴퍼넌트 LDPC 부호의 factor 그래프 구조를 나타내는 순열 함수 π2와 동일하게 되는 것이다.
상기 도 5에서 설명한 바와 같이 병렬 연접 LDPC 부호의 factor 그래프는 단지 2개의 컴퍼넌트 LDPC 부호들이 정보어 비트들 사이에 인터리버를 통해 연결되는 형태가 된다. 따라서 반복 복호시에 제1 컴퍼넌트 LDPC 부호에 해당하는 부분을 먼저 복호하고, 상기 제1 컴퍼넌트 LDPC 부호의 정보어 비트들 부분에 해당하는 변수 노드의 값을 인터리버를 통해서 전달해주면 제2 컴퍼넌트 LDPC 부호에 해당하는 부분을 복호하는 직렬 복호 방식으로 복호를 진행할 수 있게 된다.
한편, 상기에서 설명한 바와 같이 HARQ 방식 및 AMC 방식을 사용하는 통신 시스템에서 상기 병렬연접 LDPC 부호를 사용하는 방식에 대해서 구체적으로 설명하면 다음과 같다.
먼저, 무선 통신 시스템에서 기지국(BS: Base Station)이나 가입자 단말기(SS: Subscriber Station)의 전력(power)은 한정된 자원이기 때문에, 통신상의 에러 발생을 방지하기 위해서 최대 송신 전력으로 신호를 송신하는 것은 불가능하다. 이렇게 한정된 전력을 사용하여 효율적인 통신을 수행하기 위해 도입된 방식이 상기 HARQ 방식 및 AMC 방식이다. 상기에서 설명한 바와 같이 상기 HARQ 방식을 사용하는 통신 시스템에서는 에러가 발생한 데이터에 대해 다양한 코드 레이트를 가지는 채널 부호화기를 사용하여 상기 에러가 발생한 데이터를 채널 환경에 상응하게 재전송한다.
상기에서 설명한 바와 같이 병렬 연접 LDPC 부호를 사용할 경우, 어떤 컴퍼넌트 LDPC 부호를 선택할 것인지와, 몇 개의 컴퍼넌트 LDPC 부호들을 연접시킬 것인지에 따라서 코드 레이트를 다양하게 가변시킬 수 있다. 상기 코드 레이트를 가변시킬 수 있는 병렬 연접 LDPC 부호는 상기 HARQ 방식을 사용하는 통신 시스템에 매우 적합한 부호가 된다. 또한, 상기에서 설명한 바와 같이 상기 병렬 연접 LDPC 부호는 컴퍼넌트 LDPC 부호를 어떻게 선택할 것인지와, 몇 개의 컴퍼넌트 LDPC 부호들을 연접시킬 것인지 뿐만 아니라 컴퍼넌트 LDPC 부호들을 생성하는 LDPC 부호화기들간에 연결되는 인터리버를 어떻게 설계하는지에 따라 그 성능이 크게 좌우된다. 따라서 본 발명에서는 상기 인터리버를 설계하는 규칙을 제안한다.
상기에서 설명한 바와 같이 LDPC 부호의 factor 그래프에서 크기가 작은 사이클은 상기 LDPC 부호 성능 열화의 주요한 요인으로 작용하게 된다. 그 이유는 크기가 작은 사이클에 속해있는 임의의 한 노드에서 출발한 자신의 정보가 적은 반복 회수 후에 다시 자신에게 돌아오게 되고, 상기 반복 회수가 증가할수록 그 정보가 계속해서 자신에게 돌아오게 되므로 정보 업데이트(update)가 잘 이루어지지 않기 때문이다. 따라서 가능한 한 상기 LDPC 부호의 factor 그래프상의 사이클의 크기를 크게 해주고, 크기가 작은 사이클의 개수를 최소화시킴으로써 LDPC 부호의 성능을 향상시킬 수 있다. 여기서, 크기가 미리 설정한 임계 크기 이하일 경우 '크기가 작다'라고 표현함에 유의하여야만 한다.
또한, 변수 노드의 차수는 클수록, 검사 노드의 차수는 작을수록 LDPC 부호의 성능을 향상시킬 수 있다. 일반적으로 차수가 큰 변수 노드가 신뢰도(reliability)가 큰데, 이는 차수가 큰 변수 노드에 해당하는 부호어의 비트가 에러가 발생될 확률이 적다는 것을 나타낸다. 이와는 반대로 차수가 작은 변수 노드는 차수가 큰 변수 노드와 비교했을 때 차수가 작은 변수 노드에 해당하는 부호어의 비트가 상대적으로 에러가 발생할 확률이 높다.
따라서, 본 발명에서는 상기 LDPC 부호의 사이클과 노드의 차수에 관한 특성을 고려하여 병렬 연접 LDPC 부호의 인터리버 설계 규칙을 제안한다.
< 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >
제1규칙: 신뢰도가 떨어지는 낮은 차수를 가진 변수 노드를 높은 차수를 가진 변수 노드로 대응(mapping)시킨다.
제2규칙: 평균 사이클의 크기가 작은 변수 노드를 평균 사이클의 크기가 큰 변수 노드로 대응시킨다. 여기서, 상기 평균 사이클이란 변수 노드가 속해있는 모든 사이클의 크기를 더하여 그 차수로 나눈 값을 나타낸다. 여기서, 평균 사이클의 크기가 미리 설정한 임계값 이하일 경우 평균 사이클의 크기가 작다고 표현하고, 상기 평균 사이클의 크기가 상기 임계값을 초과할 경우 평균 사이클의 크기가 크다고 표현한 것임에 유의하여야만 한다.
제3규칙: 하나의 작은 사이클을 구성하게 되는 변수 노드들은 인터리빙한 후 각각 다른 사이클에 포함되도록, 즉 같은 사이클에 포함되지 않도록 한다.
삭제
첫 번째로, 상기 제1규칙을 상세하게 설명하면 다음과 같다.
먼저, 제1컴퍼넌트 LDPC 부호에서 낮은 차수의 변수 노드들을 제2컴퍼넌트 LDPC 부호의 높은 차수를 가지는 변수 노드들로 대응시키는 것이다. 이렇게 함으로써 제1 컴퍼넌트 LDPC 부호에서 에러가 발생할 확률이 높은 변수 노드들의 신뢰도를 높여줄 수 있다. 또한, 제2컴퍼넌트 LDPC 부호에서 낮은 차수를 가지는 변수 노드들은 제1컴퍼넌트 LDPC 부호의 높은 차수를 가진 변수 노드들로 대응시키게 된다.
두 번째로, 상기 제2규칙을 상세하게 설명하면 다음과 같다.
먼저, 실제 통신 시스템에서는 상기 제2규칙을 적용하기 위해서 모든 컴퍼넌트 LDPC 부호의 모든 사이클을 계산할 필요는 없다. 따라서, 상기 제2규칙을 적용하기 위해서는 크기가 작은 사이클(일 예로, 크기가 10이하인 사이클)만 구하면 되 며, 상기 작은 크기를 갖는 사이클이 많은 변수 노드들을 작은 크기의 사이클이 없는 변수 노드들로 대응시키면 되는 것이다.
세 번째로, 상기 제3규칙을 상세하게 설명하면 다음과 같다.
먼저, 상기에서 설명한 바와 같이 그 크기가 작은 사이클에 연결되어 있는 변수 노드들은 신뢰도가 낮다. 따라서, 상기 제3규칙에서는 상기 변수 노드들의 신뢰도를 향상시키기 위해서 상기 변수 모드들이 서로 다른 사이클에 포함되게 하며, 이는 각 변수 노드들의 의존도(dependency)를 줄여주게 된다. 이 때 가능한한 평균 사이클의 크기가 큰 노드들과 대응시키도록 한다.
한편, 상기 제1규칙 내지 제3규칙과 함께 고려해야할 점은 패리티 검사 행렬의 차수 분포이다. 상기 병렬 연접 LDPC 부호의 패리티 검사 행렬은 상기 도 4에서 설명한 바와 같이 하나의 큰 LDPC 부호의 패리티 검사 행렬 형태를 갖는 것을 알 수 있다. 따라서, 상기 인터리버를 사용하여 2개의 컴퍼넌트 LDPC 부호들을 대응시킬 때 전체 패리티 검사 행렬의 최적의 차수 분포를 맞추어 주는 것이 좋다. 상기 전체 패리티 검사 행렬의 최적의 차수 분포를 맞추어 주는 문제는 Richardson 등이 제안한 멀티 에쥐(multi-edge) 유형의 LDPC 부호의 밀도 진화(density evolution) 방식을 이용하면 된다. 여기서, 상기 밀도 진화 방식은 본 발명과 직접적인 연관이 없으므로 그 구체적인 설명은 생략하기로 한다.
상기 도 5에서는 동일한 LDPC 부호를 컴퍼넌트 부호들로 사용하는 병렬 연접 LDPC 부호의 factor 그래프에 대해서 설명하였으며, 다음으로 도 6을 참조하여 본 발명의 실시예에 따른 패리티 검사 행렬을 사용하여 병렬 연접 LDPC 부호를 복호하는 장치에 대해서 설명하기로 한다.
상기 도 6은 본 발명의 실시예에서의 기능을 수행하는 병렬 연접 LDPC 부호의 복호 장치 내부 구조를 도시한 도면이다.
상기 도 6을 참조하면, 상기 병렬 연접 LDPC 부호의 복호 장치는 제1컴퍼넌트 LDPC 복호기(600)와, 배타적 가산기(621)와, 코드 레이트 제어기(623)와, 인터리버(625)와,제어기(627)와, 메모리(memory)(629)와, 디인터리버(de-interleaver)(631)와, 배타적 가산기(633)와, 제2컴퍼넌트 LDPC 복호기(650)와, 경판정기(soft-decider)(660)로 구성된다. 상기 제1컴퍼넌트 LDPC 복호기(600)는 제1LDPC 복호기(611)로 구성되고, 상기 제2컴퍼넌트 LDPC 복호기(650)는 제2LDPC 복호기(651)와, 스위치(653)로 구성된다. 상기 도 3에서도 설명한 바와 같이, 일 예로 상기 채널 복호 장치에 대응하는 채널 부호화 장치는 코드 레이트에 상응하게 제1송신 신호 혹은 제2송신 신호를 송신한다. 상기 제1송신 신호는 정보 비트들 uk와 제1패리티 비트들 p1을 포함하며, 상기 제2송신 신호는 정보 비트들 uk와, 제1패리티 비트들 p1과 제2패리티 비트들 p2를 포함한다. 여기서, 상기 제1송신 신호의 코드 레이트는 R1이고, 제2송신 신호의 코드 레이트는 R2라고 가정하기로 한다. 상기 코드 레이트 제어기(623)는 상기 채널 부호화 장치에서 사용한 코드 레이트에 상응하게 상기 제1LDPC 복호기(611)와 제2LDPC 복호기(651)를 모두 사용할지 혹은 상기 제1LDPC 복호기(611)와 제2LDPC 복호기(651) 중 어느 하나를 사용할지를 결정한다. 즉, 상기 코드 레이트 제어기(623)는 상기 채널 부호화 장치에서 코드 레이트로 R1을 사용할 경우 상기 제1LDPC 복호기(611)를 사용하기로 결정하고, 상기 채널 부호화 장치에서 코드 레이트로 R2를 사용할 경우 상기 제1LDPC 복호기(611)와 제2LDPC 복호기(651) 모두를 사용하기로 결정한다.
그러면, 먼저 상기 채널 부호화 장치에서 코드 레이트로 R2를 사용한 경우, 즉 상기 코드 레이트 제어기(623)가 상기 제1LDPC 복호기(611)와 제2LDPC 복호기(651) 모두를 사용하기로 결정한 경우에 대해서 설명하기로 한다. 먼저, 무선 채널을 통해 수신되는 제1수신 신호중 정보어 비트들 uk와 제1패리티 비트들 p1은 상기 제1컴퍼넌트 LDPC 복호기(600)의 제1LDPC 복호기(611)로 입력된다. 여기서, 상기 제1수신 신호는 정보 비트들 uk와, 제1패리티 비트들 p1과 제2패리티 비트들 p2를 포함한다. 이때, 상기 제2LDPC 복호기(651)에서 출력한 이전 복호시의 업데이트된 정보 역시 상기 제1LDPC 복호기(611)로 입력된다. 여기서, 상기 복호 과정이 최초의 복호 과정일 경우에는 업데이트된 정보가 존재하지 않으므로 상기 정보어 비트들 uk와 제1패리티 비트들 p1만 상기 제1LDPC복호기(611)로 입력된다. 상기 제1LDPC 복호기(611)는 상기 입력된 정보어 비트들 uk와 제1패리티 비트들 p1 및 제2LDPC 복호기(651)에서 출력한 이전 복호시의 업데이트된 정보를 가지고 복호 동작을 수행한 후 상기 배타적 가산기(621) 및 코드 레이트 제어기(623)로 출력한다. 상기 코드 레이트 제어기(623)가 상기 제1LDPC 복호기(611)와 제2LDPC 복호기(651) 모두를 사용하기로 결정하였기 때문에, 상기 코드 레이트 제어기(623)는 상기 제1LDPC 복호기(611)에서 출력한 신호를 무시한다.
상기 배타적 가산기(621)는 상기 제1LDPC 복호기(611)에서 출력한 신호에서 상기 제2LDPC 복호기(651)에서 출력한 이전 복호시의 업데이트된 정보를 감산한 후 상기 인터리버(625)로 출력한다. 한편, 상기 제어기(627)는 상기 메모리(629)에 미리 저장되어 있는 순열 함수를 읽어 상기 인터리버(625)와 디인터리버(631)로 출력함으로써, 상기 인터리버(625)와 디인터리버(631)가 상기 순열 함수에 상응하게 인터리빙 동작 및 디인터리빙 동작을 수행하도록 제어한다. 상기 인터리버(625)는 상기 배타적 가산기(621)에서 출력한 신호를 입력하여 상기 순열 함수에 상응하게 인터리빙한 후 상기 제2컴퍼넌트 LDPC 복호기(650)의 제2LDPC 복호기(651)와 배타적 가산기(633)로 출력한다.
상기 제2LDPC 복호기(651)는 상기 인터리버(625)에서 출력한 신호를 입력하여 복호 동작을 수행한 후 상기 스위치(653)로 출력한다. 여기서, 상기 제2LDPC 복호기(651)로는 제2패리티 비트들 p2가 입력되는 것이다. 상기 스위치(653)는 미리 설정된 설정 횟수의 반복 복호 동작이 완료된 후 스위칭 온(switching on)되어 상기 제2LDPC복호기(651)에서 출력한 신호를 상기 경판정기(660)로 입력되도록 한다. 여기서, 상기 스위치(653)는 상기에서 설명한 바와 같이 상기 설정 횟수의 반복 복호 동작이 완료된 후에 상기 제2LDPC 복호기(651)와 상기 경판정기(660)가 연결되도록 스위칭 온 될 수도 있으며, 이와는 달리 상기 반복 복호 동작이 완료될 때마다 상기 제2LDPC 복호기(651)와 상기 경판정기(660)가 연결되도록 스위칭 온될 수도 있다. 상기 스위치(653)가 반복 복호 동작이 완료될 때마다 스위칭 온되는 경우는 패리티 검사를 수행하여 반복 복호의 종료 기준으로 사용될 수도 있다. 다음으로, 상기 채널 부호화 장치에서 코드 레이트로 R1를 사용한 경우, 즉 상기 코드 레이트 제어기(623)가 상기 제1LDPC 복호기(611)를 사용하기로 결정한 경우에 대해서 설명하기로 한다. 먼저, 무선 채널을 통해 수신되는 제2수신 신호중 정보어 비트들 uk와 제1패리티 비트들 p1은 상기 제1컴퍼넌트 LDPC 복호기(600)의 제1LDPC 복호기(611)로 입력된다. 여기서, 상기 제2수신 신호는 정보 비트들 uk와 제1패리티 비트들 p1를 포함한다. 상기 제1LDPC 복호기(611)는 상기 정보 비트들 uk와 제1패리티 비트들 p1를 복호하고, 그 복호된 결과를 상기 코드 레이트 제어기(623)로 출력한다. 상기 코드 레이트 제어기(623)가 상기 제1LDPC 복호기(611)를 사용하기로 결정하였기 때문에, 상기 코드 레이트 제어기(623)는 상기 제1LDPC 복호기(611)에서 출력한 신호를 상기 경판정기(660)로 출력한다.
상기 도 6에서는 본 발명의 실시예에서의 기능을 수행하는 병렬 연접 LDPC 부호의 복호 장치 내부 구조에 대해서 설명하였으며, 다음으로 도 7을 참조하여 상기 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제1규칙을 적용할 경우의 인터리버 설계 규칙에 대해서 설명하기로 한다.
상기 도 7은 본 발명에서 제안하는 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제1규칙을 적용할 경우의 인터리버 설계 규칙을 개략적으로 도시한 도면이다.
상기 도 7을 설명하기에 앞서, 상기 병렬 연접 LDPC 부호의 패리티 검사 행렬을 H라고 정의할 경우, 상기 병렬 연접 LDPC 부호의 패리티 검사 행렬 H는 H=[M |P] 로 나타낼 수 있다. 여기서, 상기 M은 정보어 비트들에 대응되는 파트를 나타내고, P는 패리티 비트들에 대응되는 파트를 나타낸다. 상기 도 7에 도시한 M은 제1 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트를 나타내며, M'은 제2 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트를 나타낸다. 이때, 상기 제1 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트 M과 제2 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트 M'은 하기 수학식 1과 같은 관계를 가진다.
상기 수학식 1에서 π는 상기 제1 컴퍼넌트 LDPC 부호를 생성하는 제1LDPC 부호화기와 제2 컴퍼넌트 LDPC 부호를 생성하는 제2LDPC 부호화기간에 연결되어 있는 인터리버에 해당하는 순열 함수를 나타낸다. 즉, 상기 도 3에서 설명한 바와 같이 상기 π는 제1LDPC 부호화기 (315)와 제2LDPC 부호화기 (317)간에 연결되어 있는 인터리버(313)의 순열 함수를 나타낸다. 상기 도 7에 도시되어 있는 제1 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트 M은 열(coulmn)의 웨이트(weight)에 따라 오름 차순으로 열들이 배열되어 있으며, 제2 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트 M'은 열의 무게에 따라 상기 제1 컴퍼넌트 LDPC 부호의 패리티 검사 행렬의 정보어 비트들에 대응되는 파트 M을 내림 차순으로 재배열한 형태를 가진다. 여기서, 상기 ‘무게’는 0이 아닌(non-zero) 엘리먼트(element)들의 개수를 나타낸다. 한편, 이 경우, 상기 순열 함수 π는 하기 수학식 2와 같이 나타낼 수 있다.
즉, 상기 제1LDPC 부호화기(315)로 입력되는 비트들을 정반대의 순서를 가지도록 재정렬하여 상기 제2LDPC 부호화기(317)로 입력시키도록 하는 것이다. 이렇게 함으로써 신뢰도가 낮은, 웨이트가 작은 비트를 신뢰도가 높은, 웨이트가 큰 비트에 대응시키게 되는 효과를 가지게 된다. 물론, 상기 도 7에서 설명한 바와 같이 특정한 규칙을 가지도록 순열 함수 π를 생성할 수도 있지만, 열의 웨이트에 따라 랜덤하게 상기 순열 함수 π를 생성할 수도 있음은 물론이다.
상기 도 7에서는 상기 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제1규칙을 적용할 경우의 인터리버 설계 규칙을 설명하였으며, 다음으로 도 8을 참조하여 상기 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제2규칙 및 제3규칙을 적용할 경우의 인터리버 설계 규칙을 설명하기로 한다.
상기 도 8은 본 발명에서 제안하는 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제2규칙 및 제3규칙을 적용할 경우의 인터리버 설계 규칙을 개략적으로 도시한 도면이다.
상기 도 8을 참조하면, 참조 부호 800은 제1 컴퍼넌트 LDPC 부호의 factor 그래프의 일부분을 나타낸 것이며, 참조 부호 850은 상기 제1 컴퍼넌트 LDPC 부호를 인터리빙한 후의 제2 컴퍼넌트 LDPC 부호의 factor 그래프의 일부분을 나타낸 것이다. 상기 도 8에서 원형 모양의 노드들, 즉 v1부터 v7까지의 노드들은 변수 노드들을 나타내며, 사각 모양의 노드들, 즉 c1부터 c6의 노드들은 검사 노드들을 나타낸다.
상기 제1 컴퍼넌트 LDPC 부호의 factor 그래프(800)에서 변수 노드들 v1, v2, v3은 최소 사이클이 사이클 4 구조를 갖는다. 따라서, 상기 변수 노드들 v1, v2, v3을 가능한한 크기가 큰 사이클로 대응시켜 주는 것이 중요하다. 상기 도 8에 도시한 바와 같이 상기 제1 컴퍼넌트 LDPC 부호의 factor 그래프(800)에서 외부에 생략된 부분이 사이클이 굉장히 큰 구조라고 가정한다면, 상기 변수 노드들 v1, v2, v3을 상기 제1 컴퍼넌트 LDPC 부호의 factor 그래프(800)의 외부에 생략된 부분으로 대응시켜 평균 사이클을 크게 한다. 이때 상기 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제2규칙 및 제3규칙까지 동시에 고려하기 위해서는 동일한 작은 사이클에 연결되어 있는 변수 노드들 v1, v2를 같은 사이클 내에 포함되지 않도록 대응시켜야만 한다. 물론 변수 노드들 v2, v3에 대해서도 같은 사이클에 포함되지 않도록 대응시켜야만 한다.
한편, 상기 도 8에서는 비교적 작은 크기의 factor 그래프를 일 예로 하여 상기 < 병렬 연접 LDPC 부호의 인터리버 설계 규칙 >의 제2규칙 및 제3규칙을 적용할 경우의 인터리버 설계 규칙을 설명하였지만, 실제로는 같은 사이클에 포함되어 있는 변수 노드들은 가능한 한 멀리 떨어지도록 대응시킴으로써 병렬 연접 LDPC 부호를 반복 복호할 경우 각각 독립된 정보를 획득할 수 있도록 한다. 또한, 아이디얼(ideal)하게는 크기가 작은 사이클들을 모두 고려할 경우 상기 병렬 연접 LDPC 부호의 성능을 최적화시키지만, 크기가 작은 사이클들을 모두 고려할 경우 상기 인터리버 설계는 굉장히 복잡해진다. 따라서, 실제 통신 시스템에서는 사이클 4와 사이클 6에 포함되는 변수 노드들에 대해서만 고려해 주어도 큰 성능 향상을 가져오게 된다.