(57)【特許請求の範囲】
【請求項１】
所定の自然数をＰとしたとき、所定の種類の物理量に変調されるバイナリデータを表すナンバーを、最大Ｐ−３個有してなるイニシャルシーケンスに発生した伝送エラーを検出し訂正する方法であって、
前記イニシャルシーケンスに２つのコヒーレンスナンバーを付加して全送信シーケンスを形成するエンコーディング工程と、該２つのコヒーレンスナンバーは、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスに基づいて変調されている前記物理量を伝送し、全受信シーケンスを形成するためにこれを復調する伝送工程と、
前記全受信シーケンスに前記コンビネーションを適用し、該コンビネーションの適用の結果が前記所定のモジュロＰ値に等しくならない場合、伝送エラーが発生したものとし、これを訂正するデコーディング工程とを備えることを特徴とする誤り検出訂正方法。
【請求項２】
前記Ｐが素数であることを特徴とする請求項１に記載の誤り検出訂正方法。
【請求項３】
前記Ｐがプリミティブナンバーとして２を有することを特徴とする請求項１または２に記載の誤り検出訂正方法。
【請求項４】
前記第２のコンビネーションは前記全送信シーケンス内の位置とは無関係に該全送信シーケンス内のナンバーを結合することを特徴とする請求項１乃至３のいずれかに記載の誤り検出訂正方法。
【請求項５】
前記第２のコンビネーションは、前記全送信シーケンスのナンバーの合計のモジュロＰであることを特徴とする請求項４に記載の誤り検出訂正方法。
【請求項６】
前記第１のコンビネーションは、前記全送信シーケンスにおける各ナンバーと、前記Ｐより小さい自然数値であるポジションナンバーとの積の合計であり、該ポジションナンバーは該全送信シーケンス内のナンバーの位置のみに関連することを特徴とする請求項１乃至５のいずれかに記載の誤り検出訂正方法。
【請求項７】
前記Ｐがプリミティブナンバーとして２を有し、前記ポジションナンバーは、２のべき乗のモジュロＰ値で表され、そのべき乗の指数は各ナンバーの前記全送信シーケンス内の位置を表す数であることを特徴とする請求項６に記載の誤り検出訂正方法。
【請求項８】
前記デコーディング工程は、前記全受信シーケンスの全てのナンバーを加算し、その加算結果と前記第２のコンビネーションに対応する所定値との差をとることにより伝送エラーによる誤差を獲得し、この誤差が０でない場合は、該全受信シーケンス中の各ナンバーと当該ナンバーの該全受信シーケンスにおける位置に対応するポジションナンバーとの積の合計と、前記第１のコンビネーションに対応する所定値との差のモジュロＰ値を前記誤差で除算することにより該全受信シーケンスにおけるエラーの位置に対応するポジションナンバーを獲得することを特徴とする請求項５または６に記載の誤り検出訂正方法。
【請求項９】
前記所定値はゼロであり、前記第２のコンビネーションを前記全受信シーケンスに適用した結果が誤差となり、該誤差がゼロでない場合は、該全受信シーケンスに前記第１のコンビネーションを適用した結果を該誤差で除算した結果が全受信シーケンスにおけるエラーの生じたナンバーの位置に対応するポジションナンバーとなることを特徴とする請求項８に記載の誤り検出訂正方法。
【請求項１０】
全送信シーケンスのナンバーの伝送時に発生したエラーを検出し訂正する誤り検出訂正方法であって、前記ナンバーの各々は所定の種類の物理量に変調されるＮ個のバイナリシンボルによって表され、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを含み、該２つのコヒーレンスナンバーは、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がＮの倍数から１を差し引いた数に等しい場合、前記全受信シーケンスにおいて、Ｎ−１個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置／評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。
【請求項１１】
全送信シーケンスのナンバーの伝送時に発生したエラーを検出し訂正する誤り検出訂正方法であって、前記ナンバーの各々は所定の種類の物理量に変調されるＮ個のバイナリシンボルによって表され、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを含み、該２つのコヒーレンスナンバー、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がＮの倍数に１を加えた数に等しい場合、前記全受信シーケンスにおいて、Ｎ＋１個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置／評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。
【請求項１２】
Ｐ個のナンバーよりも少ない全送信シーケンスの伝送時におけるエラーを検出し訂正する方法であって、各ナンバーは物理量に変調されるＮ＋１個のバイナリシンボルで表され、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを有し、ここで、該２つのコヒーレンスナンバーは２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がＮ＋１の倍数から１を差し引いた数に等しい場合、前記全受信シーケンスにおいて、Ｎ個の連続したバイナリシンボルのグループをＮ＋１個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置／評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。
【請求項１３】
Ｐ個のナンバーよりも少ない全送信シーケンスの伝送時におけるエラーを検出し訂正する方法であって、各ナンバーは物理量に変調されるＮ＋１個のバイナリシンボルで表され、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを有し、ここで、該２つのコヒーレンスナンバーは２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がＮ＋１の倍数に１を加えた数に等しい場合、前記全受信シーケンスにおいて、Ｎ＋２個の連続したバイナリシンボルのグループをＮ＋１個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正しいか否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置／評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。
【請求項１４】
所定の自然数をＰとしたとき、最大Ｐ−３個のナンバー有してなるイニシャルシーケンスをコーディングするための装置であって、
前記イニシャルシーケンスに２つのコヒーレンスナンバーを付加して全送信シーケンスを形成する演算処理手段と、該２つのコヒーレンスナンバーは、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々が所定のモジュロＰの値になるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーを位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを送信するために物理量に変調し、これを送信する変調手段とを備えることを特徴とするコーディング装置。
【請求項１５】
前記Ｐが素数であることを特徴とする請求項１４に記載のコーディング装置。
【請求項１６】
前記Ｐがプリミティブナンバーとして２を有することを特徴とする請求項１４または１５に記載のコーディング装置。
【請求項１７】
請求項１６に記載のコーディング装置による全送信シーケンスの伝送時におけるエラーを検出し訂正する装置であって、
前記物理量を復調し、前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンスのナンバーに前記コンビネーションを適用して、該コンビネーションの結果が前記所定のモジュロＰ値に等しくない場合、伝送エラーが生じたものとする処理手段とを備えることを特徴とする誤り検出訂正装置。
【請求項１８】
前記第２のコンビネーションは前記全シーケンスにおけるナンバーの合計であり、
前記処理手段は、該第２のコンビネーションを前記全受信シーケンスに適用した結果得られた値から前記全送信シーケンスのナンバーの合計である前記所定の値を差し引いて得られた差を訂正すべき誤差とし、前記第１のコンビネーションは送信された全シーケンス内のナンバーと該全シーケンス中のナンバーの位置に対応するポジションナンバーとの積の合計であり、前記誤差がゼロでない場合は該第１のコンビネーションを前記全受信シーケンスと前記全送信シーケンスに適用した結果の差を前記誤差で除算するものであり、この除算の結果が誤ったナンバーの存在する位置に対応するポジションナンバーを表すことを特徴とする請求項１７に記載の誤り検出訂正装置。
【請求項１９】
Ｎ個のバイナリシンボルによって表されるナンバーで構成された全送信シーケンスの伝送時に発生したエラーを検出し訂正する誤り検出訂正装置であって、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを含み、該２つのコヒーレンスナンバー、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行うものであり、
物理量を復調して前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンス内のバイナリシンボルの数を計数し、その計数結果がＮの倍数から１を差し引いた数に等しい場合、置換フェーズにおいて、前記全受信シーケンスのＮ−１個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルのグループに順次置換し、確定フェーズにおいて前記置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための処理を用いて確定する処理手段とを備えることを特徴とする誤り検出訂正装置。
【請求項２０】
Ｎ個のバイナリシンボルによって表されるナンバーで構成された全送信シーケンスの伝送時に発生したエラーを検出し訂正する誤り検出訂正装置であって、前記全送信シーケンスは少なくとも２つのコヒーレンスナンバーを含み、該２つのコヒーレンスナンバー、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行うものであり、
物理量を復調して前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンス内のバイナリシンボルの数を計数し、その計数結果がＮの倍数に１を加えた数に等しい場合、置換フェーズにおいて、前記全受信シーケンスのＮ＋１個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルのグループに順次置換し、確定フェーズにおいて前記置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための処理を用いて確定する処理手段とを備えることを特徴とする誤り検出訂正装置。
【請求項２１】
前記処理手段は、全シーケンス内のナンバーの合計を得る第２のコンビネーションを用い、該第２のコンビネーションを全受信シーケンスに適用して得られた値から前記全送信シーケンス内のナンバーの合計である前記所定の値を差し引いて得られた値を訂正すべきエラーの誤差とし、この誤差がゼロでない場合は、送信された全シーケンスのナンバーと該全シーケンス中の各ナンバーの位置に対応するポジションナンバーとの積の合計を得る第１のコンビネーションを用い、該第２のコンビネーションを前記全受信シーケンスに適用して得られた値と該第２のコンビネーションを前記送信シーケンスに適用して得られた値との差を前記誤差で除算し、この除算の結果をエラーの発生したナンバーの存在する位置に対応したポジションナンバーとし、このエラーの発生したナンバーの存在する位置を示すポジションナンバーが置換されたナンバーの位置を示すか、或いは前記誤差がゼロとなる場合は、当該置換されたナンバーが前記確定フェーズにおいて確定されることを特徴とする請求項１９または２０に記載の誤り検出訂正装置。
【請求項２２】
請求項１６に記載の装置を備え、前記変調手段によって変調される前記所定の物理量はバーの反射率であることを特徴とするバーコードプリンタ。
【請求項２３】
請求項１７乃至２１のいずれかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記所定の物理量がバーの反射率であることを特徴とするバーコードリーダ。
【請求項２４】
請求項１７乃至２１の何れかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記物理量がケーブルネットワークによって伝送されることを特徴とするネットワーク受信装置。
【請求項２５】
請求項１７乃至２１の何れかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記物理量が大気中を伝播されることを特徴とする無線受信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物理量を変調した一連のバイナリワードにおけるエラーを検出し訂正する方法及び装置に関する。
【０００２】
また、本発明は、特に、バーコード読みとりエラー、より一般的には、２つのシステム間のデータ伝送におけるエラーの検出に関するものである。
【０００３】
【従来の技術】
２つのデバイス間のいかなるデータ伝送にも、伝送エラーはつきものである。これらのエラーは、それらの伝送回数のみならず、伝送媒体、すなわち、あるシステムから他のシステムへデータ項目を送るための送信路にも起因する。このようなエラーは、電気通信において、あるいは光学的、磁気的あるいは電気的等によるデータ格納において用いられる一般的な媒体で生じ得る。
【０００４】
また、ここで、２つのデバイス間のデータ伝送とは、データを遠隔伝送するものばかりでなく、データの伝送が生ずる同一回路内の２つのコンポーネント間の、あるいは同一システム内の２つの要素間のデータ伝送も含んでいる。
【０００５】
多くのバーコードが、格納されたデータにチェックディジットを付加するというオプションを用意している。このチェックディジットは、受信したデータがエラーを含むかどうかをチェックするのに用いられる。一般に、数値が各文字に割り当てられる。例えば、英数字コード３９では、すべてのメッセージキャラクタに割り当てられた数値の合計のモジュロ４３で表されるサムが算出され、このサムに等しい数値が割り当てられたキャラクタがメッセージキャラクタの後に追加される。この場合、すべてのキャラクタが受信されると、最後の１つのキャラクタを除くすべてのキャラクタの合計のモジュロ４３をサム値とし、このサム値がその最後のキャラクタの数値と等しくなければならない。もし等しくなければ、伝送エラーが発生したことがわかる。一方、このコードでは伝送エラーの訂正はできない。
【０００６】
コード９３と呼ばれる別の英数字バーコードは、読取デリミタの最後（そのコードの最後のデータ）の直前に、誤った英数字キャラクタの検出と訂正のための２つのチェックキーを含む。検出の原理は、モジュロ４７カウンティングに基づく。しかしながら、この方法では、４８文字より少ないアルファベットにしか対応できない。また、数字４７を計算の基準として用いると、伝送エラーがあったかどうかを検出するための、特にエラーの存在場所とそのエラーをどのように訂正するかを決定するためのデコーディングアルゴリズムが複雑になる。
【０００７】
チェックキーと協動するコード１２８は、１２８文字のアルファベットの使用を可能とする。このコードもやはり最後の読取キャラクタの手前にチェックキャラクタを有する。これは以下のようにして計算される。各々の有意なキャラクタの値（開始を示すコードキャラクタを除く）に、当該キャラクタ列の順序に従って決定される当該キャラクタの位置の値が乗じられる。ここで、最も左の第１の位置が１という値を有し、その次が２、その次が３というように値を有する。これらの積の和がコードキャラクタのスタートの値に加算され、こうして得られた合計値を１０３で割る。そして、そのあまりがエンコードすべきチェックキャラクタの値に対応する。その結果、読取エラーは訂正され得ず、単に検出されるのみである。
【０００８】
【発明が解決しようとする課題】
結局、これらのコードの何れにおいても、キャラクタ列におけるバイナリシンボルの偶発的な増加あるいは喪失からなるエラー、或いはバーコードにおけるバーの増加或いは喪失を訂正することはできない。
【０００９】
本発明は、これらの問題を解決しようとするものである。まず第１に、エラー検出及び訂正の方法が、最大６７文字を有するアルファベットを扱う装置に関して追究された。このコード体系では、７個のバイナリでアルファベットが表されるが、この７個のバイナリにおいては、５つ以上の連続した同一のバイナリシンボルが含まれず、最初の３つのバイナリシンボルが同一のバイナリシンボルの連続でなく、同様に、最後の３つのバイナリシンボルも同一のものの連続ではない（図１４に示すテーブル１の第１カラム及び第５カラムを参照）。
【００１０】
更に、発明者は、冗長データ（コヒーレンスナンバー）の計算を更に容易化する方法、及びこれらのコヒーレンスナンバーを非常に高速性が要求される装置において容易に適用する方法を開発することを追究した。
【００１１】
また、発明者は、欧州特許出願95 400 178に記載された方法に基づいて生成されるような、バーコード読取エラーを確実に検出することが可能な方法及びこれを用いた装置を開発することを追求した。
【００１２】
更に、本発明者は、ナンバーの伝送におけるエラーのみならず、最大２のｎ乗個のナンバーからなるシーケンス内の、いかなるナンバーのいかなる位置におけるバイナリシンボルの付加及び脱落によるエラーをも検出、訂正する方法および装置を提供することを追求した。
【００１３】
【課題を解決するための手段】
従って、本発明の一つの目的は、最大でＰ−３個のナンバーからなるイニシャルシーケンスの、いかなる伝送エラーをも検出し、訂正するための方法を提供することにある。なお、ここで、Ｐは所定の自然数であり、各ナンバーはバイナリデータを表し、所定の種類の物理量に変調されたものである。そして、この目的を達成する本発明の方法によれば、
前記イニシャルシーケンスに２つのコヒーレンスナンバーを付加して全送信シーケンスを形成するエンコーディング工程と、該２つのコヒーレンスナンバーは、２つの所定のコヒーレンスチェックである第１及び第２のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロＰ値となるように決定され、少なくとも該第１のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスに基づいて変調されている前記物理量を伝送し、全受信シーケンスを形成するためにこれを復調する伝送工程と、
前記全受信シーケンスに前記コンビネーションを適用し、該コンビネーションの適用の結果が前記所定のモジュロＰ値に等しくならない場合、伝送エラーが発生したものとし、これを訂正するデコーディング工程とを備える。
【００１４】
上記の、本発明によるエンコーディング方法によれば、上述の欠点が解消される。この、冗長データ（すなわち、コヒーレンスナンバー）を発生する方法は簡単であり、本発明に係る訂正を行う装置が伝送エラーを検出し、それらを訂正することを可能とする。
【００１５】
また、本発明の別の利点としては、本方法を実施するために、伝送されるデータの数を前もって知っておく必要が無いことである。
【００１６】
本発明による方法は、使用可能な異なるキャラクタの個数が最大Ｐ個のエレメントからなる場合はいつでも使用できる。例えば、６ビット一組のセットでは、６ビットのグループが２の６乗（＝６４）個の異なるキャラクタを構成する。そして、本例では、冗長データ（コヒーレンスナンバー）がＰ個の異なる値を推定でき、このため２の６乗より大きくなり、各々は少なくとも７個のビットで表現されなけばならない。
【００１７】
また、特定の実施形態によれば、Ｐは素数である。この形態による利点は、イニシャルシーケンスが実効的にＰ−３個のナンバーを有することができる点にある。もし、Ｐが素数でなければ、イニシャルシーケンスにおけるナンバーの数はＰ−３より少ない数に限定される。
【００１８】
また、特定の実施形態によれば、Ｐはプリミティブナンバーを有する。この形態による利点は、イニシャルシーケンスにおける各位置が前記プリミティブナンバーのべき乗（モジュロＰ）としてコード化され得ることである。
【００１９】
また、特定の実施形態によれば、Ｐのプリミティブナンバーは２である。イニシャルシーケンスの各位置は２のべき乗、モジュロＰとしてコード化され得る。
【００２０】
また、特定の実施形態によれば、上記第２のコンビネーションは、全送信シーケンスにおける位置とは無関係に、全送信シーケンス中のナンバーを足しあわせることによって結合し、合計値を得る。また、この実施形態によれば、第１のコンビネーションは、全送信シーケンスにおける各ナンバーと、Ｐより小さい自然数からなるポジションナンバーとの積の合計のモジュロＰ値をとる。ここで、このポジションナンバーは全送信シーケンス内の対応する位置にあるナンバーにのみ作用するものである。デコーディングフェーズは、全受信シーケンス内の全ナンバーを足し合わせてモジュロＰを取り、この値と第２のコンビネーションに関する上記所定値との差をエラーによる誤差とする。そして、この誤差がゼロでない場合は、全受信シーケンスの各ナンバーと対応するポジションナンバーとの積の合計と、全送信シーケンスのナンバーと対応するポジションナンバーとの積の合計との差を算出し、これを上記誤差で割った値のモジュロＰを取る。こうして得られた値は、上記受信シーケンスにおけるエラーの発生位置に対応するポジションナンバーとなる。
【００２１】
上記構成の利点の一つは、これらのナンバーの伝送時におけるいかなるエラーをも検出し、その位置を特定し、それを訂正できることである。
【００２２】
更に詳しくは、第２のコンビネーションは全送信シーケンスのナンバーのサム、モジュロＰであり、これに係る上記所定値は０である。
【００２３】
以上のような本発明の第１の観点は、その計算方法が反復的であり、その結果、簡易な回路構成で実現することができる。例えば、Ｐ＝６７とし、本方法がモジュロ６７のカウント方法を用いると、第１の利点として、欧州特許出願95 400 178におけるシンボルの数に正確に対応することが挙げられる。また、素数であることによる利点を有し、モジュロ６７による除算は明確に定義される。また、Ｐは、少なくともプリミティブナンバー２を有する。すなわち、指数の連続する２のべき乗をそれぞれ６７で割ったあまりとして得られるナンバーのシーケンスには、１から６６までが１つずつ出現するが、その順序が大小順とは異なる。指数が連続する２のべき乗のモジュロ６７は、計算が容易なポジションナンバーを構成する。
【００２４】
コヒーレンスナンバーの計算は、本発明による訂正処理がイニシャルシーケンスの伝送において発生したあらゆるナンバーのエラーを検出し、当該エラーを訂正可能とするものである。これは、２つのコヒーレンスナンバーを含む全受信シーケンスのナンバーの合計値のモジュロＰが、全受信シーケンスを害するあらゆるエラーに等しくなるからである。すなわち、全受信シーケンスにおける誤ったナンバーと、全送信シーケンスの対応するナンバーとの差に等しくなる。
【００２５】
全送信シーケンスに対して求めた第２のコンビネーションと同じものを全受信シーケンスについて求めることにより、そして、このコンビネーションを全受信シーケンス中のナンバーの合計値によって除し、モジュロＰを取ることにより、上記エラーナンバーに対応する全受信シーケンス中の位置を示す整数値を得ることができる。
【００２６】
こうして、本発明の第１の観点によれば、全送信シーケンスを変調し、伝送し、これを全受信シーケンスに復調する処理を行う伝送フェーズの後に、デコーディングフェースが実行される。デコーディングフェーズは、全受信シーケンスにおける全ナンバーを足し合わせる。得られた合計値は伝送エラーによるあらゆる誤差に等しくなる。ここで、この誤差がゼロでない場合は、全受信シーケンスにおける各ナンバーと各ナンバーの位置に対応する整数値との積の合計を上記エラーによって除算し、モジュロＰを得ることで、全受信シーケンスにおけるエラーの位置を表す整数値を獲得する。
【００２７】
この本発明の第１の観点は、ナンバーの伝送におけるエラーに関するものであり、それらを表すバイナリデータの数には影響しないものである。
【００２８】
これに対して、本発明の第２の観点は、偶発するバイナリシンボルの付加、脱落に関し、それを検出し訂正することを可能とするものである。
【００２９】
概述すると、本発明の第２の観点は、全送信シーケンスのナンバーにおけるあらゆるエラーを検出し訂正するための方法に関し、各ナンバーは所定の物理量を変調するＮ個のバイナリシンボルによって表現され、該全送信シーケンスは少なくとも２つの適応したコヒーレンスナンバーを含み、配置／評価処理によってあらゆるエラーを訂正可能とするものである。そして、本方法は、
全送信シーケンスを表す物理量を復調して得られた全受信シーケンスのバイナリシンボルの数をカウントするカウントフェーズと、
この数がＮの倍数よりｊ少ない値に等しい場合、ここで、ｊはＮの１／２より小さい整数であり、全受信シーケンス内において、Ｎ−ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルで順次置き換える置換フェーズと、
各置換位置毎に、置換が正しいか否かを、配置／評価プロセスを実行することで決定する確定フェーズとを有することを特徴とする。
【００３０】
また、本発明の第２の観点は、全送信シーケンスのナンバーにおけるあらゆるエラーを検出し訂正するための方法に関し、各ナンバーは所定の種類の物理量に変調されるＮ個のバイナリシンボルによって表現され、該全送信シーケンスは少なくとも２つの適応したコヒーレンスナンバーを含み、配置／評価処理によって、あらゆるエラーを訂正可能とするものである。そして、本方法は、
全送信シーケンスを表す物理量を復調して得られた全受信シーケンスのバイナリシンボルの数をカウントするカウントフェーズと、
この数がＮの倍数よりｊ多い値に等しい場合、ここで、ｊはＮの１／２より小さい整数であり、全受信シーケンス内において、Ｎ＋ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルで順次置き換える置換フェーズと、
各置換位置毎に、この位置における置換が正しいか否かを、配置／評価処理を実行することで決定する確定フェーズとを有することを特徴とする。
【００３１】
詳しくは、エラーの配置／評価処理は、上記エラー検出及び訂正の方法として説明した本発明の第１の観点によって構成される。
【００３２】
更に詳しくは、本発明の第２の観点によれば、Ｐ個よりも少ないナンバーの全送信シーケンスの伝送時のあらゆるエラーを検出し訂正する方法を提供することを目的とする。ここで、各ナンバーは、所定の種類の物理量に変調されるＮ＋１個のバイナリシンボルで表され、上記全送信シーケンスは本発明の第１の観点による少なくとも２つのコヒーレンスナンバーを含む。そして、本方法は、
カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られる全受信シーケンス中のバイナリシンボルの数を数え、
この数がＮ＋１の倍数よりｊを差し引いた値に等しい場合、ここでｊは（Ｎ＋１）／２よりも小さく、置換フェーズにより、全受信シーケンス内において、Ｎ＋１−ｊ個の連続したバイナリシンボルのグループをＮ＋１個の置換バイナリシンボルで順次置換し、
確定フェーズにおいて、各置換位置毎に、置換の位置が正しいか否かを、本発明の第１の観点に基づく方法を実行することで決定することを特徴とする。
【００３３】
更に、本発明の第２の観点は、Ｐ個よりも少ないナンバーの全送信シーケンスの伝送時のあらゆるエラーを検出し訂正する方法である。ここで、各ナンバーは、所定の種類の物理量に変調されるＮ＋１個のバイナリシンボルで表され、上記全送信シーケンスは本発明の第１の観点による少なくとも２つのコヒーレンスナンバーを含む。そして、本方法は、
カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られる全受信シーケンス中のバイナリシンボルの数を数え、
この数がＮ＋１の倍数よりｊを加えた値に等しい場合は、ここでｊは（Ｎ＋１）／２よりも小さく、置換フェーズにより、全受信シーケンス内において、Ｎ＋１＋ｊ個の連続したバイナリシンボルのグループをＮ＋１個の置換バイナリシンボルで順次置換し、
確定フェーズにおいて、この置換の位置が正しいか否かを、本発明の第１の観点に基づく方法を実行することで決定することを特徴とする。
【００３４】
なお、エラーの危険性において、ただ１つのバイナリデータアイテムが増加、脱落するという可能性が最も大きい。従って、本発明は非常に効果的である。
【００３５】
更に、本発明の目的は最大Ｐ−３個のナンバーからなるイニシャルシーケンスのコーディングを行う装置を提供することを目的とする。ここで、Ｐは所定の自然数である。該装置は、イニシャルシーケンスに２つのコヒーレンスナンバーを付加して全送信シーケンスを形成するべく適用される中央演算処理ユニットを含む。２つのコヒーレンスナンバーは、全送信シーケンスに適用される２つの所定のコヒーレンスチェックのコンビネーションの各々が、モジュロＰの所定の値を与えるように決定される。そして、少なくとも上記コンビネーションのうちの第１のコンビネーションが、全送信シーケンスにおけるナンバーをそれぞれの位置の関数として結合する。そして、上記装置は、物理量の変調器を含み、該変調された物理量は全送信シーケンスの送信に適用される。
【００３６】
本発明の他の目的は、上述した装置による全送信シーケンスの送信中に発生したエラーを検出し訂正するための装置を提供することにある。この装置は、全送信シーケンスを表す物理量を復調して、受信された全シーケンスを提供する復調部と、全受信シーケンスのナンバーに上記コンビネーションを適用する中央処理ユニットとを含む。そして、上記コンビネーションを適用した結果、その値が上記モジュロＰの所定値に等しくならない場合は、伝送エラーが発生したものと判断される。
【００３７】
更に本発明の他の目的は、Ｎ個のバイナリシンボルによって表されるナンバーの列で構成された全送信シーケンスの送信において発生したエラーを検出し訂正する装置を提供することにある。そして、本装置は、物理量を復調し、全送信シーケンスを表す受信された全シーケンスを提供する復調部と、上記全受信シーケンスにおけるバイナリシンボルの数をカウントし、置換フェーズの実行を制御するための中央処理ユニットを含む。ここで、置換フェーズは、バイナリシンボルのカウント値がＮの倍数から整数値ｊ（ｊはＮ／２より小さい値とする）を差し引いた数に等しい場合に実行され、当該全受信シーケンスにおいて、順次、Ｎ−ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルに置き換える。
【００３８】
更に本発明の他の目的は、Ｎ個のバイナリシンボルによって表されるナンバーの列で構成された全送信シーケンスの送信において発生したエラーを検出し訂正する装置を提供することにある。そして、本装置は、物理量を復調し、全送信シーケンスを表す受信された全シーケンスを提供する復調部と、上記全受信シーケンスにおけるバイナリシンボルの数をカウントし、置換フェーズの実行を制御するための中央処理ユニットを含む。ここで、置換フェーズは、バイナリシンボルのカウント値がＮの倍数に整数値ｊ（ｊはＮ／２より小さい値とする）を加えた数に等しい場合に実行され、当該全受信シーケンスにおいて、順次に、Ｎ＋ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルに置き換える。
【００３９】
より詳しくは、本発明による検出訂正の装置は、中央処理ユニットが以下の処理を行うべく適用される。すなわち、
全受信シーケンスにおけるナンバーの合計と等しい第２のコンビネーションを獲得し、
この第２のコンビネーションから、全送信シーケンスにおける各ナンバーの合計に基づく所定値を差し引くと、訂正されるべきあらゆるエラーによる誤差がこの差に等しくなり、誤差が０でない場合は、
全送信シーケンスにおけるナンバーと当該ナンバーの該シーケンスにおける位置に対応するポジションナンバーとの積の合計を得る第１のコンビネーションを実行し、
上記第１のコンビネーションを全受信シーケンスに適用して得られた結果と該第１のコンビネーションを全送信シーケンスに適用して得られた結果との差を上記誤差で除算し、この結果を、エラーの生じたナンバーが存在するポジションに対応するポジションナンバーとして用い、
エラーの生じたナンバーが存在する位置を示すポジションナンバーが置換されたナンバーの位置であった場合、或いは誤差が０となった場合に、確定フェーズにおいて置換ナンバーを確定する。
【００４０】
また、本発明の目的は、上述の本発明の装置を内蔵するバーコードプリンタ、バーコードリーダ、ネットワークトランシーバ、リモートトランシーバを提供することにある。
【００４１】
本発明の他の目的、特徴、利点は、以下に添付の図面を参照してなされる本発明の実施の形態の説明からも更に読み取ることができる。
【００４２】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００４３】
なお、コーディング技術の分野における周知の定義に従って、本明細書の記載において以下の用語を用いるものとする。
・バイナリシンボル：２つの値を取り得るシンボルであり、一般には「０」と「１」が用いられる。
・バイナリワード：所定の長さのバイナリシンボルの並びである。
・キャラクタ：所定の長さのバイナリシンボルの並びであり、アルファベットの一つを構成するものである。
・ナンバー：バイナリワードの各々に関連付けられた番号である。
・イニシャルシーケンス：伝送されるべきデータを表す一連のバイナリワードの並びである。
・全送信シーケンス：コヒーレンスナンバーに対応する２つのバイナリワードが付加されたイニシャルシーケンスである。
・全受信シーケンス：全送信シーケンスの変調と送信のための媒体として機能する物理量を復調して得られた結果のシーケンス。
・コヒーレンスナンバー：全送信シーケンスのバイナリワードに対応するナンバーにコンビネーションを適用した結果として得られるナンバー。
・置換ナンバー：置換フェーズにおいて、連続したバイナリシンボルのセットに置き換わるバイナリワード。
【００４４】
また、以下の説明において、コヒーレンスナンバーがどのようにして生成されるかを説明するために幾つかのテーブルを用いる。以下、これらのテーブルについて説明を行っておく。
【００４５】
図１４に示されるテーブル１は、カラム３及び７にシンボルの例を（ここでは主に英数文字である）示し、カラム２及び６に各シンボルに対応する０〜６６のナンバーの例を、カラム１及び５に各シンボルに対応するバイナリワードの例を示すテーブルである。なお、バイナリワードは、特に、上記特許出願において記述されているバーコードプリントに従うものである。
【００４６】
図１５に示されるテーブル２は、カラム１及び３に、指数の連続する２のべき乗（２の６６乗まで）を示し、カラム２及び４に、それら指数の連続する２のべき乗値のモジュロ６７を示している。
【００４７】
図１６に示されるテーブル３は、カラム２及び４に１〜６６の数値の２を底とする対数値を、カラム１及び３にモジュロ６７が有効となる計算結果を示すテーブルである。例えば、２を底とする１７の対数は６４である。なぜならば、２の６４乗のモジュロ６７の値が１７だからである（テーブル２を参照）。このように、テーブル３は、テーブル２の逆関数に対応するものである。
【００４８】
図１７に示されるテーブル４は、カラム２及び４に、カラム１及び３に示されたナンバーの値の逆数のモジュロ６７を示す。与えられたナンバーの逆数値による乗算のモジュロ６７は、与えれたナンバーによる除算に対応する。
【００４９】
これらのテーブルは後述のＲＯＭに格納され、必要に応じて読出される。このような、ＲＯＭよりの簡易な読み出しは、本実施形態の各処理を実行するためにこれらの値の各々を再度計算するという必要性を回避するものである。
【００５０】
以下、図１を参照して本発明の第１の観点に従った装置の実施形態の説明を行う。本装置は、図１の如きブロック図によって示され、装置全体が参照番号１０によって表されている。装置１０は、アドレス／データバス１６によって相互に接続された以下の構成を備える。すなわち、
・中央演算処理部（以下、ＣＰＵ）１１と、
・ＲＡＭ１２と、
・ＲＯＭ１３と、
・本装置１０によってコヒーレンスナンバーが付加され、送信される対象となるデータを受信する入力ポート１４と、
・これら送信すべきデータに対応するナンバーと、コヒーレンスナンバーとを含む全送信シーケンスの伝送を行う出力ポート１５と、
・電気信号を物理量に変換する変調器１７とを含む。
【００５１】
特にＲＡＭ１２は、最大６４個のナンバーからなるイニシャルシーケンスを格納するレジスタを有する。ここで、ナンバーは６７個の異なる値或いは文字やシンボルを表し得るものである。これらのナンバーは、７個のバイナリシンボルで構成され、同一ロジック状態のバイナリシンボルが５つ以上連続することはなく、且つ最初の３つのバイナリシンボルの全てが同一のロジック状態とはならず、且つ最後の３つのバイナリシンボルの全てが同一のロジック状態とはならないという規則に則っている。更に、ＲＡＭ１２は、以下に説明する７つの変数グループ、ｉ、ｎ（ｉ）、Ｓｕｍ（ｉ）、DoubleSum（ｉ）、送信シーケンス、ＲＯ及びＲＩを備える。ＲＯＭ１３はＣＰＵ１１の処理プログラムを格納するのに用いられる。そして、ＣＰＵ１１は、ＲＯＭ１３に格納されたプログラムを実行することにより、図３に示されるフローチャートを実現する。
【００５２】
なお、この構成は、情報処理技術の専門家には周知であり、これ以上の詳細な説明は省略する。
【００５３】
変調器１７は所定の物理量を電気信号の関数として変換する。ただし、物理量は、図８、７で後述するような光反射量であってもよいし、図１０、図１１によって後述するようなネットワークを転送される電気的或いは光学的信号であってもよいし、更に、図１２、図１３によって後述するような音響的、光学的、電磁気的信号であってもよい。
【００５４】
図２は、図３によって後述するエンコーディングフェーズの遂行によって得られる全送信シーケンスを示す図である。この全送信シーケンスは、スタートデリミタ（キャラクタ）２１とエンドデリミタ２２の間に、送信すべきイニシャルシーケンス２０の各ナンバーと、これに続く２つのコヒーレンスナンバー、すなわち冗長データＲＯ、ＲＩを含む。
【００５５】
スタートデリミタ２１とエンドデリミタ２２は、このメッセージを読み取る手段に対して当該メッセージの開始と終了を示すものであり、これらは当業者には周知である。
【００５６】
コヒーレンスナンバーＲＯとＲＩは図３に示される方法に従って計算される。図３は、送信されるべきイニシャルシーケンスに関るコヒーレンスナンバーを生成する手順を示すフローチャートである。
【００５７】
全体的に説明すると、ＲＯ、ＲＩは本発明の第１の観点に基づいて次のようにして決定される。すなわち、コヒーレンスナンバーＲＯ、ＲＩは、当該全送信シーケンスに２つの所定の「コヒーレンスチェック」コンビネーションを適用し、各々の結果のモジュロ６７が所定の値を与えるように選択される。少なくとも、これらのコヒーレンスチェックコンビネーションのうちの第１のコヒーレンスチェックは、全送信シーケンスにおける各ナンバーの位置に基づいて、全送信シーケンスにおけるそれぞれのナンバーを結合する。
【００５８】
更に詳しくは、ここで、コヒーレンスナンバーＲＯ及びＲＩは、全送信シーケンスにおける全ナンバーの合計のモジュロ６７が「無し」（すなわち０、こうして第２の組み合わせに対応する所定値となる）となるように選択される。一方、ＲＯ及びＲＩは、全送信シーケンスにおける各ナンバーを対応するポジションナンバーで乗じて得られた合計のモジュロ６７が「無し」（すなわち０、こうして第１のコンビネーションに対応する所定値となる）となる。ここで、全送信シーケンスにおける各ナンバーのポジションナンバーは、当該ナンバーの全送信シーケンスにおける順番に対応する数を指数とする２のべき乗である。ここで、順番に対応する数とは、最後（ＲＩ）のナンバーからの順序を示す数であり、この最後のナンバーの位置には指数０（２の０乗）が割り当てられる。
【００５９】
これらの規則に基づいて、ＣＰＵ１１は２つの方程式からなる連立方程式の解を求めることになる。このようなエンコーディングフェーズの後に、全送信シーケンスは送信フェーズに移され、所定の物理量に変換され、送信され、更に、全受信シーケンスを形成するために復調される。そして、これに続くデコーディングフェーズによって、あらゆる伝送エラーが検索される。
【００６０】
次に、本発明の第１の観点に基づくデコーディングフェーズの概要を説明する。このデコーディングフェーズは、エンコーディングフェーズで用いたコンビネーションを受信した全シーケンス中のナンバーに適用する。そして、このコンビネーションの適用結果が、上述した各コンビネーションに対応する所定のモジュロ６７の値に等しくない場合、伝送エラーが発生したと推定され、当該全受信シーケンスに訂正がなされる。
【００６１】
上述のコヒーレンスナンバーＲ０、Ｒ１の計算方法によれば、全受信シーケンスにおけるナンバーに適用されたコンビネーションの結果がゼロであった場合は、伝送が正しく機能したことを意味する。
【００６２】
次に、伝送されたバイナリワードの一つにおいて、バイナリシンボルの総数に変化を与えないシングルエラーが発生したと仮定して説明を行う。この場合、全受信シーケンスに第２のコンビネーションを適用した結果がナンバーαを与えるのであれば、これはエラーの発生によって生じた誤差を示すものである。また、もし第１のコンビネーションを適用した結果がナンバーβを与えるのであれば、βをαで除算した結果がエラーの発生したナンバーの位置を示すポジションナンバーを示す。従って、当該ポジションナンバーによって示される位置に、誤差αを加算することで、当該位置におけるナンバーを訂正することができる。
【００６３】
特に、上記除算では必然的に２のべき乗が結果として与えられ、このべき乗の指数がエラーの発生したナンバーの位置を与えるものとなる。なお、エラーの発生したナンバーの位置は、Ｒ０から始まり、全受信シーケンスを通して順次増加する番号で与えられる。
【００６４】
以上のように、一方で位置を知り、他方でエラーによる誤差値を知ることができるので、本実施形態による方法及び装置によれば、全送信シーケンスにおいてナンバーの修復を行うことが可能なのは明らかである。
【００６５】
本実施形態による方法を実施するために、少なくとも１連のポジションナンバーを、１対１に全送信シーケンス中のナンバーの位置に割り当て、第１のコンビネーションの実行において、この全送信シーケンスに含まれるナンバーの各々に対応する上記ポジションナンバーを掛け合わせる。
【００６６】
図３は、上記において簡潔に述べた方法による、伝送すべきデータに関るコヒーレンスナンバーを発生するプログラムの手順を示すフローチャートである。これは、特に６７文字より少ないアルファベットを用いたバーコードに適用される。ここで、キャラクタは、連続するキャラクタの間においても、或いは一つのキャラクタ内においても、５つ以上の同一のバイナリシンボル列を含まない。なお、このような特性が要求されないアプリケーションにおいては、テーブル１のカラム１及び５は必要ないであろう。
【００６７】
ステップ３０１において、本実施形態にかかる装置の初期化を行う。より詳しくは、ＲＡＭ１２の各レジスタ、変数ｉ、Sum及びDoubleSumをゼロにリセットし、入力ポート１４を介してＣＰＵ１１によって受信された送信すべきデータをＲＡＭ１２に格納する。次に、ステップ３０２において、スタートデリミタ２１に対応するバイナリワードをＲＡＭ１２の送信シーケンスレジスタに格納する。スタートデリミタ２１はテーブル１の１８番目のラインに示す如く定義されている。続いて、ステップ３０３において、ＲＡＭ１２における最初の有効キャラクタを読み取る。そのナンバーをｉとし（ｉはゼロから始まる）、そのキャラクタに対応するナンバーｎ（ｉ）をテーブル１のカラム２及び６から読み取る。整数値ｎ（ｉ）は０と６６の間である。ステップ３０３では、更に、変数Sum（ｉ）を計算する。Sum（ｉ）は前回までの値（Sum（ｉ−１））とｎ（ｉ）との合計のモジュロ６７である。また、これと並行して、DoubleSum（ｉ）を計算する。DoubleSum（ｉ）は、前回までの値を２倍したものとｎ（ｉ）との合計のモジュロ６７である。すなわち、
Sum（ｉ）＝Sum（ｉ−１）＋ｎ（ｉ）            （モジュロ６７）
DoubleSum（ｉ）＝２×DoubleSum（ｉ−１）＋ｎ（ｉ）（モジュロ６７）
続いて、ステップ３０４において、スタートデリミタ２１を格納した送信シーケンスレジスタに、順次整数値ｎ（ｉ）に対応するバイナリワードを格納していく。なお、ｎ（ｉ）はステップ３０３において得られるものであり、そのバイナリワードはテーブル１のカラム１及び５によって与えられる。
【００６８】
ステップ３０５では、ポジションｉのキャラクタが当該送信すべきデータの最後のキャラクタか否かを判定する。もしそうでなければ、変数ｉを１つインクリメントし、送信用データの第ｉ番目のキャラクタに関して上記の処理が行なわれる。もし、ステップ３０５において最後のキャラクタであると判定された場合は、ステップ３０６へ進む。ステップ３０６は、コヒーレンスナンバーＲＯ及びＲＩを算出する。この算出は、２つの未知数を含む連立方程式によって算出される。すなわち
Sum（ｉ）＋ＲＯ＋ＲＩ＝０                  （モジュロ６７）
４×DoubleSum（ｉ）＋２×ＲＯ＋ＲＩ＝０    （モジュロ６７）
である。行列式はゼロではなく、それゆえ、ただ一つの解のみを有する。ステップ３０６では更に、全送信シーケンスの形成のために、送信シーケンスレジスタのイニシャルシーケンスに対応するバイナリワード列のあとに、テーブル１を参照して得られる２つのコヒーレンスナンバーＲＯ、ＲＩに対応する２つのバイナリワードが格納される。ステップ３０７では、送信シーケンスレジスタにおいて、これら２つのコヒーレンスナンバーの後に、エンドデリミタ２２に対応するバイナリワードを格納する。このエンドデリミタ２２に対応するバイナリワードは、テーブル１の１５番目のラインによって与えられている。上記ステップ３０２から３０７は、全送信シーケンスの初期の手順であるエンコーディングフェーズを構成するものである。
【００６９】
最後に、ステップ３０８において、全送信シーケンスを送信する。この送信では、上記送信シーケンスレジスタに格納された順序で、そこに存在するデータを、出力ポート１５を介して変調器１７に送信する。変調器１７は、全送信シーケンスを表すバイナリデータに基づいて所定の物理量への変調を行う。
【００７０】
続いて転送フェーズが、ステップ３０８の後に実行される。転送フェーズは、変調された物理量の伝送と、当該物理量の復調からなる。全送信シーケンスにおけるバイナリワードは、図４に示される受信装置によって全受信シーケンスの形態として受信される。そして、本実施形態で示される方法に従って処理される。エラー検出及び訂正のプロセスは、２つの観点から、図５、図６、図７を参照して説明される。
【００７１】
次に、本発明の２つの観点に基づいた実施形態について、エラーを検出する装置のブロック図を示す図４を参照して説明する。この装置は参照番号４０で示されている。アドレス／データバス４６によって互いに接続された以下の構成を備える。
・ＣＰＵ４１と、
・ＲＡＭ４２と、
・ＲＯＭ４３と、
・全受信シーケンスを受信するべく機能する入力ポート４４と、
・物理量をバイナリデータに復調する復調器４８と、
・全受信シーケンスを処理して得られる訂正済みのシーケンスを、当該装置によって送信可能とする出力ポート４５と、
・バイナリデータを所定の物理量に変調する変調器４７とを有する。
【００７２】
コヒーレンスナンバーの生成についてはすでに上述したのでここでは説明を行わない。エラー検出と訂正に関して、特にＲＡＭ４２は、１０個の変数グループを格納する１０個のレジスタと、現在処理中の全受信シーケンスを格納するレジスタを有する。１０個の変数グループとは、Sum、DoubleSum、ｉ、position、ｎ、table、total、ＲＯ、ＲＩ及びcurrentである。ＲＯＭ４３は装置及びＣＰＵ４１のオペレーティングプログラムを格納するのに適用される。ＣＰＵ４１は、ＲＯＭ４３に格納されたプログラムを実行することで、図５〜図７に示したフローチャートにおいて記述されているオペレーションの全てを実施する。また、ＲＯＭ４３は、図１４〜図１７に示されるようなテーブルを格納する。
【００７３】
変調器４７は、出力ポート４５から供給されるデータを電気信号の関数とすることで所定の物理量に変調し、バイナリデータを表現する。ここで、物理量とは、図８、図９で後述するようなサポートからの光反射率であってもよいし、図１０、図１１で後述するようなネットワークを伝わる電気信号、光信号であってもよいし、図１２、図１３で後述するような音響的、光学的、電気的信号であってもよい。復調器４８はバイナリデータを表す電気信号を、変調器１７によって変調された物理量の関数として、入力ポート４４へ送信する。
【００７４】
この構成は、情報処理技術の専門家には知られたものであるので、ここでは詳細な説明を省略する。
【００７５】
さて、図４に示した装置の動作概要を説明すると、本装置は本発明の第２の観点に基づく処理を実現する。すなわち、所定の物理量を変調するためのＮ個のバイナリシンボルで表されるナンバーによって構成される全送信シーケンスの各ナンバーを送信する際に、一つもしくは複数のバイナリシンボルが付加されもしくは脱落することが原因で発生するエラーの検出及び訂正が実現される。ここで、この全送信シーケンスは、少なくとも２つのコヒーレンスナンバーを有し、配置／評価処理により、いかなるエラーの訂正をも可能とする。ここで、配置／評価処理は伝送中のエラーの検出と訂正を可能とするいかなるプロセスをも意味する。伝送中のエラーとは、Ｎ個のバイナリシンボルによって表されるナンバーが、Ｎ個のバイナリシンボルで表される誤ったナンバーで置き換えられるものである。本実施形態の構成例によれば、上述の本発明の第１の観点に基づいて説明した実施形態による方法が、配置／評価処理を構成する。
【００７６】
さて、本発明の第２の観点に基づいた本実施形態による方法では、カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を数え、
・この数がＮの倍数であれば、上記配置／評価処理を実施し、
・この数がＮの倍数よりｊ（ｊはＮの１／２より小さい）少ない場合は、置換フェーズを実行し、全受信シーケンスにおいて順次、Ｎ−ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルで置き換える。そして、確定フェーズにおいて、この置き換えが正しいか否かを、配置／評価処理を実施することによって決定し、
・この数がＮの倍数に整数値ｊ（ｊはＮの１／２より小さい）を加えたものに等しい場合は、置換フェーズを実行し、全受信シーケンスにおいて、Ｎ＋ｊ個の連続したバイナリシンボルのグループをＮ個の置換バイナリシンボルで順次置き換える。そして、確定フェーズにおいて、この置き換えが正しいか否かを、配置／評価処理を実施することによって決定する。
【００７７】
更に詳しくは、配置／評価処理が本発明の第１の観点に基づくものである場合は、本実施形態は、６７個よりも少ない個数のナンバーで構成される全送信シーケンスの伝送時におけるいかなるエラーをも検出し訂正するための方法となる。ここで、ナンバーの各々は、所定の物理量を変調する７個のバイナリシンボルで表現される。また、全送信シーケンスは、本発明の第１の観点に基づき、少なくとも２つのコヒーレンスナンバーを有する。そして、カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して全受信シーケンスにおけるバイナリシンボルの数をカウントする。そして、
この数が７の倍数である場合は、本発明の第１の観点に基づく方法を実施し、この数が７の倍数から１を引いた数に等しい場合は、置換フェーズを実行し、上記全受信シーケンスにおいて、６個の連続したバイナリシンボルのグループを７個の置換バイナリシンボルのグループで順次置き換え、続いて確定フェーズにおいて本発明の第１の観点に基づいた方法を実施することによってこの置換が正しいか否かを決定し、
この数が７の倍数に１を加えた数に等しい場合は、置換フェーズを実行し、上記全受信シーケンスにおいて、８個の連続したバイナリシンボルのグループを７個の連続した置換バイナリシンボルのグループで順次置き換え、続いて確定フェーズにおいて、本発明の第１の観点に基づいた方法を実施することによってこの置換が正しいか否かを決定する。
【００７８】
この特別な実施形態において、本発明の第２の観点に基づくエンコーディングフェーズの一例は図３を参照して上述したとおりである。ここでは、本発明の第２の観点に基づくデコーディングフェーズの一例を説明する。
【００７９】
受信したバイナリシンボルのカウントは、伝送によって、１つ、２つまたそれ以上のバイナリシンボルが全送信シーケンスに偶発的に付加されたり、脱落してしまったりしたことを検出可能とする。このようなカウントは次のような結果をもたらす。すなわち、
・バイナリシンボルの数が７の倍数であると、本発明の第１の観点に基づくデコーディングが適用される、
・全受信シーケンスから１つのバイナリシンボルが失われると、本発明の第２の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、６個の連続したバイナリシンボルのグループに、バイナリシンボルを付加し、当該シーケンスを複数の７個のバイナリシンボルのグループによって構成する。上記６個の元のバイナリシンボルは、付加されたバイナリシンボルとともにナンバーを形成し、置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第１の観点に基づくデコーディングフェーズによる処理がなされる。
【００８０】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の６個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【００８１】
次に、２つのバイナリシンボルが脱落した場合を説明する。この場合、
・全受信シーケンスから２つのバイナリシンボルが失われると、本発明の第２の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、５個の連続したバイナリシンボルのグループに、２つのバイナリシンボルを付加し、当該シーケンスを複数の７個のバイナリシンボルのグループによって構成する。上記５個の元のバイナリシンボルは、付加されたバイナリシンボルとともにナンバーを形成し、置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第１の観点に基づくデコーディングフェーズによる処理がなされる。
【００８２】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の５個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【００８３】
次に、１つのバイナリシンボルが付加されてしまった場合を説明する。
・全受信シーケンスの全バイナリシンボル数が１つ多い場合は、本発明の第２の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、８個の連続したバイナリシンボルのグループより１つのバイナリシンボルを取り除き、当該シーケンスを複数の７個のバイナリシンボルのグループによって構成する。１つのバイナリシンボルが除去された上記８個の元のバイナリシンボルは置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第１の観点に基づくデコーディングフェーズによる処理がなされる。
【００８４】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の８個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【００８５】
次に、２つのバイナリシンボルが付加されてしまった場合を説明する。
・全受信シーケンスの全バイナリシンボル数が２つ多い場合は、本発明の第２の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、９個の連続したバイナリシンボルのグループより２つのバイナリシンボルを取り除き、当該シーケンスを複数の７個のバイナリシンボルのグループによって構成する。２つのバイナリシンボルが除去された上記９個の元のバイナリシンボルは置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第１の観点に基づくデコーディングフェーズによる処理がなされる。
【００８６】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の９個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【００８７】
なお、全受信シーケンスにおいて３つのバイナリシンボルが増加或いは脱落した場合も同様の処理が実行される。
【００８８】
なお、本方法において、確定されなかった置換は、逆置換によってキャンセルされる。この結果、これに続く以降の置換は、復調された全受信シーケンスのオリジナルに対して作用することと等価になる。
【００８９】
図５、図６および図７は、図４に示された装置の制御手順を示すフローチャートである。本制御は、全受信シーケンスに関するコヒーレンスナンバーを利用し、伝送エラーを検出するとともにこれを訂正する。
【００９０】
図５のステップ５０１において、装置の初期化を行う。すなわち、変数totalを０に、変数ｎを１にそれぞれセットする。そして、装置は、物理量を復調してバイナリデータとし、スタートデリミタ２１を抽出する。そして、ステップ５０２において、所定の物理量がバイナリデータに変調される。
【００９１】
ステップ５０３において、totalレジスタ内のtotal値に読み出されていくキャラクタのバイナリシンボルの数を加算し、モジュロ７をとって、これを新たなtotal値とする。ステップ５０４では、一方で、ゼロを示すバイナリシンボルが少なくとも５つ連続したか否かをしらべ、他方で最後のグループの７個のバイナリシンボルの最後のバイナリシンボルがゼロでなく、そのバイナリワードがエンドデリミタ（テーブル１のカラム１の第１５番目のラインを参照:0100101）であるかをチェックする。これらの条件の少なくとも一つでも満たされなかった場合は、ＣＰＵ４１はステップ５０２へ戻り、次のキャラクタについての処理を行う。ステップ５０４でエンドデリミタが検出された場合は、ステップ５０５において、エンドデリミタ及びこれに続くバイナリシンボルを抽出するとともに、これらバイナリシンボルの数、及びエンドデリミタのバイナリシンボルの数をtotal値より差し引く。ステップ５０６において、total値がゼロであるか否かを判定する。すなわち、全受信シーケンスを構成するバイナリシンボルの総数が７の倍数か否かを判定する。ステップ５０６によるチェックの結果、total値がゼロの場合は、ステップ５０７（図６）が実行され、それ以外の場合はステップ５１８（図７）が実行される。カウントフェーズは、このように、ステップ５０３、５０４、５０５及び５０６によって構成される。次に、ステップ５０７から５１７によるデコーディングフェーズを説明する。
【００９２】
ステップ５０７ではテーブルを生成する。このテーブルは、各位置に７個一組みのバイナリシンボルを含むように生成される。ここで、７個一組のバイナリシンボルとは、読み取られた順に７個ずつ区切って得られるものである。このテーブルは更に整数値ｎ（ｉ）を含む。このｎ（ｉ）はそれぞれ、一組７個のバイナリシンボルで構成されるバイナリワードに対応する番号（０〜６６）である。ステップ５０８では、３つの変数グループ、すなわち、Sum（ｉ）、DoubleSum（ｉ）及びｉをリセットする。ここで、ｉはテーブル中の、それぞれの７個組みのバイナリシンボルの位置を表す。ステップ５０９では、Sum（ｉ）とDoubleSum（ｉ）を次の方法で計算する。
【００９３】
Sum（ｉ）＝Sum（ｉ−１）＋ｎ（ｉ）        （モジュロ６７）
DoubleSum（ｉ）＝２×DoubleSum（ｉ）＋ｎ（ｉ）  （モジュロ６７）
ステップ５１０では、テーブル内の各バイナリワードについて処理を終えたか否かを判定する。まだ未処理のバイナリワードがあればステップ５１１へ進み、ｉを１増加したのち、ステップ５０９へ戻る。ステップ５１０において、全バイナリワードについて処理を終えたと判定されると、ステップ５１２へ進む。ステップ５１２では、ｉの値が変数ｎに代入される。この結果、ｎは全受信シーケンスの要素数（ナンバー数）となる。
【００９４】
次に、ステップ５１３において、DoubleSum（ｎ）とSum（ｎ）がともに０か否かを判定する。もし、共に０であれば、ステップ５１４へ進み、エラー検出処理の結果、伝送エラーが発生しなかったと認識される。そして、当該エラー訂正処理から抜けて、その正しい全受信シーケンスを用いた処理を開始する。なお、この受信シーケンスを用いた処理については、ここでは説明を省略する。ステップ５１３において、少なくとも一方が０でない場合はステップ５１５へ進む。ステップ５１５では、DoubleSum（ｎ）とSum（ｎ）の両方がともに０でないかどうかチェックする。もし一方が０であった場合は、ＣＰＵ４１によってエラーメッセージが転送され、後述のステップ５３２へ進む。このメッセージは２つの伝送エラーが発生したが、本実施形態によるデバイスでは訂正できないことを意味する。ステップ５１５において、両方が共に０でない場合はステップ５１６へ進む。ステップ５１６では、変数positionを計算する。変数positionの算出手順は次の通りである。まず、モジュロ６７であるDoubleSum（ｎ）とSum（ｎ）のインバースとの積を求める。ここで、Sum（ｎ）のインバースは、図１７のテーブル４から得られる。テーブル４において、第１及び第３カラムがSum（ｎ）を表し、第２及び第４カラムがそれぞれに対応するインバース値を示す。以上のようにして得られた積（これはDoubleSum（ｎ）をSum（ｎ）で割った値に等価である）について、２を底とする対数を、テーブル３を用いて獲得する。この対数値がエラーナンバーの、全受信シーケンスにおける最終ナンバーからの位置を示すことになる。そして、ステップ５１７において、上記テーブル内のステップ５１６で得た位置におけるナンバー（すなわち誤ったナンバー）から、Sum（ｎ）の値を差し引くことで、当該エラーナンバーを変更（訂正）する。このようにして、誤り訂正が有効に機能し、ＣＰＵの処理はステップ５２５へ進み、テーブルにおいて得られたシーケンスを用いた処理が実行される。
【００９５】
一方、バイナリシンボルの数に増減が発生した場合（totalが０でない場合）はステップ５０６からステップ５１８へ進む。
【００９６】
ステップ５１８では、変数current及び変数ｉを０に初期化する。ステップ５１９では、変数ｉを０にリセットするとともに、変数Sum（ｉ）及びDoubleSum（ｉ）をそれぞれ０にリセットする。ステップ５２０においては、以下の各式に関る演算を実行する。すなわち、変数Sum（ｉ）及びDoubleSum（ｉ）の値が以下の演算式で計算される。
【００９７】
Sum（ｉ）＝Sum（ｉ−１）＋ｎ（ｉ）  （モジュロ６７）
DoubleSum（ｉ）＝２×DoubleSum（ｉ−１）＋ｎ（ｉ）  （モジュロ６７）
ステップ５２１において、変数ｉが変数ｎに等しいか否かを判定する。もし等しくなければ、ステップ５２２に進み、変数ｉが変数currentに等しいか否かを判定する。もし等しくなければ、ステップ５２４へ進み、ｉを１インクリメントしステップ５２０へ戻る。そして、ステップ５２０では新たな変数Sum（ｉ）とDoubleSum（ｉ）を計算し、ステップ５２１を再度実行する。
【００９８】
ステップ５２２において変数ｉと変数currentが等しいと判定されると、ステップ５２３へ進み、変数ｉに変数current＋１を代入するとともに、DoubleSum（ｉ）に直前のDoubleSum（ｉ）の２倍の値を代入する。ステップ５２７では、変数totalの値が４以上であるか否かを判定する。変数totalの値が４以上の場合はステップ５２９へ進み、total個のバイナリシンボルを読み出さずに（読み飛ばし）、代わりに７個のゼロバイナリシンボルを読み出す。この７個のゼロバイナリシンボルは、７個の置換バイナリシンボルのグループを構成する。一方、ステップ５２７における判定が否である場合、処理はステップ５２８に進む。ステップ５２８においては、変数totalの値に７を加えた数のバイナリシンボルを読み出さずに（読み飛ばし）、代わりに７個のゼロバイナリシンボルを読み出す。この７個のゼロバイナリシンボルは、７個一組の置換バイナリシンボルのグループを構成する。ステップ５２８、５２９のいずれかのステップの処理を通ると、テーブルに格納されたバイナリワードが再評価される。すなわち、適正な数の７個組みのバイナリデータアイテムを含む受信シーケンスを再構成するべく読み飛ばしたバイナリデータアイテムのナンバーを別にして再評価がなされる。ここで、置換フェーズはステップ５２７、５２８及び５２９によって構成される。ステップ５２８或いは５２９の一方の処理の後に、ステップ５２０が再度実行され、テーブルが作成される。
【００９９】
さて、ステップ５２１において変数ｉと変数ｎが等しいと判定されると、処理はステップ５３０へ進む。ステップ５３０は、−Sum（ｉ）のモジュロ６７をとり、これをテーブル中の、変数currentで示される位置に対応する変数に割り当てる。そして、ステップ５３１において、Sum（ｉ）の値と「ｎ−２−current」を指数とする２のべき乗との積が変数DoubleSum（ｉ）に等しくなるか否かを判定する。ステップ５３１の判定の結果、両者が等しければ、誤り訂正処理を終了し、当該テーブルを用いた処理が実行される。一方、ステップ５３１の判定結果が否であればステップ５２６へ進む。ステップ５２６では、変数currentの値が変数ｎの値と等しいか否かを判定する。もし等しければ、ステップ５３２においてＲＡＭ内の各変数を０にリセットし、全受信シーケンスを表すバイナリシンボルをリセットする。もし、ステップ５２６の判定結果が否であればステップ５３３へ進む。ステップ５３３では、ステップ５３０と反対の処理を行う。すなわち、テーブル中の変数currentの値で示される位置の変数に、全受信シーケンスの元々の値を再格納する。そして、変数currentを１増加させてステップ５１９へ戻る。このように、確定フェーズはステップ５２０、５２１、５２２、、５２４、５２６、６３０、５３１及び５３３で構成される。以上のように、誤り訂正処理は、誤り訂正が不可能であるとして終了するステップ５３２、誤りが検出されなかったとして終了するステップ５１４、誤りが訂正されたとして終了するステップ５２５の何れかで終了することになる。
【０１００】
以上のように、本発明の第１の観点に基づく実施形態は、ナンバーの誤り訂正に関し、それらナンバーを表すバイナリシンボルの数を変更することなく訂正を行うものであり、ステップ５０７〜５１７を含むものである。更に、第２の観点に基づく実施形態は、別の処理であるステップ５２０〜５３５を含み、バイナリシンボルの偶発的な増加、脱落に関るエラーが発生した場合に対応すべく拡張された訂正処理である。
【０１０１】
図８は、本発明に基づく装置を内蔵するバーコードプリンタを示す図である。図８に示されるように、バーコードプリンタ６００は図１に示された各構成とプリンタ部６０１とを有する。バーコードプリンタ６００は、たとえば、一般的な形態のものでよい。プリンタ部６０１は、特に、レーザ方式、１つまたは複数のインクジェット、熱転写リボン等を用いてプリントを行う。
【０１０２】
図９は、本発明に基づく装置を内蔵するバーコードリーダを示す図である。図９に示すように、バーコードリーダ７００は、図４に示した構成を有するとともに、上記バーコードを構成するバーを光学的に走査する光センサ部７０１を有する。光センサ部７０１は、複数ラインを形成するための感光ドットを含む光学マトリクススキャナであってもよいし、感光ドットをライン状に備えた光学リニアスキャナであってもよいし、あるいは、単一の感光領域を有し、走査すべきバーコードイメージの前を走査して用いる光学スキャナであってもよい。
【０１０３】
なお、なお、使用するバーコードとしては、マトリクス型のもの、すなわち高反射領域と低反射領域を有するいわゆる２次元ネットワークであってもよいし、低反射及び高反射のラインを平行に並べたリニア状のものであってもよい。
【０１０４】
図１０及び図１１は、それぞれ、ケーブルによる送信装置及び受信装置を示し、送受信装置のそれぞれは本発明に基づく装置を内蔵している。図１０に示されるように送信装置８００は図１に示されるすべての要素を内蔵し、出力ポート１５及びケーブルネットワーク８０１に接続された変調器１７を含む。また、図１１に示されるように、受信装置８０２は、図４に示されるすべての構成を有し、入力ポート４４及びケーブルネットワーク８０１に接続された復調器４８を有する。
【０１０５】
変調器１７は、出力ポート１５より供給される電気パルスをケーブルネットワーク８０１上を伝送され得る物理量に対応するパルスに変換する。この物理量は、たとえば、電位（ポテンシャル）、電流量、周波数、あるいは位相等の種々の電気的なものでもよいし、光強度、波長、周波数あるいは位相等の種々の光学的なものでもよい。復調器４８は、所定の物理量における変化をバイナリシンボルに変換する。
【０１０６】
図１２及び図１３は、それぞれ、無線による送信装置及び受信装置を示し、送受信装置のそれぞれは本発明に基づく装置を内蔵している。図１２に示されるように、送信装置９００は図１に示されるすべての要素を内蔵し、出力ポート１５に接続された変調器９０１を有する。また、図１３に示されるように、受信装置９０１は、図４に示されるすべての構成を有し、入力ポート４４に接続された復調器４８を有する。
【０１０７】
変調器９０１は、たとえば、電磁的信号、光学的信号、音響的信号等を送信することができる。復調器４８は、所定の物理量における変化をバイナリシンボルに変換する。
【０１０８】
なお、本発明は図を参照して説明した上記実施形態に限定されるものではなく、当業者によって理解される範囲内のすべての変形を含むものである。
【０１０９】
特に、本発明の第２の観点に基づく誤り検出及び訂正の方法は、全てのデコーディング、エラー検出及び訂正方法に適用できる。また、上述した配置及び評価処理も、現時点ではナンバーの訂正をそれらを形成するバイナリシンボルの数の修正無しに行うもの限られたが、全てのデコーディング、エラー検出及び訂正方法に適用できるものである。
【０１１０】
また、第２のコンビネーションが、全送信シーケンスにおける各ナンバーの位置の関数として送信シーケンスのナンバーを結合することもできる。特に、ポジションナンバーの第２のシリーズのアプリケーションは、１対１である必要はなく、本発明が適用され得る。しかし、全体として誤り訂正手段は低速になる。なぜならば、システムがエラーの評価、エラー位置の検出を可能とする式が複雑であり、式を解くのに時間を要するからである。ポジションナンバーの可能な２つのシリーズは次のようなものでなければならない。すなわち、第１のシリーズにおけるナンバーを第２のシリーズの同じ行のナンバーで割った値のモジュロ６７が全て異なるものでなければならない。
【０１１１】
更に、上記において、Ｐは所定の自然数であり６７を置き換えるものである。ここで、６４はＰ−３で置き換えられ得る。
【０１１２】
しかしながら、好ましくは、Ｐは、イニシャルシーケンスがＰ−３個のナンバーを持つことができるような素数とすべきである。特に、ＰはプリミティブナンバーＱを有するべきである。これは、
・ステップ３０３、５０９及び５２０において、DoubleSumの計算のための乗数である２をＱによって置き換えることができ、
・テーブル１、テーブル２、テーブル３の計算を、数値２のかわりに数値Ｑを用いて行えるからである。
【０１１３】
更に詳しくは、Ｐのプリミティブナンバーは２であるべきである。
【０１１４】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０１１５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１１６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１７】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１１８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１９】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
【発明の効果】
以上説明したように、本発明によれば、イニシャルシーケンスの、伝送中に発生したエラーを検出し、その位置を特定し、訂正することが可能となる。
【０１２１】
また、複数のバイナリシンボルで表されるキャラクタを複数固有してなるシーケンスにおいて、バイナリシンボルの偶発的な増減によるエラーが発生した場合でも、そのエラーを検出し、訂正することが可能となる。
【０１２２】
【図面の簡単な説明】
【図１】本発明に係るコヒーレンスナンバーを発生する装置の構成を示すブロック図である。
【図２】コヒーレンスナンバーを計算し発生する方法を実施して得られる、ナンバーのシーケンスを示す図である。
【図３】送信すべきナンバーのシーケンスに関するコヒーレンスナンバーを発生するための手順を示すフローチャートである。
【図４】本発明の第２の観点に基づくコヒーレンスナンバーの生成と決定を行う装置の構成を示すブロック図である。
【図５】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図６】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図７】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図８】本発明による装置を内蔵するバーコードプリンタの構成を示すブロック図である。
【図９】本発明に係る装置を内蔵するバーコードリーダの構成を示すブロック図である。
【図１０】本発明に係る装置を内蔵する、ケーブル接続型の送信装置の構成を示すブロック図である。
【図１１】本発明に係る装置を内蔵する、ケーブル接続型の受信装置の構成を示すブロック図である。
【図１２】本発明に係る装置を内蔵する、無線送信装置の構成を示すブロック図である。
【図１３】本発明に係る装置を内蔵する、無線受信装置の構成を示すブロック図である。
【図１４】シンボルと、各シンボルに対応するナンバー及びバイナリワードのセットを登録したテーブルを示す図である。
【図１５】２のべき乗値（２の６６乗まで）のモジュロ６７の値を登録したテーブルを示す図である。
【図１６】１〜６６の各数値の２を底とする対数値のモジュロ６７の値を登録したテーブルを示す図である。
【図１７】各ナンバーの値の逆数のモジュロ６７の値を登録したテーブルを示す図である。
【符号の説明】
１０  データ送信装置
１１、４１  ＣＰＵ
１２、４２  ＲＡＭ
１３、４３  ＲＯＭ
１４、４４  入力ポート
１５、４５  出力ポート
１７、４７  変調器
４０  データ受信装置
４８  復調器
【図１】
0003754772.tif 000002
【図２】
0003754772.tif 000003
【図３】
0003754772.tif 000004
【図４】
0003754772.tif 000005
【図５】
0003754772.tif 000006
【図６】
0003754772.tif 000007
【図７】
0003754772.tif 000008
【図８】
0003754772.tif 000009
【図９】
0003754772.tif 000010
【図１０】
0003754772.tif 000011
【図１１】
0003754772.tif 000012
【図１２】
0003754772.tif 000013
【図１３】
0003754772.tif 000014
【図１４】
0003754772.tif 000015
【図１５】
0003754772.tif 000016
【図１６】
0003754772.tif 000017
【図１７】
0003754772.tif 000018