以下、本開示の実施の形態について図面を参照して詳細に説明する。
デジタルデータの通信を行う際には、その伝送路の特性に応じて、データはパケットと呼ばれる単位に分割されて送信される。LPWAは特性上低データレートであり、1パケットのサイズは10数byteから数十byteが一般的である。そのため、百byte以上のデータを送信するためには、複数のパケットに分割する必要がある。
以下では、LPWAにおける通信において、通信データを複数のパケットに分割して送信する際に効率的に通信を行う方法について説明する。
LPWAは大きく2種類の通信方式に分類できる。一方は通信を行うのに免許が必要なライセンスバンドを使う通信方式であり、他方は通信を行うのに免許が不要なアンライセンスバンドを使う通信方式である。後者のアンライセンスバンド(例えば、日本では920MHz帯)を用いる通信では、免許は不要であるものの、日本で通信を行う際にはARIBの規定に従う必要がある。
ここで、LPWAにおけるアンライセンスバンドを用いる通信方式の一つにLoRa(登録商標)がある。
LoRaは、データリンク層ではLoRaWAN(登録商標)と呼ばれるLoRa Allianceが提案する標準化仕様に基づいている。LoRaでは、ゲートウェイ、端末の配置の自由度が高く、モジュールコストも安価である。ただし、LoRaに従って日本で通信を行う際には上述したようにARIBの規定に従う必要があり、例えば、連続送信時間400ms、送信間隔4000ms(つまり、duty比1:10)などの制約が存在する。
LoRaにおいて上記制約に従うと、例えば、SF10(Spreading Factor 10)という設定においては1パケットあたり最大11byteのペイロードしか確保できない等の制限が存在する。このため、LoRaでは、数百〜数kbyteオーダーの送信情報の送信でも、複数のパケットに分割して送信されることになる。また、各パケットあたりのペイロードサイズが小さいので、数byteのヘッダ情報の追加でも大きなオーバーヘッドとなってしまう。
また、LPWAでは、上記送信の制約により、頻繁に下り通信ができない、又は、任意のタイミングでデータ送信できない等の制限が存在する。この制限を解決するための方法として、AL-FEC(Application layer FEC:アプリケーション層における前方誤り訂正)の適用が考えられる。
受信側で誤りを検出した際、送信側へ再送を要求することにより誤りを訂正する方法が一般的であるが、再送制御が困難である場合等では、FEC(Forward Error Correction:前方誤り訂正)と呼ばれる方法が適用される。FECとしては、LDPC(Low Density Parity Check)等がある。FECでは、送信側が送信データに加えて訂正符号(冗長データ)を付加することにより、受信側である程度の訂正が可能となる。FECは、適用するレイヤにより、AL-FECとPHY-FECに分類できる。AL-FECは、FECをアプリケーションレイヤに適用した技術であり、パケットロスなどによって失われたアプリケーションデータをパケット単位で回復することを特徴とする。また、PHY-FECは、FECを物理レイヤに適用した技術であり、フェージングなどによって破損した伝送データをbit単位で回復することを特徴とする。
AL-FECは、LPWAのように下り通信に制限がある環境又はパケット分割が多く発生する環境との相性が良く、LPWAに対して非常に有効な機能となる。
しかしながら、LPWAの1パケットあたりのペイロードサイズの制約を考慮すると、LPWAにおいてAL-FECを適用する際、AL-FEC向けのヘッダ情報を可能な限り抑える必要がある。すなわち、LPWAのパケット送信において、AL-FEC向けのヘッダ情報を抑え、実際に送信情報を割り当てるペイロード領域をより確保する必要がある。
そこで、本開示の一態様では、AL-FEC向けのヘッダ情報を抑えてLPWAによる通信を適切に行う方法について説明する。
(実施の形態1)
[通信システムの概要]
本開示の一実施の形態に係る通信システムは、送信装置100及び受信装置200を備える。
本開示の一態様に係る送信装置100及び受信装置200は、通信データをシンボルと呼ばれる単位に分割し、パケットへ格納する。一般的には、1つのパケットには1つのシンボルが格納されるが、1つのパケットに複数のシンボルを格納することも可能である。
図1は本開示の実施の形態に係る送信装置100の一部の構成を示すブロック図である。図1に示す送信装置100において、パケット生成部105は、送信情報から生成される情報語シンボルと、情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを生成し、送信部106は、複数のパケットを受信装置200へ送信する。
図2は本開示の実施の形態に係る受信装置200の一部の構成を示すブロック図である。図2に示す受信装置200において、受信部202は、送信情報から生成される情報語シンボルと、情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを送信装置100から受信し、復号部204は、複数のパケットに含まれる符号語シンボルを復号する。
ここで、複数のパケットにおける、情報語シンボルを含む第1のパケットの数(後述するK)、及び、パリティシンボルを含む第2のパケットの数(後述するM)は、送信装置100と受信装置200との間で共有されている。
[送信装置の構成]
図3は、本実施の形態に係る送信装置100の構成を示すブロック図である。送信装置100は、例えば、LPWA(LoRa等)の通信方式に従って受信装置200へデータ(送信情報)を送信する。
図3において、送信装置100は、送信情報生成部101と、情報語シンボル生成部102と、パリティシンボル算出部103と、シンボル数設定部104と、パケット生成部105と、送信部106と、アンテナ107と、を有する。
送信情報生成部101は、受信装置200向けの送信情報を生成し、送信情報を情報語シンボル生成部102に出力する。例えば、送信情報は、センサ(図示せず)におけるセンシング結果を示すセンシング情報等である。なお、送信情報は、センシング情報に限定されない。
情報語シンボル生成部102は、送信情報生成部101から入力される送信情報を用いて、符号語シンボルに含まれる少なくとも1つの情報語シンボル(有効パケット)を生成する。情報語シンボル生成部102は、生成した情報語シンボルをパリティシンボル算出部103に出力する。
パリティシンボル算出部103は、情報語シンボル生成部102から入力される情報語シンボルを用いて、パリティシンボル(冗長シンボル)を算出する。パリティシンボル算出部103におけるパリティシンボルの算出方法(つまり、AL-FECの方法)には、例えば、LDPCを適用してもよく、他の誤り訂正方法を適用してもよい。パリティシンボル算出部103は、情報語シンボル、及び、算出したパリティシンボルをパケット生成部105に出力する。
このように、送信情報から生成される少なくとも1つの情報語シンボルと、当該情報語シンボルから算出される少なくとも1つのパリティシンボルとから符号語シンボルが構成される。
シンボル数設定部104は、符号語シンボルを構成する情報語シンボル数(以下、「K」と表す)、及び、符号語シンボルを構成するパリティシンボル数(以下、「M」と表す)を設定する。すなわち、符号語シンボルが送信される全パケット数はK+Mパケットである。シンボル数設定部104は、設定したシンボル数(K,M値)を示すパケット数情報をパケット生成部105に出力する。
パケット生成部105は、例えば、符号語シンボル(送信情報)の送信前に、シンボル数設定部104から入力されるパケット数情報を含むパケットを生成し、生成したパケットを送信部106に出力する。
また、パケット生成部105は、パリティシンボル算出部103から入力される符号語シンボル(情報語シンボル又はパリティシンボル)の各々を含む複数のパケットを生成する。例えば、パケット生成部105は、符号語シンボルを含むペイロードにヘッダ情報を付加して各パケットを生成する。そして、パケット生成部105は、生成した複数のパケットを送信部106に出力する。
送信部106は、パケット生成部105から入力されるパケットに対して送信処理を施し、アンテナ107を介して受信装置200へ送信する。例えば、送信部106は、LoRaにおいて、連続送信時間400ms、送信間隔4000ms(つまり、duty比1:10)などの規定に従ってパケット送信を行う。
[受信装置の構成]
図4は、本実施の形態に係る受信装置200の構成を示すブロック図である。受信装置200は、例えば、LPWA(LoRa等)の通信方式に従って送信装置100から送信されるパケットを受信する。
図4において、受信装置200は、アンテナ201と、受信部202と、ペイロード抽出部203と、復号部204と、記憶部205と、を有する。
受信部202は、アンテナ201を介して受信した送信装置100からのパケットに対して受信処理を施し、受信パケットをペイロード抽出部203に出力する。
ペイロード抽出部203は、受信部202から入力される受信パケットから、ペイロード部分を抽出する。ペイロード抽出部203は、抽出したペイロードに含まれるパケット数情報を記憶部205に出力し、符号語シンボルを復号部204に出力する。
復号部204は、ペイロード抽出部203から入力される符号語シンボルをを復号して、復号データ(送信情報)を取得する。具体的には、復号部204は、記憶部205から入力される情報語シンボルの個数(K)及びパリティシンボルの個数(M)に基づいて、ペイロード抽出部203から入力される符号語シンボルの構成を特定する。
記憶部205は、ペイロード抽出部203から入力されるパケット数情報に示される情報語シンボルの個数(K)及びパリティシンボルの個数(M)を保存し、復号部204に出力する。
[送信装置100及び受信装置200の動作]
以上の構成を有する送信装置100及び受信装置200における動作について詳細に説明する。
AL-FEC(例えばLDPC)における復号処理に必要なパラメータには、例えば、(i)有効パケット数(情報語シンボル数K)及びパリティパケット数(パリティシンボル数M)又は送信情報の送信に使用される全パケット数(つまり、K+M)のうち少なくとも2つ、(ii)符号語シンボルが送信されるパケットの順序、及び、(iii)パケットロスが発生した場合にどのパケット(何番目のパケット)が消失したかを示す情報等が挙げられる。
例えば、LoRaにおけるパケットのヘッダ情報にはシーケンス番号に相当するパラメータが既に存在しているので、上記パラメータ(ii)、(iii)については、当該シーケンス番号を流用でき、AL-FECのためのヘッダ情報を新たに追加する必要が無い。
また、IoT機器において一度に送信される送信情報のデータ量は固定的であることが推測される。このため、上記パラメータ(i)について、情報語シンボル数(K)又はパリティシンボル数(M)を柔軟に変更するために、各パケット内のヘッダに、パケット数情報(K,M値)を格納する必要性は低い。
そこで、本実施の形態では、受信装置200における復号処理(例えば、AL-FECの復号)の際に必要なパケット数情報(K,M値)は、送信装置100と受信装置200との間で固定的に用いる。つまり、送信情報に基づく符号語シンボルの各々を含む複数のパケットにおける、情報語シンボルを含むパケット数(K)、及び、パリティシンボルを含むパケット数(M)は、送信装置100と受信装置200との間で共有されている。
図5は送信装置100(図3)及び受信装置200(図4)の動作を示すシーケンス図である。また、図6は送信装置100から受信装置200へのパケット送信の一例を示す。
送信装置100は、情報語シンボル数(K)及びパリティシンボル数(M)を決定する(ST101)。例えば、図6では、情報語シンボル数K=3及びパリティシンボル数M=2が決定されている。つまり、1つの送信情報(センサ情報1,2)は5パケットで送信される。
送信装置100は、ST101で決定した情報語シンボル数(K)及びパリティシンボル数(M)を示すパケット数情報(図6では、K=3,M=2)を受信装置200へ通知する(ST102)。
なお、ST102においてパケット数情報が通知されるタイミングは、少なくとも、後述する受信装置200での符号語シンボルの復号処理(ST108)よりも前のタイミングであればよい。例えば、送信装置100と受信装置200との間の通信確立時にパケット数情報が通知されてもよい。
また、パケット数情報の通知には、非特許文献1において「proprietary」として規定されたMac Commandメッセージを用いてもよい。proprietaryは、送信装置100(ネットワーク側)と受信装置200との間で独自に使用・拡張可能なメッセージコマンドである。
また、受信装置200においてK,M値が特定されればよく、パケット数情報としてK,M値が通知される場合に限定されない。例えば、パケット数情報として、全パケット数(=K+M)と情報語シンボル数(=K)とが通知されてもよい。
また、送信装置100は、パケット数情報を含むパケットを複数回(図6では2パケット)送信してもよい。これにより、例えば、受信誤り(パケットロス)によってパケット数情報が受信装置200で正常に受信されなくなる確率を低減することができる。
受信装置200は、ST102で送信装置100から通知されるパケット数情報から特定されるK,M値を保存する(ST103)。
次に、送信装置100は、送信情報に基づいて情報語シンボルを生成し(ST104)、情報語シンボルを用いてパリティシンボルを算出し(ST105)、符号語シンボル(情報語シンボル及びパリティシンボル)の各々を含む複数のパケットを生成する(ST106)。例えば、図6では、送信装置100は、センサ情報1,2毎に、情報語シンボルを各々含む3個のパケット(D#1〜D#3)、及び、パリティシンボルを各々含む2個のパケット(P#1,P#2)を生成する。そして、送信装置100は、ST106で生成したパケットを受信装置200へ送信する(ST107)。
受信装置200は、ST103で保存したK,M値に基づいて、ST107で受信したパケットに含まれる符号語シンボルを復号する(ST108)。具体的には、受信装置200は、ST107で受信したパケット(図6ではセンサ情報1,2毎の5パケット)のうち、K個のパケット(図6では3パケット)を情報語シンボルと判断し、M個のパケット(図6では2パケット)をパリティシンボルと判断する。そして、受信装置200は、K個の情報語シンボル及びM個のパリティシンボルを用いて復号処理を行い、送信情報(センサ情報1,2)を取得する。
このように、本実施の形態では、AL-FEC(例えばLDPC)における復号処理に必要なパラメータである情報語シンボル数(K)及びパリティシンボル数(M)は、受信装置200の復号処理よりも前のタイミング(例えば、通信確立時)において、送信装置100と受信装置200との間で共有されている。
これにより、送信装置100は、送信するパケット内のヘッダに、情報語シンボル数(K)及びパリティシンボル数(M)を含める必要がなくなる。つまり、各パケットに付加されるヘッダ情報から、情報語シンボル数(K)及びパリティシンボル数(M)(上記パラメータ(i))を除外することができる。
これにより、本実施の形態では、パケット内のヘッダ情報を抑えることができ、ペイロード領域を確保することができる。すなわち、本実施の形態では、LPWAのようにペイロードの制約がある場合でも、LPWAにおいてAL-FECを適用する際にAL-FEC向けのヘッダ情報を抑えて、LPWAによる通信を適切に行うことができる。
なお、本実施の形態では、一例として、送信装置100が、符号語シンボルを構成する情報語シンボル及びパリティシンボルのそれぞれの個数を設定し、設定したシンボル数を示すパケット数情報を受信装置200へ送信する場合について説明した。しかし、パケット数情報は、受信装置200での符号語シンボルに対する復号前に、送信装置100と受信装置200との間において共有されていればよい。例えば、パケット数情報は仕様等において予め規定されていてもよい。この場合、送信装置100におけるパケット数情報の設定処理(つまり、図3に示すシンボル数設定部104)及び送信処理が不要となる。
また、本実施の形態において、パケット数情報は、当該パケット数情報に対応する送信情報に対する復号前に通知されていればよい、例えば、送信情報の誤り訂正符号化(例えば、LDPC符号化)における符号化率(つまり、K,M値)が変更される度に、変更後のパケット数情報が送信装置100から端末装置200へ通知されてもよい。この場合でも、送信情報が送信されるパケットにはパケット数情報が含まれないので、当該パケットにおけるヘッダ情報を抑えることができる。
(実施の形態2)
実施の形態1では、符号語シンボルにおける情報語シンボル及びパリティシンボルの個数(パケット数)を送受信側において共有することにより、LPWAにおけるヘッダ情報を削減する方法について説明した。これに対して、本実施の形態では、符号語シンボルにおける情報語シンボル及びパリティシンボルの個数を通知するために必要な各パケットのヘッダ情報を最小限に抑える方法について説明する。
図7は、本実施の形態に係る送信装置300の構成を示すブロック図である。なお、図7において、実施の形態1(図3)と同一の構成には同一の符号を付し、その説明を省略する。具体的には、図7に示す送信装置300では、シンボル数設定部104を含まず、フラグ設定部301が新たに追加されている点、及びパケット生成部302の動作が実施の形態1と異なる。
図7に示す送信装置300において、フラグ設定部301は、パリティシンボル算出部103から入力される符号語シンボルを構成するシンボルがパリティシンボルであるか否かを示すパリティフラグ(parity flag)を設定する。例えば、フラグ設定部301は、パリティシンボルの場合にパリティフラグをon(例えばparity flag=1)に設定し、情報語シンボルの場合にパリティフラグをoff(例えばparity flag==0)に設定してもよい。フラグ設定部301は、符号語シンボル(情報語シンボル及びパリティシンボル)、及び、各シンボルに対して設定したパリティフラグをパケット生成部302に出力する。
なお、フラグ設定部301において設定されるフラグは、シンボルの種別(情報語シンボル及びパリティシンボルの何れであるか)を示すフラグであればよい。
パケット生成部302は、フラグ設定部301から入力される符号語シンボルの各々を含むパケットを生成する。その際、パケット生成部302は、各パケットに対して、フラグ設定部301から入力されるパリティフラグを、当該パリティフラグに対応するシンボルが割り当てられたパケットに含める。
図8は、本実施の形態に係る受信装置400の構成を示すブロック図である。なお、図8において、実施の形態1(図4)と同一の構成には同一の符号を付し、その説明を省略する。具体的には、図8に示す受信装置400では、記憶部205を含まず、シンボル抽出部401が新たに追加されている点が実施の形態1と異なる。
図8に示す受信装置400において、シンボル抽出部401は、受信したパケットに含まれるパリティフラグに基づいて、ペイロード抽出部203から入力される、当該パケットのペイロード部分に含まれるシンボルが情報語シンボルであるかパリティシンボルであるかを判断する。
また、シンボル抽出部401は、送信装置300から送信されるパケットの送信間隔に基づいて、送信情報(つまり、対応する符号語シンボルを含む複数のパケット)の送信が完了したか否かを判断してもよい。例えば、シンボル抽出部401は、パケットを最後に受信してからの経過時間(つまり、無送信区間)が閾値を超える場合、送信情報の送信が完了していると判断してもよい。この場合、シンボル抽出部401は、次に受信したパケットを、新たな送信情報に対応するパケットであると判断する。
[送信装置300及び受信装置400の動作]
以上の構成を有する送信装置300及び受信装置400における動作について詳細に説明する。
図9は送信装置300(図7)及び受信装置400(図8)の動作を示すシーケンス図である。なお、図9において、実施の形態1(図5)と同一動作については同一の符号を付し、その説明を省略する。
また、図10は送信装置300から受信装置400へのパケット送信の一例を示す。
図9において、送信装置300は、後述するST202において生成されるパケットの各々に含まれるシンボルが、ST104で生成される情報語シンボル及びST105で生成されるパリティシンボルの何れであるかを示すフラグ(ここでは、パリティフラグ)を設定する(ST201)。
例えば、図10に示すように、送信装置300は、パケットに含まれるシンボルがパリティシンボル(P)である場合にパリティフラグをon(=1)に設定し、パケットに含まれるシンボルが情報語シンボル(D)である場合にパリティフラグをoff(=0)に設定する。
そして、送信装置300は、パリティフラグ(1bitの情報)及び符号語シンボル(情報語シンボル又はパリティシンボル)を含む複数のパケットを生成する(ST202)。
例えば、LoRaのMAC(Medium Access Control)メッセージフォーマットのMACペイロードフィールド(つまり、LoRaのヘッダ情報フィールド)には、Frame Port(又はFPort)と呼ばれるフィールドが含まれる。Frame Portでは、0〜224の値が設定可能であり、0及び224の値は予約されている一方で、1〜223の値がアプリケーション特有の値として設定可能である。
そこで、送信装置300は、パケット内のFrame Portフィールド(例えば、1〜223の何れか)に、パリティフラグ(1bit)を含めてもよい。これにより、パリティフラグは、既存のヘッダ情報フィールドを用いて通知されるので、AL-FEC(LDPC)のためのヘッダ情報フィールドとして新たなフィールドを追加する必要が無く、オーバーヘッドは増大しない。
図9に示すように、送信装置300は、情報語シンボルを含むK個(図10ではK=3)のパケット(パリティフラグ:off)、及び、パリティシンボルを含むM個(図10ではM=2)のパケット(パリティフラグ:on)を受信装置400へ送信する(ST203)。
一方、受信装置400は、受信した複数のパケットの各々に含まれるパリティフラグに基づいて、当該パケットに含まれるシンボルが情報語シンボルであるかパリティシンボルであるか(シンボルの種別)を判断する(ST204)。具体的には、受信装置400は、パリティフラグがoff(=0)の場合には受信パケットに含まれるシンボルが情報語シンボルであると判断し、パリティシンボルがon(=1)の場合には受信パケットに含まれるシンボルがパリティシンボルであると判断する。受信装置400は、パケットを受信する度にST204の処理を行う。
すなわち、受信装置400は、各パケットに含まれるパリティフラグに基づいて情報語シンボル数K及びパリティシンボル数Mを特定する。
また、受信装置400は、パケットの無送信時間(パケットを最後に受信してからの経過時間)に基づいて、送信情報(符号語シンボル)の送信が完了したか否かを判断する(ST205)。例えば、受信装置400は、パケットを最後に受信してからの経過時間(無送信区間)が閾値を超える場合に、送信情報の送信が完了したと判断する。
ここで、閾値は、設定されたSF値(SF7、SF8、SF9、SF10等)、又は、送信情報の一例としてセンサ情報を用いる場合におけるセンサの測定間隔に基づいて設定されてもよい。例えば、上述したように、LoRaにおいて、連続送信時間400ms、送信間隔4000msが規定された場合、パケットは4.4sec毎に送信される。一方で、送信装置300から送信される各送信情報(例えば、図10に示すセンサ情報1,2)は、数十分又は数時間の頻度のように、パケット送信間隔よりも十分に長い間隔で送信されることも想定される。よって、上記閾値(送信情報の送信完了と判断する経過時間)は、パケットの送信間隔よりも長く、送信情報の送信間隔よりも短い範囲において設定されればよい。
受信装置400は、送信情報の送信完了と判断するまでに受信したパケットに含まれる符号語シンボル(図9ではK個の情報語シンボル及びM個のパリティシンボル)を復号する(ST206)。これにより、受信装置400は、送信情報(例えば、センサ情報)を取得する。
このように、本実施の形態では、送信装置300は、各パケットに含まれる符号語シンボルが情報語シンボルであるかパリティシンボルであるかを示すフラグ(0又は1の1bitの情報)をヘッダ情報として受信装置400に通知する。そして、受信装置400は、フラグに基づいて、情報語シンボル数(K)及びパリティシンボル数(M)を特定する。
これにより、本実施の形態によれば、パケット内のヘッダ情報の増加を最小限(1bit)に抑えて、ペイロード領域を確保しつつ、送信情報単位で符号語シンボル長を可変に設定することが可能となる。よって、本実施の形態では、例えば、LoRaのADR(Adaptive Date Rate)を運用する場合等、無線品質に応じて伝送レートが可変になる場合でも、送信装置300及び受信装置400は、LoRaにおけるパケット通信を適切に行うことができる。
また、本実施の形態によれば、受信装置400はフラグ(パリティフラグ)に基づいて情報語シンボル数及びパリティシンボル数を特定するので、例えば、通信確立時のネゴシエーションにおいて、シンボル数を通知するための情報(例えば、パケット数情報)の通知が不要となる。
また、本実施の形態では、受信装置400は、パケットの無送信区間が閾値を超える場合に送信情報(符号語シンボル)の送信が完了したと判断する。これにより、受信装置400は、次回の有効パケット(つまり、パリティフラグ:offを含むパケット)の受信を待たずに、符号語シンボル(送信情報)の送信完了を特定することができる。
なお、本実施の形態において、受信装置400は、ST205の処理によって送信情報の送信完了を判断する場合に限らず、他の方法に基づいて送信情報の送信完了を判断してもよい。例えば、受信装置400は、送信装置300から通知されるパケットに含まれる情報(送信情報の送信完了を明示的に又は暗黙的に示す情報。上述したパリティフラグを含む)に従って送信情報の送信完了を判断してもよい。
(実施の形態3)
実施の形態2では、受信装置がパリティフラグに基づいて情報語シンボル数及びパリティシンボル数を特定する場合について説明した。ただし、情報語シンボルを含むパケットとパリティシンボルを含むパケットとの境界付近においてパケットロスが発生した場合、消失したパケットに含まれるシンボルが情報語シンボルであるかパリティシンボルであるかを受信装置が判断できないケースが存在する。
一例として、図11Aは送信データを示し、図11Bはパケットロスが発生した場合の受信データを示す。
図11Aでは、送信装置は、情報語シンボルを含む4個のパケットD#1〜D#4(シーケンス番号0〜3)及びパリティシンボルを含む4個のパケットP#1〜P#3(シーケンス番号4〜6)を送信している。また、図11Bでは、受信装置は、シーケンス番号0〜2の3個の有効パケット(parity flag=0)、及び、シーケンス番号5,6の2個のパリティパケット(parity flag=1)を受信している。すなわち、図11Bでは、受信装置は、シーケンス番号3,4のパケットの受信に失敗している。
図11Bの場合、受信装置は、正常に受信されたシーケンス番号5,6に対応するパリティシンボルを用いて、消失したシーケンス番号3,4のパケット(シンボル)を訂正することができる。ここで、図11Cに示すように、シーケンス番号3,4のパケットとしては、双方ともパリティシンボルを含む場合(パターン1)、各々が情報語シンボル及びパリティシンボルを含む場合(パターン2)、及び、双方とも情報語シンボルを含む場合(パターン3)が想定される。しかしながら、受信側では、訂正されたシーケンス番号3,4のパケットに含まれるシンボルが何れのパターンに相当するかを判断することはできない。
そこで、本実施の形態では、パケットロスが発生する場合でも、受信装置において符号語シンボルを適切に復号することができる方法について説明する。
図12は、本実施の形態に係る送信装置500の構成を示すブロック図である。なお、図12において、実施の形態2(図7)と同一の構成には同一の符号を付し、その説明を省略する。具体的には、図12に示す送信装置500では、CRC(Cyclic Redundancy Check)算出部501が新たに追加されている点が実施の形態2と異なる。
図12に示す送信装置500において、CRC算出部501は、情報語シンボル生成部102から入力される情報語シンボルを用いてCRC符号(誤り検出符号)を算出する。CRC算出部501は、情報語シンボル、及び、算出したCRC符号をパリティシンボル算出部103に出力する。
パリティシンボル算出部103では、CRC算出部501において算出されたCRC符号も情報語シンボルの1つとして、パリティシンボルが算出する。そして、パケット生成部302は、符号語シンボルの各々を含む複数のパケットにおいて、情報語シンボルを含むパケットのうち最後尾のパケットに、CRC符号を含める。つまり、CRC符号は、情報語シンボルを含むパケットと、パリティシンボルを含むパケットとの境界のパケットに含まれる。
図13は、本実施の形態に係る受信装置600の構成を示すブロック図である。なお、図13において、実施の形態2(図8)と同一の構成には同一の符号を付し、その説明を省略する。具体的には、図13に示す受信装置600では、CRC検査部602が新たに追加されている点、及び、復号部601の動作が実施の形態1と異なる。
図13に示す受信装置600において、復号部601は、シンボル抽出部401から入力される符号語シンボルを復号する。この際、パスロスが発生したパケットが存在する場合、復号部601は、消失したパケットに含まれるシンボル(情報語シンボル又はパリティシンボル)としてとり得る組み合わせ(パターン)の何れかを想定した符号語シンボルを復号する。そして、復号部601は、復号結果をCRC検査部602に出力する。また、復号部601は、CRC検査部602から入力されるCRC判定結果が誤り無し(CRC:OK)の場合、復号結果(送信情報)を出力する。一方、復号部601は、CRC検査部602から入力されるCRC判定結果が誤り有り(CRC:NG)の場合、他のパターンを想定した符号語シンボルについて再度復号する。復号部601は、例えば、CRC判定結果が誤り有り(CRC:NG)となるまで、上記処理を繰り返す。
CRC検査部602は、復号部601から入力される復号結果に対してCRC判定(誤り検出)を行い、CRCの判定結果(誤り有り(CRC:OK)又は誤り無し(CRC:NG))を復号部601に出力する。
このように、受信装置600は、パケットロスが発生した場合、消失したパケットにおけるパリティフラグがoff(=0)の場合及びof(=1)の場合の双方のパターンを想定して復号(AL-FEC復号)を行い、CRC(誤り検出符号)の検査によって正しいパターンを特定する。
[送信装置500及び受信装置600の動作]
以上の構成を有する送信装置500及び受信装置600における動作について詳細に説明する。
図14は送信装置500(図12)及び受信装置600(図13)の動作を示すシーケンス図である。なお、図14において、実施の形態2(図9)と同一動作については同一の符号を付し、その説明を省略する。
また、図15Aは送信装置500から送信される送信データ(パケット)の一例を示し、図15Bは受信装置600において受信される受信データ(パケット)の一例を示し、図15Cは受信装置600においてパケットロスが発生した場合に想定される符号語シンボルを構成する情報語シンボル(CRC符号を含む)及びパリティシンボルの組み合わせ(パターン)の一例を示す。
図14において、送信装置500は、ST104で生成される情報語シンボルを用いてCRC符号を算出する(ST301)。
そして、送信装置500は、ST104で生成した情報語シンボル及びST301で算出したCRC符号を用いて、パリティシンボルを算出する(ST105)。
例えば、図15Aでは、送信装置500は、情報語シンボルD#1〜D#3を用いてCRC符号を算出し、情報語シンボルD#1〜D#3及びCRC符号を用いてパリティシンボルP#1〜P#3を算出する。すなわち、図15Aでは、情報語シンボル数K=4、パリティシンボル数M=3となる。
送信装置500で生成された符号語シンボル(K+M個のパケット)は受信装置600へ送信される(ST302)。
この際、例えば、受信装置600において、x個(x=0〜K)の情報語シンボルを含むパケット、及び、y個(y=0〜M)個のパリティシンボルを含むパケットのパケットロスが発生したとする。すなわち、受信装置600は、K-x個の情報語シンボル(パケット)及びM-y個のパリティシンボル(パケット)を受信する。例えば、図15Bでは、4個の情報語シンボルを含むパケットのうち1パケット(つまり、x=1。シーケンス番号3のCRC符号)が消失し、3個のパリティシンボルを含むパケットのうち1パケット(つまり、y=1。シーケンス番号4のP#1)が消失している。
受信装置600は、実施の形態2と同様、各パケットに含まれるパリティフラグに基づいてシンボルの種別を判断する(ST204)。図15Bの場合、受信装置600は、シーケンス番号0〜2が情報語シンボル(parity flag=0)であり、シーケンス番号5,6がパリティシンボル(parity flag=1)であると判断する。つまり、図15Bでは、シンボル抽出の結果、受信装置600は、シーケンス番号3,4のパケットロスが発生したと判断する。
そこで、受信装置600は、消失したパケットに含まれるシンボルとして想定される全てのパターンを抽出する(ST303)。例えば、図15Bのようにシーケンス番号3,4のパケットが消失した場合、受信装置600は、図15Cのパターン1〜3を抽出する。具体的には、図15Cに示すように、シーケンス番号3,4のパケットとしては、双方ともパリティシンボル(P#1、P#2)を含む場合(パターン1)、各々が情報語シンボル(CRC符号)及びパリティシンボル(P#1)を含む場合(パターン2)、及び、双方とも情報語シンボル(D#4及びCRC符号)を含む場合(パターン3)が想定される。
そして、受信装置600は、ST303において抽出したパターンのうち何れか1つのパターンを想定した符号語シンボルに対して復号処理を行う(ST304)。なお、図15Bでは、受信装置600は、2つのパリティシンボル(シーケンス番号5,6)を受信しているので、ST304の復号処理において、当該2つのパリティシンボルを用いて、2つの消失したパケット(シーケンス番号3,4)を訂正して情報語シンボル(CRC符号を含む)を得ることができる。
次に、受信装置600は、ST304の復号結果に対してCRC判定(誤り検出)を行う(ST305)。CRC判定がOKの場合(誤り無しの場合)、受信装置600は、復号結果を送信情報として出力する。一方、CRC判定がNGの場合(誤り有りの場合)、受信装置600は、復号処理を行っていない別のパターンを選択し(ST306)、選択したパターンを想定して再度、ST304の復号処理を行う。
一例として、受信装置600が図15Cに示すパターン1〜3についてCRC判定を行う場合について説明する。
図15Cに示すパターン1を想定した場合、受信装置600は、シーケンス番号2のパケット(実際は図15Aに示すように情報語シンボルD#3)をCRC符号として用いて、情報語シンボルD#1,D#2に対するCRC判定を行う。この結果、受信装置600は、CRC判定結果として誤り有りと判定する。
一方、図15Cに示すパターン2(図15Aの送信データと同一構成)を想定した場合、受信装置600は、シーケンス番号5,6のパリティシンボルP#2,P#3を用いてシーケンス番号3のパケット(CRC符号)を復号し、復号により得られたCRC符号を用いて、情報語シンボルD#1〜D#3に対するCRC判定を行う。この結果、受信装置600は、CRC判定結果として誤り無しと判定する。
また、図15Cに示すパターン3を想定した場合、受信装置600は、シーケンス番号5,6のパリティシンボルP#1,P#2を用いてシーケンス番号3,4のパケット(情報語シンボルD#4、CRCパケット。実際は図15Aに示すようにCRC符号及びパリティシンボルP#1)を復号し、復号により得られたCRC符号を用いて、情報語シンボルD#1〜D#4に対するCRC判定を行う。この結果、受信装置600は、CRC判定結果として誤り有りと判定する。
このように、本実施の形態では、送信装置500は、符号語シンボルにおいて情報語シンボルとパリティシンボルとの境界のパケット(情報語シンボルの最後尾)にCRC符号を付加する。そして、受信装置600は、パケットロスが発生し、パリティフラグに基づいて情報語シンボルとパリティシンボルとの境界が判断できない場合には、CRC符号を用いて誤りが無いパターンを検出する。
つまり、本実施の形態では、図15Aに示すように、送信装置500は、CRC符号を情報語シンボルの一部として用いてパリティシンボルを算出する。これにより、受信装置600は、CRC符号を含むパケットが消失した場合でも、正常に受信したパリティシンボルを用いて、AL-FEC復号によってCRC符号を訂正することができる。そして、受信装置600は、得られたCRC符号を用いて他の情報語シンボルの誤り検出を行うことができる。
これにより、本実施の形態によれば、パケットロスが発生した場合でも、受信装置600は、情報語シンボルとパリティシンボルとの境界を正しく判断することができ、送信情報を適切に受信することができる。
なお、図15Aでは、CRC符号を新たなパケット(CRCパケット)として送信する場合について説明したが、これに限定されず、情報語シンボルを含むパケットとパリティシンボルを含むパケットとの境界のパケットに少なくともCRC符号が含まれていればよい。例えば、送信装置500は、情報語シンボルが送信されるパケットの一部(例えば、パディング領域)を用いてCRC符号を送信してもよい。これにより、符号語シンボルの情報量(パケット数)を削減することができる。
また、本実施の形態では、CRCを用いる場合について説明したが、CRCに限定されず、誤り検出可能な符号が使用されればよい。
以上、本開示の各実施の形態について説明した。
なお、上記実施の開示では、一例としてLPWAの一つであるLoRaについて説明したが、本開示を適用可能な通信方式はLoRaに限定されず、他のLPWA規格でもよく、LoRaのように1パケットあたりのペイロードサイズが小さい他の通知方式でもよい。
本開示はソフトウェア、ハードウェア、又は、ハードウェアと連携したソフトウェアで実現することが可能である。上記実施の形態の説明に用いた各機能ブロックは、部分的に又は全体的に、集積回路であるLSIとして実現され、上記実施の形態で説明した各プロセスは、部分的に又は全体的に、一つのLSI又はLSIの組み合わせによって制御されてもよい。LSIは個々のチップから構成されてもよいし、機能ブロックの一部または全てを含むように一つのチップから構成されてもよい。LSIはデータの入力と出力を備えてもよい。LSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。集積回路化の手法はLSIに限るものではなく、専用回路、汎用プロセッサ又は専用プロセッサで実現してもよい。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。本開示は、デジタル処理又はアナログ処理として実現されてもよい。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
本開示の受信装置は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを送信装置から受信する受信機と、前記複数のパケットに含まれる符号語シンボルを復号する回路と、を具備し、前記複数のパケットにおける、前記情報語シンボルを含む第1のパケットの数、及び、前記パリティシンボルを含む第2のパケットの数は、前記送信装置と受信装置との間で共有されている。
本開示の受信装置において、前記受信機は、少なくとも前記符号語シンボルの復号前に、前記第1のパケットの数及び前記第2のパケットの数を示す情報を受信する。
本開示の受信装置において、前記複数のパケットにおける前記第1のパケットの数及び前記第2のパケットの数は予め規定されている。
本開示の受信装置は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを送信装置から受信する受信機と、前記複数のパケットに含まれる符号語シンボルを復号する回路と、を具備し、前記複数のパケットの各々には、当該パケットに含まれるシンボルが前記情報語シンボル及び前記パリティシンボルの何れであるかを示すフラグが含まれる。
本開示の受信装置において、前記回路は、前記パケットを最後に受信してからの経過時間が閾値を超える場合、前記送信情報の送信が完了したと判断する。
本開示の受信装置において、前記複数のパケットにおいて、前記情報語シンボルを含む第1のパケットと前記パリティシンボルを含む第2のパケットとの境界のパケットには、前記情報語シンボルに対する誤り検出符号が含まれ、前記回路は、前記誤り検出符号を用いて、前記情報語シンボルの復号結果に対して誤り検出を行う。
本開示の受信装置において、前記第1のパケットのうちの最後尾のパケットには、少なくとも前記誤り検出符号が含まれる。
本開示の受信装置において、前記パリティシンボルは、前記情報語シンボル及び前記誤り検出符号から算出される。
本開示の受信装置において、前記回路は、前記受信装置において消失したパケットについて、前記第1のパケット及び前記第2のパケットの双方を想定して前記誤り検出を行う。
本開示の送信装置は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを生成する回路と、前記複数のパケットを受信装置へ送信する送信機と、を具備し、前記複数のパケットにおける、前記情報語シンボルを含む第1のパケットの数、及び、前記パリティシンボルを含む第2のパケットの数は、送信装置と前記受信装置との間で共有されている。
本開示の送信装置は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを生成する生成回路と、前記複数のパケットの各々に含まれるシンボルが前記情報語シンボル及び前記パリティシンボルの何れであるかを示すフラグを設定する設定回路と、前記フラグを各々が含む前記複数のパケットを受信装置へ送信する送信機と、を具備する。
本開示の受信方法は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを送信装置から受信し、前記複数のパケットに含まれる符号語シンボルを復号し、前記複数のパケットにおける、前記情報語シンボルを含む第1のパケットの数、及び、前記パリティシンボルを含む第2のパケットの数は、前記送信装置と受信装置との間で共有されている。
本開示の受信方法は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを送信装置から受信し、前記複数のパケットに含まれる符号語シンボルを復号し、前記複数のパケットの各々には、当該パケットに含まれるシンボルが前記情報語シンボル及び前記パリティシンボルの何れであるかを示すフラグが含まれる。
本開示の送信方法は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを生成し、前記複数のパケットを受信装置へ送信し、前記複数のパケットにおける、前記情報語シンボルを含む第1のパケットの数、及び、前記パリティシンボルを含む第2のパケットの数は、送信装置と前記受信装置との間で共有されている。
本開示の送信方法は、送信情報から生成される情報語シンボルと、前記情報語シンボルから算出されるパリティシンボルとから構成される符号語シンボルの各々を含む複数のパケットを生成し、前記複数のパケットの各々に含まれるシンボルが前記情報語シンボル及び前記パリティシンボルの何れであるかを示すフラグを設定し、前記フラグを各々が含む前記複数のパケットを受信装置へ送信する。