KR102611828B1 - Reed-solomon decoder for error correction - Google Patents

Reed-solomon decoder for error correction Download PDF

Info

Publication number
KR102611828B1
KR102611828B1 KR1020230116663A KR20230116663A KR102611828B1 KR 102611828 B1 KR102611828 B1 KR 102611828B1 KR 1020230116663 A KR1020230116663 A KR 1020230116663A KR 20230116663 A KR20230116663 A KR 20230116663A KR 102611828 B1 KR102611828 B1 KR 102611828B1
Authority
KR
South Korea
Prior art keywords
error
polynomial
syndrome
error location
equation
Prior art date
Application number
KR1020230116663A
Other languages
Korean (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 주식회사 프라터
Application granted granted Critical
Publication of KR102611828B1 publication Critical patent/KR102611828B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/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/1535Determination and particular use of error location polynomials using the Euclid 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/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
    • 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/1585Determination of error values
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation

Abstract

본 발명에 따른 리드-솔로몬 디코더는, 수신된 부호어(Codeword) R(x)로부터 신드롬을 계산하는 신드롬 계산기, 상기 신드롬과 상기 수신된 부호어로부터 에러 위치 다항식 Λ(x)를 생성하는 에러 위치 다항식 생성부, 치엔 서치 알고리즘을 사용하여 상기 에러 위치 다항식 Λ(x)의 근을 구하는 치엔 서치부, 상기 에러 위치 다항식 생성부에 의해 상기 신드롬과 상기 수신된 부호어에 기초하여 생성된 에러 값 다항식과, 그리고 상기 에러 위치와 상기 에러 값을 사용하여 상기 수신된 부호어의 에러를 정정하는 가산기를 포함하되, 상기 에러 위치 다항식의 미분은 아래 수학식으로 정의되고, , 상기 에러 위치 다항식의 미분은 상기 에러 위치 다항식의 짝수승 항을 '0'으로 설정하고, 상기 치엔 서치부에서 제공되는 적어도 어느 하나의 에러가 포함되는 심볼 항(x=xj -1)으로 나누는 연산을 포함한다. The Reed-Solomon decoder according to the present invention is a syndrome calculator that calculates a syndrome from a received codeword (Codeword) R(x), and an error location generator that generates an error location polynomial Λ(x) from the syndrome and the received codeword. A polynomial generator, a Chien search unit for finding the root of the error location polynomial Λ(x) using a Chien search algorithm, and an error value polynomial generated by the error location polynomial generator based on the syndrome and the received codeword. and an adder that corrects an error in the received codeword using the error position and the error value, wherein the differentiation of the error position polynomial is defined by the equation below, , the differentiation of the error location polynomial sets the even power term of the error location polynomial to '0' and is a symbol term (x=x j -1 ) containing at least one error provided by the Chien search unit. Includes division operations.

Figure 112023097189148-pat00051
Figure 112023097189148-pat00051

Description

에러 정정을 위한 리드-솔로몬 디코더{REED-SOLOMON DECODER FOR ERROR CORRECTION}Reed-Solomon decoder for error correction {REED-SOLOMON DECODER FOR ERROR CORRECTION}

본 발명은 통신 시스템에 관한 것으로, 좀 더 구체적으로는 에러 정정을 위한 리드-솔로몬(Reed-Solomon) 인코더 및 디코더에 관한 것이다. The present invention relates to communication systems, and more specifically to Reed-Solomon encoders and decoders for error correction.

통신 환경에서 발생하는 에러에는 랜덤 에러(Random Error)와 버스트 에러(Burst Error)의 두 가지 유형이 존재한다. 비터비(Viterbi) 코드, 터보(Turbo) 코드, 또는 LDPC 코드는 랜덤 에러를 처리하는 데 적합하고 리드-솔로몬(Reed-Solomon: 이하, R-S) 코드는 버스트 에러를 처리하는 데 적합하다. R-S 코드는 순방향 에러 정정 코드의 범주에 속하며 랜덤 에러의 정정보다는 버스트 에러 정정에 최적화되어 있다. R-S 코드는 효율성과 복잡성 간의 절충안을 제공하므로 하드웨어 또는 FPGA(Field Programmable Gate Array)를 사용하여 쉽게 구현할 수 있다. There are two types of errors that occur in a communication environment: random error and burst error. The Viterbi code, Turbo code, or LDPC code is suitable for handling random errors, and the Reed-Solomon (R-S) code is suitable for handling burst errors. The R-S code belongs to the category of forward error correction codes and is optimized for burst error correction rather than random error correction. R-S code provides a compromise between efficiency and complexity and can be easily implemented using hardware or a Field Programmable Gate Array (FPGA).

고속 통신에서 하드웨어로의 구현이 용이하면서도 높은 에러 정정 능력과 신뢰성을 제공하기 위한 R-S 부호기 또는 복호기가 요구되고 있다. In high-speed communication, an R-S encoder or decoder is required to provide high error correction ability and reliability while being easy to implement in hardware.

본 발명의 목적은 하드웨어로 구현될 수 있는 시스템 매개 변수, 효율성 및 복잡성을 활용하여 실시간 처리 속도를 제공하는 리드-솔로몬 코덱을 구현하는 데 있다. The purpose of the present invention is to implement a Reed-Solomon codec that provides real-time processing speed by taking advantage of the system parameters, efficiency and complexity that can be implemented in hardware.

상기 목적을 달성하기 위한 본 발명에 따른 리드-솔로몬 디코더는, 수신된 부호어(Codeword) R(x)로부터 신드롬을 계산하는 신드롬 계산기, 상기 신드롬과 상기 수신된 부호어로부터 에러 위치 다항식 Λ(x)를 생성하는 에러 위치 다항식 생성부, 치엔 서치 알고리즘을 사용하여 상기 에러 위치 다항식 Λ(x)의 근을 구하는 치엔 서치부, 상기 에러 위치 다항식 생성부에 의해 상기 신드롬과 상기 수신된 부호어에 기초하여 생성된 에러 값 다항식과, 상기 에러 위치 다항식의 미분을 사용하여 에러 값을 생성하는 에러 값 계산부, 그리고 상기 에러 위치와 상기 에러 값을 사용하여 상기 수신된 부호어의 에러를 정정하는 가산기를 포함하되, 상기 에러 위치 다항식의 미분은 수학식 로 정의되고, 상기 에러 위치 다항식의 미분은 상기 에러 위치 다항식의 짝수승 항을 '0'으로 설정하고, 상기 치엔 서치부에서 제공되는 적어도 어느 하나의 에러가 포함되는 심볼 항(x=xj -1)으로 나누는 연산이 사용된다.The Reed-Solomon decoder according to the present invention for achieving the above object is a syndrome calculator that calculates a syndrome from a received codeword (Codeword) R(x), and an error location polynomial Λ(x) from the syndrome and the received codeword. ), an error location polynomial generation unit that generates, a Chien search unit that finds the root of the error location polynomial Λ(x) using a Chien search algorithm, and an error location polynomial generator based on the syndrome and the received codeword. an error value calculation unit that generates an error value using an error value polynomial generated by using the derivative of the error position polynomial, and an adder that corrects an error in the received codeword using the error position and the error value. Including, the differentiation of the error location polynomial is Equation It is defined as, the differentiation of the error location polynomial sets the even power term of the error location polynomial to '0', and the symbol term containing at least one error provided by the Chien search unit (x=x j - The operation of dividing by 1 ) is used.

상술한 본 발명의 실시 예에 따르면, 하드웨어로 구현될 수 있는 시스템 매개 변수, 효율성 및 복잡성을 활용하여 실시간 처리 속도를 제공하는 리드-솔로몬 코덱을 제공할 수 있다. According to the embodiment of the present invention described above, it is possible to provide a Reed-Solomon codec that provides real-time processing speed by utilizing system parameters, efficiency, and complexity that can be implemented in hardware.

도 1은 본 발명의 실시 예에 따른 인코더 및 디코더를 포함하는 모뎀 시스템을 간략히 보여주는 블록도이다.
도 2는 생성 다항식에 따라 구현한 LFSR 구조를 갖는 리드-솔로몬(R-S) 인코더의 예시적인 블록도를 보여준다.
도 3은 본 발명의 실시 예에 따른 리드-솔로몬 디코더(R-S Decoder)의 예를 보여주는 블록도이다.
1 is a block diagram briefly showing a modem system including an encoder and a decoder according to an embodiment of the present invention.
Figure 2 shows an example block diagram of a Reed-Solomon (RS) encoder with an LFSR structure implemented according to a generating polynomial.
Figure 3 is a block diagram showing an example of a Reed-Solomon decoder (RS Decoder) according to an embodiment of the present invention.

앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and are to be regarded as providing additional explanation of the claimed invention. Reference signs are indicated in detail in preferred embodiments of the invention, examples of which are indicated in the reference drawings. Wherever possible, the same reference numerals are used in the description and drawings to refer to the same or similar parts.

도 1은 본 발명의 실시 예에 따른 인코더 및 디코더를 포함하는 모뎀 시스템을 간략히 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 모뎀 시스템(1000)은 송신기(1100) 및 수신기(1300)를 포함할 수 있다. 송신기(1100)는 인코더(1110), 매퍼(1130), 그리고 변조기(1150)를 포함한다. 그리고 수신기(1300)는 복조기(1310), 디매퍼(1330), 그리고 디코더(1350)를 포함할 수 있다. 여기서 채널(1200)은, 예를 들면, AWGN(Additive White Gaussian Noise) 및 페이딩(Fading) 환경을 제공하는 유선, 무선, 광통신 채널들 중 적어도 하나일 수 있다. 여기서, 아날로그 신호에 대한 처리 과정은 생략하기로 한다.1 is a block diagram briefly showing a modem system including an encoder and a decoder according to an embodiment of the present invention. Referring to FIG. 1, the modem system 1000 of the present invention may include a transmitter 1100 and a receiver 1300. Transmitter 1100 includes an encoder 1110, a mapper 1130, and a modulator 1150. And the receiver 1300 may include a demodulator 1310, a demapper 1330, and a decoder 1350. Here, the channel 1200 may be, for example, at least one of wired, wireless, and optical communication channels that provide an Additive White Gaussian Noise (AWGN) and fading environment. Here, the processing process for the analog signal will be omitted.

송신기(1100)는 비트 스트림 형태로 제공되는 데이터 S(t)를 처리하여 채널(1200)로 전송하기 위한 인코더(1110), 매퍼(1130), 그리고 변조기(1150)를 포함한다. 인코더(1110)는 범용 다중화기(General Purpose Multiplexer)에서 데이터 S(t)를 수신한다. 그리고 변조기는 디지털-아날로그 컨버터(DAC) 및 아날로그 무선 주파수 장치를 통해 안테나로 전송하기 위한 데이터 프레임을 생성한다. The transmitter 1100 includes an encoder 1110, a mapper 1130, and a modulator 1150 to process data S(t) provided in the form of a bit stream and transmit it to the channel 1200. The encoder 1110 receives data S(t) from a general purpose multiplexer. The modulator then generates a data frame for transmission to the antenna through a digital-to-analog converter (DAC) and analog radio frequency device.

여기서, 인코더(1110)에는 두 개의 순방향 에러 정정 코드(Error Correction Code) 방식의 인코더들이 포함될 수 있다. 하나는 RS(Reed-Solomon) 인코더이고 다른 하나는 LDPC(Low Density Parity Check) 인코더이다. 인코더(1110)는 고차 변조 QAM 신호에는 RS 인코더와 LDPC 인코더를 사용하고, 저차 QAM 신호에는 단일 LDPC 인코더를 사용할 수 있다. 인코더(1110)는 입력된 데이터 심볼과 비트에 각각 패리티 심볼과 비트를 추가하여 순방향 에러 정정을 위한 RS 인코딩 데이터와 LDPC 인코딩 데이터를 구성한다. 인코딩된 데이터 비트는 선택한 변조 방식에 따라 해당 비트를 심볼로 매핑하기 위해 매퍼(1130)로 전달된다.Here, the encoder 1110 may include two forward error correction code (Error Correction Code) type encoders. One is a Reed-Solomon (RS) encoder and the other is a Low Density Parity Check (LDPC) encoder. The encoder 1110 may use an RS encoder and an LDPC encoder for a high-order modulated QAM signal, and a single LDPC encoder may be used for a low-order QAM signal. The encoder 1110 adds parity symbols and bits to the input data symbols and bits, respectively, to configure RS-encoded data and LDPC-encoded data for forward error correction. The encoded data bits are delivered to the mapper 1130 to map the bits to symbols according to the selected modulation method.

매퍼(1130)는 인코딩된 데이터 비트를 실수 신호(I)와 허수 신호(Q)로 블록화한다. 매퍼(1130)는 블록화된 실수 신호(I)와 허수 신호(Q)를 신호 성상도(Signal Constellation) 상의 신호점에 매핑한다. 매퍼(1130)는 인코딩된 비트 스트림(Sk)을 가져와서 m-비트 그룹으로 나눈다. 그리고 각 m-비트 그룹을 그레이 코드 매핑 규칙을 사용하여 신호 성상도의 신호점들 중 하나에 매핑한다. 이때 비트 스트림(Sk)은 아래 수학식 1과 같이 생성된다.The mapper 1130 blocks the encoded data bits into real signals (I) and imaginary signals (Q). The mapper 1130 maps the blocked real signal (I) and the imaginary signal (Q) to signal points on the signal constellation. The mapper 1130 takes the encoded bit stream (S k ) and divides it into m-bit groups. Then, each m-bit group is mapped to one of the signal points of the signal constellation using Gray code mapping rules. At this time, the bit stream (S k ) is generated as shown in Equation 1 below.

위 식에서 'Sk,i(i=0, 1, 2, …, m-1)'는 그레이 코드 매핑으로 코딩할 심볼의 i번째 비트를 나타내고, 'Ik' 및 'Qk'는 각각 k 번째 심볼의 동위상(Inphase) 및 직교(Quadrature) 성분을 나타낸다.In the above equation, 'S k,i (i=0, 1, 2, …, m-1)' represents the ith bit of the symbol to be coded by gray code mapping, and 'I k ' and 'Q k ' are each k Indicates the inphase and quadrature components of the th symbol.

수신기(1300)는 복조기(1310), 디매퍼(1330), 그리고 디코더(1350)를 포함할 수 있다. 복조기(1310)는 채널(1200)을 경유하여 수신된 신호에 대한 증폭이나 필터링, 주파수 하향 변환, 디지털화 등을 수행할 수 있다. 즉, 복조기(1310)는 ADC(아날로그-디지털 변환기)에서 기호 데이터 스트림을 수신한다. 복조기(1310)는 수신 심볼에 대해 AGC(자동 이득 제어) 프로세스를 유지하면서 주파수 및 타이밍(심볼 및 프레임) 동기화 프로세스를 수행한다. 동기화를 얻은 후 복조기(1310)는 등화기(Equalizer)를 통한 등화 프로세스를 수행하여 수신된 심볼에 대한 채널 효과를 완화한다. The receiver 1300 may include a demodulator 1310, a demapper 1330, and a decoder 1350. The demodulator 1310 may perform amplification, filtering, frequency down-conversion, digitization, etc. on the signal received through the channel 1200. That is, the demodulator 1310 receives a symbolic data stream from an analog-to-digital converter (ADC). The demodulator 1310 performs a frequency and timing (symbol and frame) synchronization process while maintaining an automatic gain control (AGC) process for the received symbols. After obtaining synchronization, the demodulator 1310 performs an equalization process through an equalizer to mitigate channel effects on the received symbols.

등화기(Equalizer)의 필터링에 의해서 처리된 수신 심볼(Rk)은 디매퍼(1330, 또는 Slicer)로 전달된다. 디매퍼(1330)는 연판정(Soft decision) 프로세스를 통해 수신 심볼 'Rk'를 해당 비트 스트림의 연판정 값으로 변환한다. 예를 들면, 디매퍼(1330)는 수신 심볼 'Rk'에 대한 로그 우도비(Log Likelihood Ratio: 이하, LLR)를 적용하여 비트 스트림의 연판정 값을 생성한다. 로그 우도비(LLR)는 데이터 스트림의 각 비트에 대해 비트가 '0' 또는 '1'일 가능성을 도출하기 위한 계산 방법을 제공한다. The received symbol (R k ) processed by filtering of the equalizer is delivered to the demapper (1330, or Slicer). The demapper 1330 converts the received symbol 'R k ' into a soft decision value of the corresponding bit stream through a soft decision process. For example, the demapper 1330 generates a soft decision value of the bit stream by applying the log likelihood ratio (LLR) to the received symbol 'R k '. The log likelihood ratio (LLR) provides a calculation method to derive the likelihood that the bit is '0' or '1' for each bit in a data stream.

디코더(1350)는 디매퍼(1330)로부터 생성된 데이터 스트림으로부터 수신 데이터 R(t)를 생성한다. 디코더(1350)는 RS 디코더를 사용하여 수신된 데이터로부터 신드롬을 계산하고, 에러 위치와 에러 값을 계산하는 방식으로 에러를 검출 및 정정한다. 특히, 유클리드 알고리즘을 사용하여 에러 위치 다항식과 에러 값을 계산할 수 있다. The decoder 1350 generates received data R(t) from the data stream generated by the demapper 1330. The decoder 1350 calculates a syndrome from the received data using an RS decoder, and detects and corrects errors by calculating the error location and error value. In particular, the error location polynomial and error value can be calculated using the Euclidean algorithm.

무선 통신 시스템에서의 모뎀 시스템(1000)은 잡음이 많은 채널(1200)을 통한 전송에서 발생할 수 있는 에러를 수신기(1300)가 감지하고 수정할 수 있도록 중복 정보가 신호에 추가되는 순방향 에러 수정(Forword Error Correction: 이하, FEC) 코딩 기술을 사용한다. R-S 코드는 FEC 코드의 일종이며, 효율성과 복잡성 사이의 적절한 절충안인 것으로 입증되었다. R-S 코드는 m-비트 시퀀스로 구성된 기호가 있는 비이진 순환 코드이다. 여기서, m은 2보다 큰 값을 갖는 양의 정수이다. 이로 인해 R-S 코드는 특히 버스트 에러를 잘 처리할 수 있다. 더불어, R-S 코드는 블록 코드(Block code)이다. 즉, 전송할 메시지가 별도의 데이터 블록으로 분리된다. 데이터의 각 블록에는 자체 포함 부호어(Codeword)를 형성하기 위해 추가된 패리티 보호 정보가 포함된다. 또한, R-S 코드는 체계적인 코드(Systemic code)이다. 즉, 인코딩 프로세스는 메시지 기호를 변경하지 않으며, 패리티는 블록의 별도 부분으로 추가된다. R-S 코드는 선형 및 순환 코드이다. 순환 코드는 구조상 인코더 및 디코더 회로가 비교적 간단하기 때문에 데이터 통신 시스템에서 널리 사용된다.The modem system 1000 in a wireless communication system uses a forward error correction function in which redundant information is added to the signal so that the receiver 1300 can detect and correct errors that may occur in transmission through the noisy channel 1200. Correction: hereinafter referred to as FEC) coding technology is used. The R-S code is a type of FEC code and has proven to be a good compromise between efficiency and complexity. The R-S code is a non-binary cyclic code whose symbols consist of m-bit sequences. Here, m is a positive integer with a value greater than 2. This makes the R-S code particularly good at handling burst errors. Additionally, the R-S code is a block code. That is, the message to be transmitted is separated into separate data blocks. Each block of data includes parity protection information added to form a self-contained codeword. Additionally, the R-S code is a systematic code. That is, the encoding process does not change the message symbols, and parity is added as a separate part of the block. R-S codes are linear and cyclic codes. Cyclic codes are widely used in data communication systems because their encoder and decoder circuits are relatively simple in structure.

R-S 코드에서, 코드에 대해 다른 매개 변수를 선택하면 다양한 보호 수준이 제공되며 구현의 복잡성에 영향을 미친다. R-S 코드는 (n, k) 코드로 설명할 수 있다. 여기서, n은 전체 코드의 길이이고, k는 메시지(또는, 블록)의 정보 길이를 나타낸다. 일반적으로, n≤2m-1이며, m은 심볼의 비트 수이다. (n, k) R-S 코드에서는 'n-k' 패리티 심볼과, 최대 't='개의 심볼 에러를 정정할 수 있다.In RS code, choosing different parameters for your code provides different levels of protection and affects the complexity of the implementation. RS code can be described as (n, k) code. Here, n is the length of the entire code, and k represents the information length of the message (or block). Generally, n≤2 m -1, where m is the number of bits of the symbol. (n, k) In RS code, 'nk' parity symbol and maximum 't= 'Symbol errors can be corrected.

이상에서 설명된 모뎀 시스템(1000)은 FPGA(Field-Programmable-Gate-Arrays)나 ASIC(Application Specific Integrated Circuit)를 사용하여 구현될 수 있다. 더불어, 인코더(1110) 및 디코더(1350)는 각각 LDPC 인코더 및 LDPC 디코더를 구현하기 위한 본 발명의 알고리즘을 사용한다. The modem system 1000 described above may be implemented using Field-Programmable-Gate-Arrays (FPGA) or Application Specific Integrated Circuit (ASIC). In addition, the encoder 1110 and decoder 1350 use the algorithm of the present invention to implement the LDPC encoder and LDPC decoder, respectively.

도 2는 생성 다항식에 따라 구현한 선형 피드백 시프트 레지스터(LFSR) 구조를 갖는 리드-솔로몬(R-S) 인코더의 예시적인 블록도를 보여준다. 도 2를 참조하면, R-S 인코더(1110)는 k 메시지 비트들 {m(0), m(1), …, m(k-1)}에 대한 n-k 패리티 비트들 {p(0), p(1), …, p(n-k-1)}을 생성한다. 이후, n-k 패리티 비트들과 메시지 비트들의 결합을 통해 부호어(Codeword)를 구성할 수 있다. Figure 2 shows an example block diagram of a Reed-Solomon (R-S) encoder with a linear feedback shift register (LFSR) structure implemented according to a generating polynomial. Referring to FIG. 2, the R-S encoder 1110 encodes k message bits {m(0), m(1),... , n-k parity bits for m(k-1)} {p(0), p(1), … , p(n-k-1)}. Afterwards, a codeword can be formed by combining n-k parity bits and message bits.

여기서, 레지스터들(Register)은 0으로 리셋된 상태에서 시작하여 메시지 다항식 m(x)를 수신할 것이다. 그러면, LFSR 구조를 통해 생성 다항식 g(x)와 결합하여 연산을 수행하고 메시지 심볼 m(x)의 입력이 끝나면 레지스터에 남아있는 값들은 패리티 심볼로 메시지 심볼 m(x)의 뒤에 연결되어 차례로 출력된다.Here, the registers will start from a reset state of 0 and receive the message polynomial m(x). Then, the operation is performed by combining with the generation polynomial g(x) through the LFSR structure, and when the input of the message symbol m(x) is finished, the values remaining in the register are connected to the back of the message symbol m(x) as parity symbols and output sequentially. do.

R-S 코드의 메시지 및 패리티 심볼의 값은 갈루아 필드(Galois field)의 요소이다. 따라서 m-비트 심볼을 기반으로 하는 코드의 경우 갈루아 필드(Galois field)에는 2m 개의 요소가 있다. 본 발명에서는 입력 패킷의 'k=255-2t' 심볼이 2t 패리티 심볼로 확장되어 255 심볼의 코드 블록 길이를 생성하는 (255, k, t) R-S 코드를 사용한다. 이 코드의 경우 갈루아 필드에는 256(m=8) 요소가 있고, 본 발명에서는 아래 수학식 2의 필드 생성 다항식(또는, 원시 다항식)을 사용하여 GF(28=256)의 256개 요소를 구성하였다. The values of the message and parity symbol of the RS code are elements of the Galois field. Therefore, for a code based on m-bit symbols, the Galois field has 2 m elements. In the present invention, a (255, k, t) RS code is used in which the 'k=255-2t' symbol of the input packet is extended to a 2t parity symbol to generate a code block length of 255 symbols. In the case of this code, the Galois field has 256 (m = 8) elements, and in the present invention, 256 elements of GF (2 8 = 256) are constructed using the field generation polynomial (or primitive polynomial) of Equation 2 below. did.

(n, k) R-S 코드는 'n-k=2t' 인수로 구성된 생성 다항식 g(x)를 형성하여 구성된다. 생성 다항식 g(x)의 근은 갈루아 필드(Galois field)의 연속 요소이다. 연속 요소를 선택하면 코드의 거리 속성이 최대화된다. 길이 '2m-1'의 t 에러 정정 R-S 코드의 생성 다항식 g(x)는 다음의 수학식 3으로 표현될 수 있다. The (n, k) RS code is constructed by forming the generating polynomial g(x) with the argument 'nk=2t'. The roots of the generating polynomial g(x) are continuous elements of the Galois field. Selecting consecutive elements maximizes the distance property of the code. The generation polynomial g(x) of the t error correction RS code of length '2 m -1' can be expressed as Equation 3 below.

여기서, 'α'는 GF(2m)의 원시 원소이다. 원시 원소 'α'는 생성 다항식의 원시 근(Primitive root)이다.Here, 'α' is the primitive element of GF(2 m ). The primitive element 'α' is the primitive root of the generating polynomial.

하나의 블록으로 부호화될 메시지를 형성하는 k 개의 메시지 심볼은 차수가 k-1인 메시지 다항식 M(x)으로 표시될 수 있다. 즉, 메시지 다항식은 다음 수학식 4로 표현될 수 있다.K message symbols forming a message to be encoded in one block can be expressed as a message polynomial M(x) with degree k-1. That is, the message polynomial can be expressed as Equation 4 below.

여기서, 메시지 다항식의 각 계수들(Mk-1, …, M1, M0)은 m-비트 메시지 심볼이며, GF(2m)의 원소이다. 메시지를 인코딩하기 위해 메시지 다항식 M(x)에 'xn-k'를 곱하고, 그 결과를 생성 다항식 g(x)로 나누어야 한다. 그러면, 몫 q(x)와 'n-k-1'까지의 차수인 나머지 r(x)가 생성된다. 이러한 결과는 아래 수학식 5를 통해 설명될 수 있다.Here, each coefficient of the message polynomial (M k-1 , ..., M 1 , M 0 ) is an m-bit message symbol and is an element of GF(2 m ). To encode a message, the message polynomial M(x) must be multiplied by 'x nk ' and the result divided by the generating polynomial g(x). Then, the quotient q(x) and the remainder r(x), which is the degree up to 'nk-1', are generated. These results can be explained through Equation 5 below.

나눗셈에 의해 생성되는 나머지 r(x)를 사용하면, 전송된 부호어 T(x)는 다음의 수학식 6과 같이 M(x)와 r(x)를 결합하여 표현할 수 있다.Using the remainder r(x) generated by division, the transmitted codeword T(x) can be expressed by combining M(x) and r(x) as shown in Equation 6 below.

전송 부호어 T(x)는 R-S 코드의 부호어가 요구하는 체계적(Systemic) 형태로 생성됨을 보여준다. 즉, R-S 코드에서는 메시지의 변경없이 인코딩이 가능함을 의미한다. 나머지 r(x)를 추가하면, 인코딩된 메시지 다항식이 나머지 없이 항상 생성 다항식으 g(x)로 나누어질 수 있다. It shows that the transmission codeword T(x) is generated in the systematic form required by the codeword of the R-S code. In other words, the R-S code means that encoding is possible without changing the message. By adding a remainder r(x), the encoded message polynomial is always divisible by the generating polynomial g(x) without a remainder.

R-S 코드의 인코딩은 메시지 다항식 M(x)와 생성 다항식 g(x)를 사용하여 패리티 다항식 r(x)를 생성한 다음 수학식 5 및 수학식 6과 같이 메시지와 나머지를 결합하여 얻을 수 있다. 메시지 다항식 M(x)를 생성 다항식 g(x)로 나누는 연산은 갈루아 필드에서 다항식 나누기 연산에 의해 쉽게 구현될 수 있다.Encoding of the R-S code can be obtained by using the message polynomial M(x) and the generation polynomial g(x) to generate the parity polynomial r(x) and then combining the message and the remainder as shown in Equation 5 and Equation 6. The operation of dividing the message polynomial M(x) by the generating polynomial g(x) can be easily implemented by the polynomial division operation in the Galois field.

본 발명에서는 하드웨어 인코더를 사용하여 다항식들 간의 나눗셈 연산을 수행할 수 있다. 하드웨어 인코더는 파이프라인 데이터에 대해 작동한다. 나눗셈 계산은 제시된 메시지 심볼을 한 번에 하나씩 적용하여 이루어진다. 파이프라인 나눗셈 계산은 인코딩이 실시간 처리를 수행할 수 있도록 하는 선형 피드백 시프트 레지스터(LFSR) 인코더를 사용하여 수행될 수 있다. In the present invention, a division operation between polynomials can be performed using a hardware encoder. Hardware encoders operate on pipelined data. Division calculations are performed by applying the presented message symbols one at a time. Pipeline division calculations can be performed using linear feedback shift register (LFSR) encoders, allowing the encoding to perform real-time processing.

도 3은 본 발명의 실시 예에 따른 리드-솔로몬 디코더(R-S Decoder)의 예를 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 R-S 디코더(1350)는 신드롬 계산기(1351), 에러 위치 다항식 생성부(1352), 치엔 서치부(1353), 에러 값 계산부(1354), AND 게이트(1355), 지연 라인(1356), 그리고 가산기(1357)를 포함할 수 있다. R-S 디코더(1350)는 고속 백홀 통신 시스템을 지원하기 위한 고속 및 저전력을 목적으로 하드웨어 기반의 리드-솔로몬(R-S) 디코더로 구현될 수 있다. Figure 3 is a block diagram showing an example of a Reed-Solomon decoder (R-S Decoder) according to an embodiment of the present invention. Referring to Figure 3, the R-S decoder 1350 of the present invention includes a syndrome calculator 1351, an error location polynomial generator 1352, a Chien search unit 1353, an error value calculation unit 1354, and an AND gate 1355. , a delay line 1356, and an adder 1357. The R-S decoder 1350 may be implemented as a hardware-based Reed-Solomon (R-S) decoder for the purpose of high speed and low power to support a high-speed backhaul communication system.

R-S 디코더(1350)의 첫 번째 동작 절차는 입력되는 부호어(수신된 데이터) R(x)로부터 신드롬(Syndrome)의 값(S)을 계산하는 것이다. 그런 다음 유클리드 알고리즘을 사용하여 에러 위치 다항식의 계수들(Λ1,…, Λυ) 및 에러 값(또는, 크기) 다항식의 계수(1,…, Ωυ )를 찾아야 한다. The first operation procedure of the RS decoder 1350 is to calculate the syndrome value (S) from the input codeword (received data) R(x). Then, using the Euclidean algorithm, we need to find the coefficients of the error location polynomial (Λ 1 ,…, Λ υ ) and the coefficients of the error value (or magnitude) polynomial ( 1 ,…, Ω υ ).

에러 위치는 치엔 서치(Chien Search)에 의해 식별되고, 에러 값은 'Forney 알고리즘'을 사용하여 계산된다. 이러한 계산에는 수신된 부호어의 모든 심볼이 사용된다. 따라서, 계산 결과를 사용할 수 있을 때까지 메시지(또는, 수신된 데이터)를 저장해야 한다. 그런 다음 각 에러 값이 수신된 데이터(또는, 부호어)의 에러 위치에 있는 심볼에 가산(modulo 2 방식으로)됨으로써 에러가 수정된다.The error location is identified by Chien Search, and the error value is calculated using the 'Forney algorithm'. All symbols of the received codeword are used in these calculations. Therefore, the message (or received data) must be stored until the calculation results are available. Then, the error is corrected by adding each error value to the symbol at the error position of the received data (or codeword) (modulo 2 method).

R-S 코드는 유한 필드 크기가 (n, k)인 블록, 체계적 및 순환적 코드이다. 따라서, R-S 디코더(1350)는 통신 채널을 통해 수신된 신호에서 R-S 인코더에 의해 인코딩된 전송 데이터 T(x)를 복원한다. 채널(1200, 도 1 참조)은 통신 환경에서 전송된 신호에 에러 데이터 E(x)가 부가될 수 있다. 따라서 수신 데이터 R(x)는 다음의 수학식 7로 표현될 수 있다. R-S codes are block, systematic and recursive codes with finite field size (n, k). Accordingly, the R-S decoder 1350 restores the transmission data T(x) encoded by the R-S encoder from the signal received through the communication channel. Channel 1200 (see FIG. 1) may have error data E(x) added to a signal transmitted in a communication environment. Therefore, the received data R(x) can be expressed as Equation 7 below.

여기서, T(x)는 송신기(1100)에서 전송된 부호어를, 각 계수들(En-1,…, E1, E0)은 갈루아 필드 GF(2m)의 원소로 표현되는 m-비트 에러 심볼이며, x의 크기에 따라 결정되는 부호어의 에러 위치에 대응한다. 't='개를 초과하는 경우, 채널 코드 용량을 초과하고, 이러한 경우에는 에러 정정은 불가능하다. 반면, R-S 디코더(1350)는 에러 심볼의 수가 't='개 이하인 경우, 신드롬 계산, 에러 위치 다항식 찾기, 에러 위치 결정, 에러 값 계산과 같은 절차들을 사용하여 에러를 정정할 수 있다. Here, T(x) is the codeword transmitted from the transmitter 1100, and each coefficient (E n-1 ,..., E 1 , E 0 ) is m- expressed as an element of the Galois field GF(2 m ). It is a bit error symbol and corresponds to the error position of the codeword determined according to the size of x. 't= If it exceeds ', the channel code capacity is exceeded, and in this case, error correction is not possible. On the other hand, the RS decoder 1350 has the number of error symbols 't= If there are less than 1, the error can be corrected using procedures such as calculating the syndrome, finding the error location polynomial, determining the location of the error, and calculating the error value.

신드롬 계산기(1351)는 수신 데이터 R(x)로부터 신드롬(S)을 계산한다. 신드롬 계산기(1351)에 의한 신드롬 계산 절차는 다음과 같다. 신드롬(S)은 수신 데이터 다항식 R(x)를 생성 다항식 g(x)의 각 인수 'x+αi'으로 나눔으로써 얻을 수 있다. 이러한 절차는 수학식 8로 표현된다.The syndrome calculator 1351 calculates the syndrome (S) from the received data R (x). The syndrome calculation procedure by the syndrome calculator 1351 is as follows. The syndrome (S) can be obtained by dividing the received data polynomial R(x) by each factor 'x+α i ' of the generating polynomial g(x). This procedure is expressed in Equation 8.

이렇게 하면 몫 Qi(x)과 나머지 'Si'가 생성된다. 나머지 Si는 이러한 나눗셈으로 인해 발생하는 신드롬으로 정의된다. 신드롬 'Si'는 수학식 8을 재구성하면 아래 수학식 9로 표현될 수 있다. This creates the quotient Q i (x) and the remainder 'S i '. The remaining S i is defined as the syndrome that occurs due to this division. The syndrome 'S i ' can be expressed as Equation 9 below by reconstructing Equation 8.

신드롬 'Si'는 수학식 9에서 'x=αi'일 때, 아래 수학식 10으로 정리된다. The syndrome 'S i ' is summarized in Equation 10 below when 'x=α i ' in Equation 9.

여기서, 계수들(Rn-1, …, R1, R0)은 수신 부호어의 심볼을 나타낸다. 수학식 10의 물리적 의미는 수신 데이터 다항식 R(x)를 'x+αi'로 나누어 나머지를 구하는 대신에, 수신 데이터 다항식 R(x)에 'x=αi'를 대입하여 각 신드롬 값을 얻을 수도 있다는 것이다. 더불어, 'x+αi'는 전송 부호어 T(x)에 정의된 생성 다항식 g(x)의 인수이다. 따라서, 이 성립한다. 결과적으로 아래의 수학식 11로 신드롬이 표현될 수 있다.Here, the coefficients (R n-1 , ..., R 1 , R 0 ) represent the symbols of the received codeword. The physical meaning of Equation 10 is that instead of dividing the received data polynomial R(x) by 'x+α i ' to obtain the remainder, each syndrome value is calculated by substituting 'x=α i ' into the received data polynomial R(x). That you can get it. In addition, 'x+α i ' is a factor of the generating polynomial g(x) defined in the transmission codeword T(x). thus, and This holds true. As a result, the syndrome can be expressed as Equation 11 below.

상술한 수학식 11을 고려하면, 신드롬 'Si' 값은 에러 패턴에만 의존하고 데이터 값의 영향을 받지 않음을 알 수 있다. 또한, 에러가 발생하지 않은 경우 모든 신드롬 값은 '0'이 된다.Considering Equation 11 above, it can be seen that the syndrome 'S i ' value depends only on the error pattern and is not affected by the data value. Additionally, if no error occurs, all syndrome values are '0'.

에러 위치 다항식 생성부(1352)는 신드롬 'Si'를 이용하여 에러 위치를 계산한다. 먼저, 에러 패턴 E(x)는 다음의 수학식 12로 표현될 수 있다.The error location polynomial generator 1352 calculates the error location using the syndrome 'S i '. First, the error pattern E(x) can be expressed as Equation 12 below.

여기서, 'e1,…, eυ'는 x의 거듭 제곱근이고, 'υ'는 부호어의 에러 위치, 그리고 Y1,…, Yυ는 해당 위치에서의 에러 값을 나타낸다. 수학식 11과 수학식 12를 결합하면, 아래 수학식 13로 정리된다. Here, 'e 1 ,… , e υ 'is the power square root of x, 'υ' is the error position of the codeword, and Y 1 ,… , Y υ represents the error value at that location. Combining Equation 11 and Equation 12 results in Equation 13 below.

여기서, 는 에러 탐지기로 알려져 있다. 그리고 는 신드롬에 해당한다. 는 x의 거듭제곱근에 해당하며, 생성 다항식에 의해서 달라진다.here, is known as an error detector. and corresponds to a syndrome. Corresponds to the power root of x and varies depending on the generating polynomial.

에러 위치 다항식 생성부(1352)는 아래 수학식 14의 에러 위치 다항식을 사용하여 수신 데이터 R(x)의 에러 수와 에러 위치를 생성한다.The error location polynomial generator 1352 generates the error number and error location of the received data R(x) using the error location polynomial of Equation 14 below.

에러 위치 다항식 Λ(x)는 (1+xjx) 형식의 'υ'의 인수를 갖도록 구성되므로 에러 위치의 역()을 근으로 갖는다. 따라서, 아래 수학식 15와 같이 각 에러들에 대해 에러 위치 다항식 Λ(x)를 0으로 만드는 근 'xj -1'이 존재한다.The error location polynomial Λ(x) is constructed to have an argument of 'υ' of the form (1+x j x), so that the inverse of the error location ( ) as the root. Therefore, as shown in Equation 15 below, there is a root 'x j -1 ' that makes the error location polynomial Λ(x) 0 for each error.

본 발명에서는 수학식 15의 양변에 를 곱하고, 모든 에러와 모든 항들의 합을 취합함으로써 아래 수학식 16 또는 수학식 17의 연립 방정식을 얻게 된다. In the present invention, on both sides of Equation 15 By multiplying and collecting the sum of all errors and all terms, the simultaneous equations of Equation 16 or Equation 17 below are obtained.

2t 세트의 연립 선형 방정식은 에러 위치 다항식 Λ(x)의 미지 계수 'υ'를 포함한다. 수학식 16 및 수학식 17의 연립 방정식은 에러 위치 다항식 Λ(x)의 계수(Λ1, …, Λυ)를 찾는 데 사용할 수 있다. 에러 위치 다항식의 계수를 찾는 방법에는 여러 가지가 있다. 예를 들면, Berlekamp 알고리즘과 유클리드(Euclidean) 알고리즘이 에러 위치 다항식의 계수를 구하는 가장 효율적인 알고리즘으로 알려져 있다. The 2t set of simultaneous linear equations contains the unknown coefficient 'υ' of the error location polynomial Λ(x). The simultaneous equations of Equation 16 and Equation 17 can be used to find the coefficients (Λ 1 , ..., Λ υ ) of the error location polynomial Λ(x). There are several ways to find the coefficients of the error location polynomial. For example, the Berlekamp algorithm and the Euclidean algorithm are known to be the most efficient algorithms for calculating the coefficients of the error location polynomial.

Berlekamp의 알고리즘은 마이크로프로세서를 사용하여 계수를 찾는 간결하고 효율적인 알고리즘이다. 본 발명에서 사용되는 유클리드 알고리즘이 고속 데이터 및 저전력 애플리케이션을 위해 하드웨어로 구현하여 계수를 찾는 데 더 효율적인 알고리즘일 수 있다. 따라서, 이하에서는 Berlekamp의 알고리즘은 간략하게 설명하고, 유클리드 알고리즘에 대해 자세히 설명하기로 한다. 본 발명에서는 에러 위치 다항식을 구현하기 위해 유클리드 알고리즘을 사용하고, 고속 및 저전력 목적을 위해 하드웨어 기반 시스템에서 R-S 디코더를 구현하기 위해 관련 프로세스를 사용할 것이다. Berlekamp's algorithm is a concise and efficient algorithm for finding coefficients using a microprocessor. The Euclidean algorithm used in the present invention may be a more efficient algorithm for finding coefficients by implementing it in hardware for high-speed data and low-power applications. Therefore, in the following, Berlekamp's algorithm will be briefly described and the Euclidean algorithm will be described in detail. In the present invention, we will use the Euclidean algorithm to implement the error location polynomial and the related process to implement the R-S decoder in a hardware-based system for high-speed and low-power purposes.

Berlekamp의 알고리즘은 수학식 15 또는 수학식 16을 풀기 위한 효율적인 반복 기술(Recursive method)이다. 이는, Λ(x)=1부터 시작하여 에러 위치 다항식에 대한 근사를 반복하여 수행된다. 그런 다음 각 단계에서 근사 계수를 해당 'υ' 값에 대응하는 방정식에 대입하여 에러 값을 구한다. 그런 다음 에러는 정정 다항식을 개선하는 데 사용되며, 근사된 Λ(x)를 개선하기 위해 제공된다. 근사 에러 위치 다항식이 나머지 방정식과 일관되게 확인되면 프로세스가 종료된다. Berlekamp's algorithm is an efficient recursive method for solving Equation 15 or Equation 16. This is done by iterating the approximation to the error location polynomial starting from Λ(x)=1. Then, at each step, the error value is obtained by substituting the approximation coefficient into the equation corresponding to the corresponding 'υ' value. The errors are then used to improve the correction polynomial, which serves to improve the approximated Λ(x). The process ends when the approximate error location polynomial is found to be consistent with the remaining equations.

반면, 유클리드 알고리즘은 에러 위치 다항식의 계수를 얻기 위한 또 다른 효율적인 알고리즘입니다. 이 알고리즘은 다항식 Λ(x)을 기반으로 한 방정식의 형태로 표현되는 에러와 신드롬 간의 관계를 사용한다. 유클리드 알고리즘은 키 방정식(Key Equation)이라고도 하며 두 개의 새로운 다항식인 신드롬 및 에러 크기 다항식을 필요로 한다. 유클리드 알고리즘을 적용하여 에러 위치 다항식의 계수를 계산하는 과정은 다음과 같다.On the other hand, the Euclidean algorithm is another efficient algorithm for obtaining the coefficients of the error location polynomial. This algorithm uses the relationship between error and syndrome expressed in the form of an equation based on the polynomial Λ(x). The Euclidean algorithm is also called the Key Equation and requires two new polynomials: the syndrome and error magnitude polynomials. The process of calculating the coefficient of the error location polynomial by applying the Euclidean algorithm is as follows.

먼저, 신드롬 다항식 S(x)가 다음 수학식 18과 같이 정의될 수 있다.First, the syndrome polynomial S(x) can be defined as Equation 18 below.

여기서, 계수들(S2t, …, S1)은 수신된 부호어에서 계산된 2t 개의 신드롬 값이다. 그리고 에러 크기 다항식 Ω(x)는 수학식 19로 정의될 수 있다.Here, the coefficients (S 2t , ..., S 1 ) are 2t syndrome values calculated from the received codewords. And the error size polynomial Ω(x) can be defined as Equation 19.

그리고 키 방정식(Key Equation)은 에러 위치 다항식 Λ(x), 에러 크기 다항식 Ω(x), 그리고 신드롬 다항식 S(x)을 사용하여 아래 수학식 20과 같이 정의될 수 있다. And the key equation can be defined as Equation 20 below using the error location polynomial Λ(x), the error size polynomial Ω(x), and the syndrome polynomial S(x).

키 방정식(Key Equation)에서, 에러 크기 다항식의 계수는 아래 수학식 21로 나타낼 수 있다. In the Key Equation, the coefficient of the error size polynomial can be expressed as Equation 21 below.

키 방정식을 풀기 위한 유클리드 알고리즘을 적용하기 위해서는 아래 수학식 22의 두 원소 a와 b의 최대 공약수 d를 찾는 방식을 사용한다.To apply the Euclidean algorithm for solving the key equation, use the method of finding the greatest common divisor d of the two elements a and b in Equation 22 below.

여기서 u와 v는 유클리드 알고리즘에 의해 생성된 계수이다. 신드롬 다항식 S(x)와 에러 위치 다항식 Λ(x)의 곱의 차수는 '2t+v-1'이다. 따라서, 다음과 같이 표현할 수 있다. 신드롬 다항식 S(x)과 에러 위치 다항식 Λ(x)의 곱은 다음 수학식 23과 같이 표현할 수 있다. Here, u and v are coefficients generated by the Euclidean algorithm. The degree of the product of the syndrome polynomial S(x) and the error location polynomial Λ(x) is '2t+v-1'. Therefore, it can be expressed as follows. The product of the syndrome polynomial S(x) and the error location polynomial Λ(x) can be expressed as Equation 23 below.

신드롬 다항식 S(x) 및 x2t는 수학식 23의 a 및 b 항에 해당한다. 유클리드 알고리즘은 x2t를 신드롬 다항식 S(x)로 나누어 나머지를 구하는 방식으로 진행된다. 그러면 신드롬 다항식 S(x)는 피제수가 되고 나머지는 새로운 나머지를 제공하는 제수가 된다. 이 과정은 나머지 정도가 t보다 작아질 때까지 계속된다. 이 시점에서 나머지 Ω(x)과 곱셈 계수 Λ(x)는 계산에 사용될 수 있다. The syndrome polynomials S(x) and x 2t correspond to the a and b terms of Equation 23. The Euclidean algorithm proceeds by dividing x 2t by the syndrome polynomial S(x) to obtain the remainder. Then the syndrome polynomial S(x) becomes the dividend and the remainder becomes the divisor that provides the new remainder. This process continues until the remainder becomes less than t. At this point, the remaining Ω(x) and the multiplication factor Λ(x) can be used in calculations.

치엔 서치부(1353)는 에러 위치 다항식의 해를 계산한다. 즉, 치엔 서치부(1354)는 에러 위치 다항식 Λ(x)의 계수 값들(Λ1,…, Λυ)을 구하면, 근을 찾을 수 있다. 에러 위치 다항식 Λ(x)이 아래 수학식 24와 같은 형식으로 작성된 경우를 가정하자.The Chien search unit 1353 calculates the solution of the error location polynomial. That is, the Chien search unit 1354 can find the root by finding the coefficient values (Λ 1 ,..., Λυ) of the error location polynomial Λ(x). Let us assume that the error location polynomial Λ(x) is written in the form of Equation 24 below.

여기서, 즉, 이면, 에러 위치 다항식 Λ(x)의 함수값은 '0'이 된다. 따라서, 'x1,…, xυ'는 치엔 서치로 알려진 시행착오 연산에 의해서 계산될 수 있다. 여기서, 근의 모든 가능한 값(필드 값 αi, 0≤i≤n-1)이 방정식에 대입되고, 방정식이 풀이될 수 있다. 즉, 에러 위치가 식별된다.here, in other words, If , the function value of the error location polynomial Λ(x) becomes '0'. Therefore, 'x 1 ,… , x υ ' can be calculated by a trial-and-error operation known as Chien search. Here, all possible values of the roots (field values α i , 0≤i≤n-1) are substituted into the equation, and the equation can be solved. That is, the error location is identified.

에러 값 계산부(1354)는 에러 값을 에러 크기 다항식 Ω(x)을 사용하여 에러 값 Yj를 계산한다. 이를 위해 에러 값 계산을 위한 Forney 알고리즘이 사용될 수 있다. Forney 알고리즘은 에러 위치 다항식 Λ(x)에 대한 미분을 사용한다. 에러 위치 다항식 Λ(x)에 대한 미분은 아래 수학식 25로 표현될 수 있다.The error value calculation unit 1354 calculates the error value Y j using the error size polynomial Ω(x). For this purpose, the Forney algorithm for calculating error values can be used. Forney's algorithm uses differentiation with respect to the error location polynomial Λ(x). The differentiation for the error location polynomial Λ(x) can be expressed as Equation 25 below.

이는 에러 위치 다항식 Λ(x)의 짝수승 항을 0으로 설정하고, 로 나누는 것과 같다. Forney의 알고리즘은 에러 값 Y1, …, Yυ의 계산에 매우 효율적이며 매우 쉽게 하드웨어로 구현 가능하다. 여기서, 에 대한 에러 위치 다항식 Λ(x)의 미분이다. This sets the even terms of the error location polynomial Λ(x) to 0, It is the same as dividing by Forney's algorithm uses error values Y 1 , … , It is very efficient in calculating Y υ and can be very easily implemented in hardware. here, silver is the derivative of the error location polynomial Λ(x).

치엔 서치(Chien Search)의 사용을 통해 에러가 포함된 심볼을 찾고 해당 에러의 에러 값을 계산한 후, 에러 다항식 E(x)를 수신 신호 다항식 R(x)에 가산하여 에러를 수정할 수 있다. 일반적으로 수신된 다항식의 가장 높은 항은 수신된 부호어의 첫 번째 기호에 해당한다는 점에 유의해야 한다. Using Chien Search, you can find a symbol containing an error, calculate the error value of the error, and then add the error polynomial E(x) to the received signal polynomial R(x) to correct the error. It should be noted that, in general, the highest term of the received polynomial corresponds to the first symbol of the received codeword.

본 발명의 신드롬 계산기(1351)는 생성 다항식의 각 근 'αi'에 해당하는 신드롬이 수신된 다항식 R(x)를 x+αi로 나누거나 R(αi)를 추정하여 계산할 수 있다. 신드롬 계산을 위한 직접 나눗셈 과정에서 수학식 9의 신드롬 계산 과정은 R-S 인코딩에 사용된 수학식 5와 매우 유사한 형태를 갖는다. 따라서, R-S 인코더 구현에 대한 동일한 추론에 따라 본 발명에서는 하드웨어 신드롬 계산기를 사용하여 다항식의 나눗셈 연산을 수행할 수 있다. The syndrome calculator 1351 of the present invention can calculate the syndrome corresponding to each root 'α i ' of the generating polynomial by dividing the received polynomial R(x) by x+α i or estimating R(α i ). In the direct division process for calculating the syndrome, the syndrome calculation process of Equation 9 has a very similar form to Equation 5 used in RS encoding. Therefore, following the same reasoning for the RS encoder implementation, the polynomial division operation can be performed in the present invention using a hardware syndrome calculator.

하드웨어 신드롬 계산기는 파이프라인 데이터에서 작동하므로 수신된 기호가 제시될 때 한 번에 하나씩 사용하여 나눗셈 계산이 이루어진다. 파이프라인 나눗셈 계산은 신드롬 계산기(1351)가 실시간 처리를 수행할 수 있도록 하는 기존의 선형 피드백 시프트 레지스터(LFSR)를 사용하여 수행된다. 다항식 나눗셈의 경우, 하나의 곱셈기와 하나의 레지스터만 있는 하나의 피드백 항만 요구된다. 본 발명에서는 단일 피드백 시프트 레지스터(SFSR)를 사용하여 신드롬 'Si'를 계산한다. 2t 세트의 신드롬, Si(for i= 1, …, 2t)를 계산할 필요가 있다. 본 발명의 하드웨어로 구현된 신드롬 계산기(1351)는 빠른 속도와 낮은 전력 소비를 위해 병렬 파이프라인 신드롬 회로로 구현된다. The hardware syndrome calculator operates on pipelined data, so division calculations are made using the received symbols one at a time as they are presented. Pipeline division calculations are performed using a conventional linear feedback shift register (LFSR), which allows the syndrome calculator 1351 to perform real-time processing. For polynomial division, only one feedback term is required, with only one multiplier and one register. In the present invention, the syndrome 'S i ' is calculated using a single feedback shift register (SFSR). It is necessary to calculate the syndrome of the 2t set, S i (for i= 1, …, 2t). The syndrome calculator 1351 implemented in hardware of the present invention is implemented as a parallel pipeline syndrome circuit for high speed and low power consumption.

앞서 유클리드 알고리즘의 설명에서 논의한 바와 같이 에러 위치 다항식을 찾는 첫 번째 단계는 신드롬 다항식을 찾는 것이다. 신드롬 Si(for i= 1, …, 2t)를 얻은 후 신드롬 다항식은 다음 수학식 26과 같이 주어진다. As discussed earlier in the description of the Euclidean algorithm, the first step in finding the error location polynomial is to find the syndrome polynomial. After obtaining the syndrome S i (for i= 1, …, 2t), the syndrome polynomial is given as Equation 26 below.

수학식 23에서 설명된 바와 같이, 유클리드 알고리즘은 x2t를 S(x)로 나누어 나머지를 생성하는 것으로 구성된다. 그러면 S(x)는 피제수가 되고 나머지는 새로운 나머지를 제공하는 제수가 된다. 이 과정은 나머지의 차수가 t보다 작아질 때까지 계속된다. 이 시점에서 나머지 Ω(x)과 곱셈 계수 Λ(x)는 계산에서 항으로 사용할 수 있다. Ω(x)은 에러 크기(또는, 값) 다항식이고 Λ(x)는 에러 위치 다항식이다. 또한, Ω(x) 및 Λ(x) 모두 에러 위치 다항식 생성부(1352)의 유클리드 알고리즘의 출력이다. As explained in Equation 23, the Euclidean algorithm consists of dividing x 2t by S(x) to generate a remainder. Then S(x) becomes the dividend and the remainder becomes the divisor that provides the new remainder. This process continues until the degree of the remainder becomes smaller than t. At this point, the remainder Ω(x) and the multiplication factor Λ(x) can be used as terms in the calculation. Ω(x) is the error magnitude (or value) polynomial and Λ(x) is the error location polynomial. Additionally, both Ω(x) and Λ(x) are outputs of the Euclidean algorithm of the error location polynomial generator 1352.

유클리드 알고리즘에서 사용된 수학식 23는 부호화 과정에서 사용된 수학식 5와 유사한 형태를 가진다. 그러나 이 두 방정식의 내용에는 차이가 있다. 수학식 5에는 두 개의 알려진 정보와 r(x)의 나머지인 알려지지 않은 정보가 있다. 반면, 수학식 23는 에러 위치 다항식 Λ(x)와 에러 값(또는, 크기) 다항식 Ω(x)인 두 개의 알려진 정보와 두 개의 알려지지 않은 정보를 가지고 있다.Equation 23 used in the Euclidean algorithm has a similar form to Equation 5 used in the encoding process. However, there is a difference in the content of these two equations. In Equation 5, there are two known pieces of information and unknown information that is the remainder of r(x). On the other hand, Equation 23 has two known information and two unknown information, which are the error location polynomial Λ(x) and the error value (or magnitude) polynomial Ω(x).

에러 값 다항식 계산을 위한 직접 나눗셈 과정에서 수학식 24의 연산 과정은 R-S 부호화에 사용된 수학식 5와 유사한 형태를 갖는다. 그러나 유클리드 알고리즘은 에러 위치 다항식을 계산하기 위해 나눗셈 과정과 곱셈 과정이 필요하다. 본 발명에서는 하드웨어 기반의 에러 값 다항식 계산기와 하드웨어 기반의 에러 위치 다항식을 사용하여 다항식 나눗셈 과정과 다항식 곱셈 과정을 각각 수행한다.In the direct division process for calculating the error value polynomial, the calculation process of Equation 24 has a similar form to Equation 5 used in R-S encoding. However, the Euclidean algorithm requires a division and multiplication process to calculate the error location polynomial. In the present invention, a polynomial division process and a polynomial multiplication process are performed using a hardware-based error value polynomial calculator and a hardware-based error location polynomial, respectively.

하드웨어 기반 에러 값 다항식 계산기는 파이프라인 데이터에서 작동하므로 수신된 기호를 하나씩 사용하여 나눗셈 계산이 이루어진다. 하드웨어 기반 에러 위치 다항식 계산기도 파이프라인 데이터에서 작동하므로 수신된 기호를 하나씩 사용하여 곱셈 계산이 이루어진다. 파이프라인 나눗셈 및 곱셈은 유클리드 알고리즘이 실시간 처리를 수행할 수 있도록 하는 4개의 기존 단일 피드백 시프트 레지스터(SFSR, single feedback shift registers)를 사용하여 수행된다. The hardware-based error value polynomial calculator operates on pipelined data, so division calculations are made using the received symbols one by one. The hardware-based error location polynomial calculator also operates on pipelined data, so multiplication calculations are made using the received symbols one by one. Pipeline division and multiplication are performed using four conventional single feedback shift registers (SFSR), which allows the Euclidean algorithm to perform real-time processing.

치엔 서치부(1353)에서는 에러 위치 다항식 Λ(x)의 근이 계산된다. 에러 위치 다항식 Λ(x)의 근은 에러 위치 다항식의 계수들(Λ1,…, Λυ)을 구한 후에, 치엔 서치를 사용하여 해가 구해진다. 에러 위치 다항식 Λ(x)은 앞서 설명된 수학식 14에 설명되어 있다. 그러면 , 즉, 이면 함숫값이 0이 된다. 근은 x1, … , xυ의 값에 따라서 시행착오를 통해 발견되는데, 이는 근의 모든 가능한 값(필드 값 αi, 0≤i≤n-1)이 수학식 14로 대체되고 결과가 평가되는 치엔 서치를 사용한다. In the Chien search unit 1353, the root of the error location polynomial Λ(x) is calculated. The roots of the error location polynomial Λ(x) are solved using Chien search after finding the coefficients (Λ 1 ,…, Λ υ ) of the error location polynomial. The error location polynomial Λ(x) is described in Equation 14 described above. then , in other words, If , the function value becomes 0. The roots are x 1 , … , is discovered through trial and error depending on the value of .

두 다항식 Ω(x) 및 Λ'(x)의 하드웨어 계산은 치엔(Chien) 서치와 유사한 방식으로 수행할 수 있다. 특히, 함숫값은 연속 클록 주기에서 부호어의 각 기호 위치에 대해 계산된다. 에러는 x 값이 위치하는 지점에서 수신 데이터 R(x)에 에러 값 Y(x)를 가산함으로서 정정된다.The hardware calculation of the two polynomials Ω(x) and Λ'(x) can be performed in a similar way to the Chien search. In particular, the function value is calculated for each symbol position of the codeword in successive clock cycles. The error is corrected by adding the error value Y(x) to the received data R(x) at the point where the x value is located.

이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, embodiments are disclosed in the drawings and specifications. Although specific terms are used here, they are used only for the purpose of describing the present invention and are not used to limit the meaning or scope of the present invention described in the patent claims. Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible. Therefore, the true scope of technical protection of the present invention should be determined by the technical spirit of the attached patent claims.

Claims (3)

리드-솔로몬 디코더에 있어서:
수신된 부호어(Codeword) R(x)로부터 신드롬을 계산하는 신드롬 계산기;
상기 신드롬과 상기 수신된 부호어로부터 에러 위치 다항식 Λ(x)를 생성하는 에러 위치 다항식 생성부();
치엔 서치 알고리즘을 사용하여 에러 위치를 구하기 위한 상기 에러 위치 다항식 Λ(x)의 근을 구하는 치엔 서치부;
상기 에러 위치 다항식 생성부에 의해 상기 신드롬과 상기 수신된 부호어에 기초하여 생성된 에러 값 다항식과, 상기 에러 위치 다항식의 미분을 사용하여 에러 값을 생성하는 에러 값 계산부; 그리고
상기 에러 위치와 상기 에러 값을 사용하여 상기 수신된 부호어의 에러를 정정하는 가산기를 포함하되,
상기 에러 위치 다항식의 미분은 아래 수학식으로 정의되고,
[수학식]

상기 에러 위치 다항식의 미분은 상기 에러 위치 다항식의 짝수승 항을 '0'으로 설정하고, 상기 치엔 서치부에서 제공되는 적어도 어느 하나의 에러가 포함되는 심볼 항(x=xj -1)으로 나누는 연산이 사용되고,
상기 수신된 부호어(Codeword) R(x)는 갈루아 필드 GF(28=256)의 256개 요소를 포함하는 필드 생성 다항식()으로부터 생성되는 리드-솔로몬 디코더.
In the Reed-Solomon decoder:
A syndrome calculator that calculates a syndrome from the received codeword R(x);
An error location polynomial generator that generates an error location polynomial Λ(x) from the syndrome and the received codeword ( );
a Chien search unit that finds the root of the error location polynomial Λ(x) to find the error location using the Chien search algorithm;
an error value calculation unit that generates an error value using an error value polynomial generated by the error location polynomial generator based on the syndrome and the received codeword, and a differential of the error location polynomial; and
An adder that corrects an error in the received codeword using the error location and the error value,
The differentiation of the error location polynomial is defined by the equation below,
[Equation]

The differentiation of the error location polynomial sets the even power term of the error location polynomial to '0' and divides by the symbol term (x=x j -1 ) containing at least one error provided by the Chien search unit. operations are used,
The received codeword R(x) is a field generation polynomial ( ) Reed-Solomon decoder generated from.
제 1 항에 있어서,
상기 에러 위치 다항식 Λ(x)의 계수는 Berlekamp의 알고리즘 또는 유클리드 알고리즘을 사용하여 계산되고,
상기 에러 값 다항식의 해를 구하기 위해 상기 에러 위치 다항식의 미분을 사용하는 Forney 알고리즘이 적용되는 리드-솔로몬 디코더.
According to claim 1,
The coefficients of the error location polynomial Λ(x) are calculated using Berlekamp's algorithm or Euclidean algorithm,
A Reed-Solomon decoder to which the Forney algorithm is applied, which uses differentiation of the error position polynomial to find a solution to the error value polynomial.
제 1 항에 있어서,
상기 신드롬 계산기는 하나의 곱셈기와 하나의 레지스터를 사용하는 피드백 방식의 단일 피드백 시프트 레지스터를 포함하는 리드-솔로몬 디코더.
According to claim 1,
The syndrome calculator is a Reed-Solomon decoder that includes a single feedback shift register using a feedback method using one multiplier and one register.
KR1020230116663A 2023-03-17 2023-09-04 Reed-solomon decoder for error correction KR102611828B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20230035414 2023-03-17
KR1020230035414 2023-03-17

Publications (1)

Publication Number Publication Date
KR102611828B1 true KR102611828B1 (en) 2023-12-08

Family

ID=89166642

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230116663A KR102611828B1 (en) 2023-03-17 2023-09-04 Reed-solomon decoder for error correction

Country Status (1)

Country Link
KR (1) KR102611828B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050078270A (en) * 2004-01-29 2005-08-05 삼성전자주식회사 Rs decoder circuit having forward chien search type
KR20090018252A (en) * 2007-08-17 2009-02-20 삼성전자주식회사 Decoder for increasing throughput using double buffering structure and pipelining technique and decoding method thereof
KR20190021159A (en) * 2017-08-22 2019-03-05 삼성전자주식회사 Fast chase decoding method of generalized reed-solomon codes using groebner basis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050078270A (en) * 2004-01-29 2005-08-05 삼성전자주식회사 Rs decoder circuit having forward chien search type
KR20090018252A (en) * 2007-08-17 2009-02-20 삼성전자주식회사 Decoder for increasing throughput using double buffering structure and pipelining technique and decoding method thereof
KR20190021159A (en) * 2017-08-22 2019-03-05 삼성전자주식회사 Fast chase decoding method of generalized reed-solomon codes using groebner basis

Similar Documents

Publication Publication Date Title
Moision et al. Coded modulation for the deep-space optical channel: serially concatenated pulse-position modulation
KR101492634B1 (en) Method and appratus for transmitting and receiving data in a communication system using low density parity check codes
US6654926B1 (en) Soft decision maximum likelihood encoder and decoder
US8880973B1 (en) Detector-decoder interface for GF(q) iterative decoding
US8812930B1 (en) Parallel encoder for low-density parity-check (LDPC) codes
EP1701450A1 (en) Channel interleaving/deinterleaving for a communication system using a low density parity check (LDPC) code
US10992416B2 (en) Forward error correction with compression coding
Kumar et al. Bit error rate analysis of Reed-Solomon code for efficient communication system
EP1330062B1 (en) Method and apparatus for weighted non-binary repeat coding and space-time coding
Shrivastava et al. Error detection and correction using Reed Solomon codes
Boiko et al. Productivity of telecommunication systems with modified signal-code constructions
KR102611828B1 (en) Reed-solomon decoder for error correction
US9356734B2 (en) Transmitter, receiver, and signal processing method thereof
EP2639962B1 (en) Joint message-passing decoding of a differential code and a channel code
Mergu Performance analysis of Reed-Solomon codes concatenated with convolutional codes over AWGN channel
Pandey et al. Comparative performance analysis of block and convolution codes
Ratnam et al. A Study on performance evaluation of Reed-Solomon (RS) Codes through an AWGN Channel Model in a Communication System
US7734991B1 (en) Method of encoding signals with binary codes
TWI583140B (en) Decoding module for logarithmic calculation function
Meghana et al. Comparitive analysis of channel coding using BPSK modulation
Malenko Implementation of Reed-Solomon RS (255,239) Code
Babrekar et al. Review of FPGA Implementation of Reed-Solomon Encoder-Decoder
James et al. Multiple error correction using non-binary Redundant Residue Number System
Kaur et al. Study of forward error correction using reed—solomon codes
Kaur et al. Performance evaluation of space codes using 16-QAM technique

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant