IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 独立行政法人情報通信研究機構の特許一覧 ▶ 学校法人東京理科大学の特許一覧 ▶ 国立大学法人大阪大学の特許一覧

特開2024-108664通信プログラム及びパルス符号列の割り当て方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024108664
(43)【公開日】2024-08-13
(54)【発明の名称】通信プログラム及びパルス符号列の割り当て方法
(51)【国際特許分類】
   H04L 25/49 20060101AFI20240805BHJP
   H04J 13/10 20110101ALI20240805BHJP
【FI】
H04L25/49 J
H04J13/10
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023013137
(22)【出願日】2023-01-31
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、総務省、戦略的情報通信研究開発推進事業「超高密度IoTを実現する非同期パルス符号多重通信の研究開発」に関する委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(71)【出願人】
【識別番号】000125370
【氏名又は名称】学校法人東京理科大学
(71)【出願人】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】ペパー フェルディナンド
(72)【発明者】
【氏名】ライプニッツ ケンジ
(72)【発明者】
【氏名】長谷川 幹雄
(72)【発明者】
【氏名】若宮 直紀
【テーマコード(参考)】
5K029
【Fターム(参考)】
5K029EE12
5K029GG03
5K029HH21
(57)【要約】
【課題】多数のデバイスによるデータ通信におけるデータレートの向上を期待可能な通信技術を提供する。
【解決手段】本発明の一側面に係る送信機は、各符号語に対する各パルス符号列の割り当てに従って、送信情報を符号化することで、パルス符号列を生成し、生成された前記パルス符号列を送信する。前記各パルス符号列は、4つ以上のパルスを含む。前記各パルス符号列は、前記各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている。
【選択図】図2
【特許請求の範囲】
【請求項1】
コンピュータに、
各符号語に対する各パルス符号列の割り当てに従って、送信情報を符号化することで、パルス符号列を生成するステップ、及び、
生成された前記パルス符号列を送信するステップ、
を実行させるための通信プログラムであって、
前記各パルス符号列は、4つ以上のパルスを含み、
前記各パルス符号列は、前記各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている、通信プログラム。
【請求項2】
前記各パルス符号列は、n個のパルスを含み、
nは、4以上の自然数であり、
ペアである2つのパルス符号列について、前記タイムスロットの全ての可能なシフト下で配置の一致しない最小のパルスの数がシフト距離として定義され、
前記各パルス符号列の設計は、前記各パルス符号列のどのペアのシフト距離も2n-4であるように前記各パルス符号列が設計されていることにより構成される、
請求項1に記載の通信プログラム。
【請求項3】
前記各パルス符号列について、任意に選択された3つのパルスの間における2つのパルス間隔が特性ペアとして定義され、
前記各パルス符号列の設計は、前記各パルス符号列における全ての特性ペアが異なるように前記各パルス符号列が設計されていることにより構成される、
請求項1に記載の通信プログラム。
【請求項4】
前記各パルス符号列は、前記各パルス符号列における最小のパルス間隔が所定の時間幅以上であるように更に設計されている、
請求項1に記載の通信プログラム。
【請求項5】
前記パルス符号列を生成するステップは、
前記送信情報を複数のグループに分割するステップであって、前記各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成され、かつ前記各グループに属するビットの数は同一である、ステップ、
前記各グループから1ビットずつ取り出すことで1つのフレームを生成することを前記各グループに属するビットが無くなるまで繰り返すことにより複数のフレームを生成するステップ、並びに
前記各フレームを符号語として取り扱うことで、前記各フレームにそれぞれ対応する複数の前記パルス符号列を生成するステップ、
により構成される、
請求項1から4のいずれか1項に記載の通信プログラム。
【請求項6】
前記複数のフレームは、前記情報ビットの属する1つ以上の情報フレーム及び前記検査ビットの属する1つ以上の検査フレームにより構成される、
請求項5に記載の通信プログラム。
【請求項7】
コンピュータに、
パルス符号列を受信するステップ、及び
各符号語に対する各パルス符号列の割り当てに従って、受信した前記パルス符号列を復号化することで、送信情報を取得するステップ、
を実行させるための通信プログラムであって、
前記各パルス符号列は、4つ以上のパルスを含み、
前記各パルス符号列は、前記各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている、通信プログラム。
【請求項8】
受信するステップでは、前記コンピュータは、複数の前記パルス符号列を受信し、
受信される前記複数のパルス符号列は、
前記送信情報を複数のグループに分割するステップであって、前記各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成され、かつ前記各グループに属するビットの数は同一である、ステップ、
前記各グループから1ビットずつ取り出すことで1つのフレームを生成することを前記各グループに属するビットが無くなるまで繰り返すことにより複数のフレームを生成するステップ、並びに
前記各フレームを符号語として取り扱うことで、前記各フレームにそれぞれ対応する複数の前記パルス符号列を生成するステップ、
により生成されたものである、
請求項7に記載の通信プログラム。
【請求項9】
コンピュータが、
符号語の数Ncを取得するステップと、
各符号語にそれぞれ割り当てるNc個のパルス符号列の候補をブロック単位で編成するステップであって、
2つの固定ブロック及びn-k個の自由ブロックが設けられ、
設けられる前記各ブロックは2次元配列を備え、
前記各ブロックの第1軸は、符号語に対応し、
前記各ブロックの第1軸方向における要素数は、取得された前記符号語の数Ncと一致するように設定され、
前記各ブロックの第2軸は、前記パルス符号列に対応し、
前記各ブロックの前記第1軸方向の各位置に配置される第2軸方向の要素列として、前記各ブロックの前記第1軸方向の位置毎に第2軸方向に並ぶ各要素は、パルスがあることを第1の値で表現し、パルスがないことを第2の値で表現することにより、前記各符号語に割り当てられる前記パルス符号列の候補におけるパルスの有無を示し、
前記2つの固定ブロックそれぞれは、前記第2軸方向の先頭及び最後尾それぞれに配置され、
前記n-k個の自由ブロックは、前記2つの固定ブロックの間において、前記第2軸方向に沿って並べて配置され、
前記第2軸方向に沿って並べられた状態で前記2つの固定ブロック及び前記n-k個の自由ブロックの前記第1軸方向の各位置から抽出される前記第2軸方向の一連の要素列が、前記パルス符号列の各候補を示し、
前記2つの固定ブロックそれぞれにおいて、前記第2軸方向の各要素列には、1つ以上の前記第1の値が配置され、
前記2つの固定ブロックにおいて、前記第2軸方向の各要素列に配置される前記第1の値の数の合計はk個であり、
nは、4以上であり、
kは、2以上n未満であり、
前記第2軸方向の先頭に配置される固定ブロックにおける前記第2軸方向の各要素列では、前記第2軸方向の先頭に前記第1の値が配置され、
前記第2軸方向の最後尾に配置される固定ブロックにおける前記第2軸方向の各要素列では、前記第2軸方向の最後尾に前記第1の値が配置され、
各自由ブロックの第2軸方向における要素数は、取得された前記符号語の数Nc以上であり、
前記Nc個のパルス符号列の候補をブロック単位で編成することは、前記各自由ブロックの前記第2軸方向の各要素列において、前記第1の値の配置が前記第1軸方向に重複しないように、1つの前記第1の値を配置し、それ以外の各位置に前記第2の値を配置することにより構成される、
ステップと、
編成された前記Nc個のパルス符号列の候補を検証するステップであって、
前記2つの固定ブロック及び前記n-k個の自由ブロックから抽出される前記第2軸方向の各一連の要素列が前記パルス符号列の各候補として取り扱われ、
前記パルス符号列の各候補について、任意に選択された3つのパルスの間における2つのパルス間隔が特性ペアとして定義され、
前記Nc個のパルス符号列の候補を検証することは、前記パルス符号列の各候補における全ての特性ペアにおいて、一致する特性ペアの組み合わせが存在するか否かを判定することにより構成される、
ステップと、
を実行する、符号語に対するパルス符号列の割り当て方法であって、
前記検証するステップにおいて、一致する特性ペアの組み合わせが存在すると判定された場合、前記コンピュータは、前記n-k個の自由ブロックの少なくとも1つにおいて前記第1の値の配置を変更することで、前記Nc個のパルス符号列の候補を再度編成し、再度編成された前記Nc個のパルス符号列の候補に対して前記検証するステップを実行し、
前記検証するステップにおいて、一致する特性ペアの組み合わせが存在しないと判定された場合、前記コンピュータは、編成された前記Nc個のパルス符号列の候補を前記Nc個の符号語に割り当てるパルス符号列として採用する、
パルス符号列の割り当て方法。
【請求項10】
前記Nc個のパルス符号列の候補を再度編成する処理を所定回数以上繰り返しても、一致する特性ペアの組み合わせが存在しないと判定されるNc個のパルス符号列の候補が得られない場合、前記コンピュータは、前記n-k個の自由ブロックの少なくとも1つにおいて、前記第2軸方向の要素数を1つ以上増やすステップを更に実行し、
前記n-k個の自由ブロックの少なくとも1つにおいて、前記第2軸方向の要素数を1つ以上増やした後、前記コンピュータは、前記第1の値の配置を変更することで、前記Nc個のパルス符号列の候補を再度編成し、再度編成された前記Nc個のパルス符号列の候補に対して前記検証するステップを実行する、
請求項9に記載のパルス符号列の割り当て方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信プログラム及びパルス符号列の割り当て方法に関する。
【背景技術】
【0002】
近年、多数のデバイスがネットワークに接続し、データ通信を行うための通信技術の開発へのニーズが高まってきている。そのような通信技術によれば、例えば、大規模集会で各参加者の状態(例えば、体温)をセンサにより監視するケース、LPWAN(Low Power Wide Area Networks)で多数のノードを接続するケース、多数のタグから情報を収集する(例えば、水中生物の生態を観察する)ケース等で、有効なデータ通信を実現することができる。LPWA(LPWAN)通信規格の一つとして、無線変調にチャープ・スペクトラム拡散を用いることで、微弱な信号でも数km程度の通信が可能なLoRa WAN
規格が存在する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「LPWA (LPWAN) とは?Low Power Wide Area」、[online]、[令和5年1月23日検索]、インターネット<URL: https://soracom.jp/lpwa/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のLPWA通信規格の通信方法によれば、比較的に多数のデバイス(10程度)がデータ通信を行うことができる。しかしながら、従来の方法では、単位時間あたりの送信回数が少なく、データレートが低い。また、上記のようなケースで利用するには、まだまだ通信可能なデバイス数が少ない。そのため、更に多くのデバイスがある程度のデータレートでデータ通信を行うことができる通信技術の実現が望まれている。
【0005】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、多数のデバイスによるデータ通信におけるデータレートの向上を期待可能な通信技術を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上述した課題を解決するために、以下の構成を採用する。なお、以下の発明の構成は適宜組み合わせ可能である。
【0007】
本発明の一側面に係る通信プログラムは、コンピュータに、各符号語に対する各パルス符号列の割り当てに従って、送信情報を符号化することで、パルス符号列を生成するステップ、及び、生成された前記パルス符号列を送信するステップ、を実行させるためのプログラムである。前記各パルス符号列は、4つ以上のパルスを含む。前記各パルス符号列は、前記各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている。
【0008】
当該構成では、各デバイスが非同期にデータ通信を行っても、最大2つのパルスしか重ならない(一致しない)ため、各デバイスから送信されるパルス符号が一致しても、それぞれのパルス符号を復号化することができる。そのため、多数のデバイスが同じ周波数帯域で同時に通信を行うことができ、かつ送信回数を増やすことができる。したがって、当該構成によれば、多数のデバイスによるデータ通信におけるデータレートの向上を期待することができる。
【0009】
上記一側面に係る通信プログラムにおいて、前記各パルス符号列は、n個のパルスを含んでよい。nは、4以上の自然数であってよい。ペアである2つのパルス符号列について、前記タイムスロットの全ての可能なシフト下で配置の一致しない最小のパルスの数がシフト距離として定義されてよい。前記各パルス符号列の設計は、前記各パルス符号列のどのペアのシフト距離も2n-4であるように前記各パルス符号列が設計されていることにより構成されてよい。当該構成によれば、全ての可能なシフト化で最大2つの共通するパルスを有する各パルス符号列を適正に得ることができる。その結果、多数のデバイスによるデータ通信におけるデータレートの向上を適切に期待することができる。
【0010】
上記一側面に係る通信プログラムにおいて、前記各パルス符号列について、任意に選択された3つのパルスの間における2つのパルス間隔が特性ペアとして定義されてよい。前記各パルス符号列の設計は、前記各パルス符号列における全ての特性ペアが異なる(すなわち、重複する特性ペアが存在しない)ように前記各パルス符号列が設計されていることにより構成されてよい。当該構成によれば、全ての可能なシフト化で最大2つの共通するパルスを有する各パルス符号列を適正に得ることができる。その結果、多数のデバイスによるデータ通信におけるデータレートの向上を適切に期待することができる。
【0011】
上記一側面に係る通信プログラムにおいて、前記各パルス符号列は、前記各パルス符号列における最小のパルス間隔が所定の時間幅以上であるように更に設計されていてよい。例えば、電波法等の規則により、データ通信における送信時間が規定される場合がある。当該構成によれば、所定の時間幅を規則に応じて設定することで、当該規則を遵守すると共に、データ通信におけるデータレートの最適化を図ることができる。
【0012】
上記一側面に係る通信プログラムにおいて、前記各パルス符号列に割り当てられる前記各符号語は、1つ以上の情報ビット及び1つ以上の検査ビットにより構成されてよい。当該構成によれば、誤り訂正符号を採用することで、通信エラーに対するロバスト性を高めることができる。
【0013】
上記一側面に係る通信プログラムにおいて、前記パルス符号列を生成するステップは、前記送信情報を複数のグループに分割するステップであって、前記各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成され、かつ前記各グループに属するビットの数は同一である、ステップ、前記各グループから1ビットずつ取り出すことで1つのフレームを生成することを前記各グループに属するビットが無くなるまで繰り返すことにより複数のフレームを生成するステップ、並びに前記各フレームを符号語として取り扱うことで、前記各フレームにそれぞれ対応する複数の前記パルス符号列を生成するステップ、により構成されてよい。当該構成によれば、誤り訂正符号を採用することで、通信エラーに対するロバスト性を高めることができる。
【0014】
上記一側面に係る通信プログラムにおいて、前記複数のフレームは、前記情報ビットの属する1つ以上の情報フレーム及び前記検査ビットの属する1つ以上の検査フレームにより構成されてよい。当該構成では、検査ビットの属するフレームと情報ビットの属するフレームとが区別される。これにより、各グループの情報を復元する際に、情報の多義性に対する剪定が可能となる。
【0015】
上記各側面に係る通信プログラムは、データの送信側の情報処理に対応している。しかしながら、本発明の形態は、このような例に限定されなくてよい。他の一例では、本発明の一側面は、データの受信側の情報処理に対応してよい。この場合、上記各側面において、送信処理を受信処理に置き換え、かつ符号化を復号化に置き換える点を除き、上記各構成の全部又は一部は、データの受信側の情報処理で採用されてよい。更に他の一例では、
本発明の一側面は、符号語に対するパルス符号列の割り当て方法(情報処理方法)であってよい。
【0016】
例えば、本発明の一側面に係る通信プログラムは、コンピュータに、パルス符号列を受信するステップ、及び各符号語に対する各パルス符号列の割り当てに従って、受信した前記パルス符号列を復号化することで、送信情報を取得するステップ、を実行させるためのプログラムであってよい。前記各パルス符号列は、4つ以上のパルスを含み、前記各パルス符号列は、前記各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている。
【0017】
上記一側面に係る通信プログラムにおいて、受信するステップでは、前記コンピュータは、複数の前記パルス符号列を受信してよい。また、受信される前記複数のパルス符号列は、前記送信情報を複数のグループに分割するステップであって、前記各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成され、かつ前記各グループに属するビットの数は同一である、ステップ、前記各グループから1ビットずつ取り出すことで1つのフレームを生成することを前記各グループに属するビットが無くなるまで繰り返すことにより複数のフレームを生成するステップ、並びに前記各フレームを符号語として取り扱うことで、前記各フレームにそれぞれ対応する複数の前記パルス符号列を生成するステップ、により生成されたものであってよい。
【0018】
また、本発明の一側面に係る符号語に対するパルス符号列の割り当て方法は、コンピュータが、符号語の数Ncを取得するステップ、各符号語にそれぞれ割り当てるNc個のパルス符号列の候補をブロック単位で編成するステップ、及び編成された前記Nc個のパルス符号列の候補を検証するステップを実行する情報処理方法である。編成するステップでは、2つの固定ブロック及びn-k個の自由ブロックが設けられる。設けられる前記各ブロックは2次元配列を備える。前記各ブロックの第1軸は、符号語に対応する。前記各ブロックの第1軸方向における要素数は、取得された前記符号語の数Ncと一致するように設定される。前記各ブロックの第2軸は、前記パルス符号列に対応する。前記各ブロックの前記第1軸方向の各位置に配置される第2軸方向の要素列として、前記各ブロックの前記第1軸方向の位置毎に第2軸方向に並ぶ各要素は、パルスがあることを第1の値で表現し、パルスがないことを第2の値で表現することにより、前記各符号語に割り当てられる前記パルス符号列の候補におけるパルスの有無を示す。前記2つの固定ブロックそれぞれは、前記第2軸方向の先頭及び最後尾それぞれに配置される。前記n-k個の自由ブロックは、前記2つの固定ブロックの間において、前記第2軸方向に沿って並べて配置される。前記第2軸方向に沿って並べられた状態で前記2つの固定ブロック及び前記n-k個の自由ブロックの前記第1軸方向の各位置から抽出される前記第2軸方向の一連の要素列が、前記パルス符号列の各候補を示す。前記2つの固定ブロックそれぞれにおいて、前記第2軸方向の各要素列には、1つ以上の前記第1の値が配置される。前記2つの固定ブロックにおいて、前記第2軸方向の各要素列に配置される前記第1の値の数の合計はk個である。nは、4以上であり、kは、2以上n未満である。前記第2軸方向の先頭に配置される固定ブロックにおける前記第2軸方向の各要素列では、前記第2軸方向の先頭に前記第1の値が配置される。前記第2軸方向の最後尾に配置される固定ブロックにおける前記第2軸方向の各要素列では、前記第2軸方向の最後尾に前記第1の値が配置される。各自由ブロックの第2軸方向における要素数は、取得された前記符号語の数Nc以上である。前記Nc個のパルス符号列の候補をブロック単位で編成することは、前記各自由ブロックの前記第2軸方向の各要素列において、前記第1の値の配置が前記第1軸方向に重複しないように、1つの前記第1の値を配置し、それ以外の各位置に前記第2の値を配置することにより構成される。また、検証するステップでは、前記2つの固定ブロック及び前記n-k個の自由ブロックから抽出される前記第2軸方向の各一連の要素列が前記パルス符号列の各候補として取り扱われる。前記パルス符号列の各候補について、任意に選択された3
つのパルスの間における2つのパルス間隔が特性ペアとして定義される。前記Nc個のパルス符号列の候補を検証することは、前記パルス符号列の各候補における全ての特性ペアにおいて、一致する特性ペアの組み合わせが存在するか否かを判定することにより構成される。前記検証するステップにおいて、一致する特性ペアの組み合わせが存在すると判定された場合、前記コンピュータは、前記n-k個の自由ブロックの少なくとも1つにおいて前記第1の値の配置を変更することで、前記Nc個のパルス符号列の候補を再度編成し、再度編成された前記Nc個のパルス符号列の候補に対して前記検証するステップを実行する。前記検証するステップにおいて、一致する特性ペアの組み合わせが存在しないと判定された場合、前記コンピュータは、編成された前記Nc個のパルス符号列の候補を前記Nc個の符号語に割り当てるパルス符号列として採用する。当該構成によれば、上記各側面に係る通信プログラムに使用可能なパルス符号列を適切に得ることができる。なお、上記処理手順において、最後尾の固定ブロックは省略されてよい。この場合、最後尾には自由ブロックが配置されてよく、kは、1以上n未満であってよい。
【0019】
上記一側面に係るパルス符号列の割り当て方法において、前記Nc個のパルス符号列の候補を再度編成する処理を所定回数以上繰り返しても、一致する特性ペアの組み合わせが存在しないと判定されるNc個のパルス符号列の候補が得られない場合、前記コンピュータは、前記n-k個の自由ブロックの少なくとも1つにおいて、前記第2軸方向の要素数を1つ以上増やすステップを更に実行してよい。前記n-k個の自由ブロックの少なくとも1つにおいて、前記第2軸方向の要素数を1つ以上増やした後、前記コンピュータは、前記第1の値の配置を変更することで、前記Nc個のパルス符号列の候補を再度編成し、再度編成された前記Nc個のパルス符号列の候補に対して前記検証するステップを実行してよい。当該構成によれば、各符号語に対するパルス符号列の割り当て(すなわち、パルス符号列の生成)を完了するまでの時間を制御することができる。
【0020】
上記各形態に係る通信プログラムの別の態様として、本発明の一側面は、以上の各構成の全部又は一部を実現する情報処理装置であってもよいし、情報処理システムであってもよいし、情報処理方法であってもよいし、プログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0021】
同様に、上記各形態に係るパルス符号列の割り当て方法の別の態様として、本発明の一側面は、以上の各構成の全部又は一部を実現する情報処理装置であってもよいし、情報処理システムであってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。
【発明の効果】
【0022】
本発明によれば、多数のデバイスによるデータ通信におけるデータレートの向上を期待可能な通信技術を提供することができる。
【図面の簡単な説明】
【0023】
図1図1は、本発明が適用される場面の一例を模式的に例示する。
図2図2は、全てのシフト下で最大2つのパルスしか一致しないように設計されたパルス符号列の具体例を示す。
図3図3は、パルス符号列から特性ペアを算出した結果の具体例を示す。
図4図4は、最小パルス間隔の具体例を示す。
図5A図5Aは、パルス符号列を生成する過程の一例を示す。
図5B図5Bは、パルス符号列を生成する過程の具体例を示す。
図5C図5Cは、パルス符号列を生成する過程の具体例を示す。
図6図6は、実施の形態に係る送信機のハードウェア構成の一例を模式的に示す。
図7図7は、実施の形態に係る受信機のハードウェア構成の一例を模式的に示す。
図8図8は、実施の形態に係る割当装置のハードウェア構成の一例を模式的に示す。
図9図9は、実施の形態に係る送信機のソフトウェア構成の一例を模式的に示す。
図10図10は、実施の形態に係る受信機のソフトウェア構成の一例を模式的に示す。
図11図11は、実施の形態に係る割当装置のソフトウェア構成の一例を模式的に示す。
図12図12は、実施の形態に係る送信機の処理手順の一例を示すフローチャートである。
図13図13は、実施の形態に係る受信機の処理手順の一例を示すフローチャートである。
図14図14は、実施の形態に係る割当装置の処理手順の一例を示すフローチャートである。
図15図15は、Nc個のバルス符号列の候補をブロック単位で編成する過程の一例を模式的に示す。
図16A図16Aは、固定ブロックにおける各値の配置の具体例を示す。
図16B図16Bは、固定ブロックにおける各値の配置の具体例を示す。
【発明を実施するための形態】
【0024】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良及び変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0025】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に示す。図1に示されるシステムは、送信機1、受信機2及び割当装置3を備える。
【0026】
(送信機)
本実施形態に係る送信機1は、パルス符号列により情報を送信するように構成された1台以上のコンピュータである。送信機1は、パルス符号列の送信処理を実行するように構成される通信装置の一例である。本実施形態では、送信機1は、各符号語に対する各パルス符号列の割り当てに従って、送信情報を符号化することで、パルス符号列5を生成する。そして、送信機1は、生成されたパルス符号列5を送信する。
【0027】
(受信機)
本実施形態に係る受信機2は、パルス符号列の信号を受信するように構成された1台以上のコンピュータである。受信機2は、パルス符号列5の受信処理を実行するように構成される通信装置の一例である。本実施形態では、受信機2は、パルス符号列5を受信する。そして、受信機2は、各符号語に対する各パルス符号列の割り当てに従って、受信したパルス符号列5を復号化することで、送信情報を取得する。送信情報は、送信する対象となる情報である。符号語は、パルス符号列に変換される前の情報である。
【0028】
(パルス符号列の設計)
符号語は、情報を構成する各語(情報語)に対応して定義されてよい(後述する本実施形態の一例では、フレーム語に応じて符号語が定義されてよい)。本実施形態では、各符号語に応じて、各パルス符号列が割り当てられる。すなわち、パルス符号列に含まれる各パルスの配置は符号語毎に決定される。異なる符号語には、異なるパルス符号列が割り当てられる(換言すると、各パルスの配置は符号語毎に異なる)。
【0029】
本実施形態では、各パルス符号列は、4つ以上のパルスを含むように構成される。加えて、各パルス符号列は、各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計される。すなわち、各パルス符号列は、全ての可能なシフト下で、各パルス符号列に含まれる4つ以上のパルスのうち最大2つのパルスしか一致(重複)しないように設計される。
【0030】
各パルス符号列の時間幅(長さ)は適宜決定されてよい。一例では、各パルス符号列の時間幅は同じであってよい。他の一例では、パルス符号列の時間幅は少なくとも一部で異なっていてもよい。各パルス符号列の時間幅は、タイムスロットで区切られる。パルスの間隔は、1以上のタイムスロット幅で定義されてよい。説明の便宜のため、明示しない限り、パルスの間隔は1タイムスロットとして取り扱う。
【0031】
一例では、パルス符号列を構成する4つ以上のパルスのうち2つのパルスは、先頭のタイムスロット(最初のタイムスロット)及び最後尾のタイムスロット(最後のタイムスロット)に配置されてよい。残りの2つ以上のパルスは、先頭及び最後尾のパルスの間に配置されてよい。パルスの配置されるタイムスロット部分がパルス有りの部分(オン)に対応し、パルスの配置されないタイムスロット部分がパルスの無い部分(オフ)に対応する。
【0032】
図2は、全ての可能なシフト下で最大2つの共通するパルスを有する(最大2つのパルスしか一致しない)ように設計されたパルス符号列の具体例を示す。図2では、「1」は、対応するタイムスロットにおいてパルスがあることを示す。「1」は、第1の値の一例である。「0」は、対応するタイムスロットにおいてパルスがないことを示す。「9」は、第2の値の一例である。以下の図でも同様の表記を用いる。
【0033】
第1パルス符号列及び第2パルス符号列はそれぞれ、29タイムスロット分の時間幅を有しており、5つのパルスを含むように構成されている。第1パルス符号列では、1番目、4番目、13番目、26番目、及び29番目のタイムスロットにパルスが配置され、それ以外のタイムスロットにはパルスは配置されていない。第2パルス符号列では、1番目、7番目、14番目、23番目、及び29番目のタイムスロットにパルスが配置され、それ以外のタイムスロットにはパルスは配置されていない。
【0034】
この具体例において、第1パルス符号列を固定し、第2パルス符号列を正負(図の左右)の方向にシフトすることを想定する。この場合、第1パルス符号列及び第2パルス符号列の間において、6つの条件(12タイムスロット分だけ右にシフト、6タイムスロット分だけ右にシフト、3タイムスロット分だけ右にシフト、シフトなし、3タイムスロット分だけ左にシフト、10タイムスロット分だけ左にシフト)下で、2つのパルスの一致が生じる。これら以外の条件下では、一致するパルスの数は1つ以下である。
【0035】
このように、符号語に割り当てられる各パルス符号列は、全ての可能なシフト下で、最大2つのパルスしか一致しないように設計される。より詳細には、例えば、図2の第1パルス符号列同士のペア、第2パルス符号列同士のペア等の自己のペア(同一のパルス符号
列同士のペア)の場合、シフト無しの条件下では、全てのパルスが一致する。一方で、例えば、図2の第1パルス符号列及び第2パルス符号列のペア等の異なるパルス符号列のペアの場合、シフト無しの条件下でも、全てのパルスが一致する訳ではない。
【0036】
そこで、各パルス符号列は、自己のペア(同一のパルス符号列同士のペア)について、シフト無しの条件を除く、全ての可能なシフトの条件下で、最大2つのパルスしか一致しないように設計されてよい。加えて、各パルス符号列は、異なるパルス符号列のペアについて、シフト無しの条件を含む、全ての可能なシフトの条件下で、最大2つのパルスしか一致しないように設計されてよい。
【0037】
本実施形態では、上記設計を満たした上で、パルス符号列は生成され、生成されたパルス符号列が符号語に割り当てられる。各符号語に対するパルス符号列の割り当ては、送信機1及び受信機2の間のデータ通信を実施する前に予め決定されてよい。一例では、割り当ては、手動で行われてよい。他の一例では、割り当ては、自動で行われてよい。本実施形態では、後述する割当装置3の処理により、割り当てを自動化することができる。
【0038】
送信機1は、所定の割り当てに従って、送信情報を構成する1つ以上の符号語を符号化することで、1つ以上のパルス符号列5を生成してよい。そして、送信機1は、生成された1つ以上のパルス符号列5を送信してよい。これに応じて、受信機2は、1つ以上のパルス符号列5を受信してよい。受信機2は、所定の割り当てに従って、受信した1つ以上のパルス符号列5それぞれを復号化することで、送信情報を取得してよい。
【0039】
(割当装置)
本実施形態に係る割当装置3は、上記設計を満たすパルス符号列を生成し、生成されたパルス符号列を符号語に対して割り当てる情報処理を実行するように構成された1台以上のコンピュータである。本実施形態では、割当装置3は、符号語の数Ncを取得する。割当装置3は、各符号語にそれぞれ割り当てるNc個のパルス符号列の候補をブロック単位で編成する。そして、割当装置3は、編成されたNc個のパルス符号列の候補を検証する。
【0040】
検証をクリアしなかった場合、割当装置3は、編成する処理及び検証する処理を繰り返し実行する。編成する処理では、割当装置3は、パルスの配置を変更して、Nc個のパルス符号列の候補を再度編成する。検証する処理では、割当装置3は、再度編成されたNc個のパルス符号列の候補を検証する。一方で、検証をクリアした場合、割当装置3は、編成されたNc個のパルス符号列の候補をNc個の符号語に割り当てるパルス符号列として採用する。割当結果は、送信機1及び受信機2に適宜反映されてよい。詳細は後述する。
【0041】
(特徴)
以上のとおり、本実施形態では、送信機1及び受信機2の間のデータ通信は、パルス符号列により行われる。各パルス符号列は、上記設計を満たすように構成される。これにより、例えば、複数の送信機1が1つの受信機2に対して非同期にデータを送信する等のように、複数のデバイスが非同期にデータ通信を行っても、各パルス符号列に含まれる4つ以上のパルスのうち、最大2つのパルスしか一致しない。すなわち、残りの2つ以上のパルスは一致しない。そのため、各送信機1から送信されるパルス符号列が一致しても、それぞれのパルス符号列を復号化することができる。この結果、多数のデバイスが同じ周波数帯域で同時に通信を行うことができ、かつ送信回数を増やすことができる。したがって、本実施形態によれば、多数のデバイスによるデータ通信におけるデータレートの向上を期待することができる。また、割当装置3によれば、このようなデータ通信に使用可能なパルス符号列を適切に得ることができる。
【0042】
(設計指標)
各パルス符号列は、上記設計を満たすように適宜得られてよい。本実施形態では、各パルス符号列は、以下の2つの指標(シフト距離、特性ペア)のうちの少なくともいずれかを用いて、上記設計を満たすように生成されてよい。
【0043】
(1)シフト距離(shifting distance)
本実施形態では、各符号語に割り当てられる各パルス符号列は、n個のパルスを含んでよい。nは、4以上の自然数であってよい。ペアである2つのパルス符号列について、タイムスロットの全ての可能なシフト下で配置の一致しない最小のパルスの数がシフト距離として定義されてよい。これに応じて、各パルス符号列の設計は、当該各パルス符号列のどのペアのシフト距離も2n-4であるように前記各パルス符号列が設計されていることにより構成されてよい。
【0044】
具体的に、v及びwは、任意の基準時間を持つスパイク時間の集合により定義される2つの異なるパルス符号列とする。vは、{T|k=1,・・・,n}で表現され、wは、{T|l=1,・・・,n}で表現されるものとする。この場合、2つの異なるパルス符号列の間のシフト距離d(v,w)は、以下の式1により定義される。まだ、同一のパルス符号列におけるシフト距離d(v)は、以下の式2により定義される。
【0045】
【数1】
・・・(式1)
【数2】
・・・(式2)
【0046】
上記定義における符号のシフト距離は、符号語に割り当てられる全てのパルス符号列に対して式1及び式2で算出されるシフト距離の最小値である。シフト距離が2n-4であることで、上記設計を充足可能であることは明らかである。本実施形態では、このシフト距離を用いて、上記パルス符号列の設計が達成されてよい。この指標(シフト距離)によれば、全ての可能なシフト化で最大2つの共通するパルスを有する各パルス符号列を適正に得ることができる。その結果、多数のデバイスによるデータ通信におけるデータレートの向上を適切に期待することができる。
【0047】
(2)特性ペア(characteristic pair)
本実施形態では、各符号語に割り当てられる各パルス符号列について、任意に選択された3つのパルスの間における2つのパルス間隔(すなわち、第1パルス-第2パルスの間隔及び第2パルス-第3パルスの間隔)が特性ペアとして定義されてよい。これに応じて、各パルス符号列の設計は、各パルス符号列から得られる全ての特性ペアが異なる(すなわち、一致した特性ペアが生じない)ように前記各パルス符号列が設計されていることにより構成されてよい。
【0048】
まず、Nc個のパルス符号列(P,P,・・・,PNc)が与えられているとする。任意のパルス符号列において、m+1個のパルスを選択する。それぞれのパルス時間は、pt,pt,・・・,ptm+1であるとする。この場合、それぞれのパルスの間隔(第1パルス-第2パルス、・・・、第mパルス-第m+1パルスの間隔)は、I
,・・・,Iであるとする。任意のパルス間隔Iは、「I=ptj+1-pt-w」で与えられる。wは、パルスの時間幅(タイムスロットの数)である。説明の便宜上、wは、1であるとする。この場合、汎用的な特性mタプル(characteristic
m-tuple)は、選択されたm+1個のパルスから得られるm個のパルス間隔の集合(I,I,・・・,I)で定義される。m=2の場合の(I,I)が特性ペアと定義される。パルス符号列に含まれるパルスの数がn個の場合、パルス符号列から得られる特性ペアの数は、個である。
【0049】
図3は、8個のパルス符号列それぞれから特性ペアを算出した結果の具体例を示す。図3の具体例では、各パルス符号列は5つのパルスを含むため、各パルス符号列から10個の特性ペアが得られている。例えば、特性ペア(1,8)が2つ以上得られる等、同一のパルス符号列又は2つ以上の異なるパルス符号列から得られた2つ以上の特性ペアが一致すると想定する。すなわち、符号語に割り当てられるパルス符号列から得られる全ての特性ペアにおいて、一意的ではない特性ペアが存在すると想定する。この場合、一意的ではない特性ペアが存在する部分で3つのパルスが一致する。そのため、各パルス符号列から得られる全ての特性ペアが異なるようにする(すなわち、全ての特性ペアが一意的である)ことで、上記パルス符号列の設計を達成可能である。図3の具体例では、各パルス符号列から得られる全ての特性ペアは一意的である。そのため、図3で示される8個のパルス符号列は、上記設計を満たしている。この指標(特性ペア)によれば、全ての可能なシフト化で最大2つの共通するパルスを有する各パルス符号列を適正に得ることができる。その結果、多数のデバイスによるデータ通信におけるデータレートの向上を適切に期待することができる。
【0050】
(最小パルス間隔)
本実施形態では、各符号語に割り当てられる各パルス符号列は、各パルス符号列における最小のパルス間隔(MPI:minimum pulse interval)が所定の時間幅以上であるように更に設計されていてよい。
【0051】
図4は、最小パルス間隔の具体例を示す。図4の例では、3つのパルス符号列が与えられている。第1パルス符号列(第1パルス-第2パルスの間)及び第3パルス符号列(第2パルス-第3パルスの間、第3パルス-第4パルスの間)において、最小パルス間隔が生じている。この例では、最小パルス間隔は、4タイムスロットである。
【0052】
所定の時間幅は、適宜決定されてよい。一例では、所定の時間幅は、例えば、電波法等の規則に応じて設定されてよい。具体例として、パルス送信における休止期間(パルス間隔の時間幅)が50ミリ秒以上である(すなわち、閾値が50ミリ秒である)との規則が与えられていると想定する。この場合、各パルス符号列は、最小パルス間隔の時間幅が50ミリ秒以上となるように設計されてよい。図4の例では、1タイムスロットの時間幅が12.5ミリ秒以上であることで、当該設計を満たすことができる。
【0053】
この設計によれば、所定の時間幅を規則に応じて設定することで、当該規則を遵守することができる。また、最小パルス間隔は、規則により与えられる閾値に近付くように設定されてよい。上記の例では、最小パルス間隔は、50ミリ秒に近いほど望ましい。これにより、データ通信におけるデータレートの最適化を図ることができる。
【0054】
なお、最小パルス間隔の時間幅は、最小パルス間隔を構成するタイムスロットの数及びタイムスロットの時間幅により決定される。最小パルス間隔を構成するタイムスロットの数及びタイムスロットの時間幅を決定する順序は任意であってよい。一例では、タイムスロットの時間幅が決定された後に、最小パルス間隔が所定の時間幅以上となるように、最小パルス間隔を構成するタイムスロットの数が決定されてよい。他の一例では、最小パル
ス間隔を構成するタイムスロット数が決定された後に、最小パルス間隔が所定の時間幅以上となるように、タイムスロットの時間幅が決定されてよい。
【0055】
(誤り訂正符号(誤り制御符号))
本実施形態では、誤り訂正符号(誤り制御符号)が採用されてよい。一例として、情報語に検査語を加えることで、符号語が得られてよい。すなわち、各パルス符号列が割り当てられる各符号語は、1つ以上の情報ビット及び1つ以上の検査ビットにより構成されてよい。例えば、検査ビットは、パリティビット、アダマール符号に関連する冗長ビット等であってよい。検査ビットの構成は、誤り訂正符号の方式に従って決定されてよい。これにより、通信エラーに対するロバスト性を高めることができる。
【0056】
送信情報から符号語を得る過程は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。本実施形態の一例では、送信機1におけるパルス符号列5を生成するステップは、以下の3つのステップにより構成されてよい。すなわち、送信機1は、送信情報を複数のグループに分割してよい。各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成される。加えて、各グループに属するビットの数は同一である。次に、送信機1は、各グループから1ビットずつ取り出すことで1つのフレームを生成することを各グループに属するビットが無くなるまで繰り返すことにより複数のフレームを生成してよい。そして、送信機1は、各フレームを符号語として取り扱うことで、各フレームにそれぞれ対応する複数のパルス符号列を生成してよい。
【0057】
図5Aは、パルス符号列を生成する過程の一例を示す。図5Aの例では、送信情報は、s個の情報語に分割可能であると想定する。各情報語は、1つ以上の情報ビットで構成される。一例では、各情報語は、情報の内容(例えば、数字、文字、記号等の情報の単位)にそのまま対応していてもよい。他の一例では、各情報語は、情報の内容に対応していなくてもよい。すなわち、グループを得る目的のみで、s個の情報語に分割されてよい。
【0058】
まず、送信機1は、送信情報をs個の情報語に分割し、得られた各情報語をs個のグループそれぞれに配分する。各情報語の長さ(情報ビットの数)は、グループ間で同一に設定される。続いて、送信機1は、各グループに検査語を追加する。検査語の構成は、誤り訂正符号の方式に応じて決定される。検査語は、1つ以上の検査ビットで構成される。各検査語の長さ(検査ビットの数)も、グループ間で同一に設定される。これにより、各グループは、1つ以上の情報ビット及び1つ以上の検査ビットにより構成される。また、各グループに属するビットの数は同一に設定される。
【0059】
情報語に対する検査語の配置は任意に決定されてよい。一例では、図5Aに示されるとおり、検査語は、情報語の後に配置されてよい。グループ間で、検査語の配置は、同一であってもよいし、或いは異なっていてもよい。他の一例では、検査語は、各グループでバラバラに配置されてもよい。
【0060】
次に、送信機1は、各グループから1ビットずつ取り出すことで1つのフレームを生成する。送信機1は、各グループに属するビットがなくなるまでフレームの生成を繰り返す。これにより、送信機1は、複数のフレームを生成する。図5Aの例では、各グループがt個のビットを含んでいると想定しているため、t個のフレームが生成される。s及びtの値は任意に決定されてよい。
【0061】
各グループから取り出すビットは任意に選択されてよい。一例では、複数のフレームのうちの少なくともいずれかは、情報ビット及び検査ビットの両方を含むように構成されてよい。他の一例では、全てのフレームは、情報ビット及び検査ビットのいずれかのみ含むように構成されてよい。例えば、情報ビット及び検査ビットに分けて、各グループからビ
ットが取り出されてよい。これにより、生成される複数のフレームは、情報ビットの属する1つ以上の情報フレーム及び検査ビットの属する1つ以上の検査フレームにより構成されてよい。
【0062】
図5Aの例では、情報語の後に検査語が配置され、各グループは行データで示されている。この場合に、列データをフレームとして取得してよい。これにより、情報ビット及び検査ビットに分けて、各グループからビットを取り出すことができる。ただし、ビットの取り出し方は、図5Aの例に限定されなくてよい。
【0063】
そして、送信機1は、各フレームを符号語として取り扱うことで、各フレームにそれぞれ対応する複数のパルス符号列を生成する。図5Aの例では、t個のフレームが生成されているため、t個のパルス符号列が生成される。
【0064】
各グループに含まれるビット数よりも各フレームに含まれるビット数を少なくする(すなわち、t>s)ことで、パルス符号列を割り当てる対象となる符号語の数を抑えることができる。これにより、パルス符号列の数を抑えることができるため、パルス符号列の長さを小さくすることができる。その結果、パルス符号列の生成にかかる計算コストを低減することができる。また、情報フレーム及び検査フレームに分けて各フレームを生成することで、検査フレームの構成に応じて、情報フレームの剪定が可能である。つまり、各グループの情報を復元する際に、情報の多義性に対する剪定が可能となる。
【0065】
図5Bは、パルス符号列を生成する過程の具体例を示す。図5Bの例では、送信情報は、3つのグループに分けられている。各情報語は、4つの情報ビット(d1~d4)で構成されている。誤り訂正符号(検査ビット)には、パリティビットが用いられている。各グループの検査語は、1つのパリティビット(p1)により構成されている。各グループのパリティビットは、「d1^d2^d3^d4^p1=0」の関係が成立するように決定されている(「^」は、XORを示す)。この場合、送信機1は、送信情報を5つのパルス符号列に変換する。そして、送信機1は、変換された各パルス符号列を示すパルス信号を送信する。受信機2は、パリティビットを含む各グループについて、上記関係が成立しているか否かによって、パルスの解釈が成立するか否か/送信エラーが生じているか否かを検査することができる。
【0066】
図5Cは、パルス符号列を生成する過程の他の具体例を示す。図5Cの例は、検査語が、4つのパリティビット(p1~p4)により構成されるように図5Bの例を拡張することで得られる。図5Cの例では、各パリティビットは、「d2^d3^d4^p1=0」「d1^d3^d4^p2=0」「d1^d2^d4^p3=0」及び「d1^d2^d3^d4^p4=0」の関係が成立するように決定されてい
る(「^」は、XORを示す)。この例によれば、受信機2は、送信エラー又はパルス解釈の多義性が生じた場合に、各関係の成立の有無に応じて、情報ビットにおける誤りの位置を特定し、正しい情報ビットを復元することができる。
【0067】
以上のとおり、本実施形態の一例では、送信機1におけるパルス符号列5を生成するステップは、上記3つのステップにより構成されてよい。本実施形態の一例では、受信機2は、これらのステップで生成された複数のパルス符号列を受信してよい。この場合、受信機2は、図5Aに示される処理手順の逆手順により、送信情報を得ることができる。
【0068】
すなわち、受信機2は、得られた各パルス符号列を復号化することで、各フレームの情報を復元してよい。続いて、受信機2は、各フレームの情報から各グループの情報を再現してよい。このとき、受信機2は、検査語に応じて、送信エラーの検査及び多義性に対する剪定を行うことができる。特に、受信機2は、検査ビットに関する上記関係が成立しないフレームの全ての組み合わせを取り除くことが可能である。この場合、誤りの位置の発
見及び再送信を求めることなく、受信機2は、検査ビットをチェックするだけで、復号化における多義性を取り除くことができる。図5Cに例示されるように、正しい情報ビットを復元可能に検査語が構成されている場合、受信機2は、検査語に応じて、正しい情報語を復元することができる。一方で、検査語が、正しい情報ビットを復元可能には構成されていない場合、受信機2は、受信したパルス符号列を破棄してよい。この場合、受信機2は、パルス符号列の再送を送信機1に促してもよい。そして、受信機2は、各グループの情報を連結することで、送信情報を復元することができる。
【0069】
なお、送信情報から符号語を得る過程は、このような例に限定されなくてよい。他の一例では、送信機1は、各グループを符号語として取り扱ってよい(すなわち、フレームの生成を省略してよい)。更に他の一例では、送信機1は、グループに分けることなく、符号語を決定してよい。また、誤り訂正符号は、省略されてもよい。この場合、図5A図5Cの例において、検査ビット(パリティビット)は省略されてよい。
【0070】
(装置構成)
図1の例では、送信機1、受信機2及び割当装置3は、それぞれ別個のコンピュータである。しかしながら、本実施形態に係るシステム構成は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。他の一例では、送信機1、受信機2及び割当装置3のうちの少なくともいずれかの組み合わせは、一体のコンピュータにより構成されてよい。例えば、通信装置は、送信機1及び受信機2を含むことで、パルス符号列の送信及び受信を実行可能に構成されてよい。
【0071】
§2 構成例
[ハードウェア構成]
<送信機>
図6は、本実施形態に係る送信機1のハードウェア構成の一例を模式的に示す。図3の一例では、本実施形態に係る送信機1は、制御部11、記憶部12及び通信インタフェース13が電気的に接続されたコンピュータである。
【0072】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、
RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。制御部11(CPU)は、プロセッサ・リソースの一例である。なお、ハードウェアプロセッサの種類は、これに限定されなくてよい。他の一例では、ハードウェアプロセッサは、FPGA(Field Programmable Gate Array)、その他ハードウェア・デバイス等で構成されてよい。
【0073】
記憶部12は、例えば、ハードディスクドライブ、ソリッドステートドライブ、RAM、フラッシュメモリ等で構成される。記憶部12は、メモリ・リソースの一例である。本実施形態では、記憶部12は、送信プログラム81、割当情報60等の各種情報を記憶する。
【0074】
送信プログラム81は、パルス符号列の送信に関する情報処理(後述の図12)を送信機1に実行させるためのプログラムである。送信プログラム81は、当該情報処理の一連の命令を含む。送信プログラム81は、送信側の情報処理を実行させるための通信プログラムの一例である。割当情報60は、各符号語に対する各パルス符号列の割り当て(すなわち、符号語-パルス符号列間の対応関係)を示すように構成される。
【0075】
通信インタフェース13は、ネットワークを介した無線通信を行うためのインタフェースである。通信インタフェース13は、例えば、無線LAN(Local Area Network)モジュール、光学ベースの通信モジュール、音響ベースの通信モジュール等であってよい。本
実施形態では、送信機1は、通信インタフェース13を介して、他のコンピュータ(例えば、受信機2)にパルス符号列の信号を送信することができる。
【0076】
送信プログラム81及び割当情報60の少なくともいずれかは、記憶媒体91に記憶されていてよい。送信機1は、送信プログラム81及び割当情報60の少なくともいずれかを記憶媒体91から取得してよい。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。送信機1は、ドライブ16を介して、記憶媒体91から各種情報を取得してよい。送信機1は、任意の方法で、ドライブ16と接続されてよい。一例では、送信機1は、外部インタフェース(例えば、USBポート等)を更に備えてよく、外部インタフェースを介して、ドライブ16に接続されてよい。ドライブ16の種類は、記憶媒体91の種類に応じて任意に選択されてよい。なお、図6の例では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【0077】
なお、送信機1の具体的なハードウェア構成に関して、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。送信機1は、温度センサ、赤外線センサ、音センサ等のセンサを更に備えてよく、センサデータをパルス符号列の信号で送信するように構成されてよい。送信機1は、提供されるサービス専用に設計された情報処理装置の他、汎用のPC(Personal Computer)、タブレットPC、携帯端末、センサ装置、タグ装置等で
あってよい。
【0078】
<受信機>
図7は、本実施形態に係る受信機2のハードウェア構成の一例を模式的に示す。図7の一例では、本実施形態に係る受信機2は、制御部21、記憶部22及び通信インタフェース23が電気的に接続されたコンピュータである。受信機2の制御部21、記憶部22及び通信インタフェース23は、上記送信機1の制御部11、記憶部12及び通信インタフェース13と同様であってよい。
【0079】
本実施形態では、記憶部22は、受信プログラム82、割当情報60等の各種情報を記憶する。受信プログラム82は、パルス符号列の受信に関する情報処理(後述の図13)を受信機2に実行させるためのプログラムである。受信プログラム82は、当該情報処理の一連の命令を含む。受信プログラム82は、受信側の情報処理を実行させるための通信プログラムの一例である。
【0080】
送信機1の例と同様に、受信プログラム82及び割当情報60の少なくともいずれかは、記憶媒体92に記憶されていてよい。受信機2は、受信プログラム82及び割当情報60の少なくともいずれかを記憶媒体92から取得してよい。受信機2は、ドライブ26を介して、記憶媒体92から各種情報を取得してよい。受信機2は、任意の方法で、ドライブ26に接続されてよい。ドライブ26及び記憶媒体92は、上記ドライブ16及び記憶媒体91と同様であってよい。
【0081】
なお、受信機2の具体的なハードウェア構成に関して、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサの種類は、特に限定されなくてよく
、実施の形態に応じて適宜選択されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。また、受信機2は、提供されるサービス専用に設計された情報処理装置の他、汎用のPC、タブレットPC、携帯端末、無線ターミナル等であってよい。
【0082】
<割当装置>
図8は、本実施形態に係る割当装置3のハードウェア構成の一例を模式的に示す。図8の一例では、本実施形態に係る割当装置3は、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、及びドライブ36が電気的に接続されたコンピュータである。割当装置3の制御部31、記憶部32及び通信インタフェース33は、上記送信機1の制御部11、記憶部12及び通信インタフェース13と同様であってよい。
【0083】
本実施形態では、記憶部32は、割当プログラム83、割当情報60等の各種情報を記憶する。割当プログラム83は、上記設計を満たすパルス符号列を生成し、生成されたパルス符号列を符号語に対して割り当てる情報処理(後述の図14)を割当装置3に実行させるためのプログラムである。割当プログラム83は、当該情報処理の一連の命令を含む。本実施形態では、割当情報60は、割当プログラム83を実行した結果として生成されてよい。
【0084】
送信機1の例と同様に、割当プログラム83は、記憶媒体93に記憶されていてよい。割当装置3は、ドライブ36を介して、割当プログラム83を記憶媒体93から取得してよい。記憶媒体93及びドライブ36は、上記ドライブ16及び記憶媒体91と同様であってよい。割当装置3は、生成された割当情報60を記憶媒体93に格納してもよい。
【0085】
入力装置34は、オペレータから情報の入力を受け付けるための装置である。入力装置34は、例えば、マウス、キーボード等であってよい。出力装置35は、オペレータに対して情報を出力するための装置である。出力装置35は、例えば、ディスプレイ、スピーカ等であってよい。オペレータは、入力装置34及び出力装置35を利用することで、割当装置3を操作することができる。入力装置34及び出力装置35は、例えば、タッチパネルディスプレイ等により一体的に構成されてもよい。
【0086】
なお、割当装置3の具体的なハードウェア構成に関して、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、入力装置34、出力装置35、及びドライブ36の少なくともいずれかは省略されてもよい。また、割当装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のPC、タブレットPC、携帯端末等であってもよい。
【0087】
[ソフトウェア構成]
<送信機>
図9は、本実施形態に係る送信機1のソフトウェア構成の一例を模式的に示す。送信機1の制御部11は、記憶部12に記憶された送信プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された送信プログラム81に含まれる命令をCPUにより実行する。これにより、本実施形態に係る送信機1は、生成部111及び送信部112をソフトウェアモジュールとして備えるように構成される。すなわち、本実施形態では、送信機1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0088】
生成部111は、各符号語に対する各パルス符号列の割り当てに従って、送信情報を符
号化することで、パルス符号列5を生成するように構成される。本実施形態では、生成部111は、割当情報60を保持している。これにより、生成部111は、割当情報60を参照することで、符号語に対するパルス符号列の所定の割り当て(符号語-パルス符号列間の対応関係)を特定することができる。送信部112は、生成されたパルス符号列5を送信するように構成される。
【0089】
<受信機>
図10は、本実施形態に係る受信機2のソフトウェア構成の一例を模式的に示す。受信機2の制御部21は、記憶部22に記憶された受信プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された受信プログラム82に含まれる命令をCPUにより実行する。これにより、本実施形態に係る受信機2は、受信部211及び取得部212をソフトウェアモジュールとして備えるように構成される。すなわち、本実施形態では、受信機2の各ソフトウェアモジュールも、制御部21(CPU)により実現される。
【0090】
受信部211は、パルス符号列5を受信するように構成される。取得部212は、各符号語に対する各パルス符号列の割り当てに従って、受信したパルス符号列5を復号化することで、送信情報を取得するように構成される。本実施形態では、取得部212は、割当情報60を保持している。これにより、取得部212は、割当情報60を参照することで、符号語に対するパルス符号列の所定の割り当てを特定することができる。
【0091】
<割当装置>
図11は、本実施形態に係る割当装置3のソフトウェア構成の一例を模式的に示す。割当装置3の制御部31は、記憶部32に記憶された割当プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された割当プログラム83に含まれる命令をCPUにより実行する。これにより、本実施形態に係る割当装置3は、取得部311、編成部312、検証部313及び採用部314をソフトウェアモジュールとして備えるように構成される。すなわち、本実施形態では、割当装置3の各ソフトウェアモジュールも、制御部31(CPU)により実現される。
【0092】
取得部311は、符号語の数Ncを取得するように構成される。編成部312は、各符号語にそれぞれ割り当てるNc個のパルス符号列の候補をブロック単位で編成するように構成される。検証部313は、編成されたNc個のパルス符号列の候補を検証するように構成される。検証をクリアしなかった場合、編成部312は、パルスの配置を変更して、Nc個のパルス符号列の候補を再度編成するように構成される。これに応じて、検証部313は、再度編成されたNc個のパルス符号列の候補を検証するように構成される。検証がクリアするまで、これらの処理は繰り返し実行されてよい。採用部314は、検証をクリアした場合に、編成されたNc個のパルス符号列の候補をNc個の符号語に割り当てるパルス符号列として採用するように構成される。
【0093】
<その他>
送信機1、受信機2及び割当装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、送信機1、受信機2及び割当装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、送信機1、受信機2及び割当装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0094】
§3 動作例
[送信機]
図12は、本実施形態に係る送信機1の処理手順の一例を示すフローチャートである。以下で説明する送信機1の処理手順は、送信側における通信方法/送信方法(情報処理方法)の一例である。ただし、以下で説明する送信機1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0095】
ステップS101では、制御部11は、生成部111として動作し、各符号語に対する各パルス符号列の割り当てに従って、送信情報を符号化することで、パルス符号列5を生成する。本実施形態では、制御部11は、割当情報60を参照する。割当情報60により示される各パルス符号列は、各パルス符号列のいずれのペアも、離散数のタイムスロットの全ての可能なシフト下で最大2つの共通するパルスを有するように設計されている。本実施形態の一例では、各パルス符号列は、最小パルス間隔が所定の時間幅以上であるように更に設計されていてもよい。制御部11は、参照した割当情報60により示される所定の割り当てに従って、送信情報を構成する1つ以上の符号語を符号化する。これにより、制御部11は、1つ以上のパルス符号列5を生成する。
【0096】
なお、送信情報は任意に取得されてよい。一例では、送信機1はセンサを備えてよく、送信情報は、センサにより得られるセンサデータにより構成されてよい。また、送信情報は、送信されるデータのタイプを示す情報を含んでもよい。例えば、送信機1は、センサにより温度及び湿度の両方を収集するように構成されていると仮定する。加えて、送信機1は、一度に一つのセンサ値を送信するよう(すなわち、温度及び湿度を同時に送信不能)に構成されていると仮定する。この場合、送信機1は、センサ値と共に、センサ値のタイプ(温度又は湿度)を示す情報を送信情報として取得してよい。また、送信情報は、送信機1の識別情報(ID)を含んでもよい。特定の受信機2に送信情報を送信する場合、送信情報は、その受信機2の識別情報(ID)を含んでもよい。本実施形態がマルチホップのネットワークで使用される場合、送信情報は、ルーティング情報(すなわち、メッセージがソースから最終宛先までたどるルートに関する情報)を含んでもよい。仮想ネットワークが使用される場合、送信情報は、仮想ネットワークの構成、構成内の位置又は機能に関する情報を含んでもよい。送信情報は、時刻(例えば、タイムスタンプ)を含んでもよい。また、ステップS101では、制御部11は、上記図5A図5Cで例示される方法により、複数のパルス符号列5を生成してもよい。パルス符号列5を生成すると、制御部11は、次のステップS102に処理を進める。
【0097】
ステップS102では、制御部11は、送信部112として動作し、生成されたパルス符号列5を送信する。本実施形態では、制御部11は、通信インタフェース13を介して、生成された1つ以上のパルス符号列5にそれぞれ対応するパルス信号を送信する。パルス符号列5の送信が完了すると、制御部11は、本動作例に係る送信機1の処理手順を終了する。
【0098】
制御部11は、任意のタイミングで、ステップS101~ステップS102の処理を繰り返し実行してよい。一例では、制御部11は、送信情報を得たタイミングで、ステップS101~ステップS102の処理を実行してよい。これにより、送信機1は、継続的にパルス信号を送信するように構成されてよい。
【0099】
[受信機]
図13は、本実施形態に係る受信機2の処理手順の一例を示すフローチャートである。以下で説明する受信機2の処理手順は、受信側における通信方法/受信方法(情報処理方法)の一例である。ただし、以下で説明する受信機2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて
、適宜、ステップの省略、置換、及び追加が行われてよい。
【0100】
ステップS201では、制御部21は、受信部211として動作し、パルス符号列5を受信する。本実施形態では、制御部21は、通信インタフェース23を介して、1つ以上のパルス符号列5にそれぞれ対応するパルス信号を受信する。本実施形態の一例では、受信される1つ以上のパルス符号列5は、上記図5A図5Cで例示される方法により生成された複数のパルス符号列5であってもよい。パルス符号列5を受信すると、制御部21は、次のステップS202に処理を進める。
【0101】
ステップS202では、制御部21は、取得部212として動作し、各符号語に対する各パルス符号列の割り当てに従って、受信したパルス符号列5を復号化することで、送信情報を取得する。本実施形態では、制御部21は、割当情報60を参照する。制御部21は、参照した割当情報60により示される所定の割り当てに従って、受信したパルス符号列5を復号化する。これにより、制御部21は、送信情報を取得する。上記図5A図5Cで例示される方法によりパルス符号列5が生成されている場合、制御部21は、生成処理の手順の逆手順で送信情報を復元することができる。取得された送信情報は、例えば、ディスプレイ、任意の記憶領域等に出力されてよい。送信情報の取得が完了すると、制御部21は、本動作例に係る受信機2の処理手順を終了する。
【0102】
制御部21は、任意のタイミングで、ステップS201~ステップS202の処理を繰り返し実行してよい。一例では、制御部21は、パルス信号を受信する度に、ステップS201~ステップS202の処理を実行してよい。これにより、受信機2は、継続的に受信されるパルス信号から送信情報を復元するように構成されてよい。
【0103】
[割当装置]
図14は、本実施形態に係る割当装置3の処理手順の一例を示すフローチャートである。以下で説明する割当装置3の処理手順は、符号語に対するパルス符号列の割り当て方法(情報処理方法)の一例である。ただし、以下で説明する割当装置3の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0104】
(ステップS301)
ステップS301では、制御部31は、取得部311として動作し、パルス符号列を割り当てる対象となる符号語の数Ncを取得する。同一の符号語は、1つの符号語とカウントされる。符号語の数Ncは任意の方法で指定されてよい。一例では、制御部31は、入力装置34を介したオペレータの入力に応じて、符号語の数Ncを取得してよい。他の一例では、与えられた符号語をカウントすることで、符号語の数Ncを取得してよい。更に他の一例では、符号語により符号化されたビットの数から符号語の数Ncを取得してよい。符号語の数Ncを取得すると、制御部31は、次のステップS302に処理を進める。
【0105】
(ステップS302)
ステップS302では、制御部31は、編成部312として動作し、各符号語にそれぞれ割り当てるNc個のパルス符号列の候補をブロック単位で編成する。本実施形態では、Nc個のパルス符号列の候補は任意の方法で得られてよい。本実施形態の一例では、制御部31は、以下の2種類のブロックを使用して、Nc個のパルス符号列の候補を編成することができる。
【0106】
図15は、Nc個のバルス符号列の候補をブロック単位で編成する過程の一例を模式的に示す。図15に示されるとおり、2つの固定ブロック及びn-k個の自由ブロックが設けられる。設けられる各ブロック(固定ブロック/自由ブロック)は、2次元配列を備え
る。各ブロックの第1軸は、符号語に対応する。図15の例では、第1軸方向は、列方向(図の上下方向)である。各ブロックの第1軸方向における要素数は、取得された符号語の数Ncと一致するように設定される。
【0107】
一方、各ブロックの第2軸は、パルス符号列に対応する。図15の例では、第2軸方向は、行方向(図の左右方向)である。なお、第1軸方向及び第2軸方向は、このような例に限られなくてよい。他の一例では、行方向が第1軸方向に設定され、列方向が第2軸方向に設定されてもよい。
【0108】
各ブロックの第1軸方向の各位置に配置される第2軸方向の要素列(図の行データ)として、各ブロックの第1軸方向の位置毎に第2軸方向に並ぶ各要素は、パルスがあることを第1の値で表現し、パルスがないことを第2の値で表現する。これにより、各ブロックの第1軸方向の位置毎に第2軸方向に並ぶ各要素は、各符号語に割り当てられるパルス符号列の候補におけるパルスの有無を示す。図15の例では、上記のとおり、「1」が第1の値であり、「0」が第2の値である。ただし、第1の値及び第2の値は、このような例に限定されなくてよい。第1の値及び第2の値は、任意に設定されてよい。
【0109】
2つの固定ブロックそれぞれは、第2軸方向の先頭及び最後尾それぞれに配置される。n-k個の自由ブロックは、2つの固定ブロックの間において、第2軸方向に沿って並べて配置される。第2軸方向に沿って並べられた状態で2つの固定ブロック及びn-k個の自由ブロックの第1軸方向の各位置から抽出される第2軸方向の一連の要素列(図の点線で示される行データ)が、パルス符号列の各候補を示す。各ブロックを並べた後の第2軸方向の要素数は、パルス符号列を構成するタイムスロットの数(パルス符号列の時間幅)に相当し得る。
【0110】
2つの固定ブロックそれぞれにおいて、第1軸方向の各位置に配置される第2軸方向の各要素列には、1つ以上の第1の値が配置される。2つの固定ブロックにおいて、第2軸方向の各要素列に配置される第1の値の数の合計はk個である。すなわち、2つの固定ブロックにおいて第2軸方向の各要素列(図の行データ)に配置される第1の値の数は同じであり、総数はk個である。nは、4以上であり、パルスの数を示す。パルスの数nは、任意の方法で与えられてよい。一例では、オペレータによる手動で、パルスの数nは与えられてよい。他の一例では、任意の方法で、パルスの数nは自動的に与えられてよい。一方で、kは、2以上n未満である。
【0111】
第2軸方向の先頭に配置される固定ブロックにおける第2軸方向の各要素列では、第2軸方向の先頭に第1の値が配置される。一方、第2軸方向の最後尾に配置される固定ブロックにおける第2軸方向の各要素列では、第2軸方向の最後尾に前記第1の値が配置される。なお、先頭に配置される固定ブロックの第2軸方向の各要素列に含まれる第1の値の数と最後尾に配置される固定ブロックの第2軸方向の各要素列に含まれる第1の値の数とは一致していてもよいし、一致していなくてもよい。
【0112】
図16A及び図16Bは、各固定ブロックにおける第1の値及び第2の値の配置の具体例を示す。各固定ブロックの上記以外の範囲(すなわち、先頭の固定ブロックの先頭及び最後尾の固定ブロックの最後尾以外の範囲)では、第1の値及び第2の値のいずれかが所定の方法で配置されてよい。一例では、各値の配置は、予め指定されてよい。他の一例では、各値の配置は、オペレータにより指定されてよい。更に他の一例では、各値の配置は、ランダム等の任意のアルゴリズムにより決定されてよい。
【0113】
kが3以上である(すなわち、2つの固定ブロックにおける第2軸方向の各要素列が合計3つ以上の第1の値を含む)場合、第2軸方向の先頭及び最後尾以外の位置に第1の値
が配置される。この場合、図16A及び図16Bに例示されるとおり、第1軸方向には第1の値の配置が重複しない(すなわち、第1軸方向には2つ以上の第1の値が存在しない)ように、第2軸方向の各要素列において第1の値が配置される。
【0114】
各自由ブロックの第2軸方向における要素数は、取得された符号語の数Nc以上である。Nc個のパルス符号列の候補をブロック単位で編成することは、各自由ブロックの第2軸方向の各要素列において、第1の値の配置が第1軸方向に重複しない(すなわち、第1軸方向に2つ以上の第1の値が存在しない)ように、1つの第1の値を配置し、それ以外の各位置に第2の値を配置することにより構成される。制御部31は、例えば、ランダム等の任意の方法で、各自由ブロックの第2軸方向の各要素列において、第1の値の配置を決定してよい。このようにブロック単位で編成することで、Nc個のパルス符号列の候補を得ると、制御部31は、次のステップS303に処理を進める。なお、本実施形態の一例では、上記最小パルス間隔が指定されている場合、各ブロックでは、最小パルス間隔を満たすように第1の値が配置されてよい。
【0115】
(ステップS303)
図14に戻り、ステップS303では、制御部31は、検証部313として動作し、編成されたNc個のパルス符号列の候補を検証する。すなわち、制御部31は、得られたNc個のパルス符号列の候補が、上記パルス符号列の設計を満たすか否かを検証する。本実施形態では、制御部31は、上記2つの指標のいずれかを使用して、編成されたNc個のパルス符号列の候補を検証してよい。
【0116】
一例では、制御部31は、上記特性ペアを使用して、編成されたNc個のパルス符号列の候補を検証してよい。具体的には、2つの固定ブロック及びn-k個の自由ブロックから抽出される第2軸方向の各一連の要素列がパルス符号列の各候補として取り扱われる。パルス符号列の各候補について、任意に選択された3つのパルスの間における2つのパルス間隔が特性ペアとして定義されてよい。Nc個のパルス符号列の候補を検証することは、パルス符号列の各候補における全ての特性ペアにおいて、一致する特性ペアの組み合わせが存在するか否かを判定することにより構成されてよい。
【0117】
すなわち、一致する特性ペアの組み合わせが存在しないと判定される場合、検証はクリアである。一方で、一致する特性ペアの組み合わせが存在すると判定される場合、検証はクリアではなく、NGである。制御部31は、一致する特性ペアの組み合わせが見つかった時点で当該検証の探索処理を打ち切ってよい。検証が完了すると、制御部31は、次のステップS304に処理を進める。
【0118】
(ステップS304)
ステップS304では、制御部31は、検証の結果に応じて、処理の分岐先を決定する。一致する特性ペアの組み合わせが存在すると判定された(図14のNO)場合、制御部31は、次のステップS305に処理を進める。一方で、一致する特性ペアの組み合わせが存在しないと判定された(図14のYES)場合、制御部31は、次のステップS307に処理を進める。
【0119】
(ステップS305)
ステップS305では、制御部31は、編成部312として動作し、Nc個のパルス符号列の候補を再度編成する処理を所定回数以上繰り返しても、一致する特性ペアの組み合わせが存在しないと判定されるNc個のパルス符号列の候補が得られていないかどうかを判定する。一例では、所定回数は、実行回数を指標に判定されてよい。他の一例では、所定回数は、実行時間を指標に判定されてよい。
【0120】
再度編成する処理を所定回数以上繰り返しても、検証クリアと判定されるNc個のパルス符号列の候補が得られていないと判定された(図14のYES)場合、制御部31は、次のステップS306に処理を進める。
【0121】
一方、再度編成する処理を所定回数以上繰り返していないと判定された(図14のNO)場合、制御部31は、ステップS306の処理を省略して、ステップS302に処理を戻し、ステップS302から再度処理を実行する。この場合、ステップS302では、制御部31は、n-k個の自由ブロックの少なくとも1つにおいて第1の値の配置を変更することで、Nc個のパルス符号列の候補を再度編成する。第1の値の配置を変更する対象となる自由ブロックは任意の方法で決定されてよい。一例では、発見された一致する特性ペアに関与する自由ブロックにおいて、第1の値の配置が変更されてよく、それ以外の自由ブロックでは、第1の値の配置は変更せずに、そのまま採用されてよい。他の一例では、全ての自由ブロックにおいて、第1の値の配置が変更されてもよい。なお、再編成の際における第1の値の配置は、例えば、ランダム等の任意の方法で決定されてよい。ステップS303では、制御部31は、再度編成されたNc個のパルス符号列の候補に対して上記検証処理を実行する。
【0122】
(ステップS306)
ステップS306では、制御部31は、編成部312として動作し、n-k個の自由ブロックの少なくとも1つにおいて、第2軸方向の要素数を1つ以上増やす。第2軸方向の要素数を1つ以上増やす対象となる自由ブロックは、例えば、所定の順序、ランダム等の任意の方法で決定されてよい。第2軸方向の要素数の増加量も任意の方法で決定されてよい。
【0123】
本実施形態では、自由ブロックの第2軸方向の要素数(幅)が小さいほど、得られるパルス符号列の時間幅は短くなる。つまり、送信効率の高いパルス符号列が得られる。一方で、自由ブロックの第2軸方向の要素数を小さくすると、上記設定を満たすパルス符号列の組み合わせの数は少なくなり、上記検証をクリアするNc個のパルス符号列の探索時間が長くなる可能性がある。そこで、ステップS306の処理により、n-k個の自由ブロックの少なくとも1つにおいて、第2軸方向の要素数を1つ以上増やすことで、上記設定を満たすパルス符号列を発見しやすくする。これにより、上記検証をクリアするNc個のパルス符号列の探索時間を抑えることができる。つまり、ステップS306の処理により、各符号語に対するパルス符号列の割り当て(すなわち、パルス符号列の生成)を完了するまでの時間を制御することができる。
【0124】
第2軸方向の要素数を増やす処理が完了した後、制御部31は、ステップS302に処理を戻し、ステップS302から再度処理を実行する。この場合、上記のとおり、ステップS302では、制御部31は、n-k個の自由ブロックの少なくとも1つにおいて第1の値の配置を変更することで、Nc個のパルス符号列の候補を再度編成する。ステップS303では、制御部31は、再度編成されたNc個のパルス符号列の候補に対して上記検証処理を実行する。
【0125】
(ステップS307)
ステップS307では、制御部31は、採用部314として動作し、編成されたNc個のパルス符号列の候補をNc個の符号語に割り当てるパルス符号列として採用する。本実施形態では、制御部31は、採用されたNc個のパルス符号列を適宜出力してよい。一例では、制御部31は、採用されたNc個のパルス符号列を符号語と共にディスプレイ(出力装置35)に表示してよい。他の一例では、制御部31は、採用されたNc個のパルス符号列の符号語に対する割り当てを示す情報(割当情報60)を生成してよい。制御部31は、生成された割当情報60を所定の記憶領域に保存してよい。所定の記憶領域は、例
えば、制御部31のRAM、記憶部32、記憶媒体93、外部記憶装置等であってよい。生成された割当情報60は、任意のタイミング及び方法で、送信機1及び受信機2に提供されてよい。一例では、割当情報60は、予め組み込まれてもよい。他の一例では、割当情報60は、ネットワーク、記憶媒体等を介して、送信機1及び受信機2に提供されてよい。
【0126】
Nc個のパルス符号列を得ると、制御部31は、本動作例に係る割当装置3の処理手順を終了する。制御部31は、任意のタイミングで、ステップS301~ステップS307の処理を繰り返し実行してよい。一例では、制御部31は、オペレータからの要求に応じて、ステップS301~ステップS307の処理を実行することで、符号語に割り当てるNc個のパルス符号列を生成してよい。
【0127】
[特徴]
以上のとおり、本実施形態では、上記ステップS102及びステップS201におけるデータ通信は、パルス符号列により行われる。各パルス符号列は、上記設計を満たすように構成される。これにより、例えば、複数の送信機1が1つの受信機2に対して非同期にデータを送信する等のように、複数のデバイスが非同期にデータ通信を行っても、各パルス符号列に含まれる4つ以上のパルスのうち(例えば、2つの送信機1それぞれにより送信されたパルス符号列5において)、最大2つのパルスしか一致しない。すなわち、残りの2つ以上のパルスは一致しない。そのため、各送信機1から送信されるパルス符号列が一致しても、それぞれのパルス符号列を復号化することができる。この結果、多数のデバイスが同じ周波数帯域で同時に通信を行うことができ、かつ送信回数を増やすことができる。したがって、本実施形態によれば、多数のデバイスによるデータ通信におけるデータレートの向上を期待することができる。また、ステップS301~ステップS307の処理によれば、このようなデータ通信に使用可能なパルス符号列を適切に得ることができる。
【0128】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。上記実施形態において、種々の改良又は変更が適宜行われてよい。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0129】
<4.1>
上記実施形態では、送信機1及び受信機2は、割当情報60を参照することで、符号語-パルス符号列間の対応関係を特定可能に構成されている。すなわち、上記実施形態では、符号器(生成部111)及び復号器(取得部212)は、ソフトウェアモジュールにより構成されている。しかしながら、符号器及び復号器の構成は、このような例に限定されなくてよい。他の一例では、符号器及び復号器の少なくともいずれかは、ハードウェアモジュールにより構成されてよい。例えば、符号器及び復号器の少なくともいずれかは、論理回路(AND回路、OR回路等)、シフトレジスタ等の物理回路により構成されてよい。符号器及び復号器の少なくともいずれかがハードウェアモジュールとして構成される場合、送信機1及び受信機2のうちの対応する機器において、割当情報60は省略されてよい。
【0130】
<4.2>
上記実施形態の各処理手順について、ステップの省略、置換、及び追加の少なくともいずれかが行われてよい。例えば、上記割当装置3の処理手順(図14)において、ステップS305及びステップS306の処理は省略されてよい。また、例えば、可変長のパル
ス符号列を生成する場合、ステップS302において、最後尾の固定ブロックは省略されてよい。この場合、kは、1以上n未満であってよい。
【符号の説明】
【0131】
1…送信機、
11…制御部、12…記憶部、13…通信インタフェース、
81…送信プログラム(通信プログラム)、
2…受信機、
21…制御部、22…記憶部、23…通信インタフェース、
82…受信プログラム(通信プログラム)、
3…割当装置、
31…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
83…割当プログラム、
5…パルス符号列、60…割当情報
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16A
図16B