JPS63267018A - System and device for error correction of long distance code - Google Patents

System and device for error correction of long distance code

Info

Publication number
JPS63267018A
JPS63267018A JP10016987A JP10016987A JPS63267018A JP S63267018 A JPS63267018 A JP S63267018A JP 10016987 A JP10016987 A JP 10016987A JP 10016987 A JP10016987 A JP 10016987A JP S63267018 A JPS63267018 A JP S63267018A
Authority
JP
Japan
Prior art keywords
error
matrix
equation
long distance
row
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP10016987A
Other languages
Japanese (ja)
Inventor
Yuichi Kadokawa
雄一 門川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP10016987A priority Critical patent/JPS63267018A/en
Priority to US07/185,079 priority patent/US4937829A/en
Publication of JPS63267018A publication Critical patent/JPS63267018A/en
Pending legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

PURPOSE:To realize the high speed processing by setting a data word of each element of a matrix and applying left fundamental transformation to the matrix so as to obtain a coefficient of an error location polynomial. CONSTITUTION:A data word A(i+j-z)[1<=i<=p, 1<=j<=p+1, and A0-A2p-1 are syndrome or error location] is set to each element qi,j of a matrix of p-row and (p+1)-column to obtain a coefficient of each term of an error location polynomial or an error pattern from the syndrome in decoding a long distance code, and the coefficient of the polynomial is obtained by applying left functional transformation to the matrix. Thus, the solution of a determinant is obtained by the transformation of the determinant and the arithmetic operation as to a data word constituting the matrix. Thus, the processing is made very simply and the quick processing is attained with out imposing much burden upon the arithmetic device.

Description

【発明の詳細な説明】[Detailed description of the invention]

〔技術分野〕 BCH符号、リードソロモン符号などの誤り訂正符号を
用い、255ワードなどの多数のワードをブロックとし
てこのブロックに含まれる多数ワードの誤り訂正を行う
データの符号化、復号化が光ディスクなどの記録・再生
あるいはデータ伝送などに使用されている。 本発明は、このような1つの訂正系列で多数の誤り訂正
が可能な符号(ロングディスタンスコード)を高速で復
号するとともに誤り訂正を行うための方式および誤り訂
正装置を提供するものである。 (従来技術) BCH符号あるいはリードソロモン符号などによって多
数ワードの誤りを訂正するためには受信データからシン
ドロームを生成して誤り位置多項式の係数を求める必要
がある。 すなわち、この誤り位置多項式は、誤り位置に対応する
値を根として持つ多項式であり、誤り位置多項式の各項
の係数を求めることによって誤りの生じたデータの位置
を算出することができる。 従来このような誤り位置多項式の係数を求める方式とし
てピーターソン、バーレカンプ・マツシイ、ユークリッ
ド互除法などが知られているが、ハードウェアによって
構成しようとするとそのハードウェアの量が大きいため
に実用化に適したハードを得ることが困難であり、また
、ソフトウェアによって処理を行なうには判断が難しく
処理速度に問題が生じる。 〔目 的〕 本発明は、上記のようなロングディスタンスコードを高
速で復号するとともに、ハード化に適したロングディス
タンスコードにおける誤り訂正方式および装置を提供す
ることを目的とする。  −〔構 成〕 本発明の構成について、それぞれが8ビツトで構成され
る255ワードからなるブロックの、4ワード訂正可能
な、256元ガロア体GF (2” )のリードソロモ
ン符号に適用した実施例に基づいて説明する。 リードソロモン符号の復号は、次の5つのステップによ
って行われる。 (1)受信データからシンドロームを求める。 (2)  このシンドロームから誤り位置多項式を求め
る。 (3)  この誤り位置多項式から誤り位置を求める。 (4)  誤り位置から誤りパターンを求める。 (5)誤り位置と誤りパターンとによって誤り訂正を行
う。 本発明においては、上記(2)のシンドロームからの誤
り位置多項式の算出、および(4)の誤り位置から誤り
パターンの算出の双方を同一の処理方法によって高速で
求められる復号方式を提供する。 以下の実施例における演算(+で示す加算、×で示す乗
算および÷または/で示す除算)はいずれもモデュロ2
の演算であって、一般にテーブルを参照することによっ
て実行されものであり、そのテーブルの一例として、C
F (2’ )上でG(X)=X” +X’ +X’ 
+X雪+1を法とする上記演算のテーブルの一部を第8
図に例示する。 なお、同図(a)は加算テーブル、同図中)は乗算テー
ブル、同図(C)は乗算テーブルであらて、この除算テ
ーブルの最上列は被除数、最左欄は除数である。 誤りを含んだ受信データの各語の値をr6’wr254
とすると、受信データR(x)は次の(1)式で与えら
れる。 R(x)= r(1x”’  + r 1 x”3 +
−−−−=−−−−−−−−−+r ass  X ’
  + r zs4−・−−−−−(1)この受信デー
タから生成されるシンドローム81〜S7は、この(1
)式のXにα01αI 、 、−、−、、−α7をそれ
ぞれ代入した次式のものである。 S@ =R(α’ ) =r6 +r、+−−−−・・
+r03 +r 1%4 SI=R(α’ )xroa”’ +r、ex”” +
・−”’ ”’ + r ts3α’+rtsaS* 
−R<a” )=re cx”” +r、or””” 
”” ”” + r ts3α”” +rzsnS ?
 ” R(CX’ ) −r、 αt口°’ +r、 
αH,、。 +・・・”’r03α1° ”rgs4・・・・・・(
2) 誤り位置多項式σ(x)は次の(3)式のように定義さ
れる。 σ(x)= (x+V1 )  (x+V2 )  (
x+V3 )(x+V4) =g’ +tF、g’ +σz X” +I、X+el
。 ・・・・・・(3) ここでv1〜v4は誤り位置、すなわち誤りのあるワー
ド位置を示すもので、(1)式のXのべき乗の値に対応
しており、一般的にはテーブルを参照することにより1
0進′表現によるワード位置が求められるものであって
、このテーブルの一例として、第8図の演算テーブルと
同様に、CF (2’ )上でG(,1)=x” +x
’ +x’ +x” +lを法とするαのべき乗表現と
10進表現との対応を示すテーブルの一部を第9図に示
しである。 このテーブルによって、v=tのときはαO−1で最下
位のr□、の項、V=4のときはα2=4でr t%t
の項のようになる。 なお、この実施例では、So〜Sフの8種のシンドロー
ムを用いており、4つの誤り位置と4つの誤りパターン
とを表す8つの未知数は、この8種のシンドロームを用
いて演算することによって算出できるものであるが、誤
りパターンを先に求めると同一の値、すなわち同一の誤
りパターンがあった場合に誤り位置を算出できなくなる
恐れがあるので、誤り位置を先に求めるのが一般的であ
る。 また、この誤り位置は255のワードの位置を示すもの
であるから0〜255(2進8桁)の値であり、誤りパ
ターンは1ワード8ビツト内の誤りのパターンとして“
00000001”から“11111111″の255
通りであり、誤りの存在が検出されたワードにこのパタ
ーンを加算することによって誤りが訂正される。 誤り位置多項式である(3)式の各係数σ0〜σ3の値
とシンドロームSo、〜S7との間には次の(4)式の
ような関係が成り立つ。 ・−・・−・・(4) この(4)式の右辺を左辺に移項して行列の形を変える
と次の(5)式になる。 ・・・−・・−・(5) この(5)式の両辺に、ある行列Aを左から乗じて次の
(6)式のように変形すると、σ0〜σ3は(7)で示
すように求められる。 一一一一一・−・(6) σo  ”a。 σ1−a 1 σ2 =a3 σ3−a3       −・・・−・−(7)ところ
で、上記のように(5)式を(6)式に変形するために
両辺に乗じた行列Aは右辺の値が0であるから任意のも
のでよく、結局、(5)式のso %S?で表される行
列を(6)式の形になるように左基本変形すればよいこ
とになる。 この左基本変形をSo−w57の値がそれぞれ0゜15
.85,115,193,115,161および231
の場合を例に採って具体的に説明する。 (5)式の左辺第1項は次の(8)式で表される。 この式(8)を(6)式の形に変形する第1段階として
その第1列が(6)式の左辺第1項の第1列のになるよ
うに変形を行う。 (8)式の第1列第1行の値が0であるから、第1列が
0でない行と置き換えるために、第2行と第1行とを入
れ換えると次の(9)式になる。 次に第1列第1行の値15を1にするために、第1行の
各列の値をこの15で割るモデエロ2の演算を行うと次
の(10)式になる。 次に、第3および第4行目の第1列の値を0にするため
に、第3行目については第1行の値を85倍してからこ
の第3行目の各値にモデュロ2の加算を、また第4行目
については第1行の値を115倍してからこの第3行目
の各値にモデエロ2の加算を行うことによって次の(1
1)式を得る。 次に、上記式(8)を(6)式の形に変形する第2段階
としてその第2列が(6)式の左辺第1項の第2列と同
じ にするために、上記同様の手法として、第2列目をその
第2行の15でモデエロ2の除算を行い、次いでこの第
2行目の値を87倍して第3行目とモデュロ2の加算を
、またこの第2行目の値を58倍して第4行目とモデュ
ロ2の加算を行うことによって下記の(12)式を得る
。。 次に、上記式(8)を(6)式の形に変形する第3段階
としてその第3列が(6)式の左辺第1項の第3列と同
じ にするために、上記第1段階と同様に第3列目が0の第
3行と第4行とを入れ換えて、 とし、第3列目をその第3行の101でモデュロ2の除
算を行うとともに、この得られた第3行目の値を62倍
して第1行目とモデエロ2の加算を行い、またこの第3
行目の値を15倍して第2行目とモデュロ2の加算を行
うことによって下記の(14)式を得る。 次に、上記式(8)を(6)式の形に変形する最後の段
階としてその第4列が(6)式の左辺第1項の第4列と
同じ にするために、第4行をその第4列の101でモデュロ
2の除算を行い、得られた第4行目の値を87倍して第
1行目にモデエロ2の加算を、また107倍して第2行
目にモデュロ2の加算を行うことによって前記の(6)
式と同一の形の下記(15)式が得られる。 これによって、(6)式について説明したように、σo
 =64 σ5=120 σ2−54 σs  = 15       −−−−−−・(16
)が得られ、これらσの値を(3)式に示した誤り位置
多項式に代入することによって x’ +15x’+54x”+120x+64 −−−
−−−−(17)が得られる。 この(17)式をチェノのアルゴリズムなどによって解
いてその根を求めると誤り位置を検出することができ、
この(17)式の場合には、x−1,2,4,8・・・
・−・−・(18)・であるから、前述のように(1)
式のr!S4*’□3 。 r zszの項およびr ffi!IIの項に誤りがあ
ることになる。 以上のようにして誤り位置が検出されたので、次に誤り
パターン、すなわち正しいデータのパターンを検出する
手法について説明する。 誤り位置v1の誤りパターンがYt、誤り位置v2の誤
りパターンがY2のように、誤り位置■1 、V2 、
vs 、V4がそれぞれ誤りパターンY1、Y2、Y3
、Y4に対応するものとする。 このとき、誤りパターンY1〜Y4、誤り位置v1〜v
4およびシンドロームSo−wssとの間には次の関係
が成り立つ。 ・・−・−(19) この(19)式の右辺を、先に(4)式から(5)式に
変換したと同様に左辺に移項して行列の形を変えると次
の(20)式になる。 ・・・・・・ (20) この(20)式の左辺の左側の行列に上記誤り位置とし
てvl−1、v2=2、v3=4、v4=8.5o=0
.5t=15.52=85.5s=115をそれぞれ代
入し、(8)式ないしく15)式で説明したと同様の左
基本変形を行うと次の(21)式に示すように変形され
る。 この行列の第4列の値によって誤りパターンY1〜Y4
は次の(22)式のようになる。 Y、=1 Y2=1 Ys=1 Y4=1           ・・・・・・(22)
これによって、誤りパターンはいずれもlであることが
検出されるので、誤りがある1、2.4.8番目のワー
ドについてパターン1の訂正を行えばよい。 なお、この誤りパターンYの値は、その誤りパターンを
10進数で表しており、上記パターン1は、“0000
0001″を誤り位置のワードにモデュロ2で加算すれ
ばよい。 次に、上記の4ワード訂正が可能な符号によって3ワー
ドの誤りを訂正する過程について例を挙げて説明する。 誤りの例として、誤り位置を最後の3項とし、誤りパタ
ーンY、〜Y、とすると、次の(23)式のようになる
。 誤り位置  誤りパターン v、=l    Yl=2  (すなt)ち”0000
0010.”)vg=2    Y2=3  (すな、
t)ち”00000011”)V3=4    Y3=
4  (すなわち00000100″)・・・・・・(
23) (5)式の左辺の左側の行列にこれらの値を代入した、
前記(8)式に対応する式は次の(24)式のようにな
る。 この式(24)を変形する第1段階としてその第1列が
(6)式の左辺第1項の第1列の になるように変形を行うと次のく25)式になる。 次に、第2列目か になるように変形を行うと次の(26)式になる。 次に、第3列目か になるように変形を行うと次の(27)式になる。 この(27)式の第4行目はすべて0であり、σ3は存
在せず、3ワードの誤りであることが識別される。 このように3ワードの誤りである場合には、前記の(3
)式に相当する誤り位置多項式は次の(28)式で表さ
れる。 σ(x)= (x+V1)(x+Vt )(x+Vt 
)”!’ +σ2 K” 十dI X+t16・−−−
−−−・・(28) 先に(5)式として示した、シンドロームSO#S6と
の関係式は次の(29)式のように変形される。 −・−・(29) この(29)式を左基本変形することによってσ0〜σ
2を求めることができるが、この値は既に上記(27)
式の左上の3行4列の行列で求められており、第4列の
値に示されているように、σ・−8 σ1士14 1.−7           ・・−−−−−−(3
0)であり、また誤り位置多項式は次の(31)式で示
される。 x” +7 x” +l 4x+8   ・−・−・−
・(31)そして、誤り位置を示すこの式の根は、x−
1、z w 2、x=4      ・−・−・−(3
2)となる。 次に誤りパターンを求めるため(19)式にこの値を代
入すると、 ・−一一−−−−・(33) となる。 誤りパターンを求めるには、この(33)式を解けばよ
いが、他の方法としてこの左辺左側の行列を次の(34
)式のように変形してから、゛上述の誤り位置を求める
際に適用したと同一の手法によって更に変形を行って(
35)式を得、これから(36)式に示す誤りパターン
を求めることができる。 vl −1、Yl −2 v2−2、  Yl −3 V 8 v−r= 3、  Ys  −4−−−−−−
−(36)以上に説明した4ワード訂正を一般的にtワ
ード訂正に拡張した場合の誤り位置多項式を求める演算
手順を第1図のフローチャートに示す。 このフローチャートにおいて、So〜Sit−1はシン
ドロームを、またal、jは次の(40)式で示す行列
の各要素を示す。 ・・・・・・(40) 同図(a)は前記(5)式の左辺第1項ののシンドロー
ムSo xs、の値を各要素ai+jに代入する処理を
示すもので、ステップ(1)でこの行列の左上の要素a
19.を指定し、ステップ〔2〕でこの要素に(i +
 j−2)を添字として持つシンドローム、すなわち(
i+j−2)=(1+1−2)=Oを添字とするシンド
ローム30を代入し、ステップ〔3〕で同一行の次の列
の要素al  etを指定して〔4〕のステップで行の
要素数、ここでは5、を超えないことを確認してからス
テップ〔2〕に戻ってこの要素at  etにシンドロ
ームS1を代入し、以下〔4〕のステップでこの行の要
素への代入が終了したことを識別するまで同様にSxw
Saを入力する。 この行の代入が終了したときにはステップ〔4〕での判
断の結果がyとなるので、〔5〕のステップで行を第2
行目に移して要素at  slからa8 。 5まで上記と同様に代入を行い、a29.の代入が済む
と第3行目の代入に移り以下同様に5行4列のすべての
要素に上記(40)式のシンドロームの値を代入する。 この代入がすべて終了して各要素の値に(8)式の数値
が代入された■における行列は下記(42)式に示すも
のである。 なお、ステップ〔2〕において設定されるSの添字(i
+j−2)は、(41)式で明らかなように、斜めの線
上の要素に同一のシンドロームが代入されることに対応
するものである。 同図中)は上記(42)式から(9)式に対応する下記
の(43)弐への変形を行うフローチャートを示すもの
である。 この第1図(b)のステップ〔7〕においては、1列目
を[10001にするために列番号Pを1にし、ステッ
プ〔8〕で行番号も列番号と等しいlにして要素aI 
9.Iを指定し、
[Technical field] Encoding and decoding of data that uses error correction codes such as BCH codes and Reed-Solomon codes to correct errors in a large number of words, such as 255 words, as a block, on optical discs, etc. It is used for recording/playback and data transmission. The present invention provides a system and an error correction apparatus for decoding and error correcting a code (long distance code) capable of correcting a large number of errors with one correction sequence at high speed. (Prior Art) In order to correct errors in multiple words using a BCH code or a Reed-Solomon code, it is necessary to generate a syndrome from received data and find the coefficients of an error locator polynomial. That is, this error locator polynomial is a polynomial having a value corresponding to the error position as a root, and by finding the coefficient of each term of the error locator polynomial, the position of the data in which the error has occurred can be calculated. Conventionally, Peterson, Berlekamp-Matsey, and Euclidean mutual division methods have been known as methods for determining the coefficients of such error locator polynomials. It is difficult to obtain suitable hardware, and when processing is performed by software, it is difficult to judge and there are problems with processing speed. [Objective] It is an object of the present invention to provide an error correction system and apparatus for long distance codes that are suitable for hardware implementation and that can decode long distance codes such as those described above at high speed. - [Configuration] An example in which the configuration of the present invention is applied to a Reed-Solomon code of 256-element Galois field GF (2''), which is capable of 4-word correction and has a block of 255 words each consisting of 8 bits. Decoding of a Reed-Solomon code is performed through the following five steps: (1) Find the syndrome from the received data. (2) Find the error locator polynomial from this syndrome. (3) Find the error location polynomial. Find the error location from the polynomial. (4) Find the error pattern from the error location. (5) Perform error correction using the error location and error pattern. In the present invention, the error location polynomial from the syndrome (2) above is calculated. The present invention provides a decoding method that allows both the calculation and the calculation of the error pattern from the error position in (4) to be obtained at high speed using the same processing method. or division indicated by /) are both modulo 2
These operations are generally performed by referring to a table, and an example of the table is C
On F (2'), G(X)=X"+X'+X'
Part of the table for the above calculation modulo +X snow +1 is shown in the 8th table.
An example is shown in the figure. Note that (a) in the figure is an addition table, (in the figure) is a multiplication table, and (C) is a multiplication table. The top column of this division table is the dividend, and the leftmost column is the divisor. The value of each word of the received data containing an error is r6'wr254
Then, the received data R(x) is given by the following equation (1). R(x) = r(1x”' + r 1 x”3 +
−−−−=−−−−−−−−+r ass X'
+ r zs4−・−−−−−(1) Syndromes 81 to S7 generated from this received data are
) is obtained by substituting α01αI, , −, −, , −α7 for X in the following equation. S@ =R(α') =r6 +r, +------...
+r03 +r 1%4 SI=R(α')xroa"' +r, ex""+
・−”'”' + r ts3α'+rtsaS*
−R<a”)=recx””+r,or”””
”” ”” + r ts3α”” + rzsnS?
"R(CX') -r, αtmouth°' +r,
αH,. +..."'r03α1°"rgs4......(
2) The error locator polynomial σ(x) is defined as the following equation (3). σ(x)= (x+V1) (x+V2) (
x+V3 )(x+V4) =g' +tF, g' +σz X" +I, X+el
. ......(3) Here, v1 to v4 indicate the error position, that is, the word position with the error, and correspond to the value of the power of X in equation (1), and are generally 1 by referring to
As an example of this table, like the operation table in FIG. 8, G(,1)=x"+x on CF (2')
'+x'+x'' Figure 9 shows a part of a table showing the correspondence between the power representation of α modulo +l and the decimal representation. According to this table, when v=t, αO−1 The term of the lowest r□, when V=4, α2=4 and r t%t
It becomes like the section. In this example, eight types of syndromes from So to S are used, and the eight unknowns representing the four error positions and four error patterns are calculated by using these eight types of syndromes. However, if the error pattern is found first, there is a risk that the error position cannot be calculated if there is the same value, that is, the same error pattern, so it is common to find the error position first. be. Also, since this error position indicates the position of 255 words, it is a value from 0 to 255 (8 binary digits), and the error pattern is the error pattern within 8 bits of one word.
255 from “00000001” to “11111111”
The error is corrected by adding this pattern to the word in which the error was detected. A relationship such as the following equation (4) holds between the values of the coefficients σ0 to σ3 of equation (3), which is the error locator polynomial, and the syndromes So, to S7.・−・・−・・(4) If we change the form of the matrix by moving the right side of this equation (4) to the left side, we get the following equation (5).・・・-・・・-・(5) Multiplying both sides of this equation (5) by a certain matrix A from the left and transforming it as shown in the following equation (6), σ0 to σ3 become as shown in (7). is required. 11111・−・(6) σo ”a. σ1−a 1 σ2 =a3 σ3−a3 −・・・・−・−(7) By the way, as mentioned above, equation (5) can be changed to equation (6) Since the value on the right side is 0, the matrix A by which both sides are multiplied to transform the matrix A can be any arbitrary matrix.In the end, the matrix expressed by so %S? in equation (5) can be transformed into the form of equation (6). All you have to do is perform the left basic transformation so that the values of So-w57 are 0°15.
.. 85, 115, 193, 115, 161 and 231
This will be explained in detail by taking the case as an example. The first term on the left side of equation (5) is expressed by equation (8) below. The first step of transforming equation (8) into equation (6) is to transform the equation so that its first column becomes the first column of the first term on the left side of equation (6). Since the value in the first column and first row of equation (8) is 0, in order to replace the row in which the first column is not 0, swapping the second row and the first row results in the following equation (9). . Next, in order to set the value 15 in the first column and first row to 1, Modelero 2 calculation is performed to divide the values in each column of the first row by this 15, resulting in the following equation (10). Next, in order to set the value in the first column of the third and fourth rows to 0, for the third row, multiply the value in the first row by 85, and then add modulo to each value in this third row. 2, and for the fourth row, multiply the value in the first row by 115, and then add Modelero 2 to each value in the third row to obtain the following (1
1) Obtain the formula. Next, in the second step of transforming the above equation (8) into the form of equation (6), in order to make the second column the same as the second column of the first term on the left side of equation (6), the same method as above is performed. The method is to divide the second column by modulo 2 by 15 in the second row, then multiply the value in this second row by 87, add modulo 2 to the third row, and then divide the second column by modulo 2. By multiplying the value in the row by 58 and adding the value in the fourth row modulo 2, the following equation (12) is obtained. . Next, in the third step of transforming the above equation (8) into the form of equation (6), in order to make the third column the same as the third column of the first term on the left side of equation (6), Similarly to the step, the third and fourth rows where the third column is 0 are swapped, and the third column is divided modulo 2 by 101 in the third row, and the obtained Multiply the value of the third line by 62, add the first line and modelero 2, and add this third line.
By multiplying the value in the row by 15 and adding the value in the second row modulo 2, the following equation (14) is obtained. Next, in the final step of transforming the above equation (8) into the form of equation (6), in order to make the fourth column the same as the fourth column of the first term on the left side of equation (6), the fourth row Divide modulo 2 by 101 in the fourth column, multiply the obtained value in the fourth row by 87, add modelero 2 to the first row, and multiply by 107 to the second row. By performing modulo 2 addition, the above (6)
The following formula (15), which has the same form as the formula, is obtained. As a result, as explained in equation (6), σo
=64 σ5=120 σ2−54 σs = 15 −−−−−−・(16
) is obtained, and by substituting these values of σ into the error locator polynomial shown in equation (3), x'+15x'+54x''+120x+64 ---
----(17) is obtained. If you solve this equation (17) using Cheno's algorithm and find its root, you can detect the error position.
In the case of this equation (17), x-1, 2, 4, 8...
・−・−・(18)・ Therefore, as mentioned above, (1)
The expression r! S4*'□3. The terms r zsz and r ffi! There is an error in section II. Now that the error position has been detected as described above, a method for detecting an error pattern, that is, a correct data pattern will be described next. The error pattern at error position v1 is Yt, the error pattern at error position v2 is Y2, and so on, error positions ■1, V2,
vs , V4 are error patterns Y1, Y2, Y3 respectively
, Y4. At this time, error patterns Y1 to Y4, error positions v1 to v
4 and syndrome So-wss, the following relationship holds true.・・・-・-(19) If we change the form of the matrix by moving the right-hand side of this equation (19) to the left-hand side in the same way as we converted from equation (4) to equation (5), we get the following (20) It becomes a ceremony. ...... (20) The above error positions are vl-1, v2=2, v3=4, v4=8.5o=0 in the left matrix of the left side of equation (20).
.. By substituting 5t = 15.52 = 85.5s = 115 and performing the same left basic transformation as explained in equations (8) to 15), the transformation will be as shown in the following equation (21). . The error patterns Y1 to Y4 are determined by the value of the fourth column of this matrix.
is expressed as the following equation (22). Y,=1 Y2=1 Ys=1 Y4=1 ・・・・・・(22)
As a result, it is detected that the error patterns are all 1, so it is sufficient to correct pattern 1 for the 1st, 2nd, 4th, and 8th words with errors. Note that the value of this error pattern Y represents the error pattern in decimal notation, and the above pattern 1 is “0000
0001'' can be added modulo 2 to the word at the error position.Next, the process of correcting a 3-word error using the above-mentioned code capable of 4-word correction will be explained using an example.As an example of an error, Letting the error position be the last three terms and the error pattern Y, ~Y, the following equation (23) is obtained: Error position Error pattern v, = l Yl = 2 (that is, t) 0000
0010. ”)vg=2 Y2=3 (Suna,
t) Chi"00000011") V3=4 Y3=
4 (i.e. 00000100″)・・・・・・(
23) Substituting these values into the matrix on the left side of equation (5),
The equation corresponding to the above equation (8) is as shown in the following equation (24). As a first step of transforming equation (24), the first column is transformed to become the first column of the first term on the left side of equation (6), resulting in the following equation (25). Next, if we transform it so that it appears in the second column, we get the following equation (26). Next, if the transformation is performed so that the third column becomes the following, the following equation (27) is obtained. The fourth line of equation (27) is all 0, σ3 does not exist, and it is identified that there is a three-word error. In this way, if there is a 3-word error, the above (3)
) The error locator polynomial corresponding to the equation is expressed by the following equation (28). σ(x)=(x+V1)(x+Vt)(x+Vt
)"!' +σ2 K" 10dI X+t16・---
--- (28) The relational expression with the syndrome SO#S6, shown above as equation (5), is transformed as shown in equation (29) below. −・−・(29) By left basic transformation of this equation (29), σ0~σ
2 can be found, but this value is already given above (27)
It is determined by the 3 rows and 4 columns matrix at the top left of the equation, and as shown in the value in the fourth column, σ・−8 σ1 14 1. −7 ・・−−−−−−(3
0), and the error locator polynomial is expressed by the following equation (31). x” +7 x” +l 4x+8 ・−・−・−
・(31) And the root of this equation indicating the error position is x−
1, z w 2, x=4 ・−・−・−(3
2). Next, by substituting this value into equation (19) to find the error pattern, the following is obtained: -11---- (33). To find the error pattern, you can solve equation (33), but another method is to solve the matrix on the left-hand side as follows (34).
), and then further transform it using the same method that was applied to find the error position above.
Equation (35) is obtained, and from this, the error pattern shown in Equation (36) can be obtained. vl -1, Yl -2 v2-2, Yl -3 V8 v-r= 3, Ys -4------
-(36) The flowchart in FIG. 1 shows the calculation procedure for obtaining the error locator polynomial when the 4-word correction described above is generally extended to t-word correction. In this flowchart, So to Sit-1 represent syndromes, and al and j represent each element of the matrix expressed by the following equation (40). (40) Figure (a) shows the process of assigning the value of the syndrome Soxs, the first term on the left side of equation (5), to each element ai+j, and step (1) The upper left element a of this matrix
19. , and in step [2] add (i +
j−2) as a subscript, i.e. (
Substitute syndrome 30 with subscript i+j-2)=(1+1-2)=O, specify the element al et of the next column in the same row in step [3], and set the element in the row in step [4]. After confirming that the number does not exceed 5 in this case, return to step [2] and assign syndrome S1 to this element at et, and in the following step [4] the assignment to the elements in this row is completed. Sxw in the same way until you identify that
Enter Sa. When the assignment of this row is completed, the result of the judgment in step [4] will be y, so in step [5]
Move to the row, element at sl to a8. Perform substitutions in the same manner as above up to 5, and a29. After the substitution is completed, the process moves to the third row, and the syndrome value of the above equation (40) is similarly substituted to all elements in the 5th row and 4th column. After all of these substitutions have been completed, the matrix in (4) in which the numerical values of equation (8) have been substituted for the values of each element is shown in equation (42) below. Note that the subscript (i
+j-2) corresponds to the fact that the same syndrome is assigned to the elements on the diagonal line, as is clear from equation (41). (in the figure) shows a flowchart for transforming the above equation (42) into the following (43) 2 corresponding to the equation (9). In step [7] of FIG. 1(b), the column number P is set to 1 to set the first column to [10001, and in step [8] the row number is also set to l, which is equal to the column number, and element aI
9. Specify I,

〔9〕のステップでこの要素の値を見
てその値が0であればステップ〔10〕において行番号
に1を加え、ステップ〔11〕における行番号の識別に
よって行列の最下行に至るまでの範囲内で第1列目の要
素の値が0でない行を捜す。 第1列目の要素の値が0でない行が見つかればステップ
〔12〕に移り1行番号が初期値P−1以外であれば、
すなわち第1行第1列の値が0であれば、ステップ〔1
3〕において要素の列番号を示す添字を1にして第1行
に移す行の第1列の要素を指定してから、行の入れ換え
を行うために〔14〕のステップにおいて一時的に1ワ
一ド分の記憶容量を有する退避用のレジスタdにa19
.の要素の値を移してその後に上記ステップ
Check the value of this element in step [9], and if the value is 0, add 1 to the row number in step [10], and identify the row number in step [11] to calculate the number of rows up to the bottom row of the matrix. Search for rows within the range where the value of the element in the first column is not 0. If a row is found where the value of the element in the first column is not 0, the process moves to step [12], and if the first row number is other than the initial value P-1,
In other words, if the value in the first row and first column is 0, step [1
3], specify the element in the first column of the row to be moved to the first row by setting the subscript indicating the column number of the element to 1, and then temporarily set one word in step [14] to swap the rows. a19 in the save register d, which has a storage capacity of one card.
.. Move the value of the element and then perform the above steps

〔9〕〜〔
11〕で検出された行番号LPを有する入れ換えるべき
行の第1列の要素aLFtJを代入し、その後退避用レ
ジスタdに退避しておいた要素a39.の値をaLPs
jに移す。 この処理をステップ〔15〕において処理する列番号を
増やしながら最後の列まで行うことによって上記(43
)式の配列を有する■の状態に至るが、第1行の第1列
の要素al  slO値がもともと(43)式のように
0でなければ入れ換えを行う必要がないのでステップ〔
12〕から直接■の状態に移ることができる。 第1図(C1のステップ〔17〕〜〔20〕は、上記(
43)式の第1行第1列の要素の値を1とするためにこ
の行の第2列目以降の各要素をこの第1行第1列の要素
の値で割る処理を行うもので、(44)式としてここに
再掲する前記の(10)式に示すようにに変形するフロ
ーである。 ステップ〔17〕は第2列目の要素を指定するために、
列を示す添字を行番号Pに1を加え、ステップ〔18〕
ではこれら要素第1行第1列の要素の値で除算を行い、
〔19〕〜〔20〕のステップによってこの行の各要素
についての処理が終了するまで繰り返すことによって、
上記(44)式の状態が得られる。 次のステップ〔21〕〜〔27〕は第3および第4行の
第1列の値をそれぞれ0にするための処理であって、第
3行の各要素には第1行の対応する要素の値を85倍し
て加えることによってその第1列の値を0にし、また第
4行の各要素には第1行の対応する要素の値を115倍
して加えることによってその第1列の値を0にするもの
である。 ステップ〔21〕では第1行の第2列目の要素を指定し
ており、i=PであればこのPの列はこの列の値を[1
0001などの所要の値にすることを目的とするもので
あるからあえて演算を行う必要がないのでステップ〔2
2〕によって排除して、それ以外の行についてステップ
〔23〕の処理を行う。 このステップ〔23〕の処理は、所要の値にすべき行P
の同一列の要素の値に自己の属する行のP列目の値を乗
算して当該要素自身の値を加算するものであり、これを
〔24〕、〔25〕のステップによって行の終わりまで
処理し、これが終了するとステップ〔26〕、〔27〕
によって次の行の処理を行う。 その結果、■においては、先に(11)式として示した
次の(45)式の行列 が得られる。 次のステップ〔28〕においては、次の列を所定の値、
例えば第2列目を[0100]とする処理を行うために
列の番号に1を加えて未処理の行が残っている期間中前
記ステップ〔8〕に戻す。 また、■は誤りが少ない場合などで、前記ステップ〔1
1〕において既に処理が不必要になった場合のルートを
示している。 このようにしてすべての処理が終了したステップ〔30
〕の前段において得られた行列は(15)式として示し
た である。 この行列から誤り位置多項式の係数を求めるために、こ
の係数σの添字の初期値としてステップ〔30〕で0を
セットする。 この添字に+1すれば、この係数を保持している列番号
になるので、ステップ〔31〕においては最後の列p=
tの当該列番号の値をステップ〔31〕〜〔33〕、の
処理によって順次読出すことができる。 なお、ステップ〔34〕は誤り位置多項式の最高次の項
の係数を供給するもので、この係数は必ず1であるので
演算は必要としない。 第2図は誤りパターンを求めるための処理を示すフロー
チャートであって、第1図に示した誤り位置を求める処
理と相違する処理のみを示してあり、第1図と同一のス
テップ番号を付したステップは同一の処理を行うもので
あり、また対応する処理に、ついては100を加えたス
テップ番号を付しである。 第2図(a)は第1図(a)に相当する処理を示してあ
り、 −−−−−・・(50) を展開する処理を行うもので、第1図に示したステップ
〔2〕における行列の第1列ないし第4列のシンドロー
ムに代えて誤り位置■4.ム−1を、また第5列にシン
ドロームS(1”Siを代入する点で第1図の場合と相
違している。 ステップ(100)は上記誤り位置を各要素に代入する
ステップであり、ステップ(103)は第5列目のシン
ドロームSo〜S3を代入するものであり、この第2図
(a)の処理が終了した■′における行列は下記(51
)式に示したとおりになる。 第2図(b)は第1図(d)に対応するもので、上記(
51)式に示した行列について第1図のステップ〔7〕
ないし〔27〕と同様な処理を行った、ステップ〔12
8〕の前段■′における行列は次の(52)式に示すと
おりである。 先に〔21〕式について説明したように、この〔52〕
式の第5列の第1行から第4行は、誤り位置Ys 、Y
2 、Ys 、Yaに順次対応する誤りパターンを示し
ており、この例では誤りパターンがすべて1、すなわち
“00000001”であるから、上記の誤り位置にあ
る復号すべきデータワードにこの’00000001”
を加算することによって誤り訂正を行うことができる。 第3図ないし第6図はそれぞれ本発明による誤り訂正方
式を実行するための装置の構成を示すものである。 第3図は従来の誤り訂正装置におけると同様な構成を用
いたもので、バス30にCPU3 L RAM32、R
OM33およびI10ボート34がそれぞれ接続されて
おり、CPU31はROM33が格納しているプログラ
ムおよびテーブルなどを読出してRAM32にストアし
、このプログラムおよびテーブルに基づいてモデエロ2
の演算を含む処理を行うものであり、受信したデータワ
ードから得られたシンドロームは第1のI10ボート3
4から入力され、上記CPU31によって処理されて誤
り位置および誤りパターンがこのI10ポート34から
それぞれ出力されて、復号したデータワードの訂正に用
いられる。 この第3図の構成においては、モデュロ2の演算をCP
Uにおいて処理するものであるため、その演算時間が長
くなって処理速度が低いという欠点がある。 第4図は上記欠点を解決した本発明の実施例を示すもの
で、バス40にCPU41、RAM42、ROM43お
よびI10ポート44がそれぞれ接続され、さらに本発
明によってモデュロ2の乗算器451、モデュロ2の除
算器452を含むものとして示したモデュロ2の演算処
理部45が設けられており、第1図のフローチャートに
おけるステップ〔14〕、〔18〕および〔23〕など
のcpυでは処理困難なモデュロ2の演算をこの演算処
理部45で行わせることによって処理速度を向上させる
ことができる。 第5図は第1図に示したフローチャートの演算処理を主
として転送によって行うようにした装置を示すもので、
ステップ〔18〕の除算を行うための除算部54、ステ
ップ〔23〕の処理を行うための乗算および加算を行う
演算部55およびステップ〔14〕でのデータワードの
入れ換えを行うために必要な退避用レジスタ56がバス
50に接続されており、このバスにはRAM52、I1
0ボート53とともに、CPUを含み主としてデータの
転送制御を行うための転送制御部51が接続されている
。 この実施例の除算部54および演算部55は第4図の演
算処理部45に相□当するものであり、退避用レジスタ
56はラッチ5611,5612および3状態バツフア
5621.5622からなる2組の記憶手段を備えてお
り、入れ換えるべき2つのデータワードをそれぞれのラ
ッチ5611.5612にストアしてから順次読出すこ
とによってデータワードの入れ換えを行うものである。 第6図は先に説明した本発明の誤り訂正方式が行列の行
を基本とする処理を行うものである点に着目して発明し
た4行5列、すなわちt=4、の行列を処理する誤り訂
正装置の実施例であって、行列記憶部60、データワー
ド入換部70、演算処理部80および0検出部90から
なり、図中口内にA−HおよびKを記入したのはそれぞ
れゲートである。 その動作を前記〔5〕式の左辺第1項の下記の行列(6
0)を処理する場合を例にとって第7図のフローチャー
トに基づいて説明する。 4行5列に図示されたレジスタはそれぞれ上記行列の対
応する要素のデータワードを格納するためのもので、こ
れらレジスタは格納するデータワードの行列中の要素の
位置に合わせてat  el レジスタ〜a4  p%
 レジスタとする。 第7図(a)のステップ(201)〜(213)はこれ
らレジスタに上記行列の値を代入する処理であって、ス
テップ(201)で入力ゲートKを導通状態として、ス
テップ(202)で初期値を1にセットするとともにス
テップ(203)として入力線61上にシンドロームS
(五−1,すなわちSoを出力する。 次にステップ(204)としてjをiに等しい値、ここ
では1、としてステップ(205)で行の範囲内にある
ことを確認してからステップ(20?)で添字kを求め
てaJ  tkのレジスタに上記シンドロームSoをス
テップ(20B)で格納する。 このステップ(201)から(208)の処理は、上記
(60)式の要素al  aNおよびaR91の値がと
もに同一のシンドロームS1であり、また要素aI  
$3 、am #*および19.の値がともに同一のシ
ンドロームS2であり、以下シンドロームSs xs、
まで斜め、の線上の要素に同一のデータワードが代入さ
れることから、レジスタの添字jとkをステップ(20
4)〜(20B)に示す処理によって選択して格納を行
うようにしたものであり、ステップ(206)の処理は
行列の最下行以下の行に属する要素を指定する添字が生
成されたときに排除するためのものである。 ステップ(209)においては、行数を1だけ減少させ
るとともに列数を1だけ増加させることによって次の斜
め線上の要素にステップ(212)で+1された添字を
有するシンドロームSを格納するものであり、ステップ
(2101、(211)および(213)は選択された
添字によって指定される要素が存在しないときにこの添
字を排除するためのものである。 第7図(b)に示すズテップ(214)ないしく226
は第1図山)の処理に相当するもので、ステップ〔21
4〕ないしく、219)は指定された列のデータワード
の値が0であるか否かを識別する処理であり、ステップ
(220)ないしく 226)は行の入れ換えを行う処
理である。 初期値としてはステップ(214)で列番号としてlを
セットし、ステップ(215)で行番号もlとしてal
  $1のレジスタを指定してステップ〔216〕でゲ
ートCをアクティブとし、ステップ〔217〕でこのレ
ジスタが格納しているデータワードを0検出器90に送
ってその値が0であるか否かを識別する。 ・ もし、その値が0であればステップ(218)で行
番号を+1してステップ(219)でこの行番号が行列
内に存在することを確認してステップ〔216〕に戻り
、(81式から(9)式への変換について先に説明した
ように、ステップ(215)で指定された要素の値が0
でない行を見つける。 ステップ(220)は行の入れ換えが必要か否かを判断
し、入れ換えが必要でなければ直接、入れ換えが必要で
あればステップ(221)ないし〔226〕の処理を行
って(9)式に示す行列を■において生成する。 このステップ(221)および(222)においては、
P行に属するゲートFをアクティブにして入換用レジス
タR1にランチパルスを出力するとともにLP行目のレ
ジスタのゲートFをアクティフ゛にして入れ換えられる
べきデータワードを格納していたレジスタの値をこの入
換用レジスタR1にストアさせ、続くステップ(223
)および〔224〕においては同様に入れ換えるべき要
素の値を入換用レジスタR2にストアさせ、次いでステ
ップ(225)および(226)においてはこれら入換
用レジスタR1、R2にストアされていたデータワード
を要素を格納するレジスタ入れ換えて戻し、これによっ
て行の入れ換えを行い、(9)式に示す行列が得られる
。 この処理は行を単位として同一の行に属するすべてのレ
ジスタについて同時に行われるので、1回の処理時間で
行の入れ換えが完了する。 第7図(e)は第1図(C)の処理に相当する処理を行
うフローであって、ステップ(2271においては除算
を行うために逆数テーブル1 / xの出力が各列ごと
に設けられている乗算器X社供給されるようにセレクタ
を切換え、先に第1図(C)のステップ〔19〕で説明
した除算を同一の行に属するすべての要素について同時
並列に実行し、ステップ〔228〕においてもとのレジ
スタに除算を行った結果を書込む。 ステップ(229)によって第1図(C)のステップ〔
22〕の処理、すなわち既に演算が終了している行を除
き、ステップ(230)ないしく 233)において〔
23〕ステツプに対応する処理、すなわち前記(10)
式から(11)式への変形を行い、ステップ〔234〕
において次の行を指定するとともに(235)のステッ
プにおいてこの行列内にあることを確認しながら上記の
処理を各行について繰り返すものである。 レジスタaム 、デのゲートBをアクティブにしてこの
レジスタの値を演算処理部80に送り、セレクタ82は
この値を直接乗算器831〜835の一方の入力端子に
供給するように切換えるとともに、これら乗算器の他方
の入力端子にはi行に属する各レジスタからゲートEを
経てこれらレジスタが格納している値を印加することに
よって同一行について同時に乗算を行い、さらにこれに
よって得られた結果をゲー)Dを介して送られてきた上
記各レジスタが格納している値と加算器84によってそ
れぞれ加算してからもとの1行のレジスタにそれぞれ格
納し、これら処理の最終段階である■においては、最初
の処理の場合には前記の(11)式に示した行列を行列
記憶部60の各レジスタに生成する。 第7図(d)は第1図(d)に対応するもので、ステッ
プ(226)においては列番号に+1して上記の〔21
5〕のステップ以降の処理を繰返し、ステップ(237
)において最後の列までの処理の終了が検知されたとき
には前記の行列式(15)が行列記憶部60の各レジス
タに生成される。 この第7図(d)のステップ(238)ないしく 24
2)の処理は先に第1図(d)のステップ〔30〕ない
し〔34〕について説明した処理と同様であって、誤り
位置多項式の係数が順次水められる。なお、この誤り位
置多項式の最高次の項の係数は常に1であるから必ずし
も算出する必要がないことは前述のとおりである。 また、この第6図および第7図についての説明は、誤り
位置多項式の係数を算出する場合についてのものである
が、第6図(a)に示したフローで行列記憶部60の各
レジスタに記憶させるデータワードを(20)式の左辺
第1項の行列のデータワードとすれば、上記誤り位置多
項式の係数を求める処理とい同一の処理を行うことによ
って誤りパターンを求めることができることは先に述べ
たとおりである。 以上の説明はGF (2” )上のリードソロモン符号
についてのものであるが、本発明はガロア体によって制
限を受けるものではなく、また、訂正符号としてb−隣
接符号などの他のロングディスタンスコードを用いた場
合にも適用できることは明らかであろう。 また、行列を転置した場合にも本発明による誤り訂正装
置を適用し得ることもまた明らかであろう。 〔効 果〕 本発明によれば、行列式の解を直接的な演算によって求
めるものではなく、行列式の変形とこの行列を構成する
データワードについての演算とによって解を得ることが
できるのでその処理が極めて簡単になり、演算装置に過
大な負担をかけることもなく、処理を迅速化することが
できるという格別の効果を達成できる。 特に、第6図に示した誤り訂正装置のように、各列に演
算手段を配置することによって1つの行を単位として各
列の要素を並列的に処理を行うように構成すればさらに
その処理時間を短縮することができる。
[9] ~ [
The element aLFtJ in the first column of the row to be replaced with the row number LP detected in [11] is substituted, and the element a39.11 is saved in the save register d. The value of aLPs
Move to j. By performing this process in step [15] while increasing the column number to be processed up to the last column, the above (43
), but if the element al slO value in the first row and first column is not originally 0 as in equation (43), there is no need to replace it, so step [
12], it is possible to move directly to the state (■). Figure 1 (Steps [17] to [20] of C1 are shown in the above (
43) In order to set the value of the element in the first row and first column of the formula to 1, each element from the second column onwards in this row is divided by the value of the element in the first row and first column. , is a flow that is transformed as shown in the above-mentioned equation (10), which is reproduced here as equation (44). Step [17] is to specify the second column element,
Add 1 to the subscript indicating the column to the row number P, and step [18]
Then, divide by the value of the element in the first row and first column of these elements,
By repeating steps [19] to [20] until the processing for each element in this row is completed,
The state of equation (44) above is obtained. The next steps [21] to [27] are processes for setting the values in the first column of the third and fourth rows to 0, respectively, and each element in the third row has a corresponding element in the first row. The value in the first column is set to 0 by multiplying the value by 85 and adding the value in the first column, and the value in the first column is set to 0 by multiplying the value of the corresponding element in the first row by 115 and adding the value of the corresponding element in the first row to each element in the fourth row. The value of is set to 0. In step [21], the element in the second column of the first row is specified, and if i=P, the value of this column is [1
Since the purpose is to obtain a required value such as 0001, there is no need to perform calculations, so step [2]
2], and the process of step [23] is performed for the other rows. The process of this step [23] is to
The value of the element in the same column is multiplied by the value of the Pth column of the row to which it belongs, and the value of the element itself is added, and this is repeated until the end of the row by steps [24] and [25]. After processing, step [26], [27]
The next line is processed by As a result, in (1), the matrix of the following equation (45), which was previously shown as equation (11), is obtained. In the next step [28], the next column is set to a predetermined value,
For example, in order to process the second column as [0100], 1 is added to the column number and the process returns to step [8] while unprocessed rows remain. In addition, ■ is a case where there are few errors, etc., and the above step [1]
1] shows the route when the process is already unnecessary. Step 30 where all processing is completed in this way
] The matrix obtained in the first stage is shown as equation (15). In order to obtain the coefficients of the error locator polynomial from this matrix, 0 is set as the initial value of the subscript of this coefficient σ in step [30]. Adding +1 to this subscript becomes the column number holding this coefficient, so in step [31], the last column p=
The values of the relevant column numbers of t can be sequentially read out by the processing in steps [31] to [33]. Note that step [34] supplies the coefficient of the highest order term of the error locator polynomial, and since this coefficient is always 1, no calculation is required. FIG. 2 is a flowchart showing the process for determining the error pattern, and only the processes that are different from the process for determining the error position shown in FIG. 1 are shown, and the same step numbers as in FIG. 1 are given. The steps perform the same processing, and corresponding processing is given a step number incremented by 100. FIG. 2(a) shows a process corresponding to FIG. 1(a), in which processing is performed to expand -------...(50), and step [2] shown in FIG. ] Instead of the syndrome in the first to fourth columns of the matrix, the error position ■4. This is different from the case of FIG. 1 in that the syndrome S (1"Si) is substituted in the fifth column. Step (100) is a step in which the above error position is substituted into each element, Step (103) is to substitute the syndromes So to S3 in the fifth column, and the matrix in ■′ after the processing in FIG.
) as shown in the formula. FIG. 2(b) corresponds to FIG. 1(d), and the above (
51) Step [7] in Figure 1 for the matrix shown in equation
Step [12] where the same process as in [27] is performed.
The matrix in the first stage ■′ of [8] is as shown in the following equation (52). As explained about formula [21] earlier, this [52]
The first to fourth rows of the fifth column of the equation are the error positions Ys, Y
2, Ys, and Ya. In this example, the error patterns are all 1, that is, "00000001," so this '00000001' is added to the data word to be decoded at the above error position.
Error correction can be performed by adding . 3 to 6 each show the configuration of an apparatus for implementing the error correction method according to the present invention. FIG. 3 uses a configuration similar to that of a conventional error correction device, in which a bus 30 includes CPU3 L RAM32, R
An OM33 and an I10 boat 34 are connected to each other, and the CPU 31 reads out programs and tables stored in the ROM 33, stores them in the RAM 32, and executes the model erotic 2 based on these programs and tables.
The syndrome obtained from the received data word is stored in the first I10 port 3.
4 and processed by the CPU 31, the error location and error pattern are output from the I10 port 34 and used to correct the decoded data word. In the configuration shown in FIG. 3, the calculation of modulo 2 is performed using CP
Since the processing is performed in U, there is a drawback that the calculation time is long and the processing speed is low. FIG. 4 shows an embodiment of the present invention which solves the above-mentioned drawbacks, in which a CPU 41, a RAM 42, a ROM 43 and an I10 port 44 are respectively connected to a bus 40, and a modulo 2 multiplier 451 and a modulo 2 multiplier 451 are connected to the bus 40. A modulo 2 arithmetic processing unit 45 shown as including a divider 452 is provided, and the modulo 2 arithmetic processing unit 45, which is shown as including a divider 452, is provided to perform modulo 2 calculations that are difficult to process in cpυ, such as steps [14], [18], and [23] in the flowchart of FIG. By having the calculation processing section 45 perform calculations, the processing speed can be improved. FIG. 5 shows an apparatus in which the arithmetic processing of the flowchart shown in FIG. 1 is mainly performed by transfer.
A division unit 54 for performing the division in step [18], an arithmetic unit 55 for multiplication and addition for performing the processing in step [23], and a saving necessary for exchanging data words in step [14]. A register 56 is connected to the bus 50, and this bus includes the RAM 52, I1
A transfer control unit 51 that includes a CPU and mainly controls data transfer is connected together with the 0 port 53 . The division unit 54 and calculation unit 55 in this embodiment correspond to the calculation processing unit 45 in FIG. A storage means is provided, and the data words are exchanged by storing the two data words to be exchanged in respective latches 5611 and 5612 and reading them out sequentially. FIG. 6 shows a method for processing a matrix of 4 rows and 5 columns, that is, t=4, which was invented by focusing on the fact that the error correction method of the present invention described above performs processing based on the rows of the matrix. This is an embodiment of the error correction device, which consists of a matrix storage section 60, a data word exchange section 70, an arithmetic processing section 80, and a 0 detection section 90. It is. The operation is described in the following matrix (6
0) will be explained based on the flowchart of FIG. 7 as an example. The registers shown in the 4th row and 5th column are each for storing the data word of the corresponding element of the matrix, and these registers are arranged in registers at el register to a4 according to the position of the element in the matrix of the data word to be stored. p%
Register. Steps (201) to (213) in FIG. 7(a) are processes for assigning the values of the above matrix to these registers, in which the input gate K is made conductive in step (201), and the initialization is performed in step (202). The value is set to 1 and the syndrome S is set on the input line 61 as a step (203).
(Outputs 5-1, that is, So.) Next, in step (204), set j to a value equal to i, here 1, and in step (205) confirm that it is within the range of the row, and then in step (20 ?) and stores the above syndrome So in the register of aJ tk in step (20B). The processing of steps (201) to (208) is performed by calculating the subscript k of the elements al aN and aR91 of the above equation (60). The syndrome S1 has the same value, and the element aI
$3, am #* and 19. The values of are both the same syndrome S2, and the following syndrome Ss xs,
Since the same data word is assigned to the elements on the line diagonally up to, the indexes j and k of the register are changed by step (20
4) to (20B) are selected and stored, and the process in step (206) is performed when a subscript specifying an element belonging to a row below the bottom row of the matrix is generated. It is meant to be excluded. In step (209), by decreasing the number of rows by 1 and increasing the number of columns by 1, the syndrome S having the subscript incremented by +1 in step (212) is stored in the next element on the diagonal line. , steps (2101, (211) and (213) are for eliminating the selected subscript when the element specified by this subscript does not exist. Step (214) shown in FIG. 7(b)) 226
corresponds to the process in Figure 1), and step [21
4] to 219) are processes for identifying whether or not the value of the data word in a designated column is 0, and steps (220) to 226) are processes for transposing rows. As an initial value, l is set as the column number in step (214), and the row number is also set as l in step (215).
Specify the $1 register, activate the gate C in step [216], and send the data word stored in this register to the 0 detector 90 in step [217] to check whether the value is 0 or not. identify. - If the value is 0, add 1 to the row number in step (218), confirm that this row number exists in the matrix in step (219), and return to step [216]. As explained above regarding the conversion from to equation (9), if the value of the element specified in step (215) is 0
Find the line that is not. Step (220) determines whether or not row swapping is necessary, and if swapping is not necessary, directly, and if swapping is necessary, steps (221) to [226] are performed, as shown in equation (9). A matrix is generated in ■. In this step (221) and (222),
The gate F belonging to the P row is activated and a launch pulse is output to the exchange register R1, and the gate F of the register on the LP row is activated to input the value of the register that had stored the data word to be exchanged. Store it in the replacement register R1, and proceed to the following step (223
) and [224], the values of the elements to be replaced are similarly stored in the replacement register R2, and then in steps (225) and (226), the data words stored in these replacement registers R1 and R2 are stored. The registers storing the elements are exchanged and returned, and the rows are exchanged thereby to obtain the matrix shown in equation (9). Since this processing is performed simultaneously for all registers belonging to the same row in units of rows, the row swapping is completed in one processing time. FIG. 7(e) is a flowchart for performing processing equivalent to the processing in FIG. 1(C), and in step (2271), in order to perform division, the output of the reciprocal table 1/x is provided for each column. The selector is switched so that the multiplier provided by Company X is supplied, and the division described in step [19] of FIG. 228], the result of the division is written to the original register. Step (229) allows the step [228] in FIG.
In steps (230) to 233), excluding lines for which the calculation has already been completed,
23] Processing corresponding to step, i.e., the above (10)
Transform the equation into equation (11) and proceed to step [234]
The above process is repeated for each row while specifying the next row in step (235) and confirming that it is within this matrix. Gates B of registers am and de are activated and the value of this register is sent to the arithmetic processing unit 80, and the selector 82 switches to directly supply this value to one of the input terminals of the multipliers 831 to 835. By applying the values stored in these registers from each register belonging to the i row via gate E to the other input terminal of the multiplier, the same row is multiplied simultaneously, and the result obtained by this is applied to the game. ) The adder 84 adds the values stored in each of the above registers sent via D, and stores them in the original one-row register. In the final stage of these processes, , in the case of the first processing, the matrix shown in equation (11) above is generated in each register of the matrix storage section 60. FIG. 7(d) corresponds to FIG. 1(d), and in step (226), the column number is incremented by 1 and the above [21
Repeat the process from step 5] to step (237).
), when the end of processing up to the last column is detected, the above-mentioned determinant (15) is generated in each register of the matrix storage section 60. This step (238) or 24 in FIG. 7(d)
The process 2) is similar to the process previously described for steps [30] to [34] in FIG. 1(d), and the coefficients of the error locator polynomial are sequentially subtracted. Note that, as described above, the coefficient of the highest order term of this error locator polynomial is always 1, so it is not necessarily necessary to calculate it. 6 and 7 is for calculating the coefficients of the error locator polynomial, but the flow shown in FIG. If the data word to be stored is the data word of the matrix of the first term on the left side of Equation (20), then we have previously explained that the error pattern can be found by performing the same process as the process of finding the coefficients of the error locator polynomial above. As stated above. Although the above explanation is about Reed-Solomon codes on GF (2"), the present invention is not limited by Galois fields, and other long distance codes such as b-adjacent codes can be used as correction codes. It is obvious that the error correction device according to the present invention can also be applied to cases where a matrix is transposed. [Effect] According to the present invention , the solution to the determinant is not obtained by direct calculation, but can be obtained by transforming the determinant and performing calculations on the data words that make up this matrix, making the processing extremely simple and requiring arithmetic equipment. It is possible to achieve the special effect of speeding up the processing without placing an excessive burden on the system.In particular, as in the error correction device shown in FIG. If the elements of each column are processed in parallel in units of rows, the processing time can be further shortened.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の誤り訂正方式により誤り位置多項式の
係数を求めるフローチャート、 第2図は本発明の誤り訂正方式により誤りパターンを求
めるために変更されたフローチャート、 第3図ないし第6図は本発明による誤り訂正装置の実施
例を示す図、 第7図は第6図の誤り訂正装置によって誤り位置多項式
の係数を求めるフローチャート、第8図はモデュロ2の
演算テーブルの例、第9図はガロア体上の乗数表現と1
0進表現との対応を示すテーブルの例である。 特許出願人      株式会社 リコー第1区 (b) 1図 (Q) 第 :2図 省孝(9ミ]丁z−15:tの92′i式=しイy’」
第4図
Figure 1 is a flowchart for determining the coefficients of the error locator polynomial using the error correction method of the present invention, Figure 2 is a flowchart modified to determine error patterns using the error correction method of the present invention, and Figures 3 to 6 are FIG. 7 is a flowchart for calculating the coefficients of the error locator polynomial by the error correction device of FIG. 6, FIG. 8 is an example of a modulo 2 calculation table, and FIG. 9 is a diagram showing an embodiment of the error correction device according to the present invention. Multiplier representation on Galois field and 1
This is an example of a table showing correspondence with 0-decimal representation. Patent Applicant: Ricoh Co., Ltd. District 1 (b) Figure 1 (Q) Figure 2: Shoko (9mi) Dingz-15: t's 92'i formula = Shiiy'
Figure 4

Claims (7)

【特許請求の範囲】[Claims] (1)ロングディスタンスコードの復号に際して、シン
ドロームから誤り位置多項式の各項の係数あるいは誤り
パターンを求めるために、 p行(p+1)列の行列の各要素q_i、_jにデータ
ワードA_(_i_+_j_−_2_)〔但し、1≦i
≦p)1≦j≦p+1、A_0〜A_2_p_−_1は
シンドロームあるいは誤り位置〕を設定し、 この行列を左基本変形することにより、上記多項式の係
数を求めることを特徴とするロングディスタンスコード
における誤り訂正方式。
(1) When decoding a long distance code, in order to obtain the coefficients or error patterns of each term of the error locator polynomial from the syndrome, data words A_(_i_+_j_-_2_ ) [However, 1≦i
≦p) 1≦j≦p+1, A_0 to A_2_p_-_1 are syndromes or error positions], and the coefficients of the polynomial are obtained by left fundamental transformation of this matrix. Correction method.
(2)ロングディスタンスコードの復号に際して、ロン
グディスタンスコードにより訂正可能な最大の数tを超
えないn個の誤りの場合に、シンドロームから誤り位置
多項式の各項の係数を求めるために、 上記pを誤りの数nとしたn行(n+1)列の行列の各
要素a_i、_jのデータワードとしてシンドロームS
_(_i_+_j_−_2_)をそれぞれ設定し、この
行列を左基本変形することにより、誤り位置多項式の係
数を求めることを特徴とする特許請求の範囲第1項記載
のロングディスタンスコードにおける誤り訂正方式。
(2) When decoding a long distance code, in the case of n errors that do not exceed the maximum number t that can be corrected by the long distance code, use the above p to calculate the coefficient of each term of the error locator polynomial from the syndrome. The syndrome S is expressed as a data word of each element a_i,_j of a matrix of n rows and (n+1) columns where the number of errors is n.
2. The error correction method in a long distance code according to claim 1, wherein the coefficients of the error locator polynomial are obtained by setting _(_i_+_j_−_2_) and left fundamental transformation of this matrix.
(3)ロングディスタンスコードの復号に際して、誤り
位置とシンドロームとによってそれぞれの誤り位置に対
応した誤りパターンを求めるために、 上記pをnとしたn行(n+1)列の行列の、要素a_
i、_jのデータワードとしてV_i^j^−^1〔但
し、1≦i≦n、1≦j≦n、V_1〜Vnは誤り位置
〕を、また、要素a_i、_n_+_1のデータワード
としてシンドロームS_i_−_1をそれぞれ設定し、 この行列を左基本変形することにより、それぞれの誤り
パターンを求めることを特徴とする特許請求の範囲第1
項記載のロングディスタンスコードにおける誤り訂正方
式。
(3) When decoding a long distance code, in order to find an error pattern corresponding to each error position using the error position and syndrome, element a_ of the n rows and (n+1) matrix where p is n
V_i^j^-^1 [however, 1≦i≦n, 1≦j≦n, V_1 to Vn are error positions] as the data word of i, _j, and the syndrome S_i_ as the data word of element a_i, _n_+_1 -_1 respectively, and each error pattern is obtained by left fundamental transformation of this matrix.
Error correction method in long distance code described in section.
(4)演算を要する要素の数が少ないときには、すべて
の要素のデータワードが0である行および列を追加する
ことによって、要素の配列を変更することなく同一の処
理を行い得るようにしたことを特徴とする特許請求の範
囲第1項記載のロングディスタンスコードにおける誤り
訂正方式。
(4) When the number of elements that require calculation is small, by adding rows and columns in which the data words of all elements are 0, the same processing can be performed without changing the arrangement of elements. An error correction system in a long distance code according to claim 1, characterized in that:
(5)ロングディスタンスコードの復号に際して、シン
ドロームから誤り位置多項式の各項の係数あるいは誤り
パターンを求めるために、 p行(p+1)列の行列の各要素q_i、_jに対応す
るデータワードA_(_i_+_j_−_2_)をそれ
ぞれ格納するメモリ(M_i、_j)と、 このメモリの入出力バス(B)に接続されたモデュロ2
の演算を行う演算器(C)を備えることを特徴とするロ
ングディスタンスコードの誤り訂正装置。
(5) When decoding a long distance code, in order to obtain the coefficients or error patterns of each term of the error locator polynomial from the syndrome, the data word A_(_i_+_j_ -_2_), and a modulo 2 memory connected to the input/output bus (B) of this memory.
1. An error correction device for a long distance code, comprising a computing unit (C) that performs arithmetic operations.
(6)入出力バス(B)にデータワードを入れ換えるた
めのバッファ(D)がさらに接続されていることを特徴
とする特許請求の範囲第5項記載のロングディスタンス
コードの誤り訂正装置。
(6) The long distance code error correction device according to claim 5, characterized in that a buffer (D) for exchanging data words is further connected to the input/output bus (B).
(7)p行(p+1)列の行列の各要素q_i、_jに
対応するデータワードA_(_i_+_j_2)をそれ
ぞれ格納するメモリ(M_i、_j)の各列ごとに演算
器(C_1、C_2、……C_p_+_1)とデータワ
ードを入れ換えるためのバッファ(D_1、D_2、…
…D_p_+_1)とを備え、各行に属するデータワー
ドの処理を並行して行うようにしたことを特徴とする特
許請求の範囲第6項記載のロングディスタンスコードの
誤り訂正装置。
(7) Arithmetic units (C_1, C_2, ... C_p_+_1) and buffers (D_1, D_2,...
. . . D_p_+_1), and processes data words belonging to each row in parallel.
JP10016987A 1987-04-24 1987-04-24 System and device for error correction of long distance code Pending JPS63267018A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10016987A JPS63267018A (en) 1987-04-24 1987-04-24 System and device for error correction of long distance code
US07/185,079 US4937829A (en) 1987-04-24 1988-04-22 Error correcting system and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10016987A JPS63267018A (en) 1987-04-24 1987-04-24 System and device for error correction of long distance code

