KR102269322B1 - 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
KR102269322B1
KR102269322B1 KR1020200119130A KR20200119130A KR102269322B1 KR 102269322 B1 KR102269322 B1 KR 102269322B1 KR 1020200119130 A KR1020200119130 A KR 1020200119130A KR 20200119130 A KR20200119130 A KR 20200119130A KR 102269322 B1 KR102269322 B1 KR 102269322B1
Authority
KR
South Korea
Prior art keywords
matrix
error correction
signal
decoding
order
Prior art date
Application number
KR1020200119130A
Other languages
Korean (ko)
Other versions
KR20210004897A (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

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

Description

비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치{A METHOD AND APPARATUS FOR FAST DECODING A LINEAR CODE BASED ON BIT MATCHING}A method and apparatus for fast decoding a linear code 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 quickly determining an error-correcting codeword through simple bit matching when the SNR of a received signal is high. .

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

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

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

한편, 연판정된 신호를 원래의 신호로 복호화하는 과정은 연판정된 신호의 조건부 확률 또는 우도(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. An ordered statistics decoder (OSD), which is one of such soft decision-based decoding methods, has received a lot of attention because it exhibits a performance that is close to a maximum likelihood (ML).

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

따라서, 연산 복잡도를 낮추면서 복호화 성능을 높게 유지할 수 있는 방안이 필요한 실정이다.Accordingly, 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 to solve 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 to solve the above problems is to provide a method of performing Gaussian elimination at high speed in a decoding method of a linear code.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 장치를 제공하는 데 있다.Another object of the present invention to solve 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) 기반으로 선형 부호를 고속 복호화하는 방법을 제공한다.One aspect of the present invention for achieving the above object provides 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 obtaining a hard decision signal by making a hard decision on a received signal, extracting a message signal from the obtained hard decision signal, the extracted message signal and the current obtaining a corrected codeword candidate based on an error vector according to an order, calculating a Hamming distance between the obtained error correction candidate word and the hard decision signal, and setting the calculated Hamming distance as a bit matching-based threshold The method may include comparing the value with the value and determining the error correction candidate word as a corrected codeword according to the comparison result.

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

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

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

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

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing, 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 determining of the error correction candidate word as the error correction 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. 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 for storing instructions instructing the at least one processor to perform at least one step. memory) may be included.

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

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

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

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

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

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing, 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 determining of the error correction candidate word as the error correction 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 provides a method of performing Gaussian elimination at high speed in a method of decoding a linear code.

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

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

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다.In the generating of the heat-exchanged generation matrix, at least one column having 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 decoding method of 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 generative matrix by performing column exchange on the substituted generating matrix, and row exchange such that columns located at the front end of the heat-exchanged generating matrix form a partial identity matrix. exchange) to generate a row-exchanged generator matrix, and performing Gaussian cancellation on remaining columns except for columns constituting the identity matrix in the row-exchanged generator matrix.

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

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

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

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

한편, 본 발명에 따른 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법 및 장치를 이용할 경우에는, 생성 행렬이 갖는 특성을 이용하여 가우스 소거를 고속으로 수행하므로 복호화 속도가 크게 향상될 수 있는 장점이 있다.On the other hand, in the case of using the 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 greatly increased because Gaussian elimination is performed at high speed using the characteristics of the generative matrix. There are advantages to 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.
2 is a flowchart illustrating a decoding method of 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 fast decoding a linear code based on a soft decision according to an embodiment of the present invention.
6A to 6J are graphs in which decoding performance and speed of the proposed methods according to an embodiment of the present invention are analyzed for each order.
7A to 7D are graphs analyzing decoding performance and speed according to method 2 among the proposed methods according to an embodiment of the present invention.
8A to 8H are graphs comparing decoding performance and speed of the proposed methods according to an embodiment of the present invention under different experimental conditions.
9A to 9D are graphs in which decoding performance and speed according to method 2 among the proposed methods according to an embodiment of the present invention are analyzed 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 illustrating 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 of fast decoding a linear code based on bit matching according to an embodiment of the present invention.
13 is a graph illustrating a practical ratio of Gaussian elimination in a method of 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.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like 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. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. 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 the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present 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. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

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

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to 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 bundled in a predetermined block unit and encoding and decoding are performed for each block. Linear encoding may mean a code in which a codeword set 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 a message m to be transmitted is expressed as a 1×k vector, a codeword x expressed as a 1Хn vector 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, rank of a generating matrix), and n may mean the length of a codeword.

여기서 부호어를 생성하기 위한 생성행렬은 사용하는 부호어 종류 또는 방식에 따라 미리 결정될 수 있으며, 일반적으로 부호어간 최소거리가 클수록 오류 정정 능력이 높으므로 유리하다. 여기서 최소 거리는 부호어들 사이의 해밍 거리(Hamming Distance) 중에서 가장 작은 거리를 의미할 수 있다. 또한, 해밍 거리는 두 부호어 사이의 서로 다른 심볼의 개수를 의미할 수 있다.Here, the generation matrix for generating the codeword may be predetermined according to the type or method of the codeword used. In general, the greater the minimum distance between codewords, 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)를 이용하여 복구된 파형에 섞인 오류를 검출하고 유효한 부호어(또는 데이터 심볼)를 복원할 수 있다.Through the above process, the linearly coded codeword 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 detect errors mixed in the recovered waveform. It can detect and recover a valid codeword (or data symbol).

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

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

도 2는 본 발명의 일 실시예에 따른 OSD(ordered statistics decoder)의 복호화 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a decoding method of 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, an alignment signal may be obtained by first arranging signals received from a decoder in order of magnitude ( S100 ). For example, let r = (r 0 , r 1 , ..., r n-1 ) be the received signal (where n may be the length of the codeword), then the individual components of the received signal (r 0 , r 1 , ..., r n-1 ) are taken absolute values and sorted in the order of magnitude of the absolute values to obtain the sort signal y = (y 0 , y 1 , ..., y n-1 ) (the alignment signal may be referred to as y hereinafter). Here, the sort order may be sorted in descending order, but is not limited thereto, and the sort order is not necessarily arranged in an exact 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 decision on the alignment signal y (S110). For example, a hard decision signal Y = (Y 0 , Y 1 , ..., Y n-1 ) may be obtained by making a hard decision on the alignment signal y (hereafter, 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 upper k components (where k may be the dimension described in FIG. 1 ) having a large magnitude are divided into MRBs and the remaining nk components are classified as LRBs, and the upper signal having 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 the upper signal α and an order (hereinafter, denoted as o) (S130). Specifically, for example, if the error vector for an arbitrary order o is k o and the permuted generation matrix is G', the error correction candidate word Eo substituted for the arbitrary order o is expressed in Equation 1 below. can be defined as

Figure 112020098360338-pat00001
Figure 112020098360338-pat00001

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

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

Figure 112020098360338-pat00002
Figure 112020098360338-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 is not the same as in Equation 2, the form according to Equation 2 may be derived by appropriately substituting the column of the generating matrix G according to FIG. 1, and in this case, to derive the substituted generating matrix G' The order of the substitution order and the order of the sorting signal may be the same.

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

Figure 112020098360338-pat00003
Figure 112020098360338-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 k components are all 0. Also, the error vector for the case of order 1 may be derived as in Equation 4 below.

Figure 112020098360338-pat00004
Figure 112020098360338-pat00004

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

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

Figure 112020098360338-pat00005
Figure 112020098360338-pat00005

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

Figure 112020098360338-pat00006
Figure 112020098360338-pat00006

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

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

Figure 112020098360338-pat00007
Figure 112020098360338-pat00007

즉, 수학식 5 내지 7을 종합하면, 비용 함수는 정렬 신호에서, 치환된 오류 정정 후보어와 경판정 신호가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 모두 더하는 연산으로 정의할 수 있다.That is, by summarizing Equations 5 to 7, the cost function can be defined as an operation of adding the sizes of components corresponding to positions where 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 every 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 permuted error correction candidate word may be determined as a permuted and corrected codeword according to the result of comparing the calculated cost with the minimum cost (S150) . Here, the minimum cost may mean a minimum value among costs calculated from the order 0 to the current order. To describe step S150 in more detail, if the calculated cost is less than the minimum cost, the substituted error correction candidate word may be determined as the substituted error correction codeword. Also, if the cost calculated in step S150 is smaller 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 the substituted error correction candidate word may be determined as the substituted error correction codeword.

단계 S150 이후에, 현재 차수에서 변경 가능한 오류 벡터가 존재하는지 판단(S160)하고, 현재 차수에서 변경 가능한 오류 벡터가 존재하면 오류 벡터를 변경하여(S180) 다시 단계 S130에 따른 과정부터 재수행할 수 있다. 여기서 오류 벡터의 변경은 오류 벡터에서 0이 아닌 성분(또는 1인 성분)의 위치를 달리함으로써 수행될 수 있다.After step S150, it is determined whether there is a changeable error vector in the current order (S160), and if there is a changeable error vector in the current order, the error vector is changed (S180) and the process according to step S130 can be performed again. . Here, the change of the error vector may be performed by changing 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 is not reached, the current order may be increased by one (S190), and the process 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 the following Equation (8).

Figure 112020098360338-pat00008
Figure 112020098360338-pat00008

상기 수학식 8에서, d는 부호어의 최소 거리를 의미할 수 있고, k는 차원을 의미할 수 있다. In Equation 8, d may mean a minimum distance of a codeword, and k may mean a 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는 미리 설정된 최대 차수까지 계속해서 비용함수를 산출하고, 치환된 오류 정정 후보어를 도출하기 때문에 연산 복잡도가 높고, 불필요한 연산이 반복해서 수행되는 문제가 있다. Since the OSD described in FIG. 2 continuously calculates the cost function up to a preset maximum order and derives a substituted error correction candidate word, there is a problem in that computational complexity is high and unnecessary operations are repeatedly performed.

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

도 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 up to step S160 according to FIG. 2 and determining whether the maximum order has been reached ( S170 ). That is, in step S165, the sum of components with small magnitudes (which may be referred to as a speeding threshold hereinafter) among the components of the alignment signal corresponding to the MRB may be compared with the minimum cost determined up to the current order (S165). Here, since the number of components corresponding to the cost function calculation for the next order of the current order should be considered, the number of components having a small size may be selected by one more than the current order and added to each other.

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

Figure 112020098360338-pat00009
Figure 112020098360338-pat00009

수학식 9를 참조하면, 정렬 신호가 내림차순으로 정렬되었다고 할 때, 정렬 신호의 MRB에 해당하는 성분들 중 마지막 성분인 k-1번째 성분부터 거꾸로 o+1개의 성분을 더함으로써 고속화 임계값(SPNC)가 결정될 수 있다. 반면에 정렬 신호가 오름차순으로 정렬되었다면, j=0부터 j=o 까지 더해질 수 있다.Referring to Equation 9, assuming that the sorting signal is sorted in descending order, the acceleration threshold value (S) by adding o+1 components backwards from the k-1th component, which is the last component, among the components corresponding to the MRB of the alignment signal. PNC ) can be determined. On the other hand, if the sort 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 small components is greater than the minimum cost, subsequent orders have no choice but to be greater than the minimum cost according to the current order, so there is little or no possibility of becoming an error correction codeword. Therefore, as a result of the comparison in step S165, if the sum of the components having small sizes is greater than the minimum cost, the process of repeating calculations (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, it is possible to provide another embodiment (PSC, probabilistic sufficient conditions) in which the amount of computation is reduced by improving the OSD shown in FIG. 2 .

도 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 value (S135), and according to the comparison result, An error correction candidate may be obtained (S130) by omitting the operations (S140 to S150) on 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 value, the substituted error correction code is unlikely to become an actual error correction codeword. Operations on the current error vector may be omitted and other candidate words of the current order may be calculated.

도 5는 본 발명의 일 실시예에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법에 대한 흐름도이다.5 is a flowchart illustrating a method for fast decoding a linear code based on a 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 for fast decoding a linear code based on soft decision includes obtaining an alignment signal by arranging a received signal in an order of magnitude (S200), and hard decision on the alignment signal to obtain an alignment signal. Acquiring a decision signal (S210), obtaining a higher-order signal corresponding to most reliable bases (MRB) from the hard decision signal (S220), an error substituted using the higher-order signal and an error vector according to the current order Obtaining a permuted and corrected codeword candidate (S230), calculating the cost for the current order using a cost function (S240), and comparing the calculated cost with the minimum cost. The method may include determining the permuted error correction candidate word as a permuted and corrected codeword ( S250 ) and determining a predefined acceleration condition ( S260 ).

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

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

상기 비용함수는, 상기 정렬 신호에서, 상기 치환된 오류 정정 후보어와 상기 경판정 신호가 서로 다른 값을 갖는 위치에 해당하는 성분들의 크기를 모두 더하는 연산으로 정의될 수 있다. 예를 들어, 비용함수는 수학식 5 내지 7을 참조할 수 있다.The cost function may be defined as an operation of adding the sizes of components corresponding to positions at 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 be defined as a vector having the same length as the MRB and having a hamming weight of 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 speeding condition (S260) includes calculating a speedup threshold by adding components having a small size among the components of the alignment signal corresponding to the MRB, and combining the calculated speedup threshold with the minimum cost. Comparing may be included. For example, the step of determining the predefined speeding condition ( S260 ) may refer to the description according to FIG. 3 , and the speedup threshold may refer to Equation (9).

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

상기 치환된 오류 정정 후보어를 획득하는 단계(S230) 이후에, 상기 경판정 신호와 상기 치환된 오류 정정 후보어 사이의 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계를 포함할 수 있다. 예를 들어 상기 해밍 거리를 미리 설정된 제1 임계값과 비교하는 단계는 도 4에 따른 설명을 참조할 수 있다.After obtaining the substituted error correction candidate word (S230), the method may include comparing a Hamming distance between the hard decision signal and the substituted error correction candidate word with a preset first threshold value. 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 shows that the Hamming distance is greater than the preset first threshold value, the operation on the error vector is omitted, and the error vector according to the current order may be changed to obtain the substituted error correction candidate word. 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 predefined speeding condition for the current order o by applying the PNC according to FIG. 3, step S140 in the order o+1 The cost calculated in can be expressed as in Equation 10 below.

Figure 112020098360338-pat00010
Figure 112020098360338-pat00010

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

일반적으로 LRB는 신뢰도가 낮은 값들이기 때문에, MRB에 해당하는 성분들보다는 오류 가능성이 높다. 따라서, 수학식 10에서의 γ는 0보다 큰 값을 가질 것으로 예상할 수 있다. 이러한 점을 이용하여 수학식 9에서 정의한 고속화 임계값(다음 차수 o+1에 대한 연산을 생략할지 결정하는 임계값)은 다음의 수학식 11과 같이 변경할 수 있다.In general, since LRBs are low reliability values, an error probability is higher than that of components corresponding to MRB. Accordingly, γ in Equation 10 can be expected to have a value greater than 0. Using this point, the acceleration threshold defined in Equation 9 (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 112020098360338-pat00011
Figure 112020098360338-pat00011

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

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

한편, 수학식 9에서 정의한 고속화 임계값(다음 차수 o+1에 대한 연산을 생략할지 결정하는 임계값)은 다음의 수학식 12와 같이 변경할 수도 있다.Meanwhile, the acceleration 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 112020098360338-pat00012
Figure 112020098360338-pat00012

수학식 12를 참조하면, 새롭게 정의하는 고속화 임계값(Sproposed)은 수학식 9에서 정의한 고속화 임계값(SPNC)에, 수신 벡터(received vector로 표기)를 인자로 갖는 함수(f')를 더한 값으로 정의할 수도 있다. Referring to Equation 12, the newly defined acceleration threshold (S proposed ) is a function (f') having a received vector (represented as a received vector) as a factor in the acceleration 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 permuting a column vector of a received signal or a column vector of a received signal in the same order as the permuted generation matrix G'.

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

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

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

도 5에 따른 연판정 기반으로 선형 부호를 고속 복호화하는 방법은, 이하에서 FSSD(Fast and Scalable Soft Decision decoding methods for linear codes)으로 지칭할 수 있다.The method of fast decoding a linear code based on the 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 in which decoding performance and speed of the proposed methods according to an embodiment of the present invention are analyzed 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 decoding, PNC means a case where step S165 according to FIG. 3 is applied, and PSC means step S135 according to FIG. 4 is additionally applied to PNC. means the case. In addition, proposed 1 (method 1) applies a process of determining a speeding condition using a newly defined speeding threshold according to Equation 11 in the flowchart according to FIG. 5, and comparing the second threshold with 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 operation on the current error vector is omitted by applying step S135 according to FIG. 4 in addition to method 1 together.

도 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를 사용하였다.For the coded words used in FIGS. 6A to 6J, a Bose-Chaudhuri-Hocquenghem (BCH) code having a code length n of 127, a dimension k of 64, and a minimum distance d of 21 was used. In addition, considering that the minimum distance (d) of the HDD is 21 points, all errors less than 10 are fixed. Also, in the graph, the vertical axis indicates a code error rate (WER) or a decoding speed (Speed-up) indicating 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 it is compared to the full ssearch algorithm of the OSD described with reference to FIG. 2 . In each experiment, all data was quantized to 7 bits, and the first threshold value preset according to the PSC of FIG. 4 was set to 25, and the second threshold value according to the description of FIG. 5 was set to 10. In addition, in method 1 (proposed 1) and method 2 (proposed 2), the function (f) value having SNR (Signal to Noise Ratio), order, and error correction code as factors is 346.5, 346.5, 321.3, 346.5, 346.5, 321.3, 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의 경우는 다른 모든 방법들보다 월등히 빠른 복호화 속도를 나타내는 것을 알 수 있다. Referring to FIGS. 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, Methods 1 and 2 are almost identical to PNC and PSC in decoding performance. In addition, the decoding speed of Methods 1 and 2 is significantly faster than that of PNC and PSC. In the case of Method 1, although there is a section in which the decoding speed is slower than that of PSC at low SNR, 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 significantly 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 about 13770 times faster (Method 1) and 14609 times (Method 2) faster than OSD-FS for each order, and up to about 336 times faster than PNC (Method 1) , and 797 times faster (Method 2). And compared to PSC, it is up to about 61 times faster (Method 1) and 139 times faster (Method 2).

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

도 7a 내지 도 7b에서 실험 조건은 도 6a 내지 도 6j와 같다.The 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이 어느 정도 이상이 되면, 차수를 높일수록 복호화 성능은 월등히 좋아지면서 연산 복잡도는 최소화할 수 있다.Referring to FIGS. 7A to 7B , the decoding performance and speed of Method 2 according to each order can be confirmed. Here, the decoding speed (Relative Speed) shown in FIG. 7B represents a relative speed compared to the OSD-FS (full search) of order 1. Specifically, method 2 converges to the speed of the OSD-FS according to order 1 irrespective of the order as the SNR increases. That is, when the SNR is higher than a certain level, the higher the order, the better the decoding performance and the lower the computational complexity.

도 7c 내지 도 7d를 참조하면, 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수 값(그래프에서는 β로 표시)을 변화시켰을 때의 차수 4에 대한 복호화 성능 및 속도를 확인할 수 있다. 이때, 복호화 속도는 차수 4에서 OSD-FS와 비교하여 상대적 속도를 나타낸다. 복호화 성능 관점으로 봤을 때, β 값이 특정값을 넘어가기 전에는 동일한 성능을 나타내게 되고, β 값이 증가함에 따라서 복호화 성능은 점진적으로 떨어진다. 복호화 속도는 β 값이 커질수록 점점 더 빨라지는 특성을 나타낸다. 즉, β 값에 따라서 복호 성능과 복호 속도간의 세밀한 trade-off 관계가 성립함으로, 시스템 환경에 맞도록 사용자가 파라미터들을 변경할 수 있다.7c to 7d, when the signal to noise ratio (SNR), the order, and the function value (represented by β in the graph) having the error correction code as factors in method 2 (proposed 2) are changed, You can check the decryption 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 deteriorates. The decoding speed exhibits a characteristic that becomes faster as the value of β increases. That is, a fine trade-off relationship between the decoding performance and the decoding speed is established according to the β value, 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 the 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으로 설정하였다.8A to 8H, a BCH code having a length of 255, a dimension of 131, and a minimum distance of 37 is used for the codeword. In addition, since the minimum distance of the HDD is 37, all errors less than 18 are set to be fixed. In this case, the decoding speed is a relative indication of how fast it 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 threshold value preset according to the PSC of FIG. 4 was set to 46, and the second threshold value according to the description of FIG. 5 was set to 18. In addition, in method 1 (proposed 1) and method 2 (proposed 2), the function (f) value with SNR (Signal to Noise Ratio), order, and error correction code as factors is 706.8, 706.8, 706.8, 706.8, 706.8, 706.8, respectively, from orders 1 to 7 706.8, 706.8, 644.8, 620.0 were set.

도 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 if the order exceeds 5, but the decoding performance of the codewords used in FIGS. 8A to 8H is significantly improved when the order is increased to 7. However, in the case of PSC or PNC, since it takes an enormous amount of time even in order 5, the 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와 비교해서 월등히 더 빨라질 것으로 예측할 수 있다. Referring to FIGS. 8A to 8H , Methods 1 and 2 show almost the same performance as PNC and PSC in decoding performance. In contrast, the decoding speed of Methods 1 and 2 is up to about 5287 times (Method 1) and 7420 times (Method 2) faster than OSD-FS for each order, and up to about 747 times faster than PNC (Method 1). ), and 1775 times faster (Method 2). And, compared to PSC, it is up to about 101 times faster (Method 1) and 240 times faster (Method 2). In addition, when comparing by increasing the order of 5 or more, methods 1 and 2 can be predicted to be significantly faster than PNC or PSC.

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

도 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와 비교한 상대적 속도를 나타낸다.Referring to FIGS. 9A to 9B , the decoding performance and decoding speed of Method 2 according to each order can be checked. In this case, the decoding speed (Relative Speed) of FIG. 9B represents a relative speed compared to the OSD-FS of order 1.

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

도 9c 내지 도 9d를 참조하면, 방법 2(proposed2)에서 SNR(Signal to Noise Ratio)과 차수 및 오류 정정 부호를 인자로 갖는 함수 값(그래프에서는 β로 표시)을 변화시켰을 때의 차수 4에 대한 복호화 성능 및 속도를 확인할 수 있다. 여기서 복호화 속도는 차수 4에서의 OSD-FS와 비교한 상대적 속도를 나타낸다. 도 7a 내지 도 7d에서와 마찬가지로, β 값이 특정값을 넘어가기 전에는 동일한 복호 성능을 나타내고, β 값이 특정값을 넘어간 후에는 복호 성능이 점진적으로 떨어지게 된다. 이에 반해서, 복호 속도는 β 값이 커질수록 속도가 점점 더 빨라지는 특성을 나타낸다. 이러한 특성을 활용하면, 사용자가 시스템 환경에 맞도록 파라미터들을 변경할 수 있다.9c to 9d, when the signal to noise ratio (SNR), the order, and the function value (represented by β in the graph) having the error correction code as factors in method 2 (proposed 2) are changed for order 4 You can check the decryption performance and speed. Here, the decoding speed represents a relative speed compared to the OSD-FS in order 4. 7A to 7D , the same decoding performance is exhibited before the β value exceeds a specific value, and the decoding performance gradually deteriorates after the β value exceeds the specific value. In contrast, the decoding speed exhibits a characteristic that the speed increases as the value of β increases. By utilizing 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 illustrating 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 permuted generating matrix G' is the sorting order (or the received signal of) preceding the column of the generating matrix G described in FIG. 1 for generating the sorting signal y. It can be obtained by substituting in the same order as the reliability magnitude order) and performing Gaussian elimination.

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

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

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

Figure 112020098360338-pat00013
Figure 112020098360338-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 corresponds 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). Also, u 0 to u k-1 may be a unit vector in which the k-th component value is 1 and the remaining component values are 0. In FIG. 11, such a generation matrix G is expressed 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 permuted generation matrix G' used in the decoding method (represented as 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 heat exchanging according to the order of the reliability magnitude of the received signal. In this case, columns corresponding to k components having a large degree of reliability in the received signal (which may be components corresponding to the message signal in the received signal and may be referred to as MRBs of the received signal hereinafter) are denoted as MRBs in FIG. 11 . and columns corresponding to the remaining components (which may be referred to as LRBs of a received signal hereinafter) are denoted as LRBs. That is, a specific column in the permuted generation matrix G' may be a unit vector corresponding to the message column in Equation 13, or may be a column (parity vector) belonging to the parity matrix P. Accordingly, since the previous method according to FIGS. 2 to 5 performs Gaussian cancellation on the entire permuted generation matrix G' as it is, it is difficult to utilize the characteristic according to Equation 13.

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

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

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

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

따라서, 본 발명의 일 실시예에 따르면, 행 교환된 행렬(Gr)에서 부분적 단위 행렬(Partial Identity Matrix)을 이루는 열들을 제외하고 나머지 열들에 대해서만 가우스 소거를 수행함으로써, 가우스 소거를 고속으로 수행할 수 있다. 도 10을 참조하면, 부분적 단위 행렬은 부분적으로 단위 행렬(E)의 형태를 갖는 행렬일 수 있다.Therefore, according to an embodiment of the present invention, Gaussian cancellation is performed at high speed by performing Gaussian cancellation on only the remaining columns except for the columns constituting the 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 having the form of the identity matrix (E).

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

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

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

Figure 112020098360338-pat00014
Figure 112020098360338-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 cancellation in the decoding method according to FIGS. 2 to 5 is applied, and the proposed speed is according to FIG. It may be a speed when fast Gaussian cancellation is applied to the decoding method according to FIGS. 2 to 5 . In addition, in the fast Gaussian elimination 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 elimination at 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 a speed improvement effect of at least 30% to 50% or more.

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

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

이처럼 도 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 the process of arranging the received signals in the order of the reliability magnitude, the process of substituting the generation matrix G according to the sorted order, the Gaussian It is necessary to perform a process of generating a permuted generation matrix G' through cancellation and a process of determining an error correction codeword through cost calculation for the current order 0.

이처럼 최소한으로 필요한 연산 과정 중에서 가우스 소거가 차지하는 연산량은 약 40%를 상회한다. 본 발명의 일 실시예에서는 수신된 신호의 SNR이 매우 커서 오류가 발생하는 경우가 작을 때 가우스 소거와 같은 연산 과정 없이 비트 매칭을 이용하여 빠르게 오류 정정 부호어를 결정하는 방법을 제안한다.The amount of computation occupied by Gaussian elimination out of 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 cancellation when the SNR of the received signal is very large and the occurrence of an error is small.

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

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

다음으로, 획득된 경판정 신호에서 메시지 신호를 추출할 수 있다(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. More specifically, the message signal may be extracted by extracting k component values of preset positions from the hard decision signal. Here, the preset position may vary according to a method of generating a message as a codeword using a generation matrix, as shown in FIG. 1 . For example, when the generation matrix is in the form according to Equation 13, received signal components at positions corresponding to the unit matrix (I k ) become message signals, so the hard decision signal R = (R 0 , R 1 , ..., In R n-1 ), the leading k component values 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 the 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 having a hamming weight of the current order. For example, if the current degree is 0 (for the first trial), the error vector may be a vector of length k with all components 0. For other error vectors, reference may be made to the description of Equations 3 and 4 of FIG. 2 .

상기 오류 정정 후보어를 획득하는 단계(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 112020098360338-pat00015
Figure 112020098360338-pat00015

상기 수학식 14에서 현재 차수를 o라고 할 때, Eo는 오류 정정 후보어이며, Rm은 메시지 신호이고, G는 생성 행렬이며, ko는 오류 벡터일 수 있다. 상기 오류 정정 후보어를 획득하는 단계에서, 현재 차수가 0인 경우(첫번째 시행인 경우) 오류 벡터의 모든 성분이 0이므로, 오류 벡터를 메시지 신호에 더하는 과정 없이 메시지 신호와 생성 행렬을 곱하여 오류 정정 후보어가 획득되는 것으로 해석될 수도 있다.In Equation 14, when the current order is o, E o may be an error correction candidate word, Rm may be a message signal, G may be a generation matrix, and k o may be an error vector. In the step of obtaining the error correction candidate word, when the current order is 0 (the first trial), all components of the error vector are 0, so 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 bit matching-based threshold value (S440). Here, the error correction candidate word may be directly determined as the error correction codeword according to the comparison result ( S450 ). For example, if the calculated Hamming distance is less than or equal to the bit matching-based threshold value, it is considered that almost no error has occurred in the received signal, and the error correction candidate word may be directly determined as the error correction codeword. Here, the bit matching-based threshold may be determined differently according to a user's setting.

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

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

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

도 13은 본 발명의 일 실시예에 따른 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 방법에서 가우스 소거(Gaussian elimination)가 차지하는 실질적인 비율을 나타낸 그래프이다.13 is a graph illustrating a practical ratio of Gaussian elimination in a method of 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 of FIG. 5 is performed versus 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를 사용하였다.Also, for the coded word, a Bose-Chaudhuri-Hocquenghem (BCH) code having 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 value is 25, the order (o) is 5, and the second threshold value is 10, and the bit matching-based threshold value used in the method according to FIG. 12 is 10, the order ( o) is 2 used.

도 12에 따른 방법에 따라 오류 정정 부호어가 결정되는 경우, 가우스 소거 연산이 생략되기 때문에 도 13에 따른 그래프를 참조하면 가우스 소거 연산이 생략되는 정도를 파악할 수 있다.When the error correction codeword is determined according to the method of FIG. 12 , since the Gaussian cancellation operation is omitted, the degree to which the Gaussian cancellation operation is omitted can be understood 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 cancellation 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 consumed for the Gaussian cancellation operation is 15.20 μs, and the method according to FIG. 12 performs one Gaussian cancellation for 13.46 μs, which is 88.6% of the previously consumed time can be interpreted. Therefore, it means that many of various operations including Gaussian cancellation are 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 cancellation 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 cancellation is performed on average for 4.40 μs, which is 28.9% of the Gaussian elimination 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 cancellation ratio according to the SNR in FIG. 13 , the method according to FIG. 12 omits various operations including Gaussian cancellation as the SNR increases, and it can be seen that the speed is gradually improved. Accordingly, the method according to FIG. 12 does not significantly improve performance when the SNR is low, but has an advantage 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 , in the apparatus 100 for high-speed decoding of a linear code based on bit matching, at least one processor 110 and the at least one processor 110 perform at least one step. It may include a memory 120 for storing instructions instructing to be performed.

또한, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치 (100)는, 유무선 네트워크를 통해 기지국과 통신을 수행하는 송수신 장치(transceiver, 130)를 포함할 수 있다. 또한, 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)는 입력 인터페이스 장치(140), 출력 인터페이스 장치(150), 저장 장치(160) 등을 더 포함할 수 있다. 비트 매칭(bit matching) 기반으로 선형 부호를 고속 복호화하는 장치(100)에 포함된 각각의 구성 요소들은 버스(bus, 170)에 의해 연결되어 서로 통신을 수행할 수 있다.Also, 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/wireless network. Also, 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 , a storage device 160 , and the like. 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 communicate 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 mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. Each of the memory 120 and the storage device 160 may be configured as at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory 120 may be configured as at least one of a read only memory (ROM) and a random access memory (RAM).

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

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

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

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

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

상기 비교하는 단계 이후에, 산출된 해밍 거리가 상기 비트 매칭 기반 임계값보다 크면, 상기 생성 행렬을 변경하여 상기 오류 정정 후보어를 획득하는 단계를 재수행할 수 있다.After the comparing, 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 determining of the error correction candidate word as the error correction 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. 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) 등일 수 있다.For example of the apparatus 100 for high-speed decoding of a linear code based on bit matching, a desktop computer, a laptop computer, a notebook computer, which can communicate according to error correction encoding, Smart phone, tablet PC, mobile phone, smart watch, smart glass, e-book reader, PMP (portable multimedia player), portable game machine, Navigation device, digital camera, DMB (digital multimedia broadcasting) player, digital audio recorder, digital audio player, digital video recorder, digital video It may be a digital video player, a personal digital assistant (PDA), or the like.

한편, 도 14에 따른 하드 웨어 구성요소를 갖는 장치는, 도 11에서 설명한 선형 부호의 복호화 방법에서 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법을 수행하는 장치로서도 사용될 수 있다.On the other hand, the device having the hardware components according to FIG. 14 may be used as a device for performing the method of performing Gaussian elimination at high speed in the decoding method of the 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 method of decoding a linear code is configured so that at least one processor 110 and the at least one processor 110 perform at least one step. It may include a memory (memory, 120) for storing instructions (instructions) to indicate.

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

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

상기 열 교환된 생성 행렬을 생성하는 단계는, 상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외할 수 있다.In the generating of the heat-exchanged generation matrix, at least one column having 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 by 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 available to those skilled in the art of 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 not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as at least one software module to perform the operations 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 can variously modify and change the present invention within the scope without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that it can be done.

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 generative matrix by performing column exchange on the permuted generative matrix;
generating a row-exchanged generative matrix by performing row exchange such that columns located at the front end of the column-exchanged generating matrix form a partial identity matrix; and
and performing Gaussian elimination on the remaining columns except for columns constituting the partial identity matrix in the row-exchanged generative matrix.
청구항 1에서,
상기 열 교환된 생성 행렬을 생성하는 단계는,
상기 치환된 생성 행렬에서, 수신 신호의 MRB(Most Reliable Bases)와 대응되는 열들 중에서 단위 벡터(Unit Vector)인 열들이, 상기 열교환된 생성 행렬의 전단에 위치하도록 열 교환하는 단계를 포함하는, 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법.
In claim 1,
The generating of the heat exchanged generative matrix comprises:
In the permuted generation matrix, columns that are unit vectors among columns corresponding to Most Reliable Bases (MRB) of the received signal are heat-exchanged so that they are located at the front end of the heat-exchanged generation matrix. How to perform Gaussian elimination with
청구항 2에서,
상기 열 교환된 생성 행렬을 생성하는 단계는,
상기 수신 신호의 MRB와 대응되는 열들 중에서 신뢰도의 크기가 낮은 적어도 하나의 열들은 상기 열 교환에서 제외하는, 고속으로 가우스 소거(Gaussian elimination)를 수행하는 방법.
In claim 2,
The generating of the heat exchanged generative matrix comprises:
A method of performing Gaussian elimination at high speed, in which at least one column having low reliability among columns corresponding to the MRB of the received signal is excluded from the heat exchange.
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 KR20210004897A (en) 2021-01-13
KR102269322B1 true 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)

Families Citing this family (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
KR102526387B1 (en) * 2021-05-27 2023-04-26 한양대학교 산학협력단 Fast soft decision decoding method and apparatus for linear codes using successive partial syndrome search

Citations (1)

* 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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101775969B1 (en) * 2015-03-12 2017-09-08 한밭대학교 산학협력단 Method and circuit for qc-ldpc codes in nand flash memory

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
KR20210004897A (en) 2021-01-13

Similar Documents

Publication Publication Date Title
CN103888148B (en) A kind of LDPC code Hard decision decoding method of dynamic threshold bit reversal
US20150295593A1 (en) Apparatus and method for encoding and decoding data in twisted polar code
US8245116B2 (en) Method for performing soft decision decoding of Euclidean space Reed-Muller codes
CN101656541B (en) Coding method and device of RS codes
US7979777B2 (en) Apparatus, method and program for decoding
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
US8468438B2 (en) Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
CN111480324B (en) Device and method for detecting mutually interfering information flows
US11777531B2 (en) Method and apparatus for high-speed decoding of linear code on basis of soft decision
JP3876662B2 (en) Product code decoding method and product code decoding apparatus
US7263652B2 (en) Maximum likelihood detector and/or decoder
KR20070058430A (en) Method for iteratively decoding block codes and decoding device therefor
JP2008544639A (en) Decoding method and apparatus
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
CN114978195B (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
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
JP5132738B2 (en) Error correction decoder and receiver
US12047094B2 (en) Decoding method and decoding device
US20170214413A1 (en) Joint source-channel coding with dynamic dictionary for object-based storage
KR101267756B1 (en) Method for encoding and decoding rate-compatible irregular repeat multiple-state accumulate codes and apparatuses using the same
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