(57)【特許請求の範囲】
【請求項１】
入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプと、
前記出力信号のレベルを複数の閾値と比較する比較手段と、
前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、
前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、
を備える信号処理装置であって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理装置。
【請求項２】
請求項１に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれ、前記出力信号のゲインの過不足のいずれか又はその双方を検出することを特徴とする信号処理装置。
【請求項３】
請求項２に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれとして、その概算量を検出し、
前記調整手段は、前記オフセットのずれの概算値に基づいて、オフセットの調整量を決定することを特徴とする信号処理装置。
【請求項４】
請求項２又は３に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のゲインの過不足として、その概算量を検出し、
前記調整手段は、前記ゲインの過不足の概算値に基づいて、ゲインの調整量を決定することを特徴とする信号処理装置。
【請求項５】
センサと、
請求項１乃至４の何れか１項に記載の信号処理装置と、
デコーダと、
を備え、
前記信号処理装置は、前記センサの出力信号を当該信号処理装置の入力信号とし、
前記デコーダは、前記信号処理装置の出力信号を当該デコーダの入力信号とすることを特徴とするバーコードリーダ。
【請求項６】
可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプが、入力信号に対応した信号を出力信号として出力するステップと、
比較手段が、前記出力信号のレベルを複数の閾値と比較するステップと、
検出手段が、前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出するステップと、
調整手段が、前記検出手段による検出結果に基づき、前記可変アンプによるオフセットの調整量、ゲインの調整量のいずれか又はその双方を調整するステップと、
を含む信号処理方法であって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理方法。
【請求項７】
入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプからの出力信号を調整する出力信号波形調整装置として、コンピュータを機能させるための信号処理用プログラムであって、
コンピュータを、
前記出力信号のレベルを複数の閾値と比較する比較手段と、
前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、
前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、
として機能させるための信号処理用プログラムであって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コードを対象とするリーダの信号処理装置、信号処理方法、及び信号処理プログラムに関する。特に、バーコードを対象とするバーコードリーダ及び磁気カードを対象とする磁気カードリーダの信号処理装置、信号処理方法、及び信号処理プログラムに関する。
【背景技術】
【０００２】
なお、本願で述べるところの「コード」とは、ラベルや容器の外面等に印刷されたコード、特に、バーコードや磁気カードの磁気ストライプ内のコードを含む。
【０００３】
コードを対象とするリーダ、例えば、ラベル等に印刷されたバーコードを対象とする従来のバーコードリーダにおいては、バーコードの印刷のバラつきなどにより、デコードに失敗してしまうことがあった。
【０００４】
これに対し、特許文献１においては、受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段と、該計数手段で計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段と、前記複数の所定の振幅以上の区間において、前記積算手段で積算された計数値が所定の値より大きい区間が存在するか否かを判断する判断手段を備えることにより、正反射等による極端に大きな振幅があっても、仮定値によって大きな振幅の範囲には有効な受光信号が存在しないと判断し、正反射等の背景環境に影響されることなくバーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法が開示されている。
【０００５】
また、特許文献２においては、発光素子の出力に基づき制御されるゲイン調整素子を搭載する自動ゲイン制御方式を用いた回路構成を備えることにより、適正なゲイン制御を行い、バーコード読取装置からバーコードまでの距離の違いから、反射光量に影響が与えられることにより、バーコードの解像度と読み取り範囲が制限されることを解決する信号処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２５９０５９号公報
【特許文献２】実用新案登録第３０８０６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来のバーコードリーダでは、例えばバーコードの一部又は全部においてシンボルを構成する黒バー／白バーのコントラスト比を満足していないなどのバーコードの欠陥によって、バーコードをデコードできずに読み取りエラーとなることがあった。また、バーコードに対して平行にバーコードリーダのセンサを翳すのではなく、高さ方向に傾いて翳すなどの異常なバーコードの読ませ方によっても、読み取りエラーとなることがあった。具体的には、バーコードリーダの光学画像から出力される（電圧）波形の一部又は全部の（電圧）波形の振幅が小さい、又は（電圧）波形の振幅の中心が動作電圧範囲の中心から外れてしまう結果として、（電圧）波形の振幅が小さい部分及び動作電圧範囲外となってしまった部分のデータが欠損してしまうことがあった。
【０００８】
そこで、本発明では、ラベル等に印刷されたバーコードの欠陥又はバーコードに対するセンサの翳し方等に由来するバーコードの読み取り失敗を改善する信号処理装置、信号処理方法、及び信号処理プログラムを提供する。
【課題を解決するための手段】
【０００９】
本発明の第１の観点によれば、入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプと、前記出力信号のレベルを複数の閾値と比較する比較手段と、前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、を備える信号処理装置であって、前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理装置が提供される。
【００１０】
本発明の第２の観点によれば、可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプが、入力信号に対応した信号を出力信号として出力するステップと、比較手段が、前記出力信号のレベルを複数の閾値と比較するステップと、検出手段が、前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出するステップと、調整手段が、前記検出手段による検出結果に基づき、前記可変アンプによるオフセットの調整量、ゲインの調整量のいずれか又はその双方を調整するステップと、を含む信号処理方法であって、前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理方法が提供される。
【００１１】
本発明の第３の観点によれば、入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプからの出力信号を調整する出力信号波形調整装置として、コンピュータを機能させるための信号処理用プログラムであって、コンピュータを、前記出力信号のレベルを複数の閾値と比較する比較手段と、前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、として機能させるための信号処理用プログラムであって、前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理用プログラムが提供される。
【発明の効果】
【００１２】
本発明によれば、コードの欠陥等によってデコードできない場合でも、コードのセンサからの出力信号を調整することによって、デコードを行なうことが可能である。
【図面の簡単な説明】
【００１３】
【図１】通常のバーコードリーダの構成図である。
【図２】本発明の実施形態による信号処理装置の構成を示すブロック図である。
【図３】本発明の実施形態によるセンサからの出力波形のゲイン調整方法を示す図である。
【図４】本発明の実施形態によるセンサからの出力波形のオフセット調整方法を示す図である。
【図５】本発明の実施形態によるバーコードリーダの信号処理装置の構成を示す回路図である。
【図６】本発明の実施形態によるバーコードリーダの信号処理装置の動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
（構成の説明）
図１は、通常のバーコードリーダのブロック図である。図１に記載の通常のバーコードリーダでは、ＣＣＤから出力される（電圧）波形を増幅器（図１の例ではＡＭＰ１）で増幅した波形をアナログ−ディジタル変換器（図１の例ではＡＤＣ）を用いて電圧値としてメモリに記憶する。ＣＰＵはＣＣＤから出力された１ライン（バーコードの１回のスキャンで出力されるデータ全ての）分の電圧値が蓄えられたら電圧値を先頭から検索していき、黒バー又は白バーのどちらであるか決定（二値化処理）し、決定した黒（又は白）バーのバー幅の幅を求め（バー幅取得処理）、バーコードをデコード（デコード処理）する。コントラスト比などの規格を守っているバーコードであれば問題なくデコード可能である。しかし、規格を守っていないバーコード、又は時間の経過とともにバーコードが劣化して規格外となってしまったバーコードを読み取る場合や、バーコードに対してバーコードリーダのセンサを高さ方向に傾いて翳すなどの異常なバーコードの読ませ方をした場合、二値化処理を実施した時点でデータの欠損が生じてしまう。
【００１５】
そこで、バーコードリーダ等のリーダに、以下のように図２に示される構成を付加する。
【００１６】
信号処理装置１００は、出力信号波形調整装置２００と可変アンプ３００とを有する。出力信号波形調整装置２００は、比較部２０１−１、２０１−２、・・・２０１−ｎと検出部２０４と出力信号調整部２０５とを有する。検出部２０４は、カウンタ２０２−１、２０２−２、・・・２０２−ｎと制御部２０３とを有する。
【００１７】
比較部２０１−１〜２０１−ｎ、及び、カウンタ２０２−１〜２０２−ｎの個数ｎは、動作範囲内に設定される複数の閾値の個数に対応し、各比較部２０１−１〜２０１−ｎ及び各カウンタ２０２−１〜２０２−ｎは、各閾値に対応する。該複数の閾値は、出力信号の波形の振幅及びオフセット位置を検知するための基準値であり、動作範囲を等間隔に区切ることが望ましいが、必ずしも等間隔であることには限定されない。
【００１８】
比較部２０１−１〜２０１−ｎは、可変アンプ３００に接続されている。該比較部２０１〜２０１−ｎは、可変アンプからの出力信号を入力し、対応する閾値との大小関係を比較し、比較結果を各々が対応する各カウンタ２０２−１〜２０２−ｎに出力する。
【００１９】
各カウンタ２０２−１〜２０２−ｎは、各々が対応する各比較部２０１−１〜２０１−ｎに接続されている。該カウンタ２０２−１〜２０２−ｎは、各々が対応する各比較部２０１−１〜２０１−ｎから入力した比較結果を基に、各閾値における出力信号と閾値との間の交点の個数、交点における出力信号の立ち上がりの個数、又は、交点における立ち下がりの個数をカウントし、カウント値を制御部２０３に送信する。すなわち、閾値毎のカウント値が、全ての閾値について制御部２０３に出力される。
【００２０】
制御部２０３は、各カウンタ２０２−１〜２０２−ｎに接続されている。該制御部２０３は、各カウンタ２０２−１〜２０２−ｎから入力されたカウント数を基に、可変ゲインアンプ３００のゲイン調整量、オフセット調整量のいずれか又はその双方を求め、それらの調整量を示す信号を出力信号調整部２０５に出力する。
【００２１】
出力信号調整部２０５は、制御部２０３に接続されている。該出力信号調整部２０５は、制御部２０３からの信号を受け取り、その信号に基づいて、可変アンプ３００のゲイン、オフセットのいずれか又はその双方を調整する。
（動作の説明）
可変アンプ３００が電圧を出力信号とし、その電圧の範囲が０Ｖ以上３Ｖ以下であり、閾値が０．５Ｖ、１．０Ｖ、１．５Ｖ、２．０Ｖ、２．５Ｖの５つであり、比較部２０１及びカウンタ２０２の個数がそれぞれ５であり、出力波形の振幅が小さい場合、及び、出力波形のオフセットが下方に外れている場合を例に説明するが、本発明の態様はこれに限定されるものではない。また、出力波形の振幅が大きい場合、及び、出力波形のオフセットが上方に外れている場合にも、以下に説明する動作と同様な動作により、可変アンプ３００の出力電圧の振幅とオフセットをそれぞれ目的の値にすることができる。
【００２２】
図３の実線は本実施形態のゲイン調整機能により（電圧）波形のゲインを調整した後の電圧波形である。図３の破線は可変アンプ３００から出力される電圧波形の振幅が小さい場合における、ゲイン調整前の電圧波形である。
【００２３】
また図４の実線部分は本実施形態のオフセット調整機能により（電圧）波形のオフセットを調整した後の電圧波形である。図４の破線は可変アンプ３００から出力される電圧波形のオフセットが下限方向に外れている場合における、オフセット調整前の電圧波形である。
【００２４】
図３及び図４の動作電圧範囲内でいくつかの閾値電圧（図３及び図４の例では、Ｖｒｅｆ１〜Ｖｒｅｆ５）を決定し、それぞれの閾値電圧と可変アンプ３００から出力される電圧波形を比較部２０１−１、２０１−２・・・２０１−ｎ（ここで、ｎ＝５）に入力する。比較部２０１−ｉ（ｉ＝１、２、・・・、ｎ（ここで、ｎ＝５））は、それぞれ、閾値電圧Ｖｒｅｆ（ｉ）（ｉ＝１、２、・・・、ｎ（ここで、ｎ＝５））と、可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）とを比較する。閾値電圧Ｖｒｅｆ（ｉ）より可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）の方が大きければ、比較部２０１−ｉの出力は、Ｈｉｇｈレベルとなり、可変アンプ３００から出力される電圧Ｖｏｕｔ（ｔ）より閾値電圧Ｖｒｅｆ（ｉ）の方が大きければ、比較部２０１−ｉの出力は、Ｌｏｗレベルとなる。カウンタ２０２−１、２０２−２、・・・、２０２−ｎ（ここで、ｎ＝５）は、それぞれ、比較部２０１−１・・・２０１−５から出力される波形に基づいて、比較部２０１−１・・・２０１−５から出力される波形がＬＯＷからＨＩＧＨに立ち上がる時及びＨＩＧＨからＬＯＷに立ち下がる時の双方において、カウントアップする。これは、比較部２０１の出力の立ち上がり及び立ち下がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。なお、カウンタ２０２−１、２０２−２、・・・、２０２−５は、それぞれ、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形に基づいて、比較部２０１−１、２０１−２、・・・２０１−５から出力される波形がＬＯＷからＨＩＧＨに立ち上がる時のみにおいて、カウントアップしてもよい。これは、比較部２０１の出力の立ち上がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。また、カウンタ２０２−１、２０２−２、・・・、２０２−５は、それぞれ、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形に基づいて、比較部２０１−１、２０１−２、・・・、２０１−５から出力される波形がＨＩＧＨからＬＯＷに立ち下がる時のみにおいて、カウントアップしてもよい。これは、比較部２０１の出力の立ち下がりを検出するゲートを通った信号を、カウンタ２０２としての非同期カウンタが、カウントすることによりできる。本発明で、「回数を共通に選択する」とは、例えば、全ての閾値に対して、波形がＬＯＷからＨＩＧＨに立ち上がる時及びＨＩＧＨからＬＯＷに立ち下がる時の双方において、カウントアップすることや、全ての閾値に対して、波形がＬＯＷからＨＩＧＨに立ち上がる時のみカウントアップすることや、全ての閾値に対して、波形がＨＩＧＨからＬＯＷに立ち下がる時のみカウントアップすることをいう。
【００２５】
理想的な設計上の波形は、中心電圧が動作電圧範囲の中央（図３及び図４の例では１．５Ｖ）と一致し、上側ピーク及び下側ピークが動作電圧範囲の上限及び下限近くまで届く波形である。理想的な波形を可変アンプ３００が出力できた場合は、所定期間内の各カウンタ２０２−１、２０２−２、・・・、２０２−５のカウント数は全て同じカウント数になる。
【００２６】
図３を例に、可変アンプ３００から出力される電圧波形の振幅が小さい場合について説明する。図３の時刻ｔ１から時刻ｔ２の範囲では、動作電圧範囲の中央であるＶｒｅｆ３（＝１．５Ｖ）と可変アンプ３００から出力される波形（図３の破線）の交点は３点あるので、１．５ボルトの閾値に対応するカウンタ２０２−３のカウント数は、“３”となる。しかし、この出力電圧は、常に、１ボルトを超え、また、常に、２ボルト未満である。従って、１ボルトの閾値に対応するカウンタ２０２−２及び２ボルトの閾値に対応するカウンタ２０２−４のカウント数は共に“０”となる。同様に、０．５ボルトの閾値に対応するカウンタ２０２−１及び２．５ボルトの閾値に対応するカウンタ２０２−５のカウント数も共に“０”となる。この場合、制御部２０３は、可変アンプ３００から出力された波形は、Ｖｒｅｆ３（＝１．５Ｖ）を中心に片側振幅が０．５Ｖ未満である波形と判断し、片側振幅が１．５Ｖ以上となるように、すなわち、可変アンプ３００のゲインが現状の３倍となるように、出力信号調整部２０４に制御信号を送出する。そして、出力信号調整部２０４は、可変アンプ３００のゲインが現状の３倍となるように調整をする。その結果、フィードバックを行った次のスキャンでは、可変アンプ３００の出力波形は、図３の実線であらわした波形となる。
【００２７】
しかし、例えば、可変アンプ３００から出力される波形の振幅が０．１Ｖの場合は、上記の可変アンプ３００のゲインを３倍とするためのフィードバックを行っても、カウンタ２０２−２及びカウンタ２０２−４のカウント数は“０”のままであるから、その場合は同じ処理、すなわちフィードバックを複数回繰り返す。
【００２８】
なお、例えばバーコードがない場合は、可変アンプ３００から出力される波形はないので上記のフィードバックを何度行ってもカウンタ２０２−２及びカウンタ２０２−４のカウント数は“０”のままである。これにより、無限にフィードバックを繰り返すことになってしまう。従って、この点を考慮し、フィードバックの打ち切り回数などをあらかじめ決めておく必要がある。
【００２９】
すなわち、可変アンプ３００のゲインを増加させるためのフィードバックは、カウンタ２０２−１〜２０２−ｎのカウント値が全て一致するという条件、及び、フィードバック回数が所定回数に達するという条件、のうちの一方が満たされるまで行なわれる。
【００３０】
また、１回のフィードバック当たりのゲイン調整量は、適宜、選択される。例えば、フィードバック後のゲインをフィードバック前のゲインの数パーセントから数十パーセントとして、必要に応じて、フォードバック数を増やすようにしてもよい。
【００３１】
図４を例に、可変アンプ３００から出力される電圧波形のオフセットが動作電圧範囲の中央から外れている場合について説明する。図４の例の可変アンプ３００から出力される電圧波形が破線で示しているような波形だった場合は、図４の時刻ｔ３から時刻ｔ４の範囲では、各カウンタの値については、カウンタ２０２−１に対しては“５”、カウンタ２０２−２に対しては“５”、カウンタ２０２−３に対しては“０”、カウンタ２０２−４に対しては“０”、カウンタ２０２−５に対しては“０”となる。閾値電圧Ｖｒｅｆ１及びＶｒｅｆ２に対してしか、可変アンプ３００から出力された電圧波形が交差しないため、制御部２０３は、動作電圧範囲の中央の閾値電圧Ｖｒｅｆ３よりも下の電圧を中心に振幅していると判断し、オフセットが上限側に１Ｖ加わるように出力信号調整部２０４に制御信号を送出する。そして、出力信号調整部２０４は、可変アンプ３００の出力オフセット電圧を上限側に１Ｖ加えるための制御信号を可変アンプ３００に出力する。その結果、フィードバックを行った次のスキャンでは、可変アンプ３００の出力波形は、図４の実線で示した波形になる。なお、ここで、可変アンプ３００がオフセット調整機能を有することとしている。
【００３２】
図４の破線で示したように、０Ｖ以下となった部分については、オフセット変更前はどのような波形になっているかは判断できないため、フィードバック後に更に上記と同様な判断をする。フィードバック後の可変アンプ３００の出力電圧波形の中心電圧が動作電圧範囲の中央電圧（１．５ボルト）でない場合は、更にオフセットを調整することになる。
【００３３】
オフセット調整は、可変アンプ３００の出力電圧波形の中心電圧が動作電圧範囲の中央電圧（１．５ボルト）となるように行なう。例えば、（１）閾値Ｖｒｅｆ３に対応するカウント値が所定値であり、それ以外の全ての値に対応するカウント値がゼロとなるように、（２）閾値Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４に対応するカウント値が全て所定値であり、それ以外の全ての値に対応するカウント値がゼロとなるように、（３）閾値Ｖｒｅｆ１、Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４、Ｖｒｅｆ５に対応するカウント値が全て所定値になるように、オフセット調整を行なう。
【００３４】
なお、例えばバーコードがない場合は、可変アンプ３００から出力される波形はないので上記のフィードバックを何度行っても上記条件（１）〜（３）の何れも満たされない。これにより、無限にフィードバックを繰り返すことになってしまう。従って、この点を考慮し、フィードバックの打ち切り回数などをあらかじめ決めておく必要がある。
【００３５】
すなわち、上記条件（１）〜（３）の何れかが満たされる時、又は、フィードバック回数が所定回数に達する時まで行なわれる。
【００３６】
また、１回のフィードバック当たりのオフセット調整量は、適宜、選択される。例えば、フィードバック後のオフセット量とフィードバック前のオフセット量との差の絶対値を０．１ボルト程度として、必要に応じて、フォードバック数を増やすようにしてもよい。なお、オフセットの調整方向は、それぞれの閾値に対応するカウント値に基づいて決定する。例えば、低い閾値に対応するカウント値が所定値であり、高い閾値に対応するカウント値がゼロであれば、オフセットをプラス方向に調整し、逆に、高い閾値に対応するカウント値が所定値であり、低い閾値に対応するカウント値がゼロであれば、オフセットをマイナス方向に調整する。
【００３７】
通常は、オフセット調整をした後にゲイン調整を行なう。すなわち、上記条件（１）〜（３）の何れかが満たされるようにオフセット調整を行ない、その後に上記条件（３）が満たされるようにゲイン調整を行なう。
【００３８】
なお、可変アンプ３００の出力の振幅が大き過ぎる場合には、全てのカウンタに対応するカウント値が等しくなり、正常であると判断する。このような場合、バーコードのデコードが可能な場合もあれば、不可能な場合もある。実用上、可変アンプ３００の出力の振幅が大き過ぎるためにバーコードのデコードが不可能な場合に、可変アンプ３００の出力の振幅を規定の振幅にするための制御をする必要があれば、０ボルトとＶｒｅｆ１の間の閾値に対応する比較部２０１とカウンタ２０２を設け、更に、Ｖｒｅｆ５と３ボルトの間の閾値に対応する比較部２０１とカウンタ２０２を設け、これらに対応するカウント値が０となるように制御を行なえばよい。すなわち、閾値Ｖｒｅｆ１、Ｖｒｅｆ２、Ｖｒｅｆ３、Ｖｒｅｆ４、Ｖｒｅｆ５に対応するカウント値が全て所定値となり、ここで追加することとした閾値に対応するカウント値が両方ともゼロとなるように制御を行なえばよい。
［第１の実施形態］
図５に、本発明の第１の実施形態を示す。ここでは、５つの閾値に対応する５つの各比較部２０１−１、２０１−２、・・・、２０１−５として第１のコンパレータ２０１−１、第２のコンパレータ２０１−２、・・・第５のコンパレータ２０１−５を用いている。また、出力信号波形調整装置２００として、ＣＰＵ２００を用いている。
【００３９】
更に、可変アンプ３００は、上述したように、オフセット調整機能とゲイン調整機能を有する。オフセット調整は、ＣＰＵ２００が、ディジタルポテンショメータ３０２−１の抵抗値を調整して、これにより、オペレーショナルアンプ３０１の非反転入力端子の中心電圧を調整することにより実現する。ゲイン調整機能は、ＣＰＵ２００が、ディジタルポテンショメータ３０２−２の抵抗値を調整し、これにより、オペレーショナルアンプの反転入力端子と出力端子との間の抵抗値を調整することにより実現する。
【００４０】
図２のカウンタ２０２−１、２０２−２、・・・、２０２―５、制御部２０３、出力信号調整部２０４は、ＣＰＵ２００に内蔵される。ここで、カウンタ２０２−１、２０２−２、・・・、２０２―５は、ＣＰＵ２００がプログラムを読み込んで実行することにより実現される。なお、ＣＰＵ２００は、カウンタ２０２−１、２０２−２、・・・、２０２―５の機能のみならず、制御部２０３、出力信号調整部２０４の機能も、プログラムを読み込んで実行することにより実現する。
【００４１】
図５の２つのディジタルポテンショメータ３０２−１及び３０２−２は、可変抵抗器の一種であり、ワイパーをディジタル信号（ＳＰＩなどのインターフェース信号など）で制御できるＩＣである。
【００４２】
動作電圧範囲内でいくつかの閾値電圧を設ける。図５の例ではＶｒｅｆ１〜Ｖｒｅｆ５、動作範囲内を０．５Ｖ刻みで閾値電圧を設ける。第１〜第５のコンパレータ２０１−１〜２０１−５は、それぞれ、Ｖｒｅｆ１からＶｒｅｆ５の閾値電圧と、可変アンプ３００の出力電圧を比較し、その比較結果を、例えば、それが出力する信号のレベル（ＬＯＷレベルとＨＩＧＨレベル）であって、ＣＰＵ７００が識別することが可能なレベルにより表す為のデバイスである。カウンタ２０２−１〜２０２−５は、上述したように、それぞれに対応するコンパレータ２０１−１〜２０１−５の出力レベルが、所定期間内にＬＯＷレベルからＨＩＧＨレベルに変化する回数、ＨＩＧＨレベルからＬＯＷレベルに変化する回数のいずれか又はそれらを合わせた回数をカウントする。なお、カウンタは上述したように、ＣＰＵ７００がプログラムを読み込んで実行することによって実現しても良いが、ＣＰＵ７００が内蔵するハードウェアによって実現してもよい。
【００４３】
第１の実施形態に示す信号処理装置の動作を、図６を参照して説明する。
【００４４】
１）まず、制御部２０３がバーコードへの投光回数のカウントをクリアする（ステップＳ１）。
【００４５】
２）次に、バーコードへの投光回数が所定数以上である場合（ステップＳ２のＹ）、Ａを経由して、制御部２０３がデコード不可を上位装置へ送信し（ステップＳ１１）、終了する。バーコードへの投光回数が所定数未満である場合（ステップＳ２のＮ）、ステップＳ３へ移行する。
【００４６】
３）次に、投光用ＬＥＤ８００がバーコードへ投光する（ステップＳ３）。
【００４７】
４）次に、制御部２０３がバーコードへの投光回数に１を加算する（ステップＳ４）。
【００４８】
５）次に、ＣＣＤ３５０がバーコードからの反射光を受光して、ＣＰＵ７００がデコードする（ステップＳ５）。なお、ＣＣＤ３５０がバーコードからの反射光を受光して、ＣＰＵ７００がデコードするまでについては、従来技術なので、省略する。
【００４９】
６）デコード出来た場合（ステップＳ６のＹ）、ＣＰＵ７００がデコード結果を上位装置へ送信し（ステップＳ１２）、終了する。デコード出来なかった場合（ステップＳ６のＮ）、ステップＳ７へ移行する。
【００５０】
７）ステップＳ７では、制御部２０３がオフセット電圧の調整が必要であるか否かを判断する。オフセット電圧の調整が必要である場合（ステップＳ７のＹ）、出力信号調整部２０５がオフセット電圧を調整し（ステップＳ８）、ステップＳ２に戻る。オフセット電圧の調整が必要でない場合（ステップＳ７のＮ）、ステップＳ９へ移行する。オフセット電圧の調整が必要であるか否かの判断と、オフセット電圧の調整の詳細については、後述する。
【００５１】
８）ステップＳ９では、制御部２０３がゲインの調整が必要であるか否かを判断する。ゲインの調整が必要である場合（ステップＳ９のＹ）、出力信号調整部２０５がゲインを調整し（ステップＳ１０）、ステップＳ２に戻る。ゲインの調整が必要でない場合（ステップＳ９のＮ）、ＣＰＵ７００がデコード不可を上位装置へ送信し（ステップＳ１１）、終了する。ゲインの調整が必要であるか否かの判断と、ゲインの調整の詳細については、後述する。
【００５２】
上記の動作手順において、オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整と、ゲインの調整が必要であるか否かの判断とゲインの調整は、順序が逆であってもよい。
【００５３】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整、及びゲインの調整が必要であるか否かの判断とゲインの調整は、以下のようにして行う。
【００５４】
ＣＣＤ３５０の動作電圧上限値をＶmax、またＣＣＤ３５０の動作電圧下限値をＶminとする。コンパレータ２０１−１のレファレンス電圧値Ｖｒｅｆ１を（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／３の値とする。コンパレータ２０１−２のレファレンス電圧値Ｖｒｅｆ２を、（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−３のレファレンス電圧値Ｖｒｅｆ３を、（Ｖmax−Ｖmin）／２の値とする。コンパレータ２０１−４のレファレンス電圧値Ｖｒｅｆ４を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−５のレファレンス電圧値Ｖｒｅｆ５を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／３とする。また、コンパレータ２０１−１に対応するカウンタ２０２−１のカウント数をＣＰ１、コンパレータ２０１−２に対応するカウンタ２０２−２のカウント数をＣＰ２、コンパレータ２０１−３に対応するカウンタ２０２−３のカウント数をＣＰ３、コンパレータ２０１−４に対応するカウンタ２０２−４のカウント数をＣＰ４、コンパレータ２０１−５に対応するカウンタ２０２−５のカウント数をＣＰ５とする。
【００５５】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整は、以下のように場合分けされて処理される。
【００５６】
（ｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ５−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ５−Ｖmin）／２に設定する。
【００５７】
（ｉ−２）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ３を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ４−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ４−Ｖmin）／２に設定する。
【００５８】
（ｉ−３）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ３−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を、（現在値）−（Ｖｒｅｆ３−Ｖmin）／２に設定する。
【００５９】
（ｉ−４）ＣＰ１≠０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ１）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ１）／２に設定する。
【００６０】
（ｉ−５）ＣＰ１≠０、ＣＰ２≠０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ３未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ２）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ２）／２に設定する。
【００６１】
（ｉ−６）ＣＰ１≠０、ＣＰ２≠０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ３）／２だけ下側にずれていると判断し、オフセット電圧を、（現在値）＋（Ｖmax−Ｖｒｅｆ３）／２に設定する。
【００６２】
（ｉ−７）上記（ｉ−１）〜（ｉ−６）以外の場合は、制御部２０３が、オフセット電圧の調整は不要と判断する。
【００６３】
ゲインの調整が必要であるか否かの判断とゲインの調整は、以下のように場合分けされて処理される。
【００６４】
（ｉｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ２を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／３倍であるものと判断し、ゲインを（現在値）×３に設定する。
【００６５】
（ｉｉ−２）ＣＰ１＝０、ＣＰ２≠０、ＣＰ３≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ１を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１．５／２．５倍であるものと判断し、ゲインを、（現在値）×２．５／１．５に設定する。
【００６６】
（ｉｉ−３）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３≠０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ２を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１．５／２．５倍であるものと判断し、ゲインを、（現在値）×２．５／１．５に設定する。
【００６７】
（ｉｉ−４）ＣＰ１＝０、ＣＰ２＝０、ＣＰ３＝０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ３を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを、（現在値）×２に設定する。
【００６８】
（ｉｉ−５）ＣＰ１＝０、ＣＰ２≠０、ＣＰ３＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形が、Ｖｒｅｆ１を超えＶｒｅｆ３未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを、（初期値）×２に設定する。
【００６９】
（ｉｉ−６）上記（ｉｉ−１）〜（ｉｉ−５）以外の場合は、制御部２０３が、ゲインの調整は不要と判断する。
【００７０】
なお、ＣＰ１〜ＣＰ５のカウント数については、ノイズの影響を除去するため、所定数（例えば、バーコードの反射光から得られる各カウンタのカウント数の最大値の１０％程度の数）以下の場合は、０とみなす。
［第２の実施形態］
本発明の第２の実施形態は、図５に示された第１の実施形態に類似するが、第２の実施形態では、第１の実施形態における中心の閾値、及びそれに対応するコンパレータ２０１−３及びカウンタ２０２−３が存在せず、４つの閾値に対応する４つの各比較部としてコンパレータ２０１−１、コンパレータ２０１−２、コンパレータ２０１−４、コンパレータ２０１−５を用いている。また、信号処理装置２００として、ＣＰＵ２００を用いている。
【００７１】
さらに、図２のカウンタ２０２−１、２０２−２、２０２−４、２０２―５、制御部２０３、出力信号調整部２０４は、ＣＰＵ２００に内蔵される。ここで、カウンタ２０２−１、２０２−２、２０２−４、２０２―５は、ＣＰＵ２００がプログラムを読み込んで実行することにより実現される。なお、ＣＰＵ２００は、カウンタ２０２−１、２０２−２、２０２−４、２０２―５の機能のみならず、制御部２０３、出力信号調整部２０４の機能も、プログラムを読み込んで実行することにより実現する。
【００７２】
第２の実施形態で開示される信号処理装置は、第１の実施形態と同様、図６に示されるフローチャートに従って動作する。
【００７３】
第２の実施形態のバーコードリーダのオフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整、及びゲインの調整が必要であるか否かの判断とゲインの調整は、第１の実施形態のバーコードリーダのものとは異なり、以下のようにして行う。
【００７４】
ＣＣＤ３５０の動作電圧上限値をＶmax、またＣＣＤ３５０の動作電圧下限値をＶminとする。コンパレータ２０１−１のレファレンス電圧値Ｖｒｅｆ１を（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／３の値とする。コンパレータ２０１−２のレファレンス電圧値Ｖｒｅｆ２を、（Ｖmax−Ｖmin）／２−（Ｖmax−Ｖmin）／６の値とする。中間値Ｖ３を、（Ｖmax−Ｖmin）／２の値とする。コンパレータ２０１−４のレファレンス電圧値Ｖｒｅｆ４を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／６の値とする。コンパレータ２０１−５のレファレンス電圧値Ｖｒｅｆ５を、（Ｖmax−Ｖmin）／２＋（Ｖmax−Ｖmin）／３とする。また、コンパレータ２０１−１のカウント数をＣＰ１、コンパレータ２０１−２のカウント数をＣＰ２、コンパレータ２０１−４のカウント数をＣＰ４、コンパレータ２０１−５のカウント数をＣＰ５とする。
【００７５】
オフセット電圧の調整が必要であるか否かの判断とオフセット電圧の調整は、以下のように場合分けされて処理される。
【００７６】
（ｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４＝０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ５−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ５−Ｖmin）／２に設定する。
【００７７】
（ｉ−２）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４≠０、ＣＰ５≠０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えた範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖｒｅｆ３−Ｖmin）／２だけ上側にずれていると判断し、オフセット電圧を（現在値）−（Ｖｒｅｆ３−Ｖmin）／２に設定する。
【００７８】
（ｉ−３）ＣＰ１≠０、ＣＰ２＝０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ１）／２だけ下側にずれていると判断し、オフセット電圧を（現在値）＋（Ｖmax−Ｖｒｅｆ１）／２に設定する。
【００７９】
（ｉ−４）ＣＰ１≠０、ＣＰ２≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、オフセットが所望値である１．５ボルトよりも（Ｖmax−Ｖｒｅｆ３）／２だけ下側にずれていると判断し、オフセット電圧を（現在値）＋（Ｖmax−Ｖｒｅｆ３）／２に設定する。
【００８０】
（ｉ−５）上記（ｉ−１）〜（ｉ−４）以外の場合は、制御部２０３が、オフセット電圧の調整は不要と判断する。
【００８１】
ゲインの調整が必要であるか否かの判断とゲインの調整は、以下のように場合分けされて処理される。
【００８２】
（ｉｉ−１）ＣＰ１＝０、ＣＰ２＝０、ＣＰ４≠０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ２を超えＶｒｅｆ５未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを（現在値）×２に設定する。
【００８３】
（ｉｉ−２）ＣＰ１＝０、ＣＰ２≠０、ＣＰ４＝０、ＣＰ５＝０の場合、制御部２０３が、出力信号の波形がＶｒｅｆ１を超えＶｒｅｆ４未満の範囲にのみ存在するものと判断し、従って、ゲインが所望値の１／２倍であるものと判断し、ゲインを（現在値）×２に設定する。
【００８４】
（ｉｉ−３）上記（ｉｉ−１）〜（ｉｉ−２）以外の場合は、制御部２０３が、ゲインの調整は不要と判断する。
【００８５】
なお、ＣＰ１、ＣＰ２、ＣＰ４、ＣＰ５のカウント数については、ノイズの影響を除去するため、所定数（例えば、バーコードの反射光から得られる各カウンタのカウント数の最大値の１０％程度の数）以下の場合は、０とみなす。
【００８６】
上記第１の実施形態と第２の実施形態では、Ｖｒｅｆ２をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／６だけ低い電圧に、Ｖｒｅｆ４をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／６だけ高い電圧に設定したが、その前後の電圧値としてもよい。また、Ｖｒｅｆ１をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／３だけ低い電圧に、Ｖｒｅｆ５をＣＣＤ動作電圧の中心値より、（Ｖmax−Ｖmin）／３だけ高い電圧に設定したが、その前後の電圧値としてもよい。
［第３の実施形態］
第１及び第２の実施形態では、コンパレータから出力されるパルス波をＣＰＵ内蔵のカウンタを使用してカウントしているが、カウンタをＣＰＵ外部に設けても実現することは可能である。
［第４の実施形態］
第１乃至第３の実施形態では、制御部及び出力信号調整部がＣＰＵに内蔵されているが、制御部及び出力信号調整部をＣＰＵ外部に設けても実現することは可能である。つまり、ソフトウェアを用いずに、ハードウェアのみによっても、制御部を実現することもできる。
［第５の実施形態］
第１乃至第４の実施形態では、ハードウェア構成のコンパレータを用いて閾値電圧と比較をしているが、可変アンプ３００から出力される電圧波形の電圧値はメモリに内蔵されているため、ソフトウェアを用いてコンパレータと同じ処理をすることも可能である。つまり、ハードウェア構成のコンパレータの機能を、ＣＰＵがプログラムを読み込んで実行することによっても実現することができる。具体的には、ＣＰＵが可変アンプ３００の出力電圧をＡ／Ｄ変換器により読み込んで、Ａ／Ｄ変換器の出力である電圧を表す数値と、閾値電圧を表す数値とを比較することにより、可変アンプ３００の出力電圧と閾値電圧との比較をすることができる。
［第６の実施形態］
第１乃至第５の実施形態では、ゲイン及びオフセットを調整するためにディジタルポテンショメータを用いているが、抵抗とアナログスイッチを用いてフィードバック量を決定することも可能である。例えば、ラダー抵抗に含まれる直列に相互に接続される複数の抵抗素子の一部をアナログスイッチにより短絡すればよい。抵抗値が変更できれば、手段はディジタルポテンショメータに限らない。
［第７の実施形態］
第１乃至第６の実施形態では、センサとしてバーコードリーダのＣＣＤカメラ、センサの対象がバーコードである場合について開示しているが、センサの対象物を磁気カードの磁気ストライプ内のコードとし、センサを磁気カードリーダのセンサとすることも可能である。
【００８７】
本発明においては、上記の構成により、センサから出力される出力信号波形が設計から外れた場合でも、波形を調整して設計範囲に納め、デコードすることを可能とする。とりわけ、従来のバーコードリーダでは、例えばＣＣＤから出力された（電圧）波形の振幅が小さい場合は、デコード処理をソフトウェアで実行すると、一度ＡＤＣにて電圧値に変換した値をメモリ内に蓄えるのでＣＰＵの負荷が増加してしまう欠点がある。また増幅器（図１の例のＡＭＰ１）の出力側にノイズが重畳してしまった場合は、ソフトウェアで処理するとノイズもＣＣＤから出力される（電圧）波形とともに増加してしまう。しかし、本実施形態に示すように、可変アンプ３００から出力される波形に対してフィードバックを行うことにより、ノイズの影響も軽減できる利点がある。更に、本実施形態において、二値化処理をハードウェア的に電気回路で実現する場合は、二値化できる最小の振幅はハードウェア的に決定されるため、本実施形態の提供するセンサ３５０から出力される波形の振幅を調整する方法は特に有効である。
【００８８】
なお、上記の信号処理装置の各部分は、ハードウェア、ソフトウェアのいずれか又はこれらの組み合わせにより実現することができる。また、上記の信号処理装置により行われる信号処理方法も、ハードウェア、ソフトウェアのいずれか又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００８９】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９０】
上記の実施形態の一部または全部は、以下の付記のようにも記載されるが、以下には限られない。
【００９１】
（付記１）
入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプと、
前記出力信号のレベルを複数の閾値と比較する比較手段と、
前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、
前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、
を備えることを特徴とする信号処理装置。
【００９２】
（付記２）
付記１に記載の信号処理装置であって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理装置。
【００９３】
（付記３）
付記２に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれ、前記出力信号のゲインの過不足のいずれか又はその双方を検出することを特徴とする信号処理装置。
【００９４】
（付記４）
付記３に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれとして、その概算量を検出し、
前記調整手段は、前記オフセットのずれの概算値に基づいて、オフセットの調整量を決定することを特徴とする信号処理装置。
【００９５】
（付記５）
付記３又は４に記載の信号処理装置であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のゲインの過不足として、その概算量を検出し、
前記調整手段は、前記ゲインの過不足の概算値に基づいて、ゲインの調整量を決定することを特徴とする信号処理装置。
【００９６】
（付記６）
センサと、
付記１乃至５の何れか１に記載の信号処理装置と、
デコーダと、
を備え、
前記信号処理装置は、前記センサの出力信号を当該信号処理装置の入力信号とし、
前記デコーダは、前記信号処理装置の出力信号を当該デコーダの入力信号とすることを特徴とするバーコードリーダ。
【００９７】
（付記７）
可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプが、入力信号に対応した信号を出力信号として出力するステップと、
比較手段が、前記出力信号のレベルを複数の閾値と比較するステップと、
検出手段が、前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出するステップと、
調整手段が、前記検出手段による検出結果に基づき、前記可変アンプによるオフセットの調整量、ゲインの調整量のいずれか又はその双方を調整するステップと、
を含むことを特徴とする信号処理方法。
【００９８】
（付記８）
付記７に記載の信号処理方法であって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理方法。
【００９９】
（付記９）
付記８に記載の信号処理方法であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれ、前記出力信号のゲインの過不足のいずれか又はその双方を検出することを特徴とする信号処理方法。
【０１００】
（付記１０）
付記９に記載の信号処理方法であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれとして、その概算量を検出し、
前記調整手段は、前記オフセットのずれの概算値に基づいて、オフセットの調整量を決定することを特徴とする信号処理方法。
【０１０１】
（付記１１）
付記９又は１０に記載の信号処理方法であって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のゲインの過不足として、その概算量を検出し、
前記調整手段は、前記ゲインの過不足の概算値に基づいて、ゲインの調整量を決定することを特徴とする信号処理方法。
【０１０２】
（付記１２）
入力信号に対応した信号を出力信号として出力する可変アンプであって、そのオフセットとゲインを調整することが可能な可変アンプからの出力信号を調整する出力信号波形調整装置として、コンピュータを機能させるための信号処理用プログラムであって、
コンピュータを、
前記出力信号のレベルを複数の閾値と比較する比較手段と、
前記比較手段による比較結果に基づいて、前記可変アンプのオフセットのずれ、前記可変アンプのゲインの過不足のいずれか又はその双方を検出する検出手段と、
前記検出手段による検出結果に基づき、前記可変アンプのオフセット、ゲインのいずれか又はその双方を調整する調整手段と、
として機能させるための信号処理用プログラム。
【０１０３】
（付記１３）
付記１２に記載の信号処理用プログラムであって、
前記検出手段は、前記比較手段による比較結果として、前記複数の閾値のそれぞれに対して、所定期間内に前記出力信号のレベルがその閾値を下回るレベルからその閾値を上回るレベルに変化する回数、前記所定期間内に前記出力信号のレベルがその閾値を上回るレベルからその閾値を下回るレベルに変化する回数のいずれか又はそれらを合わせた回数のうちから共通に選択された回数を利用することを特徴とする信号処理用プログラム。
【０１０４】
（付記１４）
付記１３に記載の信号処理用プログラムであって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれ、前記出力信号のゲインの過不足のいずれか又はその双方を検出することを特徴とする信号処理用プログラム。
【０１０５】
（付記１５）
付記１４に記載の信号処理用プログラムであって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のオフセットのずれとして、その概算量を検出し、
前記調整手段は、前記オフセットのずれの概算値に基づいて、オフセットの調整量を決定することを特徴とする信号処理用プログラム。
【０１０６】
（付記１６）
付記１４又は１５に記載の信号処理用プログラムであって、
前記検出手段は、前記複数の閾値のそれぞれに対して共通に選択された回数の組合せに基づいて、前記出力信号のゲインの過不足として、その概算量を検出し、
前記調整手段は、前記ゲインの過不足の概算値に基づいて、ゲインの調整量を決定することを特徴とする信号処理用プログラム。
【産業上の利用可能性】
【０１０７】
センサ等を用いて同じデータ（本発明でのバーコード等）から、アナログ信号を連続して出力する装置に応用可能である。
【０１０８】
例えば磁気カードリーダなどに応用することが考えられる。磁気カードの磁気ストライプ内のコードを読み出した時に磁気ヘッドはアナログ（電圧）波形を出力するが、読み取った磁気カードが減磁カード（経年劣化や磁気カードのストライプ部分に磁石などを近づけることにより磁力が弱くなってしまったカード）の場合は再生した信号のゲインが小さくなり本発明で示した方法でのゲインの増幅が有効に動作すると考えられる。
【符号の説明】
【０１０９】
１００  信号処理装置
２００  出力信号波形調整装置
２０１−１  比較部
２０１−２  比較部
２０１−ｎ  比較部
２０２−１  カウンタ
２０２−２  カウンタ
２０２−ｎ  カウンタ
２０３  制御部
２０４  検出部
２０５  出力信号調整部
３００  可変アンプ
３０１  オペレーショナルアンプ
３０２−１  ディジタルポテンショメータ
３０２−２  ディジタルポテンショメータ
３５０  センサ
４００  ＡＤＣ（アナログ・ディジタル変換器）
５００  メモリ
６００−１  ＳＰＩ／ＧＰＩＯ
６００−２  ＳＰＩ／ＧＰＩＯ
７００  ＣＰＵ
８００  投光用ＬＥＤ
【図１】
0005403714.tif 000002
【図２】
0005403714.tif 000003
【図３】
0005403714.tif 000004
【図４】
0005403714.tif 000005
【図５】
0005403714.tif 000006
【図６】
0005403714.tif 000007