(57)【要約】バーコードから、所定の情報長を有して配置された二値化情報を含む信号に基づいて、二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出部と、狭帯域微分信号（Ｓ１）に関して、モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト部（１１０）と、周波数シフト部（１１０）の出力信号に含まれる低域成分を通過させる狭帯域ＬＰＦ（１１１）と、狭帯域微分信号（Ｓ１）に同期しかつモジュール周波数を有するモジュール点を抽出する０°点抽出部（１１４）と、抽出されたモジュール点に基づいて、バーコードのキャラクタを復調するキャラクタ復調部とを備えている。
2004023380.tif 000002
【特許請求の範囲】
【請求項１】
バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段と、
前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段と、
前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段と、
前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段と、
抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段と、
抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項２】
前記低域フィルタ手段は、ディジタルフィルタであって、処理量を間引くためのデシメーションが設定されることを特徴とする請求の範囲第１項に記載のバーコード読取装置。
【請求項３】
前記信号に基づいて、前記モジュール周波数の誤差を算出する誤差算出手段を備え、前記周波数シフト手段は、前記周波数シフトの際に前記誤差分を補正することを特徴とする請求の範囲第１項または第２項に記載のバーコード読取装置。
【請求項４】
前記誤差算出手段は、前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる誤差周波数シフト手段と、該誤差周波数シフト手段の出力信号に含まれる低域成分を通過させる誤差低域フィルタ手段と、前記誤差低域フィルタ手段の出力信号の位相を算出する位相算出手段とを備え、前記位相に基づいて前記誤差を算出することを特徴とする請求の範囲第３項に記載のバーコード読取装置。
【請求項５】
前記周波数シフト手段では、ベクトル化された出力信号を生成することを特徴とする請求の範囲第１項に記載のバーコード読取装置。
【請求項６】
バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込工程と、
前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出工程と、
前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト工程と、
前記周波数シフト工程における出力信号に含まれる低域成分を低域フィルタにより通過させる低域フィルタリング工程と、
抽出された前記モジュール周波数および低域フィルタリング工程における出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出工程と、
抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調工程と、
を含むことを特徴とするバーコード読取方法。
【請求項７】
コンピュータを、
バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段、
前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段、
前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段、
前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段、
抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段、
抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調手段、
として機能させるためのバーコード読取プログラム。
【請求項８】
バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段と、
前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段と、
前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段と、
前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段と、
抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段と、
を備えたことを特徴とするモジュール点抽出装置。
【請求項９】
前記低域フィルタ手段は、ディジタルフィルタであって、処理量を間引くためのデシメーションが設定されることを特徴とする請求の範囲第８項に記載のモジュール点抽出装置。
【請求項１０】
前記信号に基づいて、前記モジュール周波数の誤差を算出する誤差算出手段を備え、前記周波数シフト手段は、前記周波数シフトの際に前記誤差分を補正することを特徴とする請求の範囲第８項または第９項に記載のモジュール点抽出装置。
【発明の詳細な説明】
【技術分野】  本発明は、光の反射率の差を利用して、キャラクタがバー幅により表されたバーコード（二値情報）からの反射光に基づいてバーコード（キャラクタ）を読み取るバーコード読取装置、バーコード読取方法、バーコード読取プログラムおよびモジュール点抽出装置に関するものであり、特に、処理速度を向上させることができるバーコード読取装置、バーコード読取方法、バーコード読取プログラムおよびモジュール点抽出装置に関するものである。
【背景技術】  従来より、商品の流通分野においては、商品に付されたバーコードを光学的に読み取って、当該商品の値段や商品名等、商品に関する情報をレジスタ等に登録することが行われている。
バーコードにおいては、商品に関する情報がキャラクタとしてコード化されており、黒バーと白バーとが交互に組み合わされてなる。バーコード読取装置では、バーコード上にレーザダイオード等から発光されたビーム光を走査させて、このビームの反射光を受光して、黒バーおよび白バーの幅に対応する電気信号からバーコード情報を読み取っている。
ここで、バーコードは、紙を主として、有機系素材、缶等の様々な媒体に印刷されている。
第２１図は、従来のバーコード読取装置２０の外観構成を示す斜視図である。第２２図は、第２１図に示したバーコード読取装置２０の電気的構成を示すブロック図である。
バーコード読取装置２０は、バーコード１０を光学的に読み取る装置である。第２２図に示したバーコード読取装置２０において、レーザダイオード２１は、走査用のビーム光Ｌを発する。
ポリゴンミラー２２は、レーザダイオード２１からのビーム光Ｌを反射させる鏡面体により構成されており、モータ（図示略）により回転されて、ビーム光Ｌの反射方向を変化させることにより、複数種類の走査パターンを与えるものである。
ポリゴンミラー２２により反射されたビーム光Ｌは、第２１図に示した筐体２０ａに設けられた読取窓２０ｂより、バーコード１０の黒バーおよび白バーに、例えば左端から右端に向かう方向で照射される。受光部２３は、バーコード１０に照射されたビーム光Ｌの反射光を受光し、その強弱に応じた振幅値の電気信号に光電変換する。増幅部２４は、受光部２３からの光電変換信号を増幅する。
Ａ／Ｄ（Ａｎａｌｏｇ／Ｄｉｇｉｔａｌ）変換部２５は、増幅部２４により増幅されたアナログの光電変換信号をディジタルサンプリングし、ディジタルの光電変換信号として出力する。切り出し部２６は、後段の信号処理を軽減するために、Ａ／Ｄ変換部２５からの光電変換信号からバーコード１０により反射された信号のみを切り出す。
帯域制限微分処理部２７は、後述するモジュール周波数抽出部２８により抽出されたモジュール周波数２ｆ０を用いて、切り出し部２６の出力信号の帯域を制限するための微分処理を施し、第２５図に示した波形パターンの狭帯域微分信号Ｓ１をモジュール点毎振幅抽出部２９へ出力する。
第２６図は、第２３図に示した狭帯域微分信号Ｓ１の具体的な波形を示す図である。
このように、狭帯域微分信号Ｓ１は、バーコード１０で黒バーから白バーに切り替わる点で振幅が最大値に、白バーから黒バーに切り替わる点で振幅が最小値に、黒バーおよび白バーのフラットな部分については０に収束するような波形である。
モジュール周波数抽出部２８は、切り出し部２６の出力信号に対して、微分処理および二乗処理等を施して微分二乗信号とし、この微分二乗信号についてＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）処理により第２４図に示した周波数スペクトル６１を得て、この周波数スペクトル６１のゲインピークの周波数をバーコードの基本モジュールに相当するモジュール周波数（２ｆ０）として求める。
第２２図に示したモジュール点毎振幅抽出部２９は、狭帯域微分信号Ｓ１およびモジュール周波数２ｆ０を入力として、黒バーと白バーとの境界に対応するモジュール点を抽出する機能や、モジュール点に基づいて狭帯域微分信号Ｓ１の振幅値を抽出する機能を備え、振幅値をエッジ信号として「＋１」、「０」および「−１」の三値化パターンＳ２（第３１図（ａ）参照）を出力する。
第２３図は、第２２図に示したモジュール点毎振幅抽出部２９の電気的構成を示すブロック図である。同図に示したモジュール点毎振幅抽出部２９において、ゲイン特性算出部３０は、モジュール周波数抽出部２８（第２２図参照）からのモジュール周波数２ｆ０に基づいて、第２４図に示したゲイン特性６０を算出する。
このゲイン特性６０は、後述するＢＰＦ（Ｂａｎｄ  Ｐａｓｓ  Ｆｉｌｔｅｒ）３２における帯域通過のフィルタリングを決定付けるものであり、モジュール周波数誤差Δｆ、帯域幅ｆｗおよびロールオフ率ＲＯＦ等のパラメータで表される。これらのパラメータは、バーコードの読取精度を左右する重要な値である。
モジュール周波数誤差Δｆは、上述したモジュール周波数２ｆ０の誤差分に相当する。従って、ゲイン特性６０（帯域幅ｆｗ）の中心周波数は、モジュール周波数２ｆ０＋モジュール周波数誤羞Δｆとされる。
第２３図に戻り、ＩＦＦＴ（逆フーリエ変換）部３１はゲイン特性算出部３０の出力を逆フーリエ変換し、上述したゲイン特性６０に対応するフィルタ係数を算出し、これをＢＰＦ３２に設定する。
ＢＰＦ３２は、第２４図に示したゲイン特性６０に対応するフィルタ係数に基づき、第２６図（第２５図）に示した波形パターンの狭帯域微分信号Ｓ１を帯域通過させ、第２７図に示した波形パターンを出力する。
第２７図において、サンプル点に○が付された波形は、ヒルベルト変換部３３によりヒルベルト変換が施された虚部１ｍに対応しており、サンプル点に×が付された波形は、実部Ｒｅに対応している。同図では、各サンプル点の信号がベクトル化（実部および虚部）されている。
このように、ヒルベルト変換部３３は、ＢＰＦ３２の出力信号についてヒルベルト変換処理を施すものであり、各サンプル点の信号をベクトル化する機能を備えている。
なお、実際には、ＢＰＦ３２は、タップ係数の設定によりゲイン特性が設定されるディジタルフィルタである。
位相算出部３４は、入力されるベクトル信号の位相を算出する。０°点抽出部３６は、位相算出部３４の出力で位相が０°になる点をサンプル点として抽出し、第２８図に示したサンプル点の情報を出力する。位相積分部３５は、位相算出部３４で算出された位相をサンプル単位で積分する。
遅延時間算出部３７は、第２６図で０°になる点とサンプル点との遅延時間を算出する。遅延フィルタ係数算出部３８は、遅延時間算出部３７により算出された遅延時間に基づいて、遅延フィルタ係数を算出し、これを遅延フィルタ３９に設定する。
遅延フィルタ３９は、狭帯域微分信号Ｓ１に対して、遅延フィルタ係数に基づき遅延処理を施し、サンプル点を０°タイミング点に一致させるためのフィルタであり、例えば、第２９図に示した波形パターシを出力する。
ＬＭＳ（Ｌｅａｓｔ  Ｍｅａｎ  Ｓｑｕａｒｅ）部４０は、最小二乗法により、遅延フィルタ３９の出力信号に対して、等化処理を施し、例えば、第３０図に示した波形パターンの信号を出力する。
三値処理部４１は、ＬＭＳ部４０の出力（第３０図参照）を、振幅としきい値との比較に基づいて、「＋１」、「０」または「−１」のいずれかに三値化して、第３１図（ａ）に示した○部分の三値化パターンＳ２を出力する。
例えば、第３１図（ａ）に示した○部分の三値化パターンは、キャラクタ復調部４２（第２２図参照）により、第３１図（ｂ）に示した、バーコードのキャラクタパターン（キャラクタ列）に復調される。
このキャラクタパターンは、Ｉ／Ｆ（インタフェース）部４３（第２２図参照）により、読み取り結果としてホストコンピュータ５０に送信される。
ところで、従来のバーコード読取装置２０においては、第２３図に示したＢＰＦ３２に設定すべきフィルタ係数を、ＩＦＦＴ部３１で逆フーリエ変換という処理のステップが多い手法により算出しているため、処理速度の低下を招くという問題があった。
また、従来のバーコード読取装置２０においては、狭帯域微分信号Ｓ１という狭帯域の信号をフィルタリングするため、ＢＰＦ３２のタップ数（例えば、１２７）が多くなり、処理のステップ数が多くなり、処理速度が遅くなるという問題があった。
さらに、従来のバーコード読取装置２０においては、ベクトル信号を生成するめにヒルベルト変換部３３でヒルベルト変換を実行しているため、これも処理のステップ数が多くなり、処理速度の低下を招くという問題があった。
第３２図には、従来のバーコード読取装置２０における総処理量の詳細が図示されている。同図においては、各処理部（ゲイン特性算出部３０、ＩＦＦＴ部３１、…、遅延フィルタ３９）での「単位処理量」、「回数」および「総処理量（単位処理量×回数）」が図示されている。
同図によれば、上述したＩＦＦＴ部３１の総処理量は、２１９３４ステップである。ＢＰＦ３２の総処理量は、１３５０００ステップである。また、ヒルベルト変換部３３の総処理量は、７３０００ステップである。バーコード読取装置２０における合計の処理量は、２９１１５７ステップにものぼる。
本発明は、上記に鑑みてなされたもので、処理速度を向上させることができるバーコード読取装置、バーコード読取方法、バーコード読取プログラムおよびモジュール点抽出装置を提供することを目的としている。
【発明の開示】
上記目的を達成するために、本発明は、バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段と、前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段と、前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段と、前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段と、抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段と、抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調手段と、を備えたことを特徴とする。
また、本発明は、バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込工程と、前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出工程と、前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト工程と、前記周波数シフト工程における出力信号に含まれる低域成分を低域フィルタにより通過させる低域フィルタリング工程と、抽出された前記モジュール周波数および前記低域フィルタリング工程における出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出工程と、抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調工程と、を含むことを特徴とする。
また、本発明は、コンピュータを、バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段、前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段、前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段、前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段、抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段、抽出された前記モジュール点に基づいて、前記バーコードのキャラクタを復調する復調手段、として機能させるためのバーコード読取プログラムである。
かかる発明によれば、バーコードに対応する信号に関して、モジュール周波数を元に０Ｈｚへ周波数シフトされた出力信号に含まれる低域成分を低域フィルタにより通過させ、抽出されたモジュール周波数および低域フィルタの出力信号に基づいて、信号に同期しかつモジュール周波数を有するモジュール点を抽出し、バーコードのキャラクタを復調することとしたので、従来のバンドパスフィルタ等を用いた構成に比して、処理量が低減し、処理速度を向上させることができる。
また、本発明は、バーコードから、所定の情報長を有して配置された二値化情報を含む信号を取り込む信号取込手段と、前記信号から前記二値化情報における基本単位長さに相当するモジュール周波数を抽出するモジュール周波数抽出手段と、前記信号に関して、前記モジュール周波数を元に０Ｈｚへ周波数シフトさせる周波数シフト手段と、前記周波数シフト手段の出力信号に含まれる低域成分を通過させる低域フィルタ手段と、抽出された前記モジュール周波数および前記低域フィルタ手段の出力信号に基づいて、前記信号に同期しかつ前記モジュール周波数を有するモジュール点を抽出するモジュール点抽出手段と、を備えたことを特徴とする。
この発明によれば、バーコードに対応する信号に関して、モジュール周波数を元に０Ｈｚへ周波数シフトされた出力信号に含まれる低域成分を低域フィルタにより通過させ、抽出されたモジュール周波数および低域フィルタの出力信号に基づいて、信号に同期しかつモジュール周波数を有するモジュール点を抽出することとしたので、従来のバンドパスフィルタ等を用いた構成に比して、処理量が低減し、処理速度を向上させることができる。
【図面の簡単な説明】  第１図は、一実施の形態の構成を示すブロック図であり、第２図は、第１図に示したモジュール点毎振幅抽出部１０１の構成を示すブロック図であり、第３図は、第２図に示した周波数シフト部１０３の構成を示すブロック図であり、第４図は、第３図に示した周波数シフト部１０３の動作を説明する図であり、第５図は、第２図に示した広帯域ＬＰＦ１０４の構成を示すブロック図であり、第６図は、第２図に示した狭帯域ＬＰＦ１１１の構成を示すブロック図であり、第７図は、第２図に示した狭帯域微分信号Ｓ１および二乗処理部１０２からの二乗信号Ｓ３を示す図であり、第８図は、第７図（ａ）に示した狭帯域微分信号Ｓ１の周波数スペクトル１２０を示す図であり、第９図は、第７図（ｂ）に示した二乗信号Ｓ３の周波数スペクトル１２１を示す図であり、第１０図は、第２図に示した周波数シフト部１０３の動作を説明する図であり、第１１図は、第２図に示した広帯域ＬＰＦ１０４の動作を説明する図であり、第１２図は、第２図に示した位相積分部１０６の動作を説明する図であり、第１３図は、第２図に示した周波数シフト部１１０の動作を説明する図であり、第１４図は、第２図に示した狭帯域ＬＰＦ１１１の動作を説明する図であり、第１５図は、第２図に示した０°点抽出部１１４の動作を説明する図であり、第１６図は、第２図に示した遅延フィルタ係数算出部１１６の動作を説明する図であり、第１７図は、一実施の形態によるバーコード読取装置１００と従来のバーコード読取装置２０との総処理量を比較した図であり、第１８図は、一実施の形態によるバーコード読取装置１００（基本部分のみ（Δｆ算出なし））における総処理量の詳細を説明する図であり、第１９図は、一実施の形態によるバーコード読取装置１００（Δｆ算出を含む）における総処理量の詳細を説明する図であり、第２０図は、同一実施の形態の変形例の構成を示すブロック図であり、第２１図は、従来のバーコード読取装置２０の外観構成を示す斜視図であり、第２２図は、第２１図に示したバーコード読取装置２０の電気的構成を示すブロック図であり、第２３図は、第２２図に示したモジュール点毎振幅抽出部２９の電気的構成を示すブロック図であり、第２４図は、第２３図に示したＢＰＦ３２のゲイン特性を示す図であり、第２５図は、第２３図に示した狭帯域微分信号Ｓ１を示す図であり、第２６図は、第２３図に示した狭帯域微分信号Ｓ１の具体的な波形を示す図であり、第２７図は、第２３図に示したＢＰＦ３２の出力を示す図であり、第２８図は、第２３図に示した０°点抽出部３６の出力を示す図であり、第２９図は、第２３図に示した遅延フィルタ３９の出力を示す図であり、第３０図は、第２３図に示したＬＭＳ部４０の出力を示す図であり、第３１図は、三値化パターンおよびキャラクタパターンを示す図であり、第３２図は、従来のバーコード読取装置２０の総処理量の詳細を説明する図である。
【発明を実施するための最良の形態】  以下、図面を参照して本発明にかかる一実施の形態について詳細に説明する。
第１図は、本発明にかかる一実施の形態の構成を示すブロック図である。この図において、第２２図の各部に対応する部分には同一の符号を付ける。同図に示したバーコード読取装置１００においては、第２２図に示したモジュール点毎振幅抽出部２９に代えて、モジュール点毎振幅抽出部１０１が設けられている。
モジュール点毎振幅抽出部１０１は、モジュール点毎振幅抽出部２９（第２２図参照）と同様にして、狭帯域微分信号Ｓ１およびモジュール周波数２ｆ０を入力として、三値化パターンＳ２（第３１図（ａ）参照）を出力する機能を備えている。
但し、モジュール点毎振幅抽出部１０１は、第１７図に示したように、モジュール点毎振幅抽出部２９に比べて、総処理量の合計が大幅に少なくなっており、処理速度が向上している。
第２図は、第１図に示したモジュール点毎振幅抽出部１０１の構成を示すブロック図である。同図において、第２３図の各部に対応する部分には同一の符号を付ける。
同図に示したモジュール点毎振幅抽出部１０１において、二乗処理部１０２は、帯域制限微分処理部２７（第１図参照）からの第７図（ａ）に示した狭帯域微分信号Ｓ１に対して二乗処理を施し、第７図（ｂ）に示した波形パターンの二乗信号Ｓ３を出力する。
図６は、第７図（ａ）に示した狭帯域微分信号Ｓ１の周波数スペクトル１２０を示す図である。同図において、横軸は周波数、縦軸はゲインである。ゲインのピーク値１２０ａの周波数は、ｆ０である。
第９図は、第７図（ｂ）に示した二乗信号Ｓ３の周波数スペクトル１２１を示す図である。同図において、ゲインのピーク値１２１ａの周波数は、モジュール周波数２ｆ０である。
第２図に戻り、周波数シフト部１０３は、二乗信号Ｓ３のピーク値の周波数を、モジュール周波数２ｆ０が０Ｈｚになるようにシフトさせる。具体的には、第９図に示した周波数スペクトル１２１を周波数軸上で同図左方向（０Ｈｚ方向）にシフトさせ、第１０図に示したように、ピーク値１２１ａを０Ｈｚにする。
但し、実際には、モジュール周波数抽出部２８により抽出されたモジュール周波数２ｆ０にノイズが含まれているため、ピーク値１２１ａを正確に０Ｈｚにすることが難しい。従って、ピーク値１２１ａの周波数は、モジュール周波数誤差Δｆ（２ｆ０−２ｆ０’）分を含むモジュール周波数２ｆ０’とされる。
また、周波数シフト部１０３では、二乗信号Ｓ３のスカラ量が周波数シフトされるため出力信号が第３図に示したようにベクトル化（実部Ｒｅ、虚部Ｉｍ）される。
第３図は、第２図に示した周波数シフト部１０３の構成を示すブロック図である。この図において、周波数シフト部１０３は、乗算器１０３ａおよび乗算器１０３ｂを備えている。
乗算器１０３ａは、二乗信号Ｓ３とｃｏｓθとを乗算し、実部Ｒｅとする。一方、乗算器１０３ｂは、二乗信号Ｓ３と−ｓｉｎθとを乗算し、虚部Ｉｍとする。このように、周波数シフト部１０３の出力信号は、実部Ｒｅおよび虚部Ｉｍによりベクトル化されている。
ここで、ｃｏｓθおよび−ｓｉｎθにおけるθは、モジュール周波数２ｆ０から算出される。例えば、周波数シフト部１０３が２．５ＭＨｚのサンプリングレートで動作し、また、モジュール周波数２ｆ０が０．８ＭＨｚである場合、シフトする周波数は、−０．８ＭＨｚである。
この場合、θは、１サンプル単位で−１１５．２°（＝（−０．８ＭＨｚ／２．５ＭＨｚ）×３６０°）毎に回転することになる。従って、周波数シフト部１０３では、第４図に示したθに基づいて、サンプル毎にｃｏｓθおよび−ｓｉｎθが二乗信号Ｓ３に乗算される。
広帯域ＬＰＦ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ）１０４は、周波数シフト部１０３の出力信号（周波数スペクトル１２１：第１１図（ａ）参照）のうち、第１１図（ａ）に示したゲイン特性１２２で第１１図（ｂ）に示した低域成分１２３を通過させるフィルタである。
ここで、一実施の形態では、周波数シフト部１０３で二乗信号Ｓ３（周波数スペクトル１２１）を０Ｈｚ（低域）付近にシフトさせているため、低域成分のみを通過させるローパスフィルタ（広帯域ＬＰＦ１０４）でよい。
また、広帯域ＬＰＦ１０４のゲイン特性１２２は、後述する狭帯域ＬＰＦ１１１のゲイン特性１２４（第１４図（ａ）参照）に比べて、広い帯域とされている。これは、第１１図（ａ）に示したように、周波数シフト後の周波数スペクトル１２１（二乗信号Ｓ３）にモジュール周波数誤差Δｆが含まれているため、このモジュール周波数誤差Δｆ分による揺らぎをカバーするためである。
実際には、広帯域ＬＰＦ１０４は、第５図に示したように、タップ係数Ｃ１〜Ｃ６３の設定によりゲイン特性が設定されるディジタルフィルタであって、遅延部１０４ａ−１〜１０４ａ−６３、乗算器１０４ｂ−１〜１０４ｂ−６３、総和演算器１０４ｃ、乗算器１０４ｄから構成されている。Ｘ１〜Ｘ６３は、周波数シフト部１０３の出力信号がサンプリング数６４でサンプリングされたディジタルデータである。
また、広帯域ＬＰＦ１０４には、デシメーション率（例えば、１／４）が予め設定されている。デシメーション率は、処理量を間引く比率である。従って、１／４の場合には、処理量が１／４となる。
第２図に戻り、位相算出部１０５は、広帯域ＬＰＦ１０４の出力（ベクトル信号）の位相（−１８０°〜＋１８０°）を算出する。
例えば、モジュール周波数誤差Δｆ（２ｆ０−２ｆ０’）が−１０ｋＨｚ、サンプリングレートが２．５ＭＨｚである場合、位相は、−１．４４°（（−１０ｋＨｚ／２．５ＭＨｚ）×３６０°）として算出される。
位相積分部１０６は、第１２図に示したように、位相算出部１０５で算出された位相（この場合、−１．４４°）をサンプル単位で積分する。Δｆ算出部１０７は、位相積分部１０６の積分結果とサンプリング数とからモジュール周波数誤差Δｆ（２ｆ０−２ｆ０’）を算出する。
例えば、サンプリング数が１００、積分結果が−１４５°である場合、１サンプリングあたりの角度は、−１．４５°（−１４５／１００）である。この角度を周波数に変換すると、モジュール周波数誤差Δｆは、−１０．０６９４４・・・Ｈｚ（（−１．４５°／３６０°）×２．５ＭＨｚ）となる。
加算器１０８は、モジュール周波数抽出部２８（第１図参照）からのモジュール周波数２ｆ０（但し、誤差分が含まれているため、以下では、モジュール周波数２ｆ０’とする）と、Δｆ算出部１０７からのモジュール周波数誤差Δｆとを加算する。従って、加算器１０８の加算結果は、２ｆ０’＋Δｆとなる。
二乗処理部１０９は、帯域制限微分処理部２７（第１図参照）からの第７図（ａ）に示した狭帯域微分信号Ｓ１に対して二乗処理を施し、第７図（ｂ）に示した波形パターンと同様の二乗信号Ｓ４を出力する。
周波数シフト部１１０は、第１３図に示したように、二乗信号Ｓ４に対応する周波数スペクトル１２４を加算器１０８からの（２ｆ０’＋Δｆ）分だけシフトさせる。これにより、周波数スペクトル１２４のピーク値１２４ａがほぼ０Ｈｚ（２ｆ０−（２ｆ０’＋Δｆ）＝０）となる。
また、周波数シフト部１１０では、二乗信号Ｓ４のスカラ量が周波数シフトされるため出力信号がベクトル化される。
狭帯域ＬＰＦ１１１は、周波数シフト部１１０の出力信号（周波数スペクトル１２４：第１３図参照）のうち、第１４図（ａ）に示したゲイン特性１２５で第１４図（ｂ）に示した低域成分１２６を通過させるフィルタである。この低域成分１２６のピーク値１２６ａは、ほぼ０Ｈｚに対応している。
ここで、一実施の形態では、周波数シフト部１１０で二乗信号Ｓ４（周波数スペクトル１２４）をほぼ０Ｈｚ（低域）にシフトさせているため、低域成分のみを通過させるローパスフィルタ（狭帯域ＬＰＦ１１１）でよい。
また、狭帯域ＬＰＦ１１１のゲイン特性１２５（図１２（ａ））は、前述した広帯域ＬＰＦ１０４のゲイン特性１２２（第１１図（ａ）参照）に比べて、狭い帯域とされている。
これは、Δｆ算出部１０７で正確なモジュール周波数誤差Δｆを算出し、第１４図（ａ）に示したように、周波数シフト後の周波数スペクトル１２４（二乗信号Ｓ４）のピーク値１２４ａをほぼ０Ｈｚとしているため、モジュール周波数誤差Δｆ分による揺らぎがほとんど無いからである。
実際には、狭帯域ＬＰＦ１１１は、第６図に示したように、タップ係数Ｃ１〜Ｃ２５５の設定によりゲイン特性が設定されるディジタルフィルタであって、遅延部１１１ａ−１〜１１１ａ−２５５、乗算器１１１ｂ−１〜１１１ｂ−２５５、総和演算器１１１ｃ、乗算器１１１ｄ、加算器１１１ｅから構成されている。Ｘ１〜Ｘ２５５は、周波数シフト部１１０の出力信号がサンプリング数２５５でサンプリングされたディジタルデータである。
また、狭帯域ＬＰＦ１１１には、広帯域ＬＰＦ１０４と同様にして、デシメーション率（例えば、１／８）が予め設定されている。デシメーション率は、処理量を間引く比率である。従って、１／８の場合には、処理量が１／８となる。
ここで、狭帯域ＬＰＦ１１１のデシメーション率は、広帯域ＬＰＦ１０４に比べて、帯域が狭いため低く設定することが可能となる。
第２図に戻り、位相算出部１１２は、位相算出部１０５と同様にして、狭帯域ＬＰＦ１１１の出力（ベクトル信号）の位相（−１８０°〜＋１８０°）を算出する。
位相積分部１１３は、位相積分部１０６と同様にして、第１２図に示したように、位相算出部１１２で算出された位相をサンプル単位で積分する。但し、位相積分部１１３では、狭帯域ＬＰＦ１１１で間引かれた分の補間し、サンプリングレートは、狭帯域ＬＰＦ１１１の入力と同じサンプリングデータとされる。
０°点抽出部１１４は、第１５図に示したように、積分結果１２７が０°（３６０°）を超えた点を検出し、正確に０°（３６０°）となる点をサンプル点として抽出する。
同図に示した例では、１２０サンプル目で３５７°、１２１サンプル目で３６１°とすると、１２０．７５サンプル目が０°（３６０°）である。この０°のサンプル点が、狭帯域微分信号Ｓ１における極大点または極小点に対応する。
遅延時間算出部１１５は、遅延時間算出部３７（第２３図参照）と同様にして、第２６図で０°になる点とサンプル点との遅延時間を算出する。
遅延フィルタ係数算出部１１６は、遅延時間算出部１１５により算出された遅延時間に基づいて、遅延フィルタ係数を算出し、これを遅延フィルタ３９に設定する。
次に、一実施の形態の動作について説明する。第１図において、オペレータによりバーコード１０がビーム光Ｌにかざされると、受光部２３では、バーコード１０の反射光を受光し、その強弱に応じた振幅値の電気信号に光電変換する。光電変換信号は、増幅部２４で増幅された後、Ａ／Ｄ変換部２５でディジタル化され、さらに切り出し部２６で切り出される。
これにより、モジュール周波数抽出部２８は、切り出し部２６の出力信号に対して微分処理および二乗処理等を施し、微分二乗信号についてＦＦＴ処理により周波数スペクトルを得て、この周波数スペクトルのゲインピークの周波数をバーコードの基本モジュールに相当するモジュール周波数２ｆ０として求める。
また、帯域制限微分処理部２７は、上記モジュール周波数２ｆ０を用いて、切り出し部２６の出力信号の帯域を制限するための微分処理を施し、狭帯域微分信号Ｓ１（第７図（ａ）参照）を第２図に示したモジュール点毎振幅抽出部１０１へ出力する。
二乗処理部１０２は、第７図（ａ）に示した狭帯域微分信号Ｓ１に対して二乗処理を施し、第７図（ｂ）に示した波形パターンの二乗信号Ｓ３を出力する。次に、周波数シフト部１０３は、二乗信号Ｓ３のピーク値の周波数を、モジュール周波数２ｆ０が０Ｈｚになるようにシフトさせる。
しかしながら、上述した誤差があるため、第１１図（ａ）に示したピーク値１２１ａの周波数は、モジュール周波数誤差Δｆ（２ｆ０−２ｆ０’）分を含むモジュール周波数２ｆ０’とされる。
次に、広帯域ＬＰＦ１０４は、第１１図（ａ）に示した周波数スペクトル１２１のうち、ゲイン特性１２２で第１１図（ｂ）に示した低域成分１２３を通過させる。
次に、位相算出部１０５は、広帯域ＬＰＦ１０４の出力（ベクトル信号）の位相を算出する。位相積分部１０６は、第１２図に示したように、位相算出部１０５で算出された位相（この場合、−１．４４°）をサンプル単位で積分する。
次に、Δｆ算出部１０７は、位相積分部１０６の積分結果とサンプリング数からモジュール周波数誤差Δｆ（２ｆ０−２ｆ０’）を算出する。
これにより、加算器１０８は、モジュール周波数抽出部２８（第１図参照）からのモジュール周波数２ｆ０’と、Δｆ算出部１０７からのモジュール周波数誤差Δｆとを加算する。
二乗処理部１０９は、第７図（ａ）に示した狭帯域微分信号Ｓ１に対して二乗処理を施し、第７図（ｂ）に示した波形パターンと同様の二乗信号Ｓ４を出力する。
次に、周波数シフト部１１０は、第１３図に示したように、二乗信号Ｓ４に対応する周波数スペクトル１２４を加算器１０８からの（２ｆ０’＋Δｆ）分だけシフトさせ、周波数スペクトル１２４のピーク値１２４ａをほぼ０Ｈｚ（２ｆ０−（２ｆ０’＋Δｆ）＝０）の位置とする。
次に、狭帯域ＬＰＦ１１１は、第１３図に示した周波数スペクトル１２４のうち、第１４図（ａ）に示したゲイン特性１２５で第１４図（ｂ）に示した低域成分１２６を通過させる。
次に、位相算出部１１２は、狭帯域ＬＰＦ１１１の出力（ベクトル信号）の位相（−１８０°〜＋１８０°）を算出する。位相積分部１１３は、位相算出部１１２で算出された位相をサンプル単位で積分する。
次に、０°点抽出部１１４は、第１５図に示したように、積分結果１２７が０°（３６０°）を超えた点を検出し、正確に０°（３６０°）となる点をサンプル点として抽出する。
次に、遅延フィルタ係数算出部１１６は、遅延時間算出部３７（第２３図参照）と同様にして、第１６図（ａ）および第１６図（ｂ）に示した波形１２９のように、第２６図で０°になる点とサンプル点との遅延時間（例えば、０．７５サンプル）を算出する。第１６図（ｃ）には、波形１２９が一次関数で近似された波形（実線）が図示されている。
次に、遅延フィルタ係数算出部１１６は、遅延時間算出部１１５により算出された遅延時間に基づいて、遅延フィルタ係数を算出し、これを遅延フィルタ３９に設定する。
次に、遅延フィルタ３９は、遅延時間に対応する遅延フィルタ係数に基づいて、狭帯域微分信号Ｓ１に対して遅延処理を施し、サンプル点を０°タイミング点（第１６図（ｂ）参照）に一致させ、例えば、第２９図に示した波形パターンをＬＭＳ部４０へ出力する。
これにより、ＬＭＳ部４０は、最小二乗法により、遅延フィルタ３９の出力信号に対して、等化処理を施す。三値処理部４１は、ＬＭＳ部４０の出力（第３０図参照）を、振幅としきい値との比較に基づいて、「＋１」、「０」または「−１」のいずれかに三値化して、第３１図（ａ）に示した三値化パターンを第１図に示したキャラクタ復調部４２へ出力する。
キャラクタ復調部４２は、三値化パターンに基づいて、第３１図（ｂ）に示した、バーコードのキャラクタパターン（キャラクタ列）を復調する。このキャラクタパターンは、Ｉ／Ｆ（インタフェース）部４３により、読み取り結果としてホストコンピュータ５０に送信される。
以上説明したように、一実施の形態によれば、バーコード１０に対応する二乗信号Ｓ４に関して、周波数シフト部１１０でモジュール周波数を元に０Ｈｚへ周波数シフトされた出力信号に含まれる低域成分を狭帯域ＬＰＦ１１１により通過させ、抽出されたモジュール周波数および狭帯域ＬＰＦ１１１の出力信号に基づいて、二乗信号Ｓ４（狭帯域微分信号Ｓ１）に同期しかつモジュール周波数を有するモジュール点を抽出し、バーコード１０のキャラクタを復調することとしたので、従来のＢＰＦ３２（第２３図参照）等を用いた構成に比して、処理量が低減し、処理速度を向上させることができる。
また、一実施の形態によれば、広帯域ＬＰＦ１０４、狭帯域ＬＰＦ１１１をディジタルフィルタとし、処理量を間引くためのデシメーションが設定されることとしたので、さらに処理速度を向上させることができる。
また、一実施の形態によれば、二乗処理部１０２、周波数シフト部１０３、広帯域ＬＰＦ１０４、位相算出部１０５、位相積分部１０６およびΔｆ算出部１０７でモジュール周波数誤差Δｆを算出し、周波数シフト部１１０で周波数シフトの際に誤差分を補正することとしたので、バーコード１０の読み取り精度を高めることができる。
また、一実施の形態によれば、周波数シフト部１０３、周波数シフト部１１０によりベクトル化された出力信号を生成することとしたので、従来のヒルベルト変換部３３（第２３図参照）の場合に比して、処理量が低減し、処理速度を向上させることができる。
第１７図には、従来のバーコード読取装置２０の場合、バーコード読取装置１００の基本部分（二乗処理部１０９、周波数シフト部１１０、狭帯域ＬＰＦ１１１、位相算出部１１２、位相積分部１１３、０°点抽出部１１４、遅延時間算出部１１５、遅延フィルタ係数算出部１１６）のみの構成の場合、バーコード読取装置１００のモジュール周波数誤差Δｆを算出するための部分（二乗処理部１０２、周波数シフト部１０３、広帯域ＬＰＦ１０４、位相算出部１０５、位相積分部１０６、Δｆ算出部１０７および加算器１０８）を含む場合について、総処理量の合計を比較する情報が図示されている。
同図によれば、従来のバーコード読取装置２０の総処理量の合計が２９１１５７（詳細は、第３２図参照）であるのに対して、バーコード読取装置１００の基本部分の同合計が６９３８７（詳細は、第１８図参照第）、モジュール周波数誤差Δｆを算出するための部分を含む同合計が１３３２６０（詳細は第１９図参照）という具合に大幅に低減しており、処理速度が飛躍的に向上しているのがわかる。
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
例えば、前述した一実施の形態においては、前述したバーコード読取装置１００の機能を実現するためのプログラムを第２０図に示したコンピュータ読み取り可能な記録媒体３００に記録して、この記録媒体３００に記録されたプログラムをコンピュータ２００に読み込ませ、実行することにより各機能を実現してもよい。
コンピュータ２００は、上記プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０と、キーボード、マウス等の入力装置２２０と、各種データを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２３０と、演算パラメータ等を記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２４０と、記録媒体３００からプログラムを読み取る読取装置２５０と、ディスプレイ、プリンタ等の出力装置２６０と、装置各部を接続するバス２７０とから構成されている。
ＣＰＵ２１０は、読取装置２５０を経由して記録媒体３００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した各機能を実現する。なお、記録媒体３００としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
以上説明したように、本発明によれば、バーコードに対応する信号に関して、モジュール周波数を元に０Ｈｚへ周波数シフトされた出力信号に含まれる低域成分を低域フィルタにより通過させ、抽出されたモジュール周波数および低域フィルタの出力信号に基づいて、信号に同期しかつモジュール周波数を有するモジュール点を抽出し、バーコードのキャラクタを復調することとしたので、従来のバンドパスフィルタ等を用いた構成に比して、処理量が低減し、処理速度を向上させることができるという効果を奏する。
また、本発明によれば、低域フィルタをディジタルフィルタとし、処理量を間引くためのデシメーションが設定されることとしたので、さらに処理速度を向上させることができるという効果を奏する。
また、本発明によれば、モジュール周波数の誤差を算出し、周波数シフトの際に誤差分を補正することとしたので、バーコードの読み取り精度を高めることができるという効果を奏する。
また、本発明によれば、周波数シフトによりベクトル化された出力信号を生成することとしたので、従来のヒルベルト変換の場合に比して、処理量が低減し、処理速度を向上させることができるという効果を奏する。
また、本発明によれば、バーコードに対応する信号に関して、モジュール周波数を元に０Ｈｚへ周波数シフトされた出力信号に含まれる低域成分を低域フィルタにより通過させ、抽出されたモジュール周波数および低域フィルタの出力信号に基づいて、信号に同期しかつモジュール周波数を有するモジュール点を抽出することとしたので、従来のバンドパスフィルタ等を用いた構成に比して、処理量が低減し、処理速度を向上させることができるという効果を奏する。
【産業上の利用可能性】  以上のように、本発明にかかるバーコード読取装置は、商品の流通分野等におけるバーコードの読み取りに対して有用である。
【図１】
2004023380.tif 000003
【図２】
2004023380.tif 000004
【図３】
2004023380.tif 000005
【図４】
2004023380.tif 000006
【図５】
2004023380.tif 000007
【図６】
2004023380.tif 000008
【図７】
2004023380.tif 000009
【図８】
2004023380.tif 000010
【図９】
2004023380.tif 000011
【図１０】
2004023380.tif 000012
【図１１】
2004023380.tif 000013
【図１２】
2004023380.tif 000014
【図１３】
2004023380.tif 000015
【図１４】
2004023380.tif 000016
【図１５】
2004023380.tif 000017
【図１６】
2004023380.tif 000018
【図１７】
2004023380.tif 000019
【図１８】
2004023380.tif 000020
【図１９】
2004023380.tif 000021
【図２０】
2004023380.tif 000022
【図２１】
2004023380.tif 000023
【図２２】
2004023380.tif 000024
【図２３】
2004023380.tif 000025
【図２４】
2004023380.tif 000026
【図２５】
2004023380.tif 000027
【図２６】
2004023380.tif 000028
【図２７】
2004023380.tif 000029
【図２８】
2004023380.tif 000030
【図２９】
2004023380.tif 000031
【図３０】
2004023380.tif 000032
【図３１】
2004023380.tif 000033
【図３２】
2004023380.tif 000034
【国際調査報告】
2004023380.tif 000035
2004023380.tif 000036