以下、図面を参照して、本発明による一実施例の伝送システムにおける送信装置1及び受信装置2を説明する。本発明による一実施例の伝送システムは、次世代地上放送伝送方式を想定した図1に示す送信装置1、及び図2に示す受信装置2から構成され、次世代地上放送伝送方式で用いるLDPC符号を、前方誤り訂正符号として最適化したものとなっている。
まず、図1を参照して、本発明による一実施例の送信装置1について説明する。
〔送信装置〕
図1は、本発明による一実施例の送信装置1の主要な構成要素のみを概略的に示すブロック図である。この送信装置1は、フレーム生成部111、エネルギー拡散部112、BCH符号化部113、LDPC符号化部114、変調部115を備え、主信号の入力ビット列を送信する場合に、後述する図3に示した伝送フレームの信号を生成してから変調信号を生成するまでの一連の処理を行う。以下、LDPC符号化部114は、単に符号化器とも称する。また、送信装置1は、変調方式及び符号化率といった伝送に関するパラメータを含むTMCC信号を生成し主信号より前に伝送する手段として、TMCC生成部12を有する。TMCC生成部12は、主信号の信号処理を行う主信号処理部11とは別構成により接続し、伝送フレーム生成部111から発生される主信号に対して、TMCC信号を時分割多重により伝送することで、主信号とは独立して、受信装置2に対し伝送に関するパラメータを伝送することが可能である。また、TMCC生成部12は、後述するLDPC符号化部114や、変調部115に対して、TMCC信号が指定するLDPC符号化率(以下、単に「符号化率」とも称する)、及び変調方式を指定する機能を有する。以後、図1に示す送信装置1の各構成要素について説明する。
伝送フレーム生成部111は、LDPC符号化率に応じた伝送フレーム構成に基づき、主信号の入力ビット列を、所定の長さに区切り、LDPC符号化を可能とする伝送フレームを生成する。例えば、LDPC符号化率2/16については、図3に示すように、主信号の入力ビット列は、情報ビット長として8640ビット毎に区切られ、都度、後続する機能ブロックに出力される。
〔符号長69120ビットのLDPC符号〕
まず、図3乃至図38を参照して、符号長69120ビットのLDPC符号におけるLDPC符号化率2/16、4/16、5/16、6/16の各々に関する符号化器及び復号器について説明する。
(符号長69120ビット,LDPC符号化率2/16伝送フレーム構成)
図3(a),(b)は、それぞれ本発明による符号長69120ビットのLDPC符号に係る一実施例のLDPC符号化率2/16の伝送システムにおける伝送フレームの構成を示している。特に、図3(a)は、誤り訂正符号として、LDPC符号化率2/16のLDPC符号のみを用いる場合の伝送フレームの構成を示しており、図3(b)は、誤り訂正符号として、外符号としてのBCH符号、及び内符号としてのLDPC符号化率2/16のLDPC符号よりなる連接符号を用いる場合の伝送フレームの構成を示している。そして、図3(a),(b)にそれぞれ示す伝送フレームは、次世代地上放送伝送方式で用いるLDPC符号を基本とする伝送フレームを想定している。
まず、図3(a)に示す伝送フレームは、LDPC符号化率2/16を満たす情報ビット及びLDPCパリティから構成される。本発明による一実施例の送信装置1は、図3(a)に示す伝送フレーム構成を用いることにより、符号化及び変調を行う。そして、本発明による一実施例の受信装置2(図2を参照。詳細については後述する。)は、この伝送フレーム構成に基づいて、復調及び誤り訂正符号の復号を行う。
また、図3(b)に示す伝送フレームは、図3(a)の変形として、情報ビット、BCHパリティ、及びLDPCパリティから構成され、図3(a)に示す伝送フレームと同様に、本発明による一実施例の送信装置1及び受信装置2に適用可能である。図3(b)において、K_bchはBCH符号のパリティビット長に相当する。外符号の一例として、高度衛星放送方式で利用可能なBCH符号を適用する場合を示しており、K_bchは192ビットである。BCHパリティは基本的に情報ビットの一部として扱われ、LDPC符号で訂正しきれない軽微なビット誤りを保護する役割を有する。LDPCパリティ長が等しい場合、図3(a)及び図3(b)は、LDPC符号の訂正能力は同等である。しかしながら、誤り訂正の大部分の能力はLDPC符号に依存するため、主として、図3(a)に示す伝送フレームを前提に説明する。
図3(a)に示すように、LDPC符号化率2/16の場合、次世代地上放送伝送方式を想定した伝送フレーム長は、LDPC符号長である69120ビットに相当する。69120ビットは360の整数倍で構成され、360×192で分割することが可能である。また、情報ビット長は8640ビットであり、8640/69120=2/16であることから、本伝送フレームはLDPC符号化率2/16を満たしている。また、符号長69120ビットは、高度衛星放送方式におけるLDPC符号長44880ビットよりも十分長いことから、よりシャノン限界に近い誤り訂正能力が期待できる。
図1に示すように、エネルギー拡散部112は、伝送フレーム生成部111の出力ビット列に対し、エネルギー拡散(ビットランダム化)を行う。これは、擬似ランダムな「1」及び「0」のパターンを、M系列を使って発生させ、これとスロット内のデータとでMOD2により加算することにより実現する。これにより、「1」又は「0」が連続することがなくなることから、後述する受信装置2において、同期再生の安定化を図ることができる。
BCH符号化部113は、外符号として、必要に応じて設けられる誤り訂正符号化処理であり、所定のデータに対してBCH符号化を施す。BCH符号化の符号化処理は、非特許文献2に規定されているものと同様とすることができ、その詳細は省略する。尚、図3(a)に示す伝送フレームの構成を用いる場合、図1に示す送信装置1において、BCH符号化部113の処理は不要である。
LDPC符号化部114は、TMCC生成部12で生成するTMCC信号が指定する所定の符号化率に基づき、エネルギー拡散部112を経て入力される所定のデータ(又はBCH符号化部113を経て入力されるBCH符号化データ)に対して、LDPC符号化を施す。尚、本発明に係る符号化器(LDPC符号化部114)のLDPC符号化率2/16におけるLDPC符号検査行列を用いたLDPC符号化についての詳細は、後述する。
変調部115は、TMCC生成部12で生成するTMCC信号が指定する所定の変調方式に基づき直交変調を施して、変調信号を生成する。変調方式には、例えば、BPSK(π/2シフトBPSK(Binary Phase Shift Keying))、QPSK(Quadrature Phase Shift Keying)、8PSK、16APSK(Amplitude and Phase-Shift Keying)(或いは16QAM(Quadrature Amplitude Modulation))、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等が含まれる。
次に、図2を参照して、本発明による一実施例の受信装置2について説明する。
〔受信装置〕
図2は、本発明による一実施例の受信装置2の主要な構成要素のみを概略的に示すブロック図である。この受信装置2は、復調部211、LDPC復号部212、BCH復号部213、及びエネルギー逆拡散部214を含む主信号の信号処理を行う主信号処理部21と、TMCC復調・復号部22とを備えている。
復調部211は、入力された変調信号を直交復調し、LDPC復号部212に対し復調したIQ信号(同相成分Iと直交位相成分Qの直交信号)を出力する。尚、TMCC復調・復号部22は、復調部211に先立ちTMCC信号の復調・復号を行い、復調部211に対して、主信号の変調に適用した変調方式を指定する。また、後述するLDPC復号部212に対しては、主信号のLDPC符号化に適用した符号化率を指定する。本発明に係る符号化器(LDPC符号化部114)にてLDPC符号化処理を行う際の符号化率は2/16、4/16、5/16、6/16の各々に相当する。
LDPC復号部212は、LDPC符号用の復号器として構成され、復調部211からIQ信号が入力されると共に、TMCC復調・復号部22により検出された変調方式及びLDPC符号化率の情報が入力され、所定の変調方式及びLDPC符号化率に合わせた復号を行う。尚、本発明に係る符号化器(LDPC符号化部114)のLDPC符号化率2/16、4/16、5/16、6/16の各々における検査行列を用いたLDPC復号についての詳細は後述する。
BCH復号部213は、送信装置1のBCH符号化部113によりBCH符号化した信号に対し、復号を行う。尚、図3(a)に示す伝送フレームの構成を用いる場合、図2に示す受信装置2において、BCH復号部213の処理は不要である。
エネルギー逆拡散部214は、送信装置1のエネルギー拡散部112において擬似ランダム符号がMOD2により加算された処理を元に戻すため、再度同じ擬似ランダム符号をMOD2により加算し、エネルギー逆拡散処理を行う。これにより、受信装置2における信号処理部21は、送信装置1から送信された主信号の入力ビット列に対応する出力ビット列を復元して外部に出力する。
以上のように、本発明による一実施例の送信装置1及び受信装置2は、長い符号長を持つLDPC符号による誤り訂正符号に対応した伝送フレームを用いて、変調方式と符号化率とを自由に組み合わせることができる。従って、主信号として伝送するMPEG−2 TS又はその他のデジタルデータストリームを効率良く伝送することが可能である。
次に、LDPC符号化率2/16、4/16、5/16、6/16の各々に関して、本発明に係る符号化器(LDPC符号化部114)及び復号器(LDPC復号部212)の各処理過程を順に説明する。
まず、符号長69120ビットのLDPC符号に係る一実施例のLDPC符号化率2/16における符号化器(LDPC符号化部114)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率2/16における符号化器の処理過程)
本実施例の符号化器(LDPC符号化部114)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成し、この検査行列Hを用いてLDPC符号パリティの生成を行う。LDPC符号化率2/16における検査行列Hの基本構成を図4に示す。検査行列Hの行方向の長さがLDPC符号長に相当し、LDPC符号長N=69120と設定する。本検査行列の符号化率は2/16であることから、検査行列Hの列方向の長さがLDPCパリティ長に相当し、LDPCパリティ長P=60480ビットである。
図4において、部分行列A,C,及びDは、上述の表1に示す検査行列初期値テーブルを用いて構成される部分行列であり、部分行列BにはLDGM構造(図5)を適用する。LDGM構造の行重み(検査行列の行方向の1の数)は1行目が1で残りの行重みは全て2、列重みは全ての列で2(ただし、最後列のみ1)である階段行列である。部分行列Bのサイズは、行方向、列方向ともに1800ビットである。また、部分行列Iは、対角行列(図6)を適用する。対角行列の行重みは全て1である。部分行列Iのサイズは、行方向、列方向ともに58680ビットである。部分行列Oは、零行列に相当する。
部分行列Aのサイズは、図7に示すように、1800ビット(行)×8640ビット(列)で構成される。
また、部分行列Cのサイズは、図8に示すように、58680ビット(行)×8640ビット(列)で構成される。
また、部分行列Dのサイズは、図9に示すように、58680ビット(行)×1800ビット(列)で構成される。
部分行列A,C,Dのいずれにおいても、これら部分行列のサイズは有限であることから、以下の式(1)に基づき、検査行列の1の位置は算出される。
Hq−j= mod{(hi−j+ mod((q−1),360)) × Q),P} (1)
ここで、hi−jのiは検査行列初期値テーブルの行番号であり、hi−jのjは検査行列初期値テーブルの列番号である。Hq−jは検査行列Hのq列目の1の行番号を示す。Hq−jのjは列重みの要素数の順番を示す。従って、列重み9の場合、j=1〜9である。q=1は検査行列初期値テーブルの1行目を用いることになる。また、mod(x,y)はxをyで割った余りを意味する。式(1)のQは、符号化率毎に定まる値を持つサイクル数であり、Qは式(2)で求められる。
Q=各部分行列の行サイズ/360 (2)
よって、本実施例のLDPC符号化率2/16において、部分行列Aの場合、Q=5(第1のサイクル数Q1)、部分行列C、及び部分行列Dの場合、Q=163(第2のサイクル数Q2)となる。
以下、より具体的に、LDPC符号化率2/16における部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成する方法について説明する。
まず、部分行列A(図7)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Aを形成するために、上述の表1に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Aの領域内の1の位置を周期的に配置する。表1に示す検査行列初期値テーブルは、列方向に29、行方向に最大21の数値が記載されている。この数値は、部分行列A,C及びDで利用する検査行列の1の最初の位置(初期値)に相当する。即ち、表1中のi行目・j列目の数値座標hi-j(数値)により、図4に示す検査行列H内の部分行列A,C,Dにおける1の最初の位置を指定する。一例として、図7において、h1-1(743)は、部分行列Aの1列目の1を検査行列Hにおける743行目に配置することに相当し、h1-2(1242)は、部分行列Aの1列目の1を検査行列Hにおける1242行目に配置することに相当する。また、h2-1(247)は、部分行列Aの361列目の1を検査行列Hにおける247行目に配置し、h2-2(723)は部分行列Aの361列目の1を検査行列Hにおける723行目に配置することに相当する。
以上の関係に基づき、図7に示すように、本実施例の符号化器(LDPC符号化部114)は、表1における検査行列初期値テーブルから、部分行列Aの360列毎の1を配置する行位置を指定するための24行・j列(3列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列A内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第1のサイクル数Q1=5(5ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、検査行列H内の部分行列Aを構成する。
〈表1における検査行列初期値テーブルの部分行列A用の数値座標hi-j(数値)〉
1行目:h1-1(743)からh1-3(1354)
2行目:h2-1(247)からh2-3(965)
3行目:h3-1(97)からh3-3(1430)
・・・・
24行目:h24-1(789)からh24-3(1730)
このように、表1における部分行列A用の数値座標hi-j(数値)における24行(この24行の各行が部分行列Aの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Aの360列毎の最初の行位置に相当)に読み出し、図7に示すように、第1のサイクル数Q1=5シフトを繰り返すことで、360×24=8640ビット(列)相当の検査行列Hにおける部分行列Aの1の位置を指定することが可能となる。また、部分行列Aの行数は360×Q1=1800であり、部分行列Aのサイズは、行方向が8640ビット、列方向が1800ビットとなる。
続いて、部分行列C(図8)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Cを形成するために、上述の表1に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Cの領域内の1の位置を周期的に配置する。表1に示す検査行列初期値テーブルは、列方向に29、行方向に最大21の数値が記載されている。部分行列Cが部分行列Aと異なるのは、検査行列初期値テーブルにおける読み出し位置と、サイクル数である。
図8に示すように、本実施例の符号化器(LDPC符号化部114)は、表1における検査行列初期値テーブルから、部分行列Cの360列毎の1を配置する行位置を指定するための24行・j列(最大18列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列C内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=163(163ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図4における検査行列H内の部分行列Cを構成する。
〈表1における検査行列初期値テーブルの部分行列C用の数値座標hi-j(数値)〉
1行目:h1-4(5424)からh1-21(56501)
2行目:h2-4(2900)からh2-21(60274)
3行目:h3-4(8209)からh3-21(57501)
・・・・
7行目:h7-4(3142)からh3-21(57058)
8行目:h8-4(2072)からh8-20(60322)
・・・・
24行目:h24-4(7596)からh24-20(60025)
このように、表1における部分行列C用の数値座標hi-j(数値)における24行(この24行の各行が部分行列Cの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Cの360列毎の最初の行位置に相当)に読み出し、図8に示すように、第2のサイクル数Q2=163シフトを繰り返すことで、360×24=8640ビット(列)相当の検査行列Hにおける部分行列Cの1の位置を指定することが可能となる。また、部分行列Cの行数は360×Q2=58680であり、部分行列Cのサイズは、行方向が8640ビット、列方向が58680ビットとなる。
続いて、部分行列D(図9)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Dを形成するために、上述の表1に示す検査行列初期値テーブルの一部(表1のうち、25行目から29行目)から数値を読み出して、検査行列Hにおける部分行列Dの領域内の1の位置を周期的に配置する。ただし、部分行列Dは、部分行列Cと同じ第2のサイクル数Q2=163を適用するが、部分行列Cと異なるのは、検査行列初期値テーブルにおける読み出し周期に、第1のサイクル数Q1=5に相当する行方向のビットシフトを用いることで、パリティインターリーブを適用する点である。
図9に示すように、本実施例の符号化器(LDPC符号化部114)は、表1における検査行列初期値テーブルから、部分行列Dの360列毎の1を配置する行位置を指定するための5行・j列(17列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列D内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして第1のサイクル数Q1=5ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=163(163ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図4における検査行列H内の部分行列Dを構成する。
〈表1における検査行列初期値テーブルの部分行列D用の数値座標hi-j(数値)〉
25行目:h25-1(15518)からh25-17(56990)
26行目:h26-1(4450)からh26-17(57923)
27行目:h27-1(4716)からh27-17(59748)
28行目:h28-1(2114)からh28-17(59654)
29行目:h29-1(5752)からh29-17(57376)
このように、パリティインターリーブを適用した検査行列初期値テーブルの読み出し方法は、部分行列A,Cとは異なる読み出し方法であり、表1における部分行列D用の数値座標hi-j(数値)における5行(この5行の各行が部分行列Dの最初の5列に相当)の数値を1列毎(この1列毎の数値が部分行列Dの最初の5列毎の行位置に相当)に読み出し、表1における部分行列D用の数値座標hi-j(数値)の1行分の読み出しを1セットとする。そして、図9に示すように、第1のサイクル数に相当するQ1=5ビット分の右シフトと、第2のサイクル数に相当するQ2=163分の下方シフトを360回繰り返すことで、360×5=1800ビット(列)相当の検査行列Hにおける部分行列Dの1の位置を指定することが可能となる。また、部分行列Dの行数は360×Q2=58680であり、部分行列Dのサイズは、行方向が1800ビット、列方向が58680ビットとなる。
つまり、表1に示す部分行列Dにおける検査行列初期値テーブルと、検査行列Hにおける列番号の関係を以下に示す。
検査行列初期値テーブル25行目の数値は、検査行列Hにおける8641列目(即ち、部分行列Dの1列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル26行目の数値は、検査行列Hにおける8642列目(即ち、部分行列Dの2列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル27行目の数値は、検査行列Hにおける8643列目(即ち、部分行列Dの3列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル28行目の数値は、検査行列Hにおける8644列目(即ち、部分行列Dの4列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル29行目の数値は、検査行列Hにおける8645列目(即ち、部分行列Dの5列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
そして、図9において、検査行列初期値テーブル25行目から読み出された数値は、Q1=5ビット毎に、Q2=163シフトされる。この操作を360回繰り返すことで、合計360列分、部分行列Dにおける1の位置が確定される。同様に、検査行列初期値テーブル26行目から読み出された数値も、同じく、Q1=5ビット毎に、Q2=163シフトされ、合計360列分、部分行列Dにおける1の位置が確定される。以後、27,28,29行目においても同じ処理を繰り返すことで、360列×5セット=1800ビット相当の部分行列Dにおける1の位置が確定される。よって、部分行列Dのサイズは、行方向が1800ビット、列方向が58680ビットとなる。このように、Q1毎にQ2シフトするパリティインターリーブを適用した部分行列Dを検査行列Hに含めることで、この部分行列Dに対し上位に連接する部分行列Bとの間で発生するサイクル4の発生を回避し、LDPC符号の復号性能を向上することが可能となる。つまり、LDPC符号における伝送特性劣化の要因の1つとしてエラーフロアの発生があり、このエラーフロアの発生要因としては検査行列Hに含まれる1の配置が例えばサイクル4の形状配置を多数持つとエラーフロアが発生する可能性が高くなることが分かっている。そこで、この問題を解決する手段として、部分行列Dを含む検査行列Hとしている。
以上の処理により求められたLDPC符号化率2/16における部分行列A、B、C、D、I、Oの集合行列である検査行列Hを用いて、パリティ検査方程式(3)により、LDPCパリティを算出する。尚、符号化率2/16の場合、情報ビット長は8640ビットであることから、パリティ検査方程式においては、検査行列Hの1行目から1800行目までは、LDGM構造に基づくパリティ計算が適用され、1801行目から60480行目までは、対角構造に基づくパリティ計算が適用される。
H・CT=0 (3)
本実施例の符号化器(LDPC符号化部114)は69120ビットを基本単位としており、また、69120は1,2,3,4,5,6,8,10,12の値で割り切れる値である。よって本実施例の符号化器は、図1に示す送信装置1の機能ブロックとして適用した場合、非常に多様な変調多値数を用いることが可能であり、例えば、BPSK(π/2シフトBPSK)、QPSK、8PSK、16APSK(16QAM)、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等、非常に多様な多値変調方式に対応可能である。よって、本実施例の送信装置1により非常に柔軟な変調方式及び符号化率を組み合わせた信号送信が可能となる。尚、LDPC符号化に用いた検査行列のための検査行列初期値テーブルは、補助情報として送信装置1から受信装置2に送信することができ、或いはまた、受信装置2により予め保持させてもよい。或いは、送信装置1から受信装置2に検査行列自体を送信することができ、又は、検査行列自体を受信装置2により予め保持させてもよい。
続いて、本実施例のLDPC符号化率2/16における復号器(LDPC復号部212)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率2/16における復号器の処理過程)
本実施例の復号器(LDPC復号部212)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを用いて、LDPC符号の復号処理を行う。以下の説明では簡単のため、変調方式はBPSKとする。
本実施例の復号器(LDPC復号部212)は、まず、送信シンボルxn及び受信シンボルynに基づいて対数尤度比λn(n=1〜69120)を算出する。対数尤度比λnとは送るビット0と1の確からしさの比の自然対数であり、送信シンボルxn及び受信シンボルynを用いて式(4)で表される。
λn= ln{P(yn|xn=0)/P(yn|xn=1)} (4)
式(4)により取得した対数尤度比、及び上述の符号化率2/16に相当する検査行列H(図4に相当)を用いて、sum−product復号法等によるLDPC復号法を行う。反復復号回数は任意の値とする。また、LDPC復号においてはsum−product復号法以外にもmin−sum復号法等、多様な手段が提案されているが、検査行列を用いた尤度比を最大化する様々な手法を本発明に係るLDPC復号に適用可能である。
図10は、検査行列初期値テーブル(表1)によるLDPC符号化率2/16についてQPSK変調におけるC/N対BER特性(計算機シミュレーション)を示している。尚、図10は、非特許文献2(ARIB STD−B44)に基づくBCH符号(訂正能力12ビット)による誤り訂正後の結果であり、復号アルゴリズムは、sum−product復号法(例えば、非特許文献1参照)を利用した。sum−product復号法の復号反復回数は50回である。図11に、符号化率2/16におけるQPSKのシャノン限界を達成するC/Nと、図10から取得したBER=1×10−7点におけるC/Nの比較結果を示す。図11より、本検査行列に基づく符号化器、復号器、送信装置1及び受信装置2を適用することで、シャノン限界に迫る復号性能が得られることがわかる。従って、表1に基づく検査行列Hの採用により、現行の地上デジタル放送では困難であったシャノン限界に対し1dB未満となる好ましい伝送性能が得られるようになる。
上述した例では、主として、LDPC符号率2/16に係る伝送フレーム構成と、LDPC符号率2/16に係る検査行列初期値テーブル(表1)に基づく検査行列H、並びにその伝送性能の改善効果について説明したが、図1に示す送信装置1におけるLDPC符号化部114、及び図2に示す受信装置2におけるLDPC復号部212は、LDPC符号率4/16、5/16、6/16の各々についても同様に構成することができる。
以下、LDPC符号率4/16、5/16、6/16の各々に係る伝送フレーム構成と、各LDPC符号率に係る検査行列初期値テーブルに基づく検査行列H、並びにその伝送性能の改善効果について、順に説明する。
(符号長69120ビット,LDPC符号化率4/16の伝送フレーム構成)
図12(a),(b)は、それぞれ本発明による符号長69120ビットのLDPC符号に係る一実施例のLDPC符号化率4/16の伝送システムにおける伝送フレームの構成を示している。特に、図12(a)は、誤り訂正符号として、LDPC符号化率4/16のLDPC符号のみを用いる場合の伝送フレームの構成を示しており、図12(b)は、誤り訂正符号として、外符号としてのBCH符号、及び内符号としてのLDPC符号化率4/16のLDPC符号よりなる連接符号を用いる場合の伝送フレームの構成を示している。そして、図12(a),(b)にそれぞれ示す伝送フレームは、次世代地上放送伝送方式で用いるLDPC符号を基本とする伝送フレームを想定している。
まず、図12(a)に示す伝送フレームは、LDPC符号化率4/16を満たす情報ビット及びLDPCパリティから構成される。本発明による一実施例の送信装置1は、図12(a)に示す伝送フレーム構成を用いることにより、符号化及び変調を行う。そして、本発明による一実施例の受信装置2は、この伝送フレーム構成に基づいて、復調及び誤り訂正符号の復号を行う。
また、図12(b)に示す伝送フレームは、図12(a)の変形として、情報ビット、BCHパリティ、及びLDPCパリティから構成され、図12(a)に示す伝送フレームと同様に、本発明による一実施例の送信装置1及び受信装置2に適用可能である。図12(b)において、K_bchはBCH符号のパリティビット長に相当する。外符号の一例として、高度衛星放送方式で利用可能なBCH符号を適用する場合を示しており、K_bchは192ビットである。BCHパリティは基本的に情報ビットの一部として扱われ、LDPC符号で訂正しきれない軽微なビット誤りを保護する役割を有する。LDPCパリティ長が等しい場合、図12(a)及び図12(b)は、LDPC符号の訂正能力は同等である。しかしながら、誤り訂正の大部分の能力はLDPC符号に依存するため、主として、図12(a)に示す伝送フレームを前提に説明する。
図12(a)に示すように、次世代地上放送伝送方式を想定した伝送フレーム長は、LDPC符号長である69120ビットに相当する。69120ビットは360の整数倍で構成され、360×192で分割することが可能である。また、情報ビット長は17280ビットであり、17280/69120=4/16であることから、本伝送フレームはLDPC符号化率4/16を満たしている。また、符号長69120ビットは、高度衛星放送方式におけるLDPC符号長44880ビットよりも十分長いことから、よりシャノン限界に近い誤り訂正能力が期待できる。
次に、本発明に係る符号化器(LDPC符号化部114)及び復号器(LDPC復号部212)の各処理過程を順に説明する。
まず、一実施例のLDPC符号化率4/16における符号化器(LDPC符号化部114)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率4/16における符号化器の処理過程)
本実施例の符号化器(LDPC符号化部114)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成し、この検査行列Hを用いてLDPC符号パリティの生成を行う。LDPC符号化率4/16における検査行列Hの基本構成を図13に示す。検査行列Hの行方向の長さがLDPC符号長に相当し、LDPC符号長N=69120と設定する。本検査行列の符号化率は4/16であることから、検査行列Hの列方向の長さがLDPCパリティ長に相当し、LDPCパリティ長P=51840ビットである。
図13において、部分行列A,C,及びDは、上述の表2に示す検査行列初期値テーブルを用いて構成される部分行列であり、部分行列BにはLDGM構造(図14)を適用する。LDGM構造の行重み(検査行列の行方向の1の数)は1行目が1で残りの行重みは全て2、列重みは全ての列で2(ただし、最後列のみ1)である階段行列である。部分行列Bのサイズは、行方向、列方向ともに1800ビットである。また、部分行列Iは、対角行列(図15)を適用する。対角行列の行重みは全て1である。部分行列Iのサイズは、行方向、列方向ともに50040ビットである。部分行列Oは、零行列に相当する。
部分行列Aのサイズは、図16に示すように、1800ビット(行)×17280ビット(列)で構成される。
また、部分行列Cのサイズは、図17に示すように、50040ビット(行)×17280ビット(列)で構成される。
また、部分行列Dのサイズは、図18に示すように、50040ビット(行)×1800ビット(列)で構成される。
部分行列A,C,Dのいずれにおいても、これら部分行列のサイズは有限であることから、上述した式(1)に基づき、検査行列の1の位置は算出され、式(1)のQは、符号化率毎に定まる値を持つサイクル数であり、Qは上述した式(2)で求められる。
よって、本実施例のLDPC符号化率4/16において、部分行列Aの場合、Q=5(第1のサイクル数Q1)、部分行列C、及び部分行列Dの場合、Q=139(第2のサイクル数Q2)となる。
以下、より具体的に、LDPC符号化率4/16における部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成する方法について説明する。
まず、部分行列A(図16)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Aを形成するために、上述の表2に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Aの領域内の1の位置を周期的に配置する。表2に示す検査行列初期値テーブルは、列方向に53、行方向に最大13の数値が記載されている。この数値は、部分行列A,C及びDで利用する検査行列の1の最初の位置(初期値)に相当する。即ち、表2中のi行目・j列目の数値座標hi-j(数値)により、図13に示す検査行列H内の部分行列A,C,Dにおける1の最初の位置を指定する。一例として、図16において、h1-1(88)は、部分行列Aの1列目の1を検査行列Hにおける88行目に配置することに相当し、h1-2(324)は、部分行列Aの1列目の1を検査行列Hにおける324行目に配置することに相当する。また、h2-1(1136)は、部分行列Aの361列目の1を検査行列Hにおける1136行目に配置し、h2-2(1229)は部分行列Aの361列目の1を検査行列Hにおける1229行目に配置することに相当する。
以上の関係に基づき、図16に示すように、本実施例の符号化器(LDPC符号化部114)は、表2における検査行列初期値テーブルから、部分行列Aの360列毎の1を配置する行位置を指定するための48行・j列(3列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列A内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第1のサイクル数Q1=5(5ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、検査行列H内の部分行列Aを構成する。
〈表2における検査行列初期値テーブルの部分行列A用の数値座標hi-j(数値)〉
1行目:h1-1(88)からh1-3(940)
2行目:h2-1(1136)からh2-3(1707)
3行目:h3-1(965)からh3-3(1794)
・・・・
48行目:h48-1(67)からh48-3(1246)
このように、表2における部分行列A用の数値座標hi-j(数値)における48行(この48行の各行が部分行列Aの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Aの360列毎の最初の行位置に相当)に読み出し、図16に示すように、第1のサイクル数Q1=5シフトを繰り返すことで、360×48=17280ビット(列)相当の検査行列Hにおける部分行列Aの1の位置を指定することが可能となる。また、部分行列Aの行数は360×Q1=1800であり、部分行列Aのサイズは、行方向が17280ビット、列方向が1800ビットとなる。
続いて、部分行列C(図17)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Cを形成するために、上述の表2に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Cの領域内の1の位置を周期的に配置する。表2に示す検査行列初期値テーブルは、列方向に53、行方向に最大13の数値が記載されている。部分行列Cが部分行列Aと異なるのは、検査行列初期値テーブルにおける読み出し位置と、サイクル数である。
図17に示すように、本実施例の符号化器(LDPC符号化部114)は、表2における検査行列初期値テーブルから、部分行列Cの360列毎の1を配置する行位置を指定するための48行・j列(10列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列C内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=139(139ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図13における検査行列H内の部分行列Cを構成する。
〈表2における検査行列初期値テーブルの部分行列C用の数値座標hi-j(数値)〉
1行目:h1-4(5671)からh1-13(47570)
2行目:h2-4(6181)からh2-13(51347)
3行目:h3-4(3988)からh3-13(51728)
・・・・
48行目:h48-4(13092)からh48-13(48057)
このように、表2における部分行列C用の数値座標hi-j(数値)における48行(この48行の各行が部分行列Cの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Cの360列毎の最初の行位置に相当)に読み出し、図17に示すように、第2のサイクル数Q2=139シフトを繰り返すことで、360×48=17280ビット(列)相当の検査行列Hにおける部分行列Cの1の位置を指定することが可能となる。また、部分行列Cの行数は360×Q2=50040であり、部分行列Cのサイズは、行方向が17280ビット、列方向が50040ビットとなる。
続いて、部分行列D(図18)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Dを形成するために、上述の表2に示す検査行列初期値テーブルの一部(表2のうち、49行目から53行目)から数値を読み出して、検査行列Hにおける部分行列Dの領域内の1の位置を周期的に配置する。ただし、部分行列Dは、部分行列Cと同じ第2のサイクル数Q2=139を適用するが、部分行列Cと異なるのは、検査行列初期値テーブルにおける読み出し周期に、第1のサイクル数Q1=5に相当する行方向のビットシフトを用いることで、パリティインターリーブを適用する点である。
図18に示すように、本実施例の符号化器(LDPC符号化部114)は、表2における検査行列初期値テーブルから、部分行列Dの360列毎の1を配置する行位置を指定するための5行・j列(11列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列D内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして第1のサイクル数Q1=5ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=139(139ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図13における検査行列H内の部分行列Dを構成する。
〈表2における検査行列初期値テーブルの部分行列D用の数値座標hi-j(数値)〉
49行目:h49-1(3009)からh49-11(45590)
50行目:h50-1(2479)からh50-11(48243)
51行目:h51-1(6072)からh51-11(44472)
52行目:h52-1(2164)からh52-11(40143)
53行目:h53-1(4094)からh53-11(49258)
このように、パリティインターリーブを適用した検査行列初期値テーブルの読み出し方法は、部分行列A,Cとは異なる読み出し方法であり、表2における部分行列D用の数値座標hi-j(数値)における5行(この5行の各行が部分行列Dの最初の5列に相当)の数値を1列毎(この1列毎の数値が部分行列Dの最初の5列毎の行位置に相当)に読み出し、表2における部分行列D用の数値座標hi-j(数値)の1行分の読み出しを1セットとする。そして、図18に示すように、第1のサイクル数に相当するQ1=5ビット分の右シフトと、第2のサイクル数に相当するQ2=139分の下方シフトを360回繰り返すことで、360×5=1800ビット(列)相当の検査行列Hにおける部分行列Dの1の位置を指定することが可能となる。また、部分行列Dの行数は360×Q2=50040であり、部分行列Dのサイズは、行方向が1800ビット、列方向が50040ビットとなる。
つまり、表2に示す部分行列Dにおける検査行列初期値テーブルと、検査行列Hにおける列番号の関係を以下に示す。
検査行列初期値テーブル49行目の数値は、検査行列Hにおける17281列目(即ち、部分行列Dの1列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル50行目の数値は、検査行列Hにおける17282列目(即ち、部分行列Dの2列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル51行目の数値は、検査行列Hにおける17283列目(即ち、部分行列Dの3列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル52行目の数値は、検査行列Hにおける17284列目(即ち、部分行列Dの4列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル53行目の数値は、検査行列Hにおける17285列目(即ち、部分行列Dの5列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
そして、図18において、検査行列初期値テーブル49行目から読み出された数値は、Q1=5ビット毎に、Q2=139シフトされる。この操作を360回繰り返すことで、合計360列分、部分行列Dにおける1の位置が確定される。同様に、検査行列初期値テーブル50行目から読み出された数値も、同じく、Q1=5ビット毎に、Q2=139シフトされ、合計360列分、部分行列Dにおける1の位置が確定される。以後、51,52,53行目においても同じ処理を繰り返すことで、360列×5セット=1800ビット相当の部分行列Dにおける1の位置が確定される。よって、部分行列Dのサイズは、行方向が1800ビット、列方向が50040ビットとなる。このように、Q1毎にQ2シフトするパリティインターリーブを適用した部分行列Dを検査行列Hに含めることで、この部分行列Dに対し上位に連接する部分行列Bとの間で発生するサイクル4の発生を回避し、LDPC符号の復号性能を向上することが可能となる。つまり、LDPC符号における伝送特性劣化の要因の1つとしてエラーフロアの発生があり、このエラーフロアの発生要因としては検査行列Hに含まれる1の配置が例えばサイクル4の形状配置を多数持つとエラーフロアが発生する可能性が高くなることが分かっている。そこで、この問題を解決する手段として、部分行列Dを含む検査行列Hとしている。
以上の処理により求められたLDPC符号化率4/16における部分行列A、B、C、D、I、Oの集合行列である検査行列Hを用いて、上述したパリティ検査方程式(3)により、LDPCパリティを算出する。尚、符号化率4/16の場合、情報ビット長は17280ビットであることから、パリティ検査方程式においては、検査行列Hの1行目から1800行目までは、LDGM構造に基づくパリティ計算が適用され、1801行目から51840行目までは、対角構造に基づくパリティ計算が適用される。
本実施例の符号化器(LDPC符号化部114)は69120ビットを基本単位としており、また、69120は1,2,3,4,5,6,8,10,12の値で割り切れる値である。よって本実施例の符号化器は、図1に示す送信装置1の機能ブロックとして適用した場合、非常に多様な変調多値数を用いることが可能であり、例えば、BPSK(π/2シフトBPSK)、QPSK、8PSK、16APSK(16QAM)、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等、非常に多様な多値変調方式に対応可能である。よって、本実施例の送信装置1により非常に柔軟な変調方式及び符号化率を組み合わせた信号送信が可能となる。尚、LDPC符号化に用いた検査行列のための検査行列初期値テーブルは、補助情報として送信装置1から受信装置2に送信することができ、或いはまた、受信装置2により予め保持させてもよい。或いは、送信装置1から受信装置2に検査行列自体を送信することができ、又は、検査行列自体を受信装置2により予め保持させてもよい。
続いて、本実施例のLDPC符号化率4/16における復号器(LDPC復号部212)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率4/16における復号器の処理過程)
本実施例の復号器(LDPC復号部212)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを用いて、LDPC符号の復号処理を行う。以下の説明では簡単のため、変調方式はBPSKとする。
本実施例の復号器(LDPC復号部212)は、まず、送信シンボルxn及び受信シンボルynに基づいて対数尤度比λn(n=1〜69120)を算出する。対数尤度比λnとは送るビット0と1の確からしさの比の自然対数であり、送信シンボルxn及び受信シンボルynを用いて上述した式(4)で表される。
式(4)により取得した対数尤度比、及び上述の符号化率4/16に相当する検査行列H(図13に相当)を用いて、sum−product復号法等によるLDPC復号法を行う。反復復号回数は任意の値とする。また、LDPC復号においてはsum−product復号法以外にもmin−sum復号法等、多様な手段が提案されているが、検査行列を用いた尤度比を最大化する様々な手法を本発明に係るLDPC復号に適用可能である。
図19は、検査行列初期値テーブル(表2)によるLDPC符号化率4/16についてQPSK変調におけるC/N対BER特性(計算機シミュレーション)を示している。尚、図19は、非特許文献2(ARIB STD−B44)に基づくBCH符号(訂正能力12ビット)による誤り訂正後の結果であり、復号アルゴリズムは、sum−product復号法(例えば、非特許文献1参照)を利用した。sum−product復号法の復号反復回数は50回である。図20に、符号化率4/16におけるQPSKのシャノン限界を達成するC/Nと、図19から取得したBER=1×10−7点におけるC/Nの比較結果を示す。図20より、本検査行列に基づく符号化器、復号器、送信装置1及び受信装置2を適用することで、シャノン限界に迫る復号性能が得られることがわかる。従って、表2に基づく検査行列Hの採用により、現行の地上デジタル放送では困難であったシャノン限界に対し1dB未満となる好ましい伝送性能が得られるようになる。
(符号長69120ビット,LDPC符号化率5/16の伝送フレーム構成)
図21(a),(b)は、それぞれ本発明による符号長69120ビットのLDPC符号に係る一実施例のLDPC符号化率5/16の伝送システムにおける伝送フレームの構成を示している。特に、図21(a)は、誤り訂正符号として、LDPC符号化率5/16のLDPC符号のみを用いる場合の伝送フレームの構成を示しており、図3(b)は、誤り訂正符号として、外符号としてのBCH符号、及び内符号としてのLDPC符号化率5/16のLDPC符号よりなる連接符号を用いる場合の伝送フレームの構成を示している。そして、図21(a),(b)にそれぞれ示す伝送フレームは、次世代地上放送伝送方式で用いるLDPC符号を基本とする伝送フレームを想定している。
まず、図21(a)に示す伝送フレームは、LDPC符号化率5/16を満たす情報ビット及びLDPCパリティから構成される。本発明による一実施例の送信装置1は、図21(a)に示す伝送フレーム構成を用いることにより、符号化及び変調を行う。そして、本発明による一実施例の受信装置2は、この伝送フレーム構成に基づいて、復調及び誤り訂正符号の復号を行う。
また、図21(b)に示す伝送フレームは、図21(a)の変形として、情報ビット、BCHパリティ、及びLDPCパリティから構成され、図21(a)に示す伝送フレームと同様に、本発明による一実施例の送信装置1及び受信装置2に適用可能である。図21(b)において、K_bchはBCH符号のパリティビット長に相当する。外符号の一例として、高度衛星放送方式で利用可能なBCH符号を適用する場合を示しており、K_bchは192ビットである。BCHパリティは基本的に情報ビットの一部として扱われ、LDPC符号で訂正しきれない軽微なビット誤りを保護する役割を有する。LDPCパリティ長が等しい場合、図21(a)及び図21(b)は、LDPC符号の訂正能力は同等である。しかしながら、誤り訂正の大部分の能力はLDPC符号に依存するため、主として、図21(a)に示す伝送フレームを前提に説明する。
図21(a)に示すように、次世代地上放送伝送方式を想定した伝送フレーム長は、LDPC符号長である69120ビットに相当する。69120ビットは360の整数倍で構成され、360×192で分割することが可能である。また、情報ビット長は21600ビットであり、21600/69120=5/16であることから、本伝送フレームはLDPC符号化率5/16を満たしている。また、符号長69120ビットは、高度衛星放送方式におけるLDPC符号長44880ビットよりも十分長いことから、よりシャノン限界に近い誤り訂正能力が期待できる。
まず、一実施例のLDPC符号化率5/16における符号化器(LDPC符号化部114)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率5/16における符号化器の処理過程)
本実施例の符号化器(LDPC符号化部114)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成し、この検査行列Hを用いてLDPC符号パリティの生成を行う。LDPC符号化率5/16における検査行列Hの基本構成を図22に示す。検査行列Hの行方向の長さがLDPC符号長に相当し、LDPC符号長N=69120と設定する。本検査行列の符号化率は5/16であることから、検査行列Hの列方向の長さがLDPCパリティ長に相当し、LDPCパリティ長P=47520ビットである。
図22において、部分行列A,C,及びDは、上述の表3に示す検査行列初期値テーブルを用いて構成される部分行列であり、部分行列BにはLDGM構造(図23)を適用する。LDGM構造の行重み(検査行列の行方向の1の数)は1行目が1で残りの行重みは全て2、列重みは全ての列で2(ただし、最後列のみ1)である階段行列である。部分行列Bのサイズは、行方向、列方向ともに1800ビットである。また、部分行列Iは、対角行列(図24)を適用する。対角行列の行重みは全て1である。部分行列Iのサイズは、行方向、列方向ともに45720ビットである。部分行列Oは、零行列に相当する。
部分行列Aのサイズは、図25に示すように、1800ビット(行)×21600ビット(列)で構成される。
また、部分行列Cのサイズは、図26に示すように、45720ビット(行)×21600ビット(列)で構成される。
また、部分行列Dのサイズは、図27に示すように、45720ビット(行)×1800ビット(列)で構成される。
部分行列A,C,Dのいずれにおいても、これら部分行列のサイズは有限であることから、上述した式(1)に基づき、検査行列の1の位置は算出され、式(1)のQは、符号化率毎に定まる値を持つサイクル数であり、Qは上述した式(2)で求められる。
よって、本実施例のLDPC符号化率5/16において、部分行列Aの場合、Q=5(第1のサイクル数Q1)、部分行列C、及び部分行列Dの場合、Q=127(第2のサイクル数Q2)となる。
以下、より具体的に、LDPC符号化率5/16における部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成する方法について説明する。
まず、部分行列A(図25)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Aを形成するために、上述の表3に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Aの領域内の1の位置を周期的に配置する。表3に示す検査行列初期値テーブルは、列方向に65、行方向に最大12の数値が記載されている。この数値は、部分行列A,C及びDで利用する検査行列の1の最初の位置(初期値)に相当する。即ち、表3中のi行目・j列目の数値座標hi-j(数値)により、図22に示す検査行列H内の部分行列A,C,Dにおける1の最初の位置を指定する。一例として、図25において、h1-1(754)は、部分行列Aの1列目の1を検査行列Hにおける754行目に配置することに相当し、h1-2(1583)は、部分行列Aの1列目の1を検査行列Hにおける1583行目に配置することに相当する。また、h2-1(187)は、部分行列Aの361列目の1を検査行列Hにおける187行目に配置し、h2-2(488)は部分行列Aの361列目の1を検査行列Hにおける488行目に配置することに相当する。
以上の関係に基づき、図25に示すように、本実施例の符号化器(LDPC符号化部114)は、表3における検査行列初期値テーブルから、部分行列Aの360列毎の1を配置する行位置を指定するための60行・j列(最大3列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列A内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第1のサイクル数Q1=5(5ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、検査行列H内の部分行列Aを構成する。
〈表3における検査行列初期値テーブルの部分行列A用の数値座標hi-j(数値)〉
1行目:h1-1(774)からh1-2(1583)
2行目:h2-1(187)からh2-2(488)
3行目:h3-1(886)からh3-2(1010)
4行目:h4-1(1101)からh4-2(1183)
5行目:h5-1(283)からh5-2(460)
6行目:h6-1(111)からh6-3(1265)
・・・・
60行目:h60-1(761)からh60-3(1242)
このように、表3における部分行列A用の数値座標hi-j(数値)における60行(この60行の各行が部分行列Aの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Aの360列毎の最初の行位置に相当)に読み出し、図25に示すように、第1のサイクル数Q1=5シフトを繰り返すことで、360×60=21600ビット(列)相当の検査行列Hにおける部分行列Aの1の位置を指定することが可能となる。また、部分行列Aの行数は360×Q1=1800であり、部分行列Aのサイズは、行方向が21600ビット、列方向が1800ビットとなる。
続いて、部分行列C(図26)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Cを形成するために、上述の表3に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Cの領域内の1の位置を周期的に配置する。表3に示す検査行列初期値テーブルは、列方向に65、行方向に最大12の数値が記載されている。部分行列Cが部分行列Aと異なるのは、検査行列初期値テーブルにおける読み出し位置と、サイクル数である。
図26に示すように、本実施例の符号化器(LDPC符号化部114)は、表3における検査行列初期値テーブルから、部分行列Cの360列毎の1を配置する行位置を指定するための60行・j列(最大10列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列C内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=127(127ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図22における検査行列H内の部分行列Cを構成する。
〈表3における検査行列初期値テーブルの部分行列C用の数値座標hi-j(数値)〉
1行目:h1-3(7200)からh1-12(44894)
2行目:h2-3(2727)からh2-12(46671)
3行目:h3-3(13409)からh3-10(47450)
4行目:h4-3(2141)からh4-10(37652)
5行目:h5-3(4362)からh5-10(46201)
6行目:h6-4(8144)からh6-11(43231)
・・・・
60行目:h60-4(2808)からh60-11(40215)
このように、表3における部分行列C用の数値座標hi-j(数値)における60行(この60行の各行が部分行列Cの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Cの360列毎の最初の行位置に相当)に読み出し、図26に示すように、第2のサイクル数Q2=127シフトを繰り返すことで、360×60=21600ビット(列)相当の検査行列Hにおける部分行列Cの1の位置を指定することが可能となる。また、部分行列Cの行数は360×Q2=45720であり、部分行列Cのサイズは、行方向が21600ビット、列方向が45720ビットとなる。
続いて、部分行列D(図27)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Dを形成するために、上述の表3に示す検査行列初期値テーブルの一部(表3のうち、61行目から65行目)から数値を読み出して、検査行列Hにおける部分行列Dの領域内の1の位置を周期的に配置する。ただし、部分行列Dは、部分行列Cと同じ第2のサイクル数Q2=127を適用するが、部分行列Cと異なるのは、検査行列初期値テーブルにおける読み出し周期に、第1のサイクル数Q1=5に相当する行方向のビットシフトを用いることで、パリティインターリーブを適用する点である。
図27に示すように、本実施例の符号化器(LDPC符号化部114)は、表3における検査行列初期値テーブルから、部分行列Dの360列毎の1を配置する行位置を指定するための5行・j列(9列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列D内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして第1のサイクル数Q1=5ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=127(127ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図22における検査行列H内の部分行列Dを構成する。
〈表3における検査行列初期値テーブルの部分行列D用の数値座標hi-j(数値)〉
61行目:h61-1(7173)からh61-9(40288)
62行目:h62-1(4656)からh62-9(45395)
63行目:h63-1(8410)からh63-9(46251)
64行目:h64-1(8401)からh64-9(45997)
65行目:h65-1(6188)からh65-9(30935)
このように、パリティインターリーブを適用した検査行列初期値テーブルの読み出し方法は、部分行列A,Cとは異なる読み出し方法であり、表3における部分行列D用の数値座標hi-j(数値)における5行(この5行の各行が部分行列Dの最初の5列に相当)の数値を1列毎(この1列毎の数値が部分行列Dの最初の5列毎の行位置に相当)に読み出し、表3における部分行列D用の数値座標hi-j(数値)の1行分の読み出しを1セットとする。そして、図27に示すように、第1のサイクル数に相当するQ1=5ビット分の右シフトと、第2のサイクル数に相当するQ2=127分の下方シフトを360回繰り返すことで、360×5=1800ビット(列)相当の検査行列Hにおける部分行列Dの1の位置を指定することが可能となる。また、部分行列Dの行数は360×Q2=45720であり、部分行列Dのサイズは、行方向が1800ビット、列方向が45720ビットとなる。
つまり、表3に示す部分行列Dにおける検査行列初期値テーブルと、検査行列Hにおける列番号の関係を以下に示す。
検査行列初期値テーブル61行目の数値は、検査行列Hにおける21601列目(即ち、部分行列Dの1列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル62行目の数値は、検査行列Hにおける21602列目(即ち、部分行列Dの2列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル63行目の数値は、検査行列Hにおける21603列目(即ち、部分行列Dの3列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル64行目の数値は、検査行列Hにおける21604列目(即ち、部分行列Dの4列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル65行目の数値は、検査行列Hにおける21605列目(即ち、部分行列Dの5列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
そして、図27において、検査行列初期値テーブル61行目から読み出された数値は、Q1=5ビット毎に、Q2=127シフトされる。この操作を360回繰り返すことで、合計360列分、部分行列Dにおける1の位置が確定される。同様に、検査行列初期値テーブル62行目から読み出された数値も、同じく、Q1=5ビット毎に、Q2=127シフトされ、合計360列分、部分行列Dにおける1の位置が確定される。以後、63,64,65行目においても同じ処理を繰り返すことで、360列×5セット=1800ビット相当の部分行列Dにおける1の位置が確定される。よって、部分行列Dのサイズは、行方向が1800ビット、列方向が45720ビットとなる。このように、Q1毎にQ2シフトするパリティインターリーブを適用した部分行列Dを検査行列Hに含めることで、この部分行列Dに対し上位に連接する部分行列Bとの間で発生するサイクル4の発生を回避し、LDPC符号の復号性能を向上することが可能となる。つまり、LDPC符号における伝送特性劣化の要因の1つとしてエラーフロアの発生があり、このエラーフロアの発生要因としては検査行列Hに含まれる1の配置が例えばサイクル4の形状配置を多数持つとエラーフロアが発生する可能性が高くなることが分かっている。そこで、この問題を解決する手段として、部分行列Dを含む検査行列Hとしている。
以上の処理により求められたLDPC符号化率5/16における部分行列A、B、C、D、I、Oの集合行列である検査行列Hを用いて、上述したパリティ検査方程式(3)により、LDPCパリティを算出する。尚、符号化率5/16の場合、情報ビット長は21600ビットであることから、パリティ検査方程式においては、検査行列Hの1行目から1800行目までは、LDGM構造に基づくパリティ計算が適用され、1801行目から47520行目までは、対角構造に基づくパリティ計算が適用される。
本実施例の符号化器(LDPC符号化部114)は69120ビットを基本単位としており、また、69120は1,2,3,4,5,6,8,10,12の値で割り切れる値である。よって本実施例の符号化器は、図1に示す送信装置1の機能ブロックとして適用した場合、非常に多様な変調多値数を用いることが可能であり、例えば、BPSK(π/2シフトBPSK)、QPSK、8PSK、16APSK(16QAM)、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等、非常に多様な多値変調方式に対応可能である。よって、本実施例の送信装置1により非常に柔軟な変調方式及び符号化率を組み合わせた信号送信が可能となる。尚、LDPC符号化に用いた検査行列のための検査行列初期値テーブルは、補助情報として送信装置1から受信装置2に送信することができ、或いはまた、受信装置2により予め保持させてもよい。或いは、送信装置1から受信装置2に検査行列自体を送信することができ、又は、検査行列自体を受信装置2により予め保持させてもよい。
続いて、本実施例のLDPC符号化率5/16における復号器(LDPC復号部212)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率5/16における復号器の処理過程)
本実施例の復号器(LDPC復号部212)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを用いて、LDPC符号の復号処理を行う。以下の説明では簡単のため、変調方式はBPSKとする。
本実施例の復号器(LDPC復号部212)は、まず、送信シンボルxn及び受信シンボルynに基づいて対数尤度比λn(n=1〜69120)を算出する。対数尤度比λnとは送るビット0と1の確からしさの比の自然対数であり、送信シンボルxn及び受信シンボルynを用いて上述した式(4)で表される。
式(4)により取得した対数尤度比、及び上述の符号化率5/16に相当する検査行列H(図22に相当)を用いて、sum−product復号法等によるLDPC復号法を行う。反復復号回数は任意の値とする。また、LDPC復号においてはsum−product復号法以外にもmin−sum復号法等、多様な手段が提案されているが、検査行列を用いた尤度比を最大化する様々な手法を本発明に係るLDPC復号に適用可能である。
図28は、検査行列初期値テーブル(表3)によるLDPC符号化率5/16についてQPSK変調におけるC/N対BER特性(計算機シミュレーション)を示している。尚、図28は、非特許文献2(ARIB STD−B44)に基づくBCH符号(訂正能力12ビット)による誤り訂正後の結果であり、復号アルゴリズムは、sum−product復号法(例えば、非特許文献1参照)を利用した。sum−product復号法の復号反復回数は50回である。図29に、符号化率5/16におけるQPSKのシャノン限界を達成するC/Nと、図28から取得したBER=1×10−7点におけるC/Nの比較結果を示す。図29より、本検査行列に基づく符号化器、復号器、送信装置1及び受信装置2を構成することで、シャノン限界に迫る復号性能が得られることがわかる。従って、表3に基づく検査行列Hの採用により、現行の地上デジタル放送では困難であったシャノン限界に対し1dB未満となる好ましい伝送性能が得られるようになる。
(符号長69120ビット,LDPC符号化率6/16の伝送フレーム構成)
図30(a),(b)は、それぞれ本発明による符号長69120ビットのLDPC符号に係る一実施例のLDPC符号化率6/16の伝送システムにおける伝送フレームの構成を示している。特に、図30(a)は、誤り訂正符号として、LDPC符号化率6/16のLDPC符号のみを用いる場合の伝送フレームの構成を示しており、図3(b)は、誤り訂正符号として、外符号としてのBCH符号、及び内符号としてのLDPC符号化率6/16のLDPC符号よりなる連接符号を用いる場合の伝送フレームの構成を示している。そして、図30(a),(b)にそれぞれ示す伝送フレームは、次世代地上放送伝送方式で用いるLDPC符号を基本とする伝送フレームを想定している。
まず、図30(a)に示す伝送フレームは、LDPC符号化率6/16を満たす情報ビット及びLDPCパリティから構成される。本発明による一実施例の送信装置1は、図30(a)に示す伝送フレーム構成を用いることにより、符号化及び変調を行う。そして、本発明による一実施例の受信装置2は、この伝送フレーム構成に基づいて、復調及び誤り訂正符号の復号を行う。
また、図30(b)に示す伝送フレームは、図30(a)の変形として、情報ビット、BCHパリティ、及びLDPCパリティから構成され、図30(a)に示す伝送フレームと同様に、本発明による一実施例の送信装置1及び受信装置2に適用可能である。図30(b)において、K_bchはBCH符号のパリティビット長に相当する。外符号の一例として、高度衛星放送方式で利用可能なBCH符号を適用する場合を示しており、K_bchは192ビットである。BCHパリティは基本的に情報ビットの一部として扱われ、LDPC符号で訂正しきれない軽微なビット誤りを保護する役割を有する。LDPCパリティ長が等しい場合、図30(a)及び図30(b)は、LDPC符号の訂正能力は同等である。しかしながら、誤り訂正の大部分の能力はLDPC符号に依存するため、主として、図30(a)に示す伝送フレームを前提に説明する。
図30(a)に示すように、次世代地上放送伝送方式を想定した伝送フレーム長は、LDPC符号長である69120ビットに相当する。69120ビットは360の整数倍で構成され、360×192で分割することが可能である。また、情報ビット長は25920ビットであり、25920/69120=6/16であることから、本伝送フレームはLDPC符号化率6/16を満たしている。また、符号長69120ビットは、高度衛星放送方式におけるLDPC符号長44880ビットよりも十分長いことから、よりシャノン限界に近い誤り訂正能力が期待できる。
まず、一実施例のLDPC符号化率6/16における符号化器(LDPC符号化部114)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率6/16における符号化器の処理過程)
本実施例の符号化器(LDPC符号化部114)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成し、この検査行列Hを用いてLDPC符号パリティの生成を行う。LDPC符号化率6/16における検査行列Hの基本構成を図31に示す。検査行列Hの行方向の長さがLDPC符号長に相当し、LDPC符号長N=69120と設定する。本検査行列の符号化率は6/16であることから、検査行列Hの列方向の長さがLDPCパリティ長に相当し、LDPCパリティ長P=43200ビットである。
図31において、部分行列A,C,及びDは、上述の表4に示す検査行列初期値テーブルを用いて構成される部分行列であり、部分行列BにはLDGM構造(図32)を適用する。LDGM構造の行重み(検査行列の行方向の1の数)は1行目が1で残りの行重みは全て2、列重みは全ての列で2(ただし、最後列のみ1)である階段行列である。部分行列Bのサイズは、行方向、列方向ともに1800ビットである。また、部分行列Iは、対角行列(図33)を適用する。対角行列の行重みは全て1である。部分行列Iのサイズは、行方向、列方向ともに41400ビットである。部分行列Oは、零行列に相当する。
部分行列Aのサイズは、図34に示すように、1800ビット(行)×25920ビット(列)で構成される。
また、部分行列Cのサイズは、図35に示すように、41400ビット(行)×25920ビット(列)で構成される。
また、部分行列Dのサイズは、図36に示すように、41400ビット(行)×1800ビット(列)で構成される。
部分行列A,C,Dのいずれにおいても、これら部分行列のサイズは有限であることから、上述した式(1)に基づき、検査行列の1の位置は算出され、式(1)のQは、符号化率毎に定まる値を持つサイクル数であり、Qは上述した式(2)で求められる。
よって、本実施例のLDPC符号化率6/16において、部分行列Aの場合、Q=5(第1のサイクル数Q1)、部分行列C、及び部分行列Dの場合、Q=115(第2のサイクル数Q2)となる。
以下、より具体的に、LDPC符号化率6/16における部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成について説明する。
まず、部分行列A(図34)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Aを形成するために、上述の表4に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Aの領域内の1の位置を周期的に配置する。表4に示す検査行列初期値テーブルは、列方向に77、行方向に最大12の数値が記載されている。この数値は、部分行列A,C及びDで利用する検査行列の1の最初の位置(初期値)に相当する。即ち、表4中のi行目・j列目の数値座標hi-j(数値)により、図31に示す検査行列H内の部分行列A,C,Dにおける1の最初の位置を指定する。一例として、図34において、h1-1(910)は、部分行列Aの1列目の1を検査行列Hにおける910行目に配置することに相当し、h1-2(1224)は、部分行列Aの1列目の1を検査行列Hにおける1224行目に配置することに相当する。また、h2-1(602)は、部分行列Aの361列目の1を検査行列Hにおける602行目に配置し、h2-2(1599)は部分行列Aの361列目の1を検査行列Hにおける1599行目に配置することに相当する。
以上の関係に基づき、図34に示すように、本実施例の符号化器(LDPC符号化部114)は、表4における検査行列初期値テーブルから、部分行列Aの360列毎の1を配置する行位置を指定するための72行・j列(最大3列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列A内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第1のサイクル数Q1=5(5ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、検査行列H内の部分行列Aを構成する。
〈表4における検査行列初期値テーブルの部分行列A用の数値座標hi-j(数値)〉
1行目:h1-1(910)からh1-2(1224)
・・・・
25行目:h25-1(209)からh25-2(1725)
26行目:h26-1(201)からh26-3(1643)
・・・・
72行目:h72-1(473)からh72-3(1374)
このように、表4における部分行列A用の数値座標hi-j(数値)における72行(この72行の各行が部分行列Aの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Aの360列毎の最初の行位置に相当)に読み出し、図34に示すように、第1のサイクル数Q1=5シフトを繰り返すことで、360×72=25920ビット(列)相当の検査行列Hにおける部分行列Aの1の位置を指定することが可能となる。また、部分行列Aの行数は360×Q1=1800であり、部分行列Aのサイズは、行方向が25920ビット、列方向が1800ビットとなる。
続いて、部分行列C(図35)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Cを形成するために、上述の表4に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Cの領域内の1の位置を周期的に配置する。表4に示す検査行列初期値テーブルは、列方向に77、行方向に最大12の数値が記載されている。部分行列Cが部分行列Aと異なるのは、検査行列初期値テーブルにおける読み出し位置と、サイクル数である。
図35に示すように、本実施例の符号化器(LDPC符号化部114)は、表4における検査行列初期値テーブルから、部分行列Cの360列毎の1を配置する行位置を指定するための72行・j列(最大10列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列C内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=115(115ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図31における検査行列H内の部分行列Cを構成する。
〈表4における検査行列初期値テーブルの部分行列C用の数値座標hi-j(数値)〉
1行目:h1-3(9915)からh1-12(35296)
・・・・
22行目:h22-3(2244)からh22-12(35420)
23行目:h23-3(10233)からh23-8(41986)
・・・・
25行目:h25-3(2098)からh25-8(35854)
26行目:h26-4(2745)からh26-9(29478)
・・・・
72行目:h26-4(6781)からh72-9(16858)
このように、表4における部分行列C用の数値座標hi-j(数値)における72行(この72行の各行が部分行列Cの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Cの360列毎の最初の行位置に相当)に読み出し、図35に示すように、第2のサイクル数Q2=115シフトを繰り返すことで、360×72=25920ビット(列)相当の検査行列Hにおける部分行列Cの1の位置を指定することが可能となる。また、部分行列Cの行数は360×Q2=41400であり、部分行列Cのサイズは、行方向が25920ビット、列方向が41400ビットとなる。
続いて、部分行列D(図36)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Dを形成するために、上述の表4に示す検査行列初期値テーブルの一部(表4のうち、73行目から77行目)から数値を読み出して、検査行列Hにおける部分行列Dの領域内の1の位置を周期的に配置する。ただし、部分行列Dは、部分行列Cと同じ第2のサイクル数Q2=115を適用するが、部分行列Cと異なるのは、検査行列初期値テーブルにおける読み出し周期に、第1のサイクル数Q1=5に相当する行方向のビットシフトを用いることで、パリティインターリーブを適用する点である。
図36に示すように、本実施例の符号化器(LDPC符号化部114)は、表4における検査行列初期値テーブルから、部分行列Dの360列毎の1を配置する行位置を指定するための5行・j列(7列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列D内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして第1のサイクル数Q1=5ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=115(115ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図31における検査行列H内の部分行列Dを構成する。
〈表4における検査行列初期値テーブルの部分行列D用の数値座標hi-j(数値)〉
73行目:h73-1(12796)からh73-7(25584)
74行目:h74-1(9420)からh74-7(36703)
75行目:h75-1(26267)からh75-7(42550)
76行目:h76-1(5004)からh76-7(39968)
77行目:h77-1(17764)からh77-7(41091)
このように、パリティインターリーブを適用した検査行列初期値テーブルの読み出し方法は、部分行列A,Cとは異なる読み出し方法であり、表4における部分行列D用の数値座標hi-j(数値)における5行(この5行の各行が部分行列Dの最初の5列に相当)の数値を1列毎(この1列毎の数値が部分行列Dの最初の5列毎の行位置に相当)に読み出し、表4における部分行列D用の数値座標hi-j(数値)の1行分の読み出しを1セットとする。そして、図36に示すように、第1のサイクル数に相当するQ1=5ビット分の右シフトと、第2のサイクル数に相当するQ2=115分の下方シフトを360回繰り返すことで、360×5=1800ビット(列)相当の検査行列Hにおける部分行列Dの1の位置を指定することが可能となる。また、部分行列Dの行数は360×Q2=41400であり、部分行列Dのサイズは、行方向が1800ビット、列方向が41400ビットとなる。
つまり、表4に示す部分行列Dにおける検査行列初期値テーブルと、検査行列Hにおける列番号の関係を以下に示す。
検査行列初期値テーブル73行目の数値は、検査行列Hにおける25921列目(即ち、部分行列Dの1列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル74行目の数値は、検査行列Hにおける25922列目(即ち、部分行列Dの2列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル75行目の数値は、検査行列Hにおける25923列目(即ち、部分行列Dの3列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル76行目の数値は、検査行列Hにおける25924列目(即ち、部分行列Dの4列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル77行目の数値は、検査行列Hにおける25925列目(即ち、部分行列Dの5列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
そして、図36において、検査行列初期値テーブル73行目から読み出された数値は、Q1=5ビット毎に、Q2=115シフトされる。この操作を360回繰り返すことで、合計360列分、部分行列Dにおける1の位置が確定される。同様に、検査行列初期値テーブル74行目から読み出された数値も、同じく、Q1=5ビット毎に、Q2=115シフトされ、合計360列分、部分行列Dにおける1の位置が確定される。以後、75,76,77行目においても同じ処理を繰り返すことで、360列×5セット=1800ビット相当の部分行列Dにおける1の位置が確定される。よって、部分行列Dのサイズは、行方向が1800ビット、列方向が41400ビットとなる。このように、Q1毎にQ2シフトするパリティインターリーブを適用した部分行列Dを検査行列Hに含めることで、この部分行列Dに対し上位に連接する部分行列Bとの間で発生するサイクル4の発生を回避し、LDPC符号の復号性能を向上することが可能となる。つまり、LDPC符号における伝送特性劣化の要因の1つとしてエラーフロアの発生があり、このエラーフロアの発生要因としては検査行列Hに含まれる1の配置が例えばサイクル4の形状配置を多数持つとエラーフロアが発生する可能性が高くなることが分かっている。そこで、この問題を解決する手段として、部分行列Dを含む検査行列Hとしている。
以上の処理により求められたLDPC符号化率6/16における部分行列A、B、C、D、I、Oの集合行列である検査行列Hを用いて、上述したパリティ検査方程式(3)により、LDPCパリティを算出する。尚、符号化率6/16の場合、情報ビット長は25920ビットであることから、パリティ検査方程式においては、検査行列Hの1行目から1800行目までは、LDGM構造に基づくパリティ計算が適用され、1801行目から43200行目までは、対角構造に基づくパリティ計算が適用される。
本実施例の符号化器(LDPC符号化部114)は69120ビットを基本単位としており、また、69120は1,2,3,4,5,6,8,10,12の値で割り切れる値である。よって本実施例の符号化器は、図1に示す送信装置1の機能ブロックとして適用した場合、非常に多様な変調多値数を用いることが可能であり、例えば、BPSK(π/2シフトBPSK)、QPSK、8PSK、16APSK(16QAM)、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等、非常に多様な多値変調方式に対応可能である。よって、本実施例の送信装置1により非常に柔軟な変調方式及び符号化率を組み合わせた信号送信が可能となる。尚、LDPC符号化に用いた検査行列のための検査行列初期値テーブルは、補助情報として送信装置1から受信装置2に送信することができ、或いはまた、受信装置2により予め保持させてもよい。或いは、送信装置1から受信装置2に検査行列自体を送信することができ、又は、検査行列自体を受信装置2により予め保持させてもよい。
続いて、本実施例のLDPC符号化率6/16における復号器(LDPC復号部212)の処理過程について説明する。
(符号長69120ビット,LDPC符号化率6/16における復号器の処理過程)
本実施例の復号器(LDPC復号部212)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを用いて、LDPC符号の復号処理を行う。以下の説明では簡単のため、変調方式はBPSKとする。
本実施例の復号器(LDPC復号部212)は、まず、送信シンボルxn及び受信シンボルynに基づいて対数尤度比λn(n=1〜69120)を算出する。対数尤度比λnとは送るビット0と1の確からしさの比の自然対数であり、送信シンボルxn及び受信シンボルynを用いて上述した式(4)で表される。
式(4)により取得した対数尤度比、及び上述の符号化率6/16に相当する検査行列H(図31に相当)を用いて、sum−product復号法等によるLDPC復号法を行う。反復復号回数は任意の値とする。また、LDPC復号においてはsum−product復号法以外にもmin−sum復号法等、多様な手段が提案されているが、検査行列を用いた尤度比を最大化する様々な手法を本発明に係るLDPC復号に適用可能である。
図37は、検査行列初期値テーブル(表4)によるLDPC符号化率6/16についてQPSK変調におけるC/N対BER特性(計算機シミュレーション)を示している。尚、図37は、非特許文献2(ARIB STD−B44)に基づくBCH符号(訂正能力12ビット)による誤り訂正後の結果であり、復号アルゴリズムは、sum−product復号法(例えば、非特許文献1参照)を利用した。sum−product復号法の復号反復回数は50回である。図38に、符号化率6/16におけるQPSKのシャノン限界を達成するC/Nと、図37から取得したBER=1×10−7点におけるC/Nの比較結果を示す。図38より、本検査行列に基づく符号化器、復号器、送信装置1及び受信装置2を構成することで、シャノン限界に迫る復号性能が得られることがわかる。従って、表4に基づく検査行列Hの採用により、現行の地上デジタル放送では困難であったシャノン限界に対し1dB未満となる好ましい伝送性能が得られるようになる。
〔符号長17280ビットのLDPC符号〕
次に、図39乃至図52を参照して、符号長17280ビットのLDPC符号におけるLDPC符号化率2/16、3/16、4/16、5/16、6/16の各々に関する符号化器(LDPC符号化部114)及び復号器(LDPC復号部212)について説明する。尚、符号長17280ビットのLDPC符号の符号化器(LDPC符号化部114)を備える送信装置1、並びに符号長17280ビットのLDPC符号の復号器(LDPC復号部212)を備える受信装置2の構成は、上述した図1及び図2に示すものと同様に構成される。
(符号長17280ビット,LDPC符号化率2/16伝送フレーム構成)
図39(a),(b)は、それぞれ本発明によるLDPC符号の符号長N=17280ビットに係る一実施例のLDPC符号化率2/16の伝送システムにおける伝送フレームの構成を示している。特に、図39(a)は、誤り訂正符号として、LDPC符号化率2/16のLDPC符号のみを用いる場合の伝送フレームの構成を示しており、図39(b)は、誤り訂正符号として、外符号としてのBCH符号、及び内符号としてのLDPC符号化率2/16のLDPC符号よりなる連接符号を用いる場合の伝送フレームの構成を示している。そして、図39(a),(b)にそれぞれ示す伝送フレームは、次世代地上放送伝送方式で用いるLDPC符号を基本とする伝送フレームを想定している。
まず、図39(a)に示す伝送フレームは、LDPC符号化率2/16を満たす情報ビット及びLDPCパリティから構成される。本発明による一実施例の送信装置1は、図3(a)に示す伝送フレーム構成を用いることにより、符号化及び変調を行う。そして、本発明による一実施例の受信装置2は、この伝送フレーム構成に基づいて、復調及び誤り訂正符号の復号を行う。
また、図39(b)に示す伝送フレームは、図39(a)の変形として、情報ビット、BCHパリティ、及びLDPCパリティから構成され、図39(a)に示す伝送フレームと同様に、本発明による一実施例の送信装置1及び受信装置2に適用可能である。図39(b)において、K_bchはBCH符号のパリティビット長に相当する。外符号の一例として、高度衛星放送方式で利用可能なBCH符号を適用することも可能であるが、その他にも、K_bchとして168ビットのBCH符号を適用できる。BCHパリティは基本的に情報ビットの一部として扱われ、LDPC符号で訂正しきれない軽微なビット誤りを保護する役割を有する。LDPCパリティ長が等しい場合、図39(a)及び図39(b)は、LDPC符号の訂正能力は同等である。しかしながら、誤り訂正の大部分の能力はLDPC符号に依存するため、主として、図39(a)に示す伝送フレームを前提に説明する。
図39(a)に示すように、LDPC符号化率2/16の場合、次世代地上放送伝送方式を想定した伝送フレーム長は、LDPC符号長であるN=17280ビットに相当する。17280ビットはM=360の整数倍で構成され、360×48で分割することが可能である。また、情報ビット長J=2160ビットであり、2160/17280=2/16であることから、本伝送フレームはLDPC符号化率2/16を満たしている。また、符号長17280ビットは、高度衛星放送方式におけるLDPC符号長44880ビットよりも短いことから誤り訂正能力としては不利になるが簡易な伝送方式として、現行の地上デジタル放送よりシャノン限界に近い誤り訂正能力が期待できる。
(符号長17280ビット,LDPC符号化率2/16における符号化器の処理過程)
本実施例の符号化器(LDPC符号化部114)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成し、この検査行列Hを用いてLDPC符号パリティの生成を行う。LDPC符号化率2/16における検査行列Hの基本構成を図40に示す。検査行列Hの行方向の長さがLDPC符号長に相当し、LDPC符号長N=17280と設定する。本検査行列の符号化率は2/16であることから、検査行列Hの列方向の長さがLDPCパリティ長に相当し、LDPCパリティ長P=15120ビットである。
図40において、部分行列A,C,及びDは、上述の表5に示す検査行列初期値テーブルを用いて構成される部分行列であり、部分行列BにはLDGM構造(図41)を適用する。LDGM構造の行重み(検査行列の行方向の1の数)は1行目が1で残りの行重みは全て2、列重みは全ての列で2(ただし、最後列のみ1)である階段行列である。部分行列Bのサイズは、行方向、列方向ともに1440ビットである。また、部分行列Iは、対角行列(図42)を適用する。対角行列の行重みは全て1である。部分行列Iのサイズは、行方向、列方向ともに13680ビットである。部分行列Oは、零行列に相当する。
部分行列Aのサイズは、図43に示すように、M1×J=1440ビット(行)×2160ビット(列)で構成される。
また、部分行列Cのサイズは、図44に示すように、M2×J=13680ビット(行)×2160ビット(列)で構成される。
また、部分行列Dのサイズは、図45に示すように、M2×M1=13680ビット(行)×1440ビット(列)で構成される。
部分行列A,C,Dのいずれにおいても、これら部分行列のサイズは有限であることから、上述した式(1)に基づき、検査行列の1の位置は算出され、式(1)のQは、符号化率毎に定まる値を持つサイクル数であり、Qは上述した式(2)で求められる。
よって、本実施例のLDPC符号化率2/16において、部分行列Aの場合、Q=4(第1のサイクル数Q1=M1/M=1440/360)、部分行列C、及び部分行列Dの場合、Q=38(第2のサイクル数Q2=M2/M=13680/360)となる。
以下、より具体的に、LDPC符号化率2/16における部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを生成する方法について説明する。
まず、部分行列A(図43)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Aを形成するために、上述の表5に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Aの領域内の1の位置を周期的に配置する。表5に示す検査行列初期値テーブルは、列方向に10、行方向に最大11の数値が記載されている。この数値は、部分行列A,C及びDで利用する検査行列の1の最初の位置(初期値)に相当する。即ち、表5中のi行目・j列目の数値座標hi-j(数値)により、図40に示す検査行列H内の部分行列A,C,Dにおける1の最初の位置を指定する。一例として、図43において、h1-1(698)は、部分行列Aの1列目の1を検査行列Hにおける698行目に配置することに相当し、h1-2(964)は、部分行列Aの1列目の1を検査行列Hにおける964行目に配置することに相当する。また、h2-1(534)は、部分行列Aの361列目の1を検査行列Hにおける534行目に配置し、h2-2(595)は部分行列Aの361列目の1を検査行列Hにおける595行目に配置することに相当する。
以上の関係に基づき、図43に示すように、本実施例の符号化器(LDPC符号化部114)は、表5における検査行列初期値テーブルから、部分行列Aの360列毎の1を配置する行位置を指定するための6行・j列(3列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列A内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第1のサイクル数Q1=4(4ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、検査行列H内の部分行列Aを構成する。
〈表5における検査行列初期値テーブルの部分行列A用の数値座標hi-j(数値)〉
1行目:h1-1(698)からh1-3(1335)
2行目:h2-1(534)からh2-3(1325)
3行目:h3-1(262)からh3-3(1336)
4行目:h4-1(884)からh4-3(1301)
5行目:h5-1(8)からh5-3(853)
6行目:h6-1(73)からh6-3(816)
このように、表5における部分行列A用の数値座標hi-j(数値)における6行(この6行の各行が部分行列Aの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Aの360列毎の最初の行位置に相当)に読み出し、図43に示すように、第1のサイクル数Q1=4シフトを繰り返すことで、360×6=2160ビット(列)相当の検査行列Hにおける部分行列Aの1の位置を指定することが可能となる。また、部分行列Aの行数は360×Q1=1440であり、部分行列Aのサイズは、行方向が2160ビット、列方向が1440ビットとなる。
続いて、部分行列C(図44)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Cを形成するために、上述の表2に示す検査行列初期値テーブルの一部から数値を読み出して、検査行列Hにおける部分行列Cの領域内の1の位置を周期的に配置する。表5に示す検査行列初期値テーブルは、列方向に10、行方向に最大11の数値が記載されている。部分行列Cが部分行列Aと異なるのは、検査行列初期値テーブルにおける読み出し位置と、サイクル数である。
図44に示すように、本実施例の符号化器(LDPC符号化部114)は、表5における検査行列初期値テーブルから、部分行列Cの360列毎の1を配置する行位置を指定するための6行・j列(最大8列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列C内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして1ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=38(38ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図40における検査行列H内の部分行列Cを構成する。
〈表5における検査行列初期値テーブルの部分行列C用の数値座標hi-j(数値)〉
1行目:h1-4(3209)からh1-10(13592)
2行目:h2-4(1970)からh2-11(15025)
3行目:h3-4(2307)からh3-11(10902)
4行目:h4-4(6441)からh4-11(11622)
5行目:h5-4(3911)からh5-11(10034)
6行目:h6-4(3957)からh6-11(14862)
このように、表5における部分行列C用の数値座標hi-j(数値)における6行(この6行の各行が部分行列Cの360列毎の最初の1列に相当)の数値を1列毎(この1列毎の数値が部分行列Cの360列毎の最初の行位置に相当)に読み出し、図44に示すように、第2のサイクル数Q2=38シフトを繰り返すことで、360×6=2160ビット(列)相当の検査行列Hにおける部分行列Cの1の位置を指定することが可能となる。また、部分行列Cの行数は360×Q2=13680であり、部分行列Cのサイズは、行方向が2160ビット、列方向が13680ビットとなる。
続いて、部分行列D(図45)について説明する。本実施例の符号化器(LDPC符号化部114)は、部分行列Dを形成するために、上述の表5に示す検査行列初期値テーブルの一部(表5のうち、7行目から10行目)から数値を読み出して、検査行列Hにおける部分行列Dの領域内の1の位置を周期的に配置する。ただし、部分行列Dは、部分行列Cと同じ第2のサイクル数Q2=38を適用するが、部分行列Cと異なるのは、検査行列初期値テーブルにおける読み出し周期に、第1のサイクル数Q1=4に相当する行方向のビットシフトを用いることで、パリティインターリーブを適用する点である。
図45に示すように、本実施例の符号化器(LDPC符号化部114)は、表2における検査行列初期値テーブルから、部分行列Dの360列毎の1を配置する行位置を指定するための4行・j列(10列)の数値座標hi-j(数値)のすべてを読み出して当該指定される部分行列D内の位置に1を最初に割り当て、この最初に割り当てた1の位置を基準にして第1のサイクル数Q1=4ビット分を行方向に右方シフトし、且つ第2サイクル数Q2=38(38ビット)で列方向に下方シフトした位置に1を割り当てることを繰り返すことで、図45における検査行列H内の部分行列Dを構成する。
〈表5における検査行列初期値テーブルの部分行列D用の数値座標hi-j(数値)〉
7行目:h7-1(5621)からh7-10(14217)
8行目:h8-1(2433)からh8-10(12608)
9行目:h9-1(3411)からh9-10(14822)
10行目:h10-1(1525)からh10-10(13529)
このように、パリティインターリーブを適用した検査行列初期値テーブルの読み出し方法は、部分行列A,Cとは異なる読み出し方法であり、表5における部分行列D用の数値座標hi-j(数値)における4行(この4行の各行が部分行列Dの最初の4列に相当)の数値を1列毎(この1列毎の数値が部分行列Dの最初の4列毎の行位置に相当)に読み出し、表5における部分行列D用の数値座標hi-j(数値)の1行分の読み出しを1セットとする。そして、図45に示すように、第1のサイクル数に相当するQ1=4ビット分の右シフトと、第2のサイクル数に相当するQ2=38分の下方シフトを360回繰り返すことで、360×4=1440ビット(列)相当の検査行列Hにおける部分行列Dの1の位置を指定することが可能となる。また、部分行列Dの行数は360×Q2=13680であり、部分行列Dのサイズは、行方向が1440ビット、列方向が13680ビットとなる。
つまり、表5に示す部分行列Dにおける検査行列初期値テーブルと、検査行列Hにおける列番号の関係を以下に示す。
検査行列初期値テーブル7行目の数値は、検査行列Hにおける2161列目(即ち、部分行列Dの1列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル8行目の数値は、検査行列Hにおける2162列目(即ち、部分行列Dの2列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル9行目の数値は、検査行列Hにおける2163列目(即ち、部分行列Dの3列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
検査行列初期値テーブル10行目の数値は、検査行列Hにおける2164列目(即ち、部分行列Dの4列目)の1の最初の位置(サイクル数Q1,Q2で繰り返す最初の検査行列Hにおける行位置)が記載されている。
そして、図45において、検査行列初期値テーブル7行目から読み出された数値は、Q1=4ビット毎に、Q2=38シフトされる。この操作を360回繰り返すことで、合計360列分、部分行列Dにおける1の位置が確定される。同様に、検査行列初期値テーブル8行目から読み出された数値も、同じく、Q1=4ビット毎に、Q2=38シフトされ、合計360列分、部分行列Dにおける1の位置が確定される。以後、9,10行目においても同じ処理を繰り返すことで、360列×4セット=1440ビット相当の部分行列Dにおける1の位置が確定される。よって、部分行列Dのサイズは、行方向が1440ビット、列方向が13680ビットとなる。このように、Q1毎にQ2シフトするパリティインターリーブを適用した部分行列Dを検査行列Hに含めることで、この部分行列Dに対し上位に連接する部分行列Bとの間で発生するサイクル4の発生を回避し、LDPC符号の復号性能を向上することが可能となる。つまり、LDPC符号における伝送特性劣化の要因の1つとしてエラーフロアの発生があり、このエラーフロアの発生要因としては検査行列Hに含まれる1の配置が例えばサイクル4の形状配置を多数持つとエラーフロアが発生する可能性が高くなることが分かっている。そこで、この問題を解決する手段として、部分行列Dを含む検査行列Hとしている。
以上の処理により求められたLDPC符号化率2/16における部分行列A、B、C、D、I、Oの集合行列である検査行列Hを用いて、上述したパリティ検査方程式(3)により、LDPCパリティを算出する。尚、符号化率2/16の場合、情報ビット長は2160ビットであることから、パリティ検査方程式においては、検査行列Hの1行目から1440行目までは、LDGM構造に基づくパリティ計算が適用され、1441行目から15120行目までは、対角構造に基づくパリティ計算が適用される。
本実施例の符号化器(LDPC符号化部114)は17280ビットを基本単位としており、また、17280は1,2,3,4,5,6,8,10,12の値で割り切れる値である。よって本実施例の符号化器は、図1に示す送信装置1の機能ブロックとして適用した場合、非常に多様な変調多値数を用いることが可能であり、例えば、BPSK(π/2シフトBPSK)、QPSK、8PSK、16APSK(16QAM)、32APSK(32QAM)、64QAM、256QAM、1024QAM、4096QAM等、非常に多様な多値変調方式に対応可能である。よって、本実施例の送信装置1により非常に柔軟な変調方式及び符号化率を組み合わせた信号送信が可能となる。尚、LDPC符号化に用いた検査行列のための検査行列初期値テーブルは、補助情報として送信装置1から受信装置2に送信することができ、或いはまた、受信装置2により予め保持させてもよい。或いは、送信装置1から受信装置2に検査行列自体を送信することができ、又は、検査行列自体を受信装置2により予め保持させてもよい。
続いて、本実施例のLDPC符号化率2/16における復号器(LDPC復号部212)の処理過程について説明する。
(符号長17280ビット,LDPC符号化率2/16における復号器の処理過程)
本実施例の復号器(LDPC復号部212)は、部分行列A,B,C,D,I,Oにより6個の領域に分割された検査行列Hを用いて、LDPC符号の復号処理を行う。以下の説明では簡単のため、変調方式はBPSKとする。
本実施例の復号器(LDPC復号部212)は、まず、送信シンボルxn及び受信シンボルynに基づいて対数尤度比λn(n=1〜17280)を算出する。対数尤度比λnとは送るビット0と1の確からしさの比の自然対数であり、送信シンボルxn及び受信シンボルynを用いて上述した式(4)で表される。
式(4)により取得した対数尤度比、及び上述の符号化率2/16に相当する検査行列H(図13に相当)を用いて、sum−product復号法等によるLDPC復号法を行う。反復復号回数は任意の値とする。また、LDPC復号においてはsum−product復号法以外にもmin−sum復号法等、多様な手段が提案されているが、検査行列を用いた尤度比を最大化する様々な手法を本発明に係るLDPC復号に適用可能である。
(符号長17280ビット,他のLDPC符号化率3/16、4/16、5/16、6/16における符号化器と復号器)
符号長17280ビットのLDPC符号におけるLDPC符号化率3/16、4/16、5/16、6/16の各々に関する符号化器(LDPC符号化部114)及び復号器(LDPC復号部212)についても、図39乃至図45に示す符号長17280ビットのLDPC符号に係るLDPC符号化率2/16の場合と同様な手法により、それぞれの検査行列初期値テーブル(表6乃至表9)に基づいて検査行列Hを構成することができる。図46には、本発明による符号長17280ビットのLDPC符号に係るLDPC符号化率2/16、3/16、4/16、5/16、6/16の各々に係るパラメータN,P,J,M1,M2,Q1,Q2,P/M,J/Mを対比して示している(M=360)。
図47乃至図51には、検査行列初期値テーブル(表5乃至表9)によるLDPC符号化率2/16、3/16、4/16、5/16、6/16の各々についてQPSK変調におけるC/N対BER特性(計算機シミュレーション)を示している。尚、図47乃至図51は、BCH符号(訂正能力12ビット)による誤り訂正前の結果であり、復号アルゴリズムは、sum−product復号法(例えば、非特許文献1参照)を利用した。sum−product復号法の復号反復回数は50回である。図52に、符号長17280ビットにおける符号化率2/16、3/16、4/16、5/16、6/16の各々におけるQPSKのシャノン限界を達成するC/Nと、図47乃至図51から取得したBER=1×10−7点におけるC/Nの比較結果を示す。図52より、本検査行列に基づく符号化器、復号器、送信装置1及び受信装置2を適用することで、シャノン限界に迫る復号性能が得られることがわかる。従って、表5乃至表9に基づく検査行列Hの採用により、現行の地上デジタル放送では困難であったシャノン限界に対し2dB未満となる好ましい伝送性能が得られるようになる。
上述した実施例に関して、符号化器及び復号器、並びに送信装置1及び受信装置2として機能するコンピュータを構成し、符号化器及び復号器、並びに送信装置1及び受信装置2の各手段を機能させるためのプログラムを好適に用いることができる。具体的には、各手段を制御するための制御部をコンピュータ内の中央演算処理装置(CPU)で構成でき、且つ、各手段を動作させるのに必要となるプログラムを適宜記憶する記憶部を少なくとも1つのメモリで構成させることができる。即ち、そのようなコンピュータに、CPUによって該プログラムを実行させることにより、上述した各手段の有する機能を実現させることができる。更に、各手段の有する機能を実現させるためのプログラムを、前述の記憶部(メモリ)の所定の領域に格納させることができる。そのような記憶部は、装置内部のRAM又はROMなどで構成させることができ、或いは又、外部記憶装置(例えば、ハードディスク)で構成させることもできる。また、そのようなプログラムは、コンピュータで利用されるOS上のソフトウェア(ROM又は外部記憶装置に格納される)の一部で構成させることができる。更に、そのようなコンピュータに、各手段として機能させるためのプログラムは、コンピュータ読取り可能な記録媒体に記録することができる。また、上述した各手段をハードウェア又はソフトウェアの一部として構成させ、各々を組み合わせて実現させることもできる。
上述の実施例については代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換することができることは当業者に明らかである。例えば、LDPC符号化と組み合わされる場合の他の誤り訂正符号化として、BCH符号化以外に、リードソロモン符号化などのブロック符号化のみならず、畳込み符号化であってもよく、又は他のLDPC符号化を組み合わせても良い。従って、本発明は、上述の実施例によって制限するものと解するべきではなく、特許請求の範囲によってのみ制限される。