KR19990031804A - 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와 그 복호방법 - Google Patents
새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와 그 복호방법 Download PDFInfo
- Publication number
- KR19990031804A KR19990031804A KR1019970052641A KR19970052641A KR19990031804A KR 19990031804 A KR19990031804 A KR 19990031804A KR 1019970052641 A KR1019970052641 A KR 1019970052641A KR 19970052641 A KR19970052641 A KR 19970052641A KR 19990031804 A KR19990031804 A KR 19990031804A
- Authority
- KR
- South Korea
- Prior art keywords
- polynomial
- coefficient
- polynomials
- coefficients
- order
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1525—Determination and particular use of error location polynomials
- H03M13/1535—Determination and particular use of error location polynomials using the Euclid algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1585—Determination of error values
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)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
새로운 다항식 배열 구조를 갖는 리드-솔로몬(RS) 복호기와 그 복호 방법이 개시되어 있다. 입력되는 초기 에러 위치 다항식과 수정 오증 다항식을 이용하여 수정 유클리드 알고리즘을 위한 네 개의 각 다항식(R(x),Q(x), λ (x), μ (x))을 반복 계산하는 계산기, 각 다항식의 계수를 왼쪽부터 배열하는 배열기, 매 반복 계산의 처음을 알리는 반복 제어신호를 이용해서 각 다항식의 유효한 구간을 나타내는 제어신호들을 발생하는 발생기 및 제어신호들을 근거로 하여 계산기로부터 인가되는 다항식 R(x)를 에러 평가 다항식으로, 다항식 λ (x)를 에러 위치 다항식으로 추출하는 추출기를 포함한 RS 복호기는 별도의 차수 비교 회로가 요구되지 않으므로 차수 버퍼링이 필요하지 않아 회로가 간단해진다.
Description
본 발명은 오류 정정 복호분야에 관한 것으로, 특히 수정 유클리드 알고리즘을 구현하기 위한 새로운 다항식 배열 구조를 갖는 리드-솔로몬(Reed Solomon:RS) 복호기와 그 복호 방법에 관한 것이다.
고선명 텔레비젼(HDTV), 디지털 비디오 디스크(DVD) 기기, 광디스크(CD) 기기등의 디지털 통신 시스템에서 전송중에 발생하는 에러의 정정을 위해 많이 사용되고 있는 RS 코드의 복호기는 에러 정정 능력이 우수한 반면 구현시 그 구조가 매우 복잡하다. 일반적으로 RS 코드는 RS(N,I)로 표시되는 데, 하나의 패킷은 모두 N개의 심볼들로 구성되며, 이 중에서 I개는 메시지를 나타내는 심볼이고, 나머지 N-I개는 패리티를 나타내는 심볼이다. 그리고, 각각의 심볼은 m비트로 구성된다.
도 1은 종래의 RS 복호기의 블록도로서, 이는 문헌 [1]에 개시되어 있다: [1] H. M. Shao and I.S. Reed, "On the VLSI Design of a Pipeline Reed-Solomon Decoder Using Systolic Arrays," IEEE Trans. Comput, pp.1273-1280, vol.37, Oct. 1988.
도 1에 있어서, 입력되는 오류(erasure) 위치 정보에 의해 계산된 초기 에러 위치 다항식(initial error locator polynomial)의 근( α-i )은 제1 및 제2 다항식 전개부(106,108)에 입력된다. 여기서, 오류는 수신된 데이터에서 위치만 알고 있는 에러를 말하며, 에러(error)는 위치와 크기를 모두 알고 있는 에러를 말한다.
제1 다항식 전개부(106)에서 전개하는 초기 에러 위치 다항식 Γ(x) 은 수학식 1과 같이 나타낼 수 있으며, 제2 다항식 전개부(108)에서 전개하는 핵심 방정식(key equation)인 수정 오증 다항식(modified syndrome polynomial) T(x)은 수학식 2와 같이 나타낼 수 있다.
여기서, 는 승산을 뜻하며, 초기 에러 위치 다항식 Γ (x)의 근은 에러가 발생한 위치를 나타낸다. 즉, α-i 가 근이라면 입력으로 받은 코드 워드중 i+1번째 위치에서 에러가 발생했음을 의미한다. i+1번째 위치는 코드 인덱스(index)가 i에 해당한다.
위 수학식 2에서, T(x), S(x)는 각각 수정 오증 다항식과 오증 다항식을 의미하고, t는 정정 가능한 에러의 수를 나타낸다.
이 초기 에러 위치 다항식과 수정 오증 다항식의 계산이 완료되면 수정 유클리드 알고리즘 계산기(110)에서는 수정 유클리드 알고리즘을 이용하여 에러 평가 다항식(error evaluator polynomial: ω (x))과 에러 위치 다항식(error locator polynomial: σ (x))을 추출하게 된다.
여기서, 수정 유클리드 알고리즘 계산기(110)에서는 다음 수학식 4 내지 수학식 7에 도시된 반복식을 최대 2t번 반복하면 그 결과로 원하는 에러 위치 다항식( σ (x))과 에러 평가 다항식( ω (x))을 얻을 수 있다. 이를 수정 유클리드 알고리즘이라고 하며, 위 문헌 [1]에 개시되어 있다.
여기서, 위 수학식 4 및 5에서 ai-1, bi-1는 각각 Ri-1(x), Qi-1(x)의 최고차 항의 계수이다. 그리고,
로 주어진다. 즉, 수학식 8 및 수학식 9에서 알수 있듯이 Ri-1(x)의 차수가 Qi-1(x)의 차수보다 같거나 크면 σ i-1은 "1"의 값을 갖고 그렇지 않은 경우는 "0"을 갖는다. li-1은 두 다항식의 차수의 차로 정의된다.
아래 수학식 10에 도시된 조건을 만족하면 위 반복식(수학식 4-수학식 7)을 종료한다.
위 반복식(수학식 4-수학식 7)이 완료되면 에러 위치 다항식( σ (x)) 및 에러 평가 다항식( ω (x))은 각각 수학식 11과 수학식 12와 같이 주어진다.
요약하면, 네 다항식 Ri(x), Qi(x), λ i(x) 및 μ i(x)들의 초기값은 위 수학식 3과 같이 주어진다. 그리고 실제 수학식 4 내지 수학식 7에 도시된 반복식은 2t번까지 반복하지 않고도 에러 위치 다항식( σ (x))과 에러 평가 다항식( ω (x))을 얻을 수 있는 데 그 조건은 위 수학식 10과 같이 λ i(x)의 차수가 Ri(x)의 차수보다 크게 되는 것이다. 이렇게 되면 그때 얻어진 λ i(x)가 에러 위치 다항식이 되며 Ri(x)가 에러 평가 다항식이 된다.
이와 같은 수정 유클리드 알고리즘을 구현하기 위한 기존의 다항식 배열 구조는 도 2에 도시된 바와 같다. 도 2에 도시된 다항식의 배열에서는, 반복 연산과정이 진행될수록 차수가 감소하는 다항식 R(x)와 Q(x)가 수정 유클리드 알고리즘 계산기(110)에 내장된 레지스터들(132,134)에 오른쪽부터 배열되고, 차수가 증가하는 다항식 λ(x),μ(x) 가 레지스터들(136,138)에 왼쪽부터 배열된다. 이 경우 반복 계산에 필요한 제어신호의 발생을 위해서 각 다항식의 차수도 별도의 메모리(도시되지 않음)에 저장해야 한다.
이러한 수정 유클리드 알고리즘의 구현을 위한 기존의 다항식 배열 구조에 있어서의 문제점은 각 다항식들의 차수를 별도의 메모리에 항상 저장해 두고 있어야 한다는 점, 위 수학식 9를 수행하기 위해 필요한 제어신호의 발생을 위해서 수학식 8에 나타나 있는 바와 같이 차수들을 비교해야 하므로 log22t 비트만큼의 뺄셈기가 필요한 점, 그리고 다항식의 차수들을 다음번 반복 연산에서 사용해야 하므로 다항식들을 버퍼링할 때 차수들까지 같이 버퍼링해야 하는 문제점이 있었다.
상기한 문제점을 해결하기 위하여, 본 발명의 목적은 수정 유클리드 알고리즘 계산시 다항식의 배열 구조를 변화시켜 별도의 차수 비교 회로가 필요하지 않는 간단한 구조의 RS 복호기를 제공하는 데 있다.
본 발명의 다른 목적은 다항식의 배열 구조를 변화시켜서 수정 유클리드 알고리즘을 수행하는 RS 복호 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 수정 유클리드 알고리즘 수행을 위한 각 다항식의 계수를 왼쪽부터 배열하는 방법을 제공하는 데 있다.
상기한 목적을 달성하기 위하여, 본 발명에 의한 RS 복호기는 수정 유클리드 알고리즘을 이용하여 수신되는 심볼의 오류를 정정하는 리드-솔로몬(RS) 복호기에 있어서, 입력되는 초기 에러 위치 다항식과 수정 오증 다항식을 이용하여 수정 유클리드 알고리즘을 위한 네 개의 각 다항식(R(x),Q(x), λ (x), μ (x))을 반복 계산하는 계산기, 각 다항식의 계수를 왼쪽부터 배열하는 배열기, 매 반복 계산의 처음을 알리는 반복 제어신호를 이용해서 각 다항식의 유효한 구간을 나타내는 제어신호들을 발생하는 발생기 및 제어신호들을 근거로 하여 계산기로부터 인가되는 다항식 R(x)를 에러 평가 다항식으로, 다항식 λ (x)를 에러 위치 다항식으로 추출하는 추출기를 포함함을 특징으로 한다.
상기한 다른 목적을 달성하기 위하여, 본 발명에 의한 RS 복호 방법은 수정 유클리드 알고리즘을 이용하여 수신되는 심볼의 오류를 정정하는 리드-솔로몬 복호 방법에 있어서, 수정 유클리드 알고리즘을 위한 모든 다항식(R(x), Q(x), λ (x) 및 μ (x))의 계수들을 왼쪽부터 배열하는 단계, 왼쪽부터 배열된 모든 다항식의 계수가 어디서부터 유효한 다항식의 계수인지를 나타내는 각 다항식의 제어신호를 발생하는 단계, 다항식 Q(x)와 μ (x)에 할당된 제어신호를 이용하여 두 다항식의 차수를 판별하는 단계, μ (x)의 차수가 Q(x)의 차수보다 크다고 판별되면 R(x)를 에러 평가 다항식으로 출력하고, λ (x)를 에러 위치 다항식으로 출력하고, 그렇지 않으면 R(x)와 Q(x)의 어느 하나라도 최고차항의 계수가 "0"인지를 판별하는 단계 및 두 다항식(R(x), Q(x)) 중 어느 한 다항식의 최고차항의 계수가 "0"이라고 판별되면 최고차항의 계수가 "0"인 다항식과 이 다항식과 쌍을 이루는 다항식의 계수를 오른쪽으로 한 차수만큼 시프트시키고, 그렇지 않으면 각 다항식을 반복 계산하는 단계를 포함함을 특징으로 한다.
상기한 또 다른 목적을 달성하기 위하여, 본 발명에 의한 다항식 배열 방법은 수정 유클리드 알고리즘을 수행하기 위한 다항식 배열 방법에 있어서, 초기 상태 변수를 설정하는 단계, 두 다항식 Q(x)와 R(x)의 어느 하나라도 최고차항의 계수가 "0"인지를 판단해서 두 다항식중 어느 한 다항식의 최고차항의 계수가 "0"이 아니면 두 다항식의 차수가 같은지를 판단하는 단계, 두 다항식의 차수가 같지 않으면 각 다항식을 계산하고, 다음 상태 변수는 현재 상태 변수에서 "1"을 감산하고, 계산된 각 다항식의 계수를 지연해서 배열하는 단계, 두 다항식의 차수가 같으면 각 다항식을 계산한 후 R(x)의 계수와 Q(x)의 계수를 서로 교환하고, λ (x)의 계수와 μ (x)의 계수를 서로 교환해서 배열하고, 다음 상태 변수를 "1"로 설정하는 단계, 두 다항식(Q(x), R(x))중 어느 한 다항식의 최고차항의 계수가 "0"이면, R(x)의 최고차항의 계수가 "0"인지를 판단하는 단계 및 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고 또한 λ (x)의 계수와 μ (x)의 계수와 서로 교환해서 다항식 Q(x)와 μ (x)의 계수를 오른쪽으로 한 차수만큼 이동하고, 다음 상태 변수를 현재 상태 변수에서 "1"을 가산한 값으로 설정하고, Q(x)의 최고차항의 계수가 "0"이면 다항식 Q(x)와 μ (x)의 계수를 한 차수만큼 오른쪽으로 이동하고, 다음 상태 변수를 현재 상태 변수에서 "1"을 가산한 값으로 설정하는 단계를 포함함을 특징으로 한다.
도 1은 종래의 RS 복호기의 전체 블록도이다.
도 2는 종래의 다항식 배열 구조를 나타낸 도면이다.
도 3은 본 발명에 의한 RS 복호기의 전체 블록도이다.
도 4는 도 3에 도시된 수정 유클리드 알고리즘 계산기의 상세 블록도이다.
도 5는 본 발명에서 제안하는 다항식 배열 구조를 나타낸 도면이다.
도 6은 도 4에 도시된 제어신호 발생기의 일부 회로도이다.
도 7은 도 4에 도시된 제어신호 발생기에서 발생하는 제어신호를 이용한 최고차항의 식별을 설명하기 위한 파형도이다.
도 8은 본 발명의 일 실시예에 따른 다항식 배열 방법의 흐름도이다.
도 9는 도 8에 도시된 다항식 배열 방법의 이해를 돕기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명에 의한 새로운 다항식 배열 구조를 갖는 RS 복호기와 그 복호 방법의 바람직한 실시예를 설명하기로 한다.
도 3은 본 발명에 의한 RS 복호기의 블록도로서, α-i 발생기(202)는 입력되는 오류 정보로부터 초기 에러 위치 다항식의 근( α-i )을 발생시키고, 또한 새로운 오류 정보 α-i 에 대해 매 반복 계산의 처음을 알리는 반복 제어신호(ss)를 발생시켜 수정 유클리드 알고리즘 계산기(210)에 출력한다. 제1 다항식 전개부(206)는 α-i 발생기(202)로부터 출력되는 α-i 를 이용하여 초기 에러 위치 다항식( Γ(x) )을 전개한다.
제1 다항식 계산기(204)는 수신되는 데이터들의 오증값들을 계산해서 오증 다항식(S(x))을 구성한다. 수학식 13은 계산된 오증값들을 계수로 가지는 2t-1차의 오증 다항식이다.
제2 다항식 전개부(208)는 제1 다항식 계산기(204)에서 계산된 오증 다항식(S(x))과 α-i 발생기(202)로부터 출력되는 α-i 를 이용하여 위 수학식 2로 주어지는 핵심 방정식을 풀어서 수정 오증 다항식(T(x))을 전개한다.
수정 유클리드 알고리즘 계산기(210)는 제1 및 제2 다항식 전개부(206,208)로부터 인가되는 초기 에러 위치 다항식( Γ(x) )과 수정 오증 다항식(T(x))을 이용하여 에러 위치 다항식( σ (x))과 에러 평가 다항식( ω (x))을 구해내는 일련의 반복 계산을 통해 수정 유클리드 알고리즘을 계산한다.
제2 및 제3 다항식 계산기(212,214)는 수정 유클리드 알고리즘 계산기(210)에서 출력되는 에러 평가 다항식( ω (x))과 에러 위치 다항식( σ (x))을 계산해서 나눗셈기(216)에 인가한다. 나눗셈기(216)는 α-i 에 대해 수학식 14에 의해 에러 크기를 계산한다.
앤드게이트(218)는 제3 다항식 계산기(214)에서 계산된 에러 위치 다항식( σ (x))의 근에 해당하는 나눗셈기(216)의 출력만이 선택되도록 하는 역할을 한다. 가산기(222)는 배타적 논리합 게이트로 구성될 수 있으며, 지연기(220)에 의해 지연된 수신된 데이터와 앤드 게이트(218)로부터 출력되는 에러의 크기를 배타적 논리합하여 복호된 데이터를 출력하며, 이때 (c(x))는 정정된 데이터 다항식을 나타내고 있다.
도 4는 도 3에 도시된 수정 유클리드 알고리즘 계산기의 상세 블록도로서, 반복식 계산기(232)는 도 3에 도시된 제1 및 제2 다항식 전개부(206,208)로부터 인가되는 초기 에러 위치 다항식( Γ(x) )과 수정 오증 다항식(T(x))을 입력해서 각 다항식의 계수를 다항식 계수 배열기(234)에 인가하고, 다항식 계수 배열기(234)에 배열된 각 다항식의 계수와 최고차항의 계수 저장부(238)로부터 인가되는 R(x)와 Q(x)의 최고차항의 계수를 이용하여 각 다항식을 위한 반복식(수학식 4 내지 수학식 7)을 계산한다. 이때, 반복식 계산기(232)는 수학식 15와 같은 조건을 만족하면 반복식을 종료한다.
다항식 계수 배열기(234)는 도 5에 도시된 바와 같이 모든 다항식(R(x), Q(x), λ (x) 및 μ (x))을 각 레지스터(252-258)에 왼쪽부터 배열한다.
여기서, 반복식 계산기(232)에서 R(x)와 Q(x) 다항식을 반복 계산할 때마다 그 반복 계산의 결과가 다항식 계수 배열기(234)에 피드백되어 배열될 때는 항상 오른쪽으로 한칸씩 밀리는 성질이 있기 때문에 단순히 반복식 계산기(232)로부터 인가되는 R(x)와 Q(x)에 대한 출력값들을 저장하는 것만으로는 이 다항식들을 왼쪽으로 배열할 수 없다.
따라서, 처음의 반복 계산부터 차례로 반복 계산이 시작한다는 반복 제어신호(ss)에 따라 다항식을 지연시켜야 한다. 이를 위해 다항식 계수 배열기(234)는 각 레지스터(252-258)의 전단에 지연기가 구비되어 있다. 이때 지연기에 의해 지연시킬 것인가의 여부는 최고차항 상태 및 상태 변수 결정기(242)로부터 인가되는 상태 변수(SV)값에 근거하여 결정하게 된다.
즉, 반복식 계산기(232)에서 현재 반복 계산의 결과로 얻은 다항식 R(x),Q(x)의 차수가 같다는 상태 변수가 인가되면 두 다항식들(R(x),Q(x))을 모두 한 클럭씩 지연을 시킨다. 그렇지 않고 현재 반복 계산의 결과로 얻은 어느 한 다항식의 차수가 예를 들어 한 차수만큼 더 크다는 상태 변수(SV)가 인가되면 현재 상태는 차수가 더 큰 다항식이 이미 왼쪽으로 배열이 된 상태이므로 지연기에 의해 지연시키면 마지막 최저차의 계수가 잘려 나가게 된다. 따라서 이 경우는 반복식 계산기(232)의 출력값을 지연기에 의해 지연시키지 않고 그대로 레지스터(252,254)에 저장한다.
여기서, 구체적으로 설명되지 않지만 다항식 λ (x)은 쌍을 이루는 다항식 R(x)에 의존해서 지연하고, 다항식 μ (x)도 쌍을 이루는 다항식 Q(x)에 의존해서 지연하면 된다.
이때, 다항식 R(x)의 차수가 다항식 Q(x)의 차수보다 작을 경우 최고차항 상태 및 상태 변수 결정기(242)로부터 교환제어신호(EXCHANGE)가 다항식 계수 배열기(234)에 인가되며, 다항식 계수 배열기(234)에서는 레지스터(252)에 저장되어 있는 R(x)의 계수와 레지스터(254)에 저장되어 있는 Q(x)의 계수와의 상호 교환과 레지스터(256)에 저장되어 있는 λ (x)의 계수와 레지스터(258)에 저장되어 있는 μ (x)의 계수와의 상호 교환이 이루어지는 데 이는 반복 계산에서 다항식 배열의 편의를 도모하기 위함이다. 이에 따라 R(x)의 차수가 Q(x)의 차수보다 항상 크거나 같게 되어 반복 계산이 종료되는 조건은 위 수학식 15가 된다.
이렇게 다항식의 계수를 배열하면 도 5에 도시된 바와 같이 본 발명에서 제안하는 다항식 배열 구조가 된다. 이 다항식 배열 구조에서는 오른쪽에서부터 하나의 계수씩 연산이 되므로 최고차항의 계수는 오른쪽에서부터 시작하여 처음으로 "0"이 아닌 값이 되고, 그 위치가 다항식의 차수가 된다. 그리고 각 다항식의 차수 비교도 단순한 위치 비교만으로 이루어지며 이는 선택신호 발생기(240)에서 설명한다.
제어신호 발생기(236)는 다항식 계수 배열기(234)로부터 인가되는 각 다항식(R(x), Q(x), μ (x))의 계수와 도 3에 도시된 α-i 발생기(202)로부터 인가되는 매 반복 계산의 처음을 알리는 반복 제어신호(ss)를 이용해서 각 다항식(R(x), Q(x), μ (x))의 유효한 구간을 나타내는 제어신호(R_CTL, Q_CTL_Q, μ _CTL)를 발생한다.
즉, 제어신호 발생기(236)는 각 다항식(R(x), Q(x), μ (x))마다 1비트의 제어신호를 할당하여 반복 계산의 처음을 알리는 반복 제어신호(ss)가 α-i 발생기(202)로부터 제공되면 각 다항식의 제어신호의 값을 "1"로 유지하다가 처음으로 "0"이 아닌 계수가 다항식 계수 배열기(234)로부터 입력되면 그 다항식에 할당된 1 비트 제어신호를 "0"으로 바꾸어준다.
도 6은 도 4에 도시된 제어신호 발생기의 동작의 이해를 돕기 위한 일부 회로도로서, 다항식 R(x)에 할당된 제어신호(R_CTL)를 발생하는 회로도이다. 도 6에 있어서, 반복 제어신호(ss)가 인버터(262)에 의해 반전되어 티플립플롭(264)의 반전 프리셋단자(prn)에 인가되면 티플립플롭(264)의 출력(R_CTL)은 로직 "하이"가 되고, 이 출력(R_CTL)은 앤드게이트(266)에 피드백된다.
오아게이트(268)는 도 5에 도시된 다항식 계수 배열기(234)의 레지스터(252)로부터 인가되는 계수가 "0"이 아닌 유효한 값이 입력되면 로직 "1"의 출력을 인가하고, 이때 앤드게이트(268)도 로직 "1"의 출력을 티플립플롭(264)의 토글단자(T)에 인가한다. 그러면 티플립플롭(264)의 출력(R_CTL)은 유효한 구간임을 나타내는 로직 "0"이 된다. 그리고, 한번 유효한 구간이라고 판명이 되면 다음번 반복 계산이 시작한다는 로직 "하이"의 반복 제어신호(ss)가 인가될 때까지 로직 "0"가 유지된다.
한편, 도 4에 도시된 제어신호 발생기(236)로부터 인가되는 R(x), Q(x)에 할당된 제어신호(R_CTL,Q_CTL)는 R(x), Q(x)의 최고차항의 계수를 저장해 두기 위한 저장부(238)의 인에이블신호(R_EN,Q_EN)로 사용한다. 최고차항의 계수 저장부(238)는 R(x), Q(x)에 할당된 제어신호(R_CTL,Q_CTL)를 이용하여 다항식 계수 배열기(234)의 레지스터들(252,254)로부터 인가되는 첫 번째 유효한 값을 R(x)와 Q(x)의 최고차항의 계수(a-1,b-1)로 저장한다.
따라서, 본 발명에서는 최고차항의 계수를 저장하기 위한 부가적인 신호를 발생시키지 않고도 제어신호 발생기(236)에서 발생하는 제어신호(CTL_R,CTL_Q)를 이용하여 최고차항의 계수를 저장해 둘 수 있으며, 반복식 계산기(232)의 출력값들을 결정하는 데 필요한 멀티플렉서(MUX:244)의 선택신호(SEL)도 제어신호 발생기(236)에서 발생하는 제어신호(R_CTL, μ _CTL)를 이용하여 얻을 수 있다.
도 7의 (a)에 도시된 신호는 반복 계산의 처음을 알리는 반복 제어신호(ss)의 파형도이고, 도 7의 (b) 및 (c)에 도시된 신호는 각각 R(x)와 Q(x)에 할당된 제어신호(R_CTL, Q_CTL)이고, 도 7의 (b)에 도시된 제어신호(R_CTL)가 도 7의 (c)에 도시된 제어신호(Q_CTL)보다 먼저 로직 "0"가 되면 R(x)의 차수가 Q(x)의 차수보다 큼을 알 수 있다. 부가적으로 기존에는 각 다항식의 차수를 뺄셈 연산을 통해 비교하여 MUX 선택신호를 생성하였다.
그러나, 본 발명에서는 뺄셈 연산없이 선택신호 발생기(240)에서 제어신호 발생기(236)로부터 출력되는 Q(x)의 제어신호(Q_CTL)와 μ (x)의 제어신호( μ _CTL)를 이용하여 선택신호(SEL)를 발생하여 멀티플렉서(244)에 인가한다. 즉, 선택신호 발생기(240)는 Q(x)의 제어신호(Q_SEL)가 아직 유효한 구간이 아닌데(로직 "1") μ (x)의 제어신호(( μ _CTL)가 유효한 구간(로직 "0")이라고 판별이 되면 즉, μ (x)의 차수가 Q(x)의 차수보다 크면 반복 계산이 끝났다는 "1"의 선택신호(SEL)를 출력한다.
따라서, 멀티플렉서(244)는 이 로직 "1"의 선택신호(SEL)에 따라 반복식 계산기(232)로부터 출력되는 R(x)를 에러 평가 다항식( ω (x))으로 출력하고, λ (x)를 에러 위치 다항식( σ (x))으로 출력한다.
여기서, μ (x)의 차수가 Q(x)의 차수를 비교하는 이유는 다음과 같다. 이론적으로 반복 계산이 모두 끝났는지 확인하는 방법은 R(x)와 Q(x)의 차수중 하나라도 μ (x)의 차수와 비교해서 작은지를 알아보면 된다. 만약 그렇다면 거기서 반복 연산은 끝이 나고, R(x)와 Q(x) 중 차수가 작은 다항식을 에러 평가 다항식( ω (x))으로 가져가고, μ (x)를 에러 위치 다항식( σ (x))으로 가져가면 된다. 여기서, Q(x)의 차수가 R(x)의 차수보다 항상 작도록 유지하면 단지 μ (x)와 Q(x)만을 비교해서 원하는 에러 위치 다항식( σ (x))과 에러 평가 다항식( ω (x))을 얻을 수 있게 되는 것이다.
한편, 아직 반복 계산이 끝나지 않았다면 다음으로 확인해야 할 것은 R(x)의 최고차항의 계수 또는 Q(x)의 최고차항의 계수가 "0"인지 아닌지이다. R(x)와 Q(x)가 모두 왼쪽으로 배열되어 있어서 "0"이 아닌 값이 언제 나오는지를 R(x)와 Q(x)의 제어신호(R_CTL, Q_CTL)를 이용하면 두 다항식들의 최고차항의 계수가 "0"인지를 알 수 있다.
즉, R(x)의 제어신호(R_CTL)가 유효한 구간인데(로직 "0") Q(x)의 제어신호(Q_CTL)가 유효한 구간이 아니라면(로직 "1") Q(x)의 최고차항의 계수는 0"이고, 반대로 Q(x)의 제어신호(Q_CTL)가 유효한 구간이고(로직 "0"), R(x)의 제어신호(R_CTL)가 유효한 구간이 아니라면(로직 "1") R(x)가 "0"인 최고차항의 계수가 "0"임을 의미한다.
이렇게 최고차항의 계수가 어느 한쪽이라도 "0"이면 이번 반복 계산은 무의미하게 된다. 이를 방지하고 다음번 반복 계산을 위해서, 최고차항 상태 및 상태변수 결정기(242)는 R(x)와 Q(x)의 제어신호(R_CTL, Q_CTL)를 이용하여 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고, μ (x)의 계수와 λ (x)의 계수를 서로 교환하라는 교환제어신호(EXCHANGE)와 R(x)의 다항식과 이 다항식과 쌍을 이루는 λ (x)을 한 차수만큼 오른쪽으로 이동시켜 주기 위한 시프트신호(SHIFT)를 다항식 계수 배열기(234)에 인가하고, Q(x)의 최고차항의 계수가 "0"이면 Q(x)의 다항식과 이 다항식과 쌍을 이루는 μ (x)을 한 차수만큼 오른쪽으로 이동시켜 주기 위한 시프트신호(SHIFT)만을 다항식 계수 배열기(234)에 인가한다. 다항식을 한 차수만큼 오른쪽으로 이동시킨다는 의미는 최고차항의 계수가 "0"인 다항식과 이 다항식과 쌍을 이루는 다항식에 x만큼을 곱해주는 것과 같은 결과를 가진다.
또한, 최고차항 상태 및 상태 변수 결정기(242)는 R(x)와 Q(x)의 최고차항의 R(x)와 Q(x)의 차수의 차이를 나타내는 상태변수(SV)를 결정해서 다항식 계수 배열기(234)에 출력한다.
반복 계산이 끝나지도 않았고, R(x)와 Q(x) 중 어느 한 다항식의 최고차항의 계수도 "0"이 아니라면 반복 계산기(232)에서는 수학식 4 내지 수학식 7에 도시된 반복식에 의한 연산 결과에 대한 계수를 다항식 계수 배열기(234)에 피드백한다.
다음은 도 4에 도시된 수정 유클리드 알고리즘 계산기(210)에서 수행되는 수정 유클리드 알고리즘을 계산하는 과정을 요약하면 다음과 같다.
step 1: 모든 다항식(R(x),Q(x), λ (x), μ (x))의 계수들을 도 5에 도시된 바와 같이 왼쪽부터 배열한다. 이렇게 하면 별도로 차수를 저장하지 않고도 각 다항식들의 차수를 간단히 비교할 수 있다.
step 2: 모든 다항식의 계수를 왼쪽부터 배열된 계수에서 어디서부터 유효한 다항식의 계수인지를 확인해서 다항식(R(x),Q(x))의 최고차항의 계수를 저장한다.
step 3: 두 다항식(Q(x), μ (x))에 할당된 제어신호를 이용하여 두 다항식의 차수를 비교한다.
step 4: step 3에서 μ (x)의 차수가 Q(x)의 차수보다 크면 R(x)를 에러 평가 다항식( ω (x))으로 출력하고, λ (x)를 에러 위치 다항식( σ (x))으로 출력한다. 이때, R(x)의 차수가 Q(x)보다 크다고 가정한다.
step 5: step 3에서 μ (x)의 차수가 Q(x)의 차수보다 크지 않으면 R(x)와 Q(x)의 최고차항의 계수가 어느 하나라도 "0"인지를 판별한다.
step 6: step 5에서 두 다항식(R(x), Q(x))중 어느 한 다항식의 최고차항의 계수가 "0"이라면 최고차항의 계수가 "0"인 다항식과 이 다항식과 쌍을 이루는 다항식의 계수를 오른쪽으로 한 차수만큼 시프트시킨다. 이때, R(x)의 최고차항의 계수가 "0"이면 R(x)와 Q(x)를 서로 교환하고, μ (x)와 λ (x)를 서로 교환한 후 Q(x)와 μ (x)의 계수를 한 차수만큼 오른쪽으로 한 차수만큼 시프트하고, Q(x)의 최고차항의 계수가 "0"이면 Q(x)와 μ (x)의 계수를 한 차수만큼 오른쪽으로 한 차수만큼 시프트한다.
step 7: step 5에서 μ (x)의 차수가 Q(x)의 차수보다 크지 않고 R(x)와 Q(x) 모두 최고차항의 계수가 "0"이 아니면 step 2에서 저장된 다항식(R(x),Q(x))의 최고차항의 계수를 이용하여 위 수학식 4 내지 수학식 7에 도시된 반복식을 계산한다.
한편, 본 발명에서 수정 유클리드 알고리즘을 구현하는 데 있어서 기존의 방식과 가장 구별되는 점은 다항식 배열을 모두 왼쪽으로 배열함에 따라 R(x)와 Q(x)를 항상 왼쪽으로 배열하는 것이 요구된다. 따라서, 도 8은 step 1에서 모든 다항식의 계수를 왼쪽으로 배열하는 방법을 설명하기 위한 상세 흐름도로서, 도 9를 결부시켜 설명하기로 한다.
먼저, 두 다항식 R(x)와 Q(x)의 차수들의 차로서 상태 변수 SV를 정의한다. 이 상태 변수(SV)는 반복 계산의 초기값으로 "1"을 갖고 있으며(S11단계), 이때 초기 상태 변수(SV0)에 대응하는 배열 구조는 도 9의 (a)에 도시된 바와 같이 R(x)의 차수가 Q(x)의 차수보다 한 차수 크며, R(x)와 Q(x)의 계수는 왼쪽부터 배열되어 있으며 두 다항식의 최고차항의 차수(빗금친 부분)는 동일 위치에 배열되어 있다.
여기서, 상태 변수(SV)는 정상적인 반복 계산이 수행되었을 때 "1"만큼 감소하며 어느 한쪽 다항식의 최고차항의 계수가 "0"이라면 반대로 "1"만큼 증가한다. 또한, 상태 변수값이 "0"일 때 정상적인 반복 계산이 수행되었다면 다음 상태 변수의 값은 "1"이 된다. 즉, 상태 변수값이 "0"일 때 정상적인 반복 계산이 수행되면 그 다음은 두 쌍의 다항식의 값들이 서로 바뀌어서 출력되며, 따라서 원래는 "-1"을 가져야 할 것이지만 "1"을 갖게 된다.
즉, S12단계에서는 Q(x) 또는 R(x)의 최고차항의 계수가 "0"인지를 판단해서, 두 다항식 중 어느 한 다항식의 최고차항의 계수가 "0"이 아니면, 현재 상태 변수(SVi)가 "0"인지를 판단한다(S13단계).
S13단계에서 현재 상태 변수(SVi)가 "0"이 아니면, 각 다항식(R(x),Q(x), λ (x), μ (x))을 계산하고, 다음 상태 변수(SVi+1)는 현재 상태 변수(SVi=1)에서 "1"을 감산해서 "0"로 설정한 후(S14단계), 계산된 각 다항식(R(x),Q(x), λ (x), μ (x))의 계수를 지연해서 배열한다(S15단계). 이때, R(x)와 Q(x) 다항식 계수는 도 9의 (b)에 도시된 바와 같이 R(x)의 차수가 한 차수 낮아지며, 이 배열 구조의 상태 변수값은 "0"이다. 부가적으로, 현재 상태 변수가 "1"이고, 두 다항식의 최고차항의 계수가 모두 "0"가 아닐 때(도 9의 (a)) 정상적으로 반복 연산하면 도 9의 (b)에서 알 수 있듯이 R(x)의 차수가 한 차수 줄어든다.
S13단계에서 현재 상태 변수(SVi)가 "0"이면 두 다항식의 R(x)와 Q(x)의 최고차항의 계수가 같다는 것을 의미하며, 각 다항식(R(x),Q(x), λ (x), μ (x))을 계산한 후 R(x)의 차수가 Q(x)의 차수보다 작으므로 R(x)와 Q(x)의 계수를 서로 교환하고, λ (x)와 μ (x)의 계수를 서로 교환해서 배열하고, 다음 상태 변수(SVi+1)를 "1"로 설정한다(S16단계). 이때, R(x)와 Q(x)의 다항식 계수 배열 구조는 도 9의 (c)에 도시된 바와 같다.
한편, S12단계에서 두 다항식(Q(x), R(x))중 어느 한 다항식의 최고차항의 계수가 "0"이면, R(x)의 최고차항의 계수가 "0"인지를 판단해서(S17단계), R(x)의 최고차항의 계수가 "0"이면 R(x)의 차수가 Q(x)의 차수보다 작으므로 R(x)의 계수와 Q(x)의 계수를 서로 교환하고 또한 λ (x)의 계수와 μ (x)의 계수와 서로 교환해서(S18단계), 두 다항식 Q(x)와 μ (x)의 계수를 오른쪽으로 한 차수만큼 이동하고, 다음 상태 변수(SVi+1)를 현재 상태 변수(SVi)에서 "1"을 가산한 값으로 설정한다(S19단계). 이때, R(x)와 Q(x)의 다항식 계수 배열 구조는 도 9의 (d)에 도시된 바와 같다.
한편, S17단계에서 R(x)의 최고차항의 계수가 "0"이 아니고, Q(x)의 최고차항의 계수가 "0"이면 R(x)의 차수가 Q(x)의 차수보다 크므로 두 다항식 Q(x)와 μ (x)의 계수를 한 차수만큼 오른쪽으로 이동하고, 다음 상태 변수(SVi+1)를 현재 상태 변수(SVi)에서 "1"을 가산한 값으로 설정하는 S19단계를 수행한다. 이때, R(x)와 Q(x)의 다항식 계수 배열 구조는 도 9의 (e)에 도시된 바와 같다.
S15단계, S16단계, S19단계를 수행한 후 μ (x)의 차수가 Q(x)의 차수보다 큰지를 판단해서(S20단계), μ (x)의 차수가 Q(x)의 차수보다 클 때까지 S2단계로 피드백하여 S12단계 내지 S19단계를 반복수행한다.
본 발명의 회로는 다항식의 배열 구조를 변화시켜 별도의 차수 비교 회로가 요구되지 않으므로 차수 버퍼링이 필요하지 않아 하드웨어가 간단해지는 효과가 있다.
또한, 본 발명의 방법은 수정 유클리드 알고리즘을 계산할 때 각 다항식의 최고차수를 직접 비교하지 않고도 원하는 반복 연산을 수행할 수 있고, 각 다항식의 현재 차수를 저장할 필요가 없으므로 버퍼링도 필요없는 효과가 있다.
Claims (20)
- 수정 유클리드 알고리즘을 이용하여 수신되는 심볼의 오류를 정정하는 리드-솔로몬(RS) 복호기에 있어서:입력되는 초기 에러 위치 다항식과 수정 오증 다항식을 이용하여 수정 유클리드 알고리즘을 위한 네 개의 각 다항식(R(x),Q(x),
λ μ 상기 각 다항식의 계수를 왼쪽부터 배열하는 배열기;매 반복 계산의 처음을 알리는 반복 제어신호를 이용해서 각 다항식의 유효한 구간을 나타내는 제어신호들을 발생하는 발생기; 및상기 제어신호들을 근거로 하여 상기 계산기로부터 인가되는 다항식 R(x)를 에러 평가 다항식으로, 다항식λ - 제1항에 있어서, 상기 발생기는 다항식(R(x),Q(x),
μ μ - 제2항에 있어서, 상기 계산기는,상기 발생기에서 발생하는 R(x)와 Q(x)의 제어신호에 따라 상기 배열기로부터 인가되는 R(x)와 Q(x)의 첫 번째 유효한 값들을 그 다항식의 최고차항의 계수로 기억시키는 저장부를 더 포함함을 특징으로 하는 RS 복호기.
- 제2항에 있어서, 상기 추출기는 상기 발생기로부터 인가되는 Q(x)의 제어신호가 아직 유효한 구간이 아닌데
μ λ - 제2항에 있어서, 상기 발생기에서 발생하는 R(x)와 Q(x)의 제어신호를 이용하여, 시프트신호와 교환제어신호를 발생하고 또한 두 다항식 R(x)와 Q(x)의 차수의 차이를 나타내는 상태변수를 결정해서 상기 배열기의 다항식 계수 배열을 제어하는 배열 제어기를 더 포함함을 특징으로 하는 RS 복호기.
- 제5항에 있어서, 상기 배열 제어기는 R(x)와 Q(x)의 제어신호를 이용하여 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고,
μ λ λ μ - 제6항에 있어서, 상기 배열기는 상기 결정기로부터 두 다항식 R(x)와 Q(x)의 차수가 같다는 상태 변수가 인가되면 상기 두 다항식들의 계수들을 단위 시간 만큼 지연해서 배열하고, 그렇지 않고 어느 한 다항식의 차수가 더 크다는 상태 변수가 인가되면 두 다항식들의 계수들을 지연시키지 않고 배열하는 것을 특징으로 하는 RS 복호기.
- 오증값들을 바탕으로하여 에러의 위치와 크기를 찾아내는 리드-솔로몬(RS) 복호기에 있어서:수신 데이터로부터 오증값을 계산하여 오증 다항식을 구성하는 다항식 계산기;입력되는 상기 수신 데이터의 오류 정보로부터 초기 에러 위치 다항식을 위한 근을 발생하고, 새로운 오류 정보가 입력될 때마다 반복 계산의 시작을 알리는 반복 제어신호를 발생하는 발생기;상기 근을 이용하여 초기 에러 위치 다항식을 전개하는 제1 다항식 전개부;상기 오증값과 근을 이용하여 수정 오증 다항식을 전개하는 제2 다항식 전개부; 및상기 초기 에러 위치 다항식과 수정 오증 다항식을 이용하여 에러 평가 다항식과 에러 위치 다항식을 추출하는 수정 유클리드 알고리즘 계산기를 포함하고,상기 수정 유클리드 알고리즘 계산기는,상기 초기 에러 위치 다항식과 수정 오증 다항식을 이용하여 수정 유클리드 알고리즘을 위한 네 개의 다항식(R(x),Q(x),
λ μ 상기 각 다항식의 계수를 왼쪽부터 배열하며, 배열된 각 다항식의 계수들을 상기 계산기에 인가하는 배열기;상기 반복 제어신호를 이용해서 다항식(R(x),Q(x)와μ μ 상기 R(x)와 Q(x)의 제어신호를 인에이블신호로 입력하여 상기 배열기로부터 인가되는 R(x)와 Q(x)의 첫 번째 유효한 값들을 최고차항의 계수들로 기억시켜서 상기 계산기에 인가하는 저장부;상기 Q(x)의 제어신호와μ 상기 선택신호에 따라 상기 계산기에서 인가되는 다항식 R(x)를 에러 평가 다항식으로, 다항식λ - 제8항에 있어서, 상기 선택신호 발생기는 Q(x)의 제어신호가 아직 유효한 구간이 아닌데
μ λ - 제8항에 있어서, 상기 R(x)와 Q(x)의 제어신호를 이용하여, 시프트신호와 교환제어신호를 발생하고 또한 두 다항식 R(x)와 Q(x)의 차수의 차이를 나타내는 상태변수를 결정해서 상기 배열기에 인가하는 결정기를 더 포함함을 특징으로 하는 RS 복호기.
- 제8항에 있어서, 상기 결정기는 R(x)와 Q(x)의 제어신호를 이용하여 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고,
μ λ λ μ - 제11항에 있어서, 상기 배열기는 상기 결정기로부터 두 다항식 R(x)와 Q(x)의 차수가 같다는 상태 변수가 인가되면 상기 두 다항식들의 계수들을 지연해서 배열하고, 그렇지 않고 어느 한 다항식의 차수가 더 크다는 상태 변수가 인가되면 두 다항식들의 계수들을 지연시키지 않고 배열하는 것을 특징으로 하는 RS 복호기.
- 수정 유클리드 알고리즘을 이용하여 수신되는 심볼의 오류를 정정하는 리드-솔로몬 복호 방법에 있어서:(a) 상기 수정 유클리드 알고리즘을 위한 모든 다항식(R(x), Q(x),
λ μ (b) 왼쪽부터 배열된 모든 다항식의 계수가 어디서부터 유효한 다항식의 계수인지를 나타내는 각 다항식의 제어신호를 발생하는 단계;(c) 다항식 Q(x)와μ (d) 상기 (c)단계에서μ λ (e) 상기 (d)단계에서 두 다항식(R(x), Q(x))중 어느 한 다항식의 최고차항의 계수가 "0"이라고 판별되면 최고차항의 계수가 "0"인 다항식과 이 다항식과 쌍을 이루는 다항식의 계수를 오른쪽으로 한 차수만큼 시프트시키고, 그렇지 않으면 상기 각 다항식을 반복 계산하는 단계를 포함함을 특징으로 하는 RS 복호 방법. - 제13항에 있어서, 상기 (e)단계에서는 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고,
μ λ μ - 제13항에 있어서, 상기 (e)단계에서는 Q(x)의 최고차항의 계수가 "0"이면 Q(x)와
μ - 제13항에 있어서, 상기 (c)단계에서는 입력되는 반복 계산의 시작을 알리는 반복 제어신호에 응답하여 상기 (a)단계에서 배열된 처음으로 "0"이 아닌 Q(x)의 계수와
μ μ - 제13항에 있어서, 상기 (b)단계에서 발생되는 R(x)와 Q(x)의 제어신호를 이용하여 두 다항식(R(x),Q(x))의 최고차항의 계수를 기억시키고, 기억된 최고차항의 계수는 각 다항식을 반복 계산하는 상기 (e)단계는 인가하는 단계(f)를 더 포함함을 특징으로 하는 RS 복호 방법.
- 수정 유클리드 알고리즘을 수행하기 위한 다항식 배열 방법에 있어서:(a) 초기 상태 변수를 설정하는 단계;(b) Q(x)와 R(x)의 어느 하나라도 최고차항의 계수가 "0"인지를 판단해서 두 다항식중 어느 한 다항식의 최고차항의 계수가 "0"이 아니면 두 다항식의 차수가 같은지를 판단하는 단계;(c) 상기 (b)단계에서 상기 두 다항식의 차수가 같지 않으면 각 다항식(R(x),Q(x),
λ μ (d) 상기 (b)단계에서 두 다항식의 차수가 같으면 각 다항식을 계산한 후 R(x)의 계수와 Q(x)의 계수를 서로 교환하고,λ μ (e) 상기 (b)단계에서 두 다항식(Q(x), R(x))중 어느 한 다항식의 최고차항의 계수가 "0"이면, R(x)의 최고차항의 계수가 "0"인지를 판단하는 단계;(f) 상기 (e)단계에서 R(x)의 최고차항의 계수가 "0"이면 R(x)의 계수와 Q(x)의 계수를 서로 교환하고 또한λ μ μ μ - 제18항에 있어서, 상기 (c),(d) 및 (f)단계 중 어느 한 단계를 수행한 후 다항식
μ μ - 제18항에 있어서, 상기 초기 상태 변수는 "1"이고, 이 초기 상태 변수에 대응하는 두 다항식 R(x)와 Q(x)의 배열 구조는 R(x)의 차수가 Q(x)의 차수보다 한 차수 크며, 상기 두 다항식의 계수는 왼쪽부터 배열되어 있으며 상기 두 다항식의 최고차항의 차수는 동일 위치에 배열되어 있는 것을 특징으로 하는 다항식 배열 방법.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970052641A KR100258952B1 (ko) | 1997-10-14 | 1997-10-14 | 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법 |
JP28554698A JP3245119B2 (ja) | 1997-10-14 | 1998-10-07 | 新たな多項式配列構造を採用したリード−ソロモン復号器とその復号方法 |
CN98121341A CN1130837C (zh) | 1997-10-14 | 1998-10-12 | 采用新多项式排列结构里德-索罗门解码器及解码方法 |
FR9812790A FR2771229B1 (fr) | 1997-10-14 | 1998-10-13 | Decodeur de reed-solomon utilisant une nouvelle architecture d'arrangement polynomial et procede de decodage associe |
NL1010312A NL1010312C2 (nl) | 1997-10-14 | 1998-10-13 | Reed-Solomon decoderingsinrichting die gebruik maakt van een nieuwe polynoomopstellingsarchitectuur en decoderingswerkwijze daarvoor. |
US09/172,081 US6256763B1 (en) | 1997-10-14 | 1998-10-14 | Reed-Solomon decoder having a new polynomial arrangement architecture and decoding method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970052641A KR100258952B1 (ko) | 1997-10-14 | 1997-10-14 | 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990031804A true KR19990031804A (ko) | 1999-05-06 |
KR100258952B1 KR100258952B1 (ko) | 2000-06-15 |
Family
ID=19522731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970052641A KR100258952B1 (ko) | 1997-10-14 | 1997-10-14 | 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6256763B1 (ko) |
JP (1) | JP3245119B2 (ko) |
KR (1) | KR100258952B1 (ko) |
CN (1) | CN1130837C (ko) |
FR (1) | FR2771229B1 (ko) |
NL (1) | NL1010312C2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100900329B1 (ko) * | 2007-07-13 | 2009-06-02 | 한양대학교 산학협력단 | 리드솔로몬 복호 방법 및 장치 |
KR100979366B1 (ko) * | 2003-02-14 | 2010-08-31 | 주식회사 케이티 | 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848069B1 (en) * | 1999-08-10 | 2005-01-25 | Intel Corporation | Iterative decoding process |
US7366258B2 (en) * | 2001-06-08 | 2008-04-29 | Broadcom Corporation | Chip blanking and processing in SCDMA to mitigate impulse and burst noise and/or distortion |
US20030101406A1 (en) * | 2001-10-12 | 2003-05-29 | Leilei Song | Low complexity and low power FEC supporting high speed parallel decoding of syndrome-based FEC codes |
US7051267B1 (en) | 2002-04-08 | 2006-05-23 | Marvell International Ltd. | Efficient high-speed Reed-Solomon decoder |
US7010739B1 (en) | 2002-04-11 | 2006-03-07 | Marvell International Ltd. | Error evaluator for inversionless Berlekamp-Massey algorithm in Reed-Solomon decoders |
GB2391769B (en) * | 2002-07-31 | 2005-07-06 | Hewlett Packard Co | Reed-Solomon decoder and decoding method for errors and erasures decoding |
US20040163030A1 (en) * | 2003-02-13 | 2004-08-19 | International Business Machines Corporation | Iterative error correcting system |
JP3843952B2 (ja) * | 2003-02-27 | 2006-11-08 | ソニー株式会社 | 復号装置、誤り位置多項式計算方法、プログラム |
FI20030845A0 (fi) * | 2003-06-05 | 2003-06-05 | Nokia Corp | Tiedonkäsittelymenetelmä, vastaanotin ja verkkolaite |
FR2863794B1 (fr) * | 2003-12-16 | 2006-03-03 | Canon Kk | Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique |
FR2865083B1 (fr) * | 2004-01-13 | 2006-04-07 | Canon Kk | Decodage pour code de geometrie algebrique associe a un produit fibre. |
US8806295B2 (en) * | 2012-05-24 | 2014-08-12 | International Business Machines Corporation | Mis-correction and no-correction rates for error control |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341385A (en) * | 1987-06-18 | 1994-08-23 | Sony Corporation | Method and apparatus for decoding Reed-Solomon code |
US4868828A (en) * | 1987-10-05 | 1989-09-19 | California Institute Of Technology | Architecture for time or transform domain decoding of reed-solomon codes |
KR0135824B1 (ko) * | 1994-11-10 | 1998-05-15 | 윤종용 | 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기 |
JP3233860B2 (ja) * | 1996-10-25 | 2001-12-04 | 松下電器産業株式会社 | リードソロモン復号器 |
-
1997
- 1997-10-14 KR KR1019970052641A patent/KR100258952B1/ko not_active IP Right Cessation
-
1998
- 1998-10-07 JP JP28554698A patent/JP3245119B2/ja not_active Expired - Fee Related
- 1998-10-12 CN CN98121341A patent/CN1130837C/zh not_active Expired - Fee Related
- 1998-10-13 NL NL1010312A patent/NL1010312C2/nl not_active IP Right Cessation
- 1998-10-13 FR FR9812790A patent/FR2771229B1/fr not_active Expired - Fee Related
- 1998-10-14 US US09/172,081 patent/US6256763B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100979366B1 (ko) * | 2003-02-14 | 2010-08-31 | 주식회사 케이티 | 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기 |
KR100900329B1 (ko) * | 2007-07-13 | 2009-06-02 | 한양대학교 산학협력단 | 리드솔로몬 복호 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
FR2771229B1 (fr) | 2001-02-02 |
FR2771229A1 (fr) | 1999-05-21 |
CN1214575A (zh) | 1999-04-21 |
JP3245119B2 (ja) | 2002-01-07 |
NL1010312C2 (nl) | 2000-05-31 |
JPH11225079A (ja) | 1999-08-17 |
CN1130837C (zh) | 2003-12-10 |
US6256763B1 (en) | 2001-07-03 |
KR100258952B1 (ko) | 2000-06-15 |
NL1010312A1 (nl) | 1999-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5157669A (en) | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors | |
US6374383B1 (en) | Determining error locations using error correction codes | |
US8132083B1 (en) | Architecture and control of reed-solomon list decoding | |
US5027357A (en) | ECC/CRC error detection and correction system | |
KR100594241B1 (ko) | 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로 | |
US5107503A (en) | High bandwidth reed-solomon encoding, decoding and error correcting circuit | |
US5170399A (en) | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack | |
KR100258952B1 (ko) | 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법 | |
US5805617A (en) | Apparatus for computing error correction syndromes | |
US4841300A (en) | Error correction encoder/decoder | |
JP3305525B2 (ja) | 復号器、誤りロケータシーケンス生成器および復号方法 | |
KR100258951B1 (ko) | 리드-솔로몬(rs) 복호기와 그 복호방법 | |
JP4134029B2 (ja) | リードソロモン符号の軟判定復号方法 | |
US5315600A (en) | Error correction system including a plurality of processor elements which are capable of performing several kinds of processing for error correction in parallel | |
JP2001196938A (ja) | デジタルデータをデコーディングする装置及び方法 | |
EP0911983A1 (en) | Reed solomon error correcting circuit and method and device for euclidean mutual division | |
KR20060065452A (ko) | 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로 | |
EP0793352B1 (en) | Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder | |
KR100437845B1 (ko) | 리드-솔로몬 복호기의 고속 수정 유클리드 알고리즘 연산방법 및 연산회로 | |
Lee et al. | An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes | |
JP2726902B2 (ja) | 広帯域巾のリード‐ソロモンエンコード、デコード及びエラー修正回路 | |
KR100192802B1 (ko) | 리드 솔로몬 디코더의 에러값 계산 및 정정 장치 | |
KR100212082B1 (ko) | 리드솔로몬 디코더에서 멀티플라이어 에러정정방법 및 시스템 | |
KR100307583B1 (ko) | 수정치엔탐색회로를이용한리드-솔로몬복호기 | |
JPH09162753A (ja) | 符号語の復号方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080228 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |