JPS63267018A - ロングデイスタンスコ−ドの誤り訂正方式および誤り訂正装置 - Google Patents
ロングデイスタンスコ−ドの誤り訂正方式および誤り訂正装置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
- long distance
- equation
- 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
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
〔技術分野〕
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を指定し、
用い、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を指定し、
〔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
.の要素の値を移してその後に上記ステップ
てその値が0であればステップ〔10〕において行番号
に1を加え、ステップ〔11〕における行番号の識別に
よって行列の最下行に至るまでの範囲内で第1列目の要
素の値が0でない行を捜す。 第1列目の要素の値が0でない行が見つかればステップ
〔12〕に移り1行番号が初期値P−1以外であれば、
すなわち第1行第1列の値が0であれば、ステップ〔1
3〕において要素の列番号を示す添字を1にして第1行
に移す行の第1列の要素を指定してから、行の入れ換え
を行うために〔14〕のステップにおいて一時的に1ワ
一ド分の記憶容量を有する退避用のレジスタdにa19
.の要素の値を移してその後に上記ステップ
〔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つの行を単位として各
列の要素を並列的に処理を行うように構成すればさらに
その処理時間を短縮することができる。
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つの行を単位として各
列の要素を並列的に処理を行うように構成すればさらに
その処理時間を短縮することができる。
第1図は本発明の誤り訂正方式により誤り位置多項式の
係数を求めるフローチャート、 第2図は本発明の誤り訂正方式により誤りパターンを求
めるために変更されたフローチャート、 第3図ないし第6図は本発明による誤り訂正装置の実施
例を示す図、 第7図は第6図の誤り訂正装置によって誤り位置多項式
の係数を求めるフローチャート、第8図はモデュロ2の
演算テーブルの例、第9図はガロア体上の乗数表現と1
0進表現との対応を示すテーブルの例である。 特許出願人 株式会社 リコー第1区 (b) 1図 (Q) 第 :2図 省孝(9ミ]丁z−15:tの92′i式=しイy’」
第4図
係数を求めるフローチャート、 第2図は本発明の誤り訂正方式により誤りパターンを求
めるために変更されたフローチャート、 第3図ないし第6図は本発明による誤り訂正装置の実施
例を示す図、 第7図は第6図の誤り訂正装置によって誤り位置多項式
の係数を求めるフローチャート、第8図はモデュロ2の
演算テーブルの例、第9図はガロア体上の乗数表現と1
0進表現との対応を示すテーブルの例である。 特許出願人 株式会社 リコー第1区 (b) 1図 (Q) 第 :2図 省孝(9ミ]丁z−15:tの92′i式=しイy’」
第4図
Claims (7)
- (1)ロングディスタンスコードの復号に際して、シン
ドロームから誤り位置多項式の各項の係数あるいは誤り
パターンを求めるために、 p行(p+1)列の行列の各要素q_i、_jにデータ
ワードA_(_i_+_j_−_2_)〔但し、1≦i
≦p)1≦j≦p+1、A_0〜A_2_p_−_1は
シンドロームあるいは誤り位置〕を設定し、 この行列を左基本変形することにより、上記多項式の係
数を求めることを特徴とするロングディスタンスコード
における誤り訂正方式。 - (2)ロングディスタンスコードの復号に際して、ロン
グディスタンスコードにより訂正可能な最大の数tを超
えないn個の誤りの場合に、シンドロームから誤り位置
多項式の各項の係数を求めるために、 上記pを誤りの数nとしたn行(n+1)列の行列の各
要素a_i、_jのデータワードとしてシンドロームS
_(_i_+_j_−_2_)をそれぞれ設定し、この
行列を左基本変形することにより、誤り位置多項式の係
数を求めることを特徴とする特許請求の範囲第1項記載
のロングディスタンスコードにおける誤り訂正方式。 - (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
項記載のロングディスタンスコードにおける誤り訂正方
式。 - (4)演算を要する要素の数が少ないときには、すべて
の要素のデータワードが0である行および列を追加する
ことによって、要素の配列を変更することなく同一の処
理を行い得るようにしたことを特徴とする特許請求の範
囲第1項記載のロングディスタンスコードにおける誤り
訂正方式。 - (5)ロングディスタンスコードの復号に際して、シン
ドロームから誤り位置多項式の各項の係数あるいは誤り
パターンを求めるために、 p行(p+1)列の行列の各要素q_i、_jに対応す
るデータワードA_(_i_+_j_−_2_)をそれ
ぞれ格納するメモリ(M_i、_j)と、 このメモリの入出力バス(B)に接続されたモデュロ2
の演算を行う演算器(C)を備えることを特徴とするロ
ングディスタンスコードの誤り訂正装置。 - (6)入出力バス(B)にデータワードを入れ換えるた
めのバッファ(D)がさらに接続されていることを特徴
とする特許請求の範囲第5項記載のロングディスタンス
コードの誤り訂正装置。 - (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項記載のロングディスタンスコードの
誤り訂正装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10016987A JPS63267018A (ja) | 1987-04-24 | 1987-04-24 | ロングデイスタンスコ−ドの誤り訂正方式および誤り訂正装置 |
| 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 (ja) | 1987-04-24 | 1987-04-24 | ロングデイスタンスコ−ドの誤り訂正方式および誤り訂正装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63267018A true JPS63267018A (ja) | 1988-11-04 |
Family
ID=14266818
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10016987A Pending JPS63267018A (ja) | 1987-04-24 | 1987-04-24 | ロングデイスタンスコ−ドの誤り訂正方式および誤り訂正装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63267018A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0407101A3 (en) * | 1989-06-28 | 1992-04-08 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59123945A (ja) * | 1982-12-29 | 1984-07-17 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
| JPS59124011A (ja) * | 1982-12-29 | 1984-07-18 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
-
1987
- 1987-04-24 JP JP10016987A patent/JPS63267018A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59123945A (ja) * | 1982-12-29 | 1984-07-17 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
| JPS59124011A (ja) * | 1982-12-29 | 1984-07-18 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 (ja) | 縦及び横のパリティコードを有するデータフレームにおけるエラーを修正するシステム | |
| KR930003997B1 (ko) | 에러 정정부호의 복호방법 및 복호장치 | |
| US4928280A (en) | Fast processor for multi-bit error correction codes | |
| JPH0444447B2 (ja) | ||
| JPS59124011A (ja) | 多数バイトエラ−訂正システム | |
| EP0836285B1 (en) | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits | |
| JP3281387B2 (ja) | Crc/edcチェッカシステム | |
| JPS632370B2 (ja) | ||
| JP3502583B2 (ja) | 誤り訂正方法および誤り訂正装置 | |
| JPS6114540B2 (ja) | ||
| JP2662472B2 (ja) | 誤り訂正処理用シンドローム演算回路 | |
| JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
| JP2553565B2 (ja) | ガロア体演算装置 | |
| JPH07226687A (ja) | 誤り訂正処理装置 | |
| JPH02164133A (ja) | ロングディスタンスコードの誤り訂正装置 | |
| JP2907138B2 (ja) | 誤り訂正の演算処理方法及び処理回路 | |
| JP3252421B2 (ja) | ユークリッドの互除回路 | |
| JP3231811B2 (ja) | 行列演算回路 | |
| JP2000295116A (ja) | 誤り修正符号化方法 | |
| JPH0750595A (ja) | 復号化装置 | |
| JPH01158826A (ja) | ロングディスタンスコードの誤り訂正方式 | |
| JPH0834439B2 (ja) | ガロア体演算装置 | |
| JPH10308675A (ja) | リードソロモン復号装置 | |
| JPH0267826A (ja) | ロングディスタンスコードの誤り訂正装置 | |
| JPH08272634A (ja) | アドレス生成回路 |