KR100837730B1 - How to encode an LDPC code using the result of checking the parity specified in advance - Google Patents
How to encode an LDPC code using the result of checking the parity specified in advance Download PDFInfo
- Publication number
- KR100837730B1 KR100837730B1 KR1020060096274A KR20060096274A KR100837730B1 KR 100837730 B1 KR100837730 B1 KR 100837730B1 KR 1020060096274 A KR1020060096274 A KR 1020060096274A KR 20060096274 A KR20060096274 A KR 20060096274A KR 100837730 B1 KR100837730 B1 KR 100837730B1
- Authority
- KR
- South Korea
- Prior art keywords
- parity
- matrix
- parity bit
- value
- bit value
- 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/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
-
- 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/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/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
- H03M13/1188—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 wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
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)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION
본 발명은 저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code) 부호화(encoding) 방법에 관한 것임.The present invention relates to a Low Density Parity Check (LDPC) code encoding method.
2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention
본 발명은 사전에 패리티 비트(parity bit)의 값을 임의로 지정하고서, 연립방정식을 통해 역으로서 그 지정된 값의 패리티를 이중 사선 구조의 패리티 검사 행렬을 사용해 검사한 결과를 이용해 최종적인 패리티 비트를 서브 행렬 단위로 병렬적으로 도출하기 위한, 사전에 지정한 패리티를 검사한 결과를 이용해 LDPC 코드를 부호화하는 방법을 제공하는데 그 목적이 있음.According to the present invention, a parity bit is arbitrarily assigned in advance, and the parity bit is inversely determined using a double-parity parity check matrix. The object of the present invention is to provide a method of encoding an LDPC code using a result of checking a predetermined parity for deriving in parallel in matrix units.
3. 발명의 해결방법의 요지3. Summary of Solution to Invention
본 발명은 H 행렬을 사용해 저밀도 패리티 검사 코드(이하 "LDPC 코드"라 함)를 부호화하는 방법에 있어서, 상기 H 행렬 상에 서브블록 단위로 특정 개수의 행/열로 이루어진 패리티 부분 행렬을 구성하는 단계; 상기 구성한 패리티 부분 행렬에 대해 임의의 이진수값으로 해당 패리티 비트값을 서브블록 단위로 설정(지정)하는 단계; 상기 설정한 서브블록 단위의 임의의 이진수값에 따라 어떠한 패리티 비트값을 갖는 상기 H 행렬의 마지막 서브블록 상의 패리티 부분 행렬이 올바른지(참인지) 검사하는 단계; 상기 패리티 부분 행렬 검사 결과를 토대로 올바르지 않은 패리티 비트값을 써치하는 단계; 및 상기 써치한 올바르지 않은 패리티 비트값에 대해 상기 임의의 이진수값에 따라 설정된 패리티 비트값을 서브블록 단위로 반전["0->1", "1->0"]시켜 상기 H 행렬의 패리티 비트값으로 결정하는 단계를 포함함.The present invention provides a method of encoding a low density parity check code (hereinafter referred to as an "LDPC code") using an H matrix, comprising: constructing a parity partial matrix including a specific number of rows / columns on a subblock basis on the H matrix; ; Setting (specifying) the parity bit value in sub-block units with an arbitrary binary value for the configured parity partial matrix; Checking whether the parity partial matrix on the last subblock of the H matrix having a parity bit value is correct (true) according to an arbitrary binary value of the set subblock unit; Searching for an incorrect parity bit value based on the parity partial matrix check result; And parity bit of the H matrix by inverting the parity bit value set according to the arbitrary binary value in sub-block units with respect to the searched invalid parity bit value in sub-block units ["0-> 1", "1-> 0"]. Including determining by value.
4. 발명의 중요한 용도4. Important uses of the invention
본 발명은 LDPC 코드 부호화 등에 이용됨.The present invention is used for LDPC code encoding.
저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code) 부호화(encoding), H 행렬, 이중 사선, 패리티 검사 행렬, 서브 행렬 단위, 병렬 처리, 싸이클릭 쉬프트(cyclic shift) Low Density Parity Check (LDPC) code encoding, H matrix, double diagonal, parity check matrix, submatrix units, parallelism, cyclic shift
Description
도 1은 일반적인 LDPC 코드 부호화에 대한 개념을 보여주기 위한 일실시예 설명도.1 is a diagram illustrating an embodiment of a concept of general LDPC code encoding.
도 2의 상단은 본 발명에서 사용하는 H 행렬을 보여주기 위한 일실시예 설명도.2 is an explanatory diagram illustrating an H matrix used in the present invention.
도 2의 중간 및 하단은 본 발명에서 제시하는 H 행렬을 보여주기 위한 일실시예 설명도.2 is a diagram illustrating an embodiment for showing the H matrix proposed in the present invention.
도 3은 본 발명에 따라 입력어가 벡터 x로 변환되는 개념을 보여주기 위한 일실시예 설명도.FIG. 3 is a diagram for explaining an embodiment of converting an input word into a vector x according to the present invention; FIG.
도 4는 본 발명에 따라 도 2에 도시된 H 행렬 상의 패리티 비트 부분을 모두 0으로서 설정한 H 행렬을 보여주기 위한 일실시예 설명도.FIG. 4 is a diagram illustrating an embodiment of an H matrix in which all of the parity bit portions on the H matrix shown in FIG. 2 are set to 0 according to the present invention; FIG.
도 5는 본 발명에서 사용하는 싸이클릭 쉬프트(cyclic shift)에 대한 개념을 보여주기 위한 일실시예 설명도.FIG. 5 is a diagram for explaining an embodiment of a cyclic shift used in the present invention. FIG.
도 6은 본 발명에 따라 H 행렬의 패리티 부분 행렬을 연산한 결과로서, 그 패리티 검사 결과가 실패된 경우를 보여주기 위한 일실시예 설명도.FIG. 6 is an explanatory diagram illustrating a case where a parity check result of an H matrix is calculated according to an embodiment of the present invention and the parity check result has failed. FIG.
도 7은 본 발명에 따라 H 행렬의 패리티 부분 행렬을 연산한 결과로서, 그 패리티 검사 결과가 XOR 연산에 의해 수정되어져 최종적인 패리티 비트가 결정된 경우를 보여주기 위한 일실시예 설명도.7 is a diagram illustrating a case where a parity partial matrix of an H matrix is calculated according to the present invention, and a result of parity check is modified by an XOR operation to determine a final parity bit.
도 8은 본 발명에 따라 H 행렬 상의 첫번째 열을 싸이클릭 쉬프트를 수행한 경우에 그 H 행렬의 패리티 부분 행렬을 연산한 결과를 보여주기 위한 일실시예 설명도.8 is a diagram illustrating an example of a result of calculating a parity partial matrix of an H matrix when a cyclic shift is performed on a first column of an H matrix according to the present invention;
도 9는 본 발명에 따른 사전에 지정한 패리티를 검사한 결과를 이용해 LDPC 코드를 부호화하는 방법에 대한 일실시예 순서도.9 is a flowchart illustrating a method of encoding an LDPC code using a result of checking a parity specified in advance according to the present invention.
본 발명은 저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code) 부호화(encoding) 방법에 관한 것으로, 더욱 상세하게는 사전에 패리티 비트(parity bit)의 값을 임의로 지정하고서, 연립방정식을 통해 역으로서 그 지정된 값의 패리티를 이중 사선 구조의 패리티 검사 행렬을 사용해 검사한 결과를 이용해 최종적인 패리티 비트를 서브 행렬 단위로 병렬적으로 도출하기 위한, 사전에 지정한 패리티를 검사한 결과를 이용해 LDPC 코드를 부호화하는 방법에 관한 것이다.The present invention relates to a Low Density Parity Check (LDPC) code encoding method. More particularly, the parity bit value can be arbitrarily assigned in advance, Conversely, the result of checking parity of the specified value using a double diagonal parity check matrix and using the result of checking a predetermined parity to derive the final parity bits in sub-matrix units in parallel using LDPC code It relates to a method of encoding.
저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code)[이하, "LDPC 코드"라 함]는 샤논 한계(Shannon limit)에 근접하는 우수한 성능에도 불구하고 하드웨어적인 기술력의 제한으로 사용되지 않다가, 최근에 차세대 유무선 통신 시스템에 있어 고속 통신에 따른 에러 발생률을 줄이기 위한 채널 코딩 기법으로서 활발한 연구가 이루어지고 있다.The Low Density Parity Check (LDPC) code (hereinafter referred to as the "LDPC code") is not used as a hardware limitation despite its superior performance near the Shannon limit. Recently, active research has been conducted as a channel coding technique for reducing an error rate caused by high speed communication in next generation wired and wireless communication systems.
LDPC 코드는 systematic한 방식으로 부호화가 이루어진다는 것을 전제로 한다. 즉, 패킷의 일부분은 입력된 비트(bit)와 동일한 형태로 출력으로서 나가고, 그 패킷의 나머지 부분은 패리티 비트(parity bit, 부호 검사 비트)라는 부가 정보로서 원 정보와 함께 출력으로서 나간다.The LDPC code is assumed to be coded in a systematic manner. That is, a part of the packet goes out as an output in the same form as the input bit, and the rest of the packet goes out with the original information as side information as a parity bit (sign check bit).
위와 같이 모든 입력 신호가 LDPC 코드 부호화기에 입력되어야지만 그 부호화 작업이 수행될 수 있으며, 부호율에 따라 패리티 비트가 전체 패킷에서 차지하는 비율이 서로 다르다. 이러한 부호율은 H 행렬(H matrix)에 의해 고정된다.Although all input signals must be input to the LDPC code encoder as described above, the encoding operation can be performed, and the ratio of parity bits in the entire packet is different according to the code rate. This code rate is fixed by an H matrix.
한편, LDPC 코드 부호화 기법의 종래 기술로는 리차드슨(Richardson)이 제안한 ""Efficient Encoding of Low Density Parity Check Codes"가 있다[IEEE Transactions on Information Theory, Vol. 47, No. 2001년 2월 2일].On the other hand, the conventional technique of the LDPC code encoding technique is "Efficient Encoding of Low Density Parity Check Codes" proposed by Richardson [IEEE Transactions on Information Theory, Vol. 47, No. 2, 2001] .
상기 종래 기술에서는 H 행렬을 세분화하여 서브 행렬(sub matrix)로 나눈 후에 행렬의 연립방정식의 입력 벡터(input vector)가 주어지면 그 출력 패리티 비트를 생성하고 있다.In the prior art, the H matrix is divided and divided into sub matrices, and then an output parity bit is generated when an input vector of the system of equations is given.
한편, 최근에 위와 같은 리차드슨의 LDPC 코드 부호화 기법에 비해 간단한 LDPC 코드 부호화 기법이 주식회사 모토롤라에 의해 IEEE 802.16e에 제안된 상태인데, 이 LDPC 코드 부호화 기법은 행렬을 연산하는 것이 아니라 연립방정식을 통해 직접적으로 패리티 비트를 구하여 LDPC 코드를 부호화한다.Recently, a simple LDPC code coding scheme has been proposed in IEEE 802.16e by Motorola Co., Ltd., compared to Richardson's LDPC code coding scheme. The parity bit is obtained by encoding the LDPC code.
그런데, 상기 리차드슨의 LDPC 코드 부호화 기법은 서브 행렬을 나누는 연산으로 인해 고속으로 신호를 처리하기가 용이하지 않으며, 상기 모토롤라의 LDPC 코드 부호화 기법은 직접 패리티 비트를 구하는 것으로 인해 부호화 복잡도, 하드웨어 리소스 부하가 상당히 증가하는 문제점이 있다.However, Richardson's LDPC code coding method is not easy to process a signal at high speed due to the operation of dividing the sub-matrix, and the LDPC code coding method of Motorola has a high coding complexity and hardware resource load due to the direct parity bit. There is a growing problem.
따라서, LDPC 코드를 부호화하는데 있어, 고속 통신에 적합하고, 부호화 복잡도 및 리소스 소요를 최소화할 수 있는 기술이 절실히 요구되고 있다.Therefore, in encoding LDPC codes, a technique suitable for high-speed communication and capable of minimizing encoding complexity and resource requirements is urgently required.
본 발명은 상기와 같은 문제점을 해결하고 상기와 같은 요구에 부응하기 위하여 제안된 것으로, 사전에 패리티 비트(parity bit)의 값을 임의로 지정하고서, 연립방정식을 통해 역으로서 그 지정된 값의 패리티를 이중 사선 구조의 패리티 검사 행렬을 사용해 검사한 결과를 이용해 최종적인 패리티 비트를 서브 행렬 단위로 병렬적으로 도출하기 위한, 사전에 지정한 패리티를 검사한 결과를 이용해 LDPC 코드를 부호화하는 방법을 제공하는데 그 목적이 있다.The present invention has been proposed in order to solve the above problems and meet the above requirements, by arbitrarily designating a parity bit value in advance, and inverting the parity of the specified value inversely through a system of equations. The purpose of the present invention is to provide a method of encoding an LDPC code using a result of checking parity specified in advance to derive the final parity bit in sub-matrix units in parallel using the result obtained by using a parity check matrix having a diagonal structure. There is this.
상기의 목적을 달성하기 위한 본 발명의 방법은, H 행렬을 사용해 저밀도 패리티 검사 코드(이하 "LDPC 코드"라 함)를 부호화하는 방법에 있어서, 상기 H 행렬 상에 서브블록 단위로 특정 개수의 행/열로 이루어진 패리티 부분 행렬을 구성하는 단계; 상기 구성한 패리티 부분 행렬에 대해 임의의 이진수값으로 해당 패리티 비트값을 서브블록 단위로 설정(지정)하는 단계; 상기 설정한 서브블록 단위의 임의의 이진수값에 따라 어떠한 패리티 비트값을 갖는 상기 H 행렬의 마지막 서브블록 상의 패리티 부분 행렬이 올바른지(참인지) 검사하는 단계; 상기 패리티 부분 행렬 검사 결과를 토대로 올바르지 않은 패리티 비트값을 써치하는 단계; 및 상기 써치한 올바르지 않은 패리티 비트값에 대해 상기 임의의 이진수값에 따라 설정된 패리티 비트값을 서브블록 단위로 반전["0->1", "1->0"]시켜 상기 H 행렬의 패리티 비트값으로 결정하는 단계를 포함한다.A method of the present invention for achieving the above object is a method of encoding a low density parity check code (hereinafter referred to as "LDPC code") using an H matrix, the specific number of rows on the H matrix in units of subblocks. Constructing a parity submatrix of / columns; Setting (specifying) the parity bit value in sub-block units with an arbitrary binary value for the configured parity partial matrix; Checking whether the parity partial matrix on the last subblock of the H matrix having a parity bit value is correct (true) according to an arbitrary binary value of the set subblock unit; Searching for an incorrect parity bit value based on the parity partial matrix check result; And parity bit of the H matrix by inverting the parity bit value set according to the arbitrary binary value in sub-block units with respect to the searched invalid parity bit value in sub-block units ["0-> 1", "1-> 0"]. Determining by value.
한편, 본 발명은 저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code) 부호화기(encoder)[이하 "LDPC 코드 부호화기"라 함]에, 그 내부의 패리티 비트 검사 행렬의 첫번째 열이 모두 동일한 싸이클릭 쉬프트(cyclic shift)의 값을 갖는 이중 사선(dual diagonal) 구조의 H 행렬에 상응되는 데이터를 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.Meanwhile, in the present invention, a low density parity check (LDPC) code encoder (hereinafter referred to as an "LDPC code encoder") has the same first parity bit parity check matrix. A computer readable recording medium having data corresponding to an H matrix having a double diagonal structure having a value of a click shift is provided.
다른 한편으로, 본 발명은 저밀도 패리티 검사(LDPC; Low Density Parity Check) 코드(code) 부호화기(encoder)[이하 "LDPC 코드 부호화기"라 함]에, 그 내부의 모든 패리티 비트 검사 행렬이 단위 행렬(identity matrix)의 구조를 갖는 H 행렬에 상응되는 데이터를 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.On the other hand, the present invention relates to a low density parity check (LDPC) code encoder (hereinafter referred to as an "LDPC code encoder"), in which all parity bit check matrices therein are represented as an identity matrix ( A computer readable recording medium having recorded thereon data corresponding to an H matrix having an identity matrix structure is provided.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명에서는 고속 통신에 적합하고, 부호화 복잡도 및 리소스 소요를 최소화시킬 수 있는 LDPC 코드 부호화 기법을, 패리티 검사 행렬의 설계로서 해결할 수 있다는 것에 착안해, 패리티 검사 행렬의 구조를 기존 LDPC 코드 부호화 기법과 서로 동일하게 그대로 유지하면서도, 그 내부의 패리티 검사 행렬의 싸이클릭 쉬프트(cyclic shift)의 값이 변경된 구조를 갖는 H 행렬을 제시하고자 한다.In the present invention, the LDPC code coding scheme, which is suitable for high-speed communication and minimizes coding complexity and resource requirements, can be solved by designing a parity check matrix. While maintaining the same as each other, while presenting an H matrix having a structure in which the value of the cyclic shift of the parity check matrix therein is changed.
또한, 본 발명에서는 일반적인 리차드슨의 LDPC 코드 부호화 기법을 그대로 사용할 수 있으며, 특히 LDPC 코드 부호화에 있어서의 그 패리티 비트를 결정하는데 있어 임의의 서브블록(sub-block)의 크기 만큼만을 패리티 비트의 해로서 삽입시켜 패리티 검사 행렬이 이중 사선(dual diagonal) 구조를 갖도록 해, 연쇄적으로 패리티 비트의 나머지 해를 구하고, 여기서 잘못 구한 패리티 비트의 해에 대해서는 처음의 임의의 해를 서브블록 단위로 뒤집어 삽입시킴으로서 정확한 패리티 비트의 해를 구하고자 한다.In addition, in the present invention, the general Richardson LDPC code encoding technique can be used as it is, and in particular, only as much as the size of an arbitrary sub-block as the solution of the parity bits in determining the parity bits in LDPC code encoding. Insert the parity check matrix into a dual diagonal structure, and consequently obtain the remaining solutions of the parity bits, and insert the first arbitrary solution in sub-block units by inserting the first arbitrary solution for the incorrectly obtained parity bit solution. We want to solve the correct parity bit.
도 1은 일반적인 LDPC 코드 부호화에 대한 개념을 보여주기 위한 일실시예 설명도이다.1 is a diagram for explaining an example of general LDPC code encoding.
LDPC 코드 부호화 기법의 기본 사상은 "H 행렬"인데, 송신단의 부호화기에서 H 행렬을 통해 부호화(encoding)된 패킷은 수신단의 복호화기에서 H 행렬을 통해 복호화(decoding)된다.The basic idea of the LDPC code coding scheme is an "H matrix". A packet encoded through the H matrix in the encoder of the transmitter is decoded through the H matrix in the decoder of the receiver.
도 1에는 부호율 "R=3/4"인 LDPC 코드 부호화기가 도시되어 있는데, 도 1에 도시된 바와 같이 입력 신호인 15 비트의 이진 벡터가 출력 신호로서 그대로 나오고 입력 벡터를 토대로 5개의 패리티 비트가 LDPC 코드 부호화기에 의해 결정되어져 출력 신호로서 함께 나온다. 예컨대, "입력 비트[15]/출력 비트[20] = 3/4"으로서 부호율 "R=3/4"임을 알 수 있다.In Fig. 1, an LDPC code encoder having a code rate of “R = 3/4” is shown. As shown in Fig. 1, a 15-bit binary vector as an output signal is output as it is and 5 parity bits are based on the input vector. Is determined by the LDPC code encoder and comes together as an output signal. For example, it can be seen that the code rate "R = 3/4" as "input bit [15] / output bit [20] = 3/4".
그럼, 이하 도 2 내지 도 8을 함께 참조하여 본 발명에서 제시하는 H 행렬의 구조에 대해 살펴보기로 한다.Next, the structure of the H matrix proposed in the present invention will be described with reference to FIGS. 2 to 8.
도 2의 상단은 본 발명에서 사용하는 H 행렬을 보여주기 위한 일실시예 설명도이며, 도 2의 중간 및 하단은 본 발명에서 제시하는 H 행렬을 보여주기 위한 일실시예 설명도이다.2 is an explanatory diagram illustrating an H matrix used in the present invention, and the middle and bottom of FIG. 2 are explanatory diagrams illustrating an H matrix proposed in the present invention.
도 3은 본 발명에 따라 입력어가 벡터 x로 변환되는 개념을 보여주기 위한 일실시예 설명도이다.FIG. 3 is a diagram for explaining an embodiment of converting an input word into a vector x according to the present invention.
도 4는 본 발명에 따라 도 2에 도시된 H 행렬 상의 패리티 비트 부분을 모두 0으로서 설정한 H 행렬을 보여주기 위한 일실시예 설명도로서, 이 H 행렬은 부호율 "R=1/2", 서브블록의 크기가 38×38의 크기를 갖는 구조로 이루어져 있다.FIG. 4 is an exemplary explanatory diagram showing an H matrix in which all of the parity bit portions on the H matrix shown in FIG. 2 are set to 0 according to the present invention, and the H matrix has a code rate of “R = 1/2”. In addition, the subblock has a size of 38 × 38.
도 5는 본 발명에서 사용하는 싸이클릭 쉬프트(cyclic shift)에 대한 개념을 보여주기 위한 일실시예 설명도로서, 도 5의 좌측에는 싸이클릭 쉬프트 0을, 도 5의 우측에는 싸이클릭 쉬프트 2를 도시하였다.FIG. 5 is a diagram illustrating an embodiment of a cyclic shift used in the present invention. FIG. 5 is a
도 2에는 정사 행렬(projection matrix)의 싸이클릭 쉬프트로 이루어진 LDPC 코드 부호화기에 적용되는 H 행렬이 도시되어 있으며, 도 2의 상단에 도시된 일반적인 H 행렬 상의 패리티 비트 영역의 첫번째 행렬을 도 2의 중간 및 하단과 같이 바꾸어 주면, 본 발명에서 제시하는 H 행렬이 된다.FIG. 2 shows an H matrix applied to an LDPC code encoder consisting of cyclic shifts of a projection matrix. The first matrix of the parity bit region on the general H matrix shown at the top of FIG. 2 is shown in the middle of FIG. And as shown below, the matrix H is presented in the present invention.
예컨대, 도 2의 상단에는 현재 표준화가 진행 중인 IEEE 802.11n 규격에 제시된 부호율 "R=5/6"인 H 행렬의 구조를 도시했으며, 이러한 H 행렬은 81×81 크기의 서브블록 단위의 행렬로 구성된다. 또한, H 행렬 상의 숫자는 싸이클릭 쉬프트의 값을 나타낸다.For example, the upper portion of FIG. 2 shows the structure of an H matrix having a code rate of “R = 5/6” as presented in the IEEE 802.11n standard, which is currently being standardized. The H matrix is an 81 × 81 subblock matrix. It consists of. Also, the numbers on the H matrix represent the values of the cyclic shifts.
한편, 도 4에는 서브블록의 크기가 38×38인 H 행렬에 있어서 그 싸이클릭 쉬프트의 예시가 도시되어 있으며, 각 서브블록은 써큘런트 행렬(circulant matrix)의 구조를 갖는다.On the other hand, Figure 4 shows an example of the cyclic shift in the matrix H of the size 38x38 subblock, each subblock has a structure of a circular matrix (circulant matrix).
한편, 도 3에 도시된 H 행렬 상의 서브블록 단위가 81×81이라면, 이 도 3의 H 행렬의 크기는 324×1944가 된다.On the other hand, if the subblock unit on the H matrix shown in FIG. 3 is 81x81, the size of the H matrix of FIG. 3 is 324x1944.
특히, 도 3에 도시된 H 행렬은 리차드슨이 제안한 H 행렬의 구조를 갖으며, 이 H 행렬을 도 2에 도시된 바와 같이 입력 비트 부분과 패리티 비트 부분으로서 그 H 행렬을 나눌 수 있다. 이러한 H 행렬의 특징은 패리티 비트 부분, 즉 패리티 비트 검사 행렬 P가 이중 사선(dual diagonal)의 구조를 갖는다는 것이다. 이하, 본 발명을 설명하는데 있어 패리티 비트 검사 행렬 P를 패리티 비트 부분 또는 패리티 부분 행렬이라는 용어와 병행해 사용하기로 한다.In particular, the H matrix shown in FIG. 3 has a structure of the H matrix proposed by Richardson, and the H matrix can be divided into an input bit portion and a parity bit portion as shown in FIG. 2. The characteristic of this H matrix is that the parity bit portion, that is, parity bit check matrix P has a double diagonal structure. Hereinafter, in describing the present invention, the parity bit check matrix P will be used in parallel with the term parity bit part or parity part matrix.
앞서 전술한 바와 같이, 본 발명에서 제시하는 H 행렬의 구조는, 도 2의 중간에 도시된 바와 같이 패리티 비트 부분을 모두 0 싸이클릭 쉬프트, 예컨대 단위 행렬(identity matrix)로 만들어서, 도 2의 하단에 도시된 바와 같이 서브블록의 사선(diagonal) 부분의 길이만큼 패리티 비트를 한꺼번에 병렬적으로 결정하는 특징을 지닌다.As described above, the structure of the H matrix proposed in the present invention, as shown in the middle of FIG. 2, makes all the parity bit portions zero cyclic shift, for example, an identity matrix, so that the bottom of FIG. As shown in FIG. 9, the parity bits are determined in parallel at the same time by the length of the diagonal portion of the subblock.
그럼, 위와 같이 서브블록 단위로 한꺼번에 병렬적으로 패리티 비트를 결정하는 알고리즘을 설명하기에 앞서, 비트 단위의 패리티 비트를 결정하는 과정을 도 4를 참조하여 설명하면 다음과 같다.Next, prior to describing an algorithm for determining parity bits in parallel in units of subblocks as described above, a process of determining parity bits in bits will be described with reference to FIG. 4.
도 4에 도시된 바와 같이, 부호율 "R=1/2"인 H 행렬에 있어 패리티 비트 부분에 "▨"로 표시된 부분이 모두 0 싸이클릭 쉬프트로서 수정됨을 알 수 있다. 여기서, H 행렬과 이 H 행렬에 의해 부호화된 코드 워드 벡터 c(code word vector c)를 곱한 결과는 다음의 [수학식 1]을 만족하여야 된다.As shown in FIG. 4, it can be seen that in the H matrix having a code rate of “R = 1/2”, all parts indicated by “▨” in the parity bit portion are modified as 0 cyclic shifts. Here, the result of multiplying the H matrix by the code word vector c encoded by the H matrix must satisfy the
[수학식 1]에서, c 벡터는 도 1에 도시된 LDPC 코드 부호화기의 출력 벡터 c를 나타낸다.In
이에, LDPC 코드 부호화기는 도 1에 도시된 출력 벡터 중 밀줄로 그어진 패리티 비트를 결정하면 되며, 도 4에 도시된 H 행렬 상에서 "H·CT = 0"을 만족하는 456개의 패리티 비트, 즉 서브블록의 갯수가 38개 이기에 456[38*12=456]개의 패리티 비트를 찾아내면 된다.Accordingly, the LDPC code encoder may determine parity bits drawn by wheat lines among the output vectors shown in FIG. 1, and 456 parity bits, ie, subs, satisfying “H · C T = 0” on the H matrix shown in FIG. 4. Since the number of blocks is 38, we need to find 456 [38 * 12 = 456] parity bits.
앞서 언급했지만, 도 4에 도시된 H 행렬은 서브블록 단위의 행렬로 이루어지는데, 이러한 서브블록 단위 행렬은 도 5에 도시된 싸이클릭 쉬프트로 구성된다.As mentioned above, the H matrix shown in FIG. 4 consists of a matrix of subblock units, and this subblock unit matrix is composed of cyclic shifts shown in FIG. 5.
그럼, 상기 456개의 패리티 비트를 찾는 과정을 설명하면 다음과 같다.A process of finding the 456 parity bits will now be described.
상기 456개의 패리티 비트 각각을 "P0, P1, …, P454, P455"로 정의하자.Define each of the 456 parity bits as "P 0 , P 1 , ..., P 454 , P 455 ".
그러면, 패리티 비트 P0와 패리티 비트 P1이 상기 [수학식 1]을 만족하려면, 456개 행(row) 중에서 1번째 행, 13번째 행, 59번째 행, 112번째 행, 184번째 행, 308번째 행에 대응되는 입력 비트와, 0번째 행, 38번째 행에 대응되는 패리티 비트의 합이 0이 되어야 된다. 즉, modulo 2 연산이므로 짝수가 되어야 된다. 여기서, 첫번째 행에 대한 "H·CT = 0" 연산을 다음의 [수학식 2]로 표현할 수 있다.Then, if parity bit P 0 and parity bit P 1 satisfy the
[수학식 2]에서, 는 비트 연산, 즉 modulo 2 연산을 나타내며, 이는 LDPC 코드 부호화 과정의 연산이 비트 단위의 연산임을 의미한다.In
또한, [수학식 2]에서 (H)j는 H 행렬의 j번째 행을 가르킨다.In
[수학식 2]를 통해 알 수 있듯이, S0, S59, S112, S184, S308은 입력 신호로서 주어진 것이지만, 패리티 비트 P0 및 P38은 계산해야 된다.As can be seen from
더군다나, 도 4에 도시된 H 행렬 상에는 456개의 패리티 비트가 존재하며, 이에 상기 [수학식 2]의 해를 구하기 위해서는 456개의 패리티 비트 "P0, P1, …, P454, P455" 각각에 대해 모두 그 값을 구해야만 된다.Furthermore, there are 456 parity bits on the H matrix shown in FIG. 4, so that the 456 parity bits "P 0 , P 1 ,..., P 454 , P 455 " may be used to solve
그런데, 상기 456개의 패리티 비트에 대한 해는 연립방정식으로 그 값을 구할 수가 없다.However, the solution for the 456 parity bits cannot be obtained by the system of equations.
따라서, 본 발명에서는 사전에 특정 패리티 비트의 값을 설정해 놓으면 다른 패리티 비트의 값을 구할 수 있다는 것에 착안해, 사전에 패리티 비트 P0의 초기값을 0으로서 설정해 그에 대응되는 패리티 비트 P38의 값을 구한다. 예컨대, 이러한 패리티 비트 P38의 값을 알고 있기 때문에 H 행렬의 38번째 행에 해당되는 패리티 비트 P76의 값을 다음의 [수학식 3]으로 구한다.Therefore, in the present invention, if you set the value of a specific parity bit prior to target that it can obtain the values of the other parity bits, as 0. The initial value of the parity bit P 0 in advance set parity bits corresponding P 38 value of Obtain For example, since the value of the parity bit P 38 is known, the value of the parity bit P 76 corresponding to the 38th row of the H matrix is obtained by the following equation (3).
[수학식 3]을 통해 알 수 있듯이, 패리티 비트 P76은 38번째 행에 위치하고 있으며, 이와 같이 패리티 비트 P76의 값을 안 상태에서 동일한 38번째 행에 위치한 패리티 비트 P114의 값도 구할 수 있게 된다. 여기서, 패리티 비트 P114는 72번째 행의 값을 갖는다.As can be seen from [Equation 3], parity bit P 76 is located on the 38th row. Thus, parity bit P 114 located on the same 38th row without the value of parity bit P 76 can be obtained. Will be. Here, parity bit P 114 has a value in the 72th row.
위와 같은 패리티 비트 계산 과정을 거쳐, 380번째 행의 패리티 비트 P418의 값을 구하고서, 이 구한 패리티 비트 P418의 값이 418번째 행에서의 패리티 비트 P418의 값이 된다. Via the parity bit calculation process as above, 380 standing finding a value of the parity bit P of second line 418, the obtained value of the parity bit P 418 is the value of the parity bit P 418 in the 418-th row.
위와 같이 418번째 행에 대응되는 입력 비트와 패리티 비트를 모두 더한 값이 0이 되면, 그 패리티 비트 "P0, P38, P76, P114, P152, P190, P228, P266, P304, P418"의 값이 모두 올바른 값으로서 결정되는 것이다. As above, when the sum of the input and parity bits corresponding to the 418th line is 0, the parity bits "P 0 , P 38 , P 76 , P 114 , P 152 , P 190 , P 228 , P 266 , The values of P 304 and P 418 "are all determined as correct values.
한편, 418번째 행에 대응되는 입력 비트와 패리티 비트를 모두 더한 값이 0이 되지 않으면, 처음 과정, 예컨대 사전에 패리티 비트 P0의 초기값을 설정하는 과정으로 돌아가서 그 패리티 비트 P0의 초기값을 1로 설정해서 그 이후의 과정을 수행한다.On the other hand, if the sum of the input bit and the parity bit corresponding to the 418th line does not become 0, the process returns to the first step, for example, to set the initial value of the parity bit P 0 in advance, and then the initial value of the parity bit P 0 . Set to 1 to perform the subsequent steps.
다만, 패리티 비트 P0의 초기값을 변경해 가면서 행렬 상의 패리티 비트 값이 올바른 것인지를 검사하는 과정은 다소 연산량이 많아질 수 있기에, 본 발명의 다른 예로서 패리티 비트 "P0, P38, P76, P114, P152, P190, P228, P266, P304, P418" 중에서 "P0, P38, P76, P114, P152, P190, P228"의 값을 XOR 연산하여 최종적인 패리티 비트를 결정하는 것이 바람직하다.However, since the process of checking whether the parity bit value on the matrix is correct while changing the initial value of the parity bit P 0 may be a bit more computational, the parity bits “P 0 , P 38 , and P 76 as another example of the present invention. XOR operation of "P 0 , P 38 , P 76 , P 114 , P 152 , P 190 , P 228 " among ,, P 114 , P 152 , P 190 , P 228 , P 266 , P 304 , and P 418 " It is desirable to determine the final parity bit.
부연 설명하면, 상기 패리티 비트 중에서 "P266, P304, P418"을 XOR 연산 대상에서 제외시켰는데, 이는 "P266, P304, P418"의 값이 변하지 않기 때문이다. 즉, 228번째 행에는 3개의 패리티 비트가 결정되어야 되는데, 홀수 개의 패리티 비트 1번째와 2번째가 결정되면 나머지 3번째 패리티 비트는 항상 일정한 값을 갖는 점을 이용한 것이다.In detail, "P 266 , P 304 , and P 418 " of the parity bits are excluded from the XOR operation because the values of "P 266 , P 304 and P 418 " do not change. That is, three parity bits should be determined in the 228th row. When the first and second odd parity bits are determined, the third parity bit always has a constant value.
전술한 바와 같이, 본 발명에 따른 비트 단위의 패리티 비트를 결정하는 과정을 살펴보았고, 이하 본 발명에서 서브블록 단위로 한꺼번에 병렬적으로 패리티 비트를 결정하는 과정에 대해 이하 도 6 및 도 7을 참조하여 상세히 후술하기로 한다.As described above, the process of determining parity bits in units of bits according to the present invention has been described. Hereinafter, a process of determining parity bits in parallel in units of subblocks in the present invention will be described with reference to FIGS. 6 and 7. It will be described later in detail.
도 6은 본 발명에 따라 H 행렬의 패리티 부분 행렬을 연산한 결과로서, 그 패리티 검사 결과가 실패된 경우를 보여주기 위한 일실시예 설명도이며, 도 7은 본 발명에 따라 H 행렬의 패리티 부분 행렬을 연산한 결과로서, 그 패리티 검사 결과 가 XOR 연산에 의해 수정되어져 최종적인 패리티 비트가 결정된 경우를 보여주기 위한 일실시예 설명도이다. 여기서, H 행렬은 4×4 단위의 서브블록으로 이루어져 있다.FIG. 6 is an exemplary explanatory diagram illustrating a case where a parity check matrix of an H matrix is a result of failing a parity check result according to the present invention, and FIG. 7 is a parity part of an H matrix according to the present invention. As a result of calculating the matrix, the parity check result is modified by an XOR operation to explain a case where the final parity bit is determined. Here, the H matrix is composed of 4 × 4 subblocks.
앞서 도 4를 참조하여 설명한 비트 단위로 패리티 비트를 결정하는 과정에 대해, 본 발명에서는 서브블록 단위로 한꺼번에 병렬적으로 패리티 비트를 결정할 수 있다.For the process of determining the parity bits in the bit unit described above with reference to FIG. 4, in the present invention, the parity bits may be determined in parallel at the same time in the subblock unit.
즉, 패리티 비트 "P0, P37"이 결정되면, 본 발명의 서브블록 단위 병렬적 처리를 통해 곧바로 패리티 비트 "P0"부터 "P37"까지 결정한다.That is, when parity bits "P 0 and P 37 " are determined, parity bits "P 0 " to "P 37 " are immediately determined through the sub-block unit parallel processing of the present invention.
도 6 및 도 7 각각에 도시된 바와 같이, H 행렬의 정보 비트 부분은 도 3에 도시된 바와 같이 벡터 x에 해당된다. 이러한 벡터 x는 modulo 2 연산으로 표현되는데, 이 벡터 x에 대해 도 4에 도시된 H 행렬 상의 0번째 행 부분을 표현하면 다음의 [수학식 4]와 같다.As shown in FIGS. 6 and 7, the information bit portion of the H matrix corresponds to the vector x as shown in FIG. 3. Such a vector x is represented by a
[수학식 4]에서, j는 벡터 x의 j행을 나타낸다.In
그럼, 도 4에 도시된 H 행렬을 LDPC 코드 부호화기에 적용하기 위해서, 위와 같은 [수학식 4]를 이용해 456개의 패리티 비트에 대응되는 벡터 x의 값을 생성한다.Then, in order to apply the H matrix shown in FIG. 4 to the LDPC code encoder, the value of the vector x corresponding to 456 parity bits is generated using
상기 [수학식 4]를 이용해 모든 벡터 x를 생성한 상태에서, H 행렬 상의 서 브블록 행렬의 크기가 4×4로 가정하면, 그 LPCP 코드 부호화 과정은 도 6과 같다.In the state where all vectors x are generated using
도 6을 살펴보면, "▨"로 표시된 패리티 비트 부분의 첫번째 서브블록의 열이 모두 0으로서 초기화되어 있다. 이는 패리티 비트 "P0, P1, P2, P3"가 모두 0으로서 설정되었다는 것을 의미한다.Referring to FIG. 6, the columns of the first subblock of the parity bit portion indicated by "▨" are all initialized as zero. This means that the parity bits "P 0 , P 1 , P 2 , P 3 " are all set as zero.
앞서 도 4를 참조하여 설명한 바와 같이, [수학식 1]에 의해 패리티 비트 "P4, P5, P6, P7"은 각각 "0, 1, 0, 1"로 구할 수 있으며, 이어서 패리티 비트 "P8, P9, P10, P11"과, "P12, P13, P14, P15"를 차례대로 구할 수 있다.As described above with reference to FIG. 4, the parity bits "P 4 , P 5 , P 6 , and P 7 " may be obtained as "0, 1, 0, 1" by
그리고서, 최종적으로 12번째 행부터 15번째 행까지 구한 패리티 비트에 대한 패리티 검사 결과[즉 수학식 1]를 도 6에 "▥"로 표시된 서브블록으로 나타낼 수 있다[sub-block check result].Then, the parity check result (ie, Equation 1) for the parity bits finally obtained from the 12th to 15th rows may be represented as a subblock denoted by "▥" in FIG. 6 [sub-block check result].
도 6에 도시된 "▥"로 표시된 서브블록 중 0이 아닌 부분, 예컨대 1이 존재하면 ▨이 패리티 검사 결과는 실패, 즉 원하는 LDPC 코드 생성 실패를 의미한다[수학식 1을 만족하지 못함]. 도 6에 있어서는 12번째 행의 패리티 비트가 잘못되었음을 알 수 있다.If a non-zero portion, eg, 1, is present among the subblocks indicated by " ▥ " shown in Fig. 6, then the parity check result means failure, that is, failure to generate a desired LDPC code (does not satisfy Equation 1). In FIG. 6, it can be seen that the parity bit of the 12th row is wrong.
그렇다면, 도 6에 있어 그 패리티 검사 결과가 실패했기에 이를 수정해서 최종적인 패리티 비트를 결정해야 되겠다. 이러한 과정은 도 7에 도시된다.In this case, since the parity check result in FIG. 6 has failed, it should be corrected to determine the final parity bit. This process is shown in FIG.
즉, 도 6의 패리티 검사 결과, 예컨대 도 6에 "▥"로 표시된 서브블록을, 도 6에 "▨"로 표시된 패리티 비트 부분의 서브블록과 도 6에 "▧"로 표시된 패리티 비트 부분의 서브블록에 XOR 연산을 시킨다.That is, as a result of the parity check of FIG. 6, for example, a subblock denoted by "▥" in FIG. 6, a subblock denoted by "▨" in FIG. 6, and a subblock denoted by "▧" in FIG. 6. XOR the block.
그러면, 상기 XOR 연산 결과로서 도 7과 같은 결과를 얻을 수 있으며, 특히 12번째 행부터 15번째 행까지 패리티 비트 검사를 해 보면 도 7에 "▒"로 표시된 서브블록을 얻을 수 있다.As a result of the XOR operation, the result as shown in FIG. 7 may be obtained. In particular, when parity bit checks are performed from the 12th row to the 15th row, a subblock indicated by "
즉, 도 7에는 상기 [수학식 1]을 만족하는 패리티 비트 "P0"부터 "P15"까지를 최종적으로 구한 것을 보여주고 있다.That is, FIG. 7 shows finally obtained parity bits "P 0 " to "P 15 " satisfying
위와 같은 최종적인 패리티 비트를 결정하는데 있어 주의할 점은, 도 7에 "▤"로 표시된 패리티 비트 부분에 대해서는 XOR 연산 대상에서 제외시킨다는 것이다. Note that in determining the final parity bit as described above, the parity bit portion indicated by "▤" in FIG. 7 is excluded from the XOR operation.
예컨대, 도 6에 도시된 H 행렬이 도 7에 도시된 H 행렬로 수정되는 과정을 통해 확인할 수 있는데, 도 6에 "▥"로 표시된 패리티 부분의 서브블록과 도 6에 "▧"로 표시된 패리티 부분의 서브블록과 도 7에 "▥"로 표시된 패리티 부분의 서브블록과 도 7에 "▧"로 표시된 패리티 부분의 서브블록의 값이 각각 변하더라도, 그 "▤"로 표시된 패리티 비트 부분의 서브블록의 값이 변하지 않음을 의미한다. 이는 앞서 도 4를 참조하여 설명한 바와 같이 비트 단위로 패리티 비트를 결정하는 과정에 있어 3개의 패리티 비트가 결정되어지는 이유와 마찬가지로 서브블록 단위로 병렬적으로 패리티 비트를 결정하는 과정에 있어서도 동일한 것이다.For example, the H matrix illustrated in FIG. 6 may be confirmed by a process of modifying the H matrix illustrated in FIG. 7. The sub-block of the parity portion indicated by "▥" in FIG. 6 and the parity indicated by "▧" in FIG. 6. Even if the subblock of the portion and the subblock of the parity portion indicated by "에" in FIG. 7 and the subblock of the parity portion indicated by "에" in FIG. 7 are respectively changed, the subblock of the parity bit portion indicated by "부분" It means that the value of the block does not change. This is the same in the process of determining parity bits in parallel in units of subblocks, similarly to the reason why three parity bits are determined in the process of determining parity bits in bits as described above with reference to FIG. 4.
한편, 본 발명에서 제시하는 패리티 비트 결정 과정은, 서브블록 단위로 병렬적으로 패리티 비트를 결정하는 특징 외에도, 다른 특징으로서 도 7에 "▥"로 표시된 패리티 부분에 대응되는 열이 모두 동일한 싸이클릭 쉬프트를 가져도 무방, 예컨대 LDPC 코드 부호화에 어떠한 영향도 미치지 않는다는 것이다. 이를 도 8을 참조하여 설명하기로 한다.On the other hand, the parity bit determination process proposed in the present invention, in addition to the feature of determining the parity bit in parallel in units of sub-blocks, as another feature, all the columns corresponding to the parity portion indicated by "▥" in Figure 7 is the same cyclic The shift may have no effect, for example, on LDPC code encoding. This will be described with reference to FIG. 8.
도 8은 본 발명에 따라 H 행렬 상의 첫번째 열을 싸이클릭 쉬프트를 수행한 경우에 그 H 행렬의 패리티 부분 행렬을 연산한 결과를 보여주기 위한 일실시예 설명도로서, 첫번째 열을 1 싸이클릭 쉬프트를 한 경우를 보여주고 있다.FIG. 8 is an exemplary explanatory diagram illustrating a result of calculating a parity partial matrix of the H matrix when the first column on the H matrix is cyclic shifted according to the present invention. FIG. It shows a case where
도 8에 도시된 바와 같이, "▥"로 표시된 패리티 부분에 대응되는 열이 모두 동일한 싸이클릭 쉬프트를 가지는데, 이와 같은 싸이클릭 쉬프트가 LDPC 코드 부호화 성능에 어느 정도의 영향을 주긴 하지만 이는 앞서 설명한 본 발명에 따른 LDPC 코드 부호화 과정도 동일한 결과를 갖는다.As shown in Fig. 8, the columns corresponding to the parity portion indicated by "▥" all have the same cyclic shift. Although such cyclic shift has some influence on the LDPC code encoding performance, it is described above. The LDPC code encoding process according to the present invention has the same result.
그럼, 이하 LDPC 코드 부호화 과정 중, 전술한 본 발명의 패리티 비트 결정 과정에 대한 그 플로우를 도 9를 참조하여 정리한다.In the following LDPC code encoding process, the flow of the above-described parity bit determination process of the present invention will be summarized with reference to FIG.
도 9는 본 발명에 따른 사전에 지정한 패리티를 검사한 결과를 이용해 LDPC 코드를 부호화하는 방법 중 특히 패리티 비트 결정 과정에 대한 일실시예 순서도이다.9 is a flowchart illustrating a parity bit determination process in particular among methods of encoding an LDPC code using a result of checking a parity specified in advance according to the present invention.
길이 K의 정보 시퀀스를 길이 N의 코드로 LDPC 코드 부호화하는 과정을 예로 들어 설명하면 다음과 같다.A process of LDPC code encoding an information sequence of length K with a code of length N will be described as an example.
먼저, H 행렬을 토대로 검사 노드들에 대한 (N-K)개의 행과 (N-K)개의 열로 이루어진 이중 사선(dual diagonal) 구조를 갖는, 패리티 비트 검사 행렬을 구성하 는데 있어 상기 H 행렬의 패리티 검사 행렬 부분(parity part of H matrix)의 첫번째 열(first column)을 모두 동일한 수만큼의 싸이클릭 쉬프트(cyclic shift)를 수행한다(901). 다른 예로, 본 패리티 비트 검사 행렬을 구성하는데 있어 이 패리티 비트 검사 행렬을 전부 단위 행렬(identity matrix)로 구성할 수도 있다.First, the parity check matrix portion of the H matrix in constructing a parity bit check matrix having a dual diagonal structure composed of (NK) rows and (NK) columns of check nodes based on the H matrix. The first column of the parity part of H matrix performs the same number of cyclic shifts (901). As another example, in configuring the present parity bit check matrix, the parity bit check matrix may be configured as an identity matrix.
그런후, 상기 H 행렬 상에서 패리티 비트 검사 행렬을 구성한 상태에서, 임의의 이진수(binary) 값을 서브블록(sub-block) 단위로 삽입시켜 상기 구성한 패리티 비트 검사 행렬 상의 해당 패리티 비트의 값을 계산한다(902). 이와 같은 과정은 임의의 이진수 값을 H 행렬 상의 처음 서브블록 상의 패리티 비트 검사 행렬의 패리티 비트값으로 지정함에 따라 상기 H 행렬 상의 다른 서브블록 상의 패리티 비트 검사 행렬의 모든 패리티 비트값이 연쇄적으로 계산되는 것이다.Then, in a state where a parity bit check matrix is configured on the H matrix, a binary value is inserted in sub-block units to calculate a value of a corresponding parity bit on the configured parity bit check matrix. (902). This process assigns an arbitrary binary value as the parity bit value of the parity bit check matrix on the first subblock on the H matrix, and sequentially calculates all parity bit values of the parity bit check matrix on the other subblocks on the H matrix. Will be.
그런후, 상기 계산한 패리티 비트의 값을 검사해(903), 상기 패리티 비트의 값이 올바르지 않으면 H 행렬 상에서 가장 마지막에 위치한 서브블록에 대응되는 패리티 비트를 검사하고서(904), 이 패리티 비트 검사 결과가 "1"로 나타나는 패리티 비트 부분을 써치한다(905). 여기서 도 6을 참조해 부연 설명을 하면, H 행렬 상에서 가장 마지막에 위치한 서브블록은 행 12 ~ 15에 위치한 4×4 서브블록을 가르키며, 덧붙여 H 행렬 상에서 처음에 위치한 서브블록은 행 0 ~3에 위치한 4×4 서브블록을 가르킨다.Then, check the value of the calculated parity bit (903), if the value of the parity bit is not correct, check the parity bit corresponding to the last subblock on the H matrix (904), check this parity bit The parity bit portion whose result is " 1 " is searched (905). Referring to FIG. 6, the last subblock on the H matrix indicates a 4 × 4 subblock located in
그리고서, 상기 써치한 패리티 비트 부분을, 처음에 임의로 이진수 값을 삽입시킨 패리티 비트 부분과 패리티 비트간 연립방정식을 통해 얻은 패리티 비트 부분을 서브블록 단위로 XOR 연산을 수행하면서(906), 최종적으로 "H·CT = 0"[수학식 1]을 만족하는 패리티 비트의 값을 그 H 행렬의 값으로 결정한다(907).Then, the searched parity bit portion is first performed by performing an XOR operation on the parity bit portion in which a binary value is first arbitrarily inserted and the parity bit portion obtained through a system of parity bits in units of subblocks (906). The value of the parity bit satisfying H C T = 0 "(Equation 1) is determined as the value of the H matrix (907).
부가적으로, 전술한 본 발명에서는 패리티 비트 P0의 초기값[곧 서브블록의 초기값]을 0으로서 설정했지만, 어떠한 이진수의 랜덤한 숫자의 조합을 초기값으로 사용해도 마지막 행에 해당되는 서브블록의 패리티 비트 검사를 도 6 및 도 7 각각 에서 "▤"로 표시된 패리티 비트 부분을 제외한 서브블록에 XOR 연산을 수행해 [수학식 1]을 만족하는 최종적인 패리티 비트를 결정하면 된다.In addition, in the present invention described above, although the initial value of the parity bit P 0 (that is, the initial value of the subblock) is set as 0, even if any combination of random numbers of binary numbers is used as the initial value, The parity bit check of the block may be performed by performing an XOR operation on the subblock except for the parity bit portion indicated by “▤” in FIGS. 6 and 7 to determine the final parity bit that satisfies [Equation 1].
또한, 임의의 패리티 비트 초기값을 첫번째 열의 서브블록에 한정시켜 본 패리티 비트 결정 과정을 수행하지 않고서도 도 6에 "▤"로 표시된 패리티 비트 부분을 제외한 나머지 열의 서브블록 중에서 선택해 그 과정을 수행해도 무방하다.Further, even if the parity bit initial value is limited to the subblock of the first column, the parity bit determination process may be performed by selecting from the subblocks of the remaining columns except for the parity bit portion indicated by "▤" in FIG. It's okay.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.
상기와 같은 본 발명은 LDPC 코드 부호화에 있어 고속 통신에 적합하고, 부호화 복잡도 및 리소스 소요를 최소화할 수 있는 효과가 있다.As described above, the present invention is suitable for high speed communication in LDPC code encoding, and has an effect of minimizing encoding complexity and resource requirements.
또한, 본 발명은 패리티 검사 행렬의 구조를 기존 LDPC 코드 부호화 기법과 서로 동일하게 그대로 유지하면서도, 단지 H 행렬의 구조만을 약간 변경시켜 효율적으로 LDPC 코드를 부호화할 수 있은 효과가 있다.In addition, while the structure of the parity check matrix is maintained in the same manner as the conventional LDPC code encoding method, the LDPC code can be efficiently encoded by only slightly changing the structure of the H matrix.
또한, 본 발명은 H 행렬 상의 패리티 비트의 해를 정확하게 구할 수 있는 효과가 있다.In addition, the present invention has an effect that can accurately solve the parity bit on the H matrix.
또한, 본 발명은 장치적인 측면에 있어 LDPC 코드 복호화기의 구조를 본 H 행렬에 대응되게 변경해 LDPC 코드 부호화 동작을 수행시킬 수 있도록 하는 효과가 있다.In addition, the present invention has the effect of changing the structure of the LDPC code decoder corresponding to the H matrix in the aspect of the device to perform the LDPC code coding operation.
Claims (10)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060096274A KR100837730B1 (en) | 2006-09-29 | 2006-09-29 | How to encode an LDPC code using the result of checking the parity specified in advance |
| US12/443,688 US8392792B2 (en) | 2006-09-29 | 2007-10-01 | Method for encoding low density parity check codes using result of checking previously specified parity bits |
| PCT/KR2007/004785 WO2008039035A1 (en) | 2006-09-29 | 2007-10-01 | Method for encoding low density parity check codes using result of checking previously specified parity bits |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060096274A KR100837730B1 (en) | 2006-09-29 | 2006-09-29 | How to encode an LDPC code using the result of checking the parity specified in advance |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20080030329A KR20080030329A (en) | 2008-04-04 |
| KR100837730B1 true KR100837730B1 (en) | 2008-06-13 |
Family
ID=39230397
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020060096274A Expired - Fee Related KR100837730B1 (en) | 2006-09-29 | 2006-09-29 | How to encode an LDPC code using the result of checking the parity specified in advance |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8392792B2 (en) |
| KR (1) | KR100837730B1 (en) |
| WO (1) | WO2008039035A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100949519B1 (en) * | 2007-12-18 | 2010-03-24 | 한국전자통신연구원 | Parity check matrix generation method for low complexity and high speed decoding, low density parity check code encoding apparatus using same, and method |
| 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 |
| JP5601182B2 (en) * | 2010-12-07 | 2014-10-08 | ソニー株式会社 | Data processing apparatus and data processing method |
| CN105339902B (en) * | 2013-07-31 | 2018-11-20 | 慧与发展有限责任合伙企业 | The method, apparatus and computer-readable medium realized for versioned memory |
| KR102081588B1 (en) | 2013-08-08 | 2020-02-26 | 삼성전자 주식회사 | the method of ECC decoder operation and the memory controller including it |
| KR102098202B1 (en) * | 2014-05-15 | 2020-04-07 | 삼성전자주식회사 | Encoding apparatus and encoding method thereof |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040092922A (en) * | 2003-04-29 | 2004-11-04 | 삼성전자주식회사 | Apparatus and method for coding of low density parity check code |
| KR20050035729A (en) * | 2003-10-14 | 2005-04-19 | 삼성전자주식회사 | Method for encoding of low density parity check code |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7406647B2 (en) * | 2001-12-06 | 2008-07-29 | Pulse-Link, Inc. | Systems and methods for forward error correction in a wireless communication network |
| AU2002312175A1 (en) | 2002-01-29 | 2003-09-02 | Seagate Technology Llc | A method and decoding apparatus using linear code with parity check matrices composed from circulants |
| US6961888B2 (en) | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
| US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
| CN100550655C (en) * | 2004-11-04 | 2009-10-14 | 中兴通讯股份有限公司 | A low-density parity-check code encoder/decoder and its generation method |
| KR100913876B1 (en) | 2004-12-01 | 2009-08-26 | 삼성전자주식회사 | Method and apparatus for generating low density parity check code |
| KR100881002B1 (en) * | 2005-02-22 | 2009-02-03 | 삼성전자주식회사 | Apparatus and method for generating low density parity check code using zigzag code in communication system |
| US7584400B2 (en) * | 2005-04-15 | 2009-09-01 | Trellisware Technologies, Inc. | Clash-free irregular-repeat-accumulate code |
-
2006
- 2006-09-29 KR KR1020060096274A patent/KR100837730B1/en not_active Expired - Fee Related
-
2007
- 2007-10-01 US US12/443,688 patent/US8392792B2/en not_active Expired - Fee Related
- 2007-10-01 WO PCT/KR2007/004785 patent/WO2008039035A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040092922A (en) * | 2003-04-29 | 2004-11-04 | 삼성전자주식회사 | Apparatus and method for coding of low density parity check code |
| US20040221223A1 (en) | 2003-04-29 | 2004-11-04 | Nam-Yul Yu | Apparatus and method for encoding a low density parity check code |
| KR20050035729A (en) * | 2003-10-14 | 2005-04-19 | 삼성전자주식회사 | Method for encoding of low density parity check code |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20080030329A (en) | 2008-04-04 |
| WO2008039035A1 (en) | 2008-04-03 |
| US8392792B2 (en) | 2013-03-05 |
| US20100031116A1 (en) | 2010-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100641052B1 (en) | LDPC encoder and decoder, and method for LDPC encoding and decoding | |
| CN100581064C (en) | Low-density parity-check code decoding device and method | |
| US8335963B2 (en) | Method for constructing checking matrix of LDPC code and coding amd decoding apparatus utilizing the method | |
| JP4168055B2 (en) | Method and apparatus for generating low density parity check code | |
| US8347178B2 (en) | Method, device and apparatus for correcting bursts | |
| US10326478B2 (en) | Apparatus and method for encoding and decoding data in twisted polar code | |
| JP5705106B2 (en) | Method for performing soft decision decoding of Euclidean space Reed-Muller code | |
| JP5875713B2 (en) | Transmitter and receiver, and coding rate variable method | |
| TWI387212B (en) | Apparatus and method for encoding and decoding channel in a communication system using low-density parity-check codes | |
| KR20070086301A (en) | Structural LDPC Design Using Vector Row Grouping | |
| JP2008514106A (en) | Encoding and decoding method using LDPC code | |
| US8392792B2 (en) | Method for encoding low density parity check codes using result of checking previously specified parity bits | |
| KR101147768B1 (en) | Apparatus and method for decoding using channel code | |
| US7493548B2 (en) | Method and apparatus for encoding and decoding data | |
| KR20070063851A (en) | Parity check matrix, parity check matrix generation method, encoding method and error correction device | |
| EP2195928B1 (en) | Encoding method and device for tail-biting trellis ldpc codes | |
| CN111527705B (en) | Channel code construction for decoder reuse | |
| US11031954B1 (en) | Data decoding method using LDPC code as error correction code and data transmitting method thereof | |
| KR20080074858A (en) | Method and apparatus for decoding and encoding data | |
| KR20080000479A (en) | Apparatus and method for receiving signal in communication system | |
| US8255782B2 (en) | Method for constructing LDPC code in the mobile digital multimedia broadcast system | |
| CN119496516B (en) | Dynamic coding construction and low-complexity coding method and device for error correction and encryption fusion | |
| Cheng et al. | List-decoding of parity-sharing Reed-Solomon codes in magnetic recording systems | |
| RU2365034C2 (en) | Method and device for data coding and decoding | |
| KR100999272B1 (en) | Low Density Parity Check Code Encoding Device and Its Method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| 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 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| 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 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| 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: 20120531 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 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20130606 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: 20130606 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |