(57)【要約】【課題】パルス列を含む信号を用いた効率的な符号化および復号が可能な通信方式およびネットワークシステムを提供する。【解決手段】通信方法は、第１のノードにおいて、符号化すべき入力値を示す、予め定められたメッセージ時間長のメッセージを生成するステップと、第１のノードにおいて、生成したメッセージに対応するパルス列を含む信号を送信するステップとを含む。パルス列を含む信号は、メッセージの開始および終了をそれぞれ規定する２つのパルスと、入力値から第１の関数に従って算出される第１の時間間隔および入力値から第２の関数に従って算出される第２の時間間隔をメッセージ内においてそれぞれ規定するさらに２つのパルスとを含む。【選択図】図１１
2020014093.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード間でパルス列を含む信号によりデータを伝送する通信方法であって、
第１のノードにおいて、符号化すべき入力値を示す、予め定められたメッセージ時間長のメッセージを生成するステップと、
前記第１のノードにおいて、生成したメッセージに対応するパルス列を含む信号を送信するステップとを備え、
前記パルス列を含む信号は、前記メッセージの開始および終了をそれぞれ規定する２つのパルスと、前記入力値から第１の関数に従って算出される第１の時間間隔および前記入力値から第２の関数に従って算出される第２の時間間隔を前記メッセージ内においてそれぞれ規定するさらに２つのパルスとを含む、通信方法。
【請求項２】
第２のノードにおいて、受信されるパルス列を含む信号から、パルス間により規定される時間間隔が、前記第１の時間間隔、前記第２の時間間隔、および前記メッセージ時間長と一致する４つのパルスの組を抽出することで、メッセージを復元するステップをさらに備える、請求項１に記載の通信方法。
【請求項３】
前記第１の関数および前記第２の関数は、入力値について単調増加関数または単調減少関数である、請求項１または２に記載の通信方法。
【請求項４】
前記第１の時間間隔および前記第２の時間間隔は、いずれも前記入力値を示す同一の値として設定される、請求項１〜３のいずれか１項に記載の通信方法。
【請求項５】
前記第１のノードにおいて、同一の入力値を示すメッセージを複数回送信するステップをさらに備え、
前記メッセージを複数回送信するステップは、先行のメッセージの送信から次のメッセージの送信までの時間間隔をランダムに決定するステップを含む、請求項１〜４のいずれか１項に記載の通信方法。
【請求項６】
複数のノード間でパルス列を含む信号によりデータを伝送するネットワークシステムであって、
符号化すべき入力値を示す、予め定められたメッセージ時間長のメッセージを生成する第１のノードと、
前記第１のノードから送信されたメッセージを復号する第２のノードとを備え、
前記第１のノードは、生成したメッセージに対応するパルス列を含む信号を送信し、
前記パルス列を含む信号は、前記メッセージの開始および終了をそれぞれ規定する２つのパルスと、前記入力値から第１の関数に従って算出される第１の時間間隔および前記入力値から第２の関数に従って算出される第２の時間間隔を前記メッセージ内においてそれぞれ規定するさらに２つのパルスとを含む、ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数のノード間でパルス列を含む信号によりデータを伝送する通信方式およびネットワークシステムに関する。
【背景技術】
【０００２】
パルスを含む信号を使用して情報を送信するためのさまざまな符号化方式が知られている。例えば、オンオフキーイング（ＯＯＫ：on-off keying）は、バイナリーで「０」および「１」を符号化する方式であり、例えば、バイナリー「１」をパルス有りとして符号化し、バイナリー「１」をサイレンス（パルス無し）として符号化する。
【０００３】
また、パルス位置変調（ＰＰＭ：pulse-position modulation）は、信号中のパルス位置によって値を符号化する方式である。より具体的には、パルスの基準位置あるいは基準位相からのシフト量が各符号の値を示す。
【０００４】
さらに、差動パルス位置変調（ＤＰＰＭ：differential pulse-position modulation）は、２つの連続するパルス間の時間差によって値を符号化する方式である。差動パルス位置変調は、ＣｔＳ（Communication through Silence）とも称され、パルスの存在しない期間の長さが符号の値を示すことになる（例えば、非特許文献１など参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Yujie Zhu and Raghupathy Sivakumar, "Challenges: communication through silence in wireless sensor networks", MobiCom '05 Proceedings of the 11th annual international conference on Mobile computing and networking, Pages 140-147
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１には、ＤＰＰＭで符号化された複数のメッセージをオーバーラップされた間隔または同一の間隔で多重化できる可能性を開示するものの、どのように実装するのかについては開示されていない。さらに、このように多重化されたメッセージを復号するための仕組みについても言及されていない。
【０００７】
本技術は、パルス列を含む信号を用いた効率的な符号化および復号が可能な通信方式およびネットワークシステムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明のある局面に従えば、複数のノード間でパルス列を含む信号によりデータを伝送する通信方法が提供される。通信方法は、第１のノードにおいて、符号化すべき入力値を示す、予め定められたメッセージ時間長のメッセージを生成するステップと、第１のノードにおいて、生成したメッセージに対応するパルス列を含む信号を送信するステップとを含む。パルス列を含む信号は、メッセージの開始および終了をそれぞれ規定する２つのパルスと、入力値から第１の関数に従って算出される第１の時間間隔および入力値から第２の関数に従って算出される第２の時間間隔をメッセージ内においてそれぞれ規定するさらに２つのパルスとを含む。
【０００９】
通信方法は、第２のノードにおいて、受信されるパルス列を含む信号から、パルス間により規定される時間間隔が、第１の時間間隔、第２の時間間隔、およびメッセージ時間長と一致する４つのパルスの組を抽出することで、メッセージを復元するステップをさらに含むようにしてもよい。
【００１０】
第１の関数および第２の関数は、入力値について単調増加関数または単調減少関数であってもよい。
【００１１】
第１の時間間隔および第２の時間間隔は、いずれも入力値を示す同一の値として設定されてもよい。
【００１２】
通信方法は、第１のノードにおいて、同一の入力値を示すメッセージを複数回送信するステップをさらに含んでいてもよい。メッセージを複数回送信するステップは、先行のメッセージの送信から次のメッセージの送信までの時間間隔をランダムに決定するステップを含むようにしてもよい。
【００１３】
本発明の別の局面に従えば、複数のノード間でパルス列を含む信号によりデータを伝送するネットワークシステムが提供される。ネットワークシステムは、符号化すべき入力値を示す、予め定められたメッセージ時間長のメッセージを生成する第１のノードと、第１のノードから送信されたメッセージを復号する第２のノードとを含む。第１のノードは、生成したメッセージに対応するパルス列を含む信号を送信する。パルス列を含む信号は、メッセージの開始および終了をそれぞれ規定する２つのパルスと、入力値から第１の関数に従って算出される第１の時間間隔および入力値から第２の関数に従って算出される第２の時間間隔をメッセージ内においてそれぞれ規定するさらに２つのパルスとを含む。
【発明の効果】
【００１４】
本発明によれば、パルス列を含む信号を用いた効率的な符号化および復号が可能な通信方式およびネットワークシステムを実現できる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に従う通信方法を採用するネットワークシステムの一例を示す模式図である。
【図２】本実施の形態に従う通信方法において用いられるメッセージのコード形式の概要を説明するための図である。
【図３】本実施の形態に従う通信方法において用いられる時間間隔を決定するための関数の一例を説明するための図である。
【図４】図２に示されるメッセージのコード形式を簡略化した構成例を説明するための図である。
【図５】本実施の形態に従う通信方法で利用されるメッセージのコード形式に従って複数のノードがそれぞれメッセージを送信した場合の処理例を説明するための図である。
【図６】本実施の形態に従う通信方法で利用されるメッセージのコード形式に従って複数のノードがそれぞれメッセージを送信した場合の処理例を説明するための図である。
【図７】本実施の形態に従う通信方法においてメッセージの復号に利用されるスパイクオートマトンを説明するための図である。
【図８】本実施の形態に従うネットワークシステムに含まれるノードの構成例を示す模式図である。
【図９】本実施の形態に従う通信方法における符号化処理の手順を示すフローチャートである。
【図１０】図８に示す復号部のより詳細な構成例を示す模式図である。
【図１１】本実施の形態に従う通信方法における復号処理の手順を示すフローチャートである。
【図１２】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝０）。
【図１３】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ１）。
【図１４】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ２）。
【図１５】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ３）。
【図１６】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ４）。
【図１７】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ４）。
【図１８】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ５）。
【図１９】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ５）。
【図２０】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ６）。
【図２１】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ６）。
【図２２】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ７）。
【図２３】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ７）。
【図２４】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ８）。
【図２５】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＝ｔ８）。
【図２６】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＞ｔ８）。
【図２７】本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである（時刻ｔ＞ｔ８）。
【図２８】本実施の形態に従う通信方法におけるメッセージ時間長Ｃを２５６等分した例を示す模式図である。
【図２９】本実施の形態に従う通信方法における誤って復号される処理例を説明するための図である。
【図３０】本実施の形態に従う通信方法におけるランダムスリープを説明するための図である。
【図３１】本実施の形態に従う通信方法を採用するネットワークシステムの別の一例を示す模式図である。
【発明を実施するための形態】
【００１６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１７】
［Ａ．ネットワークシステム］
まず、本実施の形態に従う通信方法を採用するネットワークシステムの概要について説明する。本実施の形態に従う通信方法においては、複数のノード間でパルス列を含む信号によりデータを伝送する。
【００１８】
図１は、本実施の形態に従う通信方法を採用するネットワークシステム１の一例を示す模式図である。図１を参照して、ネットワークシステム１は、複数のノード２を有しており、各ノード２は、送信すべきデータを符号化して生成されるメッセージを他のノード２へ送信するとともに、他のノード２から受信したメッセージからデータを復号する。
【００１９】
本実施の形態において、「メッセージ」の各々は、１つの値を符号化して得られる単位データを意味する。各メッセージが保持する値の範囲は、各メッセージの時間的長さ、および、時間的長さに対する時間的分解能に応じて任意に決定される。以下の説明では、便宜上、メッセージ内に含まれる時間間隔は連続時間であるとする。
【００２０】
典型的には、各ノード２は、メッセージの送信およびメッセージの受信のいずれかのモードと、スリープ（止）のモードとを交互に繰返す。より具体的には、メッセージの送信または受信（いずれか一方がランダムに決定される）、スリープ（スリープ期間はランダムに決定される）、メッセージの送信または受信（いずれか一方がランダムに決定される）、スリープ（スリープ期間はランダムに決定される）、・・・といった順序でモードを切り替える。このようなモード切り替えを作用することで、メッセージの送信期間の開始タイミングは、ランダムに変化することになるので、各ノード２は、他のノード２からのメッセージを正しく受信できる。このとき、メッセージの送信期間およびメッセージの受信期間は、それぞれ予め定められた一定長さとすることができる。
【００２１】
なお、各ノード２には、受信回路および送信回路を独立して実装してもよい。この場合には、各ノード２は、メッセージの送信および受信を同時に実行できる。
【００２２】
図１には、典型例として、無線信号を用いてメッセージを遣り取りするネットワークシステム１の構成例を示すが、有線信号を用いてメッセージを遣り取りするようにしてもよい。
【００２３】
［Ｂ．概要］
次に、本実施の形態に従う通信方法の概要について説明する。
【００２４】
（ｂ１：メッセージのコード形式）
図２は、本実施の形態に従う通信方法において用いられるメッセージのコード形式の概要を説明するための図である。図２を参照して、本実施の形態に従う通信方法においては、予め定められた固定値であるメッセージ時間長Ｃ内に３つの時間間隔ｆ（ｘ），ｇ（ｘ），Ｃ−ｆ（ｘ）−ｇ（ｘ）を規定することで、値ｘを符号化する。これらの３つの時間間隔は、４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。
【００２５】
一例として、パルスＰ１およびＰ４は、メッセージ時間長Ｃの両端に配置される。パルスＰ１とパルスＰ２との間の時間間隔がｆ（ｘ）に相当し、パルスＰ２とパルスＰ３との間の時間間隔がｇ（ｘ）に相当し、パルスＰ３とパルスＰ４との間の時間間隔がＣ−ｆ（ｘ）−ｇ（ｘ）に相当する。
【００２６】
従来の差動パルス位置変調（ＤＰＰＭ）あるいはＣｔＳとは異なり、複数の時間間隔を用いて１つの値を符号化するため、冗長性を有することになる。より具体的には、従来の差動パルス位置変調（ＤＰＰＭ）あるいはＣｔＳでは、２つのパルスを用いて１つの値を符号化することになるのに対して、本実施の形態に従う通信方法においては、その２倍の４つのパルス（すなわち、２つパルスを追加）を用いることで、従来の方式では実現できない誤り訂正機能を提供できる。
【００２７】
なお、ｆ（ｘ），ｇ（ｘ），Ｃ−ｆ（ｘ）−ｇ（ｘ）の順序は、図２に示す順序に限定されるものではない。例えば、Ｃ−ｆ（ｘ）−ｇ（ｘ），ｆ（ｘ），ｇ（ｘ）の順に配置してもよいし、ｆ（ｘ），Ｃ−ｆ（ｘ）−ｇ（ｘ），ｇ（ｘ）の順に配置してもよい。
【００２８】
図２に示すように、送信元のノードは、符号化すべき入力値を示す、予め定められたメッセージ時間長Ｃのメッセージを生成するとともに、生成したメッセージに対応するパルス列を含む信号を送信する。
【００２９】
図３は、本実施の形態に従う通信方法において用いられる時間間隔を決定するための関数の一例を説明するための図である。
【００３０】
図３（Ａ）に示すように、時間間隔ｆ（ｘ）および時間間隔ｇ（ｘ）を定義する関数は、符号化される入力値である値ｘについて単調増加関数または単調減少関数とすることで、時間間隔ｆ（ｘ）および時間間隔ｇ（ｘ）の長さと値ｘとをユニークに対応付けることができる。
【００３１】
図２に示すパルスＰ１およびパルスＰ２を受信することで、パルスＰ１とパルスＰ２との間の時間間隔は観測可能である（（１）観測値）。（１）観測値を用いて、時間間隔ｆ（ｘ）の逆関数から値ｘを推定できる（（２）推定入力値）。さらに、（２）推定入力値を用いて、時間間隔ｇ（ｘ）から次に観測されるべき時間間隔を推定できる（（３）予測値）。（３）予測値は、パルスＰ２に引き続くパルスＰ３を受信すべきタイミングを規定することになる。すなわち、パルスＰ２の受信後にパルスＰ３を受信した場合に、パルスＰ１とパルスＰ２との間の時間間隔が（３）予測値と一致すれば、パルスＰ１，Ｐ２，Ｐ３の系列は、推定されたメッセージのコード形式に適合することを示す。
【００３２】
最終的に、パルスＰ３の受信後にパルスＰ４を受信した場合に、パルスＰ１とパルスＰ４との間の時間間隔がメッセージ時間長Ｃと一致すれば、パルスＰ１，Ｐ２，Ｐ３，Ｐ４の系列は、他のノード２から送信されたメッセージを示すものであると確定できる。
【００３３】
本実施の形態に従う通信方法においては、先頭のパルスから最終のパルスまでの時間長さが固定のメッセージ時間長Ｃを維持することが重要である。なお、あるネットワークに属するノード間で利用されるメッセージ時間長と、別のネットワークに属するノード間で利用されるメッセージ時間長とを異なるようにしてもよい。メッセージ時間長を異ならせることによって、同一ネットワークに属するノード２からのメッセージのみを選択的に受信できる。
【００３４】
図２および図３（Ａ）に示すように、本実施の形態に従う通信方法において用いられるパルス列を含む信号は、メッセージの開始および終了をそれぞれ規定する２つのパルス（パルスＰ１およびＰ４）と、入力値から第１の関数に従って算出される時間間隔ｆ（ｘ）および入力値から第２の関数に従って算出される時間間隔ｇ（ｘ）をメッセージ内においてそれぞれ規定するさらに２つのパルス（パルスＰ２およびＰ３）とを含む。
【００３５】
このようなパルス列を含む信号が重畳された場合には、異なるノード２からのパルス列が混在して現れることになるが、これらの混在したパルス列から正しくメッセージを復元する。具体的には、受信側のノード２は、受信されるパルス列を含む信号から、パルス間により規定される時間間隔が、ｆ（ｘ），ｇ（ｘ），Ｃ−ｆ（ｘ）−ｇ（ｘ）（なお、配置順序は任意）と一致する４つのパルスの組を抽出することで、メッセージを復元する。
【００３６】
図３（Ｂ）には、最も単純化された形式として、時間間隔ｆ（ｘ）＝時間間隔ｇ（ｘ）＝ｘ（符号化すべき入力値である値ｘと同一、あるいは、符号化すべき入力値である値ｘを所定範囲に規格化した値）を採用した例を示す。すなわち、図３（Ｂ）に示される形式においては、時間間隔ｆ（ｘ）（第１の時間間隔）および時間間隔ｇ（ｘ）（第２の時間間隔）は、いずれも入力値である値ｘを示す同一の値として設定される。
【００３７】
このような単純化された形式を採用することで、図３（Ａ）に示すような、観測される時間間隔ｆ（ｘ）から次に観測されるべき時間間隔ｇ（ｘ）の予測値を算出する処理を単純化できる。
【００３８】
図４は、図２に示されるメッセージのコード形式を簡略化した構成例を説明するための図である。図４に示すコード形式においては、図３（Ｂ）に示すように２つの時間間隔を入力値と一致させることで、メッセージ時間長Ｃ内の３つの時間間隔は、ｘ，ｘ，Ｃ−２ｘとなる。以下、本実施の形態に従う通信方法で採用されるメッセージのコード形式を「ｘ／ｘ／Ｃ−２ｘコード」と称することもある。上述したように、メッセージ内における３つの時間間隔の配置順序は任意に決定できる。
【００３９】
図４に示すようなｘ／ｘ／Ｃ−２ｘコードを採用することで、任意の４つ以上のパルス列を受信したノード２においては、固定のメッセージ時間長Ｃを規定する２つのパルスが現れるか否か、および、当該２つのパルスにより規定されるメッセージ時間長Ｃ内に同一の時間間隔ｘが繰返されているか否かに基づいて、送信されたメッセージを検出できる。このようなメッセージの検出に２つの条件を適用することにより、誤り訂正機能を提供できる。
【００４０】
すなわち、別のノード２から同時に別のメッセージが送信された場合であっても、当該別のメッセージの影響を極力受けることなく、それぞれのメッセージを再構成できる。
【００４１】
特に、時間間隔ｘを連続時間であるとすると、ある検出されたメッセージ時間長Ｃにおいて、１番目のパルスから２番目のパルスまでの期間に相当する１番目の時間間隔ｘと、２番目のパルスから３番目のパルスまでの期間に相当する２番目の時間間隔ｘとが、異なる送信元からのパルスによって実現される可能性はほぼゼロであり、このことは、送信元の独立性を実現できることを意味する。以下、より詳細に説明する。
【００４２】
図５および図６は、本実施の形態に従う通信方法で利用されるメッセージのコード形式に従って複数のノード２がそれぞれメッセージを送信した場合の処理例を説明するための図である。
【００４３】
図５（Ａ）を参照して、例えば、値ｘを符号化したメッセージ３０１（ｘ／ｘ／Ｃ−２ｘ）と、値ｙを符号化したメッセージ３０２（ｙ／ｙ／Ｃ−２ｙ）とについて考える。これらの２つのメッセージがほぼ同時に異なるノード２からそれぞれ送信される場合を想定する。図５に示す例では、メッセージ３０１とメッセージ３０２との送信開始タイミングは遅延時間ｄだけずれているとする。すなわち、メッセージ３０１とメッセージ３０２との間には送信期間の重なり（あるいは、衝突）が生じる。
【００４４】
図５（Ｂ）には、メッセージ１およびメッセージ２の両方を受信可能なノード２で受信される信号波形を示す。受信パルス列３０３は、メッセージ３０１およびメッセージ３０２の信号波形を重ねたものとなる。
【００４５】
各ノード２においては、受信パルス列３０３に埋もれているメッセージを抽出する必要がある。
【００４６】
図６を参照して、復号結果３０４および復号結果３０５は、受信パルス列３０３から抽出されるメッセージ候補の一例である。
【００４７】
復号結果３０４について見ると、１番目の時間間隔はｙ＋ｄであり、２番目の時間間隔は２ｘ−ｙ−ｄであり、３番目の時間間隔はＣ−２ｘである。ｘ／ｘ／Ｃ−２ｘコードの形式を満足させるためには、１番目の時間間隔（ｙ＋ｄ）と２番目の時間間隔（２ｘ−ｙ−ｄ）とが一致する必要がある。すなわち、ｙ＝ｘ−ｄの関係が満足されなければならない。
【００４８】
復号結果３０５について見ると、２番目の時間間隔はｘ−ｄであり、２番目の時間間隔は２ｙ−ｙ＋ｄであり、３番目の時間間隔はＣ−２ｙである。ｘ／ｘ／Ｃ−２ｘコードの形式を満足させるためには、１番目の時間間隔（ｘ−ｄ）と２番目の時間間隔（２ｙ−ｙ＋ｄ）とが一致する必要がある。すなわち、ｙ＝ｘ−ｄの関係が満足されなければならない。
【００４９】
復号結果３０４および復号結果３０５のいずれについても、ｘ／ｘ／Ｃ−２ｘコードの形式を満足させるためには、共通の条件としてｙ＝ｘ−ｄの成立が必要であることが分かる。すなわち、復号結果３０４および復号結果３０５は、実質的な相違はなく、その他の復号結果についても同様である。
【００５０】
この条件を復号結果３０４に適用すると、１番目の時間間隔はｘであり、２番目の時間間隔はｘであり、３番目の時間間隔はＣ−２ｘとなる。これは、メッセージ３０１と一致する。
【００５１】
また、この条件を復号結果３０５に適用すると、１番目の時間間隔はｙであり、２番目の時間間隔はｙであり、３番目の時間間隔はＣ−２ｙとなる。これは、メッセージ３０２と一致する。
【００５２】
すなわち、ｙ＝ｘ−ｄが成立することは、送信されたメッセージ３０１およびメッセージ３０２を正しく復号できることと等価である。
【００５３】
このように、本実施の形態に従うｘ／ｘ／Ｃ−２ｘコードを採用することで、十分に高い確度でメッセージを復号できることが分かる。なお、本実施の形態に従うｘ／ｘ／Ｃ−２ｘコードにおいて符号される値は、連続時間であってもよいし、離散時間であってもよい。
【００５４】
（ｂ２：スパイクオートマトン）
次に、本実施の形態に従う通信方法においてメッセージの復号に利用される実装例について説明する。
【００５５】
本実施の形態においては、メッセージを復号するためのアルゴリズムを記述するオートマトンモデル（以下、「スパイクオートマトン」あるいは「ＳＡ」とも称す。）を導入する。以下の説明においては、パルスと実質的に同義の「スパイク」という用語も用いる。
【００５６】
スパイクオートマトンは、固定時間（メッセージ時間長Ｃ）のパターンに生じるスパイク列（スパイクのシーケンス）を認識する。図７は、本実施の形態に従う通信方法においてメッセージの復号に利用されるスパイクオートマトン３２を説明するための図である。
【００５７】
図７を参照して、スパイクオートマトン３２は、ｘ／ｘ／Ｃ−２ｘコードのメッセージに対応して、４つのステートＳＴ１，ＳＴ２，ＳＴ３，ＳＴ４を有している。スパイクオートマトン３２においては、遷移条件が成立するたびに、紙面左側から紙面右側へ順次遷移することになり、逆方向への遷移は存在しない。
【００５８】
４つのステートＳＴ１，ＳＴ２，ＳＴ３，ＳＴ４に対してそれぞれスパイクタイムｓｔ１，ｓｔ２，ｓｔ３，ｓｔ４が関連付けられている。スパイクタイムは、ステート遷移するための条件である。あるステートＳＴから次のステートＳＴ’へ遷移するための条件は、次のステートＳＴ’に関連付けられているスパイクタイムにおいて、スパイクが検出（すなわち、パルスイベントが発生）することである。
【００５９】
スパイクオートマトン３２の最終ステート（図７に示す例では、ステートＳＴ４）は、アクセプタンスステートに相当する。あるスパイクオートマトン３２においてアクセプタンスステートまで到達することは、メッセージを正しく復号できたことを意味する。アクセプタンスステートまで到達したスパイクオートマトン３２について、対応するメッセージが確定されることになる。
【００６０】
本実施の形態に従うｘ／ｘ／Ｃ−２ｘコードを採用した場合には、最初の時間間隔（時間間隔ｆ（ｘ）；値ｘ）を取得する必要があるので、２つのスパイク（パルスイベント）が発生した時点で、スパイクオートマトン３２を生成するとともに、各ステートに関連付けられるスパイクタイムを決定できる。このとき、スパイクオートマトン３２の現在ステートは、２番目のステート（ステートＳＴ２）となる。
【００６１】
例えば、メッセージ時間長Ｃ＝１０．０とした場合に、１番目のスパイク（パルスイベント）が時刻ｔ＝１．５で発生し、２番目のスパイク（パルスイベント）が時刻ｔ＝３．５で発生したとすると、スパイクオートマトン３２の各ステートに関連付けられるスパイクタイムはｓｔ１＝１．５，ｓｔ２＝３．５，ｓｔ３＝５．５，ｓｔ４＝１１．５のように決定できる。
【００６２】
スパイクオートマトン３２は２番目のステート（ステートＳＴ２）にセットされるので、その後、時刻ｔ＝５．５でスパイク（パルスイベント）が発生すると、次のステート（ステートＳＴ３）へ遷移し、さらに、時刻ｔ＝１１．５でスパイク（パルスイベント）が発生すると、アクセプタンスステート（ステートＳＴ４）へ遷移する。アクセプタンスステートまで到達した場合には、メッセージを正しく復号できたことになる。
【００６３】
一方、次のステートに関連付けられているスパイクタイムまでにスパイク（パルスイベント）が発生しなければ、そのスパイクオートマトン３２は次のステートへ遷移する可能性がなくなる。そのため、次のステートへ遷移する可能性がなくなったスパイクオートマトン３２については、適宜破棄されるようにしてもよい。
【００６４】
以上のように、本実施の形態に従う通信方法においては、一例として、スパイクオートマトン３２を用いた復号処理を採用してもよい。スパイクオートマトン３２の具体的な適用手順については、後述する。
【００６５】
［Ｃ．ノードの構成例］
次に、ネットワークシステム１を構成するノード２の構成例について説明する。図８は、本実施の形態に従うネットワークシステム１に含まれるノード２の構成例を示す模式図である。
【００６６】
図８を参照して、ノード２は、内部または外部に配置されたアプリケーション４から与えられる送信すべきデータ（以下、「送信データ」とも称す。）を他のノード２へ送信するとともに、他のノード２からの受信したデータ（以下、「受信データ」とも称す。）をアプリケーション４へ出力する。ノード２は、本実施の形態に従う通信方法を実現するための構成として、送受信コントローラ２０と、符号化部２１と、送信回路２２と、アンテナ２３と、受信回路２４と、復号部２５とを含む。
【００６７】
送受信コントローラ２０は、アプリケーション４からの送信データの受取り、および、アプリケーション４への受信データの出力を制御する。送受信コントローラ２０は、送信データに対する冗長符号の追加や、受信データに対する誤り訂正などの処理を行なってもよい。
【００６８】
符号化部２１は、送受信コントローラ２０からの送信データを、後述するような符号化規則に従って、１または複数のメッセージを生成する。
【００６９】
送信回路２２は、符号化部２１により生成されたメッセージを示す無線信号を生成する。送信回路２２により生成された無線信号は、アンテナ２３から送出される。
【００７０】
受信回路２４は、アンテナ２３を介して無線信号を受信し、無線信号が示す振幅の時間的変化を復号部２５へ出力する。
【００７１】
復号部２５は、受信回路２４からの振幅の時間的変化に基づいて、他のノード２から受信したメッセージを抽出および復元する。復号部２５は、復元したメッセージが示す値を送受信コントローラ２０へ出力する。送受信コントローラ２０は、復号部２５からのメッセージが示す値を受信データとしてまとめてアプリケーション４へ出力する。
【００７２】
［Ｄ．符号化処理］
次に、本実施の形態に従う通信方法における符号化処理について説明する。
【００７３】
図９は、本実施の形態に従う通信方法における符号化処理の手順を示すフローチャートである。図９に示す各ステップは、図８に示すノード２の符号化部２１によって実行される。
【００７４】
図９を参照して、送信元のノード２は、新たな送信データが入力されたか否かを判断する（ステップＳ１００）。新たな送信データが入力されていなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰返される。
【００７５】
新たな送信データが入力されると（ステップＳ１００においてＹＥＳ）、送信元のノード２は、入力された新たな送信データを１つのメッセージに含めることができる値からなる入力値列を生成する（ステップＳ１０２）。
【００７６】
送信元のノード２は、ステップＳ１０２において生成した入力値列の先頭の値を選択し（ステップＳ１０４）、選択した値からメッセージに含めるべき時間間隔を算出する（ステップＳ１０６）。送信元のノード２は、ステップＳ１０６において算出した時間間隔に基づいてメッセージを生成する（ステップＳ１０８）。すなわち、送信元のノード２は、符号化すべき入力値を示す、予め定められたメッセージ時間長Ｃのメッセージを生成する。そして、送信元のノード２は、当該生成したメッセージを規定するパルス列を含む信号を他のノード２へ送信する（ステップＳ１１０）。すなわち、送信元のノード２は、生成したメッセージに対応するパルス列を含む信号を送信する。
【００７７】
送信元のノード２は、ステップＳ１０２において生成した入力値列のすべてを処理したか否かを判断する（ステップＳ１１２）。生成した入力値列のうち未処理のものがあれば（ステップＳ１１２においてＮＯ）、送信元のノード２は、入力値列の次の値を選択し（ステップＳ１１４）、ステップＳ１０６以下の処理を繰返す。
【００７８】
これに対して、生成した入力値列のすべてが処理済であれば（ステップＳ１１２においてＹＥＳ）、符号化処理は終了する。
【００７９】
［Ｅ．復号処理］
次に、本実施の形態に従う通信方法における復号処理について説明する。復号処理においては、スパイクオートマトン３２が用いられる。
【００８０】
各ノード２は、異なる時間に受信された２つのパルスイベントからなるすべての組について、スパイクオートマトン３２を生成する。この生成されるスパイクオートマトン３２においては、１番目のスパイクタイムｓｔ１および２番目のスパイクタイムｓｔ２の条件が満たされているとみなす。すなわち、２番目のステート（図７に示すステートＳＴ２）が初期状態となる。
【００８１】
ｘ／ｘ／Ｃ−２ｘコードの形式に基づいて、スパイクタイムｓｔ１およびｓｔ２から、スパイクタイムｓｔ３およびｓｔ４を推定できる。すなわち、３番目のスパイクタイムｓｔ３＝ｓｔ２＋（ｓｔ２−ｓｔ１）＝２ｓｔ２−ｓｔ１となり、４番目のスパイクタイムｓｔ４＝ｓｔ１＋Ｃとなる。
【００８２】
各ノード２は、生成したスパイクオートマトン３２を保持するとともに、各ノード２で発生するパルスイベントに応じて各スパイクオートマトン３２のステートを適宜更新する。各ノード２は、各ノード２で発生するパルスイベントについても保持する。すなわち、各ノード２は、パルスイベントの発生毎に、パルスイベントの発生時刻が保持している各スパイクオートマトン３２に設定されているスパイクタイムと一致するか否かを判断する。各ノード２は、パルスイベントの発生時刻がスパイクタイムと一致するスパイクオートマトン３２について、次のステートへ遷移させる。最終的に、アクセプタンスステートまで到達したスパイクオートマトン３２については、正しくメッセージを復号できたと判断して、その復号されたメッセージを出力する。
【００８３】
一方、時間の経過に伴って、アクセプタンスステートまで到達できないことが判明したスパイクオートマトン３２については、保持しておく必要はなくなる。
【００８４】
例えば、２番目のステートにあるスパイクオートマトン３２について、スパイクタイムｓｔ３が経過してもパルスイベントが発生しない場合には、次のステートへの遷移は生じ得ない。同様に、３番目のステートにあるスパイクオートマトン３２について、スパイクタイムｓｔ４が経過してもパルスイベントが発生しない場合には、次のステートへの遷移は生じ得ない。したがって、２番目のステートまたは３番目のステートにおいて、次のステートへの遷移条件であるスパイクタイムが経過してもパルスイベントが発生しない場合には、当該スパイクオートマトン３２は削除される。
【００８５】
なお、将来生じ得るパルスイベントに対する新たなスパイクオートマトン３２が生成された後、現在時刻からメッセージ時間長Ｃの１／２より過去に発生したパルスイベントは不要となる。これは、ｘ／ｘ／Ｃ−２ｘコードの形式においては、新たなパルスイベント５０を生成するために用いられる２つのパルスイベントの時間間隔はメッセージ時間長Ｃの１／２未満となるからである。そのため、現在時刻からメッセージ時間長Ｃの１／２より過去に発生したパルスイベントは削除される。
【００８６】
各ノードは、パルスイベントを登録するためのパルスイベントキュー（ＰＥＱ）を有している。時刻ｔＮにおいて新たなパルスイベントが発生すると、当該新たなパルスイベントはパルスイベントキューに登録される。そして、登録からメッセージ時間長Ｃの１／２が経過するまでの間、パルスイベントに存在することになる。
【００８７】
また、各ノードは、スパイクオートマトン３２のセットを有しており、各スパイクオートマトン３２は将来生じ得るパルスイベントの発生（あるいは不発生）を推定する。時刻ｔＮにおいて新たなパルスイベントが発生すると、各スパイクオートマトン３２に設定されるステートに応じたスパイクタイムと時刻ｔＮとが一致するか否かを判断する。このようにして、各スパイクオートマトン３２のステートが逐次更新される。そして、いずれかのスパイクオートマトン３２のステートがアクセプタンスステートまで到達すると、当該スパイクオートマトン３２に対応するメッセージが正しく復号できたと判断される。
【００８８】
なお、パルスイベントキューに時刻ｔＳにおいて発生したパルスイベントが登録されている状態において、時刻ｔＮにおいて新たなパルスイベントが発生すると、スパイクオートマトン３２のスパイクタイムは、ｓｔ１＝ｔＳ，ｓｔ２＝ｔＮ，ｓｔ３＝２ｔＮ−ｔＳ，ｓｔ４＝ｔＳ＋Ｃのように算出される。また、当該新たに生成されたスパイクオートマトン３２は２番目のステートに設定される。
【００８９】
以上のような処理が繰返し実行されることになる。
図１０は、図８に示す復号部２５のより詳細な構成例を示す模式図である。図１０を参照して、復号部２５は、パルス検出部２５１と、オートマトン管理部２５２と、カウンタ２５３と、メッセージ復元部２５５と、レジスタ２５８とを含む。レジスタ２５８は、パルスイベントキュー（ＰＥＱ）２５４と、オートマトンキュー２５６とを含む。
【００９０】
パルス検出部２５１は、受信回路２４から出力される振幅の時間的変化に基づいて、無線信号中に現れるパルスを検出する。パルス検出部２５１は、パルスの検出に応答して、パルスイベントを発生する。
【００９１】
オートマトン管理部２５２は、パルス検出部２５１からのパルスの検出に応答して、パルスイベントキュー２５４にパルスイベントを登録するとともに、オートマトンキュー２５６にスパイクオートマトン３２を生成、および／または、生成済のスパイクオートマトン３２のステートを更新する。また、オートマトン管理部２５２は、パルスイベントキュー２５４に登録されたパルスイベントキュー２５４のうち指定時間が経過したものを削除するとともに、オートマトンキュー２５６に生成されたスパイクオートマトン３２のうち指定時間が経過したものを削除する。
【００９２】
カウンタ２５３は、一種のタイマとして機能し、予め定められた周期毎に内部カウンタをカウントアップする。オートマトン管理部２５２は、カウンタ２５３によりカウントアップされる内部カウンタを参照して、スパイクオートマトン３２のステートを更新すべき条件が満たされるか否かを判断する。
【００９３】
メッセージ復元部２５５は、オートマトンキュー２５６に生成されたスパイクオートマトン３２のうち、オートマトン管理部２５２によりアクセプタンスステートまで到達したものについて、メッセージの再構成に成功したと判断して、そのメッセージが示す値を出力する。
【００９４】
図１１は、本実施の形態に従う通信方法における復号処理の手順を示すフローチャートである。図１１に示す各ステップは、図８および図１０に示すノード２の復号部２５によって実行される。
【００９５】
図１１を参照して、受信側のノード２は、新たなパルスを受信したか否かを判断する（ステップＳ２００）。新たなパルスを受信してなければ（ステップＳ２００においてＮＯ）、ステップＳ２００の処理が繰返される。
【００９６】
新たなパルスを受信すると（ステップＳ２００においてＹＥＳ）、受信側のノード２は、現在時刻からメッセージ時間長Ｃの１／２より過去に登録されたパルスイベントが存在するか否かを判断する（ステップＳ２０２）。現在時刻からメッセージ時間長Ｃの１／２より過去に登録されたパルスイベントが存在していれば（ステップＳ２０２においてＹＥＳ）、受信側のノード２は、現在時刻からメッセージ時間長Ｃの１／２より過去に登録されたパルスイベントをパルスイベントキューから削除する（ステップＳ２０４）。
【００９７】
一方、現在時刻からメッセージ時間長Ｃの１／２より過去に登録されたパルスイベントが存在していなければ（ステップＳ２０２においてＮＯ）、ステップＳ２０４の処理はスキップされる。
【００９８】
続いて、受信側のノード２は、オートマトンキュー２５６にスパイクオートマトン３２が登録されているか否かを判断する（ステップＳ２０６）。オートマトンキュー２５６に何らのスパイクオートマトン３２も登録されていなければ（ステップＳ２０６においてＮＯ）、処理はステップＳ２３０へ進む。
【００９９】
オートマトンキュー２５６にスパイクオートマトン３２が登録されていれば（ステップＳ２０６においてＹＥＳ）、受信側のノード２は、オートマトンキュー２５６に登録されているスパイクオートマトン３２を特定するためのインデックスｉを、１番目のオートマトンキュー２５６を示す値にセットする（ステップＳ２０８）。以下、インデックスｉで特定されるスパイクオートマトン３２を「ＳＡｉ」と記す。
【０１００】
受信側のノード２は、現在時刻のパルスイベントによるＳＡｉのステート繊維を試み（ステップＳ２１０）、ＳＡｉのステート遷移が成功したか否かを判断する（ステップＳ２１２）。ＳＡｉのステート遷移が成功すれば（ステップＳ２１２においてＹＥＳ）、受信側のノード２は、ＳＡｉがアクセプタンスステートまで到達したか否かを判断する（ステップＳ２１４）。
【０１０１】
ＳＡｉがアクセプタンスステートまで到達すれば（ステップＳ２１４においてＹＥＳ）、受信側のノード２は、ＳＡｉに対応するメッセージを再構成する（ステップＳ２１６）。ＳＡｉがアクセプタンスステートまで到達していなければ（ステップＳ２１４においてＮＯ）、ステップＳ２１６の処理はスキップされる。
【０１０２】
ＳＡｉのステート遷移が失敗であれば（ステップＳ２１２においてＮＯ）、受信側のノード２は、ＳＡｉのステートに基づいて算出される、次に発生すべきパルスイベントの時刻が現在時刻より未来であるか否かを判断する（ステップＳ２１８）。
【０１０３】
次に発生すべきパルスイベントの時刻が現在時刻より過去であれば（ステップＳ２１８においてＮＯ）、受信側のノード２は、ＳＡｉをオートマトンキューから削除する（ステップＳ２２０）。次に発生すべきパルスイベントの時刻が現在時刻より未来であれば（ステップＳ２１８においてＹＥＳ）、ステップＳ２２０の処理はスキップされる。
【０１０４】
続いて、受信側のノード２は、現在のインデックスｉがオートマトンキュー２５６に登録されているスパイクオートマトン３２の最後を示す値であるか否かを判断する（ステップＳ２２２）。現在のインデックスｉがオートマトンキュー２５６に登録されているスパイクオートマトン３２の最後を示す値でなければ（ステップＳ２２２においてＮＯ）、受信側のノード２は、インデックスｉを１だけインクリメントする（ステップＳ２２４）。そして、ステップＳ２１０以下の処理が繰返される。
【０１０５】
一方、現在のインデックスｉがオートマトンキュー２５６に登録されているスパイクオートマトン３２の最後を示す値であれば（ステップＳ２２２においてＹＥＳ）、処理はステップＳ２３０へ進む。
【０１０６】
ステップＳ２３０において、受信側のノード２は、パルスイベントキューに以前に登録されたパルスイベントが存在するか否かを判断する（ステップＳ２３０）。パルスイベントキューに以前に登録されたパルスイベントが存在していれば（ステップＳ２３０においてＹＥＳ）、受信側のノード２は、現在時刻のパルスイベントと以前に登録されたパルスイベントとのすべての組合せを抽出する（ステップＳ２３２）。
【０１０７】
受信側のノード２は、ステップＳ２３２において抽出したパルスイベントの組合せの各々に対応付けて、スパイクオートマトン３２を生成する（ステップＳ２３４）。なお、生成時におけるスパイクオートマトン３２は２番目のステート（ステートＳＴ２）に設定される。また、受信側のノード２は、各スパイクオートマトン３２の生成に用いられたパルスイベントの時刻に基づいて、各スパイクオートマトン３２の予想されるスパイクタイムを算出する（ステップＳ２３６）。
【０１０８】
一方、パルスイベントキューに以前に登録されたパルスイベントが存在していなければ（ステップＳ２３０においてＮＯ）、ステップＳ２３２〜Ｓ２３６の処理はスキップされる。
【０１０９】
続いて、受信側のノード２は、現在時刻に受信した新たなパルスに対応するパルスイベントをパルスイベントキューに登録する（ステップＳ２３８）。典型的には、パルスイベントを特定するための識別子およびパルスイベントが発生した時刻がパルスイベントキューに登録される。
【０１１０】
最終的に、受信側のノード２は、再構成したすべてのメッセージを出力する（ステップＳ２４０）。
【０１１１】
そして、ステップＳ２００以下の処理が繰返される。
［Ｆ．メッセージの復号処理例］
次に、本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例について説明する。
【０１１２】
図１２〜図２７は、本実施の形態に従う通信方法に従って複数のメッセージを復号する処理の一例を説明するためのタイムチャートである。以下の説明においては、メッセージ時間長Ｃに対して、値ｘに相当する時間を割り当てた第１のメッセージと、値ｙに相当する時間を割り当てた第２のメッセージとが時間的に重なって送信される例を示す。具体的には、図１２に示すように、値ｘに相当する時間が割り当てられたメッセージ３０１と、値ｙに相当する時間が割り当てられたメッセージ３０２とを想定する。
【０１１３】
メッセージ３０１については、パルスがｘ／ｘ／Ｃ−２ｘの間隔で発生することが復号の条件となり、メッセージ３０２については、パルスがｙ／ｙ／Ｃ−２ｙの間隔で発生することが復号の条件となる。
【０１１４】
一例として、メッセージ３０１に含まれるパルスは、時刻ｔ１，ｔ３，ｔ４，ｔ７の各々において発生し、メッセージ３０２に含まれるパルスは、時刻ｔ２，ｔ５，ｔ６，ｔ８の各々において発生するものとする。
【０１１５】
（ｆ１：初期状態）
図１２は、初期状態（時刻ｔ＝０）におけるパルスイベントキュー（ＰＥＱ）２５４の状態を示す。初期状態においては、復号処理が開始したばかりであるので、パルスイベントキュー２５４には何らのパルスイベントも記録されていない。パルスイベントキュー２５４には、パルスイベント毎にスパイクオートマトンが生成されることになる。
【０１１６】
（ｆ２：時刻ｔ＝ｔ１）
図１３は、時刻ｔ＝ｔ１における状態を示す。時刻ｔ１において最初のパルスイベント３１１が発生する。パルスイベント３１１は、パルスイベントキュー２５４に登録されるものの、時刻ｔ１においては先行のパルスイベントが存在しないので、スパイクオートマトンは生成されない。すなわち、スパイクオートマトンの生成は、メッセージ時間長Ｃの１／２の間に２つのパルスイベントが発生することが条件となる。
【０１１７】
（ｆ３：時刻ｔ＝ｔ２）
図１４は、時刻ｔ＝ｔ２における状態を示す。時刻ｔ２において２番目のパルスイベント３１２が発生する。パルスイベント３１２は、パルスイベントキュー２５４に登録されるとともに、時刻ｔ１および時刻ｔ２でそれぞれ発生したパルスイベント３１１および３１２に基づいて、スパイクオートマトン３２１が生成される。
【０１１８】
図１４において、スパイクオートマトン３２１に示す三角マークは、メッセージとして再構成するための条件となるパルスイベントが発生すべき時刻（以下、「スパイクタイム」とも称す。）を示す。すなわち、スパイクオートマトンに関連付けられて描かれる４つの三角マークに対応するすべての時刻において、パルスイベントが発生すれば、対応するメッセージを再構成できる。スパイクオートマトン３２１を示す４つの三角マークのうち、白抜きの三角マークは現在のステートを示す。以下の図面においても同様である。
【０１１９】
（ｆ４：時刻ｔ＝ｔ３）
図１５は、時刻ｔ＝ｔ３における状態を示す。時刻ｔ３において３番目のパルスイベント３１３が発生する。パルスイベント３１３は、パルスイベントキュー２５４に登録される。そして、パルスイベント３１１および３１３（時刻ｔ１および時刻ｔ３でそれぞれ発生）に基づいて、スパイクオートマトン３２２が生成されるとともに、パルスイベント３１２および３１３（時刻ｔ２および時刻ｔ３でそれぞれ発生）に基づいて、スパイクオートマトン３２３が生成される。
【０１２０】
一方、スパイクオートマトン３２１については、スパイクタイム３２１３がパルスイベント３１３と一致しないので、次のステートへ遷移するための条件が満たされないことになる。そのため、スパイクオートマトン３２１の現在のステートが維持される。
【０１２１】
（ｆ５：時刻ｔ＝ｔ４）
図１６および図１７は、時刻ｔ＝ｔ４における状態を示す。時刻ｔ４において４番目のパルスイベント３１４が発生する。パルスイベント３１４は、パルスイベントキュー２５４に登録される。
【０１２２】
図１６を参照して、スパイクオートマトン３２１については、スパイクタイム３２１３がパルスイベント３１４と一致しない。さらに、スパイクオートマトン３２１のスパイクタイム３２１３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２１はオートマトンキュー２５６から削除される。
【０１２３】
同様に、スパイクオートマトン３２３についても、スパイクタイム３２３３がパルスイベント３１４と一致しない。さらに、スパイクオートマトン３２３のスパイクタイム３２３３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２３についてもオートマトンキュー２５６から削除される。
【０１２４】
一方、スパイクオートマトン３２２については、スパイクタイム３２２３がパルスイベント３１３と一致するので、次のステートへ遷移するための条件が満たされることになる。そのため、スパイクオートマトン３２２は次のステートへ遷移する。
【０１２５】
図１７を参照して、スパイクオートマトン３２１およびスパイクオートマトン３２３の削除、ならびに、スパイクオートマトン３２２のステート遷移に加えて、新たなスパイクオートマトンが生成される。
【０１２６】
図１７に示す例では、パルスイベント３１１および３１４（時刻ｔ１および時刻ｔ４でそれぞれ発生）に基づいて、スパイクオートマトン３２４が生成される。同様に、パルスイベント３１２および３１４（時刻ｔ２および時刻ｔ４でそれぞれ発生）に基づいて、スパイクオートマトン３２５が生成される。同様に、パルスイベント３１３および３１４（時刻ｔ３および時刻ｔ４でそれぞれ発生）に基づいて、スパイクオートマトン３２６が生成される。
【０１２７】
（ｆ６：時刻ｔ＝ｔ５）
図１８および図１９は、時刻ｔ＝ｔ５における状態を示す。時刻ｔ５において５番目のパルスイベント３１５が発生する。パルスイベント３１５は、パルスイベントキュー２５４に登録される。
【０１２８】
図１８を参照して、スパイクオートマトン３２２のスパイクタイム３２２４、スパイクオートマトン３２４のスパイクタイム３２４３、スパイクオートマトン３２５のスパイクタイム３２５３、および、スパイクオートマトン３２６のスパイクタイム３２６３は、いずれもパルスイベント３１５と一致しない。但し、いずれのスパイクタイムも将来発生し得るパルスイベントと一致する可能性が残されているので、スパイクオートマトンは削除されない。
【０１２９】
ここで、時刻ｔ１は時刻ｔ５を基準としてメッセージ時間長Ｃの１／２を超えて過去になるので、パルスイベント３１１がスパイクオートマトンの生成の判断には必要ないことが確定する。そのため、時刻ｔ１において発生したパルスイベント３１１はパルスイベントキュー２５４から削除される。
【０１３０】
図１９を参照して、パルスイベント３１１の削除に加えて、新たなスパイクオートマトンが生成される。
【０１３１】
図１９に示す例では、パルスイベント３１２および３１５（時刻ｔ２および時刻ｔ５でそれぞれ発生）に基づいて、スパイクオートマトン３２７が生成される。同様に、パルスイベント３１３および３１５（時刻ｔ３および時刻ｔ５でそれぞれ発生）に基づいて、スパイクオートマトン３２８が生成される。同様に、パルスイベント３１４および３１５（時刻ｔ４および時刻ｔ５でそれぞれ発生）に基づいて、スパイクオートマトン３２９が生成される。
【０１３２】
（ｆ７：時刻ｔ＝ｔ６）
図２０および図２１は、時刻ｔ＝ｔ６における状態を示す。時刻ｔ６において６番目のパルスイベント３１６が発生する。パルスイベント３１６は、パルスイベントキュー２５４に登録される。
【０１３３】
図２０を参照して、スパイクオートマトン３２２のスパイクタイム３２２４、スパイクオートマトン３２４のスパイクタイム３２４３、スパイクオートマトン３２５のスパイクタイム３２５３、スパイクオートマトン３２６のスパイクタイム３２６３、スパイクオートマトン３２８のスパイクタイム３２８３、および、スパイクオートマトン３２９のスパイクタイム３２９３は、いずれもパルスイベント３１６と一致しない。
【０１３４】
ここで、スパイクオートマトン３２５のスパイクタイム３２５３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２５についてはオートマトンキュー２５６から削除される。同様に、スパイクオートマトン３２６のスパイクタイム３２６３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２６についてもオートマトンキュー２５６から削除される。同様に、スパイクオートマトン３２８のスパイクタイム３２８３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２８についてもオートマトンキュー２５６から削除される。同様に、スパイクオートマトン３２９のスパイクタイム３２９３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３２９についてもオートマトンキュー２５６から削除される。
【０１３５】
一方、スパイクオートマトン３２２およびスパイクオートマトン３２４については、スパイクタイムが将来発生し得るパルスイベントと一致する可能性が残されているので削除されない。
【０１３６】
スパイクオートマトン３２７については、スパイクタイム３２７３がパルスイベント３１６と一致するので、次のステートへ遷移するための条件が満たされることになる。そのため、スパイクオートマトン３２７は次のステートへ遷移する。
【０１３７】
また、時刻ｔ３は時刻ｔ６を基準としてメッセージ時間長Ｃの１／２を超えて過去になるので、パルスイベント３１３がスパイクオートマトンの生成の判断には必要ないことが確定する。そのため、時刻ｔ３において発生したパルスイベント３１３はパルスイベントキュー２５４から削除される。
【０１３８】
図２１を参照して、上述したような、スパイクオートマトンの削除、スパイクオートマトンのステートの更新、パルスイベントの削除に加えて、新たなスパイクオートマトンが生成される。
【０１３９】
図２１に示す例では、パルスイベント３１４および３１６（時刻ｔ４および時刻ｔ６でそれぞれ発生）に基づいて、スパイクオートマトン３３０が生成される。同様に、パルスイベント３１５および３１６（時刻ｔ５および時刻ｔ６でそれぞれ発生）に基づいて、スパイクオートマトン３３１が生成される。
【０１４０】
（ｆ８：時刻ｔ＝ｔ７）
図２２および図２３は、時刻ｔ＝ｔ７における状態を示す。時刻ｔ７において７番目のパルスイベント３１７が発生する。パルスイベント３１７は、パルスイベントキュー２５４に登録される。
【０１４１】
図２２を参照して、スパイクオートマトン３２４のスパイクタイム３２４３、スパイクオートマトン３２７のスパイクタイム３２７４、スパイクオートマトン３３０のスパイクタイム３３０３、および、スパイクオートマトン３３１のスパイクタイム３３１３は、いずれもパルスイベント３１７と一致しない。ここで、いずれのスパイクオートマトンについてもスパイクタイムが将来発生し得るパルスイベントと一致する可能性が残されているので削除されない。
【０１４２】
スパイクオートマトン３２２については、スパイクタイム３２２４がパルスイベント３１７と一致するので、次のステートへ遷移するための条件が満たされることになる。そのため、スパイクオートマトン３２２は次のステートへ遷移する。すなわち、スパイクオートマトン３２２は、最終のアクセプタンスステートまで到達したことになり、スパイクオートマトン３２２に対応するメッセージ３０１が再構成される。
【０１４３】
また、時刻ｔ４は時刻ｔ６を基準としてメッセージ時間長Ｃの１／２を超えて過去になるので、パルスイベント３１４がスパイクオートマトンの生成の判断には必要ないことが確定する。そのため、時刻ｔ４において発生したパルスイベント３１４はパルスイベントキュー２５４から削除される。
【０１４４】
図２３を参照して、上述したような、スパイクオートマトンのステートの更新およびパルスイベントの削除に加えて、新たなスパイクオートマトンが生成される。
【０１４５】
図２３に示す例では、パルスイベント３１５および３１７（時刻ｔ５および時刻ｔ７でそれぞれ発生）に基づいて、スパイクオートマトン３３２が生成される。同様に、パルスイベント３１６および３１７（時刻ｔ６および時刻ｔ７でそれぞれ発生）に基づいて、スパイクオートマトン３３３が生成される。
【０１４６】
（ｆ９：時刻ｔ＝ｔ８）
図２４および図２５は、時刻ｔ＝ｔ８における状態を示す。時刻ｔ８において８番目のパルスイベント３１８が発生する。パルスイベント３１８は、パルスイベントキュー２５４に登録される。
【０１４７】
図２４を参照して、スパイクオートマトン３３０のスパイクタイム３３０３、スパイクオートマトン３３１のスパイクタイム３３１３、スパイクオートマトン３３２のスパイクタイム３３２３、および、スパイクオートマトン３３３のスパイクタイム３３３３は、いずれもパルスイベント３１８と一致しない。
【０１４８】
ここで、スパイクオートマトン３３３のスパイクタイム３３３３と一致するパルスイベントが発生する可能性はなくなるので、スパイクオートマトン３３３についてはオートマトンキュー２５６から削除される。
【０１４９】
一方、スパイクオートマトン３２７、スパイクオートマトン３３０、スパイクオートマトン３３１、スパイクオートマトン３３２、および、スパイクオートマトン３３３については、スパイクタイムが将来発生し得るパルスイベントと一致する可能性が残されているので削除されない。
【０１５０】
スパイクオートマトン３２７については、スパイクタイム３２７４がパルスイベント３１８と一致するので、次のステートへ遷移するための条件が満たされることになる。そのため、スパイクオートマトン３２７は次のステートへ遷移する。すなわち、スパイクオートマトン３２７は、最終のアクセプタンスステートまで到達したことになり、スパイクオートマトン３２７に対応するメッセージ３０２が再構成される。
【０１５１】
また、時刻ｔ５は時刻ｔ８を基準としてメッセージ時間長Ｃの１／２を超えて過去になるので、パルスイベント３１５がスパイクオートマトンの生成の判断には必要ないことが確定する。そのため、時刻ｔ５において発生したパルスイベント３１５はパルスイベントキュー２５４から削除される。
【０１５２】
図２５を参照して、上述したような、スパイクオートマトンのステートの更新およびパルスイベントの削除に加えて、新たなスパイクオートマトンが生成される。
【０１５３】
図２５に示す例では、パルスイベント３１６および３１８（時刻ｔ６および時刻ｔ８でそれぞれ発生）に基づいて、スパイクオートマトン３３３が生成される。同様に、パルスイベント３１７および３１８（時刻ｔ７および時刻ｔ８でそれぞれ発生）に基づいて、スパイクオートマトン３３４が生成される。
【０１５４】
（ｆ１０：時刻ｔ＞ｔ８）
図２６および図２７は、時刻ｔ＞ｔ８における状態を示す。図２６および図２７に示す例においては、時刻ｔ８以降には何らのイベントパルスも発生しないとする。そのため、アクセプタンスステートまで到達したスパイクオートマトン３２２およびスパイクオートマトン３２７を除いた残りのスパイクオートマトンについては、いずれのスパイクタイムも満たされないことになる。
【０１５５】
すなわち、図２６に示される、スパイクオートマトン３３０、３３１、３３２、３３３、３３４については、十分な時間が経過すると、オートマトンキュー２５６から削除されることになる。同様に、パルスイベント３１６、３１７、３１８についても、パルスイベントキュー２５４から削除されることになる。最終的には、図２７に示されるように、スパイクオートマトン３２２および３２７が確定し、それぞれメッセージ３０１および３０２として再構成されることになる。
【０１５６】
［Ｇ．連続時間／離散時間］
上述の説明においては、メッセージ内に含まれる時間間隔は連続時間であるとしたが、現実の実装においては、時間間隔は離散時間として設定されることが多い。この場合、メッセージ時間長Ｃを均等に複数個に分割した離散時間系を採用することになる。
【０１５７】
図２８は、本実施の形態に従う通信方法におけるメッセージ時間長Ｃを２５６等分した例を示す模式図である。図２８に示すような２５６個のタイムスロットに分割した場合において、ｘ／ｘ／Ｃ−２ｘコードの形式を適用すると、ｘの範囲は０〜１２６となり、１２７階調の値を符号化できることになる。すなわち、２５６個のタイムスロットからなるメッセージにおいて４つのパルスを用いて表現できる値の範囲は、「０」〜「１２６」となる。
【０１５８】
例えば、値「０」を符号化する場合には、「０番目」，「１番目」，「２番目」，「２５５番目」にそれぞれパルスが存在することになる。また、値「１２６」を符号化する場合には、「０番目」，「１２７番目」，「２５４番目」，「２５５番目」にそれぞれパルスが存在することになる。なお、値の範囲は適宜正規化できるので、例えば、「０」〜「１２６」の範囲に代えて、「−６３」〜「６３」の範囲とすることもできる。
【０１５９】
メッセージ時間長Ｃの分割数は、受信側のノードにおける時間分解能に応じて適宜設定できる。
【０１６０】
連続時間系においては、統計的に独立した２つのノードから送信されるパルスにより、ｘ／ｘ／Ｃ−２ｘコードの形式が誤って満たされる可能性はほぼゼロとみなすことができるが、図２８に示すような離散時間系において、特に分割数が少ない場合には、誤って復号される可能性が存在する。
【０１６１】
図２９は、本実施の形態に従う通信方法における誤って復号される処理例を説明するための図である。図２９には、メッセージ時間長Ｃを２４等分した場合の例を示す。
【０１６２】
図２９において、メッセージ時間長Ｃは１０個のタイムスロットであり、メッセージ３０１は値「３」を符号化したものであり、メッセージ３０２は値「１」を符号化したものである。
【０１６３】
受信パルス列３０３は、メッセージ３０１により生じるパルス列と、メッセージ３０２により生じるパルス列とを重畳したものに相当するが、図２９に示す例では、衝突区間３０６において、同一のタイムスロットにそれぞれのメッセージのパルスが存在することになる。
【０１６４】
復号結果３０４および復号結果３０５は、受信パルス列３０３から抽出されるメッセージ候補の一例である。復号結果３０５は、メッセージ３０２の内容と一致しており、正しく復号できているが、復号結果３０４は、メッセージ３０１の内容とは一致しておらず、誤って復号されていることが分かる。
【０１６５】
上述したような不確実性を低減するために、以下のようなランダムスリープを適用してもよい。
【０１６６】
図３０は、本実施の形態に従う通信方法におけるランダムスリープを説明するための図である。図３０に示す処理例においては、メッセージを複数回に亘って送信する。一例として、メッセージ３０１およびメッセージ３０２がいずれも３回ずつ送信される。このとき、同一のメッセージが送信される間隔（スリープ時間）はランダムに設定される。
【０１６７】
このようなスリープ時間がランダムに設定されるため、受信パルス列３０３においては、メッセージ１とメッセージ２とがほぼ重なって受信される場合と、メッセージ１とメッセージ２との重なりがほとんど存在しない場合とが生じ得る。３回のメッセージ送信によって得られる復号結果３０４および復号結果３０５においては、正しいメッセージの復号を実現できる。
【０１６８】
このように、送信元のノードは、同一の値ｘを示すメッセージを複数回送信する処理をさらに実行するようにしてもよい。このメッセージを複数回送信する処理においては、先行のメッセージの送信から次のメッセージの送信までの時間間隔をランダムに決定するようにしてもよい。
【０１６９】
上述したようなランダムの特性を利用することで、上述したようなメッセージを誤って復号してしまう可能性を低減できる。すなわち、複数回のメッセージ送信によって、不確実性は低減される。このような不確実性の低減は、各メッセージを送信した後、同一のメッセージを再送するまでに待機する時間（スリープ時間）をランダムに設定することにより実現される。
【０１７０】
なお、十分にランダム性が確保されていれば、再送回数はそれほど大きくする必要はなく、メッセージを複数回送信することに伴うオーバヘッドを抑制できる。
【０１７１】
また、図３０に示すスリープ時間は、他のノードからの信号を受信するための受信期間としてもよい。すなわち、各ノードでは、受信期間と送信期間とが交互に切り替えられるとともに、受信期間の長さをランダムに変更するようにしてもよい。
【０１７２】
［Ｈ．メッセージ時間長に基づくネットワーク識別］
上述したように、本実施の形態に従う通信方法においては、メッセージが示す値に対応する時間間隔と、メッセージ時間長とに基づいて、多重化伝送を実現する。すなわち、メッセージ時間長を異ならせることで、他のメッセージ時間長のノードとは独立したネットワークを構成できる。
【０１７３】
図３１は、本実施の形態に従う通信方法を採用するネットワークシステムの別の一例を示す模式図である。図３１には、ノードＡ１〜Ａ３とノードＢ１〜Ｂ３が近接して存在する例を示す。ノードＡ１〜Ａ３は、メッセージ時間長ＣＡのメッセージを生成するネットワークＡを構成し、ノードＢ１〜Ｂ３は、メッセージ時間長ＣＢのメッセージを生成するネットワークＢを構成する。
【０１７４】
メッセージ時間長Ｃを異ならせることで、別のネットワークに属するノードから送信されたメッセージは正しく復元されないので、パルス列を含む信号が同時に送信された場合であっても、自ネットワークに属するノード間でメッセージの遣り取りを実現できる。
【０１７５】
［Ｉ．付記］
本実施の形態は、以下のような技術思想を含む。
【０１７６】
（１）パルスベースのメッセージ符号化方法であって、各メッセージ内において、パルス間の時間間隔の間に機能的な関係性が規定されている。
【０１７７】
（２）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｆ（ｘ），Ｉ２３＝ｇ（ｘ），Ｉ３４＝Ｃ−ｆ（ｘ）−ｇ（ｘ）の関係を満たす。
【０１７８】
（３）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｆ（ｘ），Ｉ２３＝ｇ（ｘ），Ｉ３４＝Ｃ−ｆ（ｘ）−ｇ（ｘ）の関係を満たし、ｆ（ｘ），ｇ（ｘ）は、ｘについて単調増加関数または単調減少関数である。
【０１７９】
（４）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｘ，Ｉ２３＝ｘ，Ｉ３４＝Ｃ−２ｘの関係を満たす。
【０１８０】
（５）パルスベースのメッセージ符号化方法であって、各メッセージ内において、パルス間の時間間隔の間に機能的な関係性が規定されるとともに、先頭のパルスと最終のパルスとの間は固定値のメッセージ時間長Ｃである。
【０１８１】
（６）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｆ（ｘ），Ｉ２３＝Ｃ−ｆ（ｘ）−ｇ（ｘ），Ｉ３４＝ｇ（ｘ）の関係を満たす。
【０１８２】
（７）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｆ（ｘ），Ｉ２３＝Ｃ−ｆ（ｘ）−ｇ（ｘ），Ｉ３４＝ｇ（ｘ）の関係を満たし、ｆ（ｘ），ｇ（ｘ）は、ｘについて単調増加関数または単調減少関数である。
【０１８３】
（８）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝ｘ，Ｉ２３＝Ｃ−２ｘ，Ｉ３４＝ｘの関係を満たす。
【０１８４】
（９）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝Ｃ−ｆ（ｘ）−ｇ（ｘ），Ｉ２３＝ｆ（ｘ），Ｉ３４＝ｇ（ｘ）の関係を満たす。
【０１８５】
（１０）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝Ｃ−ｆ（ｘ）−ｇ（ｘ），Ｉ２３＝ｆ（ｘ），Ｉ３４＝ｇ（ｘ）の関係を満たし、ｆ（ｘ），ｇ（ｘ）は、ｘについて単調増加関数または単調減少関数である。
【０１８６】
（１１）パルスベースのメッセージ符号化方法であって、各メッセージは４つの連続するパルスＰ１，Ｐ２，Ｐ３，Ｐ４により規定される。メッセージとして符号化される値ｘについて、パルス間の時間間隔Ｉ１２［Ｐ１，Ｐ２］，Ｉ２３［Ｐ２，Ｐ３］，Ｉ３４［Ｐ３，Ｐ４］は、Ｉ１２＝Ｃ−２ｘ，Ｉ２３＝ｘ，Ｉ３４＝ｘの関係を満たす。
【０１８７】
（１２）パルス間の時間間隔は、連続時間として設定される。
（１３）パルス間の時間間隔は、所定の時間分解能での離散時間として設定される。
【０１８８】
（１４）複数のメッセージが時間的に重なっている場合、メッセージ間で衝突が発生している場合、ノイズの影響を受けて意図しないパルスが混入している場合、ノイズの影響を受けて当初のパルスが脱落している場合のいずれであっても、これらのメッセージを復号するアルゴリズム。
【０１８９】
（１５）各ノードが同一のメッセージを連続して複数回送信する時間間隔をランダムに設定することで、受信側においてメッセージの復号についての不確実性を低減する方法。
【０１９０】
（１６）他のノードから同一のメッセージを複数回に亘って送信する際の時間間隔をランダムに設定することで、受信側のノードにおいて各メッセージを復号するアルゴリズムを繰返し実行することで、送信されたメッセージを確実に復号する方法。
【０１９１】
［Ｊ．利点］
本実施の形態においては、２つの連統するパルス間の時間間隔を用いて情報を符号化する。特に、本実施の形態においては、情報を一連のパルス列に変換する前に、誤り訂正符号化を適用して情報をバイナリコードワードに変換するのではなく、衝突からの回復をより効率的に行なえるように、情報をパルスに直接符号化する。
【０１９２】
誤り訂正可能な程度は、情報の符号化に用いられるパルスの数に依存する。典型的な実施の形態においては、ある一対のパルス間の時間間隔が一定のメッセージ時間長Ｃであるパルス列を使用する。この一対のパルス間において、パルス間の時間間隔が互いに相関するようにパルス列を配置する。
【０１９３】
このような符号化の最も単純化された形式として、スパイクタイムｓｔ１，ｓｔ２，ｓｔ３，ｓｔ４に発生するパルスＰ１，Ｐ２，Ｐ３，Ｐ４からなるパルス列を用いたときに、ｓｔ２−ｓｔ１＝ｓｔ３−ｓｔ２、および、ｓｔ４−ｓｔ１＝Ｃが成立する場合が挙げられる。なお、ｓｔ２−ｓｔ１＝ｓｔ３−ｓｔ２＜Ｃ／２が成立するように、スパイクタイムｓｔ１，ｓｔ２，ｓｔ３は選択される。
【０１９４】
このような符号化により生成されるメッセージは、メッセージ時間長Ｃのフレームとなり、当該フレームの開始を示す「アンカ」と称されるパルスＰ１と、当該フレームの「終了」を示すパルスＰ４と、フレーム内に２つの等しい時間間隔を規定する２つのパルスＰ２，Ｐ３を含むことになる。
【０１９５】
メッセージを誤りに対してよりロバストにするために、フレーム内にさらにパルスを配置するようにしてもよい。例えば、１フレーム内にパルスを追加して、同一の値が複数回に亘って繰返し符号化されるようにしてもよい。
【０１９６】
一対のパルス間のメッセージ時間長Ｃは、他のノードからのパルスが混在していても、フレームのアンカとなるパルスの識別を可能にする。さらに、メッセージを複数回送信することで、復号処理を冗長化することができ、複数のノードからのメッセージ送信により衝突が発生したとしても、元の情報を復元できる。
【０１９７】
本実施の形態に従う通信方法は、何らかの衝突が発生した場合であっても、元の情報を正確に復元できるアルゴリズムを提供する。情報を復元するアルゴリズムは、観測されるパルス列から何らかの情報を符号化したメッセージとなり得る複数の候補を抽出する。パルスを受信する毎に、メッセージ（フレーム）となり得る複数の候補が発生する可能性がある。そのため、メッセージは、ランダムに決定されるスリープ時間の後に所定回数だけ追加で送信されるようにしてもよい。このようなランダムに決定されるスリープ時間を用いることで、送信数を増加させるに伴って、メッセージを復元するための候補の数を低減できるという効果を奏する。
【０１９８】
本実施の形態に従う通信方法においては、ランダムに決定されるスリープ時間を用いるため、少ない再送回数で元の情報を復元でき、また、衝突が発生しても、メッセージを再送しなければならない可能性を低減できる。
【０１９９】
本実施の形態に従う通信方式において、連続するパルス間の時間間隔は連続時間が理想的ではあるが、現実の実装においては、パルスのタイミングの誤差やジッタが生じるため、離散時間を使用する必要がある。離散時間を使用することで、復号化処理において、より多くの復元可能性を生じさせ、この結果、メッセージが誤って復号されてしまう可能性も生じ得るが、そのような誤りが生じる可能性は実用上問題ないレベルに抑制できる。
【０２００】
本実施の形態に従う通信方式において、送信ノードと受信ノードとの間に同期は必要なく、非同期で動作できる。このような非同期動作によれば、同一のメッセージを複数回に亘って送信する際に、先行のメッセージの送信から次のメッセージの送信までの時間間隔をランダムに決定することに役立つ。本実施の形態に従う通信方式は非同期動作を採用するため、非コヒーレントインパルス無線ＵＷＢなどに適している。
【０２０１】
本実施の形態に従う通信方式の応用を想定した場合、例えば、モノのインターネット（ＩｏＴ：Internet of Things）の実現には、日常の小さなモノに含まれるフルポテンシャルを引き出すために概念的な再考が必要である。センシングは、従来の概念よりはるかに高密度で行なわれることが想定されている。すなわち、比較的小さな距離で相互作用する多数のノードが必要となることを意味する。
【０２０２】
ノードの数が非常に大きくなることによって、各ノードのバッテリを頻繁に充電することは不可能であるため、各ノードのエネルギー消費量は非常に少なくしなければならない。また、既存の無線技術（例えば、狭帯域無線）との干渉も予想されるため、このような干渉を最小限に抑えるために、新しい符号化、誤り訂正方法、および信号処理方法が必要となる。例えば、小さなノード間距離においては、低電力でのブロードキャストを使用することによって、干渉を最小限に抑えられるが、さらなる干渉の抑制を達成するためには、非コヒーレントインパルス無線ＵＷＢなどの、インパルス型通信の導入が不可欠になると想定される。
【０２０３】
本実施の形態に従う通信方式においては、脳内の信号伝送と同様に、ノード間の通信にはパルス列（スパイク列）が使用されることで、エネルギー消費量を非常に小さくできる。
【０２０４】
一例として、本実施の形態に従う通信方式は、低電力消費を維持しつつ、他のノードと通信する際に高いビットレートが必ずしも必要ではない無線アプリケーションにおいて有用である。このような無線アプリケーションの典型例としては、パーソナルエリアネットワーク（ＰＡＮ：Personal Area Network）、ボディエリアネットワーク（ＢＡＮ：Body Area Network）、多数の低コストノードを有する無線センサネットワーク、および、アクティブモードで動作できるＲＦＩＤタグあるいは非コヒーレントインパルス無線に基づく近距離無線通信（ＮＦＣ）を採用しているタグなどが挙げられる。
【０２０５】
また、柔軟で費用対効果の高い方法で展開できるセンサノードを用いて災害監視にも適用可能である。大規模な災害発生時には、ネットワークインフラストラクチャが危険にさらされたり過負荷になる可能性があるため、既存のネットワークとは独立するとともに、多くの準備なしで迅速に運用可能なセンサネットワークの確立が急務である。本実施の形態に従う通信方式は、このようなアプリケーションの要件にも適合する。
【０２０６】
本発明に係るコア技術は、単純な相互作用によって、日常にある単純なモノをインテリジェント化できたインターネットの実現を可能にするものである。
【０２０７】
例えば、ユーザが、多数あるモノのうちから特定の１つを探索しようとするときに、ユーザに対して認知可能の情報をまとめて送信する構成、あるいは、手の形のようにユーザの必要に応じてオンザフライで適応する構成などを考えることができる。
【０２０８】
また、日常生活の中でモノを使って医療モニタリングを行なうことも可能である。例えば、ユーザの手に保持されるモノ、あるいは、ユーザによって着用されるモノは、心拍数や体温などを監視するのに非常に適している。そのため、周囲環境を実現する技術を安価に提供することができる。長期的には、本発明に係るコア技術を用いることで、非常に小さく、かつ、非常に安価なノードによる超高密度モニタリングを用いて新たなアプリケーションを提供できる。このような新たなアプリケーションの一例として、農業分野において、植物の疾病の管理、水や栄養のモニタリングなどが挙げられる。
【０２０９】
上述したアプリケーションに限られず、本発明に係るコア技術は、任意のアプリケーションに応用可能である。
【０２１０】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１１】
１  ネットワークシステム、３０１，３０２  メッセージ、２  ノード、４  アプリケーション、２０  送受信コントローラ、２１  符号化部、２２  送信回路、２３  アンテナ、２４  受信回路、２５  復号部、３２，３２１，３２２，３２３，３２４，３２５，３２６，３２７，３２８，３２９，３３０，３３１，３３２，３３３，３３４  スパイクオートマトン、５０，３１１，３１２，３１３，３１４，３１５，３１６，３１７，３１８  パルスイベント、２５１  パルス検出部、２５２  オートマトン管理部、２５３  カウンタ、２５４  パルスイベントキュー、２５５  メッセージ復元部、２５６  オートマトンキュー、２５８  レジスタ、３０３  受信パルス列、３０４，３０５  復号結果、３０６  衝突区間、３２１３，３２２３，３２２４，３２３３，３２４３，３２５３，３２６３，３２７３，３２７４，３２８３，３２９３，３３０３，３３１３，３３２３，３３３３  スパイクタイム、Ｃ  メッセージ時間長、ＳＴ，ＳＴ１，ＳＴ２，ＳＴ３，ＳＴ４  ステート。
【図１】
2020014093.tif 000003
【図２】
2020014093.tif 000004
【図３】
2020014093.tif 000005
【図４】
2020014093.tif 000006
【図５】
2020014093.tif 000007
【図６】
2020014093.tif 000008
【図７】
2020014093.tif 000009
【図８】
2020014093.tif 000010
【図９】
2020014093.tif 000011
【図１０】
2020014093.tif 000012
【図１１】
2020014093.tif 000013
【図１２】
2020014093.tif 000014
【図１３】
2020014093.tif 000015
【図１４】
2020014093.tif 000016
【図１５】
2020014093.tif 000017
【図１６】
2020014093.tif 000018
【図１７】
2020014093.tif 000019
【図１８】
2020014093.tif 000020
【図１９】
2020014093.tif 000021
【図２０】
2020014093.tif 000022
【図２１】
2020014093.tif 000023
【図２２】
2020014093.tif 000024
【図２３】
2020014093.tif 000025
【図２４】
2020014093.tif 000026
【図２５】
2020014093.tif 000027
【図２６】
2020014093.tif 000028
【図２７】
2020014093.tif 000029
【図２８】
2020014093.tif 000030
【図２９】
2020014093.tif 000031
【図３０】
2020014093.tif 000032
【図３１】
2020014093.tif 000033