KR20070003294A - 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치 - Google Patents

준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치 Download PDF

Info

Publication number
KR20070003294A
KR20070003294A KR1020050059169A KR20050059169A KR20070003294A KR 20070003294 A KR20070003294 A KR 20070003294A KR 1020050059169 A KR1020050059169 A KR 1020050059169A KR 20050059169 A KR20050059169 A KR 20050059169A KR 20070003294 A KR20070003294 A KR 20070003294A
Authority
KR
South Korea
Prior art keywords
parity check
matrix
check matrix
exponential
value
Prior art date
Application number
KR1020050059169A
Other languages
English (en)
Other versions
KR100941680B1 (ko
Inventor
정홍실
명세호
양경철
양현구
박동식
임치우
김재열
최승훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050059169A priority Critical patent/KR100941680B1/ko
Priority to US11/478,831 priority patent/US7725801B2/en
Publication of KR20070003294A publication Critical patent/KR20070003294A/ko
Application granted granted Critical
Publication of KR100941680B1 publication Critical patent/KR100941680B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits

Abstract

본 발명은 준순환(Quasi-cyclic) 저밀도 패리티 검사(Low Density Parity Check) 부호의 결합 방법 및 장치에 관한 것으로서, 이러한 본 발명은 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 긴 길이의 저밀도 패리티 검사 부호 생성 방법에 있어서, 소정의 메모리에 저장된 소정 개수의 지수 행렬들에 대하여 지수 변환하여 출력하는 과정과, 상기 지수 변환되어 출력되는 값을 기반으로 새로운 지수 행렬을 생성하는 과정과, 상기 생성된 새로운 지수 행렬을 이용하여 새로운 저밀도 패리티 검사 부호를 생성하는 과정을 포함하는 것을 특징으로 한다.
준순환(Quasi-cyclic) LDPC 부호, 패리티 검사 행렬, 모행렬, 지수 결합, 차이니즈 나머지 정리(chinese remainder theorem), 사이클, 거스(girth)

Description

준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치{APPARATUS AND METHOD FOR GENERATING OF QUASI-CYCLIC LOW DENSITY PARITY CHECK CODES}
도 1은 일반적인 (8, 2, 4) LDPC 부호의 패리티 검사 행렬을 개략적으로 도시한 도면,
도 2는 일반적인 (8, 2, 4) LDPC 부호의 팩터(factor) 그래프를 개략적으로 도시한 도면,
도 3은 일반적인 준순환 LDPC 부호의 패리티 검사 행렬을 개략적으로 도시한 도면,
도 4는 일반적인 준순환 LDPC 부호의 사이클 구조 특성을 설명하기 위해 개략적으로 도시한 도면,
도 5는 본 발명의 실시예에 따른 준순환 LDPC 부호의 결합을 통한 새로운 형태의 준순환 LDPC 부호를 설계하는 방법을 개략적으로 도시한 도면,
도 6은 본 발명의 실시예에 따른 준순환 LDPC 부호의 결합을 통한 새로운 형태의 준순환 LDPC 부호 생성 장치의 구성을 개략적으로 도시한 도면,
도 7은 본 발명의 실시예에 따른 준순환 LDPC 부호 생성을 위한 실시예를 개략적으로 도시한 도면,
도 8은 본 발명의 실시예에 따른 균일(Regular) 준순환 LDPC 부호의 복호 블 록 구성을 개략적으로 도시한 도면.
본 발명은 오류정정부호를 사용하는 디지털 통신 시스템에 관한 것으로서, 특히 준순환(Quasi-cyclic) 저밀도 패리티 검사(Low Density Parity Check) 부호를 이용한 데이터 송수신 장치 및 방법에 관한 것이다.
일반적으로, 통신에서 가장 근본적인 문제는 채널(channel)을 통하여 얼마나 효율적이고 신뢰성 있게(reliably) 데이터(data)를 전송할 수 있느냐 하는 것이다. 최근에 활발하게 연구되고 있는 차세대 멀티미디어 이동 통신에서는 초기의 음성 위주의 서비스를 벗어나 영상, 무선 데이터 등의 다양한 정보를 처리하고 전송할 수 있는 고속 통신 시스템이 요구되고 있다. 따라서 시스템에 상응하는 적절한 채널 부호화 기법을 사용하여 시스템의 효율을 높이는 것이 필수적이다.
그런데, 이동 통신 시스템에 존재하는 무선 채널 환경은, 유선 채널 환경과는 달리 다중 경로 간섭(multipath interference), 쉐도잉(shadowing), 전파 감쇠, 시변 잡음, 간섭 및 페이딩(fading) 등과 같은 여러 요인들로 인해 불가피한 오류가 발생하여 정보의 손실이 생긴다. 이러한 정보 손실은 실제 송신 신호에 심한 왜곡을 발생시켜 상기 이동 통신 시스템 전체 성능을 저하시키는 요인으로 작용하게 된다.
일반적으로, 이러한 정보의 손실을 감소시키기 위해 채널의 성격에 따라 다양한 오류 제어 기법(error-control technique)을 이용하여 시스템의 신뢰도를 높이고 있다. 이러한 오류 제어 기법 중에 가장 기본적인 방법은 오류 정정 부호(error-correcting code)를 사용하는 것이다.
차세대 통신 시스템은 다양한 서비스 품질(Quality of Service, 이하 'QoS'라 칭하기로 한다)을 가지는 고속의 대용량 데이터를 서비스하는 형태로 발전하고 있다. 이렇게, 고속의 대용량 데이터를 서비스함에 있어서, 정보의 손실은 치명적이다. 따라서 상기 오류 정정 부호의 오류 정정 능력이 전체 서비스 품질을 좌우하는 중요한 요소로 작용하고 있다.
상기 오류 정정 부호의 대표적인 부호들로는 터보 부호(turbo code), 저밀도 패리티 검사(Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호 등이 있다.
상기 LDPC 부호는 종래 오류 정정을 위해 주로 사용되던 컨벌루셔널 부호(convolutional code)에 비하여 고속 데이터 전송시에 성능 이득이 우수한 것으로 알려져 있다. 또한 무선 채널에서 발생하는 잡음에 의한 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높일 수 있다는 장점을 가진다. 또한, 상기 LDPC 부호는 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프 상에서 합곱(sum-product) 알고리즘(algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 사용하여 복호할 수 있다는 장점을 가진다. 이러한 장점을 이용한 상기 LDPC 부호의 복호기(decoder)는 상기 터보 부호의 복호기에 비해 낮은 복잡도를 가질 뿐만 아니라 병렬 처리 복호기를 구현함에 있어 용이성을 가진다.
상기 터보 부호는 Shannon의 채널 부호화 이론(channel coding theorem)의 채널 용량 한계에 근접하는 우수한 성능을 가지고 있으며, 상기 LDPC 부호는 블록 크기 107을 사용하여 비트 에러율(BER: Bit Error Rate) 10-5에서 Shannon의 채널 부호화의 채널 용량 한계에서 단지 0.04[dB] 정도의 차이를 가지는 성능을 나타낸다. 여기서, 상기 Shannon의 채널 부호화 이론은 채널의 용량을 초과하지 않는 데이터 전송율(data rate)에 한해, 신뢰성 있는 통신이 가능함을 나타내는 이론이다. 하지만 상기 Shannon은 채널용량 한계에 다다르려면 실제적으로 어떻게 부호화와 복호를 해야 하는가에 대한 문제는 제시하지 않았다. 또한 블록크기가 굉장히 큰 랜덤(random) 부호는 상기 Shannon의 채널 부호화 이론에서 채널 용량 한계에 근접하는 성능을 보이지만, 상기 부호의 MAP(Maximum A Posteriori) 또는 ML(Maximum Likelihood) 복호는 매우 많은 계산량으로 인해 굉장한 로드(load)가 존재하여 실제 그 구현이 불가능하다.
한편, 상기 LDPC 부호를 factor 그래프로 표현하면 사이클(cycle)이 존재하는데, 상기 사이클이 있는 그래프 상에서의 반복 복호는 준최적(suboptimal)이라는 것이 잘 알려져 있다. 그럼에도 불구하고 상기 LDPC 부호는 반복 복호를 통해 우수한 성능을 보인다는 것이 실험적으로 입증되었다. 하지만 짧은 길이의 사이클이 너무 많이 존재할 경우에는 성능의 열화를 가져올 것으로 예상하고 있기 때문에 짧은 길이의 사이클이 없는 LDPC 부호를 설계하기 위한 노력이 계속해서 이루어지고 있 다.
예를 들면, Gallager에 의해 제안된 LDPC 부호는 대부분의 엘리먼트(element)들이 0(NULL)의 값을 가지며, 상기 0의 값을 가지는 엘리먼트들 이외의 극히 소수의 엘리먼트들이 1의 값을 가지는 패리티 검사 행렬(parity check matrix)에 의해 정의된다. 즉 상기 LDPC 부호의 패리티 검사 행렬은 매우 작은 가중치(weight)를 가진다. 따라서, 상기 LDPC 부호는 비교적 긴 길이를 가지는 블록 부호(block code)에서도 반복 복호를 통해 복호가 가능하다. 또한 상기 LDPC 부호는 블록 부호의 블록 길이를 계속 증가시킬 경우, 상기 터보 부호와 같이 Shannon의 채널 용량 한계에 근접하는 형태의 성능을 나타낸다. 따라서, 차세대 통신 시스템에서는 상기 오류 정정 부호로서 상기 LDPC 부호를 적극적으로 사용하고 있는 추세에 있다.
한편, (N, j, k) LDPC 부호는 블록 길이가 N인 선형 블록 부호(linear block code)로, 각 열(column)마다 j개의 1, 각 행(row)마다 k개만큼의 1을 가지며, 나머지는 0으로만 구성된 성긴(sparse) 구조의 패리티 검사 행렬을 갖는다. 상기와 같이 각 열의 가중치가 j로 일정하며, 각 행의 가중치가 k로 일정한 경우, 균일(regular) LDPC 부호라고 한다. 이와는 반대로, 행의 가중치와 열의 가중치가 일정하지 않은 경우 불균일(irregular) LDPC 부호라 한다. 여기서, 상기 가중치(weight)라 함은 상기 패리티 검사 행렬을 구성하는 엘리먼트들 중 0이 아닌 값을 가지는 엘리먼트들의 개수를 나타낸다.
일반적으로, 상기 균일 LDPC 부호에 비해서 상기 불균일 LDPC 부호의 성능이 우수함이 알려져 있다. 그러나 상기 불균일 LDPC 부호의 경우 각 행의 1의 개수와 각 열의 1의 개수의 분포를 적절히 선택하여야만 우수한 성능을 보장하는 LDPC 부호를 설계할 수 있다.
그러면, 여기서 도 1 및 도 2를 참조하여 상기 (N, j, k) LDPC 부호, 예컨대 (8, 2, 4) LDPC 부호의 패리티 검사 행렬에 대하여 설명하기로 한다.
도 1은 일반적인 (8, 2, 4) LDPC 부호의 패리티 검사 행렬 H를 개략적으로 도시한 도면이고, 도 2는 상기 도 1의 (8, 2, 4) LDPC 부호의 패리티 검사 행렬의 factor 그래프를 개략적으로 도시한 도면이다.
상기 도 1을 참조하면, 상기 (8, 2, 4) LDPC 부호의 패리티 검사 행렬 H는, 8개의 열로 구성되어 있으며, 각 열의 가중치 즉, 1의 개수는 2로 동일하며 각 행의 가중치 즉, 1의 개수는 4임을 알 수 있다. 이하 상기 도 2를 이용하여 상기 (8, 2, 4) LDPC 부호의 패리티 검사행렬의 factor 그래프에 대하여 설명하기로 한다.
상기 도 2를 참조하면, 8개의 변수 노드들(variable nodes)(202, 204, 206, 208, 210, 212, 214, 216), 4개의 검사 노드들(check nodes)(218, 220, 222, 224)로 구성되어 있다. 상기 변수 노드들(202, 204, 206, 208, 210, 212, 214, 216)은 각각
Figure 112005035824304-PAT00001
로 표기 하며, 상기 패리티 검사 행렬의
Figure 112005035824304-PAT00002
번째 열,
Figure 112005035824304-PAT00003
번째 행에 1이 있다면, 변수 노드
Figure 112005035824304-PAT00004
Figure 112005035824304-PAT00005
번째 검사 노드 사이에 가지(branch)가 생성된다.
상기 LDPC 부호의 패리티 검사 행렬은 상술한 바와 같이, 매우 적은 개수의 가중치 즉, 1을 가지기 때문에, 큰 블록 크기에서도 반복 복호를 통하여 복호가 가 능하며, 블록 크기를 계속 증가하면 터보 부호처럼 Shannon의 채널용량 한계에 근접하는 성능을 보인다. MacKay와 Neal에 의하여 흐름 전달 방식을 사용한 LDPC 부호의 반복 복호가 터보 부호에 근접하는 성능으로 가진다는 것을 이미 증명한 바가 있다.
한편, 성능이 좋은 LDPC 부호를 구성하기 위해서는 다음과 같은 몇 가지 조건을 만족시켜야 한다.
첫 번째 조건은 사이클을 크게 만드는 것이다. 여기서, 상기 사이클이란 상기 LDPC 부호의 factor 그래프 모델에서 어떤 노드도 두 번 이상 지나치지 않는 닫힌 경로(closed path)를 말한다. 즉, 상기 첫 번째 조건은 크기가 작은 사이클이 많이 존재할수록 상기 LDPC 부호는 오류 마루(error floor) 등의 성능 열화가 나타나게 된다. 따라서, 상기 LDPC 부호의 factor 그래프상의 사이클을 길게 생성할수록 상기 LDPC 부호의 성능이 좋아지게 된다.
두 번째 조건은 상기 LDPC 부호의 factor 그래프상의 차수 분포를 고려하여야 한다. 일반적으로 균일 LDPC 부호보다 불균일 LDPC 부호가 성능이 우수한 이유는, 상기 불균일 LDPC 부호의 노드들이 다양한 차수(degree)를 갖기 때문이다. 여기서 상기 차수란 상기 LDPC 부호의 factor 그래프 상에서 각 노드들 즉, 변수 노드들과 검사 노드들에 연결되어 있는 에지(edge)의 개수를 말한다. 또한 상기 차수 분포라는 것은, 특정 차수를 갖는 노드들이 전체 노드 중 얼마만큼 존재하는 가를 나타내는 것이다. 또한, Richardson 등에 의해서 성능이 좋은 LDPC 부호는 특정한 차수 분포를 가져야만 한다는 것이 잘 알려져 있다.
상술한 바와 같이 상기 LDPC 부호는, 일반적으로 패리티 검사 행렬(parity-check matrix)을 이용하여 표현된다. 따라서, 상기 패리티 검사 행렬의 정보를 효율적으로 저장함으로써, 필요한 메모리의 크기를 줄일 수 있다. 통상적으로 상기 LDPC 부호를 일반적인 방법으로 저장하는 경우 비교적 많은 메모리가 필요로 하게 된다. 이에 상기 LDPC 부호를 효율적으로 저장하기 위한 여러 방안들이 연구되어 왔다.
예컨대, 2000년 Fan에 의해 구조적인 패리티 검사 행렬을 가지는 어레이(array) 부호가 제안된 이래로, 메모리 효율성을 개선하기 위하여 순환 순열 행렬(circulant permutation matrix)에 기반한 여러 가지 준순환(Quasi-Cyclic) LDPC(이하 'QC-LDPC'라 칭하기로 한다) 부호들이 개발되었다.
상기 QC-LDPC 부호는 상기한 패리티 검사 행렬을 작은 블록(block)으로 구분하여 각각의 블록에 순환 순열 행렬이나 영(zero) 행렬을 대응시킴으로써 구성할 수 있다. 이하 도 3을 참조하여 상기 준순환 LDPC 부호에 대하여 설명하기로 한다.
도 3은 일반적인 QC-LDPC 부호의 패리티 검사 행렬을 개략적으로 도시한 도면이다.
상기 도 3을 설명하기에 앞서, 상기 QC-LDPC 부호는 효율적인 패리티 검사 행렬의 저장 및 성능 개선을 모두 고려한 새로운 LDPC 부호이다.
상기 도 3을 참조하면, 상기 QC-LDPC 부호의 패리티 검사 행렬은 전체 패리티 검사 행렬을 다수의 부분 블록(partial block)들로 분할하고, 상기 부분 블록들 각각에 순열 행렬(permutation matrix)을 대응시키는 형태를 가진다.
여기서, 상기 도 3에 도시되어진 P는
Figure 112005035824304-PAT00006
크기를 가지는 하기 <수학식 1>과 같은 순열 행렬을 나타내며, 상기 P의 위 첨자
Figure 112005035824304-PAT00007
Figure 112005035824304-PAT00008
또는 무한대(
Figure 112005035824304-PAT00009
)를 갖는다. 또한 상기 도 3에 도시되어진 m은 해당 순열 행렬이 상기 패리티 검사 행렬의 다수의 부분 블록들 중 m번째 행에 위치함을 나타내며, n은 해당 순열 행렬이 상기 패리티 검사 행렬의 다수의 부분 블록들 중 n번째 열에 위치함을 나타낸다. 즉,
Figure 112005035824304-PAT00010
는 상기 다수의 부분 블록들로 구성된 패리티 검사 행렬의 m번째 행과 n번째 열이 교차하는 지점의 부분 블록에 존재하는 순열 행렬을 나타낸다. 다시 말해, 상기 m과 상기 n은 상기 패리티 검사 행렬에서 상기 정보 파트에 해당하는 부분 블록들의 행과 열의 개수를 나타낸다.
다음으로, 하기 <수학식 1>은 상기 도 3에 따른 순열 행렬(P)의 일예를 나타낸 것이다.
Figure 112005035824304-PAT00011
상기 <수학식 1>에 나타낸 바와 같이, 상기 순열 행렬 P는
Figure 112005035824304-PAT00012
크기를 가지는 정사각 행렬로서, 상기 순열 행렬 P는, 상기 순열 행렬 P를 구성하는
Figure 112005035824304-PAT00013
개의 행들 각각의 가중치(weight)가 1이고, 상기 순열 행렬 P를 구성하는
Figure 112005035824304-PAT00014
개의 열 들 역시 1인 행렬을 나타낸다. 상기에서는, 상기 순열 행렬 P의 크기를
Figure 112005035824304-PAT00015
라고 표현하였으나, 이하에서는 상기 순열 행렬 P가 정사각 행렬이므로 그 크기를 설명의 편의상
Figure 112005035824304-PAT00016
라고 표현하기로 한다.
다음으로, 상기 순열 행렬 P의 위 첨자가 0 즉, 상기
Figure 112005035824304-PAT00017
일 때, 순열 행렬 P0는 단위 행렬
Figure 112005035824304-PAT00018
을 의미하며, 상기 순열 행렬 P의 위 첨자가 무한대 즉,
Figure 112005035824304-PAT00019
일 때, 순열 행렬
Figure 112005035824304-PAT00020
는 제로(zero)행렬
Figure 112005035824304-PAT00021
를 의미한다.
한편, 상술한 LDPC 부호에서의 작은 사이클은 성능 열화의 주요한 원인이 된다. 즉, 작은 사이클에 속해있는 한 노드에서 출발한 자신의 정보가 적은 반복회수 후에 다시 자신에게 돌아오게 된다. 이때, 반복회수가 증가할수록 그 정보가 계속해서 자신에게 돌아오게 되므로 정보 갱신이 잘 이루어지지 않게 되며, 결국 오류 정정 능력이 저하된다. 따라서 가능한 한 사이클의 크기를 크게 해주고 적은 사이클의 개수도 줄여주는 것이 좋은 성능의 LDPC 부호를 구성할 수 있는 방법이다.
다음으로, 이하에서는 도 4를 참조하여 QC-LDPC 부호의 사이클 구조 특성에 대하여 설명하기로 한다.
도 4는 일반적인 QC-LDPC 부호의 사이클 구조 특성을 설명하기 위해 개략적으로 도시한 도면이다.
상기 도 4를 설명하기에 앞서, 상기 QC-LDPC 부호는 상술한 바와 같이, 효율적인 부호화뿐만 아니라 효율적인 패리티 검사 행렬의 저장 및 성능 개선을 모두 고려한 LDPC 부호로서, 균일 LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다.
상기 도 4를 참조하면, 상기 도 4는 QC-LDPC 부호의 사이클 구조 특성을 분석하기 위해 4개의 블록들로 이루어진 QC-LDPC 부호의 패리티 검사 행렬을 나타낸 것이다. 여기서 상기 도 4에 도시한 사선은 1의 위치를 의미하며, 나머지 부분은 모두 0의 위치를 나타낸다. 또한 P는 상기 도 3에서 정의한 순열 행렬과 같다. 또한 이하에서는 상기 부분 블록들에 대응하는 순열 행렬을 '부분 행렬'이라 칭하기로 한다.
또한, 상기 QC-LDPC 부호의 사이클 구조를 분석하기 위해 부분 행렬
Figure 112005035824304-PAT00022
Figure 112005035824304-PAT00023
번째 행에 위치하는 1을 기준으로 정하고, 상기
Figure 112005035824304-PAT00024
번째 행에 위치하는 1을 '0-점'이라 정의한다. 이때, 상기 ‘0-점’은 상기 부분 행렬
Figure 112005035824304-PAT00025
Figure 112005035824304-PAT00026
번째 열에 위치한다. 상기 ‘0-점’과 같은 행에 위치한 부분 행렬
Figure 112005035824304-PAT00027
에서의 1을 ‘1-점’이라 정의한다. 이때, 상기 '0-점'에서와 같이, 상기 ‘1-점’은 부분 행렬
Figure 112005035824304-PAT00028
Figure 112005035824304-PAT00029
번째 열에 위치한다.
다음으로, 상기 ‘1-점’과 같은 열에 위치한 부분 행렬
Figure 112005035824304-PAT00030
에서의 1을 ‘2-점’이라 정의한다. 상기 부분 행렬
Figure 112005035824304-PAT00031
가 단위 행렬
Figure 112005035824304-PAT00032
의 각 열들을 오른쪽으로 모듈로(modulo)
Figure 112005035824304-PAT00033
에 대해서 c만큼 이동하여 획득한 행렬이기 때문에, 상기 ‘2-점’은 상기 부분 행렬
Figure 112005035824304-PAT00034
번째 행에 위치한다. 또한 상기 ‘2-점’과 같은 행에 위치한 부분 행렬
Figure 112005035824304-PAT00036
에서의 1을 ‘3-점’이라 정의한다. 그러면, 상기와 마찬 가지 이유로 ‘3-점’은 부분 행렬
Figure 112005035824304-PAT00037
Figure 112005035824304-PAT00038
번째 열에 위치한다.
마지막으로, 상기 '3-점'과 같은 열에 위치한 부분 행렬
Figure 112005035824304-PAT00039
에서의 1을 ‘4-점’이라 한다. 상기 ‘4-점’은 상기 부분 행렬
Figure 112005035824304-PAT00040
Figure 112005035824304-PAT00041
번째 행에 위치한다.
이때, 상기 도 4에 도시한 QC-LDPC 부호의 패리티 검사 행렬에서 길이가 4인 사이클이 존재한다면, 상기 ‘0-점’과 상기 ‘4-점’은 서로 동일한 위치가 된다. 즉, 상기 '0-점'과 '4-점'간에는 하기 <수학식 3>과 같은 관계가 성립된다.
Figure 112005035824304-PAT00042
상기 <수학식 3>을 다시 정리하면, 하기 <수학식 4>와 같이 나타낼 수 있다.
Figure 112005035824304-PAT00043
따라서, 상기 <수학식 4>와 같은 관계가 성립하는 경우에, 길이가 4인 사이클이 생성됨을 알 수 있다.
일반적으로 ‘0-점’과 ‘4m-점’이 최초로 같게 되는 경우에는, 하기 <수학식 5>와 같은 관계가 성립되고, 이를 통해 최종적으로 하기 <수학식 6>과 같은 관계가 성립된다.
Figure 112005035824304-PAT00044
Figure 112005035824304-PAT00045
다시 말하면, 주어진 a, b, c, d에 대해 상기 <수학식 6>을 만족하는 양의 정수들 중에서 최소값을 가지는 양의 정수를 m이라 하면, 상기 도 4에 도시한 바와 같은 QC-LDPC 부호의 패리티 검사 행렬에서는 길이가 4m인 사이클이 최소 길이를 갖는 사이클이 된다. 이와 같은 사실로부터
Figure 112005035824304-PAT00046
인 경우에
Figure 112005035824304-PAT00047
이 성립하면,
Figure 112005035824304-PAT00048
가 되어 길이가
Figure 112005035824304-PAT00049
인 사이클이 최소 길이를 갖는 사이클이 됨을 알 수 있다.
일반적으로, 불균일(irregular) LDPC 부호의 경우에는 패리티 검사 행렬의 각 가중치(weight)에 대한 위치 정보를 모두 저장해야 한다. 이에 반해 QC-LDPC 부호의 경우에는 작은 블록의 첫 번째 가중치의 위치가 정해지면 블록 내의 나머지
Figure 112005035824304-PAT00050
개의 가중치들도 위치가 결정되므로, 첫 번째 가중치의 위치만 저장하면 된다. 따라서
Figure 112005035824304-PAT00051
을 알고 있을 때, 상기 도 3에서 정의된 패리티 검사 행렬 H의 정보를 저장하기 위해서
Figure 112005035824304-PAT00052
크기의 지수만 저장하면 된다.
결과적으로, 상기한 바와 같은 QC-LDPC 부호의 메모리 효율성은 일반적인 불균일 LDPC 부호에 비하여 대략
Figure 112005035824304-PAT00053
에 비례하는 메모리를 필요로 하게 된다.
한편, 서로 다른 QC-LDPC 부호들의 패리티 검사 행렬은 일반적으로 서로 다른 메모리에 저장해야 한다. 따라서 여러 개의 QC-LDPC 부호의 패리티 검사 행렬을 저장하려면 보다 많은 메모리가 필요하게 된다.
기존에는 부호 길이가 짧은 QC-LDPC 부호들과 부호 길이가 긴 QC-LDPC 부호들을 모두 각각 다른 메모리에 저장하거나, 부호 길이가 긴 QC-LDPC 부호에서 단순히 모듈로(modulo) 연산을 취하여 부호 길이가 짧은 QC-LDPC 부호를 생성하였다.
하지만 지수 행렬에 임의의 모듈로 연산을 취하면 상기 QC-LDPC 부호의 Tanner 그래프 상의 사이클(cycle) 특성이 크게 변화되어 성능 열화를 유발할 수 있다. 이때, 상기 성능 열화를 피하기 위해 사이클 특성이 나빠지지 않게 하는 모듈로 연산만 취하는 경우에는, 생성할 수 있는 부호의 개수가 크게 제한된다.
따라서, 상기에서 살펴본 바와 같은 보다 우수한 사이클 특성을 보장하는 다수의 QC-LDPC 부호를 생성할 수 있는 방안이 요구된다.
따라서, 본 발명의 목적은 이동통신 시스템에서 오류 없이 데이터를 전송할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 효율적으로 데이터를 송수신할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 짧은 길이의 사이클이 없는 저밀도 패리티 검사 부호를 이용하여 수신된 데이터를 정확히 복원하여, 고품질의 신뢰도를 획득할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 짧은 길이의 사이클이 없는 저밀도 패리티 검사 부호를 설계할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 짧은 길이의 사이클이 없는 저밀도 패리티 검사 부호를 구현하기 위한 준순환 저밀도 패리티 검사 부호를 결합하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 다수의 준순환 저밀도 패리티 검사 부호를, 적은 양의 메모리를 사용하여 저장할 수 있는 설계 방안을 제공함에 있다.
상기와 같은 목적들을 달성하기 위한 본 발명의 실시예에 따른 방법은; 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 긴 길이의 저밀도 패리티 검사 부호 생성 방법에 있어서, 소정의 메모리에 저장된 소정 개수의 지수 행렬들에 대하여 지수 변환하여 출력하는 과정과, 상기 지수 변환되어 출력되는 값을 기반으로 새로운 지수 행렬을 생성하는 과정과, 상기 생성된 새로운 지수 행렬을 이용하여 새로운 저밀도 패리티 검사 부호를 생성하는 과정을 포함하는 것을 특징으로 한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 실시예에 따른 방법은; 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 준순환 저밀도 패리티 검사 부호 생성 방법에 있어서, 소정의 패리티 검사 행렬의 지수값에 상응하여 생성하고자 하는 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 산출하는 과정과, 상기 산출한 값에 기반하여 상기 패리티 검사 행렬의 지수값을 산출하는 과정과, 상기 지수값 산출 후 지수 행렬을 산출하는 과정과, 상기 지수 행렬과 상기 순열 행렬을 지 수 결합(exponent coupling)하여 상기 패리티 검사 행렬을 생성하는 과정을 포함하는 것을 특징으로 한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 실시예에 따른 장치는; 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 준순환 저밀도 패리티 검사 부호 생성 장치에 있어서, 소정의 준순환 저밀도 패리티 검사 부호들에 대한 지수 행렬들을 저장하는 제1 메모리와, 상기 제1 메모리에 저장된 소정 개수의 지수 행렬들에 대하여 지수 변환을 통해 생성하고자 하는 패리티 검사 행렬의 지수값을 산출하여 출력하는 지수 변환기와, 상기 지수 변환기에서 출력하는 지수값을 기반으로 새로운 지수 행렬을 저장하는 제2 메모리와, 상기 제2 메모리에 저장되어 있는 지수 행렬을 기반으로 새로운 준순환 저밀도 패리티 검사 부호를 생성하는 준순환 저밀도 패리티 검사 부호 생성기를 포함하는 것을 특징으로 한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 실시예에 따른 장치는; 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 긴 길이의 저밀도 패리티 검사 부호를 생성하는 장치에 있어서, 결정된 패리티 검사 행렬을 구성하는 열들 각각의 가중치에 상응하게 변수 노드들을 연결하여 수신 신호의 확륙 값들을 검출하여 출력하는 변수 노드 복호기와, 상기 변수 노드 복호기에서 출력한 신호를 입력하여 상기 결정된 패리티 검사 행렬에 상응하게 설정된 디인터리빙 방식으로 디인터리빙하여 출력하는 디인터리버와, 상기 결정된 패리티 검사 행렬을 구성하는 행들 각각의 가중치에 상응하게 검사 노드들을 연결하여 상기 디인터리버에서 출력한 신호의 확률 값들을 검출하여 출력하는 검사 노드 복호기와, 상기 검사 노드 복호기에서 출력한 신호를 상기 결정된 패리티 검사 행렬에 상응하게 설정된 인터리빙 방식으로 인터리빙하여 상기 변수 노드 복호기로 출력하는 인터리버와, 상기 디인터리버 방식 및 인터리빙 방식을 상기 결정된 패리티 검사 행렬에 상응하게 제어하는 제어기와, 소정의 제어에 따라 메모리에 저장된 패리티 검사 행렬을 기반으로 하여 현재 사용하고 있는 블록 길이에 대한 패리티 검사 행렬을 생성하는 패리티 검사 행렬 생성기를 포함함을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
제안하는 본 발명은 오류 정정 부호(error-correcting code)인 저밀도 패리티 검사(Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호에 관한 것이다.
상기 본 발명은 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 상기 오류 정정 부호인 LDPC 부호류에 속하는 준순환(Quasi-Cyclic) LDPC(이하 'QC-LDPC'라 칭하기로 한다) 부호를 사용하여, 오류 없이 데이터를 송수신함으로써, 우수한 성능 및 신뢰도를 제공할 수 있는 데이터 송수신 방안에 관한 것이다. 특히, 본 발명에서는 짧은 길이의 QC-LDPC 부호를 후술하는 본 발명의 설명에서와 같은 방식을 이용하여 결합함으로써, 긴 길이의 QC-LDPC 부호를 설계할 수 있는 방안을 통해 송수신 데이터 오류를 줄일 수 있도록 한다. 또한, 본 발명의 실시예에 따라 구해진 긴 길이의 QC-LDPC 부호의 거스(girth)는, 구성하고 있는 짧은 길이의 QC-LDPC 부호의 거스보다 크거나 같을 수 있다. 여기서, 상기 거스(girth)란 최소 사이클을 의미한다.
본 발명의 상세한 설명에 앞서,
Figure 112005035824304-PAT00054
(
Figure 112005035824304-PAT00055
)의 행렬
Figure 112005035824304-PAT00056
를 패리티 검사 행렬로 가지는 QC-LDPC 부호를
Figure 112005035824304-PAT00057
라 정의한다. 또한 상기 각 k에 대하여 지수 행렬(exponent matrix)과 모행렬(mother matrix)을 각각
Figure 112005035824304-PAT00058
Figure 112005035824304-PAT00059
라 정의한다. 그리고 모든 k에 대하여 상기 모행렬
Figure 112005035824304-PAT00060
는 동일하고,
Figure 112005035824304-PAT00061
인 상기
Figure 112005035824304-PAT00062
과 상기
Figure 112005035824304-PAT00063
에 대하여
Figure 112005035824304-PAT00064
이라고 가정 한다.
또한, 설명의 편의를 위하여 아래와 같이 용어를 정의한다.
1) 모행렬(mother matrix):
Figure 112005035824304-PAT00065
이진 행렬 M(H)는 QC-LDPC 부호의 패리티 검사 행렬 H에서, 상기 제로 행렬(
Figure 112005035824304-PAT00066
)과 순열 행렬(P) 대신에 각각 '0'과 '1'을 대입함으로써 유일하게 얻어질 수 있다. 즉, 상기 M(H)는 상기 패리티 검사 행렬 H의 모행렬이라고 한다.
2) 지수 행렬(exponent matrix): 상기 패리티 검사 행렬 H의 지수 행렬 E(H)는 하기 <수학식 2>와 같이 나타낼 수 있다.
Figure 112005035824304-PAT00067
여기서, 상기 지수 행렬 E(H)와 상기 모행렬 M(H)의 사이즈(size)는 같다.
3) 지수 결합(exponent coupling): 상기 패리티 검사 행렬 H는 상기 지수 행렬 E(H)와 상기 순열 행렬 P의 결합으로 얻을 수 있다. 예를 들어, 상기한 도 3의 패리티 검사 행렬은
Figure 112005035824304-PAT00068
로 표현 할 수 있다. 이러한 과정을 지수 결합이라고 한다.
4) 블록 사이클(block cycle): 상기 모행렬 M(H)의 1 사이에서 사이클이 생성되면 블록 사이클 이라고 한다.
5) 지수 체인(exponent chain): 길이
Figure 112005035824304-PAT00069
의 블록 사이클이 존재하는 모행렬 M(H)에 대하여 다음과 같이 지수 체인으로 표현 할 수 있다.
Figure 112005035824304-PAT00070
혹은
Figure 112005035824304-PAT00071
이하에서는 상기와 같은 정의에 기반하여, 차이니즈 나머지 정리(Chinese Remainder Theorem)를 이용하여
Figure 112005035824304-PAT00073
를 패리티 검사 행렬로 하는 QC-LDPC 부호
Figure 112005035824304-PAT00074
의 설계 방안에 대하여 살펴보기로 한다. 여기서, 상기 차이니즈 나머지 정리라 함은, 연립 선형 합동식의 공통해를 찾는 문제에 대한 답을 주는 정리를 말한다. 상기 각 선형 합동식의 법(modulo)은 쌍마다 서로 소이며, 가우스(Gauss)와 오일러(Euler)에 의해 연구되어 이용되어 왔으며, 그 풀이의 아이디어는 3세기 초 중국의 수학자인 순체(Sun-Tzu)가 의해 정립되었다.
도 5는 본 발명의 실시예에 따른 QC-LDPC 부호를 결합하여 긴 길이의 QC-LDPC 부호를 설계하는 방법을 개략적으로 도시한 도면이다. 특히, 상기 도 5는 짧은 길이의 QC-LDPC 부호를 차이니즈 나머지 정리를 이용하여 긴 길이의 QC-LDPC 부호를 설계한다.
상기 도 5를 참조하면, 501단계에서
Figure 112005035824304-PAT00075
에 대하여 상기한 k번째 패리티 검사 행렬
Figure 112005035824304-PAT00076
의 지수값(
Figure 112005035824304-PAT00077
)이 무한대(
Figure 112005035824304-PAT00078
)인지 아닌지를 검사한다. 상기 검사 결과 상기 패리티 검사 행렬
Figure 112005035824304-PAT00079
의 지수값(
Figure 112005035824304-PAT00080
)이 무한대(
Figure 112005035824304-PAT00081
)가 아닌 경우에는 503단계로 진행한다. 상기 검사 결과 상기 패리티 검사 행렬
Figure 112005035824304-PAT00082
의 지수값(
Figure 112005035824304-PAT00083
)이 무한대(
Figure 112005035824304-PAT00084
)인 경우에는 507단계로 진행한다.
상기 503단계에서는 패리티 검사 행렬 H를 구성하는 순열 행렬 P의 크기인 L 값을 산출한다. 이때, 상기 L 값은 하기 <수학식 7>과 같이 나타낼 수 있다.
Figure 112005035824304-PAT00085
다음으로, 상기 503단계에서는 하기 <수학식 8>을 만족하는 임의의 상수
Figure 112005035824304-PAT00086
값을 결정한 후 505단계로 진행한다.
Figure 112005035824304-PAT00087
상기 <수학식 8>에서 상기
Figure 112005035824304-PAT00088
는 차이니즈 나머지 정리를 이용하여 지수를 결정하는 과정에서 필요한 상수로서, 새로 생성되는 패리티 검사 행렬에서의 거스가 기존의 패리티 검사 행렬의 거스보다 크거나 같음을 보장하기 위한 것이다.
다음으로, 상기 505단계에서는 상기 503단계에서 결정한 값 즉, 상기 순열 행렬 P의 크기인 상기 L 값과, 상기 소정의
Figure 112005035824304-PAT00089
값을 기반으로 하여 패리티 검사 행렬 H의 지수값(
Figure 112005035824304-PAT00090
)을 산출한 후 509단계로 진행한다. 상기 패리티 검사 행렬 H의 지수값(
Figure 112005035824304-PAT00091
)은 하기 <수학식 9>와 같이 구한다.
Figure 112005035824304-PAT00092
상기 <수학식 9>에서 상기 L은 새로 구하고자 하는 패리티 검사 행렬의 블록 크기를 나타낸다. 상기
Figure 112005035824304-PAT00093
는 상기 <수학식 8>을 만족하는 임의의 상수값을 나타낸다. 상기
Figure 112005035824304-PAT00094
는 1부터 s까지의 k 값에 대하여
Figure 112005035824304-PAT00095
를 모두 곱한 값 L에서 상기
Figure 112005035824304-PAT00096
를 나눈 값을 나타낸다. 본 발명은 s개의 패리티 검사 행렬을 기반으로 하여 그 보다 더 긴 길이의 패리티 검사 행렬을 설계하는 것에 관한 것이다. 따라서, 상기 s는 s개의 패리티 검사 행렬이 있음을 의미하며, k는 1부터 s까지 중의 숫자로 인덱스를 나타낸다.
다음으로, 상기 501단계에서 상기 검사 결과 상기 k번째 패리티 검사 행렬
Figure 112005035824304-PAT00097
의 지수값(
Figure 112005035824304-PAT00098
)이 무한대(
Figure 112005035824304-PAT00099
)인 경우, 즉, 모행렬 M(H)의
Figure 112005035824304-PAT00100
번째 행(row) 및
Figure 112005035824304-PAT00101
번째 열(column)이 0인 경우에는, 507단계에서 상기 <수학식 9>에 나타낸 패리티 검사 행렬 H의 지수값(
Figure 112005035824304-PAT00102
)는 무한대(
Figure 112005035824304-PAT00103
)로 설정하고, 상기 509단계로 진행한다. 이때,
Figure 112005035824304-PAT00104
인 상기 모행렬
Figure 112005035824304-PAT00105
과 상기 모행렬 M(H)는 모두 동일하다.
다음으로, 상기 505단계 또는 상기 507단계에서 모든
Figure 112005035824304-PAT00106
Figure 112005035824304-PAT00107
에 대하여 지수값(
Figure 112005035824304-PAT00108
)를 구한 후에는 상기 509단계로 진행한다. 상기 509단계에서는 지수 행렬 E(H)를 산출한 후 511단계로 진행한다. 여기서, 상기 지수 행렬 E(H)는 하기 <수학식 10>과 같이 정의할 수 있다.
Figure 112005035824304-PAT00109
다음으로, 상기 511단계에서는 상기 509단계에서 구한 상기 지수 행렬 E(H)를 기반으로 하여 즉, 상기 지수 행렬 E(H)와 상기 순열 행렬 P를 지수 결합(exponent coupling)하여 상기 패리티 검사 행렬 H를 구한다.
이하에서는 상기에서 살펴본 바와 같은 패리티 검사 행렬 H를 구하는 과정을 실시예를 통해 살펴보기로 한다.
이하에서는
Figure 112005035824304-PAT00110
을 만족하는
Figure 112005035824304-PAT00111
Figure 112005035824304-PAT00112
에 대하여
Figure 112005035824304-PAT00113
크기의 순열 행렬을 사용하는 QC-LDPC 부호
Figure 112005035824304-PAT00114
과,
Figure 112005035824304-PAT00115
크기의 순열 행렬을 사용하는 QC- LDPC 부호
Figure 112005035824304-PAT00116
를 정의하고, 상기
Figure 112005035824304-PAT00117
과 상기
Figure 112005035824304-PAT00118
를 지수 결합하여
Figure 112005035824304-PAT00119
를 사용하는 QC-LDPC 부호를 설계하는 방안에 대하여 설명한다.
먼저, 상기 부호
Figure 112005035824304-PAT00120
의 지수 행렬을
Figure 112005035824304-PAT00121
라 하고, 상기 부호
Figure 112005035824304-PAT00122
의 지수 행렬을
Figure 112005035824304-PAT00123
라 한다. 그리고, 상기 두 부호 즉, 상기
Figure 112005035824304-PAT00124
과 상기
Figure 112005035824304-PAT00125
에 대한 각각의 모행렬은
Figure 112005035824304-PAT00126
라고 가정한다.
다음으로, 상기에서 설명한 바와 같은 차이니즈 나머지 정리에 의하여 상기 두 개의 부호, 즉 상기
Figure 112005035824304-PAT00127
과 상기
Figure 112005035824304-PAT00128
을 지수 결합한 부호
Figure 112005035824304-PAT00129
의 지수 행렬
Figure 112005035824304-PAT00130
의 성분(element)
Figure 112005035824304-PAT00131
는 하기 <수학식 11>를 통해 산출한다.
Figure 112005035824304-PAT00132
상기 <수학식 11>에서, 상기
Figure 112005035824304-PAT00133
과 상기
Figure 112005035824304-PAT00134
는 각각
Figure 112005035824304-PAT00135
Figure 112005035824304-PAT00136
를 만족하는 정수를 나타낸다.
다음으로, 상기에서 구한 지수 행렬 E(H)와 상기
Figure 112005035824304-PAT00137
크기의 순열 행렬 P를 지수 결합하여 새로운 패리티 검사 행렬 H를 구한다.
이때, 상기에서 구한 새로운 QC-LDPC 부호의 상기 패리티 검사 행렬 H의 거스(girth)는 상기
Figure 112005035824304-PAT00138
Figure 112005035824304-PAT00139
의 각 거스보다 크거나 같다. 즉, 상술한 바와 같은 차이니즈 나머지 정리를 이용한 QC-LDPC 부호의 결합 방법으로, 구성 부호의 거스보다 같거나 크도록 QC-LDPC 부호를 설계할 수 있다. 이를 보다 구체적으로 살펴보면 다음과 같다.
먼저,
Figure 112005035824304-PAT00140
블록 사이클에 관련된 지수 체인을
Figure 112005035824304-PAT00141
라 하고, r은 하기 <수학식 12>를 만족하는 최소 양의 정수라 가정한다.
Figure 112005035824304-PAT00142
상기 r에 대하여
Figure 112005035824304-PAT00143
블록 사이클이 존재하는 QC-LDPC 부호는
Figure 112005035824304-PAT00144
의 사이클이 존재한다.
상기에서 정의한 바와 같이, 패리티 검사 행렬
Figure 112005035824304-PAT00145
각각의 모행렬
Figure 112005035824304-PAT00146
은 모두 같으므로 즉,
Figure 112005035824304-PAT00147
가 되므로, 상기 각 패리티 검사 행렬들은 같은 크기의 블록 사이클이 존재하게 된다. 이때, 그 크기가
Figure 112005035824304-PAT00148
이라고 할 때
Figure 112005035824304-PAT00149
,
Figure 112005035824304-PAT00150
,
Figure 112005035824304-PAT00151
과 같이 나타낼 수 있다.
여기서,
Figure 112005035824304-PAT00152
각각을 하기 <수학식 13>을 만족하는 최소의 정수라고 가정하면, 상기
Figure 112005035824304-PAT00153
의 블록 사이클이 존재하는 패리티 검사 행렬
Figure 112005035824304-PAT00154
에서 각각
Figure 112005035824304-PAT00155
의 사이클이 존재하며
Figure 112005035824304-PAT00156
이 됨을 알 수 있다.
Figure 112005035824304-PAT00157
Figure 112005035824304-PAT00158
Figure 112005035824304-PAT00159
따라서, 상기
Figure 112005035824304-PAT00160
과 상기
Figure 112005035824304-PAT00161
에서 각각
Figure 112005035824304-PAT00162
사이클이 존재한다고 하면, 상기
Figure 112005035824304-PAT00163
과 상기
Figure 112005035824304-PAT00164
를 차이니즈 나머지 정리를 기반으로 결합한 패리티 검사 행렬 H는
Figure 112005035824304-PAT00165
의 사이클이 존재한다. 즉, H의 최소 사이클은 상기
Figure 112005035824304-PAT00166
과 상기
Figure 112005035824304-PAT00167
의 최소 사이클 보다 크거나 같게 됨을 알 수 있다.
다시 말해, 새로운 지수 행렬
Figure 112005035824304-PAT00168
Figure 112005035824304-PAT00169
크기의 순환 순열 행렬을 적용하여
Figure 112005035824304-PAT00170
크기의 QC-LDPC 부호
Figure 112005035824304-PAT00171
를 생성할 수 있다. 여기서, 상기 QC-LDPC 부호
Figure 112005035824304-PAT00172
는 부호
Figure 112005035824304-PAT00173
들의 Tanner 그래프 상의 사이클 특성 보다 나빠지지 않기 때문에 심각한 성능 열화가 발생하지 않는다. 또한, 만일 M개의 QC-LDPC 부호의 지수 행렬이 저장되어 있다면 후술하는 본 발명의 실시예에 따른 지수 변환기를 이용하여
Figure 112005035824304-PAT00174
개의 새로운 QC-LDPC 부호를 생성할 수 있다.
상기에서 살펴본 바와 같이, 차이니즈 나머지 정리에 의하여 구한 부호의 최소 사이클은, 구성 부호의 최소 사이클보다 크다는 것이 보장된다. 이는 긴 길이의 QC-LDPC 부호를 설계하기 위하여 각각의 지수값들을 찾는 기존의 방법보다 훨씬 간단하면서도 최소 사이클을 보장하는 설계 방법임을 증명하고 있다.
다음으로, 상기에서 설명하는 본 발명의 실시예에 따른 결합 방법을 적용하기 위한 장치 구성에 대하여 하기 도 6을 참조하여 살펴보기로 한다.
도 6은 본 발명의 실시예에 따른 기능을 수행하기 위한 QC-LDPC 부호 생성 장치의 블록 구성을 개략적으로 도시한 도면이다.
상기 도 6을 설명하기에 앞서,
Figure 112005035824304-PAT00175
를 만족하는 양의 정수 k(
Figure 112005035824304-PAT00176
)에 대해서
Figure 112005035824304-PAT00177
크기의 순환 순열 행렬로 구성되어,
Figure 112005035824304-PAT00178
크기의 패리티 검사 행렬
Figure 112005035824304-PAT00179
를 가지는 QC-LDPC 부호를
Figure 112005035824304-PAT00180
라 가정한다. 또한 각 QC-LDPC 부호의 지수 행렬을
Figure 112005035824304-PAT00181
로 나타내기로 한다.
여기서 상기 각 지수 행렬
Figure 112005035824304-PAT00182
에서 원소가 무한대(
Figure 112005035824304-PAT00183
)인 위치 즉, 영 행렬 블록의 위치는 모두 동일하고,
Figure 112005035824304-PAT00184
에 대하여
Figure 112005035824304-PAT00185
Figure 112005035824304-PAT00186
는 서로 소라고 가정한다. 본 발명에서는 이러한 QC-LDPC 부호들의 지수 행렬을 메모리에 저장한다. 이때, 상기 무한대(
Figure 112005035824304-PAT00187
) 원소는 다른 지수와 구분할 수 있다면 어떠한 방법으로 저장해도 무관하다.
먼저, 상기 도 6은 QC-LDPC 부호들로부터 차이니즈 나머지 정리를 이용하여 새로운 QC-LDPC 부호를 생성하기 위한 블록 구성을 도시한 것이다. 상기 도 6을 참조하면, QC-LDPC 부호 지수 행렬 저장기(610)와, 지수 변환기(630)와, 지수 행렬 저장기(650) 및 QC-LDPC 부호 생성기(670)를 포함하여 구성된다.
이때, 상기 도 6에서는 상기 QC-LDPC 부호 지수 행렬 저장기(610)에 k 번째 QC-LDPC 부호
Figure 112005035824304-PAT00188
에 대한 지수행렬
Figure 112005035824304-PAT00189
이 저장되어 있음을 가정한다. 또한, 상기 QC-LDPC 부호 지수 행렬 저장기(610)에 저장되어 있는 s개의 지수 행렬을 기반으로 하여, 상기 지수 변환기(630)에서는 상기 <수학식 9>를 이용하여 설명한 지수 변환을 수행한다. 즉, 상기 QC-LDPC 부호 지수 행렬 저장기(610)에 저장되어 있는 s개 의 패리티 검사 행렬 H를 구성하는 순열 행렬들의 각 크기(L) 및 s개의 지수 행렬 E1(631), E2(633), ..., ES(635) 각각에 대한 패리티 검사 행렬 H의 지수값(
Figure 112005035824304-PAT00190
)을 산출한 후 상기 지수 행렬 저장기(650)로 출력한다.
다음으로, 상기 지수 변환기(630)의 출력값은 상기 지수 행렬 저장기(650)로 입력된다. 상기 지수 행렬 저장기(650)에서는 상기 지수 변환기(630)에서 구한 값을 기반으로 새로운 지수 행렬을 저장한다. 다음으로, 상기 QC-LDPC 부호 생성기(670)에서는 상기 지수 행렬 저장기(650)에 저장되어 있는 지수 행렬을 기반으로 하여 새로운 QC-LDPC 부호를 생성한다.
이하, 도 7을 참조하여 상기 도 6에 따른 실시예에 대하여 살펴보기로 한다.
도 7은 본 발명의 실시예에 따른 균일 QC-LDPC 부호의 적용 실시예를 도시한 도면이다.
먼저, 상기 도 7에서는 QC-LDPC 부호
Figure 112005035824304-PAT00191
및 QC-LDPC 부호
Figure 112005035824304-PAT00192
에 대한 지수 행렬을 각각
Figure 112005035824304-PAT00193
Figure 112005035824304-PAT00194
라 하고, 상기
Figure 112005035824304-PAT00195
Figure 112005035824304-PAT00196
의 각 패리티 검사 행렬의 순열 행렬의 크기(L1)(L2)를 각각
Figure 112005035824304-PAT00197
의 값을 가정한다.
상기 도 7을 참조하면, 상기 두 개의 부호
Figure 112005035824304-PAT00198
Figure 112005035824304-PAT00199
에 대한 지수 행렬
Figure 112005035824304-PAT00200
Figure 112005035824304-PAT00201
가 존재한다. 상기 지수 행렬
Figure 112005035824304-PAT00202
Figure 112005035824304-PAT00203
을 기반으로 하여, 지수 변환기(730)에서는 상기 <수학식 9>를 이용하여 새로운 패리티 검사 행렬 H에 대한 지수값(
Figure 112005035824304-PAT00204
)을 생성한다. 이후 상기 생성된 지수 값을 기반으로 새로 구하고자 하는 패리 티 검사 행렬의 블록 크기가 77 즉, L=77인 새로운 지수 행렬 E를 구할 수 있다.
여기서, 상기 차이니즈 나머지 정리를 이용하여 M개의 QC-LDPC 부호를 저장하는 경우를 가정하고, 상기 지수 변환기(730)를 사용하면 총
Figure 112005035824304-PAT00205
개의 QC-LDPC 부호가 저장되어 있는 것과 동일하다. 따라서, 필요한 메모리 양이
Figure 112005035824304-PAT00206
비율로 감소한다. 또한 새롭게 생성되는 QC-LDPC 부호들은 처음 저장된 부호들에 비해 Tanner 그래프 상의 사이클 특성이 개선되기 때문에 심각한 성능 열화가 발생하지 않는다.
한편, 상기한 바와 같은 본 발명은 순환 순열 행렬에 기반한 모든 QC-LDPC 부호에 적용할 수 있음은 물론이다.
즉, LDPC 부호류의 모든 부호는 상술한 바와 같이, factor 그래프 상에서 합곱 알고리즘(sum-product algorithm)으로 복호가 가능하다. 상기 복호 방식은 일반적으로, 크게 양방향 전달 방식과 흐름 전달 방식으로 나뉜다. 상기 양방향 전달 방식으로 복호를 할 때는 검사 노드당 노드 프로세서(processor)가 각각 존재하여 복호기의 복잡도가 검사 노드의 개수에 비례하여 복잡해지지만, 모든 노드가 동시에 갱신되므로 복호 속도가 매우 빨라진다. 상기 흐름 전달 방식은 반대로 한 개의 노드 프로세서가 존재하여 모든 factor 그래프 상의 노드를 지나가며 정보를 갱신하게 된다. 따라서 복호기의 복잡도는 매우 간단해지지만 패리티 검사 행렬의 크기가 커질수록 즉, 노드의 개수가 증가할수록 복호 속도가 느려지게 된다.
하지만, 본 발명에서 제안하는 다양한 부호율을 갖는 블록 LDPC 부호와 같이 블록 단위로 패리티 검사 행렬을 구성하게 되면, 복호시 블록의 개수만큼의 노드 프로세서를 이용함으로써, 상기 양방향 전달 방식보다는 복호기 복잡도가 작으며 상기 흐름 전달 방식보다는 복호 속도가 빠른 복호기를 구현할 수 있게 된다.
다음으로, 이하에서는 본 발명의 실시예에서의 기능을 수행하기 위한 LDPC 부호의 복호화 방안에 대하여 하기 도 8을 참조하여 설명하기로 한다.
도 8은 본 발명의 실시예에 따른 기능을 수행하기 위한 블록 부호율을 가지는 LDPC 부호의 복호화 장치의 예를 개략적으로 도시한 도면이다.
상기 도 8을 참조하면, 상기 다양한 부호율을 갖는 LDPC 부호의 복호화 장치는 블록 제어기(801), 변수 노드 파트(810), 가산기(803), 디인터리버(de-interleaver)(805), 인터리버(interleaver)(807), 메모리(memory)(809), 제어기(811), 패리티 검사 행렬 생성기(850), 가산기(813), 검사 노드 파트(820), 경판정기(815)로 구성된다. 상기 변수 노드 파트(810)는 변수 노드 복호기(812), 스위치(814)로 구성되고, 상기 검사 노드 파트(820)는 검사 노드 복호기(822)로 구성된다.
먼저, 상기 블록 제어기(801)에서 무선 채널을 통해 수신되는 수신 신호의 블록 크기를 결정한다. 상기 블록 제어기(801)에서 출력된 신호는 상기 변수 노드 파트(810)의 변수 노드 복호기(812)로 입력되며, 상기 변수 노드 복호기(812)는 상기 입력된 수신 신호의 확률 값들을 계산하고, 상기 계산된 확률 값들을 갱신(update)한 후 상기 스위치(814) 및 상기 가산기(803)로 출력한다. 상기 가산기(803)는 상기 변수 노드 복호기(812)에서 출력한 신호와 이전 반복 복호화 (iteration decoding) 과정에서의 상기 인터리버(807)의 출력 신호를 입력하고, 상기 변수 노드 복호기(812)에서 출력한 신호에서 이전 반복 복호화 과정에서의 상기 인터리버(807)의 출력 신호를 감산한 후 상기 디인터리버(805)로 출력한다. 여기서, 상기 복호화 과정이 최초의 복호화 과정일 경우, 상기 인터리버(807)의 출력 신호는 '0'이라고 간주해야 함은 물론이다.
상기 디인터리버(805)는 상기 가산기(803)에서 출력한 신호를 입력하여 미리 설정되어 있는 설정 방식에 상응하게 디인터리빙(de-interleaving)한 후 상기 가산기(813)와 검사 노드 복호기(822)로 출력한다. 상기 가산기(813)는 이전 반복 복호 과정에서의 상기 검사 노드 복호기(822)의 출력 신호와 상기 디인터리버(805)의 출력 신호를 입력하고, 상기 이전 반복 복호 과정에서의 상기 검사 노드 복호기(822)의 출력 신호에서 상기 디인터리버(805)의 출력 신호를 감산한 후 상기 인터리버(807)로 출력한다. 여기서, 상기 인터리버(807)는 상기 제어기(811)의 제어에 따라 미리 설정되어 있는 설정 방식으로 상기 가산기(813)에서 출력한 신호를 인터리빙한 후 상기 가산기(803) 및 상기 변수 노드 복호기(812)로 출력한다. 여기서, 상기 제어기(811)는 상기 메모리(809)에 저장되어 있는 인터리빙 방식에 관련된 정보를 읽어 상기 인터리버(807)의 인터리빙 방식을 제어한다.
상기 패리티 검사 행렬 생성기(850)에서는 상기 메모리(809)에 저장되어 있는 패리티 검사 행렬을 기반으로 하여 상기 제어기(811)에 의하여 현재 사용하고 있는 블록 길이에 대한 패리티 검사 행렬을 구한다. 이때 새로운 패리티 검사 행렬을 생성하기 위하여 상기에서 설명한 바와 같은 방법을 사용한다. 즉, 상기 도 6에 나타낸 바와 같은 지수 변환기(630)를 이용하여 상기 메모리(809)에 저장되어 있는 패리티 검사 행렬에 상응하는 새로운 패리티 검사 행렬을 구하여, 상기 메모리(809)에 저장한다. 이후 상기 메모리(809)에 저장한 상기 새로운 패리티 검사 행렬을 상기 인터리버(807) 및 디인터리버(805)에서 사용할 수 있도록 제어한다. 이때, 상기에서 설명한 바와 같이, 상기 새로 구한 패리티 검사 행렬을 상기 메모리(809)에 저장할 때에는 전체 패리티 검사 행렬을 저장할 수도 있고, 전체 패리티 검사 행렬 저장이 아닌 지수 행렬만을 저장할 수도 있다.
이때, 상기한 바와 같은 복호화 과정이 최초의 복호화 과정일 경우에는 상기 디인터리버(805)의 출력 신호는 '0'이라고 간주해야함은 물론이다.
다음으로, 미리 설정한 설정 반복 회수에 해당하는 반복 복호화를 수행한 후에는 상기 스위치(814)는 상기 변수 노드 복호기(812)와 가산기(803)간을 스위칭 오프(switching off)한 후, 상기 변수 노드 복호기(812)와 상기 경판정기(815)간을 스위칭 온(switching on)하여 상기 변수 노드 복호기(812)에서 출력한 신호가 상기 경판정기(815)로 출력하도록 한다. 상기 경판정기(815)는 상기 변수 노드 복호기(812)에서 출력한 신호를 입력하여 경판정한 후, 그 경판정 결과를 출력하게 되고, 상기 경판정기(815)의 출력값이 최종적으로 복호화된 값이 되는 것이다.
상기한 바와 같이 본 발명에서는 상기한 과정들을 반복적으로 수행함으로써, 오류 없이 신뢰도 높은 복호화를 수행할 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명은, 디지털 통신 시스템에서 짧은 사이클이 없는 LDPC 부호를 사용하여 오류 없이 데이터를 전송할 수 있다. 따라서, QC-LDPC 부호를 사용하여 수신된 데이터를 정확히 복원함으로서, 고품질의 신뢰도를 얻을 수 있는 이점을 가진다. 또한, 차이니즈 나머지 정리를 이용하여 구성 부호의 최소 사이클 보다 크거나 같은 최소 사이클을 보장하는 긴 길이의 QC-LDPC 부호를 설계함으로써, 보다 우수한 성능을 보장하는 LDPC 부호를 설계할 수 있다. 또한, 소수개의 QC-LDPC 부호로부터 차이니즈 나머지 정리를 이용하여 많은 수의 새로운 QC-LDPC 부호를 생성함으로써, 메모리 효율성을 증가시킬 수 있다.

Claims (45)

  1. 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 긴 길이의 저밀도 패리티 검사 부호 생성 방법에 있어서,
    소정의 메모리에 저장된 소정 개수의 지수 행렬들에 대하여 지수 변환하여 출력하는 과정과,
    상기 지수 변환되어 출력되는 값을 기반으로 새로운 지수 행렬을 생성하는 과정과,
    상기 생성된 새로운 지수 행렬을 이용하여 새로운 저밀도 패리티 검사 부호를 생성하는 과정을 포함함을 특징으로 하는 상기 방법.
  2. 제1항에 있어서,
    상기 지수 변환 과정은,
    소정 개수의 패리티 검사 행렬을 구성하는 순열 행렬들의 크기를 구하는 과정과,
    소정 개수의 지수 행렬들 각각에 대한 패리티 검사 행렬의 지수값을 산출하는 과정과,
    상기 순열 행렬들의 크기와 상기 지수값을 지수 변환하여 출력하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  3. 제2항에 있어서,
    상기 산출한 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00207
    )를 가지면, 상기 생성하고자 하는 패리티 검사 행렬을 무한대(
    Figure 112005035824304-PAT00208
    )로 설정하는 과정을 더 포함하는 것을 특징으로 하는 상기 방법.
  4. 제2항에 있어서,
    상기 산출한 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00209
    )가 아닌 경우, 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 산출하는 과정과,
    상기 산출 값을 이용하여 생성하고자 하는 패리티 검사 행렬의 지수값을 구하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  5. 제4항에 있어서,
    상기 순열 행렬의 크기는 하기와 같이 산출하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00210
    단, L은 순열 행렬의 크기로서, 순열 행렬 1에서부터 순열 행렬 s까지의 각 순열 행렬 크기를 모두 곱한 값을 나타냄.
  6. 제4항에 있어서,
    상기 패리티 검사 행렬의 지수값은 하기와 같이 구하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00211
    단, L은 새로 구하고자 하는 패리티 검사 행령의 블록 크기를 나타내며,
    Figure 112005035824304-PAT00212
    는 임의의 상수값을 나타내며,
    Figure 112005035824304-PAT00213
    는 1부터 s까지의 k 값에 대하여
    Figure 112005035824304-PAT00214
    를 모두 곱한 값 L에서
    Figure 112005035824304-PAT00215
    를 나눈 값을 나타냄.
  7. 제6항에 있어서,
    상기
    Figure 112005035824304-PAT00216
    는 차이니즈 나머지 정리를 이용하여 지수를 결정하는 과정에서 필요한 상수를 나타내며, 새로 생성되는 패리티 검사 행렬에서 거스(girth)가 기존의 패리티 검사 행렬의 거스보다 크거나 같음을 보장하기 위한 값인 것을 특징으로 하는 상기 방법.
  8. 제4항에 있어서,
    상기 지수 행렬은 하기 수학식과 같이 모든
    Figure 112005035824304-PAT00217
    행과
    Figure 112005035824304-PAT00218
    열에 대하여 산출하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00219
    단,
    Figure 112005035824304-PAT00220
    는 지수 행렬을 나타내며,
    Figure 112005035824304-PAT00221
    는 패리티 검사 행렬의 지수값을 나타냄.
  9. 제1항에 있어서,
    상기 지수 변환을 이용하여 상기 메모리에 이전에 저장된 패리티 검사 행렬에 상응하는 새로운 패리티 검사 행렬을 구하여 저장하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  10. 제9항에 있어서,
    상기 저장된 패리티 검사 행렬에 기반하여 생성되는 새로운 패리티 검사 행렬에 상응하는 지수 행렬만을 저장하는 것을 특징으로 하는 상기 방법.
  11. 제9항에 있어서,
    상기 저장된 패리티 검사 행렬에 기반하여 생성되는 새로운 패리티 검사 행렬에 상응하여 전체 패리티 검사 행렬을 저장하는 것을 특징으로 하는 상기 방법.
  12. 제1항에 있어서,
    상기 새로운 패리티 검사 행렬에 상응하여 시스템 설정에 따른 디인터리빙 및 인터리빙을 수행하고, 상기 인터리빙된 신호를 반복 복호하여 준순환 저밀도 패리티 검사 부호를 복호하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  13. 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 준순환 저밀도 패리티 검사 부호 생성 방법에 있어서,
    소정의 패리티 검사 행렬의 지수값에 상응하여 생성하고자 하는 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 산출하는 과정과,
    상기 산출한 값에 기반하여 상기 패리티 검사 행렬의 지수값을 산출하는 과정과,
    상기 지수값 산출 후 지수 행렬을 산출하는 과정과,
    상기 지수 행렬과 상기 순열 행렬을 지수 결합(exponent coupling)하여 상기 패리티 검사 행렬을 생성하는 과정을 포함함을 특징으로 하는 상기 방법.
  14. 제13항에 있어서, 상기 방법은,
    소정의 패리티 검사 행렬의 지수값을 확인하는 과정과,
    상기 소정의 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00222
    )가 아닌 경우, 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 산출하고, 상기 산출 값을 이용하여 생성하고자 하는 패리티 검사 행렬의 지수값을 구하는 과정과,
    상기 소정의 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00223
    )인 경우, 상기 생성하고자 하는 패리티 검사 행렬을 무한대(
    Figure 112005035824304-PAT00224
    )로 설정하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  15. 제13항에 있어서,
    상기 순열 행렬의 크기는 하기와 같이 산출하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00225
    단, L은 순열 행렬의 크기로서, 순열 행렬 1에서부터 순열 행렬 s까지의 각 순열 행렬 크기를 모두 곱한 값을 나타냄.
  16. 제13항에 있어서,
    상기 생성 패리티 검사 행렬의 지수값은 하기와 같이 산출하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00226
    단, L은 새로 구하고자 하는 패리티 검사 행렬의 블록 크기를 나타내며,
    Figure 112005035824304-PAT00227
    는 임의의 상수값을 나타내며,
    Figure 112005035824304-PAT00228
    는 1부터 s까지의 k 값에 대하여
    Figure 112005035824304-PAT00229
    를 모두 곱한 값 L에서
    Figure 112005035824304-PAT00230
    를 나눈 값을 나타냄.
  17. 제16항에 있어서,
    상기
    Figure 112005035824304-PAT00231
    는 차이니즈 나머지 정리를 이용하여 지수를 결정하는 과정에서 필요한 상수를 나타내며, 새로 생성되는 패리티 검사 행렬에서 거스(girth)가 기존의 패리티 검사 행렬의 거스보다 크거나 같음을 보장하기 위한 값인 것을 특징으로 하는 상기 방법.
  18. 제13항에 있어서,
    상기 지수 행렬은 하기 수학식과 같이 모든
    Figure 112005035824304-PAT00232
    행과
    Figure 112005035824304-PAT00233
    열에 대하여 산출하는 것을 특징으로 하는 상기 방법.
    Figure 112005035824304-PAT00234
    단,
    Figure 112005035824304-PAT00235
    는 지수 행렬을 나타내며,
    Figure 112005035824304-PAT00236
    는 패리티 검사 행렬의 지수값을 나타냄.
  19. 제13항에 있어서,
    상기 지수 결합하여 패리티 검사 행렬을 생성한 후, 소정의 메모리에 저장하는 과정을 포함하며,
    상기 저장 방법은, 상기 패리티 검사 행렬에 상응하는 지수 행렬만을 저장하는 것을 특징으로 하는 상기 방법.
  20. 제13항에 있어서,
    상기 지수 결합하여 패리티 검사 행렬을 생성한 후, 소정의 메모리에 저장하는 과정을 포함하며,
    상기 저장 방법은, 상기 패리티 검사 행렬 전체를 저장하는 것을 특징으로 하는 상기 방법.
  21. 제13항에 있어서,
    상기 새로운 패리티 검사 행렬에 상응하여 시스템 설정에 따른 디인터리빙 및 인터리빙을 수행하는 과정과,
    상기 인터리빙된 신호를 반복 복호하여 준순환 저밀도 패리티 검사 부호를 복호하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  22. 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 준순환 저밀도 패리티 검사 부호 생성 장치에 있어서,
    소정의 준순환 저밀도 패리티 검사 부호들에 대한 지수 행렬들을 저장하는 제1 메모리와,
    상기 제1 메모리에 저장된 소정 개수의 지수 행렬들에 대하여 지수 변환을 통해 생성하고자 하는 패리티 검사 행렬의 지수값을 산출하여 출력하는 지수 변환기와,
    상기 지수 변환기에서 출력하는 지수값을 기반으로 새로운 지수 행렬을 저장하는 제2 메모리와,
    상기 제2 메모리에 저장되어 있는 지수 행렬을 기반으로 새로운 준순환 저밀도 패리티 검사 부호를 생성하는 준순환 저밀도 패리티 검사 부호 생성기를 포함함을 특징으로 하는 상기 장치.
  23. 제22항에 있어서,
    상기 지수 변환기는 소정의 패리티 검사 행렬의 지수값에 상응하여 생성하고자 하는 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 계산하고, 상기 계산값을 이용하여 획득되는 상기 패리티 검사 행렬의 지수값으로부터 지수 행렬 출력하는 것을 특징으로 하는 상기 장치.
  24. 제22항에 있어서,
    상기 준순환 저밀도 패리티 검사 부호 생성기는, 지수 행렬과 순열 행렬을 지수 결합(exponent coupling)하여 준순환 패리티 검사 행렬을 생성하는 것을 특징으로 하는 상기 장치.
  25. 제22항에 있어서,
    상기 지수 변환기는, 상기 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00237
    )를 가지면, 생성하고자 하는 패리티 검사 행렬을 무한대로 설정하고, 상기 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00238
    )가 아니면, 패리티 검사 행렬을 구성하는 순열의 크기를 산출하고, 상기 산출 값을 이용하여 생성하고자 하는 패리티 검사 행렬의 지수값을 구하는 것을 특징으로 하는 상기 장치.
  26. 제25항에 있어서,
    상기 순열 행렬의 크기는 하기와 같이 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00239
    단, L은 순열 행렬의 크기로서, 순열 행렬 1에서부터 순열 행렬 s까지의 각 순열 행렬의 크기를 모두 곱한 값을 나타냄.
  27. 제22항에 있어서,
    상기 패리티 검사 행렬의 지수값은 하기와 같이 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00240
    단, L은 새로 구하고자 하는 패리티 검사 행렬의 블록 크기를 나타내며,
    Figure 112005035824304-PAT00241
    는 임의의 상수값을 나타내며,
    Figure 112005035824304-PAT00242
    는 1부터 s까지의 k 값에 대하여
    Figure 112005035824304-PAT00243
    를 모두 곱한 값 L에서
    Figure 112005035824304-PAT00244
    를 나눈 값을 나타냄.
  28. 제27항에 있어서,
    상기
    Figure 112005035824304-PAT00245
    는 차이니즈 나머지 정리를 이용하여 지수를 결정하는 과정에서 필요한 상수를 나타내며, 새로 생성되는 패리티 검사 행렬에서 거스(girth)가 기존의 패리티 검사 행렬의 거스보다 크거나 같음을 보장하기 위한 값인 것을 특징으로 하는 상기 장치.
  29. 제22항에 있어서,
    상기 지수 행렬은 하기와 같이 모든
    Figure 112005035824304-PAT00246
    행과
    Figure 112005035824304-PAT00247
    열에 대하여 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00248
    단,
    Figure 112005035824304-PAT00249
    는 지수 행렬을 나타내며,
    Figure 112005035824304-PAT00250
    는 패리티 검사 행렬의 지수값을 나타냄.
  30. 제22항에 있어서,
    상기 제2메모리는, 상기 패리티 검사 행렬에 상응하는 지수 행렬만을 저장하거나, 전체 패리티 검사 행렬을 저장하는 것을 특징으로 하는 상기 장치.
  31. 오류 정정 부호를 사용하는 디지털 통신 시스템에서, 긴 길이의 저밀도 패리티 검사 부호를 생성하는 장치에 있어서,
    결정된 패리티 검사 행렬을 구성하는 열들 각각의 가중치에 상응하게 변수 노드들을 연결하여 수신 신호의 확률 값들을 검출하여 출력하는 변수 노드 복호기와,
    상기 변수 노드 복호기에서 출력한 신호를 입력하여 상기 결정된 패리티 검사 행렬에 상응하게 설정된 디인터리빙 방식으로 디인터리빙하여 출력하는 디인터리버와,
    상기 결정된 패리티 검사 행렬을 구성하는 행들 각각의 가중치에 상응하게 검사 노드들을 연결하여 상기 디인터리버에서 출력한 신호의 확률 값들을 검출하여 출력하는 검사 노드 복호기와,
    상기 검사 노드 복호기에서 출력한 신호를 상기 결정된 패리티 검사 행렬에 상응하게 설정된 인터리빙 방식으로 인터리빙하여 상기 변수 노드 복호기로 출력하는 인터리버와,
    상기 디인터리버 방식 및 인터리빙 방식을 상기 결정된 패리티 검사 행렬에 상응하게 제어하는 제어기와,
    소정의 제어에 따라 메모리에 저장된 패리티 검사 행렬을 기반으로 하여 현재 사용하고 있는 블록 길이에 대한 패리티 검사 행렬을 생성하는 패리티 검사 행렬 생성기를 포함함을 특징으로 하는 상기 장치.
  32. 제31항에 있어서,
    상기 장치는, 복호할 블록 저밀도 패리티 검사 부호의 길이에 상응하게 소정의 패리티 검사 행렬을 사용할지를 결정하는 블록 제어기를 포함하는 것을 특징으로 하는 상기 장치.
  33. 제31항에 있어서,
    상기 장치는, 상기 변수 노드 복호기에서 출력한 신호에서 이전 복호시 생성된 신호를 감산하여 출력하는 제1가산기를 포함하는 것을 특징으로 하는 상기 장치.
  34. 제31항에 있어서,
    상기 장치는, 상기 검사 노드 복호기에서 출력한 신호에서 상기 디인터리버에서 출력한 신호를 감산하는 제2가산기를 포함하는 것을 특징으로 하는 상기 장치.
  35. 제31항에 있어서,
    상기 패리티 검사 행렬 생성기는 지수 변환을 통해 메모리에 저장된 패리티 검사 행렬에 상응하는 새로운 패리티 검사 행렬을 생성하여 상기 메모리에 저장하고, 상기 새롭게 저장된 패리티 검사 행렬을 통해 상기 인터리버 및 디인터리버에 제공하는 것을 특징으로 하는 상기 장치.
  36. 제31항에 있어서,
    상기 패리티 검사 행렬 생성기는 새로 생성하는 패리티 검사 행렬에 대하여 전체 패리티 검사 행렬을 상기 메모리에 저장하는 것을 특징으로 하는 상기 장치.
  37. 제31항에 있어서,
    상기 패리티 검사 행렬 생성기는 새로 생성하는 패리티 검사 행렬에 대하여 지수 행렬만을 상기 메모리에 저장하는 것을 특징으로 하는 상기 장치.
  38. 제31항에 있어서,
    상기 패리티 검사 행렬 생성기는 상기 메모리에 저장된 소정의 지수 행렬들에 대하여 지수 변환을 통해 생성하고자 하는 패리티 검사 행렬의 지수값을 산출하여 출력하는 지수 변환기를 포함하는 것을 특징으로 하는 상기 장치.
  39. 제38항에 있어서,
    상기 지수 변환기는 소정의 패리티 검사 행렬의 지수값에 상응하여 생성하고자 하는 패리티 검사 행렬을 구성하는 순열 행렬의 크기를 계산하고, 상기 계산값을 이용하여 획득되는 상기 패리티 검사 행렬의 지수값으로부터 지수 행렬을 출력하는 것을 특징으로 하는 상기 장치.
  40. 제38항에 있어서,
    상기 지수 변환기는 상기 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00251
    )를 가지면, 생성하고자 하는 패리티 검사 행렬을 무한대로 설정하고, 상기 패리티 검사 행렬의 지수값이 무한대(
    Figure 112005035824304-PAT00252
    )가 아니면, 패리티 검사 행렬을 구성하는 순열의 크기를 산출하고, 상기 산출 값을 이용하여 생성하고자 하는 패리티 검사 행렬의 지수값을 구하는 것을 특징으로 하는 상기 장치.
  41. 제40항에 있어서,
    상기 순열 행렬의 크기는 하기와 같이 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00253
    단, L은 순열 행렬의 크기로서, 순열 행렬 1에서부터 순열 행렬 s까지의 각 순열 행렬의 크기를 모두 곱한 값을 나타냄.
  42. 제38항에 있어서,
    상기 패리티 검사 행렬의 지수값은 하기와 같이 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00254
    단, L은 새로 구하고자 하는 패리티 검사 행렬의 블록 크기를 나타내며,
    Figure 112005035824304-PAT00255
    는 임의의 상수값을 나타내며,
    Figure 112005035824304-PAT00256
    는 1부터 s까지의 k 값에 대하여
    Figure 112005035824304-PAT00257
    를 모두 곱한 값 L에서
    Figure 112005035824304-PAT00258
    를 나눈 값을 나타냄.
  43. 제42항에 있어서,
    상기
    Figure 112005035824304-PAT00259
    는 차이니즈 나머지 정리를 이용하여 지수를 결정하는 과정에서 필요한 상수를 나타내며, 새로 생성되는 패리티 검사 행렬에서 거스(girth)가 기존의 패리티 검사 행렬의 거스보다 크거나 같음을 보장하기 위한 값인 것을 특징으로 하 는 상기 장치.
  44. 제38항에 있어서,
    상기 지수 행렬은 하기와 같이 모든
    Figure 112005035824304-PAT00260
    행과
    Figure 112005035824304-PAT00261
    열에 대하여 산출하는 것을 특징으로 하는 상기 장치.
    Figure 112005035824304-PAT00262
    단,
    Figure 112005035824304-PAT00263
    는 지수 행렬을 나타내며,
    Figure 112005035824304-PAT00264
    는 패리티 검사 행렬의 지수값을 나타냄.
  45. 제31항에 있어서,
    상기 패리티 검사 행렬 생성기는 지수 행렬과 순열 행렬을 지수 결합(exponent coupling)하여 준순환 패리티 검사 행렬을 생성하는 준순환 저밀도 패리티 검사 부호 생성기를 포함하는 것을 특징으로 하는 상기 장치.
