(57)【特許請求の範囲】
【請求項１】
長さｂビットまでのバースト誤りを訂正する線形符号のパリティ検査行列（ｒ行ｎ列）Ｈにおいて、長さｎビットを有する受信情報Ｄに対し誤りパターンＥ（ｎビットの行ベクトル）が重畳したとき、誤りが受信情報のｉビットから始まる長さｂビット以下のバースト誤りであるとき、誤りパターンＥにおいてそのｉビットから始まる当該バースト誤りを含む長さｗビット（ｗは  ｂ≦ｗ≦２ｂ＜ｒ  を満足する整数）の誤り行ベクトルｅを定義し、対応して行列Ｈにおいてｉ列目から長さｗの列数を有するｒ行ｗ列の部分行列Ｈｉとから、シンドロームＳ（ｒビットの列ベクトル）は
Ｓ＝Ｈｉ・ｅＴ
で表わされるとき（Ｔは行、列の転置を表す）、Ｈｉに付加してｒ行ｒ列の正則行列Ａｉとなるようにｒ行（ｒ−ｗ）列の行列Ｂｉを定義し、
Ａｉ＝［Ｈｉ｜Ｂｉ］の逆行列Ａｉ−１を
【数１】
0003565798.tif 000012
とするとき、ｗ行ｒ列の行列Ｈｉ＊、（ｒ−ｗ）行ｒ列の行列Ｂｉ＊は
Ａｉ−１・Ａｉ＝Ｉ（Ｉはｒ行ｒ列の単位行列）の関係を満足し、これから誤りベクトルｅは  Ｂｉ＊・Ｓ＝０ｒ−ｗ  の関係（０ｒ−ｗ  は（ｒ−ｗ）ビットの零列ベクトル）を満足する条件のもとで
ｅＴ＝Ｈｉ＊・Ｓ
より求められ、これにより長さｂビットまでのバースト誤りパターンを生成することができるバースト誤りパターン生成方法。
【請求項２】
長さｂビットまでのバースト誤りを検出・訂正するバースト誤り検出・訂正装置であって、長さｎビットを有する受信情報Ｄとｒ行ｎ列のパリティ検査行列Ｈに対し  Ｈ・ＤＴによりシンドロームＳを生成するシンドローム生成回路と、パリティ検査行列Ｈにおける任意のｉ列目から始まる長さｗ列（ｗは  ｂ≦ｗ≦２ｂ＜ｒ  を満足する整数）を有するｒ行ｗ列の部分行列Ｈｉに付加してｒ行ｒ列の正則行列Ａｉになるようにｒ行（ｒ−ｗ）列の行列Ｂｉを求め、
Ａｉ＝［Ｈｉ｜Ｂｉ］の逆行列Ａｉ−１を
【数２】
0003565798.tif 000013
とし、受信情報中に長さｗビットの情報枠をとり、しかも枠の両端でそれぞれ長さｂ−１ビットの重なりを有するようにさらに隣接して長さｗビットの枠を構成していくとき、これにより任意の位置に生じた長さｂビットの誤りは少なくとも１個の枠に完全に含ませることができ、ｉビット目から始まるある任意の枠に対し行列Ｈにおいてｉ列目から始まる長さｗ列を有するｒ行ｗ列の部分行列Ｈｉを対応させ、逆行列Ａｉ−１中のｗ行ｒ列の行列Ｈｉ＊、（ｒ−ｗ）行ｒ列の行列Ｂｉ＊、およびシンドロームＳを用いてＢｉ＊・Ｓ＝０ｒ−ｗ  の条件のもとでｅＴ＝Ｈｉ＊・Ｓの関係を満足する誤りパターンを生成する回路をすべての枠の数だけ並列に設け、これらの回路からの出力に対してその重なりを調整し受信情報の長さｎビットに対応して長さｎビットの出力を有する誤りパターン算出回路と、この回路の出力と受信情報との排他的論理和をとり誤りビットを反転する反転回路とからなることを特徴とするバースト誤り検出・訂正装置。
【請求項３】
ｂビットまでのバースト誤りを訂正し、しかもｂビットを越えるｄビットまでのバースト誤りを検出できる符号に対して、前記枠の大きさｗをｂ≦ｗ≦ｂ＋ｄ＜ｒ  を満足する整数値にとり、枠同士の重なりはｂ−１として前記誤りパターン生成回路を構成することによりｂビットまでのバースト誤りを訂正し、さらにシンドロームが非零でかつ誤りパターン算出回路からの出力がすべて零であるとき「１」を出力する回路を新たに設けることによりｄビットまでのバースト誤りを検出し、これからｂビットまでのバースト誤りを訂正しｄビットまでのバースト誤りを検出することを特徴とする請求項２記載のバースト誤り検出・訂正装置。
【請求項４】
正則行列Ａｉ＝［Ｈｉ｜Ｂｉ］に対し、その逆行列Ａｉ−１を構成する「０」、「１」の２元要素で表したｗ行ｒ列の行列Ｈｉ＊および（ｒ−ｗ）行ｒ列の行列Ｂｉ＊において、Ｈｉ＊、Ｂｉ＊中の「１」の数を少なくすることにより、誤りパターン生成回路の回路量を小さくできることを特徴とする請求項２または請求項３記載のバースト誤り検出・訂正装置。
【請求項５】
ｂビットまでのバースト誤りを訂正する機能を有する符号に対し、受信情報における枠の大きさｗを２ｂに設定することにより、復号および符号化のための回路量を小さくできることを特徴とする請求項２又は請求項３記載のバースト誤り検出・訂正装置。
【請求項６】
ｂビットまでのバースト誤りを訂正し、ｂビットより大きいｄビットまでのバースト誤りを検出する符号に対し、受信情報及びパリティ検査行列Ｈにおける枠の大きさｗをｂ＋ｄに設定することにより復号及び符号化のための回路量を小さくすることを特徴とする請求項２又は請求項３記載のバースト誤り検出・訂正装置。
【請求項７】
請求項２又は請求項４に記載のバースト誤り検出・訂正装置において、１バイトをｂビットとするとき、１バイト誤りを訂正する線形符号に対し、前記枠の大きさｗをｂにとり（ｗ＝ｂ）しかも前記枠の重なりを零として１バイト誤りを訂正できることを特徴とするバイト誤り検出・訂正装置。
【請求項８】
１バイトをｂビットとするとき、１バイト誤りを訂正しｂビットを越える大きさの誤りを検出する線形符号に対し、前記枠の大きさｗをｂにとり、前記枠の重なりを零として、シンドロームが非零でかつ誤りパターン算出回路からの出力がすべて零であるとき「１」を出力する回路を新たに設けることによりｂビットを越える誤りを検出し、これから１バイトの誤りを訂正しかつｂビットを越える誤りを検出できることを特徴とする請求項７記載のバイト誤り検出・訂正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、受信情報中に存在するバースト誤りのパターン生成方法及びバースト誤り又はこの特殊形であるバイト誤りの検出・訂正装置に関するものである。
【０００２】
【従来の技術】
連続記録面を有する記録媒体、例えば磁気記録媒体、光記録媒体、等における受信情報中には、ランダム誤りだけでなく、一般にバースト誤りが生じることが多い。また、ノイズ等の影響の受けやすい環境下における情報通信伝送においても同様にバースト誤りが生じることが多い。さらに、深宇宙からの信号受信、また衛星との信号の交信、等においてもバースト誤りの生ずる可能性は高い。
【０００３】
一方、従来の磁気ディスク、光ディスク、また通信においては、ビット単位に情報の送受信を行うことが多い。このような場合、ビット単位に逐次受信していけばよく、従って受信情報中に生じた誤りの訂正・検出処理も一般に逐次的に処理すればよい。このような観点から、バースト誤りに対してもその訂正・検出処理、すなわち復号には、符号生成多項式により規定されるリニアフィードバックシフトレジスタ（ＬＦＳＲ）を使用した逐次処理が従来より行われている。
【０００４】
バースト誤りを制御する符号としてはファイア符号が存在し、これは次に示す生成多項式により定義される。
【０００５】
ｇ（ｘ）＝（ｘｃ＋１）ｐ（ｘ）
ここで、ｐ（ｘ）はガロア体ＧＦ（２）上のｍ次の既約多項式であり、ｐ（ｘ）の周期をｆとするとき、ｆはｃで割り切れないこと、また  ｃ≧２ｂ−１、
ｍ≧ｂ  の条件の下で、長さｂまでのバースト誤りを訂正できる。このとき、符号長ｎは  ｎ＝ＬＣＭ（ｆ，ｃ）、検査長ｒは、  ｒ＝ｃ＋ｍ  となる。ここで、ＬＣＭ（ｆ，ｃ）はｆとｃの最小公倍数を表わす。この符号およびその復号回路は、例えば、今井秀樹  著「符号理論」コロナ社（平成２年３月刊）の２１２頁から２１９頁に述べられており、特に復号回路は、ｐ（ｘ）とｘｃ＋１で規定されるＬＦＳＲを用いてクロックに同期して、ビット単位に誤りを逐次訂正する。
【０００６】
一方、ランダム１ビット、２ビットの誤りを並列に訂正・検出する手法は既に存在する。すなわち、高速半導体メモリシステムにおいては、１６ビットから百ビット程度の並列に読み出した情報に対し、このうちに含まれる１ビット、２ビット、等のランダムな誤り、また塊のバイト誤りを並列に訂正・検出する手法は既に知られており一般によく使用されている。この場合、具体的には組合せ回路を使用して復号回路を構成しており、ＬＦＳＲ回路を使用して復号することはない。これらについては、Ｔ．Ｒ．Ｎ．Ｒａｏ，Ｅ．Ｆｕｊｉｗａｒａ  “Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ”Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ，１９８９の第４章と第５章に詳述されている。
【０００７】
また、バースト誤り訂正・検出の機能を有する符号を直接使用しないでバースト誤りを処理する手法は存在する。すなわち、ｎビットの長さを有する情報に対しｂビットの長さのバースト誤りを訂正する場合、度数ｂのインターリーブを施こす手法を適用することにより、ｎ／ｂの長さの情報に対し１ビットの誤りを訂正する機能をｂ個用意することにより可能となる。インターリーブの手法（”交錯法”とも言われる）については、前記の今井秀樹著「符号理論」コロナ社刊の２２０頁に述べられている。このとき、並列に復号できる１ビット誤り訂正回路を並列にｂ個用意すればｂビットのバースト誤りを並列に訂正する回路は実現できる。しかし、バースト長が数十ビット等大きくなる場合、必要とする検査ビット数が極端に多くなり、しかも回路量も大きくなることから、実用的な観点よりこの手法は適用不可能である。
【０００８】
【発明が解決しようとする課題】
３次元の画像を記録する媒体として超大容量のホログラフィックメモリがある。例えばこのようなメモリにおいては、レーザー光をホログラフィ面に照射することで２次元の画像だけでなく３次元像も復元できる。ホログラフィックメモリには光の強弱、位相の情報が記録されており、これにレーザー光を照射して読み出し、これを一旦例えば面状のＣＣＤメモリに蓄える。このとき縦と横に同時にそれぞれ一次元に情報をシフトして読み出す。この場合、それぞれ数百ビットから数万ビットの情報を並列に一度に読み出すという動作を繰り返すことでＣＣＤ面に記録した情報を読み出し元の画像を復元する。このようなメモリにおいては記録する面が２次元であるため、ホログラフィ面の製造欠陥、歪、傷、またホログラフィックメモリより読み出した情報間の干渉、等は一般に２次元に広がった面状の障害である。これらの２次元に広がった障害はＣＣＤにおいても２次元の誤りとして記録され、ＣＣＤから縦、横にそれぞれ一次元に並列に情報を読み出した場合、それぞれにおいてバースト誤りを含む情報となる。これを次々並列に読み出す動作を繰り返すことになるため、従って、一度に数百ビットから数万ビットを読み出した情報中に存在するバースト誤りを高速に訂正および検出しなければならず、並列に復号を行わなければならないことは自明である。
【０００９】
特にバースト誤りに対しては、これまで特に並列に復号する必要性が必ずしもなかったため、ファイア符号のようなバースト誤り訂正・検出符号を使用して多数ビットの並列受信情報を並列に復号する手法は存在せず、並列復号できない問題点を有している。
【００１０】
そこで本発明は、バースト誤りパターン生成方法及びバースト誤りさらには、その特殊形であるバイト誤りを並列に検出し、訂正するバーストおよびバイト誤り検出・訂正装置を提供するものである。
【００１１】
【課題を解決するための手段】
前記課題を解決するために、本願請求項１に係わる発明は、長さｂビットまでのバースト誤りを訂正する線形符号のパリティ検査行列（ｒ行ｎ列）Ｈにおいて、長さｎビットを有する受信情報Ｄに対し誤りパターンＥ（ｎビットの行ベクトル）が重畳したとき、誤りが受信情報のｉビットから始まる長さｂビット以下のバースト誤りであるとき、誤りパターンＥにおいてそのｉビットから始まる当該バースト誤りを含む長さｗビット（ｗは  ｂ≦ｗ≦２ｂ＜ｒ  を満足する整数）の誤り行ベクトルｅを定義し、対応して行列Ｈにおいてｉ列目から長さｗの列数を有するｒ行ｗ列の部分行列Ｈｉとから、シンドロームＳ（ｒビットの列ベクトル）は
Ｓ＝Ｈｉ・ｅＴ
で表わされるとき（Ｔは行、列の転置を表す）、Ｈｉに付加してｒ行ｒ列の正則行列Ａｉとなるようにｒ行（ｒ−ｗ）列の行列Ｂｉを定義し、
Ａｉ＝［Ｈｉ｜Ｂｉ］の逆行列Ａｉ−１を
【００１２】
【数３】
0003565798.tif 000002
【００１３】
とするとき、ｗ行ｒ列の行列Ｈｉ＊、（ｒ−ｗ）行ｒ列の行列Ｂｉ＊は
Ａｉ−１・Ａｉ＝Ｉ（Ｉはｒ行ｒ列の単位行列）の関係を満足し、これから誤りベクトルｅは  Ｂｉ＊・Ｓ＝０ｒ−ｗ  の関係（０ｒ−ｗ  は（ｒ−ｗ）ビットの零列ベクトル）を満足する条件のもとで
ｅＴ＝Ｈｉ＊・Ｓ
より求められ、これにより長さｂビットまでのバースト誤りパターンを生成する。
【００１４】
請求項２に係わる発明は、長さｂビットまでのバースト誤りを検出・訂正するバースト誤り検出・訂正装置であって、長さｎビットを有する受信情報Ｄとｒ行ｎ列のパリティ検査行列Ｈに対し  Ｈ・ＤＴによりシンドロームＳを生成するシンドローム生成回路と、パリティ検査行列Ｈにおける任意のｉ列目から始まる長さｗ列（ｗは  ｂ≦ｗ≦２ｂ＜ｒ  を満足する整数）を有するｒ行ｗ列の部分行列Ｈｉに付加してｒ行ｒ列の正則行列Ａｉになるようにｒ行（ｒ−ｗ）列の行列Ｂｉを求め、Ａｉ＝［Ｈｉ｜Ｂｉ］の逆行列Ａｉ−１を
【００１５】
【数４】
0003565798.tif 000003
【００１６】
とし、受信情報中に長さｗビットの情報枠をとり、しかも枠の両端でそれぞれ長さｂ−１ビットの重なりを有するようにさらに隣接して長さｗビットの枠を構成していくとき、これにより任意の位置に生じた長さｂビットの誤りは少なくとも１個の枠に完全に含ませることができ、ｉビット目から始まるある任意の枠に対し行列Ｈにおいてｉ列目から始まる長さｗ列を有するｒ行ｗ列の部分行列Ｈｉを対応させ、逆行列Ａｉ−１中のｗ行ｒ列の行列Ｈｉ＊、（ｒ−ｗ）行ｒ列の行列Ｂｉ＊、およびシンドロームＳを用いてＢｉ＊・Ｓ＝０ｒ−ｗ  の条件のもとでｅＴ＝Ｈｉ＊・Ｓの関係を満足する誤りパターンを生成する回路をすべての枠の数だけ並列に設け、これらの回路からの出力に対してその重なりを調整し受信情報の長さｎビットに対応して長さｎビットの出力を有する誤りパターン算出回路と、この回路の出力と受信情報との排他的論理和をとり誤りビットを反転する反転回路とで構成される。
【００１７】
請求項３に係わる発明は、ｂビットまでのバースト誤りを訂正し、しかもｂビットを越えるｄビットまでのバースト誤りを検出できる符号に対して、前記枠の大きさｗをｂ≦ｗ≦ｂ＋ｄ＜ｒ  を満足する整数値にとり、枠同士の重なりはｂ−１として前記誤りパターン生成回路を構成することによりｂビットまでのバースト誤りを訂正し、さらにシンドロームが非零でかつ誤りパターン算出回路からの出力がすべて零であるとき「１」を出力する回路を新たに設けることによりｄビットまでのバースト誤りを検出し、これからｂビットまでのバースト誤りを訂正しｄビットまでのバースト誤りを検出するようにした。
【００１８】
請求項４に係わる発明は、前記正則行列Ａｉ＝［Ｈｉ｜Ｂｉ］に対し、その逆行列Ａｉ−１を構成する「０」、「１」の２元要素で表したｗ行ｒ列の行列Ｈｉ＊および（ｒ−ｗ）行ｒ列の行列Ｂｉ＊において、Ｈｉ＊、Ｂｉ＊中の「１」の数を少なくすることにより、誤りパターン生成回路の回路量を小さくする。
【００１９】
請求項５に係わる発明は、さらに、ｂビットまでのバースト誤りを訂正する機能を有する符号に対し、受信情報における枠の大きさｗを２ｂに設定することにより、復号および符号化のための回路量を小さくする。
【００２０】
請求項６に係わる発明は、さらに、ｂビットまでのバースト誤りを訂正し、ｂビットより大きいｄビットまでのバースト誤りを検出する符号に対し、受信情報及びパリティ検査行列Ｈにおける枠の大きさｗをｂ＋ｄに設定することにより復号及び符号化のための回路量を小さくする。
【００２１】
請求項７に係わる発明は、請求項２又は請求項４に記載のバースト誤り検出・訂正装置において、１バイトをｂビットとするとき、１バイト誤りを訂正する線形符号に対し、前記枠の大きさｗをｂにとり（ｗ＝ｂ）しかも前記枠の重なりを零として１バイト誤りを訂正できることを特徴とするバイト誤り検出・訂正装置である。
【００２２】
請求項８に係わる発明は、請求項７に記載のバイト誤り検出・訂正装置において、１バイトをｂビットとするとき、１バイト誤りを訂正しｂビットを越える大きさの誤りを検出する線形符号に対し、前記枠の大きさｗをｂにとり、前記枠の重なりを零として、シンドロームが非零でかつ誤りパターン算出回路からの出力がすべて零であるとき「１」を出力する回路を新たに設けることによりｂビットを越える誤りを検出し、これから１バイトの誤りを訂正しかつｂビットを越える誤りを検出できるようにした。
【００２３】
【発明の実施の形態】
長さｂビット以下のバースト誤りが長さｎビットの受信情報中に存在しこれを正しく訂正するためには、このｂビットの誤りパターンを求めるとともに、ｎビットのうちどのビット位置から始まるバースト誤りであるかの情報を求める必要がある。並列に復号するためには、この誤りパターンと誤りが生じる位置の２種の情報を、受信したｎビットの情報（バースト誤り訂正に必要な検査ビットを含む）から組合せ回路を構成し並列に処理して求める必要がある。このため、従来とは全く異なる考えで復号する手法が求められる。
【００２４】
現在、任意の長さのバースト誤りを訂正・検出できる符号としてファイア符号が存在するが、本発明では一般に長さｂビット以下のバースト誤りを訂正・検出する線形符号であれば何でもよい。すなわち、符号をパリティ検査行列で表現できる線形符号であれば、いかなるバースト誤り訂正・検出符号でも本発明で示す手法は適用可能である。
【００２５】
本発明のｂビットまでのバースト誤りを並列に検出・訂正する装置である一実施形態の復号回路ブロック図を図１に示す。ここで回路１はシンドローム生成回路であり、受信情報Ｄに対し符号により規定されるマトリクスを作用させることによりシンドロームＳが生成され、該シンドロームＳはバースト誤りパターン生成回路２に入力される。シンドロームＳはそれぞれ回路２−１から２−ｐまでのｐ個の所定長さｗの情報枠のバースト誤りパターン生成回路に共通に入力される。これらのｐ個のバースト誤りパターン生成回路２−１〜２−ｐは、それぞれ該当する受信情報枠（長さｗビット、ｗはｂ≦ｗ≦２ｂの任意の整数をとれるが、以下ここではｗ＝２ｂとして説明する）中にバースト誤りが存在するか否かを判定し、この情報枠のいずれかにバースト誤りが完全に含まれているとき、その該当するバースト誤りパターン生成回路２−１〜２−ｐから正しいバースト誤りパターンを出力する。回路３は隣接する受信情報枠にこのバースト誤りが重複して存在する場合に対し、全体として矛盾のない誤りパターンを算出する誤りパターン算出回路である。回路４は反転回路であり、パターン算出回路３で生成された誤りパターンの各ビット（誤りビットに対して「１」を出力）に対して入力した受信情報の相当ビットとの排他的論理和をとる回路であり、誤りパターン中誤り指摘のビットが「１」の場合、入力ビットは反転され訂正される。従って、反転回路４は一般に並列に並べたｎ個の２入力排他的論理和回路からなり、これからｎビットの訂正情報Ｄｓが出力される。ただし、検査情報をその後の処理に使用しない場合には、情報部分であるｋ（＝ｎ−ｒ）ビットに対応する排他的論理和回路のみでよい。
【００２６】
受信情報を、一般にｎビットの２進情報で表わしｎ次の行ベクトルＤ＝（ｄ０，ｄ１，．．．，ｄｎ−１）とするとき、この中には符号により決定されるｒビットの検査情報を含む。一般に、符号は０、１の２進数で表わしたｒ行ｎ列のパリティ検査行列Ｈ（以下、Ｈマトリクスという）で表現される。ここで、バースト誤りを訂正する符号が、このｒ行ｎ列のＨマトリクスで表現できたとする。このとき、誤りを含まない受信情報Ｄに対しては次の関係が成立する。すなわち、受信情報Ｄとして予め次の関係が成立するようにその検査情報が決められている。
【００２７】
Ｈ・ＤＴ＝０ｒ                  （１）
ここで、ＤＴは行ベクトルを列ベクトルに転置（Ｔは行、列の転置を示す）したものである。このとき、受信情報Ｄ中にバースト誤りが生起した場合、上記（１）式の右辺は０ｒ（ｒビットからなる零ベクトル）ではなくなる。この結果はシンドロームＳと呼ばれ、ｒビットからなる列ベクトルで表現される。すなわち、Ｓ＝０ｒであれば誤りなしと判定し、Ｓ≠０ｒであれば誤りを検出し、そのシンドロームＳのパターンに基づき解析してバースト誤りパターンと始まる位置を求め訂正する。図１中のシンドローム生成回路１は（１）式の左辺を計算する回路であり、ｒ個のパリティ検査回路で構成される。その出力はｒビットのシンドロームＳとなる。
【００２８】
次に、ｂビット以下のバースト誤りを訂正するｒ行ｎ列のＨマトリクスに対し、図２に示すようにこの内の任意の位置（例えばｉビット目）から始まる長さ２ｂビットのｒ行２ｂ列の部分行列をＨｉとする。ただし、２ｂ≦ｒである。この部分行列はランクｒを有し、２ｂ個の列ベクトルは線形独立である。すなわち、２ｂ個の列ベクトルの線形和は常に非零である。また、ｒ行（ｒ−２ｂ）列の部分行列をＢｉとし、これをＨｉに隣接させ新たにｒ行ｒ列の正方行列Ａｉ＝［Ｈｉ｜Ｂｉ］を作成する。このとき、ＢｉはＡｉが正則行列となるように構成する。正則行列とはその行列式の値が零にならない行列として定義されている。従って、正則行列にはその逆行列が必ず存在し、一意に決定される。すなわち、
Ａｉ−１・Ａｉ＝Ｉ
であり、Ｉはｒ行ｒ列の単位行列である。従って、Ａｉ−１は、
【００２９】
【数５】
0003565798.tif 000004
【００３０】
で表され、Ｈｉ＊は２ｂ行ｒ列の行列、Ｂｉ＊は（ｒ−２ｂ）行ｒ列の行列である。このとき、以下の関係が成立する。
【００３１】
【数６】
0003565798.tif 000005
【００３２】
ここで、Ｉ２ｂ、Ｉｒ−２ｂ、０２ｂ、０ｒ−２ｂは、それぞれ、２ｂ行２ｂ列、（ｒ−２ｂ）行（ｒ−２ｂ）列の単位行列、２ｂ行２ｂ列、（ｒ−２ｂ）行（ｒ−２ｂ）列の零行列である。一方、ＢｉはＨｉに対し一意に決まらないが、復号回路の回路量を考慮したときＢｉ＊、Ｈｉ＊中の「１」の数が少なくなるように選ぶことが好ましい。
【００３３】
誤りの存在しないｎビットの情報ＤＯに、このｉビット目から始まる長さ２ｂビットの枠にｂビットのバースト誤りが重畳した場合（このときのｎビットの誤りパターン行ベクトルをＥとする）、受信情報Ｄは  Ｄ＝ＤＯ＋Ｅと表わせる。このとき、ｒビットの列ベクトルであるシンドロームＳは
Ｓ＝Ｈ・ＤＴ
＝Ｈ・ＤＯＴ＋Ｈ・ＥＴ
＝Ｈ・ＥＴ                              （３）
と表わせる。すなわち、誤りのない情報ＤＯに対してはＨ・ＤＯＴ＝０ｒとなり、従って、シンドロームＳはＨ・ＥＴに等しくなる。このとき、誤りパターンＥは、その内でｉビット目から始まるバースト誤りｅを含み、
【００３４】
【数７】
0003565798.tif 000006
【００３５】
のように表すことができる。ここで、ｅは次数２ｂの２元行ベクトルである。従って、（３）式は次のように変形でき、これから（２）式の関係を用いてｅが求められる。
【００３６】
Ｓ＝Ｈ・ＥＴ
＝Ｈｉ・ｅＴ
Ｈｉ＊・Ｓ＝Ｈｉ＊・（Ｈｉ・ｅＴ）＝ｅＴ        （４）
Ｂｉ＊・Ｓ＝Ｂｉ＊・（Ｈｉ・ｅＴ）＝０ｒ−２ｂ    （５）
ここで、（５）式の０ｒ−２ｂは（ｒ−２ｂ）次の零列ベクトルである。すなわち、（５）式よりＢｉ＊・Ｓが零ベクトルであるときに、（４）式に示すＨｉ＊・Ｓの関係よりｅが求められる。非零のシンドロームＳに対し、Ｂｉ＊・Ｓが零でないときは、訂正能力以上の誤りが生じた場合であり、（４）式より正しくｅを求めることはできない。
以上より、（４）式および（５）式を用いて２ｂビット中の最大ｂビットまでのバースト誤りパターンを求めることができる。
【００３７】
次に、このバースト誤りが始まる位置を求める手法を説明する。上記ではｉビット目から始まる誤りと仮定して述べてきたが、位置を求める方法を示す必要がある。まず、受信情報を図３に示すように２ｂの長さを有するある情報枠を考え、これを互いに（ｂ−１）の長さだけ重なるようにさらに左右に同じ長さを有する枠をとっていく。始めと終わりの枠（終わりの枠は長さ２ｂ以下となることがある）を除けば、長さ２ｂに対し左右の枠とで（ｂ−１）の長さずつ重ね合わせることになり、枠内で重ならないのは真ん中の２ビットである。このようにすると、任意の位置に生じたｂビットのバースト誤りは、少なくともいずれか１個の枠に完全に含まれることになる。ｂビットより短いバースト誤りであれば、隣接する２個の枠に完全に含まれる場合がある。しかし、ｂビットのバースト誤りは唯一１個の枠には完全に包含されるが、さらに隣接する枠にも完全に含まれるということは決してない。このとき、このバースト誤りの一部を含む隣接する１個の粋が存在する。また、ｂ＋１ビット以上のバースト誤りに対してはこれを完全に包含する枠は存在せず、２個の隣接する枠にそれぞれその一部が含まれることになる。
【００３８】
次に、上記で述べた枠の幅２ｂを前に述べたＨマトリクスの部分行列の列幅２ｂに対応させる。つまり、前記のＨｉをｉビット目から始まる長さ２ｂを有するある情報枠に対応させ、またそれぞれ長さｂ−１の重なりを有する左右の枠に対しては、同様に２ｂの列数を有する部分行列Ｈｉ−ｂ−１、Ｈｉ＋ｂ＋１を対応させる。このように受信情報中の長さ２ｂを有するある情報枠に対し、左右でそれぞれ長さｂ−１の重なりを有するさらに２個の情報枠（同様に長さ２ｂを有する）を考え、このような重なりを有する枠を始めと終わりの枠を除いて（始めと終わりの枠に関しては重なる枠はそれぞれ１個である）同じようにとっていくとき、長さ２ｂの受信情報枠をこの枠に対応するｒ行２ｂ列の部分行列に１対１に対応させて、復号を実行する。すなわち、図１に示すようにまず長さｎの受信情報Ｄより、Ｈ・ＤＴを計算してシンドロームＳを得、その後各情報枠対応に、それぞれ上記（４）式、（５）式を計算する。枠の数だけ並列に上記２式をそれぞれ計算する回路を設け、ｂビットのバースト誤りを完全に包含する受信枠に対してのみ誤りパターンｅが正しく出力され、誤りの一部を含む枠からは誤りパターンとして零ベクトルを出力させる。（４）式および（５）式をそれぞれ計算する枠の数ｐは一般に次式により求められる。
【００３９】
Ｐ＝「（ｎ−２ｂ）／（ｂ＋１）」＋１
ここで、「（ｎ−２ｂ）／（ｂ＋１）」は（ｎ−２ｂ）／（ｂ＋１）を越える最小の整数を表わす。すなわち、（４）式および（５）式を計算するｐ個の組合せ回路（図１中の２−１から２−ｐまでの回路）を並列に設け、バースト誤りを完全に包含する枠に対応する回路からのみ正しい誤りパターンを出力する。ｂビットより小さいバースト誤りに対しては隣接する枠に完全に包含される場合もあることから、両方の枠に相当する両枠内バースト誤りパターン生成回路から誤りパターン算出回路３にて調整され正しい誤りパターンが出力される。
【００４０】
図４は、ｉビット目から始まる長さ２ｂの情報枠に対応して、ｉビット目からｉ＋２ｂ−１ビット目までの内にｂビット以下のバースト誤りが存在すればその誤りパターンを出力する枠内バースト誤り生成回路である。この回路は、（４）式を計算する組合せ回路２−（４）、および（５）式を計算する組合せ回路２−（５）と表示している。また回路２−（４）の出力を用いて誤りが枠に完全に含まれかつｂビット以下のバースト誤りであるとき「１」を出力し、そうでないとき「０」を出力する回路Ｍ、また回路２−（５）の（ｒ−２ｂ）ビットの出力がすべて「０」であるとき「１」を出力するＮＯＲゲートＮ、および２入力ＡＮＤゲートＡ１および２ｂ個の２入力ＡＮＤゲート群Ａ２から構成される。このとき、ＡＮＤゲートＡ１は、（５）式が成立しかつｂビット以下のバースト誤りが枠に完全に包含されるとき「１」を出力する回路である。最終的に、ゲートＡ１の出力が「１」のとき、（４）式で作成された誤りパターンｅ、すなわち回路２−（４）の出力、は正しいバースト誤りパターンとなり、２ｂ個のＡＮＤゲートＡ２の出力がこれに相当する。この出力は図１のｎビットの誤りパターン算出回路３を経て反転回路４に入力され訂正情報を得る。一方、図４中の回路Ｍは、一般にｅｉから始まる２ｂビットの誤りパターンに対し、以下の論理式により構成できる。
【００４１】
【数８】
0003565798.tif 000007
【００４２】
ｅｕ∪ｅｕ＋１∪．．．．∪ｅｖ−１∪ｅｖ
を示す。
【００４３】
誤りパターン算出回路３は、バースト長がｂ−１ビット以下の場合には、ｂ−１ビットの重なりを有する２個の隣接する情報枠のいずれにも完全に含まれることがあるので、各誤りパターン生成回路２−１〜２−ｐからの出力のうち、両端のｂ−１本の出力は、隣接する誤りパターン生成回路からの出力のうち端のｂ−１本の対応する出力とのＯＲ（論理和）をとる。すなわち、重なり合った部分の論理和を取る。
【００４４】
反転回路４は、受信情報Ｄのｎビットに対し、それぞれ誤りパターン算出回路３からのｎビットの対応するビットとの排他的論理和をとる回路である。ｎ個の排他的論理和ゲートを独立に並べて構成されるもので、各排他的論理和ゲートには、受信情報Ｄと誤りパターン算出回路３の対応するビットが夫々入力されるものである。誤りパターン算出回路３から「１」が出力され、受信情報Ｄのそのビットが「１」であれば「０」、「０」であれば「１」と反転して訂正されて出力され、誤りでないビットは誤りパターン算出回路３から「０」が出力されるから、誤りのないビットは、受信情報Ｄがそのまま出力され、これが訂正情報Ｄｓとして出力されることになる。
【００４５】
また、一般にｂビットまでのバースト誤りを訂正し、ｄ（＞ｂ）ビットまでのバースト誤りを検出する符号に対しては、枠の長さｗをｂ≦ｗ≦ｂ＋ｄを満足する任意の整数値にとって構成すればよく、回路は図１に示した回路と基本的に同一である。ただし、ｄビットまでのバースト誤りを検出する回路を追加する必要がある。この誤りは、シンドロームＳが非零でかつ誤りパターンＥ＝０ｎのとき検出でき、この論理を満足する回路を用意すればよい。ここで、Ｅ＝０ｎはｎビットの誤りパターンがすべて「０」であることである。
【００４６】
また、これまでおよび以下の実施例においては、復号処理についてのみ述べているが、符号化の処理は復号の論理が明示されていればこれに準拠して構成できることは自明である。
【００４７】
【実施例】
ここで、簡単な一実施例を用いて具体的に並列にバースト誤りが訂正できることを示す。図５に、（３５、２７）３ビットバースト誤り訂正ファイア符号のＨマトリクスの例を示す。このとき、ｂ＝３、ｎ＝３５、ｒ＝８である。ここで、長さ２ｂ（＝６）を有しｉ＝４ビット目から始まる枠に対応するＨマトリクスの部分行列を図に示すＨｉ（この例の場合ｉ＝４）とする。このＨｉは８行６列の行列である。これに８行２列の行列Ｂｉを付加し、８行８列の正則行列Ａｉを作成する。図５にはこれらの行列も示している。図６はこのＡｉに対する逆行列
Ａｉ−１を示したもので、６行８列の行列Ｈｉ＊および２行８列の行列Ｂｉ＊も示している。
【００４８】
次に、図７はこの例を対象に図４を具体的に構成したものであり、４ビット目から始まる情報枠に対する並列バースト誤り復号回路を示すものである。まず、３ビットまでのバースト誤りパターンとして、以下に示す誤りが生じたと仮定する。
【００４９】
【数９】
0003565798.tif 000008
【００５０】
この例に対する枠は、長さ２ｂ＝６ビットを有する第４ビット目から始まる受信情報枠である。この３ビットバースト誤りに対するシンドロームＳは
Ｓ＝Ｈ・ＥＴ＝（０１００１１１０）
により得られる。次に、Ｈｉ＊・Ｓを計算する回路２−（４）は、
Ｓ＝（Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７）より、
【００５１】
【数１０】
0003565798.tif 000009
【００５２】
の論理で構成できる。
【００５３】
仮定した誤りに対しては、Ｓ０＝０，Ｓ１＝１，Ｓ２＝０，Ｓ３＝０，Ｓ４＝１，Ｓ５＝１，Ｓ６＝１，Ｓ７＝０を代入すると、
Ｈｉ＊・Ｓ＝（１０１０００）Ｔ
が得られる。一方、Ｂｉ＊・Ｓを計算する回路２−（５）は
【００５４】
【数１１】
0003565798.tif 000010
【００５５】
の論理で構成でき、代入して、
Ｂｉ＊・Ｓ＝（００）Ｔ
を得る。また、図８はこの例に対して具体的に構成した回路Ｍを示す。すなわち、この回路は、誤りが４ビット目から始まる長さ６ビットのこの枠に完全に含まれ、かつ長さが４ビット以上のバースト誤りは存在しないことを示す回路であり、このような誤りが存在しないとき「１」を出力する。このための論理は、この枠に対応する誤りパターンｅを
ｅ＝（ｅ４，ｅ５，ｅ６，ｅ７，ｅ８，ｅ９）
とするとき、（６）式に代入して、
【００５６】
【数１２】
0003565798.tif 000011
【００５７】
により得られ、この回路Ｍは図８に示す論理回路となる。なお、図８において、Ｏ１，Ｏ２はＯＲゲート、Ａ３，Ａ４，Ａ５はＡＮＤゲート、Ｎ１はＮＯＲゲートである。つまり、例えば、ｅ４から始まる長さ４以上のバースト誤りは、ｅ４が「１」であり、かつｅ７またはｅ８またはｅ９のいずれかが「１」となる場合である。従って、このようなことが生じない場合、ｅ４から始まるバースト長４以上の誤りは存在しないことになる。ｅ５、ｅ６から始まるバースト誤りも同様にしてその論理が得られる。
【００５８】
これから、前に仮定した３ビットのバースト誤りは４ビット目から始まる情報枠に完全に包含されることから、図７の中でゲートＮの出力は「１」となり、また回路Ｍにおいては長さ４を越えるバースト誤りは存在しないことから、その出力も「１」となる。従って、これら双方の条件が成立していることから、２入力ＡＮＤゲートＡ１の出力は「１」となり、しかも回路２−（４）の出力である誤りパターンは正しい誤りパターンであるため、２入力ＡＮＤゲート群Ａ２の出力はｅ４，ｅ５，ｅ６，ｅ７，ｅ８，ｅ９の６ビットの誤りパターン信号となる。
【００５９】
次に、この例に対する誤りパターン算出回路（図１の回路３）について述べる。ｐ個のバースト誤りパターン生成回路から出力するそれぞれ２ｂビットの誤りパターンを情報枠の重なりに対応して整理を行い、最終的に受信情報のｎビットと１対１に対応するｎビットの誤りパターンを構成する必要がある。特にバースト誤りの長さがｂ−１ビット以下の場合、これはｂ−１ビットの重なりを有する２個の隣接する情報枠のいずれにも完全に含まれることから、図９に示すように枠に対応する誤りパターン生成回路からの出力のうち、両端のｂ−１本の出力は、同様にして、隣接する生成回路からの出力のうち端のｂ−１本の対応する出力とのＯＲ（論理和）をとる必要がある。この例ではｂ＝３であるから、両端２本の出力に対しそれぞれ２入力ＯＲゲート（Ｏ３，Ｏ４、Ｏ５，Ｏ６）に入力する。一方、誤りがｂビット以上の場合、重なる２個の情報枠のうち少なくとも１個はこの誤りを完全には包含しないことから、その枠に相当する生成回路からは誤りパターンはすべて零のパターンが出力され、それぞれの端ｂ−１ビットの出力のＯＲをとることにより正しい誤りパターンが得られる。このようにして誤り算出回路からは、ｎビット（この例では３５ビット）の誤りパターンが出力する。
【００６０】
図１０は、この誤りパターン算出回路３の動作説明図であり、図１０（ａ）は、２つの枠に誤りが完全に包含されている場合、図１０（ｂ）は、一方の枠（ｉ）には、誤りが完全に包含されているが、隣接枠には誤りが完全に包含されていない場合の説明図である。この図９に示すように、重なり合うビットの箇所を論理和することによって、図１０に示すように正しい誤りパターンが出力されることになる。
【００６１】
また、反転回路は図１の説明で述べたように、受信情報Ｄに対し対応する誤りパターンのビットとの排他的論理和をとる回路であり、ｎ個（この例では３５個）の排他的論理和ゲートを独立に並べて構成できる。すなわち誤りのビットには、誤りパターン算出回路３から「１」が出力され、受信情報Ｄのそのビットが「１」であれば「０」、「０」であれば「１」と反転して訂正されて出力され、
誤りでないビットは誤りパターン算出回路３から「０」が出力されるから、誤りのないビットは、受信情報Ｄがそのまま出力され、これが訂正情報Ｄｓとして出力されることになる。
【００６２】
本発明はバースト誤りを対象として規定してきたが、バースト誤りの特殊形であるバイト誤りの訂正・検出にも適用できることは明らかである。ｂビットを１バイトとするとき、本発明を使用して１バイト誤りを訂正できる。しかし、特にＨマトリクスを構成する要素としてガロア体ＧＦ（２ｂ）上の要素を使用しないで構成した場合、通常並列な復号を行う論理を構成することは困難である。例えば、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，Ｖｏｌ．４６，Ｎｏ．１，１９９７の１０５頁から１０９頁に述べられている１バイト誤り訂正・（１バイト＋１ビット）誤り検出の機能を有する符号においては、ＧＦ（２ｂ）上の要素を使用して符号を構成していないことから、１バイトの誤りを並列に訂正し少ない回路量で実現することは困難である。このとき本発明を適用すれば容易に並列復号を行うことができる効果がある。１バイトをｂビットするとき、１バイト誤りを訂正する符号に対しては、上述の枠の大きさは２ｂにする必要はなくｂでよい。これは、バイト誤りは基本的に誤りの始まる位置がｂ単位となっており、誤りを含む枠は互いに重ならないためである。従って、上述のｂ−１の大きさを有する枠の重なりも必要なくなる。これから、付加する行列Ｂｉ＊をうまく選ぶことにより、復号のための回路量を小さくできる効果がある。
【００６３】
【発明の効果】
バースト誤り訂正・検出符号を使用して並列に符号化や復号を行う手法は従来存在しない。本発明は、従来バースト誤り制御符号に用いられてきたＬＦＳＲを使用せず、組合せ回路を使用して並列に符号化や復号を行うことから、高速に符号処理することが要求される用途に対しては非常に大さな効果を発揮できる。また、本発明は、線形符号であればいかなるバースト誤り訂正・検出符号に対しても適用できる効果を有する。
【００６４】
ここで述べた並列復号の手法において、受信情報に対する情報枠の大きさを２ｂとしたが、これはｂビットのバースト誤りを訂正できるためには少なくともそのＨマトリクスの任意の２ｂ列は線形独立でなければならないことから決まるものである。従って、枠の大きさは、２ｂが最大、ｂが最小であり、またその間の大きさをとることもできる。しかし、枠の大きさにかかわらずその両端の枠からの重なりはそれぞれｂ−１の大ささであることは変わらない。これから、枠の大きさを小さくするほど、全体で必要となる枠の個数は多くなり、復号回路がこれに比例して大きくなる。これから、枠の大きさを２ｂにとることは、回路量を小さくする上で効果がある。
【００６５】
バイト誤りの検出・訂正に対しても本発明を適用して容易に並列復号を行うことができ、又、復号のための回路量を小さくできる。
【図面の簡単な説明】
【図１】本発明の一実施形態のバーストおよびバイト誤り検出・訂正装置を構成するバースト誤り並列復号回路のブロック図である。
【図２】符号を表すｒ行ｎ列の符号マトリクスとその内のｉビット目から始まるｒ行２ｂ列の部分行列Ｈｉを示す図である。
【図３】ｎビットの受信情報に対し、２ｂビットの長さを有する情報枠をとり、これらの枠に対応させてＨマトリクスの部分行列をとる様子を示した図である。
【図４】本発明の実施形態における図１中のバースト誤りパターン生成回路２中のある１個の枠内のバースト誤りパターン生成回路のブロック図である。
【図５】本発明の一実施例として、受信情報の長さ３５ビット、そのうち情報部分の長さ２７ビット、検査部の長さ８ビットを有する３ビットバースト誤り訂正ファイア符号のＨマトリクスである。このマトリクス中、４ビット目から始まる長さ６の部分マトリクスをＨｉとしたときのＢｉ、およびこれをＨｉに付加して構成した正則行列Ａｉを示す図である。
【図６】この正則行列Ａｉに対する逆行列Ａｉ−１とその部分行列Ｈｉ＊、Ｂｉ＊を示す図である。
【図７】この部分マトリクスＨｉに対応する（４ビット目から始まる情報枠に対応する）枠のバースト誤りパターン生成回路を示す図である。
【図８】図７中の回路Ｍの詳細回路図である。
【図９】同実施例における誤りパターン算出回路を示す図である。
【図１０】同実施例における誤りが隣接の枠と重なる領域に生じた場合、およびこの領域からはみ出しているが１個の枠には完全に含まれている場合の説明図である。
【符号の説明】
１  シンドローム生成回路
２  ｐ個の回路からなるバースト誤りパターン生成回路
３  誤りパターン算出回路
４  反転回路
２−（４）  （４）式のＨｉ＊・Ｓを計算する回路
２−（５）  （５）式のＢｉ＊・Ｓを計算する回路
Ｎ，Ｎ１  ＮＯＲゲート
Ｍ  ｂビット以下のバースト誤りがある１個の情報枠に完全に包含されていることを示す回路
Ａ１，Ａ３，Ａ４，Ａ５  ＡＮＤゲート、
Ａ２  ２ｂ個のＡＮＤゲート群
Ｏ１〜Ｏ６  ＯＲゲート
【図１】
0003565798.tif 000014
【図２】
0003565798.tif 000015
【図３】
0003565798.tif 000016
【図４】
0003565798.tif 000017
【図５】
0003565798.tif 000018
【図６】
0003565798.tif 000019
【図７】
0003565798.tif 000020
【図８】
0003565798.tif 000021
【図９】
0003565798.tif 000022
【図１０】
0003565798.tif 000023