KR100258440B1 - Decoding algorithm for shortened bch code - Google Patents
Decoding algorithm for shortened bch code Download PDFInfo
- Publication number
- KR100258440B1 KR100258440B1 KR1019970057768A KR19970057768A KR100258440B1 KR 100258440 B1 KR100258440 B1 KR 100258440B1 KR 1019970057768 A KR1019970057768 A KR 1019970057768A KR 19970057768 A KR19970057768 A KR 19970057768A KR 100258440 B1 KR100258440 B1 KR 100258440B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- syndrome
- bch
- calculator
- polynomial
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
본 발명은 오류정정 보호의 복호기에 관한 것으로서, 특히 단축 BCH부호의 복호 방법 및 이에 적합한 복호기에 관한 것이다.The present invention relates to a decoder for error correction protection, and more particularly, to a decoding method of a shortened BCH code and a decoder suitable for the same.
BCH 부호는 대수적 성질을 이용하여 부호화와 복호화를 수행할 수 있는 대표적인 오류정정 부호로서, 부호기와 복호기를 비교적 쉽게 구현할 수 있기 때문에 일반적으로 널리 사용되고 있다. 그런데, 현재 널리 이용되는 BCH 부호의 복호기들은 부호의 실제 오류정정 능력보다는 BCH 한계에 의한 오류만을 정정할 수 있다. 이에 대하여, 최근에는 BCH 한계가 아닌 부호의 실제 오류정정 능력까지 오류를 정정할 수 있는 방법들이 개발되고 있다.The BCH code is a typical error correction code that can be encoded and decoded using algebraic properties, and is widely used because it is relatively easy to implement an encoder and a decoder. However, decoders of the BCH code which are widely used now can correct only errors due to the BCH limit rather than the actual error correction capability of the code. On the other hand, in recent years, methods for correcting errors up to the actual error correction capability of the code, not the BCH limit, have been developed.
이러한 BCH 부호에서 블록부호의 입력과 출력길이는 부호를 구현한 필드나 오류정정 능력 등에 의해 엄격하게 제한된다. 그러나 오류정정 부호를 사용하는 측면에서는 시스템에 따라 프레임의 크기나 부호율에 대한 제약이 존재하므로 고정된 입력과 출력길이를 갖는 오류정정 부호를 사용하기가 곤란하다. 따라서, 대부분의 시스템에서는 입력 중 일부분과 출력 중 일부분을 사용하지 않음으로써, 프레임의 크기와 부호율에 대한 제약을 만족하는 단축부호를 사용한다.In this BCH code, the input and output lengths of the block code are strictly limited by the field implementing the code or the error correction capability. However, it is difficult to use error correction codes with fixed input and output lengths because there are limitations on the frame size and code rate in some systems. Therefore, most systems do not use a portion of the input and a portion of the output, so that a short code that satisfies the constraints on the frame size and the code rate is used.
오류정정 부호를 사용하는 경우는 입력데이터에 패리비트를 첨부한 출력데이터가 만들어짐으로써 부호화된 출력데이터들 간의 거리차이는 입력데이터들 간의 거리차이보다 증가한다. 송신단에서 오류정정 부호를 사용하여 부호화된 데이터를 전송하면, 수신단에서는 오류가 발생한 수신데이터와 오류정정 부호를 사용할 때 출력 가능한 데이터들을 비교하여 차이가 가장 작은 출력 가능한 데이터를 원래 전송한 데이터라고 판정한다. 따라서, 오류정정 부호의 출력데이타들 간의 최소 차이가 오류정정 능력과 밀접한 연관을 갖는다.In the case of using an error correction code, output data having a parity bit attached to the input data is generated, so that the distance difference between the encoded output data increases than the distance difference between the input data. When the transmitting end transmits the data encoded using the error correction code, the receiving end compares the received data with the error and the data that can be output when the error correcting code is used, and determines that the outputable data having the smallest difference is the data originally transmitted. . Therefore, the minimum difference between the output data of the error correction code is closely related to the error correction capability.
BCH 부호의 입력데이터가 q-ary 심볼로 이루어져 있고, 입력의 길이가 n=qm-1이고, 요구하는 오류정정 능력은 t라고 하면, BCH 부호의 생성 다항식g(x)는 다음 수학식 1과 같다.If the input data of the BCH code is composed of q-ary symbols, the length of the input is n = q m -1, and the required error correction capability is t, the generation polynomial g (x) of the BCH code is Same as
여기서, fi(x)는 GF(q)의 원시인인 a의 i승수인 ai에 대한 최소의 다항식 (minimal polynomial)이다.Where f i (x) is the minimal polynomial of a i , the i-multiplier of a primitive a of GF (q).
생성다항식 g(x)는 다음 수학식 2의 조건을 만족한다.The generated polynomial g (x) satisfies the condition of Equation 2 below.
입력데이터를 GF(q)에서의 다항식 i(x)로 표현하면 수학식 3과 같다.When the input data is expressed by the polynomial i (x) in GF (q), Equation 3 is expressed.
BCH 부호의 부호화는 입력 다항식 i(x)와 생성다항식 g(x)의 곱으로 나타내진다. 출력 다항식 c(x)는 다음 수학식 4로 나타낼 수 있다.The coding of the BCH code is represented by the product of the input polynomial i (x) and the generated polynomial g (x). The output polynomial c (x) can be represented by the following equation (4).
출력데이터의 길이가 n이면 출력다항식 c(x)의 차수는 n-1이 된다. 그리고 생성다항식 g(x)의 차수는 수학식 1에 의해 결정된다. 그러므로 입력다항식 i(x)의 차수 k-1도 결정되며, 상술되어 정의된 BCH 부호는 (n, k, t) 부호가 된다.If the length of the output data is n, the order of the output polynomial c (x) is n-1. The order of the generated polynomial g (x) is determined by Equation 1. Therefore, the order k-1 of the input polynomial i (x) is also determined, and the BCH code defined above becomes the (n, k, t) code.
수학식 4를 변형하여 동일한 BCH 부호를 수학식 5로 나타낼 수 있다.Equation 4 may be modified to represent the same BCH code as Equation 5.
여기서,는 a(x)를 g(x)로 나눈 나머지를 의미한다.here, Is the remainder of a (x) divided by g (x).
수학식 4와 수학식 5는 두 개의 식 모두(n, k, t) BCH 부호의 부호화 방법을 표현한 것으로서, 수학식 4를 비조직형 부호, 수학식 5를 조직형 부호라고 한다.Equations 4 and 5 represent a method of encoding BCH codes in both equations (n, k, t), and Equation 4 is referred to as an unstructured code and Equation 5 is referred to as an organizational code.
조직형 부호에서 출력 데이터에 패리티(parity) 비트만을 첨부한 형태가 된다. 따라서 입력 데이터가 출력 데이터에 그대로 나타난다. 그러므로 입력 데이터 중 k0개를 사용하지 않으면 출력 데이터에도 k0개를 사용하지 않는 것과 동일한 효과가 생긴다. 이와 같은 부호를 (n-k0, k-k0, t) 단축 BCH 부호하고 한다. 출력 다항식 c(x)는 수학식 2에 의해 수학식 6과 같은 성질을 만족한다.In the organization type code, only parity bits are attached to the output data. Therefore, the input data appears intact in the output data. Therefore, not using k 0 input data has the same effect as not using k 0 output data. Such a code is referred to as (nk 0 , kk 0 , t) shortened BCH code. The output polynomial c (x) satisfies the same properties as in Equation 6 by Equation 2.
조직형 부호일 경우에도 Rg(x)[c(x)]=0 이므로 c(aj)=0, j=b, b+1,....,b+2t-1을 만족한다.Even in the case of the organization code, R g (x) [c (x)] = 0, thus satisfying c (a j ) = 0, j = b, b + 1, ..., b + 2t-1.
송신단에서 송신데이터를 부호화한 후 전송하면, BCH 부호화된 데이터는 채널을 경유하는 도중에 오류가 발생되는 경우 수신단에서는 잘못된 데이터를 수신하게 된다. 이때, 송신단과 수신단 사이에 존재하는 채널을 가산채널이라고 하면 수신 데이터를 수학식 7과 같이 표현될 수 있다.If the transmitting end encodes the transmission data and then transmits the data, the BCH encoded data may receive incorrect data when an error occurs during the channel. In this case, if the channel existing between the transmitting end and the receiving end is an addition channel, the received data may be expressed as shown in Equation (7).
여기서, v(x)는 수신된 데이터를 다항식으로 표현한 것이고, e(x)는 채널에서 발생한 오류를 다항식으로 표현한 것이다.Here, v (x) is a polynomial expression of the received data, and e (x) is a polynomial expression of an error occurring in the channel.
수학식 6에 의해 다음과 같은 수학식 8의 관계식을 얻을 수 있다.According to Equation 6, the following Equation 8 can be obtained.
여기서, e(aj)를 신드롬 Sj라고 한다. 수학식 8에 의해 구할 수 있는 신드롬들은 모두 2t개가 되며, BCH 부호의 복호는 모든 신드롬들을 구함으로써 수행할 수 있다. 따라서, BCH 부호의 복호 알고리듬의 핵심은 2t개의 신드롬들로 다른 신드롬들을 계산하는 방법이다.Here, e (a j ) is called syndrome S j . The number of syndromes that can be obtained by Equation 8 is 2t, and the decoding of the BCH code can be performed by obtaining all syndromes. Therefore, the core of the decoding algorithm of the BCH code is a method of calculating other syndromes with 2t syndromes.
이하, BCH 부호의 복호 방법을 도면을 참조하여 상세히 설명한다.Hereinafter, the decoding method of the BCH code will be described in detail with reference to the drawings.
제1도는 종래의 프리에 변환을 이용하는 BCH 부호의 복호기를 설명하기 위한 블록도이다.1 is a block diagram for explaining a decoder of a BCH code using a conventional free transform.
송신 데이타는 BCH 부호의 부호기(11)에 의해 부호환된 후 채널(12)을 통해 전송된다. 수신단에서는 채널(12)을 통해 전송된 데이타를 수신한 후 프리에변환(Fourier Transform) 계산기(13)로 수신 데이타를 프리에 변환한다.The transmission data is transmitted through the channel 12 after being encoded by the
이때, 유한 필드에서의 프리에 변환은 다음 수학식 9와 같이 정의된다.In this case, the Fourier transform in the finite field is defined as in Equation 9 below.
프리에 변환된 데이터 중 2t개의 갑은 Vj=Sj, j=b, b+1, ..., b+2t-1과 같다. 여기서 산출된 2tro의 신드롬들을 가지고 신드롬 계산기(16)를 이용하여 나머지 신드롬들을 계산한다. 채널(12)에서 발생한 오류의 갯수가 t이하일 경우에는 신드롬들은 수학식 8에서 나타난 바와 같이 오류다항식 e(x)의 프리에 변환값이 된다. 신드롬 계산기(16)의 출력을 역프리에변환(Inverse Fourier Transform) 계산기 (14)로 역프리에 변환하면 오류다항식 e(x)를 얻게 된다. 신드롬 계산기 (16) 출력의 역프리에 변환은 다음 수학식 10과 같다.The 2t values of the pre-converted data are equal to V j = S j , j = b, b + 1, ..., b + 2t-1. With the syndromes of 2tro calculated here, the remaining syndromes are calculated using the
채널(12)로부터 수신된 BCH 부호화한 데이터에서 역프리에변환 계산기(14)의 출력인 오류값을 감산기(15)에서 감산하여 BCH 부호의 복호를 완료한다. 이러한 도1에 도시된 복호기는 최소거리의 1/2보다 작은 BCH 한계값에 제한되어 에러정정을 할 수 있다.The
제2도는 종래의 Feng-Tzeng이 발표한 BCH 부호의 복호기를 설명하기 위한 블록도이다.2 is a block diagram for explaining a decoder of a BCH code published by the conventional Feng-Tzeng.
제2도에 도시된 BCH 부호의 복호기는 제1도의 신드롬 계산기(16)가 EFIA(Extended Fundamental Iterative Algorithm) 계산기(26)와 나머지 신드롬 계산기(27)로 분리된 것을 제외하고는 동일한다. 신드롬들을 계산하기 위해, 프리에변환 계산기(23)에서 출력된 신드롬값을 가지고 EFIA 계산기(26)로 신드롬들을 계산한다. 그리고 EFIA(26)에서 출력된 신드롬값을 가지고 나머지 신드롬 계산기(27)로 EFIA 계산기(26)로는 계산하지 못한 나머지 신드롬들을 계산한다. 역프리에변환 계산기(28)는 나머지 신드롬 계산기(27)에서 출력되는 모든 신드롬들을 계산한 값을 유입하여 오류다항식을 산출한다.The decoder of the BCH code shown in FIG. 2 is the same except that the
이하, EFIA 계산기(26)와 나머지 신드롬 계산기(27)의 동작 원리에 대해 자세히 설명한다. 신드롬들로부터 행렬 S의 수학식 11이 구성될 수 있다.Hereinafter, the operation principle of the
여기서 Si, j=Sb+i+j-2이다. 행렬 S의 원소 중 St부터 Sb+2t-1까지는 수신된 데이타를 프리에 변환함으로써 얻을 수 있는 값들이고 나머지 신드롬들은 계산할 수 없는 값들이다.Where S i, j = S b + i + j-2 . Among the elements of the matrix S, S t to S b + 2t-1 are the values that can be obtained by pre-converting the received data, and the remaining syndromes cannot be calculated.
채널에서 발생한 오류의 수를 υ라고 하면, υ≤t 일 때에는 위와 같이 구현된 신드롬 행렬 S의 랭크가 υ가 된다. 그러므로 미지의 신드롬들을 계산하기 위해 신드롬 행렬 S의 랭크가 t보다 작거나 같다는 사실을 용할 수 있다.If the number of errors occurring in the channel is υ, the rank of the syndrome matrix S implemented as described above becomes υ when υ ≤ t. Therefore, the fact that the rank of the syndrome matrix S is less than or equal to t can be used to calculate unknown syndromes.
FIA(Fundamental Iterative Algorithm)는 M×N 행렬에서 M×ℓ 행렬이 서로 종속적이 되는 최소의 ℓ의 찾아주는 알고리듬이며, 이 FIA를 BCH 부호의 복호에 이용할 수 있도록 Feng-Tzeng이 변형한 것이 EFIA(Extended Fundamental Iterative Algorithm)이다. 이 EFIA의 동작은 다음과 같은 단계로 수행된다.The FIA (Fundamental Iterative Algorithm) is a minimum l search algorithm in which M × L matrices are dependent on each other in the M × N matrix, and Feng-Tzeng transforms the FIA to use it for decoding the BCH code. Extended Fundamental Iterative Algorithm. The operation of this EFIA is performed in the following steps.
S1단계 : 테이블 C, D, E, F를 설정하고, 1→s(차수), 1→r(r 번째 칼럼), 1→c(o, s)로 각각 대입한다.Step S1: Sets tables C, D, E, and F and substitutes 1 → s (order), 1 → r (r-th column), and 1 → c (o, s) , respectively.
S2단계 :를 산출한다.S2 stage: To calculate.
S3단계 : 산출된 dr, s의 값이 0이면, S3(a) 및 S3(b)단계의 조건에 따라 진행한다.Step S3: If the calculated values of d r and s are 0, the process proceeds according to the conditions of steps S3 (a) and S3 (b).
S3단계 : r이 2t+1-s의 값과 같지 않으며, S3(a1) 및 S3(a2)단계의 조건에 따라 진행한다.Step S3: r is not equal to the value of 2t + 1-s, and proceeds according to the conditions of steps S3 (a1) and S3 (a2).
S3(a1)단계 : dr+1,μ가 테이블 D에 존재하지 않으면 Sr+1, s=로 두고 Sr+1.s와 c(r-1, s)(x)를 각각 테이블 E와 테이블 F에 저장한 다음 S3(a2)단계로 진행한다.Step S3 (a1): If d r + 1, μ does not exist in the table D, S r + 1, s = S r + 1.s and c (r-1, s) (x) are stored in Table E and Table F, respectively, and then proceed to step S3 (a2).
S3(a2)단계 : dr+1.μ가 테이블 D에 존재하고 s가 2t와 같으면 알고 리듬을 종료한다. s가 2t와 같지 않으면 c(r-1,s)(x) → c(s)(x)→ c(0,s+1)(x)로 한다. 그리고 s+1→s, 1→r로 각각 대입하고 S2단계로 진행한다.Step S3 (a2): If d r + 1.μ exists in table D and s is equal to 2t, the algorithm ends the rhythm. If s does not equal 2t, then c (r-1, s) (x) → c (s) (x) → c (0, s + 1) (x). Then substitute s + 1 → s and 1 → r and proceed to step S2.
S3(b)단계 : r이 2t+1-s와 같지 않으며, c(r-1,s)(x) → c(r, s)(x), r+1 →r로 대입하고 S2단계로 진행한다.S3 (b) step: r is not equal to 2t + 1-s, substitute c (r-1, s) (x) → c (r, s) (x), r + 1 → r and go to step S2 Proceed.
S4단계 : dr, s가 0이 아니면, S4(a) 및 S4(b)단계의 조건에 따라 진행한다.Step S4: If d r and s are not 0, the process proceeds according to the conditions of steps S4 (a) and S4 (b).
S4(a)단계 : 1≤μ<s 에서 dr, μ가 테이블 D에 존재하면,로 대입하고 S3(a)단계로 진행한다.Step S4 (a): If d r and μ exist in the table D in 1≤μ <s, Substitute at and proceed to step S3 (a).
S4(b)단계 1≤μ<s에서 dr, μ가 테이블 D에 존재하지 않으면, dr,μ를 테이블 D에 저장하고 c(s)(x)를 테이블 C에 저장한다. 그리고 S3(a2)단계로 진행한다.S4 (b) a step 1≤μ <s at d r, μ does not exist in the table D, and stores the d r, μ in Table D, and stores the c (s) (x) in Table C. Then proceed to step S3 (a2).
여기서,이다. 그리고의 s번째 항의 계수를 의미한다.here, to be. And The coefficient of the sth term of.
상기 EFIA가 완료되면 테이블 E에 소정의 신드롬들이 계산되어 저장되고, 테이블 F에 신드롬들을 종속적으로 만들 수 있는 다항식 c(x)가 저장된다. 제2도의 EFIA 계산기(26)는 EFIA를 구현한 것이다.When the EFIA is completed, predetermined syndromes are calculated and stored in table E, and polynomial c (x) for storing syndromes in table F is stored. The
EFIA 계산기(26)에 의해 모든 신드롬들이 계산된 것은 아니며, 프리에 변환으로 산출된 신드롬들과 테이블 E에 저장되어 있는 EFIA로 계산된 신드롬들과 테이블 F에 저장되어 있는 다항식 c(x)를 이용하여 c(x)와 이전 신드롬들과의 승산된 값이 0이 되도록 나머지 신드롬들이 계산된다. 나머지 신드롬 계산기(27)는 상기와 같은 나머지 신드롬 계산작업을 수행한다. 나머지 신드롬 계산기(27)로부터 출력된 값은 역프리에변환 계산기(24)에서 역프리에변환되어 오류다항식을 생성하며, 생성된 오류다항식의 오류값은 감산기(25)에서 채널(12)을 통해 수신된 BCH 부호화된 데이터로부터 감산되어 복호가 완료된다. 이 경우에는 제1도에 도시된 복호기보다 개선된 최소거리의 1/2까지 즉, 실제 거리까지 복호가 가능하게 된다.Not all syndromes are calculated by the
그런데, 원래의 BCH 부호와 비교하여 단추 BCH 부호에서는 일정 부분의 입력을 사용하지 않으므로 단축부호의 출력 가능한 데이터들의 집합은 원래 BCH 부호의 출력 가능한 데이터들 집합의 부분 집합이 된다. 즉, 단축부호의 출력 가능한 데이터들 사이의 최소 차이는 원래 부호의 출력 가능한 데이터들 사이의 최소 거리보다 크거나 같게 되며, 이는 단축 BCH 부호가 원래의 BCH 부호에 비교하여 더 큰 오류 정정 능력이 있을 수 있으며, 이를 이용한 오류정정 기능이 보다 향상된 복호기가 요구되어 왔다.However, since the button BCH code does not use a portion of the input in comparison with the original BCH code, the set of outputable data of the shortcode becomes a subset of the set of outputable data of the original BCH code. That is, the minimum difference between the outputable data of the shortcode is greater than or equal to the minimum distance between the outputable data of the original code, which means that the shortened BCH code will have a greater error correction capability compared to the original BCH code. The decoder has been required to have an improved error correction function.
본 발명의 기술적 과제는 단축 BCH 부호를 사용하는 경우, 종래의 BCH 부호의 복호기로는 오류를 정정할 수 없는 경우에는 오류를 정정할 수 있는 BCH 부호화된 데이터의 복호 방법 및 이에 적합한 복호기에 관한 것이다.The technical problem of the present invention relates to a method of decoding BCH encoded data and a decoder suitable for the error, when an error cannot be corrected by a conventional BCH code decoder when a shortened BCH code is used. .
제1도는 종래의 프리에변환을 이용하는 BCH 부호의 일반적인 복호기를 설명하기 위한 블록도이다.1 is a block diagram for explaining a general decoder of a BCH code using a conventional free transform.
제2도는 종래의 Feng-Tzeng이 발표한 BCH 부호의 실제 거리까지 복호할 수 있는 복호기의 블록도이다.2 is a block diagram of a decoder capable of decoding up to the actual distance of the BCH code published by the conventional Feng-Tzeng.
제3도는 본 발명에 의한 단축 BCH 부호의 복호기를 설명하기 위한 블록도이다.3 is a block diagram for explaining a decoder of a shortened BCH code according to the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
31 : BCH 부호기 32 : 채널31: BCH encoder 32: channel
33 : 프리에변환 계산기 34 : 역프리에변환 계산기33: Free Conversion Calculator 34: Inverse Free Conversion Calculator
35 : 감산기 36 : EFIA 계산기35: Subtractor 36: EFIA Calculator
37 : 나머지 신드롬 계산기 38 : 복호오류위치 검출기37: remaining syndrome calculator 38: decoding error position detector
39 : 버퍼 40 : 복호제어기39: buffer 40: decoding controller
상기의 목적을 달성하기 위한 본 발명에 따른, 단축 BCH 부호화한 데이터를 프리에변환하여 복호하는 BCH 복호 방법에 있어서, 상기 프리에 변환하여 산출된 신드롬으로 EFIA(Extende Fundamental Iterative Algorithm)를 통하여 신드롬을 계산하고 계산되지 않은 나머지 신드롬을 계산하는 제1과정, 상기 계산된 신드롬을 역프리에 변환하여 오류다항식을 산출하는 제2과정, 상기 오류다항식을 통하여 상기 BCH 부호화된 데이타의 단축위치에 오류가 존재하지 않은 것으로 확인되면 유입된 상기 BCH 부호화된 데이터로부터 상기 오류다항식의 값을 감산하여 복호하는 제3과정, 상기 오류다항식을 통하여 단축위치에 오류가 존재하면 신드롬이 될 가능성이 있는 원소에 소정의 값들을 순차적으로 조합하여 상기 제1과정과 제2과정을 통하여 신드롬을 계산하고 오류다항식들을 산출하는 제4과정, 및 상기 제4과정에서 산출된 오류다항식들 중 오류가 단축위치에 있지 않은 오류다항식이 한 개가 존재하면 그 오류다항식의 오류값으로 유입된 상기 BCH 부호화된 데이터를 감산하여 복호하는 제5과정을 포함함을 특징으로 한다.In the BCH decoding method for pre-transforming and decoding shortened BCH-coded data according to the present invention for achieving the above object, a syndrome is calculated through an EFIA (Extende Fundamental Iterative Algorithm) with a syndrome calculated by pre-transforming. A first process of calculating the remaining uncalculated syndrome, a second process of calculating the error polynomial by converting the calculated syndrome into an inverse free, and not having an error in a shortened position of the BCH-coded data through the error polynomial In the third step of subtracting the error polynomial value from the BCH-coded data, if it is confirmed, predetermined values are sequentially assigned to elements that are likely to be syndromes if an error exists in a shortened position through the error polynomial. In combination with the first and second processes to calculate the syndrome and the error polynomial If there is one error polynomial in which the error is not in the shortened position among the error polynomials calculated in the fourth step, and the error polynomial of the error polynomial is subtracted, And a fifth process of decoding.
또한, 상기 제4과정에서 상기 신드롬이 될 가능성이 있는 원소는 GF(qm)의 신드롬 행렬 (S)중 S1,2t+1과 S1,2t+2의 칼럼내에 있는 원소임을 특징으로 한다.In the fourth process, the element likely to be the syndrome is an element in a column of S 1,2t + 1 and S 1,2t + 2 in the syndrome matrix S of GF (q m ). .
여기서, t는 BCH 부호의 실제 거리이다.Where t is the actual distance of the BCH code.
또한, 상기 제4과정에서 상기 원소의 소정의 값들은 0 내지 qm-1까지의 값임을 특징으로 한다.Further, in the fourth process, predetermined values of the element may be values ranging from 0 to q m −1.
또한, 상기의 목적을 달성하기 위한 본 발명에 따른, 단축 BCH 부호화한 데이터를 프리에변환 계산기를 통하여 복호하는 BCH 복호기에 있어서,In addition, in the BCH decoder which decodes the shortened BCH-coded data through the pre-transformation calculator according to the present invention for achieving the above object,
상기 프리에변환 계산기에서 산출된 신드롬들을 계산하며, 신드롬이 될 가능성이 있는 원소에 소정의 값들을 유입하여 신드롬을 계산하는 신드롬계산기, 상기 계산된 신드롬을 역프리에 변환하여 오류다항식을 출력하는 역프리에변환 계산기, 상기 오류다항식을 유입하여 단축한 위치에 오류 발생여부를 검사하여 오류위치검출신호를 출력하는 복호오류위치 검출기, 라이트제어신호에 따라 단축한 위치에서 오류가 발생하지 않은 오류다항식만을 저장하고 출력제어신호를 유입하여 저장된 오류다항식을 출력하는 버퍼, 상기 버퍼에서 출력되는 오류다항식의 오류값을 유입된 상기 BCH 부호화된 데이터로부터 감산하여 복호하는 감산기, 및 상기 오류위치신호를 통하여 오류가 단축한 위치에서 존재하는 것으로 확인되면 신드롬이 될 가능성이 있는 원소에 소정의 값들을 순차적으로 조합하여 출력하고, 단축위치에 오류가 존재하지 않으면 상기 라이트제어신호를 출력하며, 상기 BCH 부호화된 데이터의 한 스트림에 대한 오류다항식의 산출이 완료된 후, 상기 버퍼를 검색하여 저장된 오류다항식이 한 개이면 상기 출력제어신호를 출력하는 복호제어기를 포함함을 특징으로 한다.A syndrome calculator that calculates syndromes calculated by the preier conversion calculator, introduces predetermined values into elements likely to be syndromes, and calculates syndromes, and an inverse freeier transform that converts the calculated syndromes to an inverse frie and outputs an error polynomial. Calculator, Decoded error position detector that checks whether an error occurs in the shortened position by introducing the error polynomial and outputs an error position detection signal, and stores and outputs only the error polynomial in which no error occurred at the shortened position according to the light control signal. A buffer for inputting a control signal and outputting the stored error polynomial, a subtractor for subtracting and decoding the error value of the error polynomial outputted from the buffer from the BCH-coded data, and a position where the error is shortened through the error position signal If it is found in, it could be a syndrome And sequentially output predetermined values, output the write control signal if no error exists in the shortened position, and after the calculation of the error polynomial for one stream of the BCH-coded data is completed, the buffer is And a decoding controller for outputting the output control signal when the error polynomial searched and stored is one.
또한, 상기 신드롬계산기는 EFIA(Extended Fundamental Iterative Algorithm) 계산기와 상기 EFIA 계산기에서 계산되지 않은 신드롬을 계산하는 나머지 신드롬 계산기를 포함함을 특징으로 한다.In addition, the syndrome calculator is characterized in that it comprises an Extended Fundamental Iterative Algorithm (EFIA) calculator and the remaining syndrome calculator for calculating the syndrome not calculated in the EFIA calculator.
제3도는 본 발명에 따른 단축 BCH 부호의 복호기를 설명하기 위한 블록도이다.3 is a block diagram illustrating a decoder of a shortened BCH code according to the present invention.
제3도의 본 발명에 따른 단축 BCH 부호의 복호기의 전단은 상술된 제2도에 도시된 복호기의 전단과 동일하게 동작된다. 따라서, 송신데이터는 BCH 부호기(31)에 의해 부호화된 후 채널(32)을 통해 전송되며, 수신단에 수신된 BCH 부호는 프리에변환 계산기(33)를 통하여 프리에 변환되고, 프리에 변환으로 얻어진 2t개의 신드롬들을 갖는다. 여기서, t는 오류정정능력이며, 최소거리의 1/2로서 실제거리를 나타낸다. 2t개의 신드롬을 가지고 EFIA계산기(36)로 신드롬들 계산한 후, 나머지 신드롬 계산기(37)로 모든 신드롬들을 계산한다. 계산된 모든 신드롬들은 역프리에변환 계산기(34)를 통하여 오류다항식으로 산출된다. 복호오류위치 검출기(38)는 프리에변환 계산기(34)로 구한 오류다항식을 가지고 복호 오류가 단축한 위치 또는 단축되지 않은 위치에서 발생하였는지를 검출한다.The front end of the decoder of the shortened BCH code according to the present invention of FIG. 3 operates the same as the front end of the decoder shown in FIG. Therefore, the transmission data is encoded by the
채널(32)에서 오류정정 능력 t보다 많은 오류가 발생한 경우에는 복호기에서는 실제 오류가 발생한 곳과는 다른 곳에서 오류가 발생하였다고 판정하거나 오류가 발생하지 않았다고 잘못 판정하여 복호 오류가 발생한다. 이때, 단축 BCH 부호를 사용한 경우에는 복호오류에 의해 단축한 입력 심볼에서 오류가 발생하였다고 판정하는 경우가 존재한다. 이런 경우가 발생하면 복호 오류가 발생하였다고 판정할 수 있다.If more errors than the error correction capability t occur in the
복호오류위치 검출기(38)는 역프리에변환 계산기(34)를 통하여 산출된 오류 다항식을 유입하여 단축된 위치에서 오류가 발생하였는지 여부를 검사하여 복호제어기(40)에 오류위치신호를 출력한다. 복호제어기(40)는 유입된 오류위치검출신호를 통하여 만약 발생한 모든 오류가 단축한 위치에 존재하지 않는 것으로 인식되면 버퍼(39)에 라이트신호를 출력하여 역프리에변환 계산기(34)의 출력인 오류다항식을 버퍼(39)에 저장한 후, 감산기(35)로 출력시키면 감산기(35)는 유입된 BCH 부호화된 데이터에서 복호다항식의 오류값을 감산하여 한 스트림의 BCH 부호환된 데이터에 대한 복호를 완료한다.The decoding
한편, 복호오류위치 검출기(39)에서 오류다항식을 통하여 복호오루가 발생할 수 없는 단축위치에 복호오류가 있는 것으로 검출하여 오류위치신호를 복호제어기(40)에 출력하면, 복호제어기(40)는 신드롬이 가능한 원소의 신드롬값을 추가하여 EFIA계산기(36)에 전송한다. EFIA계산기(36)는 수학식 11에서 S1, 2t+2와 S1, 2t+3의 원소를 갖는 두 개의 칼럼을 추가하고, 신드롬이 될 가능성이 있는 GF(qm)의 원소(element)들 중 두개를 상기 원소 S1, 2t+1과 S1, 2t+2에 대하여 복호제어기(40)로부터 유입된 값으로 정하여 t+1개의 오류를 정정할 수 있도록 신드롬을 계산한다. 그리고 나머지 신드롬 계산기(37)와 역프리에변환 계산기(34)로 오류다항식을 산출한다. 복호오류위치 검출기(38)는 역프리에변환 계산기(34)로 얻은 오류다항식을 가지고 단축한 위치에서 오류가 발생하였는지를 검사한다. 복호제어기(40)는 오류위치신호를 통하여 발생한 모든 오류가 단축한 위치에 존재하지 않는 것으로 판단되면, 버퍼(39)에 라이트제어신호를 출력하여 역프리에변환 계산기(34)의 출력인 오류다항식을 저장한다. 이상의 일련의 작업을 신드롬이 될 가능성이 있는 0 내지 qm의 심볼값으로 모든 쌍들에 대해 수행한다. 모든 심볼값에 대한 오류다항식의 출력이 완료되면 복호제어기(40)는 버퍼(39)내에 몇 개의 오류다항식이 저장되었는지를 검색하고, 저장된 오류다항식이 하나이면 복호제어기(40)는 오류정정이 가능하므로 버퍼(39)에 출력제어신호를 전송하여 저장된 오류다항식을 감산기(35)로 출력한다. 검산기(35)는 수신된 BCH 부호화된 데이터로부터 오류다항식의 오류값을 감산하여 복호를 완료한다. 만약 버퍼(39)에 저장된 오류다항식이 2개이상이면 수신된 BCH 부호의 오류정정이 불가능하므로 종래와 같이 수신된 BCH 부호화된 데이터를 그대로 출력한다.On the other hand, if the decoding
상술한 바와 같이 본 발명은 BCH 부호의 실제 거리까지 복호가 가능하며, 단축 BCH 부호의 경우에는 종래의 BCH 부호 오류정정 능력보다 많은 오류가 발생하더라도 오류가 BCH 부호의 단축위치에서 발생되면 조건에 따라 오류정정이 가능하기 때문에 보다 향상된 복호기능을 제공한다.As described above, the present invention can decode up to the actual distance of the BCH code, and in the case of the shortened BCH code, even if more errors occur than the conventional BCH code error correction capability, if an error occurs at a shortened position of the BCH code, Because error correction is possible, more advanced decoding function is provided.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970057768A KR100258440B1 (en) | 1997-11-03 | 1997-11-03 | Decoding algorithm for shortened bch code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970057768A KR100258440B1 (en) | 1997-11-03 | 1997-11-03 | Decoding algorithm for shortened bch code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990038129A KR19990038129A (en) | 1999-06-05 |
KR100258440B1 true KR100258440B1 (en) | 2000-06-01 |
Family
ID=19524063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970057768A KR100258440B1 (en) | 1997-11-03 | 1997-11-03 | Decoding algorithm for shortened bch code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100258440B1 (en) |
-
1997
- 1997-11-03 KR KR1019970057768A patent/KR100258440B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990038129A (en) | 1999-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thommesen et al. | Bounds on distances and error exponents of unit memory codes | |
US5373511A (en) | Method for decoding a reed solomon encoded signal with inner code and apparatus for doing same | |
US7788570B1 (en) | Optimized Reed-Solomon decoder | |
US10992416B2 (en) | Forward error correction with compression coding | |
US7246294B2 (en) | Method for iterative hard-decision forward error correction decoding | |
US6044482A (en) | Digital transmission system for encoding and decoding attribute data into error checking symbols of main data | |
JPH05244020A (en) | Decoder capability reinforcing method for decoding interleaving-type error correction code | |
KR101298745B1 (en) | Methods and devices for decoding and encoding data | |
RU2310273C2 (en) | Method for encoding/decoding information in data transmission networks | |
US5936978A (en) | Shortened fire code error-trapping decoding method and apparatus | |
US7096403B2 (en) | Iterative concatenated code decoding circuit and encoding/decoding system using the same | |
JPH0661872A (en) | Communication system | |
Bossert et al. | Hard-and soft-decision decoding beyond the half minimum distance---An algorithm for linear codes (Corresp.) | |
KR101314232B1 (en) | Coding and decoding method and codec of error correction code | |
KR100526222B1 (en) | Decoder and decoding method | |
US5359610A (en) | Error detection encoding system | |
KR100258440B1 (en) | Decoding algorithm for shortened bch code | |
JP3263706B2 (en) | Error correction decoding method | |
JPH08293802A (en) | Interleaving type error correction method | |
KR101636406B1 (en) | Preprocessing apparatus and method for low latency of syndrome calculation in bch decoder | |
KR100330642B1 (en) | Error Correction Method and Error Correction Device | |
KR0141826B1 (en) | Error correction method of compression data | |
US8091012B2 (en) | System and method for decreasing decoder complexity | |
Peile | On the performance and complexity of A generalized minimum distance reed–solomon decoding algorithm | |
KR890003154B1 (en) | R-s decoder circuit for error correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |