KR950008489B1 - Decoder for erasor correction under lying 2 symbol - Google Patents
Decoder for erasor correction under lying 2 symbol Download PDFInfo
- Publication number
- KR950008489B1 KR950008489B1 KR1019880011826A KR880011826A KR950008489B1 KR 950008489 B1 KR950008489 B1 KR 950008489B1 KR 1019880011826 A KR1019880011826 A KR 1019880011826A KR 880011826 A KR880011826 A KR 880011826A KR 950008489 B1 KR950008489 B1 KR 950008489B1
- Authority
- KR
- South Korea
- Prior art keywords
- erasure
- symbol
- output
- flag
- input
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
제1도는 디지탈 통신계도1 is a digital communication system diagram
제2도는 본 발명에 따른 구체회로도2 is a specific circuit diagram according to the present invention
제3도는 제2도의 각부에 대한 동작 파형도3 is an operation waveform diagram of each part of FIG.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
S0,S1 : 신드롬 연산 레지스터 RS0,RS1 : 신드롬값 저장레지스터S0, S1: Syndrome operation register RS0, RS1: Syndrome value storage register
G0,G1 : 이레이져 위치 연산 레지스터G0, G1: Eraser Position Operation Register
RG0,RG1 : 이레이져 위치 연산값 위치 연산값 레지스터RG0, RG1: Eraser position operation value position operation value register
REG : 심볼 위치지시 레지스터 MX1-MX3 : 멀티플렉서REG: Symbol position indication register MX1-MX3: Multiplexer
BF1,BF2 : 버퍼 CNT : 카운터BF1, BF2: Buffer CNT: Counter
LTH : 래치 OG1-OG3 : 오아게이트LTH: Latch OG1-OG3: Oagate
AG1 : 앤드게이트 G : 게이트AG1: Endgate G: Gate
A1-A5 : 가산기 M1-M5 : 승산기A1-A5: adder M1-M5: multiplier
D1-D2 : 계산기D1-D2: Calculator
발명은 리드-솔로몬 부호(Reed-Sololmon Code : 이하 "R-S"부호라 칭한다)의 복호회로에 관한 것으로, 특히 리드-솔로몬 부호화된 데이타를 수신하여 2심볼이하의 이레이져를 정정할 수 있는 복호회로에 관한 것이다.BACKGROUND OF THE
상기 R-S부호는 순회부호(Cyclic Code)의 일종의 BCH부호(Bose-Chaudhuri-Hocquenghem Codes)중 비2원 BCH부호(Non Binary BCH Code)로서 다중에러를 정정하는 가장 강력한 부호로 알려져 왔다.The R-S code is a non-binary BCH code among Bose-Chaudhuri-Hocquenghem Codes of Cyclic Code and is known as the strongest code for correcting multiple errors.
제1도는 참조하여 디지탈 통신과정을 설명하면, 먼저 송신단(1)에서 부호어(Code word) "c"를 전송했을때 채널(2)을 거치면서 에러(error) "e"가 유입되어 수신단(3)에서는 부호어 "c"에 에러 "e"가 삽입된 "r"이 도달하게 된다. 즉, 상기 송신단(1)에서는 순수데이터 "d"에 에러검사를 위한 패리티(parity) "p"를 첨가하여 부호어 "c"를 형성한후 전송하게 되며, 수신단(3)에서는 미리 규정되어 있는 순수데이타 "d"와 패리티 "p"의 관계식으로부터 에러 "e"의 유입 여부를 검사하며, 에러 "e" 유입시 해당위치의 에러를 정정하게 된다.Referring to FIG. 1, a digital communication process will be described. First, when a code word “c” is transmitted from a
상기와 같은 통신과정을 상세히 설명하면, R-S부호에서는 부호어를 하기와 같이 표시한다.Referring to the communication process as described above in detail, in the R-S code code code is represented as follows.
상기 (1),(2)에시 c(x)는 부호어의 코드다항식(Code Polynomial)이고, c는 코드다항식의 계수이며, Ci는 기본데이타 단위로서 심볼(Symbol)이라 칭한다.In (1) and (2), c (x) is a code polynomial of a codeword, c is a coefficient of a code polynomial, and Ci is a symbol as a basic data unit.
그러므로 (3)식에서 n은 심볼수이고, k는 데이타 심볼수이다.Therefore, in equation (3), n is the number of symbols and k is the number of data symbols.
송신단(1)에서 상기 (1)식과 같은 부호어를 형성하는 인코딩(encoding)의 관계식은 하기와 같다.The relational expression of the encoding that forms the codeword in Equation (1) in the transmitting
상기 (4)식에서 d(x)는 순수데이타 다항식이고, p(x)는 패리티다항식으로서 패리티다항식의 차수는 n-k-l차이다. 또한 (5)식에서의 c(x)는 (4)식의 c(x)와 동일한 값으로 G(x)는 α0-αn-ha을 근으로 하는 생성다항식(Generat Polynomiion al)이고, Q(x) 는 몫이다.In Equation (4), d (x) is a pure data polynomial, p (x) is a parity polynomial, and the order of the parity polynomial is nkl. C (x) in Eq. (5) is the same value as c (x) in Eq. (4), and G (x) is a Generat Polynomiion al based on α 0 -αn- ha . x) is quotient.
따라서 상기 (5)식에 의해 알수 있듯이 G(x)의 근은 모두가 x(c)의 근이되며,이것은 에러검사 및 정정의 키(key)가 된다.Therefore, the roots of G (x) are all roots of x (c), as can be seen by the above expression (5), which is a key for error checking and correction.
상기와 같이 송신단(1)에서 형성된 부호어가 채널(2)을 통해 수신단(3)에 도달된 "r"은 하기(7)식과 같은 다항식으로 표현할수 있다.As described above, the "r" that the codeword formed in the
상기 (7)에서 R(x)는 수신부호 다항식이고 E(x)는 채널(2)을 거치면서 발생할 수 있는 에러다항식이다.In (7), R (x) is a receiving polynomial and E (x) is an error polynomial that can occur while passing through channel (2).
이때 R-S부호에서의 가산+연산은 XOR(Exclusive OR) 연산임을 유의하면, 수신단(3)에서의 에러 정정은, 즉 상기 (7)식과 같은 R(x)로부터 c(x)를 구하는 것은, E(x)를 구하여 R(x)에 XOR하면 에러정정을 실행할 수 있다.Note that the addition + operation in the RS code is an XOR (Exclusive OR) operation, the error correction at the receiving end (3), that is, to obtain c (x) from R (x) as shown in Equation (7), E Obtain (x) and XOR to R (x) to perform error correction.
또한 에러가 발생했다는 것은 C(X)의 각항에 대해 에러가 발생했다는 것을 의미하므로, R(x)의 한 심볼의 에러가 발생되었다면 하기 (8),(9)과 같이 표현할 수 있다.In addition, since an error has occurred for each term of C (X), an error of one symbol of R (x) can be expressed as follows (8) and (9).
그러므로 상기 (9)식과 같이 에러유입시, 수신 심볼로부터 신드롬(Syndrome)을 계산하고, 에러위치 다항식을 구하며, 상기 에러위치 다항식으로 부터 에러위치를 계산한후, 상기 계산된 에러위치에서의 에러값을 계산함으로서 에러를 정정할 수 있다.Therefore, when an error is introduced as in Equation (9), a syndrome is calculated from a received symbol, an error location polynomial is obtained, an error location is calculated from the error location polynomial, and the error value at the calculated error location is calculated. The error can be corrected by calculating.
따라서 에러의 위치, 즉 몇차항의 심볼에 에러가 발생했는가를 찾아낸후 에러의 값을 구하여, 해당 항에 XOR하여 에러를 정정할 수 있다.Therefore, after finding the position of the error, that is, the symbol of the order term, the error value can be obtained, and the error can be corrected by XORing the term.
상기 에러형태는 두종류로 나뉘는데 상기 (8)식과 같은 형태와 같이 에러값과 발생위치를 알지 못하는 에러와, 발생위치를 알고있는 에러의 두종류 에러 형태가 있다. 이때 전자와 같은 에러발생의 위치를 모르는 경우는 "에러"라 칭하고 후자와 같은 에러의 발생위치를 알고 있는 에러는 이레이져(erasure)라 칭한다. 상기 수신단(3)의 복호회로는 1차 복호회로와 2차 복호회로로 구성되는데, 1차 복호회로에서는 에러의 발생위치를 찾아 소성갯수의 에러를 정정하며, 정정하지 못한 에러는 에러발생위치와 함께 2차 복호회로로 보내게된다. 따라서 2차 복호회로는 1차 복호회로에서 정정하지 못한 이레이져를 정정하게 된다.The error types are divided into two types. There are two types of error types, as shown in Equation (8) above, an error of not knowing the error value and the occurrence position and an error of knowing the occurrence position. In this case, when the location of the error occurrence such as the former is not known, it is referred to as "error", and the error which knows the location of the error such as the latter is called erasure. The decoding circuit of the receiving
상기와 같은 R-S부호의 부호회로에서 소정갯수의 이레이져만을 정정한다는 전체하에 2차 디코더회로를 구성할 경우, 본래의 R-S코드식으로 풀이하여 정정회로를 구현하면 에러위치를 계산하는 구성과 에러값을 연산하는 구성이 복잡해져 하드웨어 사이즈(hardware size)가 엄청나게 커지게 되며, 회로 구성도 복잡해지게 되므로 회로 구성의 어려움을 수반했던 문제점이 있다. 따라서 본 발명의 목적은 R-S부호의 복호회로에서 두개 이하의 이레이져를 정정할 수 회로를 제공함에 있다.When the secondary decoder circuit is configured under the entirety of correcting only a predetermined number of erasers in the code circuit of the RS code, the configuration and error value for calculating the error position when the correction circuit is implemented by solving the original RS code expression. Since the configuration for calculating the complexity becomes a huge hardware size (hardware size), and the circuit configuration is also complicated, there is a problem that accompanied the difficulty of circuit configuration. Accordingly, an object of the present invention is to provide a circuit capable of correcting two or less erasers in a decoding circuit of an R-S code.
본 발명의 다른 목적을 에러 유무를 나타내는 플래그 및 데이타를 수신하여 복호하는 회로에서, 상기 플래그로부터 에러위치에 관한 다항식을 계산하고 계산된 다항식으로 부터 에러 정보의 신드롬을 계산하며, 상기 신드롬으로부터 에러값을 구하고 이레이져 계산블록에서 지정하는 위치에서 상기 다항식과 에러값을 익스클루시브 오아연산하여 두 심볼 이하의 이레이져를 정정할 수 있는 회로를 제공함에 있다.According to another object of the present invention, in a circuit for receiving and decoding a flag and data indicating an error, calculating a polynomial of an error position from the flag, calculating a syndrome of error information from the calculated polynomial, and calculating an error value from the syndrome. In the present invention, a circuit capable of correcting an erasure of two symbols or less by performing an exclusive o- operation on the polynomial and an error value at a position specified by an erasure calculation block is obtained.
이하 본 발명을 도면을 참조하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.
제2도는 본 발명에 따른 듀얼 이레이져 정정(dual erasure correction)회로의 구체회로도로서, 입력되는데 심몰들을 궤환 및 누적하여 제1 신드롬 S0및 제2 신드롬 S1을 계산하는 신드롬연산부(10)와, 최고차 항의 심볼위치인 αn에서 매 입력 클럭마다 α-1을 곱하여 궤환시키므로 입력되는 현 입력심볼의 위치 α1를 지시하는 심볼위치지시부(20)와, 상기 플래그를 입력하여 이레이져의 수를 카운트하며 제1 이레이져심볼위치에서 제1 선택신호를 발생하고 제2 이레이져심볼 위치에서 제2 선택신호를 발생하는 이레이져값선택부(30)와, 제1 이레이져연산수단 및 제2 이레이져연수단을 구비하고 심볼위치정보 및 플래그를 입력하며, 상기 심볼위치정보를 연산하여 제1 이레이져위치정보 G0를 발생하는 상기 제1 이레이져연산수단이 상기 플래그의 상태에 따라 정상 심볼일 시 "1"을 출력하고 제1 이레이져심볼 입력시 αi를 출력하며 제2 이레이져심볼 입력시 αi*αj를 출력하고, 상기 심볼위치정보를 연산하여 제2 이레이져위치정보 G1을 발생하는 상기 제2 이레이져연산수단이 상기 플래그의 상태에 따라 정상심볼일 시 "0"를 출력하고 제1 이레이져심볼 입력시 "1"을 출력하며 제2 이레이져심볼 입력시 αi+αj를 출력하는 제1정정부(40)와, 상기 제1 신드롬 S0과 상기 제1 이레이져위치정보 G0를 승산하여 S0*αi를 발생하는 수단, 상기 승산수단과 상기 제2 신드롬 S1을 가산하여 S1+(S0*αi)를 발생하는 수단 및 상기 가산수단과 제2 이레이져위치정보 G1을 제산하여를 발생하는 수단만으로 구성되는 연산수단과, 상기 제1신드롬 S0를 제1 입력신호로 입력하고 상기 제산수단의 출력을 제2입력신호로 수신하는 선택수단을 구비하며, 상기 선택수단이 상기 제1 선택신호 입력시 제1입력신호를 이레이져정정데이타로 선택출력하고 상기 제2 선택신호 입력시 상기 제2 입력신호를 이레이져정정데이타로 선택출력하는 제2 정정부(50)와, 상기 심볼데이타를 저장하는 심볼버퍼(BF1)와, 상기 플래그를 저장하는 플래그버퍼(BF2)와, 상기 제2정정부(50)의 출력을 입력하며, 상기 플래그버퍼(BF2)에서 이레이져플래그 출력시 온되어 상기 이레이저정정데이타의 출력 통로를 형성하는 게이트(G)와, 심볼퍼버(BF1)와 게이트(G)의 출력을 입력하여 정상 심볼일 시 입력되는 상기 심볼데이타를 출력하며 이레이져 심볼일 시 상기 이레이져정정데이타와 입력되는 심볼을 익스클루시브 오아 연산하여 정정 출력하는 가산기(A5)로 구성된다.FIG. 2 is a detailed circuit diagram of a dual erasure correction circuit according to the present invention, and the input and
상기 제2도는 C(14,12)로서, 송 14개의 심볼중 12개의 데이타 심볼과 2개의 패리티심볼을 갖는 부호어를 복호화하는 회로의 구성예를 도시하고 있다.2 shows an example of the configuration of a circuit for decoding codewords having 12 data symbols and two parity symbols among 14 symbols in the C (14, 12).
상기의 구성에서 신드롬 연산부(10)는 1차 복호회로에서 발생하는 심볼을 가산기(A1,A2)의 일측 입력단에 인가하고, 상기 가산기(A1,A2)의 출력은 각각 신드롬연산레지스터(S0,S1)에 인가하여, 제1 신드롬 연산레지스터(20)는 해당 심볼의 신드롬을 연산하여 제1 신드롬을 출력하는 동시에 가산기(A1)의 타측 입력단에 궤환인가하고, 상기 제2 신드롬연산레지스터(S1)는 해당 심볼의 신드롬을 연산하여 제2신드롬을 연산하는 동시에 승산기(M1)에 인가하여, 상기 승산기(M1)는 상기 제2 신드롬에 α를 곱하여 상기 가산기(A2)의 타측 입력단에 궤환 인가하도록 구성한다.In the above configuration, the
상기 신드롬위치지시부(20)는 수신되는 심볼의 최고차 항위치값인 α12과 제2승산기(M2) 출력을 심볼위치지시레지스터(REG)에 인가하고, 상기 심볼위치지시레지스터(REG)는 반전 제1클럭(CK0)에 의해 해당심볼의 위치신호를 발생하는 동시에 제2승산기(M2)에 인가하고, 상기 제2승산(M2)는 상기 심볼위치 신호와 α-1을 곱하여 출력하도록 구성한다. 따라서 상기 심볼위치지시레지스터(REG)를 출력하는 α1는 현입력 심볼의 위치 정보가 된다.The syndrome
이레이져값선택부(3Q)는 상기 플래그를 입력하여 이레이져 발생수를 세는 카운터(CNT)와, 상기 카운터(CNT)의 출력을 입력하며 상기 제2클럭(CK1)에 의해 상기 카운터(CNT) 출력을 래치하는 래치(LTH)와, 상기 래치(LTH)의 Q2 및 Q3출력을 오아게이트(OG1)로 인가하여 이레이져가 없거나 3개 이상의 이레져 발생여부를 나타내는 선택신호를 발생하는 수단과, 상기 래치(LTH)의 Q0 및 오아게이트(OG1)의 출력을 오아게이트(OG2)로 인가하여 1개의 이레이져 발생여부를 나타내는 선택신호를 발생하고, 상기 래치(LTH)의 Q1 및 오아게이트(OG1)의 출력을 오아게이트(OG2)로 인가하여 2개의 이레이져 발생여부를 나타내는 신호를 발생하는 수단으로 구성한다.The erasure value selection unit 3Q inputs the flag to count the number of erasure occurrences of the eraser, the input of the counter CNT, and the counter CNT by the second clock CK1. A means for generating a select signal indicating whether or not there is no erasure or three or more erasures by applying a latch LTH for latching an output and outputs Q2 and Q3 of the latch LTH to the oragate OG1; The output of Q0 and OG1 of latch LTH is applied to OG2 to generate a selection signal indicating whether one eraser is generated, and Q1 and OG1 of latch LTH are generated. Means for generating a signal indicating whether two erasers are generated by applying the output of the "
상기 제1 이레이져정정부(40)는 데이타 "1" 또는 제1 멀티플렉싱 데이타를 입력하여 제1 이레이져위치데이타를 연산하는 제1 이레이져위치연산레지스터(G0)와 데이타 "0" 또는 소정의 제2 멀티플렉싱 데이타를 입력하여 제2 이레이져 위치데이타을 연산하는 제2 이레이져위치연산레지스터(G1)를 구비한다. 상기 제1 이레이져위치연산레지스터(G0}는 제1클럭(CK0)에 의해 제1 이레이져위치데이타를 발생하여 멀티플렉서(MX1), 승산기(M3), 가산기(A3)등의 일단 및 제1 이레이져위치연산값레지스터(RG0)로 출력한다. 상기 승산기(M3)는 상기 심볼위치지시레지스터(REG)의 출력과 제1 이레이져위치데이타를 곱하여 멀티플렉서(MX1)에 출력한다. 상기 멀티플렉서(MX1)는 상기 제1 이레이져연산위치레지스터(G0) 및 승산기(M3)의 출력을 입력하면 1차 복호회로에서 출력하는 플래그를 선택신호로 입력하며, 상기 플래그의 상태에 따라 제1 이레이져위치연산레지스터(G0) 또는 승산기(M3)의 출력을 선택하여 상기 제1멀티플렉싱데이타를 발생한다. 상기 제2 이레이져위치연산레지스터(G1)는 "0"데이타 및 멀티플렉서(MX2)의 출력을 입력하고 제1클럭(CK0)에 의해 제2 이레이져위치데이타를 연산하며, 연산결과 멀티플렉서(MX2), 승산기(M4), 가산기(A3)의 일단 및 제2 이레이져위치값 레지스터(RG1)에 송출한다. 상기 승산기(M4)는 제2 이레이져위치데이타와 상기 심볼위치지시레지스터(REG)의 출력을 곱하여 가산기(A3)에 출력한다. 상기 가산기(A3)는 상기 승산기(M4)의 출력과 제1 이레이져위치데이타를 더하여 멀티플렉서(MX2)의 타단에 출력한다. 상기 멀티플렉서(MX2)는 상기 제2 이레이져연산위치레지스터(G1) 및 가산기(A3)을 출력하고 상기 플래그를 선택신호로 입력하며, 상기 플래그신호에 의해 제2 이레이져위치데이타 또는 상기 가산기(A3)의 출력을 선택하여 상기 제2멀티플렉싱데이타를 출력한다.The first
제2 정정부(50)는 상기 제1 신드롬 데이타 및 제2 신드롬 데이타를 제2클럭(CK1) 주기동안 각각 저정할수 있도록 신드롬값저장레지스터(RS0,RS1)에 인가한다. 상기 신드롬값저장레지스터(RS0)의 출력은 멀티플렉서(MX3)의 E1단자에 출력되는 동시에 승산기(M5)에 출력된다. 상기 이레이져위치값저장레지스터(RG1)의 출력은 가산시(A4)에 출력딘다. 상기 이레이져위치연산값저장레지스터(RG0)의 출력 및 신드롬위치지정레지스터(REG)의 출력은 제1 제산기(D1)에 출력된다. 상기 제1 제산기(D1)의 출력은 상기 승산기(M5)의 다른 입력단에 출력된다. 상기 승산기(M5)의 출력은 가산기(A4)에 출력된다. 상기 가산기(A4)의 출력과 이레이져위치값저장레지스터(RG1)의 출력은 제산기(D2)에 출력된다. 상기 제산기(D2)의 출력을 멀티플렉서(MX3)의 E2만자에 출력된다. E0,E3단자가 접지에 연결되는 멀티플렉서(MX3)는 상기 오아게이트(OG2)의 출력에 의해 (E1)단자의 출력을 선택하고, 상기 오아게이트(OG3)의 출력에 의해 (E2)단자의 출력을 선택하며 그 이외는 E0,E3단자 출력을 선택하여 게이트(G)로 인가하도록 구성된다.The second correction unit 50 applies the first syndrome data and the second syndrome data to the syndrome value storage registers RS0 and RS1 so as to store the first syndrome data and the second syndrome data for the second clock CK1 period, respectively. The output of the syndrome value storage register RS0 is output to the E1 terminal of the multiplexer MX3 and to the multiplier M5. The output of the erasure position value storage register RG1 is output at the time of addition A4. The output of the erasure position operation value storage register RG0 and the output of the syndrome positioning register REG are output to the first divider D1. The output of the first divider D1 is output to the other input terminal of the multiplier M5. The output of the multiplier M5 is output to the adder A4. The output of the adder A4 and the output of the erasure position value storage register RG1 are output to the divider D2. The output of the divider D2 is output to only E2 of the multiplexer MX3. The multiplexer MX3 having the E0 and E3 terminals connected to the ground selects the output of the (E1) terminal by the output of the oragate OG2, and the output of the (E2) terminal by the output of the oragate OG3. Is selected, and otherwise, the outputs of the E0 and E3 terminals are selected and applied to the gate G.
제3도는 제2도의 각부에 대한 동작파형도로서, c(14,12)로 예를들고 있으며, 총 14개의 심볼중 12개의 데이타 심볼과 패리티 심볼을 갖는 코드로서 (4a)-(4c)현 부호어 주기동안 현 입력 심볼이 신드롬과 이레이져 위치를 연산하고 다음부호어 주기동안 이레이져 정정 과정을 수행함을 도시하고 있고, (4d)-(41)은 1부호어 주기동안 전 상태에서 연산한 신드롬값과 이레이져위치 연산값을 가지고 2개의 이레이져를 정정하는 과정을 도시하고 있다.FIG. 3 is an operation waveform diagram of each part of FIG. 2 as c (14,12). It shows that the current input symbol computes the syndrome and eraser position during the codeword period, and performs the eraser correction process for the next coder period, and (4d)-(41) computed the previous state during the 1word period. The process of correcting two erasers with a syndrome value and an eraser position calculation value is shown.
수신단(3)에서는 전술한 바와 같이 1차 및 2차 복호회로를 갖게되는데, 1차 복호회로에서 1차 에러를 정정하고, 정정하지 못한 에러를 위치를 표시하여 2차 복호회로로 전송한다. 상기 1차 복호회로에서 출력하는 데이타를 매 심볼단위로서 최고차 항으로 부터 순차적으로 입력되며, 플래그(flag)는 에러유입 여부를 나타내는 기능으로 매 입력되는 심볼과 함께 입력된다. 그러면 2차 복호회로는 상기 플래그로부터 에러위치에 관한 다항식을 계산한후 상기 (9)식과 같은 R(x)로 부터 에러에 관한 정보를 담고 있는 신드롬을 구한다. 이후 상기 신드롬과 에러위치 다항식으로 부터 에러값을 구하고, 이 이레이져 위치에 상기 에러연산값과 R(x)를 XOR연산하여 2개이하의 이레이져 정정을 수행하게 된다.The
먼저 이레이져의 위치를 알려주는 플래그로부터 위치 다항식을 계산해야 하는데, 이레이져 위치 다항식 α(x)는 이레이져가 2개 이하일 경우 하기(10) 및 (11)식과 같이 쓸수있다.First, the position polynomial should be calculated from the flag indicating the position of the eraser. The eraser position polynomial α (x) can be written as the following equation (10) and (11) when there are two or less erasers.
i) l개의 이레이져인 경우i) l erasure
ii) 2개의 어레이져인 경우ii) two arrayers
상기 식들에서 i,j는 이레이져가 발생한 치수의 위치를 나타낸다.In the above formulas, i, j represents the position of the dimension where the erasure occurred.
두번째로 에러에 관한 정보를 내포하고 있는 신드롬을 산출하는 과정을 살펴보면, 부호화과정은 상기(5),(6)식에서 G(x)의 모든 근은 c(x)의 근이되므로, C(α°) 및 C(α°)은 0가 됨을 알수 있다.Secondly, a process of calculating a syndrome containing information on an error is performed. In the encoding process, since all roots of G (x) in Eqs. (5) and (6) are roots of c (x), C (α) °) and C (α °) can be seen that 0.
따라서 S0=R(α°), S1=R(α')으로 정의되는데, 상기 S0및 S1은 하기(12) 및 (13)식과 같이 쓸수있다.Therefore, S 0 = R (α °), S 1 = R (α '), and S 0 and S 1 may be written as in the following Equations (12) and (13).
이후 에러값을 계산하는데 이는 상기 (10) 및 (11)식의 이레이져 다항식 σ(x)와 상기 (12) 및 (13)식의 신드롬 S0,S1으로 계산할 수 있다.The error value is then calculated, which can be calculated by the erasure polynomial σ (x) of equations (10) and (11) and syndromes S 0 and S 1 of equations (12) and (13).
여기서 이레이져가 유입되지 않은 경우, 1개의 이레이져가 유입된 경우 및 2개의 이레이져가 유입된 경우를 각각 살펴보면 하기와 같다.Here, when the eraser does not flow, the case where one eraser is introduced and two erasers are introduced will be described below.
i) 이레이져가 유입디지 않은 경우i) Eraser is not introduced
이때는 S0=0, S1=0 및 σ(x)=1이 될것이므로 정정이 필요하지 않다.At this time, S 0 = 0, S 1 = 0, and σ (x) = 1, so no correction is necessary.
ii) 1개의 이레이져가 유입된 경우ii) when one eraser is introduced
여기서 e(x)=eiαi가정하면 S0=ei, S1=Eiαj및 σ(x)=(x+αi)이 되므로 플래그를 통해 알고 있는 i차항 위치에 S0를 XOR하여 해당 이레이져를 정정한다.Assuming that e (x) = e i α i, then S 0 = e i , S 1 = E i α j and σ (x) = (x + α i ), so S 0 XOR to correct the eraser.
iii) 2개의 이레이져가 유입된 경우iii) when two erasers are introduced
이때는 S0=ei+ej, S1=e1αi+ej·αj및 α(x)=(X+αj)(x+αj)가 되므로, 상기 S0,S1및 σ(x)에서 i번째의 이레이져 값과 j번째의 이레이져값을 계산하며, 이는 하기 (14) 및 (15)식과 같이 표시할 수 있다.In this case, since S 0 = e i + e j , S 1 = e 1 α i + e j α j and α (x) = (X + α j ) (x + α j ), S 0 , S 1 And an i-th erasure value and a j-th erasure value at sigma (x), which can be expressed by the following equations (14) and (15).
상기 (14), (15)식에서 i,j,αi,αj,S0,S1은 이미 계산해 낸 값들이므로 ei,ej를 구할수 있다. 그러므로 플래그를 통해 알고 있는 i차항 및 j차항 위치에 상기와 같이 계산한 에러값을 XOR하여 해당 이레이져를 정정한다.In formulas (14) and (15), since i, j, α i , α j , S 0 , S 1 are already calculated values, i i , e j can be obtained. Therefore, the eraser is corrected by XORing the error value calculated as described above to the positions of the i-th order and j-th order terms known through the flags.
상술한 과정과 같이 두심볼의 이레이져 정정을 위한 구체회로도는 제2도와 같이 구현할수 있는데, 제2도 및 제3도의 타이밍도를 참조하여 두심볼 이하에 대한 이레이져 정정과정을 상세하게 설명한다.As described above, a detailed circuit diagram for erasure correction of two symbols may be implemented as shown in FIG. .
데이타 입력단자(100)를 통해 심볼단위의 데이타가 (4e)와 같이 최조차항으로부터 순차적으로 입력하고, 플래그 입력단자(101)를 통해 매 심볼마다 이레이져인가 여부를 알려주는 플래그가 (4f)와 같이 동시에 입력된다.The
여기서 상기 (3)식을 c(14,12)로 가정하는데, 이는 입력되는 총 14개의 심볼이 12개의 데이타의 심볼과 2개의 패리티 심볼을 갖는 코드임을 나타낸다. 이때 (4b) 및 (4c)와 같이 데이타 입력에서 정정까지의 (4a)와 같은 2개의 부호어(code word)구간이 소요되는데 첫구간에서는 입력데이타로부터 S0,S1을 통해 신드롬을 연산하고, G0,G1을 통해 이레이져 위치를 산출하며, 둘째 구간에서는 상기 S0,S1및 G0,G1의 출력을 연산하여 이레이져의 정정과정을 수행한다.Here, the equation (3) is assumed to be c (14,12), which indicates that a total of 14 symbols input are codes having 12 data symbols and 2 parity symbols. At this time, two code word sections such as (4a) from data input to correction are taken as shown in (4b) and (4c) .In the first section, syndrome is calculated through S 0 and S 1 from input data. The eraser position is calculated by using G 0 and G 1. In the second section, the output of the S 0 , S 1, and G 0 , G 1 is calculated to perform an eraser correction process.
제4도 (4a)와 같은 부호어 첫 구간에서 또한 카운터(CNT)는 입력되는 플래그들에서 이레이져수를 카운트하여 멀티플렉서(MX3)를 선택하기 위한 선택신호를 발생하며, 상기 카운터(CNT) 출력을 (4i)와같은 제2클럭(CK1)에 의해 래치하는 래치(LTH)는 둘째구간에서 에러값을 연산하여 이레이져를 정정할 수 있도록 타이밍을 보상하는 역할를 수행한다. 그러므로 멀티플렉서(MX3)는 카운터(CNT)의 출력에 따라 하기 <표 1>과 같이 동작한다.In the first section of the code word as shown in FIG. 4 (a), the counter CNT also generates a selection signal for selecting the multiplexer MX3 by counting the number of erasers in the input flags, and outputting the counter CNT. The latch LTH latching by the second clock CK1 such as 4i serves to compensate the timing so that the error value can be corrected by calculating an error value in the second section. Therefore, the multiplexer MX3 operates as shown in Table 1 according to the output of the counter CNT.
[표 1]TABLE 1
또한 심볼 및 플래그도 1부호어 주기동안 지연시켜야 하므로, 버퍼(BF1)는 입력하는 심볼을 1부호어 주기를 지연시켜 출력하며(심볼크기×16), 버퍼(BF2)는 플래그를 1부호주기 지연시켜, 정정하고자 하는 심볼이 버퍼(BF1)에서 출력할때 게이트(G)를 "온"시켜 상기 <표 1>과 같은 멀티플렉스(MX3)의 출력을 통과시키므로서 이레이져 위치를 지적해 주게된다.In addition, since the symbols and flags must be delayed for one code period, the buffer BF1 outputs the input symbol by delaying one code period (symbol size x 16), and the buffer BF2 delays the flag by one code period. When the symbol to be corrected is output from the buffer BF1, the gate G is turned on to pass the output of the multiplex MX3 as shown in Table 1 to indicate the erasure position. .
상기 게이트(G)를 통해 에러값 출력은 가산기(A5)에서 버퍼(BF1)의 출력과 XOR되어 이레이져를 정정하게 되며, 이레이져가 3개 일상일시에는 상기 멀티플랙서(MX3)의 출력이 0이므로 게이트(G)가 "오프7상택 되며 앤드게이트(G1)를 통해 정정하지 못했음을 알리는 "하이"신호를 신호처리부 측에서 인가한다.The error value output through the gate G is XORed with the output of the buffer BF1 at the adder A5 to correct the erasure. When the erasure is three everyday, the output of the multiplexer MX3 is Since the gate G is " off7 selected " and the " high " signal indicating that the gate G1 cannot be corrected through the AND gate G1 is applied to the signal processor.
신드롬 연산과정을 설명하면, S0는 (4e)와 같이 입력하는 심볼을 가산기(A1)가를 통해 더하여 하기와 같이 출력한다.Referring to the syndrome calculation process, S0 adds an input symbol as shown by (4e) through the adder A1 and outputs it as follows.
상기와 같은 S0은 제1신드롬값을 출력하게 된다.As described above, S 0 outputs a first syndrome value.
이때 S1은 (4e)와 같이 입력하는 심볼을 승산기(M1) 및 가산기(A2)를 통해 하기와 같이 출력한다.At this time, S1 outputs a symbol input as shown in (4e) through the multiplier M1 and the adder A2 as follows.
상기와 같은 Sα은 제2신드롬 값을 출력한다.Sα as described above outputs a second syndrome value.
이때 REG는 제4도의 (4a)와 같이 부호어 구간이 시작되었을때 α13이 로드되고 상기 S0및 S1제1 및 제2 신드롬값을 연산하는 동안 매 반전 제1클럭(CK0)마다 승산기 α-1씩 곱해져서 해당 심볼시간에 맞는α13-α0이 하기와 같이 출력한다. 따라서 REG는 α13,α12,α11…, α0이 출력한다.At this time, REG is multiplier for every inverted first clock CK0 while α 13 is loaded and the S 0 and S 1 first and second syndrome values are calculated when the codeword interval starts as shown in (4a) of FIG. α 13 -α 0, which is multiplied by α −1 and corresponding to the symbol time, is output as follows. Thus, REG is α 13 , α 12 , α 11 . , α 0 is output.
상기 REG가 지시하는 위치에서 심볼의 이레이져 발생 여부를 알기 위해서 G0,및 G1은 이레이져 위치값을 연산하는데, 이는 플래그 유무에 따른 멀티플렉서(MX1-MX2)의 동작에 의해 결정된다. 즉 정상적인 심볼의 입력임을 표시하는 플래그가 입력되는 경우 멀티플렉서(MX1)는 G0의 출력을 선택하므로 G0의 출력은 "1"을 유지하게되며, 이레이져 심볼의 입력임을 표시하는 플래그가 입력되는 경우 멀티플렉서(MX1)는 승산기(M3)의 출력을 선택하므로 G0의 출력을 해당 심볼의 이레이져 발생위치를 알리는 제1 이레이져 위치데이타를 출력하게 된다. 또한 정상적인 심볼의 입력임을 표시하는 플래그가 입력되는 경우 멀티플렉서(MX2)는 G1의 출력을 선택하므로, G1의 출력은 "0"을 유지하게 되며, 이레이져 심볼의 입력임을 표시하는 플래그 입력되는 경우 멀티플렉서(MX2)는 승산기(M4)를 통한 가산기(A3)의 출력을 선택하므로 G1의 출력은 해당 심볼의 이레이져 발생위치를 알리는 제2 이레이져위치데이타를 발생한다.In order to know whether the symbol is erased at the position indicated by the REG, G 0 and G 1 calculate the eraser position value, which is determined by the operation of the multiplexers MX1 to MX2 with or without a flag. That is, the flag indicating that the input of the normal symbol to the multiplexer (MX1) is selecting the output of G 0, so the output of G 0 is maintained to "1", the erasure being a flag indicating a type of the symbol input when the multiplexer (MX1) is to output a first erasure location data the output of G 0 indicating the location of occurrence of the symbol erasure so select the output of the multiplier (M3). In addition, if a flag indicating that the input of the normal symbol to the multiplexer (MX2) so selects the output of G 1, the output of G 1 is kept to "0", the input flag indicating a type of the erasure symbols In this case, since the multiplexer MX2 selects the output of the adder A3 through the multiplier M4, the output of G 1 generates second erasure position data indicating the erasure generation position of the symbol.
상기에서 설명한 S0,S1,REG,G0,G1의 동작이 첫번째 부호어 구간에서 이루어지면, 다음 부호어 구간에서 제4도의 (4i)와 같은 제2클럭(CK1)에 의해 RS0는 S0의 출력을 입력하고, RS1는 S1의 출럭을 입력하며, RG0는 G0의 출력을 입력하고, RG1은 G1의 출력을 입력한후 제4도의 (4g)와 같은 클럭(CK)에 의해 해당 이레이져를 정정하게 된다. 이때 상기 REG는 다시 입력하는 심볼의 위치를 지시하게 되는데 이 심볼의 위치는 RS0,RS1,RG0,RG1의 출력 심볼 위치와도 동일한 위치가 됨을 알수 있다.If the above-described operation of S 0 , S 1 , REG, G 0 , G 1 is performed in the first codeword period, RS 0 is performed by the second clock CK1 as shown in (4i) of FIG. 4 in the next codeword period. Inputs the output of S 0 , RS 1 inputs the output of S 1 , RG 0 inputs the output of G 0 , RG 1 inputs the output of G 1 , The erasure is corrected by the clock CK. At this time, the REG indicates the position of the input symbol again, the position of the symbol can be seen that the same position as the output symbol position of RS 0 , RS 1 , RG 0 , RG 1 .
먼자, 이레이져가 없을시의 과정을 설명한다.(no erasure) 이때 G0의 출력은 "1"이고 G1의 출력은 "0"이었으며, 오아게이트(OG2-OG3)의 출력은 "0"가 되어 멀티플렉서(MX3)는 "0"를 출력하게 된다. 이때 버퍼(BF2)를 통해 출력되는 플래그는 없는 상태가 되며, 이로 인하여 게이트(G)는 "오프"동작을 하게되므로 데이타 버퍼(BF1)를 통한 데이타가 에러정정 없이 그대로 출력하게 된다.First, we explain the process when there is no erasure (no erasure). At this time, the output of G 0 is "1", the output of G 1 is "0", and the output of OA gate (OG2-OG3) is "0". The multiplexer MX3 outputs "0". At this time, there is no flag output through the buffer BF2. As a result, the gate G performs an "off" operation so that the data through the data buffer BF1 is output as it is without error correction.
두번째로 이레이져가 1개 발생한 경우를 설명한다.Second, the case where one eraser has occurred will be described.
이때 G0는 αi를 출력하고 G1은 "1"을 출력하며 이레이져가 1개 발생이므로 오아게이트(OG2)는 "1"을 출력하고 오아게이트(OG3)는 ''0"를 출력하며 카운터(CNT)에서 1개의 이레이져 발생을 카운트 했으므로 멀티플렉서(MX3)는 E1단자를 통하여 RS0의 출력을 선택한다. 이때 상기 RS0는 ei를 출력하게 되며 플래그버퍼(BF2)가 해당 이레이져 심볼위치에서 게이트(G)를 "온"하면 상기 ei가 가산기(A5)에 인가된다. 따라서 데이타버퍼(BF2)를 통한 데이타 심볼에 에러값인 ei를 가산(XOR)하여 해당 이레이져를 정정한다.At this time, G0 outputs α i , G 1 outputs "1", and since there is one erasure, OA gate (OG2) outputs "1", OA gate (OG3) outputs "0" and the counter because we count one erasure occurs in the (CNT) a multiplexer (MX3) selects the output of the RS 0 through the E1 terminal. at this time, the erasure symbols wherein RS 0 is the output e i flag buffer (BF2) When the gate G is "on" at the position, the e i is applied to the adder A5. Therefore, the error value e i is added to the data symbol through the data buffer BF2 (XOR) to correct the eraser. do.
세번째로 2개의 이레이져 발생기의 동작과정을 설명한다.Third, the operation of two erasure generators will be described.
이때 승산기(M3)는 αi×αj을 출력하고 멀티플렉서(MX1)는 승산기(M3)의 출력을 선택하므로 G0는 αi×αj를 출력했으며, 승산기(M4)는 αj를 출력하고, 가산기 (A3)는 αi-αj를 출력하며, 멀티플렉서(MX2)는 상기 가산기(A3)의 출력을 선택하므로 G1은 αi-αj를 출력했고, 카운터(CNT)는 2개의 이레이져를 카운트했으므로 멀티플렉서(MX3)는 (E2) 단자를 통해 제산기(D2)의 출력을 선택한다.The multiplier M3 outputs α i × α j , and the multiplexer MX1 selects the output of the multiplier M3, so G 0 outputs α i × α j , and the multiplier M4 outputs α j . , Adder A3 outputs α i -α j , multiplexer MX2 selects the output of adder A3, so G1 outputs α i -α j , and counter CNT has two erasers Since multiplexer MX3 selects the output of divider D2 through the (E2) terminal.
따라서 RG0는 αi×αj를 출력하고 REG는 αj를 출력하므로, 상기 RG0출력을 REG의 출력을 나누는 제산기(D1)를 αi를 출력한다.Therefore, since RG 0 outputs α i × α j and REG outputs α j , a divider D1 that divides the RG 0 output by the output of REG outputs α i .
따라서 RS0는 eiαi-ej를 출력하고 RS1는 ei+ejαj를 출력하므로 승산기(M5), 가산기(A4) 및 제산기(D2)는 하기와 같이 에러값을 연산하게 된다.Therefore, RS 0 outputs e i α i -e j and RS 1 outputs e i + e j α j , so multiplier M5, adder A4 and divider D2 calculate the error value as follows: Done.
따라서 상기 에러연산값 ej는 플래그버퍼(BF2)에 의해 게이트(G)가 "온"될때 가산기(A5)로 인가되어 데이타버퍼(BF1)에서 해당 심볼이 출력될때 XOR되어 정정됨을 알수있다.Accordingly, it can be seen that the error operation value e j is applied to the adder A5 when the gate G is "on" by the flag buffer BF2, and XOR is corrected when the corresponding symbol is output from the data buffer BF1.
제2도에서 보면 데이타 입력단자(100)로 제3도의 (4k)와 같은 데이타가 입력되며, 플래그 입력단자(101)로 제3도의 (41)와 같은 플레그가 입력되면 제3도의 (4m)과 같이 이레이져가 발생한 해당 심볼위치에서 에러값을 연산하여 제3도의 (4j)와 같이 정정된 데이타로 출력하게 된다. 여기서 i는 첫번째 이레이져 발생위치로 이레이져 심볼을 R10이 되며, j는 두번째 이레이져 발생위치로 이레이져 심볼은 R4가 된다.In FIG. 2, data such as (4k) of FIG. 3 is input to the
네번째로 세개 이상의 이레이져가 발생한 경우를 설명한다. 이때는 오아게이트(OG1) 출력이 "하이"상태가 되며, 이로인해 멀티플렉서(MX3)는 "0"를 출력하게 되므로 플래그버퍼(BF2)에 의해 게이트(G)가 "온"되더라도 가산기(A5)에서 해당심볼을 정정하지 않으며, 앤드게이트(AG1)를 통해 "1"신호를 발생하여 신호처리부 측으로 에러를 정정하지 않았음을 알려준다.Fourthly, three or more erasures will be described. At this time, the output of the OA gate OG1 is "high", and thus the multiplexer MX3 outputs "0", so that even if the gate G is "on" by the flag buffer BF2, the adder A5 The corresponding symbol is not corrected, and a signal "1" is generated through the AND gate AG1 to inform the signal processor that the error has not been corrected.
상술한 바와 같이 R-S부호에서 2개의 이레이져까지 만을 정정한다는 전제하에 규칙적인 형태특징을 살려 하드웨어를 구성함으로서, 원래의 R-S코드식으로 풀이하여 정정하는 회로보다 1/7로 하드웨어 사이즈를 대폭 감축할 수 있고, 에러위치를 계산해내는 블럭을 버퍼 1개로 대치함으로서 산술적인 강략화를 이룰수 있어 이레이져 정정 기능을 용이하게 실현할 수 있는 이점이 있다.As described above, the hardware is constructed using regular form features under the assumption that only up to two erasures are corrected from the RS code, so that the hardware size can be significantly reduced to 1/7 of the circuit solved by the original RS code. In addition, by replacing one block for calculating an error position with one buffer, an arithmetic scheme can be achieved, and the eraser correction function can be easily realized.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019880011826A KR950008489B1 (en) | 1988-09-13 | 1988-09-13 | Decoder for erasor correction under lying 2 symbol |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019880011826A KR950008489B1 (en) | 1988-09-13 | 1988-09-13 | Decoder for erasor correction under lying 2 symbol |
Publications (2)
Publication Number | Publication Date |
---|---|
KR900005708A KR900005708A (en) | 1990-04-14 |
KR950008489B1 true KR950008489B1 (en) | 1995-07-31 |
Family
ID=19277715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019880011826A KR950008489B1 (en) | 1988-09-13 | 1988-09-13 | Decoder for erasor correction under lying 2 symbol |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR950008489B1 (en) |
-
1988
- 1988-09-13 KR KR1019880011826A patent/KR950008489B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR900005708A (en) | 1990-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5297153A (en) | Method and apparatus for decoding code words protected wordwise by a non-binary BCH code from one or more symbol errors | |
EP0112988A2 (en) | Syndrome processing for multibyte error correcting systems | |
US5535225A (en) | Time domain algebraic encoder/decoder | |
KR100260415B1 (en) | High speed serial error position polynomual calculation circuit | |
KR100192795B1 (en) | Device for calculating error-locator polynominal in a rs decoder | |
JPH06311050A (en) | Error correction method and device thereof | |
KR970004515B1 (en) | Error position correcting apparatus of reed-solomon code | |
JP3305525B2 (en) | Decoder, error locator sequence generator and decoding method | |
US7353449B2 (en) | Method of soft-decision decoding of Reed-Solomon codes | |
KR0135824B1 (en) | Reed solomon decoder for error position | |
US6735737B2 (en) | Error correction structures and methods | |
KR950008489B1 (en) | Decoder for erasor correction under lying 2 symbol | |
US6360349B1 (en) | Syndrome computing apparatus | |
EP0004718A1 (en) | Method of and apparatus for decoding shortened cyclic block codes | |
KR100195739B1 (en) | Error appreciation apparatus of reed solomon decoder | |
KR100335482B1 (en) | Error correcting system | |
KR100192802B1 (en) | Apparatus for calculating error-value and for correcting error in reed-solomon decoder | |
KR100191248B1 (en) | Reed solomon coder | |
KR100212830B1 (en) | Syndrome calculation apparatus of reed solomon decoder | |
KR930011573B1 (en) | Bch codec capable of double error correct | |
KR100212825B1 (en) | Syndrome calculating apparatus of reed solomon decoder | |
JP3223513B2 (en) | Error correction decoding device | |
JP2710176B2 (en) | Error position and error pattern derivation circuit | |
RU2282307C2 (en) | Method for syndrome decoding for convolution codes | |
KR950014021B1 (en) | Reed-solomon decoder with decoder and coder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 19970829 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |