(57)【特許請求の範囲】
【請求項１】
ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（最小距離ｄ≧３）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号方法において、
ｎR個（[（ｄ−１）／２]≦ｎR≦（ｄ−２））の連続する根に対応する複数のエラー・シンドロームを計算する第１のエラー・シンドローム演算ステップと、
前記複数のエラー・シンドロームがいずれも値「０」であるか否かの第１の判定を行って第１の判定結果を得る第１の判定ステップと、
前記第１の判定ステップで得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、所定の誤り訂正処理を行う誤り訂正処理ステップと、
前記第１の判定結果が真のとき、誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理ステップと
を有することを特徴とするＢＣＨ符号復号方法。
【請求項２】
ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（最小距離ｄ≧４）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号方法において、
少なくとも[（ｄ−１）／２]個の連続する根に対応するｎR個以下（但し、[（ｄ−１）／２]＋１≦ｎR≦（ｄ−２）である）のエラー・シンドロームを計算する第１のエラー・シンドローム演算ステップと、
前記第１のエラー・シンドローム演算ステップで計算された[（ｄ−１）／２]個の前記エラー・シンドロームのみがいずれも値「０」であるかを否かの第１の判定を行って第１の判定結果を得る第１の判定ステップと、
前記第１の判定ステップで得られる第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、前記第１のエラー・シンドローム演算ステップで計算した前記エラー・シンドロームを除く残りのエラー・シンドロームを計算する第２のエラー・シンドローム演算ステップと
前記第１のエラー・シンドローム演算ステップおよび前記第２のエラー・シンドローム演算ステップにより計算した全てのエラー・シンドロームに基づいて所定の誤り訂正処理を行う誤り訂正処理ステップと、
前記第１の判定結果が真のとき、前記[（ｄ−１）／２]個の連続する根を除く（ｎR−[（ｄ−１）／２]）個の根に対応するエラー・シンドロームがいずれも値「０」であるか否かの第２の判定を行って第２の判定結果を得る第２の判定ステップと、
前記第２の判定結果が真のとき、前記ＢＣＨ符号の受信語に誤り無しとみなして誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理ステップと、
前記第２の判定結果が偽のとき、前記ＢＣＨ符号の受信語に対して誤り訂正処理を実行できないことを示す所定の誤り訂正不能処理を行う誤り訂正不能処理ステップと
を有することを特徴とするＢＣＨ符号復号方法。
【請求項３】
請求項２に記載のＢＣＨ符号復号方法において、
前記（ｎR−[（ｄ−１）／２]）個の根は、前記[（ｄ−１）／２]個の連続する根に続いている
ことを特徴とするＢＣＨ符号復号方法。
【請求項４】
請求項３に記載のＢＣＨ符号復号方法において、
前記ｎR は、（[（ｄ−１）／２]＋１）である
ことを特徴とするＢＣＨ符号復号方法。
【請求項５】
請求項１乃至４に記載のＢＣＨ符号復号方法において、
前記ＢＣＨ符号は、その位数ｑが２であり、
前記第１のエラー・シンドローム演算ステップにおいて、根α2i （但し、l ≦２ｉ≦ l＋ｄ−２である）に対応するエラー・シンドロームは、根αi （但し、l ≦ｉ≦ l＋ｄ−２である）に対応するエラー・シンドロームの値の２乗であるので、前記根αiに対応するエラー・シンドロームの値が非零の場合は非零であるとし、前記根αiに対応するエラー・シンドロームの値が零の場合は零であるとして、前記根α2iに対応するエラー・シンドロームに対する計算を省略し、
前記第１の判定ステップにおいて、前記根α2iに対応するエラー・シンドロームは、前記根αiに対応するエラー・シンドロームの値が非零の場合は非零であるとし、前記根αiに対応するエラー・シンドロームの値が零の場合は零であるとして前記判定を省略する
ことを特徴とするＢＣＨ符号復号方法。
【請求項６】
請求項５に記載のＢＣＨ符号復号方法において、
前記冪αl、αl+1、αl+2、……、αl+d-2の前記 l は、１であって、
前記ｎR個の根は、α1、α2、α3、……、αnRである
ことを特徴とするＢＣＨ符号復号方法。
【請求項７】
ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧３）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号装置において、
ｎR個（[（ｄ−１）／２]≦ｎR≦（ｄ−２））の連続する根に対応する複数のエラー・シンドロームを計算する第１のエラー・シンドローム演算回路と、
前記複数のエラー・シンドロームがいずれも値「０」であるか否かの第１の判定を行って第１の判定結果を得る第１の判定回路と、
前記第１の判定回路で得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、所定の誤り訂正処理を行う誤り訂正処理回路と、
前記第１の判定結果が真のとき、誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理回路と
を備えることを特徴とするＢＣＨ符号復号装置。
【請求項８】
ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧４）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号装置において、
少なくとも[（ｄ−１）／２]個の連続する根に対応するｎR個以下（但し、[（ｄ−１）／２]＋１≦ｎR≦（ｄ−２）である）のエラー・シンドロームを計算する第１のエラー・シンドローム演算回路と、
前記第１のエラー・シンドローム演算回路で計算された[（ｄ−１）／２]個の前記エラー・シンドロームのみがいずれも値「０」であるかを否かの第１の判定を行って第１の判定結果を得る第１の判定回路と、
前記第１の判定回路で得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、前記第１のエラー・シンドローム演算回路で計算した前記エラー・シンドロームを除く残りのエラー・シンドロームを計算する第２のエラー・シンドローム演算回路と
前記第１のエラー・シンドローム演算回路および前記第２のエラー・シンドローム演算回路により計算した全てのエラー・シンドロームに基づいて所定の誤り訂正処理を行う誤り訂正処理回路と、
前記第１の判定結果が真のとき、前記[（ｄ−１）／２]個の連続する根を除く（ｎR−[（ｄ−１）／２]）個の根に対応するエラー・シンドロームがいずれも値「０」であるか否かの第２の判定を行って第２の判定結果を得る第２の判定回路と、
前記第２の判定結果が真のとき、前記ＢＣＨ符号の受信語に誤り無しとみなして誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理回路と、
前記第２の判定結果が偽のとき、前記ＢＣＨ符号の受信語に対して誤り訂正処理を実行できないことを示す所定の誤り訂正不能処理を行う誤り訂正不能処理回路と
を備えることを特徴とするＢＣＨ符号復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＢＣＨ符号復号方法及びＢＣＨ符号復号装置に関し、特にＢＣＨ(Bose-Chaudhuri-Hocquenghem)符号の復号処理において省電力化を実現するための方法及び装置に関する。
【背景技術】
【０００２】
従来、光通信分野においては、通信路上の誤り訂正方式として２元ＢＣＨ符号や、非２元ＢＣＨ符号であるリードソロモン符号が良く用いられている。２元ＢＣＨ符号や、リードソロモン符号の詳細については、例えば非特許文献１や、非特許文献２に詳しく説明されている。
【０００３】
ここでは、ＢＣＨ符号の概要について、リードソロモン符号を例として説明する。ガロア体ＧＦ（ｑ）上の最小距離ｄを持つリードソロモン符号は、次の（１）式で示される生成多項式により構成することができる(非特許文献１、pp.177、7.6.3 非２元ＢＣＨ符号を参照)。なお、ガロア体ＧＦ（ｑ）とは、位数 q の有限体を意味している。
【０００４】
【数１】
0005547690.tif 000002
【０００５】
この（１）式を例にとると、（１）式は(ｘ−αi)の ｉ＝ l から l＋ｄ−２までの積を意味し、この l は適当な整数で良いが、簡単のため通常は「０」が選択され、以降は特に指定されない限り、 l＝０とする。
【０００６】
このようなリードソロモン符号の符号多項式は、すべて（１）式の生成多項式Ｇ（ｘ）で割り切れる。そして、リードソロモン符号は、符号長ｎc が（ｑ−１）で、情報記号数ｋが（ｑ−ｄ）となる。ここでは便宜のため、符号長ｎc 、情報記号数ｋのリードソロモン符号をＲＳ（ｎc，ｋ）と表記する。
【０００７】
リードソロモン符号ＲＳ（ｎc，ｋ）では、符号の最小距離がｄで表され、誤り訂正能力および誤り検出能力は、それぞれ次の（２）式および（３）式となる（非特許文献１、pp.144-145、「7.2.2 最小距離と誤り訂正能力」を参照）。なお、ここで[ｘ]は、ガウス記号であり、実数ｘを越えない最大の整数を意味する。
【０００８】
誤り訂正能力 : [ｄ−１／２]……（２）
誤り検出能力 : [ｄ−１]……（３）
【０００９】
例えば、位数ｑが「２５６」であり、最小距離ｄが「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の場合、（２）式および（３）式により、誤り訂正能力が「１６」、誤り検出能力が「３２」である。また、位数ｑが「２５６」であり、最小距離ｄが「１７」であるリードソロモン符号ＲＳ（２５５，２３９）の場合、誤り訂正能力が「８」、誤り検出能力 が「１６」である。
【００１０】
また、リードソロモン符号ＲＳ（ｑ−１，ｑ−ｄ）の符号多項式は、（１）式から得られる次の（４）式の項でも割り切れるため、リードソロモン符号ＲＳ（ｑ−１，ｑ−ｄ）の符号語は、最小距離ｄがそれぞれ ２，３，４，……，（ｄ−１）のリードソロモン符号の一部を構成することになる。たとえば、リードソロモン符号ＲＳ（２５５，２２３）の符号語は、リードソロモン符号ＲＳ（２５５，２３９）の符号語でもある。
【００１１】
【数２】
0005547690.tif 000003
【００１２】
近年の光通信分野での省電力化に対する要求から、リードソロモン符号ＲＳ（ｎc，ｋ）の符号化処理や復号処理についても省電力化することが求められている。特に、復号処理は符号化処理よりも極めて複雑なため、復号処理の省電力化が必要とされている。
【００１３】
実際上、光通信分野において、通信路上での誤り率は１０-3以下と極めて小さいため、受信語に誤りがある確率よりも、誤りが無い場合の確率の方が高いことが多い。誤りが無いときは、誤り訂正処理を行う必要がないため、受信語に誤りがないときに復号処理を省略できれば、省電力化の効果の大きいことが期待できる。
【００１４】
ここで、従来の復号回路における復号処理の手順について、リードソロモン符号ＲＳ（２５５，２２３）を一例として、図５を用いて説明する（例えば、非特許文献１、pp172-175、「7.5.2 ＢＣＨ符号の復号」、および非特許文献２、pp.77-94、「5.13 リードソロモン符号」を参照）。
【００１５】
従来の復号回路においては、ルーチンＲＴ４の開始ステップから入って次のステップＳＰ１０１へ移り、リードソロモン符号ＲＳ（２５５，２２３）の受信語からエラー・シンドロームＳ１〜Ｓ３２を全て計算し、次のステップＳＰ１０２へ移る。
【００１６】
ステップＳＰ１０２において復号回路は、エラー・シンドロームＳ１〜Ｓ３２がいずれも値「０」となっているか否かを判定する。ここで肯定結果が得られると、このことは、エラー・シンドロームＳ１〜Ｓ３２がいずれも値「０」となっており、受信語に誤りが存在しないことを表しており、このとき復号回路は次のステップＳＰ１０３へ移る。
【００１７】
ステップＳＰ１０３において復号回路は、受信語に誤りが存在しないと判断することができたので、当該受信語をそのまま誤り訂正処理を実効することなく出力する誤り無訂正処理を行った後、次のステップＳＰ１０８へ移って処理を終了する。
【００１８】
これに対してステップＳＰ１０２で否定結果が得られると、このことはエラー・シンドロームＳ１〜Ｓ３２がいずれも値「０」となっている訳ではないため、受信語に何かの誤りが存在していると判断することができることを表しており、このとき復号回路は次のステップＳＰ１０４へ移る。
【００１９】
ステップＳＰ１０４において復号回路は、エラー・シンドロームＳ１〜Ｓ３２に基づいて受信語のエラー位置およびエラー補正値の計算を実行し、次のステップＳＰ１０５へ移る。
【００２０】
ステップＳＰ１０５において復号回路は、ステップＳＰ１０４でエラー位置およびエラー補正値を算出し得たか否かを判定する。ここで肯定結果が得られると、エラー位置およびエラー補正値を算出できたので、受信語の誤り訂正が可能であると判断し、次のステップＳＰ１０６へ移る。
【００２１】
ステップＳＰ１０６において復号回路は、エラー位置に対するシンボルの誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を実行した後、次のステップＳＰ１０８へ移って処理を終了する。
【００２２】
これに対してステップＳＰ１０５で否定結果が得られると、このことはエラー訂正能力を超えているか、或いは他の要因により、エラー位置およびエラー補正値を算出できなかったことを表しており、このとき復号回路は次のステップＳＰ１０７へ移る。
【００２３】
ステップＳＰ１０７において復号回路は、エラー位置およびエラー補正値を算出できていないので、誤り訂正が不能であることを示すフラグを生成する誤り訂正不能処理を実行し、次のステップＳＰ１０８へ移って処理を終了する。
【００２４】
この従来の復号回路においては、リードソロモン符号ＲＳ（２５５，２２３）の生成多項式の各根 １、α、α2、α3、……、α31 に対して合計ｎs (３２）個のエラー・シンドロームＳ１〜Ｓ３２が存在し、ステップＳＰ１０１において３２個のエラー・シンドロームＳ１〜Ｓ３２を全て計算している。
【００２５】
復号処理を効率的に行う例として、全てのエラー・シンドロームを計算し、その後のステップである誤り訂正処理において、全てのエラー・シンドローム計算結果を用いるのではなく、一部だけを用いることにより誤りの個数を推定することが提案されている（例えば、特許文献１参照）。
【００２６】
ところで、一般的なＢＣＨ符号においても、復号処理の手順としては同様である。最小距離が少なくともｄとなるＢＣＨ符号は、αを拡大体 ＧＦ（ｑm）上の原始元とし、αl、αl+1、αl+2、……、αl+d-2 を根とする最小次数のガロア体ＧＦ（ｑ）上の多項式を生成多項式として構成することができる。この場合、エラー・シンドロームについても、生成多項式の各根αl、αl+1、αl+2、……、αl+d-2 に対応して（ｄ−１）個存在する。
【００２７】
例えば、最小距離ｄが「７」、符号長ｎc が「１５」のＢＣＨ符号は、拡大体ＧＦ（２4）上の原始元をαとすると、生成多項式は次の（５）式で与えられる。
【００２８】
【数３】
0005547690.tif 000004
【００２９】
但し、拡大体ＧＦ（２4）の場合、αがこの拡大体の原始多項式の根であるため、α4＋α＋１＝０となる。また、（５）式中における（ｘ−α8）（ｘ−α9）（ｘ−α10）（ｘ−α12）の項は、ガロア体ＧＦ（２）上の最小次数の多項式となるために必要な項である。
【００３０】
この場合、エラー・シンドロームは、α、α2、……、α6 に対応して６個存在し、従来の復号回路では、６個のエラー・シンドロームをステップＳＰ１０１で全て計算することになる。
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】特開２００１−３１３５７０号公報
【非特許文献】
【００３２】
【非特許文献１】「情報理論」今井秀樹著、株式会社昭晃堂、pp.144-145
【非特許文献２】「無線データ通信におけるディジタル・エラー訂正技術入門」西村芳一著、ＣＱ出版株式会社、pp.77-94
【発明の概要】
【発明が解決しようとする課題】
【００３３】
しかしながら、従来の復号装置における復号方法では、通信路上の誤りが存在しないときであっても受信語から全てのエラー・シンドロームを計算する必要があった。例えば、リードソロモン符号ＲＳ（２５５，２２３）の場合、エラー・シンドロームＳ１〜Ｓ３２がいずれも値「０」となっていることを確認するため、エラー・シンドロームＳ１〜Ｓ３２を全て計算していた。また特許文献１においても、通信路上の誤りが無い場合であっても受信語から全てのエラー・シンドロームの計算を行っている。
【００３４】
従って、通信路上の誤りが存在しないときであっても、エラー・シンドロームの計算を停止することができず、ＢＣＨ符号復号処理の省電力化を図ることができないという問題があった。
【００３５】
本発明は、以上のような問題を解決する目的のためになされたものであり、ＢＣＨ符号復号処理の省電力化を図ることが出来るＢＣＨ符号復号方法およびＢＣＨ符号復号装置を提案しようとするものである。
【課題を解決するための手段】
【００３６】
上述した目的を達成するため、ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2 （ｄ≧３）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号の復号方法において、ｎR 個（[（ｄ−１）／２]≦ｎR ≦（ｄ−２））の連続する根に対応する複数のエラー・シンドロームを計算する第１のエラー・シンドローム演算ステップと、前記複数のエラー・シンドロームがいずれも値「０」であるか否かの第１の判定を行って第１の判定結果を得る第１の判定ステップと、前記第１の判定ステップで得られる第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、所定の誤り訂正処理を行う誤り訂正処理ステップと、前記第１の判定結果が真のとき、誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理ステップとを有することを特徴とする。
【００３７】
また上述した目的を達成するため、ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧４）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号の復号方法において、少なくとも[（ｄ−１）／２]個の連続する根に対応するｎR個以下（但し、[（ｄ−１）／２]＋１≦ｎR≦（ｄ−２）である）のエラー・シンドロームを計算する第１のエラー・シンドローム演算ステップと、前記第１のエラー・シンドローム演算ステップで計算された[（ｄ−１）／２]個の前記エラー・シンドロームのみがいずれも値「０」であるかを否かの第１の判定を行って第１の判定結果を得る第１の判定ステップと、前記第１の判定ステップで得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、前記第１のエラー・シンドローム演算ステップで計算した前記エラー・シンドロームを除く残りのエラー・シンドロームを計算する第２のエラー・シンドローム演算ステップと、前記第１のエラー・シンドローム演算ステップおよび前記第２のエラー・シンドローム演算ステップにより計算した全てのエラー・シンドロームに基づいて所定の誤り訂正処理を行う誤り訂正処理ステップと、前記第１の判定結果が真のとき、前記[（ｄ−１）／２]個の連続する根を除く（ｎR−[（ｄ−１）／２]）個の根に対応するエラー・シンドロームがいずれも値「０」であるか否かの第２の判定を行って第２の判定結果を得る第２の判定ステップと、前記第２の判定結果が真のとき、前記ＢＣＨ符号の受信語に誤り無しとみなして誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理ステップと、前記第２の判定結果が偽のとき、前記ＢＣＨ符号の受信語に対して誤り訂正処理を実行できないことを示す所定の誤り訂正不能処理を行う誤り訂正不能処理ステップとを有することを特徴とする。
【００３８】
請求項２に記載のＢＣＨ符号復号方法では、前記（ｎR−[（ｄ−１）／２]）個の根は、前記[（ｄ−１）／２]個の連続する根に続いているとすることができる。
【００３９】
請求項３に記載のＢＣＨ符号復号方法では、前記ｎR を（[（ｄ−１）／２]＋１）とすることができる。
【００４０】
請求項１乃至４に記載のＢＣＨ符号復号方法において、前記ＢＣＨ符号は、その位数ｑが２であり、前記第１のエラー・シンドローム演算ステップにおいて、根α2i（但し、l ≦２ｉ≦ l＋ｄ−２である）に対応するエラー・シンドロームは、根αi （但し、l ≦ｉ≦ l＋ｄ−２である）に対応するエラー・シンドロームの値の２乗であるので、前記根αi に対応するエラー・シンドロームの値が非零の場合は非零であるとし、前記根αi に対応するエラー・シンドロームの値が零の場合は零であるとして、前記根α2i に対応するエラー・シンドロームに対する計算を省略し、前記第１の判定ステップにおいて、前記根α2i に対応するエラー・シンドロームは、前記根αi に対応するエラー・シンドロームの値が非零の場合は非零であるとし、前記根αi に対応するエラー・シンドロームの値が零の場合は零であるとして前記判定を省略することを特徴とする。
【００４１】
請求項５に記載のＢＣＨ符号復号方法では、前記冪αl、αl+1、αl+2、……、αl+d-2 の前記 l が１であって、ｎR個の根は、α1、α2、α3、……、αnRであることを特徴とする。
【００４２】
さらに、ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧３）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号の復号装置において、ｎR個（[（ｄ−１）／２]≦ｎR（≦（ｄ−２））の連続する根に対応する複数のエラー・シンドロームを計算する第１のエラー・シンドローム演算回路と、前記複数のエラー・シンドロームがいずれも値「０」であるか否かの第１の判定を行って第１の判定結果を得る第１の判定回路と、前記第１の判定回路で得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、所定の誤り訂正処理を行う誤り訂正処理回路と、前記第１の判定結果が真のとき、誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理回路とを備えることを特徴とする。
【００４３】
さらに、ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧４）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号の復号装置において、少なくとも[（ｄ−１）／２]個の連続する根に対応するｎR個以下（但し、[（ｄ−１）／２]＋１≦ｎR≦（ｄ−２）である）のエラー・シンドロームを計算する第１のエラー・シンドローム演算回路と、前記第１のエラー・シンドローム演算回路で計算された[（ｄ−１）／２]個の前記エラー・シンドロームのみがいずれも値「０」であるかを否かの第１の判定を行って第１の判定結果を得る第１の判定回路と、前記第１の判定回路で得られる前記第１の判定結果が偽のとき、前記ＢＣＨ符号の受信語に誤りが有ると判断し、前記第１のエラー・シンドローム演算回路で計算した前記エラー・シンドロームを除く残りのエラー・シンドロームを計算する第２のエラー・シンドローム演算回路と、前記第１のエラー・シンドローム演算回路および前記第２のエラー・シンドローム演算回路により計算した全てのエラー・シンドロームに基づいて所定の誤り訂正処理を行う誤り訂正処理回路と、前記第１の判定結果が真のとき、前記[（ｄ−１）／２]個の連続する根を除く（ｎR−[（ｄ−１）／２]）個の根に対応するエラー・シンドロームがいずれも値「０」であるか否かの第２の判定を行って第２の判定結果を得る第２の判定回路と、前記第２の判定結果が真のとき、前記ＢＣＨ符号の受信語に誤り無しとみなして誤り訂正処理を実行することのない誤り無訂正処理を行う誤り無訂正処理回路と、前記第２の判定結果が偽のとき、前記ＢＣＨ符号の受信語に対して誤り訂正処理を実行できないことを示す所定の誤り訂正不能処理を行う誤り訂正不能処理回路とを備えるようにする。
【発明の効果】
【００４４】
請求項１、２、７および８によれば、ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｑ≠２，ｄ≧３）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号を復号する際、受信語に誤りが無いとみなすことができる場合、ｎR 個（[（ｄ−１）／２]≦ｎR ≦（ｄ−２））の連続する根に対応するエラー・シンドロームだけを計算すれば済むので、全てのエラー・シンドロームを計算する場合に比べて計算量を削減し、省電力化を図ることができる。
【００４５】
このとき、特にｎR＝[（ｄ−１）／２]として、ｎR個のエラー・シンドロームだけを計算するようにすれば、計算量の削減効果を最大化することができる。
【００４６】
請求項３、４によれば、第２の判定において、連続する[（ｄ−１）／２]個の根に続く、（ｎR−[（ｄ−１）／２]）個（但し、ｎR＝（[（ｄ−１）／２]＋１）である）の根に対応するエラー・シンドロームが値「０」であるか否かを判定することにより、誤り訂正能力を超えたと判断することができ、かくして誤り訂正不能処理を実行できる条件の中で計算量の削減効果を最大化することができる。
【００４７】
なお、ｑ＝２５６、ｍ＝１とすれば、バイトをデータ処理の単位として扱うコンピュータ装置やデジタル通信装置に対して好適となり、最小距離ｄ＝１７もしくは３３とすることにより、広く用いられているリードソロモン符号ＲＳ（２５５，２３９）やリードソロモン符号ＲＳ（２５５，２２３）の復号処理に適用することができる。
【００４８】
請求項５によれば、ｑ＝２とすると（ｄ≧３，l ≠１またはｄ≧４，l ＝１）、根α2i（l ≦２ｉ≦ l＋ｄ−２）なる生成多項式の根に対応するエラー・シンドロームは、根αi に対応するエラー・シンドロームを２乗することにより得られるため、更に計算すべきエラー・シンドロームの個数を削減することができる。
【００４９】
請求項６によれば、生成多項式の根である冪αl、αl+1、αl+2、……、αl+d-2 が１であって、ｎR個の根は、α1、α2、α3、……、αnRであるように選択することにより、他のエラー・シンドロームを２乗することにより求められるエラー・シンドロームの数が多くなり、計算すべきエラー・シンドロームの個数を一段と削減することができる。
【図面の簡単な説明】
【００５０】
【図１】第１の実施の形態におけるＢＣＨ符号復号回路の構成を示すブロック図である。
【図２】第１の実施の形態における復号処理手順を示すフローチャートである。
【図３】第２の実施の形態におけるＢＣＨ符号復号回路の構成を示すブロック図である。
【図４】第２の実施の形態における復号処理手順を示すフローチャートである。
【図５】第３の実施の形態におけるＢＣＨ符号復号回路の構成を示すブロック図である。
【図６】第３の実施の形態における復号処理手順を示すフローチャートである。
【図７】従来の復号処理手順を示すフローチャートである。
【発明を実施するための形態】
【００５１】
（１）第１の実施の形態
第１の実施の形態においては、例えば、位数ｑが「２５６」であり、最小距離ｄが「３３」のリードソロモン符号ＲＳ（２５５，２２３）を復号処理の対象としたとき、生成多項式の根に対応する１６個のエラー・シンドロームＳ１〜Ｓ１６のみについて計算し、その後に誤りの有無を判定するようになされている。
【００５２】
（１−１）ＢＣＨ符号復号回路の構成
図１において、１は全体として第１の実施の形態におけるＢＣＨ符号復号回路を示し、例えば、位数 ｑ が「２５６」であり、最小距離 ｄ が「３３」のリードソロモン符号ＲＳ（２５５，２２３）でなる受信語Ｄ１を遅延回路２および第１のエラー・シンドローム演算回路３へ供給する。
【００５３】
第１のエラー・シンドローム演算回路３は、受信語Ｄ１から複数の連続した例えばエラー・シンドロームＳ１〜Ｓ１６を計算し、そのエラー・シンドロームＳ１〜Ｓ１６を判定回路４およびエラー訂正回路６へ供給する。
【００５４】
このとき遅延回路２は、第１のエラー・シンドローム演算回路３において受信語Ｄ１からエラー・シンドロームＳ１〜Ｓ１６を計算している時間だけ当該受信語Ｄ１を保持し、その後に受信語Ｄ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ出力する。
【００５５】
判定回路４は、第１のエラー・シンドローム演算回路３から供給されたエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっているか否かの第１の判定を行い、これを第１の判定結果Ｘ１として出力する。
【００５６】
判定回路４は、エラー・シンドロームＳ１〜Ｓ１６のうち少なくともいずれかが値「０」ではなく、１６シンボル以下の誤りが生じているとき、偽を意味する第１の判定結果Ｘ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ通知する。
【００５７】
第２のエラー・シンドローム演算回路５は、偽を意味する第１の判定結果Ｘ１を判定回路４から得ると、残りのエラー・シンドロームＳ１７〜Ｓ３２を計算し、これらをエラー訂正回路６へ供給する。
【００５８】
エラー訂正回路６は、全てのエラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求め、エラー位置をエラー補正値で修正することにより誤り訂正処理を施し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力する。
【００５９】
ここでエラー訂正回路６は、エラー訂正能力を超えている場合や、何らかの原因によりエラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求めることが出来ない場合、誤り訂正処理が不能であるとして、誤り訂正処理が不能であることを示すフラグを生成することにより誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力する。
【００６０】
この場合、ＢＣＨ符号復号回路１では、例えばフレーム検出回路７がエラー訂正回路６の後段に設けられているようにすれば、誤り訂正が不能であることを示すフラグの付加された受信語Ｄ２に対してフレーム・チェック・シーケンス等を用いた誤り検出処理を行うことができるので、特に問題は生じない。
【００６１】
一方、判定回路４は、エラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」であり、少なくとも１６シンボルの誤りが生じていないとき、真を意味する第１の判定結果Ｘ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ通知する。
【００６２】
第２のエラー・シンドローム演算回路５は、真を意味する第１の判定結果Ｘ１を判定回路４から得ると、残りのエラー・シンドロームＳ１７〜Ｓ３２について計算するまでもなく誤りが生じていないであろうとみなし、エラー・シンドロームＳ１７〜Ｓ３２の計算を実行せずに省略する。
【００６３】
エラー訂正回路６は、真を意味する第１の判定結果Ｘ１を判定回路４から得ると、遅延回路２から供給された受信語Ｄ１に誤りが一切生じていないものとしてエラー訂正処理を実行せず（以下、これをエラー無訂正処理と呼ぶ）、当該受信語Ｄ１をそのまま受信語Ｄ２として後段の回路へ出力する。
【００６４】
（１−２）復号処理手順
このＢＣＨ符号復号回路１において、位数ｑが「２５６」であり、最小距離ｄ が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号処理手順について、図２のフローチャートを用いて説明する。
【００６５】
ＢＣＨ符号復号回路１は、ルーチンＲＴ１の開始ステップから入って、次のステップＳＰ１１へ移り、受信語Ｄ１に基づくエラー・シンドロームＳ１〜Ｓ３２のうち、例えば複数の連続したエラー・シンドロームＳ１〜Ｓ１６を第１のエラー・シンドローム演算回路３によって計算し、次のステップＳＰ１２へ移る。
【００６６】
ステップＳＰ１２においてＢＣＨ符号復号回路１は、ステップＳＰ１１で計算したエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっているか否かの第１の判定を判定回路４によって行い、これを第１の判定結果Ｘ１として出力する。
【００６７】
ここで否定結果が得られると、このことは偽を意味する第１の判定結果Ｘ１が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１６のうち少なくとも１個は値「０」ではなく、受信語Ｄ１に１６シンボル以下の誤りが存在していることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ１３へ移る。
【００６８】
ステップＳＰ１３においてＢＣＨ符号復号回路１は、エラー・シンドロームＳ１〜Ｓ１６のうち少なくとも１個は値「０」ではなく、受信語Ｄ１に１６シンボル以下の誤りが存在しているので、続く、残りのエラー・シンドロームＳ１７〜Ｓ３２を第２のエラー・シンドローム演算回路５によって計算し、次のステップＳＰ１４へ移る。
【００６９】
ステップＳＰ１４においてＢＣＨ符号復号回路１は、全てのエラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値の計算をエラー訂正回路６により実行し、次のステップＳＰ１５へ移る。
【００７０】
ステップＳＰ１５においてＢＣＨ符号復号回路１は、ステップＳＰ１４でエラー位置およびエラー補正値を算出し得たか否かをエラー判定回路６により判定する。ここで肯定結果が得られると、エラー位置およびエラー補正値を算出できたので、誤り訂正処理が可能であると判断することができることを表しており、このときＢＣＨ符号復号回路１は、次のステップＳＰ１６へ移る。
【００７１】
ステップＳＰ１６においてＢＣＨ符号復号回路１は、エラー訂正回路６により、エラー位置に対するシンボルの誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を実行し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ１９へ移って処理を終了する。
【００７２】
これに対してステップＳＰ１５で否定結果が得られると、このことはエラー訂正能力を超えているか、或いは他の要因により、エラー位置およびエラー補正値の算出が出来なかったことを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ１７へ移る。
【００７３】
ステップＳＰ１７においてＢＣＨ符号復号回路１は、エラー位置およびエラー補正値の算出が出来ていないので、エラー訂正回路６により、誤り訂正処理が不能であることを示すフラグを生成する誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ１９へ移って処理を終了する。
【００７４】
一方、ステップＳＰ１２において肯定結果が得られると、このことは真を意味する第１の判定結果Ｘ１が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっており、１６シンボル以下の誤りが存在していないので、残りのエラー・シンドロームＳ１７〜Ｓ３２においても値「０」となっているとみなし、受信語Ｄ１に誤りが生じていないと判断することができることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ１８へ移る。
【００７５】
ステップＳＰ１８においてＢＣＨ符号復号回路１は、受信語Ｄ１に誤りが生じていないと判断したので、エラー訂正回路６により、遅延回路２から供給された受信語Ｄ１を誤り訂正することなしに出力する誤り無訂正処理を実行し、当該受信語Ｄ１をそのまま受信語Ｄ２として出力し、次のステップＳＰ１９へ移って処理を終了する。
【００７６】
（１−３）第１の実施の形態における作用および効果
以上の構成において、ＢＣＨ符号復号回路１では、リードソロモン符号ＲＳ（２５５，２２３）の復号処理時、まず受信語Ｄ１に基づく１６個の連続する根に対応する１６個のエラー・シンドロームＳ１〜Ｓ１６のみについて計算した後、エラー・シンドロームＳ１〜Ｓ１６の値に基づいて受信語Ｄ１に誤りが有ったか否かを判定する。
【００７７】
ここで、エラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっていた場合、１６シンボル以下の誤りが生じていないことが保証される。これは、 １、α、α2、α3、……、α15 を根として持つ次の（６）式で表される生成多項式により構成することのできるリードソロモン符号ＲＳ（２５５，２３９）によって誤り検出を行うことと同様だからである。
【００７８】
【数４】
0005547690.tif 000005
【００７９】
最小距離ｄが「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の誤り訂正能力は「１６」であり、１６シンボル以下の誤りが有れば、エラー・シンドロームＳ１〜Ｓ１６の少なくとも１個は値「０」以外となる。従ってＢＣＨ符号復号回路１は、エラー・シンドロームＳ１〜Ｓ１６のみの計算により、１６シンボル以下の誤りが生じたか否かを検出することができるのである。
【００８０】
これによりＢＣＨ符号復号回路１では、エラー・シンドロームＳ１〜Ｓ１６の値に基づいて１６シンボル以下の誤りが生じていないとき、残りのエラー・シンドロームＳ１７〜Ｓ３２に対するエラー・シンドローム計算処理を省略し、大幅に省電力化を図ることができる。
【００８１】
この場合、ＢＣＨ符号復号回路１は、全てのエラー・シンドロームＳ１〜Ｓ３２の値に基づいて受信語Ｄ１の誤りの有無を検出する場合に比べて、エラー・シンドロームＳ１７〜Ｓ３２の誤りを検出できなくなる確率が高まるが、エラー・シンドロームＳ１〜Ｓ１６の計算を行っているので、誤り訂正能力の「１６」を越えない範囲では問題なく動作する。
【００８２】
またＢＣＨ符号復号回路１では、誤り訂正能力を超えて誤りを検出できない場合であっても、通信においては誤りが発生したことを後段の誤り検出回路（図示せず）によるフレーム・チェック・シーケンス等により検知することができるので、特に問題はない。
【００８３】
以上の構成によれば、ＢＣＨ符号復号回路１は、リードソロモン符号ＲＳ（２５５，２２３）の受信語Ｄ１の復号処理時、当該受信語Ｄ１に基づいて１６個のエラー・シンドロームＳ１〜Ｓ１６のみを計算し、エラー・シンドロームＳ１〜Ｓ１６の値に基づいて誤りが無かった場合、残りのエラー・シンドロームＳ１７〜Ｓ３２においても値「０」となっているとみなし、残りのエラー・シンドロームＳ１７〜Ｓ３２に対するエラー・シンドローム計算処理を省略することができるので、大幅に省電力化を図ることができる。
【００８４】
特に光通信分野での誤り率が １０-3以下と極めて小さく、受信語Ｄ１に誤りが存在する確率よりも誤りが存在しない確率の方が高いことを考慮すると、ＢＣＨ符号復号回路１では、エラー・シンドロームＳ１〜Ｓ１６の値に基づいて誤りが存在しなかった場合に、それ以降のエラー・シンドローム計算処理を省略することにより、伝送データの精度劣化が殆ど生じない状態で効果的に省電力化を図ることができる。
【００８５】
なお、上述した第１の実施の形態においては、位数ｑが「２５６」であり、最小距離 d が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号方法について説明したが、一般には、拡大体ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧３）を根とする生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号方法において、ｎR（個（[（ｄ−１）／２]≦ｎR≦（ｄ−２））の連続する根αu、αu+1、……、αu+nR-1（l≦ｕ≦l＋ｄ−２、l≦ｕ＋ｎR−１≦l＋ｄ−２）に対応する複数のエラー・シンドロームのみを計算し、複数のエラー・シンドロームがいずれも値「０」であるか否かの第１の判定結果を得、第１の判定結果が偽のとき、ＢＣＨ符号の受信語に誤りが有ると判断し、所定の誤り訂正処理を行い、第１の判定結果が真のとき、誤り訂正処理を実行することのない誤り無訂正処理を行うようにしても良い。
【００８６】
因みに第１の実施の形態においては、例えば最小距離ｄが「３３」であれば、少なくとも１６個以上、最大で３１個以下の連続する根αu、αu+1、……、αu+nR-1（l≦ｕ≦l＋ｄ−２、l≦ｕ＋ｎR−１≦l＋ｄ−２）に対応するエラー・シンドロームのみを計算し、いずれも値「０」となっているか否かを判定することにより、省電力化を図りながら誤りの有無を判別することができる。
【００８７】
そして、このＢＣＨ符号の復号方法においては、計算すべきエラー・シンドロームの数は、ｎR＝[（ｄ−１）／２]とすれば（例えば最小距離ｄが「３３」であればエラー・シンドロームの数は１６個）、誤り訂正能力の範囲内でエラー・シンドローム計算処理を最大限に省略することができ、伝送データの精度を落とすことなく効率的に省電力化を図ることができる。
【００８８】
また、上述した第１の実施の形態においては、受信語に基づく１６個の連続する根に対応したエラー・シンドロームＳ１〜Ｓ１６のみについて計算した後、当該エラー・シンドロームＳ１〜Ｓ１６の値に基づいて受信語Ｄ１に誤りが有ったか否かを判定するようにした場合について述べたが、本発明はこれに限らず、受信語に基づく１６個の連続する根に対応したエラー・シンドロームであれば、例えば１６個のエラー・シンドロームＳ２〜Ｓ１７のみについて計算したり、１６個のエラー・シンドロームＳ１６〜Ｓ３１のみについて計算しても良く、その他種々の連続した１６個のエラー・シンドロームのみについて計算し、誤りの有無を判定することができる。
【００８９】
また、第１の実施の形態においては、位数ｑが「２５６」であり、最小距離 ｄ が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号方法を一例として述べたが、位数ｑ≠２、最小距離ｄ≧３を満たせば、これに限るものでない。
【００９０】
（２）第２の実施の形態
第２の実施の形態においては、例えば、位数ｑが「２５６」であり、最小距離ｄが「３３」のＢＣＨ符号（２５５，２２３）を復号処理の対象としたとき、生成多項式の連続する根に対応した１７個のエラー・シンドロームＳ１〜Ｓ１７のみについて計算し、その後に誤りの有無を判定するようになされている。
【００９１】
（２−１）ＢＣＨ符号復号回路の構成
図３において、１は全体として第２の実施の形態におけるＢＣＨ符号復号回路を示し、例えば、位数 ｑ が「２５６」であり、最小距離 ｄ が「３３」のリードソロモン符号ＲＳ（２５５，２２３）でなる受信語Ｄ１を遅延回路２および第１のエラー・シンドローム演算回路３へ供給する。
【００９２】
第１のエラー・シンドローム演算回路３は、受信語Ｄ１から複数の連続した例えばエラー・シンドロームＳ１〜Ｓ１７を計算し、そのエラー・シンドロームＳ１〜Ｓ１７を判定回路４およびエラー訂正回路６へ供給する。
【００９３】
このとき遅延回路２は、第１のエラー・シンドローム演算回路３において受信語Ｄ１からエラー・シンドロームＳ１〜Ｓ１７を計算している時間だけ当該受信語Ｄ１を保持し、その後に受信語Ｄ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ出力する。
【００９４】
判定回路４は、第１のエラー・シンドローム演算回路３から供給されたエラー・シンドロームＳ１〜Ｓ１７のうち、連続するエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっているか否かの第１の判定を行い、これを第１の判定結果Ｘ１として出力する。なお、連続するエラー・シンドロームとは、生成多項式の連続する根に対応したエラー・シンドロームのことをいう。
【００９５】
判定回路４は、第１の判定結果Ｘ１が偽である場合、すなわちエラー・シンドロームＳ１〜Ｓ１６のうち少なくとも何れかが値「０」ではなく、１６シンボル以下の誤りが生じているとき、偽を意味する第１の判定結果Ｘ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ通知する。
【００９６】
第２のエラー・シンドローム演算回路５は、偽を意味する第１の判定結果Ｘ１を判定回路４から得ると、残りのエラー・シンドロームＳ１８〜Ｓ３２を計算し、これらをエラー訂正回路６へ供給する。
【００９７】
エラー訂正回路６は、全てのエラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求め、エラー位置に対するシンボル誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を施し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力する。
【００９８】
ここでエラー訂正回路６は、エラー訂正能力を超えている場合や、何らかの原因により、エラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求めることが出来ない場合、誤り訂正処理が不能であるとして、誤り訂正処理が不能であることを示すフラグを生成することにより誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力する。
【００９９】
この場合、ＢＣＨ符号復号回路１では、例えばフレーム検出回路７がエラー訂正回路６の後段に設けられているようにすれば、誤り訂正が不能であることを示すフラグの付加された受信語Ｄ２に対してフレーム・チェック・シーケンス等を用いた誤り検出処理を行うことができるので、特に問題は生じない。
【０１００】
一方、判定回路４は、第１の判定結果Ｘ１が真である場合、すなわちエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」であり、少なくとも１６シンボルの誤りが生じていないとき、エラー・シンドロームＳ１〜Ｓ１６の後に続く次のエラー・シンドロームＳ１７について値「０」となっているか否かの第２の判定を行い、これを第２の判定結果Ｘ２として、第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ通知する。
【０１０１】
第２のエラー・シンドローム演算回路５は、真を意味する第２の判定結果Ｘ２を判定回路４から得ると、それ以降のエラー・シンドロームＳ１８〜Ｓ３２のいずれもが値「０」となっているとみなし、エラー・シンドロームＳ１８〜Ｓ３２の計算を実行せずに省略する。
【０１０２】
これに対して第２のエラー・シンドローム演算回路５は、偽を意味する第２の判定結果Ｘ２を判定回路４から得た場合、エラー・シンドロームＳ１７が値「０」ではなく、１７シンボル以上の誤りが生じ、誤り訂正能力の「１６」を超えているため、誤り訂正不能であると判断し、それ以降のエラー・シンドロームＳ１８〜Ｓ３２の計算を実行せずに省略する。
【０１０３】
エラー訂正回路６は、真を意味する第２の判定結果Ｘ２を判定回路４から得ると、それ以降のエラー・シンドロームＳ１８〜Ｓ３２のいずれもが値「０」となっているとみなし、遅延回路２から供給された受信語Ｄ１に誤りが一切存在していないものとしてエラー無訂正処理を行い、当該受信語Ｄ１をそのまま受信語Ｄ２として後段の回路へ出力する。
【０１０４】
これに対してエラー訂正回路６は、偽を意味する第２の判定結果Ｘ２を判定回路４から得た場合、エラー・シンドロームＳ１７が値「０」ではなく、１７シンボル以上の誤りが生じ、誤り訂正能力を超えているため、誤り訂正不能であると判断し、誤り訂正処理を実行しないようになされている。
【０１０５】
（２−２）復号処理手順
このＢＣＨ符号復号回路１において、位数ｑが「２５６」であり、最小距離ｄ が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号処理手順について、図４のフローチャートを用いて説明する。
【０１０６】
ＢＣＨ符号復号回路１は、ルーチンＲＴ２の開始ステップから入って、次のステップＳＰ２１へ移り、受信語Ｄ１に基づくエラー・シンドロームＳ１〜Ｓ３２のうち、複数の連続したエラー・シンドロームＳ１〜Ｓ１７のみを第１のエラー・シンドローム演算回路３によって計算し、次のステップＳＰ２２へ移る。
【０１０７】
ステップＳＰ２２においてＢＣＨ符号復号回路１は、ステップＳＰ２１で計算したエラー・シンドロームＳ１〜Ｓ１７のうち、連続するエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっているか否かの第１の判定を判定回路４によって行い、これを第１の判定結果Ｘ１として出力する。
【０１０８】
ここで否定結果が得られると、このことは偽を意味する第１の判定結果Ｘ１が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１６のうち少なくとも１個は値「０」ではなく、受信語Ｄ１に１６シンボル以下の誤りが存在していることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ２３へ移る。
【０１０９】
ステップＳＰ２３においてＢＣＨ符号復号回路１は、エラー・シンドロームＳ１〜Ｓ１６のうち少なくとも１個は値「０」ではなく、受信語Ｄ１に１６シンボル以下の誤りが存在しているので、続く、残りのエラー・シンドロームＳ１８〜Ｓ３２を第２のエラー・シンドローム演算回路５によって計算し、次のステップＳＰ２４へ移る。
【０１１０】
ステップＳＰ２４においてＢＣＨ符号復号回路１は、全てのエラー・シンドロームＳ１〜Ｓ３２に基づいて受信語Ｄ１のエラー位置およびエラー補正値の計算をエラー訂正回路６により実行し、次のステップＳＰ２５へ移る。
【０１１１】
ステップＳＰ２５においてＢＣＨ符号復号回路１は、ステップＳＰ２４でエラー位置およびエラー補正値を算出し得たか否かをエラー訂正回路６により判定する。ここで肯定結果が得られると、エラー位置およびエラー補正値を算出できたので、誤り訂正処理が可能であると判断し、このときＢＣＨ符号復号回路１は、次のステップＳＰ２６へ移る。
【０１１２】
ステップＳＰ２６においてＢＣＨ符号復号回路１は、エラー訂正回路６により、エラー位置に対するシンボルの誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を実行し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ３０へ移って処理を終了する。
【０１１３】
これに対してステップＳＰ２５で否定結果が得られると、このことはエラー訂正能力を超えているか、或いは他の要因により、エラー位置およびエラー補正値の算出が出来なかったことを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ２７へ移る。
【０１１４】
ステップＳＰ２７においてＢＣＨ符号復号回路１は、エラー訂正回路６によりエラー位置およびエラー補正値の算出が出来ていないので、誤り訂正処理が不能であることを示すフラグを生成する誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ３０へ移って処理を終了する。
【０１１５】
一方、ステップＳＰ２２において肯定結果が得られると、このことは真を意味する第１の判定結果Ｘ１が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」となっており、１６シンボル以下の誤りが存在していないことを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ２８へ移る。
【０１１６】
ステップＳＰ２８においてＢＣＨ符号復号回路１は、ステップＳＰ２１で計算したエラー・シンドロームＳ１７が値「０」となっているか否かを判定回路４によって判定し、これを第２の判定結果Ｘ２とする。
【０１１７】
ここで否定結果が得られると、このことは偽を意味する第２の判定結果Ｘ２が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１６がいずれも値「０」ではあったものの、次のエラー・シンドロームＳ１７が値「０」ではなく、受信語Ｄ１に１７シンボル以上の誤りが存在していることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ２７へ移る。
【０１１８】
ステップＳＰ２７においてＢＣＨ符号復号回路１は、受信語Ｄ１に１７シンボル以上の誤りが存在し、最小距離ｄ が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の誤り訂正能力「１６」を越えているため、判定回路４により誤り訂正処理が不能であると判断し、その旨を示すフラグを生成する誤り訂正不能処理をエラー訂正回路６により実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ３０へ移って処理を終了する。
【０１１９】
一方、ステップＳＰ２８において肯定結果が得られると、このことは真を意味する第２の判定結果Ｘ２が得られ、すなわちエラー・シンドロームＳ１〜Ｓ１７がいずれも値「０」となっており、１７シンボル以下の誤りが存在していないので、残りのエラー・シンドロームＳ１８〜Ｓ３２においても誤りが生じていないとみなすことができることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ２９へ移る。
【０１２０】
ステップＳＰ２９においてＢＣＨ符号復号回路１は、受信語Ｄ１に誤りが生じていないとみなしたので、エラー訂正回路６により、遅延回路２から供給された受信語Ｄ１をそのまま誤り訂正することなしに出力する誤り無訂正処理を実行し、当該受信語Ｄ１を受信語Ｄ２として出力し、次のステップＳＰ３０へ移って処理を終了する。
【０１２１】
（２−３）第２の実施の形態における作用および効果
以上の構成において、ＢＣＨ符号復号回路１では、リードソロモン符号ＲＳ（２５５，２２３）の復号処理時、まず受信語に基づく１７個の連続する根に対応する１７個のエラー・シンドロームＳ１〜Ｓ１７のみについて計算した後、そのうちのエラー・シンドロームＳ１〜Ｓ１６の値に基づいて受信語Ｄ１に誤りが有ったか否かの第１の判定結果Ｘ１を得、次に、エラー・シンドロームＳ１７の値に基づいて受信語に誤りがあったか否かの第２の判定結果Ｘ２を得る。
【０１２２】
ここで、エラー・シンドロームＳ１〜Ｓ１７がいずれも値「０」となっていた場合、１７シンボル以下の誤りが存在しないことが保証される。これは、 １、α、α2、α3、……、α16 を根として持つ次の（７）式で表される生成多項式により構成することのできるリードソロモン符号ＲＳ（２５５，２３８）によって誤り検出を行うことと同様だからである。このときの誤り検出能力は「１７」となる。
【０１２３】
【数５】
0005547690.tif 000006
【０１２４】
ＢＣＨ符号復号回路１は、エラー・シンドロームＳ１〜Ｓ１７がいずれも値「０」であるならば、１７シンボル以下の誤りは生じていないため、残りのエラー・シンドロームＳ１８〜Ｓ３２についても値「０」であるとみなし、エラー・シンドローム計算を省略して省電力化を図ると共に、受信語Ｄ１に対して誤り無訂正処理を行う。
【０１２５】
しかしながら、エラー・シンドロームＳ１７だけが値「０」ではない場合、受信語に１６シンボル以下の誤りは存在していないが、１７シンボル以上の誤りが生じているため、リードソロモン符号ＲＳ（２５５，２２３）の誤り訂正能力「１６」を越えたと判断し、誤り訂正不能処理を行う。
【０１２６】
なおＢＣＨ符号復号回路１では、誤り訂正能力を超えて誤りを検出できない場合であっても、通信においては誤りが発生したことを後段の誤り訂正回路（図示せず）によるフレーム・チェック・シーケンス等により検知することができるので、特に問題はない。
【０１２７】
以上の構成によれば、ＢＣＨ符号復号回路１は、リードソロモン符号ＲＳ（２５５，２２３）の受信語Ｄ１の復号処理時、当該受信語Ｄ１に基づくエラー・シンドロームＳ１〜Ｓ１６の値に基づいて誤りが無かった場合で、かつ、それに続くエラー・シンドロームＳ１７の値に基づいて誤りが無かった場合に限り、エラー・シンドロームＳ１８〜Ｓ３２の計算を省略することにより、少なくともエラー・シンドロームＳ１７に基づいて誤りの有無を判断する分だけ、第１の実施の形態よりも誤り検出の精度を上げながら、効率良く省電力化を図ることができる。
【０１２８】
なお、上述した第２の実施の形態においては、位数ｑが「２５６」であり、最小距離 d が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号方法について説明したが、一般には、拡大体ＧＦ（ｑm）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄ≧４）を根とするＧＦ（ｑ）上の生成多項式により生成されるＢＣＨ符号のＢＣＨ符号復号方法において、[（ｄ−１）／２]個の連続する根αu、αu+1、……、αu+[(d-1)/2]-1（l≦ｕ≦l＋ｄ−２）に対応するエラー・シンドロームのみを計算し、いずれも値「０」であるか否かの第１の判定を行い、その第１の判定結果Ｘ１が偽ならば誤り有りとして残りのエラー・シンドロームを計算し、誤り訂正処理を実施すればよく、第１の判定結果Ｘ１が真ならば、更に１以上（ｄ−２−[（ｄ−１）／２]）個以下のエラー・シンドロームを計算し、いずれも値「０」であるか否かの第２の判定を行い、その第２の判定結果Ｘ２が真ならば、それ以降のエラー・シンドロームも誤り無しとみなして誤り無訂正処理を実施し、第２の判定結果Ｘ２が偽ならば誤り訂正能力を超えているので誤り訂正不能処理を実施するようにしても良い。
【０１２９】
因みに、上述したＢＣＨ符号復号方法において、第２の判定では、１以上（ｄ−２−[（ｄ−１）／２]）個以下のエラー・シンドロームを計算し、いずれも値「０」であるか否かの判定を行うようにしたが、（ｎR−[（ｄ−１）／２]）個（ここでｎRは、[（ｄ−１）／２]＋１≦ｎR≦（ｄ−２）である）の根に対応するエラー・シンドロームがいずれも値「０」であるか否かの判定を行ってもよい。この場合、計算式が異なるだけで同じ結果が得られる。
ここで、前記第２の判定に用いるエラー・シンドロームＳ１７は、第２の実施の形態のごとく、第１の判定に用いたエラー・シンドロームＳ１〜Ｓ１６に続く連続する（ｎR−[（ｄ−１）／２]）個のエラー・シンドロームであってもよいし、そうでなくても、エラー・シンドロームの計算を省略する効果は同様である。ただし、前者の場合は、第１の判定と第２の判定とを合わせると、ｎR個の連続するエラー・シンドロームを誤り検出のため用いることとなるため、第２の判定において最小距離（ｎR＋１）による誤り訂正符号を利用してｎRシンボルの誤り検出していることになる。このため、ｎRシンボル以下の誤り発生が検知できるため、誤りなしとして無訂正処理がなされることがない。一方で、後者は、エラー・シンドロームは連続しないため、前者のごとく最小距離（ｎR＋１）による誤り訂正符号を用いて第２の判定において、検出することとはならないが、第１の判定で用いたエラー・シンドロームが零であり、第２の判定で用いた（ｎR−[（ｄ−１）／２]）個のエラー・シンドロームのうち少なくとも１つが非零の場合に対応する誤りについては誤りを検出することができる。
【０１３０】
さらに第２の実施の形態においては、例えば最小距離ｄが「３３」であれば、第２の判定として、１個以上１５個以下のエラー・シンドロームＳ１７〜Ｓ３１を計算すれば良いが、第２の実施の形態のように、エラー・シンドロームＳ１７だけを計算するようにすれば、誤訂正の確率を減少させても伝送データの精度を落とすことなくエラー・シンドローム計算量を最大限に省略することができ、効率的に省電力化を図ることができる。
【０１３１】
なお、上述した第２の実施の形態においては、ステップＳＰ２２における第１の判定の前に予めエラー・シンドロームＳ１７についても計算しておくようにしたが、本発明はこれに限らず、第１の判定後であって、ステップＳＰ２８における第２の判定前にエラー・シンドロームＳ１７を計算するようにしても良い。一般的には、第１の判定前に[（ｄ−１）／２]）個のエラー・シンドロームを計算し、第２の判定前に１以上（ｄ−２−[（ｄ−１）／２]）個以下のエラー・シンドロームを計算すれば良い。
【０１３２】
また、上述した第２の実施の形態においては、受信語Ｄ１に基づく１７個の連続したエラー・シンドロームＳ１〜Ｓ１７のみについて計算した後、当該エラー・シンドロームＳ１〜Ｓ１６の値に基づいて第１の判定を行い、それに続くエラー・シンドロームＳ１７の値に基づいて第２の判定を行うようにした場合について述べたが、本発明はこれに限らず、受信語Ｄ１に基づく連続したエラー・シンドロームであれば、例えば１７個のエラー・シンドロームＳ２〜Ｓ１８について計算したり、１７個のエラー・シンドロームＳ１６〜Ｓ３２について計算しても良く、その他種々の連続した１７個のエラー・シンドロームについて計算し、第１の判定および第２の判定を行うようにしても良い。
【０１３３】
さらに、第２の実施の形態においては、位数ｑが「２５６」であり、最小距離 ｄ が「３３」であるリードソロモン符号ＲＳ（２５５，２２３）の復号方法を一例として述べたが、位数ｑ≠２、最小距離ｄ≧４を満たせば、これに限るものでない。
【０１３４】
（３）第３の実施の形態
第３の実施の形態においては、例えば、位数ｑが「２」であり、最小距離ｄが「７」のＢＣＨ符号（１５，５）を復号処理の対象としたとき、生成多項式の根α，α2，……，α6 に対応する６個のエラー・シンドロームＳ１〜Ｓ６のうち、根α，α3 に対応するエラー・シンドロームＳ１，Ｓ３のみについて計算し、その後に誤りの有無を判定するようになされている。
【０１３５】
２元ＢＣＨ符号の場合、根α2i（l ≦２ｉ≦ l＋ｄ−２）に対応するエラー・シンドロームは、根αi（l ≦ｉ≦ l＋ｄ−２）、に対応するエラー・シンドロームを２乗することにより得られることが知られている（非特許文献１、pp172,(7.98)を参照）。従って、エラー・シンドロームＳ１が値「０」であるならば、エラー・シンドロームＳ２も値「０」となり、エラー・シンドロームＳ１が値「０」でなければ、エラー・シンドロームＳ２も値「０」ではない。
【０１３６】
すなわち第３の実施の形態では、エラー・シンドロームＳ１およびＳ３が値「０」であるか否かを判定するだけで、根α，α2，α3に対応するエラー・シンドロームＳ１、Ｓ２、Ｓ３が値「０」であるか否かを判定したことになり、最小距離ｄが「４」となるＢＣＨ符号により３ビット誤り検出を実施したのと同等になる。
【０１３７】
従って、ＢＣＨ符号（１５，５）の誤り訂正能力３ビットを越えない範囲の誤りについては正しく検出できることになり、エラー・シンドロームＳ２の計算を省略することができるので、エラー・シンドロームの計算量を更に削減することが可能となる。
【０１３８】
それだけではなく、第３の実施の形態の場合、エラー・シンドロームＳ２が値「０」であるならば、エラー・シンドロームＳ４も値「０」となるので、エラー・シンドロームＳ１およびＳ３が値「０」であるか否かを判定するだけで、根α，α2，α3，α4 に対応するエラー・シンドロームＳ１、Ｓ２、Ｓ３、Ｓ４が値「０」であるか否かを判定したことになり、実際は最小距離ｄが「５」となるＢＣＨ符号（１５，７）により４ビット誤り検出を実施したのと同等になる。
【０１３９】
第３の実施の形態では、（１）式で示された生成多項式の根αl，αl+1，……、αl+d-2 を、l＝１となるように選んだ場合（αi＝α，α2，……，α6 ）、エラー・シンドロームに用いる生成多項式の根の指数は、１，２，３，４，５，６となり、他のエラー・シンドロームを２乗することにより計算できるエラー・シンドロームの指数は２，４，６となる。
【０１４０】
これに対して、（１）式で示された生成多項式の根αl，αl+1，……、αl+d-2 を、l＝２となるように選んだ場合（αi＝α2，α3，……，α7）、エラー・シンドロームに用いる生成多項式の根の指数は、２，３，４，５，６，７となり、他のエラー・シンドロームを２乗することにより計算できるエラー・シンドロームの指数は４，６だけとなる。
【０１４１】
このように第３の実施の形態では、生成多項式の根αl，αl+1，……、αl+d-2 を、l＝２となるように選んだ場合よりも、生成多項式の根αl，αl+1，……、αl+d-2 を、l＝１となるように選んだ場合の方が、エラー・シンドローム計算の削減効果が一段と大きくなることが分かり、このような考え方を用いてエラー・シンドローム計算を省略し、省電力化を図るようになされている。
【０１４２】
（３−１）ＢＣＨ符号復号回路の構成
図５において、１は全体として第３の実施の形態におけるＢＣＨ符号復号回路を示し、例えば、位数 ｑ が「２」であり、最小距離 ｄ が「７」のＢＣＨ符号（１５，５）でなる受信語Ｄ１を遅延回路２および第１のエラー・シンドローム演算回路３へ供給する。
【０１４３】
第１のエラー・シンドローム演算回路３は、受信語Ｄ１を構成する生成多項式の根αl，αl+1，……、αl+d-2 を、l＝１となるように選んだ場合（αi＝α，α2，……，α6 ）に対応する６個のエラー・シンドロームＳ１〜Ｓ６のうち、エラー・シンドロームＳ１、Ｓ３だけを計算し、そのエラー・シンドロームＳ１、Ｓ３を判定回路４およびエラー訂正回路６へ供給する。
【０１４４】
このとき遅延回路２は、第１のエラー・シンドローム演算回路３において受信語Ｄ１からエラー・シンドロームＳ１、Ｓ３を計算している時間だけ当該受信語Ｄ１を保持し、その後に受信語Ｄ１を第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ出力する。
【０１４５】
判定回路４は、第１のエラー・シンドローム演算回路３から供給されたエラー・シンドロームＳ１、Ｓ３がいずれも値「０」となっているか否かの第１の判定を行い、これを第１の判定結果Ｘ３として第２のエラー・シンドローム演算回路５およびエラー訂正回路６へ出力する。
【０１４６】
第２のエラー・シンドローム演算回路５は、偽を意味する第１の判定結果Ｘ３を判定回路４から得ると、これまで計算していなかった残りのエラー・シンドロームＳ２，Ｓ４〜Ｓ６を計算し、これらをエラー訂正回路６へ供給する。
【０１４７】
エラー訂正回路６は、全てのエラー・シンドロームＳ１〜Ｓ６のうち、値「０」となっていないエラー・シンドロームＳ１〜Ｓ６に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求め、エラー位置に対するシンボル誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を施し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力する。
【０１４８】
ここでエラー訂正回路６は、エラー訂正能力を超えている場合や、何らかの原因によりエラー・シンドロームＳ１〜Ｓ６に基づいて受信語Ｄ１のエラー位置およびエラー補正値を求めることが出来ない場合、誤り訂正処理が不能であるとして、誤り訂正処理が不能であることを示すフラグを生成することにより誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力する。
【０１４９】
この場合、ＢＣＨ符号復号回路１では、例えばフレーム検出回路７がエラー訂正回路６の後段に設けられているようにすれば、誤り訂正が不能であることを示すフラグの付加された受信語Ｄ２に対してフレーム・チェック・シーケンス等を用いた誤り検出処理を行うことができるので、特に問題は生じない。
【０１５０】
一方、第２のエラー・シンドローム演算回路５は、真を意味する第１の判定結果Ｘ３を判定回路４から得ると、未だ計算していないエラー・シンドロームＳ２、Ｓ４、およびＳ６についても値「０」であるから、エラー・シンドロームＳ５については計算するまでもなく値「０」であるとみなし、残りのエラー・シンドロームＳ２，Ｓ４〜Ｓ６についての計算を実行せずに省略する。
【０１５１】
またエラー訂正回路６は、真を意味する第１の判定結果Ｘ３を判定回路４から得ると、エラー・シンドロームＳ１、Ｓ３がいずれも値「０」となっており、かつエラー・シンドロームＳ２、Ｓ４、およびＳ６についても値「０」であるから、エラー・シンドロームＳ５についても値「０」であるとみなし、遅延回路２から供給された受信語Ｄ１に誤りが一切存在していないものと判断してエラー無訂正処理を行い、当該受信語Ｄ１をそのまま受信語Ｄ２として後段の回路へ出力する。
【０１５２】
（３−２）復号処理手順
このＢＣＨ符号復号回路１において、例えば、位数ｑが「２」であり、最小距離ｄ が「７」であるＢＣＨ符号（１５，５）の復号処理手順について、図６のフローチャートを用いて説明する。
【０１５３】
ＢＣＨ符号復号回路１は、ルーチンＲＴ３の開始ステップから入って、次のステップＳＰ３１へ移り、受信語Ｄ１を構成する生成多項式の根αl，αl+1，……、αl+d-2 を、l＝１となるように選んだ場合（αi＝α，α2，……，α6 ）に対応する６個のエラー・シンドロームＳ１〜Ｓ６のうち、エラー・シンドロームＳ１、Ｓ３だけを第１のエラー・シンドローム演算回路３によって計算し、次のステップＳＰ３２へ移る。
【０１５４】
ステップＳＰ３２においてＢＣＨ符号復号回路１は、ステップＳＰ３１で計算したエラー・シンドロームＳ１、Ｓ３がいずれも値「０」となっているか否かを判定回路４によって判定し、これを第１の判定結果Ｘ３として出力する。
【０１５５】
ここで肯定結果が得られると、このことは真を意味する第１の判定結果Ｘ３が得られ、すなわちエラー・シンドロームＳ１、Ｓ３がいずれも値「０」となっており、全てのエラー・シンドロームＳ１〜Ｓ６がいずれも値「０」であるとみなすことができることを表しており、このときＢＣＨ符号復号回路１は、次のステップＳＰ３３へ移る。
【０１５６】
ステップＳＰ３３においてＢＣＨ符号復号回路１は、全てのエラー・シンドロームＳ１〜Ｓ６がいずれも値「０」であるとみなすことができ、受信語Ｄ１に誤りが生じていないと判断し得るので、エラー訂正回路６により、遅延回路２から供給された受信語Ｄ１をそのまま誤り訂正することなしに出力する誤り無訂正処理を実行し、当該受信語Ｄ１をそのまま受信語Ｄ２として出力し、次のステップＳＰ３９へ移って処理を終了する。
【０１５７】
これに対してステップＳＰ３２で否定結果が得られると、このことは偽を意味する第１の判定結果Ｘ３が得られ、すなわちエラー・シンドロームＳ１、Ｓ３のいずれかが値「０」ではなく、受信語Ｄ１に誤りが存在していることを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ３４へ移る。
【０１５８】
ステップＳＰ３４においてＢＣＨ符号復号回路１は、ステップＳＰ３１で計算していなかった残りのエラー・シンドロームＳ２，Ｓ４〜Ｓ６を第２のエラー・シンドローム演算回路５により計算し、次のステップＳＰ３５へ移る。
【０１５９】
ステップＳＰ３５においてＢＣＨ符号復号回路１は、全てのエラー・シンドロームＳ１〜Ｓ６に基づいて受信語Ｄ１のエラー位置およびエラー補正値の計算をエラー訂正回路６により実行し、次のステップＳＰ３６へ移る。
【０１６０】
ステップＳＰ３６においてＢＣＨ符号復号回路１は、ステップＳＰ３５でエラー位置およびエラー補正値を算出し得たか否かを判定する。ここで肯定結果が得られると、エラー位置およびエラー補正値を算出できたので、誤り訂正処理が可能であると判断し、このときＢＣＨ符号復号回路１は、次のステップＳＰ３７へ移る。
【０１６１】
ステップＳＰ３７においてＢＣＨ符号復号回路１は、エラー訂正回路６により、エラー位置に対するビットの誤りについて、エラー補正値によって受信語と排他的論理和をとることにより誤り訂正処理を実行し、その結果得られる誤り訂正処理後の受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ３９へ移って処理を終了する。
【０１６２】
これに対してステップＳＰ３６で否定結果が得られると、このことはエラー訂正能力を超えているか、或いは他の要因により、エラー訂正回路６によりエラー位置およびエラー補正値の算出が出来なかったことを表しており、このときＢＣＨ符号復号回路１は次のステップＳＰ３８へ移る。
【０１６３】
ステップＳＰ３８においてＢＣＨ符号復号回路１は、エラー位置およびエラー補正値の算出が出来ていないので、誤り訂正処理が不能であることを示すフラグを生成する誤り訂正不能処理を実行し、そのフラグの付加された受信語Ｄ２を後段の回路へ出力した後、次のステップＳＰ３９へ移って処理を終了する。
【０１６４】
（３−３）第３の実施の形態における作用および効果
以上の構成において、ＢＣＨ符号復号回路１では、例えば、位数ｑが「２」であり、最小距離ｄ が「７」であるＢＣＨ符号（１５，５）の復号処理時、まず受信語Ｄ１を構成する生成多項式の根αl，αl+1，……、αl+d-2 を、l＝１となるように選んだ場合（αi＝α，α2，……，α6 ）に対応する６個のエラー・シンドロームＳ１〜Ｓ６のうち、他のエラー・シンドロームを２乗することにより求められるエラー・シンドロームＳ２、Ｓ４、Ｓ６を除いたエラー・シンドロームＳ１、Ｓ３だけを計算した後、そのエラー・シンドロームＳ１、Ｓ３の値に基づいて受信語Ｄ１に誤りが有ったか否かを判定する。
【０１６５】
ここでＢＣＨ符号復号回路１は、エラー・シンドロームＳ１、Ｓ３がいずれも値「０」となっていた場合、未だ計算していないエラー・シンドロームＳ２、Ｓ４およびＳ６についても値「０」であるから、エラー・シンドロームＳ５については計算するまでもなく値「０」であるとみなし、残りのエラー・シンドロームＳ２，Ｓ４〜Ｓ６の計算を実行せずに省略することができるので、エラー・シンドロームの計算において大幅に省電力化を図ることができる。
【０１６６】
また、このときＢＣＨ符号復号回路１は、エラー・シンドロームＳ１〜Ｓ６が全て値「０」であるとみなし、受信語Ｄ１に誤りが生じていないと判断することができるので、当該受信語Ｄ１に対して誤り無訂正処理を行う。
【０１６７】
しかしながら、エラー・シンドロームＳ１、Ｓ３のいずれか又は両方が値「０」ではない場合、受信語Ｄ１に誤りが生じていると判断できるため、未だ計算していない残りのエラー・シンドロームＳ２，Ｓ４〜Ｓ６を計算した後、全てのエラー・シンドロームＳ１〜Ｓ６に基づいてエラー位置計算およびエラー補正値の計算を行い、誤り訂正処理または誤り訂正不能処理を実施する。
【０１６８】
なおＢＣＨ符号復号回路１では、誤り訂正能力を超えて誤りを検出できない場合であっても、通信においては後段ブロックにおいて誤りが発生したことを後段の誤り訂正回路（図示せず）によるフレーム・チェック・シーケンス等により検知することができるので、特に問題はない。
【０１６９】
以上の構成によれば、ＢＣＨ符号復号回路１は、例えば、位数ｑが「２」であり、最小距離ｄ が「７」であるＢＣＨ符号（１５，５）の受信語Ｄ１の復号処理時、当該受信語Ｄ１に基づくエラー・シンドロームＳ１、Ｓ３の値に基づいて誤りが無かった場合、エラー・シンドロームＳ２、Ｓ４〜Ｓ６の計算を省略することにより、誤り検出の精度を落とすことなく効率よく省電力化を図ることができる。
【０１７０】
なお、上述した第３の実施の形態においては、位数ｑが「２」であり、最小距離 d が「７」であるＢＣＨ符号（１５，５）の復号方法について説明したが、一般には、拡大体ＧＦ（２m）上の原始元αの冪αl、αl+1、αl+2、……、αl+d-2（ｄは≧３）を根とするＧＦ（２）上の生成多項式により生成されるＢＣＨ符号の復号方法において、ｎR 個（[（ｄ−１）／２≦ｎR≦（ｄ−２）]）の連続する根αu、αu+1、……、αu+nR-1（l≦ｕ≦l＋ｄ−２、l≦ｕ＋ｎR−１≦l＋ｄ−２）に対応するエラー・シンドロームのうち、他のエラー・シンドロームを２乗することにより求められるものを除いたエラー・シンドロームだけを計算し、その計算したエラー・シンドロームがいずれも値「０」であるか否かの第１の判定を行い、その第１の判定結果Ｘ３が偽ならば誤り有りとして、まだ計算していない残りのエラー・シンドロームを全て計算し、誤り訂正処理を実施すればよく、第１の判定結果Ｘ３が真ならば、受信語Ｄ１には誤りが生じていないと判断して誤り無訂正処理を実施する。
【０１７１】
なお、第３の実施の形態においては、位数ｑが「２」であり、最小距離 ｄ が「７」であるＢＣＨ符号（１５，５）の復号方法を一例として述べたが、位数ｑ＝２、最小距離ｄ≧３、l ≠１または位数ｑ＝２、最小距離ｄ≧４、l ＝１を満たせば、これに限るものでない。
【０１７２】
また、第３の実施の形態においては、第１の実施の形態および第２の実施の形態と組み合わせることが可能であり、その場合、第１の実施の形態および第２の実施の形態におけるＢＣＨ符号復号回路１においても、エラー・シンドロームの計算量を更に大幅に削減することができる。
【０１７３】
（４）他の実施の形態
なお、本発明の第１の実施の形態乃至第３の実施の形態は、上述のものに限定されるものではなく、本発明の要旨を逸脱しない範囲で変更を加えることはもちろんである。
【０１７４】
また、本発明のＢＣＨ符号復号装置においては、第１のエラー・シンドローム演算回路としての第１のエラー・シンドローム演算回路３、第１の判定回路としての判定回路４、誤り訂正処理回路および誤り無訂正処理回路としてのエラー訂正回路６によって構成するようにした場合について述べたが、本発明はこれに限らず、その他種々の回路構成でなる第１のエラー・シンドローム演算回路、第１の判定回路、誤り訂正処理回路および誤り無訂正処理回路によってＢＣＨ符号復号装置を構成するようにしても良い。
【０１７５】
さらに、本発明のＢＣＨ符号復号装置においては、第１のエラー・シンドローム演算回路としての第１のエラー・シンドローム演算回路３、第２のエラー・シンドローム演算回路としての第２のエラー・シンドローム演算回路５、第１の判定回路および第２の判定回路としての判定回路４、誤り訂正処理回路、誤り無訂正処理回路および誤り訂正不能処理回路としてのエラー訂正回路６によって構成するようにした場合について述べたが、本発明はこれに限らず、その他種々の回路構成でなる第１のエラー・シンドローム演算回路、第２のエラー・シンドローム演算回路、第１の判定回路、第２の判定回路、誤り訂正処理回路、誤り無訂正処理回路および誤り訂正不能処理回路によってＢＣＨ符号復号装置を構成するようにしても良い。
【産業上の利用可能性】
【０１７６】
本発明は、通信分野、特に光通信分野において利用することができる。
【符号の説明】
【０１７７】
１…ＢＣＨ符号復号装置、２…遅延回路、３…第１のエラー・シンドローム演算回路、４…判定回路、５…第２のエラー・シンドローム演算回路、６…エラー訂正回路。
【図１】
0005547690.tif 000007
【図２】
0005547690.tif 000008
【図３】
0005547690.tif 000009
【図４】
0005547690.tif 000010
【図５】
0005547690.tif 000011
【図６】
0005547690.tif 000012
【図７】
0005547690.tif 000013