(57)【要約】【課題】簡易な構成で、複数のOFDMに断片化されたコードワードが、広い周波数領域に配置されるようにインターリーブを行うことができ、周波数選択性チャネルにおける通信品質を向上させること。【解決手段】インターリーバ104は、第1から第Nのコードワードをインターリーブし、OFDM変調回路105は、インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換し、送信RF回路１０６は、ＯＦＤＭ信号を送信する。第1のコードワードに含まれるデータシンボル数は、第2のコードワードに含まれるデータシンボル数よりも少なく、インターリーバ104は、第1のコードワードから第Nのコードワードまで昇順に書き込み、第2のコードワードから読み出しを開始する。【選択図】図１０Ａ
2019004448.tif 000002
【特許請求の範囲】
【請求項１】
第1から第Nのコードワードをインターリーブするインターリーバ回路と、
前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換するＯＦＤＭ変調回路と、
前記ＯＦＤＭ信号を送信する送信回路と、
を具備し、
前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、
前記インターリーバ回路は、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しを開始する、
送信装置。
【請求項２】
前記インターリーバ回路は、Ｎｘ×Ｎｙのメモリサイズを有し、
Ｎｙは、前記第2のコードワードに含まれるデータシンボル数に等しい、
請求項１に記載の送信装置。
【請求項３】
前記インターリーバ回路は、インターリーブサイズに応じて生成したインターリーブアドレスを、前記第1のコードワードに含まれるデータシンボル数に応じてシフトしたアドレスを用いて、前記第2のコードワードを読み出す、
請求項１に記載の送信装置。
【請求項４】
送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信する受信回路と、
前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出するＤＦＴ回路と、
前記インターリーブされた第1から第Nのコードワードをデインターリーブするデインターリーバ回路と、
を具備し、
前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、
前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される、
受信装置。
【請求項５】
前記デインターリーバは、Ｎｘ×Ｎｙのメモリサイズを有し、
Ｎｙは、前記第2のコードワードに含まれるデータシンボル数に等しい、
請求項４に記載の受信装置。
【請求項６】
前記インターリーバ回路は、インターリーブサイズに応じて生成したインターリーブアドレスを、前記第1のコードワードに含まれるデータシンボル数に応じてシフトしたアドレスを用いて、前記第2のコードワードを読み出す、
請求項４に記載の受信装置。
【請求項７】
第1から第Nのコードワードをインターリーブし、
前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換し、
前記ＯＦＤＭ信号を送信し、
前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、
前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しが開始される、
送信方法。
【請求項８】
送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信し、
前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出し、
前記インターリーブされた第1から第Nのコードワードをデインターリーブし、
前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、
前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される、
受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置及び通信方法に関する。
【背景技術】
【０００２】
IEEE 802.11は、無線ＬＡＮ関連規格の一つであり、その中に、例えば、IEEE802.11ad規格、IEEE802.11ay規格（以下、「11ad規格」、「11ay規格」という）がある（例えば、非特許文献１−３を参照）。
【０００３】
コードワードに含まれるデータシンボル数が、OFDM（Orthogonal Frequency Division Multiplexing）シンボルに含まれるデータシンボル数より少ない場合、データシンボルをOFDMシンボル内で並び替える「インターリーブ処理」が適用される。インターリーブにより、コードワードに含まれるデータシンボルが、広い周波数範囲に分散して配置されるため、周波数選択性チャネルにおける通信品質が向上する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】IEEE 802.11TM -2016   2436頁〜2496頁
【非特許文献２】IEEE802.11-17/0589r0
【非特許文献３】IEEE802.11-17/0597r1
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、コードワードが複数のOFDMシンボルに断片化されて配置される場合、断片化されたコードワードが広い周波数領域に配置されるようなインターリーブパターンについては十分に検討がなされていないため、周波数選択性チャネルにおいて通信品質が劣化する場合がある。
【０００６】
本開示の一態様は、簡易な構成で、複数のOFDMシンボルに断片化されたコードワードが、広い周波数領域に配置されるようにインターリーブを行うことができ、周波数選択性チャネルにおける通信品質を向上させることができる送信装置、受信装置、送信方法及び受信方法の提供に資する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る送信装置は、第1から第Nのコードワードをインターリーブするインターリーバ回路と、前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換するＯＦＤＭ変調回路と、前記ＯＦＤＭ信号を送信する送信回路と、を具備し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーバ回路は、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しを開始する。
【０００８】
本開示の一態様に係る受信装置は、送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信する受信回路と、前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出するＤＦＴ回路と、前記インターリーブされた第1から第Nのコードワードをデインターリーブするデインターリーバ回路と、を具備し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される。
【０００９】
本開示の一態様に係る送信方法は、第1から第Nのコードワードをインターリーブし、前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換し、前記ＯＦＤＭ信号を送信し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しが開始される。
【００１０】
本開示の一態様に係る受信方法は、送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信し、前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出し、前記インターリーブされた第1から第Nのコードワードをデインターリーブし、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される。
【００１１】
なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、または、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１２】
本開示の一態様によれば、簡易な構成で、複数のOFDMに断片化されたコードワードが、広い周波数領域に配置されるようにインターリーブを行うことができ、周波数選択性チャネルにおける通信品質を向上させることができる。
【００１３】
本開示の一態様における更なる利点及び効果は、明細書及び図面から明らかにされる。かかる利点及び／又は効果は、いくつかの実施形態並びに明細書及び図面に記載された特徴によってそれぞれ提供されるが、１つ又はそれ以上の同一の特徴を得るために必ずしも全てが提供される必要はない。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る通信装置の構成例を示すブロック図
【図２】実施の形態１に係るインターリーバの動作例を示す図
【図３】実施の形態１に係るインターリーバの別の動作例を示す図
【図４Ａ】実施の形態１に係るインターリーブの手順を示すフローチャート
【図４Ｂ】実施の形態１に係るインターリーブの手順を示すフローチャート
【図４Ｃ】実施の形態１に係るインターリーブの手順を示すフローチャート
【図５Ａ】実施の形態１に係るインターリーバの書き込み動作を模式的に説明する図
【図５Ｂ】実施の形態１に係るインターリーバの読み出し動作を模式的に説明する図
【図５Ｃ】実施の形態１に係るアドレステーブルの一例を示す図
【図６Ａ】実施の形態１に係るOFDMシンボル０におけるインターリーブの２次元配列とコードワードとの関係を示す図
【図６Ｂ】実施の形態１に係るOFDMシンボル０における各コードワードのデータシンボルの分布を示す図
【図７Ａ】実施の形態１に係るOFDMシンボル１におけるインターリーブの２次元配列とコードワードとの関係を示す図
【図７Ｂ】実施の形態１に係るOFDMシンボル１における各コードワードのデータシンボルの分布を示す図
【図８Ａ】実施の形態１に係るOFDMシンボル２におけるインターリーブの２次元配列とコードワードとの関係を示す図
【図８Ｂ】実施の形態１に係るOFDMシンボル２における各コードワードのデータシンボルの分布を示す図
【図９Ａ】実施の形態１に係るインターリーブの別の手順を示すフローチャート
【図９Ｂ】実施の形態１に係るインターリーブの別の手順を示すフローチャート
【図９Ｃ】実施の形態１に係るインターリーブの別の手順を示すフローチャート
【図１０Ａ】実施の形態１に係るOFDMシンボル１におけるインターリーバの読み出し動作を模式的に説明する図
【図１０Ｂ】実施の形態１に係るOFDMシンボル１における各コードワードのデータシンボルの分布を示す図
【図１１Ａ】実施の形態１に係るOFDMシンボル１において書き込み開始位置を変更した場合のインターリーバの書き込み動作を模式的に説明する図
【図１１Ｂ】実施の形態１に係るOFDMシンボル１において書き込み開始位置を変更した場合のインターリーバの読み出し動作を模式的に説明する図
【図１２】実施の形態１に係るOFDMシンボル２における読み出し開始位置を設定した場合のインターリーバの読み出し動作を模式的に説明する図
【図１３】実施の形態１に係るOFDMシンボル２における各コードワードのデータシンボルの分布を示す図
【図１４】実施の形態１に係るOFDMシンボル１におけるidx1(n)及びidx2(n,1)の値の一例を示す図
【図１５】実施の形態１に係るインターリーバの構成例を示すブロック図
【図１６】実施の形態１に係るインターリーバの別の構成例を示すブロック図
【図１７】実施の形態１に係るOFDMシンボル１におけるidx3(n)及びidx4(n,1)の値の一例を示す図
【図１８】実施の形態１に係るインターリーバの別の構成例を示すブロック図
【図１９】実施の形態１に係るデータサブキャリア順位とサブキャリア番号との対応例を示す図
【図２０】実施の形態１に係るOFDMシンボル０におけるインターリーバの別の動作例を模式的に説明する図
【図２１】実施の形態１に係るOFDMシンボル１におけるインターリーバの別の動作例を模式的に説明する図
【図２２】実施の形態１に係るOFDMシンボル０における各コードワードのデータシンボルの分布を示す図
【図２３】実施の形態１に係るOFDMシンボル１における各コードワードのデータシンボルの分布を示す図
【図２４】実施の形態１に係るOFDMシンボル０におけるインターリーバの別の動作例を模式的に説明する図
【図２５】実施の形態１に係るOFDMシンボル１におけるインターリーバの別の動作例を模式的に説明する図
【図２６】実施の形態１に係るOFDMシンボル０における各コードワードのデータシンボルの分布を示す図
【図２７】実施の形態１に係るOFDMシンボル１における各コードワードのデータシンボルの分布を示す図
【図２８】実施の形態１に係るOFDMシンボル０におけるインターリーバの別の動作例を模式的に説明する図
【図２９】実施の形態１に係るOFDMシンボル１におけるインターリーバの別の動作例を模式的に説明する図
【図３０】実施の形態１の変形例に係るインターリーブの手順を示すフローチャート
【図３１】実施の形態１の変形例に係る巡回シフトの一例を示す図
【図３２】実施の形態１の変形例に係るOFDMシンボル１における各コードワードのデータシンボルの分布を示す図
【図３３】実施の形態２に係る通信装置の構成例を示すブロック図
【図３４】実施の形態２に係るデインターリーバの構成例を示すブロック図
【図３５】実施の形態２に係る行カウンタ及び列カウンタの動作の一例を示すタイミングチャート
【発明を実施するための形態】
【００１５】
以下、本開示の実施の形態について図面を参照して詳細に説明する。
【００１６】
11ay規格では、LDPC（Low Density Parity Check）符号化が用いられ、レートマッチング（コードワードサイズの調整）は行われない。このため、11ay規格では、１送信ビットあたりの符号化及び復号処理の計算量（計算の複雑さ及び回路規模）を一定に保つことができ、回路規模又は消費電力を小さくすることができる。
【００１７】
一方で、11ay規格では、OFDMシンボルに含まれるビット数とLDPC符号化されたビット数（コードワードのサイズ）とが倍数又は約数の関係にない。このため、コードワードが分断されて異なるOFDMシンボルに含まれる場合があり、インターリーブ方法によっては性能（通信品質）が劣化する場合がある。
【００１８】
また、11ay規格では、広帯域（例えば最大8.64GHz）のため、1OFDMシンボル内のサブキャリア数及びビット数が多い一方で、符号化及び復号化の計算量を小さくするため、LDPC符号化されたビット数は少ない（コードワードサイズが小さい）。したがって、11ay規格では、サイズの小さいコードワードが分断され、帯域内でコードワードを広い範囲で分散できないことによる性能劣化の問題が発生しやすくなる。
【００１９】
なお、別の規格、例えばLTEでは、100MHzなど、帯域幅が小さく、6144ビットなど、コードワードサイズが大きい。このため、LTEでは、コードワードが分断されても、帯域内で十分に広い範囲でコードワードデータを分散させることができる。また、LTEでは、ターボ符号を用い、OFDMシンボルサイズにコードワードサイズが適合するように、あるいはコードワードが分散するように、レートマッチ（パンクチャリング）を行うことができるため、上述したような11ay規格と同様の問題は発生しない。ただし、パンクチャリング（送信機側で破棄）は、送信しないビットに対しても符号化及び復号を行うため、回路規模及び消費電力が増大する。
【００２０】
また、他の規格、例えば11ad規格では、コードワードサイズは、OFDMシンボルに含むことができるビット数の約数であるため、コードワードの分断は発生しない。
【００２１】
そこで、本開示では、11ay規格のように、コードワードが複数のOFDMシンボルに分断される場合でも、広い周波数領域に分散してコードワードを配置し、通信品質を向上させることができるインターリーブ方法について説明する。
【００２２】
（実施の形態１）
［通信装置の構成］
図１は、通信装置の構成の一例を示す図である。通信装置１００は、MAC（Medium Access Control）制御回路101、FEC（Forward Error Correction）符号化回路102、変調回路103、インターリーバ104、OFDM変調回路105、送信RF回路106、送信アンテナアレイ107、受信アンテナアレイ111、受信RF回路112、同期回路113、DFT（Discrete Fourier Transform、離散フーリエ変換）回路114、等化回路115、デインターリーバ116、復調回路117、FEC復号回路118、チャネル推定回路119を含む構成である。
【００２３】
なお、通信装置１００において、MAC制御回路101、FEC符号化回路102、変調回路103、インターリーバ104、OFDM変調回路105、送信RF回路106、送信アンテナアレイ107は、例えば、送信装置を構成し、受信アンテナアレイ111、受信RF回路112、同期回路113、DFT回路114、等化回路115、デインターリーバ116、復調回路117、FEC復号回路118、チャネル推定回路119は、例えば、受信装置を構成する。
【００２４】
MAC制御回路101は、アプリケーションプロセッサ（図示しない）から入力されたデータに基づき送信データを生成し、FEC符号化回路102へ入力する。また、MAC制御回路101は、送信パラメータ（例えば、使用する無線チャネル、送信データサイズ、チャネルボンディング数、LDPC符号化方式、アンテナ指向性等）を決定し、決定した送信パラメータに基づいて、FEC符号化回路102、変調回路103、インターリーバ104、OFDM変調回路105、送信RF回路106、送信アンテナアレイ107の制御を行う（図示省略）。
【００２５】
また、MAC制御回路101は、受信パラメータ（例えば、使用する無線チャネル、チャネルボンディング数、受信電力閾値、アンテナ指向性等）を決定し、決定した受信パラメータに基づいて、受信アンテナアレイ111、受信RF回路112、同期回路113、DFT回路114、等化回路115、デインターリーバ116、復調回路117、FEC復号回路118、チャネル推定回路119の制御を行う（図示省略）。MAC制御回路101は、受信データをFEC復号回路118から受信し、アプリケーションプロセッサ（図示しない）へ出力する。
【００２６】
FEC符号化回路102は、送信データに対して、誤り検出符号の付加、ビットスクランブル及び誤り訂正符号化を行う。誤り検出符号には、一例として、CRC(Cyclic Redundancy Check)符号を用いる。ビットスクランブルでは、FEC符号化回路102は、一例として、擬似ランダム系列、M系列、又はGold系列を生成し、送信データにXOR(排他的論理和)を行う。誤り訂正符号では、一例として、LDPC符号、ターボ符号、又はリードソロモン符号が用いられる。
【００２７】
変調回路103は、FEC符号化回路102が出力するデータ（ビット系列）をデータ変調し、データシンボルに変換する。変調方式として、例えば、BPSK（Binary Phase Shift Keying）、QPSK（Quadrature Phase Shift Keying）、SQPSK（Spread QPSK）、16QAM（16値Quadrature Amplitude Modulation）、64QAM（64値QAM）、64NUC（64値Non-Uniform Constellation）が用いられる。
【００２８】
インターリーバ104は、複数のデータシンボルを含むデータシンボルのブロック（コードワードなど）において、データシンボルの順序を一定の規則に従い並び替える。インターリーバ104の詳細は後述する。
【００２９】
OFDM変調回路105は、インターリーバ104においてインターリーブされたコードワードをOFDM信号に変換する。具体的には、OFDM変調回路105は、インターリーバ104が出力する並び替えられたデータシンボルのブロックに対し、パイロットシンボルを挿入し、各データシンボル及びパイロットシンボルを送信する周波数（サブキャリアという）を決定し、各データシンボル及びパイロットシンボルをサブキャリアに配置し（サブキャリアマッピングという）、IDFT(Inverse Discrete Fourier Transform、逆離散フーリエ変換)を行い、時間領域信号系列（OFDMシンボルという）を生成する。
【００３０】
また、OFDM変調回路105は、OFDMシンボルの後半のデータをコピーしてOFDMシンボルの前に付加する（CP（Cyclic Prefix）付加という）。また、OFDM変調回路105は、CP付加を行ったOFDMシンボルの先頭及び終端付近の振幅調整及びフィルタの適用（窓関数という）を行う。なお、CPは、GI（Guard Interval）と呼ぶ場合がある。
【００３１】
なお、通信装置100は、OFDM変調回路105が生成する時間領域信号系列に加え、プリアンブル、ヘッダ、及びビームフォーミングトレーニング系列に関する時間領域信号系列を生成するプリアンブル生成回路（図示しない）、ヘッダ信号生成回路（図示しない）、ビームフォーミングトレーニング系列信号生成回路（図示しない）を備えても良い。なお、プリアンブル、ヘッダ、及びビームフォーミングトレーニング系列は、データシンボルのブロックと同様にOFDM変調回路105に入力され、サブキャリアマッピング、IDFTが行われ、OFDMシンボルが生成されてもよい。
【００３２】
また、通信装置100は、OFDM変調回路105が生成する時間領域信号系列、及びプリアンブル、ヘッダ、ビームフォーミングトレーニング系列に関する時間領域信号系列を結合し、PHYフレームを生成する、PHYフレーム生成回路（図示しない）をOFDM変調回路105の後段に備えても良い。
【００３３】
送信RF回路106は、OFDM変調回路105及びPHYフレーム生成回路（図示しない）が出力する時間領域信号系列をD/Aコンバータを用いてアナログ信号に変換し、無線領域信号（例えば60GHz帯信号）に変調し（アップコンバートという）、電力の増幅を行う。
【００３４】
送信アンテナアレイ107は、1以上のアンテナ素子を備え、送信RF回路106が出力する信号を無線信号として送信する。送信アンテナアレイ107は、一例として、フェーズドアレイアンテナである。
【００３５】
受信アンテナアレイ111は、1以上のアンテナ素子を備え、無線信号を受信する。受信アンテナアレイ111は、一例として、フェーズドアレイアンテナである。
【００３６】
受信RF回路112は、受信アンテナアレイ111が受信した無線信号の増幅を行い(AGC、Automatic Gain Control、ゲインの自動調整が行われる)、無線領域信号からベースバンド信号に復調し（ダウンコンバートという）、A/Dコンバータを用いてデジタル信号へ変換し、同期回路113へ入力する。
【００３７】
同期回路113は、受信RF回路112が出力する信号に対して、プリアンブル信号検出、シンボルタイミング検出、キャリア周波数オフセット補正を行う。
【００３８】
DFT回路114は、OFDMシンボル（OFDM信号）から、インターリーブされた複数のコードワードを抽出する。具体的には、DFT回路114は、同期回路113が出力する信号に対して、CPの除去を行い、受信OFDMシンボルデータを抽出する。また、DFT回路114は、受信OFDMシンボルデータに対しDFTを行い、周波数領域受信信号へ変換する。
【００３９】
等化回路115は、周波数領域受信信号に含まれる受信パイロットシンボル信号、及び、チャネル推定回路119（後述）が出力するチャネル情報（チャネル推定行列という）を用いて、周波数領域受信信号に含まれる受信データサブキャリア信号の周波数特性の補正を行う。
【００４０】
なお、等化回路115は、受信ダイバーシチ合成、最大比合成、MIMO(Multi-Input Multi-Output)信号分離処理を行ってもよい。
【００４１】
等化回路115は、一例として、ZF(Zero-Forcing)方式、MMSE(Minimum Mean Square Error)方式、MLD(Maximum Likelihood Detection)方式、MRC(Maximum Ratio Combining)方式、MMSE-IRC(MMSE Interference Rejection Combining)方式を用いても良い。
【００４２】
デインターリーバ116は、等化回路115が出力する周波数補正後の受信データサブキャリア信号の並び換え（デインターリーブ）を行う。デインターリーバ116が用いる並び換えの規則としては、インターリーバ104が用いる並び換えの規則とは逆の規則を用いても良い。デインターリーバ116は、インターリーバ104が並び替えたデータシンボルを元の順序に並び替える処理を行ってもよい。デインターリーバ116の詳細は後述する。
【００４３】
復調回路117は、例えば、BPSK、QPSK、SQPSK、16QAM、64QAM、64NUCの変調信号を復調し、ビットデータ系列に変換する。
【００４４】
FEC復号回路118は、ビットデータ系列に対して、誤り訂正復号（一例として、LDPC復号器、ターボ復号器を用いる）、デスクランブル（逆スクランブル）処理を行う。FEC復号回路118は、誤り訂正復号、及びデスクランブルを行い得られたデータをMAC制御回路101に出力する。
【００４５】
チャネル推定回路119は、受信したプリアンブル信号及びパイロットサブキャリア信号を用いて、チャネル推定行列を算出する。
【００４６】
なお、通信装置100は、ヘッダ信号を受信し、等化、復調及びFEC復号を行う、ヘッダ受信回路（図示しない）を備えても良い。
【００４７】
［インターリーバの動作］
＜動作例１＞
図２を用いて、インターリーバ104の動作について説明する。一例として、LDPCコードワードサイズ(「LCW」と表す)が672ビット、変調方式が16QAM、1シンボルあたりのビット数(「NCBPS」と表す)は4、データサブキャリア数(「NSD」と表す)が336サブキャリアの場合について説明する。
【００４８】
1コードワードあたりのデータシンボル数は、LCW/NCBPSにより算出され、図２の例では、168シンボルである。すなわち、図２では、データサブキャリア数（NSD=336）は、コードワードあたりのデータシンボル数（LCW/NCBPS=168）の倍数（2倍）である。従って、インターリーバ104は、2つのコードワードに対応するデータシンボル（合計336シンボル）が入力される毎に、データの並び換えを行い、336サブキャリアのデータ（1つのOFDMシンボルに相当する）を出力する。
【００４９】
図２において、インターリーバ104は、次のようにデータシンボルの並び換えを行う。まず、インターリーバ104は、第1のコードワード(コードワード1という。以下同様)の先頭のデータシンボルを、第1のサブキャリア（例えば、周波数が最も低いデータサブキャリア）に配置する。次に、インターリーバ104は、第2のコードワード(コードワード2という。以下同様)の先頭のデータシンボルを、第2のサブキャリア（例えば、第1のサブキャリアの次に周波数が低いデータサブキャリア）に配置する。
【００５０】
コードワード1のデータシンボルをd(0)〜d(167)と表し、コードワード2のデータシンボルをd(168)〜d(335)と表すと、インターリーバ104は、データシンボルd(idx(k))を、サブキャリア番号kに配置する。idx(k)は、式1により算出される。
【数１】
2019004448.tif 000003
【００５１】
式１において、第1項の「mod」は剰余演算を表し、第2項はフロア関数（式１の第2項は、フロア関数：floor(x)と表記することもでき、xを超えない最大の整数を求める）を表す。
【００５２】
なお、図２では、データサブキャリア数(NSD)が1コードワードあたりのデータシンボル数(LCW/NCBPS)の２倍である場合について説明したが、図２と同様に、データサブキャリア数(NSD)が1コードワードあたりのデータシンボル数(LCW/NCBPS)の倍数である場合、インターリーバ104は、データシンボルd(idx(k))を、サブキャリア番号kに配置する。idx(k)は、式２により算出される。
【数２】
2019004448.tif 000004
【００５３】
式２は、変数Nx、Nyを用いて式３のように表される。なお、変数Nx、Nyは式４、式５により定められる。
【数３】
2019004448.tif 000005
【数４】
2019004448.tif 000006
【数５】
2019004448.tif 000007
【００５４】
また、図２及び式１、式２、式３において、インターリーバ104は、コードワード毎に1データシンボルずつ取り出してサブキャリアの先頭(idx(k)=0)から配置する場合について説明した。しかし、インターリーバ104は、コードワード毎にNSデータシンボル（データシンボルグループという）ずつ取り出してサブキャリアの先頭(idx(k)=0)から配置しても良い（NSシンボルずつ処理する、という）。NSは、例えば8であってもよく、他の値でもよい。
【００５５】
なお、インターリーバ104は、インターリーブ処理前後において、データシンボルグループ内でのデータシンボルの順序を保持するようにしても良い。また、インターリーバ104は、インターリーブ処理前後において、データシンボルグループ内でのデータシンボルの順序を一定の規則により並び替えても良い。
【００５６】
インターリーバ104がNSシンボルずつ処理する場合、インターリーバ104は、データシンボルd(idx(k))をサブキャリア番号kに配置する。idx(k)は、式６、式７、式８、式９により算出される。
【数６】
2019004448.tif 000008
【数７】
2019004448.tif 000009
【数８】
2019004448.tif 000010
【数９】
2019004448.tif 000011
【００５７】
式７と式３との相違点は、式７で用いるNyの値は、式３で用いるNyに比べ、NS分の一になっている（式９を参照）。式６を用いる場合、インターリーバ104は、NS個のデータシンボルをまとめて転送（例えば、メモリへの書き込み）すればよい。また、式６を用いる場合、インターリーバ104は、NS個のデータシンボル毎に1つのインターリーブアドレスを算出すればよい。また、式６を用いる場合、Nx及びNyの値が小さいため、式６の計算が容易になるため、回路規模を削減し、回路の処理速度（スループット）を高めることができる。
【００５８】
なお、式６は、変数i及びjを用いて、式１０のように表しても良い。式１１は、i,j及びkの関係を表す。
【数１０】
2019004448.tif 000012
【数１１】
2019004448.tif 000013
【００５９】
＜動作例２＞
図３は、インターリーバ104の動作を表す別の例を示す。図３において、LDPCコードワードサイズ(LCWと表す)が672ビット、変調方式が16QAM、1シンボルあたりのビット数(NCBPSと表す)は4、データサブキャリア数(NSDと表す)が728サブキャリア、処理単位（NS）は8シンボルである。また、CWはコードワード(Code Word)を表す。
【００６０】
なお、NS個のデータシンボルを「データシンボルグループ」と呼び、NS個のサブキャリアを「サブキャリアグループ」という。図３において、1コードワードは168(=LCW/NCBPS)個のデータシンボルを含む。このため、1コードワードは21(=LCW/NCBPS/NS)個のデータシンボルグループを含む。また、図３において、1OFDMシンボルは728(=NSD)個のデータサブキャリアを含む。このため、1OFDMシンボルは91(=NSD/NS)個のサブキャリアグループを含む。
【００６１】
図３においては、図２と異なり、データサブキャリア数はコードワードあたりのシンボル数の倍数ではない。この場合、インターリーバ104は、式８の代わりに、式１２を用いてNxを算出する。
【数１２】
2019004448.tif 000014
【００６２】
式１２の右辺は、シーリング関数（式１２の右辺は、シーリング関数：ceiling（ｘ）と表記することもでき、x以上の最小の整数を求める）を表す。
【００６３】
式１２は式８に比べ、シーリング関数が追加されているため、NSDがLCW/NCBPSで割り切れない場合も、Nxが整数になる。
【００６４】
図４Ａ、図４Ｂ、図４Ｃは、インターリーバ104が本実施の形態に係るインターリーブを行う手順を示すフローチャートの例である。インターリーブの手順は、2次元配列を用いて模式的に説明される（後述）。
【００６５】
図４Ａは、2次元配列を用いた手順を直接的に具現化する方法である。また、図４Ｂは、図４Ａの手順を変形し、2次元配列の代わりに、1次元のメモリ（例えば、RAM）を用いて具現化するのに適した方法である。図４Ｃは、図４Ｂにおけるインターリーブアドレスを事前に計算し、回路規模を削減する方法である。
【００６６】
図４Ａは、インターリーバ104が式１２、式９を用いて算出したNx及びNyを用いてインターリーブを行う動作の手順を示すフローチャートである。また、図５Ａ、図５Ｂは、図４Ａのインターリーバ104の動作を模式的に説明する図である。
【００６７】
なお、図５Ａ及び図５Ｂにおいて、d(k)はk番目のデータシンボルグループ（kは0以上LSD/NS-1以下の整数）を表す。h番目のデータシンボルをc(h)と表す場合（hは0以上NSD-1以下の整数）、d(k)で表されるデータシンボルの系列は、{c(k×NS), c(k×NS+1), c(k×NS+2), ..., c(k×NS+NS-2), c(k×NS+NS-1)}を含む。
【００６８】
図４ＡのステップS1001において、インターリーバ104は、式１２及び式９を用いて、Nx及びNyの値を算出（決定）する。図５Ａ及び図５Ｂは、Nx行Ny列の２次元配列を用いて図４Ａのインターリーバ104の動作を説明する。そのため、Nxを２次元配列の「行数」、Nyを２次元配列の「列数」と呼ぶ。インターリーバ104は、２次元配列を、メモリ又はレジスタ配列を用いて実装しても良い。すなわち、インターリーバ104は、Nx×Nyのメモリサイズを有する。
【００６９】
ステップS1002において、インターリーバ104は、２次元配列の行方向にデータシンボルグループd(k)を書き込む（図５Ａを参照）。インターリーバ104は、Ny個のデータシンボルグループd(0)からd(Ny-1)を２次元配列の行番号0に書き込み、Ny個のデータシンボルグループd(Ny)からd(2Ny-1)を２次元配列の行番号１に書き込む。インターリーバ104は、同様に各行への書き込みを行い、行番号Nx-1（最終行。図５Ａでは行番号4）には、Ny個以下のデータシンボルグループd((Nx-1)×Ny)からd(NSD/NS-1)を書き込む。
【００７０】
ステップS1003において、インターリーバ104は、最終行の残りの要素に、ダミーデータを書き込む。例えば、データシンボルが8ビットの2進数である場合、1000_0000(10進数で-128)のように、負の最小値をダミーデータとしても良い。なお、インターリーバ104は、ダミーデータの書き込みを行う代わりに、最終行の残りの要素を空きとしておいてもよい。
【００７１】
ステップS1004において、インターリーバ104は、ダミーデータの破棄、および、２次元配列の列方向へのデータシンボルグループd(k)の読み出しを行う。図５Ｂでは、インターリーバ104が読み出すデータシンボルグループの列は、一例として、{d(0), d(21), d(42), d(63), d(84), d(1), d(22), d(43), d(64), d(85), d(2), ..., d(81), d(19), d(40), d(61), d(82), d(20), d(41), d(62), d(83)}のようになる。
【００７２】
図４Ｂは、インターリーバ104が図３においてインターリーブを行う別の手順を示すフローチャートである。図４Ｂは図４Ａと異なる手順を用いるが、同様のデータシンボル系列が出力される。なお、図４Ｂにおいて、図４Ａと同じ動作には、同じ符号を付与する。
【００７３】
図４ＢのステップS1001において、インターリーバ104は、図４ＡのステップS1001と同様に、式１２及び式９を用いて、行数Nx及び列数Nyを算出（決定）する。
【００７４】
ステップS1101において、インターリーバ104は、式１３Ａを用いてブロックインターリーブアドレスidx0(i)（iは0以上Nx×Ny-1以下の整数）を算出する。
【数１３】
2019004448.tif 000015
【００７５】
式１３Ａは、式７と同様の計算式であるが、インデックスiの値の範囲が異なり、0以上NSD/NS-1以下の代わりに、0以上Nx×Ny-1以下である。
【００７６】
ステップS1102において、インターリーバ104は、ステップS1101において算出したブロックインターリーブアドレスの系列{idx0(0),idx0(1), ..., idx0(Nx×Ny-2), idx0(Nx×Ny-1)}から、データシンボルグループ数(NSD/NS)以上の値（すなわち、インデックスi=NSD/NS以上のブロックインターリーブアドレスidx0(i)）を取り除き、インターリーブアドレスの系列{idx1(0),idx1(1), ..., idx1(NSD/NS-2), idx1(NSD/NS-1)}を生成する。
【００７７】
ステップS1103において、インターリーバ104は、データシンボルグループd(k)を、昇順アドレスを用いて、メモリ（図示しない）へ書き込む。インターリーバ104は、データシンボルグループd(k)を、メモリ内のアドレスkに書き込む。
【００７８】
ステップS1104において、インターリーバ104は、ステップS1102で生成したインターリーブアドレスidx1(k)を用いて、データシンボルグループをメモリから読み出す。例えば、インターリーバ104は、読み出しアドレスをidx1(0)の値に設定してメモリからデータシンボルグループを読み出し、サブキャリアグループの先頭データとする。つまり、サブキャリアグループ番号kの位置には、メモリ内のアドレスidx1(k)に格納されているデータシンボルグループ（d(idx1(k))が配置される。
【００７９】
図４Ｂでは、インターリーバ104が読み出すデータシンボルグループの列は、一例として、{d(idx1(0)), d(idx1(1)), d(idx1(2)), ..., d(idx1(k)), ..., d(idx1(NSD/NS-2)), d(idx1(NSD/NS-1))}のようになる。
【００８０】
図４Ｃは、インターリーバ104が図３においてインターリーブを行う別の手順を示すフローチャートである。図４Ｃは、図４Ａ及び図４Ｂと異なる手順を用いるが、同様のデータシンボル系列が出力される。なお、図４Ｃにおいて、図４Ｂと同じ動作には、同じ符号を付与する。
【００８１】
ステップS1202において、インターリーバ104は、データサブキャリア数NSD及びコードワードサイズLCWより、インターリーブアドレスidx1(k)を算出する。インターリーバ104は、図４ＢのステップS1001からステップS1102と同様の手順を用いて、インターリーブアドレスidx1(k)を算出しても良い。
【００８２】
また、インターリーバ104は、データサブキャリア数NSD及びコードワードサイズLCWの組み合わせ毎に、インターリーブアドレスidx1(k)を予め算出しておき、テーブルとして格納しても良い（「アドレステーブル」と呼ぶ）。アドレステーブルは、ROM(Read Only Memory)、RAM(Random Access Memory)、レジスタ等に格納しても良い。
【００８３】
図５Ｃは、アドレステーブルの一例を示す表である。図５Ｃのアドレステーブルは、データシンボルグループ数NSD/NSが91、コードワードサイズLCWが672の場合に用いられる。
【００８４】
図５Ｃのアドレステーブルによれば、一例として、kの値が0の場合idx1(k)の値は0、kの値が1の場合idx1(k)の値は21である。
【００８５】
図４Ｃにおいて、ステップS1103及びステップS1104は図４Ｂと同様である。
【００８６】
図４Ｃにおいて、インターリーバ104が読み出すデータシンボルグループの列は、一例として、{d(idx1(0)), d(idx1(1)), d(idx1(2)), ..., d(idx1(NSD/NS-2)), d(idx1(NSD/NS-1))}のようになる。ここで、図５Ｃのアドレステーブルによれば、idx1(0)からidx1(NSD/NS-1)の値が定まるため、インターリーバ104が読み出すデータシンボルグループの列は、一例として、{d(0), d(21), d(42), ..., d(62), d(83))}のようになる。つまり、図４Ａの手順で得られるデータシンボルグループの系列と同様である。
【００８７】
図６Ａは、図３のOFDMシンボル番号０(OFDMシンボル0)に対応するデータシンボルグループをインターリーブする場合における、図５Ａ及び図５Ｂの２次元配列（書き込みと読み出し）と、コードワード（CW）との関係を示す図である。
【００８８】
図６Ａにおいて、コードワード１（CW1)のデータシンボルグループは、２次元配列の0行に配置される。同様に、コードワードj+1（jは0以上Nx-1以下の整数)のデータシンボルグループは、２次元配列の行番号jに配置される。最終行(行番号Nx-1)には、行全体にデータシンボルグループが配置されない場合がある。コードワードNx(図６Ａにおけるコードワード5（CW5）)の一部のデータシンボルグループは、OFDMシンボル０の最終行に含めて、コードワード5（CW5）の残りのデータシンボルグループは、次のOFDMシンボル１の先頭行に含めても良い。OFDMシンボル１におけるデータの配置方法は後述する（図７Ａを参照）。
【００８９】
図６Ａにおいて、行毎に異なるコードワードのデータシンボルグループを配置するようにしたため、インターリーバ104は、列方向にデータを読み出す場合（図５Ｂ、図４ＡのステップS1004、図４Ｂ、図４ＣのステップS1104を参照）、連続する２つのデータシンボルグループは異なるコードワードに含まれるデータシンボルグループである。
【００９０】
従って、例えば通信路におけるマルチパスにより連続する周波数帯域（送信帯域より狭い一定の周波数範囲）において信号品質の劣化が発生した場合、品質が劣化したデータシンボルグループは複数のコードワードに分散される。このため、コードワード間の品質を均一にすることができ、パケットエラーレートの劣化を防ぐことができる。つまり、インターリーバ104は、特定のコードワードに含まれるデータシンボルグループに品質劣化が集中することを防ぐことができるため、誤り訂正後のエラーレートを改善することができる。
【００９１】
また、図６Ａの配置及び図５Ｃのアドレステーブルによれば、コードワード1のデータシンボルグループは、読み出し後の順位(k)が0,5,10,15,20,25,30,35,39,43,47,51,55,59,63,67,71,75,79,83,87である。なお、k=0は、周波数が低いデータサブキャリアに対応し、k=90は周波数が高いデータサブキャリアに対応する。
【００９２】
図６Ｂは、OFDMシンボル番号０（OFDMシンボル０）における各コードワードのデータシンボルの周波数領域における分布を示す図である。インターリーバ104は、図６Ａの配置の場合、コードワード1、コードワード2、コードワード3、コードワード4のデータシンボルを、低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【００９３】
以上のように、インターリーバ104は、各コードワードが含むデータシンボルグループを低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。これにより、例えば通信路のマルチパスにより周波数毎に受信品質のばらつきがある場合に、特定のコードワードに含まれるデータシンボルグループに品質劣化が集中することを防ぐことができるため、誤り訂正後のエラーレートを改善することができる。
【００９４】
次に、図７Ａは、図３のOFDMシンボル番号１(OFDMシンボル１)に対応するデータシンボグループをインターリーブする場合における、図５Ａ及び図５Ｂの２次元配列（書き込みと読み出し）と、コードワード（CW）との関係を示す図である。
【００９５】
図７Ａにおいて、インターリーバ104は、コードワード5(CW5)のうち、OFDMシンボル０に含まれなかった残りのデータシンボルグループを行番号0に配置する。行番号0に配置されたCW5のデータシンボルグループが行番号0のサイズ（列数Ny）より小さい場合、インターリーバ104は、行番号0の残りの要素（図７Ａのd(14)からd(20)）に、CW6のデータシンボルグループをCWの先頭から順に配置する。インターリーバ104は、CW6のうち、行番号0に書き込まなかった残りのデータシンボルグループを、行番号1の先頭から書き込む。
【００９６】
同様に、インターリーバ104は、コードワード毎に、データシンボルグループを行の途中（例えば列番号14、つまりd(14)がある列）から書き込みを始め、次の行に移り、書き込みを始めた列の１つ前の列（例えば列番号13）まで書き込みを行う。図７Ａでは、インターリーバ104は、最終行の１つ前の行及び最終行においてコードワード(例えばCW9)前半の１４データシンボルグループを書き込み、残りの後半７データシンボルグループを次のOFDMシンボル（例えばOFDMシンボル２）に書き込む。
【００９７】
図７Ｂは、OFDMシンボル１における各コードワードのデータシンボルの周波数領域における分布を示す図である。インターリーバ104は、図７Ａのd(0)から読み出しを開始するため、コードワード6、コードワード7、コードワード8のデータシンボルを、低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【００９８】
以上のように、インターリーバ104は、各コードワードが含むデータシンボルグループを低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。これにより、例えば通信路のマルチパスにより周波数毎に受信品質のばらつきがある場合に、特定のコードワードに含まれるデータシンボルグループに品質劣化が集中することを防ぐことができるため、誤り訂正後のエラーレートを改善することができる。
【００９９】
次に、図８Ａは、図３のOFDMシンボル番号２(OFDMシンボル２)に対応するデータシンボルグループをインターリーブする場合における、図５Ａ及び図５Ｂの２次元配列（書き込みと読み出し）と、コードワード（CW）との関係を示す図である。
【０１００】
図８Ａにおいて、インターリーバ104は、図７Ａと同様に、前のOFDMシンボル(OFDMシンボル１)に含まれる最終コードワード(CW9)の残りの後半７データシンボルグループから書き込みを始め、コードワードを順次書き込みを行う。このため、インターリーバ104は、各コードワードが含むデータシンボルグループを低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【０１０１】
なお、図７Ａ（OFDMシンボル１）において、各コードワードの先頭のデータシンボルグループは列番号14に配置されている。これは、前のOFDMシンボル（OFDMシンボル０）における最終コードワード（CW5）の残りのデータシンボルグループ数が14であるためである。また、図８Ａ（OFDMシンボル２）において、各コードワードの先頭のデータシンボルグループは列番号7に配置されている。これは、前のOFDMシンボル（OFDMシンボル１）における最終コードワード（CW9）の残りのデータシンボルグループ数が7であるためである。また、図６Ａ（OFDMシンボル０）において、各コードワードの先頭のデータシンボルグループは列番号0に配置されている。これは、前のOFDMシンボル（図示せず）における最終コードワードの残りのデータシンボルグループ数が0であるためである。
【０１０２】
図８Ｂは、OFDMシンボル２における各コードワードのデータシンボルの周波数領域における分布を示す図である。インターリーバ104は、図８Ａのd(0)から読み出しを開始するため、コードワード10、コードワード11、コードワード12、コードワード13のデータシンボルを、低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【０１０３】
以上のように、OFDMシンボル毎に各コードワードの先頭のデータシンボルグループが配置される列番号が異なるが、インターリーバ104は、各コードワードのデータシンボルグループを列番号に関して巡回して書き込むため（つまり書き込み位置が最終位置に達した場合、先頭列に戻り書き込みを継続するため）、各コードワードが含むデータシンボルグループを低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。これにより、例えば通信路のマルチパスにより周波数毎に受信品質のばらつきがある場合に、特定のコードワードに含まれるデータシンボルグループに品質劣化が集中することを防ぐことができるため、誤り訂正後のエラーレートを改善することができる。
【０１０４】
＜動作例３＞
図９Ａ、図９Ｂ、図９Ｃは、インターリーバ104がインターリーブを行う別の手順を示すフローチャートである。図９Ａ、図９Ｂ、図９Ｃにおいて、図４Ａ、図４Ｂ、図４Ｃと同じ処理ステップには同一の符号を付与し、その説明を省略する。図９Ａ、図９Ｂ、図９Ｃと図４Ａ、図４Ｂ、図４Ｃとの差異は、OFDMシンボル毎に読み出し開始位置を変更する点である。
【０１０５】
図９ＡのステップS2003において、インターリーバ104は、コードワードの先頭シンボルの位置を算出し、読み出し開始位置として設定する。
【０１０６】
例えば、インターリーバ104は、OFDMシンボル０のインターリーブを行う場合、コードワード1の先頭シンボルの位置が行番号0、列番号0（図６Ａのd(0)の位置）であるから、行番号0、列番号0を読み出し開始位置として設定する。つまり、インターリーバ104は、OFDMシンボル０においては、図５Ｂと同じ読み出し開始位置を設定する。
【０１０７】
また、例えば、インターリーバ104は、OFDMシンボル１のインターリーブを行う場合、コードワード6の先頭シンボルの位置が行番号0、列番号14（図７Ａのd(14)の位置）であるから、行番号0、列番号14を読み出し開始位置として設定する。つまり、インターリーバ104は、OFDMシンボル１においては、図５Ｂと異なる読み出し開始位置を設定する。
【０１０８】
ここで、コードワード5の先頭シンボルは、OFDMシンボル０（図６Ａ）に含まれ、OFDMシンボル１（図７Ａ）には含まれない。そのため、インターリーバ104は、OFDMシンボル１のインターリーブを行う場合、コードワード5（例えば、図７Ａのd(0)の位置）ではなく、コードワード6の先頭シンボル位置（図７Ａのd(14)の位置）を算出して、読み出し開始位置に設定する。
【０１０９】
すなわち、図１０Ａに示すように、OFDMシンボル１に含まれる第1から第Nのコードワード（図１０Ａのコードワード5〜コードワード9）において、コードワード5に含まれるデータシンボル数は、コードワード6に含まれるデータシンボル数よりも少ない場合、インターリーバ104は、コードワード5から昇順に書き込みを開始し、コードワード6から読み出しを開始する。なお、図１０Ａに示すように、OFDMシンボル１において、少なくとも、読み出し開始位置を含むコードワード6に含まれるデータシンボル数（21シンボル）は、インターリーバ104のNx×NyのメモリサイズのNy（つまり、列数）に等しい。
【０１１０】
また、インターリーバ104は、OFDMシンボル１のインターリーブを行う場合、コードワード6の先頭シンボル位置を算出して、読み出し開始位置に設定し、各コードワードの先頭のデータ（例えばd(14)、d(35)、d(56)、d(77)）が始めに読み出されるようにしても良い。
【０１１１】
言い換えると、インターリーバ104は、各OFDMシンボルにおいて、先頭のデータシンボルを含み、最初に入力されるコードワードを選択して、読み出し開始位置を設定しても良い。
【０１１２】
これにより、OFDMシンボルに含まれる各コードワード内のデータシンボルは、書き込まれた順序と同一順序で読み出される。すなわち、インターリーブ前後において、各コードワード内のデータシンボルの順序が保持される。このため、インターリーバ104及びデインターリーバ116の前段及び後段の処理が容易になり、回路規模を削減することができる。
【０１１３】
例えば、デインターリーバ116の前段の等化回路115は、サブキャリアの順序に従い等化処理を行ってもよい。この場合、デインターリーバ116の出力に含まれる各コードワードは、コードワード先頭のデータシンボルが先に出力され、コードワード内のデータシンボルの順序に従い出力される。これにより、デインターリーバ116の後段の復調回路117及びFEC復号回路118は、コードワードを容易に分割することができる。例えば、コードワード番号毎に分割して別のメモリにデータシンボル及び復調データを保持し、コードワード毎にLDPC復号を行うことが容易となり、回路規模及び処理遅延を削減することができる。
【０１１４】
また、例えば、インターリーバ104は、OFDMシンボル２のインターリーブを行う場合、コードワード10の先頭シンボルの位置が行番号0、列番号7（図８Ａのd(7)の位置）であるから、行番号0、列番号7を読み出し開始位置として設定する。つまり、インターリーバ104は、OFDMシンボル２においては、図５Ｂと異なる読み出し開始位置を設定する。
【０１１５】
図９ＡのステップS2004において、インターリーバ104は、ステップS2003で設定した読み出し開始位置を始点とし、ダミーデータの破棄、列方向へのデータの読み出しを行う。
【０１１６】
図１０Ａは、S2004の処理の一例として、インターリーバ104がOFDMシンボル１のインターリーブを行う場合の読み出し処理を模式的に示す図である。
【０１１７】
図１０Ａにおいて、インターリーバ104は、ステップS2003で設定した読み出し開始位置(d(14)の位置)から開始して列方向に読み出しを行う。読み出し位置が最終列の最終行（d(83)の位置。ダミーデータを除く）に達した場合、インターリーバ104は、行番号0、列番号0に読み出し位置を移動し、列方向の読み出しを継続する。
【０１１８】
インターリーバ104は、読み出し開始位置に戻る１つ前の位置（d(76)の位置）を読み出し最終位置と定め、読み出し位置が読み出し最終位置に達したとき、ステップS2004の読み出し処理を完了する。
【０１１９】
図１０Ｂは、インターリーバ104が図９Ａの手順を用いてインターリーブを行った場合の、OFDMシンボル１に含まれる各コードワードのデータシンボルの周波数領域における分布を示す図である。
【０１２０】
図１０Ｂでは、図７Ｂと同様に、インターリーバ104は、コードワード6、コードワード7、コードワード8のデータシンボルを、低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【０１２１】
また、図１０Ｂでは、図７Ｂと異なり、コードワード5のデータシンボル（後半14データシンボルグループ）は、高周波数のサブキャリアに分布し、コードワード9のデータシンボル（前半14データシンボルグループ）は、低周波数のサブキャリアに分布する。
【０１２２】
すなわち、インターリーバ104は、図９Ａ、図９Ｂ、図９Ｃの手順を用いる場合、コードワード5の前半7データシンボルグループをOFDMシンボル０に含め、図６Ｂに示すとおり、低周波数のサブキャリアに配置し、コードワード5の後半14データシンボルグループをOFDMシンボル1に含め、図１０Ｂに示すとおり、高周波数のサブキャリアに配置する。
【０１２３】
従って、コードワード5のデータシンボルグループは、OFDMシンボル０において低周波数のサブキャリアに配置され、OFDMシンボル１において高周波数のサブキャリアに配置される。つまり、コードワード5のデータシンボルグループは、他のコードワードと異なり、複数のOFDMシンボルにまたがり配置されるが、他のコードワードと同様に、周波数領域で低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散されて配置される。
【０１２４】
なお、インターリーバ104は、図１０Ａに示したようにステップS2003において読み出し開始位置をOFDMシンボル番号に応じて変更する代わりに、ステップS1002においてデータ書き込み開始位置をOFDMシンボル番号に応じて変更しても良い。
【０１２５】
図１１Ａは、インターリーバ104が、データ書き込み開始位置をOFDMシンボル番号に応じて変更して書き込みを行う手順について、説明する図である。
【０１２６】
図１１Ａにおいて、インターリーバ104は、図５Ａと同様に行方向にデータシンボルグループの書き込みを行うが、書き込みを開始する列番号を7と定める。これにより、図１１Ａにおいて、CW6、CW7、CW8、CW9の先頭データシンボルグループが、列番号0に配置される。
【０１２７】
なお、図１１Ａにおいて、インターリーバ104は、CW6の先頭シンボルが列番号0に配置されるように書き込み開始列番号を定めた。しかし、インターリーバ104は、代わりに、CW6の先頭シンボルが列番号0に配置されるように、行番号0におけるCW5の前に（列番号0から列番号6までに）、ダミーデータを書き込むようにしても良い。
【０１２８】
図１１Ｂは、インターリーバ104が図１１Ａに示す方法で書き込みを行った後に、データシンボルグループを読み出す方法を示す図である。インターリーバ104は、図１１Ａにおいてデータの書き込みを行わなかった要素（または、ダミーデータを書き込んだ要素）を読み飛ばし、列方向にデータシンボルグループの読出しを行う。すなわち、図１１Ｂでは、インターリーバ104は、行番号1、列番号0（d(14)の位置）を読み出し開始位置として、列方向にデータシンボルグループを読み出す。
【０１２９】
インターリーバ104が図１１Ａ及び図１１Ｂの方法で出力するデータシンボルグループの系列は、図１０Ａの方法で出力される系列と同じである。従って、図１１Ａ及び図１１Ｂの方法により得られる効果は図１０Ａの方法と同様である。本実施の形態において、以下で説明する方法は、同様に、図１１Ａ及び図１１Ｂのように変形してもよいが、効果が同一であるため、説明を省略する。
【０１３０】
図１２は、S2004の処理の一例として、インターリーバ104がOFDMシンボル２のインターリーブを行う場合の読み出し処理を示す図である。
【０１３１】
図１２において、インターリーバ104は、ステップS2003で設定した読み出し開始位置(d(7)の位置)から開始し、図１０Ａと同様に、列方向に読み出しを行う。
【０１３２】
図１２に示すように、OFDMシンボル２に含まれる第1から第Nのコードワード（図１２のコードワード9〜コードワード13）において、コードワード9に含まれるデータシンボル数は、コードワード10に含まれるデータシンボル数よりも少ない。この場合、インターリーバ104は、コードワード9から昇順に書き込みを開始し、コードワード10から読み出しを開始する。
【０１３３】
図１３は、インターリーバ104が図９Ａの手順を用いてインターリーブを行った場合の、OFDMシンボル２に含まれる各コードワードのデータシンボルの周波数領域における分布を示す図である。
【０１３４】
図１３では、図８Ｂと同様に、インターリーバ104は、コードワード10、コードワード11、コードワード12、コードワード13のデータシンボルを、低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散させて配置することができる。
【０１３５】
また、図１３では、図７Ｂと異なり、コードワード9のデータシンボルは、高周波数のサブキャリアに分布する。
【０１３６】
インターリーバ104は、図９Ａ、図９Ｂ、図９Ｃの手順を用いる場合、コードワード9の前半14データシンボルグループをOFDMシンボル２に含め、図１０Ｂに示すとおり、低周波数のサブキャリアに配置し、コードワード9の後半7データシンボルグループをOFDMシンボル3に含め、図１３に示すとおり、高周波数のサブキャリアに配置する。
【０１３７】
従って、コードワード9のデータシンボルグループは、OFDMシンボル０において低周波数のサブキャリアに配置され、OFDMシンボル１において高周波数のサブキャリアに配置される。つまり、コードワード9のデータシンボルグループは、他のコードワードと異なり複数のOFDMシンボルにまたがり配置されるが、他のコードワードと同様に、周波数領域で低い周波数のデータサブキャリアから高い周波数のデータサブキャリアに渡って広く分散されて配置される。
【０１３８】
なお、インターリーバ104がステップS2004の処理を用いてOFDMシンボル０のインターリーブを行う場合の読み出し処理は、図４ＡのステップS1004の処理と同様である（図５Ｂを参照）。
【０１３９】
図９Ｂは、インターリーバ104が図３においてインターリーブを行う別の手順を示すフローチャートである。図９Ｂは図９Ａと異なる手順を用いるが、同様のデータシンボル系列が出力される。図９Ｂにおいて、図４Ｂと同様の処理は同一の番号を付与し、説明を省略する。
【０１４０】
ステップS1001において、インターリーバ104は、式１２及び式９の代わりに、式１３Ｂ及び式１３Ｃを用いてNx及びNyを算出しても良い。
【数１４】
2019004448.tif 000016
【数１５】
2019004448.tif 000017
【０１４１】
インターリーバ104は、式１２及び式９により算出したNx,Nyが整数とならない場合（後述）に、式１３Ｂ及び式１３Ｃを用いてNx,Nyを算出しても良い。
【０１４２】
図９ＢのステップS2103において、インターリーバ104は、ステップS2003（図９Ａ）と同様に、OFDMシンボル内の先頭シンボルの位置を算出し、読み出し開始位置(n_offset)として設定する。
【０１４３】
n_offsetの値の算出方法について詳細に説明する。インターリーバ104は、式１４を用いて、k(q)offsetの値を算出する。
【数１６】
2019004448.tif 000018
【０１４４】
k(q)offsetは、OFDMシンボル番号(q)（qは0以上の整数、例えばOFDMシンボル０はq=0に相当）において、前のOFDMシンボル(OFDMシンボルq-1)に含まれる最終コードワードのうち、前のOFDMシンボルに含めず、現在のOFDMシンボル(OFDMシンボルq)に含まれるシンボル数を表す。
【０１４５】
例えば、図６ＡのOFDMシンボル０（q=0）では、k(0)offsetは、式１５として示すことができる。
【数１７】
2019004448.tif 000019
【０１４６】
また、図７ＡのOFDMシンボル１（q=1）では、k(1)offsetは、式１６として示すことができる。
【数１８】
2019004448.tif 000020
【０１４７】
また、図８ＡのOFDMシンボル２（q=2）では、k(2)offsetは、式１７として示すことができる。
【数１９】
2019004448.tif 000021
【０１４８】
なお、インターリーバ104は、式１４の代わりに、式１８を用いてk(q)offsetの値を算出しても良い。
【数２０】
2019004448.tif 000022
【０１４９】
式１８は漸化式であり、式１４と比べて乗除算の数が少ないため、インターリーバ104は計算量を削減し回路規模及び消費電力を削減することができる。
【０１５０】
次に、インターリーバ104は、式１９を用いて、NLの値を算出する。
【数２１】
2019004448.tif 000023
【０１５１】
式１９のNLは、2次元配列の最終行に含まれるデータシンボルグループ数を表す。例えば、図６Ａでは、最終行にd(84)からd(90)の7データシンボルグループを含むため、NLの値は7である。式１９では、図６ＡのOFDMシンボル０の最終行の長さ(ＮＬに相当)は、行の長さ(Ｎｙ)から、図７ＡのOFDMシンボル１(q=1)の行番号0に含まれるコードワード5のシンボルグループ数(floor(k(1)offset/NS)に相当)を差し引いた値であることを利用し、ＮＬの値を算出する。
【０１５２】
インターリーバ104は、式２０Ａを用いて、読み出し開始位置(n_offset)の値を算出する。なお、n_offsetの値は、OFDMシンボル番号(q)に依存するため、n(q)offset又はn_offset(q)と表記する場合がある。
【数２２】
2019004448.tif 000024
【０１５３】
n_offset(q)の値は、２次元配列において、読み出し開始位置を含む列より前の列に含まれるデータシンボルグループ数を表す。例えば、図１０Ａでは、読み出し開始位置を含む行（d(14)を含む行）より前の行（d(0)からd(13)を含む行）に含まれるデータシンボルグループ数は63個であるから、n_offset(1)の値は63である。
【０１５４】
また、式２０Ａにおいて、floor(k(q)offset/NS)の値がＮＬ以下か、ＮＬを超えるかによって、第1式と第2式を選択する。第1式（floor(k(q)offset/NS)の値がＮＬ以下の場合）は、図１０Ｂ及び図１２のように、読み出し開始位置を含む列が、最終行にデータシンボルグループを含まない行（図１０Ｂ及び図１２において、d(84)からd(90)の何れも含まない列）である場合に用いる。
【０１５５】
また、第2式（floor(k(q)offset/NS)の値がＮＬを超える場合）は、読み出し開始位置を含む列が、最終行にデータシンボルグループを含む列（図１０Ｂ及び図１２において、d(84)からd(90)の何れかを含む列）である場合に用いる（図示しない）。
【０１５６】
以上、ステップS2103において、インターリーバ104が、式１４から式２０Ａを用いて、読み出し開始位置を算出する方法を示した。
【０１５７】
なお、図９Ａにおいて、インターリーバ104が読み出し開始位置を算出する方法を説明したが、ステップS2003において算出される読み出し開始位置である行番号0を、j(q)offset列と定め、j(q)offsetの値を、式２０Ｂを用いて算出しても良い。
【数２３】
2019004448.tif 000025
【０１５８】
式１５、式１６、式１７を用いて算出したk(0)offset、k(1)offset、k(2)offsetの値を用いると、j(0)offset、j(1)offset、j(2)offsetの値は、それぞれ0、14、7と算出される。この値は、図６Ａ(OFDMシンボル０)、図１０Ａ（OFDMシンボル１）、図１２（OFDMシンボル２）における読み出し開始位置が列番号0,14,7であることを意味する。
【０１５９】
図９ＢのステップS2104では、インターリーバ104は、n_offset(q)を用いてインターリーブアドレスidx1を巡回シフトしたアドレスidx2を用いて、メモリから読み出しを行う。idx2は、式２１により算出される。
【数２４】
2019004448.tif 000026
【０１６０】
すなわち、インターリーバ104は、インターリーブサイズに応じて生成したインターリーブアドレスを、前のOFDMシンボルにも含まれるコードワード（例えば、図１０Ａではコードワード5）に含まれるデータシンボル数に応じてシフトしたアドレスを用いて、読み出し開始位置を含むコードワード6を読み出す。
【０１６１】
図９Ｃは、インターリーバ104が図３においてインターリーブを行う別の手順を示すフローチャートである。図９Ｃは図９Ａ及び図９Ｂと異なる手順を用いるが、同様のデータシンボル系列が出力される。図９Ｃにおいて、図９Ｂ及び図４Ｃと同様の処理は同一の番号を付与し、説明を省略する。
【０１６２】
図４Ｃにおいて図４Ｂのアドレス計算をアドレステーブル引きに置き換えた場合と同様に、図９Ｃにおいて、図４Ｂのアドレス計算（ステップS1001、S1101、S1102）をアドレステーブル引きに置き換えても良い（図４ＣのステップS1202の説明を参照）。
【０１６３】
図９Ｃにおいて、データシンボルグループの読み出し手順は、図９Ｂと同様である（ステップS2103、S2104）。
【０１６４】
なお、インターリーバ104は、図９ＣのステップS2104において、idx2の値は、式２１を用いて計算を行う代わりに、idx1のアドレステーブル（一例として、図５Ｃ）を用いて算出しても良い。例えば、図１０Ａにおいて、nが87、n_offset(1)が63の場合、idx2(87,1)の値は、式２２により、13と算出される。
【数２５】
2019004448.tif 000027
【０１６５】
これは、図１０Ａにおいて、シンボルブロックグループd(13)が、87番目に読み出されることを表す。このように、インターリーバ104は、OFDMシンボル番号qにおいてn番目に読み出すデータを、d(idx2(n,q))と定める。
【０１６６】
図１４は、OFDMシンボル１(q=1)における、idx2(n,1)の値の例を示す表である。
【０１６７】
以上のように、インターリーバ104は、図４Ａ、図４Ｂ及び図４Ｃの手順を用いる場合、コードワード5の前半のデータシンボルグループをOFDMシンボル０に含め、図６Ｂに示すとおり、低周波数のサブキャリアに配置し、コードワード5の後半のデータシンボルグループをOFDMシンボル１に含め、図６Ｂに示すとおり、低周波数のサブキャリアに配置される。
【０１６８】
従って、コードワード5のデータシンボルグループは、OFDMシンボル０においてもOFDMシンボル１においても低周波数のサブキャリアに配置されるため、分布に偏りが生じる。これにより、例えば、低周波数のサブキャリアの信号品質の劣化が高周波のサブキャリアに比べて大きい場合、コードワード5のエラーレートは、他のコードワードに比べ増加する。
【０１６９】
一方、インターリーバ104は、図９Ａ、図９Ｂ、図９Ｃの手順を用いる場合、コードワード5の前半のデータシンボルグループをOFDMシンボル０に含め、図６Ｂに示すとおり、低周波数のサブキャリアに配置し、コードワード5の後半のデータシンボルグループをOFDMシンボル１に含め、図１０Ｂに示すとおり、高周波数のサブキャリアに配置することができる。
【０１７０】
従って、コードワード5のデータシンボルグループは、OFDMシンボル０において低周波数のサブキャリア、OFDMシンボル１において高周波数のサブキャリアに配置される。他のコードワードと異なり複数のOFDMシンボルにまたがり配置されるが、他のコードワードと同様に、周波数領域で広く分散されて配置される。
【０１７１】
これにより、通信装置100は、データサブキャリア数がコードワードあたりのシンボル数の倍数ではない場合であっても、コードワード毎のエラーレートを均一化し、パケットエラーレートを低減し、データスループットを高めることができる。
【０１７２】
これは、例えば、OFDMシンボル長が短い（例えば291ナノ秒）ためにOFDMシンボル間でのチャネル変動が小さい、ミリ波高速通信（11ad規格、11ay規格を含む）において有効である。
【０１７３】
例えば、低周波数のサブキャリアの信号品質の劣化が高周波のサブキャリアに比べて大きい場合、OFDMシンボル０の低周波数側に分布するコードワード5のデータシンボルグループでは品質劣化の影響が大きいが、OFDMシンボル１の高周波数のサブキャリアに分布するコードワード5のデータシンボルグループでは品質劣化の影響が小さい。受信装置のFEC復号回路118において、OFDMシンボル０のコードワード5のデータシンボルグループとOFDMシンボル１のコードワード5のデータシンボルグループとを合わせて誤り訂正復号を行うことにより、低周波数のサブキャリアの信号品質劣化の影響を低減し、エラーレートを低減することができる。
【０１７４】
図１５は、インターリーバ104の構成の一例（インターリーバ104a）を示す図である。インターリーバ104aは、図９Ｂの手順に基づきインターリーブを行う。
【０１７５】
インターリーバ104aは、メモリ1040、アドレスカウンタ1041、Nx,Ny算出回路1042、OFDMシンボル数カウンタ1043、シフト量算出回路1044、ブロックインターリーブアドレスidx0生成回路1045、インターリーブアドレスidx1生成回路1046、アドレスシフト回路1047を備える。
【０１７６】
MAC制御回路101は、例えば、チャネルボンディング数(NCB)、データサブキャリア数(NSD)、LDPCコードワードサイズ(LCW)、シンボル当りビット数(NCBPS)のパラメータをインターリーバ104aへ入力する。
【０１７７】
変調回路103は、データ変調（例えば16QAM）を行ったデータシンボルを、データシンボルグループ毎（NSシンボル毎）にインターリーバ104aへ入力する。
【０１７８】
インターリーバ104aのメモリ1040は、例えば、RAM、または、レジスタアレイで構成される。
【０１７９】
インターリーバ104aのアドレスカウンタ1041は、例えば昇順アドレスを用いて、メモリ1040へデータシンボルグループのデータを書き込むためのアドレスを生成する。例えば、アドレスカウンタ1041は、データシンボルグループd(n,q)をアドレスnへ書き込むように、アドレスを生成する（図９ＢのステップS1103に相当）。
【０１８０】
インターリーバ104aのNx,Ny算出回路1042は、式１３Ｂ及び式１３Ｃを用いて、２次元配列の行数Nxと列数Nyを算出し、シフト量算出回路1044及びブロックインターリーブアドレスidx0生成回路1045へ入力する（図９ＢのステップS1001に相当）。
【０１８１】
インターリーバ104aのOFDMシンボル数カウンタ1043は、変調回路103から入力されたシンボル数（図示せず）に応じ、OFDMシンボル番号(q)の値を決定し、シフト量算出回路1044へ入力する。
【０１８２】
インターリーバ104aのシフト量算出回路1044は、式１４、式１９、式２０Ａを用いて、n_offset(q)の値を算出する（図９ＢのステップS2103に相当）。
【０１８３】
インターリーバ104aのブロックインターリーブアドレスidx0生成回路1045は、式１３Ａを用いて、idx0(i)を算出する（図９ＢのステップS1101に相当）。
【０１８４】
インターリーバ104aのインターリーブアドレスidx1生成回路1046は、図９Ｂのステップ1102の手順を用いて、idx1(n)を算出する。
【０１８５】
インターリーバ104aのアドレスシフト回路1047は、式２１を用いて、idx2(n,q)を算出する（図９ＢのステップS2104に相当）。インターリーバ104aは、アドレスシフト回路1047が生成したidx2(n,q)を読み出しアドレスとして、メモリ1040からデータシンボルグループを読み出し、OFDM変調回路105へ出力する。
【０１８６】
なお、デインターリーバ116は、インターリーバ104aにおいて、アドレスシフト回路1047の出力(idx2(n,q))を書き込みアドレスとし、アドレスカウンタ1041の出力を読み出しアドレスとすることにより構成しても良い。
【０１８７】
図１６は、インターリーバ104の構成の別の例（インターリーバ104b）を示す図である。図１６において、図１５と同じ構成要素には同じ符号を付与し、説明を省略する。図１５のインターリーバ104aは、書き込みアドレスにデータシンボルグループ番号(n)を用い、読み出しアドレスにインターリーブ方式に応じたアドレスを用いることによりインターリーブ処理を行う。これに対して、図１６のインターリーバ104bは、書き込みアドレスにインターリーブ方式に応じたアドレスを用い、読み出しアドレスにデータシンボルグループ番号(n)を用いることによりインターリーブ処理を行う。
【０１８８】
図１６のインターリーバ104bは、図１５インターリーバ104aと構成が異なるが、同じインターリーブ結果を得ることができる。後述するように、デインターリーブアドレステーブルメモリ1048は、変調回路103からのデータシンボルグループの入力に応じて対応するインターリーブアドレスを逐次生成すればよく、アドレスシフト回路1047aは加算とモジュロ処理により行うことができるため、回路構成が簡易であり、消費電力を削減することができる。
【０１８９】
アドレスカウンタ1041aは、変調回路103の出力に応じ、データシンボルグループ番号(n)を生成する。
【０１９０】
デインターリーブアドレスメモリ1048は、デインターリーブアドレスidx3(n)を、idx3(n)が式２３を満たすように算出する。
【数２６】
2019004448.tif 000028
【０１９１】
なお、式２３を満たすidx3(n)は、式２４を満たす。
【数２７】
2019004448.tif 000029
【０１９２】
式２３及び式２４より、idx3(n,q)は、idx1(n,q)の逆引きアドレスである。
【０１９３】
デインターリーブアドレスメモリ1048は、idx3(n)を算出するアドレステーブルを、例えば、ROM、または、RAMに格納して、idx3(n)を算出してもよい。
【０１９４】
アドレスシフト回路1047aは、式２５を用いて、読み出し初期値調整済みのインターリーブアドレスidx4(n,q)を算出する。
【数２８】
2019004448.tif 000030
【０１９５】
インターリーバ104は、図１０Ａにおいて、読み出し位置をn_offset(q)だけ進めることに対応し、式２５は、書き込み位置をn_offset(q)だけ遅らせることを意味し、両者は同じ効果が得られる。
【０１９６】
アドレスシフト回路1047aが生成するidx4(n,q)は、式２６及び式２７を満たす。idx4(n,q)は、idx2(n,q)の逆引きアドレスである。
【数２９】
2019004448.tif 000031
【数３０】
2019004448.tif 000032
【０１９７】
図１７は、図１４に示したidx1(n)の値の例に対応するidx3(n)及びidx4(n,1)の値の例を示す。図１４において、例えば、idx1(4)の値は84であった。これに対応して、idx3(84)の値は4である。また、図１４において、例えば、idx2(6,1)の値は57であった。これに対応して、idx4(57,1)の値は6である。
【０１９８】
アドレスカウンタ1041aは、データシンボルグループ番号(n)を生成する。アドレスカウンタ1041aは、一例として、昇順アドレス(n=0,1,...,floor(NSD/NS)-1)を生成する。
【０１９９】
インターリーバ104bは、アドレスシフト回路1047aが生成するアドレス(idx4(n,q))を用いてデータシンボルグループをメモリへ書き込み、アドレスカウンタ1041aが生成するアドレスを用いてデータシンボルグループをメモリから読み出すことにより、インターリーブを行う。
【０２００】
図１６のインターリーバ104bと、図１０Ａとの対応について説明する。インターリーバ104bは、始めに読み出すデータがアドレス0、次に読み出すデータがアドレス1、のように、読み出し順を考慮し、インターリーブ手順（図９Ａ、図９Ｂ、図９Ｃ）に応じてデータシンボルグループを書き込む位置を制御することにより、インターリーブを実現する。
【０２０１】
例えば、図１０Ａにおいて、データシンボルグループd(14)を始めに読み出すため、d(14)をアドレス0に書き込む。つまり、インターリーバ104bは、idx4(14,1)=0であるように、書き込みアドレスの計算を行う。
【０２０２】
図１８は、インターリーバ104の構成の別の例（インターリーバ104c）を示す図である。図１８は、OFDM変調回路105の構成の一例（OFDM変調回路105a）を含む。図１８において、図１５及び図１６と同じ構成要素には同じ符号を付与し、説明を省略する。
【０２０３】
インターリーバ104cは、インターリーバ104bと異なり、アドレスシフト回路1047aが算出したアドレスidx4(n,q)を、OFDM変調回路105aへ入力する。また、インターリーバ104cは、メモリ1040及びアドレスカウンタ1041aを持たなくても良い。
【０２０４】
また、変調回路103は、データシンボルグループをインターリーバ104cの代わりにOFDM変調回路105aへ入力しても良い。通信装置100は、インターリーバ104cが算出した書き込みアドレスを用いることで、実質的に、OFDM変調回路105aがインターリーブ処理を行う。
【０２０５】
OFDM変調回路105aは、データサブキャリアアドレス算出回路1051、メモリ1052、パイロット及びガードサブキャリア挿入回路1053、アドレス生成回路1054、IDFT回路1055、CP付加及び窓関数回路1056を含む。
【０２０６】
OFDM変調回路105aのデータサブキャリアアドレス算出回路1051は、インターリーブ後のデータサブキャリア順位(r)に応じたサブキャリア番号(k)を算出する。インターリーブ後のデータサブキャリア順位(r)とは、例えば、図５Ｂ、図１０Ａ、図１２におけるデータの読み出し順位を意味する。
【０２０７】
例えば、図１０Ａにおいて、データシンボルグループd(14)に含まれるデータシンボルのデータサブキャリア順位は0からNS-1であり、データシンボルグループd(35)に含まれるデータシンボルのデータサブキャリア順位はNSから2NS-1である。インターリーバ104cは、データシンボルグループd(n)のデータサブキャリア順位を、idx4(n,q)×NSからidx4(n,q)×NS+NS-1であると定める。
【０２０８】
図１９は、データサブキャリア順位(r)とサブキャリア番号(k)との対応（サブキャリアマッピングという）の一例を示す。サブキャリアマッピングは、チャネルボンディング数(NCB)、DFT点数(NDFT)、データサブキャリア数(NSD)、チャネル番号(ch)に応じて異なる値をとってもよい。図１９は、NCB=2、NDFT=1024、NSD=728、チャネル番号が9の場合の例である。
【０２０９】
サブキャリア番号kの値の範囲は、-NDFT/2以上NDFT/2-1以下(図１９の例では、-512以上511以下)である。図１９において、kが-383未満及び383を超えるサブキャリアは、ガードバンド又はガードサブキャリアという。ガードサブキャリアのシンボルの値は0と定める。図１９において、kの値が-1,0,1のサブキャリアは、DCサブキャリアという。DCサブキャリアのシンボルの値は0と定める。
【０２１０】
また、ガードサブキャリア及びDCサブキャリア以外、かつ図１９に記載が無いkの値は、パイロットサブキャリアという。パイロットサブキャリアのサブキャリア番号kは、一例として、{ -372, -350, -328, -306, -284, -262, -240, -218, -196, -174, -152, -130, -108, -86, -64, -42, -20, -3, 7, 24, 46, 68, 90, 112, 134, 156, 178, 200, 222, 244, 266, 288, 310, 332, 354, 376}である。
【０２１１】
データサブキャリアアドレス算出回路1051は、データサブキャリア順位(r)から算出したサブキャリア番号(k)に応じて、データシンボルc(h,q)をメモリ1052へ書き込む。ここで、c(h,q)はOFDMシンボル番号qにおけるh番目(hは0以上NSD未満の整数)のデータシンボルを表す。データシンボルc(h,q)が含まれるデータシンボルグループd(n,q)の番号kは、式２８により算出される。
【数３１】
2019004448.tif 000033
【０２１２】
データサブキャリアアドレス算出回路1051は、例えば、サブキャリアkのデータをメモリ1052のアドレスk+NDFT/2へ書き込む。
【０２１３】
通信装置１００において、インターリーバ104cは、データシンボルc(h,q)が含まれるデータシンボルグループd(k,q)に関するインターリーブアドレスidx4(n,q)を算出する。OFDM変調回路105aは、データシンボルグループd(k,q)に含まれるデータシンボルのデータ順位（idx4(n,q)×NSからidx4(n,q)×NS+NS-1）に基づきサブキャリア番号kを算出し、メモリ1052の、サブキャリア番号に応じたアドレスにデータシンボルを書き込む。
【０２１４】
パイロット及びガードサブキャリア挿入回路1053は、ガードサブキャリア、DCサブキャリアの位置を算出し、シンボルの値を0としてメモリ1052へ書き込む。また、パイロット及びガードサブキャリア挿入回路1053は、パイロットサブキャリアのサブキャリア番号を算出し、予め定められたパイロットシンボルの値をメモリ1052へ書き込む。
【０２１５】
アドレス生成回路1054は、IDFT回路1055がIDFTを行うために、メモリ1052からサブキャリアデータ（データサブキャリア、DCサブキャリア、パイロットサブキャリア、ガードサブキャリアを含んでも良い）を読み出すアドレスを生成する。アドレス生成回路1054は、IDFT回路1055の回路構成に応じ、昇順アドレスを生成してもよく、ビット逆順アドレスを生成しても良い。
【０２１６】
IDFT回路1055は、アドレス生成回路1054が生成したアドレスから読み出したサブキャリアデータに対して逆離散フーリエ変換を行い、サブキャリアデータを時間領域信号へ変換する。CP付加及び窓関数回路1056は、時間領域信号にCPを付加し、窓関数を適用する。
【０２１７】
以上のように、図１８のインターリーバ104cは、図１６のインターリーバ104bと比べ、メモリ1040が不要であるから、回路規模及び消費電力を削減し、処理遅延を減らすことができる。
【０２１８】
＜動作例４＞
図２０、図２１は、インターリーバ104がインターリーブを行う別の例を示す図である。図２０、図２１において、コードワードあたりのシンボル数(LCW/NCBPS)がデータシンボルグループあたりのシンボル数(NS)の倍数でないために、データシンボルグループに複数のコードワードのデータシンボルが混在する場合について説明する。ここでは、インターリーバ104が図９Ａの手順を用いる場合について説明するが、図９Ｂ及び図９Ｃを用いる場合も同様の効果が得られる。
【０２１９】
図２０は、一例として、NSDが728、LCWが624、NCBPSが4の場合に、インターリーバ104がOFDMシンボル０(q=0)のインターリーブを行う例を示す。インターリーバ104は、図５Ａと同様に行毎の書き込みを行うが、図２０では、書き込み順序を示す矢印を省略する。また、インターリーバ104は、図５Ｂ、図１０Ａ、図１２と同様に行毎の書き込みを行う。図２０において、読み出し順序を示す矢印は、読み出し位置を明記するために始めの2列分を記載するが、残りの列番号に関して省略する。
【０２２０】
ステップS1001において、インターリーバ104は式１３Ｂ及び式１３Ｃを用いてNx及びNyの値を算出する。一例として、Nyは20、Nxは5である。
【０２２１】
図２０において、コードワードあたりのデータシンボルグループ数(LCW/NCBPS/NS)は、19.5であり、インターリーバ104が算出したNyの値（=20）と異なる。式１３Ｂにより、Nyの値は、コードワードあたりのデータシンボルグループ数(LCW/NCBPS/NS)を切り上げ(ceiling)した値である。このため、行番号0の最終列のシンボル（d(19)）には、コードワード1の最終4シンボルとコードワード2の先頭4シンボルが混在する。つまり、２次元配列の行とコードワードとの対応関係にずれが生じる。行番号0では、コードワード1と異なるシンボルが4シンボル含まれるため、ずれ量が4シンボルである。
【０２２２】
また、行毎にずれ量が累積し、行番号1のずれ量は8シンボル、すなわち1データシンボルグループに相当する。そのため、行番号1の最終列（d(39)）を除く列（d(20)からd(38)）はコードワード2のデータシンボルグループを含むが、行番号1の最終列（d(39)）はコードワード3のデータシンボルグループを含む。
【０２２３】
また、行番号2のずれ量は12シンボル、すなわち1.5データシンボルグループに相当する。そのため、行番号1の最終2列（d(58),d(59)）を除く列（d(40)からd(57)）はコードワード3のデータシンボルグループを含み、d(58)には、コードワード3とコードワード4のデータシンボルが混在し、最終列(d(59)はコードワード4のデータシンボルグループを含む。
【０２２４】
図２１は、図２０と同じパラメータ（例えば、NSD=728、LCW=624、NCBPS=4）を用いる場合に、インターリーバ104がOFDMシンボル１(q=1)のインターリーブを行う例を示す。図２１において、図２０と同様に、読み出し開始位置を含む2列の読み出し順序を示す矢印を記載し、書き込み及び残りの列の読み出しに関する矢印の記載を省略する。
【０２２５】
図２１の各行番号において、読み出し開始位置(d(7))を含む列のコードワードのデータシンボルグループが、読み出し開始位置を含む列より前の列に含まれる場合、そのデータシンボル数をずれ量とみなす。
【０２２６】
例えば、図２１では、行番号0においては、読み出し開始位置がd(7)であるため、コードワード６は先頭のデータシンボルグループから読み出されるが、コードワード７は、2番目のデータシンボルグループであるd(27)から読み出される。
【０２２７】
このため、コードワード6では、読み出し開始位置を含む列（d(7)）より前の列（d(6)を含む列）にCW6の4シンボル（先頭4シンボル）が含まれるため、ずれ量は4シンボルである。コードワード７では、読み出し開始位置を含む列（d(27)）より前の列（d(26)を含む列）にCW7のシンボルが8シンボル含まれるため、ずれ量は8シンボルである。コードワード８では、読み出し開始位置を含む列（d(47)を含む列）より前の列（d(45)、d(46)）にCW8のシンボルが4シンボルと8シンボル含まれるため、ずれ量は12シンボルである。コードワード９では、読み出し開始位置を含む列（d(67)を含む列）より前の列（d(65)、d(66)）にCW9のシンボルが8シンボルと8シンボル含まれるため、ずれ量は16シンボルである。コードワード１０では、読み出し開始位置を含む列（d(87)を含む列）より前の列（d(84)、d(85)、d(86)）にCW１０のシンボルが、4シンボル、8シンボル、8シンボル含まれるため、ずれ量は20シンボルである。
【０２２８】
図２２、図２３は、インターリーバ104が図２０、２１のOFDMシンボル０,１のインターリーブを行う場合の、コードワードのデータシンボルの周波数領域における分布を示す図である。
【０２２９】
インターリーバ104は、図９Ａ、図９ＢのステップS1001において、列数Nyをコードワード当りのシンボル数に基づき定める。このため、コードワード1,2,3,4,6,7,8,9は、OFDMシンボルの低い周波数のサブキャリアから高い周波数のサブキャリアに広く分散されて配置される。
【０２３０】
また、インターリーバ104は、図９ＡのステップS2003及び図９ＢのステップS2103において、読み出し開始位置をOFDMシンボルのデータサブキャリア数(NSD)及びコードワード当りのシンボル数(LCW/NCBPS)に応じて定める。このため、コードワードを複数のOFDMシンボルに分けて配置する場合、コードワード内の周波数の重複を少なくし、OFDMシンボルの低い周波数のサブキャリアから高い周波数のサブキャリアに広く分散されて配置することができる。
【０２３１】
なお、図２２及び図２３において、コードワード5は、高い周波数のサブキャリアにおいて、ずれ量に応じてデータシンボルの分布の重複が発生する。しかしながら、インターリーバ104は、ずれ量がOFDMシンボル毎に累積しないように読み出し初期値を定める（例えば式１４、式１９、式２０Ａを参照）。このため、ずれ量は、OFDMシンボルのサブキャリア数に比べ小さな値とすることができ、データシンボルの分布の重複による性能劣化を低減することができる。
【０２３２】
また、図２２及び図２３において、インターリーバ104は、各コードワードのデータシンボルを、ずれ量に応じた先頭部分を除き、コードワード内のデータシンボルの順序を保ってOFDMシンボルのサブキャリアに配置する。
【０２３３】
これにより、通信装置100が図２２及び図２３を受信する場合、デインターリーバ116は、各コードワードのデータシンボルの順序を保ってデータを出力することが容易であるため、後段の復調回路117及びFEC復号回路118の回路構成を簡易化することができる。また、通信装置100は、コードワード毎に並列処理を行うことが容易となるため、データスループットを高めることができる。
【０２３４】
＜動作例５＞
図２４、図２５は、インターリーバ104がインターリーブを行う別の例を示す図である。図２４、図２５において、図２０、図２１と同様に、コードワードあたりのシンボル数(LCW/NCBPS)がデータシンボルグループあたりのシンボル数(NS)の倍数でないために、データシンボルグループに複数のコードワードのデータシンボルが混在する場合について説明する。インターリーバ104が図９Ａの手順を用いる場合について説明するが、図９Ｂ及び図９Ｃを用いる場合も同様の効果が得られる。
【０２３５】
図２４は、一例として、NSD=728、LCW=624、NCBPS=4の場合に、インターリーバ104がOFDMシンボル０(q=0)のインターリーブを行う例を示す。インターリーバ104は、図５Ａと同様に行毎の書き込みを行うが、図２０において書き込み順序を示す矢印を省略する。また、インターリーバ104は、図５Ｂ、図１０Ａ、図１２と同様に行毎の書き込みを行う。図２０において、読み出し順序を示す矢印は、読み出し位置を明記するために始めの2列分を記載するが、残りの列に関して省略する。
【０２３６】
ステップS1001において、インターリーバ104は、式２９、式３０に従ってNx及びNyの値を算出する。
【数３２】
2019004448.tif 000034
【数３３】
2019004448.tif 000035
【０２３７】
式２９は、式１３Ｂと異なり、ceiling関数の代わりにfloor関数を用いる。式３０は式１３Ｃと同様であるが、式２９で算出したNyの値を用いる。一例として、Nyは19、Nxは5である。
【０２３８】
図２４において、コードワードあたりのデータシンボルグループ数(LCW/NCBPS/NS)は、19.5であり、インターリーバ104が算出したNy（=19）の値と異なる。式２９により、Nyの値は、コードワードあたりのデータシンボルグループ数(LCW/NCBPS/NS)を切り捨て(floor)した値である。このため、行番号1、列番号0のシンボル（d(19)）には、コードワード1の最終4シンボルとコードワード2の先頭4シンボルとが混在する。つまり、行とコードワードとの対応関係のずれが、読み出し開始位置の列において発生する。
【０２３９】
図２５は、図２４と同じパラメータ（例えば、NSD=728、LCW=624、NCBPS=4）を用いる場合に、インターリーバ104がOFDMシンボル1(q=1)のインターリーブを行う例を示す。図２４と同様に、読み出し開始位置を含む2列の読み出し順序を示す矢印を記載し、書き込み及び残りの列の読み出しに関する矢印の記載を省略する。
【０２４０】
図２５では、インターリーバ104は、図２１と異なり、CW6のデータシンボルを1つ以上含むデータシンボルグループの位置を読み出し開始位置に定める（例えばd(10)の位置）。すなわち、インターリーバ104は、図２１では、別のCW(例えばCW5)のデータシンボルを含む場合（例えば図２１のd(6)）、読み出し開始位置として選択しないが、図２５では、別のCW(例えばCW5)のデータシンボルを含む場合であっても、CW6のデータシンボルを含む場合、読み出し開始位置として選択する。
【０２４１】
インターリーバ104は、図２５に示す読み出しを行う場合、図９ＢのステップS2103において、式１４の代わりに式３１を用いる。
【数３４】
2019004448.tif 000036
【０２４２】
インターリーバ104は、式１４においてceiling関数を用いるのに比べ、式３１では、floor関数を用いる。
【０２４３】
図２６、図２７は、インターリーバ104が図２４、２５のOFDMシンボル０,１のインターリーブを行う場合の、コードワードのデータシンボルの周波数領域における分布を示す図である。
【０２４４】
インターリーバ104は、図９Ａ、図９ＢのステップS1001において、列数Nyをコードワード当りのシンボル数に基づき定める。このため、コードワード1,2,3,4,6,7,8は、OFDMシンボルの低い周波数のサブキャリアから高い周波数のサブキャリアに広く分散されて配置される。
【０２４５】
また、インターリーバ104は、図９ＡのステップS2003及び図９ＢのステップS2103において、読み出し開始位置をOFDMシンボルのデータサブキャリア数(NSD)及びコードワード当りのシンボル数(LCW/NCBPS)に応じて定める。このため、コードワードを複数のOFDMシンボルに分けて配置する場合、コードワード内の周波数の重複を少なくし、OFDMシンボルの低い周波数のサブキャリアから高い周波数のサブキャリアに広く分散されて配置することができる。
【０２４６】
なお、図２６及び図２７において、コードワード5は、一部の周波数のサブキャリアにおいて、ずれ量に応じてデータシンボルの分布の重複が発生する。しかしながら、インターリーバ104は、ずれ量がOFDMシンボル毎に累積しないように読み出し初期値を定める（例えば式３１、式１９、式２０Ａを参照）。このため、ずれ量は、OFDMシンボルのサブキャリア数に比べ小さな値とすることができ、データシンボルの分布の重複による性能劣化を低減することができる。
【０２４７】
また、図２６及び図２７において、インターリーバ104は、各コードワードのデータシンボルグループを、コードワードの最終部分を除き、コードワード内のデータシンボルグループの順序を保ってOFDMシンボルのサブキャリアに配置する。
【０２４８】
例えば、図２５では、コードワード６において、コードワード６の最後部分（d(29)）が、d(11)からd(28)よりも先に読みだされ、コードワード７では、コードワード７の最後部分d(48)が、d(30)からｄ(47)よりも先に読みだされる。このため、図２７において、コードワード６は、d(11)からd(28)に該当するデータシンボルグループの順序が保たれ、コードワード７は、d(30)からd(47)に該当するデータシンボルグループの順序が保たれる。
【０２４９】
これにより、通信装置100が図２６及び図２７を受信する場合、デインターリーバ116は、各コードワードのデータシンボルの順序を保ってデータを出力することが容易であるため、後段の復調回路117及びFEC復号回路118の回路構成を簡易化することができる。また、通信装置100は、コードワード毎に並列処理を行うことが容易となるため、データスループットを高めることができる。
【０２５０】
＜動作例６＞
図２８、図２９は、インターリーバ104がインターリーブを行う別の例を示す図である。図２８、図２９において、図２０、図２１と同様に、コードワードあたりのシンボル数(LCW/NCBPS)がデータシンボルグループあたりのシンボル数(NS)の倍数でない場合について説明する。インターリーバ104が図９Ａの手順を用いる場合について説明するが、図９Ｂ及び図９Ｃを用いる場合も同様の効果が得られる。
【０２５１】
図２８は、一例として、NSD=728、LCWが=624、NCBPS=4の場合に、インターリーバ104がOFDMシンボル０(q=0)のインターリーブを行う例を示す。図２８では、図２１と同様に、書き込み順序を示す矢印を省略し、読み出し順序を示す矢印は、読み出し位置を明記するために始めの2列分を記載するが、残りの列に関して省略する。
【０２５２】
ステップS1001において、インターリーバ104は、式１３Ｂ用いて、列数Nyを算出する。また、式３２を用いて、パディングシンボル数Nydを算出する。
【数３５】
2019004448.tif 000037
【０２５３】
ステップS1002において、インターリーバ104は、行方向にデータシンボルグループの書き込みを行う。なお、インターリーバ104は、最終列において、パディングシンボルの追加、行方向の書き込み、を行う。例えば、NSが8、Nydが4である場合、インターリーバ104は、最終列のデータシンボルグループ（例えばd(19)、d(39)、d(59)、d(79)）に、NS-Nydデータシンボル（例えば4データシンボル）を含め、残りの4シンボルに、例えば空き、ダミーシンボル、パディングシンボルを含めても良い。
【０２５４】
これにより、各コードワードの先頭データシンボルグループが列番号0に配置される。
【０２５５】
図２９は、図２４と同じパラメータ（例えば、NSD=728、LCW=624、NCBPS=4）を用いる場合に、インターリーバ104がOFDMシンボル１(q=1)のインターリーブを行う例を示す。図２８と同様に、読み出し開始位置を含む2列の読み出し順序を示す矢印を記載し、書き込み及び残りの列の読み出しに関する矢印の記載を省略する。
【０２５６】
ステップS1002において、インターリーバ104は、行方向にデータシンボルグループの書き込みを行う。インターリーバ104は、読み出し開始位置を含む列の前の列（読み出し開始位置が先頭列であれば、最終列）のデータシンボルグループ（例えば、d(6)、d(26)、d(46)、d(66)、d(86)）において、パディングシンボルの追加、行方向の書き込み、を行う。これにより、各コードワードの先頭データシンボルグループが読み出し開始位置を含む列に配置される。
【０２５７】
図２８、図２９において、インターリーバ104は、式１４の代わりに、式３３を用いて読み出し開始位置を算出する。
【数３６】
2019004448.tif 000038
【０２５８】
なお、図２８、図２９において、インターリーバ104は、式３３の代わりに、式１８を変形した式３４を用いても良い。
【数３７】
2019004448.tif 000039
【０２５９】
式３４は、式１８におけるLCW/NCBPS（コードワード当りのシンボル数に相当）をLCW/NCBPS+Nyd（ダミーシンボルを含めたコードワード当りのシンボル数に相当）に置き換えた式である。
【０２６０】
OFDMシンボルに含まれるダミーシンボルの総数は(Nx-1)×Nydであるから、式３３は、式１４におけるNSDをNSD+(Nx-1)×Nydに置き換えた式である。
【０２６１】
図２８、図２９の方法では、インターリーバ104は、図１０Ａ、図１１Ａの方法と同様に、各コードワードのデータシンボルをOFDMシンボルの低い周波数のサブキャリアから高い周波数のサブキャリアに広く分散して配置することができ、通信品質を向上させることができる。
【０２６２】
また、図２８、図２９の方法では、インターリーバ104は、図１０Ａ、図１１Ａの方法と同様に、各コードワードのデータシンボルを、コードワード内の順序を保持してサブキャリアに配置する。このため、通信装置100がパケットの受信を行う場合、デインターリーバ116の後段の処理（例えば復調回路117、FEC復号回路118）の構成を簡易化し、並列処理を容易にするため、回路規模を削減し、データスループットを向上させることができる。
【０２６３】
（実施の形態１の変形例）
図３０は、通信装置100のインターリーバ104が、インターリーブ処理を行う、図９Ａ、図９Ｂ、図９Ｃとは別の方法を示すフローチャートである。インターリーバ104は、図９Ｂの手順においてインターリーブアドレス(idx1(n))にオフセット(noffset(q))を加算して読み出しアドレスを算出したのに比べ、図３０の手順においては、図４Ｂと同様にオフセットを加算しないインターリーブを行い、オフセット(noffset(q))の値に応じて、インターリーブ後のデータの巡回シフトを行う。
【０２６４】
図９Ｂのようにアドレス算出時にオフセットを加算することは、データをオフセットの値に応じて巡回シフトすることに相当する。そのため、通信装置100のインターリーバ104は、図９Ａ、図９Ｂ、図９Ｃ、図３０の何れの方法を用いても、出力されるデータシンボルの順序は同様である。
【０２６５】
図３０のステップS1001において、インターリーバ104は、図９ＢのステップS1001と同様に、式９及び式１２を用いて、インターリーバの列数(Ny)及び行数(Nx)を算出する。なお、データシンボルグループのサイズ(Ns)が1である場合、インターリーバ104は、式９及び式１２の代わりに式３５及び式３６を用いてもよい。
【数３８】
2019004448.tif 000040
【数３９】
2019004448.tif 000041
【０２６６】
図３０のステップS1101において、インターリーバ104は、図４ＢのステップS1101と同様に、式１３Ａを用いて、ブロックインターリーブアドレスidx0を算出する。
【０２６７】
インターリーバ104は、式１３Ａの代わりに式３７を用いてもよい。
【数４０】
2019004448.tif 000042
【０２６８】
図３０のステップS1102において、インターリーバ104は、図４ＢのステップS1102と同様に、ブロックインターリーブアドレスidx0から、入力データシンボル数(NSD)以上の値を除去し、インターリーブアドレスidx1(0),idx1(1),...,idx1(NSD-1)を算出する。
【０２６９】
図３０のステップS1103において、インターリーバ104は、図４ＢのステップS1103と同様に、入力データd(k)を昇順アドレスを用いてメモリに書き込む。
【０２７０】
図３０のステップS1104において、インターリーバ104は、図４ＢのステップS1104と同様に、入力データd(k)をidx1(n)を用いてメモリから読み出す。
【０２７１】
図３０のステップS3101において、インターリーバ104は、図９ＢのステップS2103と同様に、式１４を用いてkoffset(q)の値を算出し、式１９を用いてNLの値を算出し、式２０Ａを用いてnoffset(q)の値をシフト量（ｎ_shift）として算出する。
【０２７２】
なお、インターリーバ104は、データシンボルグループのサイズ(Ns)が1である場合、式１９の代わりに式３８を用いてNLの値を算出しても良い。
【数４１】
2019004448.tif 000043
【０２７３】
また、インターリーバ104は、データシンボルグループのサイズ(Ns)が1である場合、式２０Ａの代わりに式３９を用いてnoffset(q)の値を算出しても良い。
【数４２】
2019004448.tif 000044
【０２７４】
また、インターリーバ104は、式２０Ａの代わりに式４０を用いてnoffset(q)の値を算出しても良い。
【数４３】
2019004448.tif 000045
【０２７５】
式４０において、idx-1(k)はidx(k)の逆関数を表し、式４１を満たす。
【数４４】
2019004448.tif 000046
【０２７６】
また、インターリーバ104は、データシンボルグループのサイズ(Ns)が1である場合、式４０の代わりに式４２を用いてnoffset(q)の値を算出しても良い。
【数４５】
2019004448.tif 000047
【０２７７】
式４０及び式４２の意味を、図１０Ａを参照して説明する。floor(koffset(q)/NS)は、読み出し開始位置の列番号（例えば14）を表す。行番号0（floor(koffset(q)/NS)）列のデータシンボルグループは、ステップS1103において、floor(koffset(q)/NS)番目に書き込まれるデータシンボルグループd(floor(koffset(q)/NS))である。インターリーバ104は、データシンボルd(k)をidx-1(k)番目に読み出すので、データシンボルグループd(floor(koffset(q)/NS))はidx-1(floor(koffset(q)/NS))番目に読み出される。つまり、式４０及び式４２が得られる。
【０２７８】
図３０のステップS3102において、インターリーバ104は、ステップS1104において読み出したデータシンボルグループの配列を、ｎ_shift（=noffset(q)）データシンボルグループ分左方向（インデックスが0の方向）へ巡回シフトする。
【０２７９】
図３１は、ステップS3102における巡回シフトの一例を示す図である。巡回シフト前のデータシンボル系列は、例えば図５Ｂにおける読み出し結果と同様に、d(0)（つまりd(idx(0))）が先頭シンボルである。インターリーバ104が巡回シフトを行うと、読み出し開始位置に相当するシンボル（例えばd(14)、つまりd(idx(noffset(q)))）がデータシンボル系列の先頭に移動する。
【０２８０】
noffset(q)の値は、図１０Ａ、図１１Ａにおける読み出し開始位置に相当する。図３０のステップS1001からステップS1104においては、図４Ｂの手順と同様に読み出し開始位置の調整（図９Ｂのステップ2104に相当）を行わない。この場合、図１０Ａ、図１１Ａにおける読み出し開始位置に相当するデータシンボルグループは、ステップS1104においてnoffset(q)+1番目に読み出される。
【０２８１】
インターリーバ104は、ステップS3102において、noffset(q)シンボルの巡回シフトを行うことにより、読み出し開始位置に相当するデータシンボルグループがインターリーバの出力の先頭に位置するようにでき、図９Ｂの手順と同様のインターリーブ結果を得ることができる。
【０２８２】
以下、図３０の手順を、数式により説明する。OFDMシンボル番号q(qは非負の整数)におけるインターリーバ104への入力データシンボル系列（din(q)）を、式４３により表す。
【数４６】
2019004448.tif 000048
【０２８３】
ステップS1104における出力データシンボル系列（dinterleave(q)）は、式４４により求める。
【数４７】
2019004448.tif 000049
【０２８４】
式４３において、idx(n)は、式４５により求める。
【数４８】
2019004448.tif 000050
【０２８５】
ステップS3102における出力データシンボル系列（dout(q)）は、式４６により求める。
【数４９】
2019004448.tif 000051
【０２８６】
式４６において、mod(x)は、x mod NSDを表す。
【０２８７】
式４６において、１行目は、図３０のステップS3102で説明したとおり、ステップS1104における出力データシンボル系列（dinterleave(q)）をnoffset(q)シンボルシフトした場合に相当する。式４６において、２行目は、１行目に式４２及び式４４を代入することで得られる。また、式４６において、３行目は、図９Ｂの手順を用いた場合、つまりアドレス(idx)算出の際にオフセットを加算する場合に相当する。
【０２８８】
インターリーバ104は、式４６の１行目、２行目、３行目の何れを用いて出力データ系列を生成しても良い。
【０２８９】
なお、インターリーバ104は、図３０のステップS3102において、データシンボル系列を巡回シフトする代わりに、データシンボル系列の順序を反転しても良い。式４７に、出力データシンボル系列（dout(q)）の算出式の一例を示す。
【数５０】
2019004448.tif 000052
【０２９０】
図３２は、インターリーバ104が式４７を用いてインターリーブを行った場合のコードワード毎のデータシンボルの周波数領域における分布を表す図である。式４７を用いることにより、図７Ｂに比べデータシンボルの分布が左右反転され、コードワード5のデータシンボルの分布が高周波数側に配置される。このため、前のOFDMシンボル（OFDMシンボル０）におけるコードワード5のデータシンボルの分布（図６Ｂ）との重複が少なくなり、マルチパス環境における通信品質を向上させることができる。
【０２９１】
以上のように、実施の形態１の変形例では、インターリーバ104は、メモリから読み出したデータに巡回シフトを行い、コードワードの先頭のデータシンボルグループを先頭のサブキャリアに配置する。このため、複数のOFDMシンボルに渡って配置されるコードワードのデータシンボルの周波数分布の重複が少なくなり、マルチパス環境における通信品質を向上させることができる。
【０２９２】
（実施の形態２）
図３３は、実施の形態２の通信装置100aの構成を示すブロック図である。実施の形態１の通信装置100と比べ、復調回路117aとデインターリーバ116aとの順序が異なる。すなわち、通信装置100aでは、等化回路115の出力が復調回路117aに接続され、復調回路117aの出力がデインターリーバ116aに接続され、デインターリーバ116aの出力がFEC復号回路118へ出力される。
【０２９３】
図３３のデインターリーバ116aは、例えば図４Ａ、図４Ｂ、図４Ｃ、図９Ａ、図９Ｂ、図９Ｃ、図３０の手順によりインターリーブされたデータをデインターリーブする回路である。
【０２９４】
復調回路117aは、入力されたデータシンボル毎に、NCBPS個の尤度情報（例えばLLR、Log Likelihood Ratio）を出力する。例えば、復調回路117aは、データシンボルd(n)から、NCBPS個のLLRの系列e(n×NCBPS),e(n×NCBPS+1),...,e(n×NCBPS+NCBPS-1)を生成する。
【０２９５】
デインターリーバ116aは、NCBPS個のLLRを1個のデータシンボルとみなして、デインターリーブを行う。例えば、NSD×NCBPS個のLLRの系列e(idx(0+noffset(q))),e(idx(0+noffset(q))+1),...,e(idx(0+noffset(q))+NCBPS-1),e(idx(1+noffset(q))),e(idx(1+noffset(q))+1),...,e(idx(1+noffset(q))+NCBPS-1),...,e(idx(NSD-1+noffset(q))),e(idx(NSD-1+noffset(q))+1),...,e(idx(NSD-1+noffset(q))+NCBPS-1)を並び換え、e(0),e(1),...,e(NSD×NCBPS-1)を出力する。なお、ここでは、modの記載を省略し、idx((x+k)mod NSD)を単に「idx(x+k)」と記載する。
【０２９６】
また、idx(k)の逆関数idx-1(k)を用いて記載すると、デインターリーバ116aは、LLRの系列e(0),e(1),...,e(i×NCBPS+j),...,e(NSD×NCBPS-1)を並び換え、i×NCBPS+j番目のLLR（e(i×NCBPS+j)）を、idx-1(mod(i+koffset(q),NSD))×NCBPS+j番目の位置へ移動して出力する。
【０２９７】
図３４は、デインターリーバ116aの回路構成を示す一例を示す図である。デインターリーバ116aは、Nx,Ny算出回路1161、OFDMシンボル数カウンタ1162、シフト量算出回路1163、行カウンタ1164、列カウンタ1165、デマルチプレクサ1166を含む。
【０２９８】
Nx,Ny算出回路1161は、式９及び式１２、式１３Ｂ及び式１３Ｃ、式３５及び式３６を用いて、２次元配列の行数Nxと列数Nyを算出し、シフト量算出回路1163へ入力する（図３０のステップS1001に相当）。
【０２９９】
OFDMシンボル数カウンタ1162は、復調回路117aから入力されたLLR数に応じ、OFDMシンボル番号(q)の値を決定し、シフト量算出回路1163へ入力する。
【０３００】
シフト量算出回路1163は、式１９及び式３８を用いてNLの値を算出し、式２０Ａ、式４０、式４２を用いてシフト量（n_shift=noffset(q)）の値を算出する（図３０のステップS3101に相当）。
【０３０１】
行カウンタ1164及び列カウンタ1165は、復調回路117aから入力されるLLRに対応するインターリーバ行列上の行番号及び列番号を算出する。例えば、図１０Ａは、インターリーバの出力順序を表し、デインターリーバの入力順序を表す。例えば、時刻0にd(14)がデインターリーバ116aに入力される場合、時刻0の行番号は0、列番号は14である。また、例えば、時刻1にd(35)がデインターリーバ116aに入力される場合、時刻1の行番号は1、列番号は14である。
【０３０２】
図３５は、行カウンタ1164及び列カウンタ1165の動作の一例を示すタイミングチャートである。一例として、OFDMシンボルカウンタの値(q)が1である場合について説明する。
【０３０３】
時刻0,1,2,3において、復調回路117aから入力されるデータシンボルグループがそれぞれd(14),d(35),d(56),d(77)である場合、図１０Ａを参照し、列番号は14である。また、行番号は、時刻0,1,2,3において、それぞれ0,1,2,3である。
【０３０４】
行カウンタ1164は、復調回路117aから入力されるデータシンボルグループに対応するコードワード番号(CW番号)を出力する。例えば、qが1の場合のOFDMシンボルは、コードワード5,6,7,8,9を含むため、それぞれに対しCW番号0,1,2,3,4を対応付けてもよい。例えば、図７Ａで説明したように、データシンボルグループd(14)は、コードワード6のデータであるから、時刻0において、行カウンタ1164は、CW番号1を出力する。
【０３０５】
列カウンタの値がfloor(koffset(q)/NS)を超える場合、CW番号は行カウンタの値に1を加算した値である。また、列カウンタの値がfloor(koffset(q)/NS)以下の場合、CW番号は行カウンタの値と等しい。
【０３０６】
このように、デインターリーバ116aの行カウンタ1164は、行カウンタの値、列カウンタの値、及びkoffset(q)の値から、CW番号を容易に特定することができる。これは、通信装置100のインターリーバ104が、列数(Ny)をコードワードサイズ(LCW)に基づき定め、インターリーブアドレスにオフセット(noffset(q))を加算してインターリーブを行うことにより、コードワード6の先頭データシンボルグループがサブキャリアの先頭に配置されるようにしたことにより得られる効果である。
【０３０７】
また、列カウンタ1165は、復調回路117aから入力されるデータシンボルグループに対応するコードワード内順位(CW内順位)を算出する。例えば、データシンボルグループd(14)は、コードワード6内の先頭のデータであるため、CW内順位は0である。また、例えば、データシンボルグループd(15)は、コードワード6内においてd(14)の次のデータグループであるため、CW内順位は1である。
【０３０８】
列カウンタ1165は、式４８によりCW内順位(nCW)を算出しても良い。
【数５１】
2019004448.tif 000053
【０３０９】
このように、デインターリーバ116aの列カウンタ1165は、列カウンタの値及びkoffset(q)の値から、CW内順位を容易に特定することができる。これは、通信装置100のインターリーバ104が、列数(Ny)をコードワードサイズ(LCW)に基づき定め、インターリーブアドレスにオフセット(noffset(q))を加算してインターリーブを行うことにより、コードワード6の先頭データシンボルグループがサブキャリアの先頭に配置されるようにしたことにより得られる効果である。
【０３１０】
デマルチプレクサ1166は、行カウンタ1164が算出したCW番号に基づき出力ポート0から出力ポート5のいずれかを選択し、復調回路117aから入力されるLLRを選択した出力ポートに出力する。例えば、データシンボルグループd(14)のCW番号は1（コードワード6に相当）であるから、出力ポート1に出力する。
【０３１１】
FEC復号回路118は、出力ポート0から出力ポート5の何れのポートから出力されたデータであるか、及び、列カウンタ1165が出力するCW内順位に基づき、デインターリーバ116aから出力されたLLRをLDPC復号用バッファメモリ（図示しない）に格納する。
【０３１２】
このように、デインターリーバ116aは、デインターリーブ用メモリを備えることなく、デインターリーブを行うことができる。
【０３１３】
なお、デインターリーバ116aは、デマルチプレクサ1166を備える代わりに、CW番号をFEC復号回路118に出力しても良い。FEC復号回路118は、デインターリーバ116a又は復調回路117aから入力されるLLRを、CW番号及びCW内順位の情報を用いて、LDPC復号用バッファメモリ（図示しない）に格納してもよい。
【０３１４】
以上のように、デインターリーバ116aは、例えば図４Ａ、図４Ｂ、図４Ｃ、図９Ａ、図９Ｂ、図９Ｃ、図３０の手順によりインターリーブされたデータに対応する、CW番号及びCW内順位を算出してFEC復号回路に出力する。このため、通信装置100aは、簡易な構成でデインターリーブを行うことができ、処理遅延を削減し、回路規模及び消費電力を削減することができる。
【０３１５】
実施の形態のまとめ
本開示の一態様に係る送信装置は、第1から第Nのコードワードをインターリーブするインターリーバ回路と、前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換するＯＦＤＭ変調回路と、前記ＯＦＤＭ信号を送信する送信回路と、を具備し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーバ回路は、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しを開始する。
【０３１６】
本開示の一態様に係る送信装置において、前記インターリーバ回路は、Ｎｘ×Ｎｙのメモリサイズを有し、Ｎｙは、前記第2のコードワードに含まれるデータシンボル数に等しい。
【０３１７】
本開示の一態様に係る送信装置において、前記インターリーバ回路は、インターリーブサイズに応じて生成したインターリーブアドレスを、前記第1のコードワードに含まれるデータシンボル数に応じてシフトしたアドレスを用いて、前記第2のコードワードを読み出す。
【０３１８】
本開示の一態様に係る受信装置は、送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信する受信回路と、前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出するＤＦＴ回路と、前記インターリーブされた第1から第Nのコードワードをデインターリーブするデインターリーバ回路と、を具備し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される。
【０３１９】
本開示の一態様に係る受信装置において、前記デインターリーバは、Ｎｘ×Ｎｙのメモリサイズを有し、Ｎｙは、前記第2のコードワードに含まれるデータシンボル数に等しい。
【０３２０】
本開示の一態様に係る受信装置において、前記インターリーバ回路は、インターリーブサイズに応じて生成したインターリーブアドレスを、前記第1のコードワードに含まれるデータシンボル数に応じてシフトしたアドレスを用いて、前記第2のコードワードを読み出す。
【０３２１】
本開示の一態様に係る送信方法は、第1から第Nのコードワードをインターリーブし、前記インターリーブされた第1から第NのコードワードをＯＦＤＭ信号に変換し、前記ＯＦＤＭ信号を送信し、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込み、前記第2のコードワードから読み出しが開始される。
【０３２２】
本開示の一態様に係る受信方法は、送信装置においてインターリーブされた第1から第Nのコードワードを含むＯＦＤＭ信号を受信し、前記ＯＦＤＭ信号から、前記インターリーブされた第1から第Nのコードワードを抽出し、前記インターリーブされた第1から第Nのコードワードをデインターリーブし、前記第1のコードワードに含まれるデータシンボル数は、前記第2のコードワードに含まれるデータシンボル数よりも少なく、前記インターリーブされた第1から第Nのコードワードは、前記送信装置のインターリーバ回路において、前記第1のコードワードから前記第Nのコードワードまで昇順に書き込まれ、前記第2のコードワードから読み出しが開始されて生成される。
【０３２３】
なお、本開示はソフトウェア、ハードウェア、又は、ハードウェアと連携したソフトウェアで実現することが可能である。上記実施の形態の説明に用いた各機能ブロックは、部分的に又は全体的に、集積回路であるＬＳＩとして実現され、上記実施の形態で説明した各プロセスは、部分的に又は全体的に、一つのＬＳＩ又はＬＳＩの組み合わせによって制御されてもよい。ＬＳＩは個々のチップから構成されてもよいし、機能ブロックの一部又は全てを含むように一つのチップから構成されてもよい。ＬＳＩはデータの入力と出力を備えてもよい。ＬＳＩは、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。集積回路化の手法はＬＳＩに限るものではなく、専用回路、汎用プロセッサ又は専用プロセッサで実現してもよい。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。本開示は、デジタル処理又はアナログ処理として実現されてもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【産業上の利用可能性】
【０３２４】
本開示の一態様は、通信システムに有用である。
【符号の説明】
【０３２５】
１００，１００ａ  通信装置
１０１  MAC制御回路
１０２  FEC符号化回路
１０３  変調回路
１０４，１０４ａ，１０４ｂ，１０４ｃ  インターリーバ
１０５，１０５ａ  OFDM変調回路
１０６  送信RF回路
１０７  送信アンテナアレイ
１１１  受信アンテナアレイ
１１２  受信RF回路
１１３  同期回路
１１４  DFT回路
１１５  等化回路
１１６，１１６ａ  デインターリーバ
１１７，１１７ａ  復調回路
１１８  FEC復号回路
１１９  チャネル推定回路
１０４０，１０５２  メモリ
１０４１，１０４１ａ  アドレスカウンタ
１０４２，１１６１  Nx,Ny算出回路
１０４３，１１６２  OFDMシンボル数カウンタ
１０４４，１０４４ａ，１１６３  シフト量算出回路
１０４５  ブロックインターリーブアドレスidx0生成回路
１０４６  インターリーブアドレスidx1生成回路
１０４７，１０４７ａ  アドレスシフト回路
１０４８  デインターリーブアドレステーブルメモリ
１０５１  データサブキャリアアドレス算出回路
１０５３  パイロット及びガードサブキャリア挿入回路
１０５４  アドレス生成回路
１０５５  IDFT回路
１０５６  CP付加及び窓関数回路
１０６４  行カウンタ
１０６５  列カウンタ
１１６６  デマルチプレクサ
【図１】
2019004448.tif 000054
【図２】
2019004448.tif 000055
【図３】
2019004448.tif 000056
【図４Ａ】
2019004448.tif 000057
【図４Ｂ】
2019004448.tif 000058
【図４Ｃ】
2019004448.tif 000059
【図５Ａ】
2019004448.tif 000060
【図５Ｂ】
2019004448.tif 000061
【図５Ｃ】
2019004448.tif 000062
【図６Ａ】
2019004448.tif 000063
【図６Ｂ】
2019004448.tif 000064
【図７Ａ】
2019004448.tif 000065
【図７Ｂ】
2019004448.tif 000066
【図８Ａ】
2019004448.tif 000067
【図８Ｂ】
2019004448.tif 000068
【図９Ａ】
2019004448.tif 000069
【図９Ｂ】
2019004448.tif 000070
【図９Ｃ】
2019004448.tif 000071
【図１０Ａ】
2019004448.tif 000072
【図１０Ｂ】
2019004448.tif 000073
【図１１Ａ】
2019004448.tif 000074
【図１１Ｂ】
2019004448.tif 000075
【図１２】
2019004448.tif 000076
【図１３】
2019004448.tif 000077
【図１４】
2019004448.tif 000078
【図１５】
2019004448.tif 000079
【図１６】
2019004448.tif 000080
【図１７】
2019004448.tif 000081
【図１８】
2019004448.tif 000082
【図１９】
2019004448.tif 000083
【図２０】
2019004448.tif 000084
【図２１】
2019004448.tif 000085
【図２２】
2019004448.tif 000086
【図２３】
2019004448.tif 000087
【図２４】
2019004448.tif 000088
【図２５】
2019004448.tif 000089
【図２６】
2019004448.tif 000090
【図２７】
2019004448.tif 000091
【図２８】
2019004448.tif 000092
【図２９】
2019004448.tif 000093
【図３０】
2019004448.tif 000094
【図３１】
2019004448.tif 000095
【図３２】
2019004448.tif 000096
【図３３】
2019004448.tif 000097
【図３４】
2019004448.tif 000098
【図３５】
2019004448.tif 000099