(57)【特許請求の範囲】
【請求項１】
高低２種の周波数信号の組み合わせによる周波数変調信号で２値データを形成し、この２値データの所定ビット数により１文字分のデータを形成するようになっており、記録されたデータ信号を再生して得られる再生信号波形よりピーク点の有無を検出して２値データを復調するようにしたデータの復調方法であって、
上記再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換して１文字分のデータの復調をするとともに、
再生される各文字の理想的な再生波形を基準波形データとして予め用意しておき、上記ピーク間隔値が上記基準値より小さい場合または大きい場合に、１文字分を構成する個々のピーク間隔値のデータと上記基準波形データとのパターンマッチングを行い、その類似度により該当する文字を判定することを特徴とするデータの復調方法。
【請求項２】
基準値は、理想的なピーク間隔値をもとにある範囲を有するように定められた値であり、ピーク間隔値が上記基準値より小さい場合あるいは大きい場合に波形異常があることを検出し、この波形異常をパリティビットの条件から修正して該当する文字を判定するとともに、この該当文字を、パターンマッチングによって得られる該当文字と比較し、これら二つの該当文字が互いに異なる場合は、パターンマッチングによる類似度が所定のレベル以上のとき、このパターンマッチングによって得られる該当文字を選択する請求項１記載のデータの復調方法。
【請求項３】
１文字分を構成する個々のピーク間隔値を順方向および逆方向に基準値と比較して二つのビット配列を求め、この二つのビット配列が一致しない場合は、それぞれのビット配列に基づき復調して該当する文字候補とするとともに、この文字候補をパターンマッチングによって得られる該当文字と比較し、比較が一致する文字を該当文字と判断する請求項１記載のデータの復調方法。
【請求項４】
再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測してピーク間隔値配列を生成し、このピーク間隔値配列より個々のピーク間隔値を順次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換し、１文字分のデータとする請求項１記載のデータの復調方法。
【請求項５】
再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測し、ピーク間隔値配列をカードリーダに設けたメモリに保存し、このメモリに保存されたデータを、上記カードリーダを制御する上位装置に送信し、この上位装置において、上記ピーク間隔値配列より個々のピーク間隔値を逐次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換する請求項４記載のデータの復調方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば磁気カード等に記録されているデータ信号の復調方法に関するもので、周波数変調方式により記録されているデータを高い信頼性で復調することができるようにしたデータの復調方法に関する。
【０００２】
【従来の技術】
例えば磁気カードリーダ等の記録再生装置においては、Ｆおよび２Ｆという２種類の周波数の組み合わせによって２値のデータ信号を記憶するＦＭ変調方式が一般に知られている。このＦＭ変調方式によって記録されたデータの再生時は、磁気カードの磁気ストライプに対して相対的に磁気ヘッドを摺動させることにより、磁気記録データをアナログ再生信号の形態で再生し、このアナログ再生信号の信号波形に基づき、２値データを復調するようになっている。
【０００３】
一般的な磁気カードの磁気ストライプは、実際に記録データが記憶されている有効データ領域だけではなく、その前の同期ビット領域と、記録データの始まりを示すＳＴＸコード領域と、有効データ領域の後ろのデータ終了を示すＥＴＸコード領域、ＬＲＣコード領域および同期ビット領域を有している。
【０００４】
図１５に上記のような従来の磁気カードの記録データ復調時の一般的な機能ブロックを、図１６にその各部の信号波形を示す。図１５において、磁気カード１０が相対移動することにって得られる磁気ヘッド１１の出力信号は二つの増幅器１２、１５によって増幅される。増幅器１２の出力信号はピーク検出回路１３によってピーク検出が行われ、ピーク検出回路１３のピーク検出信号はコンパレータ１４によってゼロレベルと比較されゼロクロス点が検出されるようになっている。他方の増幅器１５の出力信号はコンパレータ１６によってゼロクロス点が検出され、その出力信号はタイミング発生回路１７に入力される。タイミング発生回路１７では、コンパレータ１４の出力信号の転換位置におけるコンパレータ１６の出力信号のレベルを見て、そのときのコンパレータ１６の出力信号レベルに応じてその出力レベルを転換するようになっている。タイミング発生回路１７の出力信号はデータ弁別回路またはＣＰＵ１８に入力され、所定の信号処理が行われることによって文字が判別されるようになっている。
【０００５】
図１５に示す機能ブロックの動作を、図１６を併せて参照しながらさらに具体的に説明する。磁気カード１０に記録されている信号の例を図１６（ａ）に示す。記録信号はＦおよび２Ｆという２種類の周波数の組み合わせによる２値のデータ信号であって、１ビット分の時間間隔Ｔ内において信号極性の反転の有無によってそのビットが「０」か「１」かを表している。（ａ）の例は「０１１０１」を表している。この記録信号を磁気ヘッド１１で読み取り、増幅器１２、１５で増幅したものの例を図１６（ｂ）に示す。記録信号「０」に対応する増幅器１２、１５の出力の周波数に対して記録信号「１」に対応する増幅器１２、１５の出力の周波数は２倍になっている。
【０００６】
ピーク検出回路１３は微分回路からなるものと考えてよく、従ってピーク検出出力は図１６（ｃ）に示すように増幅器１２の出力信号のピーク位置でゼロクロスとなる信号波形が得られる。その信号はコンパレータ１４によりゼロレベルと比較され、図１６（ｄ）に示すように上記ピーク検出波形のゼロクロス位置で反転するデジタル信号に変換される。他方の増幅器１５の出力波形はコンパレータ１６によりゼロレベルと比較され、図１６（ｅ）に示すように増幅器１５の出力波形のゼロクロス位置で反転するデジタル信号に変換される。タイミング発生回路１７は、コンパレータ１４の出力信号の転換位置におけるコンパレータ１６の出力信号のレベルを見て、そのときのコンパレータ１６の出力信号レベルに応じてその出力レベルを転換し、図１６（ｆ）に示すような信号を出力するようになっている。図１６の（ｆ）に示す信号は（ａ）に示す信号と同じ「０１１０１」を表すデジタル信号となっており、磁気カードに記録されているデータ信号が復調されることがわかる。
【０００７】
【発明が解決しようとする課題】
以上説明したような磁気カードに記録されているデータの読み取り性能は、磁気記録媒体であるカードの状態や、磁気ヘッドの汚れや摩耗、モータなどからの電気的なノイズ、機械的なノイズなどの影響を受ける。すなわち、磁気カード等の記録媒体は、繰り返し使用されることによって様々な負荷を受ける結果、記録媒体の表面の汚れや傷により、本来存在するはずのない位置に信号が発生することがある。また、記録媒体に記録される基本データは１回書き込まれると使用を繰り返しても書き換えられることはないため、繰り返し使用して磁気ヘッドとの接触を繰り返すうちに磁力が減衰し、再生に必要な信号強度が不足してデータの読み取りの信頼性が低下する。さらに、磁気ヘッドの摩耗によって磁気ヘッドの分解能が低下し、ピークシフトが発生する。
【０００８】
このようにしてデータの読み取りに異常が生じると、媒体に記録されているデータの読み取り性能を低下させる要因となり、データを正しく判別することができなくなる。また、本来存在するはずのないピークが存在したり、本来存在すべき位置にピークが存在しなかったりすると、異常波形が忠実にデコードされることを原因としてビット数を誤って読み取り、以降のビットの区切りにもずれが生じ、この影響が後続の文字区間に波及し、後続の文字区間でも誤読を引き起こす原因となる。
【０００９】
前述のＦＭ変調方式では、図３に示すように、１ビットの時間間隔Ｔに関して一定の基準時間αＴ（ただし、０≦α≦１）を設定し、この基準時間αＴ内に読み取り信号の極性反転があるかないかで２値データが「０」かまたは「１」かの判定を行うようになっている。すなわち、基準時間αＴ内に極性反転がなければ周波数Ｆで２値データは「０」、基準時間αＴ内に極性反転があれば周波数２Ｆで２値データは「１」と判定する。これによってある程度のピークシフトによる影響を回避することができる。
【００１０】
しかしながら、図３に示す例のように、基準時間αＴを設定し、その時間αＴ内に読み取り信号の極性反転があるかないかで２値データを判定するようにしても、前述のような、本来存在するはずのないピークが存在したり、本来存在すべき位置にピークが存在しなかったりすることによって誤読を生じることがある。
【００１１】
そして、ビット列中のたった一つのビットだけについて誤読を生じたとしても、この誤読が後続のビット列にも波及し、誤った判定をすることになる。そこで本発明者らは、一つのビットの誤読が後続のビット列に波及することのないようにしたデータの復調方法について先に特許出願した。特願平１１−８８０４８号の明細書および図面に記載されている発明がそれで、個々のビットの２値データを判定するに当たり、１文字分の文字時間間隔を合理的な方法で区切り、この１文字分の文字時間間隔という要素を加味することによって、誤読を大幅に減らし、信頼性の高いデータの復調を可能としたものである。
【００１２】
また、本発明者らは、ピーク間隔値配列より個々のピーク間隔値を逐次加算して１文字の終端を決定したのち、上記１文字分を構成する個々のピーク間隔値を順方向および逆方向に基準値と比較して二つのビット配列を求め、この、二つのビット配列に基づいて１文字分のデータの復調をすることを提案している。こうすれば、信頼性の高いデータの復調が可能である。
【００１３】
本発明者らはまた、各文字の理想的な再生信号波形を基準波形データとして予め用意しておき、磁気記録データに対応する再生信号を、記録データの１文字に相当する長さを単位としてセグメントに区切り、少なくとも一つのセグメントについて、上記基準波形データのそれぞれとパターンマッチングによって比較し、各基準波形データとの類似性の程度を判別して、最も高い類似性を示した基準波形データに対応する文字を、上記セグメントの表す文字であると判定することを特徴とするデータの復調方法について提案した。これは現在特許出願中である。
【００１４】
上記の各出願にかかる発明および上記提案にかかる発明によれば、データ復調の信頼性を高めることができる。しかしながら、上記出願や提案にかかる発明によれば、文字が一意的に限定できたとしても、その確からしさはわからない。また、文字候補が複数あって一意的に決まらない場合は、どの文字候補も同等の可能性があるものとして取り扱わなければならず、誤りのない文字に絞り込む確率をより高めるには、さらに改良する余地がある。
【００１５】
本発明は上記のような従来技術に鑑みてなされたもので、ビット変換の結果につき、その確からしさあるいは確度を得ることができるようにすることによって、対処法を明確にすることができ、結果として、誤読を大幅に減らすことができ、信頼性の高いデータの復調を可能としたデータの復調方法を提供することを目的とする。
【００１６】
本発明はまた、ビット変換によってセグメントの文字を一意的に決定することができなかった場合でも、文字候補を絞り込むことができるようにして、データの読み取り性能を向上させることができるデータの復調方法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記の目的を達成するために本発明は、請求項１に記載されているように、高低２種の周波数信号の組み合わせによる周波数変調信号で２値データを形成し、この２値データの所定ビット数により１文字分のデータを形成するようになっており、記録されたデータ信号を再生して得られる再生信号波形よりピーク点の有無を検出して２値データを復調するようにしたデータの復調方法であって、上記再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換して１文字分のデータの復調をするとともに、再生される各文字の理想的な再生波形を基準波形データとして予め用意しておき、上記ピーク間隔値が上記基準値より小さい場合または大きい場合に、１文字分を構成する個々のピーク間隔値のデータと上記基準波形データとのパターンマッチングを行い、その類似度により該当する文字を判定するようにしたことを特徴とする。
【００１８】
上記基準値は、請求項２記載の発明のように、上記基準値は、理想的なピーク間隔値をもとにある範囲を有するように定められた値であり、ピーク間隔値が上記基準値より小さい場合あるいは大きい場合に波形異常があることを検出し、この波形異常をパリティビットの条件から修正して該当する文字を判定するとともに、この該当文字を、パターンマッチングによって得られる該当文字と比較し、これら二つの該当文字が互いに異なる場合は、パターンマッチングによる類似度が所定のレベル異常のとき、このパターンマッチングによって得られる該当文字を選択するようにするとよい。
【００１９】
請求項３記載の発明のように、請求項１記載の発明において、１文字分を構成する個々のピーク間隔値を順方向および逆方向に基準値と比較して二つのビット配列を求め、この二つのビット配列が一致しない場合に、それぞれのビット配列に基づき復調して該当する文字候補とするとともに、この文字候補をパターンマッチングによって得られる該当文字と比較し、比較が一致する文字を該当文字と判断するようにするとよい。
【００２０】
請求項４記載の発明のように、再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測してピーク間隔値配列を生成し、このピーク間隔値配列より個々のピーク間隔値を順次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換し、１文字分のデータとするとよい。
【００２１】
請求項５記載の発明のように、再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測し、ピーク間隔値配列をカードリーダに設けたメモリに保存し、このメモリに保存されたデータを、上記カードリーダを制御する上位装置に送信し、この上位装置において、上記ピーク間隔値配列より個々のピーク間隔値を逐次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換するようにするとよい。
【００２２】
【発明の実施の形態】
以下、図１〜図１３を参照しながら本発明にかかるデータの復調方法の実施の形態について説明する。本発明にかかる方法を実行するハードウエアの例を図１に機能ブロック図で示す。図１において、磁気記録媒体である磁気カード２０の磁気ストライプには、Ｆおよび２Ｆという高低２種類の周波数信号の組み合わせによる周波数変調信号で形成された２値データが記録されている。２値データは、所定ビット数とパリティビットとにより１文字分のデータを形成するようになっていて、複数文字分のデータが記録されている。図１の例は磁気カード２０の記録信号を再生する場合の例で、磁気カード２０を記録再生装置に挿入すると、搬送ローラ２６が図示されないモータによって回転駆動され、搬送ローラ２６は磁気カード２０の磁気ストライプを磁気ヘッド２１に摺接させながら搬送し、磁気ヘッド２１は磁気ストライプに記録されているデータ信号を読み出すようになっている。
【００２３】
磁気ヘッド２１の出力信号は増幅器２２で必要な信号強度まで増幅され、アナログ・デジタル変換器２３によってサンプリングされデジタル信号に変換され、バッファメモリ２４に記憶されるようになっている。バッファメモリ２４の記憶データはＣＰＵ２５において読み出され、復調処理が実行される。以下、ＣＰＵ２５における復調処理について説明する。
【００２４】
図２に示すように、初めにステップ２０１（以下ステップについては「Ｓ４０」「Ｓ２０１」のように表す）において波形の平滑化を行い、スパイク状ノイズを除去する。Ｓ２０２において逐次波形のピークを検出し、ピークを検出するごとに一つ前のピークとの時間間隔を計測する。次にＳ２０３でデータビットを検出する。データビット検出は記録データの開始を示すデータを検出することにより行うことができる。以上の処理を、ＬＲＣを復調するまで、すなわち磁気カードの磁気ストライプ全長にわたって実行し、ピーク間隔データの配列を生成する。
【００２５】
図４、図７に読み取り波形の例とそのピーク間隔データ（以下「ピーク間隔値」という）配列の例を示す。磁気カードは、例えばＩＳＯ規格では第１、第３トラックは記録密度２１０ＢＰＩであり、カード搬送速度を１９０ｍｍ／ｓとすれば、１ビットに相当する時間は６３６．６μＳである。アナログ波形をＡ／Ｄ変換するときのサンプリングレートを１０μｓとすれば、１ビットに含まれるデータ点数の理論値は６３．７個になる。図４の波形の例では、ピーク間隔値配列は「６４」「６５」「３３」「３１」「３３」……となっている。
【００２６】
上記ピーク間隔値配列に基づいてセグメンテーションを行う。セグメンテーションとは、再生波形データを文字に対応するように区切ることをいう（図２、Ｓ２０４参照）。このセグメンテーションの手順の具体例を図３、図４、図５を参照しながら説明する。図３、図４に示す波形はＩＳＯ第３トラックの例である。ＩＳＯ第３トラックは４個のデータビットと１個のパリティビットとの合計５ビットで１文字を表す。奇数パリティであるため、ビット０は偶数個しか許されず、従ってセグメントを構成するピーク間隔値の個数は、６、８、１０の３通りに限定される。
【００２７】
ここで、ピーク間隔値の個数が６ということは、「０」が４個、「１」が１個で構成される文字符号に対応する。ピーク間隔値の個数が８ということは、「０」が２個、「１」が３個の場合であり、ピーク間隔値の個数が１０ということは、５ビット全てが「１」の文字符号に対応する。図４において、ピーク間隔値配列の第３番目以降が対象セグメントであるとすれば、この例では、ピーク間隔値の個数が６の場合、６個のピーク間隔値の累計は２２５であり、ピーク間隔値の個数が８の場合、８個のピーク間隔値の累計は３２３であり、ピーク間隔値の個数が１０の場合、１０個のピーク間隔値の累計は３８８である。
【００２８】
上記セグメンテーションの動作例を図５に示す。図５において、まず、ピーク間隔値累計をゼロにする（Ｓ３０１）。次にＳ３０２で基準セグメント長を設定する。これは、前述の例ように５ビットで記録データの１文字分を表すようになっているため、基準ビットセル長の５倍に設定する。基準ビットセル長は、例えば、連続する「０」で構成される同期ビット部分の波形を計測するなどして求める。
【００２９】
次に、Ｓ３０３において符号化するセグメントの最初のピーク間隔値をピーク間隔値累計に加算する。続いてＳ３０４でピーク間隔値累計が基準セグメント長の０．９倍を超えているかどうかを判断する。最初のピーク間隔値を加算した段階では基準セグメント長の０．９倍を超えることはないので、Ｓ３０７で次のピーク間隔データを取り出し、これをＳ３０３に戻ってピーク間隔値累計に加算する。以上の動作を数回繰り返すことによって、Ｓ３０４での判断でピーク間隔値累計が基準セグメント長の０．９倍を超えるので、そのときはＳ３０５でここまで加算してきたピーク間隔値の個数が偶数であるかどうかチェックする。
【００３０】
Ｓ３０６の判断で偶数でなければ、さらにＳ３０７で次のピーク間隔データを取り出し、Ｓ３０４，Ｓ３０５を繰り返す。Ｓ３０５でピーク間隔値の個数が偶数と判断されれば、Ｓ３０６に進み、ピーク間隔値累計が基準セグメント長の１．１倍より小さいかどうかをチェックする。ピーク間隔値累計が基準セグメント長の１．１倍より小さければ、これでセグメンテーションを打ち切る。ピーク間隔値累計が基準セグメント長の１．１倍より大きければ、ピーク間隔値累計が大きすぎると判断できるため、Ｓ３０８で最後の２個分のピーク間隔値データをピーク間隔値累計から差し引くとともにピーク間隔値の個数を表すポインタの値を「２」だけ減じる。２個分のピーク間隔値データを差し引く理由は、ピーク間隔値の個数は偶数個しかとりえないという条件を満足させるためである。
【００３１】
このようにして１文字分のセグメントが得られる。このセグメンテーション動作を図４の例に当てはめてみると、図４の例では基準ビットセル長が「６３」であり、従って基準セグメント長は「３１５」となる。ピーク間隔値を８個まで加算した段階でその累計値は「３２３」となり、基準セグメント長の０．９倍以上、１．１倍以下の条件を満足することになり、このセグメントが採用される。
ピーク間隔値の累計個数を、上記のようにして基準セグメント長の０．９〜１．１倍の範囲に入るように決定する根拠は、この範囲内にあれば、１文字分のセグメントがほとんど誤りなく得られることが実験的にわかったからである。
【００３２】
このようにして切り出されたセグメントに関して、この構成要素である個々のピーク間隔データをチェックし、バイナリ値に変換する。この操作をここではビット変換と呼ぶ。図２に示すＳ２０５がそれで、このビット変換の詳細を図６に示す。図６のビット変換について、異常な波形を含む図７の例を用いながら説明する。図７の例では、ピーク間隔データが「１９」「２１」「３２」「２９」……「３４」「６９」となっていて、異常なデータを含む。まずＳ４０においてピーク間隔値累計を「０」にリセットし、未処理ビット数を７または５にセットする。次にＳ４１で、基準セル幅を、（セグメント長−ピーク間隔値累計）／未処理ビット数、の演算を行うことによって設定し、基準境界値を、ピーク間隔値累計＋基準セル幅、の演算を行うことによって設定する。また、しきい値Ａを、基準境界値−基準セル幅×０．３、の演算を行うことによって設定し、しきい値Ｂを、基準境界値＋基準セル幅×０．３、の演算を行うことによって設定する。
【００３３】
図７の例ではセグメント長は「３２２」であり、当初、ピーク間隔値累計はゼロ、未処理ビット数の初期値は「５」であるから、Ｓ４１で、基準セル幅を３２２／５を演算して「６４」と設定する。また、ピーク間隔値累計はゼロであるから、基準境界値は「６４」となる。この結果、しきい値Ａは、６４−６４×０．３＝４４、しきい値Ｂは、６４＋６４×０．３＝８３となる。
【００３４】
図６のＳ４２において、サブビットカウンタを０にリセットし、次にＳ４３でピーク間隔値をピーク間隔値累計に加算し、ピーク間隔値ポインタを更新する。図７の例でセグメント中の最初のピーク間隔値は「１９」でありこれがピーク間隔値累計に加算される結果、累計は「１９」となる。ピーク間隔値ポインタは「１」に更新される。上記ピーク間隔値累計「１９」はＳ４４でしきい値Ａと比較され、上記しきい値Ａの「４４」よりも小さいので、基準セル幅内にピークがあったことを意味することになり、Ｓ４２’においてサブビットカウンタをインクリメント（ここでは０→１）したあとＳ４３に戻る。Ｓ４３ではピーク間隔値累計に次のピーク間隔値「２１」が加算されて「４０」となる。これは、しきい値Ａ＝４４よりも大きく、しきい値Ｂ＝８３よりも小さいため、Ｓ４２’においてサブビットカウンタをインクリメント（ここでは１→２）したあとＳ４３に戻る。
【００３５】
ピーク間隔値累計は、これに次のピーク間隔値「３２」が加算されて「７２」となる。この値はしきい値Ａよりも大きく、しきい値Ｂよりも小さいので、Ｓ４４、Ｓ４５、Ｓ４６の順に進み、Ｓ４６でサブビットカウンタが０であるかどうかが判断される。上記のようにＳ４２’においてサブビットカウンタはインクリメントされて「２」となっているため、Ｓ５１が選択され、最初のバイナリ値として「２」が得られる。Ｓ５２で未処理ビット数が「１」引かれて「５」から「４」に変化する。この未処理ビット数は「０」ではないので、Ｓ５３での判断を経てＳ５４に進み、バイナリ値は「３」ではないため、Ｓ５４を経てＳ４１に戻る。
【００３６】
Ｓ４１では前述のように基準セル幅、基準境界値、しきい値Ａ、しきい値Ｂを演算する。この場合、基準セル幅は（３２２−７２）／４＝６２、基準境界値は７２＋６２＝１３４、しきい値Ａは１３４−６２×０．３＝１１６、しきい値Ｂは１３４＋６２×０．３＝１５２となる。Ｓ４３ではピーク間隔値累計にピーク間隔値２９が加算されて７２＋２９＝１０１となる。上記の処理と同様にＳ４４，Ｓ４２’の順に実行され、Ｓ４３に戻り、ピーク間隔値累計「１０１」に「３５」が加算され、ピーク間隔値累計は「１３６」となる。以下、Ｓ４４，Ｓ４５，Ｓ４６，Ｓ４７，Ｓ５０の順に実行され、２番目のバイナリ値＝１が得られる。Ｓ５２で未処理ビット数が「４」から「３」に変化し、従ってその結果は「０」ではなく、バイナリ値も「３」ではないので、Ｓ５４を経てＳ４１に戻る。
【００３７】
Ｓ４１では、基準セル幅＝（３２２−１３６）／３＝６２、基準境界値＝１３６＋６２＝１９８、しきい値Ａ＝１９８−６２×０．３＝１８０、しきい値Ｂ＝１９８＋６２×０．３＝２１６が演算され、それぞれの値がセットされる。以下、Ｓ４３，Ｓ４４，Ｓ４２’，Ｓ４３，Ｓ４４，Ｓ４５，Ｓ４６，Ｓ４７，Ｓ５０の順に実行され、３番目のバイナリ値＝１が得られる。以下、未処理ビット数がゼロとなるまで処理が実行され、４番目のバイナリ値＝１、５番目のバイナリ値＝０が得られる。
【００３８】
このようにしてビット変換されることにより、２値で表されるビット列が得られる。上記の例で得られるビット列は「２１１１０」であり、これをもとに文字コードに変換する。この例では第１ビットが「２」になっていて異常を示しており、これ以外の４個のビットは正しいものとみなすことにすると、奇数パリティという制約条件から、この１文字分に含まれるビット「０」の個数は偶数、ビット「１」の個数は奇数でなければならない。上記正常な４個のビットの内訳は、ビット「０」が１個、ビット「１」が３個であるから、残りの１ビットは「０」であることがわかる。従って、本来のビット列は「０１１１０」であり、このセグメントに対応する文字は「ＯＥＨ」であると推定することができる。
【００３９】
図２にＳ２１１で示されるように、ＬＲＣを復調するまで、セグメンテーション、ビット変換、コード変換操作が繰り返され、ＬＲＣ復調が終わると、最後にＳ２１２でＬＲＣチェック、すなわち全体としての復調結果の成否判定が行われる。
【００４０】
以上説明したように、再生した信号を記録データの１文字分の長さに相当するセグメントに切り出し、このセグメントを一つの処理単位として、この構成要素であるピーク間隔値の大小関係を基準値と比較し、「０」と「１」からなるビット列を得てこのセグメントに対応する文字コードを得るようにし、１文字分の文字時間間隔という要素を加味しながら個々のビットの２値データを復調するようにしたため、従来のように個々のビットを単位としてビット列を得る場合に比べて、誤読を大幅に減らすことができ、信頼性の高いデータの復調方法を得ることができるとともに、これに加えて、１文字分を構成する個々のピーク間隔値を基準値と比較することにより、２値データからなるビット配列に変換するため、ピーク間隔値が極端に小さい場合や極端に大きい場合もこれを検出することができ、この異常なピーク間隔値に対応するビット値を導入することにより、現に評価中のセグメントに波形異常が存在することを検出することができる。しかしながら、これでもまだ、以下に説明するように誤読を生じる場合がある。
【００４１】
前記セグメンテーションとビット変換の各処理を、磁気ストライプについて実際に行った状態の一部を図８に示す。図８において、Ｓｇ１，Ｓｇ２，Ｓｇ３……はそれぞれセグメンテーションによって切り出された１文字分のセグメントを示し、それぞれのセグメントでのビット変換によるデコード結果を「１」と「０」のビット列で示している。また、各セグメントにおけるピーク間隔値の配列を図９に示す。例えば、セグメントＳｇ１についてはビット変換によってビット列「１００１１」が読み出されている。正常なピーク間隔値の範囲を、図６について説明したように所定の範囲、例えば基準ビットセル幅の０．７倍以上１．３倍以下に設定し、この範囲を外れるものを異常なピーク間隔値を有する可能性があるものと判定する。
【００４２】
基準セル幅、基準境界値、しきい値Ａ、しきい値Ｂを前述のように設定し、各セグメントにつきビット変換を実行する。セグメントＳｇ１のピーク間隔値は、図９に示すとおり「３３、３２、６４、６５、３４、３０、３２、３２」の８個であり、いずれも上記の範囲内にあるため、異常ピーク間隔値なしと判断され、上記ビット列「１００１１」が採択される。これはＬＲＣではないので、次のセグメンテーションに移行する。次のセグメントＳｇ２ではビット列「００１１１」が読み出され、ピーク間隔値はやはり全て正常条件を満たすため、上記ビット列が採択される。
【００４３】
こうして、全てのセグメントのピーク間隔値配列について判定されるが、図８、図９の例においてセグメントＳｇ４のビット列は「１１１００」であり、ピーク間隔値配列を見ると、「３３、３１、２４、２３、２３、６３、６４、６５」となっていて、この８個のピーク間隔値のうち正常条件を満たさないものものが「２４、２３、２３」の３個含まれている。したがって、このセグメントＳｇ４には、波形異常が存在することになる。このセグメントＳｇ４の２番目のビットは、本来、このビット区間内にピークが存在するはずはなかったものであるが、何らかの原因によって余分な二つのピークが発生してしまったものと推測される。
【００４４】
上記異常波形につき何ら対策をとることなく放置すれば、誤読を生じることになる。そこで本発明では、再生される各文字の理想的な再生波形を基準波形データとして予め用意しておき、ピーク間隔値が上記基準値より小さい場合または大きい場合に、１文字分を構成する個々のピーク間隔値のデータと上記基準波形データとのパターンマッチングを行い、その類似度により該当する文字を判定するようにした。パターンマッチングは、本発明者らが発明し、現在特許出願中の方法を用いることができる。以下、その概略を説明する。
【００４５】
パターンマッチングの機能部分として、テンプレート、マッチング演算手段、データ判別手段などがあり、これらの機能部分は、図１に示すＣＰＵあるいはマイクロコンピュータに持たせることができる。テンプレートは、例えば１６種類の文字コードデータのそれぞれに対応する理想的な基準波形データを予め記憶保持している。マッチング演算手段は、バッファに保持されているセグメントデータと上記テンプレートに記憶保持されている各基準波形データとを比較し、相関係数を用いてパターンマッチングを行う。上記データ判別手段は、上記相関係数を判別し、最大相関係数に対応する文字コードデータを再生データとしてセグメントデータに割り当てる。
【００４６】
上記パターンマッチングをより具体的に説明する。図１０に示すような再生信号波形Ａを、前述のセグメンテーションによって、５ビットごとに、ピークを起点として区分し、１文字分の再生信号波形Ａの一部分をセグメントＳｎとして切り出す。次に、セグメントＳｎを、予めテンプレートに記憶されている１６種類の基準波形データによって表される基本波形パターンＴ０〜Ｔ１５と比較照合する。セグメントＳｎと１６種類の基本波形パターンＴ０〜Ｔ１５のそれぞれとのパターンマッチングによって、相関係数ｒ０〜ｒ１５を演算して行う。相関係数の演算は次の式による。
【００４７】
0003681570.tif 000002
【００４８】
次に、算出された相関係数の中から最大相関係数ｒｍを見つける。切り出したセグメントＳｎの開始ピーク点の極性が、照合対象の基準波形パターンの開始ピークの極性と異なる場合は、最大相関係数ｒｍが負となる場合がある。従って、類似度としては、最大相関係数の絶対値を採用すればよい。次に、最大相関係数ｒｍが得られた基本波形パターンに対応する文字をセグメントＳｎに割り当てる。以上のようにしてパターンマッチングを行い、類似度を相関係数で表すことができる。
【００４９】
図９は、図８に示す再生波形の各セグメントについて、パターンマッチングを行い、各セグメントにつき相関係数を演算してこれを表したものである。その結果、文字０１Ｈに関して最も高い相関係数０．８８８を示している。図２に戻って、Ｓ２０９により前述のビット変換の結果によって得られる文字とパターンマッチングにより得られる文字を比較し、同じかどうかを判断する。パターンマッチングにより得られる文字は０１Ｈで、ビット変換の結果によって得られる文字は０７Ｈとは異なっており、また、相関係数は０．８以上であるから、Ｓ２１０においてパターンマッチングの結果を優先して採択し、このセグメントの文字は０１Ｈと決定する。
【００５０】
以上説明した実施の形態によれば、再生信号の各ピーク間の時間間隔を計測し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換して１文字分のデータの復調をするとともに、ピーク間隔値が上記基準値より小さい場合または大きい場合は、波形異常と判断し、１文字分を構成する個々のピーク間隔値のデータと上記基準波形データとのパターンマッチングを行い、その類似度により該当する文字を判定するようにしたため、ビット変換のみでは正しく判定することができない異常波形を含む場合であっても、正しく文字を判定することができ、データ復調の信頼性をさらに高めることができる。
【００５１】
また、１文字分を構成する個々のピーク間隔値と比較する基準値は、理想的なピーク間隔値をもとにある範囲を有するように定められた値であり、ピーク間隔値が上記基準値より小さい場合あるいは大きい場合に波形異常があることを検出し、この波形異常をパリティビットの条件から修正して該当する文字を判定するとともに、この該当文字を、パターンマッチングによって得られる該当文字と比較し、これら二つの該当文字が互いに異なる場合は、パターンマッチングによる類似度が所定のレベル以上のとき、このパターンマッチングによって得られる該当文字を選択するようにしたため、データ復調の信頼性をより一層高めることができる。
【００５２】
以上説明した実施の形態は、記録媒体を読み取ることによって得られる信号を一方向に変換処理してビット配列を得るようになっていたが、双方向に変換処理してビット配列を得るようにすれば、さらにデータ復調の信頼性を高めることができる。図１１に示す実施の形態はその例で、Ｓ２０４でセグメンテーションを行った後、Ｓ２０５で前述のようにビット変換を行う。このビット変換を順方向ビット変換とする。次に、Ｓ２０６で逆方向ビット変換を行う。逆方向ビット変換の方法は、順方向ビット変換の方法と同じで、１文字分のセグメントを構成するピーク間隔データ配列の最終要素から始めて配列番号が減る方向に処理を進め、第１要素までで終了するように実行し、ビット変換された２値の配列が、順方向の配列に対応するように、前後逆向きに並べ替える。次に、Ｓ２０７でビット列が正常であるか、そして順方向ビット変換の結果と逆方向ビット変換の結果とが一致するかどうかを判断する。
【００５３】
正逆ビット変換結果が一致する場合は、順方向ビット変換の結果または逆方向ビット変換の結果を採用する。正逆ビット変換結果が一致しない場合は、波形に異常があることを検出していることになるので、Ｓ２０９でも次候補Ｃ＝｛ｃ１，ｃ２，…，ｃｎ｝を形成し、続いてＳ２０８でパターンマッチングを行い、相関係数が大きいものから順に４個選び、文字候補Ｄ＝｛ｄ１，ｄ２，…，ｄｎ｝を形成する。次にＳ２１０で文字候補の絞り込みを行う。ここでは、上記ＣとＤの積集合Ｅ＝Ｃ∩Ｄを求め、Ｅをもってこのセグメントのデコード結果とする。
【００５４】
以上の動作を、図１２、図１３に示す例を用いて具体的に説明する。図１２に示す一つのセグメントの波形は、異常な波形を含むものであって、そのピーク間隔値の配列は図１２の下部に記されているとおりである。この波形を順方向にビット変換すると、ビット列「１０１１０」が得られ、逆方向にビット変換すると、ビット列「１１１００」が得られる。この二つのビット配列は一致しないため、波形異常が検出される。この二つのビット配列によって得ることができる文字は図１３に示すように０１Ｈ，０７Ｈ，０ＢＨ，０ＤＨの４個であり、これを文字候補の集合として、Ｃ＝｛０１Ｈ，０７Ｈ，０ＢＨ，０ＤＨ｝を得る（Ｓ２０９）。次にパターンマッチングを行うと、１６個の文字に対して図１３に示すように１６個の相関係数が得られるので、相関係数が大きいものから順に４個選んで、文字候補の集合Ｄ＝｛０７Ｈ，０１Ｈ，１ＦＨ，０４Ｈ｝を形成する。ゆえに、ＣとＤの積集合Ｅ＝Ｃ∩Ｄ＝｛０１Ｈ，０７Ｈ｝となり、このセグメントのデコード結果として、２種類の文字候補「０１Ｈ」および「０７Ｈ」に絞り込むことができる。
【００５５】
以上説明した実施の形態によれば、ビット列を形成する操作を正逆両方向から行って２種類のビット列を得、それらが一致するかどうかによりセグメントの正否を判定するようにしたため、そのセグメントが正常であるかどうかを判定することができるとともに、一方向のビット列からは判定することができなかった異常波形をも、推定によって読み取ることが可能となり、データの復調性能を格段に向上させることができる。さらに、正逆両方向からのビット変換によって波形異常が検出され、文字を判定することができない場合は、それぞれのビット配列に基づき復調して得られる文字候補と、パターンマッチングによって得られる該当文字とを比較し、比較が一致する文字を該当文字であると判断するため、データ復調の信頼性をさらに高めることができる。
【００５６】
次に、図１４に示す別の実施の形態について説明する。図１４において、磁気カード読取装置、すなわちカードリーダ３０は、図１について説明した構成部分、すなわち、磁気ヘッド２１、増幅器２２、アナログ・デジタル変換器２３、バッファメモリ２４、ＣＰＵ２５、搬送ローラ２６を有してなる。カードリーダ３０はまた波形データ転送手段２７を有し、カードリーダ３０側で得たデジタル波形データを上位制御装置４０に転送するようになっている。上位制御装置４０はＣＰＵ３２を有し、ＣＰＵ３２に内蔵され、あるいはＣＰＵ３２に外付けされたＲＡＭ３３は、機能ブロック別に、波形前処理手段３４、ピーク間隔計測手段３５、文字判別手段３６を有してなる。これらの機能ブロックは、ピーク間隔計測、セグメンテーション、ビット変換、パターンマッチングなどのデータ復調手段を構成している。また、これらの機能ブロックは、ダイナミックリンクライブラリまたはデバイスドライバ３８の形態で提供される。
【００５７】
図１４のように構成された実施の形態は、アナログ・デジタル変換によってデジタル波形データを得、デジタル化した再生信号の各ピーク間の時間間隔を計測し、ピーク間隔値配列をバッファメモリ２４に保存するまでの制御を、カードリーダ３０側のＣＰＵ２５が実行し、その後のデジタル波形データを上位制御装置４０に送信するものである。上位制御装置４０は、上記機能別のサブシステムを利用しながら、以後の復調動作、すなわち、ピーク間隔値配列より個々のピーク間隔値を逐次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換する動作、パターンマッチング、さらには、これらに付随する各種制御など、必要な機能を遂行する。
【００５８】
上記のような、ピーク間隔値配列より個々のピーク間隔値を逐次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換する動作や、パターンマッチングを行うためには、相当大きな処理能力を備える必要があり、カードリーダ内だけでこのような処理を行わせるには処理能力が不足しがちである。その点図１４に示す実施の形態によれば、カードリーダの上位の制御装置で復調処理を行うことができるため、カードリーダ事態の処理能力を高める必要はなく、処理系全体としての処理性能の最適化を実現することができる。
【００５９】
本発明にかかるデータの復調方法は、モータ駆動式磁気カードリーダにも適用できるし、手動式磁気カードリーダにも適用することができる。
【００６０】
【発明の効果】
請求項１記載の発明によれば、再生信号の各ピーク間の時間間隔を計測し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換して１文字分のデータの復調をするとともに、ピーク間隔値が上記基準値より小さい場合または大きい場合は、波形異常と判断し、１文字分を構成する個々のピーク間隔値のデータと上記基準波形データとのパターンマッチングを行い、その類似度により該当する文字を判定するようにしたため、ビット変換のみでは正しく判定することができない異常波形を含む場合であっても、正しく文字を判定することができ、データ復調の信頼性をさらに高めることができる。
【００６１】
請求項２記載の発明によれば、上記基準値は、理想的なピーク間隔値をもとにある範囲を有するように定められた値であり、ピーク間隔値が上記基準値より小さい場合あるいは大きい場合に波形異常があることを検出し、この波形異常をパリティビットの条件から修正して該当する文字を判定するようにしたため、波形異常を的確に判定して修正することができるし、これに加えて、上記該当文字を、パターンマッチングによって得られる該当文字と比較し、これら二つの該当文字が互いに異なる場合は、パターンマッチングによる類似度が所定のレベル以上のとき、このパターンマッチングによって得られる該当文字を選択するようにしたため、データ復調の信頼性をさらに高めることができる。
【００６２】
請求項３記載の発明によれば、１文字分を構成する個々のピーク間隔値を順方向および逆方向に基準値と比較して二つのビット配列を求め、この二つのビット配列が一致しない場合は、それぞれのビット配列に基づき復調して該当する文字候補とするとともに、この文字候補をパターンマッチングによって得られる該当文字と比較し、比較が一致する文字を該当文字と判断するようにしたため、データ復調の確実性を一層高めることができ、データ復調の信頼性をさらに高めることができる。
【００６３】
請求項４記載の発明によれば、再生信号波形をアナログ・デジタル変換によってデジタル信号に変換し、デジタル化した再生信号の各ピーク間の時間間隔を計測してピーク間隔値配列を生成し、このピーク間隔値配列より個々のピーク間隔値を順次加算して１文字の終端を決定し、１文字分を構成する個々のピーク間隔値を基準値と比較することにより２値データからなるビット配列に変換し、１文字分のデータとするようにしたため、ピーク間隔値配列からのデータ復調の確実性を高めることができる。
【００６４】
請求項５記載の発明によれば、カードリーダの上位の制御装置で復調処理を行うことができるため、カードリーダ事態の処理能力を高める必要はなく、処理系全体としての処理性能の最適化を実現することができる。
【図面の簡単な説明】
【図１】本発明にかかるデータの復調方法の実施の形態を示す機能ブロック図である。
【図２】同上実施の形態によるデータ復調動作を示すフローチャートである。
【図３】Ｆ２Ｆ変調方式を説明するための波形図である。
【図４】データ復調における再生波形の例とそのピーク間隔データ配列の例を示す波形図である。
【図５】本発明における１文字分のセグメンテーションの例を示すフローチャートである。
【図６】本発明におけるビット変換の例を示すフローチャートである。
【図７】余分なピークを含むためにデータ復調における誤読を生じる場合の例を説明するための波形図である。
【図８】上記本発明の実施の形態におけるビット変換動作とパターンマッチングを行う場合の再生波形の例と復調結果とを示すタイミングチャートである。
【図９】同上ビット変換動作とパターンマッチングによる復調動作の相互の関係を示す相関図である。
【図１０】本発明に適用可能なパターンマッチングの例を示す波形図である。
【図１１】本発明にかかるデータの復調方法の別の実施の形態を示すフローチャートである。
【図１２】同上実施の形態によって正常に処理することができ、従来のデータの復調方法では誤読を生じてしまう波形の例を示す波形図である。
【図１３】同上実施の形態によるビット変換動作とパターンマッチングによる復調動作の相互の関係を示す相関図である。
【図１４】本発明にかかるデータの復調方法の別の実施の形態を示す機能ブロック図である。
【図１５】従来のデータの復調方法の例を示す機能ブロック図である。
【図１６】同上従来のデータの復調方法の動作を説明するためのタイミングチャートである。
【符号の説明】
２０  磁気カード
２１  磁気ヘッド
２２  増幅器
２３  ＡＤ変換器
２４  メモリ
２５  ＣＰＵ
３０  カードリーダ
４０  上位制御装置
【図１】
0003681570.tif 000003
【図２】
0003681570.tif 000004
【図３】
0003681570.tif 000005
【図４】
0003681570.tif 000006
【図５】
0003681570.tif 000007
【図６】
0003681570.tif 000008
【図７】
0003681570.tif 000009
【図８】
0003681570.tif 000010
【図９】
0003681570.tif 000011
【図１０】
0003681570.tif 000012
【図１１】
0003681570.tif 000013
【図１２】
0003681570.tif 000014
【図１３】
0003681570.tif 000015
【図１４】
0003681570.tif 000016
【図１５】
0003681570.tif 000017
【図１６】
0003681570.tif 000018