KR102045437B1 - 저복잡도 신드롬 기반 복호 장치 및 그 방법 - Google Patents

저복잡도 신드롬 기반 복호 장치 및 그 방법 Download PDF

Info

Publication number
KR102045437B1
KR102045437B1 KR1020180106785A KR20180106785A KR102045437B1 KR 102045437 B1 KR102045437 B1 KR 102045437B1 KR 1020180106785 A KR1020180106785 A KR 1020180106785A KR 20180106785 A KR20180106785 A KR 20180106785A KR 102045437 B1 KR102045437 B1 KR 102045437B1
Authority
KR
South Korea
Prior art keywords
decoding
error
syndrome
hard decision
algorithm
Prior art date
Application number
KR1020180106785A
Other languages
English (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
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180106785A priority Critical patent/KR102045437B1/ko
Priority to US16/233,645 priority patent/US10917120B2/en
Application granted granted Critical
Publication of KR102045437B1 publication Critical patent/KR102045437B1/ko

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/45Soft decoding, i.e. using symbol reliability information
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • 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

Landscapes

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

Abstract

본 발명은 저복잡도 신드롬 기반 복호 장치 및 방법에 관한 것으로, 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 장치는, 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력하는 경판정부(hard decision), 상기 경판정 벡터에 대해 신드롬 연산을 수행하고, 상기 신드롬 연산 결과에 기초하여 상기 경판정 벡터의 에러 유형(error type)을 판단하는 신드롬 연산부, 상기 에러 유형에 따라 미리 설정된 복호 알고리즘을 선택하여 복호를 수행하는 복호부를 포함하되, 상기 에러 유형은 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나를 포함한다.

Description

저복잡도 신드롬 기반 복호 장치 및 그 방법{Low-Complexity Syndrome Based Decoding Apparatus and Method thereof}
본 발명은 저복잡도 신드롬 기반 복호 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 블록 터보 부호의 구성 부호로 확장 해밍 부호(Extended Hamming code)를 적용하여 성능 열화 없이 저 복잡도를 갖는 신드롬 기반 복호 장치 및 그 방법에 관한 것이다.
블록 터보 곱 부호(Block Turbo Code, BTC)는 SISO(soft-in soft-out) 복호 알고리즘(decoding algorithm)으로 p개의 최소 신뢰도 비트(least reliable bits, LRBs)으로부터
Figure 112018088932126-pat00001
개의 코드워드(codeword) 후보군을 생성한 후 이로부터 최적의 코드워드를 찾는 Chase Ⅱ 알고리즘과 이를 soft output으로 변환하는 외부 정보(extrinsic information) 연산 부분으로 구성된다. 하지만 이 기법은 항상
Figure 112018088932126-pat00002
개의 코드워드 후보군을 생성한 후 각각에 HISO(hard input hard output) 복호 알고리즘을 적용하고, 그 중 최적 코드워드를 찾는 일련의 과정이 필요하므로 복호 복잡도가 비교적 높다.
이에, 체이스 핀디아(Chase-Pyndiah) 알고리즘의 복잡도를 낮추기 위한 다양한 연구를 진행해왔다. 이러한 방법으로 SISO와 HIHO 알고리즘이 결합된 하이브리드 복호 알고리즘(hybrid decoding algorithm)이 있다. 하이브리드 복호 알고리즘은 복호 복잡도를 줄이기 위하여 SISO 알고리즘을 초반 반복 복호(iterative decoding)에 사용하고 남은 잔여 에러 정정에는 저 복잡도를 가지는 HIHO 알고리즘을 적용하였다.
그러나, 종래의 기법들은 반복 횟수나 SNR(signal to noise ratio)에 따라 변하는 입력 시퀀스의 신뢰도와 관계없이 불필요하게 복잡한 SISO 알고리즘을 적용하는 단점이 있다.
한국 공개특허공보 제10-2014-0071169호(2014.06.11.)
본 발명이 해결하고자 하는 기술적 과제는 블록 터보 부호(Block Turbo code, BTC)의 복호 복잡도를 성능 저하 없이 줄일 수 있는 저복잡도 신드롬 기반 복호 장치 및 그 방법을 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 장치는, 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력하는 경판정부(hard decision), 상기 경판정 벡터에 대해 신드롬 연산을 수행하고, 상기 신드롬 연산 결과에 기초하여 상기 경판정 벡터의 에러 유형(error type)을 판단하는 신드롬 연산부, 상기 에러 유형에 따라 미리 설정된 복호 알고리즘을 선택하여 복호를 수행하는 복호부를 포함하되, 상기 에러 유형은 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나를 포함한다.
바람직하게는, 상기 현재 입력값은, 수신 신호값, 이전 절반 반복시의 외부 정보 및 신뢰도 인자 중 적어도 하나에 기초한 값일 수 있다.
바람직하게는, 상기 신드롬 연산부는, 상기 경판정 벡터와 기 설정된 패리티 검사 행렬을 곱하여 신드롬 벡터를 계산하고, 상기 신드롬 벡터에 기초하여 상기 경판정 벡터에 대한 에러 없음, 단일 에러, 더블 에러 중 적어도 하나의 에러 유형을 판단할 수 있다.
바람직하게는, 상기 복호부는, 상기 에러 유형이 에러 없음인 경우, SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 제1 복호부, 단일 에러인 경우, 직전 절반 반복 복호에서 더블 에러의 존재 여부에 따라 HISO 복호 알고리즘 또는 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 제2 복호부, 더블 에러인 경우, 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 제3 복호부를 포함한다.
바람직하게는, 상기 제1 복호부는, 상기 경판정 벡터를 코드워드로 선택하고, 상기 경판정 벡터에 기초하여 외부 정보를 산출할 수 있다.
바람직하게는, 상기 제2 복호부는, 직전 절반 반복 복호에서 더블 에러(double error)의 존재 유무를 판단하는 더블에러 체크모듈, 상기 더블에러 체크모듈의 판단결과, 더블에러 존재 여부에 따라 HISO 복호 알고리즘 또는 변경된 SISO 복호 알고리즘을 수행하는 복호모듈을 포함한다.
바람직하게는, 상기 복호모듈은, 더블 에러가 존재하지 않는 경우, 다음 반복 복호 수행 전에 HISO 복호 알고리즘을 통해 해당 단일 에러를 정정하는 제1 복호모듈, 더블 에러가 존재하는 경우, 일정 개수의 LRB(Least Reliable Bits)의 위치를 찾고, 상기 LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 동일한 경우 HISO 복호 알고리즘을 사용하고, 두 위치가 동일하지 않은 경우 변경된 SISO 복호 알고리즘을 사용하는 제2 복호모듈을 포함한다.
바람직하게는, 상기 변형된 SISO 복호 알고리즘은, P개(p는 자연수임)의 LRB 위치에 의해
Figure 112018088932126-pat00003
Figure 112018088932126-pat00004
개의 후보 코드워드를 생성하고, 상기 후보 코드워드 중에서 중복 또는 불필요한 코드워드를 제거한 후, 최소 유클리드 거리에 따라 ML 코드워드를 결정할 수 있다.
본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 방법은, 복호 장치가 신드롬 기반으로 복호하는 방법에 있어서, 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력하는 단계, 상기 경판정 벡터에 대해 신드롬 연산을 수행하고, 상기 신드롬 연산 결과에 기초하여 상기 경판정 벡터의 에러 유형(error type)을 판단하는 단계, 상기 에러 유형에 따라 미리 설정된 복호 알고리즘을 선택하여 복호를 수행하는 단계를 포함하되, 상기 에러 유형은 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나를 포함한다.
바람직하게는, 상기 에러 유형(error type)을 판단하는 단계는, 상기 경판정 벡터와 기 설정된 패리티 검사 행렬을 곱하여 신드롬 벡터를 계산하는 단계, 상기 신드롬 벡터에 기초하여 상기 경판정 벡터에 대한 에러 없음, 단일 에러, 더블 에러 중 적어도 하나의 에러 유형을 판단하는 단계를 포함할 수 있다.
바람직하게는, 상기 복호를 수행하는 단계에서, 상기 에러 유형이 에러 없음인 경우, SISO 복호 알고리즘을 적용하여 복호 처리를 수행할 수 있다.
바람직하게는, 상기 복호를 수행하는 단계에서, 상기 에러 유형이 단일 에러인 경우, 직전 절반 반복 복호에서 더블 에러(double error)의 존재 유무를 판단하는 단계, 더블 에러가 존재하지 않는 경우, 다음 반복 복호 수행 전에 HISO 복호 알고리즘을 통해 해당 단일 에러를 정정하고, 더블 에러가 존재하는 경우, 일정 개수의 LRB의 위치를 찾고, 상기 LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 동일한 경우 HISO 복호 알고리즘을 사용하고, 두 위치가 동일하지 않은 경우 변경된 SISO 복호 알고리즘을 사용하는 단계를 포함한다.
바람직하게는, 상기 복호를 수행하는 단계에서, 상기 에러 유형이 더블 에러인 경우, 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행할 수 있다.
본 발명에 따르면, 블록 터보 부호의 구성 부호로 확장 해밍 부호(Extended Hamming code)를 적용하여 신드롬 특성을 이용함으로써, 성능 저하 없이 복호 복잡도를 낮출 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 4번의 반복 복호 과정 후의 입력 정보의 신드롬별 분포를 설명하기 위한 그래프이다.
도 4는 본 발명의 일 실시예에 따른 m 번째 반복에서 입력 벡터 중 더블 에러로 신드롬이 감지되는 비율을 설명하기 위한 그래프이다.
도 5는 본 발명의 일 실시예에 따른
Figure 112018088932126-pat00005
Figure 112018088932126-pat00006
이 일치하지 않는 경우를 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 (64,57,4) BTC에 적용한 본 발명과 종래 기법의 복잡도 감소 효과를 비교한 도면이다.
도 8은 본 발명과 종래 복호 기법에서 4가지 부호율에서의 SNR에 따른 복잡도를 비교한 예시도이다.
도 9는
Figure 112018088932126-pat00007
에서 상대적인 복잡도를 비교한 도면이다.
도 10은
Figure 112018088932126-pat00008
에서 상대적인 복잡도를 비교한 도면이다.
도 11은
Figure 112018088932126-pat00009
에서 상대적인 복잡도를 비교한 도면이다.
도 12는
Figure 112018088932126-pat00010
에서 상대적인 복잡도를 비교한 도면이다.
도 13은
Figure 112018088932126-pat00011
BTC에서 BER 성능을 비교한 도면이다.
도 14는 다양한 부호율에서 본 발명과 종래 BTC의 BER 성능을 비교한 도면이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 여러 실시 예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예들에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 따라서 앞서 설명한 참조 부호는 다른 도면에서도 사용할 수 있다.
또한, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다. 도면에서 여러 층 및 영역을 명확하게 표현하기 위하여 두께를 과장되게 나타낼 수 있다.
본 발명은 기존의 복호 기법과 비교하였을 때, 성능 손실(performance loss) 없이 복호 복잡도를 줄일 수 있는 3가지 효율적 scheme을 제시한다. 이를 위해서 본 발명은 BTC의 구성요소 코드(component code)로 사용되는
Figure 112018088932126-pat00012
확장 해밍 코드의 신드롬(syndrome)이 가지는 에러 감지 속성(error detection property)를 적용한다. 여기서, n은 코드워드 길이, k는 정보 길이, d는 최소 해밍 거리를 나타낸다. 해밍 코드 내의 코드워드에 패리티 비트를 부가함으로써, 더블 에러의 검출 및 단일 에러의 정정이 가능해진다. 이 에러 감지 속성은 경판정 벡터(Hard decision input vector)
Figure 112018088932126-pat00013
를 신드롬(syndrome) 연산 결과에 따라 에러 없음(no error), 단일 에러(single error), 더블 에러(double error)중 하나로 감지한다.
따라서 본 발명은 신드롬 연산을 통해 경판정 벡터
Figure 112018088932126-pat00014
의 에러(error) 개수를 추정한 결과를 바탕으로 SISO 복호 알고리즘과 HISO 복호 알고리즘 중 하나를 선택하여 사용한다. 이전 코드워드
Figure 112018088932126-pat00015
는 AWGN(additive white Gaussian noise) 채널을 통하여 복호장치에 전송되면, 수신된 코드워드는 R로 가정되고, 경판정 벡터
Figure 112018088932126-pat00016
는 R의 경판정 값으로 가정된다. 이어서, 경판정 벡터
Figure 112018088932126-pat00017
의 신드롬 값은 확장 해밍 코드의 패리티 검사 행렬 H를 사용하여 결정된다. 신드롬 검출 결과에 기초하여, 에러 없음인 경우, 단일 에러인 경우, 더블 에러인 경우로 분류하여 복호 처리를 수행한다.
이하, 본 발명의 실시예에 따른 저복잡도 신드롬 기반 복호 장치 및 방법을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 장치를 설명하기 위한 도면이다.
도 1 및 도 2을 참조하면, 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 장치(100)는 경판정부(hard decision)(110), 신드롬 연산부(Sybdrom calucator)(120), 복호부(130)를 포함한다.
경판정부(110)는 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력한다. 이때, 현재 입력값은 수신 신호값, 이전 절반 반복시의 외부 정보 및 신뢰도 인자 중 적어도 하나에 기초한 값일 수 있고, 수신 신호값은 채널을 통과하여 복호 장치(400)에 입력된 수신 신호 정보를 의미할 수 있다.
따라서, 경판정부(110)는 수신 신호값에 이전 절반 반복시의 외부정보와 신뢰도 인자를 곱한 값을 입력받고, 그 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력한다. 이때, m회차 복호에서 경판정부(110)에 입력되는 현재 입력값(
Figure 112018088932126-pat00018
)을 수학식으로 표현하면, 아래 수학식 1과 같다.
[수학식 1]
Figure 112018088932126-pat00019
이때, m은 반복 복호의 회차,
Figure 112018088932126-pat00020
는 m회차 입력값,
Figure 112018088932126-pat00021
는 수신 신호값,
Figure 112018088932126-pat00022
는 m-1회차 신뢰도 가중치,
Figure 112018088932126-pat00023
는 m-1회차 외부 정보를 의미한다.
예컨대, 경판정부(110)는 입력값이 0보다 큰 경우 1로 결정하고, 그 값이 0보다 작은 경우 0으로 결정하는 경판정을 수행하여, 경판정 벡터
Figure 112018088932126-pat00024
를 구한다.
신드롬 연산부(120)는 경판정 벡터에 대해 신드롬 연산을 수행하고, 신드롬 연산 결과에 기초하여 경판정 벡터의 에러 유형(error type)을 판단한다. 즉, 신드롬 연산부(120)는 경판정 벡터
Figure 112018088932126-pat00025
와 기 설정된 패리티 검사 행렬(parity check matrix ) H 를 곱하여 신드롬 벡터를 계산하고, 신드롬 벡터에 기초하여 경판정 벡터에 대한 에러 없음, 단일 에러, 더블 에러 중 적어도 하나의 에러 유형을 판단한다. 이때, 신드롬 연산부(120)는 확장 해밍 부호가 가지는 오류 검출 능력에 기반하여 에러 유형을 판단할 수 있다.
복호부(130)는 신드롬 연산부(120)에서 판단한 에러 유형에 따라 미리 설정된 복호 알고리즘을 선택하여 복호를 수행한다. 이때, 에러 유형은 에러 없음, 단일 에러, 더블 에러 등을 포함할 수 있다.
따라서, 복호부(130)는 에러 유형이 에러 없음인 경우 미리 설정된 복호 알고리즘을 적용하여 복호 처리하는 제1 복호부(140), 단일 에러인 경우 미리 설정된 복호 알고리즘을 적용하여 복호 처리하는 제2 복호부(150), 더블 에러(double error)인 경우 미리 설정된 복호 알고리즘을 적용하여 복호 처리하는 제3 복호부(160)를 포함한다. 이때, 제1 복호부(140)는 SISO 복호 알고리즘을 적용하고, 제2 복호부(150)는 직전 절반 반복 복호에서 더블 에러의 존재 여부에 따라 HISO 복호 알고리즘 또는 변형된 SISO 복호 알고리즘을 적용하며, 제3 복호부(160)는 변형된 SISO 복호 알고리즘을 적용할 수 있다.
구체적으로, 제1 복호부(140)는 에러 없음으로 판정된 경우 경판정 벡터를 코드워드로 선택하고, 경판정 벡터에 기초하여 외부 정보를 산출한다. 신드롬이 에러 없음(No error)를 의미한다면, 경판정 벡터
Figure 112018088932126-pat00026
는 오류를 포함하고 있지 않으므로, 이를 그대로 코드워드(codeword)로 선택하고, 이를 바탕으로 j번째 비트의 외부 정보(extrinsic information)
Figure 112018088932126-pat00027
는 아래 수학식 2를 이용하여 구한다.
[수학식 2]
Figure 112018088932126-pat00028
여기서,
Figure 112018088932126-pat00029
는 신뢰도 인자,
Figure 112018088932126-pat00030
Figure 112018088932126-pat00031
의 j번째 비트(bit) 값을 의미한다.
수신 신호 R의 경판정 벡터
Figure 112018088932126-pat00032
가 zero syndrome을 갖는 경우에는 종래 신드롬 기반 알고리즘의 프로세스와 동일한 순서로 디코딩을 진행한다. 이 과정에서는 복잡도(complexity)를 줄이기 위해 Chase Ⅱ algorithm의 결과인 ML 코드워드를 신드롬이 '0'일 때는 경판정 벡터
Figure 112018088932126-pat00033
로 대체한다. 이는
Figure 112018088932126-pat00034
개의 후보 코드워드(candidate codewords) 중 가장 짧은 유클리드 거리를 가지는 코드워드가 항상 경판정 벡터
Figure 112018088932126-pat00035
이기 때문이다. 이로부터 복호 복잡도는 zero syndrome을 가지는 비율만큼 줄일 수 있다. 따라서, 경판정 벡터
Figure 112018088932126-pat00036
는 오류가 없는 것으로 가정할 수 있으며, j번째 비트 위치의 외부 정보는 수학식 2를 통해 구할 수 있다.
이 경우에서는 Chase Ⅱ algorithm의 생략으로 인해
Figure 112018088932126-pat00037
후보 코드워드를 구할 수 없기 때문에, 외부 정보는 수학식 2를 이용하여 계산할 수 밖에 없다. 그러나 수학식 2에서 사용된 신뢰도 인자(reliability factor)
Figure 112018088932126-pat00038
는 종래의 신뢰도 인자
Figure 112018088932126-pat00039
보다 더 큰 값으로 정할 뿐, 최적 인자(optimum factor)로 정해진 값은 아직까지 알려진 바가 없다. 따라서 제1 복호부(140)는 다양한 factor 값을 가지고 반복 실험을 수행하여 가장 좋은 performance를 보인
Figure 112018088932126-pat00040
의 2배 값을
Figure 112018088932126-pat00041
로 설정할 수 있다.
제2 복호부(150)는 단일 에러로 판정된 경우, 직전 절반 반복 복호에서 더블 에러(double error)의 존재 유무를 판단하고, 그 판단결과에 따라 다른 복호 기법을 적용한다. 즉, 제2 복호부(150)는 단일 에러로 감지되는 입력 벡터중 단일 에러(single error)와 더블 에러를 가진 경우를 분류할 수 있는 2가지 조건(condition)을 차례로 적용하고, 각 조건의 만족 여부에 따라 SISO 알고리즘과 HISO 알고리즘을 구분하여 적용한다. 이에 성능 손실 없이 SISO 알고리즘의 사용 횟수를 줄일 수 있다.
이하, 단일 에러로 판정된 경우에 대해 구체적으로 설명하기로 한다.
종래 복호 알고리즘에서 BTC의 각 열 또는 행에 적용되는 구성요소 코드가 정정할 수 있는 최대 범위인
Figure 112018088932126-pat00042
개의 오류까지 HDD을 적용하면, 복호 복잡도는 줄일 수 있지만, 성능 손실이 발생한다. 확장 해밍 코드(Extended Hamming code)를 구성요소 코드로 가지는 본 발명에서도 마찬가지로 HDD을 최대 에러 정정 능력인 1bit 오류까지 적용할 때도 동일한 성능 저하 문제가 존재한다. 이는 1bit error로 감지되는 경판정 벡터
Figure 112018088932126-pat00043
가 더 많은 에러를 포함하고 있는 경우가 일부 존재하기 때문에 발생한다.
하지만 대부분의 경판정 벡터
Figure 112018088932126-pat00044
는 1bit 에러를 가지고 있고, 전체 input vector 중 단일 에러(single error)로 감지되는 비율은 4회의 반복에서 신드롬별 분포를 나타낸 도 3에서 볼 수 있듯이 zero syndrome 못지않게 큰 비율을 차지한다. 따라서 성능 손실없이 복잡도를 줄이기 위해서 두가지 기준(condition)을 적용하여 경판정 벡터
Figure 112018088932126-pat00045
가 단일 에러를 포함하고 있는 경우를 분류하고, 이를 바탕으로 복호 처리를 수행한다.
도 4는
Figure 112018088932126-pat00046
Figure 112018088932126-pat00047
BTC의 복호장치에서 SNR의 변화에 따라 각 반복에서 각각 32, 64개의 행(열) 입력 벡터 중 더블 에러로 검출되는 비율을 나타낸다. 반복 복호 과정에서 반복 횟수가 증가할수록 잔여 에러의 수가 점점 줄어들게 되므로, 더블 에러로 검출되는 부분의 비율 또한 점점 감소하게 되고 결국에는 없어진다. 이 시점의 half iteration 횟수를 m이라고 하면, m+1번째 half iteration부터의 복호 과정에서 경판정 벡터
Figure 112018088932126-pat00048
에 에러가 발생할 가능성은 거의 없다는 것을 의미한다. 하지만 만약 경판정 벡터
Figure 112018088932126-pat00049
의 신드롬이 단일 에러로 감지되는 경우가 발생한다면, 경판정 벡터
Figure 112018088932126-pat00050
가 1bit 에러일 가능성 또한 매우 높다. 따라서 아래 조건1(condition 1)을 적용하여 경판정 벡터
Figure 112018088932126-pat00051
의 HDD 만으로도 최적 코드워드 D를 찾을 수 있다.
Condition 1. M번째 절반 반복(half iteration)에서 각 행(열)의 경판정 벡터
Figure 112018088932126-pat00052
중 더블 에러로 신드롬이 감지되는 것이 존재하지 않고, m+1 번째 half iteration에서 경판정 벡터
Figure 112018088932126-pat00053
가 단일 에러로 감지될 경우, 기존 Chase-Pyndiah 복호 알고리즘을 HDD(Hard Decision Decoding) 기반 HISO 알고리즘으로 대체할 수 있다.
하지만 그 외의 경우에는 신드롬이 단일 에러로 검출되더라도 경판정 벡터
Figure 112018088932126-pat00054
가 다중 비트 에러를 가질 가능성은 조건 1.에 속하는 것에 비해 월등히 높으므로, 이 부분에 포함되는 경판정 벡터
Figure 112018088932126-pat00055
를 HDD 기반 HSIO만으로 에러 정정할 경우, 성능 손실이 발생할 수 있다. 이를 해결하기 위해 다음 조건 2(condition 2)를 적용한다.
Condition 2. m 번째 절반 반복(half iteration)에서 더블 에러로 검출되는 경판정
Figure 112018088932126-pat00056
가 존재하고, m+1 번째 절반 반복(half iteration)에서 경판정 벡터
Figure 112018088932126-pat00057
가 단일 에러로 검출될 때, d-1 개 LRB의 위치(position) 중 하나와 HDD로 정정되는 비트의 위치가 일치하는지를 확인하여, 불일치할 경우, Chase-Pyndiah 알고리즘을 적용하고, 일치할 경우에는 HDD 기반 HISO 알고리즘을 적용한다.
조건 2(Condition 2)에서는 입력 벡터
Figure 112018088932126-pat00058
로부터 신뢰도 벡터(reliability vector)
Figure 112018088932126-pat00059
를 생성한 후, 전체 n개 bit 중 신뢰도가 가장 낮은 d-1 bit의 위치를 찾는 과정이 꼭 필요하다. 이는 에러가 발생할 가능성이 가장 높은 LRB 위치에서 HDD가 이루어졌을 경우, 경판정 벡터
Figure 112018088932126-pat00060
가 가지고 있는 비트의 에러 정정이 올바르게 수행될 확률을 보장할 수 있기 때문이다. 또한, HDD를 통해 정정된 비트의 위치와 비교될 LRB 위치의 개수가 증가함에 따라, HDD 기반 HISO 알고리즘의 적용률이 증가한다. 그러나, LRB의 수가 증가함에 따라 HDD에서 에러 정정의 가능성이 커진다. 이러한 문제를 해결하기 위한 가장 중요한 조건은 성능의 손실없이 복호의 복잡성을 개선하기 위해, HDD에서 정정된 비트의 위치와 비교할 LRB의 수를 d-1로 설정하는 것이다. 이때, HDD을 통해 정정된 bit의 위치와 비교하는 LRB의 개수를 d-1로 설정한 것은, Chase Ⅱ algorithm 을 HDD 기반 HISO 알고리즘으로 대체하여 최적 코드워드(optimum codeword) D를 구하는 과정에서 잘못 결정하여 성능 손실이 발생하는 것을 막기 위해서이다. 이를 위해 가장 중요한 것은 이 과정을 대체하기 전과 후의 코드워드 D가 동일해야 한다는 것이다. 이를 보장하기 위하여 LRB의 개수를 d-1까지로 설정하며, 이에 대한 증명 과정을 이하에서 설명하기로 한다.
우선, 경판정 벡터
Figure 112018088932126-pat00061
를 HDD하여 획득된 코드워드를
Figure 112018088932126-pat00062
,
Figure 112018088932126-pat00063
를 Chase Ⅱ algorithm에 적용하여 얻은 가장 유클리디안 거리가 최소인 ML 코드워드를
Figure 112018088932126-pat00064
라고 가정하자. 그리고 HDD을 통해
Figure 112018088932126-pat00065
의 j 번째 비트 에러가 정정된다고 하면,
Figure 112018088932126-pat00066
Figure 112018088932126-pat00067
사이의 유클리드 거리 차이는 아래 수학식 3을 이용하여 구할 수 있다.
[수학식 3]
Figure 112018088932126-pat00068
여기서,
Figure 112018088932126-pat00069
는 HDD을 통해 정정된 비트를 나타내고,
Figure 112018088932126-pat00070
Figure 112018088932126-pat00071
의 j번째 비트를 의미한다.
Figure 112018088932126-pat00072
Figure 112018088932126-pat00073
은 SNR 값 또는 반복 횟수에 따라 동일하거나 다를 수 있다.
Figure 112018088932126-pat00074
Figure 112018088932126-pat00075
와 동일한 경우, R로부터의
Figure 112018088932126-pat00076
Figure 112018088932126-pat00077
유의 유클리드 거리의 차이는 수학식 3과 같이 표현된다.
그런데 경우에 따라
Figure 112018088932126-pat00078
Figure 112018088932126-pat00079
는 불일치할 수 있으며, 이는 후보 코드워드들 중
Figure 112018088932126-pat00080
를 제외한 나머지 후보 코드워드중 하나의 코드워드가 최소 유클리드 거리를 가질때 발생한다. 이 경우,
Figure 112018088932126-pat00081
Figure 112018088932126-pat00082
의 유클리드 거리의 차이는 둘 사이에 서로 다른 값을 갖는 d-1 비트 이상 존재하여 발생한다.
Figure 112018088932126-pat00083
Figure 112018088932126-pat00084
사이의 해밍 가중치의 차이가 적어도 d 이기 때문에 발생한다. 이를 바탕으로, 도 5와 같이
Figure 112018088932126-pat00085
Figure 112018088932126-pat00086
보다 유클리드 거리가 작은 경우를 추론할 수 있다.
Figure 112018088932126-pat00087
Figure 112018088932126-pat00088
는 항상 에러 정정된 비트 위치에서 다른 값을 가진다. 또한
Figure 112018088932126-pat00089
Figure 112018088932126-pat00090
서로 다른 코드워드이므로, 이들 간의 최소 해밍 거리는 d 이다. 이는
Figure 112018088932126-pat00091
Figure 112018088932126-pat00092
이 최소 d-1 비트에서 다른 값을 갖는다는 것을 의미한다. 따라서
Figure 112018088932126-pat00093
Figure 112018088932126-pat00094
사이의 값이 서로 다른 비트 수가 d-1이고, 그 위치가 d-1 LRB의 위치와 같으면,
Figure 112018088932126-pat00095
Figure 112018088932126-pat00096
사이의 유클리드 거리의 제곱이 최소값을 갖는다.
Figure 112018088932126-pat00097
Figure 112018088932126-pat00098
유클리드 거리의 제곱을 각각 계산한 후, 그들간의 차이는 후술할 수학식 4와 같이 표현될 수 있다.
그중
Figure 112018088932126-pat00099
이 최소 유클리드 거리를 가질 때를 worst case라고 하면 이는
Figure 112018088932126-pat00100
와 다른 d 비트가 최소 신뢰도(least reliability)를 가질 때를 의미한다. 따라서
Figure 112018088932126-pat00101
Figure 112018088932126-pat00102
사이의 유클리드 거리 차이는 둘 사이에 불일치하는 d-1 이상의 비트(bit)에 의해 발생하고, worst case는 불일치하는 비트들이 LRB에 해당할 때이며, 아래 수학식 4과 같이 표현할 수 있다.
[수학식 4]
Figure 112018088932126-pat00103
여기서, a(1), a(2), a(3)는 신뢰도가 가장 낮은 d-1 bit의 위치를 의미하며, 각 bit의 신뢰도는
Figure 112018088932126-pat00104
의 관계를 갖는다.
수학식 3과 수학식 4를 통해
Figure 112018088932126-pat00105
Figure 112018088932126-pat00106
와 일치하기 위해서는 아래 수학식 4을 만족해야 함을 알 수 있다. 즉,
Figure 112018088932126-pat00107
Figure 112018088932126-pat00108
보다 항상 유클리드 거리가 작은 조건은 아래 수학식 5와 같이 도출할 수 있다.
[수학식 5]
Figure 112018088932126-pat00109
수학식 5를 살펴보면, HDD가 정확한 에러 비트에서 이루어지기 위해서는 HDD에 의해 정정되는 j번째 bit의 신뢰도가 d-1 비트 위치의 신뢰도의 합보다 작은 경우를 유지해야 한다. 따라서, j가 d-1 이하의 신뢰도를 가진 비트 위치와 같으면 조건은 항상 유지된다. 이 결과로부터, HDD가 복호 과정후에 SISO 알고리즘과 동일한 코드워드를 갖도록 dj HDD와 비교될 LRB의 최대 수를 d-1로 설정할 수 있음을 알 수 있다.
상술한 2가지 조건(condition)을 바탕으로 경판정 벡터
Figure 112018088932126-pat00110
의 신드롬이 단일 에러로 검출될 때, 제2 복호부(150)는 후술과 같이 m 번째 half iteration의 행(열) 벡터의 복호(decoding)을 진행한다.
제2 복호부(150)는 신드롬이 단일 에러를 의미한다면, m-1번째 절반 반복(half iteration)에서 더블에러로 검출되는 행(열) 벡터가 존재하는지를 파악한다. 그런 후, m-1 번째 절반 반복(half iteration)에서 더블 에러로 검출되는 행(열) 벡터가 없다면, 조건 1에 따라 경판정 벡터
Figure 112018088932126-pat00111
의 HDD을 통해 최적의 코드워드
Figure 112018088932126-pat00112
를 구한다.
그런 후, 제2 복호부(150)는 j번째 비트의 외부정보를 아래 수학식 6을 이용하여 구한다.
[수학식 6]
Figure 112018088932126-pat00113
, j=1,2, ..., n
여기서, 신되도 인자
Figure 112018088932126-pat00114
는 종래 인자
Figure 112018088932126-pat00115
보다 1.5배일 수 있다.
Figure 112018088932126-pat00116
Figure 112018088932126-pat00117
에 비해 조금 작은 값으로 설정된 것은 단일 에러로 검출된 벡터의 에러 확률(error probability)이 에러가 없는 경우보다 더 높기 때문이다.
또한, 제2 복호부(150)는 m-1 번째 절반 반복(half iteration)에서 더블 에러로 검출되는 행(열) 벡터가 존재하면, condition 2에 따라 d-1 LRBs 의 위치(position) 중 하나와
Figure 112018088932126-pat00118
의 HDD을 통해 정정된 bit의 일치 여부를 체크한다. 일치하는 것이 존재하는 경우 제2 복호부(150)는 조건 1에 따라 최적의 코드워드
Figure 112018088932126-pat00119
를 구하고, 수학식 6을 이용하여 외부정보 W를 구한다. 만약, 일치하는 것이 존재하지 않으면, 제2 복호부(150)는 Chase-Pyndiah 복호 알고리즘을 적용하여 유클리디안 거리가 최소인 ML 코드워드
Figure 112018088932126-pat00120
과 외부정보 W를 구한다.
이러한 제2 복호부(150)는 더블에러 체크모듈(152), 복호 모듈(154, 156)을 포함한다.
더블에러 체크모듈(152)은 단일 에러로 판정된 경우, 직전 절반 반복 복호에서 더블 에러(double error)의 존재 유무를 판단한다.
복호모듈(154, 156)은 직전 절반 반복 복호에서의 더블에러 존재 여부에 따라 HISO 복호 또는 SISO 복호를 수행한다.
이러한 복호모듈(154, 156)은 더블에러가 존재하는 경우 복호 처리를 수행하는 제1 복호모듈(154), 더블에러가 존재하지 않은 경우 복호 처리를 수행하는 제2 복호 모듈(156)을 포함한다.
제1 복호모듈(154)은 더블 에러가 존재하지 않는 경우, 다음 반복 복호 수행 전에 HISO 복호 과정을 통하여 해당 단일 에러를 정정한다. 즉, 제1 복호모듈(154)은 직전 절반 반복(half iteration)에서 더블 에러(double error)로 판정된 것이 없을 경우, 다음 절반 반복부터는 더블 에러가 존재할 가능성이 매우 낮다는 것을 의미하므로, 이때부터는 기존의 높은 복잡도를 가지는 Chase-Pyndiah SISO 복호 기법 대신 확장 해밍 부호의 오류정정(Hard decision decoding, HDD)을 통하여 구해진 코드워드 D를 바탕으로 j번째 비트의 외부 정보
Figure 112018088932126-pat00121
Figure 112018088932126-pat00122
를 구한다. 즉, 제1 복호모듈(154)은 수학식 6을 이용하여 외부 정보를 구할 수 있다.
제2 복호모듈(156)은 더블 에러가 존재하는 경우 일정개수(예컨대, 3)의 LRB(Least Reliable Bits)의 위치를 찾고, LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 동일한 경우 HISO 복호 알고리즘을 사용하고, 두 위치가 동일하지 않은 경우 SISO 복호를 통해 외부 정보를 구한다. 즉, 제2 복호모듈(156)은 직전 half iteration에서 double error로 판정된 것이 있을 경우, 확장 해밍 부호의 최소 유클리드 거리인
Figure 112018088932126-pat00123
보다 1작은 3개의 Least Reliable Bits(LRBs)의 위치와 확장 해밍 부호의 오류정정(Hard decision decoding, HDD)을 통하여 정정된 단일 비트의 위치가 일치하는지를 비교한다. 그 비교결과 두 위치가 일치하면, 제2 복호모듈(156)은 확장 해밍 부호의 오류정정(Hard decision decoding, HDD)을 통하여 구해진 코드워드 D를 바탕으로 j번째 비트의 외부 정보
Figure 112018088932126-pat00124
를 구한다. 이때, 제2 복호모듈(156)은 수학식 6을 이용하여 외부정보를 구할 수 있다. 또한, 제2 복호모듈(156)은 두 위치가 일치하지 않으면, 기존의 Chase-Pyndiah SISO 복호 알고리즘을 통해 외부 정보를 구한다. 이때, 제2 복호모듈(156)이 SISO 복호 알고리즘을 적용할 때, P개의 LRB 위치에 의해
Figure 112018088932126-pat00125
개의 후보 코드워드를 생성하고,
Figure 112018088932126-pat00126
개의 후보 코드워드중에서 중복 또는 불필요한 코드워드를 제거한 후, 최소 유클리드 거리에 따라 ML 코드워드를 결정한다.
제3 복호부(160)는 경판정 벡터에 SISO 복호 알고리즘을 적용하여 ML codeword D와 외부정보 W를 구한다. 즉, 신드롬 연산이 더블 에러를 의미하는 경우, 제3 복호부(160)는 Chase-Pyndiah 알고리즘을 이용하여 ML codeword D와 외부정보 W를 구한다.
살핀바와 같이 경판정 벡터
Figure 112018088932126-pat00127
가 더블 에러와 단일 에러를 가진 것으로 검출될 때, SISO 알고리즘을 적용한다. 그러나 기존의 SISO 알고리즘은 p개의 LRB로부터
Figure 112018088932126-pat00128
개의 후보 코드워드를 생성하는 과정에서
Figure 112018088932126-pat00129
HDD를 수행해야하기 때문에 복호 복잡도가 높다. 그러나, 본발명에 따른 복호 알고리즘은
Figure 112018088932126-pat00130
개의 후보 코드워드 중 중복되거나 불필요한 코드워드를 제거하여 코드워드의 수를
Figure 112018088932126-pat00131
개로 줄일 수 있다. 이를 통해 이 과정에서 요구되던 HDD의 사용 횟수를 절반으로 줄일 수 있으므로, 복호 복잡도를 크게 낮출 수 있다.
한편, 신드롬이 단일 에러와 더블 에러로 검출될 때, 유효 코드워드 세트를 만들기 위해서 반드시 고려해야하는 테스트 패턴은 각각 표 1 및 표 2와 같다.
[표 1]
Figure 112018088932126-pat00132
[표 2]
Figure 112018088932126-pat00133
표 1 및 표 2에서
Figure 112018088932126-pat00134
는 조합 수식으로, c 개체 집합에 포함된 b 개체의 가능한 조합 수를 의미한다. 표 1 및 표 2 모두에 포함되지 않은 테스트 패턴은 두 가지 이유 중 하나로 인해 제거할 수 있다. 즉, 유지되는(포함된) 테스트 패턴이 생성할 수 있는 유효 코드워드와 동일한 sequence 형태를 가지거나 전송된 코드워드
Figure 112018088932126-pat00135
와는 다른 형태의 벡터(vector) 형태를 가지는 테스트 패턴은 제거할 수 있고 이로 인한 성능 손실은 거의 발생하지 않는다.
이를 확인하기 위해 표 1에서
Figure 112018088932126-pat00136
의 신드롬이 단일 에러로 검출되었을 때 포함되지 않은 부분을 살펴보자.
우선, 1개의 1을 포함하는 테스트 패턴이 포함되지 않은 이유는 다음과 같다. 먼저, 1이 포함된 bit가 에러 비트와 같다면, HDD 후에 생성된 코드워드는 1을 하나도 포함하지 않은 테스트 패턴으로부터 얻은 코드워드와 동일하다. 하지만 다르다면 전송된 코드워드
Figure 112018088932126-pat00137
와는 다른 형태의 코드워드를 생성하게 된다. 마찬가지로 1을 3개 포함하는 테스트 패턴이 제외된 것은, 1을 포함한 3bit가 모두 에러 비트이면 1을 4개 포함한 테스트 패턴으로부터 구한 것과 동일한 코드워드를 얻게 되거나 3bit가 모두 에러 비트가 아니면 잘못된 코드워드를 만들게 되므로 위의 두가지 경우는 모두 제외가 가능하다.
마찬가지로 동일한 기준을 더블에러로 검출된 경우에 적용하면 표 2와 같은 결과를 얻을 수 있다.
도 6은 본 발명의 일 실시예에 따른 저복잡도 신드롬 기반 복호 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 복호 장치는 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 구한다(S610).
단계 S610의 수행후, 복호 장치는 경판정 벡터에 대해 신드롬 연산을 수행하고(S620), 신드롬 연산 결과에 기초하여 경판정 벡터의 에러 유형(error type)을 판단한다(S630). 이때, 복호 장치는 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나로 에러 유형을 판단할 수 있다.
단계 S630에서 판단된 에러 유형이 에러 없음이면, 복호 장치는 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행한다(S640).
만약, 단계 S630에서 판단된 에러 유형이 단일 에러이면, 복호 장치는 직전 절반 반복 복호에서 더블 에러(double error)의 존재 유무를 판단한다(S650).
단계 S650의 판단결과, 더블 에러가 존재하면, 복호 장치는 일정 개수(d-1개)의 LRB(Least Reliable Bits)의 위치를 찾고(S660), 각 LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 일치하는지를 판단한다(S670).
단계 S670의 판단결과 두 위치가 동일한 경우, 복호 장치는 HISO 복호 알고리즘을 사용하여 복호 처리를 수행하고(S680), 두 위치가 동일하지 않은 경우 변경된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행한다(S690).
만약, 단계 S650의 판단결과, 더블 에러가 존재하지 않으면, 복호 장치는 다음 반복 복호 수행 전에 HISO 복호 알고리즘을 통하여 해당 단일 에러를 정정한다(S700).
만약, 단계 S630에서 판단된 에러 유형이 더블 에러이면, 복호 장치는 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행한다(S710).
이하, 본 발명의 복호 알고리즘과 종래의 복호 알고리즘을 비교하여 그 효과를 설명하기로 한다.
먼저, 연산 복잡도를 기준으로 비교하기로 한다.
여기서는 HDD(Hard decision decoding)와 주로 사용되는 4가지 operations(addition, multiplication, modulo 2, comparison)의 적용 횟수를 기준으로 classical decoding algorithms과 본 발명의 알고리즘 사이의 복호 복잡도를 비교하였다.
HDD 을 기준으로 한 복잡도는 각각의 알고리즘에서 사용된 HDD 횟수를 아래 수학식 7을 통하여 구할수 있다. 이때, 각각의
Figure 112018088932126-pat00138
BTC의 복호 알고리즘에서 SISO 복호 알고리즘이 적용된 half iteration횟수를
Figure 112018088932126-pat00139
, HIHO 복호 알고리즘이 적용된 half iteration 횟수를
Figure 112018088932126-pat00140
, LRB의 수를 p로 가정하였다.
Conventional Chase-Pyndiah 알고리즘의 HDD 연산량
Figure 112018088932126-pat00141
을 계산하면 아래 수학식 7과 같다.
[수학식 7]
Figure 112018088932126-pat00142
다음으로 이를 SISO과 HIHO 알고리즘을 결합하여 복잡도를 줄인 기존 혼합 복호 기법의 HDD 연산량은 아래 수학식 8과 같이 표현할 수 있다.
[수학식 8]
Figure 112018088932126-pat00143
여기서,
Figure 112018088932126-pat00144
는 i번째 half iteration에서 n개 입력 벡터의 hard decision sequence와 이를 HDD한 후의 sequence를 비교했을 때 다른 값을 가지는 bit 수가 임계치
Figure 112018088932126-pat00145
보다 작은 비율을 의미한다.
그리고 신드롬 기반 복호 알고리즘은은 i번째 half iteration에서 zero syndrome으로 감지된 비율
Figure 112018088932126-pat00146
만큼 복잡도가 감소되며 HDD 연산량
Figure 112018088932126-pat00147
은 아래 수학식 9를 따른다.
[수학식 9]
Figure 112018088932126-pat00148
마지막으로 본 발명에서 제시한 알고리즘의 전체 HDD 연산 횟수
Figure 112018088932126-pat00149
는 i번째 iteration에서 n개의 input row vector 중 더블 에러로 감지되는 비율
Figure 112018088932126-pat00150
, condition 2에서 SISO 알고리즘으로 복호되는 비율
Figure 112018088932126-pat00151
과 condition 1과 2에서 HDD을 적용하는 부분의 비율의 합
Figure 112018088932126-pat00152
을 사용하여 아래 수학식 10과 같이 나타낼 수 있다.
[수학식 10]
Figure 112018088932126-pat00153
상기에서 구한 각 복호 알고리즘의 HDD 수행 횟수를 바탕으로 각 알고리즘이 Chase-Pyndiah 알고리즘에 비해 어느 정도의 비율로 줄었는지를 비교하기 위해 아래 수학식 11을 적용하였다.
[수학식 11]
Figure 112018088932126-pat00154
여기서,
Figure 112018088932126-pat00155
는 HDD 연산량을 의미한다.
도 7 및 도 8은 BTC에서
Figure 112018088932126-pat00156
와 p를 각각 8과 4로 설정한 후, 본 발명에서 설명한 다양한 알고리즘의 HDD 사용량의 상대적 감소율 식
Figure 112018088932126-pat00157
을 이용하여 구한 것이다.
우선 도 7은
Figure 112018088932126-pat00158
BTC에 본 발명의 알고리즘(proposed algorithm)과 classical three algorithms을 적용했을 때의 상대적 HDD 감소율을 Eb/No에 따라 나타낸 것이다. SNR(신호대 잡음비)의 증가에 따라, 기존의 Chase-Pyndiah algorithm은 일정한 복잡도를 유지하지만, 반면에 다른 알고리즘들은 점차 HDD의 사용횟수가 감소함을 알 수 있다. 특히 본 발명의 알고리즘(proposed algorithm)은
Figure 112018088932126-pat00159
dB의 SNR에서 Chase-Pyndiah, Hybrid and Syndrome 기반 알고리즘과 비교했을 때, 각각 90%, 73%, 66%의 HDD 연산을 감소시킬 수 있다. 여기에서 hybrid (3.5 ,4)는 반복 복호 과정이 3.5회의 SISO 알고리즘과 4회의 HIHO 알고리즘이 combine된 형태의 복호 알고리즘을 의미하며, Max. HDD는 수신된 경판정 벡터
Figure 112018088932126-pat00160
의 신드롬중 no error와 single error로 감지되는 모든 경우의 복호에 HDD만을 적용한 것을 나타낸다. 하지만 이 경우에는 뒷부분에 제시되는 BER 성능에서 볼 수 있듯 성능이 크게 저하된다. 따라서 본 발명의 알고리즘(proposed algorithm)에 비해 double error로 감지되는 비율이 월등히 크므로 상대적인 HDD 감소율은 SNR에 따라 비슷하거나 더 작음을 알 수 있다.
도 8은 (32,26,4), (64,57,4), (128,120,4), (256,247,4) 확장 해밍 코드를 기반으로 한 2차원 BTC의 복호 scheme으로 종래 방법 중 가장 HDD 연산량 감소 효과가 큰 신드롬 기반 알고리즘과 본 발명의 알고리즘의 상대적 HDD 감소율을 비교한 것이다. 이를 통하여 SNR에 관계없이 4가지 경우 모두에서 본 발명의 알고리즘이 종래 알고리즘에 비해 HDD 사용량을 절반 이하로 줄일 수 있는 효율적 기법임을 알 수 있다.
다음으로, m 번의 half iteration 과정 동안의 복호 복잡도를 주로 사용하는 4가지 연산의 사용 횟수를 기준으로 분석하였다. 이를 위해 우선 n개의 input row(column) vector 중 1개의 복호 과정에서 각 연산이 사용되는 횟수를 다음과 같이 정의하였다.
Addition operation의 사용 횟수:
Figure 112018088932126-pat00161
Multiplication operation의 사용 횟수:
Figure 112018088932126-pat00162
Comparison operation의 사용 횟수:
Figure 112018088932126-pat00163
Modulo 2 operation의 사용 횟수:
Figure 112018088932126-pat00164
상술한 4가지 연산의 complexity를 Chase-Pyndiah, 신드롬 기반 알고리즘, 본 발명의 알고리즘(Proposed algorithm)의 복잡도를 비교하기 위하여 각 알고리즘 에서 연산별 사용 횟수를 차례로 구하였다. 우선, Chase-Pyndiah algorithm의 step별 연산 사용횟수는 아래 표 3과 같다.
[표 3]
Figure 112018088932126-pat00165
m번의 half iteration 후의 연산별 전체 사용 횟수는 one row vector의 사용 횟수에 mn을 곱하여 구한다.
다음으로 신드롬 기반 알고리즘의 연산별 사용 횟수는 표 4 및 표 5와 같이 나타낼 수 있으며, 각각 신드롬이 no error와 single error일 때의 단계별 사용량을 나타낸다.
[표 4]
Figure 112018088932126-pat00166
[표 5]
Figure 112018088932126-pat00167
이때의 m번의 half iteration 후의 전체 연산기 사용횟수는 iteration별로 n개의 입력 벡터 중 신드롬이 zero인 것과 아닌 것의 비중을 구하여 각각의 one low vector의 복호에 요구되는 연산기 사용량과 곱하여 구한 것을 모두 더하여 구한다.
마지막으로 본 발명의 복호 알고리즘의 4가지 연산에 대한 복잡도는 syndrome 또는 condition 1,2에 의해 5가지 경우로 분류할 수 있으며, 각 경우의 operation별 사용 횟수는 아래 표 6과 같다.
[표 6]
Figure 112018088932126-pat00168
본 발명의 m번째 half iteration 후의
Figure 112018088932126-pat00169
(t=1,2,3,4) 연산의 전체 사용량
Figure 112018088932126-pat00170
는 i(m
Figure 112018088932126-pat00171
Figure 112018088932126-pat00172
번째 절반 반복(half iteration)에서 5가지 case가 각각 차지하는 비율을 표 6의 위에서부터
Figure 112018088932126-pat00173
로 가정할 때, 아래 수학식 12와 같이 나타낼 수 있다.
[수학식 12]
Figure 112018088932126-pat00174
이를 바탕으로 앞부분의 HDD의 복잡도와 동일한 조건에서 연산별 relative complexity를 Chase-Pyndiah algorithm의 연산량을 기준으로 나타내면 그 결과는 도 9 내지 도 12와 같다.
도 9 내지 12를 살펴보면, 4가지 다른 길이를 가지는 component code에 의해 구성된 BTC 에서 공통적으로 본 발명의 알고리즘(Proposed algorithm)이 신드롬 기반 알고리즘에 비해 4가지 연산 모두에서 월등히 낮은 복잡도를 가진다는 것을 보여준다. 특히 본 발명은 4가지 연산 중 비교 연산 측면에서 나머지 3가지 연산에 비해 복잡도 개선효과가 가장 큼을 알 수 있다. 마지막으로 3.5 dB를 기준으로 (32,26,4) 확장 해밍 코드를 component code로 가지는 본 발명에서 비교 연산(comparator operation) 복잡도는 Chase-Pyndiah 에 비해 10배, 신드롬 기반 알고리즘에 비해서는 2.5배의 감소 효과를 가진다.
다음으로 BER 성능을 기준으로 비교하기로 한다.
성능 평가를 위하여 우리는 IEEE 802.16 표준에 있는 확장 해밍부호를 적용한 BTC를 사용하였다. 실험을 위하여 LRB의 수는 4개, 반복복호 횟수는 4회로 각각 제한하였다. 또한 m번째 반복 복호 과정에서 사용되는 보정 인자 값은
Figure 112018088932126-pat00175
,
Figure 112018088932126-pat00176
을 사용하였다. 그리고 오류가 없는 경우에 사용되는 인자 값
Figure 112018088932126-pat00177
Figure 112018088932126-pat00178
Figure 112018088932126-pat00179
의 두 배 값을 사용하였으며 단일 오류를 가질 때 사용되는
Figure 112018088932126-pat00180
Figure 112018088932126-pat00181
의 1.5배 값을 적용하였다. 성능 분석은 공통적으로 AWGN, BPSK modulation 상황에서 수행하였다.
도 13은 본 발명(Proposed algorithm)과 종래 복호 알고리즘들을 (32,26,4), (64,57,4), (128,120,4), (256,247,4) 확장 해밍 코드를 component code로 가지는 BTC에 적용한 후 얻은 BER 성능을 보여준다. 그리고 이때, 종래 신드롬 기반 알고리즘에 적용하는 신뢰도 인자
Figure 112018088932126-pat00182
는 동등한 비교를 위해 본 발명의 알고리즘과 동일한
Figure 112018088932126-pat00183
의 2배의 값을 적용하였다.
이를 기반으로 한 실험 결과를 통해서 저 복잡도를 가지는 본 발명이 종래 알고리즘과 거의 동일한 BER 성능을 가짐을 알 수 있다. 또한 component code의 길이가 길어질수록 본 발명(proposed algorithm)은 conventional Chase-Pyndiah algorithm에 비해 점차 좋은 성능을 가짐을 알 수 있다. 이는 Chase-Pyndiah algorithm에서 외부 정보(extrinsic information)을 구할 때, 후보 코드워드가 존재하는 bit는 HDD이 일어날 수 있는
Figure 112018088932126-pat00184
개 bit의 위치, p개 LRBs의 위치, extended bit의 위치1 곳을 합한 최대
Figure 112018088932126-pat00185
개로 고정된다. 따라서 component code의 길이가 길어질수록 정확도가 떨어지는 후보 코드워드가 존재하지 않을 때의 외부 정보를 이용하는 비율이 증가하기 때문에 Chase-Pyndiah algorithm의 성능은 component code의 길이가 길수록 나머지 algorithm에 비해 저하된다.
도 14는
Figure 112018088932126-pat00186
BTC에서 Proposed algorithm과 다음 4가지 다른 복호 알고리즘의 성능을 비교한 것이다. Proposed algorithm을 제외한 나머지 4가지의 알고리즘은 앞서 복잡도 부분에서 소개한 것과 동일한 scheme이다. 성능 비교를 통하여 우리는 Max. HDD를 제외한 나머 지 4가지 algorithm은 거의 비슷한 성능을 가짐을 확인할 수 있었다. 그리고 여기서 Max. HDD의 성능 손실은 single error로 감지되는 부분을 전부 HDD을 수행하기 때문에 발생하며 그 원인은 다음과 같다. single error로 판정된 경판정 벡터(hard decision vector)중 일부는 1bit보다 더 많은 수의 에러를 포함할 수 있는데 이때, HDD을 하면, 잘못된 bit의 위치에서 에러 정정을 수행하게 되므로 이로 인해 성능 손실이 생겨난다. 이 문제 해결을 위하여, proposed algorithm에서는 2가지 condition을 적용하였으며, 이를 통해 가장 좋은 성능을 가지는 신드롬 기반 알고리즘과 거의 일치하는 BER 성능을 얻을 수 있음을 시뮬레이션 결과를 통해 파악할 수 있다.
한편, 본 발명은 복호 복잡도를 개선하기 위해 확장 해밍 코드의 신드롬이 입력 벡터를 3 종류의 에러 유형으로 감지하는 특징을 활용하여 single error를 가진 것으로 추정되는 입력 벡터의 복호 기법으로 저 복잡도의 HDD기반의 HISO 알고리즘을 적용한다. 하지만, Single error로 감지되는 모든 입력 벡터에 HDD을 적용할 경우, 일부 다중 에러를 포함한 입력 벡터의 존재로 인해 성능 손실이 발생한다. 이를 해결하기 위하여 single error로 감지되는 입력 벡터 중 single error와 다중 error를 가진 경우를 분류할 수 있는 2가지 조건(condition)을 차례로 적용하고, 각 condition의 만족 여부에 따라 SISO algorithm과 HISO algorithm을 구분 적용함으로써, 성능 손실 없이 SISO algorithm의 사용 횟수를 줄일 수 있다.
또한, 신드롬이 non-zero인 것 중 HISO algorithm으로 복호하지 못하는 부분은 Chase-Pyndiah algorithm을 적용하는데 이 과정에서 고려되는
Figure 112018088932126-pat00187
개의 후보 코드워드 중 중복되거나 불필요한 절반의 코드워드를 제거하여 HDD의 적용 횟수를 절반으로 줄일 수 있다. 이를 통하여 본 발명은 종래 복호 알고리즘과 비교하였을 때, 성능 열화없이 복호 복잡도는 크게 개선할 수 있는 효율적인 복호 알고리즘임을 알 수 있다.
지금까지 참조한 도면과 기재된 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 복호 장치
110 : 경판정부
120 : 신드롬 연산부
130 : 복호부
140 : 제1 복호부
150 : 제2 복호부
160 : 제3 복호부

Claims (13)

  1. 현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력하는 경판정부(hard decision);
    상기 경판정 벡터에 대해 신드롬 연산을 수행하고, 상기 신드롬 연산 결과에 기초하여 상기 경판정 벡터의 에러 유형(error type)을 판단하는 신드롬 연산부; 및
    상기 에러 유형에 따라 미리 설정된 복호 알고리즘(decoding algorithm)을 선택하여 복호를 수행하는 복호부
    를 포함하되,
    상기 에러 유형은 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나를 포함하고,
    상기 복호부는 상기 에러 유형이 에러 없음인 경우 또는 단일 에러인 경우, 서로 다른 복호 알고리즘을 적용하여 복호 처리하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  2. 제1항에 있어서,
    상기 현재 입력값은,
    수신 신호값 - 채널을 통과하여 입력된 수신 신호 정보인 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  3. 제1항에 있어서,
    상기 신드롬 연산부는,
    상기 경판정 벡터와 기 설정된 패리티 검사 행렬을 곱하여 신드롬 벡터를 계산하고, 상기 신드롬 벡터에 기초하여 상기 경판정 벡터에 대한 에러 없음, 단일 에러, 더블 에러 중 적어도 하나의 에러 유형을 판단하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  4. 제1항에 있어서,
    상기 복호부는,
    상기 에러 유형이 에러 없음인 경우, SISO(Soft Input Soft Output) 복호 알고리즘을 적용하여 복호 처리를 수행하는 제1 복호부;
    단일 에러인 경우, 더블 에러의 존재 여부에 따라 HISO(Hard Input Soft Output) 복호 알고리즘 또는 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 제2 복호부; 및
    더블 에러인 경우, 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 제3 복호부를 포함하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  5. 제4항에 있어서,
    상기 제1 복호부는,
    상기 경판정 벡터를 코드워드로 선택하고, 상기 경판정 벡터에 기초하여 외부 정보(extrinsic information)를 산출하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  6. 제4항에 있어서,
    상기 제2 복호부는,
    더블 에러(double error)의 존재 유무를 판단하는 더블에러 체크모듈; 및
    상기 더블에러 체크모듈의 판단결과, 더블에러 존재 여부에 따라 HISO 복호 알고리즘 또는 변형된 SISO 복호 알고리즘을 수행하는 복호모듈을 포함하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  7. 제6항에 있어서,
    상기 복호모듈은,
    더블 에러가 존재하지 않는 경우, 다음 반복 복호 수행 전에 HISO 복호 알고리즘을 통해 해당 단일 에러를 정정하는 제1 복호모듈; 및
    더블 에러가 존재하는 경우, 일정 개수의 LRB(Least Reliable Bits)의 위치를 찾고, 상기 LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 동일한 경우 HISO 복호 알고리즘을 사용하고, 두 위치가 동일하지 않은 경우 변형된 SISO 복호 알고리즘을 사용하는 제2 복호모듈을 포함하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  8. 제4항에 있어서,
    상기 변형된 SISO 복호 알고리즘은,
    P개(p는 자연수임)의 LRB(Least Reliable Bits) 위치에 의해
    Figure 112019074877939-pat00188
    개의 후보 코드워드를 생성하고, 상기 후보 코드워드 중에서 중복 또는 불필요한 코드워드를 제거한 후, 최소 유클리드 거리 계산으로 ML(maximum likelihood) 코드워드를 결정하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 장치.
  9. 복호 장치가 신드롬 기반으로 복호하는 방법에 있어서,
    현재 입력값에 대해 경판정을 수행하여 경판정 벡터를 출력하는 단계;
    상기 경판정 벡터에 대해 신드롬 연산을 수행하고, 상기 신드롬 연산 결과에 기초하여 상기 경판정 벡터의 에러 유형(error type)을 판단하는 단계; 및
    상기 에러 유형에 따라 미리 설정된 복호 알고리즘을 선택하여 복호를 수행하는 단계를 포함하되,
    상기 에러 유형은 에러 없음(no error), 단일 에러(single error), 더블 에러(double error) 중 적어도 하나를 포함하고,
    상기 복호를 수행하는 단계에서,
    상기 에러 유형이 에러 없음인 경우, SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 방법.
  10. 제9항에 있어서,
    상기 에러 유형(error type)을 판단하는 단계는,
    상기 경판정 벡터와 기 설정된 패리티 검사 행렬을 곱하여 신드롬 벡터를 계산하는 단계; 및
    상기 신드롬 벡터에 기초하여 상기 경판정 벡터에 대한 에러 없음, 단일 에러, 더블 에러 중 적어도 하나의 에러 유형을 판단하는 단계를 포함하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 방법.
  11. 삭제
  12. 제9항에 있어서,
    상기 복호를 수행하는 단계에서,
    상기 에러 유형이 단일 에러인 경우,
    더블 에러(double error)의 존재 유무를 판단하는 단계;
    더블 에러가 존재하지 않는 경우, 다음 반복 복호 수행 전에 HISO 복호 알고리즘을 통해 해당 단일 에러를 정정하고, 더블 에러가 존재하는 경우, 일정 개수의 LRB(Least Reliable Bits)의 위치를 찾고, 상기 LRB 위치와 HISO 복호를 통해 정정되는 단일 비트의 위치를 비교하여, 두 위치가 동일한 경우 HISO 복호 알고리즘을 사용하고, 두 위치가 동일하지 않은 경우 변형된 SISO 복호 알고리즘을 사용하는 단계를 포함하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 방법.
  13. 제9항에 있어서,
    상기 복호를 수행하는 단계에서,
    상기 에러 유형이 더블 에러인 경우, 변형된 SISO 복호 알고리즘을 적용하여 복호 처리를 수행하는 것을 특징으로 하는 저복잡도 신드롬 기반 복호 방법.
KR1020180106785A 2018-09-07 2018-09-07 저복잡도 신드롬 기반 복호 장치 및 그 방법 KR102045437B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180106785A KR102045437B1 (ko) 2018-09-07 2018-09-07 저복잡도 신드롬 기반 복호 장치 및 그 방법
US16/233,645 US10917120B2 (en) 2018-09-07 2018-12-27 Low-complexity syndrom based decoding apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180106785A KR102045437B1 (ko) 2018-09-07 2018-09-07 저복잡도 신드롬 기반 복호 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR102045437B1 true KR102045437B1 (ko) 2019-12-02

Family

ID=68847745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180106785A KR102045437B1 (ko) 2018-09-07 2018-09-07 저복잡도 신드롬 기반 복호 장치 및 그 방법

Country Status (2)

Country Link
US (1) US10917120B2 (ko)
KR (1) KR102045437B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102092476B1 (ko) * 2018-10-26 2020-03-23 고려대학교 산학협력단 블록 터보 부호의 신드롬 기반 복호 방법 및 장치
CN117321934A (zh) 2021-07-04 2023-12-29 迈凌有限公司 具有2阶fec保护的pmd到tc-mac接口

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060103777A (ko) * 2005-03-28 2006-10-04 엘지전자 주식회사 고속의 터보 곱 복호방법
KR20140071169A (ko) 2012-12-03 2014-06-11 한국전자통신연구원 저전력 옥외 광역 통신을 위한 코드분할다중화 정진폭 부호화 장치 및 방법
KR20180053700A (ko) * 2015-09-14 2018-05-23 퀄컴 인코포레이티드 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656107A (en) * 1970-10-23 1972-04-11 Ibm Automatic double error detection and correction apparatus
US3745525A (en) * 1971-12-15 1973-07-10 Ibm Error correcting system
US4077565A (en) * 1976-09-29 1978-03-07 Honeywell Information Systems Inc. Error detection and correction locator circuits
US4464753A (en) * 1981-12-30 1984-08-07 International Business Machines Corporation Two bit symbol SEC/DED code
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US6009552A (en) * 1997-06-18 1999-12-28 Motorola, Inc. Soft-decision syndrome-based decoder for convolutional codes
US6182264B1 (en) * 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US6463563B1 (en) * 1999-11-30 2002-10-08 International Business Machines Corporation Single symbol correction double symbol detection code employing a modular H-matrix
US7117418B2 (en) * 2000-09-11 2006-10-03 Comtech Aha Corporation Soft input-soft output forward error correction decoding for turbo codes
US6978415B1 (en) * 2001-11-27 2005-12-20 Maxtor Corporation Variable redundancy cyclic code encoders
JP2006179131A (ja) * 2004-12-22 2006-07-06 Fujitsu Ltd メモリシステム及び半導体記憶装置
US7653862B2 (en) * 2005-06-15 2010-01-26 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US20070150798A1 (en) * 2005-12-12 2007-06-28 Jia-Horng Shieh Method for decoding an ecc block and related apparatus
US8261165B2 (en) * 2008-11-14 2012-09-04 Silicon Laboratories Inc. Multi-syndrome error correction circuit
WO2011142133A1 (ja) * 2010-05-11 2011-11-17 エイシップ・ソリューションズ株式会社 誤り訂正符号処理方法及びその装置
US10243590B1 (en) * 2015-09-17 2019-03-26 Amazon Technologies, Inc. Detection of errors in a ternary content addressable memory
US9787329B2 (en) * 2015-10-15 2017-10-10 Apple Inc. Efficient coding with single-error correction and double-error detection capabilities
US10707899B2 (en) * 2017-08-31 2020-07-07 SK Hynix Inc. Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060103777A (ko) * 2005-03-28 2006-10-04 엘지전자 주식회사 고속의 터보 곱 복호방법
KR20140071169A (ko) 2012-12-03 2014-06-11 한국전자통신연구원 저전력 옥외 광역 통신을 위한 코드분할다중화 정진폭 부호화 장치 및 방법
KR20180053700A (ko) * 2015-09-14 2018-05-23 퀄컴 인코포레이티드 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더

Also Published As

Publication number Publication date
US10917120B2 (en) 2021-02-09
US20200083911A1 (en) 2020-03-12

Similar Documents

Publication Publication Date Title
KR101473046B1 (ko) 반복 복호기들을 위한 개선된 터보-등화 방법들
US6381726B1 (en) Architecture for soft decision decoding of linear block error correcting codes
US8127216B2 (en) Reduced state soft output processing
JP5432367B2 (ja) 書込み検証を使用した符号のエラーフロア軽減
US8341506B2 (en) Techniques for correcting errors using iterative decoding
US10218388B2 (en) Techniques for low complexity soft decoder for turbo product codes
US20090132894A1 (en) Soft Output Bit Threshold Error Correction
US9053047B2 (en) Parameter estimation using partial ECC decoding
JP3811699B2 (ja) 符号分割多重接続移動通信システムのエラー訂正装置及び方法
Holzlohner et al. Evaluation of the very low BER of FEC codes using dual adaptive importance sampling
US10090865B2 (en) Performance optimization in soft decoding of error correcting codes
US8081719B2 (en) Method and system for improving reception in wired and wireless receivers through redundancy and iterative processing
KR102045437B1 (ko) 저복잡도 신드롬 기반 복호 장치 및 그 방법
KR20140138080A (ko) 코드의 워드들의 확장된 스펙트럼의 분석에 의해, 정정 코드, 예를 들면, 터보 코드를 디코딩하는 방법
US11177834B2 (en) Communication method and apparatus using polar codes
JP4053002B2 (ja) 格子暗号およびマルチレベル剰余型暗号を復号する方法および装置
US20170279463A1 (en) Techniques for low-latency chase decoding of turbo product codes with soft information
Ahn et al. Low complexity syndrome-based decoding algorithm applied to block turbo codes
US6614858B1 (en) Limiting range of extrinsic information for iterative decoding
WO2020011761A1 (en) Soft-aided decoding of staircase codes
US7117418B2 (en) Soft input-soft output forward error correction decoding for turbo codes
KR101630114B1 (ko) 최소합 알고리즘을 이용한 ldpc 복호화 장치 및 방법
US11184035B2 (en) Soft-input soft-output decoding of block codes
US7984367B1 (en) Method for iterative decoding in the presence of burst errors
KR101484066B1 (ko) 엘디피시 부호의 디코딩 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant