KR100922956B1 - Low Density Parity Check Code Encoding Method - Google Patents
Low Density Parity Check Code Encoding Method Download PDFInfo
- Publication number
- KR100922956B1 KR100922956B1 KR1020030071456A KR20030071456A KR100922956B1 KR 100922956 B1 KR100922956 B1 KR 100922956B1 KR 1020030071456 A KR1020030071456 A KR 1020030071456A KR 20030071456 A KR20030071456 A KR 20030071456A KR 100922956 B1 KR100922956 B1 KR 100922956B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- parity check
- parity
- code
- sub
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1191—Codes on graphs other than LDPC codes
- H03M13/1194—Repeat-accumulate [RA] codes
- H03M13/1197—Irregular repeat-accumulate [IRA] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1114—Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1162—Array based LDPC codes, e.g. array codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
본 발명은 데이터의 부호화 방법에 관한 것으로, 특히 저밀도 패리티 코드(Low-Density Parity Check(LDPC) code)의 부호화 방법에 관한 것이다.The present invention relates to a method of encoding data, and more particularly, to a method of encoding a low-density parity check (LDPC) code.
본 발명의 방법은, 정보 부분 매트릭스와 패리티 부분 매트릭스로 구성되는 저밀도 패리티 검사 코드를 생성 방법으로서, 상기 정보 부분 매트릭스를 배열 코드 구조로 변경하고, 각각의 서브 매트릭스 열에 차수 시퀀스(degree sequence)를 할당하는 과정과, 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에 있어서, 사선 간의 옵셋값이 임의의 값을 갖도록 확장하는 과정과, 상기 일반화된 이중 사선 매트릭스를 리프팅 하는 과정과. 상기 리프팅된 일반화된 이중 사선 매트릭스의 서브 매트릭스마다 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)을 결정하는 과정과, 상기 패리티 부분 매트릭스의 열에 대응되는 패리티 심볼을 결정하는 부호화 과정을 포함한다.The method of the present invention is a method for generating a low density parity check code consisting of an information partial matrix and a parity partial matrix, wherein the information partial matrix is changed into an array code structure and an order sequence is assigned to each sub-matrix column. And in the generalized double diagonal matrix which is the parity partial matrix, expanding the offset value between diagonal lines to have an arbitrary value, and lifting the generalized double diagonal matrix. Determining an offset value for cyclic column shift for each sub-matrix of the generalized double diagonal matrix, and an encoding process for determining a parity symbol corresponding to a column of the parity partial matrix Include.
LDPC, 이중 사선, 비정규 LDPC 코드.LDPC, double diagonal, irregular LDPC code.
Description
도 1은 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스를 도시한 도면,1 shows a parity check matrix for a typical (p, r) array code,
도 2는 임의의 한 열에 존재하는 1의 최대 개수가 d v 이고, 그러한 서브 매트릭스 열의 수가 n v 이며, 나머지 서브 매트릭스 열들에 존재하는 1의 수는 항상 3인 경우의 매트릭스 H d 를 예로서 도시한 도면,2 shows that the maximum number of 1s in any one column is d v , A diagram showing the matrix H d as an example where the number of such sub-matrix columns is n v and the number of 1s present in the remaining sub-matrix columns is always 3,
도 3은 비정규 반복 축적 코드의 팩터 그래프(factor graph) 구조를 도시한 도면,3 is a diagram illustrating a factor graph structure of an irregular repeat accumulation code;
도 4는 비정규 반복 축적 코드를 가지는 저밀도 패리티 코드의 매트릭스를 도시한 도면,4 shows a matrix of low density parity codes having irregular repeating accumulation codes;
도 5는 옵셋 값(offset value) f를 임의의 값을 갖도록 리프팅하면 패리티 부분의 이중 사선 매트릭스를 도시한 도면,5 is a diagram illustrating a double diagonal matrix of parity parts when lifting an offset value f to have an arbitrary value;
도 6은 상기 도 5와 같은 부호화 과정에서 p 0 , p r-f , p r-2f , … 의 값들을 순차적으로 구하는 과정을 도시한 도면, FIG. 6 shows p 0 , p rf , p r-2f ,... A diagram illustrating a process of sequentially obtaining values of,
도 7은 maximum variable node degree가 15인 경우, 전술한 A 절의 설명에서와 같은 방식으로 생성한 패리티 검사 매트릭스의 정보 부분 H d 의 일례를 도시한 도면,7 is a view showing an example of the information portion H d of the parity check matrix generated in the same manner as described in section A above when the maximum variable node degree is 15;
도 8은 임의의 4x4 매트릭스의 각 원소를 3x3 항등 매트릭스(identity matrix) 또는 3x3 0 매트릭스(matrix)로 대치하는 방식에 의해 기본 4x4 매트릭스를 12x12 매트릭스로 매트릭스 리프팅(lifting)시킨 행렬을 도시한 도면,8 is a matrix lifted matrix of a basic 4x4 matrix into a 12x12 matrix by replacing each element of an arbitrary 4x4 matrix with a 3x3 identity matrix or a
도 9는 pxp 순환 치환 서브 매트릭스에 의한 매트릭스 리프팅(lifting)을 통해 구성한 패리티 매트릭스 H p 을 도시한 도면,FIG. 9 illustrates a parity matrix H p constructed by matrix lifting by p x p cyclic substitution sub-matrix. FIG.
도 10은 본 발명의 바람직한 실시 예에 따라 패리티 부분의 매트릭스를 생성하기 위한 흐름도,10 is a flowchart for generating a matrix of parity parts according to a preferred embodiment of the present invention;
도 11은 r = 15, f = 7, p =89의 값을 가지도록 리프팅된 일반화 이중 사선 매트릭스의 패리티 매트릭스를 도시한 도면,11 illustrates a parity matrix of a generalized double diagonal matrix lifted to have values of r = 15, f = 7, p = 89,
도 12는 본 발명의 효율을 검증하기 위한 반복적 신뢰 증식 복호 과정의 흐름도,12 is a flowchart of an iterative reliable proliferation decoding process for verifying the efficiency of the present invention;
도 13a는 n = 870, p = 29인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,FIG. 13A shows, as an example, a matrix of information portions Hd when n = 870, p = 29;
도 13b는 n = 870, p = 29인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,FIG. 13B illustrates, as an example, a matrix of parity portions Hp when n = 870 and p = 29;
도 13c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,13C is a simulation result graph comparing the performance of a low density parity check code and a turbo code;
도 14a는 n = 1590, p = 53인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,FIG. 14A shows, as an example, a matrix of information portions Hd when n = 1590, p = 53; FIG.
도 14b는 n = 1590, p = 53인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,14B is a diagram showing a matrix of parity portions Hp when n = 1590 and p = 53 as an example;
도 14c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,14C is a simulation result graph comparing the performance of a low density parity check code and a turbo code;
도 15a는 n = 3090, p = 103인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,FIG. 15A shows, as an example, a matrix of information portions Hd when n = 3090, p = 103;
도 15b는 n = 3090, p = 103인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,15B is a diagram showing a matrix of parity portions Hp when n = 3090 and p = 103 as an example;
도 15c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,15C is a graph of a simulation result comparing the performance of a low density parity check code and a turbo code;
도 16a는 n = 7710, p = 257인 경우 정보 부분 H d 의 매트릭스를 예로서 도시한 도면,FIG. 16A shows, as an example, a matrix of information portions H d when n = 7710, p = 257;
도 16b는 n = 7710, p = 257인 경우 패리티 부분 H p 의 매트릭스를 예로서 도시한 도면,16B is a diagram illustrating a matrix of parity portions H p when n = 7710 and p = 257 as an example;
도 16c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프, 16C is a graph of a simulation result comparing the performance of a low density parity check code and a turbo code;
도 16d는 저밀도 패리티 검사 코드의 반복 횟수 변화에 따른 시뮬레이션 결과 그래프.16D is a graph of simulation results according to the change in the number of repetitions of the low density parity check code.
본 발명은 데이터의 부호화 방법에 관한 것으로, 특히 저밀도 패리티 코드(Low-Density Parity Check(LDPC) code)의 부호화 방법에 관한 것이다.The present invention relates to a method of encoding data, and more particularly, to a method of encoding a low-density parity check (LDPC) code.
통상적으로 통신 시스템에서는 데이터의 전송 시, 전송되는 데이터를 부호화하여 전송함으로써, 전송의 안정성은 높이며, 많은 재전송이 이루어지지 않도록 함으로써 전송 효율을 높이도록 하고 있다. 이러한 부호화 방법 중 이동통신 시스템에서는 컨벌루셔널 부호화 방법, 터보 부호화 방법 및 준 보완 터보 부호(Quasi Complemental Turbo Coding : QCTC) 등의 방법 등이 사용되고 있다. 상기한 방법들을 사용하는 경우 데이터 전송의 안정성 및 전송 효율을 증대시킬 수 있다는 장점 때문이다.In general, a communication system encodes and transmits data to be transmitted at the time of data transmission, thereby improving transmission stability and increasing transmission efficiency by preventing many retransmissions. Among these coding methods, methods such as a convolutional coding method, a turbo coding method, and a quasi-complementary turbo coding (QCTC) are used in a mobile communication system. This is because the use of the above methods can increase the stability and transmission efficiency of data transmission.
그런데, 현재 무선 통신 시스템들은 급속도로 발전하고 있으며, 이에 따라 매우 고속의 데이터들을 전송할 수 있는 시스템들이 등장하고 있다. 이러한 무선 통신 시스템에서 보다 더 고속의 데이터들을 전송할 수 있기를 원하고 있다. 따라서 현재 제공되고 있는 상기한 방법들의 부호화 방법보다 높은 효율을 얻을 수 있는 부호화 방법이 요구되고 있다. However, current wireless communication systems are rapidly developing, and accordingly, systems capable of transmitting very high speed data have emerged. There is a desire to be able to transmit higher speed data in such a wireless communication system. Accordingly, there is a need for an encoding method capable of obtaining higher efficiency than the encoding methods of the above-described methods currently provided.
이러한 요구에 발맞춰 새로운 대안으로 떠오르고 있는 부호화 방법으로 저밀도 패리티 검사 코드가 있다. 그러면 저밀도 패리티 코드에 대하여 보다 상세히 살피기로 한다. 상기 저밀도 패리티 검사 코드는 1960년대 초 Gallager에 의해 최초로 제안되었으며, 1990년대 이후 MacKay 등에 의해 재조명되었다. 상기 맥케이 등에 의해 재조명된 상기 저밀도 패리티 검사 코드는 sum-product algorithm에 기반하고 있다. 또한, 저밀도 패리티 검사 코드는 belief propagation decoding을 사용함으로써 Shannon의 제한 용량(capacity limit)에 근접하는 우수한 성능을 보일 수 있는 부호로 관심을 모으기 시작하였다.To meet this demand, a new alternative is the low density parity check code. We will then look more closely at the low density parity code. The low density parity check code was first proposed by Gallager in the early 1960's and has since been re-examined by MacKay et al. The low density parity check code re-examined by McKay et al. Is based on a sum-product algorithm. In addition, low-density parity check codes have begun to attract attention as codes that can achieve superior performance close to Shannon's capacity limit by using belief propagation decoding.
이후 Richardson과 Chung 등은 저밀도 패리티 코드를 구성하는 펙터 그래프(factor graph) 상에서 복호(decoding)시에 생성, 갱신(update)되는 메시지(message)들의 확률 분배(probability distribution)가 반복(iteration)에 따라 변화하는 것을 추적하는 density evolution 기법을 제안하였다. 상기 density evolution 기법을 이용하고, cycle free의 펙터 그래프 상에서 무한대의 반복을 가정하였을 때, 오류 확률(probability of error)이 "0"으로 수렴하게 할 수 있는 채널 파라미터(channel parameter : threshold)를 발명하였다. 즉, 펙터 그래프 상에서 가변 노드(variable node)들과 검사 노드(check node)들의 채널 파라미터를 최대화 할 수 있는 분포도(degree distribution)를 제안하였다. 그리고 이러한 경우가 사이클(cycle)이 존재하는 유한한 길이의 LDPC 코드에 대해서도 적용 가능함을 이론적으로 보였다.Later, Richardson and Chung et al. Described the probability distribution of messages generated and updated during decoding on a factor graph constituting a low density parity code. We proposed a density evolution technique to track changes. By using the density evolution technique and assuming infinite repetition on a cycle free factor graph, a channel parameter (threshold) that allows a probability of error to converge to "0" was invented. . That is, we proposed a degree distribution that can maximize the channel parameters of variable nodes and check nodes on the factor graph. And it was theoretically shown that this case is applicable to LDPC codes of finite length in which there is a cycle.
또한, density evolution 기법을 이용하여 비정규(irregular) LDPC 코드의 이론적인 채널 용량(channel capacity)이 Shannon limit에 불과 0.0045 dB까지 근접할 수 있음을 보였다. 특히, Flarion사는 LDPC 코드의 디자인(design) 및 하드웨어(H/W) 구현 등을 주도하면서 비교적 짧은 길이의 LDPC 코드에 대해서도 터보 코드보다 우수한 프레임 오류율(frame error rate)을 갖고, 병렬 복호기(parallel decoder)의 구현이 가능한 multi-edge type vector LDPC 코드를 제안한 바 있다.In addition, the density evolution technique showed that the theoretical channel capacity of an irregular LDPC code can be as close as 0.0045 dB to the Shannon limit. In particular, Flarion leads the design and hardware (H / W) implementation of LDPC codes, and has a frame error rate that is superior to turbo codes for LDPC codes of relatively short length, and is a parallel decoder. We have proposed a multi-edge type vector LDPC code that can be implemented.
이러한 LDPC 코드는 차세대 이동 통신 시스템에서 터보 코드(turbo code)를 대체할 수 있는 강력한 대안으로 거론되고 있다. 즉, 이는 LDPC 코드가 갖고 있는 복호기 구현상의 병렬 구조(parallel structure)와 낮은 복잡도(low complexity), 그리고 성능상의 낮은 오류 마루(low error floor), 양호한 프레임 오류율(good frame error rate) 등의 요인 때문이다. 따라서 앞으로도 많은 연구가 진행되면 보다 우수한 특성들을 갖는 LDPC 코드들이 등장할 것으로 생각된다.Such LDPC codes are considered as a powerful alternative to turbo code in next generation mobile communication systems. This is because of the parallel structure, low complexity, low performance floor and good frame error rate of the decoder implementation of the LDPC code. to be. Therefore, if much research is conducted in the future, LDPC codes with better characteristics are expected to emerge.
그러나 현재 LDPC 코드를 구현하는데 문제점은 터보 코드(turbo code)에 비해 부호화(encoding) 과정이 다소 복잡하고, 짧은 프레임 크기(frame size)에서 터보 코드보다 우수한 성능을 낼 수 있는 최적화된 코드의 구조가 필요하다는 점이다. 이를 해결하기 위해 많은 연구가 활발히 진행되어 왔으나, 아직까지 최적화된 LDPC 코드의 부호화를 수행할 수 있는 방안이 제시되고 있지는 않다.However, the problem of implementing the LDPC code is that the encoding process is more complicated than the turbo code, and the structure of the optimized code that can perform better than the turbo code in a short frame size is poor. It is necessary. Many studies have been actively conducted to solve this problem, but there are no proposals for performing the encoding of the optimized LDPC codes.
따라서 본 발명의 목적은 부호화 과정이 단순한 저밀도 패리티 검사 코드의 부호화 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a method for encoding a low density parity check code, in which an encoding process is simple.
본 발명의 다른 목적은 짧은 프레임 크기에서 보다 향상된 저밀도 패리티 검사 코드의 부호화 방법을 제공함에 있다.Another object of the present invention is to provide an improved method of encoding a low density parity check code at a short frame size.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 정보 부분 매트릭스와 패리티 부분 매트릭스로 구성되는 저밀도 패리티 검사 코드를 생성 방법으로서, 상기 정보 부분 매트릭스를 배열 코드 구조로 변경하고, 각각의 서브 매트릭스 열에 차수 시퀀스(degree sequence)를 할당하는 과정과, 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에서 사선간의 옵셋값이 임의의 값을 갖도록 확장하는 과정과, 상기 일반화된 이중 사선 매트릭스를 리프팅 하는 과정과. 상기 리프팅된 일반화된 이중 사선 매트릭스의 서브 매트릭스마다 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)을 결정하는 과정과, 상기 패리티 부분 매트릭스의 열에 대응되는 패리티 심볼을 결정하는 부호화 과정을 포함한다.A method of the present invention for achieving the above objects is a method of generating a low density parity check code consisting of an information sub-matrix and a parity sub-matrix, wherein the information sub-matrix is changed into an array code structure, and the order of each sub-matrix column Allocating a sequence, extending the offset value between diagonal lines in the generalized double diagonal matrix that is the parity partial matrix, and lifting the generalized double diagonal matrix; Determining an offset value for cyclic column shift for each sub-matrix of the generalized double diagonal matrix, and an encoding process for determining a parity symbol corresponding to a column of the parity partial matrix Include.
보다 바람직한 본 발명은 상기 차수 시퀀스(degree sequence)를 와 같이 구성할 수 있고, The present invention more preferably the degree sequence (degree sequence) Can be configured as
상기 사선간의 옵셋 값은, 일반화된 이중 사선 매트릭스의 열의 수와 서로소로 구성하는 것이 바람직하다. The offset value between the diagonal lines is preferably configured to be smaller than the number of columns of the generalized double diagonal matrix.
또한 바람직하게는 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에서 사선상의 서브 매트릭스의 상기 순환 행 이동을 위한 옵셋 값들의 합과 옵셋 사선상의 서브 메트릭스의 순환 행 이동을 위한 옵셋 값들의 합의 차가 0이 아 니어야 한다.Also preferably, in the generalized double diagonal matrix that is the parity partial matrix, the sum of the offset values for the cyclic row movement of the oblique sub-matrix and the sum of the offset values for the cyclic row movement of the sub-matrix on the offset diagonal is not zero. Should be.
그리고, 상기 부호화 과정은,And, the encoding process,
상기 패리티 부분 매트릭스의 사선상의 서브 매트릭스 열 인덱스 0인 서브 매트릭스내의 첫 번째 행의 패리티 심볼을 결정하는 제1과정과, 상기 설정된 패리티 심볼의 서브 매트릭스 열 인덱스와 같은 서브 매트릭스 열 인덱스를 가지는 옵셋 사선 상의 서브 매트릭스에서 상기 결정된 패리티 심볼과 서브 매트릭스 내의 열 인덱스가 같은 패리티 심볼의 서브 매트릭스 내의 행 인덱스를 설정하는 제2과정과, 상기 옵셋 사선 상의 서브 매트릭스의 서브 매트릭스 행 인덱스와 같은 서브 매트릭스 행 인덱스를 가지는 사선 상의 서브 메트릭스에서 상기 설정된 서브 매트릭스 내의 행 인덱스가 같은 패리티 심볼을 결정하는 제3과정과, 상기 제2과정부터 제3과정까지의 연산을 상기 패리티 매트릭스의 생성이 완료될 때까지 반복 수행하는 반복 과정을 포함하는 것이 바람직하다.A first process of determining a parity symbol of a first row in a submatrix having an oblique sub-matrix column index of the parity submatrix, and an offset diagonal line having a sub-matrix column index equal to the sub-matrix column index of the set parity symbol The second process of setting the row index in the sub-matrix of the parity symbol with the determined parity symbol and the column index in the sub-matrix in the sub-matrix, and the sub-matrix row index equal to the sub-matrix row index of the sub-matrix on the offset diagonal line A third process of determining parity symbols having the same row index in the set sub-matrix in an oblique sub-metric, and repeating the operations from the second process to the third process until the generation of the parity matrix is completed Including process Is preferred.
그리고, 상기 제1과정의 상기 패리티 심볼은, 상기 패리티 심볼이 결정될 서브 매트릭스 내의 행 인덱스와 같은 행에 존재하는 정보 부분 매트릭스의 정보 심볼들의 합으로 결정할 수 있다.
The parity symbol of the first process may be determined as a sum of information symbols of an information partial matrix existing in a row such as a row index in a submatrix in which the parity symbol is to be determined.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지 도록 하고 있음에 유의해야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals have the same reference numerals as much as possible even if displayed on different drawings.
그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
이하에서 설명되는 본 발명에서는 간단한 부호화와 우수한 성능을 보일 수 있는 새로운 LDPC 코드를 제안한다. 이를 위해 새로운 패리티 검사 매트릭스(parity check matrix)를 정의한다. 즉, 새로운 패리티 검사 매트릭스를 이용한 새로운 LDPC 코드를 제안한다. 또한, 본 발명에 따른 새로운 LDPC 코드가 선형 연산에 의해 간단히 부호화가 가능함을 보이고, 이를 위한 부호화 방법을 제시한다. 그리고 마지막으로 본 발명에서 제안하는 LDPC 코드가 belief propagation decoding에 의해 CDMA2000 1xEV-DV 표준(standard)에서 사용되고 있는 터보 부호(turbo code)보다 우수한 복호 성능을 가짐을 보인다.The present invention described below proposes a new LDPC code capable of simple encoding and excellent performance. To this end, a new parity check matrix is defined. In other words, we propose a new LDPC code using the new parity check matrix. In addition, it is shown that a new LDPC code according to the present invention can be easily encoded by a linear operation and proposes an encoding method for the same. Finally, it is shown that the LDPC code proposed by the present invention has better decoding performance than the turbo code used in the CDMA2000 1xEV-DV standard by belief propagation decoding.
이하에서 설명되는 본 발명에서는 논의의 편의를 위해 부호화 율(code rate)이 1/2인 LDPC 코드에 대한 성능 및 구현을 설명한다. 그러나, 부호화 율은 본 발명의 요지 내에서 리프팅이 가능함을 미리 밝혀둔다.
In the present invention described below, for the convenience of discussion, the performance and implementation of an LDPC code having a code rate of 1/2 will be described. However, it is noted that the coding rate can be lifted within the gist of the present invention.
1. 패리티 검사 매트릭스 디자인(Parity check matrix design) 1.Parity check matrix design
본 절에서는 어레이 코드(array code)와 비정규 반복 축적 코드(irregular repeat accumulate code)를 정의하는 패리티 검사 매트릭스 구조를 접목, 응용하여 생성한 새로운 패리티 검사 매트릭스를 정의한다. 그리고, 이러한 방식으로 생성된 기초 매트릭스(basic matrix)의 성질을 유지하면서 보다 큰 크기를 갖는 매트릭스를 생성하는 방법에 대해서도 살펴보기로 한다.This section defines a new parity check matrix created by applying a parity check matrix structure that defines array codes and irregular repeat accumulate codes. In addition, a method of generating a matrix having a larger size while maintaining the properties of the basic matrix generated in this manner will be described.
A. 배열 코드 구조(Array code structure)A. Array code structure
일반적으로 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스는 도 1과 같이 정의된다. 도 1은 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스를 도시한 도면이다. 그러면 도 1을 참조하여 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스에 대하여 설명하기로 한다.In general, the parity check matrix for the (p, r) array code is defined as in FIG. 1 is a diagram illustrating a parity check matrix for a general (p, r) array code. Next, a parity check matrix for a general (p, r) array code will be described with reference to FIG. 1.
상기 도 1에서 p는 prime number이다. 그리고, p의 크기를 가지는 정방행렬인 pxp 항등 매트릭스(identity matrix)인 I의 각 행들을 j만큼 순환 이동(cyclic shift)하여 얻은 pxp 순환 순열 매트릭스(cyclic permutation matrix)를 σj로 표기하였다. 이러한, σj의 집합으로 이루어진 행(row)과, 열(column)을 각각 서브-매트릭스 행(sub-matrix row)과, 서브-매트릭스 열(sub-matrix column)이라 부르도록 한다. 배열 코드(Array code)를 정의하는 패리티 검사 매트릭스(parity check matrix)의 열과 행은 각각 p개와 r개의 1을 균일하게 가진다. 그리고, p가 적당히 클 경우 매트릭스에서 1이 차지하는 비율은 줄어들어 저밀도 패리티 검사 코드의 구조를 갖게 된다. 또한, 이러한 배열 코드(array code)는 길이가 4인 사이클(cycle) 구조를 갖지 않는다. 즉, 패리티 검사 매트릭스에서 사각형 - 싸이클(cylce) 4 - 을 이루는 4개의 부분 행렬 σia, σib, σja, σ
jb (i≠j)에 속해 있는 원소들이 싸이클 4의 구조를 갖는다면 하기 <수학식 1>과 같은 식이 성립되어야 한다.In FIG. 1, p is prime number. Then, the the square matrix having a size of p p x p identity matrix (identity matrix) of j circular shift (cyclic shift) as long as each line of the I p x p cyclic permutation matrix (cyclic permutation matrix) obtained by a σ j Notation is shown. The rows and columns of the set of sigma j are referred to as sub-matrix rows and sub-matrix columns, respectively. The columns and rows of the parity check matrix defining the array code have p and
즉, 상기 <수학식 1>에서 a = b 이어야 한다. 그러나, 임의의 서로 다른 행(row) 부분에 존재하는 a, b는 항상 다른 값을 갖기 때문에 상기 <수학식 1>은 성립할 수 없다. 따라서, 상술한 바와 같은 패리티 검사 매트릭스를 갖는 배열 코드는 싸이클 4의 구조를 갖지 않는다.That is, in
본 발명에서는 이상에서 상술한 바와 같은 배열 코드의 패리티 검사 매트릭스 구조를 변형하여 새로운 매트릭스 구조를 생성하여 사용한다. 그러면 본 발명에서 사용할 새로운 매트릭스 구조를 생성하는 과정을 살펴보도록 한다. 또한 이와 같은 변형을 수행하는 목적은 싸이클 4의 구조를 갖지 않는 배열 코드 구조를 기반으로 하되, 생성하고자 하는 매트릭스의 각 열에 존재하는 1의 분포가 다양하게 존재하는 비정규 구조(irregular structure)를 얻기 위함이다. 또, 이러한 과정에서 각 행(row)에 존재하는 1의 분포는 비교적 균일하게 하도록, 즉 최대 2가지 종류만 존재하도록 한다. 그러면 본 발명에서 사용하는 새로운 매트릭스 구조의 생성 방법을 살피기로 한다.In the present invention, a new matrix structure is generated and used by modifying the parity check matrix structure of the array code as described above. Next, look at the process of creating a new matrix structure for use in the present invention. In addition, the purpose of performing such a transformation is to obtain an irregular structure based on an array code structure having no structure of
(1) 배열 코드를 구성하는 패리티 검사 매트릭스의 임의의 j번째 서브 매트릭스 열(sub-matrix column)은 하기 <수학식 2>와 같은 서브 매트릭스(sub matrix)들로 이루어져 있다.
(1) Any j- th sub-matrix column of the parity check matrix constituting the array code is composed of sub matrices as shown in
(2) 미리 정의된 분포도(degree distribution)에 따라 각 서브 매트릭스 열(sub-matrix column)에 대한 degree sequence를 하기 <수학식 3>과 같이 정의한다.(2) A degree sequence for each sub-matrix column is defined as shown in
상기 <수학식 3>에서 dj는 j번째 서브 매트릭스 열에 해당되는 column degree를 의미하며, s는 총 서브 매트릭스 열의 수이다. 또한 상기 s는 임의의 열에 존재하는 최대 1의 개수 d
v 와 같도록 한다.In
(3) 상기 (2)에서 정의된 degree sequence D에 따라 임의의 j번째 서브 매트릭스 열을 하기 <수학식 4>와 같이 변형하여 정의한다.(3) According to the degree sequence D defined in the above (2), the arbitrary j- th sub-matrix string is modified as shown in
즉, 상기 <수학식 4>에서 tj는 j번째 서브 매트릭스 열 에서 0이 아닌 서브 매트릭스가 존재하기 시작하는 서브 매트릭스 열 번호(sub-matrix row number)이다.That is, in
(4) 생성하고자 하는 매트릭스 H
d 는 각 서브 매트릭스 열(sub-matrix column)들을 열 벡터(column vector)로 갖는 하기 <수학식 5>와 같은 행렬이다.(4) The matrix H d to be generated is a matrix such as the following
이상에서 상술한 과정에 따라 매트릭스의 임의의 한 서브 매트릭스 열(sub-matrix column)을 정의하면, 각 서브 매트릭스 열 내에 존재하는 임의의 한 열에는 해당 서브 매트릭스 열에 할당된 degree만큼의 1의 개수만이 항상 존재하게 된다. 또한, 위와 같은 서브 매트릭스 열들로 이루어지는 매트릭스는 각 매트릭스들간의 서브 매트릭스 중첩(sub-matrix overlap)이 최소화될 것이다. 그러므로 전체 매트릭스의 임의의 한 행에 존재하는 1의 개수도 최소화될 것이다. 즉, 전체 매트릭스에서 한 행에서 1의 숫자는 항상 2개 또는 1개만을 가질 것임을 쉽게 알 수 있다. 그리고, 위와 같이 생성된 행렬 H
d 는 배열 코드(array code)구조에서 일부 서브 매트릭스를 제거한 형태이므로, 배열 코드와 마찬가지로 싸이클 4의 구조가 항상 존재하지 않음을 쉽게 알 수 있다.If any one sub-matrix column of the matrix is defined according to the above-described process, only one number of degrees equal to the degree assigned to the corresponding sub-matrix column is included in any one column existing in each sub-matrix column. Will always exist. In addition, the matrix consisting of the above sub-matrix columns will minimize the sub-matrix overlap between each matrix. Therefore, the number of 1s present in any one row of the entire matrix will also be minimized. In other words, it is easy to see that the number of 1s in a row will always have two or only one in the whole matrix. In addition, since the matrix H d generated as described above is a form in which some sub-matrices are removed from the array code structure, it is easy to see that the structure of
도 2는 임의의 한 열에 존재하는 1의 최대 개수가 d v 이고, 그러한 서브 매트릭스 열의 수가 n v 이며, 나머지 서브 매트릭스 열들에 존재하는 1의 수는 항상 3인 경우의 매트릭스 H d 를 예로서 도시한 도면이다. 2 shows that the maximum number of 1s in any one column is d v , The number of such sub-matrix columns is n v and the number of 1s present in the remaining sub-matrix columns is a diagram showing the matrix H d in the case of 3 as an example.
본 발명에서는 상기 도 2에 도시한 바와 같은 배열 코드 구조를 기반으로 정의된 패리티 검사 매트릭스 H의 정보(information) 부분 매트릭스 H
d (220)은 본 발 명에서 정의하고자 하는 저밀도 패리티 코드의 패리티 검사 매트릭스의 H의 서브 매트릭스로 사용할 것이다. 그러면 이하에서 상기 패리티 검사 매트릭스 H의 패리티 부분을 구성하는 서브 매트릭스의 생성을 위해 비정규 반복 축적 코드(irregular repeat accumulate code) 구조에 대하여 살피도록 한다.In the present invention, the information
B. 일반화된 이중 대각선 매트릭스(Generalized dual-diagonal matrix)B. Generalized dual-diagonal matrix
비정규 반복 축적 코드(Irregular repeat accumulate(IRA) code)는 간단한 부호기(encoder) 구조를 가지면서 메시지 패싱 복호기(message passing decoder)에 의해 비교적 우수한 성능을 얻을 수 있다고 알려져 있다. 이러한 비정규 반복 축적 코드는 저밀도 패리티 검사 코드의 한 형태로 볼 수 있다.Irregular repeat accumulate (IRA) codes have a simple encoder structure and are known to achieve relatively good performance by a message passing decoder. This irregular repeat accumulation code can be viewed as a form of low density parity check code.
도 3은 비정규 반복 축적 코드의 펙터 그래프(factor graph) 구조를 도시한 도면이다. 그러면 도 3을 참조하여 반복 축적 코드의 펙터 그래프 구조에 대하여 살펴보기로 한다. 상기 도 3의 비정규 반복 축적 코드의 펙터 그래프는 시스테메틱(systematic) 버전(version)으로서, 코드워드(codeword)의 패리티(parity) 심볼에 해당하는 패리티 노드(parity node)들은 하나의 패리티 노드만을 제외하고는 모두 degree 2를 갖는다. 즉, 각 패리티 노드들(301, 302, 303, …, 304, 305, 306, 307)과 연결되는 가지(edge)들은 2개씩으로 구성된다. 패리티 노드의 이러한 구조는 주어진 정보 심볼(information symbol)에 의한 패리티 심볼(parity symbol)의 생성을 선형 연산만으로 쉽게 이루어지도록 할 수 있는 장점을 갖는다. 또한 상기 도 3에 도시한 바에서 알 수 있듯이 비정규 반복 축적 코드의 정보 노드는 다양한 degree 분포를 가질 수 있다. 이러한 정보 노드의 값들은 무작위 순열(random permutation)(320)을 통해 검사 노드와 연결된다.3 is a diagram illustrating a factor graph structure of an irregular repeat accumulation code. Next, the factor graph structure of the iterative accumulation code will be described with reference to FIG. 3. The factor graph of the irregular repeating accumulation code of FIG. 3 is a systemic version, in which parity nodes corresponding to a parity symbol of a codeword are only one parity node. Except for all, they have
상기 도 3과 같은 펙터 그래프를 가지는 비정규 반복 축적 코드를 매트릭스 형태로 도시하면 도 4와 같이 도시할 수 있다. 도 4는 비정규 반복 축적 코드를 가지는 저밀도 패리티 코드의 매트릭스를 도시한 도면이다.If the irregular repeating accumulation code having the factor graph as shown in FIG. 3 is shown in a matrix form, it may be illustrated as shown in FIG. 4. 4 is a diagram illustrating a matrix of low density parity codes having irregular repeating accumulation codes.
상기 도 4의 저밀도 패리티 코드의 매트릭스 중에서 패리티 부분의 사선은 '1'을 뜻하며, 각 사선들간의 offset f(401)는 일반적인 비정규 반복 축적 코드에서 1의 값을 갖는다. 따라서, 비정규 반복 축적 코드를 정의하는 패리티 검사 매트릭스의 패리티 부분에 해당하는 서브 매트릭스는 이중 사선 매트릭스(dual-diagonal matrix) 형태를 갖게 된다. 그리고, 패리티 검사 매트릭스의 정보 부분의 각 열에 존재하는 1의 개수는 비정규 분포(irregular distribution)를 가진다. 이들의 분포는 도 4의 무작위 순열부(random permutation unit)에 의해 정의된다.The diagonal of the parity portion of the matrix of the low density parity code of FIG. 4 means '1', and the offset
본 발명에서는 비정규 반복 축적 코드 구조의 패리티 부분만을 고려한다. 따라서 패리티 부분만을 일반화하고, 새로운 형태의 매트릭스를 제안한다.In the present invention, only the parity portion of the irregular repeating accumulation code structure is considered. Therefore, we generalize only the parity part and propose a new type of matrix.
상기 도 4에서 일반적인 비정규 반복 축적 코드에서는 각 사선들간의 옵셋인 f = 1인 값을 갖는 경우를 도시하였다. 본 발명에서는 상기 옵셋 값(offset value) f를 임의의 값을 갖도록 리프팅하면 패리티 부분의 이중 사선 매트릭스는 도 5와 같이 일반화되어 도시할 수 있다. 상기 도 5의 제1사선(501)은 상기 매트릭스의 최상위 열과 최상위 행의 위치부터 최종 열의 최종 행으로 사선을 이룬다. 그리고, 제2사선의 제1부분 사선(502a)은 상기 옵셋 값만큼 열 이동한 위치의 첫 번째 위치에서 '0'의 값을 가지고, 나머지는 동일한 옵셋 값으로 제2사선의 제1부분 사선(502a)의 마지막 부분까지 1을 가지며, 제2사선의 제2부분 사선(502b)은 그 다음 행의 첫 번째 열부터 1의 값을 가지고 사선을 이루어 구성된다.In FIG. 4, a general irregular repeat accumulation code has a case where a value f = 1, which is an offset between diagonal lines, is illustrated. In the present invention, when the offset value f is lifted to have an arbitrary value, the double diagonal matrix of the parity portion may be generalized as shown in FIG. 5. The first
이와 같은 상기 도 5는 본 발명에 따라 이중 사선 매트릭스의 옵셋 값을 임의의 값으로 리프팅한 경우의 패리티 매트릭스를 도시한 도면이다. 상기 도 5에 도시한 바와 같이 옵셋 값이 변경되어도 특정한 열에 "1"이 하나만 존재하는 열은 반드시 존재하게 된다. 즉, 주의해야 할 점은 모든 열에 존재하는 "1"의 개수가 2이면, 이중 사선 매트릭스의 계수(rank)가 매트릭스의 행보다 작아지게 된다. 따라서 상기 도 5에 도시한 바와 같이 두 번째 사선의 첫 번째 행에는 "1"이 존재하지 않도록 즉, "0"이 되도록 한다는 점이다. 상기 도 5와 같은 매트릭스의 크기가 r인 정방 행렬 즉, r x r 매트릭스인 경우, 이중 사선 매트릭스의 옵셋 값 f와 상기 매트릭스의 크기 r이 공통 인수를 갖지 않으면 임의의 주어진 정보 심볼들의 셋(set)에 대해 r번의 덧셈 연산만으로 r개의 모든 패리티 심볼을 생성할 수 있다. 이의 증명을 위해 우선 다음과 같은 정리를 생각한다.5 is a diagram illustrating a parity matrix when the offset value of the double oblique matrix is lifted to an arbitrary value according to the present invention. As shown in FIG. 5, even when the offset value is changed, a column in which only one "1" exists in a specific column always exists. In other words, it should be noted that if the number of " 1 " present in all columns is 2, the rank of the double diagonal matrix becomes smaller than the rows of the matrix. Therefore, as shown in FIG. 5, the first row of the second diagonal line does not have “1”, that is, “0”. If the matrix size of the matrix as shown in FIG. 5 is r , i.e., an r x r matrix, a set of any given information symbols is set if the offset value f of the double diagonal matrix and the size r of the matrix do not have a common factor. R parity symbols can be generated with only r addition operations. To prove this, first consider the following theorem.
정리 1(Theorem 1) : 임의의 아벨리안 그룹(Abelian group) AGr = {0, 1, 2, …, r-1}의 임의의 한 원소(element) 가운데, r과 서로 소이며 0이 아닌 임의의 원소 f는 항상 자기 자신에 대한 r번 또는 그 이하의 덧셈으로 AGr의 모든 원소를 생성한다. 이를 증명하기 위해 만일 r과 서로 소이며 0이 아닌 임의의 원소 f가 r번 또는 그 이하의 덧셈에 의해 AGr의 모든 원소를 생성할 수 없다면, r보다 작은 어떠한 k에 대해 하기 <수학식 6>의 조건을 만족시키는 k가 존재하게 된다. Theorem 1 : Any Abelian group AG r = {0, 1, 2,... , R -1} Any one element (element) of, and r and relatively prime to the non-zero random element f will always generate all the elements of the AG r r times or addition of less of themselves. Ten thousand and one r and the random element f is if you can not generate all the elements in the AG r by r times or addition of less, to about less any k than r <Equation (6) relatively prime and non-zero in order to prove this, K satisfies the condition>.
그러나, 상기 <수학식 6>은 f와 r이 서로 소라는 가정에 위배된다. 즉, 상기 <수학식 6>을 만족시키는 k의 최소 값은 항상 r이어야 한다. 따라서, 원소
f는 r번의 덧셈 연산에 의해 AGr의 모든 원소를 생성할 수 있게 된다.However,
또한 상기 도 5에 도시한 이중 사선 매트릭스(dual diagonal matrix)이 임의의 패리티 검사 매트릭스의 패리티 부분에 해당하는 행렬이다. 따라서, 상기 도 5의 행렬에서 임의의 i번째 열은 패리티 검사 매트릭스의 나머지 정보(information) 부분에 해당하는 행렬의 i번째 열로부터 항상 하기 <수학식 7>과 같은 정보를 얻을 수 있다.In addition, the dual diagonal matrix shown in FIG. 5 is a matrix corresponding to a parity portion of an arbitrary parity check matrix. Accordingly, in the matrix of FIG. 5, any i- th column may always obtain information as shown in
상기 <수학식 7>에서 di 는 i번째 정보(information) 심볼이며, ai 는 패리티 검사 매트릭스의 정보 부분에 해당하는 행렬의 i번째 열에 존재하는 1의 수이다. 그리고 덧셈은 GF(2) 상에서의 덧셈 연산을 뜻한다. 상기 GF(2)란 Galois Field over 2의 뜻으로, modulo 2상에서 정의되는 유한체 집합(Finite Field)을 뜻한다. 상기 유한체 집합(Finite Field)이란 원소의 개수가 유한하고, 덧셈과 곱셈(over modulo 2)에 대해 닫혀 있으며, 덧셈에 대한 항등원 및 역원이 각각 존재하고, 곱셈에 대한 항등원과 0이 아닌 원소에 대한 역원이 존재하며, 덧셈 및 곱셈에 대하여 교환, 결합 및 분배 법칙이 성립하는 집합을 뜻한다. 따라서, GF(2)란 이러한 성질을 만족하는 {0, 1}의 집합을 뜻한다. 그러므로 상기 도 5에 도시한 행렬에서 첫 번째 열에 해당하는 패리티 검사 방정식(parity check equation)에 의해 얻을 수 있는 첫 번째 패리티 심볼은 하기 <수학식 8>과 같다.In
그리고 상기 도 5의 행렬 구조에서 사선(diagonal line)과 옵셋 사선(offset diagonal line)에 존재하는 임의의 1에 대한 열 인덱스(column index)와 행 인덱스(row index)는 각각 하기 <수학식 9>와 같은 관계를 갖는다.In the matrix structure of FIG. 5, the column index and the row index of any 1 present in the diagonal line and the offset diagonal line are represented by
상기 <수학식 9>에 도시된 2개의 식을 이용하면, p
r-f 를 구할 시,
p
0 를 이용하여 하기 <수학식 10>과 같이 계산됨을 알 수 있다.Using two equations shown in
또한 상기 도 5에 도시한 바와 같이 패리티 검사 행렬이 이중 사선 매트릭스 구조를 가지므로, 이를 이용하면, 상기 <수학식 10>은 하기 <수학식 11>과 같이 변경이 가능하다.
In addition, since the parity check matrix has a double oblique matrix structure as shown in FIG. 5, using this,
이와 같이 상기 <수학식 11>에 의해 임의의 패리티 심볼 p r-if 를 얻을 수 있고, 상기 '(정리 1)'에 의해 r과 f가 서로 소이면, i가 증가함에 따라 (r-if ) (mod r)의 값은 1부터 r-1까지의 모든 값을 반드시, 오직 한 번만 갖게 된다. 이에 따라 r과 f가 서로 소이면 위의 과정을 통해 모든 패리티 심볼의 값을 구할 수 있게 된다. 그러므로, 이상에서 상술한 방법을 통해 상기 도 5와 같은 패리티 부분을 가지는 패리티 검사 매트릭스는 항상 선형 연산에 의해 간단한 부호화가 가능하게 된다. 도 6은 상기 도 5와 같은 부호화 과정에서 p 0 , p r-f , p r-2f , … 의 값들을 순차적으로 구하는 과정을 도시한 도면이다.Thus, if the parity symbol p r-if can be obtained by Equation (11), and r and f are small by '(theorem 1)', as i increases ( r-if ) ( The value of mod r ) must have all values from 1 to r -1 only once. Accordingly, if r and f are mutually small, all the parity symbols can be obtained through the above process. Therefore, through the above-described method, the parity check matrix having the parity portion as shown in FIG. 5 can always be simply encoded by linear operation. FIG. 6 shows p 0 , p rf , p r-2f ,... Is a diagram illustrating a process of sequentially obtaining the values of.
상기 도 6을 참조하여 간략히 살펴보면, 참조부호 601과 같이 제0열 제0행의 값으로부터 제0열의 제r-f행의 위치 값이 연결되어 있다. 그리고, 상기 제0열의 제r-f행의 위치 값은 참조부호 602와 같이 제r-f열의 제r-f행의 위치 값과 연결되어 있음을 알 수 있다. 이와 같이 상기 제1사선(610)과 제2사선의 제1부분 사선(620a)과 제2사선의 제2부분 사선(620b)의 영역에만 1이 위치한다. 그리고, 상기 사선들 중에서 첫 번째 열에는 1의 값이 하나만 존재하기 때문에 상기한 바와 같이 계속적으로 1의 값을 찾아 2차 함수를 풀어보면, 결과적으로 모든 값들을 찾을 수 있게 된다.Referring to FIG. 6, a position value of row r-f of
지금까지 설명한 일반화된 이중 사선 매트릭스 구조는 본 발명에서 정의하고 자 하는 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(parity check matrix) H의 패리티 부분의 서브 매트릭스(sub-matrix) H p 로 사용될 것이다. 이제 본 발명에서 정의하고자 하는 저밀도 패리티 검사 코드의 패리티 검사 매트릭스를 생성하는 방법에 관해 살펴보도록 한다.The generalized double diagonal matrix structure described so far will be used as a sub-matrix H p of the parity portion of the parity check matrix H of the low density parity check code defined in the present invention. Now, a method of generating a parity check matrix of a low density parity check code to be defined in the present invention will be described.
C. 패리티 검사 매트릭스 구조(Parity check matrix construction)C. Parity check matrix construction
그러면 이하에서는 A절에서 살핀 배열 코드 구조와, B절에서 살핀 일반화된 이중 사선 매트릭스 구조를 이용하여 본 발명에 따른 새로운 패리티 검사 매트릭스(parity check matrix) H를 생성하는 방법과, 그 구조에 대하여 설명하도록 한다. 이하에서 설명되는 패리티 검사 매트릭스는 A절에서 살핀, 배열 코드(array code) 구조를 기반으로 정의된 매트릭스 H
d 를 패리티 검사 매트릭스
H의 정보(information) 부분으로 정의한다. 그리고, B절에서 살핀 일반화된 이중 사선 매트릭스 H
p 를 상기 정보 부분 매트릭스 H의 패리티 부분으로 정의한다. 따라서 본 발명에서 설계하고자 하는 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스 H는 하기 <수학식 12>와 같은 구조를 가진다.Next, a method for generating a new parity check matrix H according to the present invention using a salping array code structure in Section A, a salping generalized double diagonal matrix structure in Section B, and a structure thereof will be described. Do it. The parity check matrix described below defines the matrix H d , which is defined based on the salping and array code structure in section A, as an information part of the parity check matrix H. In addition, the salping generalized double diagonal matrix H p in section B is defined as the parity portion of the information partial matrix H. Therefore, the parity check matrix H defining the low density parity check code to be designed in the present invention has a structure as shown in
상기 <수학식 12>에서 패리티 검사 매트릭스의 정보 부분 행렬 H
d 의 각 서브 매트릭스 열(column)들은 미리 정의된 분포도(degree distribution)에 따른 degree sequence D에 의해 정의되고, 각 서브 매트릭스 열(sub-matrix column)을 이루는 단위 서브 매트릭스 σij는 크기가 p인 pxp의 항등 매트릭스(identity matrix)를 서브 매트릭스 열 인덱스 i와 서브 매트릭스 행 인덱스 j의 곱인 ij만큼 열을 이동시킨(column shift) 주기적 순열 매트릭스(cyclic permutation matrix)이다. 이때 p는 항상 소수(prime number)이다. 그리고, H
p 는 H
d 의 구조와 일치시키기 위해 매트릭스 내에 존재하는 1과 0을 각각 pxp 매트릭스와 0 행렬로 'lifting'시킨다. In
그러면 이하에서 상기한 바와 같이 본 발명에 따른 저밀도 패리티 검사 코드를 생성하기 위한 과정들을 차례로 살피기로 한다.Then, as described above, the processes for generating the low density parity check code according to the present invention will be sequentially examined.
(가) 분포도와 패리티 검사 서브 매트릭스 (A) Distribution and parity check submatrix HH dd 구조(Degree distribution and Structure distribution and HH dd construction) construction)
리차드슨(Richardson) 등은 저밀도 패리티 코드를 정의하는 펙터 그래프(factor graph) 상에서 메시지 패싱 디코딩(message passing decoding)이 이루어질 때, sum-product algorithm에 의한 가변 노드와 검사 노드의 메시지 갱신(variable & check node message update) 과정과 이들의 반복 처리(iterative processing) 과정에 의한 메시지들의 변화를 그들의 확률적 분포(probabilistic distribution)의 변화를 통해 추적할 수 있음을 보였다. 그리고, 이러한 density evolution 방법을 통해 주어진 분포도(degree distribution)를 갖는 펙터 그래프(factor graph)로 정의되는 저밀도 패리티 코드의 평균 에러 확률(probability of error)이 0으로 수렴하는지의 여부를 결정할 수 있는 채널 파라미터 임계 값(channel parameter threshold)이 존재함을 보였다. 또한, 상기 채널 파라미터 임계 값보다 작은 채널 파라미터(channel parameter)에 대해서는 복호 과정에서 무한대의 반복(iteration)을 가정하였을 때 비트 에러 확률(probability of bit error)이 항상 0으로 수렴할 수 있음을 보였다. 따라서, 이러한 density evolution technique은 특정한 채널 환경에 대한 임계(threshold) 값을 개선시킬 수 있는 저밀도 패리티 코드의 분포도(degree distribution)를 최적화(optimize)할 수 있는 디자인 방법(design tool)으로 사용될 수 있다. 따라서, 저밀도 패리티 코드에 대한 최적화된 분포도(degree distribution)와 그때의 임계(threshold)값을 구하기 위해 많은 연구들이 수행되어 왔다.Richardson et al. Show that when message passing decoding is performed on a factor graph that defines a low density parity code, the variable and check nodes are updated by the sum-product algorithm. It has been shown that changes in messages due to message update and their iterative processing can be tracked through changes in their probabilistic distribution. And, through this density evolution method, a channel parameter that can determine whether or not the average probability of error of a low density parity code defined by a factor graph having a given distribution converges to zero. It is shown that there is a channel parameter threshold. In addition, it has been shown that the probability of bit error can always converge to 0 when assuming infinite iteration in the decoding process for a channel parameter smaller than the channel parameter threshold value. Therefore, this density evolution technique can be used as a design tool for optimizing the degree distribution of low density parity code that can improve a threshold value for a specific channel environment. Therefore, many studies have been conducted to obtain optimized distribution and threshold values for low density parity codes.
본 발명에서는 이미 정의된 최적화된 가변 노드 분포도(variable node degree distribution)를 본 발명에서 정의하고자 하는 패리티 검사 매트릭스(parity check matrix) H의 가변 노드 분포도(variable node degree distribution)로 근사화 시켜 사용하도록 한다. 이 때, degree 2인 가변 노드는 모두 H의 패리티(parity) 부분, 즉 H
p 의 각 열(column)로 할당하고, 그 이상의 degree를 갖는 가변 노드는 H의 정보(information) 부분, 즉 H
d 의 각 열(column)로 할당하도록 한다. 그리고, A 절에서 살핀 '배열 코드 구조'와 B 절에서 살핀 '일반화된 이중 대각선 매트릭스'의 서브 매트릭스 구조(sub-matrix construction)로부터 패리티 검사 매트릭스 H의 check node degree는 주어진 모든 1의 개수에 있어서 항상 최소화된 두 가지 또는 한 가지의 종류만을 갖게 된다.In the present invention, an optimized variable node degree distribution that is already defined is approximated to a variable node degree distribution of the parity check matrix H to be defined in the present invention. At this time,
이제 본 발명에서 정의하고자 하는 패리티 검사 매트릭스의 정보 부분 H
d 를 정의하기 위한 degree sequence를 정하도록 한다. 저밀도 패리티 검사 코드를 정의하는 펙터 그래프(factor graph) 상의 maximum variable node degree를 d
v 라 하면, 가변 노드 상에 존재하는 각 에지(edge)의 분포는 하기 <수학식 13>과 같은 다항식으로 도시할 수 있다.Now, to determine the degree sequence for defining the information portion H d of the parity check matrix to be defined in the present invention. If the maximum variable node degree on the factor graph that defines the low-density parity check code is d v , the distribution of each edge present on the variable node is represented by the polynomial shown in
상기 <수학식 13>에서 λi는 degree가 i인 가변 노드에 존재하는 에지(edge)의 비율을 나타낸다. 그리고, 주어진 λ(x)에 대해 펙터 그래프 상에서 degree가 j인 가변 노드의 비율 c
j 은 하기 <수학식 14>와 같이 표현될 수 있다.
In
상기와 같이 주어지는 <수학식 14>에서 구현을 고려하여 maximum variable node degree의 값이 15인 경우에 대하여 패리티 검사 매트릭스의 구성을 살펴보도록 한다. 저밀도 패리티 코드를 정의하는 펙터 그래프 상의 maximum variable node degree의 값이 15인 경우에 2진 입력 백색 가우시안 잡음을 가지는 채널(binary input additive white Gaussian noise(BI-AWGN) channel) 환경에서의 부호율(code rate) 1/2에 대한 최적의 분포도(degree distribution)는 density evolution에 의해 하기 <수학식 15>와 같음이 알려져 있다.Considering the implementation in
이때, 각 가변 노드(variable node)들의 에러 확률(probability of error)을 0으로 수렴하도록 하는 백색 가우시안 잡음 채널에서 최대 채널 파라미터 잡음 변화(channel parameter noise variance in AWGN channel) σ*는 0.9622이며, 이를 Eb/No으로 환산하면 0.3348 dB가 된다. 즉, 위와 같은 degree distribution을 갖는 펙터 그래프에 의해 정의되는 저밀도 패리티 코드는 무한 블록 크기(infinite block size), 무한 반복(infinite iteration)을 가정한 belief propagation decoding에 의해 Shannon의 제한 용량(capacity limit)에 0.3348 dB만큼의 근접한 성능을 보이게 된다. 이상의 설명에서와 같은 degree distribution을 갖는 펠터 그래프 상에서 각 degree를 갖는 가변 노드의 비율은 하기 <수학식 16>과 같다.In this case, the maximum channel parameter noise variance in AWGN channel σ * is 0.9622 in the white Gaussian noise channel that converges the probability of error of each variable node to 0, which is Eb. Converting to / No, this is 0.3348 dB. That is, the low density parity code defined by the factor graph having the degree distribution as described above is defined by Shannon's capacity limit by belief propagation decoding assuming infinite block size and infinite iteration. The performance is as close as 0.3348 dB. The ratio of the variable nodes having each degree on the felt graph having the same degree distribution as described above is expressed by
본 발명에서 정의하고자 하는 패리티 검사 매트릭스에서 degree 2인 가변 노 드는 항상 패리티 부분 H
p 에 할당되어야 하고, 정보 부분 H
d
에는 항상 degree 2 이외의 가변 노드만이 할당되어야 한다. 그리고, 정보 부분 H
d 의 각 서브 매트릭스 열(sub-matrix column) 내의 모든 열들은 동일한 열 가중치(column weight)를 갖도록 되어 있다. 그러므로, 패리티 검사 매트릭스 H의 펙터 그래프 상에서 각 degree를 갖는 가변 노드의 비율은 하기 <수학식 17>과 같이 근사화 된다.In the parity check matrix to be defined in the present invention, a variable node having a degree of 2 should always be assigned to the parity portion H p , and only a variable node other than
상기 <수학식 17>과 같은 가변 노드 비율을 이용하여 다시 degree distribution 다항식 λ(x)를 구하고, 이에 따른 degree distribution에 의해 정의되는 저밀도 패리티 코드의 AWGN에서 임계 값(threshold) σ*를 구하면 하기 <수학식 18>과 같다.The degree distribution polynomial λ (x) is obtained again using the variable node ratio as shown in
상기 <수학식 18>에 도시한 바와 같은 값은 부호화 율 1/2인 저밀도 패리티 코드에 해당하는 값이다. 상기한 값을 도출할 때, 해석 기술(analysis technique)로는 가우시안 근사 값(Gaussian approximation)에 의한 density evolution 방법을 사용하였고, 예측된 비트 오류 확률(estimated probability of bit error)이 10-6보 다 작으면 error free인 경우로 간주하여 계산된 값이다. 이를 이용하여 정보 부분 H
d 의 각 서브 매트릭스 열에 할당되는 degree sequence는 하기 <수학식 19>와 같이 정의될 수 있다.A value as shown in
본 발명에서는 배열 코드 구조를 설명한 A 절의 설명에서와 같이 패리티 검사 매트릭스 H의 정보 부분 H
d 는 상기 <수학식 18>에서와 같이 정의된 degree sequence에 따른 배열 코드 구조를 기반으로 하여 정의될 수 있다.In the present invention, as described in section A, which describes the array code structure, the information portion H d of the parity check matrix H may be defined based on the array code structure according to the degree sequence defined as in
도 7은 maximum variable node degree가 15인 경우, 전술한 A 절의 설명에서와 같은 방식으로 생성한 패리티 검사 매트릭스의 정보 부분 H d 의 일례를 도시한 도면이다. 상기 도 7에 도시한 바와 같은 매트릭스 구조에서 각 열 및 각 행은 서브 매트릭스 열 및 행을 의미한다. 또한 각 열 및 각 행에 해당하여 도시한 숫자들은 각 서브 매트릭스 열 및 행의 서브 매트릭스들의 순환 이동(cyclic shift)을 나타낸다. 그리고, 상기 각 숫자들은 pxp 서브 매트릭스로 구성되며, 상기 서브 매트릭스에서 p는 89인 경우이다. 따라서 상기한 바와 같이 생성된 정보 부분 Hd의 매트릭스는 (d v · p)x(d v · p) 매트릭스가 된다.FIG. 7 is a diagram showing an example of the information portion H d of the parity check matrix generated in the same manner as described in section A, above, when the maximum variable node degree is 15. FIG. In the matrix structure illustrated in FIG. 7, each column and each row refers to a submatrix column and row. In addition, the numbers shown for each column and each row indicate a cyclic shift of sub-matrixes of each sub-matrix column and row. Each of the numbers consists of a pxp submatrix, where p is 89 in the submatrix. Therefore, the matrix of the information portion H d generated as described above becomes a ( d v · p ) x ( d v · p ) matrix.
(나) 매트릭스 리프팅과 패리티 매트릭스 구조(Lifting and (B) Matrix Lifting and Parity Matrix Structures HH pp construction) construction)
일반적으로 매트릭스의 리프팅(lifging)은 임의의 위치에 0과 1을 가지는 매트릭스에서 대하여 서브 매트릭스 교체(sub-matrix replacement)에 의해 기본 매트릭스의 크기를 리프팅 하는 방법을 말한다. 그러면 이를 도 8을 참조하여 설명하기로 한다. 도 8은 임의의 4x4 매트릭스의 각 원소를 3x3 항등 매트릭스(identity matrix) 또는 3x3 0 매트릭스(matrix)로 대치하는 방식에 의해 기본 4x4 매트릭스를 12x12 매트릭스로 매트릭스 리프팅(lifting)시킨 행렬을 도시한 도면이다.In general, lifting of a matrix refers to a method of lifting the size of a base matrix by sub-matrix replacement for a matrix having zeros and ones at arbitrary positions. This will be described with reference to FIG. 8. FIG. 8 shows a matrix lifting matrix of a basic 4x4 matrix into a 12x12 matrix by replacing each element of an arbitrary 4x4 matrix with a 3x3 identity matrix or a
상기 도 8에 도시한 바와 같이 매트릭스의 리프팅은 0의 원소에 대하여는 리프팅하고자 하는 크기의 배수만큼 0의 원소만을 가진 정방행렬로 구성한다. 즉, 첫 번째 행에 대하여만 살펴보기로 한다. 첫 번째 행에 위치한 각 열들의 원소들은 {0, 0, 1, 0}이 되며, 그에 대하여는 각각 801, 802, 803, 804의 참조부호를 부여하였다. 상기 각 원소들 중 0의 값을 가지는 3개의 원소들(801, 802, 804)은 각각 3x3 매트릭스로 리프팅시켜 참조부호 801a, 802a, 804a로 리프팅 시켰다. 그리고, 1의 원소를 가지는 첫 번째 행의 원소(803)는 3x3의 크기를 가지는 항등 행렬로 리프팅 하였다. 이는 다른 열의 원소에 대하여도 동일하게 적용하여 구성한 것이다.As shown in FIG. 8, the matrix lifting consists of a square matrix having only zero elements by a multiple of the size to be lifted for the zero elements. In other words, let's look at the first line only. The elements of each column in the first row are {0, 0, 1, 0}, and the
위에서 설명한 바와 같이 매트릭스 리프팅(lifting)이란, 일반적으로 0과 1로 이루어진 기본 매트릭스(base matrix)의 각 원소들의 위치에 kxk 서브 매트릭스를 삽입하여 매트릭스의 크기를 확장하는 방법을 말한다. 이때, 삽입되는 kxk 매트릭스는 일반적으로 항등 매트릭스(identity matrix)의 각 열을 순환 이동(cyclic shift)한 순환 순열 매트릭스(cyclic permutation matrix)를 사용한다. As described above, matrix lifting refers to a method of expanding a matrix size by inserting a k x k sub-matrix at positions of elements of a base matrix composed of 0 and 1, in general. In this case, the inserted k x k matrix generally uses a cyclic permutation matrix in which each column of the identity matrix is cyclically shifted.
본 발명에서 정의하고자 하는 패리티 검사 매트릭스 H의 패리티 부분 H p 는 B 절에서 설명한 바와 같이 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix)이다. 또한 상기 C 절의 (가)에서 설명한 바와 같이 생성한 H d 가 pxp 서브 매트릭스들로 이루어져 있음을 고려하여, H p 또한 rx r의 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix)를 pxp 서브 매트릭스를 이용하여 리프팅(lifting)하여 구성하도록 한다.The parity portion H p of the parity check matrix H to be defined in the present invention is a generalized dual-diagonal matrix as described in section B. In addition, in consideration of the fact that H d generated as described in section (a) above consists of p x p sub-matrices, H p Also A generalized dual-diagonal matrix of r x r is constructed by lifting using a p x p submatrix.
도 9는 pxp 순환 치환 서브 매트릭스에 의한 매트릭스 리프팅(lifting)을 통해 구성한 패리티 매트릭스 H p 을 도시한 도면이다. 그러면 도 9를 참조하여 패리티 매트릭스 리프팅에 대하여 설명하도록 한다. 상기 순환 치환 서브 매트릭스에 의한 리프팅된 매트릭스는 저밀도 패리티 코드의 선형 시간 부호화(linear time encoding) 및 각 행들간의 선형 독립(linear independency)을 위해 의 첫 번째 행에 존재하는 1은 제거한다. 도 9와 같이 구성된 패리티 부분 H p 는 (rp )x(rp) 매트릭스가 되며, 각 서브 매트릭스 에서 j i 는 각 서브 매트릭스마다 할당된 순환 열 이동(cyclic column shift)을 위한 옵셋 값(offset value)이다. 그러면 이제 선형 연산에 의한 부호화가 가능하도록 하는 방법에 대해 살펴보도록 한다.FIG. 9 is a diagram illustrating a parity matrix H p configured through matrix lifting using a p x p cyclic substitution submatrix. Next, the parity matrix lifting will be described with reference to FIG. 9. The lifted matrix by the cyclic substitution submatrix is used for linear time encoding of low density parity code and linear independency between rows. The 1 present in the first row of is removed. Parity portion H p configured as shown in FIG. 9 becomes a ( rp ) x ( rp ) matrix, and each sub-matrix J i is an offset value for cyclic column shift allocated to each submatrix. Now, let's look at how to enable encoding by linear operation.
전술한 B 절(일반화된 이중 사선 매트릭스)에서 살핀 바를 도 9와 같이 리프팅(lifting)된 패리티 부분 H p 에 적용하면, r과 f가 서로 소일 때 r번의 연산에 의 해 패리티 부분 H p 의 각 서브 매트릭스 열(sub-matrix column)은 반드시, 오직 한 번씩만 선택됨을 알 수 있다. 그리고, 이 한 번의 선택 과정에서는 서브 매트릭스 열 내의 임의의 한 열에 해당하는 패리티 심볼을 구하는 연산을 수행할 수 있다. 따라서, 임의의 한 pxp 서브 매트릭스 의 모든 열에 해당하는 패리티 심볼들을 구하기 위해서는 rp 만큼의 연산 동안 p개의 열에 해당하는 패리티 심볼에 대한 연산이 반드시, 오직 한 번씩만 이루어져야 한다. 이제 이러한 조건이 만족되기 위한 서브 매트릭스의 옵셋 값(offset value)에 대한 조건을 살펴보도록 한다.When salpin in the above-described B section (the generalized dual-diagonal matrix) bar applied to the parity part H p lift (lifting) as shown in Figure 9, each of r, and when f is relatively prime to the parity part of the r single operation H p It can be seen that the sub-matrix column is selected only once. In this single selection process, an operation for obtaining a parity symbol corresponding to any one column in a submatrix column may be performed. Thus, any one p x p submatrix In order to obtain parity symbols corresponding to all columns of, operations on parity symbols corresponding to p columns must be performed only once for rp operations. Now look at the conditions for the offset value of the submatrix to satisfy these conditions.
상기 도 9와 같은 패리티 부분 H
p 의 매트릭스 구조에서 서선(diagonal line)에서 서브 매트릭스 행 인덱스(sub-matrix row index) i인 서브 매트릭스 내의 행 인덱스(row index) 와 열 인덱스(column index) 의 관계는 하기 <수학식 20>과 같이 정의된다.In the matrix structure of the parity portion H p as shown in FIG. 9, a row index in a sub-matrix which is a sub-matrix row index i at a diagonal line. And column index Is defined as in
또한 옵셋 사선(offset diagonal line)의 서브 매트릭스 행 인덱스(sub-matrix row index) i인 서브 매트릭스 내의 행 인덱스(row index) 와 열 인덱스(column index) 의 관계는 하기 <수학식 21>과 같이 정의된다.Also, the row index in the submatrix that is the sub-matrix row index i of the offset diagonal line And column index Is defined as in
그러면, 상기한 <수학식 20>과 <수학식 21>로부터 서브 매트릭스 행 인덱스 0인 서브 매트릭스(sub-matrix) 의 첫 번째 행으로부터 하기 <수학식 22>와 같이 패리티 심볼 의 값을 얻을 수 있다.Then, the sub-matrix that is the
이때, 상기 <수학식 22>에서 v0는 패리티 검사 매트릭스의 정보 부분 H
d
의 첫 번째 행으로부터 얻게 되는 partial check-sum value이다. 그리고, 열 인덱스가 j0일 때, 이와 동일한 열을 공유하는 옵셋 사선의 서브 매트릭스 내의 행 인덱스는 하기 <수학식 23>과 같이 도시할 수 있다.In
그리고, 이와 동일한 행 인덱스를 공유하는 사선의 서브 매트릭스 내의 열 인덱스는 하기 <수학식 24>와 같이 도시할 수 있다.In addition, the column indexes in the diagonal sub-matrix sharing the same row index may be shown as
상기 <수학식 23>과 <수학식 24>의 r과 f가 서로 소이면 이와 같은 과정의
r번 반복 동안 패리티 부분 H
p
내의 모든 서브 매트릭스들을 반드시, 오직 한 번만 선택할 수 있다. 그러므로, 상기와 같은 과정을 r번 반복하여 다시 얻게 되는 서브 매트릭스 내의 행 인덱스는 하기 <수학식 25>와 같이 도시할 수 있다.If r and f in
상기 <수학식 25>에서 다른 모든 서브 매트릭스의 열 인덱스로 리프팅하면, 임의의 r번의 연산을 통해 사선에 존재하는 서브 매트릭스 에 대해 업데이트 되는 열 인덱스의 변화량 x는 항상 하기 <수학식 26>과 같음을 알 수 있다.Lifting to the column indexes of all other sub-matrix in
정리 2(Theorem 2) : 임의의 소수(prime number) p에 의해 정의되는 유한 필드(Finite field) Fp = {0, 1, 2, …, p-1}의 0이 아닌 임의의 모든 원소는 항상 자기 자신에 대한 p번 또는 그 이하의 덧셈에 의해 Fp의 모든 원소를 반드시, 오직 한 번 생성할 수 있다. 이를 증명하기 위해 상기 유한 필드 Fp의 0이 아닌 임의의 원소 a에 대해 하기 <수학식 27>을 만족시키는 p보다 작은 k가 존재한다면 p
가 소수(prime number)라는 가정에 위배된다. 그러므로, 하기 <수학식 27>을 만족하는 k의 최소 값은 항상 p이다. Theorem 2 : Finite field F p = {0, 1, 2,... Defined by an arbitrary prime number p . , any non-zero element of p -1} can always produce all elements of F p only once by p or less additions to itself. To prove this, if k is smaller than p that satisfies
따라서, 유한 필드 Fp의 0이 아닌 임의의 원소 a는 p번 또는 그 이하의 덧셈 연산에 의해 Fp의 모든 원소를 생성할 수 있게 된다. 정리 2로부터 r번의 선형 연산에 의해 업데이트 되는 임의의 서브 매트릭스 의 열 인덱스 변화량이 0이 아니면, 이러한 r번의 선형 연산을 모두 p번 반복하면 각 서브 매트릭스들의 p개의 열 인덱스에 대한 패리티 심볼을 생성할 수 있다. 따라서 rp개의 모든 패리티 심볼을 생성할 수 있게 된다. 즉, 하기 <수학식 28>과 같은 조건을 만족하게 된다.Therefore, any non-zero element a of the finite field F p can generate all elements of F p by an addition operation of p times or less. Any submatrix updated by
상기 <수학식 28>과 같은 r번의 연산을 p번 반복하여 서브 매트릭스 내의 모든 열에 해당하는 패리티 심볼을 생성할 수 있게 된다. 아울러, 사선상에 존재하는 나머지 (r-1)개의 각 서브 매트릭스 내의 임의의 한 열에 해당하는 패리티 심볼은 위 r번의 연산 동안 하나씩 생성될 수 있게 된다. 따라서, 다음과 같은 rp번의 선형 연산에 의해 rp개의 서로 다른 열 인덱스를 갖는 패리티 심볼을 반드시, 오직 한 번 생성할 수 있게 됨을 알 수 있다.By repeating r operations as shown in Equation 28 p times, parity symbols corresponding to all columns in the submatrix can be generated. In addition, parity symbols corresponding to any one column in each of the remaining ( r -1) sub-matrix lines on the diagonal line may be generated one by one during the above r operations. Accordingly, it can be seen that a parity symbol having rp different column indices can be generated only once by the following rp linear operations.
이상에서 설명한 방법에 의거하여 패리티 부분 H p 의 매트릭스를 생성하는 과정을 도 10을 참조하여 설명하도록 한다. 도 10은 본 발명의 바람직한 실시 예에 따라 패리티 부분의 매트릭스를 생성하기 위한 흐름도이다.A process of generating a matrix of the parity portion H p based on the method described above will be described with reference to FIG. 10. 10 is a flowchart for generating a matrix of parity parts according to a preferred embodiment of the present invention.
패리티 부분의 매트릭스를 생성하기 위해 1000단계에서 패리티 심볼 계산 인 덱스(parity symbol calculation index) n을 0으로 한다. 그런 후 1002단계로 진행하여 서브 매트릭스 열 인덱스가 0인 서브 매트릭스 상의 첫 번째 열에 대하여 정보 부분 H
d 의 매트릭스 구성에 따라 정보 심볼의 합(information symbol sum) v
0를 구하고, 해당 서브 매트릭스 상의 첫 번째 행에 대한 패리티 심볼 을 v0로 한다. 그리고, 1004단계로 진행하여 패리티 부분 H
p 의 사선상에서 서브 매트릭스 열 인덱스 0인 서브 매트릭스 상에 존재하는 패리티 심볼에 대한 열 인덱스 를 j0로 초기화 한다.In order to generate a matrix of parity parts, the parity symbol calculation index n is set to 0 in
이와 같이 행의 첫 번째 행에 대하여 정보 부분 H
d 의 매트릭스 구성에 따라 정보 심볼의 합 v0을 계산하여 첫 번째 행에 대한 패리티 심볼 를 결정하고, 열 인덱스를 초기화 한 후에 1006단계로 진행한다. 1006단계로 진행하면, 임의의 열 인덱스 에 대하여, 이와 동일한 열을 공유하는 옵셋 사선(offset diagonal line)에 존재하는 서브 매트릭스 내의 행 인덱스 을 하기 <수학식 29>와 같이 구한다.In this way, the sum of information symbols v 0 is calculated according to the matrix configuration of the information portion H d for the first row of the row, and thus the parity symbol for the first row. Next, after initializing the column index, go to
그런 후, 옵셋 사선상의 행 인덱스 와 동일한 행 인덱스를 갖는 사선 상에 존재하는 서브 매트릭스 내의 열 인덱스 를 하기 <수학식 30>과 같은 식으로 계산한다.Then, the row diagonal along the offset diagonal Column index in a submatrix that exists on an oblique line with a row index equal to Calculate as shown in <
그리고, 1010단계로 진행하여 서브 매트릭스 행 인덱스 i+(r-f)인 서브 매트릭스 내의 행 인덱스 인 행에 존재하는 정보 심볼의 합(sum) 를 구한다.In
그리고, 행 인덱스 에 해당하는 패리티 심볼 을 하기 <수학식 31>과 같은 식을 이용하여 계산한다.And row index Parity symbol It is calculated using the equation as shown in
그런 후 1014단계로 진행하여 상기 n을 1만큼 증가시킨다. 그리고, 1016단계로 진행하여 서브 매트릭스 행 인덱스 i를 하기 <수학식 32>와 같이 갱신(update)한다.Thereafter, the process proceeds to step 1014, where n is increased by one. In
그리고, 1018단계로 진행하여, 상기 n이 rp인가를 검사한다. 상기 1018단계의 검사는 부호화가 완료되었는가를 검사하는 것이다. 상기 1018단계의 검사결과 n 이 rp인 경우 부호화가 완료되었으므로 상기 루틴을 중지한다. 그러나, 1018단계의 검사결과 n이 rp가 아닌 경우 1006단계로 진행하여 그 이하 과정을 반복함으로써 부호화를 계속 수행한다.In step 1018, n is checked for rp application. The check in step 1018 is to check whether the encoding is completed. When n is rp in step 1018, the routine is stopped because encoding is completed. However, if the check result n of step 1018 is not rp , the process proceeds to step 1006 and repeats the following process to continue the encoding.
이상의 과정에서 주의할 사항은 모든 인덱스 연산 - 서브 매트릭스 행 인덱스(sub-matrix row index), 행 인덱스(row index) - 은 모듈러(modulo) p 연산을 의미하며, 인덱스 연산 과정의 첨자에 대한 연산 또한 모듈러 p 연산이라는 점이다. 그리고, 패리티 심볼 또는 정보 심볼을 구하는 과정의 덧셈은 모듈러 2 연산이다. 이와 같은 조건을 만족하도록 하면서 생성한 H p 의 한 예를 도시하면, 도 11과 같이 도시할 수 있다. 상기 도 11에 도시한 각 숫자들의 값들은 서브 매트릭스들의 옵셋 값(offset value)을 뜻한다.Note that all index operations-sub-matrix row index, row index-mean modulo p operation, and subscript operation of index operation Is a modular p operation. The addition of the process of obtaining the parity symbol or the information symbol is a modular two operation. An example of H p generated while satisfying such a condition may be illustrated in FIG. 11. The values of the numbers shown in FIG. 11 represent offset values of the sub matrices.
(다) 저밀도 패리티 코드의 전제적 구조(Overall construction of (C) the overall construction of low density parity codes; HH ))
본 발명에서 정의하고자 하는 저밀도 패리티 코드에 대한 패리티 검사 매트릭스 H는 시스테메틱 부호화(systematic encoding)를 위해 매트릭스를 정보 부분 H d 와, 패리티 부분 H p 으로 나누고 이들을 결합(concatenation)시켜 정의한다. 정보 부분 H d 와 패리티 부분 H p 의 생성은 각각 (가) 절과 (나) 절에서 설명한 방식에 의해 이루어지고, 생성된 정보 부분 H d 와 패리티 부분 H p 는 각각 (dv·p)x(dv·p), (rp)x(rp) 매트릭스가 된다. 이 때, d v 는 비정규 저밀도 패리티 코드 상에서 존재하는 maximum variable node degree이며, p는 서브 매트릭스의 차원(dimension), r은 패리티 부분 Hp를 리프팅(lifting)시키기 전의 기본 매트릭스의 차원(dimension)이다. 따라서, 결합(concatenation)을 위해서는 r = d v 이어야 한다.The parity check matrix H for the low density parity code to be defined in the present invention is defined by dividing the matrix into an information part H d and a parity part H p and concatenating them for systematic encoding. Generation of the information part H d and the parity part H p is made by the method described in (a) section and (b) section, respectively, the generated information part H d and the parity part H p are each (d v · p) x It is a (d v · p), ( rp) x (rp) matrix. Where d v is the maximum variable node degree that exists on an irregular low density parity code, p is the dimension of the submatrix, and r is the dimension of the base matrix before lifting the parity portion H p . . Therefore, r = d v for concatenation.
각각의 매트릭스 정보 부분 H
d , 패리티 부분 H
p
내부에는 길이가 4인 싸이클(cycle)이 존재하지 않음을 쉽게 알 수 있다. 또한, 패리티 부분 H
p 의 사선 옵셋 f를 r/2에 가까운 값으로 정하면, 열 가중치(column weight)가 r/2보다 작은 정보 부분 H
d 의 서브 매트릭스 열과 패리티 부분 H
p 의 임의의 열 사이에도 길이가 4인 싸이클이 존재하지 않음을 쉽게 알 수 있다. 다만, 정보 부분 H
d 에서 maximum variable node degree를 가중치로 갖는 열들의 경우에는 패리티 부분 H
p 의 열들과 길이가 4인 싸이클이 존재할 가능성이 있다. 이는 패리티 부분 H
p 의 서브 매트릭스 옵셋(sub-matrix offset) 값을 적절히 선택하면 쉽게 제거하여 전체 패리티 검사 매트릭스 H에 길이가 4인 싸이클이 존재하지 않도록 할 수 있다.
Each matrix information part H d , parity part H p
It is easy to see that there are no cycles of
2. 저밀도 패리티 코드의 성능(Performance of LDPC code)2. Performance of LDPC code
지금까지 선형 연산에 의해 시스테메틱 부호화(systematic encoding)가 쉽게 이루어 질 수 있는 부호율(rate) 1/2 비정규 저밀도 패리티 코드를 정의하기 위한 패리티 검사 매트릭스의 구조에 관하여 살펴보았다. 1장에서 정의한 패리티 검사 매트릭스는 주어진 정보 심볼에 따라 코드워드(codeword)의 패리티 심볼을 생성하기 위해 매트릭스를 정보 부분과 패리티 부분으로 나누어 생각하였다. 그리고, 정 보 부분의 행렬은 배열 코드(array code) 구조를 기반으로 한 매트릭스 구조에 각 열의 가중치가 가변 노드의 optimum irregular degree distribution에 근사한 degree를 갖도록 구성하였으며, 패리티 부분의 행렬은 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix) 구조를 임의의 옵셋(random offset)을 갖는 서브 매트릭스를 이용하여 리프팅시켜 구성하였다. 이때, degree가 2인 가변 노드는 항상 패리티 부분의 열로 할당되도록 하였다.So far, the structure of a parity check matrix for defining a
이제 이와 같이 정의한 패리티 검사 매트릭스에 의해 구성되는 저밀도 패리티 검사 코드의 성능을 살펴보도록 한다. 이를 위해 저밀도 패리티 검사 코드의 성능을 평가하기 위한 복호화 알고리즘(decoding algorithm) 및 실험 환경을 먼저 설명하도록 한다.
Now, let's take a look at the performance of the low-density parity check code formed by the parity check matrix defined above. To this end, a decoding algorithm and an experimental environment for evaluating the performance of the low density parity check code will be described first.
A. 반복적 신뢰 증식 복호(Iterative belief propagation decoding)A. Iterative belief propagation decoding
MxN 패리티 검사 매트릭스(parity check matrix)에 의해 정의되는 저밀도 패리티 검사 코드는 M개의 검사 노드와 N개의 가변 노드에 의해 구성되는 펙터 그래프(factor graph)에 의해 표현될 수 있다. 그리고, degree가 d c 인 검사 노드와, degree가 d v 인 가변 노드에서의 메시지 갱신(message update) 과정을 로그 도메인(log-domain)에서 요약하면 검사 노드의 메시지 갱신은 하기 <수학식 33>과 같이 도시할 수 있으며, 가변 노드의 메시지 갱신은 하기 <수학식 34>와 같이 도시할 수 있고, 로그 우도율(LLR : Log Likelihood Ratio)의 갱신을 하기 <수학식 35> 와 같이 도시할 수 있다. The low density parity check code defined by the MxN parity check matrix may be represented by a factor graph composed of M check nodes and N variable nodes. And degree is d c Inspection node with degree d v If the message update process of the variable node in the log-domain is summarized, the message update of the test node may be shown as in
상기 <수학식 33>의 은 준 반복 복호 과정에서 j 번째 반복 복호 과정에서 얻게 되는 값으로 검사 노드 m에서 변수 노드 n으로 전달하는 메시지이다. 그리고, 는 j 번째 반복 복호 과정에서 변수 노드 I로부터 검사 노드 m으로 전달되는 메시지이다. 이때, i 는 검사 노드 m에 연결된 변수 노드들을 0부터 까지 재 정렬한 값이다. 따라서 i 가 0인 경우에는 변수 노드 n을 의미한다.Of
상기 <수학식 34>에서 은 j 번째 반복 복호 과정에서 얻게 되는 값으로 변수 노드 n에서 검사 노드 m으로 전달하는 메시지이다. 이때 은 j 번째 반복 과정에서 검사 노드 i로부터 변수 노드 n으로 전달되는 메시지이며, i는 변수 노드 n에 연결된 검사 노드들을 0부터 까지 재 정렬한 값이다. 따라서 i가 0 인 경우에는 검사 노드 m을 의미한다.In
상기 <수학식 35>에서 은 j번째 반복 복호 과정에서 변수 노드 n에 정의되는 LLR 값이다.In
그러면 상기 <수학식 33> 내지 상기 <수학식 35>의 과정을 이용하여 반복적 신뢰 증식 복호 과정(iterative belief propagation decoding)을 설명하기로 한다. 도 12는 상기 <수학식 33> 내지 <수학식 35>를 이용한 반복적 신뢰 증식 복호 과정의 흐름도이다.Next, iterative belief propagation decoding will be described using the processes of
도 12는 수신기의 입장에서 수신된 메시지를 복호하는 과정이다. 따라서 수신된 메시지에 대한 변수 노드 n의 초기 메시지는 수신 부호어의 n번째 심볼의 채널 신뢰도(channel reliability)로 정의하며, 이를 수학식으로 도시하면 하기 <수학식 36>과 같이 도시할 수 있다.12 is a process of decoding a message received from the point of view of the receiver. Therefore, the initial message of the variable node n for the received message is defined as channel reliability of the nth symbol of the received codeword, which can be expressed as
상기 <수학식 36>에서 은 최초 정의되는 변수 노드 메시지의 초기 값이고, 은 최초 정의되는 변수 노드에 대한 초기 LLR 값이다. 이와 같이 메시지 갱 신 시에 1200단계에서 상기 <수학식 36>과 같이 수신된 부호어의 n번째 심볼의 채널 신뢰도로 정의한다. 또한 반복 횟수 카운터를 리셋한다. 그런 후 1202단계로 진행하여 검사 노드의 메시지를 갱신한다. 이러한 갱신은 상술한 <수학식 33>과 같은 방법으로 갱신을 수행할 수 있다. 그리고, 1204단계로 진행하여 가변 노드와 로그 우도율을 갱신한다. 상기 가변 노드의 메시지 갱신은 상기 <수학식 34>와 같은 방법으로 갱신을 수행하며, 로그 우도율의 갱신은 <수학식 35>와 같은 방법을 통해 갱신한다.In
상기 과정을 통해 검사 노드, 가변 노드 및 로그 우도율이 모두 갱신된 이후에 1206단계로 진행하여 상기 갱신된 로그 우도율의 값을 경판정(Hard decision)한다. 그리고 1208단계로 진행하여 경판정된 값을 바탕으로 수신된 메시지에 대하여 패리티 검사를 수행한다. 상기 패리티 검사 결과가 0의 값을 가지는 경우 복호가 성공적으로 수행된 것이므로, 1216단계로 복호를 중단한다. 그러나, 패리티 검사 결과 0의 값을 가지지 않는 경우 1210단계로 진행하여 미리 결정된 횟수만큼 반복이 이루어졌는가를 검사한다. 상기 1210단계의 검사결과 미리 결정된 횟수만큼 반복이 이루어진 경우 더 이상 복호를 수행하여도 성공할 확률이 적은 경우이므로, 1214단계로 진행하여 복호 실패 처리를 수행한다. 그러나 1210단계의 검사결과 미리 결정된 횟수만큼 반복이 이루어지지 않은 경우 1212단계로 진행하여 상기 반복 카운터를 1 증가시키고, 1202단계로 진행한다.After all of the check node, the variable node, and the log likelihood are updated through the above procedure, the process proceeds to step 1206 to hard determine the value of the updated log likelihood. In
B. 시뮬레이션 환경(Simulation environment)B. Simulation environment
본 발명에서 정의한 패리티 검사 매트릭스에 의해 구성되는 저밀도 패리티 검사 코드의 성능을 평가하기 위한 실험 환경은 하기 <표 1>과 같은 환경에서 수행하였다.An experimental environment for evaluating the performance of the low density parity check code formed by the parity check matrix defined in the present invention was performed in the environment as shown in Table 1 below.
또한 본 발명에서는 논의의 편의를 위해 저밀도 패리티 코드의 부호율을 1/2로 한정하였다. 하지만, 보다 다양한 부호율을 지원하기 위한 저밀도 패리티 코드의 패리티 검사 매트릭스 디자인(parity check matrix design)은 본 발명에 정의된 방식을 부호율에 맞추어 리프팅 하는 방식으로 논의될 수 있을 것이다. 그리고, 본 발명에서 정의한 패리티 검사 매트릭스에 의한 저밀도 패리티 코드의 펙터 그래프상에서 maximum variable node degree는 15로 정하였는데, 이는 우수한 성능을 얻을 수 있는 동시에 구현상에서 하드웨어의 크기(H/W size)가 커지지 않도록 하기 위함이다. 패리티 부분 H
p 매트릭스에서 옵셋(offset) f는 7로 정하였다. 이와 같은 옵셋을 정한 이유는, 본 발명의 C절의 (다)에서 설명한 바와 같이 길이가 4인 싸이클을 패리티 검사 매트릭스 내에서 쉽게 없애기 위함이다. 본 발명에서 실험한 저밀도 패리티 검사 코드의 프레임 크기(frame size)는 cdma2000 1xEV-DV 표준(standard)에 명시된 부호화 패킷(encoder packet : EP) 크기와 유사하게 설정하여 cdma2000 1xEV-DV 표준에서 현재 사용되고 있는 터보 복호기의 성능과 비교하 도록 하였다. 이때, 성능 비교를 위한 터보 코드의 복호 과정에서는 로그-맵 알고리즘(Log-MAP algorithm)을 사용하였고, 최대 반복 복호 회수는 8회로 제한하였다.Also, in the present invention, for convenience of discussion, the code rate of the low density parity code is limited to 1/2. However, the parity check matrix design of the low density parity code to support more various code rates may be discussed by lifting the scheme defined in the present invention according to the code rate. In addition, the maximum variable node degree is set to 15 on the factor graph of the low density parity code based on the parity check matrix defined in the present invention, which is excellent in performance and does not increase the hardware size (H / W size) in the implementation. To do this. The offset f is set to 7 in the parity partial H p matrix. The reason why such an offset is defined is that the cycle of
한편, 저밀도 패리티 검사 코드의 반복적 신뢰 증식 복호(iterative belief propagation decoder)의 최대 반복 횟수는 160회로 정하였는데, 이는 일반적으로 density evolution 기법 상에서 비정규 저밀도 패리티 검사 코드의 수렴 속도가 비교적 늦은 사실을 감안한 것이다. 그리고, 복호기(decoder)에 관한 실험은 extrinsic & 로그 우도율 정보(LLR information)를 실제 값(real value)으로 표현하는 부동 소수점 시뮬레이션(floating point simulation)을 수행하였다. 검사 노드의 갱신 과정에서 함수의 오버 플로우(overflow)를 방지하기 위해 |x|<10-8인 x에 대해 의 값을 20으로 제한하였다. 저밀도 패리티 검사 코드의 복호기 상에서는 매 반복(iteration)마다 패리티 검사를 수행하여 stopping criterion으로 삼고 패리티 검사에서 오류가 검출되지 않았으나, 실제로 오류가 발생한 경우에는 비검출 오류(undetected error)가 발생한 프레임(frame)으로 분류하였다. 마지막으로 본 발명에서 설계한 저밀도 패리티 검사 코드의 성능을 평가하는 measure로는 프레임 오류율(frame error rate)과 비트 오류율(bit error rate)을 사용하였다. 이때 프레임/비트 오류(frame/bit error)란 정보 심볼에 오류가 발생한 경우만을 고려하였다. 이제 위에서 제시한 실험 환경에서 실험한 저밀도 패리티 검사 코드의 성능을 보이도록 한다.
On the other hand, the maximum number of iterations of the iterative belief propagation decoder of the low density parity check code is set to 160. This is in consideration of the fact that the convergence rate of the irregular low density parity check code is relatively slow in the density evolution technique. In addition, an experiment on a decoder performed a floating point simulation in which extrinsic & log likelihood ratio information (LLR information) is expressed as a real value. During the update of the check node For x with | x | <10 -8 to avoid overflow of the function The value of is limited to 20. On the decoder of the low-density parity check code, parity check is performed at every iteration and used as stopping criterion, and no error is detected in the parity check. However, if an error actually occurs, a frame in which an undetected error occurs is generated. Classified as Finally, a frame error rate and a bit error rate were used as a measure for evaluating the performance of the low density parity check code designed in the present invention. In this case, only a case in which an error occurs in an information symbol is referred to as a frame / bit error. Now we show the performance of the low density parity check code tested in the experimental environment presented above.
C. 시뮬레이션 결과들(Simulation results)C. Simulation results
도 13a는 n = 870, p = 29인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면이며, 도 13b는 n = 870, p = 29인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 13c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.FIG. 13A is a diagram illustrating a matrix of information parts Hd when n = 870 and p = 29 as an example, and FIG. 13B is a diagram illustrating a matrix of parity parts Hp when n = 870 and p = 29 as an example. 13C is a graph of a simulation result comparing the performance of a low density parity check code and a turbo code.
상기 도 13a와 도 13b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다. 그러면 상기 도 13c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화 방법의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷(EP) 크기가 408이고, 부호화율(code rate)이 1/2인 경우의 성능을 함께 나타내었다. 도 13c에서 보는 바와 같이 블록 크기(block size)가 작은 경우 cdma2000 1xEV-DV 표준에서 사용되는 터보 부호(turbo code)의 성능이 본 발명에서 제안한 저밀도 패리티 검사 코드의 성능보다 프레임 에러율(FER) 및 비트 에러율(BER) 모두 약간 우수함을 알 수 있다. 이는 본 발명에서 제안한 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스 구조가 블록 크기가 작은 코드워드(codeword)의 복호 성능 면에서는 최적화된 구조가 아님을 나타내고 있는 것이다. 즉, 저밀도 패리티 검사 코드의 부호화 블록 크기가 작은 경우, 기존에 알려진 터보 부호의 성능과 비교하여 저밀도 패리티 검사 코드가 우수한 성능을 나타내기 위해서는 패리티 검사 매트릭스에 대한 최적화 작업이 보다 더 수행되어야 함을 나타낸다고 할 수 있다. 그러나, 블록 크기가 큰 코드워 드의 복호 성능면에서는 터보 부호보다 성능 개선 효과가 있음을 확인할 수 있다.The matrix of the information part and the matrix of the parity part shown in FIGS. 13A and 13B are constructed according to the present invention described above. In practice, the two matrices are combined to perform encoding. Next, the conditions in the case of showing the performance as shown in FIG. 13C will be described. To compare the performance of the two coding methods, the performance of the case where the coded packet (EP) size of the cdma2000 1xEV-DV standard is 408 and the code rate is 1/2 is also shown. As shown in FIG. 13C, when the block size is small, the performance of the turbo code used in the cdma2000 1xEV-DV standard is higher than the performance of the low density parity check code proposed by the present invention. It can be seen that both error rate (BER) is slightly superior. This indicates that the parity check matrix structure that defines the low density parity check code proposed by the present invention is not an optimized structure in terms of decoding performance of a codeword having a small block size. That is, when the coding block size of the low density parity check code is small, it indicates that the optimization of the parity check matrix should be further performed in order to show the excellent performance of the low density parity check code compared to the performance of the known turbo code. can do. However, it can be seen that the decoding performance of a codeword with a large block size is more effective than the turbo code.
하기 <표 2>는 n=870인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 주어진 저밀도 패리티 검사 코드에 대해 최대 160회의 반복 복호를 수행하지만, 실제 복호 결과는 20회 이내에서 높은 SNR을 고려하면 10회 이내의 반복 복호만으로 충분한 성능을 얻을 수 있음을 나타낸다.Table 2 below shows the average number of repeated decoding for each Eb / No when n = 870. Although a maximum of 160 iterative decodings are performed for a given low density parity check code, the actual decoding result indicates that sufficient performance can be obtained by only 10 iterative decodings considering high SNR within 20 times.
도 14a는 n = 1590, p = 53인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면이며, 도 14b는 n = 1590, p = 53인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 14c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.14A is a diagram illustrating a matrix of information portions Hd when n = 1590 and p = 53 as an example, and FIG. 14B is a diagram illustrating a matrix of parity portions Hp when n = 1590 and p = 53 as an example. 14C is a graph of a simulation result comparing the performance of a low density parity check code and a turbo code.
상기 도 14a와 도 14b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다. The matrix of the information part and the matrix of the parity part shown in FIGS. 14A and 14B are constructed according to the present invention described above. In practice, the two matrices are combined to perform encoding.
그러면 상기 도 14c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화 방법의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷의 크기가 792이고, 부호율이 1/2인 경우의 성능을 함께 나타내었다. 상기 도 14c를 살펴보면, 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 프 레임 오류율은 기존에 사용되는 터보 코드의 그것과 거의 비슷한 성능을 보인다. 하지만, 비트 오류율은 터보 코드에 비해 여전히 좋지 않은 성능을 보이고 있다. 이는 터보 코드의 오류가 발생한 프레임에 존재하는 비트 오류의 비율이 저밀도 패리티 검사 코드에 비해 낮기 때문이다. 즉, 터보 코드는 동일한 Eb/No에서 BER/FER의 비율이 저밀도 패리티 코드보다 낮은 값을 갖게 되며, 이와 같이 BER/FER의 비율이 낮은 경우에는 오류가 발생한 프레임에 존재하는 평균 비트 오류의 개수가 저밀도 패리티 검사 코드에 비해 적음을 뜻한다. 하지만, 복합 자동 재전송(Hybrid ARQ)을 적용하는 실제 무선 통신 시스템에서는 비트 오류율보다 프레임 오류율의 성능이 우수한 것이 보다 유리하기 때문에 도 14c에 따라 n = 1590인 경우에 본 발명의 저밀도 패리티 검사 코드는 cdma2000 1xEV-DV 표준의 터보 부호에 필적하는 성능을 갖는다고 볼 수 있다.Next, the conditions in the case of showing the performance as shown in FIG. 14C will be described. To compare the performance of the two coding methods, the performance of the case where the coded packet size of the cdma2000 1xEV-DV standard is 792 and the code rate is 1/2 is also shown. Referring to FIG. 14C, as the block size of the low density parity check code increases, the frame error rate shows a performance almost similar to that of the conventional turbo code. However, the bit error rate still shows poor performance compared to turbo code. This is because the rate of bit errors present in the frame where the error of the turbo code is generated is lower than that of the low density parity check code. That is, the turbo code has a lower BER / FER ratio than the low-density parity code at the same Eb / No. If the BER / FER ratio is low, the average number of bit errors in the frame where the error occurs It is less than the low density parity check code. However, since the performance of the frame error rate is better than that of the bit error rate in an actual wireless communication system employing hybrid ARQ, the low density parity check code of the present invention is cdma2000 according to FIG. 14C. It can be seen that the performance is comparable to the turbo code of the 1xEV-DV standard.
하기 <표 3>은 n = 1590인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 블록 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 2>의 경우에 비해 다소 증가했음을 알 수 있다. 하지만, 충분히 높은 SNR에서는 20회 안팎의 반복 복호만으로도 충분한 성능을 얻을 수 있음을 알 수 있다.Table 3 below shows the average number of repeated decoding for each Eb / No when n = 1590. As the block size increases, it can be seen that the average number of iterative decodings has increased slightly compared to the case of <Table 2>. However, at a sufficiently high SNR, it can be seen that only 20 times of repetitive decoding can achieve sufficient performance.
도 15a는 n = 3090, p = 103인 경우 정보 부분 Hd의 매트릭스를 예로서 도시 한 도면이며, 도 15b는 n = 3090, p = 103인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 15c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.FIG. 15A is a diagram illustrating a matrix of information portions Hd when n = 3090 and p = 103 as an example, and FIG. 15B is a diagram illustrating a matrix of parity portions Hp when n = 3090 and p = 103 as an example. 15C is a graph of a simulation result comparing the performance of a low density parity check code and a turbo code.
상기 도 15a와 도 15b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다. The matrix of the information part and the matrix of the parity part shown in FIGS. 15A and 15B are constructed according to the present invention described above. In practice, the two matrices are combined to perform encoding.
그러면 상기 도 15c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷 크기가 1560이고, 부호화 율이 1/2인 경우의 성능을 함께 나타내었다. 상기 도 15c는 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 프레임 에러율이 비슷한 프레임 크기의 터보 부호에 비해 더 나은 성능을 보이고 있음을 나타내고 있다. 비트 에러율은 도 14c와 마찬가지로 터보 부호에 비해 여전히 좋지 않은 성능을 보이고 있으나, 그 차이는 많이 줄어들어 터보 부호의 성능에 매우 근접하고 있음을 보이고 있다.Next, the conditions in the case of showing the performance as shown in FIG. 15C will be described. To compare the performance of the two encodings, the performance of the case where the encoding packet size of the cdma2000 1xEV-DV standard is 1560 and the encoding rate is 1/2 is also shown. As shown in FIG. 15C, as the block size of the low density parity check code increases, the frame error rate is better than that of a turbo code having a similar frame size. Although the bit error rate is still poor performance compared to the turbo code as in Figure 14c, the difference is much reduced, showing that the performance is very close to the turbo code performance.
하기 <표 4>는 n = 3090인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 블록의 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 2>의 경우에 비해 다소 증가했음을 알 수 있다. 하지만, 충분히 높은 SNR에서는 20회 안팎의 반복 복호만으로도 충분한 성능을 얻을 수 있음을 알 수 있다.Table 4 below shows the average number of times of repeated decoding according to each Eb / No when n = 3090. As the size of the block increases, it can be seen that the average number of iterative decodings has increased slightly compared to the case of <Table 2>. However, at a sufficiently high SNR, it can be seen that only 20 times of repetitive decoding can achieve sufficient performance.
도 16a는 n = 7710, p = 257인 경우 정보 부분 H d 의 매트릭스를 예로서 도시한 도면이며, 도 16b는 n = 7710, p = 257인 경우 패리티 부분 H p 의 매트릭스를 예로서 도시한 도면이고, 도 16c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이며, 도 16d는 저밀도 패리티 검사 코드의 반복 횟수 변화에 따른 시뮬레이션 결과 그레프이다.FIG. 16A illustrates a matrix of the information portion H d when n = 7710 and p = 257 as an example, and FIG. 16B illustrates a matrix of the parity portion H p when n = 7710 and p = 257 as an example. FIG. 16C is a graph showing a simulation result comparing the performance of the low density parity check code and the turbo code, and FIG. 16D is a graph of the simulation result according to the change in the number of repetitions of the low density parity check code.
상기 도 16a와 도 16b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다. The matrix of the information part and the matrix of the parity part shown in FIGS. 16A and 16B are constructed according to the present invention described above. In practice, the two matrices are combined to perform encoding.
그러면 상기 도 16c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷의 크기가 3864이고, 부호율이 1/2인 경우의 성능을 함께 나타내었다. 도 16c는 저밀도 패리티 검사 코드의 블록 크기가 매우 큰 경우에는 비슷한 프레임 크기의 터보 코드에 비해 매우 우수한 성능을 보이고 있음을 나타내고 있다. 특히, cdma2000 1xEV-DV 표준에서 사용되고 있는 프레임 길이가 3864인 터보 부호는 높은(high) 신호대 잡음비(SNR)에서 프레임 에러율(frame error rate)과 비트 에러율(bit error rate) 모두 에러 마루(error floor)가 발생하고 있음을 알 수 있다. 그러나, 본 발명에서 정의한 저밀도 패리티 검사 코드의 경우에는 이러한 오류 마루가 발생하지 않음을 확인할 수 있었다. 이러한 성능은 H-ARQ를 사용하는 통신 시스템에서 매우 유리한 점이다. 이에 따라 본 발명에서 정의한 저밀도 패리티 검사 코드가 기존의 표준에서 사용되고 있는 터보 부호에 비해 성능면에서 매우 우수함을 나타낸다고 할 수 있을 것이다. 하기 <표 5>는 n = 7710인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다.Next, the conditions in the case of showing the performance as shown in FIG. 16C will be described. For comparison of performance, the performance of the case where the coded packet size of cdma2000 1xEV-DV standard is 3864 and the code rate is 1/2 is also shown. FIG. 16C shows that when the block size of the low density parity check code is very large, the performance is superior to that of a turbo code having a similar frame size. In particular, the turbo code with a frame length of 3864, which is used in the cdma2000 1xEV-DV standard, has an error floor at both the frame error rate and the bit error rate at a high signal-to-noise ratio (SNR). It can be seen that is occurring. However, in the case of the low density parity check code defined in the present invention, it was confirmed that such an error floor did not occur. This performance is very advantageous in communication systems using H-ARQ. Accordingly, it can be said that the low density parity check code defined in the present invention is very superior in performance compared to the turbo code used in the existing standard. Table 5 below shows the average number of repeated decoding for each Eb / No when n = 7710.
상기 <표 5>에서 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 4>의 경우에 비해 증가했음을 알 수 있다. 즉, cdma2000 1xEV-DV 표준과 유사한 최대 프레임 크기를 지원하는 저밀도 패리티 검사 코드의 경우에는 높은 신호대 잡음비에서도 20회 이상의 반복 복호가(iterative decoding)이 필요하게 되며, 따라서 최소의 지연만을 가지면서도 최적의 성능을 발휘하기 위해서는 반복 횟수(iteration number)에 따른 저밀도 패리티 검사 복호기(LDPC decoder)의 성능을 관찰할 필요가 있다.As shown in Table 5, as the block size of the low-density parity check code increases, it can be seen that the average number of times of repeated decoding increases compared to the case of Table 4 above. That is, a low density parity check code that supports a maximum frame size similar to the cdma2000 1xEV-DV standard requires more than 20 iterative decodings even at high signal-to-noise ratios. In order to achieve the performance, it is necessary to observe the performance of the low density parity check decoder (LDPC decoder) according to the iteration number.
도 16d는 상기 도 16a 및 도 16b와 같은 구성을 가지는 저밀도 패리티 검사 코드에서 최대 반복 횟수(iteration number)를 40, 80, 120, 160회로 제한하였을 때 얻을 수 있는 각각의 FER/BER 성능을 나타낸 도면이다. 지금까지의 경우와는 달리 최대 반복 복호 회수를 각각 40, 80, 120회로 제한하였을 경우에는 약간의 성능 저하가 나타났다. 그러나, 최대 반복 복호 회수를 40회로 제한한 경우를 제외하고는 발생한 성능 열화는 그리 크지 않은 것으로 생각되어 최대 반복 복호 회수를 80회 정도로 제한하더라도 성능면에서 크게 문제되지는 않을 것이다. 특히, 블록 크기가 이보다 작은 경우에는 최대 반복 복호를 80회로 제한함에 따른 성능 열화는 더욱 감소하여 매우 미미해질 것이다. 따라서, 본 발명에서 제안한 저밀도 패리티 검사 코드는 최대 부호 블록 크기를 7710회 정도로 가정하였을 때, 최대 반복 복호 회수를 80회 정도로만 하면, 복호시 충분한 성능을 얻을 수 있다.FIG. 16D is a diagram illustrating respective FER / BER performances obtained when the maximum iteration number is limited to 40, 80, 120, and 160 in the low density parity check code having the configuration shown in FIGS. 16A and 16B. to be. Unlike the previous case, when the maximum number of repeated decoding was limited to 40, 80, and 120 times, a slight decrease in performance was observed. However, except that the maximum repetition number of decoding is limited to 40 times, the deterioration of the performance that is generated is considered not so large, and even if the maximum number of repetitive decoding is limited to about 80 times, it will not be a big problem in terms of performance. In particular, when the block size is smaller than this, the performance degradation due to limiting the maximum iteration decoding to 80 times will be further reduced and become very insignificant. Therefore, in the low density parity check code proposed in the present invention, assuming that the maximum code block size is about 7710 times, if the maximum number of iterations is about 80 times, sufficient performance can be obtained during decoding.
3. 결론(Conclusions)3. Conclusions
본 발명에서는 부호율(code rate) = 1/2인 경우에 한해, 효율적인 부호화가 가능하고, 우수한 복호 성능을 얻을 수 있는 저밀도 패리티 검사 코드를 정의하였다. 그리고, 이를 위해 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스를 두 부분으로 구분(partition)하여, 패리티 검사 매트릭스에서 코드워드의 정보에 해당하는 부분은 행 가중치(column weight)가 2보다 큰 배열 코드(array code) 구조를 이용하여 정의하였다. 그리고, 패리티 검사 매트릭스에서 코드워드의 패리티에 해당하는 부분은 행 가중치가 모두 2인 일반화된 이중 사선 매트릭스(generalized dual diagonal matrix) 형태로 정의하였다. 이러한 방식으로 정의된 패리티 검사 매트릭스는 maximum variable node degree가 dv=15인 비정규 저밀도 패리티 검사 코드를 생성하며, 유사 가우시안(Gaussian approximation)에 의한 density evolution technique에 의해 백색 가우시안 잡음 채널(AWGN channel)에 서 error free를 위한 임계치(threshold)가 0.9352임을 확인할 수 있었다. 이는 부호율 1/2인 부호에 대해 쉐논(Shannon)의 채널 용량에 비해 0.5819 dB만큼 근접한 형태의 성능이다.In the present invention, only a case where code rate is 1/2, a low density parity check code that can efficiently encode and obtain excellent decoding performance is defined. For this purpose, the parity check matrix defining the low density parity check code is partitioned into two parts, and a part corresponding to the information of the codeword in the parity check matrix has an array code having a row weight greater than 2 (column weight). array code) structure. The part corresponding to the parity of the codeword in the parity check matrix is defined in the form of a generalized dual diagonal matrix having row weights of two. The parity check matrix defined in this way generates a non-normal low density parity check code with a maximum variable node degree of d v = 15, and is applied to the white Gaussian noise channel (AWGN channel) by a density evolution technique by Gaussian approximation. Therefore, we can see that the threshold for error free is 0.9352. This is a performance close to 0.5819 dB compared to Shannon's channel capacity for codes with a code rate of 1/2.
일단, 선형 부호화가 가능하다는 점을 먼저 생각하면, 실제 선형 부호화의 가능 여부를 고려하지 않고, 보다 임의의(random) 방식으로 패리티 검사 매트릭스(parity check matrix)를 설계하면, Shannon의 임계치에 0.5819 dB보다 훨씬 근접하는 우수한 저밀도 패리티 검사 코드를 생성할 수 있다. 그러나, 이러한 경우는 부호화 과정이 복잡하게 되어 실제 구현에 문제가 있을 수 있다. 선형 부호화를 가능하게 하는 것은 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스에 하나의 제한 조건으로 작용하기 때문에, 패리티 검사 매트릭스(parity check matrix)가 임의의 구조(structure)를 가져야 한다. 따라서 좋은 성능을 보이기 위한 가능성은 선형 부호화를 고려하지 않고 임의로 정의한 패리티 검사 매트릭스(parity check matrix)보다 줄어들게 될 것이다. 그러므로 본 발명을 적용하게 되면, 선형 부호화를 고려하여 비교적 우수한 성능을 보이게 된다. 즉, 상기한 선형 부호화에 따른 패리티 검사 매트릭스(parity check matrix)의 제약에도 불구하고 비교적 우수한 성능을 보인다.Considering that linear coding is possible first, without considering the possibility of actual linear coding, and designing a parity check matrix in a more random manner, it is 0.5819 dB to Shannon's threshold. It is possible to generate good low density parity check codes that are much closer. However, in such a case, the encoding process becomes complicated and there may be a problem in the actual implementation. Since enabling linear coding acts as a constraint on the parity check matrix defining the low density parity check code, the parity check matrix must have an arbitrary structure. Therefore, the possibility of showing good performance will be less than the arbitrarily defined parity check matrix without considering linear coding. Therefore, when the present invention is applied, relatively excellent performance is considered in consideration of linear coding. That is, despite the constraints of the parity check matrix according to the linear coding, relatively good performance is shown.
그리고, 복호시 우수한 성능을 보이기 위해서는 패리티 검사 매트릭스(parity check matrix)의 degree distribution을 정의하는데 있어 부호어의 크기를 증가시키고, 이에 따라 maximum variable node degree를 높이면 Shannon의 한계치에 거의 근접하는 성능을 갖는 저밀도 패리티 검사 코드를 설계할 수 있 다. 하지만, 이 경우 maximum variable node degree가 증가할수록 복호시 복호기의 복잡도가 증가하기 때문에, 실제 구현과는 거리가 먼 이야기라고 할 수 있다. 따라서, 복호기 복잡도가 가능하다고 한 것은 구현을 하는데 있어 어느 정도 합당한(reasonable) maximum variable node degree를 설정한 것이다.In addition, in order to show excellent performance in decoding, in order to define the degree distribution of the parity check matrix, the size of the codeword is increased, and accordingly, increasing the maximum variable node degree has a performance close to the limit of Shannon. Low density parity check codes can be designed. However, in this case, as the maximum variable node degree increases, the complexity of the decoder during decoding increases, which is far from the actual implementation. Therefore, the reason that the decoder complexity is possible is to set a reasonably maximum variable node degree to implement.
본 발명에서 정의한 패리티 검사 매트릭스에 의한 저밀도 패리티 검사 코드는 패리티 검사 매트릭스에서 코드워드의 패리티 부분이 pxp 항등 매트릭스의 순환 순열(cyclic permutation)에 의해 리프팅된 일반화된 이중 사선 매트릭스 형태를 가진다. 따라서 간단한 선형 연산에 의해 쉽게 부호화가 가능하다. 그리고, iterative belief propagation에 의한 복호 성능을 cdma2000 1xEV-DV 표준에서 사용되고 있는 터보 부호의 성능과 비교하였을 때, 유사한 프레임 크기에 대해 보다 우수한 프레임 오류율(frame error rate)을 얻을 수 있음을 실험을 통해 확인하였다. 특히, 터보 부호에 비해 우수한 프레임 오류율을 갖는 것은 본 발명의 저밀도 패리티 검사 코드를 hybrid-ARQ technique과 접목하여 사용할 경우, 매우 우수한 장점이 될 것이다. 따라서, 본 발명에서 정의한 저밀도 패리티 검사 코드는 간단한 선형 연산에 의해 쉽게 부호화가 가능하다. 또한, 복호기의 구현에 있어서도 각 서브 매트릭스(sub-matrix_의 행(row) 및 열(column) 별로 검사 노드 프로세서(check node processor)와 가변 노드 프로세서(variable node processor)를 병렬로 구현하여 매우 빠른 속도의 복호가 가능하다.The low density parity check code by the parity check matrix defined in the present invention has a form of a generalized double diagonal matrix in which the parity portion of the codeword in the parity check matrix is lifted by cyclic permutation of the p x p identity matrix. Therefore, the coding can be easily performed by a simple linear operation. In addition, when the decoding performance by iterative belief propagation is compared with the performance of the turbo code used in the cdma2000 1xEV-DV standard, it is confirmed through experiments that a better frame error rate can be obtained for a similar frame size. It was. In particular, having an excellent frame error rate compared to the turbo code will be a very good advantage when using the low-density parity check code of the present invention in combination with the hybrid-ARQ technique. Therefore, the low density parity check code defined in the present invention can be easily encoded by a simple linear operation. In addition, in the implementation of the decoder, a check node processor and a variable node processor are implemented in parallel for each row and column of the sub-matrix_ so that the decoder is very fast. Decoding of speeds is possible.
본 발명에서 정의한 저밀도 패리티 검사 코드는 패리티 검사 매트릭스를 구성하는 서브 매트릭스들의 배열 구조의 특성상 저밀도 패리티 검사 코드를 정의하 는 펙터 그래프에서 길이가 4인 싸이클은 존재하지 않음을 쉽게 확인할 수 있다.
The low density parity check code defined in the present invention can be easily confirmed that there is no cycle having a length of 4 in the factor graph defining the low density parity check code due to the arrangement structure of the sub matrices constituting the parity check matrix.
이상에서 상술한 바와 같이 본 발명을 적용하는 경우에 터보 부호화기와 유사하거나 보다 뛰어난 성능을 제공할 수 있으며, 특히 프레임 오류율을 감소시킬 수 있는 저밀도 패리티 검사 코드를 생성할 수 있는 이점이 있다. 또한 본 발명의 저밀도 패리티 검사 코드는 복호 시에도 복잡성을 줄일 수 있는 이점이 있다.As described above, in the case of applying the present invention, a performance similar to or better than that of a turbo encoder can be provided, and in particular, there is an advantage of generating a low density parity check code that can reduce a frame error rate. In addition, the low-density parity check code of the present invention has an advantage of reducing complexity even when decoding.
Claims (9)
Priority Applications (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020030071456A KR100922956B1 (en) | 2003-10-14 | 2003-10-14 | Low Density Parity Check Code Encoding Method |
| PCT/KR2004/002630 WO2005036758A1 (en) | 2003-10-14 | 2004-10-14 | Method for encoding low-density parity check code |
| EP04793492A EP1673870B1 (en) | 2003-10-14 | 2004-10-14 | Method for encoding low-density parity check code |
| JP2006535266A JP4199279B2 (en) | 2003-10-14 | 2004-10-14 | Encoding method of low density parity check code |
| CN2004800217855A CN1830149B (en) | 2003-10-14 | 2004-10-14 | Method for encoding low-density parity-check codes |
| AU2004306640A AU2004306640B9 (en) | 2003-10-14 | 2004-10-14 | Method for encoding low-density parity check code |
| DE602004016194T DE602004016194D1 (en) | 2003-10-14 | 2004-10-14 | METHOD FOR CODING AN LDPC CODE |
| RU2006102662/09A RU2308803C2 (en) | 2003-10-14 | 2004-10-14 | Method for encoding sparse parity control code |
| US10/563,216 US7458009B2 (en) | 2003-10-14 | 2004-10-14 | Method for encoding low-density parity check code |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020030071456A KR100922956B1 (en) | 2003-10-14 | 2003-10-14 | Low Density Parity Check Code Encoding Method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20050035729A KR20050035729A (en) | 2005-04-19 |
| KR100922956B1 true KR100922956B1 (en) | 2009-10-22 |
Family
ID=36406342
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020030071456A Expired - Fee Related KR100922956B1 (en) | 2003-10-14 | 2003-10-14 | Low Density Parity Check Code Encoding Method |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US7458009B2 (en) |
| EP (1) | EP1673870B1 (en) |
| JP (1) | JP4199279B2 (en) |
| KR (1) | KR100922956B1 (en) |
| CN (1) | CN1830149B (en) |
| AU (1) | AU2004306640B9 (en) |
| DE (1) | DE602004016194D1 (en) |
| RU (1) | RU2308803C2 (en) |
| WO (1) | WO2005036758A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9882584B2 (en) | 2015-08-27 | 2018-01-30 | Korea University Research And Business Foundation | DVB-S2 LDPC decoder using overlapped decoding scheme |
Families Citing this family (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB0031009D0 (en) * | 2000-12-20 | 2001-01-31 | Robson Brian | Ceramic core and/or mould for metal casting |
| US7458003B2 (en) * | 2003-12-01 | 2008-11-25 | Qualcomm Incorporated | Low-complexity, capacity-achieving code for communication systems |
| KR100523708B1 (en) * | 2003-12-17 | 2005-10-26 | 한국전자통신연구원 | The method for forming girth conditioned parity check matrix for ldpc codes |
| US20050160351A1 (en) * | 2003-12-26 | 2005-07-21 | Ko Young J. | Method of forming parity check matrix for parallel concatenated LDPC code |
| US7831883B2 (en) * | 2004-04-02 | 2010-11-09 | Nortel Networks Limited | LDPC encoders, decoders, systems and methods |
| KR100678176B1 (en) * | 2004-04-28 | 2007-02-28 | 삼성전자주식회사 | Block low density parity check code encoding / decoding apparatus and method with variable block length |
| US7516391B2 (en) * | 2004-08-16 | 2009-04-07 | Samsung Electronics Co., Ltd | Apparatus and method for coding/decoding block low density parity check code with variable block length |
| EP1800405B1 (en) * | 2004-09-17 | 2014-03-12 | LG Electronics Inc. | Encoding and decoding of ldpc codes using structured parity check matrices |
| JP4772689B2 (en) * | 2004-10-08 | 2011-09-14 | 三菱電機株式会社 | Check matrix generation method and communication method |
| US7752520B2 (en) * | 2004-11-24 | 2010-07-06 | Intel Corporation | Apparatus and method capable of a unified quasi-cyclic low-density parity-check structure for variable code rates and sizes |
| US7584400B2 (en) | 2005-04-15 | 2009-09-01 | Trellisware Technologies, Inc. | Clash-free irregular-repeat-accumulate code |
| US7802172B2 (en) * | 2005-06-20 | 2010-09-21 | Stmicroelectronics, Inc. | Variable-rate low-density parity check codes with constant blocklength |
| US7793190B1 (en) | 2005-08-10 | 2010-09-07 | Trellisware Technologies, Inc. | Reduced clash GRA interleavers |
| US7707479B2 (en) | 2005-12-13 | 2010-04-27 | Samsung Electronics Co., Ltd. | Method of generating structured irregular low density parity checkcodes for wireless systems |
| JP4558638B2 (en) * | 2005-12-15 | 2010-10-06 | 富士通株式会社 | Encoder and decoder |
| US8132072B2 (en) | 2006-01-06 | 2012-03-06 | Qualcomm Incorporated | System and method for providing H-ARQ rate compatible codes for high throughput applications |
| US20070180344A1 (en) * | 2006-01-31 | 2007-08-02 | Jacobsen Eric A | Techniques for low density parity check for forward error correction in high-data rate transmission |
| EP1841073A1 (en) * | 2006-03-29 | 2007-10-03 | STMicroelectronics N.V. | Fast convergence LDPC decoding using BCJR algorithm at the check nodes |
| EP1850485A1 (en) * | 2006-04-28 | 2007-10-31 | Nokia Siemens Networks Gmbh & Co. Kg | Method for encoding a data message K' for transmission from a sending station to a receiving station as well as method for decoding, sending station, receiving station and software |
| KR101191196B1 (en) | 2006-06-07 | 2012-10-15 | 엘지전자 주식회사 | Method of encoding and decoding using a parity check matrix |
| KR101128804B1 (en) * | 2006-06-07 | 2012-03-23 | 엘지전자 주식회사 | Method of LDPC encoding and LDPC decoding using a reference matrix |
| KR101154995B1 (en) * | 2006-07-14 | 2012-06-15 | 엘지전자 주식회사 | Method for performing a Low Density Parity Check encoding |
| US7895500B2 (en) * | 2006-07-28 | 2011-02-22 | Via Telecom Co., Ltd. | Systems and methods for reduced complexity LDPC decoding |
| JP4856605B2 (en) * | 2006-08-31 | 2012-01-18 | パナソニック株式会社 | Encoding method, encoding apparatus, and transmission apparatus |
| US7783952B2 (en) * | 2006-09-08 | 2010-08-24 | Motorola, Inc. | Method and apparatus for decoding data |
| KR100837730B1 (en) * | 2006-09-29 | 2008-06-13 | 한국전자통신연구원 | How to encode an LDPC code using the result of checking the parity specified in advance |
| EP2092651B1 (en) * | 2006-11-13 | 2020-03-25 | 3G Licensing S.A. | Encoding and decoding of a data signal according to a correcting code |
| CN101601187B (en) * | 2007-01-24 | 2014-08-20 | 高通股份有限公司 | LDPC encoding and decoding of variable size packets |
| KR100975695B1 (en) * | 2007-02-02 | 2010-08-12 | 삼성전자주식회사 | Apparatus and method for receiving signal in communication system |
| US8020063B2 (en) * | 2007-07-26 | 2011-09-13 | Harris Corporation | High rate, long block length, low density parity check encoder |
| KR101502624B1 (en) * | 2007-12-06 | 2015-03-17 | 삼성전자주식회사 | Method and apparatus for channel coding / decoding in a communication system using a low-density parity-check code |
| US8327215B2 (en) | 2007-12-13 | 2012-12-04 | Electronics And Telecommunications Research Institute | Apparatus and method for encoding LDPC code using message passing algorithm |
| KR101077552B1 (en) * | 2007-12-14 | 2011-10-28 | 한국전자통신연구원 | APPARATUS AND METHOD OF DECODING LOW DENSITY PARITY CHECK CODE USING MUlTI PROTOTYPE MATRIX |
| KR20090064268A (en) * | 2007-12-15 | 2009-06-18 | 한국전자통신연구원 | Decoding device using variable correction value and method |
| KR101503059B1 (en) * | 2008-02-26 | 2015-03-19 | 삼성전자주식회사 | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes |
| CA2720102A1 (en) | 2008-03-31 | 2009-10-08 | Sirius Xm Radio Inc. | Efficient, programmable and scalable low density parity check decoder |
| CN100586029C (en) * | 2008-05-23 | 2010-01-27 | 厦门大学 | A kind of encoding method and encoder of structured parity check code |
| US20110113312A1 (en) * | 2008-06-09 | 2011-05-12 | Hideki Kobayashi | Check matrix generating method, check matrix, decoding apparatus, and decoding method |
| US8108760B2 (en) * | 2008-07-15 | 2012-01-31 | The Royal Institute For The Advancement Of Learning/Mcgill University | Decoding of linear codes with parity check matrix |
| KR20100058260A (en) | 2008-11-24 | 2010-06-03 | 삼성전자주식회사 | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes |
| GB2471513B (en) * | 2009-07-02 | 2013-09-25 | Samsung Electronics Uk Ltd | Encoding/decoding apparatus and method |
| KR101261091B1 (en) | 2009-07-07 | 2013-05-06 | 한양대학교 산학협력단 | Method for setting number of iterative decoding, Apparatus and Method for iterative decoding |
| US8196012B2 (en) * | 2009-10-05 | 2012-06-05 | The Hong Kong Polytechnic University | Method and system for encoding and decoding low-density-parity-check (LDPC) codes |
| US8644282B2 (en) * | 2010-09-16 | 2014-02-04 | Qualcomm Incorporated | System and method for transmitting a low density parity check signal |
| KR101865068B1 (en) * | 2011-03-30 | 2018-06-08 | 삼성전자주식회사 | Apparatus and method for mapping/demapping signal in a communication system using a low density parity check code |
| US8839069B2 (en) * | 2011-04-08 | 2014-09-16 | Micron Technology, Inc. | Encoding and decoding techniques using low-density parity check codes |
| JP5648852B2 (en) * | 2011-05-27 | 2015-01-07 | ソニー株式会社 | Data processing apparatus and data processing method |
| JP5664919B2 (en) * | 2011-06-15 | 2015-02-04 | ソニー株式会社 | Data processing apparatus and data processing method |
| KR101791477B1 (en) * | 2011-10-10 | 2017-10-30 | 삼성전자주식회사 | Apparatus and method for transmitting and receiving data in communication/broadcasting system |
| US9203434B1 (en) * | 2012-03-09 | 2015-12-01 | Western Digital Technologies, Inc. | Systems and methods for improved encoding of data in data storage devices |
| US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
| KR101662747B1 (en) * | 2013-02-13 | 2016-10-06 | 퀄컴 인코포레이티드 | Design for lifted ldpc codes having high parallelism, low error floor, and simple encoding principle |
| US10135460B2 (en) * | 2013-10-01 | 2018-11-20 | Texas Instruments Incorporated | Apparatus and method for multilevel coding (MLC) with binary alphabet polar codes |
| US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
| CN105447374B (en) * | 2014-09-11 | 2018-08-21 | 塔塔咨询服务有限公司 | Computer implemented system for generating and giving for change authorization code and method |
| JP6357580B2 (en) * | 2014-12-11 | 2018-07-11 | 株式会社東芝 | Array code |
| US10340953B2 (en) * | 2015-05-19 | 2019-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding low density parity check codes |
| CN106130565B (en) * | 2016-06-16 | 2019-12-31 | 华南师范大学 | A Method of Obtaining RC-LDPC Convolutional Code from RC-LDPC Block Code |
| US10790934B2 (en) | 2016-08-10 | 2020-09-29 | Idac Holdings, Inc. | HARQ for advanced channel codes |
| CN108111250A (en) * | 2016-11-25 | 2018-06-01 | 晨星半导体股份有限公司 | Decoding method for convolutional code decoding device in communication system and related judging module |
| SG11201907654TA (en) * | 2017-03-30 | 2019-09-27 | Lg Electronics Inc | Method for performing encoding on basis of parity check matrix of low density parity check (ldpc) code in wireless communication system and terminal using same |
| CN109314527B (en) * | 2017-05-05 | 2021-10-26 | 联发科技股份有限公司 | QC-LDPC encoding method, apparatus and non-transitory computer readable medium |
| CN111446971A (en) * | 2020-02-11 | 2020-07-24 | 上海威固信息技术股份有限公司 | Self-adaptive low-density parity check code coding method based on shared submatrix |
| RU2743784C1 (en) * | 2020-11-13 | 2021-02-26 | Акционерное Общество "Крафтвэй Корпорэйшн Плс" | Data coding method based on ldpc code |
| CN113098531B (en) * | 2021-04-19 | 2022-04-29 | 中南林业科技大学 | A Dynamic Offset Compensation Method Based on Minimum Sum Decoding Framework |
| CN115884387B (en) * | 2023-03-04 | 2023-05-02 | 天地信息网络研究院(安徽)有限公司 | Directional ad hoc network time slot allocation method based on odd-even node micro time slots |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001168733A (en) * | 1999-10-12 | 2001-06-22 | Thomson Csf | Process for constructing and coding ldpc code |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2007042C1 (en) * | 1991-02-22 | 1994-01-30 | Морозов Андрей Константинович | System for encoding and decoding with error correction |
| US20020042899A1 (en) * | 2000-06-16 | 2002-04-11 | Tzannes Marcos C. | Systems and methods for LDPC coded modulation |
| WO2002099976A2 (en) * | 2001-06-06 | 2002-12-12 | Seagate Technology Llc | A method and coding apparatus using low density parity check codes for data storage or data transmission |
| US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
| JP3808769B2 (en) | 2001-12-27 | 2006-08-16 | 三菱電機株式会社 | LDPC code check matrix generation method |
| US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
| US6961888B2 (en) | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
| JP3815557B2 (en) | 2002-08-27 | 2006-08-30 | ソニー株式会社 | Encoding apparatus, encoding method, decoding apparatus, and decoding method |
| EP1597828B1 (en) | 2003-02-26 | 2020-10-07 | QUALCOMM Incorporated | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation |
-
2003
- 2003-10-14 KR KR1020030071456A patent/KR100922956B1/en not_active Expired - Fee Related
-
2004
- 2004-10-14 AU AU2004306640A patent/AU2004306640B9/en not_active Ceased
- 2004-10-14 WO PCT/KR2004/002630 patent/WO2005036758A1/en not_active Ceased
- 2004-10-14 RU RU2006102662/09A patent/RU2308803C2/en not_active IP Right Cessation
- 2004-10-14 EP EP04793492A patent/EP1673870B1/en not_active Expired - Lifetime
- 2004-10-14 US US10/563,216 patent/US7458009B2/en not_active Expired - Lifetime
- 2004-10-14 DE DE602004016194T patent/DE602004016194D1/en not_active Expired - Lifetime
- 2004-10-14 CN CN2004800217855A patent/CN1830149B/en not_active Expired - Fee Related
- 2004-10-14 JP JP2006535266A patent/JP4199279B2/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001168733A (en) * | 1999-10-12 | 2001-06-22 | Thomson Csf | Process for constructing and coding ldpc code |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9882584B2 (en) | 2015-08-27 | 2018-01-30 | Korea University Research And Business Foundation | DVB-S2 LDPC decoder using overlapped decoding scheme |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2005036758A1 (en) | 2005-04-21 |
| JP4199279B2 (en) | 2008-12-17 |
| JP2007508774A (en) | 2007-04-05 |
| CN1830149A (en) | 2006-09-06 |
| US20070022354A1 (en) | 2007-01-25 |
| EP1673870A4 (en) | 2007-05-02 |
| RU2308803C2 (en) | 2007-10-20 |
| DE602004016194D1 (en) | 2008-10-09 |
| KR20050035729A (en) | 2005-04-19 |
| RU2006102662A (en) | 2006-06-27 |
| CN1830149B (en) | 2010-05-26 |
| EP1673870A1 (en) | 2006-06-28 |
| AU2004306640A1 (en) | 2005-04-21 |
| AU2004306640B9 (en) | 2008-11-13 |
| AU2004306640B2 (en) | 2008-04-24 |
| EP1673870B1 (en) | 2008-08-27 |
| US7458009B2 (en) | 2008-11-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100922956B1 (en) | Low Density Parity Check Code Encoding Method | |
| US8185797B2 (en) | Basic matrix, coder/encoder and generation method of the low density parity check codes | |
| JP4168055B2 (en) | Method and apparatus for generating low density parity check code | |
| JP4519902B2 (en) | Apparatus and method for encoding / decoding block low density parity check code having variable block length | |
| US7178082B2 (en) | Apparatus and method for encoding a low density parity check code | |
| CN107370490A (en) | Structured LDPC encoding and decoding method and device | |
| Thorpe et al. | Methodologies for designing LDPC codes using protographs and circulants | |
| KR101227264B1 (en) | Method and apparatus for block and rate independent decoding of ldpc codes | |
| Myung et al. | Extension of quasi-cyclic LDPC codes by lifting | |
| US20050160351A1 (en) | Method of forming parity check matrix for parallel concatenated LDPC code | |
| US8112695B2 (en) | Method for encoding data message K' for transmission from sending station to receiving station as well as method for decoding, sending station, receiving station and software | |
| KR100941680B1 (en) | Method and apparatus for generating quasi-cyclic low density parity check code | |
| Baldi et al. | Array convolutional low-density parity-check codes | |
| Xia et al. | Quasi-cyclic codes from extended difference families | |
| Chiang et al. | Towards network X-ities from a topological point of view: Evolvability and scalability | |
| Andreadou et al. | Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications | |
| Pusane et al. | Construction of irregular LDPC convolutional codes with fast encoding | |
| Enad et al. | Performance Evaluation and Assessment of LDPC Codec over DVB-S2 and WLAN802. 11n Applications | |
| Talati et al. | Rate-compatible and high-throughput architecture designs for encoding LDPC codes | |
| Chae et al. | Low complexity encoding of improved regular LDPC codes | |
| Chae et al. | Low complexity encoding of regular low density parity check codes | |
| Roy et al. | Recursive convolutional codes for time-invariant LDPC convolutional codes | |
| Ma et al. | Recursive encoding of spatially coupled LDPC codes with arbitrary rates | |
| Bao et al. | Optimized Construction of Short and High Rate Protograph QC-LDPC Codes | |
| Tavares et al. | Tail-biting LDPC convolutional codes based on protographs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20120927 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| FPAY | Annual fee payment |
Payment date: 20130927 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| FPAY | Annual fee payment |
Payment date: 20140929 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| FPAY | Annual fee payment |
Payment date: 20150925 Year of fee payment: 7 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| FPAY | Annual fee payment |
Payment date: 20160929 Year of fee payment: 8 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| FPAY | Annual fee payment |
Payment date: 20170927 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
| FPAY | Annual fee payment |
Payment date: 20180921 Year of fee payment: 10 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 10 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20191015 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20191015 |