KR102045438B1 - Method and Apparatus for Decoding of Low-density parity-check - Google Patents

Method and Apparatus for Decoding of Low-density parity-check Download PDF

Info

Publication number
KR102045438B1
KR102045438B1 KR1020180122809A KR20180122809A KR102045438B1 KR 102045438 B1 KR102045438 B1 KR 102045438B1 KR 1020180122809 A KR1020180122809 A KR 1020180122809A KR 20180122809 A KR20180122809 A KR 20180122809A KR 102045438 B1 KR102045438 B1 KR 102045438B1
Authority
KR
South Korea
Prior art keywords
decoding
check
variable
value
nodes
Prior art date
Application number
KR1020180122809A
Other languages
Korean (ko)
Inventor
허준
김태현
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180122809A priority Critical patent/KR102045438B1/en
Application granted granted Critical
Publication of KR102045438B1 publication Critical patent/KR102045438B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria

Landscapes

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

Abstract

The present invention relates to a method for decoding a low-density parity-check (LDPC) code and an apparatus therefor. According to one embodiment of the present invention, a method for decoding an LDPC code is a method for decoding, by an apparatus, an LDPC code. The method comprises the steps of: calculating a check-variable message value transferred from each of a plurality of check nodes to each of a plurality of variable nodes connected to each of the plurality of check nodes; calculating a posteriori probability log likelihood ratio (APP LLR) value of each of the plurality of variable nodes based on the calculated at least one check-variable message value; determining a decoding bit string based on the APP LLR value, and determining whether the decoding bit string is a valid codeword using a parity check matrix; calculating the number of consecutive unsatisfied parity-checks (CUPCs) that have failed at predetermined measurement intervals when the decoding bit string is not a valid code string; and comparing the number of CUPCs with a predetermined threshold value to determine whether the decoding has failed. According to the present invention, it is possible to reduce an unnecessarily repeating decoding process, thereby saving power consumed for the decoding process.

Description

LDPC 부호의 복호를 위한 방법 및 장치{Method and Apparatus for Decoding of Low-density parity-check }Method and apparatus for decoding of LDPC code {Method and Apparatus for Decoding of Low-density parity-check}

본 발명은 LDPC 부호의 복호를 위한 방법 및 장치에 관한 것으로, 더욱 상세하게는 LDPC(Low-density parity-check) 부호의 복호과정에서 복호 실패를 사전에 예측하여 복호를 중단하는 LDPC 부호의 복호를 위한 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for decoding an LDPC code. More particularly, the present invention relates to decoding of an LDPC code that stops decoding by predicting a decoding failure in advance in the decoding process of a low-density parity-check (LDPC) code. A method and apparatus for the same.

LDPC 부호는 Gallagar가 제안한 우수한 오류 정정 능력을 갖고 있는 오류 정정 부호로, 유사한 정정 능력을 갖고 있는 터보 부호와 극 부호와 비교하여, 병렬화 및 복잡도 측면에서 우수하다고 알려져 있다. DVB, ATSC, CMMB 등의 방송 표준뿐만 아니라, WiMax, WiFi, WiGig와 같은 다양한 통신 표준에서 사용되고 있으며, 최근 5G 통신 표준에서 정보 전송을 위한 오류 정정 부호로 선정되어 사용될 예정이다. 그 외에도, LDPC 부호는 NAND Flash 메모리에서 발생하는 간섭에 의한 오류를 정정하는 오류 정정 부호로 널리 사용되고 있다.The LDPC code is an error correcting code proposed by Gallagar, which is known to be superior in terms of parallelism and complexity, compared to a turbo code and a polar code having similar correction capabilities. It is used in various communication standards such as WiMax, WiFi, WiGig, as well as broadcasting standards such as DVB, ATSC, and CMMB, and is currently selected as an error correction code for information transmission in 5G communication standards. In addition, the LDPC code is widely used as an error correction code for correcting an error caused by interference occurring in a NAND Flash memory.

부호 길이가 N이고 부호율이 R인 LDPC 부호는 M개의 행과 N개의 열로 이루어진 패리티 검사 행렬 H로 그 구조가 특징지어진다. 이때, M은 LDPC 부호에 포함되어 있는 패리티 검사식의 개수와 같다. 패리티 검사 행렬을 바탕으로 복호를 수행하며, 일반적으로 Tanner 그래프를 이용하여 복호 과정을 표현한다. Tanner 그래프는 N개 의 변수 노드와 M개의 체크 노드로 구성되어 있으며, 유관한 변수 노드와 체크 노드들을 선으로 연결한 구조이다. LDPC 부호의 복호 과정은 채널로부터 받은 정보를 이용하여, 변수 노드들과 체크 노드들이 정보들을 모아 연산하고, 연결되어 있는 상대 노드로 연산 결과를 전달하는 과정을 반복적으로 수행하는 것이며, 사전에 정해 놓은 최대 반복 복호 횟수에 도달하거나 패리티 검사 식을 만족할 때까지 노드 간 정보 연산 및 전달 과정을 반복한다.The LDPC code of code length N and code rate R is characterized by a parity check matrix H consisting of M rows and N columns. At this time, M is equal to the number of parity check equations included in the LDPC code. Decoding is performed based on the parity check matrix, and a decoding process is generally expressed using a Tanner graph. Tanner graph is composed of N variable nodes and M check nodes, and is a structure in which relevant variable nodes and check nodes are connected by lines. The decoding process of the LDPC code is to repeatedly perform the process of collecting the information by the variable nodes and the check nodes using the information received from the channel, and transmitting the result of the calculation to the connected counterpart node. The information operation and transfer process between nodes is repeated until the maximum number of iteration decoding times is reached or the parity check expression is satisfied.

그러나, 종래의 LDPC 부호의 복호 기법의 경우 최대 반복 복호 횟수까지 진행하여야 오류 정정에 대한 복호 실패를 판단하는 단점이 있다. However, in the conventional LDPC code decoding method, there is a disadvantage in that a decoding failure for error correction must be progressed up to a maximum number of repeated decoding.

이에, LDPC 부호를 오류 정정 부호로 사용하는 통신 시스템에서 LDPC 부호의 복호 실패를 최대 반복 복호 횟수까지 도달하기 이전에 예측하여 복호를 사전에 중단할 수 있는 기술 개발이 요구되고 있다. Therefore, in a communication system using an LDPC code as an error correction code, there is a demand for a technology development capable of stopping decoding in advance by predicting a decoding failure of an LDPC code up to a maximum number of repeated decoding times.

한국 등록특허공보 제10-1535225호(2015.07.09. 공고)Korea Patent Registration No. 10-1535225 (2015.07.09. Notification)

본 발명이 해결하고자 하는 기술적 과제는 LDPC 부호를 오류 정정 부호로 사용하는 통신 시스템에서 오류를 정정하지 못하여 복호에 실패하는 경우 불필요한 복호 과정을 진행하지 않아도 되는 LDPC 부호의 복호를 위한 방법 및 장치를 제공하는데 있다. The technical problem to be solved by the present invention is to provide a method and apparatus for decoding an LDPC code that does not need to perform an unnecessary decoding process when the decoding fails in the communication system using the LDPC code as an error correction code, the error is not corrected. It is.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시예에 따른 LDPC 부호의 복호를 위한 방법은, 장치가 저밀도 패리티 검사(low density parity check, LDPC) 부호를 복호하는 방법에 있어서, 복수의 체크 노드(check node) 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드(variable node) 각각으로 전달되는 체크-변수 메시지 값을 연산하는 단계, 상기 연산된 적어도 하나의 체크-변수 메시지 값에 기반하여, 상기 복수의 변수 노드들 각각의 사후 확률 로그 우도 비(a posteriori probability log likelihood ratio, APP LLR) 값을 연산하는 단계, 상기 APP LLR 값에 기초하여 디코딩 비트열을 결정하고, 패리티 검사 행렬을 이용하여 상기 디코딩 비트열이 정당한 부호어인지를 판단하는 단계, 상기 디코딩 비트열이 정당한 부호열이 아닌 경우, 일정 측정 간격을 두고 모두 실패한 패리티 검사(Consecutive Unsatisfied Parity Check, CUPC) 개수를 산출하는 단계, 상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 판단하는 단계를 포함한다. In the method for decoding an LDPC code according to an embodiment of the present invention, in the method for the device to decode a low density parity check (LDPC) code, the plurality of check nodes from each of the plurality of check nodes Computing a check-variable message value that is passed to each of a plurality of variable nodes connected to each of the check nodes of, based on the calculated at least one check-variable message value, each of the plurality of variable nodes Calculating a posteriori probability log likelihood ratio (APP LLR) value, determining a decoding bit stream based on the APP LLR value, and using a parity check matrix, Determining whether the decoding bit sequence, if the decoding bit string is not a legitimate code string, parity check failed all at a predetermined measurement interval (Consecutive Uns calculating a number of atisfied Parity Check (CUPC), and comparing the number of CUPCs with a preset threshold to determine whether a decoding has failed.

바람직하게는, 상기 체크-변수 메시지 값을 연산하는 단계 이전에, 상기 복수의 변수 노드에서 연결된 복수의 체크 노드로 전달되는 변수-체크 메시지 값을 초기화하는 단계를 더 포함할 수 있다. Preferably, the method may further include initializing the variable-check message value transmitted from the plurality of variable nodes to the plurality of connected check nodes before calculating the check-variable message value.

바람직하게는, 상기 체크-변수 메시지 값은, 상기 변수-체크 메시지 값에 기초하여 연산될 수 있다. Advantageously, said check-variable message value may be calculated based on said variable-check message value.

바람직하게는, 상기 APP LLR 값은, 각 변수 노드에서는 채널로부터 받은 정보와 상기 체크-변수 메시지 값에 기초하여 산출될 수 있다. Preferably, the APP LLR value may be calculated based on the information received from the channel and the check-variable message value at each variable node.

바람직하게는, 상기 CUPC 개수는 아래 수학식에 의해 산출될 수 있다. Preferably, the number of CUPC can be calculated by the following equation.

[수학식] [Equation]

Figure 112018101438819-pat00001
Figure 112018101438819-pat00001

여기서,

Figure 112018101438819-pat00002
Figure 112018101438819-pat00003
는 각각
Figure 112018101438819-pat00004
번째와
Figure 112018101438819-pat00005
번째 연산에서의 패리티 검사 결과를 보여주는 이진 벡터, T는 측정 간격, ()'는 행렬의 행과 열을 바꿔주는 transpose 연산을 의미함.here,
Figure 112018101438819-pat00002
and
Figure 112018101438819-pat00003
Are each
Figure 112018101438819-pat00004
Th and
Figure 112018101438819-pat00005
Binary vector showing the parity check result of the first operation, T is the measurement interval, and () 'is a transpose operation that swaps rows and columns of a matrix.

바람직하게는, 상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 판단하는 단계는, 상기 CUPC 개수가 상기 임계값을 초과하는지를 판단하는 단계, 상기 CUPC 개수가 상기 임계값을 초과하는 경우 복호 실패로 예측하고, 초과하지 않은 경우 변수-체크 메시지 값을 연산하는 단계를 포함할 수 있다. Preferably, the step of comparing the number of CUPCs with a predetermined threshold to determine whether the decoding failed, determining whether the number of CUPCs exceeds the threshold, decoding if the number of CUPCs exceeds the threshold Predicting failure, and calculating a variable-check message value if not exceeded.

바람직하게는, 상기 임계값은, PEXIT 차트 기법에 기초하여 결정될 수 있다. Advantageously, said threshold value may be determined based on a PEXIT chart technique.

본 발명의 다른 실시예에 따른 LDPC 부호의 복호시 복호 실패 예측을 위한 임계값 결정 방법은, LDPC 부호에 대한 반복 복호 기법 수행 시, 복호 실패를 예측하기 위한 임계값을 결정하는 방법에 있어서, 송신 신호와 복수의 체크 노드 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전파되는 메시지 의 상호 정보량인 체크-변수 상호 정보량을 각각 산출하는 단계, 상기 체크-변수 상호 정보량에 기초하여 송신 신호와 변수 노드에 누적된 메시지 간의 상호 정보량인 누적 상호 정보량을 산출하는 단계, 상기 누적 상호 정보량에 기초하여, 송신 신호와 패리티 검사 정보 간의 상호 정보량인 패리티 검사 상호 정보량을 산출하는 단계, 상기 패리티 검사 상호 정보량에 기초하여, 패리티 검사가 만족하지 않을 확률을 산출하는 단계, 상기 확률에 기초한 연속으로 만족하지 않는 패리티 검사의 평균 개수에 기초하여 임계값을 산출하는 단계를 포함한다. According to another embodiment of the present invention, a method for determining a threshold value for predicting a decoding failure when decoding an LDPC code is performed. In the method for determining a threshold value for predicting a decoding failure when performing an iterative decoding method on an LDPC code, Calculating a check-variable mutual information amount, which is a mutual information amount between a signal and a message propagated from each of the plurality of check nodes to each of the plurality of variable nodes connected to the plurality of check nodes, respectively, based on the check-variable mutual information amount Calculating a cumulative mutual information amount which is mutual information amount between a transmission signal and a message accumulated in a variable node, calculating a parity check mutual information amount which is mutual information amount between a transmission signal and parity check information based on the accumulated mutual information amount, and the parity Based on the amount of check mutual information, calculate the probability that the parity check is not satisfied. Phase, based on the average number of the parity check does not satisfy a series based on the probability and a step of calculating a threshold value.

바람직하게는, 상기 체크-변수 상호 정보량은, LDPC 부호의 베이스 매트릭스(Base Matrix) 및 이전 변수-체크 상호 정보량에 기초하여 산출될 수 있다. Preferably, the check-variable mutual information amount may be calculated based on a base matrix of the LDPC code and a previous variable-check mutual information amount.

바람직하게는, 상기 이전 변수-체크 상호 정보량의 초기값은, 채널로부터 수신한 신호에 대한 상호 정보량으로 설정될 수 있다. Preferably, the initial value of the previous variable-check mutual information amount may be set to the mutual information amount for the signal received from the channel.

바람직하게는, 상기 누적 상호 정보량은, LDPC 부호의 베이스 매트릭스(Base Matrix), 상기 체크-변수 상호 정보량 및 채널로부터 수신한 신호에 대한 상호 정보량에 기초하여 산출될 수 있다. Preferably, the cumulative mutual information amount may be calculated based on a base matrix of an LDPC code, the check-variable mutual information amount, and the mutual information amount of a signal received from a channel.

바람직하게는, 상기 패리티 검사 상호 정보량은 아래 수학식에 의해 산출될 수 있다. Preferably, the parity check mutual information amount may be calculated by the following equation.

[수학식] [Equation]

Figure 112018101438819-pat00006
Figure 112018101438819-pat00006

여기서,

Figure 112018101438819-pat00007
는 타입-i 패리티 검사 정보에 대한 패리티 검사 상호 정보량,
Figure 112018101438819-pat00008
는 타입-s 변수 노드에 대한 누적 상호 정보량,
Figure 112018101438819-pat00009
는 base행렬의
Figure 112018101438819-pat00010
번째 행, s번째 열에 있는 값,
Figure 112018101438819-pat00011
Figure 112018101438819-pat00012
함수의 역함수를 의미함.here,
Figure 112018101438819-pat00007
Is the amount of parity check mutual information for type-i parity check information,
Figure 112018101438819-pat00008
For type-s variable nodes Cumulative mutual information,
Figure 112018101438819-pat00009
Is the base matrix
Figure 112018101438819-pat00010
Row
1, value in column s,
Figure 112018101438819-pat00011
Is
Figure 112018101438819-pat00012
Inverse function of a function.

바람직하게는, 상기 임계값을 산출하는 단계는, 패리티 검사가 첫 번째 연산과

Figure 112018101438819-pat00013
번째 연산에서 모두 만족하지 않을 확률을 산출하는 단계, 첫 번째 연산과
Figure 112018101438819-pat00014
번째 연산에서 모두 만족하지 않을 패리티 검사 평균 개수를 산출하는 단계, 최대 반복 복호 횟수와 상기 패리티 검사 평균 개수에 기초하여 임계값을 산출하는 단계를 포함할 수 있다. Preferably, the step of calculating the threshold value, the parity check is the first operation and the
Figure 112018101438819-pat00013
Calculating the probability of not satisfying all of the first operations,
Figure 112018101438819-pat00014
The method may include calculating an average number of parity checks that will not be satisfied in the first operation, and calculating a threshold value based on the maximum number of repeated decoding and the average number of parity checks.

바람직하게는, 상기 임계값(

Figure 112018101438819-pat00015
)은 아래 수학식에 의해 산출될 수 있다. Preferably, the threshold value (
Figure 112018101438819-pat00015
) May be calculated by the following equation.

[수학식] [Equation]

Figure 112018101438819-pat00016
Figure 112018101438819-pat00016

여기서,

Figure 112018101438819-pat00017
은 첫번째 연산에서 타입-s 패리티 검사가 만족하지 않을 확률,
Figure 112018101438819-pat00018
Figure 112018101438819-pat00019
번째 연산에서 타입-s 패리티 검사가 만족하지 않을 확률을 의미함.here,
Figure 112018101438819-pat00017
Is the probability that the type-s parity check is not satisfied in the first operation,
Figure 112018101438819-pat00018
silver
Figure 112018101438819-pat00019
The probability of a type-s parity check not being satisfied in the first operation.

본 발명의 또 다른 실시예에 따른 LDPC 부호의 복호를 위한 장치는, 복수의 체크 노드 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전달되는 체크-변수 메시지 값을 연산하고, 상기 체크-변수 메시지 값에 기초하여 상기 복수의 변수 노드들 각각의 APP LLR 값을 연산하는 연산부, 상기 APP LLR 값에 기초하여 디코딩 비트열을 결정하고, 패리티 검사 행렬을 이용하여 상기 디코딩 비트열이 정당한 부호어인지를 판단하는 비트열 정당성 판단부, 상기 디코딩 비트열이 정당한 부호열이 아닌 경우, 일정 측정 간격을 두고 모두 실패한 패리티 검사(CUPC) 개수를 산출하고, 상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 예측하는 복호 실패 예측부를 포함한다. The apparatus for decoding an LDPC code according to another embodiment of the present invention calculates a check-variable message value transferred from each of a plurality of check nodes to each of a plurality of variable nodes connected to each of the plurality of check nodes, and An operation unit for calculating an APP LLR value of each of the plurality of variable nodes based on a check-variable message value, determining a decoding bit string based on the APP LLR value, and using the parity check matrix, Bit string validity determination unit for determining whether a code word, if the decoding bit string is not a valid code string, calculates the number of failed parity check (CUPC) at a predetermined measurement interval, and the number of CUPC and the predetermined threshold value And a decoding failure prediction unit for comparing the prediction of the decoding failure.

바람직하게는, 상기 복호 실패 예측부는 상기 CUPC 개수가 상기 임계값을 초과하는 경우 복호 실패로 예측하고, 초과하지 않은 경우 변수-체크 메시지 값을 연산할 수 있다. Preferably, the decoding failure predicting unit predicts that the decoding failure when the number of CUPC exceeds the threshold, and calculates a variable-check message value when not exceeding.

바람직하게는, 송신 신호와 상기 복수의 체크 노드 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전파되는 메시지 간의 상호 정보량인 체크-변수 상호 정보량을 각각 산출하고, 상기 체크-변수 상호 정보량에 기초하여 송신 신호와 변수 노드에 누적된 메시지 간의 상호 정보량인 누적 상호 정보량을 산출하며, 상기 누적 상호 정보량에 기초하여, 송신 신호와 패리티 검사 정보 간의 상호 정보량인 패리티 검사 상호 정보량을 산출하고, 상기 패리티 검사 상호 정보량에 기초하여, 패리티 검사가 만족하지 않을 확률을 산출하며, 상기 확률에 기초한 연속으로 만족하지 않는 패리티 검사의 평균 개수에 기초하여 임계값을 산출하는 임계값 결정부를 더 포함할 수 있다. Preferably , the transmission signal A message propagated from each of the plurality of check nodes to each of a plurality of variable nodes connected to each of the plurality of check nodes. Calculating the amount of mutual information of check-variable information, which is the amount of mutual information, and calculating the amount of mutual information, which is the amount of mutual information between messages transmitted at the transmission signal and the variable node, based on the amount of mutual information of the check-variables, And calculating a parity check mutual information amount, which is a mutual information amount between the transmission signal and parity check information, and calculating a probability that the parity check is not satisfied based on the parity check mutual information amount, and parity check that is not continuously satisfied based on the probability. The apparatus may further include a threshold determiner configured to calculate a threshold based on the average number of.

본 발명에 따르면, LDPC 부호를 오류 정정 부호로 사용하는 통신 시스템에서 LDPC 부호의 복호 실패를 최대 반복 복호 횟수까지 도달하기 이전에 예측하여 복호를 사전에 중단함으로써, 불필요한 반복 복호 과정을 줄일 수 있어서 복호 전력을 절약할 수 있으며, 빠른 재전송 요청을 통해 보다 원활한 통신을 할 수 있다. According to the present invention, in a communication system using an LDPC code as an error correction code, the decoding is stopped in advance by predicting a decoding failure of the LDPC code up to a maximum number of repeated decoding times, thereby reducing unnecessary iterative decoding processes. It saves power and enables faster communication with faster retransmission requests.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 실시예에 따른, LDPC 부호의 복호를 위한 방법 및 장치에서 베이스 매트릭스(Base Matrix)를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 LDPC 부호의 복호 장치를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 LPDC 부호의 복호 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 복호 실패 판단을 임계값 결정 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따른 복호에 성공하는 경우와 복호에 실패하는 경우로 나누어 T=3 간격에서 모두 만족하지 않은 패리티 검사식의 평균 개수를 측정한 결과를 비교한 도면이다.
도 6은 본 발명의 실시예에 따른 신호 대 잡음비에 따른 프레임 오류율을 비교한 도면이다.
도 7은 본 발명의 실시예에 따른 신호 대 잡음비에 따른 평균 반복 복호 횟수를 비교한 도면이다.
도 8은 본 발명의 실시예에 따른 부호 길이 N=672, 부호율 R=1/2인 LDPC 부호에서의 신호 대 잡음비에 따른 복호 실패 예측 빈도를 비교한 도면이다.
도 9는 본 발명의 실시예에 따른 부호 길이 N=672, 부호율 R=1/2인 802.11ad 표준 LDPC 부호에서의 신호 대 잡음비에 따른 복호 실패 판단 정확도를 비교한 도면이다.
1 is a diagram for describing a base matrix in a method and apparatus for decoding an LDPC code according to an embodiment of the present invention.
2 is a block diagram illustrating an apparatus for decoding an LDPC code according to an embodiment of the present invention.
3 is a flowchart illustrating a decoding method of an LPDC code according to an embodiment of the present invention.
4 is a flowchart illustrating a method for determining a threshold value for determining a decoding failure according to an embodiment of the present invention.
5 is a diagram comparing the results of measuring the average number of unsatisfactory parity check equations in T = 3 intervals, divided into a case where the decoding is successful and the case where the decoding fails according to an embodiment of the present invention.
6 is a diagram comparing frame error rates according to signal-to-noise ratios according to an embodiment of the present invention.
FIG. 7 is a diagram comparing average repetition decoding times according to a signal-to-noise ratio according to an embodiment of the present invention. FIG.
8 is a diagram comparing decoding failure prediction frequencies according to signal-to-noise ratios in LDPC codes having code length N = 672 and code rate R = 1/2 according to an embodiment of the present invention.
9 is a diagram comparing decoding failure determination accuracy according to signal to noise ratio in an 802.11ad standard LDPC code having code length N = 672 and code rate R = 1/2 according to an embodiment of the present invention.

이하, 첨부한 도면을 참고로 하여 본 발명의 여러 실시 예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예들에 한정되지 않는다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.

본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 따라서 앞서 설명한 참조 부호는 다른 도면에서도 사용할 수 있다.In order to clearly describe the present invention, parts irrelevant to the description are omitted, and like reference numerals designate like elements throughout the specification. Therefore, the aforementioned reference numerals may be used in other drawings.

또한, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다. 도면에서 여러 층 및 영역을 명확하게 표현하기 위하여 두께를 과장되게 나타낼 수 있다.In addition, since the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of description, the present invention is not necessarily limited to the illustrated. In the drawings, the thicknesses may be exaggerated for clarity.

LDPC(Low Density Parity Check)는 임의의 연산 과정을 반복적으로 수행함으로서 코드워드에 포함된 오류를 정정하는 Iterative 방식의 부호화/복호화 방식의 일종이다.Low Density Parity Check (LDPC) is a kind of iterative encoding / decoding method that corrects an error included in a codeword by repeatedly performing an arbitrary calculation process.

이하, 본 발명의 실시예에 따른 LDPC 부호의 복호를 위한 방법 및 장치를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.Hereinafter, a method and apparatus for decoding an LDPC code according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

우선, 본 발명의 실시예에 따른 LDPC 부호의 복호를 위한 방법 및 장치를 설명하기에 앞서, 도 1을 참조하여 LDPC 부호의 베이스 매트릭스(base matrix) 및 상호 정보량(mutual information)을 설명한다.First, a base matrix and mutual information amount of an LDPC code will be described with reference to FIG. 1 before explaining a method and apparatus for decoding an LDPC code according to an embodiment of the present invention.

도 1은 본 발명의 실시예에 따른, LDPC 부호의 복호를 위한 방법 및 장치에서 베이스 매트릭스(Base Matrix)를 설명하기 위한 도면이다.1 is a diagram for describing a base matrix in a method and apparatus for decoding an LDPC code according to an embodiment of the present invention.

예컨대, 본 발명의 실시예에 따른 LDPC 부호의 셔플 복호를 위한 복호 순서 결정 방법 및 장치는 상호 정보량의 연산을 위하여, LDPC 부호의 베이스 행렬(Nb× Mb)을 기반으로 한 Protograph-based extrinsic transfer (PEXIT) 분석 알고리즘을 활용할 수 있으나, 본 발명은 이에 한정되지 않는다.For example, a decoding order determining method and apparatus for shuffling decoding an LDPC code according to an embodiment of the present invention is based on a Protograph-based extrinsic based on a base matrix (N b × M b ) of an LDPC code for calculation of mutual information amount. The transfer (PEXIT) analysis algorithm may be utilized, but the present invention is not limited thereto.

예컨대, 베이스 매트릭스의 i 번째 행에 해당되는 체크 노드 집합을 타입-i 체크 노드라고 하며, j 번째 열에 해당되는 변수 노드 집합을 타입-j 변수 노드라고 할 수 있다.For example, the check node set corresponding to the i th row of the base matrix may be referred to as a type-i check node, and the variable node set corresponding to the j th column may be referred to as a type-j variable node.

이때, 각 타입에는 Z개의 체크 노드 또는 변수 노드가 포함될 수 있으며, Z는 LDPC의 lifting factor와 같을 수 있고, 베이스 매트릭스의 j번째 행, i번째 열의 성분을 bi ,j라고 하며 그 값이 1인 경우 타입-i 체크 노드와 타입-j 변수 노드가 서로 연결되어 있다는 것을 의미한다. 반면에 bi ,j가 0인 경우에는 타입-i 체크 노드와 타입-j 변수 노드가 연결되어 있지 않고 서로 무관하다는 것을 의미할 수 있다.In this case, each type may include Z check nodes or variable nodes, Z may be the same as the lifting factor of LDPC, and the components of the j th row and the i th column of the base matrix are called b i , j and the value is 1 In this case, the type-i check node and the type-j variable node are connected to each other. On the other hand, if b i , j is 0, this may mean that the type-i check node and the type-j variable node are not connected and independent of each other.

이때, 베이스 매트릭스의 일 실시예 및 이를 활용한 PEXIT 분석 알고리즘의 Protograph는 도 1에 도시된 바와 같을 수 있으나, 본 발명은 이에 한정되지 않는다.In this case, one embodiment of the base matrix and a prototype of the PEXIT analysis algorithm using the same may be as shown in FIG. 1, but the present invention is not limited thereto.

이때, 도 1에 도시된 b(2,1)은 베이스 매트릭스의 1번째 행, 2번째 열의 성분을 의미하고, ICH(1)은 채널로부터 수신한 수신 신호를 의미한다.In this case, b (2,1) shown in FIG. 1 means components of the first row and the second column of the base matrix, and I CH (1) means a received signal received from the channel.

한편, 상호 정보량(Mutual Information)은 무작위 변수의 “정보량”을 정의하는 것으로 상호 정보량은 정보의 신뢰도와 비례할 수 있다.Meanwhile, the mutual information amount (mutual information) defines the “information amount” of a random variable, and the mutual information amount may be proportional to the reliability of the information.

이때, 베이스 매트릭스 및 상호 정보량에 대한 보다 구체적인 설명은 종래에 공지된 바와 같으므로 그 구체적인 설명은 생략한다.In this case, since a detailed description of the base matrix and the mutual information amount is known in the art, the detailed description thereof will be omitted.

도 2는 본 발명의 일 실시예에 따른 LDPC 부호의 복호 장치를 나타낸 블록도이다. 2 is a block diagram illustrating an apparatus for decoding an LDPC code according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 LDPC 부호의 복호 장치는 초기화부(105), 연산부(110), 비트열 정당성 판단부(120), 복호 실패 예측부(130), 메모리(150)를 포함한다. Referring to FIG. 2, an LDPC code decoding apparatus according to an embodiment of the present invention may include an initialization unit 105, an operation unit 110, a bit string validity determination unit 120, a decoding failure prediction unit 130, and a memory ( 150).

초기화부는(105)는 입력되는 비트열에 대한 디코딩을 수행하기 전에, 복수의 변수 노드들 및 복수의 체크 노드들에 대한 설정을 초기화한다. 즉, 초기화부(105)는 채널로부터 받은 신호를 바탕으로 각 변수 노드가 채널로부터 받은 채널 정보 값(

Figure 112018101438819-pat00020
)을 계산하고, 각 변수 노드에서 연결된 체크 노드로 가는 변수-체크 메시지 값(
Figure 112018101438819-pat00021
)를 각 변수 노드가 채널로부터 받은 채널 정보 값(
Figure 112018101438819-pat00022
)으로 초기화하며, 각 체크 노드에서 연결된 변수 노드로 가는 체크-변수 메시지 값(
Figure 112018101438819-pat00023
)는 모두 0으로 초기화 한다. 여기서, 채널 정보 값(
Figure 112018101438819-pat00024
), 변수-체크 메시지 값(
Figure 112018101438819-pat00025
), 체크-변수 메시지 값(
Figure 112018101438819-pat00026
)은 각각 우도값(예: LLR(log likelihood ratio))을 지칭할 수 있다. The initialization unit 105 initializes the settings of the plurality of variable nodes and the plurality of check nodes before decoding the input bit string. That is, the initialization unit 105 is based on the signal received from the channel, each variable node received the channel information value from the channel (
Figure 112018101438819-pat00020
), And the variable-check message value (from each variable node to the connected check node)
Figure 112018101438819-pat00021
) Is the value of the channel information (
Figure 112018101438819-pat00022
) And the check-variable message value (from each check node to the linked variable node).
Figure 112018101438819-pat00023
) Are all initialized to zero. Where the channel information value (
Figure 112018101438819-pat00024
), Variable-check message value (
Figure 112018101438819-pat00025
), Check-variable message value (
Figure 112018101438819-pat00026
) May refer to a likelihood value (eg, log likelihood ratio).

초기화부(105)는 복호 과정에서 최초 1회만 초기화를 시행할 수 있다. The initialization unit 105 may initialize the first time only in the decoding process.

연산부(110)는 복호화 동작을 반복할때마다 비트열에 대한 우도값을 갱신할 수 있다. 여기서, 우도값은 사후 확률(a posteriori probability, APP) 로그 우도비(log likelihood raito, LLR)값일 수 있다. 비트열에 포함되는 비트의 APP LLR 값은 비트가 0인지, 1인지를 가리키는 우도값일 수 있다. 연산부(110)는 우도값을 갱신함으로써, 더 정확한 LLR 값들을 획득할 수 있고, 이로 인해 디코딩 성공률(decoding success rate)을 높일 수 있다.The operation unit 110 may update the likelihood value for the bit string whenever the decoding operation is repeated. The likelihood value may be a posteriori probability (APP) log likelihood raito (LLR) value. The APP LLR value of the bit included in the bit string may be a likelihood value indicating whether the bit is 0 or 1. The operator 110 may obtain more accurate LLR values by updating the likelihood value, thereby increasing the decoding success rate.

구체적으로, 연산부(110)는 복수의 체크 노드 각각으로부터 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전달되는 체크-변수 메시지 값(

Figure 112018101438819-pat00027
)을 업데이트하고, 체크-변수 메시지에 기초하여 복수의 변수 노드들 각각의 사후 확률(a posteriori probability, APP) 로그 우도비(log likelihood ratio, LLR) 값을 연산한다. Specifically, the operation unit 110 is a check-variable message value (for each variable node connected to each of the plurality of check nodes from each of the plurality of check nodes)
Figure 112018101438819-pat00027
), And calculate a posteriori probability (APP) log likelihood ratio (LLR) value of each of the plurality of variable nodes based on the check-variable message.

연산부(110)는 각각의 변수 노드에서 연산한 APP LLR 값(

Figure 112018101438819-pat00028
)의 부호를 바탕으로 0 또는 1로 구성된 하나의 이진 비트열
Figure 112018101438819-pat00029
을 결정한다. APP LLR 값은, 복수의 변수 노드들에 각각 대응하는 비트열의 비트값이 0인지, 1인지를 나타내는 우도값일 수 있다. 예를 들어, 비트열 중 3번째 비트의 APP LLR값이 3.2인 경우, 연산부(110)는 3번째 비트의 값이 1이라고 결정하고, 비트열 중 5번째 비트의 APP LLR값이 -2.2인 경우, 5번째 비트의 값이 0이라고 결정할 수 있다. 또한, 부호어에 대해 입력된 비트열이 7비트의 비트열이고, 변수 노드의 APP LLR 값이 {1.3, 3.2, -2.1, -2.3, -33.2, -13.4, 0.7}인 경우, 연산부(110)는 디코딩 비트열을 {1, 1, 0, 0, 0, 0, 1}로 결정할 수 있다. 디코딩 비트열은, 반복 디코딩 동작이 반복됨에 따라, 갱신되는 비트열이다.The calculation unit 110 performs the APP LLR value (operated at each variable node (
Figure 112018101438819-pat00028
One binary bit string of zeros or ones, based on the
Figure 112018101438819-pat00029
Determine. The APP LLR value may be a likelihood value indicating whether the bit value of the bit string corresponding to the plurality of variable nodes is 0 or 1, respectively. For example, when the APP LLR value of the third bit of the bit string is 3.2, the operation unit 110 determines that the value of the third bit is 1, and the APP LLR value of the fifth bit of the bit string is -2.2. The value of the fifth bit can be determined to be 0. In addition, when the bit string input for the codeword is a 7-bit bit string and the APP LLR value of the variable node is {1.3, 3.2, -2.1, -2.3, -33.2, -13.4, 0.7}, the operation unit 110. ) May determine the decoding bit stream as {1, 1, 0, 0, 0, 0, 1}. The decoding bit string is a bit string that is updated as the iterative decoding operation is repeated.

연산부(110)는 결정된 비트열이 송신 장치에서 송신한 부호어에 해당하는지 여부를 판단하도록, 비트열 정당성 판단부(120)에 전달한다. The calculating unit 110 transmits the determined bit string to the bit string validity determining unit 120 to determine whether the determined bit string corresponds to the codeword transmitted from the transmitting apparatus.

비트열 정당성 판단부(120)는 패리티 검사 행렬을 이용하여 디코딩 비트열이 정당한 부호어인지를 판단한다. 즉, 비트열 정당성 판단부(120)는 패리티 검사 행렬(H)와 디코딩 비트열(

Figure 112018101438819-pat00030
)의 연산(
Figure 112018101438819-pat00031
) 결과인 신드롬(syndrome)
Figure 112018101438819-pat00032
이 영벡터인지를 이용하여 정당한 부호어 인지를 판단할 수 있다. 이때, 비트열 정당성 판단부(120)는 메모리에 저장된 패리티 검사 행렬을 사용할 수 있다. 비트열 정당성 판단부(120)는 패리티 검사 행렬의 체크 노드들 각각에 대응하는 신드롬 비트가 0인지 여부를 판단하여, 모든 체크 노드들의 신드롬 비트들이 0인 경우, 비트열이 복호 성공 조건을 만족한다고 결정할 수 있다.The bit string validity determination unit 120 determines whether the decoding bit string is a legitimate codeword using a parity check matrix. That is, the bit string validity determination unit 120 performs a parity check matrix H and a decoding bit string (
Figure 112018101438819-pat00030
) Operation
Figure 112018101438819-pat00031
) Resulting syndrome
Figure 112018101438819-pat00032
It can be determined whether it is a legitimate codeword using this zero vector recognition. In this case, the bit string validity determination unit 120 may use the parity check matrix stored in the memory. The bit string validity determination unit 120 determines whether the syndrome bit corresponding to each of the check nodes of the parity check matrix is 0, and if the syndrome bits of all the check nodes are 0, the bit string satisfies the decoding success condition. You can decide.

비트열이 복호 성공 조건을 만족하는 경우, 비트열 정당성 판단부(120)는 비트열에 대한 복호 동작을 종료할 수 있다. When the bit string satisfies the decoding success condition, the bit string validity determination unit 120 may end the decoding operation on the bit string.

복호 실패 예측부(130)는 디코딩 비트열이 정당한 부호열이 아닌 경우, 일정 측정 간격을 두고 모두 실패한 패리티 검사(CUPC) 개수를 산출하고, CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 예측한다. 이때, 복호 실패 예측부(130)는 CUPC 개수가 임계값을 초과하는 경우 복호 실패로 예측하고, 초과하지 않은 경우 변수-체크 메시지 값을 갱신할 수 있다. 임계값은 복호 실패 판단의 기준이 되는 값으로, 사전에 각 LDPC 부호마다 연산하고 복호기를 설계할 때, 메모리에 저장해두고 사용하는 값일 수 있다. If the decoding bit string is not a valid code string, the decoding failure predicting unit 130 calculates the number of failed parity checks (CUPC) at predetermined intervals and compares the number of CUPCs with a preset threshold to determine whether the decoding has failed. Predict. In this case, the decoding failure prediction unit 130 may predict that the decoding failure if the number of CUPC exceeds the threshold value, and may update the variable-check message value if it does not exceed. The threshold value is a reference value for decoding failure determination. The threshold value may be a value that is stored and used in a memory when the LDPC code is calculated in advance and the decoder is designed.

따라서, 본 발명의 실시예에 따르면, 장치는 복호 실패 예측을 위한 임계값을 결정하는 임계값 결정부(140)를 더 포함할 수 있다.Therefore, according to an embodiment of the present invention, the apparatus may further include a threshold determination unit 140 for determining a threshold for decoding failure prediction.

임계값 결정부(140)는 송신 신호와 복수의 체크 노드 각각으로부터 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전파되는 메시지 간의 상호 정보량인 체크-변수 상호 정보량을 각각 산출하고, 체크-변수 상호 정보량에 기초하여 송신 신호와 변수 노드에 누적된 메시지 간의 상호 정보량인 누적 상호 정보량을 산출하며, 누적 상호 정보량에 기초하여, 송신 신호와 패리티 검사 정보 간의 상호 정보량인 패리티 검사 상호 정보량을 산출하고, 상기 패리티 검사 상호 정보량에 기초하여, 패리티 검사가 만족하지 않을 확률을 산출하며, 그 확률에 기초한 연속으로 만족하지 않는 패리티 검사의 평균 개수에 기초하여 임계값을 산출할 수 있다. Threshold determination unit 140 and the transmission signal Compute a check-variable mutual information amount, which is a mutual information amount between messages propagated from each of the plurality of check nodes to each of the plurality of variable nodes connected to each of the plurality of check nodes, and calculate the amount of check-variable mutual information based on the check-variable mutual information amount to the transmission signal and the variable node. A cumulative mutual information amount that is mutual information between the accumulated messages is calculated, and based on the cumulative mutual information amount, a parity check mutual information amount that is mutual information between the transmission signal and parity check information is calculated, and based on the parity check mutual information amount, parity check is performed. Calculates a probability that is not satisfied, and calculates a threshold value based on the average number of parity checks that are not satisfied in succession based on the probability.

구체적으로, 임계값 결정부(140)는 송신 신호와 타입-

Figure 112018101438819-pat00033
변수 노드에서 타입-
Figure 112018101438819-pat00034
체크 노드로 전파되는 메시지 간의 변수-체크 상호 정보량, 송신 신호와 타입-
Figure 112018101438819-pat00035
체크 노드에서 타입-
Figure 112018101438819-pat00036
변수 노드로 전파되는 메시지 간의 체크-변수 상호 정보량을 각각 초기화한다. 이때, 초기화는 복호 과정에서 최초 1회만 시행할 수 있다. Specifically, the threshold value determination unit 140 may transmit the signal and the type-
Figure 112018101438819-pat00033
Type in a variable node
Figure 112018101438819-pat00034
Variable-check mutual information amount, transmission signal and type- between messages propagated to check node
Figure 112018101438819-pat00035
Type- in check nodes
Figure 112018101438819-pat00036
Initialize the amount of check-variable mutual information between messages propagated to variable nodes. In this case, the initialization may be performed only once in the decoding process.

임계값 결정부(140)는 복수의 체크 노드(check node) 각각으로부터 복수의 체크 노드 각각에 연결된 복수의 변수 노드(variable node) 각각으로 전파되는 메시지의 상호 정보량인 체크-변수 상호 정보량을 각각 산출한다. The threshold determination unit 140 calculates the amount of check-variable mutual information, which is the amount of mutual information of messages propagated from each of the plurality of check nodes, to each of the plurality of variable nodes connected to the plurality of check nodes, respectively. do.

또한, 임계값 결정부(140)는 체크-변수 상호 정보량에 기초하여 복수의 변수 노드 각각으로부터 복수의 변수 노드 각각에 연결된 복수의 체크 노드 각각으로 전파되는 메시지의 상호 정보량인 변수-체크 상호 정보량을 각각 산출한다. 이때, 변수 노드에서 체크 노드로 전달되는 메시지, 체크 노드에서 변수 노드로 전달되는 메시지, 그리고 변수 노드에 누적된 메시지는 모두 가우시안 확률 분포라고 가정할 수 있다. In addition, the threshold determination unit 140 may determine the variable-check mutual information amount, which is the mutual information amount of the message propagated from each of the plurality of variable nodes to each of the plurality of check nodes connected to each of the plurality of variable nodes, based on the check-variable mutual information amount. Calculate each. In this case, it can be assumed that the message transmitted from the variable node to the check node, the message transmitted from the check node to the variable node, and the message accumulated in the variable node are all Gaussian probability distributions.

임계값 결정부(140)는 PEXIT(rotograph-based extrinsic information transfer) 차트에서 사용하는 수식을 활용하여 임계값을 결정할 수 있다. 임계값 결정부는 상호 정보량(mutual information, MI) 이용하여, 임계값들을 결정할 수 있다. 임계값 결정부는 패리티 검사 행렬로부터 기본 행렬(base matrix, B)을 결정할 수 있다. 기본행렬은 패리티 검사 행렬에서 비슷한 특성을 갖는 변수 노드와 체크 노드를 간략히 표시한 행렬이다. 패리티 검사 행렬은

Figure 112018101438819-pat00037
개의 변수 노드 그룹과
Figure 112018101438819-pat00038
개의 체크 노드 그룹을 가질 수 있다. 임계값 결정부는 기본 행렬의 각 원소에 대한 상호 정보량을 이용하여, 임계값들을 결정할 수 있다. The threshold determination unit 140 may determine the threshold value using a formula used in a PEXIT (rotograph-based extrinsic information transfer) chart. Threshold determining unit using mutual information (mutual information, MI), it may determine the threshold values. The threshold determiner may determine a base matrix B from the parity check matrix. The default matrix is simply a matrix of variable and check nodes with similar characteristics in the parity check matrix. The parity check matrix is
Figure 112018101438819-pat00037
Variable node groups
Figure 112018101438819-pat00038
It can have four check node groups. The threshold determiner may determine thresholds using the amount of mutual information for each element of the base matrix.

메모리(150)는 복호 연산 시 필요한 정보를 저장할 수 있다. 메모리는 패리티 검사 행렬을 저장할 수 있다. 패리티 검사 행렬은 미리 설정된 패리티 행렬, 송신 장치와의 협상(negotiation)을 통해 결정된 행렬, 송신 장치와 공유되는 행렬일 수 있다. 패리티 검사 행렬은 송신 장치에서 전달하는 부호어의 생성 행렬에 대한 패리티 행렬일 수 있다. 패리티 검사 행렬은 연산부에서 체크 노드, 변수 노드, 엣지를 설정하는데 사용될 수 있다. 또한, 패리티 행렬은 비트열 정당성 판단부에서 복호 성공 조건의 만족 여부를 판단하는데 사용될 수도 있다.The memory 150 may store information necessary for a decoding operation. The memory may store a parity check matrix. The parity check matrix may be a predetermined parity matrix, a matrix determined through negotiation with the transmitter, and a matrix shared with the transmitter. The parity check matrix may be a parity matrix for a generation matrix of codewords transmitted from a transmitting device. The parity check matrix may be used to set check nodes, variable nodes, and edges in the calculator. In addition, the parity matrix may be used by the bit string validity determination unit to determine whether the decoding success condition is satisfied.

한편 상술한 바와 같이 구성된 LPDC 부호의 복호 장치(100)는 LDPC 복호 과정을 최대 반복 복호 횟수까지 진행하더라도 완벽한 오류 정정에 실패하는 경우에 대해, 복호 실패를 최대 반복 복호 횟수 도달 이전에 예측하여 사전에 복호를 중지함으로써 불필요한 반복 복호 횟수를 감소시킬 수 있다.
On the other hand, the decoding apparatus 100 of the LPDC code configured as described above predicts a decoding failure before reaching the maximum number of decoding times in advance in case the perfect error correction fails even if the LDPC decoding process proceeds up to the maximum number of decoding times. By stopping the decoding, the number of unnecessary repeated decoding can be reduced.

도 3은 본 발명의 일 실시예에 따른 LPDC 부호의 복호 방법을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating a decoding method of an LPDC code according to an embodiment of the present invention.

도 3을 참조하면, LPDC 부호의 복호 장치는 채널로부터 수신한 신호에 기초하여 초기화를 수행한다(S301). 즉, LPDC 부호의 복호 장치는 채널로부터 받은 신호를 바탕으로 각 변수 노드가 채널로부터 받은 채널 정보 값

Figure 112018101438819-pat00039
를 계산한다. 그리고, LPDC 부호의 복호 장치는 각 변수 노드에서 연결된 체크 노드로 전달되는 체크-변수 메시지 값
Figure 112018101438819-pat00040
을 각 변수 노드가 채널로부터 받은 채널 정보 값
Figure 112018101438819-pat00041
로 초기화 한다(
Figure 112018101438819-pat00042
). 또한, LDPC 부호의 복호 장치는 각 체크 노드에서 연결된 변수 노드로 전달되는 체크-변수 메시지 값
Figure 112018101438819-pat00043
를 모두 0으로 초기화(
Figure 112018101438819-pat00044
)한다.Referring to FIG. 3, the decoding apparatus of the LPDC code performs initialization based on a signal received from a channel (S301). That is, the LPDC coder decodes the channel information value received from the channel by each variable node based on the signal received from the channel.
Figure 112018101438819-pat00039
Calculate And, the decoding device of the LPDC code has a check-variable message value transmitted from each variable node to the connected check node.
Figure 112018101438819-pat00040
The channel information value that each variable node receives from the channel.
Figure 112018101438819-pat00041
Initialize with
Figure 112018101438819-pat00042
). In addition, the decoding device of the LDPC code has a check-variable message value transferred from each check node to the connected variable node.
Figure 112018101438819-pat00043
Initialize all to zero (
Figure 112018101438819-pat00044
)do.

단계 S301이 수행되면, LPDC 부호의 복호 장치는 체크 노드에서 연결된 변수 노드들로 전달되는 체크-변수 메시지 값

Figure 112018101438819-pat00045
를 연결된 변수 노드들로부터 받은 체크-변수 메시지 값
Figure 112018101438819-pat00046
를 이용하여 연산한다(S303). 즉, LPDC 부호의 복호 장치는 아래 수학식 1을 이용하여
Figure 112018101438819-pat00047
를 산출할 수 있다. When step S301 is performed, the decoding device of the LPDC code is a check-variable message value transferred from the check node to the connected variable nodes.
Figure 112018101438819-pat00045
Check-variable message value received from connected variable nodes
Figure 112018101438819-pat00046
Compute using (S303). That is, the LPDC code decoding apparatus uses Equation 1 below.
Figure 112018101438819-pat00047
Can be calculated.

[수학식 1][Equation 1]

Figure 112018101438819-pat00048
Figure 112018101438819-pat00048

여기서,

Figure 112018101438819-pat00049
은 l번째 반복 디코딩 동작 수행 시, m번째 체크 노드에서 n번째 변수 노드로 전달되는 체크-변수 메시지 값을 의미하고,
Figure 112018101438819-pat00050
는 (l-1)번째 반복 디코딩 동작 수행 시 n'번째 변수노드에서 m번째 체크 노드로 전달되는 변수-체크노드 메시지 값을 의미하는 것으로,
Figure 112018101438819-pat00051
는 아래 수학식 2를 이용하여 산출할 수 있다. here,
Figure 112018101438819-pat00049
Means the check-variable message value transferred from the m th check node to the n th variable node when performing the l th iterative decoding operation,
Figure 112018101438819-pat00050
Denotes the value of the variable-check node message transmitted from the n 'th variable node to the m th check node when the (l-1) th iterative decoding operation is performed.
Figure 112018101438819-pat00051
Can be calculated using Equation 2 below.

[수학식 2][Equation 2]

Figure 112018101438819-pat00052
Figure 112018101438819-pat00052

여기서,

Figure 112018101438819-pat00053
은 변수 노드 n을 제외한 체크 노드 m의 이웃을 나타내고, N(m)은 m번째 체크 노드에 연결되는 변수 노드의 집합,
Figure 112018101438819-pat00054
는 체크 노드 m을 제외한 변수 노드 n의 이웃을 나타낸다.
Figure 112018101438819-pat00055
계산의 복잡성을 줄이기 위해 근사 형식을 사용하는 기법을 이용할 수 있다. here,
Figure 112018101438819-pat00053
Denotes the neighbor of check node m excluding variable node n, where N (m) is the set of variable nodes connected to the m th check node,
Figure 112018101438819-pat00054
Denotes a neighbor of variable node n excluding check node m.
Figure 112018101438819-pat00055
To reduce the computational complexity, a technique using approximate forms can be used.

단계 S303이 수행되면, LPDC 부호의 복호 장치는 각 변수 노드의 APP LLR(log-likelihood ratio)인

Figure 112018101438819-pat00056
를 산출한다(S305). 즉, LPDC 부호의 복호 장치는 각 변수 노드에서는 채널로부터 받은 채널 정보 값
Figure 112018101438819-pat00057
와 연결된 체크 노드들로부터 받은 체크-변수 메시지 값
Figure 112018101438819-pat00058
를 바탕으로 복호 판정에 사용될 정보
Figure 112018101438819-pat00059
를 산출한다. When step S303 is performed, the decoding device of the LPDC code is an APP log-likelihood ratio (LLR) of each variable node.
Figure 112018101438819-pat00056
To calculate (S305). That is, the LPDC coder decodes the channel information received from the channel at each variable node.
Figure 112018101438819-pat00057
The value of the check-variable message received from the check nodes associated with the
Figure 112018101438819-pat00058
Information to be used for decoding decision based on
Figure 112018101438819-pat00059
To calculate.

이때, LPDC 부호의 복호 장치는 아래 수학식 3을 이용하여

Figure 112018101438819-pat00060
를 산출할 수 있다. At this time, the decoding device of the LPDC code using Equation 3 below
Figure 112018101438819-pat00060
Can be calculated.

[수학식 3][Equation 3]

Figure 112018101438819-pat00061
Figure 112018101438819-pat00061

단계 S305가 수행되면, LPDC 부호의 복호 장치는

Figure 112018101438819-pat00062
에 기초하여 디코딩 부호열
Figure 112018101438819-pat00063
를 결정한다(S307). 즉, LPDC 부호의 복호 장치는 각각의 변수 노드에서 연산한
Figure 112018101438819-pat00064
의 부호를 바탕으로 0 또는 1로 구성된 하나의 이진 비트열
Figure 112018101438819-pat00065
을 결정한다.
Figure 112018101438819-pat00066
의 부호가 양수인 비트의 경우 1, 음수인 경우 0이라고 결정할 수 있다. 예컨대, 변수 노드의 APP LLR 값이 {1.3, 3.2, -2.1, -2.3, -33.2, -13.4, 0.7}인 경우, LDPC 부호의 복호 장치는 디코딩 비트열 {1, 1, 0, 0, 0, 0, 1}로 결정할 수 있다. When step S305 is performed, the decoding device of the LPDC code is
Figure 112018101438819-pat00062
Decoding code string based on
Figure 112018101438819-pat00063
Determine (S307). That is, the LPDC code decoder calculates at each variable node.
Figure 112018101438819-pat00064
One binary bit string of zeros or ones based on the sign of
Figure 112018101438819-pat00065
Determine.
Figure 112018101438819-pat00066
It can be determined that the sign is 1 for positive bits and 0 for negative bits. For example, if the APP LLR value of the variable node is {1.3, 3.2, -2.1, -2.3, -33.2, -13.4, 0.7}, the decoding device of the LDPC code is decoded bitstream {1, 1, 0, 0, 0 , 0, 1}.

단계 S307의 수행 후, LPDC 부호의 복호 장치는 디코딩 부호열이 유효한 부호어인지를 판단한다(S309). 이때, LPDC 부호의 복호 장치는 패리티 검사 행렬을 이용하여 비트열

Figure 112018101438819-pat00067
이 정당한 LDPC 부호어 인지를 판단한다. After performing step S307, the decoding apparatus of the LPDC code determines whether the decoding code string is a valid code word (S309). In this case, the decoding device of the LPDC code uses a parity check matrix to form a bit string.
Figure 112018101438819-pat00067
It is determined whether this is a legitimate LDPC codeword.

구체적으로, LPDC 부호의 복호 장치는 아래 수학식 4와 같이 신드롬(syndrome)

Figure 112018101438819-pat00068
을 산출하고, 그 신드롬
Figure 112018101438819-pat00069
이 영 벡터인지를 이용하여 디코딩 부호열이 정당한 LDPC 부호어인지를 판단한다. Specifically, the decoding device of the LPDC code is a syndrome (syndrome) as shown in Equation 4 below.
Figure 112018101438819-pat00068
Calculate the syndrome
Figure 112018101438819-pat00069
Whether or not the decoding code string is a valid LDPC codeword is determined by using the zero vector.

[수학식 4][Equation 4]

Figure 112018101438819-pat00070
Figure 112018101438819-pat00070

여기서,

Figure 112018101438819-pat00071
은 l번째 복호 과정에서 패리티 검사 결과, H는 패리티 검사 행렬,
Figure 112018101438819-pat00072
는 l번재 복호 과정에서 디코딩된 비트열에 대한 부호 행렬일 수 있다. here,
Figure 112018101438819-pat00071
Is the parity check result in the lth decoding process, H is the parity check matrix,
Figure 112018101438819-pat00072
May be a code matrix for the bit string decoded in the first decoding process.

LDPC 부호의 복호 장치는

Figure 112018101438819-pat00073
이 영 벡터인 경우, 디코딩 비트열이 정당한 부호어라고 판단하고, 영벡터가 아닌 경우 정당한 부호어가 아니라고 판단한다. The decoding device of the LDPC code is
Figure 112018101438819-pat00073
In the case of this zero vector, it is determined that the decoding bit stream is a legitimate codeword.

단계 S309의 판단결과 정당한 부호어인 경우 LPDC 부호의 복호 장치는 복호 성공이라고 판단하여 그 시점에서 복호를 정지한다(S311). 즉, 이진 비트열

Figure 112018101438819-pat00074
이 수학식 4를 만족하는 경우, LPDC 부호의 복호 장치는 성공적으로 디코딩하였다고 판단하여, 그 시점에서 복호를 정지하고, 이진 비트열
Figure 112018101438819-pat00075
을 복호 결과(부호어)로 결정할 수 있다. LPDC 부호의 복호 장치는 부호어에 기반하여 정보어를 검출할 수 있고, 정보어는 송신 장치가 수신 장치에게 전송하고자 하는 정보 비트들을 포함할 수 있다. If the determination result of step S309 is a legitimate codeword, the decoding device of the LPDC code determines that the decoding is successful and stops decoding at that time (S311). That is, a binary bit string
Figure 112018101438819-pat00074
When the following Equation 4 is satisfied, the decoding device of the LPDC code determines that the decoding has been successful, and the decoding is stopped at that time, and the binary bit string
Figure 112018101438819-pat00075
Can be determined as the decoding result (signer). The decoding device of the LPDC code may detect the information word based on the code word, and the information word may include information bits that the transmitting device intends to transmit to the receiving device.

만약, 단계 S309의 판단결과 유효한 부호어가 아니면, LPDC 부호의 복호 장치는 일정 측정 간격을 두고 모두 실패한 패리티 검사(Consecutive Unsatisfied Parity Check, CUPC) 개수를 산출한다(S370). 즉, LPDC 부호의 복호 장치는 현재 패리티 검사 결과와 T횟수 이전의 패리티 검사 결과에 기초하여 모두 불만족한 패리티 검사(CUPC) 개수를 산출한다.If the result of the determination in step S309 is not a valid codeword, the LPDC code decoding apparatus calculates the number of failed parity checks (CUPCs) at a predetermined measurement interval (S370). That is, the decoding apparatus of the LPDC code calculates the number of unsatisfactory parity checks (CUPC) based on the current parity check result and the parity check result before the T number of times.

LPDC 부호의 복호 장치의 성공적인 디코딩은 모든 패리티 체크를 만족하는 부호어를 생성한다. 이 경우 각 반복에서 패리티 검사의 결과는 반복 프로세스 중에 계속 변경된다. 반면에 변경 사항이 적을 때 최대 반복 횟수에 도달할 때까지 메시지를 성공적으로 디코딩하는 것은 어렵다. 이에, LPDC 부호의 복호 장치는 CUPC의 수가 특정 값보다 높으면, 복호 프로세스를 중단한다. 부정확한 결정으로 인한 잘못된 경보를 방지하기 위해, LPDC 부호의 복호 장치는 (l) 번째 반복에서 패리티 검사의 결과와 (l - T) 번째 반복에서 패리티 검사 결과를 비교한다. 여기서 T는 측정 간격을 의미하고, 측정 간격

Figure 112018101438819-pat00076
는 예컨대, 3으로 설정할 수 있다. 측정 간격을 길게 할수록 보다 정확한 복호 실패 판단을 내릴 수 있지만 복호 실패 예측 시점이 늦어지기 때문에, 반복 복호 횟수 감소 효과가 적게 나타난다. 또한, 현재의 패리티 검사 결과를
Figure 112018101438819-pat00077
반복 이후 비교하기 위해 저장하고 있어야 하므로,
Figure 112018101438819-pat00078
가 커질수록 필요한 메모리 공간이 늘어나게 된다. 측정 간격을 1로 하면 연속되는 복호 과정에 대해 적용하는 것과 같으며, 이는 정확한 판단을 내리기 힘들어지므로 성능열화가 발생할 수 있다.Successful decoding of the decoding device of the LPDC code generates a codeword that satisfies all parity checks. In this case, the result of the parity check in each iteration is constantly changing during the iteration process. On the other hand, when changes are small, it is difficult to successfully decode the message until the maximum number of iterations is reached. Accordingly, the decoding device of the LPDC code stops the decoding process when the number of CUPC is higher than a specific value. To prevent false alarms due to incorrect decisions, the decoding device of the LPDC code compares the result of the parity check in the (l) th iteration with the parity check result in the (l-T) th iteration. Where T is the measuring interval, and the measuring interval
Figure 112018101438819-pat00076
Can be set to 3, for example. The longer the measurement interval, the more accurate the determination of decoding failure can be made. However, since the decoding failure prediction time is delayed, the effect of reducing the number of repeated decoding is less. Also, the current parity check result
Figure 112018101438819-pat00077
Since it needs to be stored for comparison after iteration,
Figure 112018101438819-pat00078
The larger is, the more memory space required. Setting the measurement interval to 1 is the same as applying the continuous decoding process, which makes it difficult to make an accurate judgment, which may cause performance degradation.

LPDC 부호의 복호 장치는 l 번째 반복에서 CUPC 개수(

Figure 112018101438819-pat00079
)를 아래 수학식 5를 이용하여 산출할 수 있다. The decoding device of the LPDC code uses the CUPC count (
Figure 112018101438819-pat00079
) Can be calculated using Equation 5 below.

[수학식 5][Equation 5]

Figure 112018101438819-pat00080
Figure 112018101438819-pat00080

여기서,

Figure 112018101438819-pat00081
Figure 112018101438819-pat00082
는 각각
Figure 112018101438819-pat00083
번째와
Figure 112018101438819-pat00084
번째 복호 과정에서의 패리티 검사 결과를 보여주는 이진 벡터, ()'는 행렬의 행과 열을 바꿔주는 transpose 연산을 의미할 수 있다.
Figure 112018101438819-pat00085
Figure 112018101438819-pat00086
는 벡터의
Figure 112018101438819-pat00087
번째 성분이 0이면 해당 LDPC 부호의
Figure 112018101438819-pat00088
번째 패리티 검사식을 만족했다는 의미이며, 성분이 1이면 LDPC 부호의
Figure 112018101438819-pat00089
번째 패리티 검사식을 만족하지 않았음을 의미한다. 그 결과,
Figure 112018101438819-pat00090
연산을 하게 되면 아래 표 1과 같이
Figure 112018101438819-pat00091
Figure 112018101438819-pat00092
에서 모두 1인 경우에만 1이 되고, 나머지 경우에 대해서는 0이 된다. here,
Figure 112018101438819-pat00081
and
Figure 112018101438819-pat00082
Are each
Figure 112018101438819-pat00083
Th and
Figure 112018101438819-pat00084
The binary vector showing the parity check result during the first decoding process, (), may mean a transpose operation that swaps rows and columns of a matrix.
Figure 112018101438819-pat00085
and
Figure 112018101438819-pat00086
Of the vector
Figure 112018101438819-pat00087
The 0th component is 0
Figure 112018101438819-pat00088
Parity check expression is satisfied. If the component is 1, LDPC code
Figure 112018101438819-pat00089
The first parity check expression is not satisfied. As a result,
Figure 112018101438819-pat00090
If the operation is performed, as shown in Table 1 below
Figure 112018101438819-pat00091
and
Figure 112018101438819-pat00092
This is 1 only if all are 1 in, and 0 for the rest of the cases.

[표 1]TABLE 1

Figure 112018101438819-pat00093
Figure 112018101438819-pat00093

상술한 바와 같이

Figure 112018101438819-pat00094
Figure 112018101438819-pat00095
에서 모두 1인 경우에만
Figure 112018101438819-pat00096
값이 1이 되기 때문에,
Figure 112018101438819-pat00097
Figure 112018101438819-pat00098
번째와
Figure 112018101438819-pat00099
번째 복호 과정에서 모두 만족하지 않은 패리티 검사식의 개수를 의미하게 된다. 구현측면에서는,
Figure 112018101438819-pat00100
Figure 112018101438819-pat00101
는 모두 0 또는 1로 구성되어 있기 때문에, 각각의 성분 간 곱 연산은 AND gate를 이용하여 간단하게 구현할 수 있다. 이는 입력이 모두 1이 되는 경우에만 1을 출력하는 AND gate의 성질과 1과 1을 곱했을 때만 결과가 1인 곱셈 연산이 같이 때문에 가능하다.As mentioned above
Figure 112018101438819-pat00094
and
Figure 112018101438819-pat00095
Only if all are 1 in
Figure 112018101438819-pat00096
Since the value is 1,
Figure 112018101438819-pat00097
Is
Figure 112018101438819-pat00098
Th and
Figure 112018101438819-pat00099
In the first decoding process, it means the number of parity check equations that are not satisfied. In terms of implementation,
Figure 112018101438819-pat00100
and
Figure 112018101438819-pat00101
Since is composed of all 0's or 1's, multiplication between each component can be implemented simply by using AND gate. This is possible because of the multiplication operation of AND gate, which outputs 1 only when the inputs are all 1, and multiplication with 1 when only 1 and 1 are multiplied.

단계 S313이 수행되면, LPDC 부호의 복호 장치는 CUPC의 개수와 기 설정된 임계값을 비교하여, CUPC의 수가 기 설정된 임계값을 초과하는지를 판단한다(S315). When step S313 is performed, the decoding device of the LPDC code compares the number of CUPCs with a predetermined threshold value and determines whether the number of CUPCs exceeds a predetermined threshold value (S315).

즉, LPDC 부호의 복호 장치는 LDPC 복호 과정에서 패리티 검사 행렬을 이용한 이진 비트열의 정당성을 판정한 이후,

Figure 112018101438819-pat00102
횟수 이전의 정당성 판정 결과와 비교하여, 이번에 만족하지 않은 패리티 검사식이
Figure 112018101438819-pat00103
횟수 이전에도 실패한 경우를 세고, 그 검사식의 수가 일정량 이상이 되면 복호에 실패할 것이라고 판단한다. 이때, LPDC 부호의 복호 장치는 아래 수학식 6과 같이 CUPC의 수와 임계값
Figure 112018101438819-pat00104
을 비교한다. That is, after the LPDC code decoder determines the validity of the binary bit string using the parity check matrix in the LDPC decoding process,
Figure 112018101438819-pat00102
Compared to the result of the justification before the number of times, the parity check expression
Figure 112018101438819-pat00103
It counts the cases that failed before the count, and determines that the decoding will fail when the number of the check expressions exceeds a certain amount. At this time, the decoding apparatus of the LPDC code is the number of CUPC and the threshold value as shown in Equation 6 below.
Figure 112018101438819-pat00104
Compare

[수학식 6][Equation 6]

Figure 112018101438819-pat00105
Figure 112018101438819-pat00105

복호 실패 판단의 기준이 되는 임계값

Figure 112018101438819-pat00106
는 LDPC 부호의 분석 기법 중 하나인 PEXIT 차트에서 사용하는 수식을 활용하여 결정하는 것으로, 임계값을 결정하는 방법에 대한 상세한 설명은 도 4를 참조하기로 한다. Threshold that is the basis of judgment of decoding failure
Figure 112018101438819-pat00106
Is determined by using a formula used in a PEXIT chart, which is one of LDPC code analysis techniques, and the method of determining a threshold value will be described with reference to FIG. 4.

단계 S315의 판단결과 CUPC의 수가 임계값을 초과하면, LPDC 부호의 복호 장치는 복호에 실패할 것이라고 예측한다(S317).As a result of the determination in step S315, if the number of CUPCs exceeds the threshold, the decoding device of the LPDC code predicts that decoding will fail (S317).

만약, 단계 S315의 판단결과 CUPC의 수가 임계값을 초과하지 않으면, LPDC 부호의 복호 장치는 변수-체크 메시지 값

Figure 112018101438819-pat00107
를 연산하고(S319), 단계 S303부터 단계 S319를 기 설정된 최대 반복 복호 횟수만큼 수행한다(S321).If, as a result of the determination in step S315, the number of CUPCs does not exceed the threshold, the decoding device of the LPDC code determines the variable-check message value.
Figure 112018101438819-pat00107
(S319), and from step S303 to step S319 is performed by a predetermined maximum number of iterative decoding (S321).

상술한 바와 같이 LPDC 부호의 복호 장치는 LDPC 반복 복호 기법에서 매 반복 횟수마다 수행하는 패리티 검사를 일정 횟수 이전의 패리티 검사 결과와 비교하여 모두 실패한 검사식의 개수가 임계값을 초과하면 최대 반복 복호 횟수까지 진행하더라도 완벽한 오류 정정에 실패할 것으로 판단할 수 있다.
As described above, the LPDC code decoding apparatus compares the parity check performed at every repetition count in the LDPC iterative decoding scheme with the parity check result before a predetermined number of times. Even if it proceeds to, it can be judged that complete error correction will fail.

도 4는 본 발명의 일 실시예에 따른 복호 실패 판단을 임계값 결정 방법을 설명하기 위한 흐름도이다. 4 is a flowchart illustrating a method for determining a threshold value for determining a decoding failure according to an embodiment of the present invention.

도 4를 참조하면, LPDC 부호의 복호 장치는 채널로부터 수신한 신호에 기초하여 초기화를 수행한다(S410).Referring to FIG. 4, the decoding apparatus of the LPDC code performs initialization based on a signal received from a channel (S410).

통신 시스템에서 사용되는 LDPC 부호들은 특수한 형태의 패리티 검사 행렬 형태를 갖고 있으며, 그 특수성으로 인해 보다 작은 크기의 행렬로 표현 가능하다. 이 작은 크기의 행렬을 Base 행렬이라고 하며, 이를 Tanner 그래프와 관련지어 설명하면, Base 행렬의

Figure 112018101438819-pat00108
번째 행은 타입-
Figure 112018101438819-pat00109
체크 노드라고 부르며, 타입-
Figure 112018101438819-pat00110
체크 노드는
Figure 112018101438819-pat00111
개의 체크 노드들로 구성되어 있다. Base 행렬의
Figure 112018101438819-pat00112
번째 열은 타입-
Figure 112018101438819-pat00113
변수 노드라고 부르며, 타입-
Figure 112018101438819-pat00114
변수 노드는
Figure 112018101438819-pat00115
개의 변수 노드들로 구성되어 있다. Base 행렬이
Figure 112018101438819-pat00116
개의 행과
Figure 112018101438819-pat00117
개의 열로 구성되어 있다면,
Figure 112018101438819-pat00118
Figure 112018101438819-pat00119
과 같고,
Figure 112018101438819-pat00120
와도 같다. LDPC codes used in communication systems have a special form of parity check matrix, which can be represented by a smaller matrix due to its specificity. This small matrix is called the Base matrix, which is described in relation to the Tanner graph.
Figure 112018101438819-pat00108
The second line is type-
Figure 112018101438819-pat00109
Called a check node, type-
Figure 112018101438819-pat00110
Check nodes
Figure 112018101438819-pat00111
It consists of two check nodes. Base matrix
Figure 112018101438819-pat00112
The second column is type-
Figure 112018101438819-pat00113
Called variable node, type-
Figure 112018101438819-pat00114
The variable node is
Figure 112018101438819-pat00115
It consists of two variable nodes. Base matrix
Figure 112018101438819-pat00116
Rows and
Figure 112018101438819-pat00117
If it consists of four columns,
Figure 112018101438819-pat00118
Is
Figure 112018101438819-pat00119
Is the same as
Figure 112018101438819-pat00120
Same as

한편, 본 발명에서 복호 실패 판단의 기준이 되는 임계값

Figure 112018101438819-pat00121
는 LDPC 부호의 분석 기법 중 하나인 PEXIT 차트에서 사용하는 수식을 활용하여 결정한다. PEXIT 차트에서는 LDPC 부호의 base 행렬을 바탕으로 다양한 상호 정보량을 반복적으로 연산하면서, 모든
Figure 112018101438819-pat00122
가 1에 도달하도록 하는 최소 신호 대 잡음비를 찾는다.On the other hand, in the present invention, the threshold value that is the criterion of the decoding failure determination
Figure 112018101438819-pat00121
Is determined using the equation used in the PEXIT chart, one of the techniques of analyzing LDPC codes. In the PEXIT chart, all the mutual information is calculated repeatedly based on the base matrix of the LDPC code.
Figure 112018101438819-pat00122
Find the minimum signal-to-noise ratio that causes R to reach 1.

이에, 본 발명에서는 LDPC 복호의 최대 반복 복호 횟수 (예컨대, 20회) 내에 모든

Figure 112018101438819-pat00123
가 1에 도달하도록 하는 최소 신호 대 잡음비를 찾는다. 찾은 신호 대 잡음비를 채널 상호 정보량
Figure 112018101438819-pat00124
연산에 사용한다. 이를 통해, 분석의 대상을 이론적으로 최대 반복 복호 횟수 내에 복호에 성공하는 경우로 한정지을 수 있다.Accordingly, in the present invention, all of the maximum iteration decoding times (for example, 20 times) of LDPC decoding are all included.
Figure 112018101438819-pat00123
Find the minimum signal-to-noise ratio that causes N to reach 1. Find the signal-to-noise ratio of the channel cross information
Figure 112018101438819-pat00124
Used for calculation. Through this, it is possible to limit the subject of analysis to the case where the decoding succeeds within the theoretical maximum number of repeated decoding.

LPDC 부호의 복호 장치는 송신 신호와 타입-

Figure 112018101438819-pat00125
수 노드에서 타입-
Figure 112018101438819-pat00126
체크 노드로 전파되는 메시지 간의 상호 정보량인 변수-체크 상호 정보량, 송신 신호와 타입-
Figure 112018101438819-pat00127
체크 노드에서 타입-
Figure 112018101438819-pat00128
변수 노드로 전파되는 메시지 간의 상호 정보량인 체크-변수 상호 정보량 각각을 초기화한다. The decoding device of the LPDC code includes a transmission signal and a type-
Figure 112018101438819-pat00125
Type- in number nodes
Figure 112018101438819-pat00126
Variable-check mutual information amount, transmission signal and type- which is mutual information amount between messages propagated to check node
Figure 112018101438819-pat00127
Type- in check nodes
Figure 112018101438819-pat00128
Initialize each check-variable mutual information amount, which is the mutual information amount between messages propagated to the variable node.

구체적으로, LPDC 부호의 복호 장치는 채널을 통해 수신한 신호에 기반하여, 채널에 대한 상호 정보량인 채널 상호 정보량을 산출한다. 이때, LPDC 부호의 복호 장치는 아래 수학식 7을 이용하여 채널 상호 정보량을 산출할 수 있다. Specifically, the decoding device of the LPDC code calculates the channel mutual information amount, which is the mutual information amount for the channel, based on the signal received through the channel. In this case, the decoding device of the LPDC code may calculate the channel mutual information amount using Equation 7 below.

[수학식 7][Equation 7]

Figure 112018101438819-pat00129
Figure 112018101438819-pat00129

여기서,

Figure 112018101438819-pat00130
는 j번째 채널에 대한 상호 정보량,
Figure 112018101438819-pat00131
는 신호 대 잡음비, R은 신호의 부호율(code rate)을 나타낸다.
Figure 112018101438819-pat00132
는 확률 분포가
Figure 112018101438819-pat00133
인 이진 확률 변수
Figure 112018101438819-pat00134
와 평균이
Figure 112018101438819-pat00135
고 분산
Figure 112018101438819-pat00136
Figure 112018101438819-pat00137
인 가우시안 확률 변수
Figure 112018101438819-pat00138
간의 상호 정보량을 나타낸다. here,
Figure 112018101438819-pat00130
Is the amount of mutual information for the jth channel,
Figure 112018101438819-pat00131
Is the signal-to-noise ratio, and R is the code rate of the signal.
Figure 112018101438819-pat00132
Is the probability distribution
Figure 112018101438819-pat00133
Binary random variables
Figure 112018101438819-pat00134
And average
Figure 112018101438819-pat00135
High dispersion
Figure 112018101438819-pat00136
end
Figure 112018101438819-pat00137
Gaussian random variable
Figure 112018101438819-pat00138
Represents the amount of mutual information between them.

Figure 112018101438819-pat00139
는 아래 수학식 8과 같이 정의할 수 있다.
Figure 112018101438819-pat00139
May be defined as in Equation 8 below.

[수학식 8][Equation 8]

Figure 112018101438819-pat00140
Figure 112018101438819-pat00140

이를 이용하여, BPSK(Binary phase shift keying) 변조가 적용된 송신된 신호에 해당하는 이진 확률 변수와 가우시안 채널로부터 수신한 수신 신호에 해당하는 가우시안 확률 변수 간의 상호 정보량을 채널 상호 정보량이라 할 수 있다. 따라서, 부호율이

Figure 112018101438819-pat00141
인 LDPC 부호의 타입-
Figure 112018101438819-pat00142
변수 노드로 도달하는 채널 상호 정보량을 수학식 6을 이용하여 산출할 수 있다. By using this, the amount of mutual information between a binary random variable corresponding to a transmitted signal to which Binary Phase Shift Keying (BPSK) modulation is applied and a Gaussian random variable corresponding to a received signal received from a Gaussian channel may be referred to as a channel mutual information amount. Therefore, the code rate is
Figure 112018101438819-pat00141
Of type LDPC code
Figure 112018101438819-pat00142
The amount of channel mutual information reaching the variable node may be calculated using Equation 6.

채널 상호 정보량이 산출되면, LPDC 부호의 복호 장치는 변수-체크 상호 정보량과 체크-변수 상호 정보량을 초기화한다. 즉, LPDC 부호의 복호 장치는 송신 신호와 타입-

Figure 112018101438819-pat00143
변수 노드에서 타입-
Figure 112018101438819-pat00144
체크 노드로 전파되는 메시지 간의 상호 정보량인 변수-체크 상호 정보량
Figure 112018101438819-pat00145
Figure 112018101438819-pat00146
로 초기화한다(
Figure 112018101438819-pat00147
). 또한, LPDC 부호의 복호 장치는 송신 신호와 타입-
Figure 112018101438819-pat00148
체크 노드에서 타입-
Figure 112018101438819-pat00149
변수 노드로 전파되는 메시지 간의 상호 정보량인 체크-변수 상호 정보량
Figure 112018101438819-pat00150
는 0으로 초기화 한다 (
Figure 112018101438819-pat00151
). When the channel mutual information amount is calculated, the decoding device of the LPDC code initializes the variable-check mutual information amount and the check-variable mutual information amount. That is, the decoding device of the LPDC code includes a transmission signal and a type-
Figure 112018101438819-pat00143
Type in a variable node
Figure 112018101438819-pat00144
Variable-check mutual information, which is the amount of mutual information between messages propagated to check nodes
Figure 112018101438819-pat00145
To
Figure 112018101438819-pat00146
Initialize with
Figure 112018101438819-pat00147
). In addition, the decoding device of the LPDC code includes a transmission signal and a type-.
Figure 112018101438819-pat00148
Type- in check nodes
Figure 112018101438819-pat00149
Amount of check-variable cross information, which is the amount of cross information between messages propagated to variable nodes
Figure 112018101438819-pat00150
Initializes to 0 (
Figure 112018101438819-pat00151
).

단계 S410이 수행되면, LPDC 부호의 복호 장치는 변수-체크 상호 정보량에 기초하여 체크-변수 상호 정보량을 산출한다(S420). 즉, LPDC 부호의 복호 장치는 아래 수학식 9을 이용하여 체크-변수 상호 정보량을 산출할 수 있다. When step S410 is performed, the decoding device of the LPDC code calculates the check-variable mutual information amount based on the variable-check mutual information amount (S420). That is, the decoding apparatus of the LPDC code may calculate the check-variable mutual information amount using Equation 9 below.

[수학식 9][Equation 9]

Figure 112018101438819-pat00152
Figure 112018101438819-pat00152

여기서,

Figure 112018101438819-pat00153
Figure 112018101438819-pat00154
번째 연산에서 체크-변수 상호 정보량을 의미하며,
Figure 112018101438819-pat00155
Figure 112018101438819-pat00156
번째 연산에서 변수-체크 상호 정보량을 의미한다.
Figure 112018101438819-pat00157
는 base행렬의
Figure 112018101438819-pat00158
번째 행,
Figure 112018101438819-pat00159
번째 열에 있는 값을 의미한다.
Figure 112018101438819-pat00160
Figure 112018101438819-pat00161
함수의 역함수이다. here,
Figure 112018101438819-pat00153
Is
Figure 112018101438819-pat00154
Means the amount of check-variable mutual information in the first operation,
Figure 112018101438819-pat00155
silver
Figure 112018101438819-pat00156
The variable-check mutual information amount in the first operation.
Figure 112018101438819-pat00157
Is the base matrix
Figure 112018101438819-pat00158
First row,
Figure 112018101438819-pat00159
The value in the first column.
Figure 112018101438819-pat00160
Is
Figure 112018101438819-pat00161
Inverse function of a function.

단계 S420이 수행되면, LPDC 부호의 복호 장치는 체크-변수 상호 정보량에 기초하여, 송신 신호와 변수 노드에 누적된 메시지 간의 상호 정보량인 누적 상호 정보량을 산출한다(S430). 즉, LPDC 부호의 복호 장치는 아래 수학식 10을 이용하여 누적 상호 정보량을 산출할 수 있다.When the step S420 is performed, the decoding device of the LPDC code calculates the cumulative mutual information amount which is the mutual information amount between the transmission signal and the message accumulated in the variable node, based on the check-variable mutual information amount (S430). That is, the LPDC code decoding apparatus may calculate the cumulative mutual information amount using Equation 10 below.

[수학식 10][Equation 10]

Figure 112018101438819-pat00162
Figure 112018101438819-pat00162

여기서,

Figure 112018101438819-pat00163
Figure 112018101438819-pat00164
번째 연산에서 누적 상호 정보량을 의미한다.here,
Figure 112018101438819-pat00163
Is
Figure 112018101438819-pat00164
The cumulative mutual information amount in the first operation.

상술한 상호 정보량 연산에서 변수 노드에서 체크 노드로 전달되는 메시지, 체크 노드에서 변수 노드로 전달되는 메시지, 그리고 변수 노드에 누적된 메시지는 모두 가우시안 확률 분포를 따를 수 있다. In the aforementioned mutual information amount operation, the message transmitted from the variable node to the check node, the message transmitted from the check node to the variable node, and the message accumulated in the variable node may all follow a Gaussian probability distribution.

단계 S4350이 수행되면, LPDC 부호의 복호 장치는 누적 상호 정보량에 기초하여, 송신 신호와 패리티 검사 정보 간의 상호 정보량인 패리티 검사 상호 정보량을 산출한다(S440).When the step S4350 is performed, the decoding device of the LPDC code calculates the parity check mutual information amount, which is the mutual information amount between the transmission signal and the parity check information, based on the accumulated mutual information amount (S440).

본 발명에서는 패리티 검사 정보

Figure 112018101438819-pat00165
는 상호정보량을 따르므로, 패리티 검사에 대한 정보(
Figure 112018101438819-pat00166
)는 아래 수학식 11과 같이 정의할 수 있다. In the present invention, parity check information
Figure 112018101438819-pat00165
Since follows the amount of mutual information, information about parity checks (
Figure 112018101438819-pat00166
) Can be defined as in Equation 11 below.

[수학식 11] [Equation 11]

Figure 112018101438819-pat00167
Figure 112018101438819-pat00167

따라서, LPDC 부호의 복호 장치는 연산한

Figure 112018101438819-pat00168
들을 바탕으로,
Figure 112018101438819-pat00169
번째 연산에서의 송신 신호와 타입-
Figure 112018101438819-pat00170
패리티 검사 정보 간의 상호 정보량을 산출한다. 즉, LPDC 부호의 복호 장치는 아래 수학식 12을 이용하여 타입-i 패리티 검사 정보에 대한 상호 정보량(
Figure 112018101438819-pat00171
)을 산출할 수 있다. Therefore, the decoding device of the LPDC code calculates
Figure 112018101438819-pat00168
Based on them,
Figure 112018101438819-pat00169
Signal and type in the 1st operation
Figure 112018101438819-pat00170
The amount of mutual information between parity check information is calculated. That is, the decoding apparatus of the LPDC code uses a mutual information amount for the type-i parity check information using Equation 12 below.
Figure 112018101438819-pat00171
) Can be calculated.

[수학식 12][Equation 12]

Figure 112018101438819-pat00172
Figure 112018101438819-pat00172

이를 통해, 타입-

Figure 112018101438819-pat00173
패리티 검사 정보는 평균이
Figure 112018101438819-pat00174
이고, 분산이
Figure 112018101438819-pat00175
인 가우시안 확률 변수임을 구할 수 있다. Through this, type-
Figure 112018101438819-pat00173
Parity check information is averaged
Figure 112018101438819-pat00174
, The variance is
Figure 112018101438819-pat00175
It can be found that is a Gaussian random variable.

단계 S440이 수행되면, LPDC 부호의 복호 장치는 타입-

Figure 112018101438819-pat00176
패리티 검사 정보에 기초하여 타입-
Figure 112018101438819-pat00177
패리티 검사가 만족하지 않을 확률을 산출한다(S450). 즉, 패리티 검사 정보는 음의 값을 가지면 패리티를 만족하지 않을 확률이 큰 것을 의미하며, 이를 통해 구한
Figure 112018101438819-pat00178
번째 연산에서 타입-
Figure 112018101438819-pat00179
패리티 검사가 만족하지 않을 확률(
Figure 112018101438819-pat00180
)은 아래 수학식 13과 같이 정의할 수 있다. When step S440 is performed, the decoding device of the LPDC code is type-
Figure 112018101438819-pat00176
Type based on parity check information
Figure 112018101438819-pat00177
The probability that the parity check is not satisfied is calculated (S450). In other words, the parity check information means that a negative value has a high probability of not satisfying parity.
Figure 112018101438819-pat00178
In the first operation
Figure 112018101438819-pat00179
The probability that the parity check is not satisfied (
Figure 112018101438819-pat00180
) May be defined as in Equation 13 below.

[수학식 13][Equation 13]

Figure 112018101438819-pat00181
Figure 112018101438819-pat00181

단계 S450이 수행되면, LPDC 부호의 복호 장치는 상기와 과정을

Figure 112018101438819-pat00182
회 까지 반복하였는지 판단한다(S460).When step S450 is performed, the decoding device of the LPDC code performs the above procedure.
Figure 112018101438819-pat00182
It is determined whether repeated up to times (S460).

단계 S460의 판단결과,

Figure 112018101438819-pat00183
회 까지 반복하지 않았으면, LPDC 부호의 복호 장치는 변수-체크 상호 정보량을 산출하고(S480), 단계 S420부터 다시 수행하여 상기 과정을
Figure 112018101438819-pat00184
회까지 반복한다The determination result of step S460,
Figure 112018101438819-pat00183
If not repeated up to the number of times, the decoding apparatus of the LPDC code calculates the variable-check mutual information amount (S480), and the process is performed again from step S420.
Figure 112018101438819-pat00184
Repeat until

이때, LPDC 부호의 복호 장치는 아래 수학식 14를 이용하여 변수-체크 상호 정보량

Figure 112018101438819-pat00185
을 산출할 수 있다. At this time, the decoding apparatus of the LPDC code uses the variable-check mutual information amount using Equation 14 below.
Figure 112018101438819-pat00185
Can be calculated.

[수학식 14][Equation 14]

Figure 112018101438819-pat00186
Figure 112018101438819-pat00186

Figure 112018101438819-pat00187
는 l 번째 반복 디코딩 동작 수행 시, 기본 행렬 B의 j행에 포함되는 변수 노드들에서 i행에 포함되는 체크 노드들로 전달되는 우도값의 상호 정보량을 나타낸다.
Figure 112018101438819-pat00187
Denotes the amount of mutual information of likelihood values transferred from the variable nodes included in row j of the basic matrix B to the check nodes included in row i when performing the l-th iterative decoding operation.

만약, 단계 S460의 판단결과

Figure 112018101438819-pat00188
회 까지 반복하였으면, LPDC 부호의 복호 장치는 최대 패리티 반복 횟수에 기초하여 임계치를 결정한다(S470). If the determination result of step S460
Figure 112018101438819-pat00188
If repeated up to the times, the decoding device of the LPDC code determines a threshold value based on the maximum number of parity iterations (S470).

타입-

Figure 112018101438819-pat00189
패리티 검사가 첫 번째 연산과
Figure 112018101438819-pat00190
번째 연산에서 모두 만족하지 않았을 확률은
Figure 112018101438819-pat00191
로 구할 수 있다. 따라서 연속으로 만족하지 않는 타입-
Figure 112018101438819-pat00192
패리티 검사의 평균 개수는
Figure 112018101438819-pat00193
와 같다. 이를 이용하여 LPDC 부호의 복호 장치는 아래 수학식 15를 이용하여 임계값
Figure 112018101438819-pat00194
를 산출할 수 있다. type-
Figure 112018101438819-pat00189
Parity check is not the first operation
Figure 112018101438819-pat00190
The probability of not being satisfied at all
Figure 112018101438819-pat00191
Can be obtained as Therefore, type which is not satisfied continuously
Figure 112018101438819-pat00192
The average number of parity checks is
Figure 112018101438819-pat00193
Same as The decoding apparatus of the LPDC code by using the threshold value using Equation 15 below
Figure 112018101438819-pat00194
Can be calculated.

[수학식 15][Equation 15]

Figure 112018101438819-pat00195
Figure 112018101438819-pat00195

임계값 산출 시, 첫 번째 연산과

Figure 112018101438819-pat00196
번째 연산에서 모두 만족하지 않은 경우를 고려하는 이유는 다음과 같다.
Figure 112018101438819-pat00197
연산 결과는 반복 연산 횟수가 늘어감에 따라 (
Figure 112018101438819-pat00198
이 커짐에 따라) 0으로 수렴하게 된다. 임계값을 결정하기 위해 이론적으로 복호에 성공하는 경우만을 고려하도록 신호 대 잡음비 설정을 하였다. 만약 초기값이 아닌 이후의 (
Figure 112018101438819-pat00199
) 값을 사용하게 된다면 복호 실패 판단 기준에 따라, 복호 가능한 경우 임에도 불구하고 반복 복호 초기에 임계값보다 많은 모두 만족하지 않는 패리티 검사식의 개수로 인해 잘못된 판단을 하게 될 수 있다.When calculating the threshold, the first operation
Figure 112018101438819-pat00196
The reason for considering the case where all of them are not satisfied is as follows.
Figure 112018101438819-pat00197
As the result of the calculation increases,
Figure 112018101438819-pat00198
As it increases, it converges to zero. To determine the threshold, we set the signal-to-noise ratio to consider only the case where the decoding succeeds theoretically. If not after initial value (
Figure 112018101438819-pat00199
If a value of) is used, a wrong decision may be made due to the number of parity check expressions that are not satisfied at all at the initial stage of the repeated decoding even though the decoding is possible, even if the decoding is possible.

임계값 결정을 위해, 반올림이 들어가는 이유는 임계값 저장을 위한 메모리 사용량을 줄이기 위함이다.

Figure 112018101438819-pat00200
는 실수이며, 실수를 저장하기 위해 사용되는 메모리양보다 정수를 저장하기 위해 필요한 메모리양이 적기 때문에 반올림을 사용한다.
Figure 112018101438819-pat00201
에 대한 연산은 복호를 할 때마다 수행하는 것이 아니다. 사전에 각 LDPC 부호마다 연산하고 복호기를 설계할 때, 메모리에 저장해두고 사용하기 때문에
Figure 112018101438819-pat00202
에 대한 연산 과정은 LDPC 복호 과정의 복잡도에 영향을 주지 않는다.For threshold determination, the reason for rounding is to reduce the memory usage for storing the threshold.
Figure 112018101438819-pat00200
Is a real number, and rounding is done because there is less memory needed to store integers than the amount used to store real numbers.
Figure 112018101438819-pat00201
The operation on is not performed every time the decoding is performed. Since each LDPC code is calculated beforehand and the decoder is designed, it is stored in memory and used.
Figure 112018101438819-pat00202
The computation process for does not affect the complexity of the LDPC decoding process.

이하, 시뮬레이션을 이용하여 본 발명과 종래 기술을 비교하기로 한다. Hereinafter, the present invention will be compared with the prior art by using a simulation.

먼저, 3종류의 IEEE 802.11ad 표준 LDPC 부호들에 대해 발명 기술을 적용하여 몬테카를로 시뮬레이션을 진행하였다. 모든 시뮬레이션은 AWGN(additive white Gaussian noise) 채널 환경을 가정하였으며, 변조방식은 BPSK(Binary phase shift keying)을 사용하였다. LDPC 부호의 최대 반복 복호 횟수는 20회로 설정하고, 측정 간격

Figure 112018101438819-pat00203
는 3으로 설정하였다. 도 5 내지 도 9는 부호 길이 N이 672이고 부호율 R이 서로 다른 3 종류의 IEEE 802.11ad 표준 LDPC 부호들에 적용한 결과이다. First, Monte Carlo simulation was performed by applying the invention technique to three types of IEEE 802.11ad standard LDPC codes. All simulations assume an additive white Gaussian noise (AWGN) channel environment, and the modulation scheme uses binary phase shift keying (BPSK). The maximum number of repeated decoding of the LDPC code is set to 20 times, and the measurement interval
Figure 112018101438819-pat00203
Was set to 3. 5 to 9 show results of applying to three kinds of IEEE 802.11ad standard LDPC codes having a code length N of 672 and a code rate R different from each other.

도 5는 본 발명의 실시예에 따른 복호에 성공하는 경우와 복호에 실패하는 경우로 나누어 T=3 간격에서 모두 만족하지 않은 패리티 검사식의 평균 개수를 측정한 결과를 비교한 도면이다. 복호에 성공할 것임에도 불구하고 실패할 것으로 잘못 예측하는 경우를 막기 위해 기준이 되는

Figure 112018101438819-pat00204
는 복호에 성공하는 경우의 평균값보다 커야 한다. 또한, 복호에 실패하는 경우에 대해 조건식을 통해 본 발명 기법이 동작하도록
Figure 112018101438819-pat00205
는 복호에 실패하는 경우의 평균값보다는 작아야 한다. 본 발명에서 제시하는 결정 방법으로 설정한
Figure 112018101438819-pat00206
는 위 조건을 만족함을 확인할 수 있다. 5 is a diagram comparing the results of measuring the average number of unsatisfactory parity check equations in T = 3 intervals, divided into a case where the decoding is successful and the case where the decoding fails according to an embodiment of the present invention. Although it will be successful in decoding,
Figure 112018101438819-pat00204
Must be larger than the average value in case of successful decoding. In addition, the present invention can operate through the conditional expression for the case where the decoding fails.
Figure 112018101438819-pat00205
Should be smaller than the average value when decoding fails. In the determination method proposed in the present invention
Figure 112018101438819-pat00206
It can be confirmed that satisfies the above condition.

도 6 내지 도 9는 복호 실패 예측 기법이 적용되지 않은 일반적인 복호 기법(NO ESC), 종래기술 1(CMM), 종래기술 2(SPC), 종래기술 3(UPC), 그리고 종래기술 4(SNSC)와 본 발명(Proposed)의 성능을 비교한 시뮬레이션 결과이다. 6 to 9 illustrate a general decoding technique (NO ESC), a prior art 1 (CMM), a prior art 2 (SPC), a prior art 3 (UPC), and a prior art 4 (SNSC) to which a decoding failure prediction technique is not applied. And simulation results comparing the performance of the present invention (Proposed).

도 6은 본 발명의 실시예에 따른 신호 대 잡음비에 따른 프레임 오류율을 비교한 도면이다. 도 6을 참조하면, 본 발명이 종래 기술들과 비교하여 오류 정정 능력 능력에 열화가 없음을 확인할 수 있다. 6 is a diagram comparing frame error rates according to signal-to-noise ratios according to an embodiment of the present invention. Referring to FIG. 6, it can be seen that the present invention has no deterioration in error correction capability capability compared to the prior arts.

도 7은 본 발명의 실시예에 따른 신호 대 잡음비에 따른 평균 반복 복호 횟수를 비교한 도면이다. (a)는 부호 길이 N=672, 부호율 R=1/2인 LDPC 부호에 적용한 시뮬레이션 결과, (b)는 부호 길이 N=672, 부호율 R=5/8인 LDPC 부호에 적용한 시뮬레이션 결과, (c)는 부호 길이 N=672, 부호율 R=3/4인 LDPC 부호에 적용한 시뮬레이션 결과이다. Genie-aided는 이상적인 경우에 대한 결과이며, 복호에 실패할 것을 수신단이 이미 알고 있다는 가정하에 복호 실패의 경우 처음부터 복호를 진행하지 않는다. 복호 실패 예측 기법의 효과가 가장 크게 나타나는 낮은 신호 대 잡음비 영역에서 본 발명이 종래 기술들 보다 빠르게 복호 실패를 예측하는 것을 확인할 수 있다. FIG. 7 is a diagram comparing average repetition decoding times according to a signal-to-noise ratio according to an embodiment of the present invention. FIG. (a) is a simulation result applied to LDPC codes having code length N = 672 and code rate R = 1/2, (b) is a simulation result applied to LDPC code with code length N = 672 and code rate R = 5/8, (c) is a simulation result applied to an LDPC code having code length N = 672 and code rate R = 3/4. Genie-aided is the result of the ideal case and does not proceed with the decoding in the case of the decoding failure, assuming that the receiver already knows that the decoding will fail. In the low signal-to-noise ratio region where the effects of the decoding failure prediction technique are greatest, it can be seen that the present invention predicts decoding failure faster than the prior arts.

도 8은 본 발명의 실시예에 따른 부호 길이 N=672, 부호율 R=1/2인 LDPC 부호에서의 신호 대 잡음비에 따른 복호 실패 예측 빈도를 비교한 도면이고, 도 9는 본 발명의 실시예에 따른 부호 길이 N=672, 부호율 R=1/2인 802.11ad 표준 LDPC 부호에서의 신호 대 잡음비에 따른 복호 실패 판단 정확도를 비교한 도면이다. 도 8 및 도 9를 참조하면, 본 발명은 기존 기술들 보다 높은 정확도로 복호 실패를 예측하며, 비교적 높은 작동 빈도를 갖고 있음을 확인할 수 있다.8 is a diagram comparing decoding failure prediction frequencies according to a signal-to-noise ratio in an LDPC code having code length N = 672 and code rate R = 1/2 according to an embodiment of the present invention, and FIG. 9 is an embodiment of the present invention. A comparison of decoding failure determination accuracy according to signal-to-noise ratio in an 802.11ad standard LDPC code having code length N = 672 and code rate R = 1/2 according to an example. 8 and 9, it can be seen that the present invention predicts a decoding failure with higher accuracy than existing technologies, and has a relatively high frequency of operation.

지금까지 참조한 도면과 기재된 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The detailed description of the invention described with reference to the drawings referred to heretofore is merely exemplary of the invention, which is used only for the purpose of illustrating the invention and is used to limit the scope of the invention as defined in the meaning or claims. It is not. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

100 : 복호 장치
105 : 초기화부
110 : 연산부
120 : 비트열 정당성 판단부
130 : 복호 실패 예측부
140 : 임계값 결정부
150 : 메모리
100: decoding device
105: initialization unit
110: calculation unit
120: bit string validity judgment unit
130: decoding failure prediction unit
140: threshold determination unit
150: memory

Claims (17)

장치가 저밀도 패리티 검사(low density parity check, LDPC) 부호를 복호하는 방법에 있어서,
복수의 체크 노드(check node) 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드(variable node) 각각으로 전달되는 체크-변수 메시지 값을 연산하는 단계;
상기 연산된 적어도 하나의 체크-변수 메시지 값에 기반하여, 상기 복수의 변수 노드들 각각의 사후 확률 로그 우도 비(a posteriori probability log likelihood ratio, APP LLR) 값을 연산하는 단계;
상기 APP LLR 값에 기초하여 디코딩 비트열을 결정하고, 패리티 검사 행렬을 이용하여 상기 디코딩 비트열이 정당한 부호어인지를 판단하는 단계;
상기 디코딩 비트열이 정당한 부호열이 아닌 경우, 현재 패리티 검사 결과와 이전의 패리티 검사 결과에 기초하여 모두 실패한 패리티 검사 개수(Consecutive Unsatisfied Parity Check, CUPC)를 산출하는 단계; 및
상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 판단하는 단계를 포함하는, LDPC 부호의 복호를 위한 방법.
In the method for the device to decode a low density parity check (LDPC) code,
Computing a check-variable message value passed from each of a plurality of check nodes to each of a plurality of variable nodes connected to each of the plurality of check nodes;
Calculating a posteriori probability log likelihood ratio (APP LLR) value of each of the plurality of variable nodes based on the calculated at least one check-variable message value;
Determining a decoding bit string based on the APP LLR value, and determining whether the decoding bit string is a legitimate codeword using a parity check matrix;
Calculating a number of failed parity checks (CUPC) based on a current parity check result and a previous parity check result when the decoding bit string is not a valid code string; And
And comparing the number of CUPCs with a predetermined threshold value to determine whether decoding is unsuccessful.
제1항에 있어서,
상기 체크-변수 메시지 값을 연산하는 단계 이전에,
상기 복수의 변수 노드에서 연결된 복수의 체크 노드로 전달되는 변수-체크 메시지 값을 초기화하는 단계를 더 포함하는 LDPC 부호의 복호를 위한 방법.
The method of claim 1,
Prior to calculating the check-variable message value,
And initializing a variable-check message value transmitted from the plurality of variable nodes to a plurality of connected check nodes.
제2항에 있어서,
상기 체크-변수 메시지 값은, 상기 변수-체크 메시지 값에 기초하여 연산되는 것을 특징으로 하는 LDPC 부호의 복호를 위한 방법.
The method of claim 2,
And said check-variable message value is calculated based on said variable-check message value.
제1항에 있어서,
상기 APP LLR 값은,
각 변수 노드에서는 채널로부터 받은 정보와 상기 체크-변수 메시지 값에 기초하여 산출되는 것을 특징으로 하는 LDPC 부호의 복호를 위한 방법.
The method of claim 1,
The APP LLR value is,
Wherein each variable node is calculated based on the information received from the channel and the check-variable message value.
제1항에 있어서,
상기 CUPC 개수는 아래 수학식에 의해 산출되는 것을 특징으로 하는 LDPC 부호의 복호를 위한 방법.
[수학식]
Figure 112018101438819-pat00207

여기서,
Figure 112018101438819-pat00208
Figure 112018101438819-pat00209
는 각각
Figure 112018101438819-pat00210
번째와
Figure 112018101438819-pat00211
번째 연산에서의 패리티 검사 결과를 보여주는 이진 벡터, T는 측정 간격, ()'은 행렬의 행과 열을 바꿔주는 transpose 연산을 의미함.
The method of claim 1,
The CUPC number is calculated by the following equation.
[Equation]
Figure 112018101438819-pat00207

here,
Figure 112018101438819-pat00208
and
Figure 112018101438819-pat00209
Are each
Figure 112018101438819-pat00210
Th and
Figure 112018101438819-pat00211
Binary vector showing the parity check result of the first operation, T is the measurement interval, and () 'is a transpose operation that swaps rows and columns of a matrix.
제1항에 있어서,
상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 판단하는 단계는,
상기 CUPC 개수가 상기 임계값을 초과하는지를 판단하는 단계; 및
상기 CUPC 개수가 상기 임계값을 초과하는 경우 복호 실패로 예측하고, 초과하지 않은 경우 변수-체크 메시지 값을 연산하는 단계를 포함하는 것을 특징으로 하는 LDPC 부호의 복호를 위한 방법.
The method of claim 1,
Comparing the number of CUPC and a predetermined threshold value and determining whether the decoding failed,
Determining whether the number of CUPCs exceeds the threshold; And
Predicting a decoding failure when the number of CUPCs exceeds the threshold value, and calculating a variable-check message value when the number of CUPCs does not exceed the threshold value.
제6항에 있어서,
상기 임계값은, PEXIT 차트 기법에 기초하여 결정되는 것을 특징으로 하는 LDPC 부호의 복호를 위한 방법.
The method of claim 6,
Wherein the threshold value is determined based on a PEXIT chart technique.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 복수의 체크 노드 각각으로부터 상기 복수의 체크 노드 각각에 연결된 복수의 변수 노드 각각으로 전달되는 체크-변수 메시지 값을 연산하고, 상기 체크-변수 메시지 값에 기초하여 상기 복수의 변수 노드들 각각의 사후 확률 로그 우도 비(a posteriori probability log likelihood ratio, APP LLR) 값을 연산하는 연산부;
상기 APP LLR 값에 기초하여 디코딩 비트열을 결정하고, 패리티 검사 행렬을 이용하여 상기 디코딩 비트열이 정당한 부호어인지를 판단하는 비트열 정당성 판단부; 및
상기 디코딩 비트열이 정당한 부호열이 아닌 경우, 현재 패리티 검사 결과와 이전의 패리티 검사 결과에 기초하여 모두 실패한 패리티 검사 개수(Consecutive Unsatisfied Parity Check, CUPC)를 산출하고, 상기 CUPC 개수와 기 설정된 임계값을 비교하여 복호 실패 여부를 예측하는 복호 실패 예측부를 포함하는, LDPC 부호의 복호를 위한 장치.
Compute a check-variable message value transferred from each of a plurality of check nodes to each of a plurality of variable nodes connected to each of the plurality of check nodes, and post-probability of each of the plurality of variable nodes based on the check-variable message value. A calculator for calculating a posteriori probability log likelihood ratio (APP LLR) value;
A bit string validity determination unit determining a decoding bit string based on the APP LLR value, and determining whether the decoding bit string is a valid codeword using a parity check matrix; And
If the decoding bit string is not a valid code string, a number of failed parity checks (CUPC) is calculated based on a current parity check result and a previous parity check result, and the number of CUPCs and a preset threshold value are calculated. The apparatus for decoding an LDPC code, comprising: a decoding failure predictor for predicting whether or not the decoding has failed by comparing the two.
제15항에 있어서,
상기 복호 실패 예측부는 상기 CUPC 개수가 상기 임계값을 초과하는 경우 복호 실패로 예측하고, 초과하지 않은 경우 변수-체크 메시지 값을 연산하는 것을 특징으로 하는 LDPC 부호의 복호를 위한 장치.
The method of claim 15,
The decoding failure prediction unit predicts decoding failure when the number of CUPCs exceeds the threshold, and calculates a variable-check message value when not exceeding the threshold value.
삭제delete
KR1020180122809A 2018-10-15 2018-10-15 Method and Apparatus for Decoding of Low-density parity-check KR102045438B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180122809A KR102045438B1 (en) 2018-10-15 2018-10-15 Method and Apparatus for Decoding of Low-density parity-check

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180122809A KR102045438B1 (en) 2018-10-15 2018-10-15 Method and Apparatus for Decoding of Low-density parity-check

Publications (1)

Publication Number Publication Date
KR102045438B1 true KR102045438B1 (en) 2019-11-15

Family

ID=68578692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180122809A KR102045438B1 (en) 2018-10-15 2018-10-15 Method and Apparatus for Decoding of Low-density parity-check

Country Status (1)

Country Link
KR (1) KR102045438B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112865812A (en) * 2021-01-18 2021-05-28 武汉梦芯科技有限公司 Multi-element LDPC decoding method, computer storage medium and computer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101535225B1 (en) 2009-01-06 2015-07-09 삼성전자주식회사 Decoding method and memory system device for using the method
KR20180015011A (en) * 2016-08-02 2018-02-12 삼성전자주식회사 Apparatus and method for decoding data using low density parity check code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101535225B1 (en) 2009-01-06 2015-07-09 삼성전자주식회사 Decoding method and memory system device for using the method
KR20180015011A (en) * 2016-08-02 2018-02-12 삼성전자주식회사 Apparatus and method for decoding data using low density parity check code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112865812A (en) * 2021-01-18 2021-05-28 武汉梦芯科技有限公司 Multi-element LDPC decoding method, computer storage medium and computer

Similar Documents

Publication Publication Date Title
US7716561B2 (en) Multi-threshold reliability decoding of low-density parity check codes
TWI663839B (en) Method for providing soft information with decoder under hard decision hard decoding mode
US8010869B2 (en) Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
JP4627317B2 (en) Communication apparatus and decoding method
US8601337B2 (en) Decoding method and decoding device
KR101718543B1 (en) Apparatus and method for decoding using improved bit-flipping algorithm for low density parity check code and recording medium for the same
US9960790B2 (en) Belief propagation decoding for short algebraic codes with permutations within the code space
CN107612560B (en) Polarization code early iteration stopping method based on partial information bit likelihood ratio
US10560120B2 (en) Elementary check node processing for syndrome computation for non-binary LDPC codes decoding
CN107404321B (en) Method and apparatus for error correction code decoding
WO2018179246A1 (en) Check bit concatenated polar codes
US8930790B1 (en) Method and apparatus for identifying selected values from among a set of values
KR102045438B1 (en) Method and Apparatus for Decoding of Low-density parity-check
Noor-A-Rahim et al. Finite length analysis of LDPC codes
US8312346B2 (en) Systems and methods for communications
US9231620B2 (en) Iterative decoding device and related decoding method for irregular low-density parity-check code capable of improving error correction performance
CN107026655B (en) Method for decoding a codeword and decoder
KR102241416B1 (en) Apparatus and method for decoding low density parity check(ldpc) codes in digital video broadcasting(dvb) system
Tolouei et al. Lowering the error floor of LDPC codes using multi-step quantization
US10298262B2 (en) Decoding low-density parity-check maximum-likelihood single-bit messages
KR20090012189A (en) Apparatus and method for decoding using performance enhancement algorithm for ldpc codes with scaling based min-sum iterative decoding
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
Truhachev et al. Decoding analysis accounting for mis-corrections for spatially-coupled split-component codes
RU2522299C1 (en) Method and apparatus for noise-immune decoding of signals obtained using low-density parity check code
WO2020052754A1 (en) Simplified check node processing for ldpc decoding

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant