KR20210004897A - A method and apparatus for fast decoding a linear code based on bit matching - Google Patents

A method and apparatus for fast decoding a linear code based on bit matching Download PDF

Info

Publication number
KR20210004897A
KR20210004897A KR1020200119130A KR20200119130A KR20210004897A KR 20210004897 A KR20210004897 A KR 20210004897A KR 1020200119130 A KR1020200119130 A KR 1020200119130A KR 20200119130 A KR20200119130 A KR 20200119130A KR 20210004897 A KR20210004897 A KR 20210004897A
Authority
KR
South Korea
Prior art keywords
decoding
generation matrix
signal
error correction
order
Prior art date
Application number
KR1020200119130A
Other languages
Korean (ko)
Other versions
KR102269322B1 (en
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
Priority claimed from KR1020190081127A external-priority patent/KR102189920B1/en
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020200119130A priority Critical patent/KR102269322B1/en
Publication of KR20210004897A publication Critical patent/KR20210004897A/en
Application granted granted Critical
Publication of KR102269322B1 publication Critical patent/KR102269322B1/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/43Majority logic or threshold decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Disclosed are a method for decoding a linear code at a high speed based on bit matching and an apparatus thereof. The method for decoding a linear code at a high speed based on bit matching includes the following steps of: obtaining a hard decision signal by making a hard decision on a received signal; extracting a message signal from the obtained hard decision signal; obtaining a corrected codeword candidate based on an error vector in accordance with a current degree and the extracted message signal; calculating a hamming distance between the hard decision signal and the obtained corrected codeword candidate; comparing the calculated hamming distance to a bit matching-based threshold value; and determining the corrected codeword candidate as a corrected codeword in accordance with the result of the comparison.

Description

비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치{A METHOD AND APPARATUS FOR FAST DECODING A LINEAR CODE BASED ON BIT MATCHING}Method and apparatus for high-speed decoding of linear codes based on bit matching {A METHOD AND APPARATUS FOR FAST DECODING A LINEAR CODE BASED ON BIT MATCHING}

본 발명은 비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 수신 신호의 SNR이 높은 경우에 단순한 비트 매칭을 통해 고속으로 오류 정정 부호어를 결정하는 기술에 관한 것이다.The present invention relates to a method and apparatus for high-speed decoding of a linear code based on bit matching, and more particularly, to a technique for determining an error correction codeword at high speed through simple bit matching when the SNR of a received signal is high. .

디지털 통신에서 판정은 복호화기 직전에 있는 복조기에서 양자화에 따른 임계 판정(threshold decision)을 의미한다. 이때, 판정 방법에는 경판정(Hard Decision)과 연판정(Soft Decision)이 있다.In digital communication, a decision means a threshold decision based on quantization in a demodulator immediately before the decoder. At this time, the judgment methods include Hard Decision and Soft Decision.

경판정은 복조기에 의한 파형 출력이 2진 신호(예를 들면 0 또는 1)로만 복조된 후 복호화되는 것을 의미한다. 반면, 연판정은 경판정과 같이 확고한 정수 판정을 하는 대신에 복조기 출력이 2 단계 이상의 양자화된 신호로 복조된 후 복호화되는 것을 의미한다.Hard decision means that the waveform output by the demodulator is demodulated into a binary signal (for example, 0 or 1) and then decoded. On the other hand, soft decision means that the output of the demodulator is demodulated into two or more quantized signals and then decoded instead of making a solid integer decision like a hard decision.

경판정은 수신기에서 돌이킬 수 없는 정보 손실을 유발할 수 있으나, 더 적은 데이터 처리가 요구되고 구현이 단순하다. 반면, 연판정은 더 많은 데이터 처리가 요구되고 구현이 복잡하지만 경판정보다 우수한 복호 성능을 갖기 때문에 많이 사용된다.Hard decision may cause irreversible information loss in the receiver, but less data processing is required and implementation is simple. On the other hand, soft decision is often used because it requires more data processing and is complicated to implement, but has excellent decoding performance compared to hard plate information.

한편, 연판정된 신호를 원래의 신호로 복호화하는 과정은 연판정된 신호의 조건부 확률 또는 우도(likelihood) 등의 정보 조합을 통해 수행된다. 이러한 연판정 기반 복호화 방법 중 하나인 OSD(Ordered statistics decoder)는 최대우도(ML, maximum likelihood)에 거의 근접한 성능을 나타내고 있어 많은 관심을 받고 있다.Meanwhile, the process of decoding the soft-determined signal into the original signal is performed through a combination of information such as conditional probability or likelihood of the soft-determined signal. One of these soft decision-based decoding methods, an ordered statistics decoder (OSD), is attracting a lot of attention because it exhibits a performance that is close to maximum likelihood (ML).

그러나, OSD는 모든 부호어 중에서 수신된 데이터와 가장 유사한 부호어를 찾는 방법과 유사하기 때문에 모든 조합을 다 조사하는 과정에 따른 연산 복잡도가 매우 높다. 예를들어, 수신 신호를 복호화 과정에서 일반적으로 수반되는 가우스 소거 연산에 필요한 연산량이 매우 높은 편이다. However, since the OSD is similar to a method of finding a codeword that is most similar to the received data among all codewords, the computational complexity in the process of examining all combinations is very high. For example, the amount of computation required for a Gaussian erasure operation generally involved in decoding a received signal is very high.

따라서, 연산 복잡도를 낮추면서 복호화 성능을 높게 유지할 수 있는 방안이 필요한 실정이다.Therefore, there is a need for a method capable of maintaining high decoding performance while lowering computational complexity.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법을 제공하는 데 있다.An object of the present invention for solving the above problems is to provide a method for high-speed decoding of a linear code based on bit matching.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치를 제공하는 데 있다.Another object of the present invention for solving the above problems is to provide an apparatus for high-speed decoding of a linear code based on bit matching.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 제공하는 데 있다.Another object of the present invention for solving the above problems is to provide a method for performing Gaussian elimination at high speed in a method of decoding a linear code.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 장치를 제공하는 데 있다.Another object of the present invention for solving the above problems is to provide an apparatus for performing Gaussian elimination at high speed in a method of decoding a linear code.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법을 제공한다.An aspect of the present invention for achieving the above object is to provide a method for high-speed decoding of a linear code based on bit matching.

비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법은, 수신된 신호를 경판정하여 경판정 신호를 획득하는 단계, 획득된 경판정 신호에서 메시지 신호를 추출하는 단계, 추출된 메시지 신호와 현재 차수에 따른 오류 벡터에 기초하여 오류 정정 후보어(corrected codeword candidate)를 획득하는 단계, 획득된 오류 정정 후보어와 상기 경판정 신호 사이의 해밍 거리를 산출하는 단계, 산출된 해밍 거리를 비트 매칭 기반 임계값과 비교하는 단계 및 비교 결과에 따라 상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계를 포함할 수 있다.A method of high-speed decoding of a linear code based on bit matching includes the steps of hard-determining a received signal to obtain a hard decision signal, extracting a message signal from the obtained hard decision signal, and the extracted message signal Obtaining a corrected codeword candidate based on an error vector according to the order, calculating a Hamming distance between the obtained error correction candidate word and the hard decision signal, the calculated Hamming distance based on bit matching threshold And determining the error correction candidate word as a corrected codeword according to a comparison result with a value.

상기 오류 벡터는, 상기 메시지 신호와 동일한 길이를 갖고, 해밍 무게(hamming weight)가 상기 현재 차수인 벡터로 정의될 수 있다.The error vector may be defined as a vector having the same length as the message signal and a hamming weight of the current order.

상기 오류 정정 후보어를 획득하는 단계는, 상기 메시지 신호와 상기 오류 벡터를 더한 값에 생성 행렬을 곱하여 상기 오류 정정 후보어를 획득할 수 있다.In the obtaining of the error correction candidate word, the error correction candidate word may be obtained by multiplying a value obtained by adding the message signal and the error vector by a generation matrix.

상기 메시지 신호를 추출하는 단계는, 상기 경판정 신호에서 상기 생성 행렬의 랭크(rank)에 상응하는 개수만큼 성분값을 추출함으로써 상기 메시지 신호를 추출할 수 있다.In the step of extracting the message signal, the message signal may be extracted by extracting component values by a number corresponding to the rank of the generation matrix from the hard decision signal.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 현재 차수를 증가시키고 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold value, the step of increasing the current order and obtaining the error correction candidate word may be performed again.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold, the step of obtaining the error correction candidate word by changing the generation matrix may be performed again.

상기 상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계는, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 작거나 같으면, 상기 오류 정정 후보어를 상기 오류 정정 부호어로 결정할 수 있다.The step of determining the error correction candidate word as a corrected codeword may include determining the error correction candidate word as the error correction code word if the calculated Hamming distance is less than or equal to the bit matching-based threshold value. have.

상기 목적을 달성하기 위한 본 발명의 다른 측면은, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치를 제공하는 데 있다.Another aspect of the present invention for achieving the above object is to provide an apparatus for high-speed decoding of a linear code based on bit matching.

비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.An apparatus for high-speed decoding of a linear code based on bit matching includes at least one processor and a memory storing instructions for instructing the at least one processor to perform at least one step ( memory).

상기 적어도 하나의 단계는, 수신된 신호를 경판정하여 경판정 신호를 획득하는 단계, 획득된 경판정 신호에서 메시지 신호를 추출하는 단계, 추출된 메시지 신호와 현재 차수에 따른 오류 벡터에 기초하여 오류 정정 후보어(corrected codeword candidate)를 획득하는 단계, 획득된 오류 정정 후보어와 상기 경판정 신호 사이의 해밍 거리를 산출하는 단계, 산출된 해밍 거리를 비트 매칭 기반 임계값과 비교하는 단계 및 비교 결과에 따라 상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계를 포함할 수 있다.The at least one step may include obtaining a hard decision signal by hard-determining the received signal, extracting a message signal from the obtained hard decision signal, and correcting an error based on the extracted message signal and an error vector according to the current order. Obtaining a corrected codeword candidate, calculating a Hamming distance between the obtained error correction candidate word and the hard decision signal, comparing the calculated Hamming distance with a threshold based on bit matching, and according to the comparison result It may include the step of determining the error correction candidate word as an error corrected codeword.

상기 오류 벡터는, 상기 메시지 신호와 동일한 길이를 갖고, 해밍 무게(hamming weight)가 상기 현재 차수인 벡터로 정의될 수 있다.The error vector may be defined as a vector having the same length as the message signal and a hamming weight of the current order.

상기 오류 정정 후보어를 획득하는 단계는, 상기 메시지 신호와 상기 오류 벡터를 더한 값에 생성 행렬을 곱하여 상기 오류 정정 후보어를 획득할 수 있다.In the obtaining of the error correction candidate word, the error correction candidate word may be obtained by multiplying a value obtained by adding the message signal and the error vector by a generation matrix.

상기 메시지 신호를 추출하는 단계는, 상기 경판정 신호에서 상기 생성 행렬의 랭크(rank)에 상응하는 개수만큼 성분값을 추출함으로써 상기 메시지 신호를 추출할 수 있다.In the step of extracting the message signal, the message signal may be extracted by extracting component values by a number corresponding to the rank of the generation matrix from the hard decision signal.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 현재 차수를 증가시키고 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold value, the step of increasing the current order and obtaining the error correction candidate word may be performed again.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold, the step of obtaining the error correction candidate word by changing the generation matrix may be performed again.

상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계는, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 작거나 같으면, 상기 오류 정정 후보어를 상기 오류 정정 부호어로 결정할 수 있다.The step of determining the error correction candidate word as a corrected codeword may include determining the error correction candidate word as the error correction codeword when the calculated Hamming distance is less than or equal to the bit matching-based threshold value. .

상기 목적을 달성하기 위한 본 발명의 다른 측면은, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 제공한다.Another aspect of the present invention for achieving the above object is to provide a method of performing Gaussian elimination at high speed in a method of decoding a linear code.

선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법은, 치환된 생성 행렬에서 열 교환(column exchange)을 수행하여 열교환된 생성 행렬을 생성하는 단계, 상기 열교환된 생성 행렬의 전단에 위치한 열들이 부분적 단위 행렬을 이루도록 행 교환(row exchange)을 수행함으로써 행 교환된 생성 행렬을 생성하는 단계 및 상기 행 교환된 생성 행렬에서 상기 부분적 단위 행렬을 이루는 열들을 제외하고 나머지 열들에 대하여 가우스 소거를 수행하는 단계를 포함할 수 있다.The method of performing Gaussian elimination at high speed in the decoding method of the linear code includes the steps of generating a heat-exchanged generation matrix by performing column exchange in a substituted generation matrix, and a front end of the heat-exchanged generation matrix. Generating a row-swapped generation matrix by performing row exchange so that the columns located at are forming a partial identity matrix, and Gaussian for the remaining columns excluding the columns constituting the partial identity matrix from the row-exchanged generation matrix. It may include the step of performing erasing.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 치환된 생성 행렬에서, 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬의 전단에 위치하도록 열 교환하는 단계를 포함할 수 있다.The generating of the heat-exchanged generation matrix includes, in the replaced generation matrix, columns that are unit vectors among columns corresponding to MRB (Most Reliable Bases) of the received signal are a front end of the heat-exchanged generation matrix. It may include the step of exchanging heat to be located at.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다.In the generating of the heat exchanged generation matrix, at least one column having a low reliability among columns corresponding to the MRB of the received signal may be excluded from the heat exchange.

상기 목적을 달성하기 위한 본 발명의 다른 측면은, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 장치를 제공한다.Another aspect of the present invention for achieving the above object is to provide an apparatus for performing Gaussian elimination at high speed in a method of decoding a linear code.

선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.An apparatus for performing Gaussian elimination at high speed in a method of decoding a linear code stores at least one processor and instructions for instructing the at least one processor to perform at least one step. It may include a memory (memory).

상기 적어도 하나의 단계는, 치환된 생성 행렬에서 열 교환(column exchange)을 수행하여 열교환된 생성 행렬을 생성하는 단계, 상기 열교환된 생성 행렬의 전단에 위치한 열들이 부분적 단위 행렬을 이루도록 행 교환(row exchange)을 수행함으로써 행 교환된 생성 행렬을 생성하는 단계 및 상기 행 교환된 생성 행렬에서 상기 단위 행렬을 이루는 열들을 제외하고 나머지 열들에 대하여 가우스 소거를 수행하는 단계를 포함할 수 있다.The at least one step may include generating a heat-exchanged generation matrix by performing column exchange on the replaced generation matrix, and row exchange so that columns located in front of the heat-exchanged generation matrix form a partial unit matrix. exchange) generating a row-exchanged generation matrix, and performing Gaussian erasure on the remaining columns excluding columns constituting the identity matrix from the row-exchanged generation matrix.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 치환된 생성 행렬에서, 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬의 전단에 위치하도록 열 교환하는 단계를 포함할 수 있다.The generating of the heat-exchanged generation matrix includes, in the replaced generation matrix, columns that are unit vectors among columns corresponding to MRB (Most Reliable Bases) of the received signal are a front end of the heat-exchanged generation matrix. It may include the step of exchanging heat to be located at.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다.In the generating of the heat exchanged generation matrix, at least one column having a low reliability among columns corresponding to the MRB of the received signal may be excluded from the heat exchange.

상기와 같은 본 발명에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법 및 장치를 이용할 경우에는 OSD에 따른 복호화 성능을 최대한 유지하면서 연산 복잡도를 낮출 수 있다.In the case of using the method and apparatus for high-speed decoding of a linear code based on bit matching according to the present invention as described above, it is possible to reduce computational complexity while maximizing the decoding performance according to the OSD.

또한, 해밍 거리를 산출하는 방식의 비트 매칭을 사용함으로써 정렬 과정이나 가우스 소거 등의 절차들을 모두 생략하고 빠른 속도로 오류 정정을 수행할 수 있는 장점이 있다.In addition, by using bit matching in a method of calculating a Hamming distance, there is an advantage in that all procedures such as an alignment process or Gaussian erasure are omitted, and error correction can be performed at a high speed.

한편, 본 발명에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법 및 장치를 이용할 경우에는, 생성 행렬이 갖는 특성을 이용하여 가우스 소거를 고속으로 수행하므로 복호화 속도가 크게 향상될 수 있는 장점이 있다.On the other hand, in the case of using a method and apparatus for performing Gaussian elimination at high speed in the decoding method of a linear code according to the present invention, the decoding speed is increased because Gaussian elimination is performed at high speed using the characteristics of the generation matrix. There is an advantage that can be improved.

도 1은 본 발명의 일 실시예에 따른 선형 부호화의 개념을 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 OSD(ordered statistics decoder)의 복호화 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 PNC(probabilistic necessary conditions)의 복호화 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 PSC(probabilistic sufficient conditions)의 복호화 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법에 대한 흐름도이다.
도 6a 내지 도 6j는 본 발명의 일 실시예에 따른 제안 방법들의 복호화 성능과 속도를 각 차수에 대하여 분석한 그래프이다.
도 7a 내지 도 7d는 본 발명의 일 실시예에 따른 제안 방법들 중에서 방법 2에 따른 복호화 성능과 속도를 분석한 그래프이다.
도 8a 내지 도 8h는 본 발명의 일 실시예에 따른 제안 방법들의 복호화 성능과 속도를 다른 실험조건에서 비교한 그래프이다.
도 9a 내지 도 9d는 본 발명의 일 실시예에 따른 제안 방법들 중에서 방법 2에 따른 복호화 성능과 속도를 다른 실험조건에서 분석한 그래프이다.
도 10은 본 발명의 일 실시예에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 설명하기 위한 개념도이다.
도 11은 본 발명의 일 실시예에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법에 대한 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법에 대한 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법에서 가우스 소거(Gaussian elimination)가 차지하는 실질적인 비율을 나타낸 그래프이다.
도 14는 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치에 대한 하드웨어 구성도이다.
1 is an exemplary diagram for explaining the concept of linear encoding according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a method of decoding an ordered statistics decoder (OSD) according to an embodiment of the present invention.
3 is a flowchart illustrating a method of decoding probabilistic necessary conditions (PNC) according to an embodiment of the present invention.
4 is a flowchart illustrating a method of decoding probabilistic sufficient conditions (PSC) according to an embodiment of the present invention.
5 is a flowchart illustrating a method for high-speed decoding of a linear code based on soft decision according to an embodiment of the present invention.
6A to 6J are graphs analyzing decoding performance and speed of the proposed methods according to an embodiment of the present invention for each order.
7A to 7D are graphs analyzing decoding performance and speed according to Method 2 among proposed methods according to an embodiment of the present invention.
8A to 8H are graphs comparing decoding performance and speed of proposed methods according to an embodiment of the present invention under different experimental conditions.
9A to 9D are graphs analyzing decoding performance and speed according to Method 2 among proposed methods according to an embodiment of the present invention under different experimental conditions.
10 is a conceptual diagram for explaining a method of performing Gaussian elimination at high speed in a method of decoding a linear code according to an embodiment of the present invention.
11 is a flowchart of a method of performing Gaussian elimination at high speed in a method of decoding a linear code according to an embodiment of the present invention.
12 is a flowchart of a method for fast decoding a linear code based on bit matching according to an embodiment of the present invention.
13 is a graph showing a substantial ratio of Gaussian elimination in a method for fast decoding a linear code based on bit matching according to an embodiment of the present invention.
14 is a hardware configuration diagram of an apparatus for high-speed decoding of a linear code based on bit matching according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals have been used for similar elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 선형 부호화의 개념을 설명하기 위한 예시도이다.1 is an exemplary diagram for explaining the concept of linear encoding according to an embodiment of the present invention.

블록 부호화(Block coding)는 데이터를 일정한 블록 단위로 묶고, 블록마다 부호화와 복호화를 수행하는 코딩 방식을 의미할 수 있다. 선형 부호화는 부호어 집합이 선형 벡터공간을 형성하는(또는 선형 조건을 만족하는) 부호를 의미할 수 있다.Block coding may refer to a coding method in which data is grouped in a predetermined block unit and encoding and decoding are performed for each block. Linear coding may mean a code in which a set of codewords forms a linear vector space (or satisfies a linear condition).

도 1을 참조하면, 일반적인 선형 부호화 과정은 생성행렬(G)을 이용하여 표현될 수 있다. 전송하고자 하는 메시지 m을 1×k의 벡터로 표현하면, 메시지 m에 kХn의 크기를 갖는 생성행렬을 곱하여 1Хn의 벡터로 표현되는 부호어 x를 도출할 수 있다. 이하에서, k는 차원(또는 생성행렬의 랭크, rank)을 의미할 수 있고, n은 부호어의 길이를 의미할 수 있다.Referring to FIG. 1, a general linear encoding process may be expressed using a generation matrix (G). If the message m to be transmitted is expressed as a vector of 1×k, the codeword x expressed as a vector of 1Хn can be derived by multiplying the message m by a generation matrix having a size of kХn. Hereinafter, k may mean a dimension (or rank of a generation matrix), and n may mean a length of a codeword.

여기서 부호어를 생성하기 위한 생성행렬은 사용하는 부호어 종류 또는 방식에 따라 미리 결정될 수 있으며, 일반적으로 부호어간 최소거리가 클수록 오류 정정 능력이 높으므로 유리하다. 여기서 최소 거리는 부호어들 사이의 해밍 거리(Hamming Distance) 중에서 가장 작은 거리를 의미할 수 있다. 또한, 해밍 거리는 두 부호어 사이의 서로 다른 심볼의 개수를 의미할 수 있다.Here, the generation matrix for generating codewords may be determined in advance according to the type or method of codewords to be used. In general, the larger the minimum distance between codewords is, the higher the error correction capability is, which is advantageous. Here, the minimum distance may mean the smallest distance among Hamming distances between codewords. Also, the Hamming distance may mean the number of different symbols between two codewords.

또한, 메시지를 부호어로 변환하기 위한 생성 행렬은 단일한 하나로 한정되는 것이 아니라 복수 개가 있을 수 있다. 이때, 복수의 생성 행렬은 모두 특정 메시지를 동일한 부호어로 변환할 수 있다. 생성 행렬의 개수가 많을수록 현재 차수에서 오류 정정 가능성이 높아지지만, 다수의 생성 행렬을 사용하여 연산하는 연산량이 커질 수 있다. 따라서, 생성 행렬의 개수는 사용자의 입력이나 사용하는 부호어 방식에 따라 달리 결정될 수 있다.In addition, the generation matrix for converting a message into a codeword is not limited to a single one, but may be plural. In this case, all of the plurality of generation matrices may convert a specific message into the same codeword. As the number of generation matrices increases, the possibility of error correction in the current order increases, but the amount of calculation performed using a plurality of generation matrices may increase. Accordingly, the number of generation matrices may be determined differently according to a user input or a codeword method used.

상기 과정을 통해 선형 부호화된 부호어는 유무선 통신 시스템의 전송측에서 수신측으로 전송되며, 수신측에서는 복조기(Demodulator)를 통해 원래 파형을 복구하고, 복호화기(Decoder)를 이용하여 복구된 파형에 섞인 오류를 검출하고 유효한 부호어(또는 데이터 심볼)를 복원할 수 있다.The codeword linearly encoded through the above process is transmitted from the transmitting side of the wired/wireless communication system to the receiving side, and the receiving side recovers the original waveform through a demodulator, and uses a decoder to correct errors mixed in the recovered waveform. It can detect and recover valid codewords (or data symbols).

이하에서는 이러한 개념들을 기초로 하여 본 발명의 일 실시예에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법 및 장치를 설명한다.Hereinafter, based on these concepts, a method and apparatus for high-speed decoding of a linear code based on soft decision according to an embodiment of the present invention will be described.

또한, 이하에서는 설명의 편의를 위해 전송 채널은 AWGN(Additive white Gaussian noise)으로 하고, 변조 방식은 BPSK(Binary Phase Shift Keying)를 사용하는 것으로 전제하여 설명하지만 채널이나 변조 방식이 한정되는 것으로 해석되어서는 안된다.In addition, for convenience of explanation, the transmission channel is AWGN (Additive white Gaussian noise) and the modulation method is described on the premise that BPSK (Binary Phase Shift Keying) is used, but the channel or modulation method is interpreted as being limited. Can't.

도 2는 본 발명의 일 실시예에 따른 OSD(ordered statistics decoder)의 복호화 방법을 설명하기 위한 흐름도이다.FIG. 2 is a flowchart illustrating a method of decoding an ordered statistics decoder (OSD) according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 OSD에서는, 먼저 복호화기에서 수신된 신호를 크기 순서로 정렬하여 정렬 신호를 획득할 수 있다(S100). 예를 들어, r = (r0, r1, ..., rn-1)를 수신된 신호라고 할 때(여기서 n은 부호어의 길이일 수 있음), 수신된 신호의 개별 성분(r0, r1, ..., rn-1)에 대하여 절대값을 취하고 절대값의 크기 순서대로 정렬하여 정렬 신호 y = (y0, y1, ..., yn-1)를 획득할 수 있다(이하에서 정렬 신호는 y로 지칭될 수 있음). 여기서 정렬 순서는 내림차순으로 정렬할 수 있으나 반드시 그에 한정되는 것이 아니며 반드시 정확하게 크기 순서를 따라 정렬해야 되는 것은 아니다.Referring to FIG. 2, in the OSD according to an embodiment of the present invention, a signal received from a decoder may be first sorted in order of magnitude to obtain an alignment signal (S100). For example, if r = (r 0 , r 1 , ..., r n-1 ) is a received signal (where n can be the length of the codeword), the individual components of the received signal (r 0 , r 1 , ..., r n-1 ) by taking absolute values and sorting them in order of magnitude of absolute values to obtain alignment signals y = (y 0 , y 1 , ..., y n-1 ) Can (in the following the alignment signal may be referred to as y). Here, the sorting order may be sorted in descending order, but is not limited thereto, and it is not necessarily sorted according to the size order.

단계 S100 다음으로, 정렬 신호(y)를 경판정하여 경판정 신호를 획득할 수 있다(S110). 예를 들어 정렬 신호(y)를 경판정하여 경판정 신호 Y = (Y0, Y1, ..., Yn-1)를 획득할 수 있다(이하에서 경판정 신호는 Y로 지칭될 수 있음). 경판정 신호(Y)가 획득되면, 경판정 신호에서 MRB(Most Reliable Bases)에 해당하는 상위 신호를 획득할 수 있다(S120, 이하에서 상위 신호는 α로 지칭될 수 있음). 구체적으로 경판정 신호에서 크기가 큰 상위 k 개(이때 k는 도 1에서 설명한 차원일 수 있음)의 성분을 MRB로, 나머지 n-k개의 성분을 LRB로 구분하고, 상위 k개의 성분을 갖는 상위 신호(α)를 획득할 수 있다. After step S100, a hard decision signal may be obtained by hard-determining the alignment signal y (S110). For example, a hard decision signal Y = (Y 0 , Y 1 , ..., Y n-1 ) may be obtained by hard decision on the alignment signal y (hereinafter, the hard decision signal may be referred to as Y. ). When the hard decision signal Y is obtained, an upper signal corresponding to Most Reliable Bases (MRB) may be obtained from the hard decision signal (S120, hereinafter, the upper signal may be referred to as α). Specifically, in the hard decision signal, the high-order k components (where k may be the dimension described in FIG. 1) with a large size are classified as MRB, the remaining nk components are classified as LRB, and the high-order signal having the highest k components ( α) can be obtained.

단계 S120 다음으로, 상위 신호(α)와 차수(order, 이하 o로 표기)에 따른 오류 벡터를 이용하여 치환된 오류 정정 후보어를 획득할 수 있다(S130). 구체적으로 예를 들어 임의의 차수 o에 대한 오류 벡터를 ko 라 하고, 치환된 생성 행렬을 G'로 하면, 임의의 차수 o에 대하여 치환된 오류 정정 후보어(Eo)는 다음의 수학식 1과 같이 정의할 수 있다.After step S120, a substituted error correction candidate word may be obtained using an error vector according to an upper signal α and an order (hereinafter, referred to as o) (S130). Specifically, for example, if an error vector for an arbitrary degree o is denoted by k o and the substituted generation matrix is denoted by G', an error correction candidate Eo substituted for an arbitrary degree o is the following Equation 1 It can be defined as

Figure pat00001
Figure pat00001

상기 수학식 1을 참조하면, 치환된 오류 정정 후보어(Eo)는 상위 신호(α)와 차수에 따른 오류 벡터(ko)를 치환된 생성 행렬(G')과 곱하여 획득될 수 있다. 좀 더 상세한 표현으로, 치환된 오류 정정 후보어(Eo)는 상위 신호(α)와 차수에 따른 오류 벡터(ko)를 더한 값을 치환된 생성 행렬(G’)과 곱하여 획득하거나, 상위 신호(α)를 치환된 생성 행렬 (G’) 과 곱한 값과 오류 벡터(ko)를 치환된 생성 행렬(G’)와 곱한 값의 합으로 획득될 수 있다. 이때, 치환된 생성 행렬은 도 1에서 설명한 생성 행렬(G)의 열(Column)을 앞선 정렬 신호(y)를 생성한 정렬 순서와 동일한 순서로 치환하고, 가우스 소거(Gaussian elimination)를 수행하여 획득될 수 있다. 여기서 가우스 소거를 수행하는 과정에 대해서는 이후에서 설명하는 도 10에 따른 방법이 적용될 수 있다.Referring to Equation 1, the substituted error correction candidate word E o may be obtained by multiplying the upper signal α and the error vector k o according to the order by the substituted generation matrix G′. In a more detailed expression, the substituted error correction candidate word (E o ) is obtained by multiplying the sum of the upper signal (α) and the error vector (k o ) according to the order by the substituted generation matrix (G'), or It may be obtained as a sum of a value obtained by multiplying the signal α by the substituted generation matrix G′ and the value obtained by multiplying the error vector k o by the substituted generation matrix G′. At this time, the substituted generation matrix is obtained by substituting the column of the generation matrix G described in FIG. Can be. Here, the method according to FIG. 10 to be described later may be applied to the process of performing Gaussian erasure.

또한, 치환된 오류 정정 후보어는 치환된 생성 행렬의 치환 순서에 따라 치환된 순서를 갖고, 오류가 정정된 부호어(corrected codeword)의 후보(candidate)로 정의될 수 있다. 이때, 치환된 생성 행렬(G')은 다음의 수학식 2와 같은 표준 형태(standard form)를 가질 수 있다.In addition, the substituted error correction candidate words have a substituted order according to the substitution order of the substituted generation matrix, and may be defined as a candidate of a corrected codeword. In this case, the substituted generation matrix G'may have a standard form as shown in Equation 2 below.

Figure pat00002
Figure pat00002

수학식 2를 참조하면, I는 k × k의 크기를 갖는 항등 행렬(identity matrix)이고, P는 k × (n-k) 의 크기를 갖는 행렬일 수 있다. 여기서 수학식 2와 같은 형태가 되지 않는 경우 도 1에 따른 생성 행렬(G)의 열을 적절히 치환하여 수학식 2에 따른 형태를 도출할 수 있고, 이때 치환된 생성 행렬(G')을 도출하기 위한 치환 순서와 정렬 신호의 순서는 동일하여야 할 수 있다.Referring to Equation 2, I may be an identity matrix having a size of k × k, and P may be a matrix having a size of k × (n-k). Here, if the form as shown in Equation 2 is not formed, the column of the generation matrix G according to FIG. 1 may be appropriately substituted to derive the form according to Equation 2, and at this time, the substituted generation matrix G' The order of substitution for and the order of alignment signals may have to be the same.

한편, 오류 벡터는 오류가 발생한 것으로 예측되는 성분을 지시하는 벡터(또는 정렬 신호의 MRB에 해당하는 성분들 중에서 치환된 오류 정정 후보어와 경판정 신호가 다를 것으로 예측되는 성분을 지시하는 벡터)로 해석될 수 있는데, 구체적으로 오류 벡터는 MRB와 동일한 길이(k의 길이)를 갖고, 해밍 무게(부호어 내에서 0이 아닌 성분의 갯수)가 현재 차수(o)인 벡터로 정의될 수 있다. 예를 들어, 차수 0인 경우 오류 벡터(k0)는 해밍 무게가 0이므로 다음의 수학식 3과 같이 도출될 수 있다.Meanwhile, the error vector is interpreted as a vector indicating a component predicted to have an error (or a vector indicating a component predicted to be different from the substituted error correction candidate word among the components corresponding to the MRB of the alignment signal). Specifically, the error vector may be defined as a vector having the same length as the MRB (length of k) and the Hamming weight (the number of non-zero components in the codeword) of the current order (o). For example, when the order is 0, the error vector k 0 has a Hamming weight of 0, and thus can be derived as in Equation 3 below.

Figure pat00003
Figure pat00003

즉, 차수가 0인 경우에 따른 오류 벡터는 k개의 성분이 모두 0인 벡터일 수 있다. 또한, 차수가 1인 경우에 대한 오류 벡터는 다음의 수학식 4와 같이 도출될 수 있다.That is, the error vector according to the case where the degree is 0 may be a vector in which all k components are 0. In addition, an error vector for a case of order 1 may be derived as shown in Equation 4 below.

Figure pat00004
Figure pat00004

수학식 4에서 값이 1인 성분의 위치(또는, 오류가 발생한 것으로 예측되는 성분의 위치)는 달라질 수 있다. 즉, 선정되는 위치에 따라 k1은 총 k개가 도출될 수 있다. 그 밖에도 차수가 2인 경우에 대한 오류 벡터(k2)는 MRB 중에서 2개의 위치를 선정하고 선정된 위치에 대한 성분값만 1(또는 0이 아닌 값)을 갖고 나머지 성분값은 0으로 하여 도출될 수 있다.In Equation 4, the location of the component having a value of 1 (or the location of the component predicted to have an error) may vary. That is, a total of k k 1 can be derived according to the selected location. In addition, the error vector (k 2 ) for the case of order 2 is derived by selecting two positions among the MRBs, and having only the component values for the selected positions 1 (or non-zero values) and the remaining component values as 0. Can be.

치환된 오류 정정 후보어는, 순서가 치환된 생성 행렬과 같이 치환되고 오류 정정된 부호어(permuted and corrected codeword)가 될 가능성이 있는 후보로서, 오류 벡터에 따른 비용함수를 통해 평가될 수 있다. 예를 들어, 오류 벡터가 수학식 4와 같이 j번째 성분에 1을 갖는 벡터(즉, 정렬 신호의 MRB에 해당하는 성분들 중 j번째 성분에서 치환된 오류 정정 후보어와 경판정 신호가 다를 것으로 예측하는 경우)라면, 비용함수는 다음의 수학식 5와 같의 정의할 수 있다.The substituted error correction candidate words are candidates that have the potential to become permuted and corrected codewords, such as a generation matrix whose order is substituted, and can be evaluated through a cost function according to an error vector. For example, it is predicted that the error vector is a vector having 1 in the j-th component as shown in Equation 4 (that is, the error correction candidate word substituted in the j-th component among the components corresponding to the MRB of the alignment signal and the hard decision signal are different). If it is), the cost function can be defined as in Equation 5 below.

Figure pat00005
Figure pat00005

상기 수학식 5를 참조하면, 비용함수는 정렬 신호(y)에서 j번째 성분의 크기와, 나머지 n-k개의 LRB에 해당하는 성분들 중에서, 치환된 오류 정정 후보어(Ei)와 경판정 신호(Yi)가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 더한 값으로 정의할 수 있다. 또한, 수학식 3과 같이 모든 성분이 0인 오류 벡터에 대한 비용함수는 오류 벡터에 의해 지시되는 성분이 없으므로, 다음의 수학식 6과 같이 정의할 수 있다. Referring to Equation 5, the cost function is the size of the j-th component in the alignment signal (y), and among the components corresponding to the remaining nk LRBs, the substituted error correction candidate word (E i ) and the hard decision signal ( It can be defined as the sum of the sizes of components corresponding to positions where Y i ) has different values. In addition, as in Equation 3, the cost function for an error vector in which all components are 0 has no component indicated by the error vector, and thus can be defined as Equation 6 below.

Figure pat00006
Figure pat00006

구체적으로 수학식 6을 참조하면, 수학식 3에 따라 차수가 0인 오류 벡터에 대한 비용 함수는, n-k개의 LRB에 해당하는 성분들 중에서 치환된 오류 정정 후보어와 경판정 신호가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 더한 값으로 정의될 수 있다.Specifically, referring to Equation 6, the cost function for an error vector having a degree of 0 according to Equation 3 is that the substituted error correction candidate word and the hard decision signal among the components corresponding to nk LRBs have different values. It can be defined as the sum of the sizes of components corresponding to the location.

수학식 5와 수학식 6에서와 같은 방식으로 차수가 2인 오류 벡터에 의해 지시되는 0이 아닌 성분이 l번째 성분과 m번째 성분이면, 비용함수는 다음의 수학식 7과 같이 정의할 수 있다.In the same manner as in Equations 5 and 6, if the non-zero component indicated by the error vector of degree 2 is the l-th component and the m-th component, the cost function can be defined as in Equation 7 below. .

Figure pat00007
Figure pat00007

즉, 수학식 5 내지 7을 종합하면, 비용 함수는 정렬 신호에서, 치환된 오류 정정 후보어와 경판정 신호가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 모두 더하는 연산으로 정의할 수 있다.That is, when Equations 5 to 7 are summarized, the cost function may be defined as an operation of adding all the sizes of components corresponding to positions in which the substituted error correction candidate word and the hard decision signal have different values in the alignment signal.

따라서, 단계 S130 이후에, 비용 함수를 이용하여 현재 차수에 대한 비용을 산출할 수 있다(S140). 여기서 현재 차수는 0부터 시작하여 단계 S130을 거칠때마다 하나씩 증가하는 변수일 수 있다.Therefore, after step S130, the cost for the current order may be calculated using the cost function (S140). Here, the current order may be a variable that starts from 0 and increases by one each time step S130 is passed.

단계 S140에서 현재 차수에 대한 비용이 산출되면, 산출된 비용을 최소 비용과 비교한 결과에 따라 치환된 오류 정정 후보어를 치환된 오류 정정 부호어(permuted and corrected codeword)로 결정할 수 있다(S150). 여기서 최소 비용은 차수 0부터 현재 차수까지 산출된 비용 중에서 최소값을 의미할 수 있다. 단계 S150을 더 구체적으로 설명하면, 산출된 비용이 최소 비용보다 작으면, 치환된 오류 정정 후보어를 치환된 오류 정정 부호어로 결정할 수 있다. 또한, 단계 S150에서 산출된 비용이 최소 비용보다 작으면, 산출된 비용을 최소 비용으로 갱신하는 단계를 포함할 수 있다. 한편, 차수가 0인 경우에는 단계 S140에 따라 산출된 비용을 최소 비용으로 결정하고, 치환된 오류 정정 후보어를 치환된 오류 정정 부호어로 결정할 수 있다.When the cost for the current order is calculated in step S140, the substituted error correction candidate word may be determined as a permuted and corrected codeword according to a result of comparing the calculated cost with the minimum cost (S150). . Here, the minimum cost may mean a minimum value among costs calculated from order 0 to the current order. In a more specific description of step S150, if the calculated cost is less than the minimum cost, a substituted error correction candidate word may be determined as a substituted error correction codeword. Further, if the cost calculated in step S150 is less than the minimum cost, updating the calculated cost to the minimum cost may be included. Meanwhile, when the degree is 0, the cost calculated in step S140 may be determined as the minimum cost, and a substituted error correction candidate word may be determined as a substituted error correction codeword.

단계 S150 이후에, 현재 차수에서 변경 가능한 오류 벡터가 존재하는지 판단(S160)하고, 현재 차수에서 변경 가능한 오류 벡터가 존재하면 오류 벡터를 변경하여(S180) 다시 단계 S130에 따른 과정부터 재수행할 수 있다. 여기서 오류 벡터의 변경은 오류 벡터에서 0이 아닌 성분(또는 1인 성분)의 위치를 달리함으로써 수행될 수 있다.After step S150, it is determined whether there is an error vector that can be changed in the current order (S160), and if there is an error vector that can be changed in the current order, the error vector is changed (S180), and the process according to step S130 may be performed again. . Here, the change of the error vector may be performed by varying the position of a non-zero component (or a 1 component) in the error vector.

단계 S160 이후에, 현재 차수가 미리 설정된 최대 차수에 도달되었는지 판단하고(S170), 최대 차수에 도달하였다면 부호화 과정을 종료할 수 있다. 그러나, 최대 차수에 도달하지 않았다면 현재 차수를 하나 증가시키고(S190), 단계 S130부터 다시 수행할 수 있다. 여기서 최대 차수는 사용자에 의해 입력될 수 있는 값으로서, 일반적으로는 다음의 수학식 8에 의해 도출될 수 있다.After step S160, it is determined whether the current order has reached a preset maximum order (S170), and if the maximum order has been reached, the encoding process may be terminated. However, if the maximum order has not been reached, the current order may be increased by one (S190) and may be performed again from step S130. Here, the maximum order is a value that can be input by a user, and can generally be derived by Equation 8 below.

Figure pat00008
Figure pat00008

상기 수학식 8에서, d는 부호어의 최소 거리를 의미할 수 있고, k는 차원을 의미할 수 있다. In Equation 8, d may mean the minimum distance of the codeword, and k may mean the dimension.

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

도 2에서 설명한 OSD는 미리 설정된 최대 차수까지 계속해서 비용함수를 산출하고, 치환된 오류 정정 후보어를 도출하기 때문에 연산 복잡도가 높고, 불필요한 연산이 반복해서 수행되는 문제가 있다. The OSD described in FIG. 2 has a problem that computational complexity is high and unnecessary computations are repeatedly performed because the cost function is continuously calculated up to a preset maximum order and a substituted error correction candidate word is derived.

이러한 연산 복잡도를 낮추기 위하여 최대 차수에 도달하지 않더라도 이후 차수에 대한 연산을 생략함으로써 복호화를 고속화하는 방법을 고려할 수 있다. 이때, PNC(probabilistic necessary conditions)는 차수를 올려도 최소 비용보다 더 낮은 비용이 존재할 가능성이 없다면, 지금까지 조사된 결과만으로 오류 정정 부호어를 결정하는 방법이다.In order to reduce such computational complexity, even if the maximum order is not reached, a method of speeding up the decoding by omitting the operation for the subsequent order can be considered. At this time, the PNC (probabilistic necessary conditions) is a method of determining an error correction codeword only from the results of the investigation so far, if there is no possibility that a lower cost than the minimum cost exists even when the order is raised.

도 3을 참조하면, PNC는 도 2에 따른 단계 S160까지를 수행하고, 최대 차수에 도달하였는지 판단(S170)하는 대신, 단계 S165에 따른 판단을 먼저 수행할 수 있다. 즉, 단계 S165에서는, MRB에 해당하는 정렬 신호의 성분들 중에서, 크기가 작은 성분들의 합(이하에서 고속화 임계값으로 지칭할 수 있음)을 현재 차수까지 결정된 최소비용과 비교할 수 있다(S165). 여기서 크기가 작은 성분들은, 현재 차수의 다음 차수에 대한 비용함수 연산에 해당하는 개수를 고려해야 하므로, 현재 차수보다 하나 더 많은 개수만큼 선정되어 서로 더해질 수 있다.Referring to FIG. 3, the PNC may first perform the determination according to step S165 instead of performing steps S160 according to FIG. 2 and determining whether the maximum order has been reached (S170 ). That is, in step S165, among the components of the alignment signal corresponding to the MRB, the sum of components having a small size (hereinafter, may be referred to as an acceleration threshold) may be compared with the minimum cost determined up to the current order (S165). Here, the small components may be selected and added by one more number than the current order, since the number corresponding to the cost function operation for the next order of the current order should be considered.

예를 들어, 현재 차수가 o이면, 다음 차수 o+1에 대한 연산을 수행할지 결정하기 위한 고속화 임계값(SPNC)은 다음의 수학식 9와 같이 정의할 수 있다.For example, if the current order is o, the speedup threshold S PNC for determining whether to perform an operation on the next order o+1 may be defined as in Equation 9 below.

Figure pat00009
Figure pat00009

수학식 9를 참조하면, 정렬 신호가 내림차순으로 정렬되었다고 할 때, 정렬 신호의 MRB에 해당하는 성분들 중 마지막 성분인 k-1번째 성분부터 거꾸로 o+1개의 성분을 더함으로써 고속화 임계값(SPNC)가 결정될 수 있다. 반면에 정렬 신호가 오름차순으로 정렬되었다면, j=0부터 j=o 까지 더해질 수 있다.Referring to Equation 9, assuming that the alignment signals are arranged in descending order, the acceleration threshold (S) by adding o+1 components upside down from the k-1th component, which is the last component of the components corresponding to the MRB of the alignment signal. PNC ) can be determined. On the other hand, if the alignment signals are sorted in ascending order, j=0 to j=o can be added.

단계 S165에서 비교한 결과, 크기가 작은 성분들의 합이 최소비용보다 크다면 이후에 차수들은 현재 차수에 따른 최소비용보다 클 수 밖에 없기 때문에 오류 정정 부호어가 될 가능성이 없거나 매우 낮다. 따라서, 단계 S165에서 비교한 결과 크기가 작은 성분들의 합이 최소비용보다 크다면 차수를 증가(S190)시켜 반복 연산하는 과정(S130~S150)을 생략하고, 복호화를 종료할 수 있다. As a result of the comparison in step S165, if the sum of the components of the small size is greater than the minimum cost, there is no possibility or a very low possibility of becoming an error correction codeword because the subsequent orders must be greater than the minimum cost according to the current order. Accordingly, if the sum of the components having a small size as a result of the comparison in step S165 is greater than the minimum cost, the process of repetitive calculation (S130 to S150) by increasing the order (S190) may be omitted, and decoding may be terminated.

도 4는 본 발명의 일 실시예에 따른 PSC(probabilistic sufficient conditions)의 복호화 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of decoding probabilistic sufficient conditions (PSC) according to an embodiment of the present invention.

본 발명의 일 실시예에 따르면, 도 2에 따른 OSD를 개선하여 연산량을 줄이는 또다른 실시예(PSC, probabilistic sufficient conditions)를 제공할 수 있다.According to an embodiment of the present invention, another embodiment (PSC, probabilistic sufficient conditions) that reduces the amount of computation by improving the OSD according to FIG. 2 may be provided.

도 4를 참조하면, PSC는 도 2에 따른 단계 S130을 수행한 후 단계 S140 대신에 단계 S135에 따른 과정을 수행할 수 있다. 즉, 단계 S135에서는 경판정 신호(Y)와 현재 차수(o)에 따른 치환된 오류 정정 후보어(Eo) 사이의 해밍 거리를 미리 설정된 제1 임계값과 비교하고(S135) 비교 결과에 따라 현재 오류 벡터에 대한 연산들(S140~S150)을 생략하고 현재 차수의 오류 벡터를 변경(S180)하여 오류 정정 후보를 획득(S130)할 수 있다.Referring to FIG. 4, after performing step S130 according to FIG. 2, the PSC may perform the process according to step S135 instead of step S140. That is, in step S135, the Hamming distance between the hard decision signal Y and the substituted error correction candidate word E o according to the current order o is compared with a preset first threshold (S135) and according to the comparison result An error correction candidate may be obtained (S130) by omitting the operations S140 to S150 for the current error vector and changing the error vector of the current order (S180).

구체적으로, 경판정 신호와 치환된 오류 정정 부호어 사이의 해밍 거리가 미리 설정된 제1 임계값보다 크면(또는 크거나 같으면), 상기 치환된 오류 정정 부호는 실제 오류 정정 부호어가 될 가능성이 낮으므로 현재 오류 벡터에 대한 연산들을 생략하고 현재 차수의 다른 후보어를 연산할 수 있다.Specifically, if the Hamming distance between the hard decision signal and the substituted error correction codeword is greater than (or greater than or equal to) a preset first threshold, the substituted error correction code is unlikely to become an actual error correction codeword. Operations on the current error vector can be omitted and other candidate words of the current order can be calculated.

도 5는 본 발명의 일 실시예에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법에 대한 흐름도이다.5 is a flowchart illustrating a method for high-speed decoding of a linear code based on soft decision according to an embodiment of the present invention.

도 5를 참조하면, 연판정 기반으로 선형 부호를 고속 복호화하는 방법은, 수신된 신호를 크기 순서로 정렬하여 정렬 신호를 획득하는 단계(S200), 상기 정렬 신호를 경판정(hard decision)하여 경판정 신호를 획득하는 단계(S210), 상기 경판정 신호에서 MRB(most reliable bases)에 해당하는 상위 신호를 획득하는 단계(S220), 상기 상위 신호와 현재 차수에 따른 오류 벡터를 이용하여 치환된 오류 정정 후보어(permuted and corrected codeword candidate)를 획득하는 단계(S230), 비용함수를 이용하여 상기 현재 차수에 대한 비용을 산출하는 단계(S240), 산출된 비용을 최소 비용과 비교한 결과에 따라 상기 치환된 오류 정정 후보어를 치환된 오류 정정 부호어(permuted and corrected codeword)로 결정하는 단계(S250) 및 미리 정의된 고속화 조건을 판단하는 단계(S260)를 포함할 수 있다.Referring to FIG. 5, a method of high-speed decoding of a linear code based on a soft decision includes the steps of obtaining an alignment signal by arranging the received signal in order of magnitude (S200), and performing a hard decision on the alignment signal. Acquiring a decision signal (S210), obtaining an upper signal corresponding to the most reliable bases (MRB) from the hard decision signal (S220), an error substituted by using the higher signal and an error vector according to the current order Acquiring a permuted and corrected codeword candidate (S230), calculating a cost for the current order using a cost function (S240), and comparing the calculated cost with the minimum cost according to the result It may include determining the substituted error correction candidate word as a permuted and corrected codeword (S250) and determining a predefined speedup condition (S260).

상기 오류 정정 후보어를 획득하는 단계(S230)는, 상기 상위 신호와 상기 현재 차수에 따른 오류 벡터를 치환된 생성행렬과 곱하여 치환된 오류 정정 후보어를 획득하는 단계를 포함할 수 있다. 예를 들어, 치환된 오류 정정 후보어는 앞선 수학식 1에 따라 획득될 수 있다. 또한, 치환된 생성 행렬은 도 1에서 설명한 생성 행렬(G)의 열(Column)을 앞선 정렬 신호(y)를 생성한 정렬 순서와 동일한 순서로 치환하고, 가우스 소거(Gaussian elimination)를 수행하여 획득될 수 있다.The step of obtaining the error correction candidate word (S230) may include obtaining a substituted error correction candidate word by multiplying the upper signal and the error vector according to the current order by a substituted generation matrix. For example, the substituted error correction candidate word may be obtained according to Equation 1 above. In addition, the substituted generation matrix is obtained by substituting the column of the generation matrix G described in FIG. 1 in the same order as the alignment order in which the previous alignment signal y was generated, and performing Gaussian elimination. Can be.

여기서 가우스 소거를 수행하는 과정에 대해서는 이후에서 설명하는 도 10에 따른 방법이 적용될 수 있다.Here, the method according to FIG. 10 to be described later may be applied to the process of performing Gaussian erasure.

상기 비용함수는, 상기 정렬 신호에서, 상기 치환된 오류 정정 후보어와 상기 경판정 신호가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 모두 더하는 연산으로 정의될 수 있다. 예를 들어, 비용함수는 수학식 5 내지 7을 참조할 수 있다.The cost function may be defined as an operation of adding all the sizes of components corresponding to positions in which the substituted error correction candidate word and the hard decision signal have different values in the alignment signal. For example, the cost function may refer to Equations 5 to 7.

상기 오류 벡터는, 상기 MRB와 동일한 길이를 갖고, 해밍 무게(hamming weight)가 상기 현재 차수인 벡터로 정의될 수 있다. 예를 들어, 오류 벡터는 수학식 3 내지 4를 참조할 수 있다.The error vector may have the same length as the MRB, and may be defined as a vector whose hamming weight is the current order. For example, the error vector may refer to Equations 3 to 4.

상기 미리 정의된 고속화 조건을 판단하는 단계(S260)는, 상기 MRB에 해당하는 정렬 신호의 성분들 중에서 크기가 작은 성분들을 더하여 고속화 임계값을 산출하는 단계 및 산출된 고속화 임계값을 상기 최소 비용과 비교하는 단계를 포함할 수 있다. 예를 들어 미리 정의된 고속화 조건을 판단하는 단계(S260)는, 도 3에 따른 설명을 참조할 수 있으며, 고속화 임계값은 수학식 9를 참조할 수 있다.The step of determining the predefined speedup condition (S260) includes calculating a speedup threshold value by adding smaller components among components of the alignment signal corresponding to the MRB, and calculating the speedup threshold value to the minimum cost and It may include the step of comparing. For example, in determining a predefined acceleration condition (S260), the description according to FIG. 3 may be referred to, and Equation 9 may be referred to for the acceleration threshold.

상기 비교하는 단계 이후에, 비교 결과 상기 고속화 임계값이 상기 최소비용보다 작은 경우에 한하여, 상기 현재 차수의 다음 차수에 대하여 상기 치환된 오류 정정 후보어를 획득하는 단계를 수행할 수 있다.After the comparing step, the step of obtaining the substituted error correction candidate word for the next order of the current order may be performed only when the comparison result is less than the minimum cost.

상기 치환된 오류 정정 후보어를 획득하는 단계(S230) 이후에, 상기 경판정 신호와 상기 치환된 오류 정정 후보어 사이의 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계를 포함할 수 있다. 예를 들어 상기 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계는 도 4에 따른 설명을 참조할 수 있다.After obtaining the substituted error correction candidate word (S230), comparing a Hamming distance between the hard decision signal and the substituted error correction candidate word with a preset first threshold. For example, the step of comparing the Hamming distance with a preset first threshold may refer to the description of FIG. 4.

상기 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계 이후에, 비교 결과 상기 해밍 거리가 상기 미리 설정된 제1 임계값보다 크면, 상기 오류 벡터에 대한 연산을 생략하고, 상기 현재 차수에 따른 오류 벡터를 변경하여 상기 치환된 오류 정정 후보어를 획득하는 단계를 수행할 수 있다. 더욱 상세하게는 도 4에 따른 설명을 참조할 수 있다.After the step of comparing the Hamming distance with a preset first threshold value, if the comparison result is that the Hamming distance is greater than the preset first threshold value, the operation on the error vector is omitted, and an error vector according to the current order By changing, the step of obtaining the substituted error correction candidate word may be performed. In more detail, reference may be made to the description according to FIG. 4.

한편, 도 3에 따른 PNC를 적용하여 단계 S165을 현재 차수 o에 대하여 미리 정의된 고속화 조건으로서 판단한 결과 다음 차수 o+1에 대한 단계 S130을 수행하는 것으로 결정되는 경우, o+1 차수에서 단계 S140에서 산출되는 비용은 다음의 수학식 10과 같이 표현될 수 있다.On the other hand, when it is determined to perform step S130 for the next order o+1 as a result of determining step S165 as a pre-defined fastening condition for the current order o by applying the PNC according to FIG. 3, step S140 at the order o+1 The cost calculated from may be expressed as Equation 10 below.

Figure pat00010
Figure pat00010

수학식 10을 참조하면, 전단부는, MRB에 따른 정렬 신호(y)에서 오류 벡터에 의해 지시되는 o+1개의 성분들에 대한 크기를 더하는 연산으로서 수학식 5 내지 7에서의 전단부와 대응될 수 있다. 또한, 수학식 10에서의 후단부는 LRB에 해당하는 심볼들의 신뢰도(reliability)에 대한 부분 합으로서, 수학식 5 내지 7에서의 후단부와 대응될 수 있다. Referring to Equation 10, the front end is an operation that adds the magnitudes of o+1 components indicated by the error vector in the alignment signal y according to the MRB, and corresponds to the front end in Equations 5 to 7 I can. In addition, the rear end of Equation 10 is a partial sum of reliability of symbols corresponding to LRB, and may correspond to the rear end of Equations 5 to 7.

일반적으로 LRB는 신뢰도가 낮은 값들이기 때문에, MRB에 해당하는 성분들보다는 오류 가능성이 높다. 따라서, 수학식 10에서의 γ는 0보다 큰 값을 가질 것으로 예상할 수 있다. 이러한 점을 이용하여 수학식 9에서 정의한 고속화 임계값(다음 차수 o+1에 대한 연산을 생략할지 결정하는 임계값)은 다음의 수학식 11과 같이 변경할 수 있다.In general, since LRBs are values with low reliability, there is a higher probability of error than components corresponding to MRBs. Therefore, γ in Equation 10 can be expected to have a value greater than 0. Using this point, the speedup threshold value defined in Equation 9 (a threshold value for determining whether to omit the operation for the next order o+1) can be changed as shown in Equation 11 below.

Figure pat00011
Figure pat00011

수학식 11을 참조하면, 새롭게 정의하는 고속화 임계값(Sproposed)은 수학식 9에서 정의한 고속화 임계값(SPNC)에 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호(code)를 인자로 갖는 함수(f)를 더한 값으로 정의할 수 있다. Referring to Equation 11, the newly defined high-speed threshold (S proposed ) is a signal to noise ratio (SNR) and an order and error correction code (code) as factors in the high-speed threshold (S PNC ) defined in Equation 9. It can be defined as the sum of the function f.

따라서, 상기 고속화 임계값을 산출하는 단계는, 상기 크기가 작은 성분들의 합에 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수를 더하여 상기 고속화 임계값을 산출하는 단계를 포함할 수도 있다. Accordingly, the calculating of the speeding threshold value includes calculating the speeding threshold value by adding a function having a signal to noise ratio (SNR) and an order and an error correction code as factors to the sum of the components having the small size. You may.

한편, 수학식 9에서 정의한 고속화 임계값(다음 차수 o+1에 대한 연산을 생략할지 결정하는 임계값)은 다음의 수학식 12와 같이 변경할 수도 있다.Meanwhile, the speedup threshold defined in Equation 9 (threshold value for determining whether to omit the operation for the next order o+1) may be changed as shown in Equation 12 below.

Figure pat00012
Figure pat00012

수학식 12를 참조하면, 새롭게 정의하는 고속화 임계값(Sproposed)은 수학식 9에서 정의한 고속화 임계값(SPNC)에, 수신 벡터(received vector로 표기)를 인자로 갖는 함수(f')를 더한 값으로 정의할 수도 있다. Referring to Equation 12, the newly defined speeding threshold (S proposed ) is a function (f') having a received vector (expressed as a received vector) as a factor in the speeding threshold (S PNC ) defined in Equation 9 It can also be defined as an added value.

여기서 수신 벡터(received vector)는, 수신된 신호의 열 벡터(column vector) 또는 수신된 신호의 열 벡터를 치환된 생성 행렬(G')과 동일한 순서로 치환한 벡터일 수 있다.Here, the received vector may be a vector obtained by substituting a column vector of a received signal or a column vector of a received signal in the same order as the substituted generation matrix G'.

여기서, 수신 벡터를 인자로 갖는 함수(f')는 수신 벡터의 패리티(parity)에 해당하는 벡터들의 성분(수학식 2에 따른 치환된 생성행렬 G'에 포함된 행렬 P와 연산되는 벡터들의 성분) 또는 수신 벡터의 LRB에 해당하는 성분을 모두 더하거나, 수신 벡터들의 성분을 모두 더하는 연산을 포함할 수 있고, 상기 더하는 연산에 비례 상수를 곱하는 연산을 더 포함할 수도 있다.Here, the function (f') having the received vector as a factor is a component of vectors corresponding to the parity of the received vector (the matrix P included in the substituted generation matrix G'according to Equation 2 and the components of the vectors to be calculated) ) Alternatively, an operation of adding all components corresponding to the LRB of the received vector or all components of the received vectors may be included, and an operation of multiplying the addition operation by a proportional constant may further be included.

따라서, 상기 고속화 임계값을 산출하는 단계는, 상기 크기가 작은 성분들의 합에 수신 벡터를 인자로 갖는 함수를 더하여 상기 고속화 임계값을 산출하는 단계를 포함할 수도 있다. Accordingly, calculating the speedup threshold may include calculating the speedup threshold by adding a function having a received vector as a factor to the sum of the components having the small size.

한편, 상기 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계를 대체 또는 추가하여, 미리 설정된 제2 임계값을 사용할 수 있다. 구체적으로, 상기 치환된 오류 정정 후보어를 획득하는 단계(S230) 이후에(또는 상기 미리 설정된 제1 임계값과 비교하는 단계 이후에), 상기 경판정 신호와 상기 치환된 오류 정정 후보어 사이의 해밍 거리를 미리 설정된 제2 임계값과 비교하는 단계 및 상기 해밍 거리가 상기 제2 임계값보다 작으면, 상기 비용을 산출하는 단계를 생략하고 곧바로 상기 치환된 오류 정정 후보어를 상기 치환된 오류 정정 부호어로 결정하는 단계를 더 포함할 수 있다. 즉, 해밍 거리가 제2 임계값보다 작으면 비용을 산출하는 단계를 비롯한 이후의 모든 과정을 생략하고, 곧바로 치환된 오류 정정 후보어를 치환된 오류 정정 부호어로 결정하여 복호화 절차를 종료할 수 있다.Meanwhile, a second preset threshold may be used by replacing or adding the step of comparing the Hamming distance with a preset first threshold value. Specifically, after the step of obtaining the substituted error correction candidate word (S230) (or after the step of comparing with the preset first threshold value), between the hard decision signal and the substituted error correction candidate word Comparing the Hamming distance with a preset second threshold value, and if the Hamming distance is less than the second threshold value, omitting the step of calculating the cost and immediately correcting the substituted error correction candidate word It may further include determining a code word. That is, if the Hamming distance is less than the second threshold, all subsequent processes including the step of calculating the cost may be omitted, and the decoding procedure may be terminated by immediately determining the substituted error correction candidate word as the substituted error correction coder. .

도 5에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법은, 이하에서 FSSD(Fast and Scalable Soft Decision decoding methods for linear codes)으로 지칭할 수 있다.The method of high-speed decoding of linear codes based on soft decision according to FIG. 5 may be referred to as Fast and Scalable Soft Decision decoding methods for linear codes (FSSD) hereinafter.

도 6a 내지 도 6j는 본 발명의 일 실시예에 따른 제안 방법들의 복호화 성능과 속도를 각 차수에 대하여 분석한 그래프이다. 6A to 6J are graphs analyzing decoding performance and speed of the proposed methods according to an embodiment of the present invention for each order.

이하의 그래프들에서 HDD는 일반적인 경판정 기반 복호화(Hard Decision Decoding)을 의미하고, PNC는 도 3에 따른 단계 S165를 적용한 경우를 의미하며, PSC는 도 4에 따른 단계 S135를 PNC에 추가로 적용한 경우를 의미한다. 또한 proposed 1(방법 1)은 도 5에 따른 흐름도에서, 앞선 수학식 11에 따라 새롭게 정의된 고속화 임계값을 이용하여 고속화 조건을 판단하는 과정을 적용하고 제2 임계값과 해밍 거리를 비교하여 비용 산출 단계를 생략한 방법을 의미할 수 있다.In the graphs below, HDD means general hard decision-based decoding, PNC means a case in which step S165 according to FIG. 3 is applied, and in PSC, step S135 in FIG. 4 is additionally applied to the PNC. Means the case. In addition, proposed 1 (Method 1) applies a process of determining the speeding condition using a speeding threshold value newly defined according to Equation 11 above in the flow chart according to FIG. 5, and comparing the second threshold value and the Hamming distance to cost It may mean a method in which the calculation step is omitted.

또한, proposed2(방법 2)는 방법 1에 추가로 도 4에 따른 단계 S135를 함께 적용하여 현재 오류 벡터에 대한 연산을 생략한 방법을 의미한다.In addition, proposed2 (Method 2) refers to a method in which the operation on the current error vector is omitted by applying step S135 according to FIG. 4 in addition to Method 1.

도 6a 내지 도 6j에서 사용한 부호화어는 부호의 길이(n)가 127이고, 차원(k)는 64이며, 최소거리(d)는 21인 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 사용하였다. 또한, HDD는 최소거리(d)가 21 점을 감안하여 10개 이하의 오류는 모두 고치는 것으로 하였다. 또한, 그래프에서 세로축은 복호화 성능을 나타내는 부호 오류율(WER, word error rate) 또는 복호화 속도(Speed-up)을 나타낸다. 또한, 그래프에서 가로축은 SNR(신호 대 잡음비)를 나타낸다. 이때, 복호화 속도는 도 2에서 설명한 OSD의 full ssearch 알고리즘과 비교하여 얼마나 빨라졌는지를 상대적으로 표시한 것이다. 각 실험에서 모든 데이터는 7 비트로 양자화하였으며, 도 4의 PSC에 따른 미리 설정된 제1 임계값은 25, 도 5의 설명에 따른 제2 임계값은 10으로 설정하였다. 또한, 방법 1(proposed 1), 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수(f)값은 차수1부터 5까지 각각 346.5, 346.5, 321.3, 270.9, 270.9를 사용하였다.In the coded words used in FIGS. 6A to 6J, a BCH (Bose-Chaudhuri-Hocquenghem) code with a code length (n) of 127, a dimension (k) of 64, and a minimum distance (d) of 21 was used. In addition, in consideration of the minimum distance (d) of 21 points for the HDD, it was decided to fix all errors of 10 or less. In addition, in the graph, the vertical axis represents a code error rate (WER) or a decoding speed (Speed-up) representing decoding performance. Also, in the graph, the horizontal axis represents SNR (signal-to-noise ratio). In this case, the decoding speed is a relative indication of how fast the decoding speed is compared with the full ssearch algorithm of the OSD described in FIG. 2. In each experiment, all data was quantized to 7 bits, and the first preset threshold according to the PSC of FIG. 4 was set to 25, and the second threshold according to the description of FIG. 5 was set to 10. In addition, in method 1 (proposed 1) and method 2 (proposed 2), the value of the function (f) having the signal to noise ratio (SNR) and the order and error correction code as factors is 346.5, 346.5, 321.3, respectively from orders 1 to 5, respectively. 270.9 and 270.9 were used.

도 6a 내지 도 6j를 참조하면, 차수 1부터 5까지에 대하여 복호화 성능과 속도를 비교한 결과를 확인할 수 있다. 그래프에서 확인할 수 있듯이 방법 1, 방법 2는 PNC, PSC와 복호화 성능 면에서 거의 동일하다. 또한, 복호화 속도는 방법 1, 방법 2가 PNC, PSC보다 확실하게 빠르다. 방법1의 경우는 낮은 SNR에서는 PSC에 비해서 복호화 속도가 느린 구간이 있지만, SNR이 증가함에 따라서 빠르게 방법2의 복호화 속도에 수렴하는 것을 알 수 있다. 방법2의 경우는 다른 모든 방법들보다 월등히 빠른 복호화 속도를 나타내는 것을 알 수 있다. 6A to 6J, a result of comparing decoding performance and speed for orders 1 to 5 can be confirmed. As can be seen from the graph, Method 1 and Method 2 are almost the same in terms of decoding performance as PNC and PSC. In addition, as for the decoding speed, Method 1 and Method 2 are significantly faster than that of PNC and PSC. In the case of Method 1, there is a section in which the decoding speed is slower than that of the PSC at low SNR, but it can be seen that the decoding speed of Method 2 rapidly converges as the SNR increases. It can be seen that method 2 exhibits a much faster decoding speed than all other methods.

구체적으로, 방법 1, 방법 2는 각 order에 따른 OSD-FS와 비교해서 최대 약 13770배 (방법1), 그리고 14609배 (방법2)가 빠르고, PNC와 비교해서 최대 약 336배 (방법1), 그리고 797배 (방법2)가 빠르다. 그리고 PSC와 비교해서 최대 약 61배 (방법1), 그리고 139배 (방법2)가 빠르다.Specifically, Method 1 and Method 2 are up to about 13770 times faster (Method 1) and 14609 times (Method 2) compared to OSD-FS according to each order, and up to about 336 times faster than PNC (Method 1). , And 797 times (Method 2) is faster. And compared to PSC, it is about 61 times faster (Method 1) and 139 times (Method 2) faster.

도 7a 내지 도 7d는 본 발명의 일 실시예에 따른 제안 방법들 중에서 방법 2에 따른 복호화 성능과 속도를 분석한 그래프이다.7A to 7D are graphs analyzing decoding performance and speed according to Method 2 among proposed methods according to an embodiment of the present invention.

도 7a 내지 도 7b에서 실험 조건은 도 6a 내지 도 6j와 같다.Experimental conditions in FIGS. 7A to 7B are the same as those of FIGS. 6A to 6J.

도 7a 내지 도 7b를 참조하면, 각 차수에 따른 방법 2의 복호화 성능과 속도를 확인할 수 있다. 여기서 도 7b에 도시된 복호화 속도(Relative Speed)는 차수 1에서의 OSD-FS(full search)와 비교한 상대 속도를 나타낸다. 구체적으로 방법 2는 SNR이 커짐에 따라서 차수와 관계없이 차수 1에 따른 OSD-FS의 속도에 수렴한다. 즉, SNR이 어느 정도 이상이 되면, 차수를 높일수록 복호화 성능은 월등히 좋아지면서 연산 복잡도는 최소화할 수 있다.7A to 7B, it is possible to check the decoding performance and speed of Method 2 according to each order. Here, the decoding speed shown in FIG. 7B represents a relative speed compared to the OSD-FS (full search) in order 1. Specifically, Method 2 converges to the speed of the OSD-FS according to the order 1 regardless of the order as the SNR increases. That is, when the SNR becomes more than a certain degree, the higher the order, the better the decoding performance is, and the computational complexity can be minimized.

도 7c 내지 도 7d를 참조하면, 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수 값(그래프에서는 β로 표시)을 변화시켰을 때의 차수 4에 대한 복호화 성능 및 속도를 확인할 수 있다. 이때, 복호화 속도는 차수 4에서 OSD-FS와 비교하여 상대적 속도를 나타낸다. 복호화 성능 관점으로 봤을 때, β 값이 특정값을 넘어가기 전에는 동일한 성능을 나타내게 되고, β 값이 증가함에 따라서 복호화 성능은 점진적으로 떨어진다. 복호화 속도는 β 값이 커질수록 점점 더 빨라지는 특성을 나타낸다. 즉, β 값에 따라서 복호 성능과 복호 속도간의 세밀한 trade-off 관계가 성립함으로, 시스템 환경에 맞도록 사용자가 파라미터들을 변경할 수 있다.7C to 7D, in method 2 (proposed2), the signal to noise ratio (SNR) and the function value (indicated by β in the graph) having the order and error correction code as factors are changed. You can check the decoding performance and speed. In this case, the decoding speed represents a relative speed compared to the OSD-FS in order 4. From the viewpoint of decoding performance, the same performance is exhibited before the β value exceeds a specific value, and as the β value increases, the decoding performance gradually decreases. The decoding speed exhibits a characteristic that becomes faster and faster as the β value increases. In other words, a detailed trade-off relationship between decoding performance and decoding speed is established according to the value of β, so that the user can change the parameters to suit the system environment.

도 8a 내지 도 8h는 본 발명의 일 실시예에 따른 제안 방법들의 복호화 성능과 속도를 다른 실험조건에서 비교한 그래프이다.8A to 8H are graphs comparing decoding performance and speed of proposed methods according to an embodiment of the present invention under different experimental conditions.

도 8a 내지 도 8h에서 부호어는 길이가 255이고 차원이 131이며 최소거리가 37인 BCH 부호를 사용하였다. 또한, HDD는 최소 거리가 37이므로, 18개 이하의 오류는 모두 고치도록 설정하였다. 이때, 복호화 속도는 도 2에서 설명한 OSD의 full ssearch 알고리즘(OSD-FS)과 비교하여 얼마나 빨라졌는지를 상대적으로 표시한 것이다. 각 실험에서 모든 데이터는 7 비트로 양자화하였으며, 도 4의 PSC에 따른 미리 설정된 제1 임계값은 46, 도 5의 설명에 따른 제2 임계값은 18로 설정하였다. 또한, 방법 1(proposed 1), 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수(f)값은 차수1부터 7까지 각각 706.8, 706.8, 706.8, 706.8, 706.8, 644.8, 620.0으로 설정하였다.In FIGS. 8A to 8H, a BCH code having a length of 255, a dimension of 131, and a minimum distance of 37 is used. Also, since the minimum distance of the HDD is 37, all errors of 18 or less are set to be fixed. In this case, the decoding speed is a relative indication of how fast the decoding speed is compared to the full ssearch algorithm (OSD-FS) of the OSD described in FIG. 2. In each experiment, all data was quantized to 7 bits, and the first preset threshold according to the PSC of FIG. 4 was set to 46, and the second threshold according to the description of FIG. 5 was set to 18. In addition, in method 1 (proposed 1) and method 2 (proposed 2), the value of the function (f) having the signal to noise ratio (SNR) and the order and error correction code as factors is 706.8, 706.8, 706.8, respectively from orders 1 to 7, It was set to 706.8, 706.8, 644.8, and 620.0.

도 6a 내지 도 6j에서 사용한 부호어는 차수가 5를 넘어가도 복호 성능이 더 이상 향상되지 않으나, 도 8a 내지 도 8h에서 사용한 부호어는 차수 7까지 증가시켰을 때 복호화 성능이 확실히 향상된다. 그러나, PSC나 PNC의 경우 차수 5에서도 엄청난 시간이 소요되기 때문에, 도 8a 내지 도 8h에서는 차수 4까지의 성능을 비교하였다.The decoding performance of the codewords used in FIGS. 6A to 6J is no longer improved even when the order exceeds 5, but when the codewords used in FIGS. 8A to 8H are increased to the order 7, the decoding performance is certainly improved. However, in the case of PSC or PNC, since it takes a tremendous amount of time even in order 5, performances up to order 4 are compared in FIGS. 8A to 8H.

도 8a 내지 도 8h를 참조하면, 방법 1 내지 2는 PNC 및 PSC와 복호 성능에 있어서 거의 동일한 성능을 보여준다. 그에 반해서, 방법 1 내지 2의 복호 속도는 각 차수에 따른 OSD-FS와 비교해서 최대 약 5287배 (방법1)와 7420배 (방법2)가 빠르고, PNC와 비교해서 최대 약 747배 (방법1), 그리고 1775배 (방법2)가 빠르다. 그리고, PSC와 비교해서 최대 약 101배 (방법1)와 240배 (방법2)가 빠르다. 또한, 차수를 5이상 높여 비교할 경우, 방법 1 내지 2는 PNC나 PSC와 비교해서 월등히 더 빨라질 것으로 예측할 수 있다. 8A to 8H, methods 1 to 2 show substantially the same performance in terms of decoding performance as PNC and PSC. In contrast, the decoding speed of Methods 1 to 2 is about 5287 times faster (Method 1) and 7420 times (Method 2) compared to OSD-FS for each order, and up to about 747 times faster than PNC (Method 1). ), and 1775 times (Method 2) is faster. And, compared to PSC, up to about 101 times (Method 1) and 240 times (Method 2) are faster. In addition, when the order is increased by 5 or more and compared, methods 1 to 2 can be predicted to be significantly faster compared to PNC or PSC.

도 9a 내지 도 9d는 본 발명의 일 실시예에 따른 제안 방법들 중에서 방법 2에 따른 복호화 성능과 속도를 다른 실험조건에서 분석한 그래프이다.9A to 9D are graphs analyzing decoding performance and speed according to Method 2 in different experimental conditions among proposed methods according to an embodiment of the present invention.

도 9a 내지 도 9d의 실험 조건은 도 8a 내지 도 8h와 같다.The experimental conditions of FIGS. 9A to 9D are the same as those of FIGS. 8A to 8H.

도 9a 내지 도 9b를 참조하면, 각 차수에 따른 방법 2의 복호 성능과 복호 속도를 확인할 수 있다. 이때, 도 9b의 복호화 속도(Relative Speed)는 차수 1에서의 OSD-FS와 비교한 상대적 속도를 나타낸다.9A to 9B, the decoding performance and the decoding speed of Method 2 according to each order can be checked. In this case, the Relative Speed of FIG. 9B represents a relative speed compared to the OSD-FS in order 1.

도 9a에서 확인되는 것과 같이, 차수가 증가함에 따라서, 방법2의 복호 성능이 현저히 증가하는 것을 알 수 있다. 도 6a 내지 도 6j에서와 마찬가지로 방법2는 차수와 상관없이 SNR이 증가함에 따라서 빠르게 차수 1의 OSD-FS 속도에 수렴한다. 즉, SNR이 어느 정도 이상이 되면, 연산 복잡도는 차수와 상관없이 항상 일정한 수준(가장 낮은 수준)을 유지하게 되는 현상을 볼 수 있다.As shown in FIG. 9A, it can be seen that as the order increases, the decoding performance of Method 2 significantly increases. As in Figs. 6A to 6J, method 2 rapidly converges to the OSD-FS speed of order 1 as the SNR increases regardless of the order. That is, when the SNR becomes more than a certain degree, it can be seen that the computational complexity always maintains a constant level (lowest level) regardless of the order.

도 9c 내지 도 9d를 참조하면, 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수 값(그래프에서는 β로 표시)을 변화시켰을 때의 차수 4에 대한 복호화 성능 및 속도를 확인할 수 있다. 여기서 복호화 속도는 차수 4에서의 OSD-FS와 비교한 상대적 속도를 나타낸다. 도 7a 내지 도 7d에서와 마찬가지로, β 값이 특정값을 넘어가기 전에는 동일한 복호 성능을 나타내고, β 값이 특정값을 넘어간 후에는 복호 성능이 점진적으로 떨어지게 된다. 이에 반해서, 복호 속도는 β 값이 커질수록 속도가 점점 더 빨라지는 특성을 나타낸다. 이러한 특성을 활용하면, 사용자가 시스템 환경에 맞도록 파라미터들을 변경할 수 있다.9C to 9D, in method 2 (proposed2), when the function value (indicated by β in the graph) having the signal to noise ratio (SNR) and the order and error correction code as factors is changed. You can check the decoding performance and speed. Here, the decoding speed represents a relative speed compared to the OSD-FS in order 4. As in FIGS. 7A to 7D, the same decoding performance is displayed before the β value exceeds the specific value, and the decoding performance gradually decreases after the β value exceeds the specific value. On the contrary, the decoding speed exhibits a characteristic that the speed increases as the value of β increases. Using these characteristics, the user can change the parameters to suit the system environment.

도 10은 본 발명의 일 실시예에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 설명하기 위한 개념도이다. 도 11은 본 발명의 일 실시예에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법에 대한 흐름도이다. 도 1 및 도 2에서 설명한 것과 같이, 치환된 생성 행렬(G')은 도 1에서 설명한 생성 행렬(G)의 열(Column)을 앞선 정렬 신호(y)를 생성한 정렬 순서(또는 수신 신호의 신뢰도 크기 순서)와 동일한 순서로 치환하고, 가우스 소거(Gaussian elimination)를 수행하여 획득될 수 있다.10 is a conceptual diagram for explaining a method of performing Gaussian elimination at high speed in a method of decoding a linear code according to an embodiment of the present invention. 11 is a flowchart of a method of performing Gaussian elimination at high speed in a method of decoding a linear code according to an embodiment of the present invention. As described in FIGS. 1 and 2, the substituted generation matrix G′ is the alignment order in which the alignment signal y is generated prior to the column of the generation matrix G described in FIG. It can be obtained by substituting in the same order as the order of reliability magnitude) and performing Gaussian elimination.

이처럼, 연판정 기반 선형 부호의 복호화 방법은 k×n(또는 행과 열을 반대로 구성하면 n×k)의 크기를 갖는 행렬(예를 들면, 생성 행렬 G 나 패리티 체크 행렬 등)에 대하여 가우스 소거를 수행하는 과정을 포함한다. 이때, k는 차원(또는 생성행렬의 랭크, rank)을 의미할 수 있고, n은 부호어의 길이를 의미할 수 있다.In this way, the decoding method of a linear code based on soft decision is Gaussian elimination for a matrix (e.g., generation matrix G or parity check matrix) having a size of k×n (or n×k when rows and columns are configured in reverse). Including the process of doing it. In this case, k may mean the dimension (or the rank or rank of the generation matrix), and n may mean the length of the codeword.

여기서 생성 행렬(G)는 최대 차원(full rank)을 갖고 있으며, 일반적으로 시스테매틱(systematic)한 형태를 갖는 특성이 있다. 부호 형식이 시스테매틱한 특성을 가진다는 의미는, k의 길이를 갖는 메시지(또는 정보 비트열)가 n의 길이를 갖는 부호어 내에 그대로 변형없이 포함되는 형태를 갖는 것을 의미할 수 있다. 따라서, 시스테매틱한 부호어는 메시지 열과 패리티 열이 서로 분리된 형태를 가질 수 있는데, 예를 들어 부호어의 앞이나 뒷 부분에 메시지 열이 위치하고 나머지 열에 패리티 열이 위치할 수 있다. 또한, 시스테매틱한 부호에서 생성 행렬은 시스테매틱한 부호어의 메시지 열과 대응되는 부분에 k×k의 크기를 갖는 단위 행렬을 갖고, 나머지 부분에 k×(n-k)의 크기를 갖는 패리티 행렬을 가질 수 있다. Here, the generation matrix G has a full rank, and generally has a characteristic of a systematic shape. The meaning that the code format has a systematic characteristic may mean that a message (or information bit string) having a length of k is included in a code word having a length of n without modification. Accordingly, a systematic codeword may have a form in which a message sequence and a parity sequence are separated from each other. For example, a message sequence may be located before or after the codeword, and a parity column may be located in the remaining columns. In addition, in a systematic code, the generation matrix has an identity matrix having a size of k×k in the part corresponding to the message column of the systematic codeword, and a parity matrix having a size of k × (nk) in the remaining part. Can have

예를 들어, 시스테매틱한 부호어에 따른 생성 행렬(G)은, 다음의 수학식 13과 같이 표현될 수 있다.For example, the generation matrix G according to the systematic codeword may be expressed as Equation 13 below.

Figure pat00013
Figure pat00013

상기 수학식 13에서, 행렬 Ik는 메시지 열과 대응되는 부분으로, k×k의 크기를 갖는 단위 행렬일 수 있으며, 행렬 P는 k×(n-k)의 크기를 갖는 패리티 행렬일 수 있다. 또한, u0 내지 uk-1은 k번째 성분값이 1이고 나머지 성분값은 0인 단위 벡터(unit vector)일 수 있다. 도 11에서 이러한 생성 행렬(G)을 예시적인 행렬로서 표현하였다.In Equation 13, the matrix I k is a part corresponding to the message column, and may be a unit matrix having a size of k×k, and the matrix P may be a parity matrix having a size of k×(nk). In addition, u 0 to u k-1 may be unit vectors in which the k-th component value is 1 and the remaining component values are 0. In FIG. 11, this generation matrix G is represented as an exemplary matrix.

도 2 내지 도 5에 따른 복호화 방법(Previous Method로 표기)에 사용되는 치환된 생성 행렬(G')은, 도 2에서 설명한 것과 마찬가지로 수학식 13과 같이 표현되는 생성 행렬(G)의 열(Column)을 수신 신호의 신뢰도 크기 순서에 따라 열 교환하여 생성될 수 있다. 이때, 수신 신호에서 신뢰도의 크기가 큰 k개의 성분(수신 신호에서 메시지 신호에 해당되는 성분일 수 있고, 이하에서 수신 신호의 MRB로 지칭할 수 있음)과 대응되는 열들을 도 11에서 MRB로 표기하고, 나머지 성분들(이하에서 수신 신호의 LRB로 지칭할 수 있음)과 대응되는 열들을 LRB로 표기하였다. 즉, 치환된 생성 행렬(G')에서의 특정 열은 수학식 13에서의 메시지 열과 대응되는 단위 벡터(Unit Vector)일 수도 있고, 패리티 행렬(P)에 속하는 열(패리티 벡터)일 수 있다. 따라서, 도 2 내지 도 5에 따른 복호화 방법(Previous Method)은 치환된 생성 행렬(G') 전체에 대하여 그대로 가우스 소거를 수행하기 때문에 수학식 13에 따른 특성을 활용하기 어렵다.The substituted generation matrix G'used in the decoding method (denoted as the Previous Method) according to FIGS. 2 to 5 is a column of the generation matrix G expressed as Equation 13 as described in FIG. 2. ) Can be generated by exchanging heat according to the order of the reliability magnitude of the received signal. At this time, columns corresponding to k components with a high reliability level in the received signal (which may be components corresponding to the message signal in the received signal, and hereinafter may be referred to as MRB of the received signal) are indicated as MRB in FIG. And, the columns corresponding to the remaining components (hereinafter, may be referred to as LRB of the received signal) are indicated as LRB. That is, the specific column in the substituted generation matrix G'may be a unit vector corresponding to the message column in Equation 13 or a column belonging to the parity matrix P (parity vector). Therefore, in the decoding method according to FIGS. 2 to 5, it is difficult to utilize the characteristic according to Equation 13 because Gaussian erasure is performed as it is for the entire substituted generation matrix G'.

본 발명의 일 실시예에서는 수학식 13과 같이 표현되는 생성 행렬의 특성을 이용하여 가우스 소거에 필요한 계산량을 최소화함으로써 고속으로 가우스 소거를 수행하는 방법을 제안할 수 있다.In an embodiment of the present invention, a method of performing Gaussian erasure at high speed may be proposed by minimizing the amount of computation required for Gaussian erasure by using the characteristic of the generation matrix expressed as in Equation 13.

도 11을 참조하면, 본 발명의 일 실시예에 따른 고속으로 가우스 소거 방법은, 치환된 생성 행렬(G')에서 열 교환(Column exchange)을 수행하여 열교환된 생성 행렬(Gc)을 생성하는 단계(S300), 상기 열 교환된 생성 행렬의 전단에 위치한 열들이 부분적 단위 행렬을 이루도록 행 교환(Row exchange)을 수행함으로써 행 교환된 생성 행렬을 생성하는 단계(S310) 및 상기 행 교환된 생성 행렬에서 상기 부분적 단위 행렬을 이루는 열들을 제외하고 나머지 열들에 대하여 가우스 소거를 수행하는 단계(S320)를 포함할 수 있다.Referring to FIG. 11, in the fast Gaussian erasure method according to an embodiment of the present invention, a step of generating a heat-exchanged generation matrix Gc by performing a column exchange in a substituted generation matrix G′. (S300), generating a row-exchanged generation matrix by performing row exchange so that columns located in front of the column-exchanged generation matrix form a partial unit matrix (S310), and in the row-exchanged generation matrix A step (S320) of performing Gaussian erasure on the remaining columns except for the columns constituting the partial identity matrix.

여기서 치환된 생성 행렬(G')은 생성 행렬의 각 열들을 수신 신호의 신뢰도 크기 순서에 따라 열 교환함으로써 생성될 수 있다.Here, the substituted generation matrix G'may be generated by exchanging columns of each column of the generation matrix according to the order of the reliability level of the received signal.

여기서 열교환된 행렬(Gc)을 생성하는 단계(S300)는, 상기 치환된 생성 행렬(G')에서 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서, 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬(Gc)의 전단에 위치하도록 열 교환하는 단계를 포함할 수 있다. 예를 들어 도 10을 참조하면, 치환된 생성 행렬(G')의 MRB로 표기된 열들 중에서 단위 벡터(Unit Vector)에 해당하는 열들이 열교환된 생성 행렬(Gc)의 가장 앞단에 위치하도록 열교환된 것을 확인할 수 있다.In the step of generating the heat-exchanged matrix Gc (S300), among the columns corresponding to the Most Reliable Bases (MRB) of the received signal in the substituted generation matrix G', columns that are unit vectors are , It may include the step of exchanging heat so as to be located at the front end of the heat exchanged generation matrix (Gc). For example, referring to FIG. 10, among the columns marked with MRB of the substituted generation matrix G', the columns corresponding to the unit vector are heat-exchanged so that they are located at the front end of the heat-exchanged generation matrix Gc. I can confirm.

따라서, 본 발명의 일 실시예에 따르면, 행 교환된 행렬(Gr)에서 부분적 단위 행렬(Partial Identity Matrix)을 이루는 열들을 제외하고 나머지 열들에 대해서만 가우스 소거를 수행함으로써, 가우스 소거를 고속으로 수행할 수 있다. 도 10을 참조하면, 부분적 단위 행렬은 부분적으로 단위 행렬(E)의 형태를 갖는 행렬일 수 있다.Accordingly, according to an embodiment of the present invention, Gaussian erasing is performed at high speed by performing Gaussian erasing on only the remaining columns excluding columns forming a partial identity matrix in the row-exchanged matrix (G r ). can do. Referring to FIG. 10, the partial identity matrix may be a matrix partially in the form of an identity matrix E.

결과적으로, 부분적 단위 행렬을 제외한 나머지 부분에 대해서만 가우스 소거를 진행하므로, 가우스 소거 과정에서 각 행의 가장 앞에 있는 0이 아닌 계수를 피벗(pivot)으로 정하고, 정한 피벗을 중심으로 다른 행에 대한 소거를 수행하는 과정(전향 소거, forward elimination)과 역대입 과정(back-substitution)을 상당부분 생략할 수 있어 가우스 소거를 빠르게 수행할 수 있다.As a result, Gaussian elimination is performed only for the rest of the matrix except for the partial identity matrix, so in the Gaussian elimination process, a non-zero coefficient at the front of each row is determined as a pivot, and the other row is erased around the determined pivot. Since the process of performing (forward elimination) and back-substitution can be omitted, Gaussian erasure can be quickly performed.

한편, 치환된 생성 행렬(G')에서 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도(reliability)가 낮은 m개의 열들은 오류 가능성이 높기 때문에 가우스 소거의 대상이 되도록 하는 것이 바람직할 수 있다. 여기서 변수 m은 사용자의 설정에 따라 다르게 결정될 수 있다.Meanwhile, among the columns corresponding to the MRB of the received signal in the substituted generation matrix G', m columns with low reliability have a high probability of error, so it may be desirable to target Gaussian erasure. Here, the variable m may be determined differently according to the user's setting.

즉, 상기 열 교환된 생성 행렬을 생성하는 단계(S300)는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다. 이상에서 설명한 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 선형 부호를 복호화 하는 방법 및 장치에 적용할 경우 실험적 효과는 다음의 표 1과 같다.That is, in the step of generating the column-exchanged generation matrix (S300), at least one column having a low reliability among columns corresponding to the MRB of the received signal may be excluded from the column exchange. When the method of performing Gaussian elimination at high speed described above is applied to a method and apparatus for decoding a linear code, the experimental effects are shown in Table 1 below.

Figure pat00014
Figure pat00014

상기 표 1에서 속도는 i7-4790K PC에서 C언어를 사용해서 구현한 속도이며, 기존 속도는 도 2 내지 도 5에 따른 복호화 방법에서의 가우스 소거가 적용된 속도이고, 제안된 속도는 도 10에 따른 고속 가우스 소거가 도 2 내지 도 5에 따른 복호화 방법에 적용되었을 때의 속도일 수 있다. 또한, 표 1에서의 고속 가우스 소거에서는 변수 m(신뢰도가 낮은 열의 개수)을 5로 설정하였다.표 1에서 확인할 수 있는 것과 같이 본 발명의 일 실시예에 따른 고속으로 가우스 소거를 수행하는 방법을 도 1 내지 도 5에 따른 복호화 방법에 적용할 경우 최소 30% 에서 50% 이상의 속도 향상 효과가 있다. In Table 1, the speed is the speed implemented using C language in the i7-4790K PC, the existing speed is the speed to which Gaussian erasure is applied in the decoding method according to FIGS. 2 to 5, and the proposed speed is according to FIG. It may be a speed when fast Gaussian erasure is applied to the decoding method according to FIGS. 2 to 5. In addition, in the fast Gaussian erasure in Table 1, the variable m (the number of columns with low reliability) is set to 5. As can be seen in Table 1, a method of performing Gaussian erasure at a high speed according to an embodiment of the present invention is described. When applied to the decoding method according to FIGS. 1 to 5, there is an effect of improving the speed by at least 30% to 50% or more.

도 12는 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법에 대한 흐름도이다.12 is a flowchart of a method for high-speed decoding of a linear code based on bit matching according to an embodiment of the present invention.

도 2 내지 도 5에 따른 복호화 방법에서 연산 속도가 가장 빠른 경우는 현재 차수가 0일 때 곧바로 오류 정정 부호어를 결정하고 복호화 절차가 종료되는 경우가 될 수 있다. 현재 차수가 0일 때 곧바로 오류 정정 부호어를 결정할 수 있다는 의미는 수신된 신호의 SNR(신호 대 잡음비, Signal to Noise Ratio)가 매우 커서 오류가 발생하는 비트가 매우 적은 경우를 의미할 수 있다.In the decoding method according to FIGS. 2 to 5, the fastest operation speed may be a case where an error correction codeword is immediately determined when the current order is 0 and the decoding procedure is terminated. When the current order is 0, the meaning that the error correction codeword can be determined immediately may mean that the signal to noise ratio (SNR) of the received signal is very large and there are very few bits in which errors occur.

이처럼 도 2 내지 도 5에 따른 복호화 방법에서 연산 속도가 가장 빠른 경우를 가정하더라도, 최소한, 수신 신호를 신뢰도 크기 순서로 정렬하는 과정, 정렬된 순서에 따라 생성 행렬(G)를 치환하는 과정, 가우스 소거를 통해 치환된 생성 행렬(G')을 생성하는 과정 및 현재 차수 0에 대하여 비용 산출을 통해 오류 정정 부호어를 결정하는 과정이 수행될 필요가 있다.As such, even if it is assumed that the operation speed is the fastest in the decoding method according to FIGS. 2 to 5, at least, a process of sorting received signals in order of reliability magnitude, a process of substituting the generation matrix G according to the ordered order, Gaussian It is necessary to perform a process of generating the permuted generation matrix G'through erasure and a process of determining an error correction codeword through cost calculation for the current order 0.

이처럼 최소한으로 필요한 연산 과정 중에서 가우스 소거가 차지하는 연산량은 약 40%를 상회한다. 본 발명의 일 실시예에서는 수신된 신호의 SNR이 매우 커서 오류가 발생하는 경우가 작을 때 가우스 소거와 같은 연산 과정 없이 비트 매칭을 이용하여 빠르게 오류 정정 부호어를 결정하는 방법을 제안한다.In this way, the amount of computation occupied by Gaussian elimination in the minimum required computation process exceeds about 40%. An embodiment of the present invention proposes a method of quickly determining an error correction codeword using bit matching without an operation process such as Gaussian erasure when the SNR of a received signal is very large and an error occurs small.

도 12를 참조하면, 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법은, 수신된 신호를 경판정하여 경판정 신호를 획득하는 단계(S400), 획득된 경판정 신호에서 메시지 신호를 추출하는 단계(S410), 추출된 메시지 신호와 현재 차수에 따른 오류 벡터에 기초하여 오류 정정 후보어를 획득하는 단계(S420), 획득된 오류 정정 후보어와 상기 경판정 신호 사이의 해밍 거리를 산출하는 단계(S430), 산출된 해밍 거리를 비트 매칭 기반 임계값과 비교하는 단계(S440) 및 비교 결과에 따라 상기 오류 정정 후보어를 오류 정정 부호어로 결정하는 단계(S450)를 포함할 수 있다.Referring to FIG. 12, a method for high-speed decoding of a linear code based on bit matching according to an embodiment of the present invention includes the step of hard-determining a received signal to obtain a hard-decision signal (S400). Extracting a message signal from the hard decision signal (S410), obtaining an error correction candidate word based on the extracted message signal and an error vector according to the current order (S420), the obtained error correction candidate word and the hard decision signal Computing a Hamming distance between (S430), comparing the calculated Hamming distance with a bit matching-based threshold (S440), and determining the error correction candidate word as an error correction coder according to the comparison result (S450) It may include.

비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법을 다시 순차적으로 설명하면, 상기 방법은 먼저 복호화기에서 수신된 신호를 경판정하여 경판정 신호를 획득할 수 있다(S400). 예를 들어, r = (r0, r1, …, rn-1)를 수신된 신호라고 할 때(여기서 n은 부호어의 길이일 수 있음), 경판정 신호는 R = (R0, R1, …, Rn-1)일 수 있다.The method of high-speed decoding of a linear code based on bit matching will be sequentially described again. In the above method, a hard decision signal may be obtained by first hard-determining a signal received by the decoder (S400). For example, when r = (r 0 , r 1 , …, r n-1 ) is a received signal (where n can be the length of the codeword), the hard decision signal is R = (R 0 , It may be R 1 , …, R n-1 ).

다음으로, 획득된 경판정 신호에서 메시지 신호를 추출할 수 있다(S410). 여기서 메시지 신호는 경판정 신호에서 상기 생성 행렬의 랭크(rank, 변수 k)에 상응하는 개수만큼 성분값을 추출함으로써 상기 메시지 신호를 추출할 수 있다. 더욱 상세하게는, 상기 경판정 신호에서 미리 설정된 위치의 성분값들을 k개만큼 추출함으로써 상기 메시지 신호를 추출할 수 있다. 여기서 미리 설정된 위치는, 도 1에서와 같이, 생성 행렬을 이용해 메시지를 부호어로 생성하는 방식에 따라 달라질 수 있다. 예를 들어, 생성 행렬이 앞선 수학식 13에 따른 형태인 경우 단위 행렬(Ik)과 대응되는 위치의 수신 신호 성분들이 메시지 신호가 되므로, 경판정 신호 R = (R0, R1, …, Rn-1)에서 가장 앞선 k개의 성분값이 메시지 신호 Rm = (R0, R1, R2, …,Rk-1) = (m0, m1, m2, , mk-1)가 될 수 있다.Next, a message signal may be extracted from the obtained hard decision signal (S410). Here, the message signal may be extracted by extracting component values as many as the number corresponding to the rank (variable k) of the generation matrix from the hard decision signal. In more detail, the message signal may be extracted by extracting k component values of a preset position from the hard decision signal. Here, the preset position may vary according to a method of generating a message as a code word using a generation matrix, as shown in FIG. 1. For example, if the generation matrix is in the form according to Equation 13 above, since the received signal components at positions corresponding to the identity matrix I k become message signals, the hard decision signal R = (R 0 , R 1 , ..., The first k component values in R n-1 ) are the message signal R m = (R 0 , R 1 , R 2 , …,R k-1 ) = (m 0 , m 1 , m 2 ,, m k- 1 ) can be.

다음으로 추출된 메시지 신호와 현재 차수에 따른 오류 벡터에 기초하여 오류 정정 후보어를 획득할 수 있다(S420). 여기서 오류 벡터는, 상기 메시지 신호와 동일한 길이를 갖고, 해밍 무게(hamming weight)가 상기 현재 차수인 벡터로 정의될 수 있다. 예를 들어, 현재 차수가 0인 경우(첫번째 시행인 경우) 오류 벡터는 모든 성분이 0이고 길이가 k인 벡터일 수 있다. 그 밖에 오류 벡터에 대해서는 도 2의 수학식 3, 4에 관한 설명을 참조할 수 있다. Next, an error correction candidate word may be obtained based on the extracted message signal and an error vector according to the current order (S420). Here, the error vector may be defined as a vector having the same length as the message signal and a hamming weight of the current order. For example, if the current degree is 0 (in the case of the first trial), the error vector may be a vector in which all components are 0 and length k. In addition, the description of Equations 3 and 4 of FIG. 2 may be referred to for error vectors.

상기 오류 정정 후보어를 획득하는 단계(S420)는, 상기 메시지 신호와 상기 오류 벡터를 더한 값에 생성 행렬을 곱하여 상기 오류 정정 후보어를 획득할 수 있다. 예를 들어, 오류 정정 후보어는 다음의 수학식 14에 따라 획득될 수 있다.In the step of obtaining the error correction candidate word (S420), the error correction candidate word may be obtained by multiplying a value obtained by adding the message signal and the error vector by a generation matrix. For example, the error correction candidate word may be obtained according to Equation 14 below.

Figure pat00015
Figure pat00015

상기 수학식 14에서 현재 차수를 o라고 할 때, Eo는 오류 정정 후보어이며, Rm은 메시지 신호이고, G는 생성 행렬이며, ko는 오류 벡터일 수 있다. 상기 오류 정정 후보어를 획득하는 단계에서, 현재 차수가 0인 경우(첫번째 시행인 경우) 오류 벡터의 모든 성분이 0이므로, 오류 벡터를 메시지 신호에 더하는 과정 없이 메시지 신호와 생성 행렬을 곱하여 오류 정정 후보어가 획득되는 것으로 해석될 수도 있다.In Equation 14, when the current order is o, E o is an error correction candidate word, Rm is a message signal, G is a generation matrix, and k o may be an error vector. In the step of obtaining the error correction candidate word, if the current degree is 0 (in the case of the first trial), since all components of the error vector are 0, error correction is performed by multiplying the message signal and the generation matrix without adding the error vector to the message signal. It may be interpreted that the candidate word is obtained.

단계 S420 이후에, 획득된 오류 정정 후보어와 경판정 신호 사이의 해밍 거리를 산출하고(S430), 산출된 해밍 거리를 비트 매칭 기반 임계값과 비교할 수 있다(S440). 여기서 비교한 결과에 따라 오류 정정 후보어를 오류 정정 부호어로 곧바로 결정할 수 있다(S450). 예를 들어, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 작거나 같으면, 수신된 신호에 대해 오류가 거의 발생하지 않은 것으로 보고 오류 정정 후보어를 곧바로 오류 정정 부호어로 결정할 수 있다. 여기서 비트 매칭 기반 임계값은 사용자의 설정에 따라 달리 결정될 수 있다. After step S420, a Hamming distance between the obtained error correction candidate word and the hard decision signal may be calculated (S430), and the calculated Hamming distance may be compared with a threshold based on bit matching (S440). Here, the error correction candidate word may be directly determined as an error correction code word according to the comparison result (S450). For example, if the calculated Hamming distance is less than or equal to the threshold based on bit matching, it is assumed that an error has occurred in the received signal, and an error correction candidate word may be immediately determined as an error correction coder. Here, the bit matching-based threshold may be determined differently according to a user's setting.

한편, 산출된 해밍 거리가 비트 매칭 기반 임계값보다 크면, 현재 차수를 증가시키고(S445a) 상기 오류 정정 후보어를 획득하는 단계(S420)를 재수행할 수 있다. 오류 정정 후보어를 획득하는 단계를 재수행할 경우 현재 차수가 하나 증가함에 따라 해밍 무게가 하나 증가한 오류 벡터를 사용하여 오류 정정 후보어를 획득할 수 있다.On the other hand, if the calculated Hamming distance is greater than the bit matching-based threshold, the current order is increased (S445a) and the step of obtaining the error correction candidate word (S420) may be performed again. When the step of acquiring the error correction candidate word is performed again, an error correction candidate word may be obtained using an error vector in which the Hamming weight increases by one as the current order increases by one.

또한, 산출된 해밍 거리가 비트 매칭 기반 임계값보다 크면, 현재 차수를 증가시키는 대신에 생성 행렬을 변경하여(S445b) 상기 오류 정정 후보어를 획득하는 단계(S420)를 재수행할 수도 있다. 예를 들어, 특정 메시지에 대해 동일한 부호어를 생성하는 생성 행렬이 복수개 존재하는 경우, 다른 생성 행렬을 이용해 오류 정정 후보어를 획득함으로써 오류 정정을 할 수 있다. 최대 차수(o'max)까지 오류 정정 부호어가 결정되지 않은 경우에는 도 2 내지 도 5 중 하나의 방법이 수행됨으로써, 정렬, 가우스 소거를 통한 치환된 생성 행렬 획득, 비용 산출 등의 과정이 수행될 수 있다. 여기서 최대 차수(o'max)는 사용자의 설정에 따라 결정될 수 있다.In addition, if the calculated Hamming distance is greater than the bit matching-based threshold, the step (S420) of obtaining the error correction candidate word by changing the generation matrix (S445b) instead of increasing the current order may be performed again. For example, when there are a plurality of generation matrices that generate the same codeword for a specific message, error correction may be performed by obtaining an error correction candidate word using another generation matrix. When the error correction codeword is not determined up to the maximum order (o' max ), one of the methods of FIGS. 2 to 5 is performed, so that processes such as sorting, obtaining a substituted generation matrix through Gaussian elimination, and calculating cost are performed. I can. Here, the maximum order (o' max ) may be determined according to a user's setting.

이처럼 본 발명에서는 오류 정정 후보어와 경판정 신호 사이의 해밍 거리를 산출하는 방식의 비트 매칭을 사용함으로써 신호 정렬 과정이나 가우스 소거 등의 절차들을 모두 생략하고 빠른 속도로 오류 정정을 수행할 수 있는 장점이 있다.As described above, in the present invention, by using bit matching in a method of calculating a Hamming distance between an error correction candidate word and a hard decision signal, all procedures such as signal alignment and Gaussian erasure are omitted, and error correction can be performed at a high speed. have.

도 13은 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법에서 가우스 소거(Gaussian elimination)가 차지하는 실질적인 비율을 나타낸 그래프이다.13 is a graph showing a substantial ratio of Gaussian elimination in a method for fast decoding a linear code based on bit matching according to an embodiment of the present invention.

도 13에서 세로축은 도 5에 따른 FSSD가 수행될 때 가우스 소거 연산에 사용되는 시간 대비 도 12에 따른 비트 매칭 기반의 선형 부호를 고속 복호화하는 방법이 적용된 경우에서 가우스 소거 연산에 사용되는 시간의 비율을 나타낸 것이다.In FIG. 13, the vertical axis represents the ratio of the time used for the Gaussian erasure operation when the FSSD according to FIG. 5 is performed compared to the time used for the Gaussian erasure operation when the method of fast decoding the bit matching-based linear code according to FIG. 12 is applied. Is shown.

또한, 부호화어는 부호의 길이(n)가 127이고, 차원(k)는 64이며, 최소거리(d)는 21인 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 사용하였다. 또한, 도 5에 따른 FSSD에서 제1 임계값은 25, 차수(o)는 5, 제2 임계값은 10을 사용하였고, 도 12에 따른 방법에서 사용되는 비트 매칭 기반 임계값은 10, 차수(o)는 2를 사용하였다.In addition, as for the coded word, a BCH (Bose-Chaudhuri-Hocquenghem) code with a code length (n) of 127, a dimension (k) of 64, and a minimum distance (d) of 21 was used. In addition, in the FSSD according to FIG. 5, the first threshold is 25, the order (o) is 5, and the second threshold is 10, and the bit matching-based threshold used in the method according to FIG. 12 is 10, and the order ( o) used 2.

도 12에 따른 방법에 따라 오류 정정 부호어가 결정되는 경우, 가우스 소거 연산이 생략되기 때문에 도 13에 따른 그래프를 참조하면 가우스 소거 연산이 생략되는 정도를 파악할 수 있다.When the error correction codeword is determined according to the method according to FIG. 12, since the Gaussian erasure operation is omitted, the degree to which the Gaussian erasure operation is omitted can be determined by referring to the graph of FIG. 13.

예를 들어서, SNR이 3.0인 경우 도 13에 따른 그래프에서 가우스 소거 연산이 차지하는 비율이 88.6%(또는 0.886)를 나타내고 있다. 즉, 기존의 알고리즘(FSSD, 도 5)의 경우에서는 가우스 소거 연산에 소비되는 시간이 15.20μs이고, 도 12에 따른 방법은 앞서 소비되는 시간의 88.6%인 13.46μs동안 한 번의 가우스 소거를 하는 것으로 해석될 수 있다. 따라서, 가우스 소거를 비롯한 각종 연산이 다수 생략되었다는 것을 의미한다. For example, when the SNR is 3.0, the ratio occupied by the Gaussian erasure operation in the graph of FIG. 13 is 88.6% (or 0.886). That is, in the case of the existing algorithm (FSSD, Fig. 5), the time spent in Gaussian erasure operation is 15.20 μs, and the method according to FIG. 12 performs one Gaussian erasure for 13.46 μs, which is 88.6% of the previously consumed time. Can be interpreted. Therefore, it means that a number of operations including Gaussian erasure have been omitted.

또한, SNR이 5.5인 경우 도 13에 따른 그래프에서 가우스 소거 연산이 차지하는 비율이 28.9%(또는 0.289)를 나타내고 있다. 즉, 도 12에 따른 방법을 사용하면, 기존 알고리즘(FSSD, 도 5)에 따른 가우스 소거 연산 시간의 28.9%인 4.40μs 동안 평균적으로 한 번의 가우스 소거가 수행된다는 것을 의미한다.In addition, when the SNR is 5.5, the ratio occupied by the Gaussian erasure operation in the graph according to FIG. 13 is 28.9% (or 0.289). That is, when the method according to FIG. 12 is used, it means that one Gaussian erasure is performed on average during 4.40 μs, which is 28.9% of the Gaussian erasure operation time according to the existing algorithm (FSSD, FIG. 5).

또한, 도 13에서 SNR에 따른 가우스 소거 비율에서 확인할 수 있는 것처럼, 도 12에 따른 방법은, SNR이 증가함에 따라 가우스 소거를 비롯한 각종 연산을 생략되어 점점 더 속도가 향상되는 것을 알 수 있다. 따라서, 도 12에 따른 방법은 SNR이 낮은 경우에는 큰 성능 향상이 없으나, SNR이 큰 경우 연산 속도가 크게 향상될 수 있는 장점이 있다.In addition, as can be seen from the Gaussian erasure ratio according to the SNR in FIG. 13, it can be seen that the method according to FIG. 12 skips various operations including Gaussian erasure as the SNR increases, thereby increasing the speed more and more. Accordingly, the method according to FIG. 12 does not have a large performance improvement when the SNR is low, but there is an advantage in that the operation speed can be greatly improved when the SNR is large.

도 14는 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치에 대한 하드웨어 구성도이다.14 is a hardware configuration diagram of an apparatus for high-speed decoding of a linear code based on bit matching according to an embodiment of the present invention.

도 14를 참조하면, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.Referring to FIG. 14, the apparatus 100 for high-speed decoding of a linear code based on bit matching includes at least one processor 110 and the at least one processor 110 performing at least one step. It may include a memory (memory, 120) that stores instructions (instructions) to be executed.

또한, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치 (100)는, 유무선 네트워크를 통해 기지국과 통신을 수행하는 송수신 장치(transceiver, 130)를 포함할 수 있다. 또한, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)는 입력 인터페이스 장치(140), 출력 인터페이스 장치(150), 저장 장치(160) 등을 더 포함할 수 있다. 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)에 포함된 각각의 구성 요소들은 버스(bus, 170)에 의해 연결되어 서로 통신을 수행할 수 있다.In addition, the apparatus 100 for high-speed decoding of a linear code based on bit matching may include a transceiver 130 that communicates with a base station through a wired or wireless network. In addition, the apparatus 100 for high-speed decoding of a linear code based on bit matching may further include an input interface device 140, an output interface device 150, and a storage device 160. Each component included in the apparatus 100 for high-speed decoding of a linear code based on bit matching may be connected by a bus 170 to perform communication with each other.

여기서 프로세서(110)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120) 및 저장 장치(160) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.Here, the processor 110 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor in which methods according to embodiments of the present invention are performed. Each of the memory 120 and the storage device 160 may be configured with at least one of a volatile storage medium and a nonvolatile storage medium. For example, the memory 120 may be formed of at least one of read only memory (ROM) and random access memory (RAM).

상기 적어도 하나의 단계는, 수신된 신호를 경판정하여 경판정 신호를 획득하는 단계, 획득된 경판정 신호에서 메시지 신호를 추출하는 단계, 추출된 메시지 신호와 현재 차수에 따른 오류 벡터에 기초하여 오류 정정 후보어(corrected codeword candidate)를 획득하는 단계, 획득된 오류 정정 후보어와 상기 경판정 신호 사이의 해밍 거리를 산출하는 단계, 산출된 해밍 거리를 비트 매칭 기반 임계값과 비교하는 단계 및 비교 결과에 따라 상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계를 포함할 수 있다.The at least one step may include obtaining a hard decision signal by hard-determining the received signal, extracting a message signal from the obtained hard decision signal, and correcting an error based on the extracted message signal and an error vector according to the current order. Obtaining a corrected codeword candidate, calculating a Hamming distance between the obtained error correction candidate word and the hard decision signal, comparing the calculated Hamming distance with a threshold based on bit matching, and according to the comparison result It may include the step of determining the error correction candidate word as an error corrected codeword.

상기 오류 벡터는, 상기 메시지 신호와 동일한 길이를 갖고, 해밍 무게(hamming weight)가 상기 현재 차수인 벡터로 정의될 수 있다.The error vector may be defined as a vector having the same length as the message signal and a hamming weight of the current order.

상기 오류 정정 후보어를 획득하는 단계는, 상기 메시지 신호와 상기 오류 벡터를 더한 값에 생성 행렬을 곱하여 상기 오류 정정 후보어를 획득할 수 있다.In the obtaining of the error correction candidate word, the error correction candidate word may be obtained by multiplying a value obtained by adding the message signal and the error vector by a generation matrix.

상기 메시지 신호를 추출하는 단계는, 상기 경판정 신호에서 상기 생성 행렬의 랭크(rank)에 상응하는 개수만큼 성분값을 추출함으로써 상기 메시지 신호를 추출할 수 있다.In the step of extracting the message signal, the message signal may be extracted by extracting component values by a number corresponding to the rank of the generation matrix from the hard decision signal.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 현재 차수를 증가시키고 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold value, the step of increasing the current order and obtaining the error correction candidate word may be performed again.

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing step, if the calculated Hamming distance is greater than the bit matching-based threshold, the step of obtaining the error correction candidate word by changing the generation matrix may be performed again.

상기 상기 오류 정정 후보어를 오류 정정 부호어(corrected codeword)로 결정하는 단계는, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 작거나 같으면, 상기 오류 정정 후보어를 상기 오류 정정 부호어로 결정할 수 있다.The step of determining the error correction candidate word as a corrected codeword may include determining the error correction candidate word as the error correction code word if the calculated Hamming distance is less than or equal to the bit matching-based threshold value. have.

비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)의 예를 들면, 오류 정정 부호화에 따른 통신이 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the apparatus 100 for high-speed decoding of linear codes based on bit matching include a desktop computer, a laptop computer, and a notebook capable of communicating according to error correction coding. Smartphone (smart phone), tablet PC (tablet PC), mobile phone (mobile phone), smart watch (smart watch), smart glass (smart glass), e-book reader, PMP (portable multimedia player), portable game console, Navigation device, digital camera, digital multimedia broadcasting (DMB) player, digital audio recorder, digital audio player, digital video recorder, digital video It may be a player (digital video player), PDA (Personal Digital Assistant), or the like.

한편, 도 14에 따른 하드 웨어 구성요소를 갖는 장치는, 도 11에서 설명한 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 수행하는 장치로서도 사용될 수 있다.Meanwhile, the apparatus having a hardware component according to FIG. 14 may also be used as an apparatus for performing a fast Gaussian elimination method in the method of decoding a linear code described in FIG. 11.

예를 들어, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 장치는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.For example, an apparatus for performing Gaussian elimination at high speed in a decoding method of a linear code may allow at least one processor 110 and the at least one processor 110 to perform at least one step. It may include a memory (memory, 120) that stores instructions (instructions).

상기 적어도 하나의 단계는, 생성 행렬에서 열 교환(column exchange)을 수행하여 열교환된 생성 행렬을 생성하는 단계, 상기 열교환된 생성 행렬의 전단에 위치한 열들이 단위 행렬의 형태를 이루도록 행 교환(row exchange)을 수행함으로써 행 교환된 생성 행렬을 생성하는 단계 및 상기 행 교환된 생성 행렬에서 상기 단위 행렬의 형태를 이루는 열들을 제외하고 나머지 열들에 대하여 가우스 소거를 수행하는 단계를 포함할 수 있다.The at least one step may include generating a heat-exchanged generation matrix by performing column exchange in the generation matrix, and row exchange so that columns located in front of the heat-exchanged generation matrix form a unit matrix. ) To generate a row-swapped generation matrix, and performing Gaussian erasure on the remaining columns of the row-swapped generation matrix except for columns forming the identity matrix.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 치환된 생성 행렬에서, 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬의 전단에 위치하도록 열 교환하는 단계를 포함할 수 있다.The generating of the heat-exchanged generation matrix includes, in the replaced generation matrix, columns that are unit vectors among columns corresponding to MRB (Most Reliable Bases) of the received signal are a front end of the heat-exchanged generation matrix. It may include the step of exchanging heat to be located at.

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다.In the generating of the heat exchanged generation matrix, at least one column having a low reliability among columns corresponding to the MRB of the received signal may be excluded from the heat exchange.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the computer-readable medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software.

컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media may include hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language codes that can be executed by a computer using an interpreter or the like, as well as machine language codes such as those produced by a compiler. The above-described hardware device may be configured to operate as at least one software module to perform the operation of the present invention, and vice versa.

또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다. In addition, the above-described method or apparatus may be implemented by combining all or part of its configuration or function, or may be implemented separately.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

Claims (3)

선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법으로,
치환된 생성 행렬에서 열 교환(column exchange)을 수행하여 열 교환된 생성 행렬을 생성하는 단계;
상기 열 교환된 생성 행렬의 전단에 위치한 열들이 부분적 단위 행렬을 이루도록 행 교환(row exchange)을 수행함으로써 행 교환된 생성 행렬을 생성하는 단계; 및
상기 행 교환된 생성 행렬에서 상기 부분적 단위 행렬을 이루는 열들을 제외하고 나머지 열들에 대하여 가우스 소거를 수행하는 단계를 포함하는, 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법.
As a method of performing Gaussian elimination at high speed in a decoding method of a linear code,
Generating a column exchanged generation matrix by performing column exchange on the substituted generation matrix;
Generating a row-exchanged generation matrix by performing row exchange such that columns located in front of the column-exchanged generation matrix form a partial identity matrix; And
And performing Gaussian elimination on the remaining columns except for the columns constituting the partial identity matrix in the row-swapped generation matrix.
청구항 1에서,
상기 열 교환된 생성 행렬을 생성하는 단계는,
상기 치환된 생성 행렬에서, 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬의 전단에 위치하도록 열 교환하는 단계를 포함하는, 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법.
In claim 1,
Generating the heat-exchanged generation matrix,
In the permuted generation matrix, heat-exchanging columns that are unit vectors among columns corresponding to Most Reliable Bases (MRBs) of the received signal to be located in front of the heat-exchanged generation matrix. How to perform Gaussian elimination.
청구항 1에서,
상기 열 교환된 생성 행렬을 생성하는 단계는,
상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외하는, 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법.
In claim 1,
Generating the heat-exchanged generation matrix,
A method of performing Gaussian elimination at high speed by excluding at least one column having a low reliability level from the heat exchange among columns corresponding to the MRB of the received signal.
KR1020200119130A 2019-07-05 2020-09-16 A method and apparatus for fast decoding a linear code based on bit matching KR102269322B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200119130A KR102269322B1 (en) 2019-07-05 2020-09-16 A method and apparatus for fast decoding a linear code based on bit matching

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190081127A KR102189920B1 (en) 2019-07-05 2019-07-05 A method and apparatus for fast decoding a linear code based on bit matching
KR1020200119130A KR102269322B1 (en) 2019-07-05 2020-09-16 A method and apparatus for fast decoding a linear code based on bit matching

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190081127A Division KR102189920B1 (en) 2019-07-05 2019-07-05 A method and apparatus for fast decoding a linear code based on bit matching

Publications (2)

Publication Number Publication Date
KR20210004897A true KR20210004897A (en) 2021-01-13
KR102269322B1 KR102269322B1 (en) 2021-06-24

Family

ID=74142489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200119130A KR102269322B1 (en) 2019-07-05 2020-09-16 A method and apparatus for fast decoding a linear code based on bit matching

Country Status (1)

Country Link
KR (1) KR102269322B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021149973A1 (en) 2020-01-22 2021-07-29 주식회사 엘지에너지솔루션 Battery diagnosis system, power system, and battery diagnosis method
KR20220160306A (en) * 2021-05-27 2022-12-06 한양대학교 산학협력단 Fast soft decision decoding method and apparatus for linear codes using successive partial syndrome search

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248991B1 (en) * 2007-12-07 2013-03-29 지티이 코포레이션 Coding method, coding device, decoding method and decoding device for low density generator matrix code
KR20160110788A (en) * 2015-03-12 2016-09-22 한밭대학교 산학협력단 Method and circuit for qc-ldpc codes in nand flash memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248991B1 (en) * 2007-12-07 2013-03-29 지티이 코포레이션 Coding method, coding device, decoding method and decoding device for low density generator matrix code
KR20160110788A (en) * 2015-03-12 2016-09-22 한밭대학교 산학협력단 Method and circuit for qc-ldpc codes in nand flash memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021149973A1 (en) 2020-01-22 2021-07-29 주식회사 엘지에너지솔루션 Battery diagnosis system, power system, and battery diagnosis method
KR20220160306A (en) * 2021-05-27 2022-12-06 한양대학교 산학협력단 Fast soft decision decoding method and apparatus for linear codes using successive partial syndrome search

Also Published As

Publication number Publication date
KR102269322B1 (en) 2021-06-24

Similar Documents

Publication Publication Date Title
CN105340183B (en) A kind of interpretation method and device of polar code
US8245116B2 (en) Method for performing soft decision decoding of Euclidean space Reed-Muller codes
KR102269322B1 (en) A method and apparatus for fast decoding a linear code based on bit matching
CN109257140B (en) Polarized channel reliability sequencing method, polarized code encoding method and polarized code encoding device
US10560123B2 (en) Method for generating a sequence for a pola code and medium therefor and method and apparatus for transmitting data using thereof
US7681110B2 (en) Decoding technique for linear block codes
KR102144732B1 (en) A method and apparatus for fast decoding a linear code based on soft decision
US11063614B1 (en) Polar decoder processor
US9998149B2 (en) Constant hamming weight coding
KR20070058430A (en) Method for iteratively decoding block codes and decoding device therefor
CN110661535B (en) Method, device and computer equipment for improving Turbo decoding performance
KR102339723B1 (en) Method, program, and appratus of decoding based on soft information of a dna storage device
US11616515B2 (en) Method and apparatus for fast decoding linear code based on soft decision
KR102189920B1 (en) A method and apparatus for fast decoding a linear code based on bit matching
CN114978195A (en) Method and system for searching error pattern set related to polar code serial offset list decoding code words
CN113131947B (en) Decoding method, decoder and decoding device
US8402340B2 (en) Parity-check-code decoder and recording controller
KR101630114B1 (en) LDPC Decoding Device and Method Using Min-Sum Algorithm
US8156412B2 (en) Tree decoding method for decoding linear block codes
KR102526387B1 (en) Fast soft decision decoding method and apparatus for linear codes using successive partial syndrome search
US20170214413A1 (en) Joint source-channel coding with dynamic dictionary for object-based storage
US12047094B2 (en) Decoding method and decoding device
TWI759072B (en) Polar code decoding apparatus and operation method thereof
KR102574250B1 (en) Method, program and apparatus for encoding and decoding dna data using low density parity check code
CN115348010B (en) Method and system suitable for eliminating residual error codes of continuous variable quantum key distribution

Legal Events

Date Code Title Description
GRNT Written decision to grant