KR20070073949A - 복호 장치 및 통신 장치 - Google Patents

복호 장치 및 통신 장치 Download PDF

Info

Publication number
KR20070073949A
KR20070073949A KR1020077012100A KR20077012100A KR20070073949A KR 20070073949 A KR20070073949 A KR 20070073949A KR 1020077012100 A KR1020077012100 A KR 1020077012100A KR 20077012100 A KR20077012100 A KR 20077012100A KR 20070073949 A KR20070073949 A KR 20070073949A
Authority
KR
South Korea
Prior art keywords
decoding
processing
row
column
unit
Prior art date
Application number
KR1020077012100A
Other languages
English (en)
Other versions
KR100924189B1 (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 KR20070073949A publication Critical patent/KR20070073949A/ko
Application granted granted Critical
Publication of KR100924189B1 publication Critical patent/KR100924189B1/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
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • H03M13/1188Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • 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/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/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3911Correction factor, e.g. approximations of the exp(1+x) function
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

저밀도 패리티 검사 부호화된 수신 신호에 대하여, Min-Sum 알고리즘에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 행 처리부(5) 및 열 처리부(6)와, 사후 값의 경판정으로부터 복호 결과를 결정하고 패리티 검사를 행하여 복호 결과의 옳고그름을 판정하는 복호 결과 판정부(8)와, 복호 결과 판정부(8)의 판정 결과에 기초하여 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 반복을 제어하는 제어부를 구비한 복호 장치를 개시한다.

Description

복호 장치 및 통신 장치{DECODING DEVICE AND COMMUNICATION DEVICE}
본 발명은 디지털 통신에서의 오류 정정 기술에 관한 것으로, 특히 저밀도 패리티 검사 LDPC(Low-Density Parity Check) 부호 및 Turbo 부호에 의한 부호화 신호를 복호하는 복호 장치 및 이것을 구비한 통신 장치에 관한 것이다.
LDPC 부호화 신호를 복호하는 기본적인 알고리즘에는, Sum-Product 알고리즘과 Min-Sum 알고리즘이 있다. 이들 복호 알고리즘에서는, 수신 신호의 확률적인 신뢰도 정보로서 대수 우도비 LLR(Log Likelihood Ratio)을 산출하면서 반복 연산을 행함으로써 복호를 행한다(예를 들면, 비 특허 문헌 1 참조).
Sum-Product 알고리즘에서는, 예를 들면 tanh 함수 등의 수학 함수를 사용한 연산(실수의 가산이나 함수의 평가)이 요구되어, 계산 비용이 높다. 이 때문에, 실장시에는, 당해 함수의 값을 보유하는 테이블을 준비하는 등 하여 계산 비용을 낮출 필요가 있다. 그 반면, 정확한 연산이 이루어지기 때문에 복호 성능은 높다고 하는 이점도 있다.
이에 반해, Min-Sum 알고리즘에서는, Sum-Product 알고리즘의 수학 함수를 근사한 간이한 수식을 사용하여, 가산, 최소, 정부(正負)의 판정, 정부의 부호의 승산이라고 하는 4종류의 연산만으로 실장할 수 있다. 이 때문에, 계산 비용은 적어진다. 그러나, 근사의 영향에 의해 복호 성능은 열화된다.
또, 종래의 LDPC 부호화 신호의 복호 알고리즘은 확률 정보의 전파에 기초하여 반복 복호를 행한다. Sum-Product 알고리즘이나 Min-Sum 알고리즘에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다.
예를 들면, 복호하고 싶은 LDPC 부호의 검사 행렬이 2원 m×n 행렬 H=[Hm,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)라고 하면, m=1, 2, 3, …, M의 순으로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대해 행 처리를 행하고, 이후에 n=1, 2, 3, …, N의 차례로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대해 열 처리가 실행된다.
이 때문에, 복호 처리의 반복 회수가 커지면, 그것에 따라서 복호 지연시간이 커진다고 하는 문제가 발생한다. 그래서, 반복 복호의 회수를 삭감하는 복호 알고리즘으로서, Shuffled BP(Belief Propagation) 알고리즘이 있다(예를 들면, 비 특허 문헌 2 참조).
Shuffled BP 알고리즘에서는, 부호화 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 실행한다. 이에 따라, 확률 정보의 전파가 효율적으로 행해져 수렴이 빨라진다고 하는 이점이 있다. 이 Shuffled BP 알고리 즘을 이하에 간단하게 설명한다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR(Log Likelihood Ratio)의 초기값 zm ,n (0)을 Fn(zm , n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는, 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이며, Hm ,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 하기 식 (1)의 조건에 대하여, 하기 식 (2) 및 하기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은 집합 [1,N]의 부분집합이며, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미한다.
Figure 112007039300242-PCT00001
또, 집합 A에서 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉 N(m)\n은 집합 N(m)에서 n열째를 제거한 열 인덱스의 집합으로, M(n)\m이 집합 M(n)에서 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이며, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (1)의 조건에 대하여, 하기 식 (4) 및 하기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드로부터 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
Figure 112007039300242-PCT00002
다음에, 단계 2로서, 사후값 zn (i)를 경판정하고, 하기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 하기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아간다. 단계 3에서는, 복호 결과로서, 단계 2에서 얻은 하기 식 (6)에 따른 복호 계열을 출력한다. 또, 하기 식 (6)에서의 wn은, 복호 계열 w의 n=1~N에서의 요소이다.
Figure 112007039300242-PCT00003
Figure 112007039300242-PCT00004
상기한 Shuffled BP 알고리즘에서는, 반복 회수 i에 착안하면, 동일한 반복 i회째에서 갱신한 LLR인 zm ,n' (i)를 사용하여 행 처리를 행함으로써 확률 전파가 효율적으로 행해지고 있다.
또한, 비 특허 문헌 2에서는, Ng=1로 하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 행하는 경우를 Shuffled BP 알고리즘이라 하고, 1<Ng<N으로 하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 경우를 Group Shuffled BP 알고리즘이라 해 두고, 여기서도 그것에 따른다. 또한, Ng=N일 경우, Sum-Product 알고리즘으로 된다. 또, 간단하게 하기 위해 Ng를 N의 약수로 하고 있다.
한편, Min-Sum 알고리즘과 동일한 정도의 계산 비용으로 LDPC 부호의 복호를 행하면서, Sum-Product 알고리즘에 비해 복호 성능이 열화되는 것을 억제할 수 있는 복호 알고리즘으로서, 예를 들면 Normalized BP 알고리즘이나 Offset BP 알고리즘이 있다(예를 들면, 비 특허 문헌 3 참조).
간단히 설명하면, Normalized BP 알고리즘에서는, Min-Sum 알고리즘에 의해 산출되는 LLR이 Sum-Product 알고리즘에 의해 산출되는 LLR보다도 항상 큰 값이 되므로, Min-Sum 알고리즘의 행 처리에서 산출된 LLR을 Normalization Factor라고 불리는 인자 α(>1)로 제산하여 넘겨지는 LLR로 한다. 또, Offset BP 알고리즘에서는, Min-Sum 알고리즘의 행 처리에서 산출된 LLR을 Offset Factor라고 불리는 인자 β(>0)에 의해 감산하여 넘겨지는 LLR로 한다.
이와 같이, 복호 시에 제산이나 감산을 실행하지만, 제산이나 감산에 의한 계산 비용은 그다지 크지 않고, Sum-Product 알고리즘과 비교한 복호 성능의 열화를 경감하는 것이 가능하게 된다. 또, 각 인자 α,β에 대해서는 시뮬레이션 혹은 밀도발전법(density evolution method)(예를 들면, 비 특허 문헌 4 참조)을 사용하여 미리 산출해 두고, LDPC 복호부에서 보유해 두면 된다.
또, Min-Sum 알고리즘의 행 처리에서 산출된 LLR에 대하여, 수신 신호의 크기에 따라 보정을 행하는 알고리즘이 있다(예를 들면, 비 특허 문헌 5 참조). 이 복호 알고리즘에서는, Min-Sum 알고리즘의 보정항으로서, 보정 함수의 테이블을 준비해 두고, 수신 신호의 크기에 따라 보정항을 바꿈으로써 적확한 보정을 행하여, 복호 성능을 향상시키는 것이다.
또한, 통신로 정보로서 수신 LLR의 크기로 Shuffled BP 알고리즘의 연산 순서를 제어하는 방법이 있다. 이 방법은, 수신 정보로부터 산출한 수신 LLR의 절대값이 큰 쪽, 혹은 작은 쪽부터 순서대로 제어하여 Shuffled BP 알고리즘에 의해 복호하는 것이다.
Turbo 부호화 신호를 복호하는 기본적인 알고리즘에는, Log-MAP(Maximum A Posteriori Probability) 알고리즘과 Max-Log-Map 알고리즘이 있다. 이들 복호 알고리즘에서는, 수신 신호의 확률적인 신뢰도 정보로서 메트릭 값을 산출하면서 반복 연산을 행함으로써 복호를 행한다(예를 들면, 비 특허 문헌 6 참조).
Log-MAP 알고리즘에서는, 예를 들면 지수 함수 등의 수학 함수를 사용한 연산(실수의 가산이나 함수의 평가)이 요구되어, 계산 비용이 높다. 이 때문에, 실장 시에는, 당해 함수의 값을 보유하는 테이블을 준비하는 등 하여 계산 비용을 낮출 필요가 있다. 그 반면, 정확한 연산이 이루어지기 때문에 복호 성능은 높다고 하는 이점도 있다.
이에 반해, Max-Log-MAP 알고리즘에서는, Log-Map 알고리즘의 수학 함수를 근사한 간이한 수식을 사용하여, 가산, 최대, 정부의 판정, 정부의 부호의 승산이라고 하는 4종류의 연산만으로 실장할 수 있다. Log-MAP 알고리즘에서 행하는 지수 함수의 합에 대한 대수 계산을 지수의 최대값으로 근사한다. 이 때문에, 수학 함수를 포함하는 처리가 없어져 계산 비용은 적어진다. 그러나, 근사의 영향으로 복호 성능은 열화된다.
한편, Max-Log-Map 알고리즘과 동일한 정도의 계산 비용으로 Turbo 부호의 복호를 행하면서, Map 알고리즘과 비교하여 복호 성능이 열화되는 것을 억제할 수 있는 복호 알고리즘이 있다(예를 들면, 비 특허 문헌 7 참조).
간단하게 설명하면, Max-Log-Map 알고리즘의 메트릭 계산에서 산출된 메트릭 값을, 인자 s로 승산하여 MAP 알고리즘에 의해 산출되는 값과 동일한 정도로 조정 하여 넘겨지는 LLR로 한다.
이와 같이, 복호 시에 승산을 실행하지만, 승산에 의한 계산 비용은 그다지 크지 않고, Log-MAP 알고리즘과 비교한 복호 성능의 열화를 경감하는 것이 가능하게 된다. 또, 인자 s에 대해서는 시뮬레이션을 사용하여 미리 산출해 두고, Turbo 복호부에서 보유해 두면 된다.
비 특허 문헌 1: 와다야마 타다시, 「저밀도 패리티 검사 부호와 그 복호법 LDPC(Low Density Parity Check) 부호/sum-product 복호법」, 트리켑스, 2002년 6월 5일, p.76-99
비 특허 문헌 2: Juntan Zhang 등, "Shuffled Belief Propagation Decoding", [online], [2004년 9월 28일 검색], http://lester.univ-ubs.fr:8080/~boutillon/Journee_GDR_LDPC/Fossorier1_GDR_LDPC.pdf
비 특허 문헌 3: Jinghu Chen 등, "Reduced-Complexity Decoding of LDPC Codes", [online], [2004년 9월 28일 검색], http://www-ee.eng.hawaii.edu/~jinghu/FILES/tcom02v3p2.pdf
비 특허 문헌 4: Jinghu Chen 등, "Density evolution of two improved BP-based algorithms for LDPC decoding", IEEE Communications Letters, March 2002
비 특허 문헌 5: Xiao-Yu 등, "Efficient Implementation of the Sum-Product algorithm for Decoding LDPC Codes", Proc. 2001 IEEE GlobeCom Conf., pp.1036-1036E, Nov. 2001
비 특허 문헌 6: 하기와라 하루오, 「터보 부호의 기초」, 트리켑스, 1999년 10월 7일, p.37-46
비 특허 문헌 7: J Vogt 등, "Improving the max-log-MAP turbo decoder", ELECTRONICS LETTERS, Vol.36, No.23, p.1937-1938
종래의 Min-Sum 알고리즘에 따른 LDPC 부호화 신호의 복호 장치에서는, 복호 성능을 유지하기 위해서는 반복 회수를 크게 해야만 하고, 이것에 따라 복호 지연도 커진다고 하는 과제가 있었다. 또, 이 경향은, Min-Sum 알고리즘에서의 근사 갱신식을 기본 갱신식으로서 사용하는 Normalized BP 알고리즘이나, Offset BP 알고리즘에서도 동일하다.
또, Normalized BP 알고리즘 및 Offset BP 알고리즘의 복호 성능은 인자 α(Normalization Factor) 및 인자 β(Offset Factor)의 값에 각각 크게 의존하고 있다. 이 때문에, 각 인자 α, β를 사전에 산출해 둘 필요가 있지만, 실제의 수신 장치 등에 실장한 경우, 부호 구성이나 통신로에 의존하여 각 인자 α, β의 값을 바꾸지 않으면 충분한 복호 성능을 발휘할 수 없다.
또한, Min-Sum 알고리즘의 행 처리에서 산출된 LLR에 대하여, 수신 신호의 크기에 따라 보정을 행하는 복호 알고리즘에서는, 수신 정보(수신 신호의 크기)에 따른 보정 정수를 보유한 보정항 테이블을 설치할 필요가 있어, 실장이 용이하지 않다. Sum-Product 알고리즘이나 Shuffled BP 알고리즘과 같이, 복호 시에 tanh 함수 등의 수학 함수를 필요로 하는 경우도, 계산 비용이 커져 하드웨어 구성이 복잡하게 되기 때문에 실장이 곤란하다.
또, Shuffled BP 알고리즘 및 Group Shuffled BP 알고리즘에서는, 부호의 선 두 비트부터 차례로 복호 연산을 행하거나, 혹은, 부호의 선두부터 그룹으로 나뉜 복수 비트 차례로 복호 연산을 행한다. 이 때문에, 부호 구성이나 변조 방식에 최적인 연산 순서로 할 수 없다고 하는 과제도 있다. 또한, 통신로 정보로서, 수신 정보로부터 산출되는 수신 LLR의 크기로 순서 제어하는 기술에서는, 수신 때마다 순서를 바꿀 필요가 있다고 하는 문제가 있다.
또한, 상기 인자 s로 승산하는 Max-Log-MAP 알고리즘의 복호 성능은 인자 s의 값에 의존하고 있다. 이 때문에, 인자 s를 사전에 산출해 둘 필요가 있지만, 실제의 수신 장치 등에 실장한 경우, 부호 구성이나 통신로에 의존하여 인자 s의 값을 바꾸지 않으면 충분한 복호 성능을 발휘할 수 없다.
본 발명은, 상기와 같은 과제를 해결하기 위해 행해진 것으로, Min-Sum 알고리즘 및 그것을 기본 갱신식으로 하는 Normalized BP 알고리즘이나 Group Shuffled BP 알고리즘에 대해 고효율의 확률 전파 알고리즘을 제공하여 연산 결과의 수렴을 빠르게 하고, 반복 복호의 회수를 삭감할 수 있는 부호화 신호의 복호 방법, 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
또, 본 발명은, Sum-Product 알고리즘과 같은 복잡한 수학 함수를 사용하지 않고 Min-Sum 알고리즘과 동일한 정도의 계산 비용으로, Normalized BP 알고리즘이나 Offset BP 알고리즘과 같이 인자에 크게 의존하지도 않고, 보정항을 테이블로 만들어 보유할 필요도 없고, 게다가 더 높은 복호 능력을 실현할 수 있는 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
또한, 본 발명은, 다치(多値) 변조되어 송수신 된 경우나 부호가 불규칙 LDPC 부호일 경우에도, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘의 연산 순서 제어를 효율적으로 행할 수 있고, 또한 반복 회수도 삭감할 수 있는 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
또한, 본 발명에서는, 다치 변조되어 송수신 하는 경우에 있어서, 인자 α(Normalization Factor)나 인자 β(Offset Factor)를 변조 방식이나 부호 구성에 의존하여 결정함으로써 복호 성능을 향상시킨 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
또한, 본 발명은, Shuffled BP 알고리즘과 같이 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행할 때 처리를 병렬화함으로써 연산 지연 시간을 삭감할 수 있는 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
또, 본 발명은, Log-MAP 알고리즘과 같은 복잡한 수학 함수를 사용하지 않고 Max-Log-MAP 알고리즘과 동일한 정도의 계산 비용으로, 높은 복호 능력을 실현할 수 있는 복호 장치 및 이것을 구비한 통신 장치를 얻는 것을 목적으로 한다.
본 발명에 따른 복호 장치는, 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대해 「Min-Sum 알고리즘」에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비하는 것이다.
이에 따라, LDPC 부호를 복호하는 종래의 복호 알고리즘에 따른 복호 장치와 비교하여 보다 적은 반복 회수로 복호할 수 있고, 또한, 복호에 요하는 계산 비용을 적게 억제할 수 있다고 하는 효과가 있다.
또, 본 발명에 의하면, Turbo 부호화된 수신 신호에 대하여 Map 알고리즘과 같은 복잡한 수학 함수를 사용하지 않아 Max-Log-MAP 알고리즘과 동일한 정도의 계산 비용으로, 상기 인자 s로 승산하는 Max-Log-MAP 알고리즘과 같이 복호 성능이 인자에 의존하지 않고, 성능 열화를 억제할 수 있다고 하는 효과가 있다.
도 1은 본 발명의 실시예 1에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도,
도 2는 도 1 중의 행 처리부의 구성을 도시하는 블럭도,
도 3은 실시예 1에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트,
도 4는 비트 오류율과 복호 반복 회수의 평균값과의 관계를 그린 그래프,
도 5는 본 발명의 실시예 2에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도,
도 6은 비트 오류율과 복호 반복 회수의 평균값과의 관계를 그린 그래프,
도 7은 본 발명의 실시예 3에 의한 LDPC 부호 복호 장치의 행 처리부의 구성 을 도시하는 블럭도,
도 8은 비트 오류율과 복호 반복 회수의 평균값과의 관계를 그린 그래프,
도 9는 본 발명의 실시예 4에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도,
도 10은 도 9 중의 행 처리부의 구성을 도시하는 블럭도,
도 10a는 도 9 중의 행 처리부의 다른 구성을 도시하는 블럭도,
도 11은 실시예 4에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트,
도 12는 비트 오류율과 신호대 잡음비(Eb/No)의 관계를 그린 그래프,
도 13은 본 발명의 실시예 5에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도,
도 14는 비트 오류율과 신호대 잡음비(Eb/No)의 관계를 그린 그래프,
도 15는 본 발명의 실시예 6에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도,
도 16은 비트 오류율과 신호대 잡음비(Eb/No)의 관계를 그린 그래프,
도 17은 4PAM Gray Mapping에서의 수신값의 분포를 도시하는 그래프,
도 18은 본 발명의 실시예 10에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도,
도 19는 본 발명의 실시예 11에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도,
도 20은 본 발명의 실시예 12에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도,
도 21은 LDPC 부호화 행렬의 구성예를 도시하는 도면,
도 22는 실시예 12의 LDPC 부호 복호 장치에 의한 LDPC 부호 행렬의 그룹 분할 예를 도시하는 도면,
도 23 실시예 12에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트,
도 24는 비트 오류율과 복호 반복 회수의 평균값과의 관계를 그린 그래프,
도 25는 본 발명의 실시예 16에 의한 통신 장치의 구성을 도시하는 블럭도,
도 26은 실시예 16에 의한 통신 장치에서 사용하는 LDPC 부호의 구성을 도시하는 도면,
도 27은 실시예 16에 의한 통신 장치에서 LDPC 부호를 4PAM으로 변조하여 송수신하는 경우에 있어서의 비트의 할당의 예를 도시하는 도면,
도 28은 실시예 16에 의한 통신 장치의 동작을 도시하는 플로우차트(이 도면에 따라 설명),
도 29는 본 발명의 실시예 17에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도,
도 30은 도 29 중의 행 처리부 및 열 처리부에 의한 복호 연산을 설명하기 위한 블럭도,
도 31은 도 29 중의 행 처리부 및 열 처리부에 의한 다른 복호 연산을 설명 하기 위한 블럭도,
도 32는 의사 순회 부호(擬似巡回符號)의 모식도,
도 33은 본 발명의 실시예 18에 의한 행 처리부 및 열 처리부의 복호 연산을 설명하기 위한 블럭도,
도 34는 본 발명의 실시예 19에 의한 Turbo 부호 복호 장치의 구성을 도시하는 블럭도,
도 35는 실시예 19에 의한 Turbo 부호 복호 장치의 동작을 도시하는 플로우차트,
도 36은 LDPC 복호기를 포함하는 본 실시예의 통신시스템의 구성예를 도시하는 도면,
도 37은 이동통신 시스템의 구성예를 도시하는 도면.
이하, 본 발명을 더욱 상세하게 설명하기 위해서, 본 발명을 실시하기 위한 최선의 형태에 대해, 첨부 도면에 따라서 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 LLR 계산부(2) 및 복호 코어부(복호 수단)(3)로 구성된다. 수신 LLR 계산부(2)는 LDPC(Low- Density Parity Check) 부호화 신호를 수신하고, 그 대수 우도비 LLR(Log Likelihood Ratio)(이하, 수신 LLR로 칭함)을 산출하여 복호 코어부(3)에 출력한다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)에서는, 수신 LLR 계산부(2)로부터 입력한 수신 LLR에 기초하는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 중간 결과를 보유한다. 행 처리부(5)는 행 처리를 행한다. 열 처리부(6)는 열 처리를 행한다. 제어부(7)는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 반복을 제어한다. 복호 결과 판정부(8)는 사후값의 경판정으로부터 복호 결과를 결정하고, 패리티 검사를 행하여 복호 결과의 옳고그름을 판정한다.
여기서, 본 실시예 1에 의한 행 처리부(5)에서는, 상기 식 (1)에 대하여, 상기 식 (1) 및 상기 식 (2) 대신에 하기 식 (8)의 연산을 실행한다. 즉, 상기한 Shuffled BP 알고리즘의 단계 1의 행 처리에서, Min-Sum 알고리즘에서 사용하는 갱신식으로 갱신 연산을 행한다. 또한, 하기 식 중의 각 기호는 상기한 것과 동일하다.
Figure 112007039300242-PCT00005
도 2는 도 1 중의 행 처리부의 구성을 도시하는 블럭도이다. 비교부(9)는 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)는 복수의 비교부(9)를 복수 단계로 접속하여 구성된다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 당해 비트의 LLR을 입력하고, 비교부(9)가 각각의 대소 비교와 부호 (±)와의 곱을 산출한 값을 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Min-Sum 알고리즘의 근사 갱신식인 상기 식 (8)을 이용한다. 이에 따라, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Min-Sum 알고리즘이 실현된다.
다음에 동작에 대해 설명한다.
도 3은 실시예 1에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴 다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (8)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 4는, 종래의 Min-Sum 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 1에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들을 파선으로 연결한 것이 종래의 Min-Sum 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 1에 의한 것이다.
또, 도 4에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치(column weight) 3, 행 가중치(row weight) 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다.
종래의 Min-Sum 알고리즘에서는, 상기 식 (8)에 따라 반복 복호의 임의의 1 회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 4에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Min-Sum 알고리즘과 비교하여 현격하게 빨라진 것을 알 수 있다.
이상과 같이, 이 실시예 1에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Min-Sum 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Min-Sum 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다. 또, Min-Sum 알고리즘을 행 처리의 기본 알고리즘으로 하여, 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 2)
상기 실시예 1에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Min-Sum 알고리즘을 실현한 LDPC 부호 복호 장치를 나타냈다. 이에 반해, 본 실시예 2에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리 에서 Normalized BP 알고리즘을 실행하는 것이다.
본 실시예 2에 의한 LDPC 부호 복호 장치는 도 1에 도시한 상기 실시예 1에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, Normalized BP 알고리즘의 실행을 위해 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면, 본 실시예 2에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 상기 식 (2) 및 상기 식 (3) 대신에 하기 식 (9)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, Normalized BP 알고리즘에서 사용하는 갱신식인 하기 식 (9)에 의해 갱신 연산을 행한다. 또한, 하기 식 (9) 중의 각 기호는 상기한 것과 동일하다. 또, 정수 α는 Normalization Factor이다.
Figure 112007039300242-PCT00006
본 실시예 2에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Normalized BP 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (9)를 사용한 행 처리를 행하고, 열 처리부(6)는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 5는 실시예 2에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9)와 제산부(10)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)× sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(10)에서는, 입력값 c에 대하여, 인자 α(Normalization Factor)로 제산한 c/α를 계산하여 열 처리부(6)에 출력한다. 즉, 본 실시예 2에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하면, 각각의 대소 비교와 부호 (±)와의 곱을 비교부(9)에서 행하고, 비교부(9)에 의해 얻어진 값을 제산부(10)가 인자 α에 의한 제산을 행한 후, 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Normalized BP 알고리즘의 갱신식인 상기 식 (9)를 이용한다. 이에 따라, Min-Sum 알고리즘과 동일한 정도의 계산 비용으로 LDPC 부호의 복호를 행하면서, 복호 성능이 열화되는 것을 억제한 Normalized BP 알고리즘을 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 것을 실현하고 있다.
다음에 동작에 대해 설명한다.
본 실시예 2에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명하고, 아울러 상기 실시예 1과 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정 보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로 하여 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행에 대해서 상기 식 (9)에 따른 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 상기 식 (3) 및 상기 식 (4)에 따라 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (9)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (9)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처 리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 6은 종래의 Normalized BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 2에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Normalized BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 2에 의한 것이다.
또, 도 6에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6, 최대 반복 회수 Imax가 100회이다. 또, 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고, 변조 방식을 BPSK(Binary Phase Shift Keying)로 하고 있다. 또한, 종래의 Normalized BP 알고리즘 및 본 실시예 2에 의한 Normalized BP 알고리즘에서, 인자 α(Normalization Factor)를 각각 α=1.25로 하고 있다.
종래의 Normalized BP 알고리즘에서는, 상기 식 (9)에 따라 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모 든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 2에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 6에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Normalized BP 알고리즘과 비교하여 현격하게 빨라진 것을 알 수 있다.
이상과 같이, 이 실시예 2에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Normalized BP 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Normalized BP 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감하는 것이 가능하게 된다. 또, Normalized BP 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 3)
본 실시예 3에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Offset BP 알고리즘을 실행하는 것이다.
본 실시예 3에 의한 LDPC 부호 복호 장치는, 도 1에 도시한 상기 실시예 1에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, Offset BP 알 고리즘의 실행을 위해 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 3에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 하기 식 (10)의 연산을 실행한다.
즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, Offset BP 알고리즘에서 사용하는 근사 갱신식인 하기 식 (10)에 의해 갱신 연산을 행한다. 또한, 하기 식 (10) 중의 각 기호는 상기한 것과 동일하다. 또, 정수 β는 Offset Factor이고, MAX는 양자 중 큰 쪽을 선택하는 조작으로 한다.
Figure 112007039300242-PCT00007
본 실시예 3에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Offset BP 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (10)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 7은 실시예 3에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9)와 감산부(11)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(11)에서는, 입력값 c에 대하여, 인자 β(Offset Factor)로 감산한 c ―β를 계산하여 열 처리부(6)에 출력한다. 즉, 본 실시예 3에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하면, 각각의 대소 비교와 부호 (±)와의 곱을 비교부(9)에서 행하고, 비교부(9)에 의해 얻어진 값을 감산부(11)가 인자 β에 의한 감산을 행한 후, 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 3에 의한 LDPC 부호 복호 장치는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Offset BP 알고리즘의 갱신식인 상기 식 (10)을 이용한다. 이에 따라, Min-Sum 알고리즘과 동일한 정도의 계산 비용으로 LDPC 부호의 복호를 행하면서, 복호 성능이 열화되는 것을 억제한 Offset BP 알고리즘을, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 것을 실현하고 있다.
다음에 동작에 대해 설명한다.
본 실시예 3에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명하고, 더불어 상기 실시예 1과 동일한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행에 대해 상기 식 (10)에 따른 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 상기 식 (3) 및 상기 식 (4)에 따라서 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (10)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 도시하는 바와 같이 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (10)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 8은, 종래의 Offset BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 3에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Offset BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 3에 의한 것이다.
또, 도 8에서, LDPC 부호는, 레귤러 LDPC, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다. 또, 종래의 Offset BP 알고리즘 및 본 실시예 3에 의한 Offset BP 알고리즘에서, 인자 β(Offset Factor)를 각각 β=0.15로 하고 있다.
종래의 Offset BP 알고리즘에서는, 상기 식 (10)에 따라서 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 3에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 8에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Offset BP 알고리즘과 비교하여 현격하게 빨라져 있는 것을 알 수 있다.
이상과 같이, 이 실시예 3에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Offset BP 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Offset BP 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다. 또, Offset BP 알고리즘을 기본 알고리즘으로 함으로써 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 4)
이 실시예 4는 Min-Sum 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 구비하는 것이다.
도 9는 본 발명의 실시예 4에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 4에 의한 LDPC 부호 복호 장치(1)는 수신 LLR 계산부(2) 및 복호 코어부(3)로 구성된다. 수신 LLR 계산부(2)는 LDPC(Low-Density Parity Check) 부호화 신호를 수신하고, 그 대수 우도비 LLR을 산출하여 복호 코어부(3)에 출력한다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)는 수신 LLR 계산부(2)로부터 입력한 수신 LLR에 기초하는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 중간 결과를 보유한다. 행 처리부(5)는 상기한 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 의한 행 처리를 행한다. 열 처리부(6)는 당해 행 처리부(5)에 의한 처리 결과에 대해 열 처리를 행한다. 제어부(7)는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 반복을 제어한다. 복호 결과 판정부(8)는 사후 값의 경판정으로부터 복호 결과를 결정하고, 패리티 검사를 행하여 복호 결과의 옳고그름을 판정한다.
여기서, 본 실시예 4에서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 즉, 복호하고 싶은 LDPC 부호의 검사 행렬이 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이라고 하면, m=1, 2, 3, …, M의 순으로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대하여 행 처리를 행하고, 이후에 n=1, 2, 3, …, N의 순으로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대하여 열 처리가 실행된다.
반복 1회 중에 실행되는 행 처리인 단계 1에서, 본 실시예 4에 의한 행 처리부(5)는 하기 식 (11)에 대하여 하기 식 (12)의 연산을 실행한다. 하기 식 (12) 중의 각 파라미터는 하기 식 (13)~(15)로 표시되고, 이들 식 중의 각 기호는 상기 한 것과 동일하다.
Figure 112007039300242-PCT00008
또한, 상기 식 (15)에서, Min-Sum 알고리즘에 대한 보정항이 되는 δ에 대해서는, Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산으로 얻어지는 ln(2)가 일례이지만, 예를 들면 0.9 등 적절한 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
또한, 단계 1에서, 행 처리부(5)에 의한 모든 행 처리가 종료하면, 본 실시예 4에 의한 열 처리부(6)는 하기 식 (16)에 대해 상기 식 (4) 및 상기 식 (5)의 연산을 실행한다.
Figure 112007039300242-PCT00009
계속해서, 단계 2로서, 복호 결과 판정부(8)가 사후 값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 못하면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과 판정부(8)가, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
도 10은 도 9 중의 행 처리부의 구성을 도시하는 블럭도이다. 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성된다. 또, 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대하여, Min-Sum 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 의해, 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다.
또한, 상기한 상기 식 (12) 및 도 10의 구성에서는, 모든 비교에서 보정을 행하지만, 도 10a에 도시하는 바와 같이 비교부(9)에 의한 최소 두 값의 비교시에만 보정을 행하는 등, 비교 회수보다도 보정 회수를 줄임으로써 연산량을 삭감할 수 있다.
다음에 동작에 대해 설명한다.
도 11은 실시예 4에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로 설명하면, 상기 식 (11)의 관계에 따라서 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (12)를 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료하면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 또는 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 12는, 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래의 Min-Sum 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 4에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 일점 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Min-Sum 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 4에 의한 것이다.
또, 도 12에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Min-Sum 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (8)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이에 반해, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)에서는, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 12에 도시하는 바와 같이, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)는 종래의 Min-Sum 알고리즘과 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 4에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘으로부터의 복호 성능의 열화를 억제할 수 있고, 또한, 종래의 Min-Sum 알고리즘과 비교하면 현격하게 복호 성능을 향상시킬 수 있다.
또, Min-Sum 알고리즘에 대한 보정항을 수신 정보로부터 산출하므로, 종래의 보정형의 Min-Sum 알고리즘과 같이 보정항을 보유하는 테이블을 준비해 둘 필요가 없고, 종래의 Normalized BP 알고리즘이나 Offset BP 알고리즘과 같이, 부호 구성에 의존하여 최적화한 인자를 미리 준비해 둘 필요도 없다.
또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 4에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 5)
상기 실시예 4에서는, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘을 실현한 복호 장치를 나타냈다. 이에 반해, 본 실시예 5에 의한 복호 장치는 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 실행하는 것이다.
본 실시예 5에 의한 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 제산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 5에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (17)의 연산을 실행한다. 또한, 하기 식 (17) 중의 각 파라미터는 상기 식 (13)~상기 식 (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
Figure 112007039300242-PCT00010
여기서, Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
제산 정수 α는 Normalized BP 알고리즘에서의 Normalization Factor와 동일한 효과를 갖고, 상기 실시예 4에서의 보정형의 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를, Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다. 또한, 본 실시예에서의 제산식 보정형의 Min-Sum 알고리즘에서의 제산 정수 α는 Normalized BP 알고리즘과 마찬가지로 Normalization Factor라고 부르기로 한다.
본 실시예 5에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대해 제산식 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (17)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하고 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 13은 실시예 5에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 보정 연산부(12)와 제산부(13)로 구성된다. 보정 연산부(12)는, 도 10에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 보정 연산부(12)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)는 두 값 a, b의 절대값을 입력하면, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(||a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(13)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 α(Normalization Factor)로 제산한다. 즉, 제산부(13)는 입력값 c에 대하여, c/α를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 제산부(13)는 보정 연산부(12)가 산출한 값을 정수 α로 제산한 후, 열 처리부(6)로 넘긴다.
다음에 동작에 대해 설명한다.
본 실시예 5에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11을 따라 동작을 설명하고, 아울러 상기 실시예 4와 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처 리를 상기 식 (17)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대해 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 14는 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래 의 Normalized BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 5에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 1점 파선으로 연결한 것이 종래의 Normalized BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 5에 의한 것이다.
또, 도 14에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)으로 하고 있다. 또, Normalized BP 알고리즘에서, 인자 α(Normalization Factor)를 α=1.25로 한 경우의 복호 성능을 나타내고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Normalized BP 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (9)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이것에 대하여, 본 실시예 5에 의한 LDPC 부호 복호 장치(1)에서는, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수 α로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 14에 도시하는 바와 같이, 본 실시예 5에서는, 종래의 Normalized BP와 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 거의 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 5에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기의 차를 종래의 Normalized BP 알고리즘과 같이 인자 α(Normalization Factor)로 조정할 뿐만 아니라, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 대해 더욱 보정을 행함으로써, 종래의 Normalized BP 알고리즘보다도 현격하게 복호 성능을 향상시킬 수 있다.
또, 본 실시예 5에 의한 Min-Sum 알고리즘에 대한 보정항은 수신 정보로부터 산출하므로, 종래의 보정형 알고리즘과 같이 보정항 테이블을 보유할 필요가 없다. 또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은, 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 5에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 6)
본 실시예 6에서는, 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘에서의 행 처리 결과로부터 정수로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 실행하는 것이다.
본 실시예 6에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 감산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 6에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (18)의 연산을 실행한다. 또한, 하기 식 (18) 중의 각 파라미터는 상기 식 (13)~상기 식 (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
Figure 112007039300242-PCT00011
여기서, Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산으로 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는 1비트의 비트 시프트 연산으로 가능하다.
감산 정수 β는, Offset BP 알고리즘에서의 Offset Factor와 동일한 효과를 갖고, 상기 실시예 4에 의한 보정형의 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다. 또한, 본 실시예 6에 의한 감산식 보정형의 Min-Sum 알고리즘에서의 감산 정수 β는 Offset BP 알고리즘과 마찬가지로 Offset Factor라고 부르기로 한다.
본 실시예 6에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 감산식 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 유지한다. 행 처리부(5)에서는, 상기 식 (18)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하고 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 15는 실시예 6에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 보정 연산부(12)와 감산부(14)로 구성된다. 보정 연산부(12)는, 도 10에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 보정 연산부(12)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)는 두 값 a, b의 절대값을 입력하면, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(14)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 β(Offset Factor)로 감산한다. 즉, 감산부(14)는 입력값 c에 대하여 (c-β)를 계산하고, 계산 결과가 부(負)가 아니면 (c-β)를 출력하고, 부이면 0을 출력한다. 이와 같이, 행 처리부(5)에 있어서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 감산부(14)는 보정 연산부(12)가 산출한 값을 정수 β로 감산하고, 그 결과에 따라 (c-β) 또는 0을 열 처리부(6)로 넘긴다.
다음에 동작에 대해 설명한다.
본 실시예 6에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명하고, 아울러 상기 실시예 4와 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처 리를 상기 식 (18)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라서 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 16은, 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래 의 Offset BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 6에 의한 LDPC 부호 복호 장치에 있어서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 1점 파선으로 연결한 것이 종래의 Offset BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 5에 의한 것이다.
또, 도 16에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다. 또한 Offset BP 알고리즘에서, 인자 β(Offset Factor)를 β=0.15로 한 경우의 복호 성능을 나타내고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Offset BP 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (10)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이에 반해, 본 실시예 6에 의한 LDPC 부호 복호 장치(1)에서는, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수 β로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 16에 도시하는 바와 같이, 본 실시예 6에서는, 종래의 Offset BP와 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 거의 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 6에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘에 따라서 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기의 차를 종래의 Offset BP 알고리즘과 같이 인자 β(Offset Factor)로 조정할 뿐만 아니라, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 대하여 더욱 보정을 행함으로써, 종래의 Offset BP 알고리즘보다도 현격하게 복호 성능을 향상시킬 수 있다.
또, 본 실시예 6에 의한 Min-Sum 알고리즘에 대한 보정항은, 수신 정보로부터 산출하므로, 종래의 보정형 알고리즘과 같이 보정항 테이블을 보유할 필요가 없다. 또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 6에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 7)
이 실시예 7에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘을 행하는 것이다.
본 실시예 7에 의한 LDPC 부호 복호 장치는 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 보정형의 Min-Sum 알고리즘에서의 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 점이 상이하다.
구체적으로 설명하면 본 실시예 7에서의 행 처리부(5)에서는, 상기 식 (1)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (19)의 연산을 실행한다. 또한, 하기 식 (19) 중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
Figure 112007039300242-PCT00012
또한, 상기 식 (15)에서, Min-Sum 알고리즘에 대한 보정항이 되는 δ에 대해서는, Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C으로부터의 감산만으 로 산출할 수 있다.
또, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
본 실시예 7에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 대하여, 상기 식 (19)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (1)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 7에 의한 행 처리부(5)는, 상기한 바와 같이, 기본적인 구성은 도 10에 도시하는 상기 실시예 4와 동일하다. 즉, 보정 연산부(12)가 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 여기서, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 7에 의한 LDPC 부호 복호 장치는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고, 상기 식 (19)를 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 7에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실 시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (19)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 7에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하는 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 8)
이 실시예 8에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비 트씩 행함과 아울러, 그 행 처리에서 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘을 실행하는 것이다.
본 실시예 8에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 제산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 8에서의 행 처리부(5)에서는, 상기 식 (1)에 대하여 하기 식 (21)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘에서 사용하는 갱신식인 하기 식 (21)에 의해 갱신 연산을 행한다. 또한, 하기 식 (21)중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
Figure 112007039300242-PCT00013
상기 식 (15) 중의 Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는 1비트의 비트 시프트 연산으로 가능하다.
제산 정수 α는 Normalized BP 알고리즘에서의 Normalization Factor와 동일한 효과를 갖고, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 제산식 보정형 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다.
본 실시예 8에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 제산식 보정형의 Min-Sum 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과 를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 따라서 상기 식 (21)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 8에 의한 행 처리부(5)는 기본적인 구성은 도 13에 도시하는 상기 실시예 5와 동일하다. 즉, 복수의 보정 연산부(12)와 제산부(13)로 구성된다. 여기서, 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 또, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(13)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 α(Normalization Factor)로 제산한다. 즉, 제산부(13)는 입력값 c에 대하여, c/α를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 제산부(13)는 보정 연산부(12)가 산출한 값을 정수 α로 제산한 후, 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 8에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (21)을 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 8에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (21)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 8에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하는 제산식 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 9)
이 실시예 9에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘을 실행하는 것이다.
본 실시예 9에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 감산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 9에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 하기 식 (22)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘의 단계 1의 행 처리에서, 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘에서 사용하는 갱신식인 하기 식 (22)에 의해 갱신 연산을 행한다. 또한, 하기 식 (22) 중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
Figure 112007039300242-PCT00014
상기 식 (15) 중의 Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
감산 정수 β는 Offset BP 알고리즘에서의 Offset Factor β와 동일한 효과를 갖고, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 감산식 보정형 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를, Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다.
본 실시예 9에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 감산식 보정형의 Min-Sum 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 따라 상기 식 (22)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 9에 의한 행 처리부(5)는 기본적인 구성은 도 15에 도시하는 상기 실시예 6과 동일하다. 즉, 복수의 보정 연산부(12)와 감산부(14)로 구성된다. 여기서, 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 또, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
감산부(14)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 β(Offset Factor)로 제산한다. 즉, 감산부(14)는 입력값 c에 대하여, (c-β)를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 감산부(14)는 보정 연산 부(12)가 산출한 값을 정수 β로 감산한 후, 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 9에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (22)를 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 9에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1) 에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (22)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이 때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 9에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하 는 제산식 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 10)
이 실시예 10은 검사 행렬의 모든 행에 대해 일정한 인자 α(Normalization Factor)는 갖지 않고, 행마다 결정한 인자 αm(Normalization Factor)을 갖는 복호 알고리즘에 따라 복호를 행하는 것이다.
또한, 본 실시예 10은 통상의 Normalized BP 알고리즘, 상기 실시예 5에서 나타낸 제산식 보정형 Min-Sum 알고리즘, 또, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등, 인자 α(Normalization Factor)를 갖는 모든 복호 알고리즘에서 적용 가능하다.
여기서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Normalized BP 알고리즘에서 행마다의 인자 αm(Normalization Factor)을 적용한 LDPC 부호 복호 장치를 예로 들어 설명한다.
본 실시예 10에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 행마다의 인자 αm(Normalization Factor)을 사용한 Normalized BP 알고리즘을 실행하기 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면, 본 실시예 10에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (23)의 연산을 실행한다. 또한, 하기 식 (23) 중의 각 파라미터는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다. 인자 αm은 m행째의 Normalization Factor를 나타내고 있다.
Figure 112007039300242-PCT00015
도 17은 변조 방식을 4PAM Gray Mapping으로 한 경우의 수신값의 분포를 도시하는 그래프이다. 도면에서, 검게 칠하여 나타내는 각 변조 신호 점에 대응하는 2비트의 디지털 부호 00, 01, 11, 10 중, 비트값 0, 0, 1, 1을 나타내는 MSB(Most Significant Bit)의 0과 1의 경계는, 0(도면 중, 실선 부분)뿐이지만, 비트 값 0, 1, 1, 0을 나타내는 LSB(Least Significant Bit)의 0과 1의 경계는 -2와 2(도면 중, 파선 부분)의 두 부분으로, LSB쪽이 비트의 반전이 일어나기 쉬운 것을 알 수 있다.
이와 같이, MSB와 LSB에서는, 비트 오류율에 차이가 있다. 또, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 비로 표시되는 αm은 각 행에서 1을 갖는 비트의 오류율에 의존한다. 이에 따라, 변조 방식 4PAM의 경우, 인자 αm은 각 행에서 1을 갖는 비트의 MSB인 개수, LSB인 개수에 의존하게 된다.
그래서, 본 실시예에서는, αm에 대해서 각 행에 대응한 값을 미리 준비한다. 또한, 여기서는 4PAM을 예로 들었지만, 이외에 수신 신호의 각 비트에서의 비트 오류율에 차이가 생기는 다치 변조 방식에서도 동일하다.
또, 이레귤러 LDPC 부호의 경우, 행 가중치가 일정하지 않다. 이 때문에, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 비인 αm은 행 가중치에 의존한다. 이에 따라, 본 실시예에서는, αm에 대해 각 행의 행 가중치에 대응한 값을 준비한다. 또한, αm은 시뮬레이션 혹은 밀도발전법을 사용하여 사전에 산출해 둔다.
본 실시예 10에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대해 행마다의 인자 αm(Normalization Factor)을 사용한 Normalized BP 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (23)을 사용한 행 처리를 행하고, 열 처리부(6)는, 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 18은 실시예 10에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9), 제산부(10a) 및 제산 정수 선택부(15)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(10a)에서는, 상기한 비교부(9)에 의한 연산 결과를, 제산 정수 선택부(15)로부터의 정수 αm(Normalization Factor)으로 제산한다. 즉, 제산부(10a)는 입력값 c에 대하여, c/αm을 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 비교부(9)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 구하고, 제산부(10a)는 비교부(9)가 산출한 값을 정수 αm으로 제산한 후, 열 처리부(6)로 넘긴다.
제산 정수 선택부(15)에서는, 각 행의 αm값을 미리 기억하고 있고, 제어부(7)로부터 통신로 및 부호 구성의 정보를 받아, 이 정보 중의 처리 대상의 행 번호 m을 입력하여 각 행의 αm을 결정하고, 제산부(10a)로 넘긴다.
이와 같이, 본 실시예 10에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 비교부(9)에서 구하고, 제산부(10a)가 비교부(9)에 의해 얻어진 값을 제산 정수 선택부(15)가 선택한 αm으로 제산한 후, 열 처리부(6)로 넘기는 처리를 행한다.
다음에 동작에 대해 설명한다.
본 실시예 10에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화 함과 아울러, 제산 정수 선택부(15)에 대해 변조 방식이나 행 가중치에 관한 정보를 넘긴다. 이 정보에 기초하여, 제산 정수 선택부(15)는 각 행의 α를 결정하여 제산부(10a)로 넘긴다.
다음에, 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (23)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대해 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 충족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 10에 의하면, Normalized BP 알고리즘에서의 Normalization Factor를 변조 방식 및 부호 구성에 따라 행마다 설정하므로, 다치 변조된 경우나 부호가 이레귤러 LDPC 부호인 경우 등에 종래의 Normalized BP 알고리즘에 의해 복호를 행하는 것보다도, 전파되는 확률 정보가 Sum-Product 알고리즘에 근접하여, 복호 성능을 향상시킬 수 있다.
또한, 상기 실시예 10에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하 는, Normalized BP 알고리즘에서 행마다의 인자 αm(Normalization Factor)을 적용한 LDPC 부호 복호 장치를 예로 들었지만, 이 알고리즘 이외에, 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등에 있어서, 행마다의 인자 αm을 적용한 LDPC 부호 복호 장치를 구성해도 된다.
(실시예 11)
이 실시예 11은 검사 행렬의 모든 행에 대하여 일정한 인자 β(Offset Factor)는 갖지 않고, 행마다 결정한 인자 βm(Offset Factor)을 갖는 복호 알고리즘에 따라 복호를 행하는 것이다.
또한, 본 실시예 11은, 통상의 Offset BP 알고리즘, 상기 실시예 6에서 설명한 감산식 보정형의 Min-Sum 알고리즘, 또, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등, 인자 β(Offset Factor)를 갖는 모든 복호 알고리즘에서 적용 가능하다.
여기서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Offset BP 알고리즘에서 행마다의 인자 βm(Offset Factor)을 적용한 LDPC 부호 복호 장치를 예로 들어서 설명한다.
본 실시예 11에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 행마다의 인자 βm(Offset Factor)을 사용한 Offset BP 알고리즘을 실행하기 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 11에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (24)의 연산을 실행한다. 또한, 하기 식 (24) 중의 각 파라미터는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다. 인자 βm은 m행째의 Offset Factor을 나타내고 있다.
Figure 112007039300242-PCT00016
예를 들면, 변조 방식을 4PAM Gray Mapping으로 한 경우의 수신값은, 상기한 바와 같이 도 17과 같이 분포되고, MSB와 LSB에서 비트 오류율에 차이가 있다. 또, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 차로 표시되는 βm은 각 행에서 1을 갖는 비트의 오류율에 의존한다. 이에 따라, 변조 방식 4PAM의 경우, βm은 각 행에서 1을 갖는 비트의 MSB인 개수, LSB인 개수에 의존하게 된다.
그래서, 본 실시예에서는, βm에 대해 각 행에 대응하여 값을 미리 준비한 다. 또한, 여기서는 4PAM을 예로서 들었지만, 이외에 비트 오류율에 차이가 생기는 다치 변조 방식에서도 동일하다.
또, 이레귤러 LDPC 부호의 경우, 행 가중치가 일정하지 않다. 이 때문에, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 차로 표시되는 βm은 행 가중치에 의존한다. 이에 따라, 본 실시예에서는, βm에 대해 각 행의 행 가중치에 대응한 값을 준비한다. 또한, βm은 시뮬레이션 혹은 밀도발전법을 사용하여 사전에 산출해 둔다.
본 실시예 11에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 행마다의 인자 βm(Offset Factor)을 사용한 Offset BP 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (24)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 19는 실시예 11에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9), 감산부(11a) 및 감산 정수 선택부(16)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(11a)에서는, 상기한 비교부(9)에 의한 연산 결과를 감산 정수 선택부(16)로부터의 정수 βm(Offset Factor)으로 감산한다. 즉, 감산부(11a)는 입력값 c에 대하여 c-βm을 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 비교부(9)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 구하고, 감산부(11a)는 비교부(9)가 산출한 값 을 정수 βm으로 감산한 후, 열 처리부(6)로 넘긴다.
감산 정수 선택부(16)에서는, 각 행의 βm값을 미리 기억하고 있고, 제어부(7)로부터 통신로 및 부호 구성의 정보를 받고, 이 정보 중 처리 대상의 행 번호 m을 입력하여 각 행의 βm을 결정하고, 감산부(11a)로 넘긴다.
이와 같이, 본 실시예 11에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 비교부(9)에서 구하고, 감산부(11a)가 비교부(9)에 의해 얻어진 값을 감산 정수 선택부(16)가 선택한 βm으로 감산한 후, 열 처리부(6)로 넘기는 처리를 행한다.
다음에 동작에 대해 설명한다.
본 실시예 11에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는, 복호의 반복 회수 i를 i=1로 초기화함과 아울러, 감산 정수 선택부(16)에 대하여 변조 방식이나 행 가중치에 관한 정보를 넘긴다. 이 정보에 기초하여, 감산 정수 선택부(16)는 각 행의 βm을 결정하여 감산부(11a)로 넘긴다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대하여 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (24)를 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록, 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 11에 의하면, Offset BP 알고리즘에서의 Offset Factor를 변조 방식 및 부호 구성에 따라 행마다 설정하므로, 다치 변조된 경우나 부호가 이레귤러 LDPC 부호인 경우 등에 종래의 Offset BP 알고리즘에 의해 복호를 행하는 것보다도, 전파되는 확률 정보가 Sum-Product 알고리즘에 근접하여, 복호 성능을 향상시킬 수 있다.
또한, 상기 실시예 11에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Offset BP 알고리즘에서 행마다의 인자 βm(Offset Factor)을 적용한 LDPC 부호 복호 장치를 예로 들었지만, 이 알고리즘 이외에, 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등에 있어서, 행마다의 인자 βm을 적용한 LDPC 부호 복호 장치를 구성해도 된다.
(실시예 12)
도 20은 본 발명의 실시예 12에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 12에 의한 LDPC 부호 복호 장치(1)는, 도 1에 도시하는 상기 실시예 1의 구성과 마찬가지로, 수신 LLR 계산부(2) 및 복호 코어부(3)로 구성된다. 여기서, 상기 실시예 1과는 연산열 제어부(17)를 구비하는 점에서 상이하다. 연산열 제어부(17)는 그룹 분할에 기초하여 행 처리부(5) 및 열 처리부(6)에 의한 연산 대상의 열을 결정하고, 그룹 분할에 기초하는 복호 처리를 제어한다.
실시예 12에 의한 LDPC 부호 복호 장치에서는, 종래의 Group Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 것이지만, 부호 구성에 기초하여 복수 비트마다의 조합인 그룹으로 분할한다.
여기서, 본 실시예에서의 부호 구성에 기초하는 그룹 분할에 대해 설명한다.
우선, 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 행하는 복호 알고리즘에서는, 그렇지 않은 알고리즘보다도 적은 반복 회수로 복호를 끝내는 것은, 산출한 확률 정보를 바로 갱신하여 동일한 반복 회수에 있어서의 다음 복호 연산에서 이용함으로써 확률 정보의 전파가 효율적으로 행해지기 때문이다.
행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 복수 비트씩 행하는 Group Shuffled BP 알고리즘의 경우도 동일하지만, 종래의 Group Shuffled BP 알고리즘에서는, 동일한 그룹의 열끼리가 서로 동일한 행에 1을 갖고 있으면, 서로 갱신되지 않은 확률 정보를 사용하여 처리를 행하게 된다.
그래서, 본 실시예에서는, Group Shuffled BP 알고리즘과 같이 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 복수 비트씩 행하는 복호 알고리즘에 있어서, 복수 비트의 조합을 만드는 그룹 분할 시에 동일한 그룹에 포함되는 열끼리가 서로 동일한 행에 1을 갖지 않도록 그룹 분할한다. 이에 따라, 동일한 그룹의 열끼리가 서로 동일한 행에 1을 갖고 있는 경우와 비교하여 확률 정보의 전파를 효율적으로 행할 수 있게 되어, 반복 회수를 삭감할 수 있다.
도 21은, LDPC 부호화 행렬의 구성예를 도시하는 도면으로, 도면 중에서 행렬의 우측 상부의 삼각형으로 둘러싼 부분이 0이 되는 LDPC 부호화 행렬을 나타내고 있다. 또, 도 22는 실시예 12의 LDPC 부호 복호 장치에 의한 LDPC 부호 행렬의 그룹 분할 예를 도시하는 도면이다. 도 21에 도시하는 바와 같은 LDPC 행렬에서는, 부호화 행렬을 복호 행렬과 공통으로 사용할 수 있어, 실용상의 이점은 많다.
이러한 LDPC 부호로 부호화된 부호화 행렬을 그룹 분할하여, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 경우, 도 22에 도시하는 바와 같이, 패리티 비트 부분을 연속시키지 않는 그룹 분할을 행한다. 도 22의 예에서는, 패리티 비트 부분을 연속시키지 않는 그룹 분할로서 LDPC 행렬을 1열 걸러 그룹 분할하고 있다. 또한, 도면 중, 각 그룹에 붙인 부호 A, B, C, D, E, F는, 각각 제 1 번째부터 제 6 번째의 그룹을 나타내는 그룹 1, 2, 3, 4, 5, 6을 나타내는 것으로 한다.
본 실시예 12에 의한 LDPC 부호 복호 장치에서는, 부호 구성에 기초하여, 도 22에 도시하는 바와 같이 LDPC 부호화 행렬을 그룹 분할하는 Group Shuffled BP 알고리즘을 실행한다. 이하에 간단하게 설명한다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR(Log Likelihood Ratio)의 초기값 zm ,n (0)을 Fn(zm,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이고, Hm ,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 하기 식 (25)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은, 집합[1,N]의 부분집합이고, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은, 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에 있어서 1을 갖는 열 인덱스의 집합을 의미한다.
Figure 112007039300242-PCT00017
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이고, M(n)\m이 집합 M(n)으로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이고, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드로부터 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2 조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
단, 각 기호는 상기 식에 따른 것으로 한다. 또, GR(g)는 g번째의 그룹을 구성하는 열의 세트를 나타내는 것으로 한다. 도 22에 도시하는 예에서 GR(g)을 구체적으로 나타내면, 이하와 같이 된다.
그룹 1(GR(1))은 2k+1=1, 3, 5, 7, …, Ng-1이며, k는 0 이상 Ng 미만이다.
그룹 2(GR(2))는 2k+2=2, 4, 6, 8, …, Ng이며, k는 0 이상 Ng 미만이다.
그룹 3(GR(3))은 2k+1=Ng+1, Ng+3, Ng+5, …, 2Ng-1이며, k는 Ng 이상 2Ng 미만이다.
그룹 G(GR(G))는 2k+2=G·Ng-2Ng+2, …, G·Ng이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
본 실시예 12에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 1비트 걸러 그룹 분할한 Group Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (25)의 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대하여 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Group Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 그룹 분할하여 행 처리부(5) 및 열 처리부(6)에 의한 연산 대상의 열을 제어한다.
다음에 동작에 대하여 설명한다.
도 23은, 실시예 12에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 도 22에 도시하는 부호화 행렬을 사용한 복호 동작을 예로 들어서 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 1열마다의 그룹에 대하여 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리를 행하는 단계 1과, 복호 결과 판정 부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 도 22에 도시하는 바와 같이, 연산열 제어부(17)은 도면 중에서 부호 A를 붙인 그룹 1에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 1에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 1에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 도면 중에서 부호 B를 붙인 그룹 2에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 2에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 연산열 제어부(17)는 그룹 g에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 g에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 g에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
도 22의 예에서는, 연산열 제어부(17)가 도면 중에서 부호 F를 붙인 그룹 6에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 6에 포함되는 열의 열 처리를 행하고 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (25)의 관계에 대하여 상기 식 (2) 및 상기 식 (3)을 연산함으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 24는 실시예 12에 의한 LDPC 부호 복호 장치에 의해 상기한 바와 같이 부호 구성에 기초해서 부호화 행렬을 그룹 분할하여 복호한 경우와, 종래의 Group Shuffled BP 알고리즘에서 그룹 분할하여 복호한 경우에 있어서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Group Shuffled BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 12에 의한 것이다.
또, 도 24에서, LDPC 부호는, 우측 상부의 0을 둘러싼 삼각형 구조의 이레귤러 LDPC 부호, 부호 길이 64800, 부호화율 1/2, 최대 열 가중치 7, 최대 행 가중치 8, 최대 반복 회수 Imax가 20회이다. 또, 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, QPSK(Quadrature Phase Shift Keying)로 복조하고 있다.
여기서, 실시예 12에서는, 상기한 바와 같이, 부호 구성에 기초하여, 1 열마다 LDPC 행렬을 그룹 분할한 Group Shuffled BP 알고리즘에 의해 복호 처리를 실행 하고 있다. 또, 종래의 Group Shuffled BP 알고리즘에서는, 종래와 마찬가지로, LDPC 행렬에서의 선두의 제 1 비트로부터 소정의 비트마다의 그룹으로 분할하고 있다.
도 24에 도시하는 바와 같이, 본 실시예 12에 의한 복호 처리에 의해, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수가 종래의 Group Shuffled BP 알고리즘과 비교하여 현격하게 삭감되어 있는 것을 알 수 있다. 또한, 종래의 Group Shuffled BP 알고리즘과의 비교예를 나타냈지만, 본 실시예 12는, 종래의 Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 복호 알고리즘에 대해서도 마찬가지로 반복 회수를 삭감할 수 있다.
이상과 같이, 이 실시예 12에 의하면, 이웃한 열에 1을 갖는 LDPC 부호에 대하여, Group Shuffled BP 알고리즘과 같이 그룹 분할하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서 LDPC 부호의 복호를 행하는 경우에 있어서, LDPC 부호의 구성에 기초하여 1열마다 LDPC 부호화 행렬을 그룹 분할하고, 그룹마다의 열에 대해 1을 갖는 행을 행 처리함과 아울러, 당해 그룹에 포함되는 열의 열 처리를 행하여 복호 처리하므로, 이웃한 열을 동일한 그룹으로 분할하지 않으므로, 확률 정보의 전파가 효율적으로 행해진다. 이에 따라, 도 24에 도시하는 바와 같이, 이 LDPC 부호화 행렬의 선두 비트로부터 차례로 그룹으로 나누는 종래의 Group Shuffled BP 알고리즘에 비해 반복 회수를 삭감할 수 있다.
(실시예 13)
상기 실시예 12에서는, LDPC 부호의 구성에 기초하여 1열마다 LDPC 부호화 행렬을 그룹 분할하는 LDPC 부호 복호 장치를 나타냈지만, 본 실시예 13에 의한 LDPC 부호 복호 장치는 수신 신호의 변조 방식에 기초하여 복호 처리의 대상을 그룹 분할하는 것이다.
본 실시예 13에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)에 의해 변조 방식에 기초하여 수신 신호를 그룹으로 분할하고, 행 처리부(5) 및 열 처리부(6)에 의해 수신 신호의 그룹마다 복호 처리를 실행한다.
또, 변조 방식의 가정에 의해 본 실시예 13에서의 그룹 분할도 상기 실시예 12와 마찬가지로 되어 있다. 즉, 본 실시예 13에서는, Group Shuffled BP 알고리즘과 같이 그룹 분할하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 행하는 복호를 실행함에 있서, 수신 신호의 변조 방식에 기초하여 상기 실시예 12에서 나타낸 도 22와 같이 부호화 행렬을 1열마다의 그룹 1~6으로 분할한다.
여기서, 상기한 도 17에 도시하는 4PAM Gray Mapping의 수신값의 분포로부터 알 수 있는 바와 같이, 변조 방식이 다치 변조인 경우, 수신 신호의 비트마다의 오류율이 상이하다. 도 17의 경우에서는, 수신 신호의 MSB는 비트 오류율이 낮고, LSB는 비트 오류율이 높다. 이 경우, MSB의 복호는 LSB의 복호에 비해 적은 반복 회수로 복호를 끝낼 수 있다.
그래서, 본 실시예 13은, 도 17에 도시하는 변조 방식 4PAM의 경우를 예로 하여, 수신 신호를 MSB만의 그룹과 LSB만의 그룹으로 분할하고, MSB만의 그룹을 먼저 연산하고, LSB만의 그룹을 나중에 연산하도록 구성한다.
또한, Group Shuffled BP 알고리즘과 같이 그룹 분할을 하는 경우를 예로 들었지만, 본 실시예와 같은 수신 신호의 변조 방식에 기초하여 처리 대상을 그룹 분할하는 처리는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다.
또, 도 17에 도시하는 바와 같은 4PAM을 변조 방식의 예로서 들었지만, 이외에 수신 신호의 비트 오류율에 차이가 생기는 다치 변조 방식이면, 마찬가지로 비트 오류율의 차이에 따라 그룹 분할하도록 해도 된다.
본 실시예 13에 관계되는 연산 알고리즘은 상기 실시예 12와 동일하다. 이하에 구체적으로 설명한다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR의 초기값 zm ,n (0)을 Fn(zm ,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이며, Hm ,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 상기 식 (25)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은 집합 [1,N]의 부분집합이며, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미한다.
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이며, M(n)\m이 집합 M(n)로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이며, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드로부터 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후 값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2 에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
단, 각 기호는, 상기 식에 따른 것으로 한다. 또, GR(g)은 g번째의 그룹을 구성하는 열의 세트를 나타내는 것으로 한다. GR(g)를 구체적으로 나타내면, 이하와 같이 된다.
그룹 1(GR(1))은 2k+1=1, 3, 5, 7, …, Ng-1이며, k는 0 이상 Ng 미만이다.
그룹 2(GR(2))는 2k+1=Ng+1, Ng+3, Ng+5, …, 2Ng-1이며, k는 Ng 이상 2Ng 미만이다.
그룹(G/2)(GR(G/2))는 2k-1=G·Ng-2Ng-1, …, G·Ng-1이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
그룹(G/2+1)(GR(G/2+1))은 2k+2=2, 4, 6, 8, …, Ng이며, k는 0 이상 Ng 미만이다.
그룹 G(GR(G))는 2k+2=G·Ng-2Ng+2, …, G·Ng이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
도 22의 예에서는, 부호 A를 붙인 그룹 1, 부호 C를 붙인 그룹 3, 부호 E를 붙인 그룹 5가 MSB만의 그룹에 대응하고, 부호 B를 붙인 그룹 2, 부호 D를 붙인 그룹 4, 부호 F를 붙인 그룹 6이 LSB만의 그룹에 대응한다.
다음에 동작에 대해 설명한다.
본 실시예 13에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 상기한 1열마다의 그룹에 대해, 행 처리부(5) 및 열 처리부(6)에 의해 MSB만의 그룹에 계속하여 LSB만의 그룹을 처리하는 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 도 22에서 부호 A를 붙인 MSB만의 그룹 1에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 1에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 1에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 연산열 제어부(17)는, 도 22 중에서 부호 C를 붙인 MSB만의 그룹 3에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 3에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 3에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 MSB만의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
도 22의 예에서는, 부호 E를 붙인 MSB만의 그룹 5에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 5에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 그룹 5에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이 다음, 연산열 제어부(17)는 도 22에서 부호 B를 붙인 LSB만의 그룹 2에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 2에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 도 22 중에서 부호 D를 붙인 LSB만의 그룹 4에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 4에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)은 그룹 4에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 LSB만의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
도 22의 예에서는, 그룹 G에 상당하는 부호 F를 붙인 LSB만의 그룹 6에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 6에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 그룹 6에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (25)의 관계에 대해 상기 식 (2) 및 하기 식 (3)을 연산함으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 13에 의하면, 4PAM으로 변조되어 송수신된 수신 신호에 Group Shuffled BP 알고리즘에 의해 복호를 행할 때, MSB만과 LSB만의 그룹으로 분할하고, 비트 오류율이 낮은 MSB만의 그룹을 먼저 연산하므로, 비트 오류율이 높은 LSB에서는 신뢰도가 높은 확률 정보를 MSB로부터 받아서 복호 연산을 행하게 되어, LSB의 복호 연산은 종래보다도 효율적으로 행해져 적은 반복 회수로의 복호가 가능하게 된다.
(실시예 14)
이 실시예 14는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 부호 구성에 기초하 여 복호 순서를 제어하는 것이다.
본 실시예 14에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)가 부호 구성에 기초해서 복호의 순서를 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 처리를 실행시키는 점에서 상이하다.
Shuffled BP 알고리즘을 예로 하여 부호 구성에 기초하는 순서 제어의 개요를 설명한다. Shuffled BP 알고리즘이 Sum-Product 알고리즘보다도 적은 반복 회수로 복호를 종료하는 것은, 복호 과정에서 산출하여 넘기고 있는 확률 정보의 전파가 Sum-Product 알고리즘보다도 효율적으로 행해지고 있기 때문이다. 그래서, 부호가 이레귤러 LDPC 부호이면, 열 가중치가 큰 순으로 순서를 정하여 Shuffled BP 알고리즘에 의해 복호를 행한다.
예를 들면, O(g)을 g번째로 순서가 정해진 열 번호로 하면, O(1)은 최대 열 가중치를 갖는 열, O(2)는 다음에 열 가중치가 큰 열, O(3)은 그 다음에 열 가중치가 큰 열로 순서를 정하여 열을 선택해 가고, Shuffled BP 알고리즘에 의한 복호를 행한다.
순서를 정한 Shuffled BP 알고리즘은 이하와 같다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR(Log Likelihood Ratio)의 초기값 zm ,n (0)을 Fn(zm,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는, 2원 m×n행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이고, Hm,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 하기 식 (26)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은 집합 [1,N]의 부분집합이며, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미한다.
Figure 112007039300242-PCT00018
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이고, M(n)\m이 집합 M(n)으로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이고, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드에서 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다. 단, 각 기호는 상기 식에 따른 것으로 한다. 또, O(g)는 g번째로 순서가 정해진 열을 나타내는 것으로 한다.
본 실시예 14에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 부호 구성에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대해 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대해 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 열 가중치가 큰 순으로 순서 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 연산시킨다.
다음에 동작에 대해 설명한다.
본 실시예 14에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 열 가중치 가 큰 순으로 열에 대하여, 행 처리부(5) 및 열 처리부(6)에 의해 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 열 가중치가 가장 큰 제 1 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 1 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 1 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는, 열 가중치가 다음에 큰 제 2 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 2 번째로 연산을 행하는 열에서 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 2 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후도 열 가중치가 큰 순으로 열의 번호를 행 처리부(5) 및 열 처리부(6)로 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 연산열 제어부(17)는 제 g 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 g 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 제 g 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (26)의 관계에 대해 상기 식 (2) 및 상기 식 (3)을 연산함으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 14에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 부호 구성에 기초하여 복호 순서를 제어하므로, 먼저 연산한 확률 정보가 빨리 전파되게 되어 반복 회수를 삭감할 수 있다. 또, 부호 구성에 기초하여 순서 제어하고 있기 때문에, 부호 정보를 수신할 때마다 순서를 정할 필요는 없다.
또한, 상기 실시예 14에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타냈지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘이면, 다른 알고리즘이어도 동일하다.
(실시예 15)
이 실시예 15는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하는 것이다.
본 실시예 15에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)가 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 처리를 실행시키는 점에서 상이하다.
Shuffled BP 알고리즘을 예로 하여 변조 방식에 기초하는 순서 제어의 개요를 설명한다. 우선, 변조 방식이 다치 변조인 경우, 비트마다의 오류율이 상이하다. 예를 들면, 상기한 도 17에 도시하는 변조 방식 4PAM Gray Mapping에서는, 부호의 선두 비트로부터 차례로 변조 신호점을 할당하면, 비트마다의 오류율에서 MSB는 오류율이 낮고, LSB는 오류율이 높게 된다.
이러한 수신 신호를 복호하는 경우, MSB의 복호 과정에서 산출되는 확률 정보는 신뢰도가 높은 특징이 있다. 그래서, Shuffled BP 알고리즘에 의해 복호를 행하는 경우, MSB의 비트로부터 차례로 복호를 행함으로써 LSB에는 항상 신뢰도가 높은 확률 정보가 전파되게 된다.
예를 들면, O(g)를 g번째로 순서가 정해진 열 번호라고 하면, 먼저 MSB에 대응하는 모든 열을 선택하고, 계속해서 LSB에 대응하는 열을 선택하는, O(1)=1, O(2)=3, O(3)=5, O(4)=7, …, 2n+1, …, N-1, 2, 4, 6, …, 2n, …, N과 같은 차례로 열을 선택해 가고, Shuffled BP 알고리즘에 의한 복호를 행한다.
본 실시예 15에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호의 변조 방식에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대해 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대해 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 수신 신호의 변조 방식에 기초하여 비트 오류가 낮은 비트에 대응하는 모든 열을 선택하고 계속해서 비트 오류가 높은 비트에 대응하는 열을 선택하도록 순서 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 연산시킨다.
다음에 동작에 대해 설명한다.
본 실시예 15에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 수신 신호의 변조 방식에 기초하여 선택된 열에 대하여, 행 처리부(5) 및 열 처리부(6)에 의해 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 MSB에 대응하는 선두의 열을 제 1 번째로 연산을 행하는 열로 하고 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 1 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 1 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 다음 MSB에 대응하는 열을 제 2 번째로 연산을 행하는 열로 하고 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 2 번째로 연산을 행하는 열에서 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 2 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후도, MSB에 대응하는 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
MSB에 대응하는 열의 연산이 완료되면, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 LSB에 대응하는 선두의 열을 MSB에 대응하는 열의 다음에 제 1 번째로 연산을 행하는 열로 하여 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 1 번째로 연산을 행하는 LSB에 대응하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 당해 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 LSB에 대응하는 다음 열을 제 2 번째로 연산을 행하는 열로 하여 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 2 번째로 연산을 행하는 LSB에 대응하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 당해 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (26)에서의 g=3 이후에서도, LSB에 대응하는 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
상기한 처리에서, 행 처리부(5)가 상기 식 (26)의 관계에 대하여 상기 식 (2) 및 상기 식 (3)을 연산함으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 15에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하므로, 예를 들면 4PAM으로 변조되어 송수신 된 수신 신호를 Shuffled BP 알고리즘에 의해 복호하는 경우, MSB로부터 순서를 정하여 먼저 MSB의 연산을 행함으로써 LSB에는 신뢰도가 높은 확률 정보가 전파되고, LSB의 복호가 빠르게 진행되어, 반복 회수를 삭감할 수 있다.
또한, 상기 실시예 15에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타냈지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘이면, 다른 알고리즘이어도 동일하다.
또, 상기 실시예 15에서는, 변조 방식으로서 4PAM을 예로 들었지만, 비트 오류율에 차이가 생기는 다른 다치 변조 방식에서도 마찬가지로 오류율이 낮고 신뢰도가 높은 비트부터 순서 결정을 행할 수 있다.
(실시예 16)
도 25는 본 발명의 실시예 16에 의한 통신 장치의 구성을 도시하는 블럭도이다. 도면에 도시하는 바와 같이, 본 실시예 16에 의한 통신 장치(18)는 수신 복호 장치(수신 복호부)(19)와 부호화 송신 장치(부호화 송신부)(20)로 구성된다. 수신 복호 장치(19)는, 도 1에 도시한 기본 구성 이외에, 부호화 송신 장치(20)에 의해 송신된 LDPC 부호화 신호를 수신하여 복조하는 복조부(21)를 구비하고 있다.
부호화 송신 장치(20)는 부호화부(22) 및 변조부(23)로 구성된다. 부호화부(22)에서는, 송신할 정보를 입력하고 LDPC 부호의 부호화를 행한다. 변조부(23)는 부호화부(22)로부터의 부호화 데이터를 입력하여 변조하고, 변조 신호로서 수신 복호 장치(19)에 송신한다.
실시예 16에 의한 통신 장치(18)에서는, 수신 복호 장치(19)와 부호화 송신 장치(20) 사이에서, LDPC 부호의 부호 구성에 적응시켜 검사 비트에 변조 신호점을 할당하여 부호화 신호의 송수신을 행하고, 부호 구성에 기초하는 순서 제어에 따라 Shuffled BP 알고리즘과 같은 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호를 실행한다.
도 26은, 실시예 16에 의한 통신 장치에서 사용하는 LDPC 부호의 구성을 도시하는 도면이다. 도 26에 도시하는 바와 같이, 8행 16열의 검사 행렬로서 우측 상부 삼각형의 요소가 0인 구조를 갖고, 또 검사 비트가 대각으로 동일한 값이 되는 대칭 구조를 포함하고 있다. 도 27은, 실시예 16에 의한 통신 장치에서 LDPC 부호를 4PAM으로 변조해서 송수신하는 경우에 있어서의 비트의 할당의 예를 도시하는 도면이다. 도 27에서는, M행 N열의 행렬 요소인 검사 비트에 대한 할당으로서, 1열째부터 (n1-1)열째까지 LSB 이외를 할당하고, n1열째부터 N열째까지 MSB 이외를 할당한다. 이들 도면을 사용하여 실시예 16의 개요를 설명한다.
상기한 바와 같이, Shuffled BP 알고리즘이 Sum-Product 알고리즘보다도 적은 반복 회수로 복호를 종료하는 것은, 복호 과정에서 산출하여 넘기고 있는 확률 정보의 전파가 Sum-Product 알고리즘보다도 효율적으로 행해지고 있기 때문이다.
그래서, 도 26에 도시하는 바와 같은 우측 상부의 삼각형으로 둘러싼 0의 부호화 행렬에서 검사 비트 부분이 대각 형상의 LDPC 부호가 4PAM으로 변조되어서 송수신되는 경우에는, 도 27에 도시하는 바와 같이 검사 비트에 오류율이 높은 LSB를 할당하여 송수신한다. 복호측에서는 Shuffled BP 알고리즘에 의해 복호를 행하고, 이때 검사 비트인 LSB의 복호를 먼저 행한다.
또, 도 27에 도시하는 바와 같이, 변조 신호점이 할당되어 있는 경우, 검사 비트인 LSB의 선두부터 차례로 복호를 행한다. LDPC 부호의 복호에서의 행 처리는, 상기 실시예 15에 나타내는 행 처리와 같이, 대상 열 이외의 열의 정보를 사용하여 행한다. 이 때문에, LSB의 선두인 n1열째를 연산할 때는 MSB가 갖는 신뢰성이 높은 정보만을 사용하여 연산할 수 있다.
또한, (n1+1)열째의 연산에는, MSB가 갖는 정보와 이미 1회 연산한 n1열째의 정보만을 사용하여 연산할 수 있기 때문에, 항상 신뢰성이 높은 정보만을 사용하여 연산하게 된다.
예를 들면, O(g)를 g번째로 순서가 정해진 열 번호라고 하면, 도 27의 예에서는, O(1)은 n1열째(LSB), O(2)는 (n1+1)열째(LSB), O(N-n1)은 N열째(LSB)와 같이 순서를 정하여 열을 선택하고, Shuffled BP 알고리즘에 의한 복호를 행한다. 여기 서, O(N-n1+1) 이후는, LSB 이외의 1열째부터 (n1-1)열째의 연산을 행하게 된다.
다음에 도 25를 사용하여, 부호 구성에 적응시킨 변조 신호점을 할당하여 송수신을 행하고, 상기한 처리 식을 구비하여 상기 순서 제어를 행한 LDPC 부호를 송수신하는, 실시예 16에 의한 통신 장치(18)의 구체예에 대해서 말한다. 도 25에 도시하는 바와 같이, 실시예 16에 의한 통신 장치(18)는 부호화 송신 장치(20)와 수신 복호 장치(21)로 구성되어 있다. 여기서, 부호화 송신 장치(20)는 LDPC 부호의 부호화를 행하는 부호화부(22)와 부호 구성에 적응시킨 변조 신호점의 할당을 행하는 변조부(23)로 구성된다.
실시예 16에 의한 통신 장치(18)의 수신 복호 장치(19)는 변조된 신호의 복조를 행하는 복조부(21), 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2) 및 복호 코어부(3)로 구성되고, 복호 코어부(3)에서는 부호 구성에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대하여 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
다음에 동작에 대해 설명한다.
도 28은, 실시예 16에 의한 통신 장치의 동작을 도시하는 플로우차트이고, 이 도면에 따라 설명한다.
우선, 부호화 송신 장치(20)의 부호화부(22)는 송신할 정보를 입력하면(단계 ST1A), LDPC 부호의 검사 행렬 H를 기초로 구한 생성 행렬과 입력한 정보를 사용하여 LDPC 부호화를 실행하고, 부호화 데이터를 생성한다(단계 ST2A). 변조부(23)는 부호화부(22)로부터 부호화 데이터를 입력하면, 도 27에 도시하는 LDPC 부호의 비트 할당에 따라, 입력한 부호화 데이터를 4PAM 변조하여 수신 복호 장치(19)에 송신한다(단계 ST3A).
수신 복호 장치(19)의 복조부(21)는 부호화 송신 장치(20)로부터의 수신 신호를 복조하여(단계 ST1-1), 복조 결과의 수신 정보를 수신 LLR 계산부(2)에 출력한다. 수신 LLR 계산부(2)에서는 수신 정보를 입력하면(단계 ST1) 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4c에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (26)에서 g=1일 때, 행 처리부(5)는 1행째와 2행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, n1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (26)에서 g=2일 때, 행 처리부(5)는 2행째와 3행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, (n1+1)열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 상기 식 (26)에서 g=3 이후의 처리로서, 행 처리부(5)는 4행째 이후의 처리를 상기와 마찬가지로 차례차례 실행하고, 그때마다, 처리 결과를 열 처리부(6)로 넘긴다. 또, 열 처리부(6)는 (n1+2)열째 이후의 열 처리를 차례차례 실행하고, 그때마다, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이 다음, 상기 식 (26)에서 g=N-n1-1이 되면, 행 처리부(5)는 (M-1)행째와 M행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서 는 (N-1)열째의 열 처리를 행하고 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (26)에서 g=(N-n1)일 때, 행 처리부(5)는 M행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, N열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이것에 이어지는 상기 식 (26)의 g=(N-n1+1)~N의 처리에서는, 열 처리부(6)가 LSB 이외의 열의 연산을 행한다. 예를 들면, LSB 이외가 할당된 1열째가 연산 대상이면, 행 처리부(5)에서 1열째에 1을 갖는 행의 행 처리를 행하고, 그 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부에서는, 마찬가지로 1열째의 열 처리를 행하여 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에 있어서, 행 처리부(5)가 상기 식 (2)에 따름으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 16에 의하면, 검사 행렬의 우측 상부 삼각형으로 둘러싼 부분이 0인 구조를 갖고, 검사 비트가 대각 형상의 LDPC 부호로 다치 변조하여 부호화 데이터를 송수신할 때, 당해 부호 구성에 적응시켜 변조 신호점을 할당하여 송수신하고, 그 수신 신호를 Shuffled BP 알고리즘에 의해 복호를 행할 때, LSB로부터 순서를 정하여 먼저 LSB의 연산을 행하므로, LSB에는 신뢰도가 높은 확률 정보가 전파되고, LSB의 복호가 빠르게 진행되어 반복 회수를 삭감할 수 있다.
또한, 상기 실시예 16에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타내지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서도 동일하다. 또, 다치 변조 방식으로서 4PAM을 예로 하지만, 비트마다 오류율에 편차가 나타나는 다른 다치 변조 방식에서도 동일하다.
또, 상기 실시예 16에서는, 변조 방식으로서 4PAM을 예로서 들었지만, 이외에 비트 오류율에 차이가 생기는 다치 변조 방식에서도 마찬가지로 하여, 오류율이 높은 비트를 검사 비트에 할당한 경우에는, 오류율이 높은 LSB로부터 차례로 복호를 행하도록 해도 된다.
(실시예 17)
이 실시예 17은, Shuffled BP 알고리즘과 같이 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 알고리즘에 의해 복호를 행할 때, 이것들의 연산을 병렬화하여 실행하는 것이다.
도 29는 본 발명의 실시예 17에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 실시예 17에 의한 LDPC 부호 복호 장치(1)는 상기 실시예에서 나타낸 구성과 마찬가지로 수신 LLR 산출부(2)와 복호 코어부(3)로 구성된다. 단, 실시예 17에 의한 복호 코어부(3)는 복호 중간 결과 보유부(4), 제어부(7) 및 복호 결과 판정부(8) 이외에, 행 가중치의 크기에 따라 병렬로 행 처리를 실행하는 행 처리부(5-1~5-w) 및 이것들의 처리 결과에 따라 열 처리를 실행하는 열 처리부(6)를 갖는다.
즉, 통상, Shuffled BP 알고리즘에서는, 선택한 1열에서 1을 갖는 행의 행 처리를 행하고, 그 열의 열 처리를 행한다. 이에 반해, 실시예 17에 의한 LDPC 부호 복호 장치(1)에서는, Shuffled BP 알고리즘에 의해 복호를 행할 때, 행 처리 및 열 처리의 연산을 병렬로 실행한다.
다음에 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력하면, 당해 수신 정보로부터 수신 LLR을 산출한다. 다음에 초기화 단계에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
계속해서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지, 상기 식 (1)의 조건에 대하여, 상기 식 (2), (3)에 따른 행 처리부(5-1~5-w)에 의한 행 처리 및 상기 식 (4), (5)에 따른 열 처리부(6)에 의한 열 처리로 이루어지는 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
도 30은 도 29 중의 행 처리부 및 열 처리부에 의한 복호 연산을 설명하기 위한 블럭도이다. 이 도면을 사용하여 복호 연산의 흐름을 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5-1~5-w)는 1열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
다음에, g=2일 때, 열 처리부(6)는 1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다. 한편, 행 처리부(5-1~5-w)는 2열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
계속해서, g=3일 때, 열 처리부(6)는 2열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다. 행 처리부(5-1~5-w)에서는, 3열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
마찬가지로, g=4 이후에서, 행 처리부(5-1~5-w)에 의해 4열째 이후의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 차례차례 실행하고, 각 처리 결과가 열 처리부(6)로 넘겨진다. 한편, 열 처리부(6)에서는 3열째 이후의 열 처리를 차례차례 실행하고, 각 처리 결과를 중간 결과 보유부(4)에 보유한다. 이와 같이 복호 연산을 병렬화함으로써 처리 시간을 삭감할 수 있다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (0)을 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
또한, 상기한 바와 같이 행 처리와 열 처리를 병렬화 한 경우, 다음의 행 처리에는 1열 전의 행 처리의 결과를 반영할 수 없어, Shuffled BP 알고리즘의 특징인 효율적인 확률 전파를 지연시키는 것처럼 보인다. 그렇지만, 일반적으로 LDPC 부호의 행렬에서 1을 갖는 요소는 대단히 드물어, 이웃의 열에 1을 갖는 경우는 거의 없다. 이 때문에, 통상의 LDPC 부호의 검사 행렬이면, 확률 전파에 크게 영향을 주지 않는다.
도 31은, 도 29 중의 행 처리부 및 열 처리부에 의한 다른 복호 연산을 설명하기 위한 블럭도이다. 상기한 바와 같이, 일반적인 Shuffled BP 알고리즘이면, 이웃의 열에 1을 갖는 경우는 거의 없기 때문에, 확률 전파에 크게 영향을 주지 않지만, 상기 실시예 12에서 나타낸 도 21의 LDPC 부호의 행렬과 같이 검사 비트 부분의 1이 이웃하고 있는 경우, 도 31에 도시하는 바와 같이 병렬화한 행 처리만을 행하면 된다.
반복 i회째의 복호 연산을 예로 들어 구체적으로 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5-1~5-w)는 1열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리 부(6)에서는, 1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, g=2일 때, 행 처리부(5-1~5-w)는 2열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 2열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3일 때, 행 처리부(5-1~5-w)에서는, 3열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 3열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
마찬가지로, g=4 이후에서, 행 처리부(5-1~5-w)에 의해 4열째 이후의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 차례차례 실행하고, 각 처리 결과가 열 처리부(6)로 넘겨진다. 한편, 열 처리부(6)에서는 4열째 이후의 열 처리를 차례차례 실행하고, 각 처리 결과를 중간 결과 보유부(4)에 보유한다.
이상과 같이, 이 실시예 17에 의하면, Shuffled BP 알고리즘에서의 복호 연산을 병렬로 실행하는 행 처리부(5-1~5-w) 및 열 처리부(6)를 설치했으므로, 복호 연산에 관계되는 처리 시간을 단축할 수 있어, 복호 처리에 의한 지연 시간을 삭감하는 것이 가능하게 된다.
또한, 상기 실시예 17에서는, Shuffled BP 알고리즘의 행 처리 및 열 처리의 연산을 병렬화한 예를 나타냈지만, 수신 신호에 대한 행 처리와 열 처리에 의한 확 률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다.
(실시예 18)
이 실시예 18은, Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서, 순회 구조를 갖는 LDPC 부호를 복호할 때 부호 구조에 기초하여 복호 연산을 병렬로 실행한다.
본 실시예 18에 의한 LDPC 부호 복호 장치는, 도 29에 도시한 상기 실시예 17에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 순회 구조를 갖는 LDPC 부호의 부호 구조에 기초하여 복호 연산을 병렬로 실행하기 때문에 각 행 처리부의 처리 내용이 상이하다. 이후에서는, Shuffled BP 알고리즘에서, 의사 순회 부호의 부호 구성의 특징을 이용하여 복호 연산을 병렬로 처리하는 구성을 예로 들어서 구체적으로 설명한다.
의사 순회 부호는, 도 32에 모식도로 도시하는 바와 같이, 단위 행렬인 기본 행렬 I(0)과 기본 행렬을 순회 치환한 행렬 I(1), I(2), I(3), …, I(k)의 조합으로 구성된다. 구성된 의사 순회 부호를 H=[Hm ,n]으로 한다. 여기서, n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수이며, Hm ,n은 H의 m행 n열째 요소로 한다. 집합 [1,N]의 부분 집합 N(m)을 N(m)={n:Hm ,n=1}, M(n)을 M(n)={m:Hm ,n=1}로 정의한 다.
즉, N(m)은 검사 행렬 H의 m행에서 1이 존재하는 열 인덱스의 집합을 의미하고, M(n)은 검사 행렬 H의 n행에서 1이 존재하는 행 인덱스의 집합을 가리킨다. 또, 단위 행렬의 크기를 (p×p)로 한다. 도 32의 예에서는, N=4p, M=3p로 되어 있고, 의사 순회 부호에는 이하의 특징이 있다.
(특징 1)
M(n)={m:Hm ,n=1}(n은 1 이상 p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
M(n)={m:Hm ,n=1}(n은 p 이상 2p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
M(n)={m:Hm ,n=1}(n은 2p 이상 3p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
(특징 2)
N(m)={n:Hm ,n=1}(m은 1 이상 p 이하)에서, 서로 동일한 열에 1을 갖지 않는다.
N(m)={n:Hm ,n=1}(m은 p 이상 2p 이하)에서, 서로 동일한 열에 1을 갖지 않는다.
N(m)={n:Hm ,n=1}(m은 2p 이상 3p 이하)에서, 서로 동일한 열에 1을 갖지 않는 다.
이러한 의사 순회 부호에서는, Shuffled BP 알고리즘에 의해 복호를 행할 때, 특징 1로부터 n이 1 이상 p 이하일 때에는 열 처리를 병렬하여 행할 수 있고, 특징 2로부터 m이 1 이상 p 이하일 때 행 처리를 병렬하여 행할 때에 동일한 열을 호출하지 않고, 하드웨어로 구성하는 경우에는 동일한 메모리에 액세스하지 않는다는 이점이 있다.
본 실시예 18에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 의사 순회 부호의 부호 구성의 특징을 이용하여 복호 연산이 병렬로 처리된다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5-1~5-p), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)는, 상기 실시예 17에서 설명한 바와 같이, 행 처리부(5-1~5-p) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5-1~5-p)는 도 32에 도시하는 의사 순회 부호의 단위 행렬의 모든 행에 대응하는 p행분 설치되고, 순회 구조의 기본 행렬의 크기로 병렬화되어 있다. 열 처리부(6)는 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
다음에 동작에 대하여 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력하면, 당해 수신 정보로부터 수신 LLR을 산출한다. 다음에 초기화 단계에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
계속해서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지, 행 처리부(5-1~5-p)에 의한 행 처리 및 열 처리부(6)에 의한 열 처리로 이루어지는 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
도 33은 실시예 18에 의한 행 처리부 및 열 처리부의 복호 연산을 설명하기 위한 블럭도이다. 이 도면을 사용하여 복호 연산의 흐름을 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 1열부터 p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 1열부터 p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 1열부터 p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
여기서, 1열부터 p열까지 관련된 행 처리에서는, 하기 식 (27)의 조건에 대하여, 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
Figure 112007039300242-PCT00019
다음에, 열 처리부(6)는 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 1열째부터 p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 p열부터 2p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 p열부터 2p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 p열부터 2p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 또한, p열부터 2p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 p부터 2p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, p열째부터 2p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 2p열부터 3p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 2p열부터 3p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 2p열부터 3p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 또한, 2p열부터 3p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 2로부터 3p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 2p열째부터 3p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 3p열부터 4p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 3p열부터 4p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 3p열부터 4p열까지 관련된 행 처리를 실행하여, 처리 결과를 열 처리부(6)로 넘긴다. 또한, 3p열부터 4p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 3p부터 4p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 3p열째부터 4p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
또한, 상기한 처리 예에서는, 의사 순회 부호의 특징 2를 이용하여 행 처리를 1~p, p~2p, 2p~3p로 나누어서 행 처리 하는 예를 나타냈지만, 1~3p 모두를 병렬로 실행시키는 것도 가능하다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7) 의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 18에 의하면, 의사 순회 부호와 같이 순회 구조를 가진 LDPC 부호를 Shuffled BP 알고리즘에 의해 복호하는 경우에, 순회 구조의 특징을 이용하므로, 행 처리 및 열 처리의 병렬화가 가능하게 되어, 복호 연산에 관계되는 처리 시간을 단축할 수 있으므로 복호 처리에 요하는 지연 시간을 삭감할 수 있다.
또한, 상기 실시예 18에서는, Shuffled BP 알고리즘을 예로 들어서 설명했지만, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다. 또, 순회 구조를 갖는 LDPC 부호로서 의사 순회 부호를 예로 들었지만, 다른 순회 구조를 갖는 LDPC 부호이어도 동일하다.
(실시예 19)
이 실시예 19는 Max-Log-MAP 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘을 복호 알고리즘으로서 구비하는 것이다.
도 34는 본 발명의 실시예 19에 의한 Turbo 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 19에 의한 Turbo 부호 복호 장치(24)는 수신값 보유부(25) 및 Turbo 복호 처리부(26)로 구성된다. Turbo 부호에서는, 정보 비트 계열 di와 그 패리티 비트 계열 p1 i, 인터리브 한 정보 비트 계열의 패리티 비트 계열 p2 i를 부호화 정보로서 송신한다. 수신값 보유부(25)는 그것들의 수신값 Ri, P1 i, P2 i를 나누어서 각각의 수신값을 보유하고, Turbo 복호 처리부(26)에 출력한다. Turbo 복호 처리부(26)는 중간 결과 보유부(27), 메트릭 계산부(28), 인터리브 처리부(29) 및 반복 제어부(30)로 구성된다.
중간 결과 보유부(27)는 수신값 보유부(25)로부터 입력한 수신값에 기초하는 메트릭 계산부(28)에 의한 복호 처리의 중간 결과를 보유한다. 메트릭 계산부(28)는 상기한 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘에 의한 메트릭 계산을 행하고, 복호 결과를 출력한다. 인터리브 처리부(29)는 Turbo 부호화에 따른 인터리브 처리를 행한다. 반복 제어부(30)는 메트릭 계산부(28)와 인터리브 처리부(29)에 의한 복호 처리의 반복을 제어한다.
메트릭 계산부(28)에서는, Max-Log-MAP 알고리즘에서의 처리가
Figure 112007039300242-PCT00020
인 것에 대하여,
Figure 112007039300242-PCT00021
으로 최대값을 보정하면서 메트릭 값의 산출과 갱신을 행한다.
또한, 상기 식 (29)에서, Max-Log-MAP 알고리즘에 대한 보정항이 되는 δ에 대해서는, Log-MAP 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또, 정수 C에 대해서는, Log-MAP 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절하게 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
인터리브 처리부(29)에서는, 복호하고 싶은 Turbo 부호의 인터리브 처리를 행하기 위한 정보를 메트릭 계산부(28)에 주고, 반복 제어부(30)에서는 반복 회수와 인터리브을 행하는 경우와 행하지 않는 경우의 제어를 행한다.
다음에 동작에 대하여 설명한다.
도 35는 실시예 19에 의한 Turbo 부호 복호 장치의 동작을 도시하는 플로우 차트이고, 이 도면에 따라 동작을 설명한다.
우선, 수신값 보유부(25)는 수신 정보로서 수신값 Ri, P1 i, P2 i를 나누어서 보유해 둔다(단계 ST1). 다음에 초기화 단계(단계 ST2)에서, 반복 제어부(30)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST3에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 메트릭 계산부와 인터리브 처리부에 의한 반복 복호 처리인 단계 1을 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 메트릭 계산부(5)는 복호하고 싶은 Turbo 부호에 대하여 반복 i회째의 복호 연산에서의 인터리브이 없는 수신값에 대한 메트릭 계산을 행한다. 구체적으로 설명하면, 수신값 Ri, P1 i에 대하여, 상기 식 (29)에서 보정을 행하는 Max-Log-MAP 알고리즘에 따라서 메트릭 계산을 행하고, 처리 결과를 중간 결과 보유부(27)에 보유시킨다. 인터리브이 없는 메트릭 계산을 행하기 위해서는, 수신값 Ri, P1 i를 수신값 보유부로부터 호출할 때에 i를 선두부터 차례로 인크리먼트 하여 행한다.
단계 2에서는, 메트릭 계산부(28)가 복호하고 싶은 Turbo 부호에 대하여 반복 i회째의 복호 연산에서의 인터리브이 있는 메트릭 계산을 행한다. 구체적으로 설명하면, 수신값 P2 i와 인터리브 한 수신값 Ri에 대하여, 상기 식 (29)에서 보정을 행하는 Max-Log-MAP 알고리즘에 따라 메트릭 계산을 행하고, 메트릭 값을 중간 결과 보유부(27)에 보유시킨다. 수신값 Ri를 인터리브 하기 위해서는, 수신값 보유부(25)로부터 수신값을 호출할 때에, 인터리브 처리부로부터 호출할 번호 i의 정보를 받아서 호출함으로써 행한다.
이렇게 하여, 반복 제어부(30)는 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1, 2를 반복하도록 메트릭 계산부와 인터리브 처리부를 제어한다.
반복 제어부(30)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 T4로서, 반복 제어부(30)가 메트릭 계산부(28) 및 인터리브 처리부(29)에 의한 복호 처리를 종료시키고, 메트릭 계산부로부터 복호 결과를 출력한다.
이상과 같이, 이 실시예 19에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Log-MAP 알고리즘으로부터의 복호 성능의 열화를 억제할 수 있고, 또한, 종래의 Max-Log-MAP 알고리즘과 비교하면 현격하게 복호 성능을 향상시킬 수 있다.
또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 19에 의한 Turbo 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 20)
본 실시예 20에서는, 전술한 실시예 1부터 실시예 19까지의 복호 처리를 적용하는 시스템에 대하여 설명한다. 예를 들면, 본 발명에 따른 LDPC 복호 처리는 이동통신(단말, 기지국), 무선 LAN, 광통신, 위성 통신, 양자암호 장치 등, 통신기기 전반에 적용할 수 있다. 구체적으로는, 도 36에 도시하는 바와 같이, LDPC 부호화기(31), 변조기(32), 통신로(33), 복조기(34), 및 LDPC 복호기(35)를 포함하여 이루어지는 시스템을 구성하고, 이 시스템에서의 LDPC 복호기(35)로서, 상기 실시예 1~19에 나타내는 복호기를 탑재하여, 오류 정정을 행한다.
도 37은 본 발명에 따른 복호 처리를 이동체 단말(36) 및 이 이동체 단말(36)과 통신을 행하는 기지국(37)을 갖춘 이동통신 시스템에 적용한 경우의 구성예를 도시하는 도면이다. 도면에서, 이동체 단말(36)은 LDPC 부호화기(31), 변조기(32), 복조기(34), LDPC 복호기(35) 및 안테나(42)를 구비한다. 또, 기지국(37)은 LDPC 복호기(43), 복조기(44), 변조기(45), LDPC 부호화기(46) 및 안테나(47)를 구비하고 있다.
이동체 단말(36) 및 기지국(37)의 LDPC 복호기(35, 43)로서는, 전술한 실시예 1~19에서 설명한 구성의 LPDC 복호기를 적용한다.
상기한 바와 같이 구성되는 이동통신 시스템에서, 이동체 단말(36)로부터 데이터를 송신하는 경우에는, 데이터를 LDPC 부호화기(37)가 부호화 하고, 변조기(38)와 안테나(41)를 통하여 무선 통신로에 송출한다.
한편, 기지국(37)에서는, 무선 통신로 중에서 발생한 오류를 포함하는 수신 신호를 안테나(47)와 복조기(44)를 통하여 받아들이고, 복조 후의 수신 데이터를 LDPC 복호기(43)에서 정정한다. 또한, 네트워크로부터 이동체 단말(36)이 각종 데이터를 수신하는 경우에 대해서도, 상기와 동일한 처리로, 기지국(37)이 이동체 단말(36)에 부호화 데이터를 송신하고, 이동체 단말(36)이 각종 데이터를 수신하여 복호 한다.
기지국(37)이 이동체 단말(36)에 부호화 데이터를 송신하는 경우에는, 데이터를 LDPC 부호화기(46)에 의해 부호화 하고, 부호화 데이터를 변조기(45)와 안테나(47)를 통하여 무선 통신로에 송출한다. 한편, 이동체 단말(36)에서는, 무선 통신로 중에서 발생한 오류를 포함하는 수신 신호를 안테나(42)와 복조기(34)를 통하여 수취하고, 복조 후의 수신 데이터를 LDPC 복호기(35)에서 정정한다.
이상과 같이, 이 실시예 20에 의하면, 상기 실시예 1부터 상기 실시예 19까지 나타낸 복호 처리를 이동통신 시스템에 적용했으므로, 이동체 단말(36) 및 기지국(37)에 의한 복호 처리에 있어서, 상기 실시예 1부터 상기 실시예 19까지 나타낸 효과를 각각 얻을 수 있다.
이상과 같이, 본 발명에 따른 복호 방법은 디지털 통신에 있어서의 복호 기술로서 유용하며, 특히 부호화 방식으로서 LDPC 부호를 채용하는 통신 장치에 적합하다.

