以下、本技術の実施の形態について説明するが、その前に、LDPC符号について説明する。
<LDPC符号>
なお、LDPC符号は、線形符号であり、必ずしも2元である必要はないが、ここでは、2元であるものとして説明する。
LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とする。ここで、疎な行列とは、行列の要素の"1"の個数が非常に少ない行列(ほとんどの要素が0の行列)である。
図1は、LDPC符号の検査行列Hの例を示す図である。
図1の検査行列Hでは、各列の重み(列重み)("1"の数)(weight)が"3"であり、且つ、各行の重み(行重み)が"6"になっている。
LDPC符号による符号化(LDPC符号化)では、例えば、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを2元の情報ビットに対して乗算することで、符号語(LDPC符号)が生成される。
具体的には、LDPC符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、K×N行列である場合には、符号化装置は、生成行列Gに対してKビットからなる情報ビットのビット列(ベクトルu)を乗算し、Nビットからなる符号語c(=uG)を生成する。この符号化装置によって生成された符号語(LDPC符号)は、所定の通信路を介して受信側において受信される。
LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも呼ばれる))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。
図2は、LDPC符号の復号の手順を示すフローチャートである。
なお、以下、適宜、受信側で受信したLDPC符号(1符号語)のi番目の符号ビットの、値の"0"らしさを対数尤度比(log likelihood ratio)で表現した実数値(受信LLR)を、受信値u0iともいう。また、チェックノードから出力されるメッセージをujとし、バリアブルノードから出力されるメッセージをviとする。
まず、LDPC符号の復号においては、図2に示すように、ステップS11において、LDPC符号が受信され、メッセージ(チェックノードメッセージ)ujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化され、ステップS12に進む。ステップS12において、LDPC符号を受信して得られる受信値u0iに基づいて、式(1)に示す演算(バリアブルノード演算)を行うことによってメッセージ(バリアブルノードメッセージ)viが求められ、さらに、このメッセージviに基づいて、式(2)に示す演算(チェックノード演算)を行うことによってメッセージujが求められる。
ここで、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列Hの縦方向(列)と横方向(行)の"1"の個数を示す任意に選択可能とされるパラメータである。例えば、図1に示したような列重みが3で、行重みが6の検査行列Hに対するLDPC符号((3,6)LDPC符号)の場合には、dv=3,dc=6となる。
なお、式(1)のバリアブルノード演算、及び(2)のチェックノード演算においては、それぞれ、メッセージを出力しようとする枝(edge)(バリアブルノードとチェックノードとを結ぶ線)から入力されたメッセージを、演算の対象としないことから、演算の範囲が、1ないしdv-1又は1ないしdc-1となっている。また、式(2)のチェックノード演算は、実際には、2入力v1,v2に対する1出力で定義される式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行われる。
ステップS12では、さらに、変数kが"1"だけインクリメントされ、ステップS13に進む。ステップS13では、変数kが所定の繰り返し復号回数Cよりも大きいか否かが判定される。ステップS13において、変数kがCよりも大きくないと判定された場合、ステップS12に戻り、以下、同様の処理が繰り返される。
また、ステップS13において、変数kがCよりも大きいと判定された場合、ステップS14に進み、式(5)に示す演算を行うことによって最終的に出力する復号結果としてのメッセージviが求められて出力され、LDPC符号の復号処理が終了する。
ここで、式(5)の演算は、式(1)のバリアブルノード演算とは異なり、バリアブルノードに接続している全ての枝からのメッセージujを用いて行われる。
図3は、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列Hの例を示す図である。
図3の検査行列Hでは、図1と同様に、列の重みが3に、行の重みが6に、それぞれなっている。
図4は、図3の検査行列Hのタナーグラフを示す図である。
ここで、図4において、プラス"+"で表わされるのが、チェックノードであり、イコール"="で表わされるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列Hの行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列の要素の"1"に相当する。
すなわち、検査行列の第j行第i列の要素が1である場合には、図4において、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表す。
LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)では、バリアブルノード演算とチェックノード演算とが繰り返し行われる。
図5は、バリアブルノードで行われるバリアブルノード演算を示す図である。
バリアブルノードでは、計算しようとしている枝に対応するメッセージviは、バリアブルノードに繋がっている残りの枝からのメッセージu1およびu2と、受信値u0iを用いた式(1)のバリアブルノード演算により求められる。他の枝に対応するメッセージも同様に求められる。
図6は、チェックノードで行われるチェックノード演算を示す図である。
ここで、式(2)のチェックノード演算は、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)に書き直すことができる。但し、sign(x)は、x≧0のとき1であり、x<0のとき-1である。
x≧0において、関数φ(x)を、式φ(x)=ln(tanh(x/2))と定義すると、式φ-1(x)=2tanh-1(e-x)が成り立つから、式(6)は、式(7)に変形することができる。
チェックノードでは、式(2)のチェックノード演算が、式(7)に従って行われる。
すなわち、チェックノードでは、図6のように、計算しようとしている枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いた式(7)のチェックノード演算によって求められる。他の枝に対応するメッセージも同様に求められる。
なお、式(7)の関数φ(x)は、式φ(x)=ln((ex+1)/(ex-1))で表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)およびφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者共に同一のLUTとなる。
<本技術を適用した伝送システムの構成例>
図7は、本技術を適用した伝送システム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは、問わない)の一実施の形態の構成例を示す図である。
図7において、伝送システムは、送信装置11と受信装置12とから構成される。
送信装置11は、例えば、テレビジョン放送の番組等の送信(放送)(伝送)を行う。すなわち、送信装置11は、例えば、番組としての画像データや音声データ等の、送信の対象である対象データをLDPC符号に符号化し、例えば、衛星回線や、地上波、ケーブル(有線回線)等の通信路13を介して送信する。
受信装置12は、送信装置11から通信路13を介して送信されてくるLDPC符号を受信し、対象データに復号して出力する。
ここで、図7の伝送システムで使用されるLDPC符号は、AWGN(Additive White Gaussian Noise)通信路で極めて高い能力を発揮することが知られている。
一方、通信路13では、バースト(burst)誤りやイレージャ(erasure)を発生することがある。例えば、特に、通信路13が地上波である場合、OFDM(Orthogonal Frequency Division Multiplexing)システムでは、D/U(Desired to Undesired Ratio)が0dB(Undesired=echoのパワーがDesired=メインパスのパワーと等しい)のマルチパス環境において、エコー(echo)(メインパス以外のパス)の遅延(delay)に応じて、特定のシンボルのパワーが0になってしまう(erasure)ことがある。
また、フラッタ(flutter)(遅延が0でドップラ(dopper)周波数の掛かったechoが加算される通信路)でも、D/Uが0dBである場合には、ドップラ周波数によって、特定の時刻のOFDMのシンボル全体のパワーが0になる(erasure)場合が生じる。
さらに、受信装置12側の、送信装置11からの信号を受信するアンテナ等の受信部(図示せず)から受信装置12までの配線の状況や、受信装置12の電源の不安定性により、バースト誤りが発生することがある。
一方、LDPC符号の復号においては、検査行列Hの列、ひいては、LDPC符号の符号ビットに対応するバリアブルノードにおいて、前述の図5に示したように、LDPC符号の符号ビット(の受信値u0i)の加算を伴う式(1)のバリアブルノード演算が行われるため、そのバリアブルノード演算に用いられる符号ビットにエラーが生じると、求められるメッセージの精度が低下する。
そして、LDPC符号の復号では、チェックノードにおいて、そのチェックノードに繋がっているバリアブルノードで求められるメッセージを用いて、式(7)のチェックノード演算が行われるため、繋がっている複数のバリアブルノード(に対応するLDPC符号の符号ビット)が同時にエラー(イレージャを含む)となるチェックノードの数が多くなると、復号の性能が劣化する。
すなわち、例えば、チェックノードは、そのチェックノードに繋がっているバリアブルノードの2個以上が同時にイレージャになると、全バリアブルノードに、値が0である確率と1である確率とが等確率のメッセージを戻す。この場合、等確率のメッセージを戻すチェックノードは、1回の復号処理(1セットのバリアブルノード演算及びチェックノード演算)に寄与しないこととなり、その結果、復号処理の繰り返し回数を多く必要とすることになって、復号の性能が劣化し、さらに、LDPC符号の復号を行う受信装置12の消費電力が増大する。
そこで、図7の伝送システムでは、AWGN通信路(AWGNチャネル)での性能を維持しつつ、バースト誤りやイレージャへの耐性を向上させることが可能になっている。
<送信装置11の構成例>
図8は、図7の送信装置11の構成例を示すブロック図である。
送信装置11では、対象データとしての1以上のインプットストリーム(Input Streams)が、モードアダプテーション/マルチプレクサ(Mode Adaptation/Multiplexer)111に供給される。
モードアダプテーション/マルチプレクサ111は、モード選択、及び、そこに供給される1以上のインプットストリームの多重化等の処理を必要に応じて行い、その結果得られるデータを、パダー(padder)112に供給する。
パダー112は、モードアダプテーション/マルチプレクサ111からのデータに対して、必要なゼロ詰め(Nullの挿入)を行い、その結果得られるデータを、BBスクランブラ(BB Scrambler)113に供給する。
BBスクランブラ113は、パダー112からのデータに、BBスクランブル(Base-Band Scrambling)を施し、その結果得られるデータを、BCHエンコーダ(BCH encoder)114に供給する。
BCHエンコーダ114は、BBスクランブラ113からのデータをBCH符号化し、その結果得られるデータを、LDPC符号化の対象であるLDPC対象データとして、LDPCエンコーダ(LDPC encoder)115に供給する。
LDPCエンコーダ115は、BCHエンコーダ114からのLDPC対象データについて、LDPC符号のパリティビットに対応する部分であるパリティ行列が階段構造になっている検査行列に従ったLDPC符号化を行い、LDPC対象データを情報ビットとするLDPC符号を出力する。
すなわち、LDPCエンコーダ115は、LDPC対象データを、例えば、DVB-S.2や、DVB-T.2,DVB-C.2等の所定の規格に規定されている(検査行列に対応する)LDPC符号や、あらかじめ定められた(検査行列に対応する)LDPC符号等に符号化するLDPC符号化を行い、その結果得られるLDPC符号を出力する。
ここで、DVB-S.2や、DVB-T.2,DVB-C.2の規格に規定されているLDPC符号は、IRA(Irregular Repeat Accumulate)符号であり、そのLDPC符号の検査行列におけるパリティ行列は、階段構造になっている。パリティ行列、及び、階段構造については、後述する。また、IRA符号については、例えば、"Irregular Repeat-Accumulate Codes," H. Jin, A. Khandekar, and R. J. McEliece, in Proceedings of 2nd International Symposium on Turbo codes and Related Topics, pp. 1-8, Sept. 2000に記載されている。
LDPCエンコーダ115が出力するLDPC符号は、ビットインターリーバ(Bit Interleaver)116に供給される。
ビットインターリーバ116は、LDPCエンコーダ115からのLDPC符号について、後述するビットインターリーブを行い、そのビットインターリーブ後のLDPC符号を、マッパ(Mapper)117に供給する。
マッパ117は、ビットインターリーバ116からのLDPC符号を、そのLDPC符号の1ビット以上の符号ビットの単位(シンボル単位)で、直交変調の1つのシンボルを表す信号点にマッピングして直交変調(多値変調)を行う。
すなわち、マッパ117は、ビットインターリーバ116からのLDPC符号を、搬送波と同相のI成分を表すI軸と、搬送波と直交するQ成分を表すQ軸とで規定されるIQ平面(IQコンスタレーション)上の、LDPC符号の直交変調を行う変調方式で定める信号点にマッピングして直交変調を行う。
ここで、マッパ117で行われる直交変調の変調方式としては、例えば、DVB-S.2や、DVB-T.2、DVB-C.2の規格等に規定されている変調方式、その他の変調方式、すなわち、例えば、BPSK(Binary Phase Shift Keying)や、QPSK(Quadrature Phase Shift Keying),8PSK(Phase-Shift Keying),16APSK(Amplitude Phase-Shift Keying),32APSK,16QAM(Quadrature Amplitude Modulation),64QAM,256QAM,1024QAM,4096QAM,4PAM(Pulse Amplitude Modulation)等がある。マッパ117において、いずれの変調方式による直交変調が行われるかは、例えば、送信装置11のオペレータの操作等に従って、あらかじめ設定される。
マッパ117での処理により得られるデータ(シンボルを信号点にマッピングしたマッピング結果)は、時間インターリーバ(Time Interleaver)118に供給される。
時間インターリーバ118は、マッパ117からのデータについて、シンボル単位での時間インターリーブ(時間方向のインターリーブ)を行い、その結果得られるデータを、SISO/MISOエンコーダ(SISO/MISO(Single Input Single Output/Multiple Input Single Output) encoder)119に供給する。
SISO/MISOエンコーダ119は、時間インターリーバ118からのデータに、時空間符号化を施し、周波数インターリーバ(Frequency Interleaver)120に供給する。
周波数インターリーバ120は、SISO/MISOエンコーダ119からのデータについて、シンボル単位での周波数インターリーブ(周波数方向のインターリーブ)を行い、フレームビルダ/リソースアロケーション部(Frame Builder & Resource Allocation)131に供給する。
一方、BCHエンコーダ121には、例えば、BBシグナリング(Base Band Signalling)(BB Header)等の伝送制御用の制御データ(signalling)が供給される。
BCHエンコーダ121は、そこに供給される制御データを、BCHエンコーダ114と同様にBCH符号化し、その結果得られるデータを、LDPCエンコーダ122に供給する。
LDPCエンコーダ122は、BCHエンコーダ121からのデータを、LDPC対象データとして、LDPCエンコーダ115と同様にLDPC符号化し、その結果得られるLDPC符号を、マッパ123に供給する。
マッパ123は、マッパ117と同様に、LDPCエンコーダ122からのLDPC符号を、そのLDPC符号の1ビット以上の符号ビットの単位(シンボル単位)で、直交変調の1つのシンボルを表す信号点にマッピングして直交変調を行い、その結果得られるデータを、周波数インターリーバ124に供給する。
周波数インターリーバ124は、周波数インターリーバ120と同様に、マッパ123からのデータについて、シンボル単位での周波数インターリーブを行い、フレームビルダ/リソースアロケーション部131に供給する。
フレームビルダ/リソースアロケーション部131は、周波数インターリーバ120、及び、124からのデータ(シンボル)の必要な位置に、パイロット(Pilot)のシンボルを挿入し、その結果られるデータ(シンボル)から、所定の数のシンボルで構成されるフレーム(例えば、PL(Physical Layer)フレームや、T2フレーム、C2フレーム等)を構成して、OFDM生成部(OFDM generation)132に供給する。
OFDM生成部132は、フレームビルダ/リソースアロケーション部131からのフレームから、そのフレームに対応するOFDM信号を生成し、通信路13(図7)を介して送信する。
なお、送信装置11は、例えば、時間インターリーバ118、SISO/MISOエンコーダ119、周波数インターリーバ120、及び、周波数インターリーバ124等の、図8に図示したブロックの一部を設けずに構成することができる。
図9は、図8のビットインターリーバ116の構成例を示している。
ビットインターリーバ116は、データをインターリーブする機能を有し、パリティインターリーバ(parity interleaver)23、カラムツイストインターリーバ(column twist interleaver)24、及びデマルチプレクサ(DEMUX)25から構成される。なお、ビットインターリーバ116は、パリティインターリーバ23、及び、カラムツイストインターリーバ24の一方、又は、両方を設けずに構成することができる。
パリティインターリーバ23は、LDPCエンコーダ115からのLDPC符号のパリティビットを、他のパリティビットの位置にインターリーブするパリティインターリーブを行い、そのパリティインターリーブ後のLDPC符号を、カラムツイストインターリーバ24に供給する。
カラムツイストインターリーバ24は、パリティインターリーバ23からのLDPC符号について、カラムツイストインターリーブを行い、そのカラムツイストインターリーブ後のLDPC符号を、デマルチプレクサ25に供給する。
すなわち、LDPC符号は、図8のマッパ117において、そのLDPC符号の1ビット以上の符号ビットを、直交変調の1つのシンボルを表す信号点にマッピングして送信される。
カラムツイストインターリーバ24では、LDPCエンコーダ115で用いられる検査行列の任意の1行にある1に対応するLDPC符号の複数の符号ビットが、1つのシンボルに含まれないように、パリティインターリーバ23からのLDPC符号の符号ビットを並び替える並び替え処理として、例えば、後述するようなカラムツイストインターリーブが行われる。
デマルチプレクサ25は、カラムツイストインターリーバ24からのLDPC符号について、シンボルとなるLDPC符号の2以上の符号ビットの位置を入れ替える入れ替え処理を行うことで、AWGN等に対する耐性を強化したLDPC符号を得る。そして、デマルチプレクサ25は、入れ替え処理によって得られる、LDPC符号の2以上の符号ビットを、シンボルとして、マッパ117(図8)に供給する。
図10は、図8のLDPCエンコーダ115でLDPC符号化に用いられる検査行列Hを示している。
検査行列Hは、LDGM(Low-Density Generation Matrix)構造になっており、LDPC符号の符号ビットのうちの、情報ビットに対応する部分の情報行列HAと、パリティビットに対応するパリティ行列HTとによって、式H=[HA|HT](情報行列HAの要素を左側の要素とし、パリティ行列HTの要素を右側の要素とする行列)で表すことができる。
ここで、1個のLDPC符号(1符号語)の符号ビットのうちの情報ビットのビット数と、パリティビットのビット数を、それぞれ、情報長Kと、パリティ長Mというとともに、1個のLDPC符号の符号ビットのビット数を、符号長N(=K+M)という。
ある符号長NのLDPC符号についての情報長Kとパリティ長Mは、符号化率によって決まる。また、検査行列Hは、行×列がM×Nの行列となる。そして、情報行列HAは、M×Kの行列となり、パリティ行列HTは、M×Mの行列となる。
図11は、DVB-S.2,DVB-T.2、及びDVB-C.2の規格に規定されているLDPC符号の検査行列Hのパリティ行列HTを示している。
DVB-T.2等の規格に規定されているLDPC符号の検査行列Hのパリティ行列HTは、図11に示すように、1の要素が、いわば階段状に並ぶ階段構造の行列(lower bidiagonal matrix)になっている。パリティ行列HTの行重みは、1行目については1で、残りの全ての行については2になっている。また、列重みは、最後の1列については1で、残りの全ての列で2になっている。
以上のように、パリティ行列HTが階段構造になっている検査行列HのLDPC符号は、その検査行列Hを用いて、容易に生成することができる。
すなわち、LDPC符号(1符号語)を、行ベクトルcで表すとともに、その行ベクトルを転置して得られる列ベクトルを、cTと表す。また、LDPC符号である行ベクトルcのうちの、情報ビットの部分を、行ベクトルAで表すとともに、パリティビットの部分を、行ベクトルTで表すこととする。
この場合、行ベクトルcは、情報ビットとしての行ベクトルAと、パリティビットとしての行ベクトルTとによって、式c =[A|T](行ベクトルAの要素を左側の要素とし、行ベクトルTの要素を右側の要素とする行ベクトル)で表すことができる。
検査行列Hと、LDPC符号としての行ベクトルc=[A|T]とは、式HcT=0を満たす必要があり、かかる式HcT=0を満たす行ベクトルc=[A|T]を構成するパリティビットとしての行ベクトルTは、検査行列H=[HA|HT]のパリティ行列HTが、図11に示した階段構造になっている場合には、式HcT=0における列ベクトルHcTの1行目の要素から順に、各行の要素を0にしていくようにすることで、逐次的(順番)に求めることができる。
図12は、DVB-T.2等の規格に規定されているLDPC符号の検査行列Hを説明する図である。
DVB-T.2等の規格に規定されているLDPC符号の検査行列Hの1列目からのKX列については、列重みがXに、その後のK3列については、列重みが3に、その後のM-1列については、列重みが2に、最後の1列については、列重みが1に、それぞれなっている。
ここで、KX+K3+M-1+1は、符号長Nに等しい。
図13は、DVB-T.2等の規格に規定されているLDPC符号の各符号化率rについての、列数KX,K3、及びM、並びに、列重みXを示す図である。
DVB-T.2等の規格では、64800ビットと16200ビットの符号長NのLDPC符号が規定されている。
そして、符号長Nが64800ビットのLDPC符号については、11個の符号化率(nominal rate)1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6,8/9、及び9/10が規定されており、符号長Nが16200ビットのLDPC符号については、10個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6、及び8/9が規定されている。
ここで、以下、64800ビットの符号長Nを、64kビットともいい、16200ビットの符号長Nを、16kビットともいう。
LDPC符号については、検査行列Hの列重みが大の列に対応する符号ビットほど、エラーレートが低い傾向がある。
図12及び図13に示した、DVB-T.2等の規格に規定されている検査行列Hでは、先頭側(左側)の列ほど、列重みが大の傾向にあり、したがって、その検査行列Hに対応するLDPC符号については、先頭の符号ビットほど、エラーに強く(エラーに対する耐性があり)、終わりの符号ビットほど、エラーに弱い傾向がある。
図14は、図8のマッパ117で16QAMが行われる場合の、16個のシンボル(に対応する信号点)のIQ平面上の配置の例を示している。
すなわち、図14のAは、DVB-T.2の16QAMのシンボル(に対応する信号点)を示している。
16QAMでは、1シンボルは、4ビットで表され、16(=24)個のシンボルが存在する。そして、16個のシンボルは、IQ平面の原点を中心として、I方向×Q方向が4×4の正方形状となるように配置されている。
いま、1シンボルが表すビット列の、最上位ビットからi+1ビット目のビットを、ビットyiと表すこととすると、16QAMの1シンボルが表す4ビットは、最上位ビットから順に、ビットy0,y1,y2,y3と表すことができる。変調方式が16QAMの場合には、LDPC符号の符号ビットの4ビットが、4ビットy0ないしy3のシンボル(シンボル値)に(シンボル化)される。
図14のBは、16QAMのシンボルが表す4ビット(以下、シンボルビットともいう)y0ないしy3それぞれについてのビット境界を示している。
ここで、シンボルビットyi(図14では、i=0,1,2,3)についてのビット境界とは、そのシンボルビットyiが0になっているシンボルと、1になっているシンボルとの境界を意味する。
図14のBに示すように、16QAMのシンボルが表す4シンボルビットy0ないしy3のうちの最上位のシンボルビットy0については、IQ平面のQ軸の1箇所だけがビット境界となり、2番目(最上位ビットから2番目)のシンボルビットy1については、IQ平面のI軸の1箇所だけがビット境界となる。
また、3番目のシンボルビットy2については、4×4個のシンボルのうちの、左から1列目と2列目との間、及び3列目と4列目との間の2箇所が、ビット境界となる。
さらに、4番目のシンボルビットy3については、4×4個のシンボルのうちの、上から1行目と2行目との間、及び3行目と4行目との間の2箇所が、ビット境界となる。
シンボルが表すシンボルビットyiは、ビット境界から離れているシンボルが多いほど、誤りにくく(エラー確率が低く)、ビット境界に近いシンボルが多いほど、誤りやすい(エラー確率が高い)。
いま、誤りにくい(エラーに強い)ビットを、「強いビット」というとともに、誤りやすい(エラーに弱い)ビットを、「弱いビット」ということとすると、16QAMのシンボルの4シンボルビットy0ないしy3については、最上位のシンボルビットy0、及び2番目のシンボルビットy1が強いビットになっており、3番目のシンボルビットy2、及び4番目のシンボルビットy3が弱いビットになっている。
図15ないし図17は、図8のマッパ117で64QAMが行われる場合の、64個のシンボル(に対応する信号点)のIQ平面上の配置の例、すなわち、DVB-T.2の16QAMのシンボルを示している。
64QAMでは、1シンボルは、6ビットを表し、64(=26)個のシンボルが存在する。そして、64個のシンボルは、IQ平面の原点を中心として、I方向×Q方向が8×8の正方形状となるように配置されている。
64QAMの1シンボルのシンボルビットは、最上位ビットから順に、ビットy0,y1,y2,y3,y4,y5と表すことができる。変調方式が64QAMの場合には、LDPC符号の符号ビットの6ビットが、6ビットのシンボルビットy0ないしy5のシンボルにされる。
ここで、図15は、64QAMのシンボルのシンボルビットy0ないしy5のうちの、最上位のシンボルビットy0と、2番目のシンボルビットy1それぞれについてのビット境界を、図16は、3番目のシンボルビットy2と、4番目のシンボルビットy3それぞれについてのビット境界を、図17は、5番目のシンボルビットy4と、6番目のシンボルビットy5それぞれについてのビット境界を、それぞれ示している。
図15に示すように、最上位のシンボルビットy0と、2番目のシンボルビットy1それぞれについてのビット境界は、1箇所になっている。また、図16に示すように、3番目のシンボルビットy2と、4番目のシンボルビットy3それぞれについてのビット境界は、2箇所になっており、図17に示すように、5番目のシンボルビットy4と、6番目のシンボルビットy5それぞれについてのビット境界は、4箇所になっている。
したがって、64QAMのシンボルのシンボルビットy0ないしy5については、最上位シンボルビットy0、及び2番目のシンボルビットy1が、強いビットになっており、3番目のシンボルビットy2、及び4番目のシンボルビットy3が、その次に強いビットになっている。そして、5番目のシンボルビットy4と、6番目のシンボルビットy5は、弱いビットになっている。
図14、さらには、図15ないし図17から、直交変調のシンボルのシンボルビットについては、上位ビットが強いビットとなり、下位ビットが弱いビットになる傾向があることが分かる。
図18は、通信路13(図7)として衛星回線を採用し、図8のマッパ117でQPSKが行われる場合の、4個のシンボル(に対応する信号点)のIQ平面上の配置の例、すなわち、例えば、DVB-S.2のQPSKの信号点配置を示す図である。
DVB-S.2のQPSKでは、シンボルは、IQ平面上の原点を中心とする半径ρが1の円の円周上の4個の信号点のいずれかにマッピングされる。
図19は、通信路13(図7)として衛星回線を採用し、図8のマッパ117で8PSKが行われる場合の、8個のシンボルのIQ平面上の配置の例、すなわち、例えば、DVB-S.2の8PSKの信号点配置を示す図である。
DVB-S.2の8PSKでは、シンボルは、IQ平面上の原点を中心とする半径ρが1の円の円周上の8個の信号点のいずれかにマッピングされる。
図20は、通信路13(図7)として衛星回線を採用し、図8のマッパ117で16APSKが行われる場合の、16個のシンボルのIQ平面上の配置の例、すなわち、例えば、DVB-S.2の16APSKの信号点配置を示す図である。
図20Aは、DVB-S.2の16APSKのコンスタレーションを示している。
DVB-S.2の16APSKでは、シンボルは、IQ平面上の原点を中心とする半径がR1の円の円周上の4個の信号点、及び、半径がR2(>R1)の円の円周上の12個の信号点の、合計で16個の信号点のいずれかにマッピングされる。
図20Bは、DVB-S.2の16APSKのコンスタレーションにおける半径R2とR1との比γ=R2/R1を示している。
DVB-S.2の16APSKのコンスタレーションにおいて、半径R2とR1との比γは、符号化率ごとに異なる。
図21は、通信路13(図7)として衛星回線を採用し、図8のマッパ117で32APSKが行われる場合の、32個のシンボルのIQ平面上の配置の例、すなわち、例えば、DVB-S.2の32APSKの信号点配置を示す図である。
図21Aは、DVB-S.2の32APSKのコンスタレーションを示している。
DVB-S.2の32APSKでは、シンボルは、IQ平面上の原点を中心とする半径がR1の円の円周上の4個の信号点、半径がR2(>R1)の円の円周上の12個の信号点、及び、半径がR3(>R2)の円の円周上の16個の信号点の、合計で32個の信号点のいずれかにマッピングされる。
図21Bは、DVB-S.2の32APSKのコンスタレーションにおける半径R2とR1との比γ1=R2/R1、及び、半径R3とR1との比γ2=R3/R1を示している。
DVB-S.2の32APSKのコンスタレーションにおいて、半径R2とR1との比γ1、及び、半径R3とR1との比γ2は、符号化率ごとに異なる。
図18ないし図21にコンスタレーションを示したDVB-S.2の各直交変調(QPSK,8PSK,16APSK,32APSK)のシンボルのシンボルビットについても、図14ないし図17の場合と同様に、強いビットと弱いビットとがある。
ここで、図12及び図13で説明したように、LDPCエンコーダ115(図8)が出力するLDPC符号については、エラーに強い符号ビットと、エラーに弱い符号ビットがある。
また、図14ないし図21で説明したように、マッパ117で行われる直交変調のシンボルのシンボルビットについては、強いビットと弱いビットがある。
したがって、LDPC符号の、エラーに弱い符号ビットを、直交変調のシンボルの、弱いシンボルビットに割り当てると、全体として、エラーに対する耐性が低下することがある。
そこで、LDPC符号の、エラーに弱い符号ビットを、直交変調のシンボルの、強いビット(シンボルビット)に割り当てる傾向で、LDPC符号の符号ビットをインターリーブするインターリーバが提案されている。
図9のデマルチプレクサ25は、そのインターリーバの処理を行うことができる。
図22は、図9のデマルチプレクサ25の処理を説明する図である。
すなわち、図22のAは、デマルチプレクサ25の機能的な構成例を示している。
デマルチプレクサ25は、メモリ31及び入れ替え部32から構成される。
メモリ31には、LDPCエンコーダ115からのLDPC符号が供給される。
メモリ31は、ロウ(row)(横)方向にmbビットを記憶するとともに、カラム(column)(縦)方向にN/(mb)ビットを記憶する記憶容量を有し、そこに供給されるLDPC符号の符号ビットを、カラム方向に書き込み、ロウ方向に読み出して、入れ替え部32に供給する。
ここで、N(=情報長K+パリティ長M)は、上述したように、LDPC符号の符号長を表す。
また、mは、1シンボルとなるLDPC符号の符号ビットのビット数を表し、bは所定の正の整数で、mを整数倍するのに用いられる倍数である。デマルチプレクサ25は、LDPC符号の符号ビットを所定のビット数mの単位でシンボルとする(シンボル化する)が、倍数bは、デマルチプレクサ25が、いわば一度のシンボル化によって得るシンボルの個数を表す。
図22のAは、変調方式がシンボルを64個の信号点のいずれかにマッピングする64QAM等である場合のデマルチプレクサ25の構成例を示しており、したがって、1シンボルとなるLDPC符号の符号ビットのビット数mは、6ビットである。
また、図22のAでは、倍数bは1になっており、したがって、メモリ31は、カラム方向×ロウ方向がN/(6×1)×(6×1)ビットの記憶容量を有する。
ここで、メモリ31の、ロウ方向が1ビットの、カラム方向に延びる記憶領域を、以下、適宜、カラムという。図22のAでは、メモリ31は、6(=6×1)個のカラムから構成される。
デマルチプレクサ25では、LDPC符号の符号ビットを、メモリ31を構成するカラムの上から下方向(カラム方向)に書き込むことが、左から右方向のカラムに向かって行われる。
そして、符号ビットの書き込みが、最も右のカラムの一番下まで終了すると、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、6ビット(mbビット)単位で、符号ビットが読み出され、入れ替え部32に供給される。
入れ替え部32は、メモリ31からの6ビットの符号ビットの位置を入れ替える入れ替え処理を行い、その結果得られる6ビットを、64QAMの1シンボルを表す6シンボルビットy0,y1,y2,y3,y4,y5として出力する。
すなわち、メモリ31からは、ロウ方向に、mbビット(ここでは、6ビット)の符号ビットが読み出されるが、その、メモリ31から読み出されるmbビットの符号ビットの、最上位ビットからiビット目を(i=0,1,・・・,mb-1)、ビットbiと表すこととすると、メモリ31からロウ方向に読み出される6ビットの符号ビットは、最上位ビットから順に、ビットb0,b1,b2,b3,b4,b5と表すことができる。
図12及び図13で説明した列重みの関係で、ビットb0の方向にある符号ビットは、エラーに強い符号ビットになっており、ビットb5の方向にある符号ビットは、エラーに弱い符号ビットになっている。
入れ替え部32では、メモリ31からの6ビットの符号ビットb0ないしb5のうちの、エラーに弱い符号ビットが、64QAMの1シンボルのシンボルビットy0ないしy5のうちの、強いビットに割り当てられるように、メモリ31からの6ビットの符号ビットb0ないしb5の位置を入れ替える入れ替え処理を行うことができる。
ここで、メモリ31からの6ビットの符号ビットb0ないしb5をどのように入れ替えて、64QAMの1シンボルを表す6シンボルビットy0ないしy5のそれぞれに割り当てるかの入れ替え方式としては、各社から、様々な方式が提案されている。
図22のBは、第1の入れ替え方式を、図22のCは、第2の入れ替え方式を、図22のDは、第3の入れ替え方式を、それぞれ示している。
図22のBないし図22のDにおいて(後述する図23においても同様)、ビットbiとyjとを結ぶ線分は、符号ビットbiを、シンボルのシンボルビットyjに割り当てる(シンボルビットyjの位置に入れ替える)ことを意味する。
図22のBの第1の入れ替え方式としては、3種類の入れ替え方のうちのいずれか1つを採用することが提案されており、図22のCの第2の入れ替え方式としては、2種類の入れ替え方のうちのいずれか1つを採用することが提案されている。
図22のDの第3の入れ替え方式としては、6種類の入れ替え方を順番に選択して用いることが提案されている。
図23は、変調方式がシンボルを64個の信号点のいずれかにマッピングする64QAM等であり(したがって、1シンボルにマッピングされるLDPC符号の符号ビットのビット数mは、図22と同様に6ビットである)、かつ、倍数bが2の場合のデマルチプレクサ25の構成例と、第4の入れ替え方式を示している。
倍数bが2である場合、メモリ31は、カラム方向×ロウ方向がN/(6×2)×(6×2)ビットの記憶容量を有し、12(=6×2)個のカラムから構成される。
図23のAは、メモリ31へのLDPC符号の書き込み順を示している。
デマルチプレクサ25では、図22で説明したように、LDPC符号の符号ビットを、メモリ31を構成するカラムの上から下方向(カラム方向)に書き込むことが、左から右方向のカラムに向かって行われる。
そして、符号ビットの書き込みが、最も右のカラムの一番下まで終了すると(1符号語の書き込みが終了すると)、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、12ビット(mbビット)単位で、符号ビットが読み出され、入れ替え部32に供給される。
入れ替え部32は、メモリ31からの12ビットの符号ビットの位置を、第4の入れ替え方式で入れ替える入れ替え処理を行い、その結果得られる12ビットを、64QAMの2シンボル(b個のシンボル)を表す12ビット、つまり、64QAMの1シンボルを表す6シンボルビットy0,y1,y2,y3,y4,y5と、次の1シンボルを表す6シンボルビットy0,y1,y2,y3,y4,y5として出力する。
ここで、図23のBは、図23のAの入れ替え部32による入れ替え処理の第4の入れ替え方式を示している。
なお、倍数bが2である場合(3以上である場合も同様)、入れ替え処理では、mbビットの符号ビットが、連続するb個のシンボルのmbビットのシンボルビットに割り当てられる。図23を含め、以下では、説明の便宜上、連続するb個のシンボルのmbビットのシンボルビットの最上位ビットからi+1ビット目を、ビット(シンボルビット)yiと表す。
どのような符号ビットの入れ替え方が適切であるか、つまり、AWGN通信路等でのエラーレートをより向上させるかは、LDPC符号の符号化率や符号長、変調方式等によって異なる。
<パリティインターリーブ>
次に、図24ないし図26を参照して、図9のパリティインターリーバ23によるパリティインターリーブについて説明する。
図24は、LDPC符号の検査行列のタナーグラフ(の一部)を示している。
チェックノードは、図24に示すように、そのチェックノードに繋がっているバリアブルノード(に対応する符号ビット)の2個等の複数が同時にイレージャ等のエラーになると、そのチェックノードに繋がっている全バリアブルノードに、値が0である確率と1である確率とが等確率のメッセージを戻す。このため、同一のチェックノードに繋がっている複数のバリアブルノードが同時にイレージャ等になると、復号の性能が劣化する。
ところで、図8のLDPCエンコーダ115が出力する、DVB-S.2等の規格に規定されているLDPC符号は、IRA符号であり、検査行列Hのパリティ行列HTは、図11に示したように、階段構造になっている。
図25は、階段構造になっているパリティ行列HTと、そのパリティ行列HTに対応するタナーグラフを示している。
すなわち、図25のAは、階段構造になっているパリティ行列HTを示しており、図25のBは、図25のAのパリティ行列HTに対応するタナーグラフを示している。
階段構造になっているパリティ行列HTでは、各行において、1の要素が隣接する(1行目を除く)。このため、パリティ行列HTのタナーグラフにおいて、パリティ行列HTの値が1になっている隣接する2つの要素の列に対応する、隣接する2つのバリアブルノードは、同一のチェックノードに繋がっている。
したがって、バースト誤りやイレージャ等によって、上述の隣接する2つのバリアブルノードに対応するパリティビットが同時にエラーとなると、そのエラーとなった2つのパリティビットに対応する2つのバリアブルノード(パリティビットを用いてメッセージを求めるバリアブルノード)に繋がっているチェックノードは、値が0である確率と1である確率とが等確率のメッセージを、そのチェックノードに繋がっているバリアブルノードに戻すため、復号の性能が劣化する。そして、バースト長(連続してエラーとなるパリティビットのビット数)が大になると、等確率のメッセージを戻すチェックノードが増加し、復号の性能は、さらに劣化する。
そこで、パリティインターリーバ23(図9)は、上述した復号の性能の劣化を防止するため、LDPCエンコーダ115からの、LDPC符号のパリティビットを、他のパリティビットの位置にインターリーブするパリティインターリーブを行う。
図26は、図9のパリティインターリーバ23が行うパリティインターリーブ後のLDPC符号に対応する検査行列Hのパリティ行列HTを示している。
ここで、LDPCエンコーダ115が出力する、DVB-S.2等の規格に規定されているLDPC符号に対応する検査行列Hの情報行列HAは、巡回構造になっている。
巡回構造とは、ある列が、他の列をサイクリックシフトしたものと一致している構造をいい、例えば、P列ごとに、そのP列の各行の1の位置が、そのP列の最初の列を、パリティ長Mを除算して得られる値qに比例する値だけ、列方向にサイクリックシフトした位置になっている構造も含まれる。以下、適宜、巡回構造におけるP列を、巡回構造の単位の列数という。
DVB-S.2等の規格に規定されているLDPC符号としては、図12及び図13で説明したように、符号長Nが64800ビットと16200ビットとの、2種類のLDPC符号があり、その2種類のLDPC符号のいずれについても、巡回構造の単位の列数Pが、パリティ長Mの約数のうちの、1とMを除く約数の1つである360に規定されている。
また、パリティ長Mは、符号化率によって異なる値qを用いて、式M=q×P=q×360で表される素数以外の値になっている。したがって、値qも、巡回構造の単位の列数Pと同様に、パリティ長Mの約数のうちの、1とMを除く約数の他の1つであり、パリティ長Mを、巡回構造の単位の列数Pで除算することにより得られる(パリティ長Mの約数であるP及びqの積は、パリティ長Mとなる)。
パリティインターリーバ23は、上述したように、情報長をKとし、また、0以上P未満の整数をxとするとともに、0以上q未満の整数をyとすると、パリティインターリーブとして、NビットのLDPC符号の符号ビットのうちの、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブする。
K+qx+y+1番目の符号ビット、及び、K+Py+x+1番目の符号ビットは、いずれも、K+1番目以降の符号ビットであるから、パリティビットであり、したがって、パリティインターリーブによれば、LDPC符号のパリティビットの位置が移動される。
このようなパリティインターリーブによれば、同一のチェックノードに繋がれるバリアブルノード(に対応するパリティビット)が、巡回構造の単位の列数P、すなわち、ここでは、360ビットだけ離れるので、バースト長が360ビット未満である場合には、同一のチェックノードに繋がっているバリアブルノードの複数が同時にエラーになる事態を避けることができ、その結果、バースト誤りに対する耐性を改善することができる。
なお、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブ後のLDPC符号は、元の検査行列Hの、K+qx+y+1番目の列を、K+Py+x+1番目の列に置換する列置換を行って得られる検査行列(以下、変換検査行列ともいう)のLDPC符号に一致する。
また、変換検査行列のパリティ行列には、図26に示すように、P列(図26では、360列)を単位とする擬似巡回構造が現れる。
ここで、擬似巡回構造とは、一部を除く部分が巡回構造になっている構造を意味する。DVB-S.2等の規格に規定されているLDPC符号の検査行列に対して、パリティインターリーブに相当する列置換を施して得られる変換検査行列は、その右隅部分の360行×360列の部分(後述するシフト行列)に、1の要素が1つだけ足らず(0の要素になっており)、その点で、(完全な)巡回構造ではなく、いわば、擬似巡回構造になっている。
なお、図26の変換検査行列は、元の検査行列Hに対して、パリティインターリーブに相当する列置換の他、変換検査行列が、後述する構成行列で構成されるようにするための行の置換(行置換)も施された行列になっている。
<カラムツイストインターリーブ>
次に、図27ないし図30を参照して、図9のカラムツイストインターリーバ24による並び替え処理としてのカラムツイストインターリーブについて説明する。
図8の送信装置11では、LDPC符号の符号ビットの1ビット以上を、1個のシンボルとして送信する。すなわち、例えば、符号ビットの2ビットを1個のシンボルとする場合には、変調方式として、例えば、QPSKが用いられ、符号ビットの4ビットを1個のシンボルとする場合には、変調方式として、例えば、16APSKや16QAMが用いられる。
符号ビットの2ビット以上を、1個のシンボルとして送信する場合、あるシンボルに、イレージャ等が発生すると、そのシンボルの符号ビットは、すべてエラー(イレージャ)になる。
したがって、復号の性能を向上させるために、同一のチェックノードに繋がっているバリアブルノード(に対応する符号ビット)の複数が同時にイレージャになる確率を低下させるには、1個のシンボルの符号ビットに対応するバリアブルノードが、同一のチェックノードに繋がることを避ける必要がある。
一方、上述したように、LDPCエンコーダ115が出力する、DVB-S.2等の規格に規定されているLDPC符号の検査行列Hでは、情報行列HAが巡回構造を有し、パリティ行列HTが階段構造を有している。そして、図26で説明したように、パリティインターリーブ後のLDPC符号の検査行列である変換検査行列では、パリティ行列にも巡回構造(正確には、上述したように、擬似巡回構造)が現れる。
図27は、変換検査行列を示している。
すなわち、図27のAは、符号長Nが64800ビットで、符号化率(r)が3/4のLDPC符号の検査行列Hの変換検査行列を示している。
図27のAでは、変換検査行列において、値が1になっている要素の位置が、点(・)で示されている。
図27のBは、図27のAの変換検査行列のLDPC符号、つまり、パリティインターリーブ後のLDPC符号を対象として、デマルチプレクサ25(図9)が行う処理を示している。
図27のBでは、変調方式が16APSKや16QAM等の、シンボルを16個の信号点のいずれかにマッピングする方式であるとして、デマルチプレクサ25のメモリ31を構成する4カラムに、パリティインターリーブ後のLDPC符号の符号ビットが、カラム方向に書き込まれている。
メモリ31を構成する4カラムに、カラム方向に書き込まれた符号ビットは、ロウ方向に、4ビット単位で読み出され、1シンボルとなる。
この場合、1シンボルとなる4ビットの符号ビットB0,B1,B2,B3は、図27のAの変換検査行列の、任意の1行にある1に対応する符号ビットとなっていることがあり、この場合、その符号ビットB0,B1,B2,B3それぞれに対応するバリアブルノードは、同一のチェックノードに繋がっている。
したがって、1シンボルの4ビットの符号ビットB0,B1,B2,B3が、変換検査行列の任意の1行にある1に対応する符号ビットとなっている場合には、そのシンボルに、イレージャが発生すると、符号ビットB0,B1,B2,B3それぞれに対応するバリアブルノードが繋がっている同一のチェックノードにおいて、適切なメッセージを求めることができず、その結果、復号の性能が劣化する。
符号化率が3/4以外の符号化率についても、同様に、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、16APSKや16QAMの1個のシンボルとされることがある。
そこで、カラムツイストインターリーバ24は、変換検査行列の任意の1行にある1に対応する複数の符号ビットが、1個のシンボルに含まれないように、パリティインターリーバ23からのパリティインターリーブ後のLDPC符号の符号ビットをインターリーブするカラムツイストインターリーブを行う。
図28は、カラムツイストインターリーブを説明する図である。
すなわち、図28は、デマルチプレクサ25のメモリ31(図22、図23)を示している。
メモリ31は、図22で説明したように、カラム(縦)方向にmbビットを記憶するとともに、ロウ(横)方向にN/(mb)ビットを記憶する記憶容量を有し、mb個のカラムから構成される。そして、カラムツイストインターリーバ24は、メモリ31に対して、LDPC符号の符号ビットを、カラム方向に書き込み、ロウ方向に読み出すときの書き始めの位置を制御することで、カラムツイストインターリーブを行う。
すなわち、カラムツイストインターリーバ24では、複数のカラムそれぞれについて、符号ビットの書き込みを開始する書き始めの位置を、適宜変更することで、ロウ方向に読み出される、1シンボルとされる複数の符号ビットが、変換検査行列の任意の1行にある1に対応する符号ビットにならないようにする(検査行列の任意の1行にある1に対応する複数の符号ビットが、同一のシンボルに含まれないように、LDPC符号の符号ビットを並び替える)。
ここで、図28は、変調方式が16APSKや16QAMであり、かつ、図22で説明した倍数bが1である場合の、メモリ31の構成例を示している。したがって、1シンボルにされるLDPC符号の符号ビットのビット数mは、4ビットであり、また、メモリ31は、4(=mb)個のカラムで構成されている。
カラムツイストインターリーバ24は、(図22のデマルチプレクサ25に代わり)LDPC符号の符号ビットを、メモリ31を構成する4個のカラムの上から下方向(カラム方向)に書き込むことを、左から右方向のカラムに向かって行う。
そして、符号ビットの書き込みが、最も右のカラムまで終了すると、カラムツイストインターリーバ24は、メモリ31を構成するすべてのカラムの1行目から、ロウ方向に、4ビット(mbビット)単位で、符号ビットを読み出し、カラムツイストインターリーブ後のLDPC符号として、デマルチプレクサ25の入れ替え部32(図22、図23)に出力する。
但し、カラムツイストインターリーバ24では、各カラムの先頭(一番上)の位置のアドレスを0として、カラム方向の各位置のアドレスを、昇順の整数で表すこととすると、最も左のカラムについては、書き始めの位置を、アドレスが0の位置とし、(左から)2番目のカラムについては、書き始めの位置を、アドレスが2の位置とし、3番目のカラムについては、書き始めの位置を、アドレスが4の位置とし、4番目のカラムについては、書き始めの位置を、アドレスが7の位置とする。
なお、書き始めの位置が、アドレスが0の位置以外の位置のカラムについては、符号ビットを、最も下の位置まで書き込んだ後は、先頭(アドレスが0の位置)に戻り、書き始めの位置の直前の位置までの書き込みが行われる。そして、その後、次(右)のカラムへの書き込みが行われる。
以上のようなカラムツイストインターリーブを行うことにより、DVB-T.2等の規格に規定されているLDPC符号について、同一のチェックノードに繋がっている複数のバリアブルノードに対応する複数の符号ビットが、16APSKや16QAMの1個のシンボルとされること(同一のシンボルに含まれること)を回避することができ、その結果、イレージャのある通信路での復号の性能を向上させることができる。
図29は、DVB-T.2の規格に規定されている、符号長Nが64800の、11個の符号化率それぞれのLDPC符号について、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを、変調方式ごとに示している。
倍数bが1であり、かつ、変調方式として、例えば、QPSKが採用されることによって、1シンボルのビット数mが、2ビットである場合、図29によれば、メモリ31は、ロウ方向に2×1(=mb)ビットを記憶する2個のカラムを有し、カラム方向に64800/(2×1)ビットを記憶する。
そして、メモリ31の2個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、それぞれされる。
なお、例えば、デマルチプレクサ25(図9)の入れ替え処理の入れ替え方式として、図22の第1ないし第3の入れ替え方式のうちのいずれかが採用される場合等に、倍数bは1となる。
倍数bが2であり、かつ、変調方式として、例えば、QPSKが採用されることによって、1シンボルのビット数mが、2ビットである場合、図29によれば、メモリ31は、ロウ方向に2×2ビットを記憶する4個のカラムを有し、カラム方向に64800/(2×2)ビットを記憶する。
そして、メモリ31の4個のカラムのうちの1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが4の位置と、4番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
なお、例えば、デマルチプレクサ25(図9)の入れ替え処理の入れ替え方式として、図23の第4の入れ替え方式が採用される場合等に、倍数bは2となる。
倍数bが1であり、かつ、変調方式として、例えば、16QAMが採用されることによって、1シンボルのビット数mが、4ビットである場合、図29によれば、メモリ31は、ロウ方向に4×1ビットを記憶する4個のカラムを有し、カラム方向に64800/(4×1)ビットを記憶する。
そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが4の位置と、4番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、16QAMが採用されることによって、1シンボルのビット数mが、4ビットである場合、図29によれば、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に64800/(4×2)ビットを記憶する。
そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが4の位置と、6番目のカラムの書き始めの位置は、アドレスが5の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、64QAMが採用されることによって、1シンボルのビット数mが、6ビットである場合、図29によれば、メモリ31は、ロウ方向に6×1ビットを記憶する6個のカラムを有し、カラム方向に64800/(6×1)ビットを記憶する。
そして、メモリ31の6個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが5の位置と、4番目のカラムの書き始めの位置は、アドレスが9の位置と、5番目のカラムの書き始めの位置は、アドレスが10の位置と、6番目のカラムの書き始めの位置は、アドレスが13の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、64QAMが採用されることによって、1シンボルのビット数mが、6ビットである場合、図29によれば、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に64800/(6×2)ビットを記憶する。
そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが4の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが5の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、11番目のカラムの書き始めの位置は、アドレスが8の位置と、12番目のカラムの書き始めの位置は、アドレスが9の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、256QAMが採用されることによって、1シンボルのビット数mが、8ビットである場合、図29によれば、メモリ31は、ロウ方向に8×1ビットを記憶する8個のカラムを有し、カラム方向に64800/(8×1)ビットを記憶する。
そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが4の位置と、6番目のカラムの書き始めの位置は、アドレスが5の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、256QAMが採用されることによって、1シンボルのビット数mが、8ビットである場合、図29によれば、メモリ31は、ロウ方向に8×2ビットを記憶する16個のカラムを有し、カラム方向に64800/(8×2)ビットを記憶する。
そして、メモリ31の16個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが3の位置と、7番目のカラムの書き始めの位置は、アドレスが7の位置と、8番目のカラムの書き始めの位置は、アドレスが15の位置と、9番目のカラムの書き始めの位置は、アドレスが16の位置と、10番目のカラムの書き始めの位置は、アドレスが20の位置と、11番目のカラムの書き始めの位置は、アドレスが22の位置と、12番目のカラムの書き始めの位置は、アドレスが22の位置と、13番目のカラムの書き始めの位置は、アドレスが27の位置と、14番目のカラムの書き始めの位置は、アドレスが27の位置と、15番目のカラムの書き始めの位置は、アドレスが28の位置と、16番目のカラムの書き始めの位置は、アドレスが32の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、1024QAMが採用されることによって、1シンボルのビット数mが、10ビットである場合、図29によれば、メモリ31は、ロウ方向に10×1ビットを記憶する10個のカラムを有し、カラム方向に64800/(10×1)ビットを記憶する。
そして、メモリ31の10個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが3の位置と、3番目のカラムの書き始めの位置は、アドレスが6の位置と、4番目のカラムの書き始めの位置は、アドレスが8の位置と、5番目のカラムの書き始めの位置は、アドレスが11の位置と、6番目のカラムの書き始めの位置は、アドレスが13の位置と、7番目のカラムの書き始めの位置は、アドレスが15の位置と、8番目のカラムの書き始めの位置は、アドレスが17の位置と、9番目のカラムの書き始めの位置は、アドレスが18の位置と、10番目のカラムの書き始めの位置は、アドレスが20の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、1024QAMが採用されることによって、1シンボルのビット数mが、10ビットである場合、図29によれば、メモリ31は、ロウ方向に10×2ビットを記憶する20個のカラムを有し、カラム方向に64800/(10×2)ビットを記憶する。
そして、メモリ31の20個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが1の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが4の位置と、5番目のカラムの書き始めの位置は、アドレスが5の位置と、6番目のカラムの書き始めの位置は、アドレスが6の位置と、7番目のカラムの書き始めの位置は、アドレスが6の位置と、8番目のカラムの書き始めの位置は、アドレスが9の位置と、9番目のカラムの書き始めの位置は、アドレスが13の位置と、10番目のカラムの書き始めの位置は、アドレスが14の位置と、11番目のカラムの書き始めの位置は、アドレスが14の位置と、12番目のカラムの書き始めの位置は、アドレスが16の位置と、13番目のカラムの書き始めの位置は、アドレスが21の位置と、14番目のカラムの書き始めの位置は、アドレスが21の位置と、15番目のカラムの書き始めの位置は、アドレスが23の位置と、16番目のカラムの書き始めの位置は、アドレスが25の位置と、17番目のカラムの書き始めの位置は、アドレスが25の位置と、18番目のカラムの書き始めの位置は、アドレスが26の位置と、19番目のカラムの書き始めの位置は、アドレスが28の位置と、20番目のカラムの書き始めの位置は、アドレスが30の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、4096QAMが採用されることによって、1シンボルのビット数mが、12ビットである場合、図29によれば、メモリ31は、ロウ方向に12×1ビットを記憶する12個のカラムを有し、カラム方向に64800/(12×1)ビットを記憶する。
そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが4の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが5の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、11番目のカラムの書き始めの位置は、アドレスが8の位置と、12番目のカラムの書き始めの位置は、アドレスが9の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、4096QAMが採用されることによって、1シンボルのビット数mが、12ビットである場合、図29によれば、メモリ31は、ロウ方向に12×2ビットを記憶する24個のカラムを有し、カラム方向に64800/(12×2)ビットを記憶する。
そして、メモリ31の24個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが5の位置と、3番目のカラムの書き始めの位置は、アドレスが8の位置と、4番目のカラムの書き始めの位置は、アドレスが8の位置と、5番目のカラムの書き始めの位置は、アドレスが8の位置と、6番目のカラムの書き始めの位置は、アドレスが8の位置と、7番目のカラムの書き始めの位置は、アドレスが10の位置と、8番目のカラムの書き始めの位置は、アドレスが10の位置と、9番目のカラムの書き始めの位置は、アドレスが10の位置と、10番目のカラムの書き始めの位置は、アドレスが12の位置と、11番目のカラムの書き始めの位置は、アドレスが13の位置と、12番目のカラムの書き始めの位置は、アドレスが16の位置と、13番目のカラムの書き始めの位置は、アドレスが17の位置と、14番目のカラムの書き始めの位置は、アドレスが19の位置と、15番目のカラムの書き始めの位置は、アドレスが21の位置と、16番目のカラムの書き始めの位置は、アドレスが22の位置と、17番目のカラムの書き始めの位置は、アドレスが23の位置と、18番目のカラムの書き始めの位置は、アドレスが26の位置と、19番目のカラムの書き始めの位置は、アドレスが37の位置と、20番目のカラムの書き始めの位置は、アドレスが39の位置と、21番目のカラムの書き始めの位置は、アドレスが40の位置と、22番目のカラムの書き始めの位置は、アドレスが41の位置と、23番目のカラムの書き始めの位置は、アドレスが41の位置と、24番目のカラムの書き始めの位置は、アドレスが41の位置と、それぞれされる。
図30は、DVB-T.2の規格に規定されている、符号長Nが16200の、10個の符号化率それぞれのLDPC符号について、カラムツイストインターリーブに必要なメモリ31のカラム数と、書き始めの位置のアドレスを、変調方式ごとに示している。
倍数bが1であり、かつ、変調方式として、例えば、QPSKが採用されることによって、1シンボルのビット数mが、2ビットである場合、図30によれば、メモリ31は、ロウ方向に2×1ビットを記憶する2個のカラムを有し、カラム方向に16200/(2×1)ビットを記憶する。
そして、メモリ31の2個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、QPSKが採用されることによって、1シンボルのビット数mが、2ビットである場合、図30によれば、メモリ31は、ロウ方向に2×2ビットを記憶する4個のカラムを有し、カラム方向に16200/(2×2)ビットを記憶する。
そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、16QAMが採用されることによって、1シンボルのビット数mが、4ビットである場合、図30によれば、メモリ31は、ロウ方向に4×1ビットを記憶する4個のカラムを有し、カラム方向に16200/(4×1)ビットを記憶する。
そして、メモリ31の4個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが2の位置と、3番目のカラムの書き始めの位置は、アドレスが3の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、16QAMが採用されることによって、1シンボルのビット数mが、4ビットである場合、図30によれば、メモリ31は、ロウ方向に4×2ビットを記憶する8個のカラムを有し、カラム方向に16200/(4×2)ビットを記憶する。
そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが1の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが20の位置と、7番目のカラムの書き始めの位置は、アドレスが20の位置と、8番目のカラムの書き始めの位置は、アドレスが21の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、64QAMが採用されることによって、1シンボルのビット数mが、6ビットである場合、図30によれば、メモリ31は、ロウ方向に6×1ビットを記憶する6個のカラムを有し、カラム方向に16200/(6×1)ビットを記憶する。
そして、メモリ31の6個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが3の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、64QAMが採用されることによって、1シンボルのビット数mが、6ビットである場合、図30によれば、メモリ31は、ロウ方向に6×2ビットを記憶する12個のカラムを有し、カラム方向に16200/(6×2)ビットを記憶する。
そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが3の位置と、8番目のカラムの書き始めの位置は、アドレスが3の位置と、9番目のカラムの書き始めの位置は、アドレスが3の位置と、10番目のカラムの書き始めの位置は、アドレスが6の位置と、11番目のカラムの書き始めの位置は、アドレスが7の位置と、12番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、256QAMが採用されることによって、1シンボルのビット数mが、8ビットである場合、図30によれば、メモリ31は、ロウ方向に8×1ビットを記憶する8個のカラムを有し、カラム方向に16200/(8×1)ビットを記憶する。
そして、メモリ31の8個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが1の位置と、5番目のカラムの書き始めの位置は、アドレスが7の位置と、6番目のカラムの書き始めの位置は、アドレスが20の位置と、7番目のカラムの書き始めの位置は、アドレスが20の位置と、8番目のカラムの書き始めの位置は、アドレスが21の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、1024QAMが採用されることによって、1シンボルのビット数mが、10ビットである場合、図30によれば、メモリ31は、ロウ方向に10×1ビットを記憶する10個のカラムを有し、カラム方向に16200/(10×1)ビットを記憶する。
そして、メモリ31の10個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが1の位置と、3番目のカラムの書き始めの位置は、アドレスが2の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが3の位置と、6番目のカラムの書き始めの位置は、アドレスが3の位置と、7番目のカラムの書き始めの位置は、アドレスが4の位置と、8番目のカラムの書き始めの位置は、アドレスが4の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、1024QAMが採用されることによって、1シンボルのビット数mが、10ビットである場合、図30によれば、メモリ31は、ロウ方向に10×2ビットを記憶する20個のカラムを有し、カラム方向に16200/(10×2)ビットを記憶する。
そして、メモリ31の20個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが2の位置と、8番目のカラムの書き始めの位置は、アドレスが2の位置と、9番目のカラムの書き始めの位置は、アドレスが5の位置と、10番目のカラムの書き始めの位置は、アドレスが5の位置と、11番目のカラムの書き始めの位置は、アドレスが5の位置と、12番目のカラムの書き始めの位置は、アドレスが5の位置と、13番目のカラムの書き始めの位置は、アドレスが5の位置と、14番目のカラムの書き始めの位置は、アドレスが7の位置と、15番目のカラムの書き始めの位置は、アドレスが7の位置と、16番目のカラムの書き始めの位置は、アドレスが7の位置と、17番目のカラムの書き始めの位置は、アドレスが7の位置と、18番目のカラムの書き始めの位置は、アドレスが8の位置と、19番目のカラムの書き始めの位置は、アドレスが8の位置と、20番目のカラムの書き始めの位置は、アドレスが10の位置と、それぞれされる。
倍数bが1であり、かつ、変調方式として、例えば、4096QAMが採用されることによって、1シンボルのビット数mが、12ビットである場合、図30によれば、メモリ31は、ロウ方向に12×1ビットを記憶する12個のカラムを有し、カラム方向に16200/(12×1)ビットを記憶する。
そして、メモリ31の12個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが2の位置と、5番目のカラムの書き始めの位置は、アドレスが2の位置と、6番目のカラムの書き始めの位置は、アドレスが2の位置と、7番目のカラムの書き始めの位置は、アドレスが3の位置と、8番目のカラムの書き始めの位置は、アドレスが3の位置と、9番目のカラムの書き始めの位置は、アドレスが3の位置と、10番目のカラムの書き始めの位置は、アドレスが6の位置と、11番目のカラムの書き始めの位置は、アドレスが7の位置と、12番目のカラムの書き始めの位置は、アドレスが7の位置と、それぞれされる。
倍数bが2であり、かつ、変調方式として、例えば、4096QAMが採用されることによって、1シンボルのビット数mが、12ビットである場合、図30によれば、メモリ31は、ロウ方向に12×2ビットを記憶する24個のカラムを有し、カラム方向に16200/(12×2)ビットを記憶する。
そして、メモリ31の24個のカラムのうちの、1番目のカラムの書き始めの位置は、アドレスが0の位置と、2番目のカラムの書き始めの位置は、アドレスが0の位置と、3番目のカラムの書き始めの位置は、アドレスが0の位置と、4番目のカラムの書き始めの位置は、アドレスが0の位置と、5番目のカラムの書き始めの位置は、アドレスが0の位置と、6番目のカラムの書き始めの位置は、アドレスが0の位置と、7番目のカラムの書き始めの位置は、アドレスが0の位置と、8番目のカラムの書き始めの位置は、アドレスが1の位置と、9番目のカラムの書き始めの位置は、アドレスが1の位置と、10番目のカラムの書き始めの位置は、アドレスが1の位置と、11番目のカラムの書き始めの位置は、アドレスが2の位置と、12番目のカラムの書き始めの位置は、アドレスが2の位置と、13番目のカラムの書き始めの位置は、アドレスが2の位置と、14番目のカラムの書き始めの位置は、アドレスが3の位置と、15番目のカラムの書き始めの位置は、アドレスが7の位置と、16番目のカラムの書き始めの位置は、アドレスが9の位置と、17番目のカラムの書き始めの位置は、アドレスが9の位置と、18番目のカラムの書き始めの位置は、アドレスが9の位置と、19番目のカラムの書き始めの位置は、アドレスが10の位置と、20番目のカラムの書き始めの位置は、アドレスが10の位置と、21番目のカラムの書き始めの位置は、アドレスが10の位置と、22番目のカラムの書き始めの位置は、アドレスが10の位置と、23番目のカラムの書き始めの位置は、アドレスが10の位置と、24番目のカラムの書き始めの位置は、アドレスが11の位置と、それぞれされる。
図31は、図8のLDPCエンコーダ115、ビットインターリーバ116、及び、マッパ117で行われる処理を説明するフローチャートである。
LDPCエンコーダ115は、BCHエンコーダ114から、LDPC対象データが供給されるのを待って、ステップS101において、LDPC対象データを、LDPC符号に符号化し、そのLDPC符号を、ビットインターリーバ116に供給して、処理は、ステップS102に進む。
ビットインターリーバ116は、ステップS102において、LDPCエンコーダ115からのLDPC符号を対象として、ビットインターリーブを行い、そのビットインターリーブ後のLDPC符号をシンボル化したシンボルを、マッパ117に供給して、処理は、ステップS103に進む。
すなわち、ステップS102では、ビットインターリーバ116(図9)において、パリティインターリーバ23が、LDPCエンコーダ115からのLDPC符号を対象として、パリティインターリーブを行い、そのパリティインターリーブ後のLDPC符号を、カラムツイストインターリーバ24に供給する。
カラムツイストインターリーバ24は、パリティインターリーバ23からのLDPC符号を対象として、カラムツイストインターリーブを行い、デマルチプレクサ25に供給する。
デマルチプレクサ25は、カラムツイストインターリーバ24によるカラムツイストインターリーブ後のLDPC符号の符号ビットを入れ替えて、入れ替え後の符号ビットを、シンボルのシンボルビット(シンボルを表すビット)とする入れ替え処理を行う。
ここで、デマルチプレクサ25による入れ替え処理は、図22及び図23に示した第1ないし第4の入れ替え方式に従って行うことができる他、その他の入れ替え方式に従って行うことができる。
デマルチプレクサ25による入れ替え処理によって得られたシンボルは、デマルチプレクサ25から、マッパ117に供給される。
マッパ117は、ステップS103において、デマルチプレクサ25からのシンボルを、マッパ117で行われる直交変調の変調方式で定める信号点にマッピングして直交変調し、その結果得られるデータを、時間インターリーバ118に供給する。
以上のように、パリティインターリーブや、カラムツイストインターリーブを行うことで、LDPC符号の複数の符号ビットを1個のシンボルとして送信する場合の、イレージャやバースト誤りに対する耐性を向上させることができる。
ここで、図9では、説明の便宜のため、パリティインターリーブを行うブロックであるパリティインターリーバ23と、カラムツイストインターリーブを行うブロックであるカラムツイストインターリーバ24とを、別個に構成するようにしたが、パリティインターリーバ23とカラムツイストインターリーバ24とは、一体的に構成することができる。
すなわち、パリティインターリーブと、カラムツイストインターリーブとは、いずれも、メモリに対する符号ビットの書き込み、及び読み出しによって行うことができ、符号ビットの書き込みを行うアドレス(書き込みアドレス)を、符号ビットの読み出しを行うアドレス(読み出しアドレス)に変換する行列によって表すことができる。
したがって、パリティインターリーブを表す行列と、カラムツイストインターリーブを表す行列とを乗算して得られる行列を求めておけば、その行列によって、符号ビットを変換することで、パリティインターリーブを行い、さらに、そのパリティインターリーブ後のLDPC符号をカラムツイストインターリーブした結果を得ることができる。
また、パリティインターリーバ23とカラムツイストインターリーバ24に加えて、デマルチプレクサ25も、一体的に構成することが可能である。
すなわち、デマルチプレクサ25で行われる入れ替え処理も、LDPC符号を記憶するメモリ31の書き込みアドレスを、読み出しアドレスに変換する行列によって表すことができる。
したがって、パリティインターリーブを表す行列、カラムツイストインターリーブを表す行列、及び、入れ替え処理を表す行列を乗算して得られる行列を求めておけば、その行列によって、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理を、一括して行うことができる。
なお、パリティインターリーブと、カラムツイストインターリーブとについては、そのうちのいずれか一方だけを行うようにすること、又は、いずれも行わないようにすることが可能である。例えば、DVB-S.2のように、通信路13(図7)が、AWGN以外の、バースト誤りやフラッタ等をそれほど考慮せずに済む衛星回線等である場合には、パリティインターリーブやカラムツイストインターリーブは、行わないようにすることができる。
次に、図32ないし図34を参照して、図8の送信装置11について行った、エラーレート(bit error rate)を計測するシミュレーションについて説明する。
シミュレーションは、D/Uが0dBのフラッタ(flutter)がある通信路を採用して行った。
図32は、シミュレーションで採用した通信路のモデルを示している。
すなわち、図32のAは、シミュレーションで採用したフラッタのモデルを示している。
また、図32のBは、図32のAのモデルで表されるフラッタがある通信路のモデルを示している。
なお、図32のBにおいて、Hは、図32のAのフラッタのモデルを表す。また、図32のBにおいて、Nは、ICI(Inter Carrier Interference)を表し、シミュレーションでは、そのパワーの期待値E[N2]を、AWGNで近似した。
図33及び図34は、シミュレーションで得られたエラーレートと、フラッタのドップラ周波数fdとの関係を示している。
なお、図33は、変調方式が16QAMで、符号化率(r)が(3/4)で、入れ替え方式が第1の入れ替え方式である場合の、エラーレートとドップラ周波数fdとの関係を示している。また、図34は、変調方式が64QAMで、符号化率(r)が(5/6)で、入れ替え方式が第1の入れ替え方式である場合の、エラーレートとドップラ周波数fdとの関係を示している。
さらに、図33及び図34において、太線は、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のすべてを行った場合の、エラーレートとドップラ周波数fdとの関係を示しており、細線は、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のうちの、入れ替え処理だけを行った場合の、エラーレートとドップラ周波数fdとの関係を示している。
図33及び図34のいずれにおいても、パリティインターリーブ、カラムツイストインターリーブ、及び、入れ替え処理のすべてを行った場合の方が、入れ替え処理だけを行った場合よりも、エラーレートが向上する(小さくなる)ことが分かる。
<LDPCエンコーダ115の構成例>
図35は、図8のLDPCエンコーダ115の構成例を示すブロック図である。
なお、図8のLDPCエンコーダ122も、同様に構成される。
図12及び図13で説明したように、DVB-S.2等の規格では、64800ビットと16200ビットとの2通りの符号長NのLDPC符号が規定されている。
そして、符号長Nが64800ビットのLDPC符号については、11個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6,8/9、及び9/10が規定されており、符号長Nが16200ビットのLDPC符号については、10個の符号化率1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6、及び8/9が規定されている(図12及び図13)。
LDPCエンコーダ115は、例えば、このような、符号長Nが64800ビットや16200ビットの各符号化率のLDPC符号による符号化(誤り訂正符号化)を、符号長Nごと、及び符号化率ごとに用意された検査行列Hに従って行うことができる。
LDPCエンコーダ115は、符号化処理部601と記憶部602とから構成される。
符号化処理部601は、符号化率設定部611、初期値テーブル読み出し部612、検査行列生成部613、情報ビット読み出し部614、符号化パリティ演算部615、及び制御部616から構成され、LDPCエンコーダ115に供給されるLDPC対象データのLDPC符号化を行い、その結果得られるLDPC符号を、ビットインターリーバ116(図8)に供給する。
すなわち、符号化率設定部611は、例えば、オペレータの操作等に応じて、LDPC符号の符号長Nと符号化率とを設定する。
初期値テーブル読み出し部612は、符号化率設定部611が設定した符号長N及び符号化率に対応する、後述する検査行列初期値テーブルを、記憶部602から読み出す。
検査行列生成部613は、初期値テーブル読み出し部612が読み出した検査行列初期値テーブルに基づいて、符号化率設定部611が設定した符号長N及び符号化率に応じた情報長K(=符号長N-パリティ長M)に対応する情報行列HAの1の要素を列方向に360列(巡回構造の単位の列数P)ごとの周期で配置して検査行列Hを生成し、記憶部602に格納する。
情報ビット読み出し部614は、LDPCエンコーダ115に供給されるLDPC対象データから、情報長K分の情報ビットを読み出す(抽出する)。
符号化パリティ演算部615は、検査行列生成部613が生成した検査行列Hを記憶部602から読み出し、その検査行列Hを用いて、情報ビット読み出し部614が読み出した情報ビットに対するパリティビットを所定の式に基づいて算出することにより、符号語(LDPC符号)を生成する。
制御部616は、符号化処理部601を構成する各ブロックを制御する。
記憶部602には、例えば、64800ビットや16200ビット等の符号長Nそれぞれについての、図12及び図13に示した複数の符号化率等それぞれに対応する複数の検査行列初期値テーブル等が格納されている。また、記憶部602は、符号化処理部601の処理上必要なデータを一時記憶する。
図36は、図35のLDPCエンコーダ115の処理を説明するフローチャートである。
ステップS201において、符号化率設定部611は、LDPC符号化を行う符号長N及び符号化率rを決定(設定)する。
ステップS202において、初期値テーブル読み出し部612は、符号化率設定部611により決定された符号長N及び符号化率rに対応する、予め定められた検査行列初期値テーブルを、記憶部602から読み出す。
ステップS203において、検査行列生成部613は、初期値テーブル読み出し部612が記憶部602から読み出した検査行列初期値テーブルを用いて、符号化率設定部611により決定された符号長N及び符号化率rのLDPC符号の検査行列Hを求め(生成し)、記憶部602に供給して格納する。
ステップS204において、情報ビット読み出し部614は、LDPCエンコーダ115に供給されるLDPC対象データから、符号化率設定部611により決定された符号長N及び符号化率rに対応する情報長K(=N×r)の情報ビットを読み出すとともに、検査行列生成部613が求めた検査行列Hを、記憶部602から読み出し、符号化パリティ演算部615に供給する。
ステップS205において、符号化パリティ演算部615は、情報ビット読み出し部614からの情報ビットと検査行列Hとを用い、式(8)を満たす符号語cのパリティビットを順次演算する。
HcT=0
・・・(8)
式(8)において、cは、符号語(LDPC符号)としての行ベクトルを表し、cTは、行ベクトルcの転置を表す。
ここで、上述したように、LDPC符号(1符号語)としての行ベクトルcのうちの、情報ビットの部分を、行ベクトルAで表すとともに、パリティビットの部分を、行ベクトルTで表す場合には、行ベクトルcは、情報ビットとしての行ベクトルAと、パリティビットとしての行ベクトルTとによって、式c =[A|T]で表すことができる。
検査行列Hと、LDPC符号としての行ベクトルc=[A|T]とは、式HcT=0を満たす必要があり、かかる式HcT=0を満たす行ベクトルc=[A|T]を構成するパリティビットとしての行ベクトルTは、検査行列H=[HA|HT]のパリティ行列HTが、図11に示した階段構造になっている場合には、式HcT=0における列ベクトルHcTの1行目の要素から順に、各行の要素を0にしていくようにすることで、逐次的に求めることができる。
符号化パリティ演算部615は、情報ビット読み出し部614からの情報ビットAに対して、パリティビットTを求め、その情報ビットAとパリティビットTとによって表される符号語c =[A|T]を、情報ビットAのLDPC符号化結果として出力する。
その後、ステップS206において、制御部616は、LDPC符号化を終了するかどうかを判定する。ステップS206において、LDPC符号化を終了しないと判定された場合、すなわち、例えば、LDPC符号化すべきLDPC対象データが、まだある場合、処理は、ステップS201(又は、ステップS204)に戻り、以下、ステップS201(又は、ステップS204)ないしS206の処理が繰り返される。
また、ステップS206において、LDPC符号化を終了すると判定された場合、すなわち、例えば、LDPC符号化すべきLDPC対象データがない場合、LDPCエンコーダ115は、処理を終了する。
以上のように、各符号長N、及び、各符号化率rに対応する検査行列初期値テーブルが用意されており、LDPCエンコーダ115は、所定の符号長Nの、所定の符号化率rのLDPC符号化を、その所定の符号長N、及び、所定の符号化率rに対応する検査行列初期値テーブルから生成される検査行列Hを用いて行う。
<検査行列初期値テーブルの例>
検査行列初期値テーブルは、検査行列Hの、LDPC符号(検査行列Hによって定義されるLDPC符号)の符号長N及び符号化率rに応じた情報長Kに対応する情報行列HA(図10)の1の要素の位置を360列(巡回構造の単位の列数P)ごとに表すテーブルであり、各符号長N及び各符号化率rの検査行列Hごとに、あらかじめ作成される。
図37は、検査行列初期値テーブルの例を示す図である。
すなわち、図37は、DVB-T.2の規格に規定されている、符号長Nが16200ビットの、符号化率(DVB-T.2の表記上の符号化率)rが1/4の検査行列Hに対する検査行列初期値テーブルを示している。
検査行列生成部613(図35)は、検査行列初期値テーブルを用いて、以下のように、検査行列Hを求める。
図38は、検査行列初期値テーブルから検査行列Hを求める方法を説明する図である。
すなわち、図38は、DVB-T.2の規格に規定されている、符号長Nが16200ビットの、符号化率rが2/3の検査行列Hに対する検査行列初期値テーブルを示している。
検査行列初期値テーブルは、上述したように、LDPC符号の符号長N及び符号化率rに応じた情報長Kに対応する情報行列HA(図10)の1の要素の位置を、360列(巡回構造の単位の列数P)ごとに表すテーブルであり、そのi行目には、検査行列Hの1+360×(i-1)列目の1の要素の行番号(検査行列Hの1行目の行番号を0とする行番号)が、その1+360×(i-1)列目の列が持つ列重みの数だけ並んでいる。
ここで、検査行列Hの、パリティ長Mに対応するパリティ行列HT(図10)は、図25に示したように決まっているので、検査行列初期値テーブルによれば、検査行列Hの、情報長Kに対応する情報行列HA(図10)が求められる。
検査行列初期値テーブルの行数k+1は、情報長Kによって異なる。
情報長Kと、検査行列初期値テーブルの行数k+1との間には、式(9)の関係が成り立つ。
K=(k+1)×360
・・・(9)
ここで、式(9)の360は、図26で説明した巡回構造の単位の列数Pである。
図38の検査行列初期値テーブルでは、1行目から3行目までに、13個の数値が並び、4行目からk+1行目(図38では、30行目)までに、3個の数値が並んでいる。
したがって、図38の検査行列初期値テーブルから求められる検査行列Hの列重みは、1列目から、1+360×(3-1)-1列目までは、13であり、1+360×(3-1)列目から、K列目までは、3である。
図38の検査行列初期値テーブルの1行目は、0,2084,1613,1548,1286,1460,3196,4297,2481,3369,3451,4620,2622となっており、これは、検査行列Hの1列目において、行番号が、0,2084,1613,1548,1286,1460,3196,4297,2481,3369,3451,4620,2622の行の要素が1であること(かつ、他の要素が0であること)を示している。
また、図38の検査行列初期値テーブルの2行目は、1,122,1516,3448,2880,1407,1847,3799,3529,373,971,4358,3108となっており、これは、検査行列Hの361(=1+360×(2−1))列目において、行番号が、1,122,1516,3448,2880,1407,1847,3799,3529,373,971,4358,3108の行の要素が1であることを示している。
以上のように、検査行列初期値テーブルは、検査行列Hの情報行列HAの1の要素の位置を360列ごとに表す。
検査行列Hの1+360×(i-1)列目以外の列、つまり、2+360×(i-1)列目から、360×i列目までの各列は、検査行列初期値テーブルによって定まる1+360×(i-1)列目の1の要素を、パリティ長Mに従って下方向(列の下方向)に、周期的にサイクリックシフトして配置したものになっている。
すなわち、例えば、2+360×(i-1)列目は、1+360×(i-1)列目を、M/360(=q)だけ下方向にサイクリックシフトしたものとなっており、次の3+360×(i-1)列目は、1+360×(i-1)列目を、2×M/360(=2×q)だけ下方向にサイクリックシフトしたもの(2+360×(i-1)列目を、M/360(=q)だけ下方向にサイクリックシフトしたもの)となっている。
いま、検査行列初期値テーブルのi行目(上からi番目)のj列目(左からj番目)の数値を、hi,jと表すとともに、検査行列Hのw列目の、j個目の1の要素の行番号を、Hw-jと表すこととすると、検査行列Hの1+360×(i-1)列目以外の列であるw列目の、1の要素の行番号Hw-jは、式(10)で求めることができる。
Hw-j=mod(hi,j+mod((w-1),P)×q,M)
・・・(10)
ここで、mod(x,y)はxをyで割った余りを意味する。
また、Pは、上述した巡回構造の単位の列数であり、例えば、DVB-S.2,DVB-T.2、及び、DVB-C.2の規格では、上述のように、360である。さらに、qは、パリティ長Mを、巡回構造の単位の列数P(=360)で除算することにより得られる値M/360である。
検査行列生成部613(図35)は、検査行列初期値テーブルによって、検査行列Hの1+360×(i-1)列目の1の要素の行番号を特定する。
さらに、検査行列生成部613(図35)は、検査行列Hの1+360×(i-1)列目以外の列であるw列目の、1の要素の行番号Hw-jを、式(10)に従って求め、以上により得られた行番号の要素を1とする検査行列Hを生成する。
<新LDPC符号>
ところで、今後、高解像度の画像等の大容量のデータを伝送することの要請が高まることが予想される。大容量のデータの伝送では、高い符号化率の(冗長性が低い)LDPC符号が要求されることがあるが、高い符号化率のLDPC符号を用いる場合でも、良好な通信品質を確保することが望ましい。
そこで、良好な通信品質を確保することができる、高い符号化率のLDPC符号として、例えば、符号化率rが12/15で、符号長Nが16kビットのLDPC符号(以下、新LDPC符号ともいう)について説明する。
なお、新LDPC符号については、DVB-S.2等の既存の規格のLDPC符号との親和性(compatibility)を、なるべく維持する観点から、DVB-S.2等に規定されているLDPC符号と同様に、検査行列Hのパリティ行列HTは、階段構造とする(図11)。
さらに、新LDPC符号については、DVB-S.2等に規定されているLDPC符号と同様に、検査行列Hの情報行列HAは、巡回構造とし、巡回構造の単位の列数Pは、360とする。
図39は、新LDPC符号の検査行列初期値テーブルの例を示す図である。
LDPCエンコーダ115(図8、図35)は、図39に示した検査行列初期値テーブルから求められる検査行列Hを用いて、新LDPC符号へのLDPC符号化を行うことができる。
この場合、LDPCエンコーダ115(図8)の記憶部602には、図39に示した検査行列初期値テーブルが記憶される。
図39の検査行列初期値テーブルから求められる検査行列Hを用いて得られる新LDPC符号は、性能の良いLDPC符号になっている。
ここで、性能の良いLDPC符号とは、適切な検査行列Hから得られるLDPC符号である。
また、適切な検査行列Hとは、検査行列Hから得られるLDPC符号を、低いEs/N0、又はEb/No(1ビットあたりの信号電力対雑音電力比)で送信したときに、BER(及びFER)をより小にする、所定の条件を満たす検査行列である。
適切な検査行列Hは、例えば、所定の条件を満たす様々な検査行列から得られるLDPC符号を、低いEs/Noで送信したときのBERを計測するシミュレーションを行うことにより求めることができる。
適切な検査行列Hが満たすべき所定の条件としては、例えば、デンシティエボリューション(Density Evolution)と呼ばれる符号の性能の解析法で得られる解析結果が良好であること、サイクル4と呼ばれる、1の要素のループが存在しないこと、等がある。
ここで、情報行列HAにおいて、サイクル4のように、1の要素が密集していると、LDPC符号の復号性能が劣化することが知られており、このため、適切な検査行列Hが満たすべき所定の条件として、サイクル4が存在しないことが要求される。
なお、適切な検査行列Hが満たすべき所定の条件は、LDPC符号の復号性能の向上や、LDPC符号の復号処理の容易化(単純化)等の観点から適宜決定することができる。
図40及び図41は、適切な検査行列Hが満たすべき所定の条件としての解析結果が得られるデンシティエボリューションを説明する図である。
デンシティエボリューションとは、後述するデグリーシーケンス(degree sequence)で特徴付けられる符号長Nが∞のLDPC符号全体(アンサンブル(ensemble))に対して、そのエラー確率の期待値を計算する、符号の解析法である。
例えば、AWGNチャネル上で、ノイズの分散値を0からどんどん大きくしていくと、あるアンサンブルのエラー確率の期待値は、最初は0であるが、ノイズの分散値が、ある閾値(threshold)以上となると、0ではなくなる。
デンシティエボリューションによれば、そのエラー確率の期待値が0ではなくなる、ノイズの分散値の閾値(以下、性能閾値ともいう)を比較することで、アンサンブルの性能(検査行列の適切さ)の良し悪しを決めることができる。
なお、具体的なLDPC符号に対して、そのLDPC符号が属するアンサンブルを決定し、そのアンサンブルに対してデンシティエボリューションを行うと、そのLDPC符号のおおまかな性能を予想することができる。
したがって、性能の良いLDPC符号は、性能の良いアンサンブルを見つければ、そのアンサンブルに属するLDPC符号の中から見つけることができる。
ここで、上述のデグリーシーケンスとは、LDPC符号の符号長Nに対して、各値の重みをもつバリアブルノードやチェックノードがどれくらいの割合だけあるかを表す。
例えば、符号化率が1/2のregular(3,6)LDPC符号は、すべてのバリアブルノードの重み(列重み)が3で、すべてのチェックノードの重み(行重み)が6であるというデグリーシーケンスによって特徴付けられるアンサンブルに属する。
図40は、そのようなアンサンブルのタナーグラフ(Tanner graph)を示している。
図40のタナーブラフでは、図中丸印(○印)で示すバリアブルノードが、符号長Nに等しいN個だけ存在し、図中四角形(□印)で示すチェックノードが、符号長Nに符号化率1/2を乗算した乗算値に等しいN/2個だけ存在する。
各バリアブルノードには、列重みに等しい3本の枝(edge)が接続されており、したがって、N個のバリアブルノードに接続している枝は、全部で、3N本だけ存在する。
また、各チェックノードには、行重みに等しい6本の枝が接続されており、したがって、N/2個のチェックノードに接続している枝は、全部で、3N本だけ存在する。
さらに、図40のタナーグラフでは、1つのインターリーバが存在する。
インターリーバは、N個のバリアブルノードに接続している3N本の枝をランダムに並べ替え、その並べ替え後の各枝を、N/2個のチェックノードに接続している3N本の枝のうちのいずれかに繋げる。
インターリーバでの、N個のバリアブルノードに接続している3N本の枝を並べ替える並べ替えパターンは、(3N)!(=(3N)×(3N-1)×・・・×1)通りだけある。したがって、すべてのバリアブルノードの重みが3で、すべてのチェックノードの重みが6であるというデグリーリーケンスによって特徴付けられるアンサンブルは、(3N)!個のLDPC符号の集合となる。
性能の良いLDPC符号(適切な検査行列)を求めるシミュレーションでは、デンシティエボリューションにおいて、マルチエッジタイプ(multi-edge type)のアンサンブルを用いた。
マルチエッジタイプでは、バリアブルノードに接続している枝と、チェックノードに接続している枝とが経由するインターリーバが、複数(multi edge)に分割され、これにより、アンサンブルの特徴付けが、より厳密に行われる。
図41は、マルチエッジタイプのアンサンブルのタナーグラフの例を示している。
図41のタナーグラフでは、第1インターリーバと第2インターリーバとの2つのインターリーバが存在する。
また、図41のタナーグラフでは、第1インターリーバに繋がる枝が1本で、第2インターリーバに繋がる枝が0本のバリアブルノードがv1個だけ、第1インターリーバに繋がる枝が1本で、第2インターリーバに繋がる枝が2本のバリアブルノードがv2個だけ、第1インターリーバに繋がる枝が0本で、第2インターリーバに繋がる枝が2本のバリアブルノードがv3個だけ、それぞれ存在する。
さらに、図41のタナーグラフでは、第1インターリーバに繋がる枝が2本で、第2インターリーバに繋がる枝が0本のチェックノードがc1個だけ、第1インターリーバに繋がる枝が2本で、第2インターリーバに繋がる枝が2本のチェックノードがc2個だけ、第1インターリーバに繋がる枝が0本で、第2インターリーバに繋がる枝が3本のチェックノードがc3個だけ、それぞれ存在する。
ここで、デンシティエボリューションと、その実装については、例えば、"On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit", S.Y.Chung, G.D.Forney, T.J.Richardson,R.Urbanke, IEEE Communications Leggers, VOL.5, NO.2, Feb 2001に記載されている。
新LDPC符号(の検査行列初期値テーブル)を求めるシミュレーションでは、マルチエッジタイプのデンシティエボリューションによって、BERが落ち始める(小さくなっていく)Eb/N0(1ビットあたりの信号電力対雑音電力比)である性能閾値が、所定値以下になるアンサンブルを見つけ、そのアンサンブルに属するLDPC符号の中から、QPSK等の1以上の直交変調を用いた場合のBERを小さくするLDPC符号を、性能の良いLDPC符号として選択した。
上述の新LDPC符号の検査行列初期値テーブルは、以上のようなシミュレーションにより求められた、符号長Nが16kビットで、符号化率rが12/15のLDPC符号の検査行列初期値テーブルである。
したがって、かかる検査行列初期値テーブルから得られる新LDPC符号によれば、データ伝送において、良好な通信品質を確保することができる。
図42は、図39のの新LDPC符号の検査行列初期値テーブルから求められる検査行列Hの最小サイクル長と性能閾値とを示す図である。
ここで、最小サイクル長(girth)とは、検査行列Hにおいて、1の要素によって構成されるループの長さ(ループ長)の最小値を意味する。
新LDPC符号の検査行列初期値テーブルから求められる検査行列Hについては、最小サイクル長が6であり、サイクル4(ループ長が4の、1の要素のループ)は、存在しない。
また、新LDPC符号の性能閾値は、4.269922になっている。
図43は、図39の(検査行列初期値テーブルから求められる)検査行列H(新LDPC符号の検査行列H)を説明する図である。
新LDPC符号の検査行列Hの1列目からのKX列については、列重みがXに、その後のKY1列については、列重みがY1に、その後のKY2列については、列重みがY2に、その後のM-1列については、列重みが2に、最後の1列については、列重みが1に、それぞれなっている。
ここで、KX+KY1+KY2+M-1+1は、符号長N=16200ビットに等しい。
図44は、新LDPC符号の検査行列Hについての、図43の列数KX,KY1,KY2、及びM、並びに、列重みX,Y1、及び、Y2を示す図である。
新LDPC符号の検査行列Hについては、図12及び図13で説明した検査行列と同様に、先頭側(左側)の列ほど、列重みが大の傾向にあり、したがって、新LDPC符号の先頭の符号ビットほど、エラーに強い(エラーに対する耐性がある)傾向がある。
図45は、図39の新LDPC符号のBER/FERのシミュレーション結果を示す図である。
シミュレーションでは、AWGNの通信路(チャネル)を想定し、変調方式として、QPSKを採用するとともに、繰り返し復号回数Cとして、50回を採用した。
図45において、横軸は、Es/N0を表し、縦軸は、BER/FERを表す。なお、実線がBERを表し、点線がFERを表す。
図45によれば、新LDPC符号について、良好なBER/FERが得られており、したがって、新LDPC符号を用いたデータ伝送において、良好な通信品質が確保されることを確認することができる
<受信装置12の構成例>
図46は、図7の受信装置12の構成例を示すブロック図である。
OFDM処理部(OFDM operation)151は、送信装置11(図7)からのOFDM信号を受信し、そのOFDM信号の信号処理を行う。OFDM処理部151が信号処理を行うことにより得られるデータは、フレーム管理部(Frame Management)152に供給される。
フレーム管理部152は、OFDM処理部151から供給されるデータで構成されるフレームの処理(フレーム解釈)を行い、その結果得られる対象データの信号と、制御データの信号とを、周波数デインターリーバ(Frequency Deinterleaver)161と153とに、それぞれ供給する。
周波数デインターリーバ153は、フレーム管理部152からのデータについて、シンボル単位での周波数デインターリーブを行い、デマッパ(Demapper)154に供給する。
デマッパ154は、周波数デインターリーバ153からのデータ(コンスタレーション上のデータ)を、送信装置11側で行われる直交変調で定められる信号点の配置(コンスタレーション)に基づいてデマッピング(信号点配置復号)して直交復調し、その結果得られるデータ(LDPC符号(の尤度))を、LDPCデコーダ(LDPC decoder)155に供給する。
LDPCデコーダ155は、デマッパ154からのLDPC符号のLDPC復号を行い、その結果得られるLDPC対象データ(ここでは、BCH符号)を、BCHデコーダ(BCH decoder)156に供給する。
BCHデコーダ156は、LDPCデコーダ155からのLDPC対象データのBCH復号を行い、その結果得られる制御データ(シグナリング)を出力する。
一方、周波数デインターリーバ161は、フレーム管理部152からのデータについて、シンボル単位での周波数デインターリーブを行い、SISO/MISOデコーダ(SISO/MISO decoder)162に供給する。
SISO/MISOデコーダ162は、周波数デインターリーバ161からのデータの時空間復号を行い、時間デインターリーバ(Time Deinterleaver)163に供給する。
時間デインターリーバ163は、SISO/MISOデコーダ162からのデータについて、シンボル単位での時間デインターリーブを行い、デマッパ(Demapper)164に供給する。
デマッパ164は、時間デインターリーバ163からのデータ(コンスタレーション上のデータ)を、送信装置11側で行われる直交変調で定められる信号点の配置(コンスタレーション)に基づいてデマッピング(信号点配置復号)して直交復調し、その結果得られるデータを、ビットデインターリーバ(Bit Deinterleaver)165に供給する。
ビットデインターリーバ165は、デマッパ164からのデータのビットデインターリーブを行い、そのビットデインターリーブ後のデータであるLDPC符号(の尤度)を、LDPCデコーダ166に供給する。
LDPCデコーダ166は、ビットデインターリーバ165からのLDPC符号のLDPC復号を行い、その結果得られるLDPC対象データ(ここでは、BCH符号)を、BCHデコーダ167に供給する。
BCHデコーダ167は、LDPCデコーダ155からのLDPC対象データのBCH復号を行い、その結果得られるデータを、BBデスクランブラ(BB DeScrambler)168に供給する。
BBデスクランブラ168は、BCHデコーダ167からのデータに、BBデスクランブルを施し、その結果得られるデータを、ヌル削除部(Null Deletion)169に供給する。
ヌル削除部169は、BBデスクランブラ168からのデータから、図8のパダー112で挿入されたNullを削除し、デマルチプレクサ(Demultiplexer)170に供給する。
デマルチプレクサ170は、ヌル削除部169からのデータに多重化されている1以上のストリーム(対象データ)それぞれを分離し、必要な処理を施して、アウトプットストリーム(Output stream)として出力する。
なお、受信装置12は、図46に図示したブロックの一部を設けずに構成することができる。すなわち、例えば、送信装置11(図8)を、時間インターリーバ118、SISO/MISOエンコーダ119、周波数インターリーバ120、及び、周波数インターリーバ124を設けずに構成する場合には、受信装置12は、送信装置11の時間インターリーバ118、SISO/MISOエンコーダ119、周波数インターリーバ120、及び、周波数インターリーバ124にそれぞれ対応するブロックである時間デインターリーバ163、SISO/MISOデコーダ162、周波数デインターリーバ161、及び、周波数デインターリーバ153を設けずに構成することができる。
図47は、図46のビットデインターリーバ165の構成例を示すブロック図である。
ビットデインターリーバ165は、マルチプレクサ(MUX)54、及びカラムツイストデインターリーバ55から構成され、デマッパ164(図46)からのデータであるシンボルのシンボルビットの(ビット)デインターリーブを行う。
すなわち、マルチプレクサ54は、デマッパ164からのシンボルのシンボルビットを対象として、図9のデマルチプレクサ25が行う入れ替え処理に対応する逆入れ替え処理(入れ替え処理の逆の処理)、すなわち、入れ替え処理によって入れ替えられたLDPC符号の符号ビット(の尤度)の位置を元の位置に戻す逆入れ替え処理を行い、その結果得られるLDPC符号を、カラムツイストデインターリーバ55に供給する。
カラムツイストデインターリーバ55は、マルチプレクサ54からのLDPC符号を対象として、図9のカラムツイストインターリーバ24が行う並び替え処理としてのカラムツイストインターリーブに対応するカラムツイストデインターリーブ(カラムツイストインターリーブの逆の処理)、すなわち、並び替え処理としてのカラムツイストインターリーブによって並びが変更されたLDPC符号の符号ビットを、元の並びに戻す逆並び替え処理としての、例えば、カラムツイストデインターリーブを行う。
具体的には、カラムツイストデインターリーバ55は、図28等に示したメモリ31と同様に構成される、デインターリーブ用のメモリに対して、LDPC符号の符号ビットを書き込み、さらに読み出すことで、カラムツイストデインターリーブを行う。
但し、カラムツイストデインターリーバ55では、符号ビットの書き込みは、メモリ31からの符号ビットの読み出し時の読み出しアドレスを、書き込みアドレスとして用いて、デインターリーブ用のメモリのロウ方向に行われる。また、符号ビットの読み出しは、メモリ31への符号ビットの書き込み時の書き込みアドレスを、読み出しアドレスとして用いて、デインターリーブ用のメモリのカラム方向に行われる。
カラムツイストデインターリーブの結果得られるLDPC符号は、カラムツイストデインターリーバ55からLDPCデコーダ166に供給される。
ここで、デマッパ164から、ビットデインターリーバ165に供給されるLDPC符号に、パリティインターリーブ、カラムツイストインターリーブ、及び入れ替え処理が施されている場合、ビットデインターリーバ165では、パリティインターリーブに対応するパリティデインターリーブ(パリティインターリーブの逆の処理、すなわち、パリティインターリーブによって並びが変更されたLDPC符号の符号ビットを、元の並びに戻すパリティデインターリーブ)、入れ替え処理に対応する逆入れ替え処理、及び、カラムツイストインターリーブに対応するカラムツイストデインターリーブのすべてを行うことができる。
但し、図47のビットデインターリーバ165では、入れ替え処理に対応する逆入れ替え処理を行うマルチプレクサ54、及び、カラムツイストインターリーブに対応するカラムツイストデインターリーブを行うカラムツイストデインターリーバ55は、設けられているが、パリティインターリーブに対応するパリティデインターリーブを行うブロックは、設けられておらず、パリティデインターリーブは、行われない。
したがって、ビットデインターリーバ165(のカラムツイストデインターリーバ55)から、LDPCデコーダ166には、逆入れ替え処理、及び、カラムツイストデインターリーブが行われ、かつ、パリティデインターリーブが行われていないLDPC符号が供給される。
LDPCデコーダ166は、ビットデインターリーバ165からのLDPC符号のLDPC復号を、図8のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行い、その結果得られるデータを、LDPC対象データの復号結果として出力する。
図48は、図47のデマッパ164、ビットデインターリーバ165、及び、LDPCデコーダ166が行う処理を説明するフローチャートである。
ステップS111において、デマッパ164は、時間デインターリーバ163からのデータ(信号点にマッピングされたコンスタレーション上のデータ)をデマッピングして直交復調し、ビットデインターリーバ165に供給して、処理は、ステップS112に進む。
ステップS112では、ビットデインターリーバ165は、デマッパ164からのデータのデインターリーブ(ビットデインターリーブ)を行って、処理は、ステップS113に進む。
すなわち、ステップS112では、ビットデインターリーバ165において、マルチプレクサ54が、デマッパ164からのデータ(シンボルのシンボルビットに相当)を対象として、逆入れ替え処理を行い、その結果得られるLDPC符号の符号ビットを、カラムツイストデインターリーバ55に供給する。
カラムツイストデインターリーバ55は、マルチプレクサ54からのLDPC符号を対象として、カラムツイストデインターリーブを行い、その結果得られるLDPC符号(の尤度)を、LDPCデコーダ166に供給する。
ステップS113では、LDPCデコーダ166が、カラムツイストデインターリーバ55からのLDPC符号のLDPC復号を、図8のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hを用いて行い、すなわち、検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行い、その結果得られるデータを、LDPC対象データの復号結果として、BCHデコーダ167に出力する。
なお、図47でも、図9の場合と同様に、説明の便宜のため、逆入れ替え処理を行うマルチプレクサ54と、カラムツイストデインターリーブを行うカラムツイストデインターリーバ55とを、別個に構成するようにしたが、マルチプレクサ54とカラムツイストデインターリーバ55とは、一体的に構成することができる。
また、図9のビットインターリーバ116において、カラムツイストインターリーブを行わない場合には、図47のビットデインターリーバ165において、カラムツイストデインターリーバ55は、設ける必要がない。
次に、図46のLDPCデコーダ166で行われるLDPC復号について、さらに説明する。
図46のLDPCデコーダ166では、上述したように、カラムツイストデインターリーバ55からの、逆入れ替え処理、及び、カラムツイストデインターリーブが行われ、かつ、パリティデインターリーブが行われていないLDPC符号のLDPC復号が、図8のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行われる。
ここで、LDPC復号を、変換検査行列を用いて行うことで、回路規模を抑制しつつ、動作周波数を十分実現可能な範囲に抑えることが可能となるLDPC復号が先に提案されている(例えば、特許第4224777号を参照)。
そこで、まず、図49ないし図52を参照して、先に提案されている、変換検査行列を用いたLDPC復号について説明する。
図49は、符号長Nが90で、符号化率が2/3のLDPC符号の検査行列Hの例を示している。
なお、図49では(後述する図50及び図51においても同様)、0を、ピリオド(.)で表現している。
図49の検査行列Hでは、パリティ行列が階段構造になっている。
図50は、図49の検査行列Hに、式(11)の行置換と、式(12)の列置換を施して得られる検査行列H'を示している。
行置換:6s+t+1行目→5t+s+1行目
・・・(11)
列置換:6x+y+61列目→5y+x+61列目
・・・(12)
但し、式(11)及び(12)において、s,t,x,yは、それぞれ、0≦s<5,0≦t<6,0≦x<5,0≦t<6の範囲の整数である。
式(11)の行置換によれば、6で割って余りが1になる1,7,13,19,25行目を、それぞれ、1,2,3,4,5行目に、6で割って余りが2になる2,8,14,20,26行目を、それぞれ、6,7,8,9,10行目に、という具合に置換が行われる。
また、式(12)の列置換によれば、61列目以降(パリティ行列)に対して、6で割って余りが1になる61,67,73,79,85列目を、それぞれ、61,62,63,64,65列目に、6で割って余りが2になる62,68,74,80,86列目を、それぞれ、66,67,68,69,70列目に、という具合に置換が行われる。
このようにして、図49の検査行列Hに対して、行と列の置換を行って得られた行列(matrix)が、図50の検査行列H'である。
ここで、検査行列Hの行置換を行っても、LDPC符号の符号ビットの並びには影響しない。
また、式(12)の列置換は、上述の、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブの、情報長Kを60と、巡回構造の単位の列数Pを5と、パリティ長M(ここでは、30)の約数q(=M/P)を6と、それぞれしたときのパリティインターリーブに相当する。
したがって、図50の検査行列H'は、図49の検査行列(以下、適宜、元の検査行列という)Hの、K+qx+y+1番目の列を、K+Py+x+1番目の列に置換する列置換を、少なくとも行って得られる変換検査行列である。
図50の変換検査行列H'に対して、図49の元の検査行列HのLDPC符号に、式(12)と同一の置換を行ったものを乗じると、0ベクトルが出力される。すなわち、元の検査行列HのLDPC符号(1符号語)としての行ベクトルcに、式(12)の列置換を施して得られる行ベクトルをc'と表すこととすると、検査行列の性質から、HcTは、0ベクトルとなるから、H'c'Tも、当然、0ベクトルとなる。
以上から、図50の変換検査行列H'は、元の検査行列HのLDPC符号cに、式(12)の列置換を行って得られるLDPC符号c'の検査行列になっている。
したがって、元の検査行列HのLDPC符号cに、式(12)の列置換を行い、その列置換後のLDPC符号c'を、図50の変換検査行列H'を用いて復号(LDPC復号)し、その復号結果に、式(12)の列置換の逆置換を施すことで、元の検査行列HのLDPC符号を、その検査行列Hを用いて復号する場合と同様の復号結果を得ることができる。
図51は、5×5の行列の単位に間隔を空けた、図50の変換検査行列H'を示している。
図51においては、変換検査行列H'は、5×5(=P×P)の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、またはシフト行列のうちの2以上の和(以下、適宜、和行列という)、5×5の0行列の組合わせで表されている。
図51の変換検査行列H'は、5×5の単位行列、準単位行列、シフト行列、和行列、0行列で構成されているということができる。そこで、変換検査行列H'を構成する、これらの5×5の行列(単位行列、準単位行列、シフト行列、和行列、0行列)を、以下、適宜、構成行列という。
P×Pの構成行列で表される検査行列のLDPC符号の復号には、チェックノード演算、及びバリアブルノード演算を、P個同時に行うアーキテクチャ(architecture)を用いることができる。
図52は、そのような復号を行う復号装置の構成例を示すブロック図である。
すなわち、図52は、図49の元の検査行列Hに対して、少なくとも、式(12)の列置換を行って得られる図51の変換検査行列H'を用いて、LDPC符号の復号を行う復号装置の構成例を示している。
図52の復号装置は、6つのFIFO3001ないし3006からなる枝データ格納用メモリ300、FIFO3001ないし3006を選択するセレクタ301、チェックノード計算部302、2つのサイクリックシフト回路303及び308、18個のFIFO3041ないし30418からなる枝データ格納用メモリ304、FIFO3041ないし30418を選択するセレクタ305、受信データを格納する受信データ用メモリ306、バリアブルノード計算部307、復号語計算部309、受信データ並べ替え部310、復号データ並べ替え部311からなる。
まず、枝データ格納用メモリ300と304へのデータの格納方法について説明する。
枝データ格納用メモリ300は、図51の変換検査行列H'の行数30を構成行列の行数(巡回構造の単位の列数P)5で除算した数である6つのFIFO3001ないし3006から構成されている。FIFO300y(y=1,2,・・・,6)は、複数の段数の記憶領域からなり、各段の記憶領域については、構成行列の行数及び列数(巡回構造の単位の列数P)である5つの枝に対応するメッセージを同時に読み出すこと、及び、書き込むことができるようになっている。また、FIFO300yの記憶領域の段数は、図51の変換検査行列の行方向の1の数(ハミング重み)の最大数である9になっている。
FIFO3001には、図51の変換検査行列H'の第1行目から第5行目までの1の位置に対応するデータ(バリアブルノードからのメッセージvi)が、各行共に横方向に詰めた形に(0を無視した形で)格納される。すなわち、第j行第i列を、(j,i)と表すこととすると、FIFO3001の第1段の記憶領域には、変換検査行列H'の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2段の記憶領域には、変換検査行列H'の(1,21)から(5,25)のシフト行列(5×5の単位行列を右方向に3つだけサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。第3から第8段の記憶領域も同様に、変換検査行列H'と対応付けてデータが格納される。そして、第9段の記憶領域には、変換検査行列H'の(1,86)から(5,90)のシフト行列(5×5の単位行列のうちの1行目の1を0に置き換えて1つだけ左にサイクリックシフトしたシフト行列)の1の位置に対応するデータが格納される。
FIFO3002には、図51の変換検査行列H'の第6行目から第10行目までの1の位置に対応するデータが格納される。すなわち、FIFO3002の第1段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列の和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第2段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
すなわち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、単位行列の要素の1のうち1個以上が0になった準単位行列、又は単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、又はシフト行列の1の位置に対応するデータ(単位行列、準単位行列、又はシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3001ないし3006のうちの同一のFIFO)に格納される。
以下、第3から第9段の記憶領域についても、変換検査行列H'に対応付けてデータが格納される。
FIFO3003ないし3006も同様に変換検査行列H'に対応付けてデータを格納する。
枝データ格納用メモリ304は、変換検査行列H'の列数90を、構成行列の列数(巡回構造の単位の列数P)である5で割った18個のFIFO3041ないし30418から構成されている。FIFO304x(x=1,2,・・・,18)は、複数の段数の記憶領域からなり、各段の記憶領域については、構成行列の行数及び列数(巡回構造の単位の列数P)である5つの枝に対応するメッセージを同時に読み出すこと、及び、書き込むことができるようになっている。
FIFO3041には、図51の変換検査行列H'の第1列目から第5列目までの1の位置に対応するデータ(チェックノードからのメッセージuj)が、各列共に縦方向に詰めた形に(0を無視した形で)格納される。すなわち、FIFO3041の第1段の記憶領域には、変換検査行列H'の(1,1)から(5,5)の5×5の単位行列の1の位置に対応するデータが格納される。第2段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列(5×5の単位行列を右に1つだけサイクリックシフトした第1のシフト行列と、右に2つだけサイクリックシフトした第2のシフト行列との和である和行列)を構成する第1のシフト行列の1の位置に対応するデータが格納される。また、第3段の記憶領域には、変換検査行列H'の(6,1)から(10,5)の和行列を構成する第2のシフト行列の1の位置に対応するデータが格納される。
すなわち、重みが2以上の構成行列については、その構成行列を、重みが1であるP×Pの単位行列、単位行列の要素の1のうち1個以上が0になった準単位行列、又は単位行列もしくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、又はシフト行列の1の位置に対応するデータ(単位行列、準単位行列、又はシフト行列に属する枝に対応するメッセージ)は、同一アドレス(FIFO3041ないし30418のうちの同一のFIFO)に格納される。
以下、第4及び第5段の記憶領域についても、変換検査行列H'に対応付けて、データが格納される。このFIFO3041の記憶領域の段数は、変換検査行列H'の第1列から第5列における行方向の1の数(ハミング重み)の最大数である5になっている。
FIFO3042と3043も同様に変換検査行列H'に対応付けてデータを格納し、それぞれの長さ(段数)は、5である。FIFO3044ないし30412も同様に、変換検査行列H'に対応付けてデータを格納し、それぞれの長さは3である。FIFO30413ないし30418も同様に、変換検査行列H'に対応付けてデータを格納し、それぞれの長さは2である。
次に、図52の復号装置の動作について説明する。
枝データ格納用メモリ300は、6つのFIFO3001ないし3006からなり、前段のサイクリックシフト回路308から供給される5つのメッセージD311が、図51の変換検査行列H'のどの行に属するかの情報(Matrixデータ)D312に従って、データを格納するFIFOを、FIFO3001ないし3006の中から選び、選んだFIFOに5つのメッセージD311をまとめて順番に格納していく。また、枝データ格納用メモリ300は、データを読み出す際には、FIFO3001から5つのメッセージD3001を順番に読み出し、次段のセレクタ301に供給する。枝データ格納用メモリ300は、FIFO3001からのメッセージの読み出しの終了後、FIFO3002ないし3006からも、順番に、メッセージを読み出し、セレクタ301に供給する。
セレクタ301は、セレクト信号D301に従って、FIFO3001ないし3006のうちの、現在データが読み出されているFIFOからの5つのメッセージを選択し、メッセージD302として、チェックノード計算部302に供給する。
チェックノード計算部302は、5つのチェックノード計算器3021ないし3025からなり、セレクタ301を通して供給されるメッセージD302(D3021ないしD3025)(式(7)のメッセージvi)を用いて、式(7)に従ってチェックノード演算を行い、そのチェックノード演算の結果得られる5つのメッセージD303(D3031ないしD3035)(式(7)のメッセージuj)をサイクリックシフト回路303に供給する。
サイクリックシフト回路303は、チェックノード計算部302で求められた5つのメッセージD3031ないしD3035を、対応する枝が変換検査行列H'において元となる単位行列(又は準単位行列)を幾つサイクリックシフトしたものであるかの情報(Matrixデータ)D305を元にサイクリックシフトし、その結果をメッセージD304として、枝データ格納用メモリ304に供給する。
枝データ格納用メモリ304は、18個のFIFO3041ないし30418からなり、前段のサイクリックシフト回路303から供給される5つのメッセージD304が変換検査行列H'のどの行に属するかの情報D305に従って、データを格納するFIFOを、FIFO3041ないし30418の中から選び、選んだFIFOに5つのメッセージD304をまとめて順番に格納していく。また、枝データ格納用メモリ304は、データを読み出す際には、FIFO3041から5つのメッセージD3061を順番に読み出し、次段のセレクタ305に供給する。枝データ格納用メモリ304は、FIFO3041からのデータの読み出しの終了後、FIFO3042ないし30418からも、順番に、メッセージを読み出し、セレクタ305に供給する。
セレクタ305は、セレクト信号D307に従って、FIFO3041ないし30418のうちの、現在データが読み出されているFIFOからの5つのメッセージを選択し、メッセージD308として、バリアブルノード計算部307と復号語計算部309に供給する。
一方、受信データ並べ替え部310は、通信路13を通して受信した、図49の検査行列Hに対応するLDPC符号D313を、式(12)の列置換を行うことにより並べ替え、受信データD314として、受信データ用メモリ306に供給する。受信データ用メモリ306は、受信データ並べ替え部310から供給される受信データD314から、受信LLR(対数尤度比)を計算して記憶し、その受信LLRを5個ずつまとめて受信値D309として、バリアブルノード計算部307と復号語計算部309に供給する。
バリアブルノード計算部307は、5つのバリアブルノード計算器3071ないし3075からなり、セレクタ305を通して供給されるメッセージD308(D3081ないしD3085)(式(1)のメッセージuj)と、受信データ用メモリ306から供給される5つの受信値D309(式(1)の受信値u0i)を用いて、式(1)に従ってバリアブルノード演算を行い、その演算の結果得られるメッセージD310(D3101ないしD3105)(式(1)のメッセージvi)を、サイクリックシフト回路308に供給する。
サイクリックシフト回路308は、バリアブルノード計算部307で計算されたメッセージD3101ないしD3105を、対応する枝が変換検査行列H'において元となる単位行列(又は準単位行列)を幾つサイクリックシフトしたものであるかの情報を元にサイクリックシフトし、その結果をメッセージD311として、枝データ格納用メモリ300に供給する。
以上の動作を1巡することで、LDPC符号の1回の復号(バリアブルノード演算及びチェックノード演算)を行うことができる。図52の復号装置は、所定の回数だけLDPC符号を復号した後、復号語計算部309及び復号データ並べ替え部311において、最終的な復号結果を求めて出力する。
すなわち、復号語計算部309は、5つの復号語計算器3091ないし3095からなり、セレクタ305が出力する5つのメッセージD308(D3081ないしD3085)(式(5)のメッセージuj)と、受信データ用メモリ306から供給される5つの受信値D309(式(5)の受信値u0i)を用い、複数回の復号の最終段として、式(5)に基づいて、復号結果(復号語)を計算して、その結果得られる復号データD315を、復号データ並べ替え部311に供給する。
復号データ並べ替え部311は、復号語計算部309から供給される復号データD315を対象に、式(12)の列置換の逆置換を行うことにより、その順序を並べ替え、最終的な復号結果D316として出力する。
以上のように、検査行列(元の検査行列)に対して、行置換と列置換のうちの一方又は両方を施し、P×Pの単位行列、その要素の1のうち1個以上が0になった準単位行列、単位行列もしくは準単位行列をサイクリックシフトしたシフト行列、単位行列、準単位行列、もしくはシフト行列の複数の和である和行列、P×Pの0行列の組合せ、つまり、構成行列の組み合わせで表すことができる検査行列(変換検査行列)に変換することで、LDPC符号の復号を、チェックノード演算とバリアブルノード演算を、検査行列の行数や列数より小さい数のP個同時に行うアーキテクチャ(architecture)を採用することが可能となる。ノード演算(チェックノード演算とバリアブルノード演算)を、検査行列の行数や列数より小さい数のP個同時に行うアーキテクチャを採用する場合、ノード演算を、検査行列の行数や列数に等しい数だけ同時に行う場合に比較して、動作周波数を実現可能な範囲に抑えて、多数の繰り返し復号を行うことができる。
図46の受信装置12を構成するLDPCデコーダ166は、例えば、図52の復号装置と同様に、チェックノード演算とバリアブルノード演算をP個同時に行うことで、LDPC復号を行うようになっている。
すなわち、いま、説明を簡単にするために、図8の送信装置11を構成するLDPCエンコーダ115が出力するLDPC符号の検査行列が、例えば、図49に示した、パリティ行列が階段構造になっている検査行列Hであるとすると、送信装置11のパリティインターリーバ23では、K+qx+y+1番目の符号ビットを、K+Py+x+1番目の符号ビットの位置にインターリーブするパリティインターリーブが、情報長Kを60に、巡回構造の単位の列数Pを5に、パリティ長Mの約数q(=M/P)を6に、それぞれして行われる。
このパリティインターリーブは、上述したように、式(12)の列置換に相当するから、LDPCデコーダ166では、式(12)の列置換を行う必要がない。
このため、図46の受信装置12では、上述したように、カラムツイストデインターリーバ55から、LDPCデコーダ166に対して、パリティデインターリーブが行われていないLDPC符号、つまり、式(12)の列置換が行われた状態のLDPC符号が供給され、LDPCデコーダ166では、式(12)の列置換を行わないことを除けば、図52の復号装置と同様の処理が行われる。
すなわち、図53は、図46のLDPCデコーダ166の構成例を示している。
図53において、LDPCデコーダ166は、図52の受信データ並べ替え部310が設けられていないことを除けば、図52の復号装置と同様に構成されており、式(12)の列置換が行われないことを除いて、図52の復号装置と同様の処理を行うため、その説明は省略する。
以上のように、LDPCデコーダ166は、受信データ並べ替え部310を設けずに構成することができるので、図52の復号装置よりも、規模を削減することができる。
なお、図49ないし図53では、説明を簡単にするために、LDPC符号の符号長Nを90と、情報長Kを60と、巡回構造の単位の列数(構成行列の行数及び列数)Pを5と、パリティ長Mの約数q(=M/P)を6と、それぞれしたが、符号長N、情報長K、巡回構造の単位の列数P、及び約数q(=M/P)のそれぞれは、上述した値に限定されるものではない。
すなわち、図8の送信装置11において、LDPCエンコーダ115が出力するのは、例えば、符号長Nを64800や16200等と、情報長KをN-Pq(=N-M)と、巡回構造の単位の列数Pを360と、約数qをM/Pと、それぞれするLDPC符号であるが、図53のLDPCデコーダ166は、そのようなLDPC符号を対象として、チェックノード演算とバリアブルノード演算をP個同時に行うことで、LDPC復号を行う場合に適用可能である。
図54は、図47のビットデインターリーバ165を構成するマルチプレクサ54の処理を説明する図である。
すなわち、図54のAは、マルチプレクサ54の機能的な構成例を示している。
マルチプレクサ54は、逆入れ替え部1001、及びメモリ1002から構成される。
マルチプレクサ54は、前段のデマッパ164から供給されるシンボルのシンボルビットを対象として、送信装置11のデマルチプレクサ25が行う入れ替え処理に対応する逆入れ替え処理(入れ替え処理の逆の処理)、すなわち、入れ替え処理によって入れ替えられたLDPC符号の符号ビット(シンボルビット)の位置を元の位置に戻す逆入れ替え処理を行い、その結果得られるLDPC符号を、後段のカラムツイストデインターリーバ55に供給する。
すなわち、マルチプレクサ54において、逆入れ替え部1001には、(連続する)b個のシンボルの単位で、そのb個のシンボルのmbビットのシンボルビットy0,y1,・・・,ymb-1が供給される。
逆入れ替え部1001は、mbビットのシンボルビットy0ないしymb-1を、元のmbビットの符号ビットb0,b1,・・・,bmb-1の並び(送信装置11側のデマルチプレクサ25を構成する入れ替え部32での入れ替えが行われる前の符号ビットb0ないしbmb-1の並び)に戻す逆入れ替えを行い、その結果得られるmbビットの符号ビットb0ないしbmb-1を出力する。
メモリ1002は、送信装置11側のデマルチプレクサ25を構成するメモリ31と同様に、ロウ(row)(横)方向にmbビットを記憶するとともに、カラム(column)(縦)方向にN/(mb)ビットを記憶する記憶容量を有する。すなわち、メモリ1002は、N/(mb)ビットを記憶するmb個のカラムから構成される。
但し、メモリ1002では、送信装置11のデマルチプレクサ25のメモリ31からの符号ビットの読み出しが行われる方向に、逆入れ替え部1001が出力するLDPC符号の符号ビットの書き込みが行われ、メモリ31への符号ビットの書き込みが行われる方向に、メモリ1002に書き込まれた符号ビットの読み出しが行われる。
すなわち、受信装置12のマルチプレクサ54では、図54のAに示すように、逆入れ替え部1001が出力するLDPC符号の符号ビットを、mbビット単位で、ロウ方向に書き込むことが、メモリ1002の1行目から下の行に向かって順次行われる。
そして、1符号長分の符号ビットの書き込みが終了すると、マルチプレクサ54では、メモリ1002から、符号ビットを、カラム方向に読み出して、後段のカラムツイストデインターリーバ55に供給する。
ここで、図54Bは、メモリ1002からの符号ビットの読み出しを示す図である。
マルチプレクサ54では、LDPC符号の符号ビットを、メモリ1002を構成するカラムの上から下方向(カラム方向)に読み出すことが、左から右方向のカラムに向かって行われる。
図55は、図47のビットデインターリーバ165を構成するカラムツイストデインターリーバ55の処理を説明する図である。
すなわち、図55は、マルチプレクサ54のメモリ1002の構成例を示している。
メモリ1002は、カラム(縦)方向にmbビットを記憶するとともに、ロウ(横)方向にN/(mb)ビットを記憶する記憶容量を有し、mb個のカラムから構成される。
カラムツイストデインターリーバ55は、メモリ1002に対して、LDPC符号の符号ビットを、ロウ方向に書き込み、カラム方向に読み出すときの読み出し始めの位置を制御することで、カラムツイストデインターリーブを行う。
すなわち、カラムツイストデインターリーバ55では、複数のカラムそれぞれについて、符号ビットの読み出しを開始する読み出し始めの位置を、適宜変更することで、カラムツイストインターリーブで並び替えられた符号ビットの並びを、元の並びに戻す逆並び替え処理を行う。
ここで、図55は、図28で説明した、変調方式が16APSKや16QAM等であり、かつ、倍数bが1である場合の、メモリ1002の構成例を示している。この場合、1シンボルのビット数mは、4ビットであり、また、メモリ1002は、4(=mb)個のカラムで構成される。
カラムツイストデインターリーバ55は、マルチプレクサ54に代わり、入れ替え部1001が出力するLDPC符号の符号ビットのロウ方向への書き込みを、メモリ1002の1行目から下の行に向かって順次行う。
そして、1符号長分の符号ビットの書き込みが終了すると、カラムツイストデインターリーバ55は、符号ビットを、メモリ1002の上から下方向(カラム方向)に読み出すことを、左から右方向のカラムに向かって行う。
但し、カラムツイストデインターリーバ55は、送信装置11側のカラムツイストインターリーバ24が符号ビットを書き込む書き始めの位置を、符号ビットの読み出し始めの位置として、メモリ1002からの符号ビットの読み出しを行う。
すなわち、各カラムの先頭(一番上)の位置のアドレスを0として、カラム方向の各位置のアドレスを、昇順の整数で表すこととすると、変調方式が16APSKや16QAMであり、かつ、倍数bが1である場合には、カラムツイストデインターリーバ55では、最も左のカラムについては、読み出し始めの位置を、アドレスが0の位置とし、(左から)2番目のカラムについては、読み出し始めの位置を、アドレスが2の位置とし、3番目のカラムについては、読み出し始めの位置を、アドレスが4の位置とし、4番目のカラムについては、読み出し始めの位置を、アドレスが7の位置とする。
なお、読み出し始めの位置が、アドレスが0の位置以外の位置のカラムについては、符号ビットの読み出しを、最も下の位置まで行った後は、先頭(アドレスが0の位置)に戻り、読み出し始めの位置の直前の位置までの読み出しが行われる。そして、その後、次(右)のカラムからの読み出しが行われる。
以上のようなカラムツイストデインターリーブを行うことにより、カラムツイストインターリーブで並び替えられた符号ビットの並びが、元の並びに戻される。
図56は、図46のビットデインターリーバ165の他の構成例を示すブロック図である。
なお、図中、図47の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
すなわち、図56のビットデインターリーバ165は、パリティデインターリーバ1011が新たに設けられている他は、図47の場合と同様に構成されている。
図56では、ビットデインターリーバ165は、マルチプレクサ(MUX)54、カラムツイストデインターリーバ55、及び、パリティデインターリーバ1011から構成され、デマッパ164からのLDPC符号の符号ビットのビットデインターリーブを行う。
すなわち、マルチプレクサ54は、デマッパ164からのLDPC符号を対象として、送信装置11のデマルチプレクサ25が行う入れ替え処理に対応する逆入れ替え処理(入れ替え処理の逆の処理)、すなわち、入れ替え処理によって入れ替えられた符号ビットの位置を元の位置に戻す逆入れ替え処理を行い、その結果得られるLDPC符号を、カラムツイストデインターリーバ55に供給する。
カラムツイストデインターリーバ55は、マルチプレクサ54からのLDPC符号を対象として、送信装置11のカラムツイストインターリーバ24が行う並び替え処理としてのカラムツイストインターリーブに対応するカラムツイストデインターリーブを行う。
カラムツイストデインターリーブの結果得られるLDPC符号は、カラムツイストデインターリーバ55からパリティデインターリーバ1011に供給される。
パリティデインターリーバ1011は、カラムツイストデインターリーバ55でのカラムツイストデインターリーブ後の符号ビットを対象として、送信装置11のパリティインターリーバ23が行うパリティインターリーブに対応するパリティデインターリーブ(パリティインターリーブの逆の処理)、すなわち、パリティインターリーブによって並びが変更されたLDPC符号の符号ビットを、元の並びに戻すパリティデインターリーブを行う。
パリティデインターリーブの結果得られるLDPC符号は、パリティデインターリーバ1011からLDPCデコーダ166に供給される。
したがって、図56のビットデインターリーバ165では、LDPCデコーダ166には、逆入れ替え処理、カラムツイストデインターリーブ、及び、パリティデインターリーブが行われたLDPC符号、すなわち、検査行列Hに従ったLDPC符号化によって得られるLDPC符号が供給される。
LDPCデコーダ166は、ビットデインターリーバ165からのLDPC符号のLDPC復号を、送信装置11のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hを用いて行う。すなわち、LDPCデコーダ166は、ビットデインターリーバ165からのLDPC符号のLDPC復号を、送信装置11のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hそのものを用いて、又は、その検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行う。
ここで、図56では、ビットデインターリーバ165(のパリティデインターリーバ1011)からLDPCデコーダ166に対して、検査行列Hに従ったLDPC符号化によって得られるLDPC符号が供給されるため、そのLDPC符号のLDPC復号を、送信装置11のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hそのものを用いて行う場合には、LDPCデコーダ166は、例えば、メッセージ(チェックノードメッセージ、バリバブルノードメッセージ)の演算を1個のノードずつ順次行うフルシリアルデコーディング(full serial decoding)方式によるLDPC復号を行う復号装置や、メッセージの演算をすべてのノードについて同時(並列)に行うフルパラレルデコーディング(full parallel decoding)方式によるLDPC復号を行う復号装置で構成することができる。
また、LDPCデコーダ166において、LDPC符号のLDPC復号を、送信装置11のLDPCエンコーダ115がLDPC符号化に用いた検査行列Hに対して、パリティインターリーブに相当する列置換を少なくとも行って得られる変換検査行列を用いて行う場合には、LDPCデコーダ166は、チェックノード演算、及びバリアブルノード演算を、P(又はPの1以外の約数)個同時に行うアーキテクチャ(architecture)の復号装置であって、変換検査行列を得るための列置換と同様の列置換を、LDPC符号に施すことにより、そのLDPC符号の符号ビットを並び替える受信データ並べ替え部310を有する復号装置(図52)で構成することができる。
なお、図56では、説明の便宜のため、逆入れ替え処理を行うマルチプレクサ54、カラムツイストデインターリーブを行うカラムツイストデインターリーバ55、及び、パリティデインターリーブを行うパリティデインターリーバ1011それぞれを、別個に構成するようにしたが、マルチプレクサ54、カラムツイストデインターリーバ55、及び、パリティデインターリーバ1011の2以上は、送信装置11のパリティインターリーバ23、カラムツイストインターリーバ24、及び、デマルチプレクサ25と同様に、一体的に構成することができる。
また、送信装置11のビットインターリーバ116(図8)を、パリティインターリーバ23、及び、カラムツイストインターリーバ24を設けずに構成する場合には、図56において、ビットデインターリーバ165は、カラムツイストデインターリーバ55、及び、パリティデインターリーバ1011を設けずに構成することができる。
この場合も、LDPCデコーダ166は、検査行列Hそのものを用いてLDPC復号を行うフルシリアルデコーディング方式の復号装置や、検査行列Hそのものを用いてLDPC復号を行うフルパラレルデコーディング方式の復号装置、変換検査行列H'を用いて、P個同時のチェックノード演算、及びバリアブルノード演算によるLDPC復号を行う、受信データ並べ替え部310を有する復号装置(図52)で構成することができる。
<受信システムの構成例>
図57は、受信装置12を適用可能な受信システムの第1の構成例を示すブロック図である。
図57において、受信システムは、取得部1101、伝送路復号処理部1102、及び、情報源復号処理部1103から構成される。
取得部1101は、番組の画像データや音声データ等のLDPC対象データを、少なくともLDPC符号化することで得られるLDPC符号を含む信号を、例えば、地上ディジタル放送、衛星ディジタル放送、CATV網、インターネットその他のネットワーク等の、図示せぬ伝送路(通信路)を介して取得し、伝送路復号処理部1102に供給する。
ここで、取得部1101が取得する信号が、例えば、放送局から、地上波や、衛星波、CATV(Cable Television)網等を介して放送されてくる場合には、取得部1101は、チューナやSTB(Set Top Box)等で構成される。また、取得部1101が取得する信号が、例えば、webサーバから、IPTV(Internet Protocol Television)のようにマルチキャストで送信されてくる場合には、取得部1101は、例えば、NIC(Network Interface Card)等のネットワークI/F(Inter face)で構成される。
伝送路復号処理部1102は、受信装置12に相当する。伝送路復号処理部1102は、取得部1101が伝送路を介して取得した信号に対して、伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施し、その結果得られる信号を、情報源復号処理部1103に供給する。
すなわち、取得部1101が伝送路を介して取得した信号は、伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、伝送路復号処理部1102は、そのような信号に対して、例えば、誤り訂正処理等の伝送路復号処理を施す。
ここで、誤り訂正符号化としては、例えば、LDPC符号化や、BCH符号化等がある。ここでは、誤り訂正符号化として、少なくとも、LDPC符号化が行われている。
また、伝送路復号処理には、変調信号の復調等が含まれることがある。
情報源復号処理部1103は、伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理を少なくとも含む情報源復号処理を施す。
すなわち、取得部1101が伝送路を介して取得した信号には、情報としての画像や音声等のデータ量を少なくするために、情報を圧縮する圧縮符号化が施されていることがあり、その場合、情報源復号処理部1103は、伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理(伸張処理)等の情報源復号処理を施す。
なお、取得部1101が伝送路を介して取得した信号に、圧縮符号化が施されていない場合には、情報源復号処理部1103では、圧縮された情報を元の情報に伸張する処理は行われない。
ここで、伸張処理としては、例えば、MPEGデコード等がある。また、伝送路復号処理には、伸張処理の他、デスクランブル等が含まれることがある。
以上のように構成される受信システムでは、取得部1101において、例えば、画像や音声等のデータに対して、MPEG符号化等の圧縮符号化が施され、さらに、LDPC符号化等の誤り訂正符号化が施された信号が、伝送路を介して取得され、伝送路復号処理部1102に供給される。
伝送路復号処理部1102では、取得部1101からの信号に対して、例えば、受信装置12が行うのと同様の処理等が、伝送路復号処理として施され、その結果得られる信号が、情報源復号処理部1103に供給される。
情報源復号処理部1103では、伝送路復号処理部1102からの信号に対して、MPEGデコード等の情報源復号処理が施され、その結果得られる画像、又は音声が出力される。
以上のような図57の受信システムは、例えば、ディジタル放送としてのテレビジョン放送を受信するテレビチューナ等に適用することができる。
なお、取得部1101、伝送路復号処理部1102、及び、情報源復号処理部1103は、それぞれ、1つの独立した装置(ハードウェア(IC(Integrated Circuit)等)、又はソフトウエアモジュール)として構成することが可能である。
また、取得部1101、伝送路復号処理部1102、及び、情報源復号処理部1103については、取得部1101と伝送路復号処理部1102とのセットや、伝送路復号処理部1102と情報源復号処理部1103とのセット、取得部1101、伝送路復号処理部1102、及び、情報源復号処理部1103のセットを、1つの独立した装置として構成することが可能である。
図58は、受信装置12を適用可能な受信システムの第2の構成例を示すブロック図である。
なお、図中、図57の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図58の受信システムは、取得部1101、伝送路復号処理部1102、及び、情報源復号処理部1103を有する点で、図57の場合と共通し、出力部1111が新たに設けられている点で、図57の場合と相違する。
出力部1111は、例えば、画像を表示する表示装置や、音声を出力するスピーカであり、情報源復号処理部1103から出力される信号としての画像や音声等を出力する。すなわち、出力部1111は、画像を表示し、あるいは、音声を出力する。
以上のような図58の受信システムは、例えば、ディジタル放送としてのテレビジョン放送を受信するTV(テレビジョン受像機)や、ラジオ放送を受信するラジオ受信機等に適用することができる。
なお、取得部1101において取得された信号に、圧縮符号化が施されていない場合には、伝送路復号処理部1102が出力する信号が、出力部1111に供給される。
図59は、受信装置12を適用可能な受信システムの第3の構成例を示すブロック図である。
なお、図中、図57の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図59の受信システムは、取得部1101、及び、伝送路復号処理部1102を有する点で、図57の場合と共通する。
但し、図59の受信システムは、情報源復号処理部1103が設けられておらず、記録部1121が新たに設けられている点で、図57の場合と相違する。
記録部1121は、伝送路復号処理部1102が出力する信号(例えば、MPEGのTSのTSパケット)を、光ディスクや、ハードディスク(磁気ディスク)、フラッシュメモリ等の記録(記憶)媒体に記録する(記憶させる)。
以上のような図59の受信システムは、テレビジョン放送を録画するレコーダ等に適用することができる。
なお、図59において、受信システムは、情報源復号処理部1103を設けて構成し、情報源復号処理部1103で、情報源復号処理が施された後の信号、すなわち、デコードによって得られる画像や音声を、記録部1121で記録することができる。
<コンピュータの一実施の形態>
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図60は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク705やROM703に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体711に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体711は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体711からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部708で受信し、内蔵するハードディスク705にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)702を内蔵している。CPU702には、バス701を介して、入出力インタフェース710が接続されており、CPU702は、入出力インタフェース710を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部707が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)703に格納されているプログラムを実行する。あるいは、また、CPU702は、ハードディスク705に格納されているプログラム、衛星若しくはネットワークから転送され、通信部708で受信されてハードディスク705にインストールされたプログラム、又はドライブ709に装着されたリムーバブル記録媒体711から読み出されてハードディスク705にインストールされたプログラムを、RAM(Random Access Memory)704にロードして実行する。これにより、CPU702は、上述したフローチャートに従った処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU702は、その処理結果を、必要に応じて、例えば、入出力インタフェース710を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部706から出力、あるいは、通信部708から送信、さらには、ハードディスク705に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、例えば、上述した新LDPC符号(の検査行列初期値テーブル)は、通信路13(図7)は、衛星回線や、地上波、ケーブル(有線回線)、その他のいずれであっても用いることが可能である。さらに、新LDPC符号は、ディジタル放送以外のデータ伝送にも用いることができる。