JP3754772B2 - 誤り検出訂正装置及び方法 - Google Patents
誤り検出訂正装置及び方法 Download PDFInfo
- Publication number
- JP3754772B2 JP3754772B2 JP29655896A JP29655896A JP3754772B2 JP 3754772 B2 JP3754772 B2 JP 3754772B2 JP 29655896 A JP29655896 A JP 29655896A JP 29655896 A JP29655896 A JP 29655896A JP 3754772 B2 JP3754772 B2 JP 3754772B2
- Authority
- JP
- Japan
- Prior art keywords
- sequence
- error
- numbers
- transmission
- entire
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、物理量を変調した一連のバイナリワードにおけるエラーを検出し訂正する方法及び装置に関する。
【0002】
また、本発明は、特に、バーコード読みとりエラー、より一般的には、2つのシステム間のデータ伝送におけるエラーの検出に関するものである。
【0003】
【従来の技術】
2つのデバイス間のいかなるデータ伝送にも、伝送エラーはつきものである。これらのエラーは、それらの伝送回数のみならず、伝送媒体、すなわち、あるシステムから他のシステムへデータ項目を送るための送信路にも起因する。このようなエラーは、電気通信において、あるいは光学的、磁気的あるいは電気的等によるデータ格納において用いられる一般的な媒体で生じ得る。
【0004】
また、ここで、2つのデバイス間のデータ伝送とは、データを遠隔伝送するものばかりでなく、データの伝送が生ずる同一回路内の2つのコンポーネント間の、あるいは同一システム内の2つの要素間のデータ伝送も含んでいる。
【0005】
多くのバーコードが、格納されたデータにチェックディジットを付加するというオプションを用意している。このチェックディジットは、受信したデータがエラーを含むかどうかをチェックするのに用いられる。一般に、数値が各文字に割り当てられる。例えば、英数字コード39では、すべてのメッセージキャラクタに割り当てられた数値の合計のモジュロ43で表されるサムが算出され、このサムに等しい数値が割り当てられたキャラクタがメッセージキャラクタの後に追加される。この場合、すべてのキャラクタが受信されると、最後の1つのキャラクタを除くすべてのキャラクタの合計のモジュロ43をサム値とし、このサム値がその最後のキャラクタの数値と等しくなければならない。もし等しくなければ、伝送エラーが発生したことがわかる。一方、このコードでは伝送エラーの訂正はできない。
【0006】
コード93と呼ばれる別の英数字バーコードは、読取デリミタの最後(そのコードの最後のデータ)の直前に、誤った英数字キャラクタの検出と訂正のための2つのチェックキーを含む。検出の原理は、モジュロ47カウンティングに基づく。しかしながら、この方法では、48文字より少ないアルファベットにしか対応できない。また、数字47を計算の基準として用いると、伝送エラーがあったかどうかを検出するための、特にエラーの存在場所とそのエラーをどのように訂正するかを決定するためのデコーディングアルゴリズムが複雑になる。
【0007】
チェックキーと協動するコード128は、128文字のアルファベットの使用を可能とする。このコードもやはり最後の読取キャラクタの手前にチェックキャラクタを有する。これは以下のようにして計算される。各々の有意なキャラクタの値(開始を示すコードキャラクタを除く)に、当該キャラクタ列の順序に従って決定される当該キャラクタの位置の値が乗じられる。ここで、最も左の第1の位置が1という値を有し、その次が2、その次が3というように値を有する。これらの積の和がコードキャラクタのスタートの値に加算され、こうして得られた合計値を103で割る。そして、そのあまりがエンコードすべきチェックキャラクタの値に対応する。その結果、読取エラーは訂正され得ず、単に検出されるのみである。
【0008】
【発明が解決しようとする課題】
結局、これらのコードの何れにおいても、キャラクタ列におけるバイナリシンボルの偶発的な増加あるいは喪失からなるエラー、或いはバーコードにおけるバーの増加或いは喪失を訂正することはできない。
【0009】
本発明は、これらの問題を解決しようとするものである。まず第1に、エラー検出及び訂正の方法が、最大67文字を有するアルファベットを扱う装置に関して追究された。このコード体系では、7個のバイナリでアルファベットが表されるが、この7個のバイナリにおいては、5つ以上の連続した同一のバイナリシンボルが含まれず、最初の3つのバイナリシンボルが同一のバイナリシンボルの連続でなく、同様に、最後の3つのバイナリシンボルも同一のものの連続ではない(図14に示すテーブル1の第1カラム及び第5カラムを参照)。
【0010】
更に、発明者は、冗長データ(コヒーレンスナンバー)の計算を更に容易化する方法、及びこれらのコヒーレンスナンバーを非常に高速性が要求される装置において容易に適用する方法を開発することを追究した。
【0011】
また、発明者は、欧州特許出願95 400 178に記載された方法に基づいて生成されるような、バーコード読取エラーを確実に検出することが可能な方法及びこれを用いた装置を開発することを追求した。
【0012】
更に、本発明者は、ナンバーの伝送におけるエラーのみならず、最大2のn乗個のナンバーからなるシーケンス内の、いかなるナンバーのいかなる位置におけるバイナリシンボルの付加及び脱落によるエラーをも検出、訂正する方法および装置を提供することを追求した。
【0013】
【課題を解決するための手段】
従って、本発明の一つの目的は、最大でP−3個のナンバーからなるイニシャルシーケンスの、いかなる伝送エラーをも検出し、訂正するための方法を提供することにある。なお、ここで、Pは所定の自然数であり、各ナンバーはバイナリデータを表し、所定の種類の物理量に変調されたものである。そして、この目的を達成する本発明の方法によれば、
前記イニシャルシーケンスに2つのコヒーレンスナンバーを付加して全送信シーケンスを形成するエンコーディング工程と、該2つのコヒーレンスナンバーは、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスに基づいて変調されている前記物理量を伝送し、全受信シーケンスを形成するためにこれを復調する伝送工程と、
前記全受信シーケンスに前記コンビネーションを適用し、該コンビネーションの適用の結果が前記所定のモジュロP値に等しくならない場合、伝送エラーが発生したものとし、これを訂正するデコーディング工程とを備える。
【0014】
上記の、本発明によるエンコーディング方法によれば、上述の欠点が解消される。この、冗長データ(すなわち、コヒーレンスナンバー)を発生する方法は簡単であり、本発明に係る訂正を行う装置が伝送エラーを検出し、それらを訂正することを可能とする。
【0015】
また、本発明の別の利点としては、本方法を実施するために、伝送されるデータの数を前もって知っておく必要が無いことである。
【0016】
本発明による方法は、使用可能な異なるキャラクタの個数が最大P個のエレメントからなる場合はいつでも使用できる。例えば、6ビット一組のセットでは、6ビットのグループが2の6乗(=64)個の異なるキャラクタを構成する。そして、本例では、冗長データ(コヒーレンスナンバー)がP個の異なる値を推定でき、このため2の6乗より大きくなり、各々は少なくとも7個のビットで表現されなけばならない。
【0017】
また、特定の実施形態によれば、Pは素数である。この形態による利点は、イニシャルシーケンスが実効的にP−3個のナンバーを有することができる点にある。もし、Pが素数でなければ、イニシャルシーケンスにおけるナンバーの数はP−3より少ない数に限定される。
【0018】
また、特定の実施形態によれば、Pはプリミティブナンバーを有する。この形態による利点は、イニシャルシーケンスにおける各位置が前記プリミティブナンバーのべき乗(モジュロP)としてコード化され得ることである。
【0019】
また、特定の実施形態によれば、Pのプリミティブナンバーは2である。イニシャルシーケンスの各位置は2のべき乗、モジュロPとしてコード化され得る。
【0020】
また、特定の実施形態によれば、上記第2のコンビネーションは、全送信シーケンスにおける位置とは無関係に、全送信シーケンス中のナンバーを足しあわせることによって結合し、合計値を得る。また、この実施形態によれば、第1のコンビネーションは、全送信シーケンスにおける各ナンバーと、Pより小さい自然数からなるポジションナンバーとの積の合計のモジュロP値をとる。ここで、このポジションナンバーは全送信シーケンス内の対応する位置にあるナンバーにのみ作用するものである。デコーディングフェーズは、全受信シーケンス内の全ナンバーを足し合わせてモジュロPを取り、この値と第2のコンビネーションに関する上記所定値との差をエラーによる誤差とする。そして、この誤差がゼロでない場合は、全受信シーケンスの各ナンバーと対応するポジションナンバーとの積の合計と、全送信シーケンスのナンバーと対応するポジションナンバーとの積の合計との差を算出し、これを上記誤差で割った値のモジュロPを取る。こうして得られた値は、上記受信シーケンスにおけるエラーの発生位置に対応するポジションナンバーとなる。
【0021】
上記構成の利点の一つは、これらのナンバーの伝送時におけるいかなるエラーをも検出し、その位置を特定し、それを訂正できることである。
【0022】
更に詳しくは、第2のコンビネーションは全送信シーケンスのナンバーのサム、モジュロPであり、これに係る上記所定値は0である。
【0023】
以上のような本発明の第1の観点は、その計算方法が反復的であり、その結果、簡易な回路構成で実現することができる。例えば、P=67とし、本方法がモジュロ67のカウント方法を用いると、第1の利点として、欧州特許出願95 400 178におけるシンボルの数に正確に対応することが挙げられる。また、素数であることによる利点を有し、モジュロ67による除算は明確に定義される。また、Pは、少なくともプリミティブナンバー2を有する。すなわち、指数の連続する2のべき乗をそれぞれ67で割ったあまりとして得られるナンバーのシーケンスには、1から66までが1つずつ出現するが、その順序が大小順とは異なる。指数が連続する2のべき乗のモジュロ67は、計算が容易なポジションナンバーを構成する。
【0024】
コヒーレンスナンバーの計算は、本発明による訂正処理がイニシャルシーケンスの伝送において発生したあらゆるナンバーのエラーを検出し、当該エラーを訂正可能とするものである。これは、2つのコヒーレンスナンバーを含む全受信シーケンスのナンバーの合計値のモジュロPが、全受信シーケンスを害するあらゆるエラーに等しくなるからである。すなわち、全受信シーケンスにおける誤ったナンバーと、全送信シーケンスの対応するナンバーとの差に等しくなる。
【0025】
全送信シーケンスに対して求めた第2のコンビネーションと同じものを全受信シーケンスについて求めることにより、そして、このコンビネーションを全受信シーケンス中のナンバーの合計値によって除し、モジュロPを取ることにより、上記エラーナンバーに対応する全受信シーケンス中の位置を示す整数値を得ることができる。
【0026】
こうして、本発明の第1の観点によれば、全送信シーケンスを変調し、伝送し、これを全受信シーケンスに復調する処理を行う伝送フェーズの後に、デコーディングフェースが実行される。デコーディングフェーズは、全受信シーケンスにおける全ナンバーを足し合わせる。得られた合計値は伝送エラーによるあらゆる誤差に等しくなる。ここで、この誤差がゼロでない場合は、全受信シーケンスにおける各ナンバーと各ナンバーの位置に対応する整数値との積の合計を上記エラーによって除算し、モジュロPを得ることで、全受信シーケンスにおけるエラーの位置を表す整数値を獲得する。
【0027】
この本発明の第1の観点は、ナンバーの伝送におけるエラーに関するものであり、それらを表すバイナリデータの数には影響しないものである。
【0028】
これに対して、本発明の第2の観点は、偶発するバイナリシンボルの付加、脱落に関し、それを検出し訂正することを可能とするものである。
【0029】
概述すると、本発明の第2の観点は、全送信シーケンスのナンバーにおけるあらゆるエラーを検出し訂正するための方法に関し、各ナンバーは所定の物理量を変調するN個のバイナリシンボルによって表現され、該全送信シーケンスは少なくとも2つの適応したコヒーレンスナンバーを含み、配置/評価処理によってあらゆるエラーを訂正可能とするものである。そして、本方法は、
全送信シーケンスを表す物理量を復調して得られた全受信シーケンスのバイナリシンボルの数をカウントするカウントフェーズと、
この数がNの倍数よりj少ない値に等しい場合、ここで、jはNの1/2より小さい整数であり、全受信シーケンス内において、N−j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルで順次置き換える置換フェーズと、
各置換位置毎に、置換が正しいか否かを、配置/評価プロセスを実行することで決定する確定フェーズとを有することを特徴とする。
【0030】
また、本発明の第2の観点は、全送信シーケンスのナンバーにおけるあらゆるエラーを検出し訂正するための方法に関し、各ナンバーは所定の種類の物理量に変調されるN個のバイナリシンボルによって表現され、該全送信シーケンスは少なくとも2つの適応したコヒーレンスナンバーを含み、配置/評価処理によって、あらゆるエラーを訂正可能とするものである。そして、本方法は、
全送信シーケンスを表す物理量を復調して得られた全受信シーケンスのバイナリシンボルの数をカウントするカウントフェーズと、
この数がNの倍数よりj多い値に等しい場合、ここで、jはNの1/2より小さい整数であり、全受信シーケンス内において、N+j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルで順次置き換える置換フェーズと、
各置換位置毎に、この位置における置換が正しいか否かを、配置/評価処理を実行することで決定する確定フェーズとを有することを特徴とする。
【0031】
詳しくは、エラーの配置/評価処理は、上記エラー検出及び訂正の方法として説明した本発明の第1の観点によって構成される。
【0032】
更に詳しくは、本発明の第2の観点によれば、P個よりも少ないナンバーの全送信シーケンスの伝送時のあらゆるエラーを検出し訂正する方法を提供することを目的とする。ここで、各ナンバーは、所定の種類の物理量に変調されるN+1個のバイナリシンボルで表され、上記全送信シーケンスは本発明の第1の観点による少なくとも2つのコヒーレンスナンバーを含む。そして、本方法は、
カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られる全受信シーケンス中のバイナリシンボルの数を数え、
この数がN+1の倍数よりjを差し引いた値に等しい場合、ここでjは(N+1)/2よりも小さく、置換フェーズにより、全受信シーケンス内において、N+1−j個の連続したバイナリシンボルのグループをN+1個の置換バイナリシンボルで順次置換し、
確定フェーズにおいて、各置換位置毎に、置換の位置が正しいか否かを、本発明の第1の観点に基づく方法を実行することで決定することを特徴とする。
【0033】
更に、本発明の第2の観点は、P個よりも少ないナンバーの全送信シーケンスの伝送時のあらゆるエラーを検出し訂正する方法である。ここで、各ナンバーは、所定の種類の物理量に変調されるN+1個のバイナリシンボルで表され、上記全送信シーケンスは本発明の第1の観点による少なくとも2つのコヒーレンスナンバーを含む。そして、本方法は、
カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られる全受信シーケンス中のバイナリシンボルの数を数え、
この数がN+1の倍数よりjを加えた値に等しい場合は、ここでjは(N+1)/2よりも小さく、置換フェーズにより、全受信シーケンス内において、N+1+j個の連続したバイナリシンボルのグループをN+1個の置換バイナリシンボルで順次置換し、
確定フェーズにおいて、この置換の位置が正しいか否かを、本発明の第1の観点に基づく方法を実行することで決定することを特徴とする。
【0034】
なお、エラーの危険性において、ただ1つのバイナリデータアイテムが増加、脱落するという可能性が最も大きい。従って、本発明は非常に効果的である。
【0035】
更に、本発明の目的は最大P−3個のナンバーからなるイニシャルシーケンスのコーディングを行う装置を提供することを目的とする。ここで、Pは所定の自然数である。該装置は、イニシャルシーケンスに2つのコヒーレンスナンバーを付加して全送信シーケンスを形成するべく適用される中央演算処理ユニットを含む。2つのコヒーレンスナンバーは、全送信シーケンスに適用される2つの所定のコヒーレンスチェックのコンビネーションの各々が、モジュロPの所定の値を与えるように決定される。そして、少なくとも上記コンビネーションのうちの第1のコンビネーションが、全送信シーケンスにおけるナンバーをそれぞれの位置の関数として結合する。そして、上記装置は、物理量の変調器を含み、該変調された物理量は全送信シーケンスの送信に適用される。
【0036】
本発明の他の目的は、上述した装置による全送信シーケンスの送信中に発生したエラーを検出し訂正するための装置を提供することにある。この装置は、全送信シーケンスを表す物理量を復調して、受信された全シーケンスを提供する復調部と、全受信シーケンスのナンバーに上記コンビネーションを適用する中央処理ユニットとを含む。そして、上記コンビネーションを適用した結果、その値が上記モジュロPの所定値に等しくならない場合は、伝送エラーが発生したものと判断される。
【0037】
更に本発明の他の目的は、N個のバイナリシンボルによって表されるナンバーの列で構成された全送信シーケンスの送信において発生したエラーを検出し訂正する装置を提供することにある。そして、本装置は、物理量を復調し、全送信シーケンスを表す受信された全シーケンスを提供する復調部と、上記全受信シーケンスにおけるバイナリシンボルの数をカウントし、置換フェーズの実行を制御するための中央処理ユニットを含む。ここで、置換フェーズは、バイナリシンボルのカウント値がNの倍数から整数値j(jはN/2より小さい値とする)を差し引いた数に等しい場合に実行され、当該全受信シーケンスにおいて、順次、N−j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルに置き換える。
【0038】
更に本発明の他の目的は、N個のバイナリシンボルによって表されるナンバーの列で構成された全送信シーケンスの送信において発生したエラーを検出し訂正する装置を提供することにある。そして、本装置は、物理量を復調し、全送信シーケンスを表す受信された全シーケンスを提供する復調部と、上記全受信シーケンスにおけるバイナリシンボルの数をカウントし、置換フェーズの実行を制御するための中央処理ユニットを含む。ここで、置換フェーズは、バイナリシンボルのカウント値がNの倍数に整数値j(jはN/2より小さい値とする)を加えた数に等しい場合に実行され、当該全受信シーケンスにおいて、順次に、N+j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルに置き換える。
【0039】
より詳しくは、本発明による検出訂正の装置は、中央処理ユニットが以下の処理を行うべく適用される。すなわち、
全受信シーケンスにおけるナンバーの合計と等しい第2のコンビネーションを獲得し、
この第2のコンビネーションから、全送信シーケンスにおける各ナンバーの合計に基づく所定値を差し引くと、訂正されるべきあらゆるエラーによる誤差がこの差に等しくなり、誤差が0でない場合は、
全送信シーケンスにおけるナンバーと当該ナンバーの該シーケンスにおける位置に対応するポジションナンバーとの積の合計を得る第1のコンビネーションを実行し、
上記第1のコンビネーションを全受信シーケンスに適用して得られた結果と該第1のコンビネーションを全送信シーケンスに適用して得られた結果との差を上記誤差で除算し、この結果を、エラーの生じたナンバーが存在するポジションに対応するポジションナンバーとして用い、
エラーの生じたナンバーが存在する位置を示すポジションナンバーが置換されたナンバーの位置であった場合、或いは誤差が0となった場合に、確定フェーズにおいて置換ナンバーを確定する。
【0040】
また、本発明の目的は、上述の本発明の装置を内蔵するバーコードプリンタ、バーコードリーダ、ネットワークトランシーバ、リモートトランシーバを提供することにある。
【0041】
本発明の他の目的、特徴、利点は、以下に添付の図面を参照してなされる本発明の実施の形態の説明からも更に読み取ることができる。
【0042】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0043】
なお、コーディング技術の分野における周知の定義に従って、本明細書の記載において以下の用語を用いるものとする。
・バイナリシンボル:2つの値を取り得るシンボルであり、一般には「0」と「1」が用いられる。
・バイナリワード:所定の長さのバイナリシンボルの並びである。
・キャラクタ:所定の長さのバイナリシンボルの並びであり、アルファベットの一つを構成するものである。
・ナンバー:バイナリワードの各々に関連付けられた番号である。
・イニシャルシーケンス:伝送されるべきデータを表す一連のバイナリワードの並びである。
・全送信シーケンス:コヒーレンスナンバーに対応する2つのバイナリワードが付加されたイニシャルシーケンスである。
・全受信シーケンス:全送信シーケンスの変調と送信のための媒体として機能する物理量を復調して得られた結果のシーケンス。
・コヒーレンスナンバー:全送信シーケンスのバイナリワードに対応するナンバーにコンビネーションを適用した結果として得られるナンバー。
・置換ナンバー:置換フェーズにおいて、連続したバイナリシンボルのセットに置き換わるバイナリワード。
【0044】
また、以下の説明において、コヒーレンスナンバーがどのようにして生成されるかを説明するために幾つかのテーブルを用いる。以下、これらのテーブルについて説明を行っておく。
【0045】
図14に示されるテーブル1は、カラム3及び7にシンボルの例を(ここでは主に英数文字である)示し、カラム2及び6に各シンボルに対応する0〜66のナンバーの例を、カラム1及び5に各シンボルに対応するバイナリワードの例を示すテーブルである。なお、バイナリワードは、特に、上記特許出願において記述されているバーコードプリントに従うものである。
【0046】
図15に示されるテーブル2は、カラム1及び3に、指数の連続する2のべき乗(2の66乗まで)を示し、カラム2及び4に、それら指数の連続する2のべき乗値のモジュロ67を示している。
【0047】
図16に示されるテーブル3は、カラム2及び4に1〜66の数値の2を底とする対数値を、カラム1及び3にモジュロ67が有効となる計算結果を示すテーブルである。例えば、2を底とする17の対数は64である。なぜならば、2の64乗のモジュロ67の値が17だからである(テーブル2を参照)。このように、テーブル3は、テーブル2の逆関数に対応するものである。
【0048】
図17に示されるテーブル4は、カラム2及び4に、カラム1及び3に示されたナンバーの値の逆数のモジュロ67を示す。与えられたナンバーの逆数値による乗算のモジュロ67は、与えれたナンバーによる除算に対応する。
【0049】
これらのテーブルは後述のROMに格納され、必要に応じて読出される。このような、ROMよりの簡易な読み出しは、本実施形態の各処理を実行するためにこれらの値の各々を再度計算するという必要性を回避するものである。
【0050】
以下、図1を参照して本発明の第1の観点に従った装置の実施形態の説明を行う。本装置は、図1の如きブロック図によって示され、装置全体が参照番号10によって表されている。装置10は、アドレス/データバス16によって相互に接続された以下の構成を備える。すなわち、
・中央演算処理部(以下、CPU)11と、
・RAM12と、
・ROM13と、
・本装置10によってコヒーレンスナンバーが付加され、送信される対象となるデータを受信する入力ポート14と、
・これら送信すべきデータに対応するナンバーと、コヒーレンスナンバーとを含む全送信シーケンスの伝送を行う出力ポート15と、
・電気信号を物理量に変換する変調器17とを含む。
【0051】
特にRAM12は、最大64個のナンバーからなるイニシャルシーケンスを格納するレジスタを有する。ここで、ナンバーは67個の異なる値或いは文字やシンボルを表し得るものである。これらのナンバーは、7個のバイナリシンボルで構成され、同一ロジック状態のバイナリシンボルが5つ以上連続することはなく、且つ最初の3つのバイナリシンボルの全てが同一のロジック状態とはならず、且つ最後の3つのバイナリシンボルの全てが同一のロジック状態とはならないという規則に則っている。更に、RAM12は、以下に説明する7つの変数グループ、i、n(i)、Sum(i)、DoubleSum(i)、送信シーケンス、RO及びRIを備える。ROM13はCPU11の処理プログラムを格納するのに用いられる。そして、CPU11は、ROM13に格納されたプログラムを実行することにより、図3に示されるフローチャートを実現する。
【0052】
なお、この構成は、情報処理技術の専門家には周知であり、これ以上の詳細な説明は省略する。
【0053】
変調器17は所定の物理量を電気信号の関数として変換する。ただし、物理量は、図8、7で後述するような光反射量であってもよいし、図10、図11によって後述するようなネットワークを転送される電気的或いは光学的信号であってもよいし、更に、図12、図13によって後述するような音響的、光学的、電磁気的信号であってもよい。
【0054】
図2は、図3によって後述するエンコーディングフェーズの遂行によって得られる全送信シーケンスを示す図である。この全送信シーケンスは、スタートデリミタ(キャラクタ)21とエンドデリミタ22の間に、送信すべきイニシャルシーケンス20の各ナンバーと、これに続く2つのコヒーレンスナンバー、すなわち冗長データRO、RIを含む。
【0055】
スタートデリミタ21とエンドデリミタ22は、このメッセージを読み取る手段に対して当該メッセージの開始と終了を示すものであり、これらは当業者には周知である。
【0056】
コヒーレンスナンバーROとRIは図3に示される方法に従って計算される。図3は、送信されるべきイニシャルシーケンスに関るコヒーレンスナンバーを生成する手順を示すフローチャートである。
【0057】
全体的に説明すると、RO、RIは本発明の第1の観点に基づいて次のようにして決定される。すなわち、コヒーレンスナンバーRO、RIは、当該全送信シーケンスに2つの所定の「コヒーレンスチェック」コンビネーションを適用し、各々の結果のモジュロ67が所定の値を与えるように選択される。少なくとも、これらのコヒーレンスチェックコンビネーションのうちの第1のコヒーレンスチェックは、全送信シーケンスにおける各ナンバーの位置に基づいて、全送信シーケンスにおけるそれぞれのナンバーを結合する。
【0058】
更に詳しくは、ここで、コヒーレンスナンバーRO及びRIは、全送信シーケンスにおける全ナンバーの合計のモジュロ67が「無し」(すなわち0、こうして第2の組み合わせに対応する所定値となる)となるように選択される。一方、RO及びRIは、全送信シーケンスにおける各ナンバーを対応するポジションナンバーで乗じて得られた合計のモジュロ67が「無し」(すなわち0、こうして第1のコンビネーションに対応する所定値となる)となる。ここで、全送信シーケンスにおける各ナンバーのポジションナンバーは、当該ナンバーの全送信シーケンスにおける順番に対応する数を指数とする2のべき乗である。ここで、順番に対応する数とは、最後(RI)のナンバーからの順序を示す数であり、この最後のナンバーの位置には指数0(2の0乗)が割り当てられる。
【0059】
これらの規則に基づいて、CPU11は2つの方程式からなる連立方程式の解を求めることになる。このようなエンコーディングフェーズの後に、全送信シーケンスは送信フェーズに移され、所定の物理量に変換され、送信され、更に、全受信シーケンスを形成するために復調される。そして、これに続くデコーディングフェーズによって、あらゆる伝送エラーが検索される。
【0060】
次に、本発明の第1の観点に基づくデコーディングフェーズの概要を説明する。このデコーディングフェーズは、エンコーディングフェーズで用いたコンビネーションを受信した全シーケンス中のナンバーに適用する。そして、このコンビネーションの適用結果が、上述した各コンビネーションに対応する所定のモジュロ67の値に等しくない場合、伝送エラーが発生したと推定され、当該全受信シーケンスに訂正がなされる。
【0061】
上述のコヒーレンスナンバーR0、R1の計算方法によれば、全受信シーケンスにおけるナンバーに適用されたコンビネーションの結果がゼロであった場合は、伝送が正しく機能したことを意味する。
【0062】
次に、伝送されたバイナリワードの一つにおいて、バイナリシンボルの総数に変化を与えないシングルエラーが発生したと仮定して説明を行う。この場合、全受信シーケンスに第2のコンビネーションを適用した結果がナンバーαを与えるのであれば、これはエラーの発生によって生じた誤差を示すものである。また、もし第1のコンビネーションを適用した結果がナンバーβを与えるのであれば、βをαで除算した結果がエラーの発生したナンバーの位置を示すポジションナンバーを示す。従って、当該ポジションナンバーによって示される位置に、誤差αを加算することで、当該位置におけるナンバーを訂正することができる。
【0063】
特に、上記除算では必然的に2のべき乗が結果として与えられ、このべき乗の指数がエラーの発生したナンバーの位置を与えるものとなる。なお、エラーの発生したナンバーの位置は、R0から始まり、全受信シーケンスを通して順次増加する番号で与えられる。
【0064】
以上のように、一方で位置を知り、他方でエラーによる誤差値を知ることができるので、本実施形態による方法及び装置によれば、全送信シーケンスにおいてナンバーの修復を行うことが可能なのは明らかである。
【0065】
本実施形態による方法を実施するために、少なくとも1連のポジションナンバーを、1対1に全送信シーケンス中のナンバーの位置に割り当て、第1のコンビネーションの実行において、この全送信シーケンスに含まれるナンバーの各々に対応する上記ポジションナンバーを掛け合わせる。
【0066】
図3は、上記において簡潔に述べた方法による、伝送すべきデータに関るコヒーレンスナンバーを発生するプログラムの手順を示すフローチャートである。これは、特に67文字より少ないアルファベットを用いたバーコードに適用される。ここで、キャラクタは、連続するキャラクタの間においても、或いは一つのキャラクタ内においても、5つ以上の同一のバイナリシンボル列を含まない。なお、このような特性が要求されないアプリケーションにおいては、テーブル1のカラム1及び5は必要ないであろう。
【0067】
ステップ301において、本実施形態にかかる装置の初期化を行う。より詳しくは、RAM12の各レジスタ、変数i、Sum及びDoubleSumをゼロにリセットし、入力ポート14を介してCPU11によって受信された送信すべきデータをRAM12に格納する。次に、ステップ302において、スタートデリミタ21に対応するバイナリワードをRAM12の送信シーケンスレジスタに格納する。スタートデリミタ21はテーブル1の18番目のラインに示す如く定義されている。続いて、ステップ303において、RAM12における最初の有効キャラクタを読み取る。そのナンバーをiとし(iはゼロから始まる)、そのキャラクタに対応するナンバーn(i)をテーブル1のカラム2及び6から読み取る。整数値n(i)は0と66の間である。ステップ303では、更に、変数Sum(i)を計算する。Sum(i)は前回までの値(Sum(i−1))とn(i)との合計のモジュロ67である。また、これと並行して、DoubleSum(i)を計算する。DoubleSum(i)は、前回までの値を2倍したものとn(i)との合計のモジュロ67である。すなわち、
Sum(i)=Sum(i−1)+n(i) (モジュロ67)
DoubleSum(i)=2×DoubleSum(i−1)+n(i)(モジュロ67)
続いて、ステップ304において、スタートデリミタ21を格納した送信シーケンスレジスタに、順次整数値n(i)に対応するバイナリワードを格納していく。なお、n(i)はステップ303において得られるものであり、そのバイナリワードはテーブル1のカラム1及び5によって与えられる。
【0068】
ステップ305では、ポジションiのキャラクタが当該送信すべきデータの最後のキャラクタか否かを判定する。もしそうでなければ、変数iを1つインクリメントし、送信用データの第i番目のキャラクタに関して上記の処理が行なわれる。もし、ステップ305において最後のキャラクタであると判定された場合は、ステップ306へ進む。ステップ306は、コヒーレンスナンバーRO及びRIを算出する。この算出は、2つの未知数を含む連立方程式によって算出される。すなわち
Sum(i)+RO+RI=0 (モジュロ67)
4×DoubleSum(i)+2×RO+RI=0 (モジュロ67)
である。行列式はゼロではなく、それゆえ、ただ一つの解のみを有する。ステップ306では更に、全送信シーケンスの形成のために、送信シーケンスレジスタのイニシャルシーケンスに対応するバイナリワード列のあとに、テーブル1を参照して得られる2つのコヒーレンスナンバーRO、RIに対応する2つのバイナリワードが格納される。ステップ307では、送信シーケンスレジスタにおいて、これら2つのコヒーレンスナンバーの後に、エンドデリミタ22に対応するバイナリワードを格納する。このエンドデリミタ22に対応するバイナリワードは、テーブル1の15番目のラインによって与えられている。上記ステップ302から307は、全送信シーケンスの初期の手順であるエンコーディングフェーズを構成するものである。
【0069】
最後に、ステップ308において、全送信シーケンスを送信する。この送信では、上記送信シーケンスレジスタに格納された順序で、そこに存在するデータを、出力ポート15を介して変調器17に送信する。変調器17は、全送信シーケンスを表すバイナリデータに基づいて所定の物理量への変調を行う。
【0070】
続いて転送フェーズが、ステップ308の後に実行される。転送フェーズは、変調された物理量の伝送と、当該物理量の復調からなる。全送信シーケンスにおけるバイナリワードは、図4に示される受信装置によって全受信シーケンスの形態として受信される。そして、本実施形態で示される方法に従って処理される。エラー検出及び訂正のプロセスは、2つの観点から、図5、図6、図7を参照して説明される。
【0071】
次に、本発明の2つの観点に基づいた実施形態について、エラーを検出する装置のブロック図を示す図4を参照して説明する。この装置は参照番号40で示されている。アドレス/データバス46によって互いに接続された以下の構成を備える。
・CPU41と、
・RAM42と、
・ROM43と、
・全受信シーケンスを受信するべく機能する入力ポート44と、
・物理量をバイナリデータに復調する復調器48と、
・全受信シーケンスを処理して得られる訂正済みのシーケンスを、当該装置によって送信可能とする出力ポート45と、
・バイナリデータを所定の物理量に変調する変調器47とを有する。
【0072】
コヒーレンスナンバーの生成についてはすでに上述したのでここでは説明を行わない。エラー検出と訂正に関して、特にRAM42は、10個の変数グループを格納する10個のレジスタと、現在処理中の全受信シーケンスを格納するレジスタを有する。10個の変数グループとは、Sum、DoubleSum、i、position、n、table、total、RO、RI及びcurrentである。ROM43は装置及びCPU41のオペレーティングプログラムを格納するのに適用される。CPU41は、ROM43に格納されたプログラムを実行することで、図5〜図7に示したフローチャートにおいて記述されているオペレーションの全てを実施する。また、ROM43は、図14〜図17に示されるようなテーブルを格納する。
【0073】
変調器47は、出力ポート45から供給されるデータを電気信号の関数とすることで所定の物理量に変調し、バイナリデータを表現する。ここで、物理量とは、図8、図9で後述するようなサポートからの光反射率であってもよいし、図10、図11で後述するようなネットワークを伝わる電気信号、光信号であってもよいし、図12、図13で後述するような音響的、光学的、電気的信号であってもよい。復調器48はバイナリデータを表す電気信号を、変調器17によって変調された物理量の関数として、入力ポート44へ送信する。
【0074】
この構成は、情報処理技術の専門家には知られたものであるので、ここでは詳細な説明を省略する。
【0075】
さて、図4に示した装置の動作概要を説明すると、本装置は本発明の第2の観点に基づく処理を実現する。すなわち、所定の物理量を変調するためのN個のバイナリシンボルで表されるナンバーによって構成される全送信シーケンスの各ナンバーを送信する際に、一つもしくは複数のバイナリシンボルが付加されもしくは脱落することが原因で発生するエラーの検出及び訂正が実現される。ここで、この全送信シーケンスは、少なくとも2つのコヒーレンスナンバーを有し、配置/評価処理により、いかなるエラーの訂正をも可能とする。ここで、配置/評価処理は伝送中のエラーの検出と訂正を可能とするいかなるプロセスをも意味する。伝送中のエラーとは、N個のバイナリシンボルによって表されるナンバーが、N個のバイナリシンボルで表される誤ったナンバーで置き換えられるものである。本実施形態の構成例によれば、上述の本発明の第1の観点に基づいて説明した実施形態による方法が、配置/評価処理を構成する。
【0076】
さて、本発明の第2の観点に基づいた本実施形態による方法では、カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を数え、
・この数がNの倍数であれば、上記配置/評価処理を実施し、
・この数がNの倍数よりj(jはNの1/2より小さい)少ない場合は、置換フェーズを実行し、全受信シーケンスにおいて順次、N−j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルで置き換える。そして、確定フェーズにおいて、この置き換えが正しいか否かを、配置/評価処理を実施することによって決定し、
・この数がNの倍数に整数値j(jはNの1/2より小さい)を加えたものに等しい場合は、置換フェーズを実行し、全受信シーケンスにおいて、N+j個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルで順次置き換える。そして、確定フェーズにおいて、この置き換えが正しいか否かを、配置/評価処理を実施することによって決定する。
【0077】
更に詳しくは、配置/評価処理が本発明の第1の観点に基づくものである場合は、本実施形態は、67個よりも少ない個数のナンバーで構成される全送信シーケンスの伝送時におけるいかなるエラーをも検出し訂正するための方法となる。ここで、ナンバーの各々は、所定の物理量を変調する7個のバイナリシンボルで表現される。また、全送信シーケンスは、本発明の第1の観点に基づき、少なくとも2つのコヒーレンスナンバーを有する。そして、カウントフェーズにおいて、全送信シーケンスを表す物理量を復調して全受信シーケンスにおけるバイナリシンボルの数をカウントする。そして、
この数が7の倍数である場合は、本発明の第1の観点に基づく方法を実施し、この数が7の倍数から1を引いた数に等しい場合は、置換フェーズを実行し、上記全受信シーケンスにおいて、6個の連続したバイナリシンボルのグループを7個の置換バイナリシンボルのグループで順次置き換え、続いて確定フェーズにおいて本発明の第1の観点に基づいた方法を実施することによってこの置換が正しいか否かを決定し、
この数が7の倍数に1を加えた数に等しい場合は、置換フェーズを実行し、上記全受信シーケンスにおいて、8個の連続したバイナリシンボルのグループを7個の連続した置換バイナリシンボルのグループで順次置き換え、続いて確定フェーズにおいて、本発明の第1の観点に基づいた方法を実施することによってこの置換が正しいか否かを決定する。
【0078】
この特別な実施形態において、本発明の第2の観点に基づくエンコーディングフェーズの一例は図3を参照して上述したとおりである。ここでは、本発明の第2の観点に基づくデコーディングフェーズの一例を説明する。
【0079】
受信したバイナリシンボルのカウントは、伝送によって、1つ、2つまたそれ以上のバイナリシンボルが全送信シーケンスに偶発的に付加されたり、脱落してしまったりしたことを検出可能とする。このようなカウントは次のような結果をもたらす。すなわち、
・バイナリシンボルの数が7の倍数であると、本発明の第1の観点に基づくデコーディングが適用される、
・全受信シーケンスから1つのバイナリシンボルが失われると、本発明の第2の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、6個の連続したバイナリシンボルのグループに、バイナリシンボルを付加し、当該シーケンスを複数の7個のバイナリシンボルのグループによって構成する。上記6個の元のバイナリシンボルは、付加されたバイナリシンボルとともにナンバーを形成し、置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第1の観点に基づくデコーディングフェーズによる処理がなされる。
【0080】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の6個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【0081】
次に、2つのバイナリシンボルが脱落した場合を説明する。この場合、
・全受信シーケンスから2つのバイナリシンボルが失われると、本発明の第2の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、5個の連続したバイナリシンボルのグループに、2つのバイナリシンボルを付加し、当該シーケンスを複数の7個のバイナリシンボルのグループによって構成する。上記5個の元のバイナリシンボルは、付加されたバイナリシンボルとともにナンバーを形成し、置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第1の観点に基づくデコーディングフェーズによる処理がなされる。
【0082】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の5個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【0083】
次に、1つのバイナリシンボルが付加されてしまった場合を説明する。
・全受信シーケンスの全バイナリシンボル数が1つ多い場合は、本発明の第2の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、8個の連続したバイナリシンボルのグループより1つのバイナリシンボルを取り除き、当該シーケンスを複数の7個のバイナリシンボルのグループによって構成する。1つのバイナリシンボルが除去された上記8個の元のバイナリシンボルは置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第1の観点に基づくデコーディングフェーズによる処理がなされる。
【0084】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の8個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【0085】
次に、2つのバイナリシンボルが付加されてしまった場合を説明する。
・全受信シーケンスの全バイナリシンボル数が2つ多い場合は、本発明の第2の観点に基づく方法が適用される。すなわち、置換フェーズにおいて、9個の連続したバイナリシンボルのグループより2つのバイナリシンボルを取り除き、当該シーケンスを複数の7個のバイナリシンボルのグループによって構成する。2つのバイナリシンボルが除去された上記9個の元のバイナリシンボルは置換ナンバーとなる。そして、確定フェーズにおいて、誤り検出及び訂正が全受信シーケンスに適用され、本発明の第1の観点に基づくデコーディングフェーズによる処理がなされる。
【0086】
ここで、
・もし、デコーディングフェーズで、当該置換ナンバーの位置にエラーが検出されれば、この置換ナンバーにおけるエラーの訂正によって全受信シーケンスの訂正が終了する、また、
・もし、置換ナンバーの位置にエラーが検出されなければ、処理は復調された全受信シーケンスにおける次の9個のバイナリシンボルのグループへ移り、全ての可能性のあるグループがテストされることになる。
【0087】
なお、全受信シーケンスにおいて3つのバイナリシンボルが増加或いは脱落した場合も同様の処理が実行される。
【0088】
なお、本方法において、確定されなかった置換は、逆置換によってキャンセルされる。この結果、これに続く以降の置換は、復調された全受信シーケンスのオリジナルに対して作用することと等価になる。
【0089】
図5、図6および図7は、図4に示された装置の制御手順を示すフローチャートである。本制御は、全受信シーケンスに関するコヒーレンスナンバーを利用し、伝送エラーを検出するとともにこれを訂正する。
【0090】
図5のステップ501において、装置の初期化を行う。すなわち、変数totalを0に、変数nを1にそれぞれセットする。そして、装置は、物理量を復調してバイナリデータとし、スタートデリミタ21を抽出する。そして、ステップ502において、所定の物理量がバイナリデータに変調される。
【0091】
ステップ503において、totalレジスタ内のtotal値に読み出されていくキャラクタのバイナリシンボルの数を加算し、モジュロ7をとって、これを新たなtotal値とする。ステップ504では、一方で、ゼロを示すバイナリシンボルが少なくとも5つ連続したか否かをしらべ、他方で最後のグループの7個のバイナリシンボルの最後のバイナリシンボルがゼロでなく、そのバイナリワードがエンドデリミタ(テーブル1のカラム1の第15番目のラインを参照:0100101)であるかをチェックする。これらの条件の少なくとも一つでも満たされなかった場合は、CPU41はステップ502へ戻り、次のキャラクタについての処理を行う。ステップ504でエンドデリミタが検出された場合は、ステップ505において、エンドデリミタ及びこれに続くバイナリシンボルを抽出するとともに、これらバイナリシンボルの数、及びエンドデリミタのバイナリシンボルの数をtotal値より差し引く。ステップ506において、total値がゼロであるか否かを判定する。すなわち、全受信シーケンスを構成するバイナリシンボルの総数が7の倍数か否かを判定する。ステップ506によるチェックの結果、total値がゼロの場合は、ステップ507(図6)が実行され、それ以外の場合はステップ518(図7)が実行される。カウントフェーズは、このように、ステップ503、504、505及び506によって構成される。次に、ステップ507から517によるデコーディングフェーズを説明する。
【0092】
ステップ507ではテーブルを生成する。このテーブルは、各位置に7個一組みのバイナリシンボルを含むように生成される。ここで、7個一組のバイナリシンボルとは、読み取られた順に7個ずつ区切って得られるものである。このテーブルは更に整数値n(i)を含む。このn(i)はそれぞれ、一組7個のバイナリシンボルで構成されるバイナリワードに対応する番号(0〜66)である。ステップ508では、3つの変数グループ、すなわち、Sum(i)、DoubleSum(i)及びiをリセットする。ここで、iはテーブル中の、それぞれの7個組みのバイナリシンボルの位置を表す。ステップ509では、Sum(i)とDoubleSum(i)を次の方法で計算する。
【0093】
Sum(i)=Sum(i−1)+n(i) (モジュロ67)
DoubleSum(i)=2×DoubleSum(i)+n(i) (モジュロ67)
ステップ510では、テーブル内の各バイナリワードについて処理を終えたか否かを判定する。まだ未処理のバイナリワードがあればステップ511へ進み、iを1増加したのち、ステップ509へ戻る。ステップ510において、全バイナリワードについて処理を終えたと判定されると、ステップ512へ進む。ステップ512では、iの値が変数nに代入される。この結果、nは全受信シーケンスの要素数(ナンバー数)となる。
【0094】
次に、ステップ513において、DoubleSum(n)とSum(n)がともに0か否かを判定する。もし、共に0であれば、ステップ514へ進み、エラー検出処理の結果、伝送エラーが発生しなかったと認識される。そして、当該エラー訂正処理から抜けて、その正しい全受信シーケンスを用いた処理を開始する。なお、この受信シーケンスを用いた処理については、ここでは説明を省略する。ステップ513において、少なくとも一方が0でない場合はステップ515へ進む。ステップ515では、DoubleSum(n)とSum(n)の両方がともに0でないかどうかチェックする。もし一方が0であった場合は、CPU41によってエラーメッセージが転送され、後述のステップ532へ進む。このメッセージは2つの伝送エラーが発生したが、本実施形態によるデバイスでは訂正できないことを意味する。ステップ515において、両方が共に0でない場合はステップ516へ進む。ステップ516では、変数positionを計算する。変数positionの算出手順は次の通りである。まず、モジュロ67であるDoubleSum(n)とSum(n)のインバースとの積を求める。ここで、Sum(n)のインバースは、図17のテーブル4から得られる。テーブル4において、第1及び第3カラムがSum(n)を表し、第2及び第4カラムがそれぞれに対応するインバース値を示す。以上のようにして得られた積(これはDoubleSum(n)をSum(n)で割った値に等価である)について、2を底とする対数を、テーブル3を用いて獲得する。この対数値がエラーナンバーの、全受信シーケンスにおける最終ナンバーからの位置を示すことになる。そして、ステップ517において、上記テーブル内のステップ516で得た位置におけるナンバー(すなわち誤ったナンバー)から、Sum(n)の値を差し引くことで、当該エラーナンバーを変更(訂正)する。このようにして、誤り訂正が有効に機能し、CPUの処理はステップ525へ進み、テーブルにおいて得られたシーケンスを用いた処理が実行される。
【0095】
一方、バイナリシンボルの数に増減が発生した場合(totalが0でない場合)はステップ506からステップ518へ進む。
【0096】
ステップ518では、変数current及び変数iを0に初期化する。ステップ519では、変数iを0にリセットするとともに、変数Sum(i)及びDoubleSum(i)をそれぞれ0にリセットする。ステップ520においては、以下の各式に関る演算を実行する。すなわち、変数Sum(i)及びDoubleSum(i)の値が以下の演算式で計算される。
【0097】
Sum(i)=Sum(i−1)+n(i) (モジュロ67)
DoubleSum(i)=2×DoubleSum(i−1)+n(i) (モジュロ67)
ステップ521において、変数iが変数nに等しいか否かを判定する。もし等しくなければ、ステップ522に進み、変数iが変数currentに等しいか否かを判定する。もし等しくなければ、ステップ524へ進み、iを1インクリメントしステップ520へ戻る。そして、ステップ520では新たな変数Sum(i)とDoubleSum(i)を計算し、ステップ521を再度実行する。
【0098】
ステップ522において変数iと変数currentが等しいと判定されると、ステップ523へ進み、変数iに変数current+1を代入するとともに、DoubleSum(i)に直前のDoubleSum(i)の2倍の値を代入する。ステップ527では、変数totalの値が4以上であるか否かを判定する。変数totalの値が4以上の場合はステップ529へ進み、total個のバイナリシンボルを読み出さずに(読み飛ばし)、代わりに7個のゼロバイナリシンボルを読み出す。この7個のゼロバイナリシンボルは、7個の置換バイナリシンボルのグループを構成する。一方、ステップ527における判定が否である場合、処理はステップ528に進む。ステップ528においては、変数totalの値に7を加えた数のバイナリシンボルを読み出さずに(読み飛ばし)、代わりに7個のゼロバイナリシンボルを読み出す。この7個のゼロバイナリシンボルは、7個一組の置換バイナリシンボルのグループを構成する。ステップ528、529のいずれかのステップの処理を通ると、テーブルに格納されたバイナリワードが再評価される。すなわち、適正な数の7個組みのバイナリデータアイテムを含む受信シーケンスを再構成するべく読み飛ばしたバイナリデータアイテムのナンバーを別にして再評価がなされる。ここで、置換フェーズはステップ527、528及び529によって構成される。ステップ528或いは529の一方の処理の後に、ステップ520が再度実行され、テーブルが作成される。
【0099】
さて、ステップ521において変数iと変数nが等しいと判定されると、処理はステップ530へ進む。ステップ530は、−Sum(i)のモジュロ67をとり、これをテーブル中の、変数currentで示される位置に対応する変数に割り当てる。そして、ステップ531において、Sum(i)の値と「n−2−current」を指数とする2のべき乗との積が変数DoubleSum(i)に等しくなるか否かを判定する。ステップ531の判定の結果、両者が等しければ、誤り訂正処理を終了し、当該テーブルを用いた処理が実行される。一方、ステップ531の判定結果が否であればステップ526へ進む。ステップ526では、変数currentの値が変数nの値と等しいか否かを判定する。もし等しければ、ステップ532においてRAM内の各変数を0にリセットし、全受信シーケンスを表すバイナリシンボルをリセットする。もし、ステップ526の判定結果が否であればステップ533へ進む。ステップ533では、ステップ530と反対の処理を行う。すなわち、テーブル中の変数currentの値で示される位置の変数に、全受信シーケンスの元々の値を再格納する。そして、変数currentを1増加させてステップ519へ戻る。このように、確定フェーズはステップ520、521、522、、524、526、630、531及び533で構成される。以上のように、誤り訂正処理は、誤り訂正が不可能であるとして終了するステップ532、誤りが検出されなかったとして終了するステップ514、誤りが訂正されたとして終了するステップ525の何れかで終了することになる。
【0100】
以上のように、本発明の第1の観点に基づく実施形態は、ナンバーの誤り訂正に関し、それらナンバーを表すバイナリシンボルの数を変更することなく訂正を行うものであり、ステップ507〜517を含むものである。更に、第2の観点に基づく実施形態は、別の処理であるステップ520〜535を含み、バイナリシンボルの偶発的な増加、脱落に関るエラーが発生した場合に対応すべく拡張された訂正処理である。
【0101】
図8は、本発明に基づく装置を内蔵するバーコードプリンタを示す図である。図8に示されるように、バーコードプリンタ600は図1に示された各構成とプリンタ部601とを有する。バーコードプリンタ600は、たとえば、一般的な形態のものでよい。プリンタ部601は、特に、レーザ方式、1つまたは複数のインクジェット、熱転写リボン等を用いてプリントを行う。
【0102】
図9は、本発明に基づく装置を内蔵するバーコードリーダを示す図である。図9に示すように、バーコードリーダ700は、図4に示した構成を有するとともに、上記バーコードを構成するバーを光学的に走査する光センサ部701を有する。光センサ部701は、複数ラインを形成するための感光ドットを含む光学マトリクススキャナであってもよいし、感光ドットをライン状に備えた光学リニアスキャナであってもよいし、あるいは、単一の感光領域を有し、走査すべきバーコードイメージの前を走査して用いる光学スキャナであってもよい。
【0103】
なお、なお、使用するバーコードとしては、マトリクス型のもの、すなわち高反射領域と低反射領域を有するいわゆる2次元ネットワークであってもよいし、低反射及び高反射のラインを平行に並べたリニア状のものであってもよい。
【0104】
図10及び図11は、それぞれ、ケーブルによる送信装置及び受信装置を示し、送受信装置のそれぞれは本発明に基づく装置を内蔵している。図10に示されるように送信装置800は図1に示されるすべての要素を内蔵し、出力ポート15及びケーブルネットワーク801に接続された変調器17を含む。また、図11に示されるように、受信装置802は、図4に示されるすべての構成を有し、入力ポート44及びケーブルネットワーク801に接続された復調器48を有する。
【0105】
変調器17は、出力ポート15より供給される電気パルスをケーブルネットワーク801上を伝送され得る物理量に対応するパルスに変換する。この物理量は、たとえば、電位(ポテンシャル)、電流量、周波数、あるいは位相等の種々の電気的なものでもよいし、光強度、波長、周波数あるいは位相等の種々の光学的なものでもよい。復調器48は、所定の物理量における変化をバイナリシンボルに変換する。
【0106】
図12及び図13は、それぞれ、無線による送信装置及び受信装置を示し、送受信装置のそれぞれは本発明に基づく装置を内蔵している。図12に示されるように、送信装置900は図1に示されるすべての要素を内蔵し、出力ポート15に接続された変調器901を有する。また、図13に示されるように、受信装置901は、図4に示されるすべての構成を有し、入力ポート44に接続された復調器48を有する。
【0107】
変調器901は、たとえば、電磁的信号、光学的信号、音響的信号等を送信することができる。復調器48は、所定の物理量における変化をバイナリシンボルに変換する。
【0108】
なお、本発明は図を参照して説明した上記実施形態に限定されるものではなく、当業者によって理解される範囲内のすべての変形を含むものである。
【0109】
特に、本発明の第2の観点に基づく誤り検出及び訂正の方法は、全てのデコーディング、エラー検出及び訂正方法に適用できる。また、上述した配置及び評価処理も、現時点ではナンバーの訂正をそれらを形成するバイナリシンボルの数の修正無しに行うもの限られたが、全てのデコーディング、エラー検出及び訂正方法に適用できるものである。
【0110】
また、第2のコンビネーションが、全送信シーケンスにおける各ナンバーの位置の関数として送信シーケンスのナンバーを結合することもできる。特に、ポジションナンバーの第2のシリーズのアプリケーションは、1対1である必要はなく、本発明が適用され得る。しかし、全体として誤り訂正手段は低速になる。なぜならば、システムがエラーの評価、エラー位置の検出を可能とする式が複雑であり、式を解くのに時間を要するからである。ポジションナンバーの可能な2つのシリーズは次のようなものでなければならない。すなわち、第1のシリーズにおけるナンバーを第2のシリーズの同じ行のナンバーで割った値のモジュロ67が全て異なるものでなければならない。
【0111】
更に、上記において、Pは所定の自然数であり67を置き換えるものである。ここで、64はP−3で置き換えられ得る。
【0112】
しかしながら、好ましくは、Pは、イニシャルシーケンスがP−3個のナンバーを持つことができるような素数とすべきである。特に、PはプリミティブナンバーQを有するべきである。これは、
・ステップ303、509及び520において、DoubleSumの計算のための乗数である2をQによって置き換えることができ、
・テーブル1、テーブル2、テーブル3の計算を、数値2のかわりに数値Qを用いて行えるからである。
【0113】
更に詳しくは、Pのプリミティブナンバーは2であるべきである。
【0114】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0115】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0116】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0117】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0118】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0119】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0120】
【発明の効果】
以上説明したように、本発明によれば、イニシャルシーケンスの、伝送中に発生したエラーを検出し、その位置を特定し、訂正することが可能となる。
【0121】
また、複数のバイナリシンボルで表されるキャラクタを複数固有してなるシーケンスにおいて、バイナリシンボルの偶発的な増減によるエラーが発生した場合でも、そのエラーを検出し、訂正することが可能となる。
【0122】
【図面の簡単な説明】
【図1】本発明に係るコヒーレンスナンバーを発生する装置の構成を示すブロック図である。
【図2】コヒーレンスナンバーを計算し発生する方法を実施して得られる、ナンバーのシーケンスを示す図である。
【図3】送信すべきナンバーのシーケンスに関するコヒーレンスナンバーを発生するための手順を示すフローチャートである。
【図4】本発明の第2の観点に基づくコヒーレンスナンバーの生成と決定を行う装置の構成を示すブロック図である。
【図5】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図6】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図7】送信されたシーケンスに関するコヒーレンスナンバーのデコーディング、送信エラーの検出、及びそれらの訂正を行う手順を示すフローチャートである。
【図8】本発明による装置を内蔵するバーコードプリンタの構成を示すブロック図である。
【図9】本発明に係る装置を内蔵するバーコードリーダの構成を示すブロック図である。
【図10】本発明に係る装置を内蔵する、ケーブル接続型の送信装置の構成を示すブロック図である。
【図11】本発明に係る装置を内蔵する、ケーブル接続型の受信装置の構成を示すブロック図である。
【図12】本発明に係る装置を内蔵する、無線送信装置の構成を示すブロック図である。
【図13】本発明に係る装置を内蔵する、無線受信装置の構成を示すブロック図である。
【図14】シンボルと、各シンボルに対応するナンバー及びバイナリワードのセットを登録したテーブルを示す図である。
【図15】2のべき乗値(2の66乗まで)のモジュロ67の値を登録したテーブルを示す図である。
【図16】1〜66の各数値の2を底とする対数値のモジュロ67の値を登録したテーブルを示す図である。
【図17】各ナンバーの値の逆数のモジュロ67の値を登録したテーブルを示す図である。
【符号の説明】
10 データ送信装置
11、41 CPU
12、42 RAM
13、43 ROM
14、44 入力ポート
15、45 出力ポート
17、47 変調器
40 データ受信装置
48 復調器
Claims (25)
- 所定の自然数をPとしたとき、所定の種類の物理量に変調されるバイナリデータを表すナンバーを、最大P−3個有してなるイニシャルシーケンスに発生した伝送エラーを検出し訂正する方法であって、
前記イニシャルシーケンスに2つのコヒーレンスナンバーを付加して全送信シーケンスを形成するエンコーディング工程と、該2つのコヒーレンスナンバーは、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスに基づいて変調されている前記物理量を伝送し、全受信シーケンスを形成するためにこれを復調する伝送工程と、
前記全受信シーケンスに前記コンビネーションを適用し、該コンビネーションの適用の結果が前記所定のモジュロP値に等しくならない場合、伝送エラーが発生したものとし、これを訂正するデコーディング工程とを備えることを特徴とする誤り検出訂正方法。 - 前記Pが素数であることを特徴とする請求項1に記載の誤り検出訂正方法。
- 前記Pがプリミティブナンバーとして2を有することを特徴とする請求項1または2に記載の誤り検出訂正方法。
- 前記第2のコンビネーションは前記全送信シーケンス内の位置とは無関係に該全送信シーケンス内のナンバーを結合することを特徴とする請求項1乃至3のいずれかに記載の誤り検出訂正方法。
- 前記第2のコンビネーションは、前記全送信シーケンスのナンバーの合計のモジュロPであることを特徴とする請求項4に記載の誤り検出訂正方法。
- 前記第1のコンビネーションは、前記全送信シーケンスにおける各ナンバーと、前記Pより小さい自然数値であるポジションナンバーとの積の合計であり、該ポジションナンバーは該全送信シーケンス内のナンバーの位置のみに関連することを特徴とする請求項1乃至5のいずれかに記載の誤り検出訂正方法。
- 前記Pがプリミティブナンバーとして2を有し、前記ポジションナンバーは、2のべき乗のモジュロP値で表され、そのべき乗の指数は各ナンバーの前記全送信シーケンス内の位置を表す数であることを特徴とする請求項6に記載の誤り検出訂正方法。
- 前記デコーディング工程は、前記全受信シーケンスの全てのナンバーを加算し、その加算結果と前記第2のコンビネーションに対応する所定値との差をとることにより伝送エラーによる誤差を獲得し、この誤差が0でない場合は、該全受信シーケンス中の各ナンバーと当該ナンバーの該全受信シーケンスにおける位置に対応するポジションナンバーとの積の合計と、前記第1のコンビネーションに対応する所定値との差のモジュロP値を前記誤差で除算することにより該全受信シーケンスにおけるエラーの位置に対応するポジションナンバーを獲得することを特徴とする請求項5または6に記載の誤り検出訂正方法。
- 前記所定値はゼロであり、前記第2のコンビネーションを前記全受信シーケンスに適用した結果が誤差となり、該誤差がゼロでない場合は、該全受信シーケンスに前記第1のコンビネーションを適用した結果を該誤差で除算した結果が全受信シーケンスにおけるエラーの生じたナンバーの位置に対応するポジションナンバーとなることを特徴とする請求項8に記載の誤り検出訂正方法。
- 全送信シーケンスのナンバーの伝送時に発生したエラーを検出し訂正する誤り検出訂正方法であって、前記ナンバーの各々は所定の種類の物理量に変調されるN個のバイナリシンボルによって表され、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを含み、該2つのコヒーレンスナンバーは、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に 、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がNの倍数から1を差し引いた数に等しい場合、前記全受信シーケンスにおいて、N−1個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置/評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。 - 全送信シーケンスのナンバーの伝送時に発生したエラーを検出し訂正する誤り検出訂正方法であって、前記ナンバーの各々は所定の種類の物理量に変調されるN個のバイナリシンボルによって表され、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを含み、該2つのコヒーレンスナンバー、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がNの倍数に1を加えた数に等しい場合、前記全受信シーケンスにおいて、N+1個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置/評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。 - P個のナンバーよりも少ない全送信シーケンスの伝送時におけるエラーを検出し訂正する方法であって、各ナンバーは物理量に変調されるN+1個のバイナリシンボルで表され、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを有し、ここで、該2つのコヒーレンスナンバーは2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がN+1の倍数から1を差し引いた数に等しい場合、前記全受信シーケンスにおいて、N個の連続したバイナリシンボルのグループをN+1個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置/評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。 - P個のナンバーよりも少ない全送信シーケンスの伝送時におけるエラーを検出し訂正する方法であって、各ナンバーは物理量に変調されるN+1個のバイナリシンボルで表され、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを有し、ここで、該2つのコヒーレンスナンバーは2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを表す物理量を復調して得られた全受信シーケンス内のバイナリシンボルの数を計数する計数工程と、
前記計数工程の計数結果がN+1の倍数に1を加えた数に等しい場合、前記全受信シーケンスにおいて、N+2個の連続したバイナリシンボルのグループをN+1個の置換バイナリシンボルのグループに順次置き換える置換工程と、
前記置換工程による置換の位置が正しいか否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための配置/評価処理を用いて確定する確定工程とを備えることを特徴とする誤り検出訂正方法。 - 所定の自然数をPとしたとき、最大P−3個のナンバー有してなるイニシャルシーケンスをコーディングするための装置であって、
前記イニシャルシーケンスに2つのコヒーレンスナンバーを付加して全送信シーケンスを形成する演算処理手段と、該2つのコヒーレンスナンバーは、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々が所定のモジュロPの値になるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーを位置の関数としてナンバーの結合を行い、
前記全送信シーケンスを送信するために物理量に変調し、これを送信する変調手段とを備えることを特徴とするコーディング装置。 - 前記Pが素数であることを特徴とする請求項14に記載のコーディング装置。
- 前記Pがプリミティブナンバーとして2を有することを特徴とする請求項14または15に記載のコーディング装置。
- 請求項16に記載のコーディング装置による全送信シーケンスの伝送時におけるエラーを検出し訂正する装置であって、
前記物理量を復調し、前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンスのナンバーに前記コンビネーションを適用して、該コンビネーションの結果が前記所定のモジュロP値に等しくない場合、伝送エラーが生じたものとする処理手段とを備えることを特徴とする誤り検出訂正装置。 - 前記第2のコンビネーションは前記全シーケンスにおけるナンバーの合計であり、
前記処理手段は、該第2のコンビネーションを前記全受信シーケンスに適用した結果得られた値から前記全送信シーケンスのナンバーの合計である前記所定の値を差し引いて得られた差を訂正すべき誤差とし、前記第1のコンビネーションは送信された全シーケンス内のナンバーと該全シーケンス中のナンバーの位置に対応するポジションナンバーとの積の合計であり、前記誤差がゼロでない場合は該第1のコンビネーションを前記全受信シーケンスと前記全送信シーケンスに適用した結果の差を前記誤差で除算するものであり、この除算の結果が誤ったナンバーの存在する位置に対応するポジションナンバーを表すことを特徴とする請求項17に記載の誤り検出訂正装置。 - N個のバイナリシンボルによって表されるナンバーで構成された全送信シーケンスの伝送時に発生したエラーを検出し訂正する誤り検出訂正装置であって、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを含み、該2つのコヒーレンスナンバー、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行うものであり、
物理量を復調して前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンス内のバイナリシンボルの数を計数し、その計数結果がNの倍数から1を差し引いた数に等しい場合、置換フェーズにおいて、前記全受信シーケンスのN−1個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルのグループに順次置換し、確定フェーズにおいて前記置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための処理を用いて確定する処理手段とを備えることを特徴とする誤り検出訂正装置。 - N個のバイナリシンボルによって表されるナンバーで構成された全送信シーケンスの伝送時に発生したエラーを検出し訂正する誤り検出訂正装置であって、前記全送信シーケンスは少なくとも2つのコヒーレンスナンバーを含み、該2つのコヒーレンスナンバー、2つの所定のコヒーレンスチェックである第1及び第2のコンビネーションを全送信シーケンスに適用した場合に、夫々所定のモジュロP値となるように決定され、少なくとも該第1のコンビネーションは当該送信シーケンス内の各ナンバーの位置の関数としてナンバーの結合を行うものであり、
物理量を復調して前記全送信シーケンスを表す全受信シーケンスを提供する復調手段と、
前記全受信シーケンス内のバイナリシンボルの数を計数し、その計数結果がNの倍数に1を加えた数に等しい場合、置換フェーズにおいて、前記全受信シーケンスのN+1個の連続したバイナリシンボルのグループをN個の置換バイナリシンボルのグループに順次置換し、確定フェーズにおいて前記置換の位置が正当か否かを、前記コヒーレンスナンバーを用いてエラー訂正をするための処理を用いて確定する処理手段とを備えることを特徴とする誤り検出訂正装置。 - 前記処理手段は、全シーケンス内のナンバーの合計を得る第2のコンビネーションを用い、該第2のコンビネーションを全受信シーケンスに適用して得られた値から前記全送信シーケンス内のナンバーの合計である前記所定の値を差し引いて得られた値を訂正すべきエラーの誤差とし、この誤差がゼロでない場合は、送信された全シーケンスのナンバーと該全シーケンス中の各ナンバーの位置に対応するポジションナンバーとの積の合計を得る第1のコンビネーションを用い、該第2のコンビネーションを前記全受信シーケンスに適用して得られた値と該第2のコンビネーションを前記送信シーケンスに適用して得られた値との差を前記誤差で除算し、この除算の結果をエラーの発生したナンバーの存在する位置に対応したポジションナンバーとし、このエラーの発生したナンバーの存在する位置を示すポジションナンバーが置換されたナンバーの位置を示すか、或いは前記誤差がゼロとなる場合は、当該置換されたナンバーが前記確定フェーズにおいて確定されることを特徴とする請求項19または20に記載の誤り検出訂正装置。
- 請求項16に記載の装置を備え、前記変調手段によって変調される前記所定の物理量はバーの反射率であることを特徴とするバーコードプリンタ。
- 請求項17乃至21のいずれかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記所定の物理量がバーの反射率であることを特徴とするバーコードリーダ。
- 請求項17乃至21の何れかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記物理量がケーブルネットワークによって伝送されることを特徴とするネットワーク受信装置。
- 請求項17乃至21の何れかに記載の誤り検出訂正装置を備え、前記復調手段によって復調される前記物理量が大気中を伝播されることを特徴とする無線受信装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9513219 | 1995-11-08 | ||
FR9513219A FR2740925A1 (fr) | 1995-11-08 | 1995-11-08 | Procede et dispositif de detection et de correction d'une eventuelle erreur dans une suite de nombres |
US08/742,582 US5905739A (en) | 1995-11-08 | 1996-10-28 | Method and device for detecting and correcting any error in a sequence of numbers |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09214359A JPH09214359A (ja) | 1997-08-15 |
JP3754772B2 true JP3754772B2 (ja) | 2006-03-15 |
Family
ID=26232321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29655896A Expired - Fee Related JP3754772B2 (ja) | 1995-11-08 | 1996-11-08 | 誤り検出訂正装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5905739A (ja) |
EP (1) | EP0773628B1 (ja) |
JP (1) | JP3754772B2 (ja) |
FR (1) | FR2740925A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0884879A3 (en) | 1997-06-13 | 1999-03-17 | Canon Kabushiki Kaisha | QAM transmission using spread spectrum and sequence estimation |
FR2764751A1 (fr) * | 1997-06-13 | 1998-12-18 | Canon Kk | Dispositif et procede de decodage d'informations codees |
US6356925B1 (en) * | 1999-03-16 | 2002-03-12 | International Business Machines Corporation | Check digit method and system for detection of transposition errors |
FI107675B (fi) * | 1999-07-05 | 2001-09-14 | Nokia Networks Oy | Menetelmä käyttäjälle osoitetun informaation tunnistamiseksi kommunikaatiojärjestelmässä ja kommunikaatiojärjestelmä |
FR2815199B1 (fr) | 2000-10-10 | 2003-01-17 | Canon Kk | Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre |
FR2837331B1 (fr) * | 2002-03-13 | 2004-06-18 | Canon Kk | Procede d'entrelacement d'une sequence binaire |
FR2845220B1 (fr) * | 2002-09-30 | 2004-12-17 | Canon Kk | Procedes et dispositifs pour le decodage des codes de geometrie algebrique a un point |
FR2849514A1 (fr) * | 2002-12-26 | 2004-07-02 | Canon Kk | Code de geometrie algebrique adapte aux erreurs en rafale |
FR2853976B1 (fr) * | 2003-04-16 | 2005-06-03 | Canon Kk | Codage d'informations par code de geometrie algebrique offrant deux options de decodage |
FR2858141A1 (fr) * | 2003-07-21 | 2005-01-28 | Canon Kk | Codage d'informations par codes de reed-solomon raccourcis |
FR2860360B1 (fr) * | 2003-09-29 | 2005-12-09 | Canon Kk | Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon |
FR2863794B1 (fr) * | 2003-12-16 | 2006-03-03 | Canon Kk | Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique |
FR2865083B1 (fr) * | 2004-01-13 | 2006-04-07 | Canon Kk | Decodage pour code de geometrie algebrique associe a un produit fibre. |
FR2866998B1 (fr) * | 2004-02-27 | 2006-05-19 | Canon Kk | Decodage et correction d'erreurs pour codes de geometrie algebrique |
FR2867925B1 (fr) * | 2004-03-22 | 2006-05-19 | Canon Kk | Codage de canal adapte aux erreurs rafale |
FR2873518B1 (fr) * | 2004-07-22 | 2008-12-19 | Canon Kk | Procede de codage et de decodage d'une sequence de mots, signal, codeur, decodeur, programmes d'ordinateur et moyens de stockage correspondants |
US7433427B2 (en) * | 2004-11-29 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Enhanced denoising system utilizing incremental parsing |
FR2880218B1 (fr) * | 2004-12-23 | 2007-02-16 | Canon Kk | Procede de decodage pour codes de geometrie algebrique et dispositif associe |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4013997A (en) * | 1975-11-17 | 1977-03-22 | Recognition Equipment Incorporated | Error detection/correction system |
GB2132393B (en) * | 1982-12-17 | 1986-05-14 | Sony Corp | Methods and apparatus for correcting errors in binary data |
US4794239A (en) * | 1987-10-13 | 1988-12-27 | Intermec Corporation | Multitrack bar code and associated decoding method |
US5070504A (en) * | 1989-06-23 | 1991-12-03 | International Business Machines | Method and apparatus for providing error correction to symbol level codes |
US5373513A (en) * | 1991-08-16 | 1994-12-13 | Eastman Kodak Company | Shift correction code system for correcting additive errors and synchronization slips |
FR2715751A1 (fr) * | 1994-01-28 | 1995-08-04 | Canon Research Centre France S | Procédé de codage d'informations sous forme de codes à barres, procédé de lecture de ces derniers et dispositifs mettant en Óoeuvre ces procédés. |
US5479515A (en) * | 1994-05-11 | 1995-12-26 | Welch Allyn, Inc. | One-dimensional bar code symbology and method of using same |
US5619027A (en) * | 1995-05-04 | 1997-04-08 | Intermec Corporation | Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme |
-
1995
- 1995-11-08 FR FR9513219A patent/FR2740925A1/fr not_active Withdrawn
-
1996
- 1996-10-24 EP EP96402261A patent/EP0773628B1/en not_active Expired - Lifetime
- 1996-10-28 US US08/742,582 patent/US5905739A/en not_active Expired - Lifetime
- 1996-11-08 JP JP29655896A patent/JP3754772B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0773628B1 (en) | 2005-10-12 |
US5905739A (en) | 1999-05-18 |
EP0773628A1 (en) | 1997-05-14 |
JPH09214359A (ja) | 1997-08-15 |
FR2740925A1 (fr) | 1997-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3754772B2 (ja) | 誤り検出訂正装置及び方法 | |
US4504948A (en) | Syndrome processing unit for multibyte error correcting systems | |
Roman | Introduction to coding and information theory | |
Welsh | Codes and cryptography | |
US6144324A (en) | Method of modulating and demodulating digital data and digital data modulator/demodulator | |
JP3742389B2 (ja) | 巡回位置符号 | |
US7392461B2 (en) | Decoding for algebraic geometric code associated with a fiber product | |
US6012638A (en) | Machine-readable symbology and method and apparatus for printing and reading same | |
DK2136473T3 (da) | Fremgangsmåde og system til sending og modtagelse af information ved brug af kædereaktionskoder | |
US7296209B2 (en) | Apparatus for encoding and decoding | |
JP2000156646A (ja) | 符号化装置及び方法、復号装置及び方法、信号処理装置、デ―タ伝送装置、無線通信装置、ネットワ―クステ―ション、並びに情報処理装置及び方法 | |
EP1434132A1 (en) | An algebraic geometric code adapted to error bursts | |
US7681110B2 (en) | Decoding technique for linear block codes | |
JPS6316929B2 (ja) | ||
RU98114984A (ru) | Способ передачи данных и устройство для кодирования сигнала | |
US5136290A (en) | Message expansion decoder and decoding method for a communication channel | |
JPH0328092B2 (ja) | ||
JP2024505116A (ja) | ドットマトリクスコードの構築方法、生成及び読み取り方法、端末、並びにドットマトリクスコードシステム | |
CN114021595B (zh) | 一种二维码识别方法及装置 | |
US10193573B2 (en) | Method and data processing device for determining an error vector in a data word | |
CN117650872B (zh) | 一种NR Polar编码的简化实现方法及计算机可读存储介质 | |
EP0431416A2 (en) | Apparatus and method for accessing a cyclic redundancy error check code generated in parallel | |
Gaborit et al. | Decoding binary R (2, 5) by hand | |
JP2003283341A (ja) | 線形ブロック符号に従って符号化されたデータを訂正するための装置 | |
JP2748209B2 (ja) | 誤り訂正が可能な多段バーコードの構成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050916 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051115 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051219 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131222 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |