以下、図面を参照しながら、本発明の実施の形態に係る通信システムについて説明する。各図面においては、同一又は同等の部分に同一の符号を付す。
(通信システムの構成)
図面を参照して、本発明の実施の形態に係る通信装置(送信機、受信機)、通信システム、通信方法及びプログラムについて説明する。ここでは、商品を購入するユーザ(顧客)が、電子マネーによる決済を行うことができる電子マネー決済システムを例に通信システム1を説明する。なお、本実施の形態に係る通信システムは、商品の購入の際におけるプリペイド型の電子マネーを用いた決済処理に限られず、あらゆるデータの送受信に用いることができる。例えば、本実施の形態に係る通信システムをユーザに対するクーポン、チラシの配布等に用いることもできる。
まず、図1を参照しながら、本発明の実施の形態に係る通信システム1の構成を説明する。通信システム1は、ユーザが所持するスマートフォン等のユーザ端末10と、店舗に設置された決済端末20と、を備える。ユーザ端末10と、決済端末20とは、音声を伝送媒体として、すなわち、送信する情報に基づいて音声搬送波を変調した信号を送受信する。このようにして、ユーザ端末10と決済端末20とは相互に通信する。音声を伝送媒体とした通信の詳細は後述する。
まず、商品の購入の際の決済の流れの概要を説明する。ここでは、プリペイド型の電子マネーを想定しており、ユーザは、例えば、電子マネー事業者が運営するオンライン上のシステムを経由して、クレジットカード等を使用して所望の金額をチャージ(入金)しておく。ユーザはチャージされている残高を上限として、電子マネーの加入店において商品等の購入の決済に、電子マネーを使用することができる。電子マネーによる決済の際には、ユーザ端末10がユーザを識別する情報を決済端末20に送信する。
商品購入の際に、ユーザが所持するユーザ端末10は、ユーザの操作に応答して、音声を使用した通信により、ユーザID(Identifier)を決済端末20に送信する。決済端末20は、ユーザ端末10から受信したユーザIDと、商品購入時の手続きで入力された決済金額とを使用して決済処理を行う。決済処理とは、例えば、決済端末20が、ネットワークを介して接続された決済サーバにユーザID及び決済金額を送信し、決済サーバから認証結果及び決済結果を受信することである。
決済処理の実行後、決済端末20は、音声を使用した通信により、認証結果及び決済結果をユーザ端末10に送信する。認証結果及び決済結果を受信したユーザ端末10は、画面の表示、音声の出力などにより決済が完了したこと、エラーが発生したことなどをユーザに報知する。
以上の決済の流れにおいて、ユーザ端末10及び決済端末20のいずれも、音声を伝送媒体とした通信における送信機及び受信機の双方として機能するものといえる。
(ユーザ端末のハードウェア構成)
次に、図2を参照しながら、ユーザ端末10の構成を説明する。以下、ユーザ端末10としてはスマートフォンを想定する。つまり、ユーザ端末10はコンピュータである、といえる。図2は、ユーザ端末10のハードウェア構成を示すブロック図である。ユーザ端末10は、スマートフォンが従来備える携帯電話としての機能、インターネットアクセスに関する機能等を備えるものとし、これらの機能については説明を省略する。
ユーザ端末10は、制御部100と、操作部110と、表示部120と、集音部130と、発音部140と、記憶部150と、を備える。各部はバスラインなどで相互に接続されている。
制御部100は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などを備え、ユーザ端末10の各部の制御を行う。また、制御部100は、記憶部150に記憶されている決済処理プログラム151を実行することにより、音声信号の通信を使用した決済に係る処理を実行する。決済に係る処理とは、音声を使用した通信によりユーザIDを決済端末20に送信すること、音声を使用した通信により決済端末20が送信した決済結果などを受信して決済結果をユーザに報知することなどである。
操作部110は、ユーザの操作を受け付け、受け付けた操作に対応する操作信号を制御部100に供給する。操作部110は、例えば、音量ボタン、タッチパネルを含む。
表示部120は、制御部100から供給される各種画像データや各種画面データ等に基づいて各種画像や各種画面等を表示する。表示部120は、例えば、表示パネルと表示パネル駆動回路等によって構成される。表示パネル駆動回路は、制御部100から供給される画像データにしたがって表示パネルを駆動し、表示パネルに画像を表示させる。表示パネルは、例えば、液晶パネル、有機EL(Electroluminescence)パネルによって実現される。
なお、操作部110と表示部120とは、タッチパネルによって構成されてもよい。タッチパネルは、所定の操作を受け付ける操作画面を表示すると共に、操作画面においてユーザが接触操作を行った位置に対応する操作信号を制御部100に供給する。
集音部130は、マイク131を含み、空気の振動(音)を電気信号に変え、これをA/D(アナログ/デジタル)変換して得られるデジタル音声信号を制御部100に供給する。
発音部140は、制御部100が供給するデジタル音声信号をD/A(デジタル/アナログ)変換して、スピーカ141に供給する。これにより、デジタル音声信号は、空気振動(音)に変換され、出力される。
記憶部150は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等を備え、各種の情報、固定データ、アプリケーション、画面データ、端末ID、及び、制御部100に実行させるためのプログラム等を記憶する。固定データは、例えば、ユーザ端末10を所持するユーザのユーザIDを含む。また、記憶部150は、制御部100が処理を実行するためのワークメモリとして機能する。
また、記憶部150は、制御部100に決済に係る処理を実行させるための決済処理プログラム151を記憶する。決済処理プログラム151は、送信プログラム152と受信プログラム153とを含む。制御部100が送信プログラム152を実行することによりユーザ端末10が送信機として機能し、制御部100が受信プログラム153を実行することによりユーザ端末10が受信機として機能する。送信機及び受信機としての機能については後述する。
(決済端末のハードウェア構成)
再び図1を参照しながら、決済端末20の構成を説明する。決済端末20は、マイクロコントローラ、パーソナルコンピュータなどのコンピュータを用いて構成される。決済端末20は、店舗内のレジの横に設置されている、レジに内蔵されている、などの形態により用いられる。決済端末20は、ユーザ端末10と音声信号による通信を行う。例えば、決済端末20は、ユーザが電子マネーでの支払いを希望した場合に、ユーザ端末10からユーザIDを示す音声信号を受信する。決済端末20は、ユーザ端末10から受信したユーザIDと、店員の操作により入力された決済金額と、を決済サーバに送信することで、決済サーバに認証と決済の処理の実行を依頼する。決済端末20は、決済サーバからの認証と決済の処理の結果を受信すると、受信した結果をユーザが認識可能な態様で通知する。
次に、図3を参照しながら、決済端末20のハードウェア構成を説明する。決済端末20は、制御部200と、操作部210と、表示部220と、集音部230と、発音部240と、記憶部250と、通信部260と、を備える。各部はバスライン等で相互に接続されている。
制御部200は、例えば、CPU等を備え、決済端末20の各部の制御を行う。また、制御部200は、記憶部250に記憶されている決済処理プログラム251を実行することにより、音声信号の通信を使用した決済に係る処理を実行する。音声信号の通信を使用した決済に係る処理とは、音声を使用した通信によりユーザ端末10が送信したユーザIDなどを受信すること、決済サーバから受信した決済結果などを、音声を使用した通信によりユーザ端末10に送信することなどである。
操作部210は、例えば、店員の操作を受け付け、受け付けた操作に対応する操作信号を制御部200に供給する。操作部210は、例えば、音量ボタン、タッチパネルを含む。タッチパネルは、例えば、図1に示すように、決済端末20の前面に設けられていてもよい。また、操作部210は、例えば、USB(Universal Serial Bus)ケーブルにより決済端末20本体に接続された外付けのテンキー(図示せず)、バーコードリーダ(図示せず)などを含んでいてもよい。
表示部220は、制御部200から供給される各種画像データや各種画面データ等に基づいて各種画像や各種画面等を表示する。表示部220は、例えば、表示パネルと表示パネル駆動回路等によって構成される。表示パネル駆動回路は、制御部200から供給される画像データにしたがって表示パネルを制御し、表示パネルに画像を表示させる。表示パネルは、例えば、液晶パネル、有機ELパネルによって実現される。表示パネルは、例えば、図1に示すように、決済端末20の前面に設けられたタッチパネルによって実現されてもよい。
集音部230は、マイク231を含み、空気の振動(音)を電気信号に変え、これをA/D変換して変換して得られるデジタル音声信号を制御部200に供給する。マイク231は、例えば、図1に示すように、決済端末20の前面に設けられていてもよい。
発音部240は、制御部200が供給するデジタル音声信号をD/A変換して、スピーカ241に供給する。これにより、デジタル音声信号は、空気振動(音)に変換され、出力される。スピーカ241は、例えば、決済端末20の正面に設けられる。
記憶部250は、制御部200が動作するためのワークメモリとして機能する。記憶部250は、例えば、ハードディスク、フラッシュメモリ、RAM、ROM等の記憶装置を含む。記憶部250は、各種の情報、固定データ、アプリケーション、画面データ、及び、制御部200によって実行される動作プログラム等を記憶する。また、記憶部250は、決済端末20とユーザ端末10との間で送受信されるデータ、決済端末20と決済サーバとの間で送受信されるデータを一時的に記憶する。
また、記憶部250は、制御部200が実行する決済に係る処理を実行するための決済処理プログラム251を記憶する。決済処理プログラム251は、送信プログラム252と受信プログラム253とを含む。制御部200が送信プログラム252を実行することにより決済端末20が送信機として機能し、制御部200が受信プログラム253を実行することにより決済端末20が受信機として機能する。送信機及び受信機としての機能については後述する。
通信部260は、インターネット等の通信ネットワークに接続することが可能なインターフェースである。通信部260は、例えば、ネットワークを介して決済サーバと通信する。
(送信機及び受信機の構成)
上述したように、ユーザ端末10は、制御部100が送信プログラム152を実行することにより送信機として機能し、制御部100が受信プログラム153を実行することにより受信機として機能する。同様に、決済端末20は、制御部200が送信プログラム252を実行することにより送信機として機能し、制御部200が受信プログラム253を実行することにより受信機として機能する。
具体的には、ユーザ端末10が決済端末20にデータを送信するときには、ユーザ端末10の制御部100が送信プログラム152を実行することにより送信機として機能し、決済端末20の制御部200が受信プログラム253を実行することにより受信機として機能する。決済端末20がユーザ端末10にデータを送信するときには、ユーザ端末10の制御部100が受信プログラム153を実行することにより受信機として機能し、決済端末20の制御部200が送信プログラム252を実行することにより送信機として機能する。
以下、図4及び図5を参照しながら、ユーザ端末10が送信機500として、決済端末20が受信機600として機能する場合を例に、本発明の実施の形態に係る送信機及び受信機について説明をする。なお、決済端末20が送信機500として、ユーザ端末10が受信機600として機能する場合においてもほぼ同様の説明が可能であるため、この場合における説明を省略する。
なお、通信方式について、詳細は後述するが、本実施の形態においてはOFDM(Orthogonal Frequency Division Multiplexing: 直交周波数分割多重)を採用する。
(送信機の構成)
図4に示すように、送信機500は、制御部100によって実現する機能部として、送信情報作成部501と、一次変調部502と、二次変調部503と、ガードインターバル挿入部504と、を備える。また、図4に示す送信機500では、図2に示す発音部140が、制御部100の制御により出力部505として機能する。
送信機500は、送信情報作成部501により送信情報を作成し、一次変調部502により送信情報を周波数領域のデータへと一次変調し、二次変調部503により周波数領域のデータを時間領域のデータへと二次変調し、ガードインターバル挿入部504により最終的に送信するべきデジタル信号を作成し、出力部505によりデジタル信号をアナログ信号に変換し、さらにそれを音に変換して出力することにより、情報を受信機600に送信する。
送信情報作成部501は、送信対象のデータに基づいて、音声通信により受信機600に送信する送信情報をビット列として作成し、一次変調部502に出力する。送信対象のデータとは、例えばユーザIDである。また、送信情報作成部501は、併せて、現在出力しているビット列が、後述のヘッダ部に係るビット列であるか否かを表す情報も一次変調部502に出力する。
なお、上述の送信情報作成部501の機能は、例えば、制御部100が送信プログラム152を実行し、制御部100が、記憶部150内に記憶された、送信対象のデータに対して上述の処理を実行し、作成した送信情報のビット列及びヘッダ部に係るビット列であるか否かを表す情報を記憶部150に一時的に記憶することにより実現される。
一次変調部502は、送信情報作成部501から取得したビット列を周波数領域のデータへとマッピングし、マッピング後のデータを二次変調部503に出力する。以下、周波数領域のデータへとマッピングすることを一次変調という。一次変調の詳細については後述する。一次変調部502は、一次変調を行う際、送信情報作成部501から取得した、ヘッダ部に係るビット列であるか否かを表す情報を利用して一次変調を行う。送信情報作成部501から取得したビット列がヘッダ部に係るビット列である場合、有効シンボル長を変動させて一次変調を行う。有効シンボル長については後述する。また、一次変調部502は、併せて、一次変調の際に使用した有効シンボル長を表す情報を二次変調部503に出力する。これは、二次変調部503による二次変調の際に、一次変調の際に使用した有効シンボル長が必要となるからである。
なお、上述の一次変調部502の機能は、例えば、制御部100が送信プログラム152を実行し、制御部100が、記憶部150内に予め記憶された、変動させるべき有効シンボル長に関するデータを参照しつつ、記憶部150内に一時的に記憶された送信情報のビット列に対して上述の処理を実行し、一次変調後のデータ及び一次変調で使用された有効シンボル長のデータを記憶部150に一時的に記憶させることにより実現される。
二次変調部503は、一次変調部502から取得した一次変調後のデータである周波数領域のデータを、IDFT(Inverse Discrete Fourier Transform: 逆離散フーリエ変換)により時間領域のデータへと変換し、変換したデータである有効シンボルを表す情報をガードインターバル挿入部504に出力する。以下、IDFTにより時間領域のデータへと変換することを二次変調という。二次変調及び有効シンボルの詳細については後述する。二次変調部503は、一次変調部502から、一次変調で使用された有効シンボル長を表す情報を取得し、これを使用して二次変調を行う。
なお、上述の二次変調部503の機能は、例えば、制御部100が送信プログラム152を実行し、制御部100が、記憶部150内に一時的に記憶された、一次変調で使用された有効シンボル長を表す情報を参照し、記憶部150内に一時的に記憶された一次変調後のデータに対して上述の処理を実行し、有効シンボルを表す情報を記憶部150に一時的に記憶させることにより実現される。
ガードインターバル挿入部504は、二次変調部503から有効シンボルを表す情報を取得し、有効シンボルの先頭にガードインターバル(GI)を挿入したものをシンボルとする。そして、シンボルをデジタル信号として出力部505に出力する。ガードインターバル及びシンボルについては後述する。
なお、上述のガードインターバル挿入部504の機能は、例えば、制御部100が送信プログラム152を実行し、制御部100が、記憶部150内に一時的に記憶された有効シンボルを表す情報に対して上述の処理を実行し、シンボルをデジタル信号として発音部140に出力することにより実現される。
出力部505は、ガードインターバル挿入部504が出力したデジタル信号をD/A変換によりアナログ信号に変換し、変換したアナログ信号をさらに音声に変換して出力する。
なお、出力部505の機能は、例えば、制御部100による送信プログラム152の実行に応じて、発音部140が制御部100からシンボルを表す情報としてのデジタル信号を取得してD/A変換し、変換したアナログ信号をマイク131に出力し、マイク131がアナログ信号を音声に変換して出力することにより実現される。
(受信機の構成)
図5に示すように、受信機600は、制御部200が実現する機能部として、同期部602と、ガードインターバル除去部603と、一次復調部604と、二次復調部605と、情報抽出部606と、を備える。また、図5に示す受信機600では、図3に示す集音部230が、制御部200の制御により入力部601として機能する。
受信機600は、入力部601により音をアナログ信号に変換し、さらにそれをデジタル信号に変換し、同期部602によりデジタル信号のうちヘッダ部に相当する箇所を特定し、ガードインターバル除去部603によりデジタル信号からガードインターバルを除去して有効な時間領域のデータとし、一次復調部604により時間領域のデータを周波数領域のデータへと復調し、二次復調部605により周波数領域のデータをビット列に復調し、情報抽出部606によりビット列から元の情報を抽出することにより、情報を送信機500から受信する。
入力部601は、音声の入力を受け付け、入力された音声をアナログ信号に変換し、アナログ信号をさらにA/D変換によりデジタル信号に変換して同期部602及びガードインターバル除去部603に出力する。
なお、入力部601の機能は、例えば、制御部200による受信プログラム253の実行に応じて、マイク231が音声をアナログ信号に変換し、集音部230がアナログ信号をA/D変換してデジタル信号に変換して制御部200に出力することにより実現される。
同期部602は、入力部601から取得したデジタル信号から、ヘッダ部に相当する箇所を特定することにより、パケット単位で同期をとる。そして、同期部602は、同期結果として、ヘッダ部に相当する箇所を特定する情報をガードインターバル除去部603に出力する。
なお、上述の同期部602の機能は、例えば、制御部200が受信プログラム253を実行し、制御部200が、集音部230から取得したデジタル信号に対して上述の処理を実行し、ヘッダ部に相当する箇所を特定する情報を記憶部250に一時的に記憶させることにより実現される。
ガードインターバル除去部603は、入力部601からデジタル信号を取得し、同期部602から取得した、ヘッダ部に相当する箇所を特定する情報に基づいて、デジタル信号からガードインターバルを除去し、ガードインターバルを除去して得られた有効シンボルを表す情報を一次復調部604に出力する。
なお、上述のガードインターバル除去部603の機能は、例えば、制御部200が受信プログラム253を実行し、制御部200が、集音部230から取得したデジタル信号に対して、記憶部250内に一時的に記憶された、ヘッダ部に相当する箇所を特定する情報を使用して上述の処理を実行し、有効シンボルを表す情報を記憶部250に一時的に記憶させることにより実現される。
一次復調部604は、ガードインターバル除去部603から有効シンボルを表す情報を取得し、時間領域のデータである有効シンボルをDFT(Discrete Fourier Transform: 離散フーリエ変換)により周波数領域のデータへと変換し、変換後のデータを二次復調部605に出力する。以下、DFTにより周波数領域のデータへと変換することを一次復調という。一次復調の詳細については後述する。
なお、上述の一次復調部604の機能は、例えば、制御部200が受信プログラム253を実行し、制御部200が、記憶部250内に一時的に記憶された有効シンボルを表す情報に対して上述の処理を実行し、一次復調後のデータを記憶部250に一時的に記憶させることにより実現される。
二次復調部605は、一次復調部604から周波数領域のデータである一次復調後のデータを取得してデマッピングすることによりビット列に変換し、情報抽出部606に出力する。以下、デマッピングすることによりビット列に変換することを二次復調という。二次復調の詳細については後述する。
なお、上述の二次復調部605の機能は、例えば、制御部200が受信プログラム253を実行し、制御部200が、記憶部250内に一時的に記憶された一次復調後のデータに対して上述の処理を実行し、二次復調後のデータであるビット列を記憶部250に一時的に記憶させることにより実現される。
情報抽出部606は、二次復調部605からビット列を取得し、取得したビット列から、送信機500が送信対象としたデータを抽出する。送信機500が送信対象としたデータとは、例えば、ユーザIDである。
なお、上述の情報抽出部606の機能は、例えば、制御部200が受信プログラム253を実行し、制御部200が、記憶部250内に一時的に記憶された二次復調後のデータであるビット列に対して上述の処理を実行し、送信機500が送信対象としたデータを記憶部250に記憶させることにより実現される。
(動作)
以上、送信機500及び受信機600の構成について説明した。次に、送信機500として機能するユーザ端末10の動作及び受信機600として機能する決済端末20の動作について説明する。
(ユーザ端末の動作)
図13を参照しながら、送信機500として機能するユーザ端末10の動作を説明する。まず、ユーザが、ユーザ端末10内にインストールされている、決済を行うために必要なアプリ(決済処理プログラム151)を起動させる(ステップS1−1)。すると、制御部100が決済処理プログラム151を実行し、表示部120に図14に示すような画面を表示させることにより、ユーザに音声出力ボタンをタップすることを促す。制御部100は、ユーザによる音声出力ボタンのタップ操作を検出するまで待ち受け続ける(ステップS1−2)。
ユーザの操作を検出したら、制御部100は、送信プログラム152を実行する(ステップS1−3)。送信プログラム152の実行により、ユーザ端末10は送信機500として機能する。ステップS1−4以降の動作については、送信機500の動作として記載する。
送信機500は、送信情報作成部501により、送信対象のデータ、例えばユーザIDに基づいて送信情報となるビット列を作成する(ステップS1−4)。以下、図15を参照しながら、送信情報の作成について説明をする。
送信情報作成部501は、まず、送信対象のデータを表すビット列に基づいて送信パケットを作成する(ステップS14−1)。送信パケットは、例えば図6に示すように、通常、ヘッダ部とデータ部とからなる。ただし、ヘッダ部のみをもって送信パケットとする場合もある。
ヘッダ部は、例えば、図6(a)に示すように、32ビットのビット列と16ビットのCRC(Cyclic Redundancy Check: 巡回冗長検査)から構成される48ビットのビット列である。modeは、送信パケットが、制御用のパケットであるか否かを示す情報が格納される領域である。versionは、バージョン情報を示す情報が格納される領域である。serviceは、サービス用に予約された領域である。reservedは、将来の仕様変更等、特別の用途のために予約された領域である。lengthは、データ部のバイト長を示す情報が格納される領域である。CRCは、ヘッダ部のうちのmodeからlengthまでのデータの誤りを検出するために付加されている。受信機600は、CRCによりヘッダ部の誤り検出を行う。
データ部は、例えば、図6(b)に示すように、0〜255バイトの可変長のバイト列と32ビットのCRCから構成されるビット列である。dataは、格納対象となるデータ(ペイロード)が格納される領域である。例えば、ユーザIDを送信する際には、data部分にユーザIDを示すビット列が格納される。なお、dataのデータ長はヘッダ部に格納されたlengthの8倍である。CRCは、data部分の誤り検出のために付加されている。受信機600は、CRCによりdata部分の誤り検出を行う。
送信パケットが、受信したパケットに対するACK(Acknowledge)である場合など、データ部を必要としない場合もある。このような場合、送信対象のデータとしての実データは存在しないので、送信情報作成部501はヘッダ部のみを作成して送信パケットとする。この場合、lengthはゼロとなる。
以上のように、ステップS14−1の処理において、送信情報作成部501は、data部分に送信対象のデータを表すビット列、例えばユーザIDを表すビット列を埋め込んだ送信パケットを作成する。
再び図15を参照する。次に、送信情報作成部501は、送信パケットのヘッダ部及びデータ部のそれぞれのビット列に対して、誤り訂正符号付加、インターリーブ等の処理を行い、送信パケットを表すビット列を加工する(ステップS14−2)。これらの処理により、例えば、音声の干渉等を要因とする符号誤りがある程度生じた場合に誤り訂正をすることが可能となる。
そして、送信情報作成部501は、上述の加工をしたビット列を送信情報として一次変調部502に出力する(ステップS14−3)。また、送信情報作成部501は、現在出力しているビット列が、ヘッダ部に係るビット列であるか否かを表す情報も一次変調部502に出力し(ステップS14−4)、送信情報作成処理を終了する。
再び図13を参照する。送信機500は、送信情報となるビット列の作成を終えたら送信情報を一次変調部502により一次変調する(ステップS1−5)。まず、以下の説明にて、一次変調の概要を説明する。
一次変調とは、ここではビット列を周波数領域のデータへと変換することをいう。本実施の形態においては、通信方式としてOFDMを採用しているため、複数のサブキャリア(搬送波)について、周波数領域における各シンボルにビットを割り当てることが一次変調となる。
本実施の形態では、DBPSK(Differential Binary Phase Shift Keying: 差動二相位相偏移変調)を使用して、各サブキャリアにビットを割り当てる(マッピングする)。DBPSKは、180°の位相差を用いた位相偏位変調(Phase Shift Keying: PSK)であって、それぞれの位相に別の値を割り当てる。また、DBPSKでは、1つ前のシンボルとの位相差を用いてビットを割り当てるため、位相差の基準となるべきプリアンブルや、パイロット信号が不要である。DBPSKでは、1サブキャリアにつき、周波数領域の1シンボルあたり2値(1ビット)の情報を表すことができる。変調後のデータは、周波数領域の1シンボルごとに各サブキャリアの位相偏位を表したデータとなる。
例えば、使用されるサブキャリアの数を最大で16とすると、周波数領域の1シンボルあたり最大で合計16ビットのデータを表すことができる。ただし、使用されない(データが割り当てられない)サブキャリアがあってもよい。例えば、周波数領域の1シンボルで表されるデータが14ビット、12ビットなど、16ビット未満のビット数であってもよい。また、後述するように、一次変調部502が変調したデータは、二次変調部503がIDFTによって処理することにより、時間領域のデータとなる。このとき、IDFTの性質上、1有効シンボルあたりの有効シンボル長がIDFTの対象となるサブキャリアの最大数(周波数帯の数)と等しくなる。なお、有効シンボルとは、後述のガードインターバル挿入を行う前の、時間領域におけるシンボルであり、有効シンボル長とは、1有効シンボルあたりのサンプル数である。よって、例えば、使用されるサブキャリアの最大数が16であるとき、1有効シンボルあたりの有効シンボル長は16サンプルとなる。
また、一次変調部502は、送信情報作成部501から、現在処理しているビット列が送信パケットのヘッダ部に相当する箇所であるか否かを表す情報も取得する。一次変調部502は、ヘッダ部に相当する箇所を一次変調している場合には、一次変調に使用する最大のサブキャリアの数を変動させる。つまりは、1有効シンボルあたりの有効シンボル長を変動させる。
ヘッダ部に相当する箇所を一次変調する場合の有効シンボル長の例を図7に示す。図7(a)は、ヘッダ部に相当する箇所を一次変調し、3つの有効シンボルを作成する場合の一例である。図7(a)は、ヘッダ部に相当する箇所を一次変調する場合の3つの有効シンボルの有効シンボル長が、順に16サンプル、17サンプル、18サンプルであることを表す。このような構成とするために、一次変調部502は、送信情報作成部501から取得したヘッダ部に相当する箇所のビット列について、初めに最大で16個のサブキャリアを使用して一次変調し、次に最大で17個のサブキャリアを使用して一次変調し、最後に最大で18個のサブキャリアを使用して一次変調する。ここで、ビット列の区切り方については、サブキャリアの最大数を超えない範囲で適宜定めることができる。例えば、ヘッダ部に相当する箇所のビット列の長さが42ビットである場合、14ビット、14ビット、14ビット、と区切ってもよいし、12ビット、12ビット、18ビット、と区切ってもよいし、16ビット、17ビット、9ビット、と区切ってもよい。以下、理解を容易にするため、特段の断りがない限り、送信情報のうちヘッダ部に相当する箇所のビット列の長さが42ビットであり、ビット列を14ビット、14ビット、14ビット、と区切るものとして説明する。すなわち、14個のサブキャリアを使用して一次変調を行うものとする。
図7(b)に、有効シンボル長の別の一例を示す。図7(b)は、ヘッダ部に相当する箇所を一次変調し、6つのシンボルを作成する場合の一例である。図7(b)は、ヘッダ部に相当する箇所を一次変調する場合の6つの有効シンボルの有効シンボル長が、順に17サンプル、19サンプル、16サンプル、18サンプル、17サンプル、16サンプルであることを表す。図7(b)に示すように、有効シンボル長は、全てが異なる値である必要はない。また、小さい順、大きい順等の順序関係を有する必要もない。ただし、複数の有効シンボル長のうち少なくとも1つは他と異なる値である必要がある。
以上より、図7(a)または図7(a)示すような有効シンボル長の例は、ヘッダ部に相当する箇所から有効シンボルを作成するパターンであるといえる。ヘッダ部に相当する箇所から有効シンボルを作成するパターンは、一次変調部502が有する。また、後述の、受信機600の同期部602及びガードインターバル除去部603も、受信した信号を処理するために、ヘッダ部に相当する箇所から有効シンボルを作成するパターンを使用するので、同期部602及びガードインターバル除去部603も、ヘッダ部に相当する箇所から有効シンボルを作成するパターンを有する。送信機500及び受信機600は、ヘッダ部に相当する箇所から有効シンボルを作成するパターンを共通で使用して音声通信を行うように予め定められている。
以下の説明においては、ヘッダ部に相当する箇所の一次変調の際に使用する有効シンボル長として図7(a)に示すものを使用するものとする。また、データ部に相当する箇所の一次変調については、理解を容易にするため、特段の断りがない限り、14ビットずつビット列を区切り、有効シンボル長を16サンプルの固定長として一次変調するものとして説明する。
以上の一次変調の概要を踏まえ、一次変調部502による一次変調の動作について、図16を参照しながら説明する。まず、一次変調部502は、送信情報作成部501から処理対象のデータ(ビット列)及び処理対象のデータがヘッダ部に係るデータ(ビット列)であるか否かを表す情報を取得し、処理対象のデータがヘッダ部に係るデータであるか否かを判断する(ステップS15−1)。処理対象のデータがヘッダ部に係るデータではない場合(ステップS15−1:No)、その処理対象のデータはデータ部に係るデータ(ビット列)であるといえるため、ステップS15−8以降の、データ部に係るデータである場合における一次変調の処理を実行する。
処理対象のデータがヘッダ部に係るデータである場合(ステップS15−1:Yes)、図7(a)に示す有効シンボル長に対応して、作成される有効シンボルの有効シンボル長がそれぞれ16サンプル、17サンプル、18サンプルとなるように一次変調を行う。まず、最初の(有効シンボル長が16サンプルの有効シンボルに対応する)14ビットを取り出して、DBPSKにより最大16個中14個のサブキャリアにビットを割り当てることで周波数領域のデータを作成し(ステップS15−2)、当該作成したデータ及び図7(a)に示す1番目の有効シンボル長が16(サブキャリアの最大数と等しい)であることを表す有効シンボル長情報を二次変調部503に出力する(ステップS15−3)。当該作成したデータが一次変調後のデータとなる。なお、有効シンボル長情報を二次変調部503に出力する(ここでは「16」であることを表す情報)のは、二次変調部503がIDFTを行う際に、有効シンボル長を特定する必要があるからである。
続いて、次の(有効シンボル長が17サンプルの有効シンボルに対応する)14ビットについても同様に、DBPSKにより最大17個中14個のサブキャリアにビットを割り当てることで周波数領域のデータを作成し(ステップS15−4)、当該作成したデータ及び図7(a)に示す2番目の有効シンボル長が17であることを表す有効シンボル長情報を二次変調部503に出力する(ステップS15−5)。残りの14ビットについても同様に、DBPSKにより最大18個中14個のサブキャリアにビットを割り当てることで周波数領域のデータを作成し(ステップS15−6)、当該作成したデータ及び図7(a)に示す3番目の有効シンボル長が18であることを表す有効シンボル長情報を二次変調部503に出力する(ステップS15−7)。
最後の14ビットについて出力をしたら、ヘッダ部に係るデータの一次変調が完了したことになるので、ステップS15−8以降の、データ部に係るデータである場合における一次変調の処理を実行する。
データ部に係るデータの一次変調において、まずはデータ部に係るデータが残っているか否かを判断する(ステップS15−8)。データが残っているか否かの判断は、例えば、送信情報作成部501が作成した処理対象のデータ(ビット列)のうち、一次変調を行っていない部分があるか否かによって判断する。データ部に係るデータが残っていない場合(ステップS15−8:No)、送信パケットに係るデータについてはすべて一次変調が完了したことになるので、一次変調の処理を終了する。
データ部に係るデータが残っている場合(ステップS15−8:Yes)、14ビットごとにデータを区切って一次変調を行う。つまり、14ビットごとにデータを取り出して、DBPSKにより最大16個中14個のサブキャリアにビットを割り当てることで周波数領域のデータを作成し(ステップS15−9)、当該作成したデータ及び有効シンボル長が16であることを表す有効シンボル長情報を二次変調部503に出力する(ステップS15−10)。そして、ステップS15−8に戻りデータ部に係るデータが残っているか否かを判断する。
再び図13を参照する。送信機500は、二次変調部503により、一次変調部502から一次変調後のデータ及び有効シンボル長情報を取得し、有効シンボル長情報を使用して一次変調後のデータに対して二次変調を行う(ステップS1−6)。
二次変調部503は、周波数領域のデータである一次変調後のデータに対して、有効シンボル長情報を使用したIDFTを行って時間領域のデータである有効シンボルへと変換し、ガードインターバル挿入部504に出力する。有効シンボルは、例えば図8に示すような、時間領域における信号波形として表現される。図8においては、有効シンボル長が16であるが、他の有効シンボル長の場合も同様のものとなる。
送信機500は、ガードインターバル挿入部504により、二次変調部503が出力した有効シンボルにガードインターバルを挿入してシンボルを作成する(ステップS1−7)。
具体的には、図9に示すように、ガードインターバル挿入部504は、有効シンボルのうち末尾側の一部と同一の波形を複製することによりガードインターバルを作成する。次に、ガードインターバル挿入部504は、ガードインターバルを有効シンボルの先頭側に挿入し、ガードインターバルと有効シンボルとを併せたものをシンボルとして出力する。すなわち、有効シンボルのうち末尾側の一部と同一の波形を有効シンボル長の分だけずらして複製する。そして、ガードインターバル挿入部504は、シンボルをデジタル信号として出力部505に出力する。図9は、有効シンボル長が16サンプル、ガードインターバル長(GI長)が12サンプルであるときの一例を示している。このとき、シンボル長は12+16=28サンプルとなる。
上述のGI長は、固定長でもよいし、シンボルごとに変動するように定められてもよい。例えば、GI長が12で固定の場合において、ヘッダ部に相当する箇所の有効シンボル長が図7(a)に示すものとなっている場合、対応するシンボル長はそれぞれ12+16=28、12+17=29、12+18=30となる。また、例えば、GI長が順に14、13、12と変動するように定められている場合において、ヘッダ部に相当する箇所の有効シンボル長が図7(a)に示すものとなっている場合、対応するシンボル長はそれぞれ14+16=30、13+17=30、12+18=30となる。また、いずれの場合も、ガードインターバルの先頭と、ガードインターバルの複製元となった部分の先頭との間隔は、対応する有効シンボル長と等しくなる。以下、理解を容易にするため、特段の断りがない限り、GI長は12で固定であるものとして説明する。
再び図13を参照する。送信機500は、出力部505にて、デジタル信号としてのシンボルをD/A変換によりアナログ信号に変換し(ステップS1−8)、変換したアナログ信号をさらに音声に変換して出力し(ステップS1−9)、送信機500としての動作を終了する。このような送信機500の動作により、必要な音声が出力される。
ユーザ端末10は、送信機500としての動作の完了後、例えば制御部100に受信プログラム153を実行させることにより受信機600として機能する。そして、受信機600としてのユーザ端末10は、例えば、後述の図17のステップS2−3以降の処理を実行することにより、送信機500としての決済端末20からの応答を受信する。
(決済端末の動作)
次に、図17を参照しながら、受信機600として機能する決済端末20の動作を説明する。まず、店員が、操作部210を通じて決済端末20を操作し(ステップS2−1)、決済端末20にユーザ端末10からの送信を待ち受けさせる。店員がこの操作を行ったとき、制御部200は、決済処理プログラム251及び受信プログラム253を実行する(ステップS2−2)。したがって、決済端末20は受信機600として機能している。以下、決済端末20の動作のうち、図5に示す機能部に関する動作については、受信機600の動作として記載する。
受信機600は、入力部601に音声が入力されるまで待ち受け続ける(ステップS2−3)。入力部601に音声が入力されると、入力部601は、入力された音声をデジタル信号に変換して、同期部602及びガードインターバル除去部603に出力する。
同期部602は、デジタル信号からヘッダ部に相当する箇所を特定し、パケットの同期をとる(ステップS2−4)。受信機600は、パケットの同期をとることができた場合(ステップS2−5:Yes)、ステップS2−7のガードインターバル除去の処理に移り、パケットの同期をとることができずエラーとなった場合(ステップS2−5:No)、エラーが発生した旨を画面表示、音声出力などによりユーザに報知し(ステップS2−6)、ステップS2−3に戻り音声入力の待ち受けからの流れを繰り返す。
理解を容易にするため、まず、f(n)のうちヘッダ部に相当する箇所に着目して、同期部602の動作を説明する。そのため、図7及び図10を参照しながら、同期部602及びガードインターバル除去部603に入力されたデジタル信号のうち、ヘッダ部に相当する箇所の構造について説明する。ヘッダ部に相当する箇所以外、つまりデータ部に相当する箇所については後述する。同期部602及びガードインターバル除去部603に入力されたデジタル信号をf(n)とする。nは整数であり、1サンプルが1つの整数に対応する。f(n)は、例えば配列により表現される。図10には、f(n)のうち、ヘッダ部に相当する箇所が表示されている。なお、波形の表示は省略している。有効シンボル長としては前述の図7(a)に示すものが使用されており、ガードインターバル長も前述のとおり12サンプルである。S1、S2、S3がそれぞれ有効シンボル長16サンプル、17サンプル、18サンプルの有効シンボルであり、G1、G2、G3がそれらに対応するガードインターバル、つまりS1、S2、S3の末尾側12サンプルを複製したものである。なお、説明のため、図10に示す各シンボルの表示上の長さは実際のシンボル長とは比例していない。
次に、図7、図10、図11及び図18を参照しながら、同期部602の動作について説明する。同期部602は、送信機500の一次変調部502と同様に、図7(a)に示す、ヘッダ部に相当する箇所から有効シンボルを作成するパターンを有する。同期部602は、まず、図7(a)に示す各有効シンボル長に対応するように、f(n)を各有効シンボル長、つまり16サンプル、17サンプル、18サンプルだけマイナス方向にずらしたものを、それぞれg1(n)、g2(n)、g3(n)として作成する(ステップS24−1)。これらを総称してgk(n)と表記する(k=1、2、3)。
次に、同期部602は、f(n)と各gk(n)との正規化された相関rk(n)を算出する(ステップS24−2)。以下、相関及び正規化された相関について説明する。
f(n)と各gk(n)とを比較すると、f(n)のG1とg1(n)のS1とが一致し、f(n)のG2とg2(n)のS2とが一致し、f(n)のG3とg3(n)のS3とが一致する。そこで、f(n)と各gk(n)との相関をとると、図10に示すように、f(n)のG1、G2、G3に対応する箇所においてそれぞれ強い相関が現れる。なお、相関は、後述の計算式により計算するため、各ガードインターバルの先頭部分において最も相関が強く現れる。
各nについて、f(n)と各g
k(n)との相関を算出するには、以下の計算式、
を用いればよい。Nは、例えばガードインターバル長であり、図10に示す例では12である。f(n)の各ガードインターバル部分と各g
k(n)の有効シンボル部分との相関が求まれば十分であるため、i=n〜n+N-1の12個としている。なお、Nは、十分な相関が求められるものであればガードインターバル長より小さい値でもよい。
相関を求めるのみであれば上記の計算式で十分であるが、後述するように、相関を閾値と比較する場合は、相関を正規化する必要がある。g
1(n)、g
2(n)、g
3(n)に対応する、正規化された相関をそれぞれ、r
1(n)、r
2(n)、r
3(n)とし、これらを総称してr
k(n)と表記する。r
k(n)は、以下の計算式、
により算出できる。ここで、
である。
次に、正規化された相関rk(n)を用いてヘッダ部に相当する箇所を特定する、つまりパケットの同期をとる動作について説明する。
同期部602は、r2(n)を、G1のGI長とS1の有効シンボル長の合計分だけマイナス方向にずらす(ステップS24−3)。図11に示す例では、G1のGI長12+S1の有効シンボル長16=28サンプル分だけマイナス方向にずらす。このとき、r2(n)のピークも28サンプル分だけずれることになり、ピークの位置がr1(n)のピークの位置と一致する。そして、r2(n)をずらしたものとr1(n)を加算し、T(n)とする(ステップS24−4)。
次に、同期部602は、r3(n)を、G1のGI長と、S1の有効シンボル長と、G2のGI長と、S2の有効シンボル長と、の合計分だけマイナス方向にずらす(ステップS24−5)。図11に示す例では、G1のGI長12+S1の有効シンボル長16+G2のGI長12+S2の有効シンボル長17=57サンプル分だけマイナス方向にずらす。このとき、r3(n)のピークも57サンプル分だけずれることになり、ピークの位置がr1(n)のピークの位置と一致する。そして、r3(n)をずらして得られたものをT(n)にさらに加算する(ステップS24−6)。
そして同期部602は、T(n)全体を走査し(ステップS24−7)、T(n)が所定の閾値以上となるnの有無を判断する(ステップS24−8)。この説明においては、ヘッダ部に相当する箇所に着目しているため、図11に示すように、T(n)はG1の先頭、つまりデジタル信号のうちヘッダ部に相当する箇所の先頭に強いピークを有する。したがって、T(n)が閾値以上となるnが存在するので(ステップS24−8:Yes)、T(n)が閾値以上となる部分をヘッダ部に相当する箇所の先頭として特定できる(ステップS24−9)。
なお、閾値は、k個のrk(n)の各ピーク値の合計よりは低く、rk(n)それぞれのピーク値よりは高くなるような値を選択するのが好ましい。このような閾値を選択することにより、ヘッダ部に相当する箇所の先頭以外に出現したピークが現れた位置を誤ってヘッダ部に相当する箇所の先頭であると特定することを防ぐことができる。
そして同期部602は同期成功結果として、ヘッダ部に相当する箇所を特定する情報をガードインターバル除去部603に出力し(ステップS24−10)、パケット同期を終了する。このようにして、同期部602は、パケット単位で同期をとることができる。
次に、さらなる理解のため、図12を参照しながら、仮に、ヘッダ部ではなくデータ部に相当する箇所に対して上述の処理をf(n)に行った場合に、データ部に相当する箇所の相関などがどのようになるかについて説明する。すなわち、データ部に相当する箇所に対して上述の処理を行った場合に、データ部に相当する箇所を誤ってヘッダ部に相当する箇所と特定することがないことについて説明する。
上述したように、データ部に相当する箇所の有効シンボル長は16サンプルである。このとき、f(n)とg1(n)とを比較すると、f(n)のガードインターバル部分であるG1'、G2'、G3’と、g1(n)の有効シンボルS1'、S2'、S3'の末尾側の部分とが一致するため、r1(n)は、G1'、G2'、G3'の先頭に対応する位置にピークを有する。
一方、f(n)とg2(n)とを比較すると、ステップS24−1にてg2(n)を得るためにf(n)をずらす長さは17サンプルであるため、図12に示す部分においては一致する部分が存在しない。したがってステップS24−2で得られる相関も小さくなり、r2(n)にはピークが現れない。f(n)とg3(n)とを比較した場合も、ずらす長さが18サンプルであるため、同様となる。そして、ステップS24−3〜S24−6で算出されるT(n)には大きなピークが現れず、閾値未満のピークしか現れない。よって、ステップS24−7〜S24−8でのT(n)の走査により、データ部に相当する箇所を誤ってヘッダ部に相当する箇所と特定することなく、ヘッダ部に相当する箇所のみを特定することができる。
上述の動作において、f(n)が、本実施の形態に係る音声通信とは無関係の音声に係るデジタル信号であった場合、あるいは本実施の形態に係る音声通信に係るデジタル信号ではあるものの、騒音等の悪環境により信号が極めて劣化してしまった場合について説明する。この場合、ステップS24−2で算出される相関rk(n)は、ピークが現れない、もしくは現れにくいものとなる。したがって、T(n)にも閾値以上のピークが現れない。T(n)全体を走査しても閾値以上となるT(n)が見つけられないので(ステップS24−8:No)、パケットの同期がとれず、同期部602はこの場合、同期エラー結果を出力し(ステップS24−11)、パケット同期処理を終了する。
再び図17を参照する。受信機600は、同期部602による同期結果を使用して、ガードインターバル除去部603によりデジタル信号からガードインターバルを除去し、有効シンボルを作成する(ステップS2−7)。
図19を参照しながら、ガードインターバル除去部603によるガードインターバル除去について説明する。ガードインターバル除去部603は、入力部601からデジタル信号を取得し、同期部602から同期結果、つまりヘッダ部に相当する箇所を特定する情報を取得する。そしてガードインターバル除去部603は、デジタル信号からヘッダ部に相当する箇所の先頭位置を特定する。図19(a)は、取得したデジタル信号及び特定したヘッダ部に相当する箇所の先頭位置を模式的に表した図である。
ガードインターバル除去部603は、同期部602及び送信機500の一次変調部502と同様に、図7(a)に示す、ヘッダ部に相当する箇所から有効シンボルを作成するパターンを有する。ガードインターバル除去部603は、ヘッダ部に相当する箇所から有効シンボルを作成するパターン基づいて、デジタル信号をヘッダ部に相当する箇所の先頭からシンボル長ごとに順に区切り各シンボルを特定する。つまり、12+16=28サンプル、12+17=29サンプル、12+18=30サンプル、と区切る。3つ目のシンボルの末尾がヘッダ部に相当する箇所の末尾であり、かつ、これがデータ部に相当する箇所の先頭でもある。データ部に相当する箇所のシンボル長は28なので、この位置からシンボル長ごと、つまり28サンプルごとにデータ部を区切ることにより、データ部に相当する箇所の各シンボルを特定することができる。これを模式的に表したのが図19(b)である。
そしてガードインターバル除去部603は、各シンボルの先頭から12サンプルをガードインターバルとして特定し、残りの部分を有効シンボルとして特定する。これを模式的に表したのが図19(c)である。そしてガードインターバル除去部603は、各有効シンボルを一次復調部604に出力することによりデジタル信号からガードインターバルを除去できたことになる。
再び図17を参照する。受信機600は、一次復調部604により、時間領域のデータである各有効シンボルを周波数領域のデータへと一次復調する(ステップS2−8)。一次復調とは、時間領域のデータである各有効シンボルに対してDFTを行うことである。このDFTにより、有効シンボルが周波数領域のデータへと変換される。一次復調部604は、周波数領域のデータを二次復調部605に出力する。
受信機600は、二次復調部605により、周波数領域のデータを二次復調してビット列を取得する(ステップS2−9)。二次復調により、送信機500の送信情報作成部501が作成した送信情報が復元される。本実施の形態においては、一次変調にDBPSKを使用しているため、各サブキャリアについて、1つ前のシンボルとの位相差に基づいて1ビットの情報を復元することが二次復調となる。
受信機600は、情報抽出部606により、二次復調により取得したビット列から情報を抽出する(ステップS2−10)。具体的には、情報抽出部606は、まず、二次復調により取得したビット列に対して、デインターリーブ、誤り訂正符号を使用した誤り訂正等の処理を行い、図6に示すような、ヘッダ部とデータ部とから構成されるパケットを抽出する。次に、ヘッダ部とデータ部それぞれに対してCRCを用いた誤り検出を行う。具体的には、ヘッダ部及びデータ部それぞれについて、CRC以外の部分のデータに対してCRCを算出し、算出したCRCとパケットに含まれるCRCとが一致するかを判断する(ステップS2−11)。CRCが一致すれば誤りがないと判断し、CRCが一致しなければ誤りが生じていると判断する。情報抽出部606は、CRCが一致する場合には(ステップS2−11:Yes)、パケットからデータ、例えばユーザIDを表す情報を抽出する。CRCが一致しない場合には(ステップS2−11:No)、パケットの受信に失敗していることになるため、エラーが発生した旨を画面表示、音声出力などによりユーザに報知し(ステップS2−6)、ステップS2−3に戻り音声入力の待ち受けからの流れを繰り返す。
決済端末20は、受信機600としての動作を終了し、抽出したデータ、例えばユーザIDを使用し、決済サーバと通信して決済処理を実行する(ステップS2−12)。そして、決済端末20は、決済サーバから受信した認証結果及び決済結果をユーザ端末10に送信する(ステップS2−13)。認証結果及び決済結果を送信するとき、決済端末20の制御部200が送信プログラム252を実行することにより、決済端末20が送信機500として機能する。そして、送信機500として機能する決済端末20が、図13のステップS1−4以降と同様の処理を実行することとなる。ステップS2−13の処理を実行した後、決済端末20は動作を終了する。
(効果)
以上、本発明の実施の形態に係る通信システム1について説明した。通信システム1の特徴は、送信機500が、送信パケットのヘッダ部に相当する箇所のデジタル信号を作成する際に各有効シンボルの有効シンボル長を変動させ、受信機600が、入力された音声に係るデジタル信号から、変動させた有効シンボル長を利用してパケットの同期をとることである。以下、この特徴により従来の方法と比べて有利な効果を奏することについて説明する。
従来の方法として、パケットの開始を示すデータであるプリアンブルをパケットの直前に挿入し、それを利用して同期をとる方法がある。この方法では、送信したいデータに加えてプリアンブルを挿入する必要があり、プリアンブルの分だけ時間あたりのデータ通信速度、つまり実効速度が低下する。音声通信は低速な通信方法であるため、さらに実効速度が低減するのは好ましくない。
一方、通信システム1による音声通信におけるパケット同期方法では、プリアンブルを挿入することなくパケット同期をとることができるため、実効速度を低下させることがなく、音声通信に適した方法といえる。
また、別の従来の方法として、全ての有効シンボル長を同一とし、シンボルごとに同期をとってパケットの先頭を検出する方法がある。この方法では、シンボル同期をとる度に、同期したシンボルの位置がパケットの先頭か否かをCRCの算出により判断する必要があり、計算量が多くなる。これは、さほど計算処理能力の高くないマイクロコントローラが用いられることの多い決済端末20において特に問題となりうる。
一方、通信システム1による音声通信におけるパケット同期方法では、パケット同期をとったときのみCRCの算出を行う。パケットに相当する箇所は、ヘッダ部のみでも数シンボルで構成され、データ部とあわせると数十シンボル以上で構成されることが多いため、CRCの算出頻度が大幅に削減される。また、CRCは、データに誤りが生じたにも関わらず偶然CRCが一致する確率を低くするためにある程度のビット長を有する。ここで、CRCが偶然一致してしまう時間あたりの確率を従来と同等に保つ場合、通信システム1によればCRCの算出頻度が大幅に削減されているため、CRCのビット長を減らすことができる。したがって、音声通信の実効速度の向上を図ることができる。
(変形例)
上述の実施の形態において、通信システム1は、ユーザ端末10と決済端末20とが音声通信により送受信を行う形態であったが、本発明に係る通信システムはこの形態に限られない。例えば、スマートフォン等のユーザ端末同士が音声通信を行う形態であってもよい。また、一方の端末が送信のみを行い、他方の端末が受信のみを行う形態であってもよい。
上述の実施の形態において、送信機500及び受信機600の機能は、ユーザ端末10の制御部100及び決済端末20の制御部200がプログラムを実行することにより実現されたが、本発明に係る送信機及び受信機を実現する形態はこれらに限られない。例えば、送信機500及び受信機600の各機能部の一部または全部をASIC(Application Specific Integrated Circuit: 特定用途向け集積回路)、FPGA(Field-Programmable Gate Array)などによる専用回路を用いて実現する形態としてもよい。
なお、送信機500及び受信機600の一方または双方として機能するユーザ端末10、決済端末20及びその他の形態による装置は、いずれも本発明に係る通信装置である、といえる。
上述の実施の形態においては、送信機500の出力部505が、デジタル信号としてのシンボルをD/A変換し、さらに音声信号に変換して出力するものとしているが、出力部505が、さらに、周波数変換処理、ノイズの発生を抑制するフィルタ処理などの処理を出力の前段階で実行する形態としてもよい。この場合、受信機600の入力部601も、出力部505が行う処理に対応して、周波数変換処理、フィルタ処理などの処理を実行する形態とすればよい。
上述の実施の形態において、送信機500の一次変調部502は、各サブキャリアを変調する方法としてDBPSKを使用しているが、DBPSK以外の変調方式により各サブキャリアを変調する形態としてもよい。例えば、QPSK(Quadrature Phase Shift Keying: 四相位相偏移変調)、QAM(Quadrature Amplitude Modulation: 直角位相振幅変調)などにより各サブキャリアを変調してもよい。このとき、二次復調部605もこれらの変調方式に対応して周波数領域のデータからビット列を取り出すものとする。ただし、これらの変調方式を用いる場合には、位相差の基準となるべきプリアンブルまたはパイロット信号が必要となる。また、これらの変調方式による周波数領域のデータは一般に虚数成分を含むため、これらの周波数領域のデータに対して二次変調部503がIDFTを行って得られる時間領域のデータも虚数成分を含む複素信号データとなる。したがって、二次変調部503によるIDFTの後、複素信号データを実数信号データに変換する必要が生じる。また、受信機600の一次復調部604による一次変調において、実数信号データを複素信号データに変換してからDFTを行う必要が生じる。
送信機500と受信機600とで共通で使用される有効シンボル長は、例えば図20(a)に示すように、16、17、18、16、17、18、と同じパターンが複数回繰り返されるような形態であってもよい。この場合、図20(b)に示すように、T(n)に複数のピークが現れるので、ヘッダ部に相当する箇所の先頭位置を誤検出しうる。しかし、この形態においても、プリアンブルを使用しないため音声通信の実効速度の低減を回避でき、CRCの計算頻度も各シンボルで同期をとる場合と比べて大幅に削減されているため、上述の実施の形態と同様の有利な効果を奏する。
また、図7(a)、図7(b)、図20(a)などに示すような有効シンボル長のパターンを複数用意し、それらを切り替えて使用する形態としてもよい。例えば、送信機500及び受信機600に内蔵されたリアルタイムクロックから取得した現在時刻に基づいて、複数の有効シンボル長のパターンのうちの1つを選択して使用することを送信機500及び受信機600に予め定めておく。つまり、パケットのヘッダ部に相当する箇所の各有効シンボル長が現在時刻に応じて変動する。そして、送信機500及び受信機600は、現在時刻に基づいて選択したパターンを使用して音声通信を行う。このような形態により、ユーザ端末10から出力された音声を第三者が録音し、当該第三者が録音した音声を決済端末20に入力してユーザ端末10の所持者になりすますリプレイ攻撃を防ぐことができる。なぜなら、現在時刻に応じてヘッダ部に相当する箇所の各有効シンボル長が変動するため、録音した音声を受信機600が受信してもヘッダ部の位置を正しく特定できず、データを復元できないからである。
上述の実施の形態において、データ部に相当する箇所を一次変調するときの有効シンボル長を16サンプルの固定長としたが、ヘッダ部と同様に有効シンボル長を変動させてもよい。ただし、ヘッダ部に相当する箇所を一次変調する場合とは異なるパターンを使用し、かつT(n)のピークが誤った位置にできるだけ現れないようにパターンを設定する必要がある。
また、送信パケットに常に一定長以上のデータ部が含まれる場合、ヘッダ部に相当する箇所を一次変調するときの有効シンボル長を固定長とし、データ部に相当する箇所を一次変調するときの有効シンボル長を変動させてもよい。例えば、ヘッダ部に相当する箇所を一次変調すると3つの有効シンボルが作成され、データ部に相当する箇所を一次変調すると必ず5つ以上の有効シンボルが作成される場合を考える。そして、ヘッダ部に対応する有効シンボル長を16サンプルの固定長とし、データ部に対応する有効シンボルについては、初めの5つについては有効シンボル長を順に16サンプル、17サンプル、18サンプル、19サンプル、20サンプルとし、残りについては有効シンボル長を16サンプルの固定長とすることを考える。このとき、T(n)を算出しピークが生じる箇所を特定することにより、データ部に相当する箇所の先頭を特定することができる。そして、ヘッダ部に相当する箇所の先頭からデータ部に相当する箇所の先頭までの長さは既知であるため、ヘッダ部に相当する箇所の先頭を特定することができる。
また、ヘッダ部の一部分とデータ部の一部分を組み合わせることによっても同様のことが可能である。例えば、ヘッダ部に相当する箇所を一次変調すると3つの有効シンボルが作成され、データ部に相当する箇所を一次変調すると必ず4つ以上の有効シンボルが作成される場合において、ヘッダ部の有効シンボル長を順に12サンプル、12サンプル、16サンプルとし、データ部の有効シンボルについては、初めの4つについては有効シンボル長を順に17サンプル、18サンプル、19サンプル、20サンプルとし、残りについては有効シンボル長を12サンプルの固定長とすることを考える。このとき、T(n)を算出しピークが生じる箇所を特定することにより、ヘッダ部に相当する箇所のうち、3番目の有効シンボルの先頭を特定することができる。そして、ヘッダ部に相当する箇所の先頭(1番目の有効シンボルの先頭)から3番目の有効シンボルの先頭までの長さは既知であるため、ヘッダ部に相当する箇所の先頭を特定することができる。
上述の実施の形態においては、有効シンボルの末尾側を複製して先頭部分に挿入することによりシンボルを作成することを示している。このほか、有効シンボルの先頭側を複製して末尾部分に挿入することによりシンボルを作成してもよいし、有効シンボルの中間部分を複製して先頭部分あるいは末尾部分に挿入することによりシンボルを作成してもよい。また、複製した部分を有効シンボルの中間に挿入することによりシンボルを作成してもよい。また、これらの挿入方法を組み合わせることによりシンボルを作成してもよい。いずれの挿入方法においても、挿入箇所から複製元までの間隔についてパターンを設定することで、上述の実施の形態と同様に、相関に基づいてヘッダ部に相当する箇所の先頭を特定することができる。
上述の実施の形態においては、f(n)と各gk(n)との相関を正規化し、T(n)が閾値以上となる部分をヘッダ部に相当する箇所の先頭として特定したが、相関を正規化せずにヘッダ部に相当する箇所の先頭を特定することも可能である。例えば、f(n)と各gk(n)との相関を正規化せずにずらして加算することによってT(n)を算出し、T(n)のピークを予め定めた閾値と比較することなく特定することでヘッダ部に相当する箇所の先頭を特定することができる。T(n)のピークを特定するには、例えば、T(n)の平均値よりはるかに大きい極大値を探せばよい。
また、上述の機能を、OS(Operating System)と送信プログラムまたは受信プログラムとの分担、またはOSと送信プログラムまたは受信プログラムとの協働により実現する場合等には、OS以外の部分のみを送信プログラムまたは受信プログラムとして記憶部に格納してもよい。
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS: Bulletin Board System)に当該プログラムを掲示し、インターネット等のネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、OSの制御下で、他のプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。