KR1020050059169A 2005-07-01 2005-07-01 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치 KR100941680B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050059169A KR100941680B1 (ko) 2005-07-01 2005-07-01 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
US11/478,831 US7725801B2 (en) 2005-07-01 2006-06-30 Method of generating quasi-cyclic low density parity check codes and an apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050059169A KR100941680B1 (ko) 2005-07-01 2005-07-01 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20070003294A true KR20070003294A (ko) 2007-01-05
KR100941680B1 KR100941680B1 (ko) 2010-02-12

Family

ID=37718944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050059169A KR100941680B1 (ko) 2005-07-01 2005-07-01 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치

Country Status (2)

Country Link
US (1) US7725801B2 (ko)
KR (1) KR100941680B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11929762B2 (en) 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350625B (zh) * 2007-07-18 2011-08-31 北京泰美世纪科技有限公司 一种高效通用的qc-ldpc码译码器及其译码方法
US8219873B1 (en) 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
CN101741396B (zh) 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
KR20100058260A (ko) * 2008-11-24 2010-06-03 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법
CN102859885B (zh) * 2010-04-09 2015-10-07 Sk海尼克斯存储技术公司 Ldpc选择性解码调度的实现
CN104202059B (zh) * 2014-09-23 2017-05-10 西安空间无线电技术研究所 一种用于构造围长12 qc‑ldpc码的确定性设计方法
KR20170060562A (ko) * 2015-11-24 2017-06-01 삼성전자주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
WO2017091018A1 (en) * 2015-11-24 2017-06-01 Samsung Electronics Co., Ltd. Method and apparatus for channel encoding/decoding in a communication or broadcasting system
US10318389B2 (en) * 2016-07-15 2019-06-11 Quantum Corporation Joint de-duplication-erasure coded distributed storage
US10484010B2 (en) * 2016-12-20 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN108540142B (zh) * 2017-03-06 2021-11-12 瑞昱半导体股份有限公司 接收装置及其控制方法
US11152958B2 (en) * 2019-12-09 2021-10-19 Western Digital Technologies, Inc. Very low complexity SECDED codes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR20050044963A (ko) * 2003-11-08 2005-05-16 삼성전자주식회사 q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
US7757150B2 (en) * 2004-08-13 2010-07-13 Nokia Corporation Structured puncturing of irregular low-density parity-check (LDPC) codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11929762B2 (en) 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Also Published As

Publication number Publication date
US7725801B2 (en) 2010-05-25
US20070033483A1 (en) 2007-02-08
KR100941680B1 (ko) 2010-02-12

Similar Documents

Publication Publication Date Title
KR100941680B1 (ko) 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR100713371B1 (ko) 블록 저밀도 패리티 검사 부호 부호화/복호 장치 및 방법
KR100678176B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678175B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100809616B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100724922B1 (ko) 가변 부호화율을 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
JP7372369B2 (ja) 構造的ldpcの符号化、復号化方法および装置
KR100739510B1 (ko) 반구조적 블록 저밀도 패리티 검사 부호 부호화/복호 장치및 방법
KR100594818B1 (ko) 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
KR100809619B1 (ko) 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100946905B1 (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
KR100913876B1 (ko) 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR101009785B1 (ko) 불균일 반복 축적 부호 부호화/복호화 장치 및 방법
US9075738B2 (en) Efficient LDPC codes
RU2369008C2 (ru) Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока
KR20060064491A (ko) Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
RU2743857C1 (ru) Способ и оборудование проектирования для квазициклического разреженного контроля по четности
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
KR20070025522A (ko) Ldpc 부호의 복호 방법
KR20060016061A (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR101447751B1 (ko) 블록 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서패리티 검사 행렬 생성 장치 및 방법
KR101354731B1 (ko) 통신 시스템에서 연접 저밀도 생성 행렬 부호 부호화/복호장치 및 방법
KR20110008652A (ko) 통신 시스템에서 테일 바이팅을 이용한 구조적 비균일 저밀도 돌림형 부호 구조에 따른 복호화 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180130

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190130

Year of fee payment: 10