Publications (1)

Publication Number Publication Date
JPS63267018A true JPS63267018A (en) 1988-11-04

Family

ID=14266818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10016987A Pending JPS63267018A (en) 1987-04-24 1987-04-24 System and device for error correction of long distance code

Country Status (1)

Country Link
JP (1) JPS63267018A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0407101A2 (en) * 1989-06-28 1991-01-09 Digital Equipment Corporation Error detection and correction system for long burst errors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123945A (en) * 1982-12-29 1984-07-17 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Numerous byte error correction system
JPS59124011A (en) * 1982-12-29 1984-07-18 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Numerous byte error correction system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123945A (en) * 1982-12-29 1984-07-17 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Numerous byte error correction system
JPS59124011A (en) * 1982-12-29 1984-07-18 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Numerous byte error correction system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0407101A2 (en) * 1989-06-28 1991-01-09 Digital Equipment Corporation Error detection and correction system for long burst errors
EP0407101A3 (en) * 1989-06-28 1992-04-08 Digital Equipment Corporation Error detection and correction system for long burst errors

Similar Documents

Publication Publication Date Title
JP3959788B2 (en) System for correcting errors in data frames with vertical and horizontal parity codes
JPH0444447B2 (en)
EP0836285B1 (en) Reed-Solomon decoder with general-purpose processing unit and dedicated circuits
JP3281387B2 (en) CRC / EDC checker system
JP3502583B2 (en) Error correction method and error correction device
JPS63267018A (en) System and device for error correction of long distance code
JP2004206798A (en) Encoding data encoding circuit of optical disk device
JP2662472B2 (en) Syndrome operation circuit for error correction processing
JPH0865175A (en) Error position detecting circuit of reed-solomon decoder
JP2553565B2 (en) Galois field arithmetic unit
JP3614978B2 (en) Galois field division method and division apparatus
JPH07226687A (en) Error correction processor
JPH02164133A (en) Error corrector for long distance code
JP2907138B2 (en) Error correction arithmetic processing method and processing circuit
JP3252421B2 (en) Euclidean circuit
JP3231811B2 (en) Matrix operation circuit
JP2000295116A (en) Error correction encoding method
JP2622383B2 (en) Error correction device for long distance codes
JPH01158826A (en) Error correction system for long distance code
JPS62122333A (en) Syndrome circuit
JPH0834439B2 (en) Galois field arithmetic unit
JPH10308675A (en) Reed-solomon decoding device
JP3193830B2 (en) Arithmetic circuit
JPH0267826A (en) Error correcting device for long distance code
JPS6136677B2 (en)