KR100983692B1 - 통신 장치 및 복호 방법 - Google Patents

통신 장치 및 복호 방법 Download PDF

Info

Publication number
KR100983692B1
KR100983692B1 KR1020087000887A KR20087000887A KR100983692B1 KR 100983692 B1 KR100983692 B1 KR 100983692B1 KR 1020087000887 A KR1020087000887 A KR 1020087000887A KR 20087000887 A KR20087000887 A KR 20087000887A KR 100983692 B1 KR100983692 B1 KR 100983692B1
Authority
KR
South Korea
Prior art keywords
processing
row
llr
column
row processing
Prior art date
Application number
KR1020087000887A
Other languages
English (en)
Other versions
KR20080015145A (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 미쓰비시덴키 가부시키가이샤
Publication of KR20080015145A publication Critical patent/KR20080015145A/ko
Application granted granted Critical
Publication of KR100983692B1 publication Critical patent/KR100983692B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명에 따른 통신 장치는, LDPC 부호화된 부호어를 복호하는 수신측의 통신 장치로서, 복호의 도중 결과를 유지하는 도중 결과 유지부(21)와, 검사 행렬에서의 각 열 및 각 행에 대해서 열 처리용 LLR을 연산하는 행 처리를 소정 횟수에 걸쳐서 반복 실행하는 행 처리부(22)와, 검사 행렬의 각 열 및 각 행에 대해서 행 처리용 LLR을 연산하고, 또한, 행 가중치분의 행 처리용 LLR의 절대값의 최소 k값을 도중 결과 유지부(21)에 유지하는 열 처리를, 소정 횟수에 걸쳐서 반복 실행하는 열 처리부(23)를 구비하되, 행 처리부(22)와 열 처리부(23)가 열 단위로 교대로 처리를 행하고, 열 처리부(23)가 순회적으로 각 행의 최소 k값을 갱신하면서, 행 처리부(22)가 근사적인 최소값을 이용하여 연산을 하는 것으로 하였다.

Description

통신 장치 및 복호 방법{COMMUNICATION APPARATUS AND DECODING METHOD}
본 발명은 디지털 통신에 있어서의 오류 정정 기술에 관한 것으로, 특히, LDPC(Low-Density Parity Check) 부호화된 신호를 복호하는 수신측의 통신 장치 및 그 복호 방법에 관한 것이다.
LDPC 부호를 복호하는 기본적인 알고리즘으로서, 「Sum-Product 알고리즘」과 「Min-Sum 알고리즘」이 있으며, 이것들은 수신 신호의 확률적인 신뢰도 정보인 대수 우도비(LLR: Log Likelihood Ratio)를 산출하면서 반복 연산을 행함으로써 복호 처리를 실행한다(비특허 문헌 1 참조). 상기 「Sum-Product 알고리즘」은 복호 성능은 우수하지만, 수학 함수를 이용한 연산이 요구되기 때문에, 테이블을 유지할 필요가 생기는 등 실장하기 위해서는 계산 비용이 높다. 또한, 적어도 "0", "1"의 2원(元)의 검사 행렬에 포함되는 "1"의 수만큼 중간값을 기억하는 메모리가 필요하다. 한편, 「Min-Sum 알고리즘」은 수학 함수를 필요로 하지 않아, 계산 비용은 작아지지만, 복호 성능이 열화한다.
여기서, 상기 「Sum-Product 알고리즘」에 대해서 설명한다. 먼저, 송신기 측에서는, M행×N열의 패리티 검사 행렬 H를 이용하여 송신 데이터를 LDPC 부호화하여, 부호어 c=(c1, c2, …, cN), cn=0, 1을 생성한다(n=1, 2, …, N). 그리고, 이 부호어 c에 대하여, 예를 들면, BPSK(Binary Phase Shift Keying) 변조 등의 변조 처리를 실행하여, 변조 신호 x=(x1, x2, …, xN)를 송신한다.
한편, 수신기측에서는, 가법성 백색 가우스 통신로(Additive White Gaussian Noise Channel: AWGN 통신로)를 경유하여, 하기 (1)식과 같이 표기되는 신호 y=(y1, y2, …, yN)를 수신한다.
Figure 112008002456706-pct00001
또한, en은 평균 0, 분산값 σ2=N0/2로 되는 가우스 잡음 계열이다.
그리고, 수신기측에서는, 상기 통신로를 거쳐서 수취한 변조 신호에 대하여, 상기 BPSK 변조에 따른 소정의 디지털 복조를 행하고, 또한, 복조 결과로부터 얻어지는 대수 우도비(LLR)에 대하여 「Sum-Product 알고리즘」에 의한 반복 복호를 실시하여, 최종적으로 경판정 결과를 출력한다.
계속해서, 상기 수신기에 있어서 실시되는 종래의 복호 방법 「Sum-Product 알고리즘」을 이하에 나타낸다.
(초기화 단계)
먼저, 반복 횟수 l=1 및 최대 반복 횟수 lmax를 설정하고, 또한, 초기시에 있 어서의, 비트 노드로부터 체크 노드로의 LLR:βmn (l=1)로서, 하기 (2)식에 표시하는 바와 같이 수신 LLR:λn을 입력한다.
Figure 112008002456706-pct00002
(행 처리 단계)
다음에, 행 처리로서, 각 m, n에 대해서 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를, 하기 (3)식에 의해 갱신한다.---
Figure 112008002456706-pct00003
단, N(m)는 m행째의 "1"을 가지는 열 번호의 집합을 나타내고, n'는 n 이외의 N(m)를 나타내고, βmn' (l-1)는 n열째 이외의 (l-1)회의 비트 노드로부터 체크 노드로의 LLR을 나타낸다.
(열 처리 단계)
다음에, 열 처리로서, 각 m, n에 대해서, 비트 노드 n으로부터 체크 노드 m 으로 보내는 비트 n의 반복 l회째의 LLR:βmn (l)를, 하기 (4)식에 의해 갱신한다.
Figure 112008002456706-pct00004
또한, 각 n에 대해서, 경판정을 위한, 비트 n의 반복 l회째의 사후 값 βn (l)을 하기 (5)식에 의해 갱신한다.
Figure 112008002456706-pct00005
단, M(n)는 n열째의 "1"를 가지는 행 번호의 집합을 나타내고, m'는 m 이외의 M(n)를 나타내며, αm'n (l)는 m행째 이외의 l회째의 체크 노드로부터 비트 노드로의 LLR을 나타낸다.
(정지 규범)
그 후, 예를 들면, 비트 n의 반복 l회째의 사후 값 βn (l)이 「βn (l)>0」인 경우에는, 복호 결과 「xn'=1」로 하고(x'는 본래의 송신 신호 x에 대응), 한편, 「βn (l)≤0」인 경우에는, 복호 결과 「xn'=0」이라고 하여, 복호 결과 x'=(x1', x2', …, xN')를 얻는다.
그리고, 패리티 검사의 결과가 「Hx'=0」 또는 반복 횟수가 「l=lmax」인 경우(어느 하나의 조건을 만족하고 있는 경우)에, 그때의 복호 결과 x'를 출력한다. 또한, 상기 2개의 조건 중 어느 한쪽도 만족하고 있지 않은 경우에는, 「l=l+1」로 하여, 상기 행 처리로 되돌아가고, 이후, 순서대로 연산을 실행한다.
비특허 문헌 1: 저밀도 패리티 검사 부호와 그 복호법 LDPC(Low Density Parity Check) 부호/sum-product 복호법, 와다 야마쇼우 저, 토리켑스
발명의 개시
발명이 해결하고자 하는 과제
그러나, 상기 「Sum-Product 알고리즘」은 복호 성능이 우수하다고 알려져 있지만, 한편으로, 수학 함수를 이용한 반복 연산(tanh-1의 연산)이 요구되기 때문에, 하드웨어, 소프트웨어 중 어느 쪽으로 실현하더라도 수신기측의 계산 부하가 높아진다는 문제가 있었다. 또한, 계산 부하를 저감시키기 위해서 소정의 테이블을 유지하는 방법(테이블 룩업)도 있지만, 이 테이블을 유지하기 위해서 필요한 메모리량이 증대한다는 문제가 있었다.
또한, 상기 「Sum-Product 알고리즘」에 있어서는, 적어도 "0", "1"의 2원(元)의 검사 행렬에 포함되는 "1(가중치)"의 수만큼 중간값(행마다의 대수 우도비, 반복할 때마다의 갱신값 등)을 기억하기 위한 메모리가 필요하게 된다. 즉, 메모리의 소비량이 매우 높아진다는 문제가 있었다. 또한, 「Sum-Product 알고리즘」에 있어서는, 양자화 비트 수가 많고, 반복 횟수가 많은 등의 문제도 있다.
본 발명은 상기한 점을 감안하여 이루어진 것으로서, LDPC 부호화된 부호어의 복호 처리에 있어서, 계산량 및 메모리량을 삭감 가능한 통신 장치 및 복호 방법을 얻는 것을 목적으로 한다. 또한, 양자화 사이즈의 축소, 또는, 반복 횟수의 삭감을 실현하는 통신 장치 및 복호 방법을 얻는 것을 목적으로 한다.
과제를 해결하기 위한 수단
상술한 과제를 해결하여, 목적을 달성하기 위해서, 본 발명에 따른 통신 장치는, LDPC 부호화된 부호어를 검사 행렬을 이용하여 복호하는 통신 장치에 있어서, 복호 알고리즘에서의 소정의 처리에 의해 얻어지는 중간값을 유지하는 유지 수단과, 검사 행렬에서의 행 가중치에 대응한 대수 우도비(비트 노드로부터 체크 노드로 보내는 대수 우도비: 행 처리용 LLR이라고 함)의 절대값에 근거하여, 열 처리에서 이용하는 대수 우도비(체크 노드로부터 비트 노드로 보내는 대수 우도비: 열 처리용 LLR이라고 함)를 연산하는 행 처리를 실행하는 행 처리 수단과, 열 가중치에 대응한 열 처리용 LLR을 이용하여, 행 처리에서 이용하는 행 처리용 LLR을 연산하고, 또한, 행 처리용 LLR의 절대값의 최소 k값을 상기 유지 수단에 유지하는 열 처리를 실행하는 열 처리 수단을 구비하고, 상기 열 처리 수단이 행의 상기 최소 k값을 갱신하면서 복호를 행하는 것을 특징으로 한다.
발명의 효과
본 발명에 의하면, LDPC 복호에 있어서, 행 처리를 위한 LLR의 절대값을 순회 구조에 의해 행 단위로 최소 k값으로 축소하는 것으로 했기 때문에, 그것들을 유지하기 위한 메모리량을 대폭 삭감할 수 있다는 효과를 나타낸다. 또한, 본 발명에 의하면, 종래의 「Min-Sum 알고리즘」보다도 확률 전파를 효율적으로 행할 수 있기 때문에, 복호의 반복 횟수를 대폭 삭감할 수 있고, 나아가서는, 복호 처리에 있어서의 계산량을 대폭 저감시킬 수 있다는 효과를 나타낸다.
도 1은 LDPC 부호화기 및 LDPC 복호기를 포함하는 통신 시스템의 구성예를 나타내는 도면,
도 2는 LDPC 복호기에 있어서 「Min-Sum 알고리즘」의 행 처리 단계를 실행하는 경우의 행 처리부의 구성예를 나타내는 도면,
도 3은 LDPC 복호기에 있어서 「Min-Sum 알고리즘」의 열 처리 단계를 실행하는 경우의 열 처리부의 구성예를 나타내는 도면,
도 4는 「Min-Sum 알고리즘」에 있어서의 처리의 흐름을 나타내는 흐름도,
도 5a는 실시예 1의 LDPC 복호기의 구성예를 나타내는 도면,
도 5b는 실시예 1의 LDPC 복호기의 구성예를 나타내는 도면,
도 6은 「순회 근사 min 알고리즘」에 있어서 행 처리를 실행하는 행 처리부의 구성예를 나타내는 도면,
도 7a는 「순회 근사 min 알고리즘」에 있어서 열 처리를 실행하는 열 처리부의 구성예를 나타내는 도면,
도 7b는 「순회 근사 min 알고리즘」에 있어서 열 처리를 실행하는 열 처리부의 구성예를 나타내는 도면,
도 8은 n=15의 열 처리에 있어서, Min2LLR에 n=15의 정보가 유지되어 있는 경우의 처리를 나타내는 도면,
도 9는 「순회 근사 min 알고리즘」에 있어서의 처리의 흐름을 나타내는 흐름도,
도 10은 열 번호 표기를 표시하는 도면,
도 11은 「순회 근사 min 알고리즘」과 「Min-Sum 알고리즘」의 비교 시뮬레이션의 결과를 나타내는 도면,
도 12는 「순회 근사 min 알고리즘」과 「Min-Sum 알고리즘」의 비교 시뮬레이션의 결과를 나타내는 도면,
도 13은 실시예 2의 LDPC 복호기의 구성예를 나타내는 도면,
도 14는 반복 횟수에 대한 성능 비교를 나타내는 도면,
도 15는 실시예 3의 행 처리를 실행하는 행 처리부의 구성예를 나타내는 도면,
도 16은 실시예 4의 행 처리를 실행하는 행 처리부의 구성예를 나타내는 도면,
도 17은 「δ min 알고리즘」에 대하여 「순회 근사 min 알고리즘」 또는 「 Overlapped 순회 근사 min 알고리즘」을 적용한 복호 알고리즘과, 「Sum-Product 알고리즘」의 비교 결과를 나타내는 도면,
도 18은 실시예 5의 행 처리를 실행하는 행 처리부의 구성예를 나타내는 도면,
도 19는 실시예 6의 「직렬 순회 근사 min 알고리즘」에 있어서 열 처리를 실행하는 열 처리부의 구성예를 나타내는 도면.
부호의 설명
1: LDPC 부호화기, 2: 변조기, 3: 통신로, 4: 복조기, 5: LDPC 복호기, 11: 수신 LLR 산출부, 12: 복호 코아부, 21, 21a: 도중 결과 유지부, 22, 22-1, 22-2, 22-G: 행 처리부, 23, 23-1, 23-2, 23-G: 열 처리부, 24: 복호 결과 판정부, 25, 25a: 제어부, 31, 31a, 31b, 31c: 최소값 선택부, 32: 부호 연산부, 33: LLR 산출부, 41: α가산부, 42: λ가산부, 43: 최소 k값 비교부, 44: 부호 연산부, 45: 스위치
발명을 실시하기 위한 최선의 형태
이하에, 본 발명에 따른 통신 장치 및 복호 방법의 실시예를 도면에 근거하여 상세하게 설명한다. 또한, 이 실시예에 의해 본 발명이 한정되는 것은 아니다. 또한, 본 발명에 따른 복호 방법은, 일례로서, 휴대 전화 등의 무선 통신에 있어서 단말 및 기지국에서의 복호 처리로서 적용 가능하다. 또한, 위성 통신, HDD, 광통신, 무선 LAN, 양자 암호, 그 밖의 복호 처리로서 적용 가능하다.
(실시예 1)
먼저, 본 발명에 따른 통신 장치 및 복호 방법을 실현하기 위한 LDPC 복호기의, 통신 시스템 내에서의 위치를 부여에 대해서 설명한다. 도 1은 LDPC 부호화기 및 LDPC 복호기를 포함하는 통신 시스템의 구성예를 나타내는 도면이다. 도 1에서, 송신측의 통신 장치(송신 장치라고 함)는 LDPC 부호화기(1)와 변조기(2)를 포함하는 구성으로 하고, 수신측의 통신 장치(수신 장치라고 함)는 복조기(4)와 LDPC 복호기(5)를 포함하는 구성으로 한다.
여기서, LDPC 부호를 채용하는 통신 시스템에 있어서의 부호화 처리, 복호 처리의 흐름을 간단하게 설명한다. 송신 장치 내의 LDPC 부호화기(1)에서는, 예를 들면, 기지의 방법에 의해 K행×N열의 생성 행렬 G(K: 정보 길이, N: 부호어 길이)를 생성한다. 그리고, 정보 길이 K의 메시지(m1, m2, …, mK)를 수취하고, 이 메시지 및 상기 생성 행렬 G를 이용하여, 하기 (6)식과 같이 부호어 C를 생성한다. 단, LDPC용의 패리티 검사 행렬을 H(M행×N열)로 한 경우, 생성 행렬 G는 GHT=0(T는 전치 행렬), H(c1, c2, …, cN)T=0을 만족하는 행렬로 된다.
Figure 112008002456706-pct00006
그리고, 변조기(2)에서는, LDPC 부호화기(1)에서 생성한 부호어 C에 대하여, BPSK, 다치 PSK, 다치 QAM 등의 소정의 변조 방식에 의해 디지털 변조를 행하여, 그 변조 신호 x=(x1, x2, …, xN)를 통신로(3)를 거쳐서 수신 장치에 송신한다.
한편, 수신 장치에서는, 복조기(4)가, 통신로(3)를 거쳐서 수취한 변조 신호 y=(y1, y2, …, yN)에 대하여 상기 BPSK, 다치 PSK, 다치 QAM 등의 변조 방식에 따른 디지털 복조를 행하고, 또한, LDPC 복호기(5)가, 복조 결과로부터 얻어지는 대수 우도비(LLR)를 이용하여, 후술하는 본 실시예의 복호 알고리즘에 의한 반복 복호를 실시하며, 그 복호 결과로서 경판정값(본래의 메시지 m1, m2, …, mK에 대응)을 출력한다.
계속해서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 종래의 복호 알고리즘인 「Min-Sum 알고리즘」에 대해서 설명한다.
「Min-Sum 알고리즘」에서는, 먼저, 전술한 「Sum-Product 알고리즘」과 마찬가지의 초기화 단계를 실행하고, 다음에, 상기 「Min-Sum 알고리즘」의 행 처리 단계를 실행하며, 그 후, 전술한 「Sum-Product 알고리즘」과 마찬가지의 열 처리 단계 및 정지 규범을 실행함으로써, 확률 정보의 산출 처리 및 갱신 처리를 행한다. 이하에서는, 「Sum-Product 알고리즘」과 처리가 상이한 「Min-Sum 알고리즘」의 행 처리 단계에 대해서 설명한다.
도 2는 LDPC 복호기에 있어서 「Min-Sum 알고리즘」의 행 처리 단계를 실행하는 경우의 행 처리부의 구성예를 나타내는 도면이다. 이 행 처리부는, 패리티 검사 행렬 H의 행 가중치분의 LLR:βmn' (l-1)를 유지하는 메모리부(111), 각 LLR을 대소 비교하여 LLR의 최소값을 출력하는 비교부(112)를 구비한 최소값 선택부(101)와, 상기 행 가중치분의 LLR의 부호를 유지하는 메모리부(113), 각 LLR의 부호(+ 또는 -)를 승산하는 승산기(114)를 구비한 부호 연산부(102)와, 최소값 선택부(101)로부터 얻어지는 최소값과 부호 연산부(102)로부터 얻어지는 부호의 승산 결과(+ 또는 -)를 승산함으로써 LLR:αmn (l)를 산출하는 LLR 산출부(103)로 구성되어 있다.
상기 행 처리부에서, 최소값 선택부(101)의 비교부(112)는 2입력(a, b)의 비교기를 복수 구비하고, 상기 메모리부(111) 및 전단의 비교기(1단째의 비교기는 상기 메모리부(111)만)로부터 비교 대상의 LLR을 수취한 각 비교기가, 「|a|<|b|」의 경우에는 |a|을 출력하고, 그 이외의 경우에는 |b|을 출력함으로써, LLR의 절대값의 최소값을 출력한다. 그리고, LLR 산출부(103)가, 상기 최소값과 상기 부호의 승산 결과를 승산하고, 그 승산 결과인 LLR:αmn (l)를 열 처리부로 수수한다.
또한, 도 3은 LDPC 복호기에 있어서 「Min-Sum 알고리즘」의 열 처리 단계를 실행하는 경우의 열 처리부의 구성예를 나타내고 있으며, 이 열 처리부에서는, 패리티 검사 행렬 H의 열 가중치의 LLR:αm'n (l)를 유지하여, 각 LLR을 가산함으로써, 반복 l회째의 사후 값 βn (l)을 출력하고 있다.
(행 처리 단계)
또한, 상기 「Min-Sum 알고리즘」의 행 처리를 일반화하면, 하기 (7)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를 하기 (7)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00007
단, min|βmn' (l-1)|는 패리티 검사 행렬 H의 m행째에 있어서 n열째를 제외한 LLR:βmn' (l-1)의 절대값의 최소값을 나타내고, sgn(βmn' (l-1))는 n열째를 제외한 LLR:βmn' (l-1)의 부호를 나타낸다.
상기한 바와 같이, 행 처리 단계를 실행한 후, 「Min-Sum 알고리즘」에서는, 또한, 전술한 「Sum-Product 알고리즘」과 마찬가지의 열 처리 및 정지 규범에 근거하는 처리를 실행하여, 최종적인 부호 결과를 얻는다.
다음에, 상기 「Min-Sum 알고리즘」에 있어서의 처리의 흐름을 도 4의 흐름도를 이용하여 간단히 설명한다.
상기 「Min-Sum 알고리즘」에서는, 먼저, 수신 정보로부터 수신 LLR을 산출하여(단계 S1, S2), 그 결과를 초기값으로 하여 메모리부(111)에 설정하고, 또한, 반복 횟수를 l=1로 초기화한다(단계 S3). 다음에, 반복 처리(단계 S4: 반복 복호 1회째~반복 복호 최종회)로서, 먼저, 반복 l회째의 복호 연산에 있어서의 행 처리를 실행하고(행 처리), 다음에, 반복 l회째의 복호 연산에 있어서의 열 처리를 실행하며(열 처리), 그 후, 반복 l회째에서 산출한 사후 값을 경판정하여, 그 판정값을 복호 결과로서 결정하고, 또한, 패리티 검사를 실행한다(정지 규범). 그리고, 상기 정지 규범에 있어서, 패리티 검사 결과가 OK로 되거나, 또는 반복 횟수가 l=lmax로 된 경우에, 최종적으로 그때의 복호 결과를 출력한다(단계 S5).
이와 같이, 상기 「Min-Sum 알고리즘」에서는, 전술한 「Sum-Product 알고리즘」의 행 처리, 즉, (3)식을 근사함으로써, 「Sum-Product 알고리즘」보다도 계산량 및 메모리량을 삭감하고 있다. 그러나, 상기 「Min-Sum 알고리즘」에서는, 중간값을 유지하기 위해서, 패리티 검사 행렬 H에 포함되는 "1(가중치)"의 수에 대응하는 방대한 메모리량이 필요하고, 보다 메모리량을 삭감하기 위해서는, 한층 더한 개량이 필요하다.
이하에서 설명하는 본 실시예의 복호 알고리즘은, 상기 한층 더한 메모리량의 삭감 및 계산량의 저감을 실현하는 것이며, 예를 들면, 「Sum-Product 알고리즘」의 근사 복호법인 「Min-Sum 알고리즘」을 개량한 알고리즘이다.
계속해서, 본 발명에 따른 수신 장치를 구성하는 LDPC 복호기(5)의 구성, 및 LDPC 복호기(5)에 의한 복호 방법(복호 알고리즘)을 도면에 따라서 상세하게 설명한다.
도 5a는 본 실시예의 LDPC 복호기(5)의 구성을 나타내는 도면이고, 이 LDPC 복호기(5)는 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(11)와 본 실시예의 복호 처리를 실행하는 복호 코아부(12)로 구성되어 있다. 또한, 복호 코아부(12)는 복호의 도중 결과(중간값)를 유지해 두기 위한 메모리로 구성된 도중 결과 유지부(21)와, 본 실시예의 행 처리를 실행하는 행 처리부(22)와, 본 실시예의 열 처리를 실행하는 열 처리부(23)와, 본 실시예의 정지 규범으로서, 열 처리에 있어서의 사후 값의 경판정 및 패리티 검사 결과의 정오(正誤) 판정을 행하는 복호 결과 판정부(24)와, 복호의 반복 제어를 행하는 제어부(25)를 구비하고 있다.
또한, 본 실시예의 복호 알고리즘은 순회적으로 최소 k값의 LLR의 절대값만을 갱신해 가는 방법으로서, 정확한 최소값이 아니라 근사적인 최소값을 이용하여 복호하는 방법이므로, 이후, 「순회 근사 min 알고리즘」으로 부르기로 한다. 또한, 상기 최소 k값이란, 「최소값으로부터 오름차순으로 k번째까지」를 나타낸다.
여기서, 상기 수신 장치에서 실시되는 「순회 근사 min 알고리즘」을 이하에 나타낸다.
(초기화 단계)
먼저, 반복 횟수 l= 1 및 최대 반복 횟수 lmax를 설정한다. 또한, 초기시에 있어서의 m행째의 최소 k값의 LLR을 βmn (i) (0)로서 수신 LLR:λn을 입력하여, 하기 (8)식에 도시하는 바와 같이 Bmn (i)를 구한다. 또한, 초기시에 있어서의 m행째의 LLR:βmn (0)의 부호로서 sgn(λn)를 입력하여, 하기 (8)식에 도시하는 바와 같이 Sm을 구한다.
Figure 112008002456706-pct00008
단, Bmn (i)는 m행째의 최소 k값인 LLR:βmn (i)의 절대값이고, n(i)는 Bmn (i) 중에서 최소 i번째의 LLR의 열 번호이며, Sm은 m행째의 LLR:βmn의 부호(+ 또는-)의 곱이다.
(행 처리 단계)
다음에, 행 처리로서, 1≤n≤N 및 각 m에 대해서 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를, 하기 (9)식에 의해 갱신한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 실행한다.
Figure 112008002456706-pct00009
구체적으로는, 현재의 열 번호가 n인 경우, 「n'<n」을 만족하는 열 번호에 대해서는, l회째의 열 처리에서 갱신된 LLR:βmn' (l)의 부호의 곱을 취하고, 또한, 「n'>n」을 만족하는 열 번호에 대해서는, (l-1)회째의 열 처리에서 갱신된 LLR:βmn' (l-1)의 부호의 곱을 취하며, 그리고, 그것들의 결과와 m행째의 최소 k값 중 최소의 LLR:min[βmn']와의 승산 결과를 열 번호 n의 갱신 후의 LLR:αmn (l)로 하고 있다. 또한, 본 실시예에서는, 또한, 상기 βmn' (l)의 부호의 곱과 상기 βmn' (l-1)의 부호의 곱과 승산하는 항을, (l-1)회째에 갱신된 Sm과 (l-1)회째에 갱신된 βmn'의 부호를 승산하는 항으로, 치환하는 것으로 하였다. 이에 따라, 또한, 계산량 및 메모리량 을 삭감할 수 있다. 또한, 상기 (9)식의 Nk(m)는 m행째의 n(i)의 집합이며, Nk(m)={n(1), n(2), …, n(k)}로 나타낸다.
(열 처리 단계)
다음에, 열 처리로서, 각 m, n에 대해서, 비트 노드 n으로부터 체크 노드 m으로 보내는 비트 n의 반복 l회째의 LLR:βmn (l)를, 하기 (10)식에 의해 갱신한다.
Figure 112008002456706-pct00010
구체적으로는, 열 번호 n에서, 수신 LLR:λn과, l회째의 행 처리에서 갱신된 m행째 이외의 LLR:αm'n (l)의 합계값과의 가산 결과를, 갱신 후의 LLR:βmn (l)로 하고 있다. 또한, 상기 Sm'와 l회째의 열 처리에서 갱신된 βmn (l)의 부호(+ 또는 -)를 승산함으로써, 행 처리에서 사용하는 Sm을 갱신하고 있다. 또한, 상기 (10)식에 있어서의 아래의 2개의 식은 Bmn (l)의 재배열 처리(최소 k값)를 규정한 것이다.
또한, 각 n에 대해서, 경판정을 위한, 비트 n의 반복 l회째의 사후 값 βn (l) 을 하기 (11)식에 의해 갱신한다.
Figure 112008002456706-pct00011
(정지 규범)
그 후, 예를 들면, 비트 n의 반복 l회째의 사후 값 βn (l)이 「βn (l)>0」인 경우에는, 복호 결과를「xn'=1」로 하고(x'는 본래의 송신 신호 x에 대응), 한편, 「βn (l)≤0」인 경우에는, 복호 결과를「xn'=0」으로 하여, 복호 결과 x'=(x1', x2', …, xN')를 얻는다.
그리고, 패리티 검사의 결과가 「Hx'=0」또는 반복 횟수가 「l=lmax」인 경우(어느 하나의 조건을 만족하고 있는 경우)에, 그때의 복호 결과 x'를 출력한다. 또한, 상기 2개의 조건 중 어느 한쪽도 만족하고 있지 않은 경우에는, 「l=l+1」으로 하여, 상기 행 처리로 되돌아가고, 이후, 순서대로 연산을 실행한다.
다음에, 상기 「순회 근사 min 알고리즘」을 실행하는 LDPC 복호기(5)의 특징적인 동작을 구성도를 이용하여 구체적으로 설명한다.
도 6은 상기 「순회 근사 min 알고리즘」에 있어서 행 처리를 실행하는 행 처리부(22)의 구성예를 나타내는 도면으로서, 이 행 처리부(22)는 최소값 선택부(31)와 부호 연산부(32)와 LLR 산출부(33)로 구성되어 있다. 또한, 도시된 Min1LLR(m행째에 있어서의 최소의 LLR)는 Bmn (1)이고, Min2LLR(m행째에 있어서의 최소 2번째의 LLR)는 Bmn (2)이며, 각각 도중 결과 유지부(21)에 유지된 값이다. 또한, 도시된 Sm 및 「(l-1)회째의 m행 n열째의 LLR:βmn의 부호」에 대해서도, 각각 도중 결과 유지부(21)에 유지된 값이다.
최소값 선택부(31)에서는, 행 처리의 대상으로 되어 있는 열 번호 n과 Min1LLR(Bmn(1))의 열 번호 n(1)이 일치하고 있는 경우에는, Min2LLR(Bmn (2))을 선택하고, 그 이외의 경우에는, Min1LLR(Bmn (1))을 선택하여, 출력한다. 또한, 부호 연산부(32)는 「(l-1)회째의 열 처리에서 갱신된 Sm」 및 「(l-1)회째의 m행 n열째의 LLR:βmn의 부호」를 승산하여, 그 결과로서 Sm'를 출력한다. 이때, Sm'는 도중 결과 유지부(21)에 유지된다. 또한, LLR 산출부(33)는 최소값 선택부(31)로부터 얻어지는 최소의 LLR과 부호 연산부(32)로부터 얻어지는 부호의 승산 결과 Sm'(+ 또는-)을 승산함으로써, LLR:αmn (l)을 산출한다. 이 구성에 의해, 「Min-Sum 알고리즘」에 있어서는 행 가중치만큼 필요한 메모리를 k값분으로 축소할 수 있다.
도 7a는 상기 「순회 근사 min 알고리즘」에서 열 처리를 실행하는 열 처리부(23)의 구성예를 나타내는 도면이며, 상기 열 처리부(23)는 α가산부(41)와 λ가산부(42)와 최소 k값 비교부(43)와 부호 연산부(44)로 구성되어 있다. 또한, 본 실시예에서는, k=3의 경우를 일례로서 기재하고 있다. 또한, 도시된 열 가중치분 의 LLR, αmn, λn, Sm', Min1LLR, Min2LLR, Min3LLR(m행째에 있어서의 최소 3번째의 LLR)는 각각 도중 결과 유지부(21)에 유지된 값이다.
상기 열 처리부(23)에서는, α가산부(41)가 l회째의 행 처리에서 갱신된 m행째 이외의 모든 LLR:αm' n (l)을 가산하고, 또한, λ가산부(42)가 α가산부(41)에 의한 가산 결과에 수신 LLR:λn을 가산하여, βmn (l)를 출력한다. 그리고, 최소 k값 비교부(43)(k=3)는 |βmn (l)|을 수취한다. 여기서, 도 7a에 도시하고 있지 않지만, 예를 들면, 열 처리의 대상으로 되는 n열째의 n과, Min1LLR, Min2LLR, Min3LLR에 각각 유지되어 있는 Bmn (1), Bmn (2), Bmn (3)에 대응하는 열 번호를 나타내는 n(1), n(2), n(3) 중 어느 하나가 일치한 경우, n=n(i)로 되는 Bmn (i)를 추출하여, 도 8에 나타내는 바와 같은 조작을 행한다. 구체적으로는, Min2LLR에 유지되어 있는 정보를 삭제하여, Min3LLR에 유지되어 있는 정보를 Min2LLR로 이동하고, 또한, Min3LLR에는, 예를 들면(16비트의 경우), 최대값 "FFFF"를 저장한다. 이에 따라, 처리 대상의 열을 제외한 비교 처리가 가능해지고, 또한, 적어도 Min3LLR가 열 처리에 있어서 반드시 갱신되게 된다. 이 처리 후, 도 7a에 나타내는 바와 같이, |βmn (l)|와, Min1LLR, Min2LLR, Min3LLR을 각각 비교하여, 「|βmn (l)|<Min3LLR」이면, 최소 3값 의 LLR을 갱신한다. 한편, λ가산부(42)가 출력하는 βmn (l)의 부호를 「l회째의 m행 n열째의 LLR:βmn (l)의 부호」로 하여 도중 결과 유지부(21)에 유지하고, 또한, 부호 연산부(44)가 l회째의 행 처리에서 갱신된 Sm'와 상기 βmn (l)의 부호를 승산하여, 그 결과를 이용하여 도중 결과 유지부(21)에 유지된 Sm을 갱신한다. 또한, |βmn (l)|와 Min1LLR, Min2LLR, Min3LLR의 비교시에, |βmn (l)|를 Bmn (i)의 중심의 값인 Min2LLR와 최초로 비교하고, 그 이후, 도시와 같이, 트리 형상으로 비교하도록 했지만, 예를 들면, 최소값인 Min1LLR로부터 비교하는 경우에 비해서, 실행 시간이 {(k+1)/2}/k(k가 기수인 경우)로 되는 효과가 있다. 또한, k가 우수인 경우에는, Bmn(i)의 중심의 값은 2개가 되지만, 최초로 비교를 개시하는 대상은 그 중 어떠한 것이더라도 무방하다. k가 우수인 경우에는, 최소값인 Min1LLR로부터 비교하는 경우에 비해서, 실행 시간이 {k/2+1}/k(k가 우수인 경우)로 되는 효과가 있다.
또한, 상기와 동일한 처리를 도 7b에 나타내는 구성으로도 실현할 수 있어, 그 때, α가산부(41)에서는 열 가중치분의 모든 LLR의 가산만을 행하고, 그 후, λ가산부(42)에서 λn의 가산을 행하여, 그 결과를 복호 결과 판정부(24)에 출력함과 동시에, m행째의 LLR인 αmn의 감산을 행한다. 이러한 순서로도 상기 처리의 순서와 동일한 결과를 얻을 수 있다. 이때의 LDPC 부호기의 구성은 도 5b와 같이 된 다.
다음에, 본 실시예의 「순회 근사 min 알고리즘」에서의 처리의 흐름을 도 9의 흐름도를 이용하여 설명한다.
상기 「순회 근사 min 알고리즘」에서는, 먼저, 수신 LLR 계산부(11)가 수신 정보로부터 수신 LLR을 산출하여(단계 S11, S12), 그 결과를 초기값으로 하여 도중 결과 유지부(21)에 설정하고(단계 S13), 또한, 제어부(25)가 반복 횟수를 l=1로 초기화한다(단계 S13). 또한, 열 처리부(23) 중, λ가산부(42), 최소 k값 비교부(43), 부호 연산부(44)를 이용하여, n=1부터 n=N까지 순회적으로 상기 (8)식의 연산을 행한다(단계 S13).
다음에, 복호 코아부(12)는, 제어부(25)의 제어에 의해, l회째(1회째~최종회)의 반복 복호 연산을 행한다(단계 S14). 구체적으로는, 반복 복호의 1회째로서, 행 처리부(22)가 1열째에 "1"를 가지는 행에 대하여 행 처리(수신 LLR을 사용)를 실행하고, 그 결과를 열 처리부(23)로 수수한다. 그 후, 열 처리부(23)가 1열째의 열 처리를 행하고, 그 결과인 Bmn (i)와 Sm을 도중 결과 유지부(21)에 유지한다(갱신한다). 이후, 2열째, 3열째, … N열째의 순서대로, 상기와 마찬가지의 처리를 행하여, 각각 Bmn (i)과 Sm을 도중 결과 유지부(21)에 유지한다(반복 복호 1회째에 상당). 그 후, 반복 복호의 2회째 이후는, 하나 앞의 처리에서 갱신된 LLR 및 Sm을 이용하여 행 처리를 행하고, 그 이외는 상기 1회째와 마찬가지로 복호 처리를 실행한다.
또한, 상기 l회째의 반복 복호를 실시한 후, 복호 결과 판정부(24)가 반복 l회째에서 산출한 사후 값을 경판정하여, 그 판정값을 복호 결과 x'로서 결정하고, 또한 패리티 검사를 한다(정지 규범). 그리고, 이 정지 규범에 있어서, 패리티 검사 결과가 OK(「Hx'=0」)로 되거나, 또는 반복 횟수가 l=lmax로 된 경우에, 최종적으로 그때의 복호 결과 x'를 출력한다(단계 S15). 또한, 상기 2개의 조건을 만족하고 있지 않은 경우에는, 제어부(25)가 l=l+1로 하여, 복호 코아부(12)에서는 (l+1)회째의 반복 복호를 실행한다.
다음에, 열 번호의 표기 방법에 의한 메모리 사이즈의 삭감에 대해서 설명한다. 도 10은 본 실시예의 열 번호 표기를 표시하는 도면이다. 「순회 근사 min 알고리즘」에서는, 예를 들면, 열 번호를 n=0으로부터 승순으로 표기하는 것으로 하였다. 또한, 종래, 열 번호 n을 패리티 검사 행렬의 열 번호 그 자체(절대열 번호)로 표현하고 있었지만, 본 실시예에서는, 패리티 검사 행렬에 있어서의 m행째의 "1"의 최소의 열 번호를 n=0으로 하고, m행째의 다음 "1"의 열 번호를 n=1로 하며, 이후, "1"마다 n=2, 3, …로 하는 상대적 열 번호로 표현하는 것으로 하였다. 즉, 종래는, 패리티 검사 행렬의 "1"의 절대열 번호가 예를 들어 "32768"인 경우, 열 번호를 표현하기 위해서 필요한 비트 수가 15비트로 되지만, 한편, 본 실시예에 는, 예를 들면, 행 가중치가 8개이면 0~7을 표현할 수 있는 3비트까지, 행 가중치가 16개이면 0~15를 표현할 수 있는 4비트까지, 메모리 사이즈를 축소할 수 있다.
이상과 같이, 본 실시예에서는, LDPC 복호에 있어서, 행 처리를 위한 LLR의 절대값 |βmn|을, 순회 구조에 의해 행 단위로 최소 k값으로 축소하는 것으로 했기 때문에, 그것들을 유지하기 위한 메모리량을 대폭 삭감할 수 있다. 예를 들면, 행 가중치가 20이고 k=3인 경우에는, 종래와 비교하여 메모리량을 3/20으로 삭감할 수 있다. 또한, 열 번호를 절대열 번호(1, 3, 10, 15 …)로부터 상대적 열 번호(0, 1, 2, 3 …)로 변경함으로써, 메모리량을 더욱 삭감할 수 있다.
또한, 본 실시예의 「순회 근사 min 알고리즘」에서는, 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을 순회적으로 1비트씩 실행하는 것으로 하였다. 이에 따라, 종래의 「Min-Sum 알고리즘」보다도 확률 전파를 효율적으로 실행할 수 있다.
예를 들면, 도 11, 도 12에, 「순회 근사 min 알고리즘」과 「Min-Sum 알고리즘」의 비교 시뮬레이션의 결과를 나타낸다. LDPC 부호는 이레귤러 EG 부호이고 최대 행 가중치는 8이다. 도 11에서는, 복호 반복 횟수를 100회로 고정하고, 「순회 근사 min 알고리즘」이 저장하는 최소값의 개수를 3, 4, 5개로 변경하여, 「Min-Sum 알고리즘」과 성능 비교를 한 경우를 표시하고 있다. 도면 중, CyclicXmin은 최소 X값을 유지한 「순회 근사 min 알고리즘」을 나타내고, Min-Sum은 「Min-Sum 알고리즘」을 나타낸다. 도 11로부터도 명백한 바와 같이, 본 실시예의 「순회 근사 min 알고리즘」에 의해서, 메모리를 삭감하면서 복호 성능이 열화하지 않는 것을 확인할 수 있다.
또한, 도 12에는, 「순회 근사 min 알고리즘」과 「Min-Sum 알고리즘」에 있 어서, 복호가 성공할 때까지 필요한 평균 반복 횟수를 비교한 결과를 나타내고 있다. 도면 중, CyclicXmin은 최소 X값을 저장한 「순회 근사 min 알고리즘」을 나타내고, Min-Sum은 「Min-Sum 알고리즘」을 나타낸다. 이 결과로부터도 명백한 바와 같이, 「순회 근사 min 알고리즘」에서는 확률 전파가 효율적으로 행해져, 복호 반복 횟수가 대폭 삭감되고 있다. 즉, 본 실시예의 「순회 근사 min 알고리즘」에 의해, 복호 처리에서의 계산량을 대폭 저감시킬 수 있다.
또한, 본 실시예에 있어서, 행 처리의 연산 대상의 LLR는 1값이지만, k의 개수는 2값 이상이면 어떤 값이더라도 좋다. 또한, 본 실시예에 있어서는, 행 처리와 열 처리를 교대로 한 번씩 실행하고, 이것에 따라서, 행 처리와 열 처리에 의한 확률 정보(LLR)의 갱신을 1비트씩 순회적으로 실행하는 경우에 대해서 설명했지만, 이에 한정되는 것은 아니고, 행 처리를 복수회 실행한 후, 열 처리를 복수회 실행하도록 해도 좋다. 즉, 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을 순회적으로 복수 비트씩 실행하도록 해도 좋다.
(실시예 2)
계속해서, 실시예 2의 수신 장치 및 복호 방법에 대해서 설명한다. 본 실시예의 LDPC 복호는 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을, 1비트씩 또는 미리 정한 복수 비트씩 실행하는 경우에 적용 가능하고, 예를 들면, 연산 처리를 병렬화함으로써, 반복 횟수의 저감을 도모한다. 또한, 본 실시예에서 는, 도중 결과 유지부의 Bmn (i) 및 Sm을 병렬화의 수에 관계없이 1세트로 하고, 병렬화된 모든 처리부가 동일한 Bmn C 및 Sm을 갱신해 가는, 이른바 「Overlapped」된 Bmn C 및 Sm을 이용한 「순회 근사 min 알고리즘」을 실행한다. 이후, 본 실시예의 복호 알고리즘을 「Overlapped 순회 근사 min 알고리즘」이라고 한다.
여기서, 본 실시예의 수신 장치에 있어서 실시되는 「Overlapped 순회 근사 min 알고리즘」을 이하에 나타낸다.
(초기화 단계)
먼저, 반복 횟수 l=1 및 최대 반복 횟수 lmax를 설정한다. 또한, 초기시에 있어서의 m행째의 최소 k값의 LLR을 βmn (i) (0)로 하여, 수신 LLR:λn을 입력하고, 하기 (12)식에 도시하는 바와 같이 Bmn (i) C를 구한다. 또한, 초기시에 있어서의 m행째의 LLR:βmn (0)의 부호로서, sgn(λn)를 입력하여, 하기 (12)식에 도시하는 바와 같이 Sm을 구한다.
Figure 112008002456706-pct00012
단, Bmn (i) C는 m행째의 최소 k값의 LLR:βmn (i)의 절대값이며, 병렬 처리시에 공통으로 이용된다. 또한, n(i)은 Bmn (i) C 중에서 최소 i번째의 LLR의 열 번호이다.
(행 처리 단계)
다음에, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를, 하기 (13)식에 의해 갱신한다. 또한, G는 병렬수이고, NG는 병렬화된 각 복호 회로가 처리하는 열 수이다. 또한, GㆍNg=N이다. 또한, 본 실시예에서는, 각 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
Figure 112008002456706-pct00013
구체적으로는, 예를 들면, 열 수: NG마다 G개로 분할된 각 열군에 각각 할당된 G개의 행 처리부가 병렬로 행 처리를 실행한다. 또한, G개의 행 처리부가 병렬로 처리를 행하여, 모든 처리부가 동일한 Bmn C을 이용하는 이외는, 전술한 「순회 근사 min 알고리즘」과 마찬가지로 동작한다.
(열 처리 단계)
다음에, 열 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 비트 노드 n으로부터 체크 노드 m으로 보내는 비트 n의 반복 l회째의 LLR:βmn (l)를, 하기 (14)식에 의해 갱신한다. 즉, 본 실시예에서는, 상기한 바와 같이 병렬로 행 처리가 행해진 후의 각 열에 대해서, 병렬로, 하기 (14)식에 나타내는 열 처리를 실행한다.
Figure 112008002456706-pct00014
또한, 각 n에 대해서, 경판정을 위한, 비트 n의 반복 l회째의 사후 값 βn (l)을 하기 (15)식에 의해 갱신한다.
Figure 112008002456706-pct00015
또한, 정지 규범에 대해서는, 전술한 「순회 근사 min 알고리즘」과 마찬가지이다.
계속해서, 상기 「Overlapped 순회 근사 min 알고리즘」을 실현하는 실시예 2의 LDPC 복호기(5)의 구성 및 동작에 대해서 설명한다.
도 13은 본 실시예의 LDPC 복호기(5)의 구성예를 나타내는 도면으로서, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(11)와 본 실시예의 복호 처리를 실행하는 복호 코아부(12a)로 구성되어 있다. 또한, 복호 코아부(12a)는 복호의 도중 결과(중간값)를 유지해 놓기 위한 메모리로 구성된 도중 결과 유지부(21a)와, 본 실시예의 행 처리(병렬 처리)를 실행하는 행 처리부(22-1~22-G)와, 본 실시예의 열 처리(병렬 처리)를 실행하는 열 처리부(23-1~23-G)와, 본 실시예의 정지 규범으로서, 열 처리에 있어서의 사후 값의 경판정 및 패리티 검사 결과의 정오 판정을 행하는 복호 결과 판정부(24)와, 복호의 반복 제어를 행하는 제어부(25a)를 구비하고 있다.
도 13에서, 본 실시예의 LDPC 복호기(5)는 각 행 처리부 및 각 열 처리부가 병렬로 처리를 실행할 때, 상기 (12)식, (13)식, (14)식에 따라서, 도중 결과 유지부(21a)의 Bmn C 및 Sm을 공통으로 사용하여, 각각이 갱신한다. 이 병렬 처리에 의해, Bmn C 및 Sm은 병렬 수에 따라 급속하게 갱신되고, 그에 따라, 복호의 반복 횟수를 대폭 삭감할 수 있다.
또한, 본 실시예에서는, 병렬 처리에 있어서, 동일 클럭으로 동일 행의 연산이 발생하여, 동일 버퍼를 참조하는 문제가 발생할 경우에는, 예를 들면, 각 처리부에 메모리 액세스의 우선 순위를 설정하고 메모리 뱅크를 구분하는 시프트 레지스터를 이용하여 메모리 액세스의 타이밍을 조정하는 등의 대책을 행한다.
이상과 같이, 본 실시예의 「Overlapped 순회 근사 min 알고리즘」은 전술한 「순회 근사 min 알고리즘」을 응용하여, 행 처리 및 열 처리를 각각 병렬로 실행하는 것으로 하였다. 또한, 병렬로 실행되는 각 열 처리에 있어서 갱신되는 최소 k값을 유지하는 도중 결과 유지부를 공유하고, 병렬로 실행되는 각 열 처리에 있어서 각각 최소 k값을 갱신하는 것으로 하였다. 이에 따라, 「Min-Sum 알고리즘」 및 전술한 실시예 1과 비교하여, 복호의 반복 횟수를 대폭 삭감할 수 있다.
도 14는 반복 횟수에 대한 성능 비교를 나타내는 도면이다. 상세하게는, 병 렬 수를 2로 한 경우의 「Overlapped 순회 근사 min 알고리즘」, 「순회 근사 min 알고리즘」, 「Min-Sum 알고리즘」에 대해서, 복호의 반복 횟수를 고정한 상태에서, 각각의 복호 성능을 비교한 결과이다. 도 14에서, 복호의 반복 횟수가 적게 제한된 경우, 「순회 근사 min 알고리즘」은 종래법인 「Min-Sum 알고리즘」과 비교하여, 복호 성능이 우수한 것을 확인할 수 있고, 또한, 「Overlapped 순회 근사 min 알고리즘」은 「순회 근사 min 알고리즘」의 절반의 복호 반복 횟수로 동일한 정도의 복호 성능을 가지는 것을 확인할 수 있다. 또한, 도 14에서는, 병렬 수를 2로 했기 때문에, 복호의 반복 횟수가 절반 정도이었지만, 「Overlapped 순회 근사 min 알고리즘」을 이용한 경우, 반복 횟수는 「순회 근사 min 알고리즘」의 「1/병렬 수」로 된다.
(실시예 3)
계속해서, 실시예 3의 수신 장치 및 복호 방법에 대해서 설명한다. 본 실시예에 있어서는, 「Min-Sum 알고리즘」을 응용한 기지의 복호 알고리즘인 「Normalized BP-based 알고리즘」에 대하여, 실시예 1의 「순회 근사 min 알고리즘」 또는 실시예 2의 「Overlapped 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「Normalized BP-based 알고리즘」을 이하에 나타낸다. 또한, 여기서 는, 「Min-Sum 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(행 처리 단계)
예를 들면, 「Normalized BP-based 알고리즘」의 행 처리를 일반화하면, 하기 (16)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서 반복 l회째의 LLR:αmn (l)를 하기 (16)식에 의해 갱신하고 있다. 또한, 식 중의 A는 정규화 팩터라고 불리는 정수이며, 「Normalized BP-based 알고리즘」에서는, 「Min-Sum 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을, 정규화 팩터 A에 의해 보정하고 있다.
Figure 112008002456706-pct00016
계속해서, 상기 「Normalized BP-based 알고리즘」에 대하여 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 마찬가지의 처리(초기 화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계)
예를 들면, 「순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (17)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서 반복 l회째의 LLR:αmn (l)를 하기 (17)식에 의해 갱신하고 있다. 즉, 하기 (17)식에서는, 「순회 근사 min 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을, 정규화 팩터 A에 의해 보정하고 있다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 실행한다.
Figure 112008002456706-pct00017
(Overlapped 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계)
또한, 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (18)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (18)식에 의해 갱신하고 있다. 즉, 하기 (18)식에서는, 「Overlapped 순회 근사 min 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을, 정규화 팩터 A에 의해 보정하고 있다.
Figure 112008002456706-pct00018
또한, 본 실시예의 복호 알고리즘에서는, 상기한 바와 같이 행 처리 단계를 실행한 후, 또한, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 마찬가지의 열 처리 및 정지 규범에 근거하는 처리를 실행하여, 최종적인 부호 결과를 얻고 있다.
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는, 전술한 도 5 또는 도 13과 마찬가지이다.
도 15는 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31a)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는, 동일한 부호를 부여 하고 그 설명을 생략한다. 본 실시예의 최소값 선택부(31a)에서는, 예를 들면, 도중 결과 유지부(21)(또는 21a)로부터 판독한 LLR의 최소값(Min1LLR 또는 Min2LLR)을, 정규화 팩터 A를 이용하여 보정하고 있다. 구체적으로는, LLR의 최소값을 A부터 제산함으로써 정규화를 행하고 있다.
이상과 같이, 본 실시예에서는, 「Min-Sum 알고리즘」보다도 성능이 양호하게 되어 있는 「Normalized BP-based 알고리즘」에 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용하는 것으로 했다. 이에 따라, 전술한 실시예 1, 2와 마찬가지의 효과를 얻을 수 있고, 또한, 거의 「Min-Sum 알고리즘」과 동등한 회로량임에도 불구하고 「Sum-Product 알고리즘」에 가까운 성능을 실현할 수 있다.
또한, 본 실시예에서는, 「Normalized BP-based 알고리즘」에 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용하는 것으로 했지만, 이에 한정되지 않고, 기지의 「Offset BP-based 알고리즘」, 또는 그 이외의 알고리즘에 순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용하는 것도 가능하고, 이 경우에 대해서도 상기와 마찬가지의 효과를 얻을 수 있다.
(실시예 4)
계속해서, 실시예 4의 수신 장치 및 복호 방법에 대해서 설명한다. 본 실시예에서는, 「Normalized BP-based 알고리즘」이나 「Offset BP-based 알고리즘」보 다도 LLR:βmn의 보정 성능이 우수한 기지의 복호 알고리즘인 「δ min 알고리즘」에 대하여, 실시예 1의 「순회 근사 min 알고리즘」 또는 실시예 2의 「Overlapped 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「δ min 알고리즘」을 이하에 나타낸다. 또한, 여기서는, 「Min-Sum 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(행 처리 단계)
예를 들면, 「δ min 알고리즘」의 행 처리를 일반화하면, 하기 (19)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서 반복 l회째의 LLR:αmn (l)를 하기 (19)식에 의해 갱신하고 있다. 「δ min 알고리즘」의 행 처리에서는, 반복 l-1회째에 갱신된 LLR의 절대값:|βmn'(i-1)|로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00019
계속해서, 상기 「δ min 알고리즘」에 대하여 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
(순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계)
예를 들면, 「순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (20)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (20)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리에서는, 반복 l-1회째에 갱신된 최소 k값의 LLR의 절대값:Bmn'으로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00020
(Overlapped 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계)
또한, 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (21)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (21)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리에서는, 반복 l-1회째에 병렬 처리로 갱신된 최소 k값의 LLR의 절대값:Bmn' C로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00021
또한, 본 실시예의 복호 알고리즘에서는, 상기한 바와 같이 행 처리 단계를 실행한 후, 또한, 전술한 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」과 마찬가지의 열 처리 및 정지 규범에 근거하는 처리를 실행하 여, 최종적인 부호 결과를 얻고 있다.
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는, 전술한 도 5 또는 도 13과 마찬가지이다.
도 16은 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31b)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는, 동일한 부호를 부여하고 그 설명을 생략한다. 또한, 여기서는, 일례로서, 도 5의 LDPC 복호기(5)의 경우에 대해서 설명하지만, 도 13의 LDPC 복호기(5)에 대해서도 마찬가지로 적용 가능하다.
본 실시예의 최소값 선택부(31b)에서는, 예를 들면, 도중 결과 유지부(21)로부터 Min1LLR(Bmn (1)), Min2LLR(Bmn (2)), MinkLLR(Bmn (k))와 각각의 열 번호를 판독하여, 연산부가 Θ의 연산을 행한다. 즉, 본 실시예의 최소값 선택부(31b)에서는, 처리 대상으로 되어 있는 n열째와, 도중 결과 유지부(21)에 유지된 Bmn (k)의 열 번호 n(k)가 일치하지 않는 Bmn (k)에 대하여, 연산부가 「δ min 알고리즘」에 있어서의 이하의 연산을 행한다.
예를 들면, 연산부는 부호를 제외한 갱신값 |αmn (l)|(=Θ[Bmn'])을 하기 (22)식과 같이 구한다.
Figure 112008002456706-pct00022
또한, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정함으로써 연산량을 삭감할 수 있어, 연산부는 부호를 제외한 갱신값 |αmn (l)|(=Θ[Bmn'])을 하기 (23)식과 같이 구한다.
Figure 112008002456706-pct00023
또한, 상기에서는, 일례로서, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정한 경우에 대해서 설명했지만, 최소 4, 5 … 값으로 한정한 경우에 있어서도 마찬가지로 적용 가능하다.
이상과 같이, 본 실시예에서는, 「Min-Sum 알고리즘」보다도 성능이 양호하게 되어 있는 「δ min 알고리즘」에 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용하는 것으로 하였다. 이에 따라, 전술한 실시예 1, 2와 마찬가지의 효과를 얻을 수 있고, 또한, 거의 「Min-Sum 알고리즘」과 동등한 회로량임에도 불구하고 「Sum-Product 알고리즘」에 가까운 성능을 실현할 수 있다. 또한, 본 실시예에서는, 행 처리용 LLR의 절대값의 최소값을, 기지의 「δ min 알고리즘」으로 규정된 소정의 보정식에 근거하여 최적값으로 보 정하는 경우에 대해서 기재했지만, 보정식은 이것에 한정되는 것이 아니라, 「δ min 알고리즘」 이외의 알고리즘으로 규정된 보정식을 이용하는 것으로 해도 좋다. 이 경우도 상기와 마찬가지의 효과를 얻을 수 있다.
도 17은 「δ min 알고리즘」에 대하여 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용한 복호 알고리즘과, 「Sum-Product 알고리즘」과의 비교 결과를 나타내는 도면이다. 예를 들면, overlap5delta10은 「Overlapped 순회 근사 min 알고리즘」을 적용한 본 실시예의 복호 알고리즘(병렬 수가 2, 최소 5값, l=10), Cyclic5delta50은 「순회 근사 min 알고리즘」을 적용한 본 실시예의 복호 알고리즘(병렬 아님, 최소 5값, l=50), Sum-Product100은 「Sum-Product 알고리즘」(l=100)을 나타내고, 거의 겹쳐 있다. 이 결과로부터, 「δ min 알고리즘」에 대하여 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용함으로써, 「Sum-Product 알고리즘」과 동일한 정도의 성능을 가질 뿐만 아니라, 복호의 반복 횟수에 대해서도 대폭 삭감할 수 있다.
(실시예 5)
계속해서, 실시예 5의 수신 장치 및 복호 방법에 대해서 설명한다. 본 실시예에서는, 「Sum-Product 알고리즘」에 대하여, 실시예 1의 「순회 근사 min 알고리즘」 또는 실시예 2의 「Overlapped 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「Sum-Product 알고리즘」을 이하에 나타낸다. 또한, 본 실시예에서는, 수학 함수를 테이블화하여 연산하는 방법, 즉, TLU(테이블 룩업)를 이용한 일반적인 「Sum-Product 알고리즘」에 대해서 기재한다. 또한, 여기서는, 종래 기술에서 설명한 「Sum-Product 알고리즘」과 처리가 상이한 행 처리에 대해서 기재한다.
(행 처리 단계(1))
예를 들면, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리를 일반화하면, 하기 (24)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서 반복 l회째의 LLR:αmn (l)를 하기 (24)식에 의해 갱신하고 있다. TLU를 이용한 「Sum-Product 알고리즘」의 행 처리에서는, 반복 l-1회째에 갱신된 LLR의 절대값:|βmn' (l-1)|에 대하여, TLU를 이용한 연산을 행하고 있다.
Figure 112008002456706-pct00024
(행 처리 단계(2))
또한, 상기와는 상이한 방법으로, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리를 실현할 수도 있다. 예를 들면, 상기와는 상이한, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리를 일반화하면, 하기 (25)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 각 m, n에 대해서 반복 l회째의 LLR:αmn (l)를 하기 (25)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00025
또한, TLU1(x)는 하기 (26)에 근거하여 미리 테이블을 준비해 둔다.
Figure 112008002456706-pct00026
또한, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 있어서, 상기 (24)식에 나타낸 행 처리는, 테이블은 커지지만 연산 횟수가 적다고 하는 특징이 있고, 한편, 상기 (25)에 나타낸 행 처리는, 테이블은 작아지지만 연산 횟수가 많다고 하는 특징이 있다.
계속해서, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 대하여 「순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「순회 근사 min 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재 차 최초의 열부터 순회적으로 복호 처리를 행한다.
(순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계(1))
예를 들면, 상기 행 처리 단계(1)에 대하여 「순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (27)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (27)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리에서는, 반복 l-1회째에 갱신된 최소 k값의 LLR의 절대값:Bmn'에 대하여, TLU를 이용한 연산을 행하고 있다.
Figure 112008002456706-pct00027
(순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계(2))
또한, 상기 행 처리 단계(2)에 대하여 「순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (28)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째 의 LLR:αmn (l)를 하기 (28)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00028
계속해서, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 대하여 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「Overlapped 순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 상술한 「Overlapped 순회 근사 min 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(Overlapped 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계(1))
예를 들면, 상기 행 처리 단계(1)에 대하여 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (29)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (29)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리에서는, 반복 l-1회째에 병렬 처리 에서 갱신된 최소 k값의 LLR의 절대값:Bmn' C에 대하여, TLU를 이용한 연산을 행하고 있다.
Figure 112008002456706-pct00029
(Overlapped 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계(2))
또한, 상기 행 처리 단계(2)에 대하여 「Overlapped 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리를 일반화하면, 하기 (30)식과 같이 나타낼 수 있다. 여기서는, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (30)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00030
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는 전술한 도 5 또는 도 13과 마찬가지이다.
도 18은 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31c)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는 동일한 부호를 부여하고 그 설명을 생략한다. 또한, 여기서는, 일례로서, 도 5의 LDPC 복호기(5)의 경우에 대해서 설명하지만, 도 13의 LDPC 복호기(5)에 대해서도 마찬가지로 적용 가능하다.
본 실시예의 최소값 선택부(31c)에서는, 예를 들면, 도중 결과 유지부(21)로부터 Min1LLR(Bmn (1)), Min2LLR(Bmn (2)), MinkLLR(Bmn (k))와 각각의 열 번호를 판독하여, 연산부가 TLU를 이용한 연산을 실행한다. 즉, 본 실시예의 최소값 선택부(31c)에서는, 처리 대상으로 되고 있는 n열째와, 도중 결과 유지부(21)에 유지된 Bmn (k)의 열 번호 n(k)가 일치하지 않는 Bmn (k)에 대하여, 연산부가 「Sum-Product 알고리즘」에 있어서의 이하의 연산을 행한다.
예를 들면, 연산부는 부호를 제외한 갱신 값을 하기 (31)식과 같이 구한다.
Figure 112008002456706-pct00031
또한, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정함으로써 연산량을 삭감할 수 있어, 연산부는 부호를 제외한 갱신 값을 하기 (32)식과 같이 구한다.
Figure 112008002456706-pct00032
또한, 상기에서는, 일례로서, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정한 경우에 대해서 설명했지만, 최소 4, 5 … 값으로 한정한 경우에 있어서도 마찬가지로 적용 가능하다.
이상과 같이, 본 실시예에서는, TLU를 이용한 「Sum-Product 알고리즘」에 「순회 근사 min 알고리즘」 또는 「Overlapped 순회 근사 min 알고리즘」을 적용하는 것으로 하였다. 이에 따라, 다른 실시예와 비교하여, 계산량 및 메모리량은 많아지지만, 복호 성능을 향상시킬 수 있다. 또한, 본 실시예에 있어서는, TLU를 이용한 「Sum-Product 알고리즘」을 예로 설명했지만, 수학 함수에 대하여 TLU를 행하는 다른 복호 알고리즘에 대해서도 마찬가지이다. 또한, 본 실시예에서는, 행 처리용 LLR의 절대값의 최소값에 대하여, 기지의 「Sum-Product 알고리즘」으로 규정된 TLU를 이용한 경우에 대해서 기재했지만, TLU는 이것에 한정되는 것이 아니라, 「Sum-Product 알고리즘」으로 규정된 TLU 이외의 TLU를 이용하는 것으로 해도 좋다. 이 경우도 상기와 마찬가지의 효과를 얻을 수 있다.
(실시예 6)
계속해서, 실시예 6의 통신 장치 및 복호 방법에 대해서 설명한다. 본 실시예의 복호 처리는 완전한 비트 단위의 시리얼 복호에 대응시킴으로써, 반복 횟수의 저감을 더욱 도모한다.
전술한 실시예와 마찬가지로, 도 5a는 본 실시예의 LDPC 복호기(5)의 구성을 도시하는 도면이며, 이 LDPC 복호기(5)는 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(11)와 본 실시예의 복호 처리를 행하는 복호 코아부(12)로 구성되어 있다. 또한, 복호 코아부(12)는 복호의 도중 결과(중간값)를 유지해 놓기 위한 메모리로 구성된 도중 결과 유지부(21)와, 본 실시예의 행 처리를 실행하는 행 처리부(22)와, 본 실시예의 열 처리를 실행하는 열 처리부(23)와, 본 실시예의 정지 규범으로서, 열 처리에 있어서의 사후 값의 경판정 및 패리티 검사 결과의 정오 판정을 행하는 복호 결과 판정부(24)와, 복호의 반복 제어를 행하는 제어부(25)를 구비하고 있다.
또한, 본 실시예의 복호 알고리즘은 순회적으로 최소 k값의 LLR의 절대값만을 갱신해 가는 방법으로서, 정확한 최소값이 아니라 근사적인 최소값을 이용하여 복호하는 방법이며, 시리얼 복호법이기 때문에, 이후, 「시리얼 순회 근사 min 알고리즘」으로 부르기로 한다. 또한, 상기 최소 k값이란, 「최소값으로부터 승순으로 k번째까지」를 나타낸다.
여기서, 상기 수신 장치에 있어서 실시되는 「시리얼 순회 근사 min 알고리즘」을 이하에 나타낸다.
(초기화 단계)
먼저, 반복 횟수 l=1 및 최대 반복 횟수 lmax를 설정한다. 또한, 초기시에 있어서의 m행째의 최소 k값의 LLR을 βmn (i) (0)로 하여, 수신 LLR:λn을 입력하고, 하기 (33)식에 도시하는 바와 같이 Bmn (i)를 구한다. 또한, 초기시에 있어서의 m행째의 LLR:βmn (0)의 부호로서, sgn(λn)를 입력하여, 하기 (33)식에 도시하는 바와 같이 Sm을 구한다.
Figure 112008002456706-pct00033
단, Bmn (i)는 m행째의 최소 k값의 LLR:βmn (i)의 절대값이고, n(i)는 Bmn (i) 중에서 최소 i번째의 LLR의 열 번호이고, Sm은 m행째의 LLR:βmn의 부호(+ 또는 -)의 곱이다.
(행 처리 단계 1)
다음에, 행 처리로서, 1≤n≤N 및 각 m에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를 하기 (34)식에 의해 갱신한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
Figure 112008002456706-pct00034
구체적으로는, 현재의 열 번호가 n인 경우, 「n'<n」을 만족하는 열 번호에 대해서는, l회째의 열 처리에서 갱신된 LLR:βmn' (l)의 부호의 곱을 취하고, 또한, 「n'>n」을 만족하는 열 번호에 대해서는 (l-1)회째의 열 처리에서 갱신된 LLR:βmn' (l-1)의 부호의 곱을 취하며, 그리고, 그것들의 결과와 m행째의 최소 k값 중 최소의 LLR:min[βmn']와의 승산 결과를, 열 번호 n의 갱신 후의 LLR:αmn (l)으로 하고 있다. 또한, 본 실시예에서는, 또한, 상기 βmn' (l)의 부호의 곱과 상기 βmn' (l-1)의 부호의 곱을 승산하는 항을, (l-1)회째에 갱신된 Sm과 (l-1)회째에 갱신된 βmn'의 부호를 승산하는 항으로 치환하는 것으로 하였다. 이에 따라, 계산량 및 메모리량을 더욱 삭감할 수 있다. 또한, 상기 (34)식의 Nk(m)는 m행째의 n(i)의 집합이며, Nk(m)={n(1), n(2), …, n(k)}로 나타낸다.
(열 처리 단계)
다음에, 열 처리로서, 행 처리 단계 1에서 행한 열 번호 n의 각 m에 대해서, 비트 노드 n으로부터 체크 노드 m으로 보내는 비트 n의 반복 l회째의 LLR:βmn (l)를 하기 (35)식에 의해 갱신한다. 이것 이후의 열 처리 단계 및 행 처리 단계 2는 예를 들어 행 번호 m의 가장 작은 행 번호부터 순서대로 1행씩 계산을 실행한다. 단, 실행하는 행 번호의 순서는 중복하지 않고 모든 「1」이 있는 행이 실행되면, 어떤 순서로 실행해도 좋다.
Figure 112008002456706-pct00035
구체적으로는, 열 번호 n에서, 수신 LLR:λn과, l회째의 행 처리에서 갱신된 m행째 이외의 LLR:αm'n (l)의 합계 값과의 가산 결과를, 갱신 후의 LLR:βmn (l)로 하고 있다. 이 계산은 βn (l)로부터 αmn (l)를 빼는 것에 의해서도 얻어진다. 또한, 상기 Sm'와 l회째의 열 처리에서 갱신된 βmn (l)의 부호(+ 또는 -)를 승산함으로써, 행 처리에서 사용하는 Sm을 갱신하고 있다. 또한, 상기 (35)식에 있어서의 아래의 2개의 식은 Bmn (1)의 재배열 처리(최소 k값)를 규정한 것이다.
(행 처리 단계 2)
또한, 두 번째 행 처리로서, 열 번호 n의 열 처리에서 실행한 행과 동일한 m에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:α'mn (l)를 하기 (36)식에 의해 갱신한다.
Figure 112008002456706-pct00036
구체적으로는 두 번째 행 처리로서, α'mn (l)를 갱신하고, 또한 그 결과를 이용하여 βmn (l)에 그 갱신한 α'mn (l)를 가산하여 βn (l)를 갱신한다. 이 후, 열 번호 n의 모든 m에 대하여 계산이 완료할 때까지 열 처리 단계로 되돌아가서 계산을 반복한다. 또한, 열 번호 n의 검사 행렬에 "1"이 있는 모든 행 m에 대하여 열 처리 단계와 행 처리 단계 2가 처리 종료하면 정지 규범의 처리로 이동한다.
(정지 규범)
그 후, 예를 들면, 비트 n의 반복 l회째의 사후 값 βn (l)이 「βn (l)>0」인 경 우에는, 복호 결과를 「xn'=1」로 하고(x'는 본래의 송신 신호 x에 대응), 한편, 「βn (l)≤0」인 경우에는, 복호 결과를 「xn'=0」으로 하여, 복호 결과 x'=(x1', x2', …, xN')를 얻는다.
그리고, 패리티 검사의 결과가 「Hx'=0」 또는 반복 횟수가 「l=lmax」인 경우(어느 하나의 조건을 만족하고 있는 경우)에, 그때의 복호 결과 x'를 출력한다. 또한, 상기 2개의 조건 중 어느 쪽도 만족하고 있지 않은 경우에는, 「l=l+1」이라고 하여, 상기 행 처리 단계 1로 되돌아가서, 이후, 순서대로 연산을 실행한다.
다음에, 상기 「시리얼 순회 근사 min 알고리즘」을 실행하는 LDPC 복호기(5)의 특징적인 동작을, 구성도를 이용하여 구체적으로 설명한다.
전술한 실시예와 마찬가지로, 도 6은 상기 「시리얼 순회 근사 min 알고리즘」에 있어서 행 처리를 실행하는 행 처리부(22)의 구성예를 나타내는 도면이며, 상기 행 처리부(22)는 최소값 선택부(31)와 부호 연산부(32)와 LLR 산출부(33)로 구성되어 있다. 또한, 도시된 Min1LLR(m행째에 있어서의 최소의 LLR)는 Bmn (1)이고, Min2LLR(m행째에 있어서의 최소 2번째의 LLR)는 Bmn (2)이며, 각각 도중 결과 유지부(21)에 유지된 값이다. 또한, 도시된 Sm 및 「(1-1)회째의 m행 n열째의 LLR:βmn의 부호」에 대해서도, 각각 도중 결과 유지부(21)에 유지된 값이다.
최소값 선택부(31)에서는, 행 처리의 대상으로 되어 있는 열 번호 n과 Min1LLR(Bmn(1))의 열 번호 n(1)이 일치하고 있는 경우에는, Min2LLR(Bmn (2))을 선택하고, 그 이외의 경우에는, Min1LLR(Bmn (1))을 선택하여 출력한다. 또한, 부호 연산부(32)는 「(l-1)회째의 열 처리에서 갱신된 Sm」 및 「(l-1)회째의 m행 n열째의 LLR:βmn의 부호」를 승산하여, 그 결과로서 Sm'를 출력한다. 이때, Sm'는 도중 결과 유지부(21)에 유지된다. 또한, LLR 산출부(33)는 최소값 선택부(31)로부터 얻어지는 최소의 LLR와 부호 연산부(32)로부터 얻어지는 부호의 승산 결과 Sm'(+ 또는 -)를 승산함으로써, LLR:αmn (l)을 산출한다. 이 구성에 의해, 「Min-Sum 알고리즘」에 있어서는 행 가중치만큼 필요한 메모리를, k값분으로 축소할 수 있다.
도 19는 상기 「시리얼 순회 근사 min 알고리즘」에 있어서 열 처리를 실행하는 열 처리부(23)의 구성예를 나타내는 도면이며, 상기 열 처리부(23)는 α가산부(41)와 λ가산부(42)와 최소 k값 비교부(43)와 부호 연산부(44)로 구성되어 있다. 또한, 본 실시예에서는 k=3의 경우를 일례로서 기재하고 있다. 또한, 도시된 열 가중치분의 LLR, α'mn', αmn', λn, Sm', Min1LLR, Min2LLR, Min3LLR(m행째에 있어서의 최소 3번째의 LLR)는, 각각 도중 결과 유지부(21)에 유지된 값이다.
상기 열 처리부(23)에서는, α가산부(41)가 l회째의 행 처리에서 갱신된 m행째를 포함한 모든 LLR:αmn (l)을 가산하고, 또한, λ가산부(42)가 α가산부(41)에 의한 가산 결과에 수신 LLR:λn을 가산하며, 스위치(45)가 최초에 그 아래의 블럭에 접속되도록 제어되어, 거기서 αmn (l)를 빼서 βmn (l)를 출력한다. 그리고, 최소 k값 비교부(43)(k=3)는 |βmn (l)|을 수취한다.
여기서, 도 19에 도시하고 있지 않지만, 전술한 실시예와 마찬가지로, 예를 들면, 열 처리의 대상으로 되는 n열째의 n과, Min1LLR, Min2LLR, Min3LLR에 각각 유지되어 있는 Bmn (1), Bmn (2), Bmn (3)에 대응하는 열 번호를 나타내는 n(1), n(2), n(3) 중 어느 하나가 일치한 경우, n=n(i)로 되는 Bmn (i)를 추출하여, 도 8에 나타내는 바와 같은 조작을 행한다. 구체적으로는, Min2LLR에 유지되어 있는 정보를 삭제하고, Min3LLR에 유지되어 있는 정보를 Min2LLR으로 이동하고, 또한, Min3LLR에는 예를 들어(16비트의 경우) 최대값 "FFFF"를 저장한다. 이에 따라, 처리 대상의 열을 제외한 비교 처리가 가능해지고, 또한, 적어도 Min3LLR이 열 처리에 있어서 반드시 갱신되게 된다.
이 처리 후, 도 19에 나타내는 바와 같이, |βmn (l)|와, Min1LLR, Min2LLR, Min3LLR을 각각 비교하여, 「|βmn (l)|<Min3LLR」이면, 최소 3값의 LLR을 갱신한다. 한편, λ가산부(42)가 출력하는 βmn (l)의 부호를 「l회째의 m행 n열째의 LLR:βmn (l)의 부호」로 하여 도중 결과 유지부(21)에 유지하고, 또한, 부호 연산부(44)가 l회 째의 행 처리에서 갱신된 Sm'와 상기 βmn (l)의 부호를 승산하여, 그 결과를 이용하여 도중 결과 유지부(21)에 유지된 Sm을 갱신한다. 또한, |βmn (l)|와 Min1LLR, Min2LLR, Min3LLR와의 비교시에, |βmn (l)|를 Bmn (i)의 중심의 값인 Min2LLR와 최초로 비교하고, 그 이후, 도시와 같이, 트리 형상에 비교하도록 했지만, 예를 들면, 최소값인 Min1LLR로부터 비교하는 경우에 비해서, 실행 시간이 {(k+1)/2}/k(k가 기수인 경우)로 되는 효과가 있다. 또한, k가 우수인 경우에는, Bmn (i)의 중심의 값은 2개가 되지만, 최초로 비교를 개시하는 대상은 어떤 것이더라도 좋다. k가 우수인 경우에는, 최소값인 Min1LLR로부터 비교하는 경우에 비해서, 실행 시간이 {k/2+1}/k(k가 우수인 경우)로 되는 효과가 있다. 이 비교 결과의 Min1LLR와 Min2LLR로부터 도 6의 회로에 의해 α'mn (l)를 구해서 βmn (l)와 가산하여 βn (l)를 산출하고, 스위치(45)에 의해 다음 열 처리로 이동한다.
다음에, 본 실시예의 「시리얼 순회 근사 min 알고리즘」에 있어서의 처리 흐름을, 도 9의 흐름도를 이용하여 설명한다. 또한, 도면 중, 「반복 복호 1회째」, 「반복 복호 2회째」, …, 「반복 복호 최종회」에 있어서, 「행 처리」, 「열 처리」, 「행 처리」, …, 「열 처리」로 처리되도록 기재되어 있지만, 본 실시예에서는, 「행 처리 단계 1」를 처리한 후, 「열 처리 단계」, 「행 처리 단계 2」를 열 번호 n의 모든 m에 대하여 계산이 완료할 때까지 반복하는 처리를, 반복하는 것으로 한다. 즉, 「행 처리 단계 1」, 「열 처리 단계」, 「행 처리 단계 2」, 「열 처리 단계」, 「행 처리 단계 2」「열 처리 단계」, …, 「행 처리 단계 2」, 「행 처리 단계 1」, 「열 처리 단계」, 「행 처리 단계 2」, 「열 처리 단계」,「행 처리 단계 2」「열 처리 단계」, …, 「행 처리 단계 2」로 처리되는 것으로 한다.
상기 「시리얼 순회 근사 min 알고리즘」에 있어서는, 먼저, 수신 LLR 계산부(11)가 수신 정보로부터 수신 LLR을 산출하여(단계 S11, S12), 그 결과를 초기값으로 하여 도중 결과 유지부(21)에 설정하고(단계 S13), 또한, 제어부(25)가 반복 횟수를 l=1로 초기화한다(단계 S13). 또한, 열 처리부(23) 중, λ가산부(42), 최소 k값 비교부(43), 부호 연산부(44)를 이용하여, n=1부터 n=N까지 순회적으로 상기 (33)식의 연산을 행한다(단계 S13).
다음에, 복호 코아부(12)는, 제어부(25)의 제어에 의해, l회째(1회째~최종회)의 반복 복호 연산을 행한다(단계 S14). 구체적으로는, 반복 복호의 1회째로서, 행 처리부(22)가 1열째에 "1"을 가지는 행에 대하여 행 처리 단계 1(수신 LLR을 사용)을 행하고, 그 결과를 열 처리부(23)로 수수한다. 그 후, 열 처리부(23)가 1열째의 열 처리 단계를 행하고, 그 결과인 Bmn (i)와 Sm을 도중 결과 유지부(21)에 유지한다(갱신한다). 또한, 그 후, 행 처리부(22)가 행 처리 단계 2를 행하여, 그 결과를 열 처리부(23)로 건네 주어, 행 처리부(22)와 열 처리부(23)에 의해서 열 처리 단계와 행 처리 단계 2를 반복한다. 이후, 2열째, 3열째, … N열째의 순서대 로, 상기와 마찬가지의 처리를 행하여, 각각 Bmn (i)과 Sm을 도중 결과 유지부(21)에 유지한다(반복 복호 1회째에 상당). 그 후, 반복 복호의 2회째 이후는, 하나 앞의 처리에서 갱신된 LLR 및 Sm을 이용하여 행 처리를 행하고, 그 이외는, 상기 1회째와 마찬가지로 복호 처리를 행한다.
또한, 상기 l회째의 반복 복호를 실시한 후, 복호 결과 판정부(24)가 반복 l회째에 산출한 사후 값을 경판정하여, 그 판정값을 복호 결과 x'로서 결정하고, 또한 패리티 검사를 행한다(정지 규범). 그리고, 이 정지 규범에 있어서, 패리티 검사 결과가 OK(「Hx'=0」)로 되거나, 또는 반복 횟수가 l=lmax로 된 경우에, 최종적으로 그때의 복호 결과 x'를 출력한다(단계 S15). 또한, 상기 2개의 조건을 만족하고 있지 않은 경우에는, 제어부(25)가 l=l+1로 하여, 복호 코아부(12)에서는 (l+1)회째의 반복 복호를 실행한다.
다음에, 전술한 실시예와 마찬가지로 열 번호의 표기 방법에 의한 메모리 사이즈의 삭감에 대해서 설명한다. 도 10은 본 실시예의 열 번호 표기를 표시하는 도면이다. 「시리얼 순회 근사 min 알고리즘」에서는, 예를 들면, 열 번호를 n=0으로부터 승순으로 표기하는 것으로 하였다. 또한, 종래, 열 번호 n을 패리티 검사 행렬의 열 번호 그 자체(절대열 번호)로 표현하고 있었지만, 본 실시예에서는, 패리티 검사 행렬에 있어서의 m행째의 "1"의 최소의 열 번호를 n=0으로 하고, m행째의 다음 "1"의 열 번호를 n=1로 하며, 이후, "1"마다 n=2, 3, …으로 하는 상대적 열 번호로 표현하는 것으로 하였다. 즉, 종래는, 패리티 검사 행렬의 "1"의 절 대열 번호가 예를 들어 "32768"인 경우, 열 번호를 표현하기 위해서 필요한 비트 수가 15비트로 되지만, 한편, 본 실시예에서는, 예를 들면, 행 가중치가 8개이면 0~7을 표현할 수 있는 3비트까지, 행 가중치가 16개이면 0~15를 표현할 수 있는 4비트까지, 메모리 사이즈를 축소할 수 있다.
이상과 같이, 본 실시예에서는, LDPC 복호에 있어서, 행 처리를 위한 LLR의 절대값 |βmn|을, 순회 구조에 의해 행 단위로 최소 k값으로 축소하는 것으로 했기 때문에, 그것들을 유지하기 위한 메모리량을 대폭 삭감할 수 있다. 예를 들면, 행 가중치가 20이고 k=3인 경우에는, 종래와 비교하여 메모리량을 3/20으로 삭감할 수 있다. 또한, 열 번호를, 절대열 번호(1, 3, 10, 15 …)로부터 상대적 열 번호(0, 1, 2, 3 …)으로 변경함으로써, 메모리량을 더욱 삭감할 수 있다.
또한, 본 실시예의 「시리얼 순회 근사 min 알고리즘」에 있어서는, 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을 순회적으로 1비트씩 실행하는 것으로 하였다. 이에 따라, 종래의 「Min-Sum 알고리즘」보다도 확률 전파를 효율적으로 실행할 수 있다.
또한, 본 실시예의 「시리얼 순회 근사 min 알고리즘」에 있어서는, 행 처리 단계 2로서, α'mn (l)를 갱신하고, 또한 그 결과를 이용하여 βmn (l)에 그 갱신한 α'mn (l)를 가산하여 βn (l)를 갱신하도록 했기 때문에, 완전한 비트 단위의 시리얼 복호에 대응시킬 수 있어, 반복 횟수를 더욱 삭감할 수 있다.
또한, 본 실시예에 있어서, 행 처리의 연산 대상의 LLR은 1값이지만, k의 개수는 2값 이상이면 어떤 값이더라도 좋다. 또한, 본 실시예에서는, 행 처리 단계 1을 실행한 후, 열 처리 단계와 행 처리 단계 2를 교대로 실행하고, 이에 따라서, 행 처리와 열 처리에 의한 확률 정보(LLR)의 갱신을 1비트씩 순회적으로 실행하는 경우에 대해서 설명했지만, 이에 한정되는 것이 아니라, 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을 순회적으로 복수 비트씩 실행하도록 해도 좋다.
(실시예 7)
계속해서, 실시예 7의 수신 장치(통신 장치) 및 복호 방법에 대해서 설명한다. 본 실시예의 LDPC 복호는, 행 처리와 열 처리에 의한 확률 정보(LLR)의 산출 및 갱신을 1비트씩 또는 미리 정한 복수 비트씩 실행하는 경우에 적용 가능하고, 예를 들면, 연산 처리를 병렬화함으로써, 반복 횟수의 저감을 도모한다. 또한, 본 실시예에서는, 도중 결과 유지부의 Bmn (i) 및 Sm을, 병렬화의 수에 관계없이 1세트로 하여, 병렬화된 모든 처리부가 동일한 Bmn C 및 Sm을 갱신해 가는, 이른바 「Overlapped」된 Bmn C 및 Sm을 이용한 「시리얼 순회 근사 min 알고리즘」을 실행한다. 이후, 본 실시예의 복호 알고리즘을 「Overlapped 시리얼 순회 근사 min 알고리즘」이라고 한다.
여기서, 본 실시예의 수신 장치에 있어서 실시되는 「Overlapped 시리얼 순 회 근사 min 알고리즘」을 이하에 나타낸다.
(초기화 단계)
먼저, 반복 횟수 l=1 및 최대 반복 횟수 lmax를 설정한다. 또한, 초기시에 있어서의 m행째의 최소 k값의 LLR을 βmn (i) (0)으로 하여, 수신 LLR:λn을 입력하고, 하기 (37)식에 도시하는 바와 같이 Bmn (i) C를 구한다. 또한, 초기시에 있어서의 m행째의 LLR:βmn (0)의 부호로서, sgn(λn)를 입력하여, 하기 (37)식에 도시하는 바와 같이 Sm을 구한다.
Figure 112008002456706-pct00037
단, Bmn (i) C는 m행째의 최소 k값의 LLR:βmn (i)의 절대값으로서, 병렬 처리시에 공통으로 이용된다. 또한, n(i)은 Bmn (i) C 중에서 최소 i번째의 LLR의 열 번호이다.
(행 처리 단계 1)
다음에, 행 처리로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:αmn (l)를, 하기 (38)식에 의해 갱신한다. 또한, G는 병렬수이며, NG는 병렬화된 각 복호 회로가 처리하는 열 수이다. 또한, GㆍNg=N이다. 또한, 본 실시예에서는, 각 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
Figure 112008002456706-pct00038
구체적으로는, 예를 들면, 열 수:NG마다 G개로 분할된 각 열 군에 각각 할당된 G개의 행 처리부가, 병렬로 행 처리를 실행한다. 또한, G개의 행 처리부가 병렬로 처리를 행하여, 모든 처리부가 동일한 Bmn C을 이용하는 이외에는, 전술한 「시리얼 순회 근사 min 알고리즘」과 마찬가지로 동작한다.
(열 처리 단계)
다음에, 열 처리로서, 행 처리 단계 1에서 행한 열 번호 n의 각 m에 대해서, 비트 노드 n으로부터 체크 노드 m으로 보내는 비트 n의 반복 l회째의 LLR:βmn (l)를, 하기 (39)식에 의해 갱신한다. 즉, 본 실시예에서는, 상기한 바와 같이 병렬로 행 처리가 행해진 후의 각 열에 대해서, 병렬로, 하기 (39)식에 나타내는 열 처리를 실행한다. 단, 병렬로 열 처리를 할 때, 처리 대상으로 되는 열 번호 n에 대하여, 이것 이후의 열 처리 단계 및 행 처리 단계 2는 예컨대 행 번호 m의 가장 작은 행 번호부터 순서대로 1행씩 계산을 실행한다. 다만 실행하는 행 번호의 순서는 중복하지 않고서 모든 「1」이 있는 행이 실행되면, 어떤 순서로 실행해도 좋다.
Figure 112008002456706-pct00039
(행 처리 단계 2)
또한, 두 번째 행 처리로서, 열 번호 n의 열 처리에서 실행한 행과 동일한 m에 대해서, 체크 노드 m으로부터 비트 노드 n으로 보내는 비트 n의 반복 l회째의 LLR:α'mn (l)를, 하기 (40)식에 의해 갱신한다.
Figure 112008002456706-pct00040
구체적으로는 두 번째 행 처리로서, α'mn (l)를 갱신하고, 또한 그 결과를 이용하여 βmn (l)에 그 갱신한 α'mn (l)를 가산하여 βn (l)를 갱신한다. 이 후, 열 번호 n의 모든 m에 대하여 계산이 완료할 때까지 열 처리 단계로 되돌아가서 계산을 반복한다. 또한, 열 번호 n의 검사 행렬에 "1"가 있는 모든 행 m에 대하여 열 처리 단계와 행 처리 단계 2가 처리 종료하면 정지 규범의 처리로 이동한다.
또한, 정지 규범에 대해서는 전술한 「시리얼 순회 근사 min 알고리즘」과 마찬가지이다.
계속해서, 상기 「Overlapped 시리얼 순회 근사 min 알고리즘」을 실현하는 실시예 7의 LDPC 복호기(5)의 구성 및 동작에 대해서 설명한다.
도 13은 전술한 실시예와 마찬가지로, 본 실시예의 LDPC 복호기(5)의 구성예를 나타내는 도면으로서, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(11)와 본 실시예의 복호 처리를 행하는 복호 코아부(12a)로 구성되어 있다. 또한, 복호 코아부(12a)는 복호의 도중 결과(중간값)를 유지해 놓기 위한 메모리로 구성된 도중 결과 유지부(21a)와, 본 실시예의 행 처리(병렬 처리)를 실행하는 행 처리부(22-1~22-G)와, 본 실시예의 열 처리(병렬 처리)를 실행하는 열 처리부(23- 1~23-G)와, 본 실시예의 정지 규범으로서, 열 처리에 있어서의 사후 값의 경판정 및 패리티 검사 결과의 정오 판정을 행하는 복호 결과 판정부(24)와, 복호의 반복 제어를 행하는 제어부(25a)를 구비하고 있다.
도 13에서, 본 실시예의 LDPC 복호기(5)는, 각 행 처리부 및 각 열 처리부가 병렬로 처리를 행할 때, 상기 (37)식, (38)식, (39)식, (40)식에 따라서, 도중 결과 유지부(21a)의 Bmn C 및 Sm을 공통으로 사용하여, 각각이 갱신한다. 이 병렬 처리에 의해, Bmn C 및 Sm은 병렬 수에 따라 급속하게 갱신되고, 그에 따라, 복호의 반복 횟수를 대폭 삭감할 수 있다.
또한, 본 실시예에서는, 병렬 처리에 있어서, 동일 클럭으로 동일 행의 연산이 발생하여, 동일 버퍼를 참조하는 문제가 발생할 경우에는, 예를 들면, 각 처리부에 메모리 액세스의 우선 순위를 설정하고, 메모리 뱅크를 구분하는, 시프트 레지스터를 이용하여 메모리 액세스의 타이밍을 조정하는 등의 대책을 행한다.
이상과 같이, 본 실시예의 「Overlapped 시리얼 순회 근사 min 알고리즘」은 전술한 「시리얼 순회 근사 min 알고리즘」을 응용하여, 행 처리 및 열 처리를 각각 병렬로 실행하는 것으로 하였다. 또한, 병렬로 실행되는 각 열 처리에 있어서 갱신되는 최소 k값을 유지하는 도중 결과 유지부를 공유하여, 병렬로 실행되는 각 열 처리에 있어서 각각 최소 k값을 갱신하는 것으로 하였다. 이에 따라, 「Min-Sum 알고리즘」 및 전술한 실시예 6과 비교하여, 복호의 반복 횟수를 대폭 삭감할 수 있다.
또한, 본 실시예의 「Overlapped 시리얼 순회 근사 min 알고리즘」에 있어서는, 행 처리 단계 2로서, α'mn (l)를 갱신하고, 또한 그 결과를 이용하여 βmn (l)에 그 갱신한 α'mn (l)를 가산하여 βn (l)를 갱신하도록 했기 때문에, 완전한 비트 단위의 시리얼 복호에 대응시킬 수 있어, 상술한 실시예 2와 비교하여, 반복 횟수를 더욱 삭감할 수 있다.
(실시예 8)
계속해서, 실시예 8의 수신 장치(통신 장치) 및 복호 방법에 대해서 설명한다. 본 실시예에서는, 「Min-Sum 알고리즘」을 응용한 기지의 복호 알고리즘인 「Normalized BP-based 알고리즘」에 대하여, 실시예 6의 「시리얼 순회 근사 min 알고리즘」 또는 실시예 7의 「Overlapped 시리얼 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「Normalized BP-based 알고리즘」을 이하에 나타낸다. 또한, 여기서는, 「Min-Sum 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(행 처리 단계 1)
예를 들면, 「Normalized BP-based 알고리즘」의 행 처리 단계 1을 일반화하면, 하기 (41)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 각 m, n에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (41)식에 의해 갱신하고 있다. 또한, 식 중의 A는 정규화 팩터라고 불리는 정수이며, 「Normalized BP-based 알고리즘」에서는, 「Min-Sum 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을 정규화 팩터 A에 의해 보정하고 있다.
Figure 112008002456706-pct00041
계속해서, 상기 「Normalized BP-based 알고리즘」에 대하여 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 처리가 상이한 행 처리 단계 1에 대하여 설명한다.
(시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1)
예를 들면, 「시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l),α'mn (l)를 일반화하면, 하기 (42)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 각 m, n에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (42)식에 의해 갱신하고 있다. 즉, 하기 (42)식에 있어서는, 「시리얼 순회 근사 min 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을 정규화 팩터 A에 의해 보정하고 있다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
Figure 112008002456706-pct00042
(Overlapped 시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1)
또한, 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (43)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (43)식에 의해 갱신하고 있다. 즉, 하기 (43)식에서는, 「Overlapped 시리얼 순회 근사 min 알고리즘」에 의해 얻어지는 반복 l회째의 LLR을, 정규화 팩터 A에 의해 보정하고 있다.
Figure 112008002456706-pct00043
또한, 본 실시예의 복호 알고리즘에서는, 상기한 바와 같이 행 처리 단계 1을 실행한 후, 또한, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 마찬가지의 열 처리 및 정지 규범에 근거하는 처리를 실행하여, 최종적인 부호 결과를 얻고 있다.
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는, 전술한 도 5 또는 도 13과 마찬가지이다.
도 15는 전술한 실시예와 마찬가지로, 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31a)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는, 동일한 부호를 부여하고 그 설명을 생략한다. 본 실시예의 최소값 선택부(31a)에서는, 예를 들면, 도중 결과 유지부(21)(또는 21a)로부터 판독한 LLR의 최소값(Min1LLR 또는 Min2LLR)을, 정규화 팩터 A를 이용하여 보정하고 있다. 구체적으로는, LLR의 최소값을 A로부터 제산함으로써 정규화를 행하고 있다.
이상과 같이, 본 실시예에서는, 「Min-Sum 알고리즘」보다도 성능이 양호하게 되어 있는 「Normalized BP-based 알고리즘」에 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용하는 것으로 하였다. 이에 따라, 전술한 실시예 6, 7과 마찬가지의 효과를 얻을 수 있고, 또한, 거의 「Min-Sum 알고리즘」과 동등한 회로량임에도 불구하고 「Sum-Product 알고리즘」에 가까운 성능을 실현할 수 있다.
또한, 본 실시예에서는, 「Normalized BP-based 알고리즘」에 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용하는 것으로 했지만, 이에 한정되지 않고, 기지의 「Offset BP-based 알고리즘」, 또는 그 이외의 알고리즘에 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용하는 것도 가능하고, 이 경우에 대해서도, 상기와 마찬가지의 효과를 얻을 수 있다.
(실시예 9)
계속해서, 실시예 9의 수신 장치(통신 장치) 및 복호 방법에 대해서 설명한다. 본 실시예에서는, 「Normalized BP-based 알고리즘」이나 「Offset BP-based 알고리즘」보다도 LLR:βmn의 보정 성능이 우수한 기지의 복호 알고리즘인 「δ min 알고리즘」에 대하여, 실시예 6의 「시리얼 순회 근사 min 알고리즘」 또는 실시예 7의 「Overlapped 시리얼 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「δ min 알고리즘」을 이하에 나타낸다. 또한, 여기서는, 「Min-Sum 알고리즘」과 처리가 상이한 행 처리에 대해서 설명한다.
(행 처리 단계 1)
예를 들면, 「δ min 알고리즘」의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (44)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 각 m, n에 대하여, 반복 l회째의 LLR:αmn (l)를 하기 (44)식에 의해 갱신하고 있다. 「δ min 알고리즘」의 행 처리 단계 1에서는, 반복 l-1회째에 갱신된 LLR의 절대값:|βmn' (i-1)|로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00044
계속해서, 상기 「δ min 알고리즘」에 대하여 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 복호알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 동일한 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 처리가 상이한 행 처리 단계 1에 대해서 설명한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
(시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1)
예를 들면, 「시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (45)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (45)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리 단계 1에서는, 반복 l-1회째에 갱신된 최소 k값의 LLR의 절대값:Bmn'으로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00045
(Overlapped 시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1)
또한, 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (46)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 0≤g≤G-1, gㆍ NG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (46)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리 단계 1에서는, 반복 l-1회째에 병렬 처리로 갱신된 최소 k값의 LLR의 절대값:Bmn' C로부터, Θ의 연산에 의해 αmn (l)를 산출한다.
Figure 112008002456706-pct00046
또한, 본 실시예의 복호 알고리즘에서는, 상기한 바와 같이 행 처리 단계 1을 실행한 후, 또한, 전술한 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」과 동일한 열 처리, 행 처리 단계 2 및 정지 규범에 근거하는 처리를 실행하여, 최종적인 부호 결과를 얻고 있다.
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는, 전술한 도 5 또는 도 13과 마찬가지이다.
도 16은 전술한 실시예와 마찬가지로, 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31b)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는, 동일한 부호를 부여하고 그 설명을 생략한다. 또한, 여기서는, 일례로서, 도 5의 LDPC 복호기(5)의 경우에 대해서 설명하지만, 도 13의 LDPC 복호기(5)에 대해서도 마찬가지로 적용 가능하다.
본 실시예의 최소값 선택부(31b)에서는, 예를 들면, 도중 결과 유지부(21)로부터 Min1LLR(Bmn (1)), Min2LLR(Bmn (2)), MinkLLR(Bmn (k))와 각각의 열 번호를 판독하여, 연산부가 Θ의 연산을 행한다. 즉, 본 실시예의 최소값 선택부(31b)에서는, 처리 대상으로 되고 있는 n열째와, 도중 결과 유지부(21)에 유지된 Bmn (k)의 열 번호 n(k)가 일치하지 않는 Bmn (k)에 대하여, 연산부가 「δ min 알고리즘」에 있어서의 이하의 연산을 행한다.
예를 들면, 연산부는 부호를 제외한 갱신값 |αmn (l)|(=Θ[Bmn'])을 하기 (47)식과 같이 구한다.
Figure 112008002456706-pct00047
또한, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정함으로써 연산량을 삭감할 수 있어, 연산부는 부호를 제외한 갱신값 |αmn (l)|(=Θ[Bmn'])을 하기 (48)식과 같이 구한다.
Figure 112008002456706-pct00048
또한, 상기에서는, 일례로서, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정한 경우에 대해서 설명했지만, 최소 4, 5 … 값으로 한정한 경우에 대해서도 마찬가지로 적용 가능하다.
이상과 같이, 본 실시예에 있어서는, 「Min-Sum 알고리즘」보다도 성능이 양호하게 되어 있는 「δ min 알고리즘」에 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용하는 것으로 하였다. 이에 따라, 전술한 실시예 6, 7과 마찬가지의 효과를 얻을 수 있고, 또한, 거의 「Min-Sum 알고리즘」과 동등한 회로량임에도 불구하고 「Sum-Product 알고리즘」에 가까운 성능을 실현할 수 있다. 또한, 본 실시예에서는, 행 처리용의 LLR의 절대값의 최소값을, 기지의 「δ min 알고리즘」으로 규정된 소정의 보정식에 근거하여 최적값으로 보정하는 경우에 대해서 기재했지만, 보정식은 이것에 한정되는 것이 아니라, 「δ min 알고리즘」 이외의 알고리즘으로 규정된 보정식을 이용하는 것으로 해도 좋다. 이 경우도 상기와 마찬가지의 효과를 얻을 수 있다.
(실시예 10)
계속해서, 실시예 10의 수신 장치(통신 장치) 및 복호 방법에 대해서 설명한다. 본 실시예에서는, 「Sum-Product 알고리즘」에 대하여, 실시예 6의 「시리얼 순회 근사 min 알고리즘」 또는 실시예 7의 「Overlapped 시리얼 순회 근사 min 알고리즘」에 있어서의, 순회적으로 최소 k값의 LLR의 절대값만을 갱신하는 처리, 및 근사적인 최소값을 이용한 복호 처리를 적용한다.
여기서, 본 실시예의 복호 알고리즘에 대해서 설명하기 전에, 그 전제로 되는 기지의 「Sum-Product 알고리즘」을 이하에 나타낸다. 또한, 본 실시예에서는, 수학 함수를 테이블화하여 연산을 행하는 방법, 즉, TLU(테이블 룩업)를 이용한 일반적인 「Sum-Product 알고리즘」에 대해서 기재한다. 또한, 여기서는, 종래 기술에서 설명한 「Sum-Product 알고리즘」과 처리가 상이한 행 처리에 대해서 기재한다.
(행 처리 단계 1(1))
예를 들면, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (49)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 각 m, n에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (49)식에 의해 갱신하고 있다. TLU를 이용한 「Sum-Product 알고리즘」의 행 처리 단계 1에서는, 반복 l-1회째에 갱신된 LLR의 절대값:|βmn' (l-1)|에 대하여, TLU를 이용한 연산을 행하고 있다.
Figure 112008002456706-pct00049
(행 처리 단계 1(2))
또한, 상기와는 상이한 방법으로, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리 단계 1을 실현할 수도 있다. 예를 들면, 상기와는 상이한, TLU를 이용한 「Sum-Product 알고리즘」의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (50)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 각 m, n에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (50)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00050
또한, TLU1(x)는 하기 (51)에 근거하여 미리 테이블을 준비해 둔다.
Figure 112008002456706-pct00051
또한, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 있어서, 상기 (49)식 에 나타낸 행 처리 단계 1은, 테이블은 커지지만 연산 횟수가 적다고 하는 특징이 있고, 한편, 상기 (50)식에 나타낸 행 처리 단계 1은, 테이블은 작아지지만 연산 횟수가 많다고 하는 특징이 있다.
계속해서, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 대하여 「시리얼 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「시리얼 순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「시리얼 순회 근사 min 알고리즘」과 처리가 상이한 행 처리 단계 1에 대해서 설명한다. 또한, 본 실시예에서는, 행 처리의 개시열은 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 순회적으로 복호 처리를 행한다.
(시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1(1))
예를 들면, 상기 행 처리 단계 1(1)에 대하여 「시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (52)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (52)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리 단계 1에서는, 반복해서 l-1회째에 갱신된 최소 k값의 LLR의 절대값:Bmn'에 대하여, TLU를 이용한 연산을 행하 고 있다.
Figure 112008002456706-pct00052
(시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1(2))
또한, 상기 행 처리 단계 1(2)에 대하여 「시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (53)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 1≤n≤N 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (53)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00053
계속해서, 상기 TLU를 이용한 「Sum-Product 알고리즘」에 대하여 「 Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 복호 알고리즘을 이하에 나타낸다. 또한, 본 실시예에서는, 전술한 「Overlapped 시리얼 순회 근사 min 알고리즘」과 마찬가지의 처리(초기화, 열 처리, 정지 규범)에 대해서는 그 설명을 생략한다. 이하에서는, 전술한 「Overlapped 시리얼 순회 근사 min 알고리즘」과 처리가 상이한 행 처리 단계 1에 대해서 설명한다.
(Overlapped 시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1(1))
예를 들면, 상기 행 처리 단계 1(1)에 대하여 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (54)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (54)식에 의해 갱신하고 있다. 또한, 이 복호 알고리즘의 행 처리 단계 1에서는, 반복 l-1회째에 병렬 처리로 갱신된 최소 k값의 LLR의 절대값:Bmn' C에 대하여, TLU를 이용한 연산을 행하고 있다.
Figure 112008002456706-pct00054
(Overlapped 시리얼 순회 근사 min 알고리즘을 적용한 경우의 행 처리 단계 1(2))
또한, 상기 행 처리 단계 1(2)에 대하여 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용한 경우의 본 실시예의 복호 알고리즘의 행 처리 단계 1, 2의 αmn (l), α'mn (l)를 일반화하면, 하기 (55)식과 같이 나타낼 수 있다. 여기서는, 행 처리 단계 1로서, 0≤g≤G-1, gㆍNG+1≤n≤(g+1)ㆍNG 및 각 m에 대해서, 반복 l회째의 LLR:αmn (l)를 하기 (55)식에 의해 갱신하고 있다.
Figure 112008002456706-pct00055
계속해서, 상기 본 실시예의 복호 알고리즘을 실행하는 LDPC 복호기(5)의 행 처리부의 특징적인 동작을, 도면을 이용하여 설명한다. 또한, LDPC 복호기(5)의 전체 구성에 대해서는 전술한 도 5 또는 도 13과 마찬가지이다.
도 18은 전술한 실시예와 마찬가지로, 본 실시예에 있어서의 행 처리를 실행하는 행 처리부(22, 22-1~22-G)의 구성예를 나타내는 도면이며, 상기 행 처리부는 최소값 선택부(31c)를 구비하고 있다. 또한, 전술한 도 6과 마찬가지의 구성에 대해서는, 동일한 부호를 부여하고 그 설명을 생략한다. 또한, 여기서는, 일례로서, 도 5의 LDPC 복호기(5)의 경우에 대해서 설명하지만, 도 13의 LDPC 복호기(5)에 관해서도 마찬가지로 적용 가능하다.
본 실시예의 최소값 선택부(31c)에서는, 예를 들면, 도중 결과 유지부(21)로부터 Min1LLR(Bmn (1)), Min2LLR(Bmn (2)), MinkLLR(Bmn (k))와 각각의 열 번호를 판독하여, 연산부가 TLU를 이용한 연산을 행한다. 즉, 본 실시예의 최소값 선택부(31c)에서는, 처리 대상으로 되고 있는 n열째와, 도중 결과 유지부(21)에 유지된 Bmn (k)의 열 번호 n(k)가 일치하지 않는 Bmn (k)에 대하여, 연산부가 「Sum-Product 알고리즘」에 있어서의 이하의 연산을 행한다.
예를 들면, 연산부는 부호를 제외한 갱신값을 하기 (56)식과 같이 구한다.
Figure 112008002456706-pct00056
또한, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정함으로써 연산량을 삭감할 수 있어, 연산부는 부호를 제외한 갱신값을 하기 (57)식과 같이 구한다.
Figure 112008002456706-pct00057
또한, 상기에서는, 일례로서, 연산 대상의 LLR을 k값으로부터 최소 3값으로 한정한 경우에 대해서 설명했지만, 최소 4, 5 … 값으로 한정한 경우에 있어서도 마찬가지로 적용 가능하다.
이상과 같이, 본 실시예에서는, TLU를 이용한 「Sum-Product 알고리즘」에 「시리얼 순회 근사 min 알고리즘」 또는 「Overlapped 시리얼 순회 근사 min 알고리즘」을 적용하는 것으로 하였다. 이에 따라, 다른 실시예와 비교하여, 계산량 및 메모리량은 많아지지만, 복호 성능을 향상시킬 수 있다. 또한, 본 실시예에서는, TLU를 이용한 「Sum-Product 알고리즘」을 예로 설명했지만, 수학 함수에 대하여 TLU를 행하는 다른 복호 알고리즘에 대해서도 마찬가지이다. 또한, 본 실시예에서는, 행 처리용 LLR의 절대값의 최소값에 대하여, 기지의 「Sum-Product 알고리즘」으로 규정된 TLU를 이용한 경우에 대해서 기재했지만, TLU는 이것에 한정되는 것이 아니라, 「Sum-Product 알고리즘」으로 규정된 TLU 이외의 TLU를 이용하는 것으로 해도 좋다. 이 경우도 상기와 마찬가지의 효과를 얻을 수 있다.
이상, 각 실시예에 있어서는, 행 처리의 개시열을 1로 하고, 승순으로 처리를 하였지만, 이것에 한정되지 않는다. 예를 들면, 개시열을 임의로 하여, 중복하지 않는 임의의 열에 대하여 처리를 행하여, 모든 열이 종료한 단계에서, 재차 동일한 순서로 반복 복호를 행하는 것으로 해도 좋다. 또는, 행 처리의 개시열을 임 의로 하여, 중복하지 않는 임의의 열에 대하여 처리를 행하여, 모든 열이 종료한 단계에서, 계속해서 상이한 순서로 중복하지 않는 임의의 열에 대하여 모든 열이 종료할 때까지 반복 복호를 행하는 것으로 해도 좋다. 이것들의 처리에 있어서도, 상기 각 실시예와 마찬가지의 효과를 얻을 수 있다. 또한, 상기 실시예의 설명에서는, 확률 정보로서 대수 우도비 LLR을 이용하는 경우에 대해서 설명했지만, 대수 우도비 LLR 이외의 확률 정보를 이용하도록 해도 좋다.
이상과 같이, 본 발명에 따른 수신 장치 및 복호 방법은 디지털 통신에 있어서의 오류 정정 기술로서 유용하고, 특히 LDPC 부호화된 신호를 복호하는 통신 장치에 적합하다.

Claims (30)

  1. LDPC(Low-density parity-check)를 사용하여 부호화된 부호어를 검사 행렬에 근거하여 반복 복호하는 통신 장치에 있어서,
    복호 알고리즘에 있어서의 행 처리 및 열 처리의 반복에 의해 얻어지는 복호의 도중 결과인 중간값을 유지하는 유지 수단(21)과,
    상기 검사 행렬에 있어서의 행 가중치에 대응한 행 처리용 LLR(대수 우도비)의 절대값에 근거하여, 열 처리에서 이용하는 열 처리용 LLR(대수 우도비)을 연산하는 행 처리를 실행하고, 상기 행 처리용 LLR은 비트 노드로부터 체크 노드로 송신되고, 상기 열 처리용 LLR은 체크 노드로부터 비트 노드로 송신되는 행 처리 수단(22)과,
    상기 검사 행렬의 열 가중치에 대응한 상기 열 처리용 LLR에 근거하여, 행 처리에서 이용하는 상기 행 처리용 LLR을 연산하는 열 처리를 실행하고, 또한, 상기 행 처리용 LLR의 절대값의 최소 k값을 상기 유지 수단(21)에 유지하고, 상기 최소 k값은 최소값으로부터 오름차순으로 k번째의 값인, 열 처리 수단(23)과,
    상기 행 처리 수단(22) 및 상기 열 처리 수단(23)의 반복 처리의 실행을 제어하는 제어 수단(25)
    을 구비하고,
    상기 제어 수단(25)은 상기 행 처리 수단(22) 및 상기 열 처리 수단(23)을 제어하여 열 단위로 교대로 처리를 행하고, 상기 열 처리 수단(23)이 순회적으로 각 행의 최소 k값을 갱신하고, 상기 행 처리 수단(22)이 근사적인 최소값을 이용하여 연산을 행하는 것
    을 특징으로 하는 통신 장치.
  2. 제 1 항에 있어서,
    상기 검사 행렬의 열을 소정 수로 분할하여, 분할 후의 행렬 단위로 병렬로 상기 행 처리 및 열 처리를 실행하고, 또한, 상기 최소 k값을 유지하는 상기 유지 수단의 영역을 공유하여, 병렬로 실행되는 각 열 처리에 있어서 각각 상기 최소 k값을 갱신하는 것을 특징으로 하는 통신 장치.
  3. 제 1 항에 있어서,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값과, 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  4. 제 3 항에 있어서,
    상기 행 처리 수단은, 또한, 미리 규정된 고정의 정규화 팩터에 의해 상기 행 처리용 LLR의 절대값의 최소값을 보정하고, 보정 후의 값을 이용하여 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  5. 제 1 항에 있어서,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값을 사전 결정된 보정식에 근거하여 최적값으로 보정하고, 보정 후의 값과 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  6. 제 1 항에 있어서,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값에 대해, TLU(테이블 룩업)를 이용한 사전 결정된 연산을 행하여, 상기 연산 처리 후의 값과 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  7. 제 3 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 행 처리용 LLR의 부호의 부호의 승산 결과는, 처리 대상의 열 번호보다 작은 열 번호에 대해서는 반복 l회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하고, 또한, 처리 대상의 열 번호보다 큰 열 번호에 대해서는 반복 (l-1)회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하여 구하는 것을 특징으로 하는 통신 장치.
  8. 제 3 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 행 처리 수단은, 반복 l회째에 있어서, 특정한 행에서의 행 가중치에 대응한 행 처리용 LLR의 부호를 승산하는 경우, 반복 (l-1)회째의 열 처리에서 갱신된 행 가중치에 대응한 행 처리용 LLR의 부호의 승산 결과 S와, 처리 대상의 열 번호에 대응하는, 반복 (l-1)회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하여, 그 승산 결과 S'를 상기 유지 수단에 유지하는 것을 특징으로 하는 통신 장치.
  9. 제 8 항에 있어서,
    상기 열 처리 수단은, 반복 l회째에 있어서, 특정한 열에 대한 열 처리를 행하는 경우,
    처리 대상의 열 번호에 대응하는 수신 LLR과, l회째의 행 처리에서 갱신된, 처리 대상의 행 번호 이외의 열 가중치에 대응한 열 처리용 LLR의 합계값과의 가산 결과를 행 처리용 LLR로 하고, 상기 행 처리용 LLR의 절대값이 처리 대상의 행의 최소 k값 중 적어도 어느 하나보다 작은 경우에, 상기 최소 k값을 갱신하고,
    상기 가산 결과인 행 처리용 LLR의 부호와, 상기 유지 수단에 유지된 부호의 승산 결과 S'를 승산하여, 그 승산 결과를 반복 (l+1)회째의 행 처리에서 이용하는 부호의 승산 결과 S로서 갱신해 두는 것
    을 특징으로 하는 통신 장치.
  10. LDPC(Low-density parity-check) 부호화된 부호어를 검사 행렬을 이용하여 복호하는 통신 장치에 있어서,
    검사 행렬에서의 행 가중치에 대응한 대수 우도비(비트 노드로부터 체크 노드로 보내는 대수 우도비: 행 처리용 LLR이라고 함)의 절대값에 근거하여, 열 처리에서 이용하는 대수 우도비(체크 노드로부터 비트 노드로 보내는 대수 우도비: 열 처리용 LLR이라고 함)를 연산하는 행 처리를 실행하는 행 처리 수단과,
    열 가중치에 대응한 열 처리용 LLR을 이용하여, 행 처리에서 이용하는 행 처리용 LLR을 연산하는 열 처리를 실행하는 열 처리 수단
    을 구비하고,
    상기 행 처리 수단과 상기 열 처리 수단은 소정 횟수씩 교대로 처리를 행하여, 상기 행 처리용 LLR 및 열 처리용 LLR의 갱신을 순회적으로 실행하는 하고,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값과, 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하며,
    상기 행 처리용 LLR의 부호의 승산 결과는, 처리 대상의 열 번호보다 작은 열 번호에 대해서는 반복 l회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하고, 또한, 처리 대상의 열 번호보다 큰 열 번호에 대해서는 반복 (l-1)회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하여 구하는 것
    을 특징으로 하는 통신 장치.
  11. 삭제
  12. 제 10 항에 있어서,
    상기 행 처리 수단은, 또한, 미리 규정된 고정의 정규화 팩터에 의해 상기 행 처리용 LLR의 절대값의 최소값을 보정하고, 보정 후의 값을 이용하여 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  13. 제 10 항에 있어서,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값을, 사전 결정된 보정식에 근거하여 최적값으로 보정하고, 보정 후의 값과 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  14. 제 10 항에 있어서,
    상기 행 처리 수단은, 상기 행 가중치에 대응한 행 처리용 LLR의 절대값의 최소값에 대해, TLU(테이블 룩업)를 이용한 사전 결정된 연산을 행하여, 상기 연산 처리 후의 값과 상기 행 처리용 LLR의 부호의 승산 결과를 승산함으로써, 다음의 열 처리에서 이용하는 열 처리용 LLR을 구하는 것을 특징으로 하는 통신 장치.
  15. 삭제
  16. 제 1 항에 있어서,
    상기 행 처리 수단은, 반복 1회째의 복호시, 상기 최소 k값으로서 수신 LLR의 절대값의 최소값을 이용하는 것을 특징으로 하는 통신 장치.
  17. 제 1 항 또는 제 10 항에 있어서,
    상기 열 처리 수단은, 상기 열 처리를 실행할 때마다 사후 값을 산출하고, 그 사후 값을 경판정하여, 패리티 검사 결과가 OK인 경우이거나, 또는, 반복 횟수가 규정된 최대 횟수인 경우에, 그때의 경판정값을 복호 결과로서 출력하는 것을 특징으로 하는 통신 장치.
  18. 제 1 항 또는 제 10 항에 있어서,
    상기 행 처리의 개시열을 임의로 하여, 최종열까지 처리가 종료한 단계에서, 재차 최초의 열부터 반복 복호를 행하는 것을 특징으로 하는 통신 장치.
  19. 제 1 항 또는 제 10 항에 있어서,
    상기 행 처리의 개시열을 임의로 하여, 중복하지 않는 임의의 열에 대해 처리를 행하여, 모든 열이 종료한 단계에서, 재차 동일한 순서로 반복 복호를 행하는 것을 특징으로 하는 통신 장치.
  20. 제 1 항 또는 제 10 항에 있어서,
    상기 행 처리의 개시열을 임의로 하여, 중복하지 않는 임의의 열에 대해 처리를 행하여, 모든 열이 종료한 단계에서, 계속해서 상이한 순서로 중복하지 않는 임의의 열에 대해 모든 열이 종료할 때까지 반복 복호를 행하는 것을 특징으로 하 는 통신 장치.
  21. 제 1 항 또는 제 10 항에 있어서,
    검사 행렬에서의 행 가중치의 열 번호를, 열 번호가 작은 순서대로 0부터 승순으로 표기하는 것을 특징으로 하는 통신 장치.
  22. LDPC(Low-density parity-check)를 사용하여 부호화된 부호어를 검사 행렬에 근거하여 반복 복호하는 복호 방법으로서,
    복호 알고리즘에 있어서의 행 처리 및 열 처리의 반복에 의해 얻어지는 복호의 도중 결과인 중간값을 유지하는 단계와,
    상기 검사 행렬에 있어서의 행 가중치에 대응한 행 처리용 LLR(대수 우도비)의 절대값에 근거하여, 열 처리에서 이용하는 열 처리용 LLR(대수 우도비)을 연산하는 행 처리를 실행하고, 상기 행 처리용 LLR은 비트 노드로부터 체크 노드로 송신되고, 상기 열 처리용 LLR은 체크 노드로부터 비트 노드로 송신되는 행 처리 단계와,
    상기 검사 행렬의 열 가중치에 대응한 상기 열 처리용 LLR에 근거하여, 행 처리에서 이용하는 상기 행 처리용 LLR을 연산하는 열 처리를 실행하고, 또한, 상기 행 처리용 LLR의 절대값의 최소 k값을 유지하고, 상기 최소 k값은 최소값으로부터 오름차순으로 k번째의 값인, 열 처리 단계와,
    상기 행 처리 단계와 상기 열 처리 단계의 반복 처리의 실행을 제어하는 단계를
    포함하되,
    상기 제어 단계는, 상기 행 처리 단계와 상기 열 처리 단계를 제어하여 열 단위로 교대로 처리를 행하고, 상기 열 처리 단계에서 순회적으로 각 행의 최소 k값을 갱신하고, 상기 행 처리 단계에서 근사적인 최소값을 이용하여 연산을 행하는 것
    을 특징으로 하는 복호 방법.
  23. LDPC(Low-density parity-check) 부호화된 부호어를 검사 행렬을 이용하여 복호하는 복호 방법으로서,
    검사 행렬에 있어서의 행 가중치에 대응한 대수 우도비(비트 노드로부터 체크 노드로 보내는 대수 우도비: 행 처리용 LLR이라고 함)의 절대값에 근거하여, 열 처리에서 이용하는 대수 우도비(체크 노드로부터 비트 노드로 보내는 대수 우도비: 열 처리용 LLR이라고 함)를 연산하는 행 처리를 실행하는 행 처리 단계와,
    상기 행 처리에 의해 연산된 열 가중치에 대응한 열 처리용 LLR을 이용하여, 행 처리에서 이용하는 행 처리용 LLR을 연산하는 열 처리를 실행하는 열 처리 단계를 소정 횟수씩 교대로 실행하여, 상기 행 처리용 LLR 및 열 처리용 LLR의 갱신을 순회적으로 실행하고,
    상기 행 처리 단계에서는, 열 처리용 LLR을 연산하기 위해서, 또한, 상기 행 처리용 LLR의 부호의 승산 결과를 이용하고,
    상기 행 처리용 LLR의 부호의 승산 결과는, 처리 대상의 열 번호보다 작은 열 번호에 대해서는 반복 l회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하고, 또한, 처리 대상의 열 번호보다 큰 열 번호에 대해서는 반복 (l-1)회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하여 구하는 것을 특징으로 하는 복호 방법.
  24. 삭제
  25. 삭제
  26. 제 23 항에 있어서,
    상기 행 처리 단계에서는, 반복 l회째에 있어서, 특정한 행에서의 행 가중치에 대응한 행 처리용 LLR의 부호를 승산하는 경우, 반복 (l-1)회째의 열 처리에서 갱신된 행 가중치에 대응한 행 처리용 LLR의 부호의 승산 결과 S와, 처리 대상의 열 번호에 대응하는, 반복 (l-1)회째의 열 처리에서 갱신된 행 처리용 LLR의 부호를 승산하여, 그 승산 결과 S'를 메모리의 특정 영역에 유지하는 것을 특징으로 하는 복호 방법.
  27. 제 26 항에 있어서,
    상기 열 처리 단계에서는, 반복 l회째에 있어서, 특정한 열에 대한 열 처리를 행하는 경우,
    처리 대상의 열 번호에 대응하는 수신 LLR과, l회째의 행 처리에서 갱신된, 처리 대상의 행 번호 이외의 열 가중치에 대응한 열 처리용 LLR의 합계값과의 가산 결과를 행 처리용 LLR로 하고, 상기 행 처리용 LLR의 절대값이, 처리 대상의 행의 최소 k값 중 적어도 어느 하나보다 작은 경우에, 상기 최소 k값을 갱신하고,
    상기 가산 결과인 행 처리용 LLR의 부호와, 상기 메모리의 특정 영역에 유지된 부호의 승산 결과 S'를 승산하여, 상기 승산 결과를 반복 (l+1)회째의 행 처리에서 이용하는 부호의 승산 결과 S로서 갱신해 두는 것
    을 특징으로 하는 복호 방법.
  28. 제 22 항에 있어서,
    반복 1회째의 복호시, 상기 최소 k값으로서 수신 LLR의 절대값의 최소값을 이용하는 것을 특징으로 하는 복호 방법.
  29. 제 22 항 또는 제 23 항에 있어서,
    상기 열 처리 단계를 실행할 때마다 사후 값을 산출하고, 상기 사후 값을 경판정하여, 패리티 검사 결과가 OK인 경우이거나, 또는, 반복 횟수가 규정된 최대 횟수인 경우에, 그때의 경판정값을 복호 결과로서 출력하는 것을 특징으로 하는 복호 방법.
  30. 제 10 항에 있어서,
    상기 행 처리 수단과 상기 열 처리 수단이 소정 횟수씩 교대로 처리를 행할 때에, 상기 행 처리용 LLR 및 열 처리용 LLR의 갱신을 행하는 것을 특징으로 하는 통신 장치.
KR1020087000887A 2005-07-13 2006-07-12 통신 장치 및 복호 방법 KR100983692B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2005205004 2005-07-13
JPJP-P-2005-00205004 2005-07-13
JPJP-P-2006-00047392 2006-02-23
JP2006047392 2006-02-23
PCT/JP2006/313891 WO2007007801A1 (ja) 2005-07-13 2006-07-12 通信装置および復号方法

Publications (2)

Publication Number Publication Date
KR20080015145A KR20080015145A (ko) 2008-02-18
KR100983692B1 true KR100983692B1 (ko) 2010-09-24

Family

ID=37637191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087000887A KR100983692B1 (ko) 2005-07-13 2006-07-12 통신 장치 및 복호 방법

Country Status (6)

Country Link
US (1) US8132080B2 (ko)
EP (1) EP1909395B1 (ko)
JP (1) JP4627317B2 (ko)
KR (1) KR100983692B1 (ko)
CN (1) CN101248583B (ko)
WO (1) WO2007007801A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
FR2912574B1 (fr) * 2007-02-13 2010-09-17 Commissariat Energie Atomique Procede de decodage a passage de messages et a convergence forcee.
JP4743156B2 (ja) * 2007-04-27 2011-08-10 ソニー株式会社 復号装置
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
JP4760769B2 (ja) * 2007-05-15 2011-08-31 住友電気工業株式会社 復号回路及び部分処理回路
JP4821724B2 (ja) * 2007-07-18 2011-11-24 ソニー株式会社 復号装置および復号方法
TW200906073A (en) * 2007-07-31 2009-02-01 Univ Nat Chiao Tung Calculation method applied to Low Density Parity check Code (LDPC) decoder and circuit thereof
JP4728381B2 (ja) * 2008-11-27 2011-07-20 住友電気工業株式会社 復号装置
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
JP5018807B2 (ja) * 2009-02-26 2012-09-05 富士通株式会社 復号化装置
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
JP5523064B2 (ja) * 2009-11-13 2014-06-18 三菱電機株式会社 復号装置及び方法
JP5370337B2 (ja) * 2010-10-29 2013-12-18 株式会社Jvcケンウッド 復号装置および復号方法
WO2013147777A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Updating variable nodes associated with an iterative decoder
US8930790B1 (en) * 2013-09-13 2015-01-06 U-Blox Ag Method and apparatus for identifying selected values from among a set of values
US10103750B2 (en) * 2013-12-09 2018-10-16 Mitsubishi Electric Corporation Error correction decoding apparatus
US20160020787A1 (en) * 2014-07-18 2016-01-21 Kabushiki Kaisha Toshiba Decoding apparatus, decoding method and non-transitory computer-readable recording medium containing a decoding program
US20160055055A1 (en) * 2014-08-25 2016-02-25 Kabushiki Kaisha Toshiba Memory system and error correction decoding method
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
TWI682636B (zh) * 2018-06-13 2020-01-11 財團法人資訊工業策進會 通訊系統之低密度奇偶檢查碼的解碼方法及應用其之通訊裝置
WO2020052754A1 (en) * 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Simplified check node processing for ldpc decoding
CN112152639A (zh) * 2019-06-27 2020-12-29 深圳市中兴微电子技术有限公司 一种极化码的译码方法、装置、存储介质和终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153938A1 (en) * 2002-12-03 2004-08-05 Nec Corporation Error correcting code decoding device, program and method used in the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184486B1 (en) * 2000-04-27 2007-02-27 Marvell International Ltd. LDPC encoder and decoder and method thereof
KR100891782B1 (ko) * 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US7219288B2 (en) * 2002-11-27 2007-05-15 Koninklijke Philips Electronics N.V. Running minimum message passing LDPC decoding
KR100502608B1 (ko) 2002-12-24 2005-07-20 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
EP1819056B1 (en) 2004-12-02 2013-07-17 Mitsubishi Electric Corporation Decoding device and communication device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153938A1 (en) * 2002-12-03 2004-08-05 Nec Corporation Error correcting code decoding device, program and method used in the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jianguang Zhao et al., "On implementation of min-sum algorithm and its modifications for decoding low-density parity-check (LDPC) code," IEEE Trans. on Communications, Vol. 53, No. 4, p. 549*
Marc P. C. Fossorier et al., "Reduced complexity iterative decoding of low-density parity check codes based on belief propagation," IEEE Trans. on Communications, Vol. 47, No. 5, p. 673*

Also Published As

Publication number Publication date
US8132080B2 (en) 2012-03-06
EP1909395A4 (en) 2009-04-15
EP1909395A1 (en) 2008-04-09
EP1909395B1 (en) 2019-11-20
US20090132887A1 (en) 2009-05-21
KR20080015145A (ko) 2008-02-18
CN101248583B (zh) 2012-04-18
CN101248583A (zh) 2008-08-20
JPWO2007007801A1 (ja) 2009-01-29
WO2007007801A1 (ja) 2007-01-18
JP4627317B2 (ja) 2011-02-09

Similar Documents

Publication Publication Date Title
KR100983692B1 (ko) 통신 장치 및 복호 방법
KR100924189B1 (ko) 복호 장치 및 통신 장치
US8489957B2 (en) Lower-complexity layered belief propagation decoding LDPC codes
KR100891782B1 (ko) 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US7853862B2 (en) Systems and methods for a turbo low-density parity-check decoder
KR20080033381A (ko) 검사 행렬 생성 방법, 부호화 방법, 복호 방법, 통신 장치,통신 시스템, 부호화기 및 복호기
US20050229087A1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
CN106936444B (zh) 一种集合译码方法和集合译码器
KR20070039353A (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
CN109586732B (zh) 中短码ldpc编解码系统和方法
EP4295489A1 (en) Protograph quasi-cyclic polar codes and related low-density generator matrix family
EP3044882B1 (en) Ldpc decoding method and apparatus with identification of first and second extreme values from among a set of values
CN109921802B (zh) 一种qc-ldpc码的译码方法、模块及装置
US8327215B2 (en) Apparatus and method for encoding LDPC code using message passing algorithm
CN111164897B (zh) 广义低密度奇偶校验码
CN110073618B (zh) 产生用于增量冗余harq通信装置的低密度奇偶校验码的设备和方法
KR101307733B1 (ko) 블록 레이어 기반의 비 이진 qc-ldpc 부호의 복호 장치 및 그 방법
US11863202B2 (en) Polar coding and decoding for correcting deletion and/or insertion errors
CN113612485A (zh) 一种译码方法、译码装置、设备及存储装置
CN112929036A (zh) 一种基于对数似然比的置信度传播动态翻转译码方法
KR102611823B1 (ko) Ldpc 디코더의 tdmp 알고리즘에 의한 패리티 검사 행렬의 디코딩 방법
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
WO2023272768A1 (en) Low-latency segmented quasi-cyclic low-density parity-check (qc-ldpc) decoder
KR101267654B1 (ko) 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
CN115529104A (zh) 基于最大互信息的极化码量化译码方法及装置

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: 20130822

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150820

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170823

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 9