Claims (19)

  1. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여 Min-Sum 알고리즘에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비한 복호 장치.
  2. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여 Normalized BP(Belief Propagation)에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비한 복호 장치.
  3. 저밀도 패리티 검사(Low-density Pahty-check: LDPC) 부호화된 수신 신호에 대하여 Offset BP(Belief Propagation)에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비한 복호 장치.
  4. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여, Min-Sum 알고리즘에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 실행할 때, 상기 확률 정보인 대수 우도비를 상기 수신 신호로부터 산출한 보정항으로 보정하는 갱신식을 사용하여 행 처리에서의 갱신 연산을 행하는 복호 수단을 구비한 복호 장치.
  5. 제 4 항에 있어서,
    복호 수단은 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 것을 특징으로 하는 복호 장치.
  6. 제 4 항에 있어서,
    복호 수단은 행 처리에 의해 산출되는 대수 우도비를 소정의 정수로 제산하여 상기 대수 우도비의 크기를 Sum-Product 알고리즘에 의한 대수 우도비의 크기와 동일한 정도로 조정하는 것을 특징으로 하는 복호 장치.
  7. 제 6 항에 있어서,
    복호 수단은 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 것을 특징으로 하는 복호 장치.
  8. 제 4 항에 있어서,
    복호 수단은 행 처리에 의해 산출되는 대수 우도비로부터 소정의 정수를 감산하여 상기 대수 우도비의 크기를 Sum-Product 알고리즘에 의한 대수 우도비의 크기와 동일한 정도로 조정하는 것을 특징으로 하는 복호 장치.
  9. 제 8 항에 있어서,
    복호 수단은 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 것을 특징으로 하는 복호 장치.
  10. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여 Normalized BP(Belief Propagation)에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 실행하는 복호 수단을 구비하고,
    상기 복호 수단은 행 처리를 실행하는 행 처리부와, 열 처리를 실행하는 열 처리부를 갖고,
    상기 행 처리부는 대수 우도비의 갱신 연산을 실행하는 비교부와, 상기 비교부에 의한 갱신 연산 결과를 정수(Normalization Factor)로 제산하여, 상기 대수 우도비의 크기를 Sum-Product 알고리즘에 의한 대수 우도비의 크기와 동일한 정도로 조정하는 제산부와, 수신 신호의 변조 방식에 의존한 비트 오류율 및/또는 LDPC 부호의 검사 행렬의 행 가중치에 따라 결정한 행마다의 정수(Normalization Factor)를 미리 기억하고, 상기 행 처리부가 행 처리를 실행하는 행에 대응하는 상기 정수를 상기 행 처리부에 출력하는 제산 정수 선택부로 구성되는
    복호 장치.
  11. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여 Offset BP(Belief Propagation)에 따른 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 실행하는 복호 수단을 구비하고,
    상기 복호 수단은 행 처리를 실행하는 행 처리부와, 열 처리를 실행하는 열 처리부를 갖고,
    상기 행 처리부는 대수 우도비의 갱신 연산을 실행하는 비교부와, 상기 비교부에 의한 갱신 연산 결과를 정수(Offset Factor)로 감산하고, 상기 대수 우도비의 크기를 Sum-Product 알고리즘에 의한 대수 우도비의 크기와 동일한 정도로 조정하는 감산부와, 수신 신호의 변조 방식에 의존한 비트 오류율 및/또는 LDPC 부호의 검사 행렬의 행 가중치에 따라 결정한 행마다의 정수(Offset Factor)를 미리 기억 하고, 상기 행 처리부가 행 처리를 실행하는 행에 대응하는 상기 정수를 상기 행 처리부에 출력하는 감산 정수 선택부로 구성되는
    복호 장치.
  12. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비하고,
    상기 복호 수단은 행 처리를 실행하는 행 처리부와, 수신 신호의 변조 방식에 의존한 비트 오류율 또는 LDPC 부호의 검사 행렬의 구성에 따라 복수의 열로 이루어지는 그룹으로 분할하는 연산열 제어부와, 상기 그룹마다 열 처리 연산을 실행하는 열 처리부로 구성되는
    복호 장치.
  13. 제 12 항에 있어서,
    연산열 제어부는 동일한 그룹에 속하는 열끼리의 행 인덱스의 집합에 동일한 행을 포함하지 않도록 그룹 분할하는 복호 장치.
  14. 저밀도 패리티 검사(Low-density Parity-check: LDPC) 부호화된 수신 신호에 대하여, 수신 신호의 변조 방식에 의존한 비트 오류율 또는 LDPC 부호의 검사 행렬의 구성에 따른 복호 순서에 따라, 행 처리 및 열 처리에 의한 확률 정보의 산출 및 그 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 복호 수단을 구비한 복호 장치.
  15. 제 14 항에 있어서,
    복호 수단은 LDPC 부호의 검사 행렬에서 동일한 열에 1을 갖는 행마다 병렬로 행 처리를 실행하는 복호 장치.
  16. 제 14 항에 있어서,
    복호 수단은 순회 구조를 갖는 LDPC 부호에 대하여, 당해 순회 구조의 단위 구조에 따라 복호 처리를 병렬로 실행하는 복호 장치.
  17. LDPC 부호의 부호화를 행하는 부호화부와, 당해 LDPC 부호의 구성에 적응시킨 변조 신호점의 할당을 행하는 변조부로 구성되는 부호화 송신부와,
    상기 부호화 송신부로부터 수신한 변조 신호의 복조를 행하는 복조부와, 상기 LDPC 부호의 구성에 기초하는 순서 제어에 따라 복호 처리를 실행하는 복호 수단으로 구성되는 수신 복호 처리부를 구비한
    통신 장치.
  18. 제 17 항에 있어서,
    복호 수단은 수신 신호의 변조 신호점에 기초하는 순서 제어에 따라, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 실행하는 통신 장치.
  19. Turbo 부호화된 수신 신호에 대하여, Max-Log-MAP 알고리즘에 따른 메트릭 계산에 의한 확률 정보인 메트릭 값의 산출 및 그 갱신을 실행할 때, 상기 메트릭 값을 상기 수신 신호로부터 산출한 보정항으로 보정하는 갱신식을 사용하여 메트릭 계산에서의 갱신 연산을 행하는 복호 수단을 구비한 복호 장치.
KR1020077012100A 2004-12-02 2005-12-01 복호 장치 및 통신 장치 KR100924189B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00350168 2004-12-02
JP2004350168 2004-12-02

Publications (2)

Publication Number Publication Date
KR20070073949A true KR20070073949A (ko) 2007-07-10
KR100924189B1 KR100924189B1 (ko) 2009-10-29

Family

ID=36565121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077012100A KR100924189B1 (ko) 2004-12-02 2005-12-01 복호 장치 및 통신 장치

Country Status (6)

Country Link
US (1) US8201047B2 (ko)
EP (1) EP1819056B1 (ko)
JP (1) JP4777261B2 (ko)
KR (1) KR100924189B1 (ko)
CN (1) CN101069356A (ko)
WO (1) WO2006059688A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009078653A2 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Preprocessing apparatus and method for group-based decoding
US8214717B2 (en) 2007-12-14 2012-07-03 Electronics And Telecommunications Research Institute Apparatus and method for decoding LDPC code based on prototype parity check matrixes
US8347194B2 (en) 2008-05-09 2013-01-01 Samsung Electronics Co., Ltd. Hierarchical decoding apparatus

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4492352B2 (ja) * 2005-01-05 2010-06-30 日本電気株式会社 復号装置及びその方法並びにプログラム
US7562279B2 (en) * 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
JP4526451B2 (ja) * 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム
WO2007007801A1 (ja) 2005-07-13 2007-01-18 Mitsubishi Electric Corporation 通信装置および復号方法
KR100804793B1 (ko) * 2005-10-07 2008-02-20 삼성전자주식회사 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
US7647548B2 (en) * 2006-07-31 2010-01-12 Agere Systems Inc. Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture
US7644339B2 (en) 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US8359522B2 (en) * 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
EP2171857A1 (en) * 2007-07-04 2010-04-07 Nxp B.V. Shuffled ldpc decoding
JP4823176B2 (ja) 2007-08-31 2011-11-24 パナソニック株式会社 復号方法及び復号装置
JP4487212B2 (ja) 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
JP4487213B2 (ja) 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
KR20090065411A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 그룹 단위 복호화를 위한 전처리 장치 및 그 방법
US8627165B2 (en) * 2008-03-24 2014-01-07 Micron Technology, Inc. Bitwise operations and apparatus in a multi-level system
US8572332B2 (en) * 2008-03-28 2013-10-29 Qualcomm Incorporated De-interleaving mechanism involving a multi-banked LLR buffer
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
JP4545217B1 (ja) 2009-04-03 2010-09-15 三菱電機株式会社 復号装置および復号方法
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
EP2482464B1 (en) * 2009-09-25 2019-01-23 Panasonic Intellectual Property Corporation of America Encoding apparatus, decoding apparatus, encoding method, decoding method, and communication system
JP5434454B2 (ja) * 2009-10-08 2014-03-05 富士通株式会社 復号化装置
TWI380598B (en) * 2010-05-18 2012-12-21 Univ Nat Taiwan Programmable ldpc code decoder and decoding method thereof
US8615703B2 (en) * 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US9131238B2 (en) * 2010-06-18 2015-09-08 The Trustees Of Princeton University System and method for lossy source-channel coding at the application layer
CN101917248A (zh) * 2010-07-20 2010-12-15 北京全路通信信号研究设计院 一种列控报文处理方法、装置和系统
JP5365601B2 (ja) * 2010-09-30 2013-12-11 株式会社Jvcケンウッド 復号装置および復号方法
JP5310701B2 (ja) 2010-10-29 2013-10-09 株式会社Jvcケンウッド 復号装置および復号方法
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
JP5631846B2 (ja) * 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法
JP5772622B2 (ja) * 2012-01-20 2015-09-02 株式会社Jvcケンウッド 復号装置および復号方法
US9621187B2 (en) * 2012-03-28 2017-04-11 Intel Corporation Processing elementary check nodes of an iterative decoder
US8885766B2 (en) * 2012-09-11 2014-11-11 Inphi Corporation Optical communication interface utilizing N-dimensional double square quadrature amplitude modulation
CN105814799B (zh) * 2013-12-09 2019-03-01 三菱电机株式会社 纠错解码装置
TWI583141B (zh) * 2016-05-12 2017-05-11 國立清華大學 低密度奇偶檢查碼的解碼方法與解碼器
CN106059596B (zh) * 2016-06-24 2019-05-14 中山大学 以二元bch码为成份码的分组马尔可夫叠加编码方法及其译码方法
CN106330203B (zh) * 2016-08-26 2019-12-31 晶晨半导体(上海)股份有限公司 一种ldpc的解码方法
US10419027B2 (en) 2016-10-13 2019-09-17 Qualcomm Incorporated Adjusted min-sum decoder

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
JP3820583B2 (ja) * 2002-01-08 2006-09-13 ソニー株式会社 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
US6829308B2 (en) * 2002-07-03 2004-12-07 Hughes Electronics Corporation Satellite communication system utilizing low density parity check codes
KR100487183B1 (ko) 2002-07-19 2005-05-03 삼성전자주식회사 터보 부호의 복호 장치 및 방법
US20040109507A1 (en) * 2002-12-06 2004-06-10 Ido Kanter Sequential decoding of parity check codes
JP2004274186A (ja) * 2003-03-05 2004-09-30 Sony Corp 誤り訂正符号の復号評価方法及び装置
US20080109698A1 (en) * 2006-07-25 2008-05-08 Legend Silicon Hybrid min-sum decoding apparatus with low bit resolution for ldpc code

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214717B2 (en) 2007-12-14 2012-07-03 Electronics And Telecommunications Research Institute Apparatus and method for decoding LDPC code based on prototype parity check matrixes
WO2009078653A2 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Preprocessing apparatus and method for group-based decoding
WO2009078653A3 (en) * 2007-12-17 2009-08-27 Electronics And Telecommunications Research Institute Preprocessing apparatus and method for group-based decoding
US8347194B2 (en) 2008-05-09 2013-01-01 Samsung Electronics Co., Ltd. Hierarchical decoding apparatus

Also Published As

Publication number Publication date
JP4777261B2 (ja) 2011-09-21
EP1819056A4 (en) 2009-03-04
JPWO2006059688A1 (ja) 2008-06-05
CN101069356A (zh) 2007-11-07
WO2006059688A1 (ja) 2006-06-08
US20080246639A1 (en) 2008-10-09
KR100924189B1 (ko) 2009-10-29
US8201047B2 (en) 2012-06-12
EP1819056B1 (en) 2013-07-17
EP1819056A1 (en) 2007-08-15

Similar Documents

Publication Publication Date Title
KR100924189B1 (ko) 복호 장치 및 통신 장치
KR100983692B1 (ko) 통신 장치 및 복호 방법
US9608666B1 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
RU2369008C2 (ru) Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока
US10727874B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
JP4929342B2 (ja) ノイズ分散による入力対数尤度比のスケーリングに基づくsum−product復号法(ビリーフプロパゲーション法)の計算手法
KR20080033381A (ko) 검사 행렬 생성 방법, 부호화 방법, 복호 방법, 통신 장치,통신 시스템, 부호화기 및 복호기
US10103751B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
CN107612560B (zh) 基于部分信息比特似然比的极化码早期迭代停止方法
WO2007088870A1 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
US20100325514A1 (en) Decoding method and decoding device
CN107404321B (zh) 用于纠错码解码的方法和设备
CN109075804B (zh) 使用极化码的通信设备和通信方法
CN115441993B (zh) 一种信道编解码方法、装置、设备及存储介质
KR20080074858A (ko) 데이터를 복호화 및 부호화하는 방법 및 장치
CN110073618B (zh) 产生用于增量冗余harq通信装置的低密度奇偶校验码的设备和方法
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
CN113612485B (zh) 一种译码方法、译码装置、设备及存储装置
CN111835363B (zh) 基于交替方向乘子法的ldpc码译码方法
JP5523064B2 (ja) 復号装置及び方法
JP4341646B2 (ja) 復号装置
JP6771181B2 (ja) 符号化装置、符号化方法およびプログラム。
KR20190000768A (ko) 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
CN115529104A (zh) 基于最大互信息的极化码量化译码方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20121002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141007

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150917

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170920

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181004

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191002

Year of fee payment: 11