【文献】
Frank Kienle et al.,Macro Interleaver Design for Bit Interleaved Coded Modulation with Low-Density Parity-Check Codes,Vehicular Technology Conference, 2008. VTC Spring 2008. IEEE,2008年 5月14日,pp.763-766
【文献】
Final draft ETSI EN 302 755,2010年10月,V1.2.1,pp.1,17,39-43
【文献】
Hua Rui et al.,Performance of belief propagation coded modulation with iterative decoding,Communications, Circuits and Systems, 2004. ICCCAS 2004. 2004 International Conference on,2004年 6月29日,Vol.1,pp.71-74
(58)【調査した分野】(Int.Cl.,DB名)
リピートアキュミュレート疑似巡回低密度パリティチェック符号化方式を含む疑似巡回低密度パリティチェック符号化方式で生成された符号語のビットを並び替えるビットインターリーブ方法であって、前記符号語は、パリティ部分にパリティインターリーブが施されており、
前記ビットインターリーブ方法は、
それぞれがQ個のビットからなるN個の巡回ブロックで構成されるN×Qビットの前記符号語に対して、前記巡回ブロックの並び替えを規定した巡回ブロックパーミュテーション規則に従って前記巡回ブロック単位の並び替えを行う巡回ブロックパーミュテーション処理を施す巡回ブロックパーミュテーションステップと、
前記巡回ブロックパーミュテーション処理が施された前記符号語に対して、ビットの並び替えを規定したビットパーミュテーション規則に従ってビットの並び替えを行うビットパーミュテーション処理を施すビットパーミュテーションステップと、
前記ビットパーミュテーション処理が施された符号語を、それぞれがM個のビットよりなる複数のコンステレーション語に分割する分割ステップと、
を有し、
前記Nは前記Mの倍数でなく、
前記ビットパーミュテーション規則は、NをMで割った余りをXとすると、N'=N−X個の巡回ブロックについて、各前記巡回ブロックのQ個のビットをM行の行列のうちの一つの行の行方向に書き込み、列方向に読み出すことと等価なカラム−ロウパーミュテーション処理を施す規則であり、
X個の巡回ブロックは前記符号語のパリティセクションの巡回ブロックを含む
ことを特徴とするビットインターリーブ方法。
リピートアキュミュレート疑似巡回低密度パリティチェック符号化方式を含む疑似巡回低密度パリティチェック符号化方式で生成された符号語のビットを並び替えるビットインターリーバであって、前記符号語は、パリティ部分にパリティインターリーブが施されており、
前記ビットインターリーバは、
それぞれがQ個のビットからなるN個の巡回ブロックで構成されるN×Qビットの前記符号語に対して、前記巡回ブロックの並び替えを規定した巡回ブロックパーミュテーション規則に従って前記巡回ブロック単位の並び替えを行う巡回ブロックパーミュテーション処理を施す巡回ブロックパーミュテーション部と、
前記巡回ブロックパーミュテーション処理が施された前記符号語に対して、ビットの並び替えを規定したビットパーミュテーション規則に従ってビットの並び替えを行うビットパーミュテーション処理を施すビットパーミュテーション部と、
前記ビットパーミュテーション処理が施された符号語を、それぞれがM個のビットよりなる複数のコンステレーション語に分割する分割部と、
を有し、
前記Nは前記Mの倍数でなく、
前記ビットパーミュテーション規則は、NをMで割った余りをXとすると、N'=N−X個の巡回ブロックについて、各前記巡回ブロックのQ個のビットをM行の行列のうちの一つの行の行方向に書き込み、列方向に読み出すことと等価なカラム−ロウパーミュテーション処理を施す規則であり、
X個の巡回ブロックは前記符号語のパリティセクションの巡回ブロックを含む
ことを特徴とするビットインターリーバ。
リピートアキュミュレート疑似巡回低密度パリティチェック符号化方式を含む疑似巡回低密度パリティチェック符号化方式で生成された符号語であって、それぞれがQ個のビットからなるN個の巡回ブロックで構成される符号語のビットの並び替え処理を行い、M個のビットずつ分割して生成されるN×Q/M個のコンステレーション語を変調して送信された信号を処理する信号処理方法であって、前記符号語は、パリティ部分にパリティインターリーブが施されており、
前記ビットの並び替え処理は、
前記巡回ブロックの並び替えを規定した巡回ブロックパーミュテーション規則に従う前記符号語の前記巡回ブロック単位の並び替えを行う巡回ブロックパーミュテーション処理と、
ビットの並び替えを規定したビットパーミュテーション規則に従う前記巡回ブロックパーミュテーション処理が施された前記符号語のビットの並び替えを行うビットパーミュテーション処理と、
を含み、
前記Nは前記Mの倍数でなく、
前記ビットパーミュテーション規則は、NをMで割った余りをXとすると、N'=N−X個の巡回ブロックについて、各前記巡回ブロックのQ個のビットをM行の行列のうちの一つの行の行方向に書き込み、列方向に読み出すことと等価なカラム−ロウパーミュテーション処理を施す規則であり、X個の巡回ブロックは前記符号語のパリティセクションの巡回ブロックを含み、
前記信号処理方法は、
前記N×Q/M個のコンステレーション語を変調して送信された信号を復調して復調信号を生成する復調ステップと、
前記巡回ブロックパーミュテーション規則及び前記ビットパーミュテーション規則に基づいて前記復調信号をデコードして、前記疑似巡回低密度パリティチェック符号化方式による符号化前のデータを生成するデコードステップと、
を有することを特徴とする信号処理方法。
リピートアキュミュレート疑似巡回低密度パリティチェック符号化方式を含む疑似巡回低密度パリティチェック符号化方式で生成された符号語であって、それぞれがQ個のビットからなるN個の巡回ブロックで構成される符号語のビットの並び替え処理を行い、M個のビットずつ分割して生成されるN×Q/M個のコンステレーション語を変調して送信された信号を処理する信号処理装置であって、前記符号語は、パリティ部分にパリティインターリーブが施されており、
前記ビットの並び替え処理は、
前記巡回ブロックの並び替えを規定した巡回ブロックパーミュテーション規則に従う前記符号語の前記巡回ブロック単位の並び替えを行う巡回ブロックパーミュテーション処理と、
ビットの並び替えを規定したビットパーミュテーション規則に従う前記巡回ブロックパーミュテーション処理が施された前記符号語のビットの並び替えを行うビットパーミュテーション処理と、
を含み、
前記Nは前記Mの倍数でなく、
前記ビットパーミュテーション規則は、NをMで割った余りをXとすると、N'=N−X個の巡回ブロックについて、各前記巡回ブロックのQ個のビットをM行の行列のうちの一つの行の行方向に書き込み、列方向に読み出すことと等価なカラム−ロウパーミュテーション処理を施す規則であり、X個の巡回ブロックは前記符号語のパリティセクションの巡回ブロックを含み、
前記信号処理装置は、
前記N×Q/M個のコンステレーション語を変調して送信された信号を復調して復調信号を生成する復調部と、
前記巡回ブロックパーミュテーション規則及び前記ビットパーミュテーション規則に基づいて前記復調信号をデコードして、前記疑似巡回低密度パリティチェック符号化方式による符号化前のデータを生成するデコード部と、
を有することを特徴とする信号処理装置。
【発明を実施するための形態】
【0013】
≪発明をするに至った経緯≫
図1は、一般的なビットインターリーブ符号化変調(bit-interleaved coding and modulation:BICM)エンコーダを含むトランスミッタの構成を示すブロック図である。
図1に示すトランスミッタ100は、入力プロセシングユニット110、BICMエンコーダ(低密度パリティチェック(low-density parity check:LDPC)エンコーダ120、ビットインターリーバ130、コンステレーションマッパ140を含む)、およびモジュレータ150を備える。
【0014】
入力プロセシングユニット110は、入力ビットストリームを所定長の複数ブロックに変換する。LDPCエンコーダ120は、LDPC符号を用いてブロックを符号語に符号化し、符号語をビットインターリーバ130に送信する。ビットインターリーバ130は、LDPC符号語に対してインターリーブ処理を施し、インターリーブ処理を施した後、セル語(コンステレーション語)の列に分割する。コンステレーションマッパ140は各セル語(コンステレーション語)をコンステレーション(例えば、QAM)の列にマッピングする。出力端の一般的なモジュレータ150は、BICMエンコーダの出力からRF(Radio Frequency)電力増幅器までのすべての処理ブロックを含む。
【0015】
LDPC符号は、パリティチェック行列(Parity-check Matrix:PCM)により完全
に定義される線形誤り訂正符号である。PCMは2値の疎行列であり、符号語ビット(変数ノードとも称される)とパリティチェック(検査ノードとも称される)の連結(connection)を示す。PCMの列および行は、それぞれ、変数ノードおよび検査ノードに対応する。変数ノードと検査ノードの結合は、PCMにおいて、「1」という要素で示されている。
【0016】
LDPC符号には、疑似巡回低密度パリティチェック(quasi-cyclic low-density parity check:QC LDPC)符号と呼ばれる種類が存在する。QC LDPC符号は、
特にハードウェア実装に適した構成を有する。事実、今日の規格のほとんどにおいてQC
LDPC符号が用いられている。QC LDPC符号のPCMは、複数の巡回行列を有する特別な構成となっている。巡回行列とは、各行がその直前の行の要素を1つ巡回シフトした形になっている正方行列であり、重ね合わされた斜めの列(folded diagonal)が
1つ、2つ、または、それ以上存在し得る。各巡回行列のサイズはQ×Qである。ここでQはQC LDPC符号の巡回係数(cyclic factor)と称される。上記のような疑似巡
回の構造により、Q個の検査ノードを並列処理することができ、QC LDPC符号は効率的なハードウェア実装を行うために明らかに有利な符号である。
【0017】
図2は、一例として、巡回係数Q=8であるQC LDPC符号のPCMを示す図である。なお、
図2および後述する
図3から
図5において、最も小さな四角の1つがPCMの1つの要素を表しており、そのうち黒塗りの四角の要素は「1」、それ以外の要素は「0」である。このPCMは、重ね合わされた斜めの列が1つまたは2つある巡回行列を有する。このQC LDPC符号は8×6=48ビットのブロックを8×12=96ビットの
符号語に符号化する。従って、このQC LDPC符号の符号化率は48/96=1/2である。符号語ビットはQビットを有する複数のブロックに分割される。巡回係数Qビットのブロックを本明細書では巡回ブロック(または、巡回グループ)と称する。
【0018】
QC LDPC符号には、リピートアキュミュレート疑似巡回低密度パリティチェック(repeat-accumulate quasi-cyclic low-density parity check:RA QC LDPC
)符号という特別な種類が存在する。RA QC LDPC符号は、符号化が容易であることで知られており、数多くの規格(例えば、DVB−S2規格、DVB−T2規格、DVB−C2規格といった第二世代DVB規格)において採用されている。PCMの右側はパリティビットに対応し、その部分における「1」の要素の配置は階段構造となっている。
図3に符号化率が2/3であるRA QC LDPC符号のPCMを例示する。
【0019】
なお、DVB−TはDigital Video Broadcasting - Terrestrialの略であり、DVB−S2はDigital Video Broadcasting - Second Generation Satelliteの略であり、DVB−T2はDigital Video Broadcasting - Second Generation Terrestrialの略であり、DVB−C2はDigital Video Broadcasting - Second Generation Cableの略語である。
【0020】
図3に示すPCMに対してこの行の並び順を換える簡単な行パーミュテーションを施すことによって、
図4に示すように、パリティ部分を除いたRA QC LDPC符号の擬似巡回構造が明らかになる。行パーミュテーションは単にグラフ上の表現を変更することを意味し、符号の定義には一切の影響を与えない。
【0021】
行パーミュテーションが施された
図4に示すPCMのパリティビットのみにビットの並び順を換える適切なパーミュテーションを施すことにより、PCMのパリティ部分も疑似巡回構造を有するようになる。この手法は当技術分野で周知であり、DVB−T2規格等ではパリティインターリーブまたはパリティパーミュテーションという名称で用いられている。
図4に示すPCMに対してパリティパーミュテーションを施した結果得られるPCMを
図5に示す。
【0022】
通常、LDPC符号語はビット毎に重要度が異なり、また、コンステレーションはビット毎にロバストレベルが異なる。LDPC符号語のビットを直接、即ちインターリーブせずにコンステレーションにマッピングすると、最適な性能には至らない。このため、LDPC符号語のビットをコンステレーションにマッピングする前にLDPC符号語のビットがインターリーブされる必要がある。
【0023】
この目的のために、
図1に示すように、LDPCエンコーダ120とコンステレーションマッパ140の間にビットインターリーバ130が設けられている。ビットインターリーバ130を入念に設計することによって、LDPC符号語のビットとコンステレーションにより符号化されるビットとの関連性が向上し、受信性能の改善に繋がる。その性能は、通常、SN比(Signal to Noise Ratio:SNR)の関数としての符号誤り率(Bit Error Rate:BER)を用いて測定される。
【0024】
LDPC符号語のビット毎に重要度が異なる主な理由は、全てのビットに対して同じ回数のパリティチェックが施されるとは限らないことである。符号語ビット(変数ノード)に施されるパリティチェックの回数(検査ノードの数)が多いほど、反復LDPC復号処理において符号語ビットの重要度は高くなる。もう一つの理由は、LDPC符号のタナーグラフ表現における巡回に対する連結性(connectivity)が変数ノード毎に異なることである。このために、符号語ビットに同じ回数のパリティチェックが施されたとしても、符号語ビットの重要度が異なる可能性がある。これらの見解は当技術分野で周知である。原則として、変数ノードと連結する検査ノードの数が大きくなると、その変数ノードの重要
度は増す。
【0025】
特にQC LDPC符号の場合、Qビットの巡回ブロックに含まれる全てのビットは、同じ回数のパリティチェックが施され、タナーグラフにおける巡回に対する連結性が同じであるため、同じ重要度を有する。
【0026】
同様に、コンステレーションにおいて符号化されたビットのロバストレベルが異なることも周知の事実である。例えば、複素直交振幅変調(quadrature amplitude modulation
:QAM)コンステレーションは2つのそれぞれ独立したパルス振幅変調(pulse amplitude modulation:PAM)シンボルから成り、そのうち1つが実数部に対応し、もう1つが虚数部に対応する。2つのPAMシンボルはそれぞれ同じ数Mのビットを符号化する。グレイ符号を用いた8PAMシンボルを示す
図6に示されるように、1つのPAMシンボルにおいて符号化されたビットのロバストレベルは互いに異なる。このようにロバストレベルが互いに異なるのは、各ビット(0または1)によって定義される2つのサブセット間の距離が、ビット毎に異なるためである。この距離が大きいほど、そのビットのロバストレベルまたは信頼度は高い。
図6では、ビットb3のロバストレベルが最も高く、ビットb1のロバストレベルが最も低い。
【0027】
従って、16QAMコンステレーションは4個のビットを符号化し、2つのロバストレベルを有する。64QAMコンステレーションは6個のビットを符号化し、3つのロバストレベルを有する。256QAMコンステレーションは8個のビットを符号化し、4つのロバストレベルを有する。
【0028】
本明細書では、説明のために、以下のパラメータを用いる。
【0029】
巡回係数:Q=8
1つのLDPC符号語の巡回ブロック数:N=12
1つのコンステレーションのビット数:M=4、即ち16QAM
上記パラメータでは、1つのLDPC符号語がマッピングされるコンステレーション数はQ×N/M=24である。通常、パラメータQおよびNの選択は、システムがサポートする全てのコンステレーションについて、Q×NがMの倍数となるように行われなければならない。
【0030】
図7は上記パラメータに対応する一般的なインターリーバの構成を示すブロック図である。
図7において、QB1、・・・、QB12は12個の巡回ブロックであり、C1、・・・、C24は24個のコンステレーション語である。
図7の例では、ビットインターリーバ710は、LDPC符号語の96ビットをインターリーブする。
【0031】
従来のビットインターリーバとして、DVB−T2規格(ETSI EN 302 755)のものが知られている。DVB−T2規格はテレビジョン規格であるDVB−T規格を改良したものであり、デジタル地上テレビジョン放送用の第2世代ベースライン送信システムについて記載されている。DVB−T2規格には、デジタルテレビジョンサービスや一般的なデータを送信するためのチャネル符号化変調システムについて詳述されている。
【0032】
図8(a)は、DVB−T2規格で用いられるモジュレータ(DVB−T2モジュレータ)の構成を示すブロック図である。
図8(a)に示すDVB−T2モジュレータ800は、入力プロセッシングユニット810、BICMエンコーダ820、フレームビルダー830、およびOFDMジェネレータ840を備える。
【0033】
入力プロセシングユニット810は、入力ビットストリームを所定長の複数ブロックに変換する。BICMエンコーダ820は、入力に対してBICM処理を施す。フレームビルダー830は、BICMエンコーダ820からの入力等を用いてDVB−T2方式の伝送フレーム構成を生成する。OFDMジェネレータ840はDVB−T2方式の伝送フレーム構成に対して、パイロット付加、高速逆フーリエ変換、ガードインターバル挿入などを行い、DVB−T2方式の送信信号を出力する。
【0034】
DVB−T2規格で用いられるBICMは、ETSI規格 EN 302 755の第6章で説明されている。当規格は本明細書において援用されおり、以下にその説明を記す。
【0035】
図8(b)は、
図8(a)に示すDVB−T2モジュレータのBICMエンコーダ820の構成を示すブロック図である。ただし、
図8(b)では、BCH外符号化、コンステレーション回転、セルインターリーバ、時間インターリーバなどを省略している。
【0036】
BICMエンコーダ820は、LDPCエンコーダ821、ビットインターリーバ(パリティインターリーバ822、カラム‐ロウインターリーバ823を含む)、ビット−セルデマルチプレクサ824、およびQAMマッパ825を備える。
【0037】
LDPCエンコーダ821は、LDPC符号を用いてブロックを符号語に符号化する。ビットインターリーバ(パリティインターリーバ822、カラム‐ロウインターリーバ823)は、符号語のビットに対してその並び順を換えるインターリーブ処理を施す。ビット−セルデマルチプレクサ824は、インターリーブ処理が施された符号語のビットをセル語(コンステレーション語)に多重分離する。QAMマッパ825は、セル語(コンステレーション語)を複素QAMシンボルにマッピングする。なお、複素QAMシンボルはセルとも称される。事実、ビット−セルデマルチプレクサ824は、ビットインターリーバの一部であるとみなされてもよい。この場合、DVB−T2規格に基づくBICMエンコーダは、
図1に示される標準構成を備えるとみなすことができる。
【0038】
DVB−T2規格において用いられるLDPC符号は、巡回係数Q=360を有するRA QC LDPC符号である。DVB−T2規格では、符号語長として16200ビットと64800ビットの2つが定義されている。符号語長が16200ビットであるLDPC符号および符号語長が64800ビットであるLDPC符号を、本明細書では、16K符号(または、16K LDPC符号)および64K符号(または、64K LDPC符号)と称する。1つの符号語に含まれる巡回ブロック数は、16K符号の場合は45個、64K符号の場合は180個である。これらの2つのブロック長(符号語長)に対応する使用可能な符号は、DVB−T2規格であるETSI EN 302 755の表A.1〜表A.6に列挙されている。
【0039】
ビットインターリーバは、QPSKより大きいコンステレーションに対してのみ利用され、パリティインターリーバ822、カラム‐ロウインターリーバ823、およびビット‐セルデマルチプレクサ824を備える。なお、DVB−T2規格の定義では、ビット‐セルデマルチプレクサ824はビットインターリーバに含まれない。しかしながら、本発明は、コンステレーションマッピング前にLDPC符号に施すインターリーブに関するものであるので、ビット‐セルデマルチプレクサ824もビットインターリーブの一部として取り扱うものとする。
【0040】
パリティインターリーバ822は、上述したように(
図4および
図5参照)、パリティビットの疑似巡回構造を明らかにするため、符号語のパリティビットの並び順を換えるパリティパーミュテーションを行う。
【0041】
カラム‐ロウインターリーバ823は、概念的には、LDPC符号語のビットを、インターリーバ行列の列に沿って書き込み、行に沿って読み出すことによって機能する。LDPC符号語に含まれる最初のビットが最初に書き込まれ、最初に読み出される。カラム‐ロウインターリーバ823は、LDPC符号語のビットを書き込んだ後、ビットの読み出しを開始する前に、その列に対してビットを所定数の位置だけ巡回的にずらす。これはDVB−T2規格においてカラムツイスト(column twisting)と呼ばれる。上記2つのL
DPC符号語長と様々なコンステレーションサイズとに対応するインターリーバ行列の列数Ncと行数Nrを以下の表1に示す。
【0042】
【表1】
256QAMコンステレーションで16K符号の場合を除き、列数Ncは、1つのコンステレーションのビット数の2倍である。この例外の理由は、LDPC符号語長である16200は、16、即ち256QAMコンステレーションにおけるビット数の2倍、の倍数でないためである。
【0043】
カラム‐ロウインターリーバ823の16K符号の符号語のビットの書き込み処理および読み出し処理を、列数が12の場合について
図9(a)、(b)に、列数が8の場合について
図10(a)、(b)に示す。各図において、小さな四角はそれぞれLDPC符号語の1ビットに対応し、黒塗りの四角はLDPC符号語の先頭ビットを示す。矢印は、ビットがインターリーバ行列に書き込まれ、インターリーバ行列から読み出される順序を示す。例えば、インターリーバ行列の列数が12の場合、16K符号の符号語のビットは、
図9(a)に示すように、(行1、列1)、(行2、列1)、・・・、(行1350、列1)、(行1、列2)、・・・、(行1350、列12)の順序で書き込まれ、
図9(b)に示すように、(行1、列1)、(行1、列2)、・・・、(行1、列12)、(行2、列1)、・・・、(行1350、列12)の順序で読み出される。なお、カラムツイスト処理は
図9(a)、(b)および
図10(a)、(b)には示されていない。
【0044】
QAMマッピングに先立ち、ビット‐セルデマルチプレクサ824は、各LDPC符号語を多重分離することで複数の並列ビットストリームを得る。ストリームの数は、256QAMコンステレーションで16K LDPC符号の場合を除き、1つのQAMコンステレーションにおいて符号化されるビット数Mの2倍、即ち2×Mである。また、256QAMコンステレーションで16K LDPC符号の場合、ストリームの数は、1つのQAMコンステレーションにおいて符号化されるビット数Mである。1つのコンステレーションにおいて符号化されるMビットを、セル語(または、コンステレーション語)と称する。以下のように、16K LDPC符号では、1つの符号語から得られるセル語の数は16200/Mである。
【0045】
QPSKの場合、8100セル
16QAMの場合、4050セル
64QAMの場合、2700セル
256QAMの場合、2025セル
上記の表1によると、QPSKより大きなコンステレーションについては、並列ストリームの数はカラム‐ロウインターリーバの列数に等しい。16K LDPC符号について、16QAMコンステレーション、64QAMコンステレーション、256QAMコンステレーションに対応するビット‐セルデマルチプレクサを、それぞれ、
図11、
図12、
図13に示す。なお、ビットの表記はDVB−T2規格で用いられているものである。
【0046】
ビット‐セルデマルチプレクサは、
図11(
図12、
図13)に示すように、シンプルデマルチプレクサ1110(1210、1310)とデマルチパーミュテーションユニット1120(1220、1320)を備える。
【0047】
ビット‐セルデマルチプレクサは、シンプルデマルチプレクサ1110(1210、1310)によって、インターリーブ処理が施されたLDPC符号語を単に多重分離することに加え、デマルチパーミュテーションユニット1120(1220、1320)によって、多重分離された並列ビットストリームに対してその並び順を換えるパーミュテーション処理を行う。
【0048】
ただし、カラム‐ロウインターリーバが用いられている場合(16QAMコンステレーション以上)、並列ビットストリームの数はカラム‐ロウインターリーバの列数と同一であるため、ビットストリームのパーミュテーションはカラム‐ロウインターリーバの列に対してその並び順を換えるパーミュテーションと同等である点を認識することが重要である。これが、ビット‐セルデマルチプレクサによるパーミュテーションをビットインターリーバの一部とみなすことができる、理由である。
【0049】
本質的に、DVB−T2規格において用いられるビットインターリーバには2つの問題が付随する。
【0050】
1つ目の問題は、LDPC符号語における巡回ブロックの数がビットインターリーバ行列の列数の倍数でない場合、並列性が損なわれるという問題である。並列性が低下するとレイテンシが増大する。これは特にレシーバにおいて反復BICM復号が用いられている場合に問題となる。この状況は、DVB−T2規格の場合、LDPC符号語長とコンステレーションのサイズの組み合わせのいくつかで起こる。
【0051】
図14および
図15は、16K LDPC符号において、それぞれインターリーバ行列の列数が8および12である場合に起こる上記の状況を示す図である。16QAMコンステレーションおよび256QAMコンステレーションでは、8列のインターリーバ行列が使用される。64QAMコンステレーションでは、12列のインターリーバ行列が使用される。グリッドはLDPC符号語を表し、小さな四角はLDPC符号語の1ビットを表し、行は巡回ブロックに対応し、列は複数の巡回ブロックにおいて互いに同一のビットインデックスを有するビットに対応する。黒塗りの四角は、インターリーバ行列の先頭行における8ビットおよび12ビットを表している。なお、分かり易くするため、1つの巡回ブロックのビット数を360から72に減らして図示しているものの、これにより理解度に影響が及ぶことはない。
【0052】
2つ目の問題は、DVB−T2規格において、可能なビットインターリーバの構成の数が、ビットインターリーバ行列の列数によって制限されることである。
【0053】
DVB−T2ビットインターリーバのさらなる問題は、カラムツイスト処理によって、パーミュテーションの規則性および並列性がさらに損なわれるということである。
図16および
図17は、それぞれ
図14および
図15と同様の状況を示しているが、カラムツイスト処理が適用されている点が異なる。16K LDPC符号でインターリーバ行列が8列の場合に、DVB−T2ビットインターリーバにおいて用いられる列毎のカラムツイスト値は(0,0,0,1,7,20,20,21)である。また、16K LDPC符号でインターリーバ行列が12列の場合に、DVB−T2ビットインターリーバにおいて用いられる列毎のカラムツイスト値は、(0,0,0,2,2,2,3,3,3,6,7,7)である。
【0054】
したがって、レイテンシを低減し並列性を高めたビットインターリーバを提供する必要がある。これらの特性は、特に反復BICM復号において重要である。
【0055】
≪発明者が得た知見≫
発明者は、鋭意研究を行った結果、以下の2つの条件が満たされるとき、非常に効率的なインターリーバが提供できるという知見を得た。
【0056】
(条件1)
各コンステレーション語のM個のビットが、LDPC符号語のM個の異なる巡回ブロックにマッピングされる。これは、LDPC符号語のM個の異なる巡回ブロックから1ビットずつコンステレーション語にマッピングする、ことと等価である。この概要を
図18(a)に示す。
【0057】
(条件2)
M個の巡回ブロックにマッピングされるすべてのコンステレーション語が、当該M個の巡回ブロックのみにマッピングされる。これは、QビットからなるM個の異なる巡回ブロックのM×Q個のビットの全ては、Q個のコンステレーション語にのみマッピングされる、ことと等価である。この概要を
図18(b)に示す。
【0058】
上記条件では、ちょうどQ個のコンステレーション語は、各M個の巡回ブロックにマッピングされていることになる。
【0059】
≪実施の形態(その1)≫
以下、上記の条件1、条件2を満たすビットインターリーバ(並列ビットインターリーバ)の詳細について説明する。なお、以下において、実質的に同じ処理内容、および、同じ処理内容を行う構成ユニットには同じ符号を付す。
【0060】
本明細書では、M個の巡回ブロックよりなるグループのそれぞれ、または、Q個のコンステレーション語よりなるグループのそれぞれを、セクション(または、インターリーバセクション)と呼ぶ。
【0061】
図19および
図20は、本発明の一実施形態に係る、上記パラメータ(Q=8、M=4、N=12)に対応する条件1、条件2を満たすビットインターリーバによるマッピングの機能を示す図および当該ビットインターリーバの一構成例を示すブロック図である。
【0062】
図19および
図20では、QC−LDPC符号の符号語は、それぞれがQ=8個のビットからなるN=12個の巡回ブロックQB1〜QB12で構成されている。24個のコンステレーション語はそれぞれM=4個のビットからなり、それぞれが2
M=16個のコン
ステレーションポイントのいずれか1つを示す。ビットインターリーバは、N/M=3個
のセクションに分けられ、24個のコンステレーション語はN/M=3個のセクションのいずれか1つに関連付けられる。
【0063】
ビットインターリーバ2000は、ビットパーミュテーションユニット2010を有し、ビットパーミュテーションユニット2010は互いに独立して(互いに依存せずに)動作するN/M(=3)個のセクションパーミュテーションユニット2021、2022、2023を有する。なお、セクションパーミュテーションユニットを3つ備えるようにする代わりに、例えば1つのセクションパーミュテーションユニットを用いて処理対象を時系列に切り替えながら後述する3つのセクションパーミュテーション処理を行うようにしてもよい。
【0064】
セクションパーミュテーションユニット(2021、2022、2023)は、互いに独立して(互いに依存せずに)、8個のコンステレーション語(C1〜C8、C9〜C16、C17〜C24)の各々に、4個の巡回ブロック(QB1〜QB4、QB5〜QB8、QB9〜QB12)のそれぞれから1ビットずつマッピングされるように、4個の巡回ブロックの計32個のビットに対してその並び順を換えるセクションパーミュテーション処理を施す。
【0065】
上述の2つの条件1、条件2は、単に、ビットインターリーバがN/M個の並列セクションに分けられることを保証するだけのものである。これらの並列セクションに対して施すセクションパーミュテーション処理に、互いに同じパーミュテーション規則が適用されてもよいし、互いに異なるパーミュテーション規則が適用されてもよいし、一部だけが互いに同じパーミュテーション規則が適用されてもよい。
【0066】
例えば、セクションパーミュテーションユニットは、巡回ブロックのQ個のビット(LDPC復号処理において重要度が互いに等しい)を、Q個のコンステレーション語の同じビットインデックスのビット(ロバストレベルが互いに等しい)にマッピングするようにしてもよい。それぞれの巡回ブロックにおいて、Q個のビットは、順に、あるいはパーミュテーションされた順に並べることができる。後者を
図21(a)、(b)を用いて、前者を
図22(a)、(b)を用いて説明する。
【0067】
図21(a)は、
図20のセクションパーミュテーションユニットの一構成例を示す図である。
【0068】
セクションパーミュテーションユニット2101は、巡回ブロック内パーミュテーションユニット2111〜2114、およびカラム‐ロウパーミュテーションユニット2131を有する。なお、巡回ブロック内パーミュテーションユニットを4つ備えるようにする代わりに、例えば1つの巡回ブロック内パーミュテーションユニットを用いて処理対象を時系列に切り替えながら後述する4つの巡回ブロック内パーミュテーション処理を行うようにしてもよい。
【0069】
巡回ブロック内パーミュテーションユニット(2111〜2114)は、巡回ブロック(QB1〜QB4)のQ個(8個)のビットに対してその並び順を換える巡回ブロック内パーミュテーション処理を施す。1つのセクション内の巡回ブロックに対して施す巡回ブロック内パーミュテーション処理に、例えば、互いに同じパーミュテーション規則が適用されてもよいし、互いに異なるパーミュテーション規則が適用されてもよいし、一部だけが互いに同じパーミュテーション規則が適用されてもよい。
【0070】
カラム‐ロウパーミュテーションユニット2131は、M×Q個(32個)のビットに対してこの並び順を換えるカラム‐ロウパーミュテーション処理を施す。詳述すれば、カ
ラム‐ロウパーミュテーションユニット2131は、M×Q個(32個)のビットをQ列M行(8列4行)の行列の行方向に書き込み、書き込んだM×Q個(32個)のビットを列方向に読み出すことと等価なカラム‐ロウパーミュテーション処理を行う。なお、カラム‐ロウパーミュテーションユニット2131によるカラム‐ロウパーミュテーション処理は、
図9(a)、(b)の12列1350行がQ列M行に置き換わり、書き込み処理が列方向から行方向に、読み出し処理が行方向から列方向に換わったものである。
【0071】
図21(b)は、
図21(a)のセクションパーミュテーションユニットによるマッピングの機能を示す図である。
図21(b)では、各コンステレーション語のM=4個のビットがb1〜b4で示されている。
【0072】
ただし、セクションパーミュテーション処理において巡回ブロック内パーミュテーション処理が実施されなくてもよい。
【0073】
図20のセクションパーミュテーションの別の例である、巡回ブロック内パーミュテーション処理を実施しないセクションパーミュテーションユニットの一構成例およびこのセクションパーミュテーションユニットによるマッピングの機能を
図22(a)および
図22(b)に示す。セクションパーミュテーションユニット2201は、カラム‐ロウパーミュテーションユニット2131を有し、カラム‐ロウパーミュテーション処理のみ行う。
図22(b)では、各コンステレーション語のM=4個のビットがb1〜b4で示されている。
【0074】
ただし、巡回ブロックQB5〜QB8、QB9〜QB12に対して、
図21および
図22でそれぞれ説明したセクションパーミュテーションが行われるようにしてもよい。
【0075】
本発明の他の実施の形態では、ビットインターリーバは、セクションパーミュテーション処理を行う前に、付加的にN個の巡回ブロックに対してその並び順を換える巡回ブロックパーミュテーション処理を行う。付加的に巡回ブロックパーミュテーション処理を施すビットインターリーバの一構成例を
図23に示す。ここでの巡回ブロックパーミュテーションは、DVB−T2規格におけるビット‐セルデマルチプレクサによるパーミュテーションと同様の役割を果たすものである。
【0076】
図23に示すビットインターリーバ2300は、巡回ブロックパーミュテーションユニット2310と、ビットパーミュテーションユニット2010(セクションパーミュテーションユニット2021〜2023を含む)を備える。
【0077】
巡回ブロックパーミュテーションユニット2310は、巡回ブロックQB1〜QB12に対してその並び順を換える巡回ブロックパーミュテーション処理2311〜2318を施す。なお、巡回ブロックパーミュテーション処理2311〜2318で用いられるパーミュテーション規則は互いに同じである。
【0078】
N個の巡回ブロックに対して施す巡回ブロックパーミュテーションは、それによりLDPC符号語のビットをコンステレーションのビットに最適にマッピングすることが可能となり、受信性能の最適化につながるため、特に有益である。
【0079】
図24は、
図23のビットインターリーバの一構成例を示すブロック図である。
図24のビットインターリーバ2400は、下記のステージA、B、Cの3つのパーミュテーション処理を実施する。
【0080】
ステージA:巡回ブロック(間)パーミュテーション
ステージB:巡回ブロック内パーミュテーション
ステージC:カラム‐ロウパーミュテーション
ここで、巡回ブロック(間)パーミュテーションは符号語を構成するN個の巡回ブロックの並び順を換えるパーミュテーションであり、巡回ブロック内パーミュテーションは巡回ブロックを構成するQ個のビットの並び順を換えるパーミュテーションであり、カラム‐ロウパーミュテーションは、セクションを構成するM×Q個のビットの並び順を換えるパーミュテーションである。
【0081】
図24に示すビットインターリーバ2400は、巡回ブロックパーミュテーションユニット2310と、ビットパーミュテーションユニット2010(セクションパーミュテーションユニット2101〜2103)を備える。セクションパーミュテーションユニット2101(2102、2103)は、巡回ブロック内パーミュテーションユニット2111〜2114(2115〜2118、2119〜2122)と、カラム‐ロウパーミュテーションユニット2131(2132、2133)を備える。
【0082】
ビットインターリーバ2400は、巡回ブロックパーミュテーションユニット2310によって巡回ブロック(間)パーミュテーションを行い(ステージA)、巡回ブロック内パーミュテーションユニット2111〜2122によって巡回ブロック内パーミュテーションを行い(ステージB)、カラム‐ロウパーミュテーションユニット2131〜2133)によってカラム‐ロウパーミュテーションを行う(ステージC)。
【0083】
図24に示すビットインターリーバから巡回ブロック内パーミュテーションユニット2111〜2122を取り除いて、巡回ブロック内パーミュテーションを行わないように、ビットインターリーバを構成してもよい。また、ビットインターリーバは、巡回ブロック内パーミュテーションを、巡回ブロック(間)パーミュテーションの後に実施する代わりに、巡回ブロック(間)パーミュテーションの前に実施してもよく、巡回ブロック(間)パーミュテーションの前後で実施するようにしてもよい。
【0084】
なお、複数の巡回ブロック内パーミュテーションユニットは互いに同様の構成であってもよい。このため、複数の巡回ブロック内パーミュテーションユニットは同一の機能リソース(ハードウェアブロックなど)によって実装可能である。また、複数の巡回ブロック内パーミュテーションは巡回的なシフト処理からなっていてもよく、この場合、バレルシフタを用いた効率的なハードウェア実装が可能となる。LDPCデコーダに用いているバレルシフタを利用して実装することも可能である。
【0085】
以下、条件1、条件2を満たすビットインターリーブ処理を行うビットインターリーバを含むトランスミッタの一構成例について
図25を用いて説明する。
【0086】
図25は、本発明のさらに他の実施形態に係るトランスミッタの一構成例を示すブロック図である。
図25に示すトランスミッタ2500は、BICMエンコーダ(LDPCエンコーダ2510、ビットインターリーバ2520、コンステレーションマッパ2530を含む)と、モジュレータ2540を備える。
【0087】
LDPCエンコーダ2510は、入力ブロックをQC−LDPC符号を用いて符号語に符号化し、符号語をビットインターリーバ2520へ出力する。
【0088】
ビットインターリーバ2520は、LDPCエンコーダ2510からQC−LDPC符号の符号語を受け取る。この符号語は、N=12個の巡回ブロックからなり、各巡回ブロックはQ=8個のビットからなる。そして、ビットインターリーバ2520は、符号語のビットに対してその並び順を換えるビットインターリーブ処理を施す。ビットインターリ
ーバ2520は、ビットインターリーブ処理が施された符号語を、それぞれM=4個のビットよりなり、それぞれが2
M=16個の所定のコンステレーションポイントのいずれか
1つを示す複数のコンステレーション語に分割してコンステレーションマッパ2530へ出力する。ただし、ビットインターリーバ2520は、ビットインターリーブ処理として、例えば
図19から
図22で説明した、または、その変形として説明したビットパーミュテーション処理を行う。または、ビットインターリーバ2520は、ビットインターリーブ処理として、ビットパーミュテーション処理に加えて、例えば
図23から
図24で説明した、または、その変形として説明した巡回ブロックパーミュテーション処理を追加的に行ってもよい。
【0089】
コンステレーションマッパ2530は、ビットインターリーバ2520からコンステレーション語を受け取り、受け取ったコンステレーション語に対してコンステレーションマッピング処理を行う。
【0090】
モジュレータ2740は、直交周波数分割多重(orthogonal frequency division multiplexing:OFDM)変調などを行って送信信号を生成する。
【0091】
以下、条件1、条件2を満たすビットインターリーブ処理を行うビットインターリーバを含むBICMエンコーダの一実装例について
図26を用いて説明する。
【0092】
図26は、本発明のさらに他の実施の形態に係るBICMエンコーダの一実装例を示すブロック図である。
図26のBICMエンコーダ2600は、上記パラメータ(Q=8、N=12、M=4)に対応するものである。
【0093】
図26に示すBICMエンコーダ2600は、メインメモリ2601、LDPCコントローラ2611、ローテータ2612、検査ノードプロセッサ群2613、デローテータ2614、QBカウンタ2631、テーブル2632、インターリーバ2633、レジスタ群2634、インターリーバ2635、およびマッパ群2651を備える。
【0094】
図26では、Q=8であることを考慮して、メインメモリ2601の読み出しが8ビットずつ行われ、検査ノードプロセッサ群2613には8個の検査ノードプロセッサがあり、マッパ群2651には8個のマッパが存在する。また、M=4であることを考慮して、レジスタ群2634には4個のレジスタがある。
【0095】
メインメモリ2601は、送信すべきビット列を例えば入力プロセシングユニット(不図示)から受け取り、受け取ったビット列を保持する。
【0096】
LDPCコントローラ2611は、メインメモリ2601に対して読み出しアドレスを出力し、これによりメインメモリ2601はビット列の先頭から8ビットずつローテータ2612へ出力する。ローテータ2612は、LDPCコントローラ2611による制御を受けて、メインメモリ2601から供給される8ビットを所定数巡回シフトし、巡回シフト後の8ビットを検査ノードプロセッサ群2613の各検査ノードプロセッサに対して1ビットずつ出力する。各検査ノードプロセッサ群2613の各検査ノードプロセッサは、LDPCコントローラ2611による制御を受けて、入力された1ビットに対して検査ノード処理を行い、1ビットの処理結果をデローテータ2614へ出力する。デローテータ2614は、LDPCコントローラ2611による制御を受けて、検査ノードプロセッサ群2613から受け取った8ビットをローテータ2612による巡回シフトを打ち消すように所定数巡回シフトし、巡回シフト後の8ビットをメインメモリ2601へ出力する。LDPCコントローラ2611は、メインメモリ2601に対して書き込みアドレスを出力し、これによりメインメモリ2601はデローテータ2614から供給される8ビッ
トを保持する。ただし、LDPCコントローラ2611、ローテータ2612、検査ノードプロセッサ群2613、およびデローテータ2614が、
図25におけるBICMエンコーダのLDPCエンコーダ2510を構成する。
【0097】
QBカウンタ2631は0から11までカウントするものであり、カウンタ値をテーブル2632へ出力する。なお、QBカウンタ2631によるカウント動作はN=12を考慮したものである。
【0098】
テーブル2632は、巡回ブロックパーミュテーションの規則を記憶した単純なルックアップテーブルである。つまり、テーブル2632は、N=12個の巡回ブロックの読み出し順序の情報(QBカウンタ2631による12個のカウンタ値にそれぞれ異なる巡回ブロックを対応付けた情報)を保持している。テーブル2632は、QBカウンタ2631から供給されるカウンタ値に対応した巡回ブロック1個分のビット(Q=8個のビット)がメインメモリ2601からインターリーバ2633へ供給されるように、メインメモリ2601に対して読み出しアドレスを出力する。これにより、メインメモリ2601はQBカウンタ2631のカウンタ値に対応した巡回ブロック1個分のビットをインターリーバ2633へ出力する。なお、このテーブル2632の処理によって巡回ブロックパーミュテーション(ステージA)が実現される。
【0099】
インターリーバ2633は、メインメモリ2601から供給された巡回ブロック1個分のビットを所定数巡回シフトさせて、レジスタ群2634の1段目のレジスタに出力する。なお、このインターリーバ2633の処理によって巡回ブロック内パーミュテーション(ステージB)が実現される。ただし、レジスタ群2634の各レジスタは制御パルスを受けたタイミングで巡回ブロック1個分のビットを保持し、保持した巡回ブロック1個分のビットを次に制御パルスを受け取るまで出力し続ける。
【0100】
QBカウンタ2631のカウンタ値「0」〜「3」に対して上記の処理内容が実施されると、インターリーバ2635には巡回ブロック4個分のビット(32個のビット)が入力される。このタイミングで、インターリーバ2635は、入力された巡回ブロック4個分のビットに対してインターリーブ処理を施してマッパ群2651の各マッパにコンステレーション語の1個分のビット(M=4個のビット)を出力する。インターリーブ処理により、各マッパには、レジスタ群2634の4個のレジスタのそれぞれから1ビットずつ計4ビットが供給される。なお、インターリーバ2635の処理によってカラム−ロウパーミュテーション(ステージC)が実現される。
【0101】
ただし、QBカウンタ2631、テーブル2632、インターリーバ2633、レジスタ群2634、及びインターリーバ2635が、
図25におけるBICMエンコーダのビットインターリーバ2520を構成する。
【0102】
マッパ群2651の各マッパはインターリーバ2635から供給された4個のビットをコンステレーションにマッピングし、マッピング結果を出力する。ただし、マッパ群2651が、
図25におけるBICMエンコーダのコンステレーションマッパ2530を構成する。
【0103】
1つの符号語に対して、上記一連の処理がQBカウンタ2631のカウンタ値「0」から「3」、「4」から「7」、「8」から「11」の計3回行われる。
【0104】
なお、
図26の一実装例では、並列に動作するQ個のマッパを含むが、より並列度を低く、又は、高くして、BICMエンコーダを実装することも可能である。例えば、ビットインターリーバにおける並列インターリーバセクションの数、すなわち、N/Mを増加さ
せることによって、並列性を簡単に上げることができることは容易に分かる。このような手法では、Q×N/M個のマッパを並列にすることによって並列化を最大化することができる。ビットインターリーバにはそのような並列性を何の障害もなく実現することができるというメリットがある。
【0105】
以下、条件1、条件2を満たすビットインターリーブ処理を施すビットインターリーバを含むトランスミッタからの信号を受信するレシーバについて図面を用いて説明する。
【0106】
図27は、本発明のさらに他の実施の形態に係る非反復BICMデコーダを有するレシーバの一構成例を示すブロック図である。レシーバは、トランスミッタと逆の動作を行う。
【0107】
図27に示すレシーバ2700は、モジュレータ2710、および非反復BICMデコーダ(コンステレーションデマッパ2720、およびビットデインターリーバ2730、LDPCデコーダ2740を含む)を備える。
【0108】
デモジュレータ2710は、OFDMなどによる復調処理を行い、復調処理結果を出力する。
【0109】
非反復BICMデコーダのコンステレーションデマッパ2720は、モジュレータ2710からの入力に対してデマッピング処理を施して所謂ソフトビット列を生成し、生成したソフトビット列をコンステレーションデマッパ2730へ出力する。各ソフトビットは各ビットが0になるか1になるかの確率を示す尺度である。通常、ソフトビットは対数尤度比(loglikelihood ratios: LLRs)で表され、以下のように定義される。
【0110】
LLR(b)=ln[p(b=0)/p(b=1)]
p(b=0)はビットbが0である確率を示し、p(b=1)はビットbが1である確率を示す。ただし、p(b=0)+p(b=1)=1が成り立つ。
【0111】
ビットデインターリーバ2730は、コンステレーションデマッパ2720から出力されるソフトビット列に対して、
図25のトランスミッタ内のビットインターリーバがビット列に対して施したビットインターリーブ処理を打ち消して元の並びに戻すインターリーブ処理(ビットデインターリーブ処理)を行う。
【0112】
LDPCデコーダ2740は、ビットデインターリーバ2730からビットデインターリーブが施されたソフトビット列を受け取り、受け取ったソフトビット列を用いてLDPC復号処理を行う。
【0113】
顕著な受信性能の向上が得られる技法の一つとして、反復BICM復号処理がある。反復BICMデコーダについて
図28を用いて説明する。
【0114】
図28は、本発明のさらに他の実施の形態に係る反復BICMデコーダを有するレシーバの一構成例を示すブロック図である。レシーバは、トランスミッタと逆の動作を行う。
【0115】
図28に示すレシーバ2800は、モジュレータ2710、および反復BICMデコーダ(コンステレーションデマッパ2720、ビットデインターリーバ2730、LDPCデコーダ2740、減算ユニット2760、ビットインターリーバ2750)を備える。
【0116】
図28のレシーバ2800は、コンステレーションデマッパ2720によってコンステ
レーションデマッピング処理、ビットデインターリーブ2730によるビットデインターリーブ処理、LDPCデコーダ2740によるLDPC復号処理を行う。
【0117】
LDPC復号の反復処理を1回または複数回実行した後、減算ユニット2760がLDPCデコーダ2740の出力からLDPCデコーダ2740の入力を減算し、減算の結果得られた外部情報(extrinsic information)をビットインターリーバ2750へ出力す
る。ビットインターリーバ2750は、外部情報に対して、
図25のトランスミッタ内のビットインターリーバがビット列に対して施したビットインターリーブ処理と同じインターリーブ規則のインターリーブ処理を行う。そして、ビットインターリーバ2750は、インターリーブ処理を施した外部情報をコンステレーションデマッパ2720へフィードバックする。コンステレーションデマッパ2720は、フィードバックされた外部情報を事前情報(a-priori information)として用いて、より信頼性の高いLLR値を算出する。そして、ビットデインターリーバ2730は、新たに算出されたLLR値に対して
図25のトランスミッタ内のビットインターリーバがビット列に対して施したビットインターリーブ処理を打ち消して元の並びに戻すインターリーブ処理(ビットデインターリーブ処理)を行う。LDPCデコーダ2740は、ビットデインターリーブ処理が施されたLLR値を用いてLDPC復号処理を行う。
【0118】
図28に示すように、反復復号のループは、四つの要素、すなわち、コンステレーションデマッパ2720、ビットデインターリーバ2730、LDPCデコーダ2740、およびビットインターリーバ2750からなる。ビットデインターリーバ2730とビットインターリーバ2750は、レイテンシが非常に低く、理想的にはゼロであって、かつ簡易な構成であれば、レシーバの効率的な実装が可能となる。上述したビットデインターリーバ2730とビットインターリーバ2750は両方の条件を満たす。
【0119】
非常に効率的な並列実装を実現する反復BICMデコーダの一実装例について
図29を用いて説明する。
【0120】
図29は、本発明のさらに他の実施の形態に係るBICMデコーダの一実装例を示すブロック図である。
図29のBICMデコーダ2900は、上記パラメータ(Q=8、N=12、M=4)に対応するものである。
【0121】
図29に示すBICMデコーダ2900は、メインLLRメモリ2901、バッファLLRメモリ2902、LDPCコントローラ2911、ローテータ2912、検査ノードプロセッサ群2913、デローテータ2914、QBカウンタ2931、テーブル2932、減算ユニット2933、インターリーバ2934、レジスタ群2935、インターリーバ2936、デマッパ群2937、デインターリーバ2938、レジスタ群2939、デインターリーバ2940、および遅延ユニット2941を備える。
【0122】
図29では、Q=8であることを考慮して、メインLLRメモリ2901およびバッファLLRメモリ2902の読み出しが8個のLLR値ずつ行われ、検査ノードプロセッサ群2913には8個の検査ノードプロセッサがあり、デマッパ群2951には8個のデマッパが存在する。また、M=4であることを考慮して、レジスタ群2935、2972には4個のレジスタがある。
【0123】
デマッパ群2937の各デマッパは、デモジュレータ(不図示)の出力を用いてデマッピング処理を行い、これにより得られたLLR値をデインターリーバ2938へ出力する。ただし、デマッパ群2937が、
図28における反復BICMデコーダのコンステレーションデマッパ2720を構成する。
【0124】
デインターリーバ2938は、LLR値に対してデインターリーブ処理(トランスミッタによるステージCによるインターリーブを打ち消すインターリーブ処理)を施し、デインターリーブ後のLLR値をレジスタ群2939の各レジスタに出力する。ただし、レジスタのそれぞれには巡回ブロック1個分のLLR値(8個のLLR値)が格納される。レジスタ群2939では、レジスタに保持された巡回ブロック1個分のLLR値が順次後段に出力され、各レジスタの保持内容が順次更新されていく。デインターリーバ2940は、供給される巡回ブロック1個分のLLR値(8個のLLR値)に対してインターリーブ処理(トランスミッタによるステージBによるインターリーブを打ち消すインターリーブ処理)を施し、テーブル2932の保持内容(後述)に従ってメインLLRメモリ2901およびバッファLLRメモリ2902に書き込む。なお、テーブル2932の保持内容に従うメインLLRメモリ2901およびバッファLLRメモリ2902への書き込みより、トランスミッタによるステージAによるインターリーブを打ち消すインターリーブ処理が実現される。
【0125】
このようにして、メインLLRメモリ2901は、デインターリーブ処理後のLLR値を記憶し、LDPCデコーダ(LDPCコントローラ2911、ローテータ2912、検査ノードプロセッサ群2913、デローテータ2914)によっても用いられる。LDPC復号処理は、1または複数の反復によりなる反復処理である。LDPC復号処理の各反復において、メインLLRメモリ2901内のLLR値が更新される。反復BICM復号処理に必要な外部情報を算出するため、古いLLR値はバッファLLRメモリ2902に保持される。
【0126】
ここで、LDPCデコーダの処理を記載する。
【0127】
LDPCコントローラ2911は、LDPC符号のパリティチェック行列に従ってメインLLRメモリ2901に対して読み出しアドレスを出力し、これによりメインLLRメモリ2901は巡回ブロック1個分ずつLLR値をローテータ2912へ順次出力する。ローテータ2912は、LDPCコントローラ2911による制御を受けて、メインLLRメモリ2901から順次供給される巡回ブロック1個分のLLR値を所定数巡回シフトし、巡回シフト後のLLR値を検査ノードプロセッサ群2913の各検査ノードプロセッサに対して1個ずつ順次出力する。各検査ノードプロセッサ群2913の各検査ノードプロセッサは、LDPCコントローラ2911による制御を受けて、順次入力された一連のLLR値に対して検査ノード処理を行う。次に、検査ノードプロセッサ群2913の各検査ノードプロセッサは、LDPCコントローラ2911による制御を受けて、検査ノード処理の結果である一連のLLR値を順次出力する。デローテータ2914は、LDPCコントローラ2911による制御を受けて、検査ノードプロセッサ群2913から順次受け取った巡回ブロック1個分の処理結果をローテータ2912による巡回シフトを打ち消すように所定数巡回シフトし、巡回シフト後の処理結果をメインLLRメモリ2901へ順次出力する。LDPCコントローラ2911は、LDPC符号のパリティチェック行列に従ってメインLLRメモリ2901に対して書き込みアドレスを出力し、これによりメインLLRメモリ2901はデローテータ2914から順次供給される巡回ブロック1個分の処理結果を保持する。LDPCコントローラ2911は、LDPC符号のパリティチェック行列に従って、以上の処理を繰り返して実行する。
【0128】
LDPC反復処理を所定の回数実行した後、BICM反復処理が実行される。LDPCおよびBICM反復処理を、それぞれ、内的反復処理および外的反復処理とも呼ぶ。なお、これら二種類の反復処理をオーバーラップさせて実装することも可能である。これにより、収束のスピードを上げることができる。BICMおよびLDPC復号処理は、当技術分野において周知であるため、詳細な説明は省略する。
【0129】
QBカウンタ2931は0から11までカウントするものであり、カウンタ値をテーブル2932へ出力する。なお、QBカウンタ2931によるカウント動作はN=12を考慮したものである。
【0130】
テーブル2932は、巡回ブロックパーミュテーションの規則を記憶した単純なルックアップテーブルである。つまり、テーブル2932は、N=12個の巡回ブロックの読み出し順序(書き込み順序)の情報(QBカウンタ2631による12個のカウンタ値にそれぞれ異なる巡回ブロックを対応付けた情報)を保持している。テーブル2932は、QBカウンタ2931から供給されるカウンタ値に対応した巡回ブロック1個分のLLR値がメインLLRメモリ2901およびバッファLLRメモリ2902から減算ユニット群2933へ供給されるように、メインLLRメモリ2901およびバッファLLRメモリ2902に対して読み出しアドレスを出力する。これにより、メインLLRメモリ2901およびバッファLLRメモリ2902はそれぞれQBカウンタ2931のカウンタ値に対応した巡回ブロック1個分のLLR値を減算ユニット2934へ出力する。ここで、メインLLRメモリ2901およびバッファLLRメモリ2902からのLLR値の読み出し位置と、メインLLRメモリ2901およびバッファLLRメモリ2902への当該LLR値の書き込み位置とが一致するように、遅延ユニット2941よる遅延調整が施される。なお、このテーブル2932の処理によって巡回ブロックパーミュテーション(ステージA)に相当するパーミュテーションが実現される。
【0131】
減算ユニット群の各減算ユニット2933は、メインLLRメモリ2901の出力からからバッファLLRメモリ2902の出力を減算し、減算の結果得られた巡回ブロック1個分の外部情報(8個の外部情報)をインターリーバ2934に出力する。
【0132】
インターリーバ2934は、減算ユニット2933から供給された巡回ブロック1個分の外部情報を、所定数巡回シフトさせて、レジスタ群2935の1段目のレジスタに出力する。なお、このインターリーバ2934の処理によって巡回ブロック内パーミュテーション(ステージB)に相当する処理が実現される。ただし、レジスタ群2935の各レジスタは制御パルスを受けて8個のビットを保持し、保持した8個のビットを次に制御パルスを受け取るまで出力し続ける。
【0133】
QBカウンタ2931のカウンタ値「0」〜「3」に対して上記の処理内容が実施されると、インターリーバ2936には巡回ブロック4個分の外部情報(32個の外部情報)が入力される。このタイミングで、インターリーバ2936は、入力された巡回ブロック4個分の外部情報に対してインターリーブ処理を施して、デマッパ群2937の各デマッパにコンステレーション語の1個分の外部情報(M=4個の外部情報)を出力する。インターリーブ処理により、デマッパ群2951の各デマッパには、レジスタ群2935の4個のレジスタのそれぞれから1個ずつ計4個の外部情報が供給される。なお、インターリーバ2936の処理によってカラム−ロウパーミュテーション(ステージC)に相当する処理が実現される。
【0134】
ただし、QBカウンタ2931、テーブル2932、インターリーバ2934、レジスタ群2935、及びインターリーバ2936が、
図28におけるBICMデコーダのビットインターリーバ2750を構成する。
【0135】
デマッパ群2937の各デマッパは、インターリーバ2936から供給された4個の外部情報を事前情報として用いてデマッピング処理を行い、新たなLLR値をデインターリーバ2938へ出力する。
【0136】
デインターリーバ2938は、LLR値に対してデインターリーブ処理(トランスミッ
タによるステージCによるインターリーブを打ち消すインターリーブ処理)を施し、デインターリーブ後のLLR値をレジスタ群2939の各レジスタに出力する。ただし、レジスタのそれぞれには巡回ブロック1個分のLLR値(8個のLLR値)が格納される。レジスタ群2939では、レジスタに保持された巡回ブロック1個分のLLR値が順次後段に出力され、各レジスタの保持内容が順次更新されていく。デインターリーバ2940は、供給される巡回ブロック1個分のLLR値(8個のLLR値)に対してデインターリーブ処理(トランスミッタによるステージBによるインターリーブを打ち消すインターリーブ処理)を施し、メインLLRメモリ2901およびバッファLLRメモリ2902に出力する。メインLLRメモリ2901およびバッファLLRメモリ2902は、テーブル2932から遅延ユニット2941を介して書き込みアドレスを受け取り、受け取った書き込みアドレスに従い、デインターリーバ2940から受け取った巡回ブロック1個分のLLR値(8個のLLR値)を保持する。テーブル2932に従った書き込み処理により、トランスミッタによるステージAによるインターリーブを打ち消すインターリーブ処理(デインターリーブ処理)が実現される。
【0137】
1つの符号語に対して、上記一連の処理がQBカウンタ2931のカウンタ値「0」から「3」、「4」から「7」、「8」から「11」の計3回行われる。
【0138】
ただし、QBカウンタ2931、テーブル2932、デインターリーバ2938、レジスタ群2939、及びデインターリーバ2940が、
図28におけるBICMデコーダのビットデインターリーバ2730を構成する。
【0139】
インターリーバ2934およびデインターリーバ2940は再構成可能であり、一定のハードウェアコストがかかるが、コストは入念な設計によって最小限に抑えることができる。インターリーバ2936およびデインターリーバ2938は、カラム‐ロウパーミュテーションを実装するものであり、このパーミュテーションは所定のコンステレーションサイズについて一定である。したがって、実装コストは小さい。
【0140】
なお、
図29の一実装例では、並列に動作するQ個のデマッパを含むが、より並列度を低く、又は、高くして、反復BICMデコーダを実装することも可能である。例えば、ビットインターリーバにおける並列インターリーバセクションの数、すなわち、N/Mを増加させることによって、並列性を簡単に上げることができることは容易に分かる。このような手法では、Q×N/M個のデマッパを並列にすることによって並列化を最大化することができる。上述したビットインターリーバにはそのような並列性を何の障害もなく実現することができるというメリットがある。
【0141】
≪発明者によるさらなる検討≫
上述した条件1、条件2を満たすインターリーバ(並列インターリーバ)では、コンステレーション語のビット数Mが巡回ブロック数Nの約数になることを前提としている。しかしながら、常に、MがNの約数になるとは限らない。例として、DVB−T2規格で使用される16K LDPC符号を挙げることができ、16K LDPC符号の符号語はN=45個の巡回ブロックを有する。MがNの約数にならない場合、Mが偶数であるQAMコンステレーションなどの正方形コンステレーションに対するマッピングは容易ではない。
【0142】
従って、N個の巡回ブロックから1以上の巡回ブロックを除外し、残った巡回ブロックのみに対して上記の実施の形態(その1)で説明したインターリーバ(並列インターリーバ)を適用することは、特有の解決方法であると言える。
【0143】
言い換えると、ビットインターリーバは、N個の巡回ブロックの中からコンステレーシ
ョン語のビット数Mの倍数となるN’個の巡回ブロックを選択する。ビットインターリーバは、選択したN’個の巡回ブロックを、それぞれがM個の巡回ブロックを含むように、N’/M個のセクションに分割し、各セクションに対してセクションパーミュテーションを施す。除外された(選択されなかった)巡回ブロックのビットは、インターリーブされなくてもよいし、インターリーブされてもよい。
【0144】
例えば、除外される巡回ブロックは、変数ノードの重みが最も小さい巡回ブロックであってもよい。RA QC LDPC符号(
図5参照)の場合、例えば、除外される巡回ブロックは、バリティ部分(重み2の変数ノードを有する)の巡回ブロックであってもよく、この場合、例えば符号語の最後から1以上の巡回ブロックであってもよい。
【0145】
図30は、実施の形態(その1)で説明したインターリーブ方法を適用する適用対象の巡回ブロックと適用しない適用対象外の巡回ブロック(除外される巡回ブロック)を示す図である。但し、
図30は、符号がDVB−T2規格で定義されている16K LDPC符号であり、コンステレーションが16QAMコンステレーションである場合に対する図である。
図30の例では、適用対象の巡回ブロックは44個の巡回ブロック(1、・・・、44)であり、適用対象外の巡回ブロック(除外される巡回ブロック)はその最終行の1個の巡回ブロック45のみである。また、4個の黒四角が1番目のコンステレーション語の4ビットを表す。
【0146】
一般に、インターリーバセクション(M個の巡回ブロックからなるセクション)の数は、floor(N/M)であり、除外される巡回ブロックの数はrem(N,M)である。ここで、floor(N/M)はN/M以下の最大の整数値を返す関数であり、rem(N,M)は、NをMで割った剰余値を返す関数である。
【0147】
表2に、DVB−T2規格における16K LDPC符号(N=45個の巡回ブロックを有する)に関する、様々なコンステレーションサイズ(コンステレーションのビット数M)に対するセクション数と除外される巡回ブロック数を示す。
【0148】
【表2】
上記に説明した条件1、条件2を満たすインターリーブ方法では、各コンステレーション語はM個の巡回ブロックにマッピングされる。しかしながら、大きなサイズのコンステレーション(コンステレーションポイント数が多いコンステレーション)に対して、条件1、条件2を満たすインターリーブ方法を適用する場合、非常に多い遅延レジスタが必要となる(
図26及び
図29で説明した実装例を参照)。非常に多い遅延レジスタの使用は、回路面積および消費電力の増大につながる。加えて、コンステレーション語がマッピングされる巡回ブロック数を減少させることは、外(BICM)のイタレーションと内(LDPC)のイタレーション間のオーバーラッピングを増大させるために有益であり、全体のBICM復号のレイテンシを減少させる。
【0149】
各コンステレーション語の2ビット以上を同じ巡回ブロックにマッピングすることによって、コンステレーション語がマッピングされる巡回ブロックの数を減少させることができる。同じ巡回ブロックにマッピングされるコンステレーション語のビットの数をフォルディング係数と称し、Fと記す。例えば、コンステレーションが16QAMコンステレーションであり、F=2の場合、コンステレーション語は4個の巡回ブロックの代わりに2個の巡回ブロックにのみマッピングされる。唯一の制約は、フォルディング係数F(1より大きい整数)がMとQの約数でなければならない、ということである。なお、F=1は、フォルディングなし、つまり、実施の形態(その1)に対応する。
【0150】
複素QAMコンステレーションシンボルは、2つの等しい実PAM(pulse-amplitude modulation)シンボルに分離することができる。従って、QAMコンステレーションのMビットは、2つの等しい実PAMシンボルのM/2ビットのセットに分割することができ、コンステレーション語のビットは同じM/2個の巡回ブロックにマッピングすることができる。F=2であるフォルディング係数は、QAMコンステレーションにとって有益である。
【0151】
実数分解できない複素コンステレーション、例えばDVB−S2規格で使用されるような、8PSK(phase shift keying)、16APSK(amplitude phase shift keying)、32APSKなどでは、フォルディング手法の利用は容易ではない。しかしながら、FがMの約数であれば、フォルディングの手法の利用は可能である。しかしながら、各巡回ブロックのビットの全てがコンステレーションの同一のロバストレベルのビットにのみマッピングされることをもはや保証することはできない。
【0152】
フォルディングを用いる手法では、例えば、各巡回ブロックのビットの全てがコンステレーションの同一のロバストレベルのビットにマッピングされることは望ましい。
【0153】
フォルディングは、除外される巡回ブロックの数を減らし、又は、除外される巡回ブロックの数を0にする付加的な利点を持つ。上記説明したように、実施の形態(その1)で説明したインターリーバ(並列インターリーバ)を適用するためには、符号語を構成する巡回ブロックのいくつかを除外する必要がある。
【0154】
フォルディングなし(F=1)の場合、M個の巡回ブロックからなるグループの数(セクション数)はfloor(N/M)であり、除外される巡回ブロック数はrem(N,M)である。一方、フォルディングありの場合、M/F個の巡回ブロックからなるグループの数はfloor(N/(M/F))であり、除外される巡回ブロック数はrem(N,M/F)である。この具体的な数値の例として、DVB−T2規格に使用されるLDPC符号について表3に示す。
【0155】
【表3】
発明者は、フォルディング(Fが2以上の整数)を行うためには、条件1、条件2を、下記の条件1A、条件2Aに変更する必要があるとの知見を得た。
【0156】
(条件1A)
各コンステレーション語のM個のビットが、LDPC符号語のM/F個の異なる巡回ブロックにマッピングされる。これは、LDPC符号語のM/F個の異なる巡回ブロックからF個のビットずつコンステレーション語にマッピングする、ことと等価である。この概要を
図31(a)に示す。
【0157】
(条件2A)
M/F個の巡回ブロックにマッピングされるすべてのコンステレーション語が、当該M
/F個の巡回ブロックのみにマッピングされる。これは、QビットからなるM/F個の異なる巡回ブロックのM×Q/F個のビットの全ては、Q/F個のコンステレーション語にのみマッピングされる、ことと等価である。この概要を
図31(b)に示す。
【0158】
なお、F=1はフォルディングなしであり、条件1A、条件2Aは、条件1、条件2と同一になる。
【0159】
≪実施の形態(その2)≫
以下、上記の条件1A、条件2Aを満たすビットインターリーバ(並列ビットインターリーバ)の詳細について説明する。なお、以下において、実質的に同じ処理内容、および、同じ処理内容を行う構成ユニットには同じ符号を付す。
【0160】
本明細書では、M/F個の巡回ブロックよりなるグループのそれぞれ、または、Q/F個のコンステレーション語よりなるグループのそれぞれを、フォルディングセクション(または、フォルディングインターリーバセクション)と呼ぶ。
【0161】
なお、F=1の場合(フォルディングなし)、フォルディングインターリーバセクションはインターリーバセクションと一致し、ビットインターリーバは実施の形態(その1)のビットインターリーバと同一構成になる。
【0162】
Fが1より大きい整数の場合がフォルディングありであり、実施の形態(その2)ではフォルディングありの一例としてF=2の場合を説明する。
【0163】
図32は、本発明のさらに他の実施形態に係る、Q=8、M=4、N=12、F=2に対応する条件1A、条件2Aを満たすビットインターリーバの一構成例を示すブロック図である。
【0164】
図32では、QC−LDPC符号の符号語は、それぞれがQ=8個のビットからなるN=12個の巡回ブロックQB1〜QB12で構成されている。24個のコンステレーション語はそれぞれM=4個のビットからなり、それぞれが2
M=16個のコンステレーショ
ンポイントのいずれか1つを示す。ビットインターリーバは、F×N/M=6個のフォルディングセクションに分けられ、24個のコンステレーション語はF×N/M=6個のフォルディングセクションのいずれか1つに関連付けられる。
【0165】
ビットインターリーバ2000Aは、ビットパーミュテーションユニット2010Aを有し、ビットパーミュテーションユニット2010Aは互いに独立して(互いに依存せずに)動作するF×N/M=6個のフォルディングセクションパーミュテーションユニット2021A〜2026Aを有する。なお、フォルディングセクションパーミュテーションユニットを6つ備えるようにする代わりに、1つのフォルディングセクションパーミュテーションユニットを用いて処理対象を時系列に切り替えながら後述する6つのフォルディングセクションパーミュテーション処理を行うようにしてもよい。
【0166】
フォルディングセクションパーミュテーションユニット(2021A、2022A、2023A、2024A、2025A、2026A)は、互いに独立して(互いに依存せずに)、4個のコンステレーション語(C1〜C4、C5〜C8、C9〜C12、C13〜C16、C17〜C20、C21〜C24)の各々に、M/F=2個の巡回ブロック(QB1〜QB2、QB3〜QB4、QB5〜QB6、QB7〜QB8、QB9〜QB10、QB11〜QB12)のそれぞれからF=2個のビットずつマッピングされるように、2個の巡回ブロックの計16個のビットに対してその並び順を換えるフォルディングセクションパーミュテーション処理を施す。
【0167】
上述の2つの条件1A、条件2Aは、単に、ビットインターリーバがF×N/M個の並列フォルディングセクションに分けられることを保証するだけのものである。これらの並列フォルディングセクションに対して施すフォルディングセクションパーミュテーション処理に、互いに同じパーミュテーション規則が適用されてもよいし、互いに異なるパーミュテーション規則が適用されてもよいし、一部だけが互いに同じパーミュテーション規則が適用されてもよい。
【0168】
例えば、フォルディングセクションパーミュテーションユニットは、巡回ブロックのQ個のビットを、Q/F個のコンステレーション語の同一のロバストレベルを有するビットにマッピングするようにしてもよい。これについて、Q=8、M=4を例に挙げて、
図33及び
図34を用いて説明する。
【0169】
図34(a)は、F=1(フォルディングなし)の(フォルディング)セクションパーミュテーションユニットの一構成例を示すブロック図であり、
図22(a)と同一構成である。
【0170】
図34(b)は、
図32のうちの、F=2(フォルディングあり)の場合の2つのフォルディングセクションパーミュテーションユニットの一構成例を示すブロック図である。
【0171】
但し、
図34(b)の例では、コンステレーションが16QAMコンステレーションである。このため、コンステレーションのビットには2つのロバストレベルがあり、ビットb1とビットb3が同一のロバストレベル、ビットb2とビットb4が同一のロバストレベルである。
【0172】
フォルディングセクションパーミュテーションユニット2201A(2202A)は、カラム‐ロウパーミュテーションユニット2131A(2132A)を有する。
【0173】
カラム‐ロウパーミュテーションユニット2131A(2132A)は、巡回ブロックQB1〜QB2(QB3〜QB4)のQ×M/F=16個のビットに対してこの並び順を換えるカラム‐ロウパーミュテーション処理を施す。詳述すれば、カラム‐ロウパーミュテーションユニット2131A(2132A)は、Q×M/F=16個のビットをQ列M/F行=8列2行の行列の行方向に書き込み、書き込んだ16個のビットを列方向に読み出すことと等価なカラム‐ロウパーミュテーション処理を行う。なお、カラム‐ロウパーミュテーションユニット2131A、2132Aによるカラム‐ロウパーミュテーション処理は、
図9(a)、(b)の12列1350行がQ列M/F行に置き換わり、書き込み処理が列方向から行方向に、読み出し処理が行方向から列方向に換わったものである。
【0174】
なお、フォルディング係数Fのフォルディングによって、1つのコンステレーション語にマッピングされる巡回ブロック数が減少する。これにより、カラム‐ロウパーミュテーションにおける行列の行数はMからM/Fに減少する。
【0175】
図33(a)は、
図34(a)の(フォルディング)セクションパーミュテーションユニットによるマッピングの機能を示す図であり、
図33(b)は、
図34(a)の2つのフォルディングセクションパーミュテーションユニットによるマッピングの機能を示す図である。
図33(a)、(b)では、各コンステレーション語のM=4個のビットがb1〜b4で示されている。なお、太線で囲っている部分はコンステレーション語C1についてのマッピングを表している。
【0176】
図33(a)、
図34(a)の例では、1つの巡回ブロックの8ビット(同じ重要度を
有する)は、8個のコンステレーション語の同一ビットインデックスを有するビット(同じロバストレベルを有する)にマッピングされている。また、
図33(b)、
図34(b)の例では、1つの巡回ブロックの8ビット(同じ重要度を有する)は、4個のコンステレーション語の同じロバストレベルのビットにマッピングされている。
【0177】
ただし、巡回ブロックQB5〜QB6、QB7〜QB8、QB9〜QB10、QB11〜QB12に対して、
図34(b)で説明したフォルディングセクションパーミュテーションが行われるようにしてもよい。
【0178】
なお、
図34(a)、(b)のフォルディングセクションパーミュテーションユニットにおいて、カラム‐ロウパーミュテーションの前段に巡回ブロックQB1〜QB4のビットに対してその並び順を換える巡回ブロック内パーミュテーションを行うユニットを追加してもよい。
【0179】
本発明のさらに他の実施の形態では、ビットインターリーバは、フォルディングセクションパーミュテーション処理を行う前に、付加的にN個の巡回ブロックに対してその並び順を換える巡回ブロックパーミュテーション処理を行う。付加的に巡回ブロックパーミュテーション処理を施すビットインターリーバの一構成例を
図35に示す。
【0180】
図35に示すビットインターリーバ2300Aは、巡回ブロックパーミュテーションユニット2310と、ビットパーミュテーションユニット2010A(フォルディングセクションパーミュテーションユニット2021A〜2026Aを含む)を備える。
【0181】
図36は、
図35のビットインターリーバの一構成例を示すブロック図である。
【0182】
図36のビットインターリーバ2400Aは、巡回ブロックパーミュテーションユニット2310と、ビットパーミュテーションユニット2200A(フォルディングセクションパーミュテーションユニット2201A〜2206Aを含む)を有する。
【0183】
フォルディングセクションパーミュテーションユニット2201A〜2206Aは、それぞれ、カラム‐ロウパーミュテーションユニット2131A〜2136Aを備える。カラム‐ロウパーミュテーションユニット2133A〜2136Aは、それぞれ、カラム‐ロウパーミュテーションユニット2133A〜2132Aと実質的に同じパーミュテーション処理を行う。
【0184】
なお、
図35、
図36のビットインターリーバにおいて、巡回ブロックパーミュテーションの前段または後段に巡回ブロックQB1〜QB12のビットに対してその並び順を換える巡回ブロック内パーミュテーションを行うユニットを追加してもよい。
【0185】
以下、条件1A、条件2Aを満たすビットインターリーブ処理を行うビットインターリーバを含むトランスミッタの一構成例について
図37を用いて説明する。
【0186】
図37は、本発明のさらに他の実施形態に係るトランスミッタの一構成例を示すブロック図である。
図37に示すトランスミッタ2500Aは、
図25のトランスミッタ2500のビットインターリーバ2520がビットインターリーバ2520Aに置き換わった構成である。
【0187】
ビットインターリーバ2520Aは、LDPCエンコーダ2510からQC−LDPC符号の符号語を受け取る。この符号語は、N=12個の巡回ブロックからなり、各巡回ブロックはQ=8個のビットからなる。そして、ビットインターリーバ2520Aは、符号
語のビットに対してその並び順を換えるビットインターリーブ処理を施す。ビットインターリーバ2520Aは、ビットインターリーブ処理が施された符号語を、それぞれM=4個のビットよりなり、それぞれが2
M=16個の所定のコンステレーションポイントのい
ずれか1つを示す複数のコンステレーション語に分割してコンステレーションマッパ2530へ出力する。ただし、ビットインターリーバ2520Aは、ビットインターリーブ処理として、例えば
図32から
図34で説明した、または、その変形として説明したビットパーミュテーション処理を行う(F=1を除く)。または、ビットインターリーバ2520Aは、ビットインターリーブ処理として、ビットパーミュテーション処理に加えて(F=1を除く)、例えば
図35および
図36で説明した、または、その変形として説明した巡回ブロックパーミュテーション処理を追加的に行ってもよい。
【0188】
以下、条件1A、条件2Aを満たすビットインターリーブ処理を施すビットインターリーバを含むトランスミッタからの信号を受信するレシーバについて図面を用いて説明する。
【0189】
図38は、本発明のさらに他の実施の形態に係る非反復BICMデコーダを有するレシーバの一構成例を示すブロック図である。レシーバは、トランスミッタと逆の動作を行う。
図38に示すレシーバ2700Aは、
図27のレシーバ2700のビットデインターリーバ2730がビットデインターリーバ2730Aに置き換わった構成である。
【0190】
ビットデインターリーバ2730Aは、コンステレーションデマッパ2720から出力されるソフトビット列に対して、トランスミッタ2500A内のビットインターリーバ2520Aがビット列に対して施したビットインターリーブ処理を打ち消して元の並びに戻すインターリーブ処理(ビットデインターリーブ処理)を行う。
【0191】
図39は、本発明のさらに他の実施の形態に係る非反復BICMデコーダを有するレシーバの一構成例を示すブロック図である。レシーバは、トランスミッタと逆の動作を行う。
図39に示すレシーバ2800Aは、
図28のレシーバ2800のビットデインターリーバ2730およびビットインターリーバ2750がビットデインターリーバ2730Aおよびビットデインターリーバ2750Aに置き換わった構成である。
【0192】
ビットインターリーバ2750Aは、外部情報(extrinsic information)に対して、
トランスミッタ2500A内のビットインターリーバ2520Aがビット列に対して施したビットインターリーブ処理と同じインターリーブ規則のインターリーブ処理を行う。
【0193】
ハードウェアの実装の観点から、例えば、フォルディングは1つのコンステレーション語のビットがより少ないLLRメモリロケーションに配置されるようにしてもよい。通常、デコーダにおけるLLRメモリは、G×N個のアドレス指定可能なロケーションを有し、各ロケーションはQ/G個のLLR値を保持することが可能になっている。Gは、Qの約数である実装パラメータであり、メモリ粒度(granularity)と称する。デコーダ内の
LLRメモリロケーションと、M=4、F=2、Q=12、G=1〜12に対応する1番目のコンステレーション語のLLR値の配置箇所を
図40に示す。
【0194】
メモリロケーションにおけるLLR値の数、すなわち、Q/Gは、Fの倍数である必要があり、各コンステレーションのLLR値が、メモリの全ロケーションにおいて同じ位置に格納される。これは、いずれのコンステレーション語におけるLLR値も、M/F個のメモリロケーションに格納されることを保証する。これに反する例が
図40のG=4に示され、各メモリロケーションは12/4=3個のLLR値を格納する。2番目と5番目のコンステレーション語のLLR値は2つのメモリロケーションの代わりに4つのメモリロケーションに保持される。
【0195】
F=2のフォルディングが適用される得る単純なQAMコンステレーションの場合に加えて、2以上のコンステレーションシンボルが結合復号(jointly decode)されるときにフォルディングは非常に有用である。結合復号は、例えば、ブロック符号(時空間符号、周波数空間符号など)の最尤復号または2次元以上の回転コンステレーションに対して必要となる。
【0196】
一般に、ブロック符号は、2以上の入力シンボル(x
1、・・・、x
K)を2以上の出力シンボル(y
1、・・・、y
L)に符号化する。ここで、LはK以下である。ブロック符号は、L行K列の生成行列によってモデル化される。ここで、入力信号ベクトルXに生成行列Gを左乗算することによって、出力信号ベクトルYが得られる(Y=GX)。
【0197】
入力信号ベクトルXおよび出力信号ベクトルYの要素は、生成行列Gの要素と同じく、実数または複素数となり得る。符号の種類によっては、出力信号ベクトルYは、異なる時間スロット或いは異なる周波数スロットで送信され、異なるアンテナを用いて送信され、又は、異なる時間スロット或いは異なる周波数スロットおよび異なるアンテナを用いて送信されることがある。
【0198】
レシーバでは、入力信号ベクトルXの全要素の復号のために、最尤復号が要求される。MIMO(multiple-input multiple-output)通信システム用のブロック符号として、アラモウチ(Alamouti)符号、Golden符号、および空間多重が挙げられる。
【0199】
K個のシンボルが同じブロックに符号化されている場合、フォルディング係数はKまで使用可能であることは明らかである。さらに、シンボルがQAMシンボル(2つの分離可能なPAMシンボルを含む)ならば、使用可能なフォルディング係数は2×Kまで増加し得る。
【0200】
本発明のさらに他の実施形態によれば、異なるサイズのコンステレーション、すなわち、ハイブリッドコンステレーションが結合符号化されている場合には、2つのコンステレーションは互いに異なるロバストレベルを有しているので、例えば、一方のコンステレーション語のビットにマッピングする巡回ブロックと他方のコンステレーション語のビットにマッピングする巡回ブロックは互いに異なるようにする。
【0201】
ここで、2つの送信アンテナを用いた符号空間多重MIMOシステムを例に挙げて説明する。符号化前の複素信号をX=[x
1 x
2]とする。ここでx
1はQPSKが施された
信号であり、x
2は16QAMが施された信号である。符号化後の複素信号をY=[y
1 y
2]とする。ここでy
1およびy
2はそれぞれ第1アンテナおよび第2アンテナにより送
信される信号である。Yは、Xに2行2列の生成行列G(要素は、実数でも複素数でもよい)を左乗算することにより得られる(Y=GX)。
【0202】
例えば、QPSKシンボルと16QAMシンボルとを同じブロック符号に多重化する場合、フォルディング係数F=2に対するマッピングの一例を
図41に示す。
図41では、巡回ブロックにおける最初の7ビットだけを示している。2つの複素シンボルx
1および
x
2は次のような構造を有する。
【0203】
x
1は実数部がb1、虚数部がb2で与えられるQPSKシンボルである。
【0204】
x
2は実数部がb3、b4、虚数部がb5、b6で与えられる16QAMシンボルであ
る。
【0205】
2つのシンボルは、レシーバで結合復号され、これにより、いわゆるコンステレーションブロックあるいは生成されたブロックが作られる。
【0206】
全体の6ビットのコンステレーションブロックは、3つのロバストレベルを有することとなる。
【0207】
レベル1:QPSKのb1とb2はQB1にマッピングされる。
【0208】
レベル2:16QAMのb3とb5はQB2にマッピングされる。
【0209】
レベル3:16QAMのb4とb6はQB3にマッピングされる。
【0210】
なお、一方のコンステレーションのビット数をM1、他方のコンステレーションのビット数をM2とした場合、N個の巡回グループを、M1個の巡回ブロックからなる1以上のグループと、M2個の巡回ブロックからなる1以上のグループに分割して、ビットインターリーブ処理を施す。
【0211】
≪実施の形態(その3)≫
以下、NがMの倍数ではなく、フォルディングを行う場合のインターリーバの一例について記載する。
【0212】
図42は、一例として、F=2のインターリーブ処理を適用する適用対象の巡回ブロックと適用しない適用対象外の巡回ブロック(除外される巡回ブロック)を示す図である。但し、
図42は、符号がDVB−T2規格で定義されている16K LDPC符号であり、コンステレーションが16QAMコンステレーションである場合に対する図である。
図42の例では、適用対象の巡回ブロックは44個の巡回ブロック(1、・・・、44)であり、適用対象外の巡回ブロック(除外される巡回ブロック)はその最終行の1個の巡回ブロック45のみである。また、4個の黒四角が1番目のコンステレーション語の4ビットを表す。
【0213】
図43は、NがMの倍数ではなく、フォルディングを行う場合のビットインターリーバの一構成例を示すブロック図である。説明を簡単にするために、N=13、Q=8、M=4、F=2とする。
【0214】
フォルディングセクション数はfloor(N/(M/F))=6、除外される巡回ブロック数はrem(N、M/F)=1である。
【0215】
ビットインターリーバ2000Bは、巡回ブロックQB1〜QB13のうち、13−1=12個の巡回ブロックQB1〜QB12を条件A1、条件A2を満たすインターリーバを適用する巡回ブロックに選択する。そして、ビットインターリーバ2000B内のビットパーミュテーションユニット2010Aは選択した12個の巡回ブロックに対して
図32を用いて説明したパーミュテーション処理を行う。なお、巡回ブロックQB13のビットは、インターリーブされずにコンステレーション語にマッピングされるようになっているが、インターリーブしてからコンステレーション語にマッピングされるようにしてもよい。
【0216】
なお、NがMの倍数ではなく、フォルディングを行わないインターリーバの一例として、
図43のビットパーミュテーションユニット2010Aを
図20のビットパーミュテーションユニット2010に置き換えた構成を挙げることができる。
【0217】
≪補足1≫
本発明は上記の実施の形態で説明した内容に限定されず、本発明の目的とそれに関連又は付随する目的を達成するためのいかなる形態においても実施可能であり、例えば、以下であってもよい。
【0218】
(1)上記の実施の形態(その1)では、パラメータとしてN=12、Q=8、M=4を例に挙げて説明したが、パラメータN、M、Qの値はこれに限定されるものではなく、NがMの倍数であればよい。なお、NがMの2以上の倍数である場合には、ビットインターリービングの処理を、複数のセクションに分割して実行することが可能になる。
【0219】
(2)フォルディングあり(Fが2以上の整数)の実施の形態(その2)では、パラメータとしてN=12、Q=8、M=4を、フォルディング係数としてF=2を例に挙げて説明したが、パラメータN、M、Qの値やフォルディング係数Fの値はこれに限定されるものではない。FがMおよびQのそれぞれの約数であり、NがM/Fの倍数であればよい。
【0220】
(3)フォルディングありの実施の形態(その2)では、Fの値を16QAMコンステレーションの同一のロバストレベルを有するビット数「2」として説明したが、これに限定されるものではない。Fの値はコンステレーションの同一のロバストレベルを有するビット数とする他、Fの値をコンステレーションの同一のロバストレベルのビット数以外にしてもよい。
【0221】
(4)フォルディングありの実施の形態(その2)では、フォルディング係数F=2でQAMコンステレーションが16QAMコンステレーションであるとして説明したが、これに限定されるものではなく、F=2で、QAMコンステレーションが16QAMコンステレーション以外のQAMコンステレーション(例えば、64QAMコンステレーション、256QAMコンステレーション)などであってもよい。
【0222】
(5)上記の各実施の形態では、コンステレーションとして16QAM(M=4)を例に挙げて説明したが、コンステレーションとして、QPSKやQAMなどのような特定の変調方式の他に、例えば、DVB−S2規格において利用される円形コンステレーションや、多次元コンステレーションなど様々な変調方式を用いることができる。
【0223】
(6)上記の実施形態で説明した方法または装置を、ソフトウェアによって実現してもよいし、ハードウェアによって実現してもよく、特定の形態に限定されるものではない。具体的には、上記の実施形態は、コンピュータ、マイクロプロセッサ、マイクロコントローラなどが上記の実施形態で説明した方法や装置のすべてのステップを実行できるようなコンピュータ実行可能命令を、コンピュータ読み取り可能媒体上で具現化した形態で実施してもよい。また、上記の実施形態は、ASIC(Application−Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)の形態で実施してもよい。
【0224】
≪補足2≫
本発明に係るビットインターリーブ方法、ビットインターリーバ、ビットデインターリーブ方法、ビットデインターリーバ、およびデコーダとその効果について説明する。
【0225】
本発明の一態様である第1のビットインターリーブ方法は、疑似巡回低密度パリティチェック符号を用いる通信システムにおけるビットインターリーブ方法であって、前記ビットインターリーブ方法は、それぞれがQ個のビットからなるN個の巡回ブロックで構成される前記疑似巡回低密度パリティチェック符号の符号語を受信する受信ステップと、前記
符号語のビットに対して当該符号語のビットの並び順を換えるビットパーミュテーション処理を施すビットパーミュテーションステップと、前記ビットパーミュテーション処理が施された符号語を、それぞれがM個のビットよりなり、それぞれが所定のコンステレーションの2
M個のコンステレーションポイントのいずれか1つを示す複数のコンステレーシ
ョン語に分割する分割ステップと、を有し、前記ビットパーミュテーション処理が施される前の前記符号語はF×N/M個のフォルディングセクションに分割され、Fは1より大きい整数であり、各前記フォルディングセクションはM/F個の前記巡回ブロックからなり、各前記コンステレーション語はF×N/M個の前記フォルディングセクションのうちのいずれか1つと関連付けられており、前記ビットパーミュテーションステップは、各前記コンステレーション語が、関連付けられている前記フォルディングセクション中のM/F個の異なる前記巡回ブロックのそれぞれのF個のビットからなる計M個のビットから構成され、各前記フォルディングセクションのすべてのビットが当該フォルディングセクションに関連付けられているQ/F個の前記コンステレーション語にのみにマッピングされるように、前記ビットパーミュテーション処理を行う。
【0226】
本発明の一態様である第1のビットインターリーバは、疑似巡回低密度パリティチェック符号を用いる通信システムにおけるビットインターリーバであって、前記ビットインターリーバは、それぞれがQ個のビットからなるN個の巡回ブロックで構成される前記疑似巡回低密度パリティチェック符号の符号語を受信し、前記符号語のビットに対して当該符号語のビットの並び順を換えるビットパーミュテーション処理を施し、前記ビットパーミュテーション処理が施された符号語を、それぞれがM個のビットよりなり、それぞれが所定のコンステレーションの2
M個のコンステレーションポイントのいずれか1つを示す複
数のコンステレーション語に分割されるように出力するビットパーミュテーション部を備え、前記ビットパーミュテーション処理が施される前の前記符号語はF×N/M個のフォルディングセクションに分割され、Fは1より大きい整数であり、各前記フォルディングセクションはM/F個の前記巡回ブロックからなり、各前記コンステレーション語はF×N/M個の前記フォルディングセクションのうちのいずれか1つと関連付けられており、前記ビットパーミュテーション部は、各前記コンステレーション語が、関連付けられている前記フォルディングセクション中のM/F個の異なる前記巡回ブロックのそれぞれのF個のビットからなる計M個のビットから構成され、各前記フォルディングセクションのすべてのビットが当該フォルディングセクションに関連付けられているQ/F個の前記コンステレーション語にのみにマッピングされるように、前記ビットパーミュテーション処理を行う。
【0227】
これらによれば、高い並列性を持つビットインターリーブ処理の実施が可能になるのに加えて、回路面積および消費電力の削減が達成される。
【0228】
本発明の一態様である第2のビットインターリーブ方法は、第1のビットインターリーブ方法において、前記ビットパーミュテーションステップは、F×N/M個の前記フォルディングセクションを互いに独立に、各前記フォルディングセクションのビットに対して当該フォルディングセクションのビットの並び順を換えるフォルディングセクションパーミュテーション処理を施すフォルディングセクションパーミュテーションステップを有する。
【0229】
本発明の一態様である第2のビットインターリーバは、第1のビットインターリーバにおいて、前記ビットパーミュテーション部は、F×N/M個の前記フォルディングセクションを互いに独立に、各前記フォルディングセクションのビットに対して当該フォルディングセクションのビットの並び順を換えるフォルディングセクションパーミュテーション処理を施すフォルディングセクションパーミュテーション部を有する。
【0230】
これらによれば、複数のフォルディングセクションパーミュテーションの並列実行が可能になる。
【0231】
本発明の一態様である第3のビットインターリーブ方法は、第2のビットインターリーブ方法において、前記フォルディングセクションパーミュテーションステップは、前記巡回ブロックのQ個のビットが、当該巡回ブロックに対応する前記フォルディングセクションに関連付けられているQ/F個の前記コンステレーション語の同一のロバストレベルを有するビットにマッピングされるように、前記フォルディングセクションパーミュテーション処理を行う。
【0232】
本発明の一態様である第3のビットインターリーバは、第2のビットインターリーバにおいて、前記フォルディングセクションパーミュテーション部は、前記巡回ブロックのQ個のビットが、当該巡回ブロックに対応する前記フォルディングセクションに関連付けられているQ/F個の前記コンステレーション語の同一のロバストレベルを有するビットにマッピングされるように、前記フォルディングセクションパーミュテーション処理を行う。
【0233】
これらによれば、符号語の重要度が同じビットが、コンステレーション語のロバストレベルが同じビットにマッピングされ、重要度とロバストレベルの合致が得られる。例えば、符号語の最も重要度が高いビットがコンステレーション語の最もロバストレベルが高いビットにマッピングされるようにしてもよく、この場合、受信時に符号語の重要度が高いビットに対して高い信頼度が得られ、高い受信性能が得られる。
【0234】
本発明の一態様である第4のビットインターリーブ方法は、第1のビットインターリーブ方法において、Fは、前記コンステレーションの同一のロバストレベルを有するビットの数と等しい。
【0235】
本発明の一態様である第4のビットインターリーバは、第1のビットインターリーバにおいて、Fは、前記コンステレーションの同一のロバストレベルを有するビットの数と等しい。
【0236】
これらによれば、ハードウェア実装を効率的に実施できる。
【0237】
本発明の一態様である第5のビットインターリーブ方法は、第1のビットインターリーブ方法において、F=2であり、前記コンステレーションはQAMコンステレーションである。
【0238】
本発明の一態様である第5のビットインターリーバは、第1のビットインターリーバにおいて、F=2であり、前記コンステレーションはQAMコンステレーションである。
【0239】
これらによれば、ハードウェア実装を効率的に実施できる。
【0240】
本発明の一態様である第6のビットインターリーブ方法は、第2のビットインターリーブ方法において、前記フォルディングセクションパーミュテーションステップは、前記セクションのM/F×Q個のビットに対して当該M/F×Q個のビットの並び順を換えるカラム−ロウパーミュテーション処理を施すカラム−ロウパーミュテーションステップを有する。
【0241】
本発明の一態様である第7のビットインターリーブ方法は、第6のビットインターリーブ方法において、前記カラム−ロウパーミュテーション処理は、M/F×Q個のビットを
Q列M/F行の行列の行方向に書き込み、列方向にM×Q/F個のビットを読み出すことと等価な処理である。
【0242】
本発明の一態様である第6のビットインターリーバは、第2のビットインターリーバにおいて、前記フォルディングセクションパーミュテーション部は、前記セクションのM/F×Q個のビットに対して当該M/F×Q個のビットの並び順を換えるカラム−ロウパーミュテーション処理を施す。
【0243】
これらによると、フォルディングセクションパーミュテーションにカラム‐ロウパーミュテーションを用いることによって非常に効率的にフォルディングセクションパーミュテーションの実施が可能になる。
【0244】
本発明の一態様である第1のビットデインターリーブ方法は、疑似巡回低密度パリティチェック符号を用いる通信システムにおいてビットストリームをビットデインターリーブするビットデインターリーブ方法であって、N×Q個のビットからなるビット列を受信する受信ステップと、前記疑似巡回低密度パリティチェック符号の符号語を復元するために、受信した前記ビット列のビットに対して当該ビット列のビットの並び順を換える逆ビットパーミュテーション処理を施す逆ビットパーミュテーションステップと、を有し、前記逆ビットパーミュテーション処理は、第1のビットインターリーブ方法における前記ビットパーミュテーション処理で換えられた並び順を元に戻す処理である。
【0245】
本発明の一態様である第1のビットデインターリーバは、疑似巡回低密度パリティチェック符号を用いる通信システムにおいてビットストリームをビットデインターリーブするビットデインターリーバであって、N×Q個のビットからなるビット列を受信し、前記疑似巡回低密度パリティチェック符号の符号語を復元するために、受信した前記ビット列のビットに対して当該ビット列のビットの並び順を換える逆ビットパーミュテーション処理を施す逆ビットパーミュテーション部を備え、前記逆ビットパーミュテーション処理は、第1のビットインターリーバによって実施される前記ビットパーミュテーション処理で換えられた並び順を元に戻す処理である。
【0246】
本発明の一態様である第1のデコーダは、疑似巡回低密度パリティチェック符号を用いるビットインターリーブ符号化変調システム用のデコーダであって、
対応するビットが0であるか1であるかの確率を示すソフトビット列を生成するコンステレーションデマッパと、前記ソフトビット列をビットデインターリーブする第1のビットデインターリーバと、ビットデインターリーブされた前記ソフトビット列をデコードする低密度パリティチェックデコーダと、を備える。
【0247】
本発明の一態様である第2のデコーダは、第1のデコーダにおいて、前記低密度パリティチェックデコーダの出力から前記低密度パリティチェックデコーダの入力を減算する減算部と、前記減算部の減算結果を前記コンステレーションデマッパにフィードバックする第1のビットインターリーバと、をさらに備える。
【0248】
これらによれば、高い並列性を持つビットデインターリーブ処理の実施が可能になる。