JP2622383B2 - ロングディスタンスコードの誤り訂正装置 - Google Patents
ロングディスタンスコードの誤り訂正装置Info
- Publication number
- JP2622383B2 JP2622383B2 JP62195240A JP19524087A JP2622383B2 JP 2622383 B2 JP2622383 B2 JP 2622383B2 JP 62195240 A JP62195240 A JP 62195240A JP 19524087 A JP19524087 A JP 19524087A JP 2622383 B2 JP2622383 B2 JP 2622383B2
- Authority
- JP
- Japan
- Prior art keywords
- column
- error
- row
- equation
- value
- 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.)
- Expired - Lifetime
Links
Landscapes
- Error Detection And Correction (AREA)
Description
【発明の詳細な説明】 〔技術分野〕 BCH符号、リードソロモン符号などの誤り訂正符号を
用い、255ワードなどの多数のワードをブロックとして
このブロックに含まれる多数ワードの誤り訂正を行うデ
ータの符号化、復号化が光ディスクなどの記録・再生あ
るいはデータ伝送などに使用されている。
用い、255ワードなどの多数のワードをブロックとして
このブロックに含まれる多数ワードの誤り訂正を行うデ
ータの符号化、復号化が光ディスクなどの記録・再生あ
るいはデータ伝送などに使用されている。
本発明は、このような1つの訂正系列で多数の誤り訂
正が可能な符号(ロングディスタンスコード)を高速で
復号するとともに誤り訂正を行うためのロングディスタ
ンスコードの誤り訂正装置に関し、本出願人が先に特願
昭62−100169号として出願した「ロングディスタンスコ
ードの誤り訂正方式および誤り訂正装置」の発明をさら
に改良したものである。
正が可能な符号(ロングディスタンスコード)を高速で
復号するとともに誤り訂正を行うためのロングディスタ
ンスコードの誤り訂正装置に関し、本出願人が先に特願
昭62−100169号として出願した「ロングディスタンスコ
ードの誤り訂正方式および誤り訂正装置」の発明をさら
に改良したものである。
BCH符号あるいはリードソロモン符号などによって多
数ワードの誤りを訂正するためには受信データからシン
ドロームを生成して誤り位置多項式の係数を求める必要
がある。
数ワードの誤りを訂正するためには受信データからシン
ドロームを生成して誤り位置多項式の係数を求める必要
がある。
すなわち、この誤り位置多項式は、誤り位置に対応す
る値を根として持つ多項式であり、誤り位置多項式の各
項の係数を求めることによって誤りの生じたデータの位
置を算出することができる。
る値を根として持つ多項式であり、誤り位置多項式の各
項の係数を求めることによって誤りの生じたデータの位
置を算出することができる。
従来このような誤り位置多項式の係数を求める方式と
してピーターソン、バーレカンプ・マッシィ、ユークリ
ッド互除法などが知られているが、ハードウエアによっ
て構成しようとするとそのハードウエアの量が大きいた
めに実用化に適したハードを得ることが困難であり、ま
た、ソフトウエアによって処理を行なうには判断が難し
く処理速度に問題が生じる。
してピーターソン、バーレカンプ・マッシィ、ユークリ
ッド互除法などが知られているが、ハードウエアによっ
て構成しようとするとそのハードウエアの量が大きいた
めに実用化に適したハードを得ることが困難であり、ま
た、ソフトウエアによって処理を行なうには判断が難し
く処理速度に問題が生じる。
本発明は、上記のようなロングディスタンスコードを
高速で復号するとともに、ハード化に適したロングディ
スタンスコードにおける装置を提供することを目的とす
る。
高速で復号するとともに、ハード化に適したロングディ
スタンスコードにおける装置を提供することを目的とす
る。
本発明の構成について、それぞれが8ビットで構成さ
れる255ワードからなるブロックの、4ワード訂正可能
な、256元ガロア体GF(28)のリードソロモン符号に適
用した実施例および動作例に基づいて説明する。
れる255ワードからなるブロックの、4ワード訂正可能
な、256元ガロア体GF(28)のリードソロモン符号に適
用した実施例および動作例に基づいて説明する。
リードソロモン符号の復号は、次の5つのステップに
よって行われる。
よって行われる。
(1) 受信データからシンドロームを求める。
(2) このシンドロームから誤り位置多項式を求め
る。
る。
(3) この誤り位置多項式から誤り位置を求める。
(4) 誤り位置から誤りパターンを求める。
(5) 誤り位置と誤りパターンとによって誤り訂正を
行う。
行う。
本発明においては、上記(2)のシンドロームからの
誤り位置多項式の算出、および(4)の誤り位置から誤
りパターンの算出の双方を同一の処理方法によって高速
で求められる復号方式を提供する。
誤り位置多項式の算出、および(4)の誤り位置から誤
りパターンの算出の双方を同一の処理方法によって高速
で求められる復号方式を提供する。
以下の実施例および動作例における演算(+で示す加
算、×で示す乗算および÷または/で示す除算)はいず
れもモデュロ2の演算であって、一般にテーブルを参照
することによって実行されものであり、そのテーブルの
一例として、GF(28)上で G(X)=x8+x4+x3+x2+1 を法とする上記演算のテーブルの一部を第12図に例示す
る。なお、同図(a)は加算テーブル、同図(b)は乗
算テーブル、同図(c)は除算テーブルであってこの除
算テーブルの最上列は被除数、最左欄は除数である。
算、×で示す乗算および÷または/で示す除算)はいず
れもモデュロ2の演算であって、一般にテーブルを参照
することによって実行されものであり、そのテーブルの
一例として、GF(28)上で G(X)=x8+x4+x3+x2+1 を法とする上記演算のテーブルの一部を第12図に例示す
る。なお、同図(a)は加算テーブル、同図(b)は乗
算テーブル、同図(c)は除算テーブルであってこの除
算テーブルの最上列は被除数、最左欄は除数である。
誤りを含んだ受信データの各語の値をr0〜r254とする
と、受信データR(x)は次の(1)式で与えられる。
と、受信データR(x)は次の(1)式で与えられる。
R(x)=r0x254+r1x253+……+r253x1+r254 ……(1) この受信データから生成されるシンドロームS0〜S7は
この(1)式のxにα0、α1、……α7をそれぞれ代
入した次式のものである。
この(1)式のxにα0、α1、……α7をそれぞれ代
入した次式のものである。
S0=R(α0)=r0+r1+……+r253+r254 S1=R(α1)=r0α254+r1α253+……+r253α1 +r254 S2=R(α2)=r0α254・2+r1α253・2+…… +r253α1・2+r254 …… …… …… S7=R(α7)=r0α254・7+r1α253・7+……+r
253α1・7+r254 ……(2) 誤り位置多項式σ(x)は次の(3)式のように定義
される。
253α1・7+r254 ……(2) 誤り位置多項式σ(x)は次の(3)式のように定義
される。
σ(x)=(x+V1)(x+V2)(x+V3)(x+V4) =x4+σ3x3+σ2x2+σ1x+σ0 ……(3) ここでV1〜V4は誤り位置、すなわち誤りのあるワード
位置を示すもので、(1)式のxのべき乗の値に対応し
ており、一般的にはテーブルを参照することにより10進
表現によるワード位置が求められるものであって、この
テーブルの一例として第12図の演算テーブルと同様に、
GF(28)上でG(X)=x8+x4+x3+x2+1を法とするαの
べき乗表現と10進表面との対応を示すテーブルの一部を
第13図に示してある。
位置を示すもので、(1)式のxのべき乗の値に対応し
ており、一般的にはテーブルを参照することにより10進
表現によるワード位置が求められるものであって、この
テーブルの一例として第12図の演算テーブルと同様に、
GF(28)上でG(X)=x8+x4+x3+x2+1を法とするαの
べき乗表現と10進表面との対応を示すテーブルの一部を
第13図に示してある。
このテーブルによって、V=1のときはα0=1で最
下位のr254の項、V=4のときはα2=4でr252の項の
ようになる。
下位のr254の項、V=4のときはα2=4でr252の項の
ようになる。
なお、この実施例および動作例では、S0〜S7の8種の
シンドロームを用いており、4つの誤り位置と4つの誤
りパターンとを表す8つの未知数は、この8種のシンド
ロームを用いて演算することによって算出できるもので
あるが、誤りパターンを先に求めると同一の値、すなわ
ち同一の誤りパターンがあった場合に誤り位置を算出で
きなくなる恐れがあるので、誤り位置を先に求めるのが
一般的である。
シンドロームを用いており、4つの誤り位置と4つの誤
りパターンとを表す8つの未知数は、この8種のシンド
ロームを用いて演算することによって算出できるもので
あるが、誤りパターンを先に求めると同一の値、すなわ
ち同一の誤りパターンがあった場合に誤り位置を算出で
きなくなる恐れがあるので、誤り位置を先に求めるのが
一般的である。
また、この誤り位置は255のワードの位置を示すもの
であるから0〜254(2進8桁)の値であり、誤りパタ
ーンは1ワード8ビット内の誤りのパターンとして“00
000001"から“11111111"の255通りであり、誤りの存在
が検出されたワードにこのパターンを加算することによ
って誤りが訂正される。
であるから0〜254(2進8桁)の値であり、誤りパタ
ーンは1ワード8ビット内の誤りのパターンとして“00
000001"から“11111111"の255通りであり、誤りの存在
が検出されたワードにこのパターンを加算することによ
って誤りが訂正される。
誤り位置多項式である(3)式の各係数σ0〜σ3の
値とシンドロームS0〜S7との間には次の(4)式のよう
な関係が成り立つ。
値とシンドロームS0〜S7との間には次の(4)式のよう
な関係が成り立つ。
この(4)式の右辺を左辺に移項して行列の形を変え
ると次の(5)式になる。
ると次の(5)式になる。
この(5)式の両辺に、ある行列Aを左から乗じて次
の(6)式のように変形すると、σ0〜σ3は(7)で
示すように求められる。
の(6)式のように変形すると、σ0〜σ3は(7)で
示すように求められる。
σ0=a0 σ1=a1 σ2=a2 σ3=a3 ……(7) ところで、上記のように(5)式を(6)式に変形す
るために両辺に乗じた行列Aは右辺の値が0であるから
任意のものでよく、結局、(5)式のS0〜S7で表される
行列を(6)式の形になるように左基本変形すればよい
ことになる。
るために両辺に乗じた行列Aは右辺の値が0であるから
任意のものでよく、結局、(5)式のS0〜S7で表される
行列を(6)式の形になるように左基本変形すればよい
ことになる。
この左基本形をS0〜S7の値が、それぞれ0,15,85,115,
193,115,161および231の場合を例に採って具体的に説明
する。
193,115,161および231の場合を例に採って具体的に説明
する。
(5)式の左辺第1項は次の(8)式で表される。
この式(8)を(6)式の形に変形する第1段階とし
てその第1列が(6)式の左辺第1項の第1列の なるように変形を行う。
てその第1列が(6)式の左辺第1項の第1列の なるように変形を行う。
(8)式の第1列第1行の値が“0"であるから、第1
列が“0"でない行と置き換えるために第2行と第1行と
を入れ換えると次の(9)式になる。
列が“0"でない行と置き換えるために第2行と第1行と
を入れ換えると次の(9)式になる。
次に第1列第1行の値15を“1"にするために、第1行
の各例の値をこの15で割るモデュロ2の演算を行うと次
の(10)式になる。
の各例の値をこの15で割るモデュロ2の演算を行うと次
の(10)式になる。
次に、第3および第4行目の第1列の値を0にするた
めに、第3行目については第1行の値を85倍してからこ
の第3行目の各値にモデュロ2の加算を、また第4行目
については第1行の値を115倍してからこの第3行目の
各値にモデュロ2の加算を行うことによって次の(11)
式を得る。
めに、第3行目については第1行の値を85倍してからこ
の第3行目の各値にモデュロ2の加算を、また第4行目
については第1行の値を115倍してからこの第3行目の
各値にモデュロ2の加算を行うことによって次の(11)
式を得る。
次に、上記式(8)を(6)式の形に変形する第2段
階としてその第2列が(6)式の左辺第1項の第2列と
同じ にするために、上記同様の手法として、第2行目をその
第2列の15でモデュロ2の除算を行い、次いでこの第2
行目の値を87倍して第3行目とモデュロ2の加算を、ま
たこの第2行目の値を58倍して第4行目とモデュロ2の
加算を行うことによって下記の(12)式を得る。
階としてその第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)式を得る。
階としてその第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)式が得られる。
段階としてその第4列が(6)式の左辺第1項の第4列
と同じ にするために、第4行をその第4列の101でモデュロ2
の除算を行い、得られた第4行目の値を87倍して第1行
目にモデュロ2の加算を、また107倍して第2行目にモ
デュロ2の加算を行うことによって前記の(6)式と同
一の形の下記(15)式が得られる。
これによって、(6)式について説明したように、 σ0=64 σ1=120 σ2=54 σ3=15 ……(16) が得られ、これらσの値を(3)式に示した誤り位置多
項式に代入することによって x4+15x3+54x2+120x+64 ……(17) が得られる。
項式に代入することによって x4+15x3+54x2+120x+64 ……(17) が得られる。
この(17)式をチェンのアルゴリズムなどによって解
いてその根を求めると誤り位置を検出することができ、
この(17)式の場合には、 x=1、2、4、8 ……(18) であるから、前述のように(1)式のr254,r253,r252の
項およびr251の項に誤りがあることになる。
いてその根を求めると誤り位置を検出することができ、
この(17)式の場合には、 x=1、2、4、8 ……(18) であるから、前述のように(1)式のr254,r253,r252の
項およびr251の項に誤りがあることになる。
以上のようにして誤り位置が検出されたので、次に誤
りパターン、すなわち正しいデータのパターンを検出す
る手法について説明する。
りパターン、すなわち正しいデータのパターンを検出す
る手法について説明する。
誤り位置V1の誤りパターンがY1、誤り位置V2の誤りパ
ターンがY2のように、誤り位置V1、V2、V3、V4がそれぞ
れ誤りパターンY1、Y2、Y3、Y4に対応するものとする。
ターンがY2のように、誤り位置V1、V2、V3、V4がそれぞ
れ誤りパターンY1、Y2、Y3、Y4に対応するものとする。
このとき、誤りパターンY1〜Y4、誤り位置V1〜V4およ
びシンドロームS0〜S3との間には次の関係が成り立つ。
びシンドロームS0〜S3との間には次の関係が成り立つ。
この(19)式の右辺を先に(4)式から(5)式に変
換したと同様に左辺に移項して行列の形を変えると次の
(20)式になる。
換したと同様に左辺に移項して行列の形を変えると次の
(20)式になる。
この(20)式の左辺の左側の行列に上記誤 位置とし
てV1=1、V2=2、V3=4、V4=8、S0=0、S1=15、
S2=85、S3=115をそれぞれ代入し、(8)式ないし(1
5)式で説明したと同様の左基本変形を行うと次の(2
1)式に示すように変形される。
てV1=1、V2=2、V3=4、V4=8、S0=0、S1=15、
S2=85、S3=115をそれぞれ代入し、(8)式ないし(1
5)式で説明したと同様の左基本変形を行うと次の(2
1)式に示すように変形される。
この行列の第4列の値によって、誤りパターンY1〜Y4
は次の(22)式のようになる。
は次の(22)式のようになる。
Y1=1 Y2=1 Y3=1 Y4=1 ……(22) これによって、誤りパターンはいずれも1であること
が検出されるので、誤りがある1,2,4,8番目のワードに
ついてパターン1の訂正を行えばよい。
が検出されるので、誤りがある1,2,4,8番目のワードに
ついてパターン1の訂正を行えばよい。
なお、この誤りパターンYの値は、その誤りパターン
を10進数で表しており、上記パターン1の場合には、
“00000001"を誤り位置のワードにモデュロ2で加算す
ればよい。
を10進数で表しており、上記パターン1の場合には、
“00000001"を誤り位置のワードにモデュロ2で加算す
ればよい。
次に、上記の4ワード訂正が可能な符号によって3ワ
ードの誤りを訂正する過程について例を挙げて説明す
る。
ードの誤りを訂正する過程について例を挙げて説明す
る。
誤りの例として、誤り位置を最後の3項とし、誤りパ
ターンY1〜Y3とすると、次の(23)式のようになる。
ターンY1〜Y3とすると、次の(23)式のようになる。
誤り位置 誤りパターン V1=1 Y1=2(すなわち“00000010") V2=2 Y2=3(すなわち“00000011") V3=4 Y3=4(すなわち“00000100") ……(23) (5)式の左辺の左側の行列にこれらの値を代入し
た、前記(8)式に対応する式は次の(24)式のように
なる。
た、前記(8)式に対応する式は次の(24)式のように
なる。
この式(24)を変形する第1段階としてその第1列が
(6)式の左辺第1項の第1列が になるように変形を行うと次の(25)式になる。
(6)式の左辺第1項の第1列が になるように変形を行うと次の(25)式になる。
次に、第2列目が になるように変形を行うと次の(26)式になる。
次に、第3列目が になるように変形を行うと次の(27)式になる。
この(27)式の第4行目はすべて“0"であり、σ3は
存在せず、3ワードの誤りであることが識別される。
存在せず、3ワードの誤りであることが識別される。
このように3ワードの誤りである場合には、前記の
(3)式に相当する誤り位置多項式は次の(28)式で表
される。
(3)式に相当する誤り位置多項式は次の(28)式で表
される。
σ(x)=(x+V1)(x+V1)(x+V1) =x3+σ2x2+σ1x+σ0 ……(28) 先に(5)式として示した、シンドロームS0〜S6との
関係式は次の(29)式のように変形される。
関係式は次の(29)式のように変形される。
この(29)式を左基本変形することによってσ0〜σ
2を求めることができるが、この値は既に上記(27)式
の左上の3行4列の行列で求められており、第4列の値
に示されているように、 σ0=8 σ1=14 σ2=7 ……(30) であり、また誤り位置多項式は次の(31)式で示され
る。
2を求めることができるが、この値は既に上記(27)式
の左上の3行4列の行列で求められており、第4列の値
に示されているように、 σ0=8 σ1=14 σ2=7 ……(30) であり、また誤り位置多項式は次の(31)式で示され
る。
x3+7x2+14x+8 ……(31) そして、誤り位置を示すこの式の根は、 x=1、x=2、x=4 ……(32) となる。
次に誤りパターンを求めるため(19)式にこの値を代
入すると、 となる。
入すると、 となる。
誤りパターンを求めるには、この(33)式を解けばよ
いが、他の方法としてこの左辺左側の行列を次の(34)
式のように変形してから、上述の誤り位置を求める際に
適用したと同一の手法によって更に変形を行って(35)
式を得、これから(36)式に示す誤りパターンを求める
ことができる。
いが、他の方法としてこの左辺左側の行列を次の(34)
式のように変形してから、上述の誤り位置を求める際に
適用したと同一の手法によって更に変形を行って(35)
式を得、これから(36)式に示す誤りパターンを求める
ことができる。
V1=1、Y1=2 V2=2、Y2=3 V3=3、Y3=4 ……(36) 以上に説明した演算処理は、行列の列を単位とした処
理が可能であり、本発明は、この列を単位として処理を
ハードウェアによって迅速に行い得るようにした装置を
提供するものである。
理が可能であり、本発明は、この列を単位として処理を
ハードウェアによって迅速に行い得るようにした装置を
提供するものである。
上記の4行5列の行列を一般式で表すと次の(40)式
のようになる。
のようになる。
ここで、1列目の要素a1,1を“1"に、要素a2,1,a
3,1およびa4,1を“0"にする変形処理を行うとき、変形
後の第2列目の各要素a1,2′,a2,2′,a3,2′およびa
4,2′の値はそれぞれ次のように求められる。
3,1およびa4,1を“0"にする変形処理を行うとき、変形
後の第2列目の各要素a1,2′,a2,2′,a3,2′およびa
4,2′の値はそれぞれ次のように求められる。
a1,2′=a1,2÷a1,1 a2,2′=a1,2÷a1,1×a2,1+a2,2 a3,2′=a1,2÷a1,1×a3,1+a3,2 a4,2′=a1,2÷a1,1×a4,1+a4,2 ……(41) 第1図は上記(41)式に示すごとき演算を行うための
本発明による演算回路の原理を示すもので、第3列ない
し第5列の演算も上記と同様に処理するものである。
本発明による演算回路の原理を示すもので、第3列ない
し第5列の演算も上記と同様に処理するものである。
なお、第1列については、上記のように、 となるように演算を行うものであるが、前記(6)式か
らも明らかなように、誤り位置多項式の係数σを求める
ためには第1列ないし第4列の値はそれらが単位行列の
形になるように処理が行われればよく、実際に第1列な
いし第4列の各レジスタに格納されている値とは無関係
であり、また後述するように前の値を使用することによ
ってさらに効率的な処理を行うことができるので、第1
列を含めて処理の済んだ列の値を例えば上記のような値
に書換える処理を行なう必要はないので、上記の第2列
を処理する場合を例にとって具体的に説明する。
らも明らかなように、誤り位置多項式の係数σを求める
ためには第1列ないし第4列の値はそれらが単位行列の
形になるように処理が行われればよく、実際に第1列な
いし第4列の各レジスタに格納されている値とは無関係
であり、また後述するように前の値を使用することによ
ってさらに効率的な処理を行うことができるので、第1
列を含めて処理の済んだ列の値を例えば上記のような値
に書換える処理を行なう必要はないので、上記の第2列
を処理する場合を例にとって具体的に説明する。
入力端子の一方の入力データワードの逆数を発生する
逆数発生器D0が接続されている乗算器M0と、この乗算器
M0の出力端子が一方の入力端子に接続されている乗算器
M1〜M4と、これら乗算器M1〜M4の出力端子が一方の入力
端子に接続されている加算器A1〜A4とによって構成し、
これら乗算器M0,M1〜M4および加算器A1〜A4の他方の入
力端子には以下に説明するようなデータワードが入力さ
れる。
逆数発生器D0が接続されている乗算器M0と、この乗算器
M0の出力端子が一方の入力端子に接続されている乗算器
M1〜M4と、これら乗算器M1〜M4の出力端子が一方の入力
端子に接続されている加算器A1〜A4とによって構成し、
これら乗算器M0,M1〜M4および加算器A1〜A4の他方の入
力端子には以下に説明するようなデータワードが入力さ
れる。
第1図図示のように、逆数発生器D0の入力端子を
と、乗算器M0〜M4のそれぞれの他方の入力端子を,
,,およびと、また加算器A1〜A4のそれぞれの
入力端子を,,およびとし、また、乗算器M0の
出力端子を、加算器A1〜A4の出力端子をそれぞれ〜
として以下説明する。なお、便宜上上記行列の各要素
を示す符号とこの要素を格納しているレジスタとを同一
符号で示した。
と、乗算器M0〜M4のそれぞれの他方の入力端子を,
,,およびと、また加算器A1〜A4のそれぞれの
入力端子を,,およびとし、また、乗算器M0の
出力端子を、加算器A1〜A4の出力端子をそれぞれ〜
として以下説明する。なお、便宜上上記行列の各要素
を示す符号とこの要素を格納しているレジスタとを同一
符号で示した。
上記第2列について、第1列が となるように、(41)式の変形処理を実行するために
は、上記各入力端子に次の要素のデータを入力する。
は、上記各入力端子に次の要素のデータを入力する。
……a1,1 ……a1,2 ……a2,1 ……a2,2 ……a3,1 ……a3,2 ……a4,1 ……a4,2 これによって、各出力端子には変形処理を行ったデー
タが次のように出力される。
タが次のように出力される。
……a1,2′ ……a2,2′ ……a3,2′ ……a4,2′ すなわち、逆数発生器D0は端子から入力された要素
a1,1の逆数1/a1,1を発生して乗算器M0で入力端子か
らの要素a1,2の値a1,2と乗算してa1,2/a1,1を得る
が、これは前記(41)式の第1番目の要素、すなわち
“1"にされるべき要素a1,1の属する行の要素a1,2の値
に等しく、また前記(41)式の第2〜4番目の要素a
2,2,a3,2およびa4,2について右辺のa1,2÷a1,1の演
算を実行したものとなる。
a1,1の逆数1/a1,1を発生して乗算器M0で入力端子か
らの要素a1,2の値a1,2と乗算してa1,2/a1,1を得る
が、これは前記(41)式の第1番目の要素、すなわち
“1"にされるべき要素a1,1の属する行の要素a1,2の値
に等しく、また前記(41)式の第2〜4番目の要素a
2,2,a3,2およびa4,2について右辺のa1,2÷a1,1の演
算を実行したものとなる。
乗算器M2〜M4においては、第2〜4番目の列の要素a
2,2,a3,2およびa4,2がそれぞれ属する行の第1列の要
素、すなわち“0"にされるべき要素a2,1,a3,1およびa
4,1、の値をそれぞれ上記a1,2/a1,1の値に乗算した結
果を得、さらに加算器A2〜A4においてこの結果と各要素
の元の値a2,2,a3,2およびa4,2とをそれぞれ加算する
ことによって上記(41)式の変形処理の結果が得られ
る。
2,2,a3,2およびa4,2がそれぞれ属する行の第1列の要
素、すなわち“0"にされるべき要素a2,1,a3,1およびa
4,1、の値をそれぞれ上記a1,2/a1,1の値に乗算した結
果を得、さらに加算器A2〜A4においてこの結果と各要素
の元の値a2,2,a3,2およびa4,2とをそれぞれ加算する
ことによって上記(41)式の変形処理の結果が得られ
る。
第2図は、第1図について説明した演算装置を4行5
列の行列の処理に適用するようにした本発明による誤り
訂正装置の実施例であって、行列の各要素のデータワー
ドを格納する4行5列のレジスタからなる行列記憶部1
0、列ごとに2つずつ設けられているバッファレジスタR
1,R2からなるデータワード入換部20、第1図について説
明したような演算処理部30および“0"検出部40からな
る。
列の行列の処理に適用するようにした本発明による誤り
訂正装置の実施例であって、行列の各要素のデータワー
ドを格納する4行5列のレジスタからなる行列記憶部1
0、列ごとに2つずつ設けられているバッファレジスタR
1,R2からなるデータワード入換部20、第1図について説
明したような演算処理部30および“0"検出部40からな
る。
行列記憶部10は、先に(40)式として示した下記の行
列 の各要素を格納するレジスタからなり、これらレジスタ
は格納するデータワードの行列中の要素a1,1〜a4,5の
位置に合わせてそれぞれa1,1レジスタ〜a4,5レジスタ
という。
列 の各要素を格納するレジスタからなり、これらレジスタ
は格納するデータワードの行列中の要素a1,1〜a4,5の
位置に合わせてそれぞれa1,1レジスタ〜a4,5レジスタ
という。
このこの行列記憶部10において□内にA〜HおよびK
を記入したのはそれぞれゲートであり、同一符号を付し
たゲートは同一の機能を達成するものである。ゲートA
はデータワードを格納するための入力側ゲートであり、
また、ゲートGは処理が終了したデータワードを出力す
るための出力側ゲートであり、その他のゲートの機能に
ついては以下に説明する。
を記入したのはそれぞれゲートであり、同一符号を付し
たゲートは同一の機能を達成するものである。ゲートA
はデータワードを格納するための入力側ゲートであり、
また、ゲートGは処理が終了したデータワードを出力す
るための出力側ゲートであり、その他のゲートの機能に
ついては以下に説明する。
データワード入換部20は、例えば第1列についてはバ
ッファレジスタR11,R12というように各列ごとに2つの
バッファレジスタを備えており、対応する列のレジスタ
の上記ゲートLからのデータワードをストアするととも
に、それらバッファレジスタにストアされていたデータ
ワードは対応する列のレジスタに上記ゲートBあるいは
Cを介して再格納されるように構成されている。
ッファレジスタR11,R12というように各列ごとに2つの
バッファレジスタを備えており、対応する列のレジスタ
の上記ゲートLからのデータワードをストアするととも
に、それらバッファレジスタにストアされていたデータ
ワードは対応する列のレジスタに上記ゲートBあるいは
Cを介して再格納されるように構成されている。
演算処理部30は、第1図について先に説明したと同一
の構成と機能とを有しており、第1図と対応する演算要
素には同一の符号を付して示してある。これら演算要素
は、上記行列記憶部10の各レジスタのゲートH,I,J,Kか
らのデータワードについて第1図について説明した演算
を行い、その結果を各レジスタのゲートDあるいはゲー
トEから格納するように構成されている。
の構成と機能とを有しており、第1図と対応する演算要
素には同一の符号を付して示してある。これら演算要素
は、上記行列記憶部10の各レジスタのゲートH,I,J,Kか
らのデータワードについて第1図について説明した演算
を行い、その結果を各レジスタのゲートDあるいはゲー
トEから格納するように構成されている。
“0"検出回路40は、第1列ないし第4列のレジスタに
設けられているゲートFからのデータワードが“0"であ
るか否かを識別する回路である。
設けられているゲートFからのデータワードが“0"であ
るか否かを識別する回路である。
この第2図に図示した、本発明によるロングディスタ
ンスコードの誤り訂正装置の実施例の動作を、8つのシ
ンドロームS0〜S7からなる行列の誤り訂正に用いる合を
例にとって説明する。
ンスコードの誤り訂正装置の実施例の動作を、8つのシ
ンドロームS0〜S7からなる行列の誤り訂正に用いる合を
例にとって説明する。
先ず、上記行列記憶部10の各レジスタにシンドローム
S0〜S7を前記(5)式左辺第1項、すなわち下記の式
(42)に示されているように代入する処理を第3図のス
テップ〔101〕〜〔113〕からなるフローチャートによっ
て説明する。
S0〜S7を前記(5)式左辺第1項、すなわち下記の式
(42)に示されているように代入する処理を第3図のス
テップ〔101〕〜〔113〕からなるフローチャートによっ
て説明する。
ステップ〔101〕においてはゲートAを導通状態とし
て入力線11から入力されたシンドロームをラッチ信号を
選択して供給することなどによって選択されたレジスタ
に格納し得るようにし、ステップ〔102〕でiの初期値
を1にセットするとともにステップ〔103〕として入力
線11上にシンドロームS(i-1)すなわちS0を出力する。
て入力線11から入力されたシンドロームをラッチ信号を
選択して供給することなどによって選択されたレジスタ
に格納し得るようにし、ステップ〔102〕でiの初期値
を1にセットするとともにステップ〔103〕として入力
線11上にシンドロームS(i-1)すなわちS0を出力する。
次にステップ〔104〕においては列番号jを上記のi
に等しい値(ここでは1)とし、ステップ〔105〕で行
の範囲t、換言すれば、前記(6)式から明らかなよう
に訂正可能な誤りの数と同一、以内であることを確認し
てからステップ〔107〕で列番号を示す添字kを求めて
aj,k(ここではa1,1)のレジスタに例えばラッチ信号
を供給することによって上記シンドロームS0をステップ
〔108〕で上記レジスタa1,1に格納する。
に等しい値(ここでは1)とし、ステップ〔105〕で行
の範囲t、換言すれば、前記(6)式から明らかなよう
に訂正可能な誤りの数と同一、以内であることを確認し
てからステップ〔107〕で列番号を示す添字kを求めて
aj,k(ここではa1,1)のレジスタに例えばラッチ信号
を供給することによって上記シンドロームS0をステップ
〔108〕で上記レジスタa1,1に格納する。
次のステップ〔109〕においては、上記(42)式によ
って明らかなように、要素a1,2およびa2,1の値がとも
に同一のシンドロームS1であり、また要素a1,3,a2,2お
よびa3,1の値がともに同一のシンドロームS2であり、
以下シンドロームS3〜S6まで斜めの線上の要素に同一の
データワードが代入されることから、レジスタの行番号
および列番号を示す添字jとkをそれぞれ−1,+1する
ことによって今書込んだレジスタの右上のレジスタを次
の書込み対象として指定するものであるが、a1,1のレ
ジスタの右上には該当するレジスタがなく、このように
実在しないレジスタが上記ステップ〔109〕によって指
定されたときにはステップ〔110〕において行番号を、
ステップ〔111〕において列番号をチェックすることに
よってこの指定を排除し、次のステップ〔112〕でiを
+1してから前記ステップ〔103〕に戻る。
って明らかなように、要素a1,2およびa2,1の値がとも
に同一のシンドロームS1であり、また要素a1,3,a2,2お
よびa3,1の値がともに同一のシンドロームS2であり、
以下シンドロームS3〜S6まで斜めの線上の要素に同一の
データワードが代入されることから、レジスタの行番号
および列番号を示す添字jとkをそれぞれ−1,+1する
ことによって今書込んだレジスタの右上のレジスタを次
の書込み対象として指定するものであるが、a1,1のレ
ジスタの右上には該当するレジスタがなく、このように
実在しないレジスタが上記ステップ〔109〕によって指
定されたときにはステップ〔110〕において行番号を、
ステップ〔111〕において列番号をチェックすることに
よってこの指定を排除し、次のステップ〔112〕でiを
+1してから前記ステップ〔103〕に戻る。
このステップ〔103〕では、i=2になっていること
からシンドロームS1を入力線11に供給し、ステップ〔10
4〕で行番号jをiの値2としてステップ〔105〕で行の
値より少ないことをチェックしてから列番号kをi−j
+1=2−2+1=1とし、ステップ〔108〕でこれら
の行番号と列番号で指定されるレジスタa2,1に上記シ
ンドロームS1を書込む。
からシンドロームS1を入力線11に供給し、ステップ〔10
4〕で行番号jをiの値2としてステップ〔105〕で行の
値より少ないことをチェックしてから列番号kをi−j
+1=2−2+1=1とし、ステップ〔108〕でこれら
の行番号と列番号で指定されるレジスタa2,1に上記シ
ンドロームS1を書込む。
次のステップ〔109〕では、前記のように行番号jか
ら1を減算して1とするとともに列番号kに1を加算し
て2とすることによってレジスタa1,2を指定する。こ
のj,kの値によってステップ〔110〕からステップ〔11
1〕に至り、ステップ〔108〕に戻ってこのレジスタa
1,2にもシンドロームS1を書込む。
ら1を減算して1とするとともに列番号kに1を加算し
て2とすることによってレジスタa1,2を指定する。こ
のj,kの値によってステップ〔110〕からステップ〔11
1〕に至り、ステップ〔108〕に戻ってこのレジスタa
1,2にもシンドロームS1を書込む。
このような処理をステップ〔113〕に示されているよ
うに、シンドロームの数、すなわち誤り訂正可能な数t
の2倍になるまで繰返えすことによって、上記(42)式
に示すようにシンドロームが各レジスタa1,1〜a4,5に
書込まれる。
うに、シンドロームの数、すなわち誤り訂正可能な数t
の2倍になるまで繰返えすことによって、上記(42)式
に示すようにシンドロームが各レジスタa1,1〜a4,5に
書込まれる。
以下の説明においては、具体的な数値を用いて説明す
る方が理解を助けるものと思われるので、上記のシンド
ロームS0〜S7の値を前記(8)式と同様にそれぞれ0,1
5,85,115,193,115,161および231とする。この行列は次
のようになる。
る方が理解を助けるものと思われるので、上記のシンド
ロームS0〜S7の値を前記(8)式と同様にそれぞれ0,1
5,85,115,193,115,161および231とする。この行列は次
のようになる。
この行列を左基本変形して誤り位置多項式の係数σ0
〜σ3を求めるためには、前記(6)式および(7)式
から、この(43)式の行列を下記の(44)式のように変
形する必要があることは前述のとおりである。
〜σ3を求めるためには、前記(6)式および(7)式
から、この(43)式の行列を下記の(44)式のように変
形する必要があることは前述のとおりである。
第4図に示すフローは、データワードの値を“1"に変
形すべき要素の値が“0"であるときにこのデータワード
の属する列内でデータワードが“0"以外の値を有する行
と置き換えるためのルーチンであり、上記の(43)式の
列について具体的にいえば、第1行第1列の要素a1,1
のデータワードの値が“0"であるからこの第1列のデー
タワードの値が“0"でない第2行を第1行と置き換える
処理を行うためのルーチンである。
形すべき要素の値が“0"であるときにこのデータワード
の属する列内でデータワードが“0"以外の値を有する行
と置き換えるためのルーチンであり、上記の(43)式の
列について具体的にいえば、第1行第1列の要素a1,1
のデータワードの値が“0"であるからこの第1列のデー
タワードの値が“0"でない第2行を第1行と置き換える
処理を行うためのルーチンである。
ステップ〔114〕では、処理すべき列番号Pの初期値
として“1"をセットしてからステップ〔115〕でこの第
1列のレジスタa1,1〜a4,1のデータワードを“0"検出
回路40に出力するためにこの第1列の出力ゲートFを導
通状態にして、第1列の要素a1,1,a2,1,a3,1およびa
4,1の値をチェックする。
として“1"をセットしてからステップ〔115〕でこの第
1列のレジスタa1,1〜a4,1のデータワードを“0"検出
回路40に出力するためにこの第1列の出力ゲートFを導
通状態にして、第1列の要素a1,1,a2,1,a3,1およびa
4,1の値をチェックする。
ステップ〔116〕として示した“0"検出回路40による
第4図の“0"検出処理を行って、この第1列に属するす
べての要素が“0"であるか否か、および“1"にすべき要
素が“0"であるか否かをチェックする。
第4図の“0"検出処理を行って、この第1列に属するす
べての要素が“0"であるか否か、および“1"にすべき要
素が“0"であるか否かをチェックする。
第7図はこの“0"検出処理のフローチャートであっ
て、ステップ〔201〕で行番号LPを列番号Pと等しくす
ることによって“1"にすべき要素a1,1を先ず指定し、
つづくステップ〔202〕においてこの要素の値が“0"で
あるか否かをチェックする。
て、ステップ〔201〕で行番号LPを列番号Pと等しくす
ることによって“1"にすべき要素a1,1を先ず指定し、
つづくステップ〔202〕においてこの要素の値が“0"で
あるか否かをチェックする。
上例では“0"であるからステップ〔203〕で行番号LP
に1を加えて次の行の要素a2,1を指定し、ステップ〔2
04〕でこの行が実在することが確認できれば、上記ステ
ップ〔202〕に戻ってこの要素の値が“0"であるか否か
をチェックする。上例の場合にはこの要素a2,1の値が1
5であるのでステップ〔206〕の判断に移る。
に1を加えて次の行の要素a2,1を指定し、ステップ〔2
04〕でこの行が実在することが確認できれば、上記ステ
ップ〔202〕に戻ってこの要素の値が“0"であるか否か
をチェックする。上例の場合にはこの要素a2,1の値が1
5であるのでステップ〔206〕の判断に移る。
もし、上記のステップ〔204〕において実在しない行
であることが判断されると、この列には“0"以外の値を
もつ要素が存在しないことになるので、検査した列のす
べての要素が“0"であることを示すフラグAzを“1"にセ
ットするとともに、“1"にすべき要素が“0"であること
を示すフラグzも“1"にセットする。
であることが判断されると、この列には“0"以外の値を
もつ要素が存在しないことになるので、検査した列のす
べての要素が“0"であることを示すフラグAzを“1"にセ
ットするとともに、“1"にすべき要素が“0"であること
を示すフラグzも“1"にセットする。
上述のように、上例では“0"でない要素がa2,1であ
り、LP=2,P=1でLP≠Lであるからステップ〔206〕か
らステップ〔208〕に移り、検査した列の要素に“0"で
ない要素があることを示すために上記フラグAzを“0"に
セットするとともに、本来“1"にすべき要素a1,1が
“0"であることを示すために上記フラグzを“1"にセッ
トする。
り、LP=2,P=1でLP≠Lであるからステップ〔206〕か
らステップ〔208〕に移り、検査した列の要素に“0"で
ない要素があることを示すために上記フラグAzを“0"に
セットするとともに、本来“1"にすべき要素a1,1が
“0"であることを示すために上記フラグzを“1"にセッ
トする。
もし、“1"にすべき要素、すなわち列番号Pと行番号
LPとが等しい要素ap,pが“0"でない場合には、上記ス
テップ〔202〕,〔206〕からステップ〔207〕に移っ
て、“1"にすべき要素が“0"でないことを示すために上
記フラグAzおよびフラグzをいずれも“0"にセットす
る。
LPとが等しい要素ap,pが“0"でない場合には、上記ス
テップ〔202〕,〔206〕からステップ〔207〕に移っ
て、“1"にすべき要素が“0"でないことを示すために上
記フラグAzおよびフラグzをいずれも“0"にセットす
る。
このようにして、フラグAzおよびフラグzがセットさ
れた後に第4図に示すルーチンに戻り、ステップ〔11
7〕において上記フラグAzをチェックするが、上例にお
いては要素a1,1が“0"であり、要素a2,1が“0"でない
ために、フラグAzが“0"、フラグzが“1"にそれぞれセ
ットされていることは上述のとおりであり、したがって
このステップ〔117〕および次のステップ〔118〕からス
テップ〔119〕〜〔124〕に移って行列の列の入換え、上
例では第1列と第2列の入換えを行う。
れた後に第4図に示すルーチンに戻り、ステップ〔11
7〕において上記フラグAzをチェックするが、上例にお
いては要素a1,1が“0"であり、要素a2,1が“0"でない
ために、フラグAzが“0"、フラグzが“1"にそれぞれセ
ットされていることは上述のとおりであり、したがって
このステップ〔117〕および次のステップ〔118〕からス
テップ〔119〕〜〔124〕に移って行列の列の入換え、上
例では第1列と第2列の入換えを行う。
なお、上記のステップ〔117〕では、処理中の列の要
素の値がすべて“0"で上記ステップ〔116〕においてAz
=1にされていればデータワードには誤りがないことを
意味しており、それ以後の列の処理によって誤りが発見
されることもないのですべての処理を終了して第6図の
ステップ〔132〕以降の誤り位置多項式の係数の読出し
を行い、また、ステップ〔118〕でフラグzが1であれ
ば行の入換の必要がないのでからこのルーチンを抜け
て各要素の演算を行う後述の第5図のステップ〔125〕
に移る。
素の値がすべて“0"で上記ステップ〔116〕においてAz
=1にされていればデータワードには誤りがないことを
意味しており、それ以後の列の処理によって誤りが発見
されることもないのですべての処理を終了して第6図の
ステップ〔132〕以降の誤り位置多項式の係数の読出し
を行い、また、ステップ〔118〕でフラグzが1であれ
ば行の入換の必要がないのでからこのルーチンを抜け
て各要素の演算を行う後述の第5図のステップ〔125〕
に移る。
行の入換を行うステップ〔119〕〜〔124〕において
は、ステップ〔119〕において入換えられるべき要素の
データワードを格納しているP行、上例では第1行の全
レジスタからデータワードを読出し、ステップ〔120〕
において一時的に当該列に属する一方のバッファレジス
タR1にこのデータワードを退避させた後、ステップ〔12
1〕において入換えるべき要素のデータワードを格納し
ているLP行の全レジスタからデータワードを読出してス
テップ〔122〕において一時的に当該列に属する他方の
バッファレジスタR2にこのデータワードを退避させ、ス
テップ〔123〕においてP行目のゲートBおよびLP行目
のゲートCを導通させてステップ〔124〕においてレジ
スタ第1行目および第2行目に属する全レジスタにラッ
チ信号を供給することによりこれらレジスタに行を入換
えたデータワードを格納することによって、行の入換え
を終了する。
は、ステップ〔119〕において入換えられるべき要素の
データワードを格納しているP行、上例では第1行の全
レジスタからデータワードを読出し、ステップ〔120〕
において一時的に当該列に属する一方のバッファレジス
タR1にこのデータワードを退避させた後、ステップ〔12
1〕において入換えるべき要素のデータワードを格納し
ているLP行の全レジスタからデータワードを読出してス
テップ〔122〕において一時的に当該列に属する他方の
バッファレジスタR2にこのデータワードを退避させ、ス
テップ〔123〕においてP行目のゲートBおよびLP行目
のゲートCを導通させてステップ〔124〕においてレジ
スタ第1行目および第2行目に属する全レジスタにラッ
チ信号を供給することによりこれらレジスタに行を入換
えたデータワードを格納することによって、行の入換え
を終了する。
この入換えが終了した結果は、(43)式の第1行と第
2行とを入換えた次の(45)式に示すようになる。
2行とを入換えた次の(45)式に示すようになる。
第5図のステップ〔125〕〜〔129〕は、第1列目ない
し第4列目の値がそれぞれ、 になるように列ごとに順次変形を行うルーチンである。
し第4列目の値がそれぞれ、 になるように列ごとに順次変形を行うルーチンである。
いま説明している第1列の処理についていえば、ステ
ップ〔125〕では処理を行う列の初期値として列番号i
=P+1=2としており、したがって上例の第1列を に変形するときの第2列ないし第5列の各要素の値を求
める演算を行う場合を具体的に説明する。
ップ〔125〕では処理を行う列の初期値として列番号i
=P+1=2としており、したがって上例の第1列を に変形するときの第2列ないし第5列の各要素の値を求
める演算を行う場合を具体的に説明する。
ステップ〔126〕では、第1列の“1"にすべき要素に
対応するレジスタa1,1のゲートH、要素a1,2に対応す
るレジスタのゲートI、要素a2,1,a3,1,a4,1に対応す
るレジスタのゲートKおよび要素a2,2,a3,2,a4,2に対
応するレジスタのゲートJを導通させてこれらレジスタ
からの値を、第1図図示の演算回路に相当する第2図の
演算処理部30に供給し、その演算結果をレジスタa1,2
の入力側ゲートE、レジスタa2,2,a3,2,a4,2の入力側
ゲートDを導通させてこれらレジスタに供給し、ステッ
プ〔127〕においてラッチ信号をこれらレジスタに供給
して演算結果を格納させる。
対応するレジスタa1,1のゲートH、要素a1,2に対応す
るレジスタのゲートI、要素a2,1,a3,1,a4,1に対応す
るレジスタのゲートKおよび要素a2,2,a3,2,a4,2に対
応するレジスタのゲートJを導通させてこれらレジスタ
からの値を、第1図図示の演算回路に相当する第2図の
演算処理部30に供給し、その演算結果をレジスタa1,2
の入力側ゲートE、レジスタa2,2,a3,2,a4,2の入力側
ゲートDを導通させてこれらレジスタに供給し、ステッ
プ〔127〕においてラッチ信号をこれらレジスタに供給
して演算結果を格納させる。
この第1列第1行の要素a1,1の値を“1"に、第1列
第2行ないし第4行の要素a2,1,a3,1およびa4,1の値
を“0"にする処理の中で第2列の処理が終了したとき、
すなわちステップ〔127〕が終了したとき、行列記憶部1
0の各レジスタに格納されている値は次の(46)式のよ
うになる。
第2行ないし第4行の要素a2,1,a3,1およびa4,1の値
を“0"にする処理の中で第2列の処理が終了したとき、
すなわちステップ〔127〕が終了したとき、行列記憶部1
0の各レジスタに格納されている値は次の(46)式のよ
うになる。
この処理において注意すべき点は、第1列の各要素a
1,1〜a4,1にそれぞれ対応するレジスタa1,1〜a4,1に
格納されているシンドロームの値は に修正されておらず、従前の値を保持していることにあ
る。
1,1〜a4,1にそれぞれ対応するレジスタa1,1〜a4,1に
格納されているシンドロームの値は に修正されておらず、従前の値を保持していることにあ
る。
これは、第2列の値は第1列の上記の値に変形したと
きの値となっており、誤り位置多項式の係数を求めるた
めには、実質的に第1列ないし第4列を単位行列に変形
したときの第5列の値のみが要求され、既に演算の完了
した列のレジスタに格納されている値は誤り位置多項式
の係数を求めるために使用されないからその値を敢えて
修正する必要がないからである。本発明の実施態様とし
ては、後述するようにこのレジスタに残されている値を
演算の効率化を図るために用いている。
きの値となっており、誤り位置多項式の係数を求めるた
めには、実質的に第1列ないし第4列を単位行列に変形
したときの第5列の値のみが要求され、既に演算の完了
した列のレジスタに格納されている値は誤り位置多項式
の係数を求めるために使用されないからその値を敢えて
修正する必要がないからである。本発明の実施態様とし
ては、後述するようにこのレジスタに残されている値を
演算の効率化を図るために用いている。
次のステップ〔128〕においては、列番号jに1を加
えてj=3として第3列の指定するとともに、ステップ
〔129〕においてこの列が実在することを確認して上記
ステップ〔126〕に戻り、上記同様に第3列の処理を行
い、このステップ〔126〕ないし〔129〕のループを列番
号jが2〜5の合計4回繰返えすことによって第2列な
いし第5列の処理を行う。
えてj=3として第3列の指定するとともに、ステップ
〔129〕においてこの列が実在することを確認して上記
ステップ〔126〕に戻り、上記同様に第3列の処理を行
い、このステップ〔126〕ないし〔129〕のループを列番
号jが2〜5の合計4回繰返えすことによって第2列な
いし第5列の処理を行う。
この、第1列第1行の要素a1,1の値を“1"に、第1
列第2行ないし第4行の要素a2,1,a3,1およびa4,1の
値を“0"にする処理が終了してステップ〔129〕から
にこのループを抜けるとき、行列記憶部10の各レジスタ
に格納されている値は次の(47)式のようになる。
列第2行ないし第4行の要素a2,1,a3,1およびa4,1の
値を“0"にする処理が終了してステップ〔129〕から
にこのループを抜けるとき、行列記憶部10の各レジスタ
に格納されている値は次の(47)式のようになる。
次いで第6図のフローチャートに移り、からステッ
プ〔130〕において変形の基準とする列を第1列から次
の第2列にするように処理すべき列番号Pに1を加えて
“2"とし、この第2列を に変形する処理を行うようにする。
プ〔130〕において変形の基準とする列を第1列から次
の第2列にするように処理すべき列番号Pに1を加えて
“2"とし、この第2列を に変形する処理を行うようにする。
ステップ〔131〕においては、上記のように指定され
た列が誤り訂正可能な数t以下、すなわち単位行列を生
成すべき列である第4列以内であることを確認するが、
ここで処理する基準の列は第2列であるからから前記
第4図のステップ〔115〕に戻る。
た列が誤り訂正可能な数t以下、すなわち単位行列を生
成すべき列である第4列以内であることを確認するが、
ここで処理する基準の列は第2列であるからから前記
第4図のステップ〔115〕に戻る。
このステップ〔115〕からステップ〔129〕までは前述
した処理と同様であるからその詳細な説明は省略し、こ
の第2列の第2行の要素を“1"に、他の第1行、第3行
および第4行を“0"にする処理が終了したステップ〔12
9〕の結果として得られる行列の値を次の(48)式に示
す。
した処理と同様であるからその詳細な説明は省略し、こ
の第2列の第2行の要素を“1"に、他の第1行、第3行
および第4行を“0"にする処理が終了したステップ〔12
9〕の結果として得られる行列の値を次の(48)式に示
す。
このステップ〔129〕に続くステップ〔130〕におい
て、第3列を にする処理を前記同様に行い、その結果得られる各要素
の値を次の(49)式に示す。
て、第3列を にする処理を前記同様に行い、その結果得られる各要素
の値を次の(49)式に示す。
同様に、第4列を にする処理を前記同様に行い、その結果得られる各要素
の値を次の(50)式に示す。
の値を次の(50)式に示す。
これによって、誤り位置多項式の係数σ0,σ1,σ2お
よびσ3の値はそれぞれ64,120,54および15であること
が求められる。
よびσ3の値はそれぞれ64,120,54および15であること
が求められる。
なお、上記(48)〜(50)式においても、第1列を に変形する際に述べたように、各レジスタの数値が書換
えられていないが、実際の演算の結果としては、 になっている。
えられていないが、実際の演算の結果としては、 になっている。
次に、誤りの数が少ないときに高速で処理が可能な本
発明の第2の動作例を説明する。
発明の第2の動作例を説明する。
いま仮に、1ワードの誤りが発生して、シンドローム
S0〜S7がそれぞれ1,2,4,8,16,32,64,128になったとする
と、前記(42)式に相当する下記(52)式は次の(53)
式のようになる。
S0〜S7がそれぞれ1,2,4,8,16,32,64,128になったとする
と、前記(42)式に相当する下記(52)式は次の(53)
式のようになる。
上記に説明した動作列においては、この(53)式を前
述した手順によって次の(54)式のように変形して、そ
の結果によって誤りの数が1つであることを求めてい
た。
述した手順によって次の(54)式のように変形して、そ
の結果によって誤りの数が1つであることを求めてい
た。
この誤りの数は、第2列の第2行、第3行および第4
行がいずれも“0"であることによって判断されるので、
誤りの数を知るには第3列ないし第5列の値は必要では
ない。
行がいずれも“0"であることによって判断されるので、
誤りの数を知るには第3列ないし第5列の値は必要では
ない。
したがって、第2列目の変形が終了した時点で第2列
の第2行ないし第4行の値がすべて“0"であることが判
断されればそれ以降の演算を行う必要はなく、ここで演
算を終了させて演算の回数を減少させることができる。
の第2行ないし第4行の値がすべて“0"であることが判
断されればそれ以降の演算を行う必要はなく、ここで演
算を終了させて演算の回数を減少させることができる。
第8図〜第10図はこのような処理を行う動作例のフロ
ーチャートで、前述の動作例のフローチャートの第4図
および第5図に相当する部分についてのフローチャート
であり、第3図に示したシンドロームなどの格納および
第6図に示した処理すべき列の変更と誤り位置多項式の
係数の読出しなどの処理は上述した第1の動作例と同一
であって、この動作例の全フローチャートは第3図、第
8図、第9図、第10図、第6図および“0"検出処理を示
す第7図によって示される。
ーチャートで、前述の動作例のフローチャートの第4図
および第5図に相当する部分についてのフローチャート
であり、第3図に示したシンドロームなどの格納および
第6図に示した処理すべき列の変更と誤り位置多項式の
係数の読出しなどの処理は上述した第1の動作例と同一
であって、この動作例の全フローチャートは第3図、第
8図、第9図、第10図、第6図および“0"検出処理を示
す第7図によって示される。
第3図に示すフローチャートによって行列の各要素は
対応するレジスタに格納されるが、この処理は先に説明
したとおりであるから、説明を省略する。
対応するレジスタに格納されるが、この処理は先に説明
したとおりであるから、説明を省略する。
第8図は行の入換えを行うためのフローチャートで、
前述の動作例の第4図のフローチャートと同一であっ
て、第8図の各ステップ〔301〕〜〔311〕は第4図の各
ステップ〔114〕〜〔124〕にそれぞれ対応しており、第
4図ではステップ〔115〕にから戻っているルーチン
がこの第8図のフローチャートでは存在しないために改
めて図示したものであり、詳細な説明は省略する。
前述の動作例の第4図のフローチャートと同一であっ
て、第8図の各ステップ〔301〕〜〔311〕は第4図の各
ステップ〔114〕〜〔124〕にそれぞれ対応しており、第
4図ではステップ〔115〕にから戻っているルーチン
がこの第8図のフローチャートでは存在しないために改
めて図示したものであり、詳細な説明は省略する。
なお、このからのルーチンは、第9図のステップ
[312]に戻っている。
[312]に戻っている。
第9図のステップ〔312〕ないし〔314〕は第5図のス
テップ〔125〕ないし〔127〕にそれぞれ相当しており、
先に説明したように第1列を基準の列Pとして に変形したときに、誤りが1つであれば第2列の第2行
ないし第4行はすべて“0"になっているが、ステップ
〔315〕においては処理中の列の列番号jが変形の基準
になっている列の次の列、ここでは第2列、か否か、お
よびその列が第5列すなわち誤り位置多項式の係数を示
す列でないことを判断し、この条件を満たせばから第
10図のステップ〔318〕以降の処理に移り、処理を続け
るか否かの判断を行う。
テップ〔125〕ないし〔127〕にそれぞれ相当しており、
先に説明したように第1列を基準の列Pとして に変形したときに、誤りが1つであれば第2列の第2行
ないし第4行はすべて“0"になっているが、ステップ
〔315〕においては処理中の列の列番号jが変形の基準
になっている列の次の列、ここでは第2列、か否か、お
よびその列が第5列すなわち誤り位置多項式の係数を示
す列でないことを判断し、この条件を満たせばから第
10図のステップ〔318〕以降の処理に移り、処理を続け
るか否かの判断を行う。
このステップ〔319〕ないし〔320〕の処理は先に説明
した第4図のステップ〔116〕ないし〔117〕の処理と同
一であるが、ステップ〔318〕で変形の基準になってい
る列P、すなわち第1列、の次の第2列の値について処
理するように変更されている。
した第4図のステップ〔116〕ないし〔117〕の処理と同
一であるが、ステップ〔318〕で変形の基準になってい
る列P、すなわち第1列、の次の第2列の値について処
理するように変更されている。
このステップ〔319〕においては、先に説明した第7
図の“0"検出処理のステップ〔201〕において、行番号L
Pを列番号Pと等しくして要素a2,2の値を調べ、“0"で
あればステップ〔203〕で次の行の要素a3,2を指定して
それが存在するか否かを判断し、この要素が存在するこ
とからステップ〔202〕に戻って上記要素a3,2の値を調
べ、同様に第4列の要素a4,2も調べてこれら要素
a2,2,a3,2およびa4,2がすべて“0"であればフラグAz
およびzをともに“1"にする。
図の“0"検出処理のステップ〔201〕において、行番号L
Pを列番号Pと等しくして要素a2,2の値を調べ、“0"で
あればステップ〔203〕で次の行の要素a3,2を指定して
それが存在するか否かを判断し、この要素が存在するこ
とからステップ〔202〕に戻って上記要素a3,2の値を調
べ、同様に第4列の要素a4,2も調べてこれら要素
a2,2,a3,2およびa4,2がすべて“0"であればフラグAz
およびzをともに“1"にする。
上記のように誤りが1つであれば、このステップ〔31
9〕の次のステップ〔320〕において、このフラグAzをチ
ェックしたときにAzが“1"になっているのでステップ
〔328〕に分岐して列番号Pに1を加えて第2列を指定
し、第6図のステップ〔132〕ないし〔136〕において誤
り位置多項式の係数を読出して処理を終了する。
9〕の次のステップ〔320〕において、このフラグAzをチ
ェックしたときにAzが“1"になっているのでステップ
〔328〕に分岐して列番号Pに1を加えて第2列を指定
し、第6図のステップ〔132〕ないし〔136〕において誤
り位置多項式の係数を読出して処理を終了する。
もし、第2列の要素a2,2,a3,2,a4,2がすべて“0"で
ない場合にはステップ〔320〕からステップ〔321〕で
“1"にすべき要素が“0"でないか否かをフラグzの値で
判断し、入換えが必要であれば以下のステップ〔322〕
ないし〔327〕で行の入換えを行ってから第9図のス
テップ〔316〕に戻り、先に説明した動作例と同様の処
理を行う。
ない場合にはステップ〔320〕からステップ〔321〕で
“1"にすべき要素が“0"でないか否かをフラグzの値で
判断し、入換えが必要であれば以下のステップ〔322〕
ないし〔327〕で行の入換えを行ってから第9図のス
テップ〔316〕に戻り、先に説明した動作例と同様の処
理を行う。
なお、上記ステップ〔322〕ないし〔327〕は、第6図
のステップ〔131〕からを経て戻るステップが第4図
のステップ〔115〕から第9図のステップ〔312〕に変更
されたことによって、第4図のステップ〔119〕ないし
〔124〕に代わって設けられたものである。
のステップ〔131〕からを経て戻るステップが第4図
のステップ〔115〕から第9図のステップ〔312〕に変更
されたことによって、第4図のステップ〔119〕ないし
〔124〕に代わって設けられたものである。
次に、誤りの数が少ないときに上述の動作例における
よりも高速に演算が可能な本発明の第3の動作例につい
て説明する。
よりも高速に演算が可能な本発明の第3の動作例につい
て説明する。
シンドロームS0〜S7をそれぞれ3,10,36,136,42,200,1
99,166とすると、これらシンドロームを上記(53)式に
代入した行列は次の(56)式のようになる。なお、これ
らのシンドロームは誤りを2つ含む場合のものである。
99,166とすると、これらシンドロームを上記(53)式に
代入した行列は次の(56)式のようになる。なお、これ
らのシンドロームは誤りを2つ含む場合のものである。
前述の動作例で説明したように、この行列の第1列を に変形するために第2列だけ変形を行った結果は次の
(57)式のようになる。
(57)式のようになる。
この結果では、第2列の第2〜4行の要素が“0"では
ないので、誤りが1つではないことが判断できるので、
第2列の処理に引き続いて次に第3列の処理を行うと上
記(57)式は次の(58)式のように変形される。
ないので、誤りが1つではないことが判断できるので、
第2列の処理に引き続いて次に第3列の処理を行うと上
記(57)式は次の(58)式のように変形される。
この第3列までの変形が終了すれば、第2列を に変形する処理が可能となるので、第3列の変形を行う
と次の(59)式のようになる。
と次の(59)式のようになる。
この(59)式の第3列の第3行および第4行の値はい
ずれも“0"であるので、第3および第4の誤りはなく、
誤りの数は2つであることを識別できる。
ずれも“0"であるので、第3および第4の誤りはなく、
誤りの数は2つであることを識別できる。
第11図は上記第2の動作例の第9図に相当するフロー
チャートであり、この第3の動作例の全フローチャート
は、第3図、第8図、第11図、第10図、第6図および
“0"検出処理を示す第7図によって開示される。
チャートであり、この第3の動作例の全フローチャート
は、第3図、第8図、第11図、第10図、第6図および
“0"検出処理を示す第7図によって開示される。
第11図においては、上記第2動作例の対応する第9図
のフローチャートにおけるステップ〔312〕が などにすべき列の次の列から終りの列(P+1列)まで
の処理を行うようにステップ[312]で指定していたの
に対し、この第3の動作例では、ステッブ[401]にお
いて処理すべき列としてP+1列を固定し、変形の基準
となる列jを第1列からP列目まで順次指定し変形して
いる点、および第9図のステップ〔317〕におけるルー
プ終了の条件j>t+1をi>Pに変更したステップ
〔406〕を用いている点とにある。
のフローチャートにおけるステップ〔312〕が などにすべき列の次の列から終りの列(P+1列)まで
の処理を行うようにステップ[312]で指定していたの
に対し、この第3の動作例では、ステッブ[401]にお
いて処理すべき列としてP+1列を固定し、変形の基準
となる列jを第1列からP列目まで順次指定し変形して
いる点、および第9図のステップ〔317〕におけるルー
プ終了の条件j>t+1をi>Pに変更したステップ
〔406〕を用いている点とにある。
このステップ〔401〕に入る前の行列は上記(56)式
に示すものであり、ここに(60)式として再掲する。
に示すものであり、ここに(60)式として再掲する。
ステップ〔402〕においては、第1列を にするための第2列の値の変形処理を行い、ステップ
〔403〕の結果として、上記(57)式に相当する次の(6
1)式を得る。
〔403〕の結果として、上記(57)式に相当する次の(6
1)式を得る。
ステップ〔404〕では第7図に示した前記の“0"検出
処理によって、処理が終了すべきか否か、および行の入
換えを要するか否かをチェックして前記のフラグAzおよ
びzをセットする。
処理によって、処理が終了すべきか否か、および行の入
換えを要するか否かをチェックして前記のフラグAzおよ
びzをセットする。
ここでは、第2列の第2行ないし第4行の値が“0"で
はないので処理すべき列番号に1を加えてこの列が存在
することをステップ〔405〕で確認して上記ステップ〔4
02〕に戻る。
はないので処理すべき列番号に1を加えてこの列が存在
することをステップ〔405〕で確認して上記ステップ〔4
02〕に戻る。
にするために、上記同様に変形を行うと上記(59)式に
示した結果が得られ、第3列の第3行および第4行がと
もに“0"であることから誤りが2つであることが判断で
きるので変形を終了する。
示した結果が得られ、第3列の第3行および第4行がと
もに“0"であることから誤りが2つであることが判断で
きるので変形を終了する。
以上の説明はGF(28)上のリードソロモン符号を用い
た4ワード訂正について説明したが、本発明はガロア体
によって制限を受けるものではなく、また、訂正符号と
してb−隣接符号などの他のロングディスタンスコード
を用いた場合、さらには誤り訂正を行う数が何ワードで
あっても適用できることは明らかであろう。
た4ワード訂正について説明したが、本発明はガロア体
によって制限を受けるものではなく、また、訂正符号と
してb−隣接符号などの他のロングディスタンスコード
を用いた場合、さらには誤り訂正を行う数が何ワードで
あっても適用できることは明らかであろう。
本発明によれば、ロングディスタンスモードの復号
で、シンドローム〜誤り位置多項式の各項の係数あるい
は誤りパターンを求めるために、シンドロームの行列の
左基本変形を行うに際して、各行に演算手段を配置する
ことによって、1つの列を単位として各行の要素を並列
的に変形処理を行うとともに、かつ、左基本変形を行う
とき、n列目を変形する際にはn+1列目を先ず変形し
て誤りの数を検出することによって、以降の変形処理を
継続するか否かを判断するようにしたので、演算装置に
過大な負担をかけることもなく、その処理時間を著しく
短縮することができるまた、1つの行を単位として各列
の要素を並列的に処理を行うようにしているので処理時
間をさらに短縮することができる。
で、シンドローム〜誤り位置多項式の各項の係数あるい
は誤りパターンを求めるために、シンドロームの行列の
左基本変形を行うに際して、各行に演算手段を配置する
ことによって、1つの列を単位として各行の要素を並列
的に変形処理を行うとともに、かつ、左基本変形を行う
とき、n列目を変形する際にはn+1列目を先ず変形し
て誤りの数を検出することによって、以降の変形処理を
継続するか否かを判断するようにしたので、演算装置に
過大な負担をかけることもなく、その処理時間を著しく
短縮することができるまた、1つの行を単位として各列
の要素を並列的に処理を行うようにしているので処理時
間をさらに短縮することができる。
【図面の簡単な説明】 第1図は本発明の誤り訂正装置の原理を示す図、 第2図は本発明による誤り訂正装置の実施例、 第3図ないし第11図はそれぞれ処理動作を示すフローチ
ャート、 第12図はモデュロ2の演算テーブルの例、 第13図はガロア体上の乗数表現と10進表現との対応を示
すテーブルの例である。
ャート、 第12図はモデュロ2の演算テーブルの例、 第13図はガロア体上の乗数表現と10進表現との対応を示
すテーブルの例である。
Claims (2)
- 【請求項1】ロングディスタンスコードの復号に際し
て、シンドロームから誤り位置多項式の各項の係数ある
いは誤りパターンを求めるために、P行(P+1)列の
行列の各要素ai,j〔但し、添字のiは行番号,jは列番
号であり、1≦i≦P、1≦j≦P+1〕にデータワー
ドA(i+j-2)〔A0〜A2P-1はシンドロームあるいは誤り信
号〕を設定し、この行列を左基本変形することにより上
記多項式の係数を求めるようにしたロングディスタンス
コードの誤り訂正装置において、 P行(P+1)列の行列の各要素をai,jに対応するデ
ータワードA(i+j-2)をそれぞれ格納するメモリの各行ご
とに演算器と、各列内でデータワードを入れ換えるため
のバッファレジスタとを備え、各列に属するデータワー
ドの処理を並行して行うとともに、かつ、左基本変形を
行うとき、n(但し、1≦n≦P)列目を変形する際に
はn+1列目を先ず変形して誤りの数を検出することに
よって、以降の変形処理を継続するか否かを判断するよ
うにしたことを特徴とするロングディスタンスコードの
誤り訂正装置。 - 【請求項2】左基本変形を行うとき、1列目からn−1
(但し、1≦n≦P)列目に対する変形を順次行い、n
例のn+1行ないしP行の値が“0"である場合に以降の
変形処理を終了するようにしたことを特徴とする特許請
求の範囲第1項記載のロングディスタンスコードの誤り
訂正装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62195240A JP2622383B2 (ja) | 1987-08-06 | 1987-08-06 | ロングディスタンスコードの誤り訂正装置 |
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 |
---|---|---|---|
JP62195240A JP2622383B2 (ja) | 1987-08-06 | 1987-08-06 | ロングディスタンスコードの誤り訂正装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6439832A JPS6439832A (en) | 1989-02-10 |
JP2622383B2 true JP2622383B2 (ja) | 1997-06-18 |
Family
ID=16337819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62195240A Expired - Lifetime JP2622383B2 (ja) | 1987-04-24 | 1987-08-06 | ロングディスタンスコードの誤り訂正装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2622383B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4504948A (en) * | 1982-12-29 | 1985-03-12 | International Business Machines Corporation | Syndrome processing unit for multibyte error correcting systems |
US4494234A (en) * | 1982-12-29 | 1985-01-15 | International Business Machines Corporation | On-the-fly multibyte error correcting system |
-
1987
- 1987-08-06 JP JP62195240A patent/JP2622383B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS6439832A (en) | 1989-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5170399A (en) | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack | |
US5631914A (en) | Error correcting apparatus | |
US6347389B1 (en) | Pipelined high speed reed-solomon error/erasure decoder | |
EP0387924B1 (en) | Method and apparatus for decoding error correction code | |
US7600177B2 (en) | Delta syndrome based iterative Reed-Solomon product code decoder | |
US5157669A (en) | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors | |
US6725416B2 (en) | Forward error correction apparatus and methods | |
US5805617A (en) | Apparatus for computing error correction syndromes | |
US6772385B2 (en) | Error-correcting device and decoder enabling fast error correction with reduced circuit scale | |
EP0836285B1 (en) | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits | |
JP4733403B2 (ja) | 復号器、データ記憶装置およびデータの誤り訂正の方法 | |
US20060168495A1 (en) | Computation of cyclic redundancy check | |
JP3502583B2 (ja) | 誤り訂正方法および誤り訂正装置 | |
US20080140740A1 (en) | Systems and methods for processing data sets in parallel | |
EP0991196B1 (en) | Method of correcting lost data and circuit thereof | |
JP2662472B2 (ja) | 誤り訂正処理用シンドローム演算回路 | |
JP2622383B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JP2718481B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JP2553565B2 (ja) | ガロア体演算装置 | |
JPH07226687A (ja) | 誤り訂正処理装置 | |
JP2907138B2 (ja) | 誤り訂正の演算処理方法及び処理回路 | |
JP2718478B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JP3223513B2 (ja) | 誤り訂正復号装置 | |
RU2115231C1 (ru) | Устройство кодирования-декодирования информации | |
JPH11282703A (ja) | 誤り訂正装置及び誤り訂正方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080404 Year of fee payment: 11 |