KR20190021159A - 그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법 - Google Patents

그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법 Download PDF

Info

Publication number
KR20190021159A
KR20190021159A KR1020180090909A KR20180090909A KR20190021159A KR 20190021159 A KR20190021159 A KR 20190021159A KR 1020180090909 A KR1020180090909 A KR 1020180090909A KR 20180090909 A KR20180090909 A KR 20180090909A KR 20190021159 A KR20190021159 A KR 20190021159A
Authority
KR
South Korea
Prior art keywords
error
algorithm
basis
grs
syndrome
Prior art date
Application number
KR1020180090909A
Other languages
English (en)
Other versions
KR102573306B1 (ko
Inventor
공준진
야론 샤니
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20190021159A publication Critical patent/KR20190021159A/ko
Application granted granted Critical
Publication of KR102573306B1 publication Critical patent/KR102573306B1/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/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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • 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/1515Reed-Solomon 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/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/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • 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/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • 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)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

그뢰브너 기저를 이용한 고속 체이스 디코딩 방법이 개시된다. 본 개시에 따른 특정 용도 집적 회로(Application Specific Integrated Chip;ASIC)에 의해수행되는 일반화된 리드-솔로몬(Generalized Reed-Solomon;GRS) 코드의 고속 체이스 디코딩 방법은, 통신 채널을 통해 상기 ASIC로부터 수신한 GRS 코드 워드에 대한 경 판정 디코딩(Hard Decision Decoding)을 실패하는 경우, 신드롬 기반 경 판정 알고리즘(Syndrom-based Hard Decision algorithm)의 출력 값을 이용하여 키 방정식의 솔루션 모듈에 대한 초기 그뢰브너 기저(G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )})를 계산하는 단계, 인접하는 에러 위치를 위한 그뢰브너 기저(G + )를 찾기 위해, 복수의 신뢰할 수 없는 좌표들에 있어서, 다음 약 좌표를 연결시키기 위해 에러 패턴들에 대응하는 꼭지점들 및 에러 패턴과 추가적인 값을 갖는 자식 에러 패턴을 연결하는 선들을 포함하는 에러 패턴의 트리를 탐색하는 단계 및 올바른 에러 벡터(
Figure pat00380
)가 발견된 경우, 예측된 전송 코드 워드(
Figure pat00381
)를 출력하는 단계를 포함할 수 있다.

Description

그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법{FAST CHASE DECODING METHOD OF GENERALIZED REED-SOLOMON CODES USING GROEBNER BASIS}
본 개시의 기술적 사상은 에러 정정 코드를 형성하는 방법에 관한 것이다.
코딩 이론에서, 일반화 된 리드 솔로몬(Generalized Reed-Solomon; GRS) 코드는 유한 필드를 사용하여 구성된 에러 정정 코드(Error Correting code ECC)의 클래스를 형성한다. GRS 코드는 다음과 같이 정의할 수 있다. q를 선행 힘이라고하고, Fq를 q를 요소로 하는 유한 필드라고 할때, 길이 n : = q-1이고, 설계된 거리 d∈N, d≥2 인 프리미티브 GRS 코드 C를 고려할 수 있다. RM Roth, Introduction to Coding Theory (Cambridge University Press, 2006)의 섹션 5.1에서 정의된 가장 일반적인 GRS 코드는 프리미티브 GRS 코드를 단축시킴으로써 획득할 수 있고, 상술한 RM Roth, Introduction to Coding Theory (Cambridge University Press, 2006)는 그 전체 내용이 참조로써 여기에 통합된다. 따라서, 프리미티브 GRS 코드만을 고려할 때에도 일반성이 손실되지 않는다.
Figure pat00001
을 0이 아닌 원소의 벡터라고 하자. 벡터
Figure pat00002
에 있어서, 벡터
Figure pat00003
라고 하면,
Figure pat00004
Figure pat00005
가 어떤 고정 프리미티브에 대해 루트로써 1, α, ..., αd -2를 갖는 모든 벡터
Figure pat00006
의 집합으로 정의된다. 여기서, (-⊙-)는 다항식의 계수 배 곱셈을 나타낸다. 예를 들어,
Figure pat00007
Figure pat00008
에 있어서,
Figure pat00009
로 나타낼 수 있고,
Figure pat00010
일 수 있다. GRS 코드는 코드 설계 중에 코드로 수정할 수 있는 심볼 에러 및 삭제된 심볼의 개수를 정밀하게 제어 할 수 있다. 특히, 다중 심볼 에러 및 다중 삭제된 심볼들을 정정 할 수있는 GRS 코드를 설계하는 것이 가능하다. GRS 코드는 또한 신드롬 디코딩 (syndrome decoding)으로 알려진 대수적 방법을 사용하여 쉽게 디코딩 될 수 있다. 이렇게 하면 소형의 저전력 전자 하드웨어를 사용하여 이러한 코드 용 디코더 설계를 단순화 할 수 있다.
수신 된 코드 워드의 신드롬은 y = x + e 이고, 여기서 x는 전송 된 코드 워드이고 e는 오류 패턴이다. 선형 코드 C의 패리티 검사 행렬은 이중 부호 C의 생성 메트릭스이고, 이중 부호 C는 행렬-벡터 곱 Hc = 0이면 코드 워드 c가 C에 있음을 의미한다. 그러면 수신된 단어 y = x + e의 신드롬은 S = Hy = H (x + e ) = Hx + He = 0 + He = He로 정의될 수 있다. GRS 코드의 경우 특정 패리티 검사 행렬에 해당하는 신드롬으로 작업하는 것이 유용하다.
Figure pat00011
에 대해,
Figure pat00012
라고 할 때, y와 관련된 신드롬 다항식은
Figure pat00013
로 나타낼 수 있다. GRS 코드의 정의에 의해, 동일한 신드롬 다항식은 상기 e와 관련된다. 신드롬의 관점에서, GRS 코드를 복호화하는 주요 계산은 키 방정식으로 알려진 다음 방정식을 만족하는 다항식
Figure pat00014
를 결정하는 것일 수 있다.
Figure pat00015
여기서
Figure pat00016
는 신드롬 다항식이고, X는 다항식의 자유 변수이고,
Figure pat00017
Figure pat00018
로 정의되는 오류 평가 다항식(Error Evaluator Polynomial;EEP)이다.
Figure pat00019
Figure pat00020
로 정의되는 오류 위치 다항식(Error Locator Polynomial; ELP)이다. 여기서
Figure pat00021
은 에러의 수,
Figure pat00022
는 오류 위치 지정자, 즉 오류의 위치를 가리키는 필드 요소,
Figure pat00023
는 해당 오류 값이고
Figure pat00024
Figure pat00025
에 있어서,
Figure pat00026
를 만족한다.
BM(Berlekamp-Massey) 알고리즘은 S(X)C(X)에서
Figure pat00027
(L은 알고리즘에 의해 발견된 에러의 수이고, N=d-1은 전체 신드롬의 수, Si는 모든 i에 대한 신드롬 다항식 S(X)에서의 Xi의 계수이고, k는 L에서 (N-1)까지의 범위의 인덱스)에 대해서 Xk에 대한 계수가 0이 되도록 추정된 ELP C(X) = 1 + C1X + C2X2 + ... + CLXL을 찾는 GRS 코드를 해독하는 알고리즘이다. 일단 디코더가 ELP의 추정치를 가지면, 키 방정식에 의해 EEP의 추정치를 계산할 수 있다. 또한, ELP와 EEP를 모두 가짐으로써, 디코더는 다음과 같은 방법으로 에러 위치 지정자와 에러 값, 따라서 에러 벡터 e 자체를 찾을 수 있다. 에러 로케이터는 정의상 EEP 루트의 역 산일 수 있다. 오류 값은 아래 Forney의 공식을 사용하여 찾을 수 있다.
Figure pat00028
여기에서, 다항식
Figure pat00029
에 있어서,
Figure pat00030
미분식에 해당한다.
BM 알고리즘은 C(X)를 1로 초기화하고, L을 0으로 초기화하고, B(X)(L이 갱신된 이후 최종 C(X)의 사본)을 1로 초기화하고, b(L이 갱신되고 초기화 된 이후의 마지막 불일치 d의 사본)을 1로 초기화하고, m(L, B (X) 및 b가 갱신되고 초기화 된 이후의 반복 횟수)을 1로 초기화함으로써 시작한다. 알고리즘은 k = 0에서 N-1까지 반복한다. 알고리즘의 각 제k 반복에서 불일치 d가 아래와 같이 계산된다.
d = Sk + C1Sk - 1 + ... + CLSk -L
d가 0이면, C(X) 및 L은 그 시점에 대해서 올바른 것으로 가정하고, m은 증가시키고, 알고리즘이 계속 진행된다. d가 0이 아니고 2L> k가 아닌 경우, C(X)는 d의 재계산 값이 0이 되도록 조정된다.
C(X) = C(X) - (d/b) Xm B(X).
Xm 값은 b에 해당하는 신드롬들을 따르기 위해 B(X)를 이동시킨다. L에 대한 이전 업데이트가 반복(iteration) j에서 발생했다면, m = k - j이고 재계산 된 불일치 값은 다음과 같다.
d = Sk + C1Sk-1 + ... - (d/b) (Sj + B1Sj-1 + ...).
그 결과, 재계산된 불일치 값이 다음과 같이 바뀔 수 있다.
d = d - (d/b)b = d - d = 0.
그런 다음, m이 증가되고 알고리즘이 계속된다.
반면에, d가 0이 아니고 2L ≤ n이라면 C의 복사본이 벡터 T에 저장되고, C(X)는 위와 같이 조정될 수 있다. B는 T에 기초하여 업데이트되고, L은 (k + 1 - L ), 불일치 값 d는 b로 저장되고, m은 1로 재설정되며, 알고리즘은 계속된다.
Chien 검색은 GRS 코드를 디코딩 할 때 발생하는 ELP와 같이 유한 필드를 통해 다항식의 근원을 결정하는 알고리즘이다. α를 유한 필드의 원시 요소 라하자. Chien의 검색은 발전기의 순서 α0, α1, α2, ...에서 필드의 0이 아닌 원소를 테스트한다. 이러한 방식으로 모든 0이 아닌 필드 요소가 검사된다. 어떤 단계에서 결과 다항식이 0으로 평가되면 연관된 요소는 루트가 된다.
Fq에서 수신 심볼에 대한 하드 정보는 추정 심볼 값, 즉 0,1, α, ..., αq - 2 중 하나이며, "소프트 정보"는 추정값과 추정의 신뢰도 정보를 모두 포함한다 . 이러한 신뢰도 정보는 많은 형태를 취할 수 있지만, 하나의 일반적인 형태는 확률 또는 추정치가 맞는지에 대한 확률의 추정치이고, 수신 된 심볼에 대한 가장 가능성있는 대안 추정치의 Fq의 서브 세트를 더한 것이다. 예를 들어, GRS 코드의 심볼이 QAM (Quadrature Amplitude Modulation) 심볼에 매핑되고 AWGN (Additive White Gaussian Noise) 채널을 통해 전송되는 경우, 수신된 좌표에 가장 가까운 QAM 심볼로부터 전형적인 하드 정보를 얻을 수 있고, 소프트 정보에 대해서는 수신된 좌표와 가장 가까운 QAM 심볼 사이의 거리를 감소시키는 함수에 의해 신뢰도가 획득될 수 있고, 가장 가능성있는 대안 추정치의 Fq의 서브 세트는, 일 예시에서, 제2, 제3, ..., 제M (M≤q) 번째로 수신 된 좌표에 가까운 QAM 기호일 수 있다.
경 판정(hard-decision; HD) 디코딩에서, 하드 정보 벡터(좌표 별 심볼 추정치)는 에러 정정 코드 (ECC) 디코더의 입력으로 사용되는 반면, 연 판정 디코딩에서 소프트 정보 벡터(예를 들어, 좌표 별 신뢰도 벡터 및 신뢰할 수 없는 것으로 간주되는 각 좌표에 대해, 하드 정보 벡터 위에 가장 가능성있는 대안 추정치로 구성된 Fq의 서브 세트)가 ECC 디코더의 입력으로 사용된다.
다른 예시로서, 플래시 메모리 컨트롤러에서 사용될 수있는 일반화된 연쇄 코딩 방식들에 있어서, 행 바이너디 디코더들은 상이한 행들 사이에서 동작하는 GRS 코드들에 대한 추정된 심볼들을 반환 할 수 있다. 이러한 경우, 각 행 바이너리 디코더들은 연 판정(soft-decision; SD) 디코딩이 행간 GRS 코드들에 대한 SD 정보를 초래할 수있는 반면, 각 행 바이너리 디코더는 HD 디코딩의 경우에 단일 추정 된 GRS 심볼 또는 삭제 신호를 출력할 수있다. 각 셀이 단일 비트를 저장하는 단일 레벨 셀(Single Level Cell; SLC) 플래시 메모리의 경우, 단일 판독 (단일 임계 값)으로 열 단위 바이너리 코드에 대한 하드 정보가 획득되는 반면, 증가하며 정제되는 소프트 정보는 추가 독출로부터 획득할 수 있다.
충분한 신뢰도를 가진 심볼은 "강한"것으로 간주 될 수 있지만 나머지 심볼은 "약한"것으로 간주 될 수 있다.
체이스 디코딩은 바이너리 및 비-바이너리 코드 모두를 위한 SD 디코딩을위한 간단하고 일반적인 방법이다. 체이스 디코딩에 관해서는 D. Chase, "채널 측정 정보를 사용하여 블록 코드를 디코딩하는 알고리즘 클래스", IEEE Trans. 알림. 이론, Vol. IT-18, pp.170-182, Jan. 1972에 기재되어 있으며, 그 전체 내용이 본 명세서에 참고로 포함된다. 가장 간단한 형태로, HD 디코딩 실패의 경우, 수신 된 단어의 신뢰할 수있는 좌표와 신뢰할 수없는 좌표를 구별하기 위해 "소프트" 신뢰도 정보가 사용된다. 그런 다음 디코더는 약 좌표의 심볼을 미리 정의 된 목록의 심볼 벡터로 대체한다. 이러한 각각의 대체에 대해, 디코더는 HD 디코딩을 수행한다. 신뢰성 있는 좌표상의 에러의 수가 코드의 HD 디코딩 반경 이상이 아니고, 가정된 대체 벡터가 해밍 거리의 관점에서 비 신뢰적인 좌표상의 전송 벡터에 충분히 가깝다면 HD 디코딩이 성공할 것이다.
단일 좌표에서 다른 두 개의 대체 벡터를 고려할 때, 체이스 디코딩의 단순 적용에서, 이 두 대체 벡터 간의 유사성은 무시되고, HD 디코딩의 두 가지 적용이 요구된다. 빠른 체이스 디코딩에서, 첫 번째 패턴의 HD 디코딩의 중간 결과가 저장되어 거의 동일한 두 번째 패턴의 HD 디코딩의 복잡성을 크게 줄인다.
최근 우 (Wu)는 "리드 - 솔로몬 코드에 대한 고속 체이스 디코딩 알고리즘 및 아키텍처", IEEE Trans. 알림. 이론, vol. 58, no. 이하 Wu2012)에서 HD 디코더 (Reed-Solomon, RS) 코드에 대한 새로운 고속 체이스 디코딩 알고리즘을 도입하였고, 이는 Berlekamp-Massey (BM) 알고리즘을 기반으로 한다. Wu의 알고리즘의 기본 형태는 BM 알고리즘의 여러 애플리케이션을 피할 수 있지만 각 대체 벡터에 대해 Chien 검색과 같은 철저한 루트 검색이 필요하다. 불필요한 Chien 검색을 피하기 위해 Wu는 불필요한 Chien 검색의 가능성을 크게 줄이기위한 중지 기준을 제시한다. 단, 필요한 Chien 검색을 누락시키진 않지만, 성능을 약간 저하시키는 단점이 존재한다. 그러나 Wu의 방법은 개념적으로 복잡하다다. 고려해야 할 8 가지 경우가 있으며, Chien 검색을 피하기위한 대안 방법으로 주파수 도메인에서 작업 할 때 상당한 수정이 필요할 것으로 판단된다. 또한 Wu의 방법은 총 오류 수가 d-1보다 큰 경우 적용이 불가능하다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 신드롬 기반 HD 디코더들에 대한 일반화 된 RS (GRS) 코드들에 대한 새로운 고속 체이스 알고리즘을 제공하는 데 있다.
본 개시의 기술적 사상이 해결하고자 하는 일 과제는 불필요한 첸 (Chien) 검색을 회피하기위한 새로운 중지 기준을 제공하는 새로운 고속 체이스 알고리즘을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 특정 용도 집적 회로(Application Specific Integrated Chip;ASIC)에 의해수행되는 일반화된 리드-솔로몬(Generalized Reed-Solomon;GRS) 코드의 고속 체이스 디코딩 방법은 통신 채널을 통해 상기 ASIC로부터 수신한 GRS 코드 워드에 대한 경 판정 디코딩(Hard Decision Decoding)을 실패하는 경우, 신드롬 기반 경 판정 알고리즘(Syndrom-based Hard Decision algorithm)의 출력 값을 이용하여 키 방정식의 솔루션 모듈에 대한 초기 그뢰브너 기저(G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )})를 계산하는 단계, 인접하는 에러 위치를 위한 그뢰브너 기저(G + )를 찾기 위해, 복수의 신뢰할 수 없는 좌표들에 있어서, 다음 약 좌표를 연결시키기 위해 에러 패턴들에 대응하는 꼭지점들 및 에러 패턴과 추가적인 값을 갖는 자식 에러 패턴을 연결하는 선들을 포함하는 에러 패턴의 트리를 탐색하는 단계 및 올바른 에러 벡터(
Figure pat00031
)가 발견된 경우, 예측된 전송 코드 워드(
Figure pat00032
)를 출력하는 단계를 포함할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 상기 신드롬 기반 경 판정 알고리즘은 베르캄프-메시(Berlekamp-Massey; BM) 알고리즘 및 피츠패트릭(Fitzpatrick) 알고리즘을 포함하는 그룹으로부터 선택되는 것을 특징으로 할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 상기 신드롬 기반 경 판정 알고리즘은 BM 알고리즘이고, 상기 초기 그뢰브너 기저를 계산하는 단계는, 신드롬 다항식(S), 상기 BM 알고리즘에 의해 출력된 예측된 오류 위치 다항식(Error Locator Polynomial;ELP)(
Figure pat00033
), 상기 BM 알고리즘에 있어서 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register;LFSR)의 길이(L)가 변화된 이후 반복 횟수(m), 상기 BM 알고리즘으로부터 출력되고, 상기 LFSR 길이(L)가 업데이트되기 전 상기 ELP(
Figure pat00034
)로부터 복사된 다항식(B)에 있어서, 복수의 다항식들 b 1 :=
Figure pat00035
, 및 b 2 :=
Figure pat00036
을 정의하는 단계 및 (1) b1과 b2의 선행 단항식이 별개의 단위 벡터를 포함하는 경우, 그뢰브너 기저로서 c{b 1, b 2}(c는 0이 아닌 상수), (2) 상기 선행 단항식이 같은 단위 벡터를 포함하고, b1의 선행 단항식이 b2의 선행 단항식보다 큰 경우, 그뢰브너 기저로서 d{b 1 - cX l b 2, b 2,} (
Figure pat00037
,  l
Figure pat00038
및 (3) 선행 단항식이 같은 단위 벡터를 포함하고, b2의 선행 단항식이 b1의 선행 단항식보다 큰 경우, 그뢰브너 기저로서 {d b 1 , d(b 2 - cX l b 1)}(
Figure pat00039
,  l
Figure pat00040
를 출력하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 상기 에러 패턴의 트리를 탐색하는 단계는, 현재 그뢰브너 기저를 구성하는
Figure pat00041
,
Figure pat00042
및 다음 에러 위치(α r )(r은 에러 위치의 개수)에 있어서, 루트 불일치(
Figure pat00043
)(j=0,1)를 계산하는 단계, 집합 J := { j {0, 1}|
Figure pat00044
0 }
Figure pat00046
, g + j := c(g j -
Figure pat00047
g j * ), 일 때, 모든 j J에 대해서, (j
Figure pat00048
)인 경우,
Figure pat00049
(j * J, j
Figure pat00050
)의 선행 단항식은 g j 의 최소 선행 단항식으로 설정하고, j = j * 인 경우, g + j := c (X -
Figure pat00051
)g j * 로 설정하는 단계, g j := g + j (j=0, 1) 로 설정하는 단계, 다음 에러 위치(α r )의 값(β r ),
Figure pat00052
의 미분값(
Figure pat00053
)에 있어서, 미분 불일치
Figure pat00054
Figure pat00055
(j=0,1)를 계산하는 단계 및 집합 J := { j {0, 1}|
Figure pat00056
0 }
Figure pat00057
Figure pat00058
, g + j := c(g j -
Figure pat00059
g j * ) 에 대해서, (j
Figure pat00060
)인 경우, M(g j * )의 선행 단항식을 g j 의 최소 선행 단항식으로 설정하고, j = j * 인 경, g + j := c(X -
Figure pat00061
)g j * 로 설정하는 단계;를 포함하는 것을 특징으로 할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 집합 J := { j {0, 1}|
Figure pat00062
0 }
Figure pat00063
Figure pat00064
또는 집합 J := { j {0, 1}|
Figure pat00065
0 }
Figure pat00066
Figure pat00067
일 때, g + j := g j (j=0,1)로 설정하는 단계를 더 포함하고, g + 0 = (g + 00 , g + 01 ) 및 g + 1 = (g + 10 , g + 11 )는 다음 에러 위치 지정자를 위한 그뢰브너 기저(G+)인 것을 특징으로 할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 j=1에 대해서 상기 루트 불일치가 0이고, 상기 미분 불일치가 0인지 여부를 결정하는 단계 및 j=1에서 상기 루트 불일치 및 상기 미분 불일치가 0으로 결정된 경우, g + j 에 대한 설정을 중단시키는 단계를 포함할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 j*=0일 때마다, 그뢰브너 기저 함수(g00)의 차수가 변수(d0)에 대해서, 1만큼 증가되는지 트래킹하는 단계;를 더 포함할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 두 개의 다항식
Figure pat00068
을 트래킹하는 단계 및 상기 키 방정식을 이용하여
Figure pat00069
(j=0,1)을 계산하는 단계;를 더 포함할 수 있다.
본 개시의 일 측면에 따른 고속 체이스 디코딩 방법은 상기
Figure pat00070
(j=0,1)을 계산하는 단계는, δ := deg(g j1 )이고,
Figure pat00071
의 초기값은 0이고,
Figure pat00072
Figure pat00073
에 대한
Figure pat00074
의 계수이고, result의 초기값은 0에 있어서,
Figure pat00075
(
Figure pat00076
) 및
Figure pat00077
를 계산하고, 저장하는 단계,
Figure pat00078
로 업데이트하는 단계 및 result를 출력하는 단계를 포함하고, 상기 계산하고, 저장하는 단계 및 출력하는 단계는 다음 약 좌표(
Figure pat00079
)를 인접시키는 도중 수행되는 것을 특징으로 할 수 있다.
본 개시의 또 다른 측면에 따른 일반화된 리드-솔로몬(Generalized Reed-Solomon;GRS) 코드의 고속 체이스 디코딩 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 고속 체이스 디코딩 방법은, 통신 채널을 통해 GRS 코드 워드에 대한 경 판정 디코딩(Hard Decision Decoding)을 실패하는 경우, 신드롬 기반 경 판정 알고리즘(Syndrom-based Hard Decision algorithm)의 출력 값을 이용하여 키 방정식의 솔루션 모듈에 대한 초기 그뢰브너 기저(G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )})를 계산하는 단계, 인접하는 에러 위치를 위한 그뢰브너 기저(G + )를 찾기 위해, 복수의 신뢰할 수 없는 좌표들에 있어서, 다음 약 좌표를 연결시키기 위해 에러 패턴들에 대응하는 꼭지점들 및 에러 패턴과 추가적인 값을 갖는 자식 에러 패턴을 연결하는 선들을 포함하는 에러 패턴의 트리를 탐색하는 단계 및 올바른 에러 벡터(
Figure pat00080
)가 발견된 경우, 예측된 전송 코드 워드(
Figure pat00081
)를 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 신드롬 기반 HD 디코더들에 대한 일반화 된 RS (GRS) 코드들에 대한 새로운 고속 체이스 알고리즘은 우(Wu)보다 개념적으로 더 간단하며 각각의 추가 수정 기호에 대해 Koetter 알고리즘의 두 가지 응용 프로그램을 기반으로 할 수 있다. 또한, 새로운 디코더는 다항식과 공식 파생물의 평가 벡터를 추적하여 주파수 도메인에서의 적용에 자동으로 적합할 수 있다.
또한, 본 개시의 일 실시 예에 따른 고속 체이스 알고리즘은 불필요한 첸 (Chien) 검색을 회피하기위한 새로운 중지 기준을 제공할 수 있다. 알고리즘의 실시 예는 Wu의 알고리즘보다 다소 복잡하지만, Wu의 알고리즘과는 대조적으로, 총 에러의 수가 d-1보다 큰 경우에 동작 할 수 있으며, 여기서 d는 디코딩 된 GRS 코드의 최소 거리를 나타낸다.
본 개시의 일 실시예에 따른 고속 체이스 알고리즘은 총 에러 수가 d-1보다 작고 Wu의 알고리즘과 유사한 복잡성을 가질 때 작동할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 오류 위치를 인접시키는 코터의 반복 알고리즘의 순서도이다.
도 2는 본 개시의 예시적 실시예에 따른 일반화 된 리드-솔로몬 코드의 고속 체이스 디코딩 알고리즘의 순서도이다.
도 3은 본 개시의 예시적 실시예에 따른, 일반화 된 리드-솔로몬 코드의 고속 체이스 디코딩을 수행하는 시스템의 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 gj1만이 이용 가능할 때 gj0r -1)을 효율적으로 계산하기위한 알고리즘의 순서도이다.
여기에 기술된 본 발명의 예시적인 실시예는 일반적으로 일반화 된 리드 - 솔로몬 코드의 고속 체이스 디코딩을 수행하는 시스템 및 방법을 제공한다. 실시예들은 다양한 수정들 및 대안적인 형태들에 의해 변형 가능하고, 특정 실시예들은 도면들에서 예로서 도시되고 여기에서 상세히 설명 될 것이다. 그러나, 본 발명을 개시된 특정 형태로 제한하려는 의도는 없으므로, 본 발명은 본 발명의 기술적 사상의 범위 내에있는 모든 변형, 등가물 및 대안을 포함하는 것으로 이해되어야 할 것이다.
1. 개관
본 발명의 실시예들은 일반화 된 리드 - 솔로몬 코드의 고속 체이스 디코딩을위한 베르 캄프 - 메시(Berlekamp-Massey) 알고리즘과 코터 (Koetter) 알고리즘과 같은 신드롬 기반 경 판정 알고리즘의 조합을 사용하므로, 서브 필드 서브 코드의 고속 체이스 디코딩에도 역시 적용될 수 있다. 경 판정 디코딩 실패의 경우에, 본 개시의 일 실시 예에 따른 알고리즘은 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저(Groebner basis)를 찾는 것으로 시작한다. 이 그뢰브너 기저는 Berlekamp-Massey 알고리즘의 기존 출력 또는 Euclidean 알고리즘이나 Fitzpatrick의 알고리즘(P. Fitzpatrick, "주요 방정식", IEEE Trans. Inform. Theory, 41 권, 제 5 호, 1290-1302 페이지, 1995 년 9 월, 그 내용은 본원에 참고 문헌으로 인용 됨, 이하 Fitzpatrick)으로부터 얻을 수 있다. 상기 그뢰브너 기저는, 예를 들어, R. J. McEliece, "Reed-Solomon codes에 대한 Guruswami-Sudan 디코딩 알고리즘", IPN Progress Report, vol. 42-153, May 2003에 개시되어 있으며, 그 전체 내용이 본원에 참고로 인용된다. 이는 트리 기반 체이 스케쥴링으로 이어진다. 수신 된 벡터에서 수정되지 않은 좌표를 수정하면 Koetter의 알고리즘에서 2 개의 업데이트가 발생하며 신드롬을 업데이트 할 필요가 없을 수 있다. 본 개시의 일 실시 예에 따른 알고리즘은 Wu의 알고리즘과 동일한 반복 횟수마다 유한 필드 곱셈을 사용하지만 개념적으로 더 간단할 수 있다.
2. 서두
q를 주요한 힘이라고하고, Fq를 q 요소의 유한 필드라고 할 때, 길이 n:= q - 1이고 설계 거리 d ∈ N*, d ≥ 2 인 프리미티브 일반화 Reed-Solomon (GRS) 코드 C를 고려한다. 여기서 N*는 양의 정수 집합이다. 가장 일반적인 GRS 코드는 기본 GRS 코드를 단축하여 얻을 수 있기 때문에 원시 GRS 코드 만 고려할 때 일반성을 잃지 않는다. 즉,
Figure pat00082
을 0이 아닌 원소의 벡터라고 하면, 벡터 f = (f0, f1, ..., fn-1)
Figure pat00083
에 대해, f(X)를 = f0 + f1X + ... + fn - 1Xn -1
Figure pat00084
라고 할 수 있다. 이제 C
Figure pat00085
은 어떤 고정 된 프리미티브 α
Figure pat00086
에 대해
Figure pat00087
(X)
Figure pat00088
f(X) 가 루트로써 1, α, ..., αd -2를 갖는 모든 벡터 f
Figure pat00089
의 집합으로 정의될 수 있다. 여기서, (- -)는 다항식의 계수 배 곱셈을 의미하고, f(X) =
Figure pat00090
, g(X) =
Figure pat00091
, m := min{r, s} 일 때, f(X) g(X) :=
Figure pat00092
로 정의된다.
핵심 방정식에서, 코드 워드 x∈C가 전송된다고 가정하면, 어떤 에러 벡터 e
Figure pat00093
에 대해서 수신 된 워드가 y : = x + e이다. j ∈ {0, ..., d-2}에 대해 Sj =
Figure pat00094
: = (
Figure pat00095
)(αj)라고 할 때, y와 관련된 신드롬 다항식은 S(y)(X):= S0 + S1X + ... + Sd - 2Xd -2일 수 있다. GRS 코드의 정의에 의해, 동일한 신드롬 다항식은 e와 관련된다.
만약 v
Figure pat00096
가 i
Figure pat00097
{0, ..., n - 1}에 대해서 v(X) = Xi이라고 하면,
Figure pat00098
를 만족하므로, 아래 식이 만족된다.
Figure pat00099
-(1)
따라서, 에러 위치 지시자가 에러 개수인
Figure pat00100
Figure pat00101
에 대해
Figure pat00102
의 거리 요소이고, 대응되는 에러 값이
Figure pat00103
라고 하면, 아래 식이 만족된다.
Figure pat00104
여기에서,
Figure pat00105
Figure pat00106
에 있어서,
Figure pat00107
이다.
에러 위치 다항식
Figure pat00108
(X)
Figure pat00109
Fq[X]를
Figure pat00110
(X) :=
Figure pat00111
로 정의하고, 에러 평가 다항식
Figure pat00112
(X)
Figure pat00113
Fq[X]를
Figure pat00114
(X) :=
Figure pat00115
로 정의하면, 식(1)에 의해
Figure pat00116
= S(y)
Figure pat00117
mod (Xd - 1)가 만족한다. 본 명세서에서, 이 식을 핵심 방정식이라고 부른다.
M0 = M0(S(y)) := {(u, v) F q[X]2 | u = S(y)v mod (Xd -1) }
상기 식을 핵심 방정식의 솔루션 모듈이라고 한다. y의 에러 수가 t := (d-1)/2까지 라고 하면, (ω, σ)는 Fq[X]2에 대해 적절한 단항식 차수에 대한 M0의 최소 요소이다. 사실, v(0)=1 인 유일한 최소 요소는 (u, v) ∈ M0이다. 다음 정의에 따른 단항식 차수는 Fitzpatrick의 r = -1에 대응하는 <r 차수의 특수한 경우이다.
정의 2.1 : Fq[X]2에 대해서 다음과 같은 단항식 차수를 정의한다.
(Xi, 0) <(Xj, 0) iff(if and only if) i <j;
(0, Xi) <(0, Xj) iff i <j;
(Xi, 0) <(0, Xj) iff i ≤ j - 1.
다음의 명제는 Fitzpatrick의 정리 3.2의 특별한 경우이다. 그 증명은 여기에 포함된다. 달리 명시되지 않는 한, LM(u, v)는 위의 단항 차수(<)와 관련한 (u, v)의 주요 항을 나타낸다. 다음의 명제에서 dH (y, x)는 벡터 y와 x 사이의 해밍 거리를 나타낸다.
명제 2.2 : 상술한 표기법을 사용하여 dH(y, x) ≤ t이라고 가정한다. 또한, (u, v) M0(S(y)) / {(0, 0)}은 LM (u, v) ≤ LM (ω, σ)를 만족시킨다고 한다. 그러면 (u, v)= c(ω, σ) = (cω(X), cσ(X))와 같은 스칼라 값 c∈Fq *가 존재한다. 그러므로, (ω, σ)는 v(1) = 1 인 M0에서 유일한 최소 요소 (u, v)이다.
증명. 첫째, d1 + d2 <d-1를 만족시키는 d1, d2 ∈ N와 (), (u, v) ∈ M0(S(y)), gcd(
Figure pat00119
) = 1, deg (u), deg (
Figure pat00120
)≤d1, deg (v), deg (
Figure pat00121
)≤d2 가 존재한다면,
Figure pat00122
를 만족시키는 다항식 f∈Fq[X]가 존재한다. 이를 보이기 위해서는 u ≡ S(y)v mod (Xd - 1)와
Figure pat00123
≡ S(y)
Figure pat00124
mod (Xd - 1)로부터 u
Figure pat00125
=
Figure pat00126
v mod (Xd - 1)이 만족함을 주의한다. 상술한 제약을 고려할 때, 마지막 식은 u
Figure pat00127
=
Figure pat00128
v 를 의미하고,
Figure pat00129
이므로
Figure pat00130
,
Figure pat00131
Figure pat00132
가 유도된다. 이는 상술한 주장을 성립시킨다.
이제,
Figure pat00133
라고 하고, gcd(
Figure pat00134
) = 1이라고 한다. 만약, deg(v)> t ≥ deg(σ)면 명확하게 LM(u, v)> LM(ω,σ) = (0, Xdeg (σ))가 만족한다. 유사하게, deg(u)> t - 1 ≥ deg(σ) - 1이, LM (u, v)> LM (ω, σ)가 만족한다. 따라서, deg(v) ≤ t 및 deg(u) ≤ t - 1이라는 일반성을 잃지 않는다고 가정 할 수 있다. 상술한 주장은 어떤 f∈Fq[X]에 대해 (u,v) = f(ω,σ)임을 보여준다. LM(u,v) ≤ LM(ω,σ)이면, 이것은 f가 상수임을 의미해야 한다. 이것은 또한 LM(u,v) = LM(ω,σ)임을 보여준다.
이전 명제의 유일성이 좀 더 일반적인 결과의 사례라는 것을 기억하는 것도 유용할 것이다.
명제 2.3 : 영역 K와 ℓ∈N*에 대하여, <를 K[X]에 대한 어떤 단항 차수하고 하고, M⊆K[X]를 어떤 K[X]-서브 모듈이라고 한다. f:= (f1(X), ..., f(X)) ∈M/{0}이고 g:= (g1(X), ..., g(X)) ∈ M/{0}이 모두 M/{0}의 최소 주요 단항을 갖는다고 가정한다. 그러면 f = cg를 만족하는 c ∈ K*가 존재한다.
증명. LM(f) = LM(g)이기 때문에 주요 단항이 h := f - cg를 만족하는 상수 c ∈ K*가 존재한다. 가정에 의해, h≠0이고, LM (h) <LM (f)인데, 이는 모순을 구성한다.
3. 주요 결과
실시 예에 따른 관찰은, 상기에서 본 명세서에 통합된 Wu2012의 112 페이지에서 개시된 LFSR 최소화 태스크 A[σi]는 모듈을 정의하지 않으며, 모듈 최소화 태스크로 대체 될 수 있다는 것이다. Wu의 방법에 대한 대안으로써 Koetter의 알고리즘을 사용할 수 있는 가능성은 다음 정리에서 후술한다.
정리 3.1 : r ∈ N, r ≤ n에 대한 서로 다른 α1, ..., αr ∈ Fq * 및 β1, ..., βr ∈ Fq *에 대해서 Mr = Mr(S (y), α1, ..., αr, β1, ..., βr)이 다음 조건을 만족하는 모든 쌍 (u, v) ∈ Fq[X]2의 집합이다.
1. u ≡ S(y)v mod (Xd -1)
2. aj :=
Figure pat00135
이고, αj = αj '를 만족시키는 j'에 대해서, ∀j∈ {1, ..., r}, v(αj -1) = 0 이고 βjajv'(αj -1) = -αu(αj -1)
이면,
1. Mr은 K[X]-모듈이고,
2. dH(y,x)=t+r, α1,.., αr 가 에러 위치들이고, β1,..., βr 는 대응되는에러 값들이면, LM(
Figure pat00136
) = min {LM(u, v)|(u, v) Mr/{0}}를 만족한다.
증명. 분명히 Mr은 Fq-벡터 공간이다. f(X)∈Fq[X]와 (u, v)∈ Mr에 대해, f(u, v)∈Mr가 증명되어야 한다. 분명하게, (fu, fv)가 요구된 사항을 만족시키고 fv는 필요한 루트를 갖는다. 모든 j에 대해, βjaj(fv)'(αj -1) = -αj(fu)(αj - 1)를 증명하는 것이 남아있다.
Figure pat00137
Figure pat00138
두번째 방정식에서 v(
Figure pat00139
)=0이 사용되었고, 세번째 방정식에서, βjajv'(
Figure pat00140
) = -αju (
Figure pat00141
)이 사용되었다.(βjaj≠0)
2. 증명은 r에 대한 귀납법에 의한 것이다. r=0에 대해서, 주장은 단지 명제 2.2와 동일하다. r ≥ 1이라고 가정하고, 주장은 r - 1에 대해서도 적용된다고 가정한다.
Figure pat00142
는 좌표 αr에서 βr을 뺀 값으로 획득할 수 있다고 한다. 또한,
Figure pat00143
:= σ/(1-αrX)라고 하고,
Figure pat00144
에 대한 오류 위치 지정자를
Figure pat00145
Figure pat00146
에 대한 오류 평가자라고 한다. 귀납법 가설에 따르면,
Mr-1 := Mr-1 (
Figure pat00147
, α1, ..., αr -1, β1, ..., βr - 1)에 대해
LM (
Figure pat00148
,
Figure pat00149
) = min {LM (u, v) | Mr-1 ∈(u, v) } - (3)
가 성립한다.
다음의 보조 정리가 유용 할 것이다.
보조 정리. (u, v) ∈ Mr에 대해
Figure pat00150
:= v/(1-αrX)에 대해서, h:= u - βrar
Figure pat00151
를 대입한다. 그러면 (1-αrX) | h(X)가 도출된다. 또한,
Figure pat00152
:= h/(1 αrX)에 대해서, ψ: (u, v) (
Figure pat00153
,
Figure pat00154
)에 대한 매핑은 Mr을 Mr-1로 매핑하고, ψ(ω,σ) = (
Figure pat00155
,
Figure pat00156
)를 만족한다.
보조 정리 증명. v = (1-αrX)
Figure pat00157
이므로 v'= -αr
Figure pat00158
+ (1-αrX)
Figure pat00159
'가 획득된다. 따라서, v'(αr -1) = -αr
Figure pat00160
r -1) 이다.
이런 이유로,
h(
Figure pat00161
) = u(
Figure pat00162
) - β r a r
Figure pat00163
(
Figure pat00164
) = -
Figure pat00165
v'(
Figure pat00166
) - β r a r
Figure pat00167
(
Figure pat00168
) = 0, 이므로, 이는 첫 번째 주장을 입증한다.
두 번째 주장에 대해 먼저
Figure pat00169
= S ( y ) -
Figure pat00170
mod (X d - 1 )이므로,
Figure pat00171
= S ( y )
Figure pat00172
-
Figure pat00173
=
Figure pat00174
(S ( y ) v - β r a r
Figure pat00175
) =
Figure pat00176
(u - β r a r
Figure pat00177
) =
Figure pat00178
이다.
여기서 "≡"는 합동을 의미하고 Xd -1은 (
Figure pat00179
,
Figure pat00180
) 가 Mr-1의 정의에서 요구되는 합동 관계를 만족함을 의미한다. 또한, 모든 j∈ {1, ..., r-1}에 대해 명확하게
Figure pat00181
(
Figure pat00182
) = 0이다. 마지막으로 v' = -a r
Figure pat00183
+ (1- a r X)
Figure pat00184
'를 다시 사용하면 모든 j∈ {1, ..., r-1}에 대해
Figure pat00185
가 만족하고, 이는
Figure pat00186
가 Mr을 Mr-1로 매핑함을 증명한다.
마지막으로,
Figure pat00187
= (
Figure pat00188
- β r a r
Figure pat00189
)/(1 - α r X)와 함께
Figure pat00190
= (
Figure pat00191
,
Figure pat00192
) 이고,
Figure pat00193
=
Figure pat00194
임을 검증하는 것은 간단하다. 즉, ε:= t + r에 대해, a' 1 ,..., a' e 를 에러 로케이터의 배열로 하고, β' 1 ,..., β' e
Figure pat00195
를 대응되는 에러 값으로 하고, a' 1 ,..., a' e 를 벡터
Figure pat00196
의 해당 엔트리라고 한다. 보편성을 잃지 않고 a' e = a r를 만족한다고 가정하면, 따라서 β' e = β r 가 만족한다. 따라서,
Figure pat00197
Figure pat00198
Figure pat00199
Figure pat00200
를 만족한다. 이로써 보조 정리의 증명을 마친다.
정리의 증명으로 돌아가서, 어떤 c
Figure pat00201
에 대해 (u, v) M r v =
Figure pat00202
를 만족하면, LM(u, v) ≥ (0, X deg ( ? )) = LM(
Figure pat00203
)가 만족된다. (u, v) M r \ {0} 은 모든 c 에 대하여 v
Figure pat00204
를 만족시키도록 설정한다. 그러면 모든 c에 대해 ψ(u, v) ≠ c(
Figure pat00205
,
Figure pat00206
) 이므로 하기 식이 만족된다.
LM(ψ(u, v)) > LM(
Figure pat00207
,
Figure pat00208
) = (0, X deg( σ )-1) - (4)
상기 부등식은 귀납법 가정과 명제 2.3에 의해 얻을 수 있다. ?(u, v)의 선행 단항식이가 어떤 j에 대한 형태 (0, Xj)라면 LM(?(u, v)) = (0, X deg ( v )- 1)가 만족되고, 식 (4)는 deg(v) > deg(σ)를 의미하므로 확실히 LM(u, v) > LM(ω, σ)가 만족한다.
그러므로 LM(ψ(u, v)) 은 어떤 j에 대한 형태 (Xj, 0), 즉 , LM(ψ(u, v)) = (X deg(h)-1 , 0)이라고 가정한다. 이 경우, 식 (4)는 deg(h) - 1 > deg(σ) - 2를 암시하고, 즉 deg(h) ≥ deg(σ)를 의미한다. 그러나 h = u - β r a r
Figure pat00209
이므로 u와 v 중 적어도 하나는 deg(σ) 이상의 크기를 가져야 한다. deg(u) ≥ deg(σ) 즉, deg(u) > deg(σ) - 1 일 경우, LM(u, v) > LM(ω, σ) = (0, X deg (?) )를 만족한다. 유사하게, deg(
Figure pat00210
) ≥ deg(σ)이면 deg(v) > deg(σ)이고 다시 LM(u, v) > LM(ω, σ)이다. 이것으로 증명이 완료된다.
정리 3.1의 용어를 사용하여, 쌍 (u(X), v(X))
Figure pat00211
M r- 1 ,에 대해, 실시예는 (u,v)의 r번째 루트 조건이
Figure pat00212
임을 정의한다. 그래서, (u,v)에 대한 루트 조건은 v 만을 포함하고 r번째 미분 조건로써
Figure pat00213
를 포함한다. (u,v)는는 r 번째 루트 조건과 r 번째 미분 조건을 모두 만족하면
Figure pat00214
를 만족한다. Mj에서 Mj +1로 이동할 때, 두 개의 추가 기능이 제로화 된다. 각 Mj가 K[X] - 모듈 인 것으로 이미 입증되었다. 또한 v(
Figure pat00215
) = 0에 대한 (u, v) 쌍의 Mj 교차점은 명확하게 K[X] - 모듈이다. 따라서 각각의 "루트 조건"이 상응하는 "미분 조건" 앞에 온다면 Koetter 알고리즘의 두 반복(iteration)을 사용하여 Mj에 대한 그뢰브너 기저로부터 Mj +1에 대한 그뢰브너 기저로 이동할 수 있다.
비고 : 모든 r에 대해 Mr은 랭크 2가 없다. 첫째, Mr은 K[X]2의 하위 모듈이기 때문에 원칙적인 이상 도메인보다 자유 모듈의 하위 모듈인 2 이하의 등급이 없다. 또한, (X d - 1 (1-α 1 X) ... (1- α r X), 0) 및 (ω, σ) 가 Mr에 있기 때문에, 등급은 적어도 2이다.
4. 체이스 업데이트를 위한 Koetter의 반복(Iteration)
Koetter의 반복에 대한 설명은 아래 부록에 나와 있다. 부록의 용어를 사용하면 현재 상황에서 ℓ = 1이고 이미 언급했듯이 두 가지 유형의 Koetter 반복이 있다. 하나는 루트 조건이고 다른 하나는 미분 조건이다. Wu2012의 알고리즘 1과의 공정한 비교를 위해, 여기에 제시된 Koetter의 반복 버전은 역을 포함합니다. 업데이트 규칙의 오른쪽은 둘 다 Δj *로 나뉩니다. 0이 아닌 상수에 의한 원소의 곱셈은 Groebner 기저를 Groebner 기저로 취합니다.
r번째 루트 반복에서 선형 함수 D는 D(u, v) = v(
Figure pat00216
)와 같이 쌍 (u, v)에 작용하므로 D(X
Figure pat00217
(u, v)) =
Figure pat00218
D(u, v)와 같이 X
Figure pat00219
(u, v)에 작용한다. r번째 루트 반복 이후에 오는 r 번째 미분 반복에서,
D(u, v) = β r a r v'(
Figure pat00220
) + α r u(
Figure pat00221
), 가 성립하므로,
따라서, 또한
D(X
Figure pat00222
(u, v)) = β r a r (Xv)'(
Figure pat00223
) + ? r (Xu)(
Figure pat00224
)
= β r a r
Figure pat00225
v'(
Figure pat00226
) + u(
Figure pat00227
) =
Figure pat00228
D(u, v), 가 성립한다.
두 번째 항등식 및 v(
Figure pat00229
) = 0에서 (Xv)' = Xv ' + v이 사용되었다. 따라서, 루트 조건과 미분 조건의 반복에서 D(u, v) 0이면, D(X
Figure pat00230
(u, v))/D(u, v) =
Figure pat00231
를 만족한다. 따라서, 단일 위치 αr에 대응하는 반복은 다음과 같은 형태를 갖는다.
알고리즘 A : 인접한 오류 위치 α r 에 대한 Koetter의 반복:
도 1은 본 개시의 예시적 실시예에 따른 오류 위치를 인접시키는 코터의 반복 알고리즘의 순서도이다.
입력 : j {0, 1}에 대한 j 번째 단위 벡터를 포함하는 LM(g j )에 있어서, M r-1 (S ( y ), ? 1 ,?, ? r-1 , β 1 ,?, β r - 1 )에 대한 그뢰브너 기저 G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )}.
다음 오류 위치, ? r , 및 해당 오류 값, β r .
출력 : j {0, 1}에 대한 j 번째 단위 벡터를 포함하는 LM(g + j )에 있어서, M r (S ( y ), α 1 , ..., α r , β 1 , ..., β r ) 에 대해 그뢰브너 기저 G + = {g + 0 = (g + 00 , g + 01 )), g + 1 = (g + 10 , g + 11 )}.
도 1의 순서도에 따른 알고리즘에 따르면 아래와 같다.
Initialize stop := true // 단계 101
For type = root, der // 단계 103
If type = der Then // 단계 105
For j = 0, 1, set g j := g + j // initiate with output of root step
For j = 0, 1, calculate // 단계 107
Figure pat00232
stop := stop and 1 == 0)) // 단계 109
if type == der and stop == true, exit
// 단계 111, stopping criteria, described below
Set J := { j {0, 1}|Δj 0 } // 단계 113
If J =
Figure pat00233
Then // 단계 115
For j = 0, 1, set g + j := g j // 단계 117
Exit and process next error pattern
Let j * J be such that LM(g j * ) = min jJ {LM(g j )} // 단계 119
For j J // 단계 121
If j j * Then
Set g + j := g j -
Figure pat00234
g j *
Else // j = j *
Set g + j* := (X -
Figure pat00235
)g j *
단계 121의 j ≠ j* 부분에 관하여, 또 다른 실시예에서는 0이 아닌 상수에 의한 곱셈이 가능하다는 것을 유의한다. 예를 들어,
Figure pat00236
형식의 업데이트도 허용된다.
그뢰브너 기저의 모든 요소에 (아마도 다른) 0이 아닌 상수를 곱하면 그로 브너 기저가 된다. 따라서 알고리즘 A의 출력에 0이 아닌 상수를 곱하면 그뢰브너 기저에 필요한 속성이 추가된다. 또한, 알고리즘 A에서 g + j := g j -
Figure pat00237
g j* 또는 g + j* := (X -
Figure pat00238
)g j * 에 대한 업데이트가 수행되면 각각 g + j := c(g j -
Figure pat00239
g j * ) 또는 g + j* := c'(X -
Figure pat00240
)g j * 로 대체될 수 있고, 여기에서 c, c'는 j에 의존하는 0이 아닌 상수이고, 출력은 여전히 필요한 속성을 가진 그뢰브너 기저가 된다.
단계 101, 단계 109 및 단계 111에서 구현된 고속 체이스 디코딩을 위한 일 실시예에 따른 Koetter 알고리즘에 대한 중지 기준은 다음과 같다. (α1 1
Figure pat00241
, ..., (α r
Figure pat00242
이 올바른 위치의 오류 위치와 해당 오류 값이고, 상술한 바와 같이 r = ε-t라고 가정하면, 오류 위치 지정 다항식은, 최대 0이 아닌 곱셈 상수 까지, 인접한 오류 위치 표시자αr에 대한 Koetter 반복의 미분 단계의 출력인
Figure pat00243
의 두 번째 좌표이다. 그러나 Chien 검색을 수행하는 데 비용이 많이 든다. 그러나 약 좌표 내에서 오류 위치 αr +1이 하나 더 존재한다고 가정하면, 해당 오류 값은 βr +1이다. 다음으로, 본 개시의 일 실시예에 따르면, 루트 단계와 미분 단계에서 (α r +1
Figure pat00244
을 (α 1
Figure pat00245
, ..., (α r
Figure pat00246
, Δ 1 = 1로 인접시킨다. 루트 단계에 대해서는
Figure pat00247
이 ELP
Figure pat00248
의 루트이고, 미분 단계의 경우
Figure pat00249
는 Forney의 공식을 만족한다. 따라서 루트 단계와 미분 단계 모두에 대해 Δ 1 = 0인지 확인하면 중지 기준이 될 수 있다. 그러나, 정확한 에러 위치 다항식이 없더라도, 즉, 거짓 긍정 (false positive) 인 경우에도 루트 단계 및 미분 단계 모두에 대해 Δ 1 = 0이 가능할 수 있다. 상술한 거짓 긍정의 처리 비용은 복잡성이 증가하는 것이다. 그러나 오 탐지율이 1/100 또는 심지어 1/10 인 경우에도 전체적인 복잡성 증가는 무시할 만하며 몬테-카를로 시뮬레이션을 사용하여 이러한 상황에서 신뢰할 수있는 추정을 얻을 수 있다. 일 실시예에 따른 정지 기준의 비용은 ε-t가 r 일 때, 반경 r + 1의 구에 대한 불일치 계산에 대해 하나의 루트 단계(root 단계) 및 절반의(half) 미분 단계를 수행하는 것을 포함한다. 이것은 무차별 적 Chien 검색에 비해 전반적인 복잡성을 감소시킨다. ε-t = r 일 때 약 좌표에서 r + 1 오류가 필요하다. 이 오류는 Chien 검색에 비해 FER을 약간 저하시킨다. 단계 101, 109 및 111에서의 실시 예에 따른 중지 기준의 구현은 예시적이고 비제한적이며, 본 개시의 다른 실시예들은 동일한 결과를 달성하기 위해 상이한 구현을 사용할 수 있음을 이해해야 할 것이다.
다음으로, 일 실시예에 따르면, 몇몇 단순화를 고려한다. 위 체계는 단지 두 개의 다항식이 아니라 두 쌍의 다항식을 유지한다. 위 형태에서 알고리즘은
Figure pat00250
≥2t 인 경우에도 적용된다. 여기서
Figure pat00251
은 총 오류 수이다. Wu의 빠른 체이스 알고리즘에는 2t-1보다 많은 개수의 오류 지원 버전이 없다는 점에 유의해야 한다. 그러나 Wu의 알고리즘이 지원하는
Figure pat00252
≤2t-1이면 그뢰브너 기저의 첫 번째 좌표를 유지할 필요가 없다. 이를 위해 두 가지 질문에 답해야 할 필요가 있다.
1. g j0 (
Figure pat00253
) 은 g j1 만 사용 가능할 때 어떻게 효율적으로 계산 될 수 있는가?
2. g 00 을 유지하지 않고 LM(g 0 )을 어떻게 찾을 수 있는가? (g 0 의 선행 단항식이 왼쪽에 있다는 것을 상기하라)
두 번째 질문에 대해서, 변수 d 0 을 도입하여 g 00 의 차수를 추적한다. j * = 0일 때마다 d 0 을 1만큼 증가시키고 다른 모든 경우에는 d 0 을 변경하지 않는다. 0 J 이지만 0 j * 인 경우, 부록 A에 나타낸 바와 같이 LM(g + 0 ) = LM(g 0 ) 이므로 d 0 은 변경되지 않는다.
도 1의 알고리즘이 루트로부터 리프로의 경로를 따라 임의의 인접한 약 좌표에 대해 호출되고, 이전
Figure pat00254
가 다음
Figure pat00255
이되는 것을 상기하면, 이 해의 일 실시 예에 따른 구현은 도 1의 알고리즘의 임의의 호출 이전에, 트리의 루트에서 d 0 = deg(g 00 ) 이다. 트리 탐색을 실행하는 과정에서 d 0 는 둘 이상의 자식이 있는 꼭지점에 저장되어야하며 해당 꼭지점에서 리프 노드로가는 모든 경로에 대한 초기값으로 사용된다. 단계 105 이후에 LM(g 0 ) =
Figure pat00256
을 정의하는 단계가 수행 될 것이고, 단계 119 후에 만약 j* = 0이면, ++d 0 를 수행하는 갱신 단계가 수행 될 것이다. 리프에 대한 경로를 내려가는 과정에서, 도 1의 알고리즘 이전 어플리케이션의
Figure pat00257
은 알고리즘의 다음 어플리케이션에 대한 초기 값으로 사용되어야 한다.
첫 번째 질문으로 돌아가서, 모든 r과 모든 (u, v)
Figure pat00258
M r (S ( y ), α 1 , ..., α r , β 1 , ..., β r ) 에 대해서, u = S ( y ) v mod (X 2t )이므로 deg(u) ≤ 2t-1이라면 v에서 직접 u(
Figure pat00259
) 를 계산할 수 있다. 그래서 첫 번째 과제는 ε≤ 2t-1이면 r ≤ 2t-1-t = t-1 임을 증명하는 것이다. 그러면, 빠른 체이스 디코딩과 관련된 모든 코터 반복에 대해서 deg(g 10 ) ≤ 2t - 1 및 deg(g 20 ) ≤ 2t - 1을 증명한다. 그러면, Theorem 3.1의 가설이 맞음을 가정할 수 있다.
우선, 명제 2는 Beelen 등의 "Reporter-Based List Decoding and List-Decoding Binary Goppa Codes", IEEE Trans. Vol. 59, No. 6, pp. 3269-3281, 2013 년 6 월 호에 기재되어 있으며, 그 전체 내용이 본원에 참고로 인용되어 있다. 완성도를 위해 부록 B에 증명이 포함되어 있다. 이 점에서 K[X]2의 단항은 단위 벡터 (1, 0)가 포함되어 있으면 왼쪽에 있다고 하고 단위 벡터 (0, 1)가 포함 된 경우 오른쪽에 있다고 할 수 있다.
명제 4.1 : 단항 차수 <에 관하여 M0에 대한 그뢰브너 기저가 {h 0 = (h 00 , h 01 ), h 1 = (h 10 , h 11 )}이라고 하고, h0의 선행 단항식이 왼쪽에 있고, h1의 선행 단항식은 오른쪽에 있다고 가정한다. 그러면, deg(h 00 (X)) + deg(h 11 (X)) = 2t가 된다.
명제 4.1을 사용하면 ε≤ 2t-1 일 때 Koetter 알고리즘의 모든 반복에 대해 deg(g 10 ) ≤ 2t - 1 및 deg(g 20 ) ≤ 2t - 1인 것이 증명 될 수 있다. 증명 전에, 몇 가지 추가 표기법을 소개하는 것이 유용할 것이다.
정의 4.2 : i = 1, ..., r, j ∈ {0, 1} 및 T ∈ {root, der}에 대해서, 인접한 오류 위치(αi)에 대응하는 알고리즘 A의 루트 스텝(T = root)의 값들 및 미분 스텝(T = der)에 대해서 g j (i; T) = (g j0 (i; T), g j1 (i; T)) 및 g + j (i; T) = (g + j0 (i; T), g + j1 (i; T)) 를 사용할 수 있다. 명시적으로, 표기법 g0(i;root)와 g1(i;root)는 인접한 αi에 대한 알고리즘 A의 어플리케이션의 루트 반복 중 입력 변수 g0 및 g1의 값에 해당한다. 유사하게, g0(i;der)와 g1(i;der)는 인접한 αi에 대한 알고리즘 A의 적용의 미분 반복 동안 각각 입력 변수 g0와 g1의 값에 해당한다. 관례 상 {g 0 (1; root), g 1 (1; root)}는 LM(g 0 (1; root))에 대한 M0의 그뢰브너 기저의 왼쪽에 위치하고, L LM(g 1 (1; root))에 대한 그뢰브너 기저의 오른쪽에 위치한다.
명제 4.3 : 정리 3.1의 파트 2의 조건이 성립한다고 가정하자. 모든 i {1, ..., r}, 모든 j {0, 1} and 모든 T {root, der}에 대해서, deg(g j0 (i; T)) ≤ ε and deg(g j1 (i; T))가 성립한다. 여기서 ε = t + r은 총 오류 수이다.
증명. 정리 3.1에 의하면 어떤 j∈ {0,1}과 몇몇
Figure pat00260
에 대한 (ω, σ) =
Figure pat00261
g + j (r; der)가 성립하므로, 따라서 필연적으로 (ω, σ) 의 선행 단항식이 오른쪽에 있기 때문에 일부
Figure pat00262
에 대해서 (ω, σ) =
Figure pat00263
g + 1 (r; der) 이다. 모든 i,j 와 T에 대해서 LM(g + j (i; T)) ≥ LM(g j (i; T))이 참이므로, LM(g 1 (i; T)) ≤ LM(ω, σ) = (0, X e )가 참이어야 한다. 특히, deg(g 10 (i; T)) ≤ ε - 1 및 deg(g 11 (i; T)) ≤ ε이 성립한다.
g 0 (i; T)에 대해서 살펴보면, 모든 i,j 및 T에 대해서 최대 하나의 j {0, 1}에 대한 LM(g + j (i; T)) > LM(g j (i; T))가 성립한다. 또한 j {0, 1} 및 i, T 각각에 대해서 LM(g + j (i; T)) > LM(g j (i; T)), LM(g + j (i; T)) = X LM(g j (i; T))가 참이다. 선행 단항식을 포함하는 좌표인 g 1 (i; T)의 두 번째 좌표의 차수는 i = 1 및 T = root일 때 deg(g 11 (1; root))에서 i = r 및 T = der일 때 deg(σ) = ε 로 증가해야하므로, 아래 식이 성립한다.
|{(i, T)|LM(g + 1 (i; T)) > LM(g 1 (i; T))}| = ε- deg(g 11 (1; root)),
따라서,
|{(i, T)|LM(g + 0 (i; T)) > LM(g 0 (i; T)) }| ≤ 2r - ( ε- deg(g 11 (1; root)))
= deg(g 11 (1; root)) + r - t.
이 성립하고, 모든 i 및 T에 대해서
deg(g 00 (i; T)) ≤ deg(g 00 (r; der)) (LM (on the left) does not decrease)
≤ deg(g 00 (1; root)) + deg(g 11 (1; root)) + r - t
= t + r = ε (by Proposition 4.1).
이다. 결과적으로, g 0 (i; T)의 선행 단항식이 왼쪽에 있으므로, deg(g 01 (i; T)) - 1 < deg(g 00 (i; T)) ≤ ?이 성립하므로, deg(g 01 (i; T)) ≤ ε가 증명된다.
명제 4.3을 사용하면, g j0 (
Figure pat00264
)는 오른쪽 다항식인 g j1 (j {0, 1})만을 유지하면서, 알고리즘 A에서 계산가능하다. 본 개시의 일 실시예에 따르면, g j0 (
Figure pat00265
)를 계산하기 위한 효율적인 O(t) 방법은 아래와 같다.
다항식 v(X) K[X]에 있어서, δ := deg(v) ≤ ε≤ 2t - 1를 가정하고, v(X) = v 0 + v 1 X + ?+ v 2t - 1 X 2t -1 라고 한다. 간단하게, S(X) = S 0 + S 1 X + ? + S 2t - 1 X 2t -1 := S (y) (X)라고 한다. β F q 에 대한 (Sv mod (X 2t )) (β)은 아래와 같이 표현된다.
S 0 v 0 +
( S 0 v 1 + S 1 v 0 )β +
(S 0 v 2 + S 1 v 1 + S 2 v 0 2 + ...
( S 0 v 2t -1 + S 1 v 2t -2 + S 2 v 2t -3 + ? + S 2t - 1 v 0 ) β 2t - 1 . -(5)
j {0, ..., 2t - 1}에 대해서, A j (v, β)를 식(5)에서 j 컬럼의합이라고 하면, A j (v, β) = S j β j (v 0 + v 1 β + ... + v 2t -1- j β 2t -1- j ). 이 성립한다.
만약 2t - 1 - j ≥ δ (= deg(v))이라고 하면, A j (v, β) = S j β j v(β)이 성립하고, βv(X)의 루트 값이기 때문에,
(Sv mod (X 2t ))(β) =
Figure pat00266
-(6)
가 성립한다. 식(6)의 오른쪽에 대한 합은 반복적으로 계산 가능하므로,
Figure pat00267
라고 하면, A j (v, β) = S j
Figure pat00268
가 성립한다.
Figure pat00269
= 0이고, 모든 j {2t - δ-1, ... 2t - 2}에 있어서,
Figure pat00270
. -(7)
가 성립한다.
β 2t 를 계산하려면 O(log2(2t))에 대한 제곱과 곱셈이 필요하다. 사실 이것은 특정 리프에 해당하는 것뿐만 아닌 모든 비의존적인 좌표에 대한 Wu의 트리에서 깊이-우선 검색을 시작하기 전에 한 번에 계산할 수 있다. 그 후에, 식 (6)의 합에 대한 계산에서 식 (7)의 δ 반복의 각각은 2번의 유한 장 곱셈이 필요하다.
Figure pat00271
/β 2t 로부터
Figure pat00272
/β 2t 까지 이동하는 두 번과 누적 합을 더하기 전 S j +1 에 의해 곱해지는 한번이다. 그러면, 누적 합을 계산한 이후, β 2t 에 의한 추가 곱셈이 필요하다.
도 4는 본 개시의 예시적 실시예에 따른, 제1 질문에 대한 대답을 위한 알고리즘의 순서도이다. 일 실시예에 따른 알고리즘은 도 4의 단계들을 참조한다.
도 1의 알고리즘을 시작하기 전에,
모든 약 좌표
Figure pat00273
에 대해서,
Figure pat00274
를 계산하고 저장한다(단계 40). 도 1의 약 좌표 αr -1에 대해서, 도 1의 알고리즘을 수행한다(단계 41). 다음 약 좌표
Figure pat00275
를 인접시킬 때,
Figure pat00276
에 대한 어떤 선택에 대해서, type == der 인 경우에 아래와 같은 단계를 수행한다(단계 42). v= g j1 β =
Figure pat00277
에 대해서,
Figure pat00278
, 
Figure pat00279
Figure pat00280
Figure pat00281
로 초기화하고, Result =0으로 초기화 한다(단계43).
Figure pat00282
에 대해서,
Figure pat00283
을 계산하고 저장한다(
Figure pat00284
Figure pat00285
계수이다.).
Figure pat00286
를 업데이트 한다(S k+1 는 신드롬 다항식의 계수이다.)(단계 44).
Figure pat00287
를 업데이트 한다(
Figure pat00288
는 첫번째 스텝에서 전 계산된 값이다.)(단계 45).
Figure pat00289
를 출력한다(
Figure pat00290
j==0, 1에 대한
Figure pat00291
값이다.)(단계 46). 단계 41로 돌아가서 도 1의 알고리즘을 다음 약 좌표에 대해서 모든 약 좌표가 완료될 때까지 반복한다(단계 47).
5. 고속 체이스 디코딩
도 2는 본 개시의 예시적 실시예에 따른 일반화 된 리드-솔로몬 코드의 고속 체이스 디코딩 알고리즘의 순서도이다. 위와 같이 길이 n := q - 1의 프리미티브 일반화 된 리드 솔로몬 (GRS) 코드 C
Figure pat00292
를 고려한다. q는 주요 힘이고, 설계 거리 d
Figure pat00293
N*, d ≥ 2 및 F q 는 q 요소의 유한 필드이다. 전송 된 GRS 코드 워드 x∈C, GRS 코드 C이고, 에러 벡터 e에 있어서, 수신 된 코드 워드 y = x + e가 주어진다면, 디코딩 알고리즘은 단계 20에서 채널 출력 y로부터 신드롬 다항식
Figure pat00294
Figure pat00295
을 계산함으로써 시작할 수 있고, 단계 21에서 입력 S ( y )(X)에 신드롬 기반 경판정 알고리즘을 적용함으로써 추정 된 오류 위치 확인자 다항식(ELP) σ(X) :=
Figure pat00296
을 찾을 수 있다. 예시적인 신드롬 기반 경판정 알고리즘은 Berlekamp-Massey (BM), Fitzpatrick 's 알고리즘 및 Euclidean 알고리즘을 포함하지만 이에 국한되지는 않는다.
다음으로, 단계 22에서, 신드롬 기반의 경 판정 알고리즘이 t까지의 가중치의 에러 벡터를 발견하는데 성공했는지를 검사한다. 여기서, t는 GRS 코드의 에러 보정 반경, 즉
Figure pat00297
이다. 신드롬 기반 경 판정 알고리즘이 BM 알고리즘 인 경우, BM 알고리즘의 출력을 쌍
Figure pat00298
으로 만드는 것이 하나의 방법이며, 여기서
Figure pat00299
는 추정된 ELP이고, L은 BM 알고리즘에서 계산 된 LFSR 길이이다. 또한, deg(
Figure pat00300
) = L 이고,  
Figure pat00301
F q 에서 L 개의 별개의 루트를 갖는 경우 다음과 같은 조건이 충족되면 해독이 성공한다.
단계 28에서 HD 디코딩이 성공적이면, 추정된 에러 위치를 추정 된 ELP
Figure pat00302
의 루트의 역으로 설정하고, 에러 값을 계산한 후에 추정된 에러 위치 및 에러 값으로부터 에러 벡터를 추정한다. 그리고 x에 대한 추정값
Figure pat00303
를 출력한다.
실시 예들에 따라, 에러 값들은 ω(X) :=
Figure pat00304
및 키 방정식 ω = S ( y )σ mod (X d - 1)의 ELP를 ω = S ( y )σ mod (X d - 1)로 대체하고, 에러 평가 다항식(EEP) ω(X)을 찾음으로써 계산 될 수 있다. 다른 실시 예에 따르면, 오류 값은 포니 (Forney)의 공식을 사용하여 계산 될 수 있다.
그렇지 않으면, HD 디코딩이 성공적이지 않은 경우, 단계 24에서 신뢰할 수없는 약 좌표 및 그 잠재적 에러 값이 식별되고, 단계 25에서 신드롬 기반 경 판정 알고리즘의 출력에 기초한 초기 그레브 너 베이시스 G가 발견될 수 있다.
일 실시예에 따르면, 상기 신드롬 기반 경 판정 알고리즘이 BM 알고리즘 인 경우, 상기 BM 알고리즘 출력에 기초하여 초기 그뢰브너 기저 G를 찾는 단계는, B는 L이 업데이트되기 전의 마지막 ELP의 복사본 인 BM 알고리즘으로부터의 다항식 출력일 때, b 1 :=
Figure pat00305
, 및 b 2 :=
Figure pat00306
로 정의하는 단계 및 (1) b1과 b2의 선행 단항식이 별개의 단위 벡터를 포함하는 경우, 그뢰브너 기저로서 c{b 1, b 2}(c는 0이 아닌 상수). (2) 선행 당학식이 같은 단위 벡터를 포함하고, b1의 선행 단항식이 적어도 b2의 선행 단항식 만큼 큰 경우, 그뢰브너 기저로서 d{b 1 - cX l b 2, b 2,} (
Figure pat00307
,  l
Figure pat00308
및 (3) 선행 단항식이 같은 단위 벡터를 포함하고, b2의 선행 단항식이 적어도 b1의 선행 단항식 만큼 엄격하게 큰 경우, 그뢰브너 기저로서 {d b 1 , d(b 2 - cX l b 1)}(
Figure pat00309
,  l
Figure pat00310
중 적어도 하나를 출력하는 단계를 포함할 수 있다. 여기에서,
Figure pat00311
,  l
Figure pat00312
는 b2가 생략됨으로써 선택되고, d는 0이 아닌 상수이다.
다음으로 신뢰할 수 없는 좌표에서 모든 가능한 오류 패턴
Figure pat00313
의 하위 집합을 스캔한다. 여기서 n0은 신뢰할 수없는 좌표의 수이고
Figure pat00314
은 신뢰할 수없는 좌표이다. 오류 패턴의 하위 집합은 하나의 트리로 구성되며, 정점은 오류 패턴에 해당하고 에지는 "상위" 오류 패턴으로부터 0이 아닌 값을 추가적으로 정확히 하나 더 갖는 "하위"오류 패턴을 연결한다.
단계 26에서, 루트 및 미분 단계 모두에 대해 Δ 1 = 0이 될 때까지 에러 패턴의 트리를 가로 지르며, 에러 위치 α 1 , ..., α r -1   및 대응하는 에러 값 β 1 , ..., β r -1 을 갖는 에러 패턴에 대응하는 꼭지점으로부터, 하나의 추가 오류 위치 α r   및 해당 오류 값 β r 을 갖는 자식 노드에 이동은 j번째 단위 벡터(j {0, 1})에 있어서 LM(g j )과 함께하는 M r-1 (S ( y ), α 1 ,..., α r-1 , β 1 ,..., β r-1 )를 위한 현재 그루브너 기저 G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )}로부터 LM(g + j )과 함께하는 M r (S ( y ), α 1 , ..., α r , β 1 , ..., β r )를 위한 그루브너 기저 G + = {g + 0 = (g + 00 , g + 01 )), g + 1 = (g + 10 , g + 11 )}로의 이동에 대응한다. 실시 예들에 따르면, 에러 위치 ? r 에 인접하는 코터의 반복 알고리즘 A는 그뢰브너 기저 G로부터 그뢰브너 기저 G+로 이동하는데 사용될 수있다.
y에 총 t + r개의 오류 좌표가 있고 α 1 , ..., α r 이 실제로 오류 위치이고 β 1 , ..., β r 이 해당 오류 값인 경우, 올바른 오류 패턴에 도달하고, 알고리즘의 출력
Figure pat00315
이 일부 0이 아닌 상수 c에 대해
Figure pat00316
)를 만족시킨다. 여기서 ω는 EEP이고 σ는 ELP이다. 일 실시예에 따른 간소화 된 중지 기준을 사용하기 위해, 최대 트리 깊이가 1씩 증가되어야 하고, Chien 탐색은 루트 및 미분 반복 모두에 대해
Figure pat00317
인 경우에만 수행된다. 추가적인 오류 지시자
Figure pat00318
가 약 좌표 내에 존재하고, 좌표의 잠재적 에러 패턴 집합
Figure pat00319
Figure pat00320
를 위한 정확한 오류 값
Figure pat00321
을 포함하면, 중지 기준은 성공할 것이다.
단계 27에서 유효한 추정 된 에러 값
Figure pat00322
이 발견되면, 단계 28에서 송신된 코드 워드 x에 대한 추정치로서
Figure pat00323
가 출력된다. 단계 29에서 그러한 e가 발견되지 않으면, 디코딩 실패가 출력된다.
실시 예들에 따르면, 일 실시 예에 따른 알고리즘의 복잡도는 Y. Wu의 "Wu의 알고리즘 1, pp. 114-115,"IEEE에서의 리드 - 솔로몬 코드에 대한 고속 체이스 디코딩 알고리즘 및 아키텍처 " IEEE Trans. 알림. 이론, Vol. 58, No. 1, pp. 109-129, Jan. 2012). 의 한 반복과 대략 비교 될 수 있고, 상술한 저서는 본 명세서에서 참조로써 병합된다.
Wu의 반복에서, 다항식의 차수에서 t에서 ε로 일반적으로 발전하는 2개의 치환과 Wu의 식 23, 24를 사용하여 f의 지식을 기초로 한 (Sf mod X 2t )(x) 형태의 치환에 의한 두 가지 계산이 있다. 마지막 두 치환은 각각 약 2t 곱셈을 취하고, Wu의 식 23, 24의 내부 합계는 처음 두 치환에 대해 이미 계산되었다.
일 실시 형태에 따른 알고리즘에서, 재귀 방정식 (7)을 사용하는 f의 지식에 기초하여 (Sf mod X 2t )(x) 형태의 치환의 2 가지 계산은 일반적으로 다항식 차수가t에서 ε까지 성장하는 2 개의 치환을 포함한다. 각 계산은 약 2t의 곱셈과 g' j1 미분에서 2개의 대체를 요구한다. 특징 2에서 X의 짝수 배수에 대해서만 0이 아닌 계수를 갖는 성질을 가질 수 있다.
Wu의 알고리즘의 일반적인 응용 프로그램에서, 벡터의 길이가 일반적으로 t에서 ε까지 증가하는 스칼라에 의한 벡터의 3 개의 곱셈이 있을 수 있다. 한편, 일 실시 예에 따른 알고리즘에서, 4 개의 그러한 곱셈들이 존재하는데, 루트 및 미분 단계들 각각에 대해 2 씩이 존재할 수 있다. 그러나 Wu 알고리즘의 이점은 다음 항목에 의해 균형을 이룬다.
Wu의 방법은 신드롬 갱신 단계를 필요로하는데, 이 신드롬 갱신 단계는 총 약 t개의 곱셈을 통해 t개의 신드롬 좌표를 갱신하며, 이는 일 실시 예에 따른 알고리즘에서 완전히 회피된다.
상술한 바를 고려하면, 일 실시 예에 따른 알고리즘의 복잡도는 Wu의 반복의 알고리즘보다 다소 높을 수 있으나 개념적으로 더 간단하다. 또한, 일 실시 예에 따른 알고리즘은 gj1 및 gj1의 공식 미분식의 평가 벡터를 사용하여 소위 변환 도메인에서 작업하는 데 적합하다. 또한, 일 실시 예에 따른 알고리즘은 2쌍의 다항식을 유지함으로써 에러의 총 수가 엄밀히 d-1 이상인 경우에도 작용할 수 있다.
6. 시스템 구현
본 개시의 실시 예들은 하드웨어, 소프트웨어, 펌웨어, 특수 목적 프로세스들, 또는 이들의 조합의 다양한 형태로 구현 될 수 있음을 이해해야한다. 일 실시 예에서, 본 개시는 ASIC (application-specific integrated circuit) 또는 FPGA (field programmable gate array)와 같은 하드웨어로 구현 될 수 있다. 다른 실시 예에서, 본 개시는 컴퓨터 판독 가능 프로그램 저장 장치 상에 구현 된 유형의 응용 프로그램으로서 소프트웨어로 구현 될 수 있다. 응용 프로그램은 임의의 적합한 아키텍처를 포함하는 기계에 업로드되어 실행될 수 있다.
도 3은 본 개시의 일 실시 예에 따른, 일반화 된 리드 - 솔로몬 코드의 고속 체이스 디코딩을위한 시스템의 블록도이다. 도 3에 도시 된 바와 같이, 본 발명을 구현하기위한 컴퓨터 시스템(31)은 중앙 처리 장치(CPU)(32), 메모리(33) 및 입출력(I/O) 인터페이스 (34)를 포함할 수 있다. 컴퓨터 시스템(31)은 입출력 인터페이스(34)를 통해 디스플레이(35) 및 마우스 및 키보드와 같은 다양한 입력 장치(36)와 커플될 수 있다. 지원 회로는 캐시, 전원 공급 장치, 클럭 회로 및 통신 버스와 같은 회로를 포함 할 수 있다. 메모리(33)는 RAM (random access memory), ROM (read only memory), 디스크 드라이브, 테이프 드라이브 등, 또는 이들의 조합을 포함 할 수 있다. 본 발명은 메모리(33)에 저장되고 신호 소스(38)로부터 신호를 처리하기 위해 CPU (32)에 의해 실행되는 루틴 (37)으로서 구현 될 수 있다. 이와 같이, 도 3은 범용 컴퓨터 시스템으로서 특정 목적 본 발명의 루틴(37)을 실행할 때의 컴퓨터 시스템의 블록도를 나타낼 수 있다. 대안 적으로, 전술 한 바와 같이, 본 발명의 실시 예는 신호 소스(38)로부터 신호를 처리하기 위해 CPU(32)와 신호 통신하는 ASIC 또는 FPGA(37)로서 구현 될 수있다.
컴퓨터 시스템(31)은 또한 오퍼레이팅 시스템 및 마이크로 명령 코드를 포함할 수 있다. 여기에 설명 된 다양한 프로세스 및 기능은 운영 체제를 통해 실행되는 마이크로 명령어 코드의 일부 또는 애플리케이션 프로그램 (또는 이들의 조합)의 일부일 수 있다. 또한, 추가의 데이터 저장 장치 및 인쇄 장치와 같은 다양한 다른 주변 장치가 컴퓨터 플랫폼에 연결될 수 있다.
첨부 도면에 도시 된 구성 시스템 구성 요소들 및 방법 단계들 중 일부는 소프트웨어로 구현 될 수 있기 때문에, 시스템 구성 요소들 (또는 프로세스 단계들) 간의 실제 연결은 본 발명이 프로그래밍된다. 본 명세서에 제공된 본 발명의 교시가 주어지면, 당업자는 본 발명의 이들 및 유사한 구현 예 또는 구성을 고려할 수있을 것이다.
본 발명은 예시적인 실시 예를 참조하여 상세히 설명되었지만, 당업자는 첨부 된 청구 범위에서 설명 된 본 발명의 사상 및 범위를 벗어나지 않고 다양한 수정 및 대체가 이루어질 수 있음을 이해할 것이다.
A. 코터 알고리즘
완전을 기하기 위해, Koetter의 알고리즘에 대한 R. J. McEliece의 VII.C, "리드 솔로몬 코드에 대한 구루스와미-수단 해독 알고리즘", IPN Progress Report, Vol. 42-153, May 2003)의 전체 내용이 본원에 참고로 인용되어 있다. 편의상, 알고리즘의 현재 표현은 그뢰브너 기저의 언어로 설명된다.
K를 필드로 가정한다. ℓ ∈ N*에 대한 Rank(M) = ℓ + 1 인 K[X] +1의 K [X] 서브 모듈 M에 대해, K[X] +1의 차수 <를 갖는 일부 단항식에 관한 그뢰브너 기저 G = {g 0 , ..., g l } 를 가정한다. 그러한 경우에, gj의 선행 단항식들은 별개의 단위 벡터를 포함해야 한다. 그렇지 않으면, 두 기본 벡터의 선행 단항식은 동일한 단위 벡터를 포함할 것이므로, 한 벡터의 선행 단항식은 다른 벡터의 선행 단항식을 나눌 수 있다. 이 경우, 기저 벡터 중 하나가 그뢰브너 기저를 떠나서 버려질 수 있는데, 특히 rank ℓ+1의 자유 모듈에 대한 ℓ+1개의 생성기 미만의 집합일 수 있다. 따라서, 일 실시 예에 따르면, 벡터의 좌표가 0,...,l로 인덱싱되는 모든 j {0, ..., l}에 대해, gj의 선행 단항식이 j 번째 단위 벡터를 포함한다는 일반성을 잃지 않는다고 가정 할 수 있다.
일 실시 예에 따르면, 이 시점 이후 부터 <는 K[X] l +1 임의 단일 차수를 K 나타낼 것이다.
이제 D: K[X] l + 1 K 를 다음과 같은 성질을 만족하는 0이 아닌 선형 함수로 가정한다.
MOD M+:= M ∩ ker (D)는 K [X] - 모듈에 해당한다.
계속 진행하기 전에, Koetter 알고리즘의 유효성이 증명된 결과로, M에서 M+으로 이동해도 순위가 감소하지 않는다는 점에 유의한다. Koetter 알고리즘의 목적은 M의 (ℓ+1) 원소 그뢰브너 기저 G를 M+의 (ℓ+1) 원소 그뢰브너 기저 G + = {g + 0 , ..., g + l }로 변환하면서, LM(g + j )가 모든 j∈ {0, ..., ℓ}에 대한 j 번째 단위 벡터를 포함한다는 속성을 유지해야 한다. 이 시점부터 "그뢰브너 기저"는 고정 단항식 차수 <와 관련한 그뢰브너 기저를 의미한다.
이제 Koetter의 알고리즘을 한 번 반복은 필요한 속성을 가질 수 있다는 것을 증명할 수 있다.
역행이 없는 Koetter의 반복 :
입력 : 모든 j에 대한 j 번째 단위 벡터를 포함하는 LM(g j )와 함께, 서브 모듈 M
Figure pat00324
에 대한 그뢰브너 기저 G = {g 0 , ..., g l }.
출력 : MOD가 있다고 가정 할 때, 모든 j에 대한 j 번째 단위 벡터를 포함하는 LM(g + j )에 대한 M+에 대한 그뢰브너 기저 G + = {g + 0 , ..., g + l }
알고리즘:
For j = 0, ..., l, calculate Δ j := D(g j )
Set J := { j {0, ..., l}| Δ j 0 }
If J = 공집합, Then
For j = 0, ..., l, set g + j := g j
Exit
Let j * J be such that LM(g j* ) = min jJ {LM(g j )}
/* the leading monomials are distinct, and so j * is unique */
For j J
If j j *
Set g + j := Δj* g j - Δj g j*
Else /* j = j * */
Set g + j* := Δ j* Xg j* - D(X g j* ) g j*
/* = ( Δj* X - D(X g j* )) g j* */
명제 A.2 : Koetter의 반복 끝에, G + = {g + 0 , ..., g + l }이 M+에 대한 그뢰브너기저고 모든 j에 대해 LM(g + j ) 가 j번째 단위 벡터를 포함한다.
증명 : D의 선형성에 의해, Koetter의 반복의 끝에 모든 j에 대해 g + j M 이 된다. 모든 j에 대해서,
LM(g + j ) = min { LM(f)|f M + 및 LM(f)는 j번째 단위 벡터를 포함} .
이것은 실시 예에 따른 모듈이 K[X]를 초과하기 때문에, M+의 모든 원소의 선행 단항식은 G+로부터의 일부 원소의 선행 단항식에 의해 나눌 수 있고, 따라서 G+는 그레브너 기저이다.
j∈ {0, ..., ℓ}에 대해,
M j := { f M \ {0}|LM(f) 는 j번째 단위 벡터를 포함 }
M + j := { f M + \ {0}|LM(f) 는 j번째 단위 벡터를 포함 }
이 성립한다.
M + M,이므로 모든 j에 대해 M + j M j 가 또한 성립함에 유의하자.
어떤 j∈ {0, ..., ℓ}에 있어서, j J이면 g + j = g j 이고, LM(g j )는 LM(M j ) LM(M + j )에서 최소이므로, LM(g + j )는 LM(M + j )에서 최소이다. 이 최소성은 G에 대한 가정으로부터 따른다. 마찬가지로, j∈J이고 j ≠ j*이면,
LM(g + j ) = LM ( Δ j * g j - Δ j g j * ) = LM(g j )가 성립하고, 다시 LM(g + j )는 LM(M + j )에서 최소이다.
J ≠ 이면 LM(g + j* ) = min(LM(M + j* ))임을 검증해야한다. 먼저 <는 단항식 차수이므로, LM(Xg j * ) = X LM(g j * ), X LM(g j * ) > LM(g j* )임을 주의한다. 따라서 LM(g + j* ) = X LM(g j * )가 성립한다. 또한 X LM(g j * )는 LM(M j * )에서 LM(g j * )의 바로 다음 승계자이다.
LM(h j * ) < LM(g + j* ) 인 h j* M + j* 가 존재한다고 가정한다. 이것은 무한하게 감소하는 체인을 암시하며, 따라서 모순을 의미한다는 것이 증명 될 것이다. h j * M j* 에 속하기 때문에, LM(h j * ) ≥ LM(g j * ) 가 참이어야 하며, 따라서 LM(g j * ) ≤ LM(h j* ) < LM(g + j* )이어야 한다. 그러나 LM(g + j* ) 는 LM(M j * )에서 LM(g j * )의 바로 다음 승계자이므로 LM(h j* ) = LM(g j* )가 참이어야한다.
c K 를 LM(g j * -c h j * ) 가 LM(h j * ) = LM(g j * )보다 엄격하게 작게 설정하고, δ 0 := g j * -c h j * 로 설정한다. h j* M + 인 반면, g j *
Figure pat00325
M + 이므로 ? 0
Figure pat00326
M + , 특히 ? 0 0이 성립한다. 여기서, LM(? 0 ) 은 어떤 j 0 {0, ..., l}에 대한 j 0 번째 단위 벡터를 포함한다고 가정한다.
j 0 J이면, LM(δ 0 ) < LM(g j * ) ≤ LM(g j0 )이다. 여기서 첫 번째 부등식은 δ0의 구성에서 유래하고, 두 번째 부등식은 j*의 정의에서 나온다. δ 0 M j0 에 포함이므로 g j0 에 대한 가정과 모순된다.
LM(M j0 )의 LM(g j0 )의 최소 성질에 의해 LM(? 0 ) = X d LM(g j0 )와 같은 d≥0이 존재한다. 선행 단항식이 ? 1 := ? 0 - cX d g j0 에서 상쇄되도록 c K * 를 선택한다. 여기서 g j0 M + 이므로 j 0
Figure pat00327
J 인 반면 ? 0
Figure pat00328
M + 이기 때문에 ? 1
Figure pat00329
M + 임을 유의한다. 구성에 의해 ? 1 0이고 LM(? 1 ) < LM(? 0 )이다.
LM(? 1 )이 j1 번째 단위 벡터를 포함한다고 가정하자. 만약 j1 ∈ J이면, LM(? 1 ) < LM(? 0 ) < LM(g j * ) ≤ LM(g j1 )인데, ? 1 M j1 이기 때문에 모순이다. 그러므로 j1 J이 성립한다.이 방법을 계속하면, 무한대로 감소하는 체인을 얻을 수 있다. 이것은 모순이다.
B. 명제 4.1의 증명
(S(y), 1)은 {h0, h1}의 Fq[X]-팽창에 있기 때문에 1 ∈ (h01, h11)이 되므로 h01과 h11은 서로 소수이다. 이제 α(X), β(X) F q [X]가 α(X)h 0 - β(X)h 1 = (?, 0)와 같다고 가정하자. 그러면 α(X)h 01 (X) = β(X)h 11 (X)이고, gcd(h 01 , h 11 ) = 1이기 때문에, h 11 (X)|?(X), h 01 (X)|β(X)가 성립한다. 또한, 같은 이유로 아래 식도 성립한다.
Figure pat00330
이 두 개의 동일한 함수는 사실 F q [X]의 다항식이다. 이 다항식에 대해 r(X) F q [X]이라고 하자. π 0 : F q [X]2 F q [X]를 첫번째 좌표로의 투영이라 하면, 이제 벡터의 두 번째 좌표 f := h 11 (X)h 0 - h 01 (X)h 1 M 0 는 0이고, 상술한 α(X), β(X)에 있어서, α(X)h 0 - β(X)h 1 = r(X) f가 성립한다.
이것은 π 0 (f)가 π 0 (M 0 n {(?, 0)})에서 가장 낮은 차수임을 나타낸다. 이제, M0가 {(X 2t , 0), (S ( y )(X), 1)}에 의해 F q [X]-모듈로 생성되기 때문에 최저 차수는 2t가 된다. 그러므로 deg(? 0 (f)) = 2t이고, 아래 식이 성립한다.
deg(? 0 (f)) = deg ( h 11 (X)h 00 (X) - h 01 (X)h 10 (X))
= deg ( h 11 (X)h 00 (X)).
deg(h 11 ) ≥ deg(h 10 )+1 and deg(h 00 ) > deg(h 01 )-1의 가정에 의해, deg(h 11 h 00 ) > deg(h 01 h 10 )가 성립하고, 이것으로 증명이 완료된다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 일반화된 리드-솔로몬(Generalized Reed-Solomon;GRS) 코드의 고속 체이스 디코딩 방법을 수행하는 특정 용도 집적 회로(Application Specific Integrated Chip;ASIC) 에 있어서, 상기 고속 체이스 디코딩 방법은,
    통신 채널을 통해 상기 ASIC로부터 수신한 GRS 코드 워드에 대한 경 판정 디코딩(Hard Decision Decoding)을 실패하는 경우, 신드롬 기반 경 판정 알고리즘(Syndrom-based Hard Decision algorithm)의 출력 값을 이용하여 키 방정식의 솔루션 모듈에 대한 초기 그뢰브너 기저(G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )})를 계산하는 단계;
    인접하는 에러 위치를 위한 그뢰브너 기저(G + )를 찾기 위해, 복수의 신뢰할 수 없는 좌표들에 있어서, 다음 약 좌표를 연결시키기 위해 에러 패턴들에 대응하는 꼭지점들 및 에러 패턴과 추가적인 값을 갖는 자식 에러 패턴을 연결하는 선들을 포함하는 에러 패턴의 트리를 탐색하는 단계; 및
    올바른 에러 벡터(
    Figure pat00331
    )가 발견된 경우, 예측된 전송 코드 워드(
    Figure pat00332
    )를 출력하는 단계;를 포함하는 특정 용도 집적 회로.
  2. 제1항에 있어서,
    상기 신드롬 기반 경 판정 알고리즘은 베르캄프-메시(Berlekamp-Massey; BM) 알고리즘 및 피츠패트릭(Fitzpatrick) 알고리즘을 포함하는 그룹으로부터 선택되는 것을 특징으로 하는 특정 용도 집적 회로.
  3. 제1항에 있어서,
    상기 신드롬 기반 경 판정 알고리즘은 BM 알고리즘이고,
    상기 초기 그뢰브너 기저를 계산하는 단계는,
    신드롬 다항식(S), 상기 BM 알고리즘에 의해 출력된 예측된 오류 위치 다항식(Error Locator Polynomial;ELP)(σ), 상기 BM 알고리즘에 있어서 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register;LFSR)의 길이(L)가 변화된 이후 반복 횟수(m), 상기 BM 알고리즘으로부터 출력되고, 상기 LFSR 길이(L)가 업데이트되기 전 상기 ELP(σ)로부터 복사된 다항식(B)에 있어서, 복수의 다항식들 b 1 :=
    Figure pat00333
    , 및 b 2 :=
    Figure pat00334
    을 정의하는 단계; 및
    (1) b1과 b2의 선행 단항식이 별개의 단위 벡터를 포함하는 경우, 그뢰브너 기저로서 c{b 1, b 2}(c는 0이 아닌 상수), (2) 상기 선행 단항식이 같은 단위 벡터를 포함하고, b1의 선행 단항식이 b2의 선행 단항식보다 큰 경우, 그뢰브너 기저로서 d{b 1 - cX l b 2, b 2,} (
    Figure pat00335
    ,  l
    Figure pat00336
    및 (3) 선행 단항식이 같은 단위 벡터를 포함하고, b2의 선행 단항식이 b1의 선행 단항식보다 큰 경우, 그뢰브너 기저로서 {d b 1, d(b 2 - cX l b 1)}(
    Figure pat00337
    ,  l
    Figure pat00338
    를 출력하는 단계;를 포함하는 것을 특징으로 하는 특정 용도 집적 회로.
  4. 제1항에 있어서,
    상기 에러 패턴의 트리를 탐색하는 단계는,
    현재 그뢰브너 기저를 구성하는
    Figure pat00339
    ,
    Figure pat00340
    및 다음 에러 위치(α r )(r은 에러 위치의 개수)에 있어서, 루트 불일치(
    Figure pat00341
    )(j=0,1)를 계산하는 단계;
    집합 J := { j {0, 1}|
    Figure pat00342
    0 }
    Figure pat00343
    Figure pat00344
    , g + j := c(g j -
    Figure pat00345
    g j * ), 일 때, 모든 j J에 대해서, (j
    Figure pat00346
    )인 경우,
    Figure pat00347
    (j * J, j
    Figure pat00348
    )의 선행 단항식은 g j 의 최소 선행 단항식으로 설정하고, j = j * 인 경우, g + j := c (X -
    Figure pat00349
    )g j * 로 설정하는 단계;
    g j := g + j (j=0, 1) 로 설정하는 단계;
    다음 에러 위치(α r )의 값(β r ),
    Figure pat00350
    의 미분값(
    Figure pat00351
    )에 있어서, 미분 불일치
    Figure pat00352
    Figure pat00353
    (j=0,1)를 계산하는 단계; 및
    집합 J := { j {0, 1}|
    Figure pat00354
    0 }
    Figure pat00355
    Figure pat00356
    , g + j := c(g j -
    Figure pat00357
    g j * ) 에 대해서, (j
    Figure pat00358
    )인 경우, M(g j * )의 선행 단항식을 g j 의 최소 선행 단항식으로 설정하고, j = j * 인 경, g + j := c(X -
    Figure pat00359
    )g j * 로 설정하는 단계;를 포함하는 것을 특징으로 하는 특정 용도 집적 회로.
  5. 제4항에 있어서,
    상기 고속 체이스 디코딩 방법은,
    집합 J := { j {0, 1}|
    Figure pat00360
    0 }
    Figure pat00361
    Figure pat00362
    또는 집합 J := { j {0, 1}|
    Figure pat00363
    0 }
    Figure pat00364
    Figure pat00365
    일 때, g + j := g j (j=0,1)로 설정하는 단계;를 더 포함하고,
    g + 0 = (g + 00 , g + 01 ) 및 g + 1 = (g + 10 , g + 11 )는 다음 에러 위치 지정자를 위한 그뢰브너 기저(G+)인 것을 특징으로 하는 특정 용도 집적 회로.
  6. 제4항에 있어서,
    상기 고속 체이스 디코딩 방법은,
    j=1에 대해서 상기 루트 불일치가 0이고, 상기 미분 불일치가 0인지 여부를 결정하는 단계; 및
    j=1에서 상기 루트 불일치 및 상기 미분 불일치가 0으로 결정된 경우, g + j 에 대한 설정을 중단시키는 단계;를 포함하는 특정 용도 집적 회로.
  7. 제4항에 있어서,
    상기 고속 체이스 디코딩 방법은,
    j*=0일 때마다, 그뢰브너 기저 함수(g00)의 차수가 변수(d0)에 대해서, 1만큼 증가되는지 트래킹하는 단계;를 더 포함하는 특정 용도 집적 회로.
  8. 제4항에 있어서,
    상기 고속 체이스 디코딩 방법은,
    두 개의 다항식
    Figure pat00366
    을 트래킹하는 단계; 및
    상기 키 방정식을 이용하여
    Figure pat00367
    (j=0,1)을 계산하는 단계;를 더 포함하는 특정 용도 집적 회로.
  9. 제8항에 있어서,
    상기
    Figure pat00368
    (j=0,1)을 계산하는 단계는,
    δ := deg(g j1 )이고,
    Figure pat00369
    의 초기값은 0이고,
    Figure pat00370
    Figure pat00371
    에 대한
    Figure pat00372
    의 계수이고, result의 초기값은 0에 있어서,
    Figure pat00373
    (
    Figure pat00374
    ) 및
    Figure pat00375
    를 계산하고, 저장하는 단계;
    Figure pat00376
    로 업데이트하는 단계; 및
    result를 출력하는 단계;를 포함하고,
    상기 계산하고, 저장하는 단계 및 출력하는 단계는 다음 약 좌표(
    Figure pat00377
    )를 인접시키는 도중 수행되는 것을 특징으로 하는 특정 용도 집적 회로.
  10. 일반화된 리드-솔로몬(Generalized Reed-Solomon;GRS) 코드의 고속 체이스 디코딩 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    상기 고속 체이스 디코딩 방법은,
    통신 채널을 통해 GRS 코드 워드에 대한 경 판정 디코딩(Hard Decision Decoding)을 실패하는 경우, 신드롬 기반 경 판정 알고리즘(Syndrom-based Hard Decision algorithm)의 출력 값을 이용하여 키 방정식의 솔루션 모듈에 대한 초기 그뢰브너 기저(G = {g 0 = (g 00 , g 01 ), g 1 = (g 10 , g 11 )})를 계산하는 단계;
    인접하는 에러 위치를 위한 그뢰브너 기저(G + )를 찾기 위해, 복수의 신뢰할 수 없는 좌표들에 있어서, 다음 약 좌표를 연결시키기 위해 에러 패턴들에 대응하는 꼭지점들 및 에러 패턴과 추가적인 값을 갖는 자식 에러 패턴을 연결하는 선들을 포함하는 에러 패턴의 트리를 탐색하는 단계; 및
    올바른 에러 벡터(
    Figure pat00378
    )가 발견된 경우, 예측된 전송 코드 워드(
    Figure pat00379
    )를 출력하는 단계;를 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020180090909A 2017-08-22 2018-08-03 그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법 KR102573306B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/683,456 2017-08-22
US15/683,456 US10404407B2 (en) 2017-08-22 2017-08-22 Groebner-bases approach to fast chase decoding of generalized Reed-Solomon codes

Publications (2)

Publication Number Publication Date
KR20190021159A true KR20190021159A (ko) 2019-03-05
KR102573306B1 KR102573306B1 (ko) 2023-08-31

Family

ID=65435703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090909A KR102573306B1 (ko) 2017-08-22 2018-08-03 그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법

Country Status (2)

Country Link
US (1) US10404407B2 (ko)
KR (1) KR102573306B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102611828B1 (ko) * 2023-03-17 2023-12-08 주식회사 프라터 에러 정정을 위한 리드-솔로몬 디코더

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121442A (ko) * 2015-04-10 2016-10-19 삼성전자주식회사 연판정 디코딩 방법 및 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254165B2 (en) 2003-08-07 2007-08-07 Intel Corporation Re-configurable decoding in modem receivers
US7716562B1 (en) 2005-10-18 2010-05-11 Link—A—Media Devices Corporation Reduced processing in high-speed reed-solomon decoding
KR100896991B1 (ko) 2006-01-03 2009-05-14 삼성전자주식회사 무선 시스템에서 멀티캐스트 서비스의 링크 성능 향상을위한 장치 및 방법
US8149925B2 (en) 2006-03-23 2012-04-03 Intel Corporation Chase algorithm based differential decoder for soft decision Reed Solomon decoding in a QAM system
US7793195B1 (en) 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US7900122B2 (en) 2007-01-04 2011-03-01 Broadcom Corporation Simplified RS (Reed-Solomon) code decoder that obviates error value polynomial calculation
US8255760B2 (en) 2008-11-05 2012-08-28 Broadcom Corporation Header encoding for single carrier (SC) and/or orthogonal frequency division multiplexing (OFDM) using shortening, puncturing, and/or repetition
US8245117B1 (en) 2008-12-23 2012-08-14 Link—A—Media Devices Corporation Low complexity chien search in chase-type decoding of reed-solomon codes
US8850298B2 (en) 2012-06-27 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Combined Koetter-Vardy and Chase decoding of cyclic codes
US8674860B2 (en) 2012-07-12 2014-03-18 Lsi Corporation Combined wu and chase decoding of cyclic codes
US8908810B2 (en) 2012-12-27 2014-12-09 Intel Corporation Systems and methods for implementing soft-decision Reed-Solomon decoding to improve cable modem and cable gateway performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121442A (ko) * 2015-04-10 2016-10-19 삼성전자주식회사 연판정 디코딩 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102611828B1 (ko) * 2023-03-17 2023-12-08 주식회사 프라터 에러 정정을 위한 리드-솔로몬 디코더

Also Published As

Publication number Publication date
KR102573306B1 (ko) 2023-08-31
US10404407B2 (en) 2019-09-03
US20190068319A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
US7793195B1 (en) Incremental generation of polynomials for decoding reed-solomon codes
US5440570A (en) Real-time binary BCH decoder
Blahut A universal Reed-Solomon decoder
KR102352158B1 (ko) 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic
US7502988B2 (en) Decoding and error correction for algebraic geometric codes
CN107800439B (zh) 用于里德索罗门码的低延迟解码器
US20130139028A1 (en) Extended Bidirectional Hamming Code for Double-Error Correction and Triple-Error Detection
Li et al. A 124-Gb/s decoder for generalized integrated interleaved codes
Tang et al. A new decoding method for Reed–Solomon codes based on FFT and modular approach
CN106708654A (zh) 一种用于NANDflash的BCH纠错码的电路结构
Egorov et al. A modified Blahut algorithm for decoding Reed-Solomon codes beyond half the minimum distance
KR20190021159A (ko) 그뢰브너 기저를 이용한 일반화된 리드-솔로몬 코드의 고속 체이스 디코딩방법
US20030131308A1 (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US8255777B2 (en) Systems and methods for locating error bits in encoded data
Redinbo Tensor product DFT codes vs standard DFT codes
Prashanthi et al. An advanced low complexity double error correction of an BCH decoder
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
CN104378121A (zh) 一种译码方法及译码装置
Samady‐khaftari et al. Ring‐based linear network coding on erroneous cyclic networks
Elumalai et al. Encoder And Decoder For (15113) and (63394) Binary BCH Code With Multiple Error Correction
Lee Error-Correcting Codes for Concurrent Error Correction in Bit-Parallel Systolic and Scalable Multipliers for Shifted Dual Basis of GF (2^ m)
RU2282307C2 (ru) Способ синдромного декодирования для сверточных кодов
Bartz et al. On Syndrome Decoding of Punctured Reed-Solomon and Gabidulin Codes
Prashanthi et al. An Area Efficient (31, 16) BCH Decoder for Three Errors
JP5999634B2 (ja) 演算回路設定方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant