以下、図面を参照しながら本実施の形態について詳細に説明する。
図1は、この発明の第1の実施形態に係わる復号装置の構成を示すものである。なお、以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
上記復号装置は、入力尤度保持部101、ソート部102、更新スケジュール作成部103、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
入力尤度保持部101は、前段の信号処理部(図示しない)にて得られた符号データの尤度が入力され、この尤度の復号が完了するまでの間保持する。上記符号データは、後述するLDPC検査行列保持部104が保持するLDPC(Low Density Parity Check)検査行列で定義されるLDPC符号であり、組織符号であって、データビットとパリティビットとから構成される。
この例では、上記符号データは、4つのデータビットC1〜C4と4つのパリティビットC5〜C8からなるものとし、ここで入力尤度保持部101に保持される符号データの尤度F1〜F8は、上記8つの符号データビットにそれぞれ対応するものである。
すなわち、入力尤度保持部101は、8つの尤度F1〜F8を同時に保持する。また入力尤度保持部101は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
なお、ここでいう尤度とは、データビットが0である確率P(x=0)と、1である確率P(x=1)の比の対数値(底は自然対数)であって、以下の式(1)で表される。また、本説明で述べる事前尤度とは、事前確率の尤度を意味し、事後尤度とは、事後確率の尤度を意味する。
ソート部102は、前段の信号処理部から入力される符号データの尤度を、所定の基準により並び替える。なお、この実施形態では、上記所定の基準を、入力尤度F1〜F8の絶対値が小さい順とする。このため、ソート部102は、入力尤度F1〜F8の絶対値を検出し、小さい順に並び替えるものとする。そしてソート部102は、並び替えた入力尤度F1〜F8のインデックスの情報(以下、インデックス情報と称する)を更新スケジュール作成部103に出力する。
更新スケジュール作成部103は、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、更新スケジュール作成部103は、インデックス情報に基づき、入力尤度F1〜F8の絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
例として図2を用いて説明する。図2は、符号データC1〜C8の各入力尤度Fn(n=1〜8)の例を示すものである。この図に示す入力尤度Fnは、ソート部102によりその絶対値が小さい順に並べ変えられ、その順序は、|F3|<|F8|<|F6|<|F1|<|F4|<|F7|<|F2|<|F5|となる。
よって更新スケジュール作成部103には、ソート部102から、符号データC1〜C8(入力尤度F1〜F8)にそれぞれ対応するインデックスI1〜I8の情報として、「I3→I8→I6→I1→I4→I7→I2→I5」が入力される。更新スケジュール作成部103は、このインデックス情報に基づいて更新スケジュールを作成する。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
なお、図3において、検査行列中の「1」の無い位置には「0」が代入されているものとし、1行中の「1」の数を行重み、1列中の「1」の数を列重みと呼ぶ。この4行8列の検査行列で定義される符号データは、符号長8、パリティ長4である。検査行列の列は、符号データの各ビットに対応し、1回の復号処理で全ての列について処理を行う。
N(m)は、m行中にある「1」の列番号の集合である。図3からわかるように、例えばN(2)は{2,3,6}となる。同様にして、例えばM(3)は{2,3}となる。LDPC符号の検査行列は、行列中の「1」の数が行列の大きさに比べて少ないため、復号に使用するこの「1」の位置情報のみを保持することで、LDPC検査行列保持部104の回路規模を少なくすることができる。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部103から入力される更新スケジュールに従って、入力尤度保持部101から入力される入力尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
図4に事前尤度更新部105の構成例を示す。事前尤度更新部105は、列処理部401と行処理部402とを備える。列処理部401は、行処理部402で用いる部分事後尤度z
(i) mnを入力尤度F
nと事前尤度r
(i) mnとに基づいて、下式(2)より求める。
なお、上式(2)において、iは事前尤度の更新回数を示し、nは検査行列の列番号、つまり符号データビットのインデックスを表し、mは検査行列の行番号を表す。またM(n)は、図3に示すように列n中の「1」がある行番号の集合を表し、M(n)\mは、集合M(n)のうちmを除いた列の部分集合を表す。よって、部分事後尤度z(i) mnは、i回目の更新処理後に得られるn番目の符号データビットのうち、m列を除いた符号データビットの事後尤度を表す。
行処理部402は、上式(2)で求められた部分事後尤度z
(i) mnを用い、下式(3)より新たな事前尤度r
(i) mnを求める。なお、初回の復号処理では、事前尤度r
(0) mn=0となるため、部分事後尤度z
(0) mn=F
nを用いて事前尤度r
(1) mnを求める。なお、N
p(m)は、N(m)のうち、既にi回目の事前尤度の更新を行った列の集合を表し、N
f(m)はまだi回目の事前尤度の更新がされてない列の集合であり、N(m)\N
p(m)となる。また、この時の列nの更新順序は、更新スケジュール作成部103から入力される更新スケジュールに従う。
また、図4に示した例では、1列ずつ事前尤度を更新する場合の事前尤度更新部105の構成を示している。これに代わって例えば、第5図に示すように、事前尤度更新部105が、列処理部401と同じ機能を備える列処理部501〜50Gと、行処理部402と同じ機能を備える行処理部511〜51Gとを備えることで、一度に複数の列(第5図ではG個の列)を更新することができる。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC
1〜C
8に対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC
1〜C
8(または符号データC
1〜C
8の事前尤度)を出力する。なお、パリティ検査部107において、事後尤度z
n (i)は、入力尤度F
nと事前尤度R
mn (i)とに基づいて、下式(4)による計算で求められる。
上式(4)において、iは復号の繰り返し回数を示し、nは検査行列の列番号つまり符号データC1〜C8を構成する各ビットのインデックスを表す。よって、事後尤度z(i) nは、i回目の復号処理後に得られるn番目の符号データビットの事後尤度を表す。またmは、検査行列の行番号を表し、M(n)は、図3に示すように列n中の「1」がある行番号の集合を表す。つまり上式(4)の第2項は、列n中に「1」がある行のパリティ検査式を用いて計算された事前尤度の合計となる。またパリティ検査部107にて行う硬判定は、上式(4)より得られる事後尤度の正負判定により行い、正の時は0、負のときは1と判定する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図6に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC1〜C8の各尤度F1〜F8が入力されてから、これに基づく符号データC1〜C8が出力されるまでを1つのサイクルとしており、符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC1〜C8の各尤度F1〜F8が、入力尤度保持部101およびソート部102に入力される。入力尤度保持部101は、入力された符号データC1〜C8の各尤度F1〜F8を、この尤度の復号が完了するまでの間保持する。
処理601では、ソート部102に入力された符号データC1〜C8の各尤度F1〜F8が、ソート部102によって、その絶対値の小さい順に並び替えられる。そして、ソート部102は、この並び替えられた尤度の順を示すインデックス情報を作成し、このインデックス情報を更新スケジュール作成部103に出力する。
処理602では、更新スケジュール作成部103が、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理603では、事前尤度更新部105が、入力尤度保持部101から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部103から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理604では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。
処理605では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理604で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理606を実行する。
処理606では、パリティ検査部107が、処理603で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理603を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、入力尤度F1〜F8の絶対値、つまり信頼度の大きさに基づき、信頼度の低い入力尤度を優先的に用いて事前尤度の更新を行うスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度の低い入力尤度を持つ列に対応する事前尤度を優先的に更新することで、信頼度の低い入力尤度が繰り返しの初期段階で伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC1〜C4とパリティビットC5〜C8を区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC5〜C8に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC5〜C8の事前尤度の更新を行った後、データビットC1〜C4に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC1〜C4の事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC5〜C8に対応する列について事前尤度の更新を行った後、データビットC1〜C4の事前尤度の更新を行えば、後半に更新されるデータビットC1〜C4の誤りを少なくすることができる。
例えば入力尤度F1〜F8が図2に示すようなものであった場合、ソート部102でその絶対値が小さい順に並べ変えられ|F3|<|F8|<|F6|<|F1|<|F4|<|F7|<|F2|<|F5|となる。この並びのうちパリティビットC5〜C8に着目すると、|F8|<|F6|<|F7|<|F5|となっており、データビットC1〜C4に着目すると|F3|<|F1|<|F4|<|F2|となっている。よって、更新スケジュールはI8→I6→I7→I5→I3→I1→I4→I2となる。
次に、この発明の第2の実施形態に係わる復号装置について説明する。図8は、その構成を示すものであって、入力尤度保持部101、更新スケジュール作成部803、LDPC検査行列保持部804、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図8において、図1に示した構成と同様の機能を有する構成については、同じ番号を付与し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
図8に示した復号装置の特徴は、第1の実施形態の復号装置では入力尤度F1〜F8の値に基づいて更新スケジュールを作成していたのに対し、LDPC検査行列の構造に基づいて更新スケジュールを作成するようにした点である。
LDPC検査行列保持部804は、LDPC検査行列保持部104と同様に、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部804は、事前尤度更新部105、パリティ検査部107および更新スケジュール作成部803に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
更新スケジュール作成部803は、LDPC検査行列保持部804から入力される検査行列の情報から検査行列の構造を検出し、この検出結果に基づいて、上記検査行列に適した更新スケジュールを作成し、事前尤度更新部105へ出力する。
ここで例えば図7に示した検査行列のように列重みが列毎に異なる検査行列の場合、列重みが重い列ほど正確な事前尤度を得ることができる。なお、列重みとは、該当列の「1」の数である。このため、更新スケジュール作成部803は、検査行列の各列の重みを検出し、この検出結果に基づいて上記更新スケジュールを作成する。
図7に示した検査行列の場合、更新スケジュール作成部803は、I2→I5→I1→I3→I6→I4→I7→I8といったように列重みが重い列ほど優先的に事前尤度を更新する更新スケジュールを作成する。これにより、信頼度の低い尤度が伝搬するのを防ぎ、効率の良い復号が可能となる。
このように、第1の実施形態の復号装置と異なり、第1の実施形態の復号装置では、更新スケジュールの作成は、検査行列の構造のみに依存する。このため、検査行列が動的に変化しないシステムの場合、あらかじめ更新スケジュールを作成しておくことが可能であるので、第1の実施形態の復号装置のように、符号データC1〜C8毎に更新スケジュールを作成する必要がない。
事前尤度更新部105は、LDPC検査行列保持部804から入力される検査行列の情報と、更新スケジュール作成部803から入力される更新スケジュールに従って、入力尤度保持部101から入力される符号データの尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部804から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC1〜C8に対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図9に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC1〜C8の各尤度F1〜F8が入力されてから、これに基づく符号データC1〜C8が出力されるまでを1つのサイクルとしており、符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC1〜C8の各尤度F1〜F8が、入力尤度保持部101に入力される。入力尤度保持部101は、入力された符号データC1〜C8の各尤度F1〜F8を、この尤度の復号が完了するまでの間保持する。なお、この時点で既に、更新スケジュール作成部803は、LDPC検査行列保持部804から入力される検査行列の情報に基づいて、上記検査行列に適した更新スケジュールを作成し、事前尤度更新部105へ出力している。
処理901では、事前尤度更新部105が、入力尤度保持部101から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部804から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部803から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理902では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度F1〜F8を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。
処理903では、パリティ検査部107が、LDPC検査行列保持部804から検査行列の情報を取得し、処理902で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理904を実行する。
処理904では、パリティ検査部107が、処理901で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、予め設定した回数iに達していない場合には、再び処理901を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、LDPC検査行列の構造に基づいて、列重みが重い列に対応する入力尤度を優先的に用いて事前尤度を更新する更新スケジュールを作成するようにし、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度の高い事前尤度を求めることができる列重みが重い列を優先的に更新を行うので、後段で更新する列では信頼度の高い事前尤度を用いて事前尤度の更新をすることができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC1〜C4とパリティビットC5〜C8を区別することなく、列重みの大きい列に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、パリティビットC5〜C8に対応する列について、列重みの大きい列順に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC5〜C8の事前尤度の更新を行った後、データビットC1〜C4に対応する列について、列重みの大きい列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC1〜C4の事前尤度の更新を行うようにしてもよい。
列単位で順に事前尤度を更新していく、上述した復号処理では、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。例えば図7に示すようなLDPC検査行列の場合、I5→I6→I7→I8→I2→I1→I3→I4と更新スケジュールを作成することにより、データビットC1〜C4の誤りを少なくすることができる。
次に、この発明の第3の実施形態に係わる復号装置について説明する。図10は、その構成を示すものであって、入力尤度保持部101、グルーピング部1002、更新スケジュール作成部1003、LDPC検査行列保持部1004、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図10において、図1に示した構成と同様の機能を有する構成については、同じ番号を付与し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
図10に示した復号装置の特徴は、第1の実施形態の復号装置における更新スケジュールの作成方法と、第2の実施形態の復号装置における更新スケジュールの作成方法とを共に考慮した点にあり、入力尤度の値およびLDPC検査行列の構造に基づいて更新スケジュールを作成するようにしたものである。
グルーピング部1002は、前段の信号処理部から入力される符号データC1〜C8の各尤度F1〜F8の絶対値の大きさを検出する。そして、グルーピング部1002は、検出した絶対値の大きさに応じて、少なくとも2つ以上のグループに分け、各尤度F1〜F8が属するグループを示すグループインデックスを更新スケジュール作成部1003に出力する。
ここで例えば、図7の検査行列で定義された符号データC1〜C8の入力尤度F1〜F8が、図2に示すようなものであったとき、グルーピング部1002は、各尤度の絶対値の大きさと閾値を比較して、各尤度F1〜F8を3つのグループg1,g2,g3に分けする。図2に示す例では、閾値を「0.5」、「1.0」としている。なお、この閾値やグループ分けの数は、実験により適宜設定する。
LDPC検査行列保持部1004は、LDPC検査行列保持部104と同様に、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データC1〜C8の送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部1004は、事前尤度更新部105、パリティ検査部107および更新スケジュール作成部1003に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
更新スケジュール作成部1003は、LDPC検査行列保持部804から入力される検査行列の情報からこの検査行列の構造を検出し、この検出結果と、グルーピング部1002から取得したグループインデックスの情報とに基づいて、どの列から事前尤度の更新を行うかを示す更新スケジュールを作成する。
ここで例えば、検査行列が図7に示すようなものであった場合、列重みが列毎に異なるため、列重みが重い列ほど正確な事前尤度を得ることができる。そこで、更新スケジュール作成部1003は、入力尤度F1〜F8の絶対値が小さいグループに属する尤度に対応する列から優先的に事前尤度の更新を行う更新スケジュールを作成する。また、同じグループの尤度が複数ある場合には、上記検出結果に基づき、列重みが重い列ほど優先的に事前尤度を更新するような更新スケジュールを作成する。
すなわち、図7の検査行列で定義された符号データC1〜C8の入力尤度F1〜F8が図2に示すようなものである場合、更新スケジュール作成部1003は、I3(g1)→I8(g1)→I1(g2)→I4(g2)→I6(g2)→I2(g3)→I5(g3)→I7(g3)という更新スケジュールを作成する。
事前尤度更新部105は、LDPC検査行列保持部1004から入力される検査行列の情報と、更新スケジュール作成部1003から入力される更新スケジュールに従って、入力尤度保持部101から入力される符号データの尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部1004から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC1〜C8に対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図11に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC1〜C8の各尤度F1〜F8が入力されてから、これに基づく符号データC1〜C8が出力されるまでを1つのサイクルとしており、符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC1〜C8の各尤度F1〜F8が、入力尤度保持部101およびグルーピング部1002に入力される。入力尤度保持部101は、入力された符号データC1〜C8の尤度F1〜F8を、この尤度F1〜F8の復号が完了するまでの間保持する。
処理1101では、グルーピング部1002に入力された符号データC1〜C8の尤度F1〜F8が、グルーピング部1002によって、その絶対値の大きさで少なくとも2つ以上のグループに分けられる。そして、グルーピング部1002は、各尤度F1〜F8が属するグループを示すグループインデックスの情報を更新スケジュール作成部1003に出力する。
処理1102では、更新スケジュール作成部1003が、LDPC検査行列保持部804から入力される検査行列の情報からこの検査行列の構造を検出し、この検出結果と、グルーピング部1002から取得したグループインデックスの情報とに基づいて、どの列から事前尤度の更新を行うかを示す更新スケジュールを作成する。この更新スケジュールは、事前尤度更新部105に出力される。
処理1103では、事前尤度更新部105が、入力尤度保持部101から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部1004から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1003から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1104では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度F1〜F8を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データを得る。
処理1105では、パリティ検査部107が、LDPC検査行列保持部1004から検査行列の情報を取得し、処理1104で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1106を実行する。
処理1106では、パリティ検査部107が、処理1103で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1103を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、入力尤度F1〜F8の絶対値、つまり信頼度の大きさと、LDPC検査行列の構造に基づいて、信頼度が低く、列重みが重い列に対応する入力尤度を優先的に用いて事前尤度を更新する更新スケジュールを作成するようにし、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度が低い入力尤度を持つ列のうち、信頼度の高い事前尤度を求めることができる列重みが重い列を優先的に事前尤度の更新を行うので、繰り返し処理の初期段階で信頼度の低い尤度が伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC1〜C4とパリティビットC5〜C8を区別することなく、信頼度が低く、列重みの大きい列に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC5〜C8に対応する列について、信頼度が低い入力尤度に対応し、列重みの大きい列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC5〜C8の事前尤度の更新を行った後、データビットC1〜C4に対応する列について、信頼度が低い入力尤度に対応し、列重みの大きい列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC1〜C4の事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC5〜C8に対応する列について事前尤度の更新を行った後、データビットC1〜C4の事前尤度の更新を行えば、後半に更新されるデータビットC1〜C4の誤りを少なくすることができる。
例えば入力尤度F1〜F8が図2に示すようなものであった場合に、閾値が「0.5」、「1.0」であることから、グルーピング部1002は、グループg1としてI3およびI8、グループg2としてI1、I4およびI6、またグループg3としてI2、I5およびI7とグループ分けし、このようなグループ分けを示すグループインデックスが更新スケジュール作成部1003に出力される。
しかし、更新スケジュール作成部1003は、データビットC1〜C4とパリティビットC5〜C8を区別し、パリティビットC5〜C8に対応する列から優先的に事前尤度を更新し、その後、データビットC1〜C4に対応する列について事前尤度を更新するための更新スケジュールを作成する。すわなち、図2に示す例では、更新スケジュールは、I8→I6→I5→I7→I3→I1→I4→I2となる。
次に、この発明の第4の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図12は、その構成を示すものであって、送信装置120Aと受信装置120Bとを備える。この通信システムは、送信装置120Aが送信データをLDPC符号によって符号化して送信し、受信装置120Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得る。
送信装置120Aは、LDPC符号化部1201、パンクチャ部1202、変調部1203を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC1〜C8を生成し、パンクチャ部1202へ出力する。
パンクチャ部1202は、任意の符号化率を達成するため、LDPC符号化部1201から入力される符号データC1〜C8に対してパンクチャを行う。すなわち、パンクチャ部1202は、上記符号データC1〜C8を少なくとも1ビット以上削減する。そしてパンクチャ部1202は、パンクチャ済みの符号データを変調部1203へ出力する。図13にパンクチャの一例を示す。図13のように符号化率0.5の符号データC1〜C8は、例えば符号データC4、C7およびC8をパンクチャすることにより、符号化率を0.8にすることができる。
変調部1203は、パンクチャ部1202から入力されるパンクチャ済みの符号データを用いて搬送波を変調し、チャネル部1204を通して伝送するのに適した信号に変換し、伝送路に出力する。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置120Bに伝送される。
受信装置120Bは、復調部1205、デパンクチャ部1206、更新スケジュール作成部1207、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図12示す受信装置120Bにおいて、図1に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置120Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置120Bは、符号化処理を行う符号化装置の構成も備える。
復調部1205は、チャネル部1204を介して、変調部1203から出力された信号を受信して復調し、この復調した受信信号からビット毎の尤度を計算して、パンクチャされた符号データの各尤度を求め、この求めた尤度をデパンクチャ部1206へ出力する。なお、チャネル部1204において、ビットが消失してしまう消失誤りが起きた場合には、復調部1205は、消失したビットの尤度を後述するパンクチャビットの尤度と同一の値(例えば0など)で補い、デパンクチャ部1206へ出力する。後段の処理では、上記のように消失により補間したビットは、スケジュール作成の際にパンクチャビットと同等に扱うため、復調部1205は、補間したビットの位置を示す補間情報をデパンクチャ部1206に通知する。
デパンクチャ部1206は、復調部1205から入力された尤度から、送信装置120Aのパンクチャ部1202でパンクチャされたビットの位置を検出し、この位置にパンクチャされたビットに対応する尤度を付加して、符号データC1〜C8に対する全ての尤度F1〜F8を得る。ここで、デパンクチャ部1206により付加される尤度は、符号データC1〜C8の並びに従ったものであり、その値は予め設定された値(例えば「0」など)である。
例えば、デパンクチャ部1206に入力される尤度が、図14に示すように、符号データC4、C7およびC8が送信装置120Aのパンクチャ部1202でパンクチャされていた場合、これらの符号データC4、C7およびC8に対応する入力尤度F4、F7およびF8として「0」が設定され、全ての尤度F1〜F8を得る。
そして、デパンクチャ部1206は、上記尤度F1〜F8を入力尤度として保持する。またデパンクチャ部1206は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
また、デパンクチャ部1206は、復調部1205から通知された補間情報と、上記パンクチャされたビットの位置を示すパンクチャ情報とでそれぞれ示されるビットの識別情報を更新スケジュール作成部1207に通知する。
更新スケジュール作成部1207は、デパンクチャ部1206から入力される識別情報で示されるビットを信頼度の低いビットとして検出し、これに基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、パンクチャされたビットや伝送時に消失したビットに対応する列から優先的に事前尤度を更新するような更新スケジュールを作成する。例えば図14のようにデパンクチャした符号データがC4、C7およびC8の場合、更新スケジュールは4→7→8→1→2→3→5→6となる。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部1207から入力される更新スケジュールに従って、デパンクチャ部1206から入力される符号データの尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、デパンクチャ部1206から入力される入力尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC1〜C8に対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力する。
次に、上記構成の受信装置120Bの動作について説明する。この動作を説明するフローチャートを図15に示す。この図に示す処理は、チャネル部1204を介して変調部1203から送られる符号データC1〜C8に相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理1501では、復調部1205が、チャネル部1204を介して変調部1203から、符号データC1〜C8に相当する信号を受信する。そして復調部1205は、受信信号からビット毎の尤度を計算して求め、この求めた尤度をデパンクチャ部1206へ出力する。
なお、チャネル部1204において、ビットが消失してしまう消失誤りが起きた場合には、復調部1205は、消失したビットの尤度をパンクチャビットの尤度と同一の値で補う。そして復調部1205は、補間したビットを示す補間情報をデパンクチャ部1206に通知する。
処理1502では、デパンクチャ部1206が、復調部1205から入力された尤度に対して、送信装置120Aのパンクチャ部1202でパンクチャされたビットに対応する尤度を付加して、符号データC1〜C8に対する全ての尤度F1〜F8を得る。そして、デパンクチャ部1206は、上記尤度F1〜F8を入力尤度として保持する。
また、デパンクチャ部1206は、復調部1205から通知された補間情報と、上記パンクチャされたビットを示すパンクチャ情報とでそれぞれ示されるビットの識別情報を更新スケジュール作成部1207に通知する。
処理1503では、更新スケジュール作成部1207が、デパンクチャ部1206から入力される識別情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理1504では、事前尤度更新部105が、デパンクチャ部1206から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1207から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1505では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、デパンクチャ部1206から入力尤度F1〜F8を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。
処理1506では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理1505で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1507を実行する。
処理1507では、パリティ検査部107が、処理1504で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1504を実行し、事前尤度の更新を行う。
以上のように上記構成の受信装置120Bでは、パンクチャされたビットや伝送中に消失したビットに対応する列の事前尤度を優先的に更新する。これにより、繰り返しの初期段階で欠落した入力尤度が他のビットに対応する事前尤度の更新に伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、受信データの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC1〜C4とパリティビットC5〜C8を区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC5〜C8に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC5〜C8の事前尤度の更新を行った後、データビットC1〜C4に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC1〜C4の事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC5〜C8に対応する列について事前尤度の更新を行った後、データビットC1〜C4の事前尤度の更新を行えば、後半に更新されるデータビットC1〜C4の誤りを少なくすることができる。例えば、図13および図14を例にすると、更新スケジュールを7→8→5→6→4→1→2→3とすることで、データビットの誤りが少なくなる。
また、図12に示した通信システムにおいて、符号データビットの時間的な相関を低減させるために、符号データを時間的に拡散するインタリーバ部をパンクチャ部1202と変調部1203の間に備え、一方、インタリーバで拡散した符号データを元の並びに戻すデインタリーバ部を復調部1205とデパンクチャ部1206の間に備えるようにしてもよい。
次に、この発明の第5の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図16は、その構成を示すものであって、送信装置160Aと受信装置160Bとを備える。この通信システムは、送信装置160Aが送信データをLDPC符号によって符号化して送信し、受信装置160Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得る。
なお、図16において、図1に示した構成や図12に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置160Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置160Bは、符号化処理を行う符号化装置の構成も備える。
送信装置160Aは、LDPC符号化部1201、多値変調部1603を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC1〜C8を生成し、多値変調部1603へ出力する。
多値変調部1603は、LDPC符号化部1201から入力される符号データC1〜C8を用いて搬送波を多値変調し、チャネル部1204を通して伝送するのに適した信号に変換し、伝送路に出力する。なお、多値変調部1603は、少なくとも2ビット以上をまとめて1つの信号点に割り当てる変調を行う多値変調方式を採用するものである。
その方式としては、例えばQAM(Quadrature Amplitude Modulation)やPAM(Pulse Amplitude Modulation)がある。以下の説明では、多値変調部1603は、図17に示す4PAMを採用するものとして説明する。4PAMでは、図17のように、信号振幅の4つのレベルに割り当てることで、2つのラベル{b0,b1}にそれぞれビットが割り当てられる。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置160Bに伝送される。
受信装置160Bは、多値復調部1605、更新スケジュール作成部1610、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
多値復調部1605は、チャネル部1204を介して、多値変調部1603から出力された信号を受信して復調し、この復調した受信信号からビット毎の尤度を計算して、符号データC1〜C8の各尤度F1〜F8を求め、これらを入力尤度として保持する。また多値復調部1605は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
また多値復調部1605は、符号データを構成する各ビットが、4PAMによってどのラベルにマッピングされていたか(ラベルb0か、あるいはラベルb1)を示すマッピング情報を検出し、これを更新スケジュール作成部1610に出力する。なお、多値復調部1605は、図17に示したように、2つのラベル{b0,b1}のうち、一方のラベルb0に対応するビットを判定面B0でレベル判定することで「0」か「1」かを判定し、他方のラベルb1に対応するビットを判定面B1でレベル判定することで「0」か「1」かを判定する。
更新スケジュール作成部1610は、多値復調部1605から入力されるマッピング情報に基づいて、誤りやすいラベルに割り当てられたビットに対応する尤度を、それ以外のビットに対応する尤度よりも信頼度が低いものとして検出する。そして更新スケジュール作成部1610は、検出した信頼度に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、誤りやすいラベルに割り当てられたビットに対応する列から優先的に事前尤度を更新するような更新スケジュールを作成する。多値変調では、割り当てられるラベルにより、ビットの誤る確率が異なる。
図17の4PAMを例に説明すると、4PAMでは、b0とb1の二つのラベルがあるが、ラベルb0の判定面B0に比べラベルb1の判定面B1は狭く、一般にラベルb1の方が誤りやすい。そのため、事前尤度更新部105が、誤りやすいラベルに割り当てられたビットの尤度を優先的に更新するようなスケジュールを作成し、これにより信頼度の低い尤度情報が伝搬することを防ぐことができる。例えば図18のように符号データC1、C3、C5、C7がラベルb0に対応し、符号データC2、C4、C6、C8がラベルb1に対応する場合、更新スケジュール作成部1610は、更新スケジュールI2→I4→I6→I8→I1→I3→I5→I7を作成する。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部1610から入力される更新スケジュールに従って、多値復調部1605から入力される符号データの尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、多値復調部1605から入力される尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、当該符号データC1〜C8に対する復号処理を終了するために、パリティ検査部107は、後段の信号処理部(図示しない)へ上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力する。
次に、上記構成の受信装置160Bの動作について説明する。この動作を説明するフローチャートを図19に示す。この図に示す処理は、チャネル部1204を介して変調部2003から送られる符号データC1〜C8に相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理1901では、多値復調部1605が、チャネル部1204を介して多値変調部1603から、符号データC1〜C8に相当する信号を受信する。そして多値復調部1605は、受信信号から符号データC1〜C8の各ビットの尤度F1〜F8を計算して求め、この尤度F1〜F8を入力尤度として保持する。また多値復調部1605は、上記符号データC1〜C8を構成する各ビットが、4PAMによってどのラベルにマッピングされていたか(b0か、あるいはb1)を示すマッピング情報を検出し、これを更新スケジュール作成部1610に出力する。
処理1902では、更新スケジュール作成部1610が、多値復調部1605から入力されるマッピング情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理1903では、事前尤度更新部105が、多値復調部1605から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1610から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1904では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、多値復調部1605から入力尤度F1〜F8を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。
処理1905では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理1904で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1906を実行する。
処理1906では、パリティ検査部107が、処理1903で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1903を実行し、事前尤度の更新を行う。
以上のように、上記構成の受信装置160Bでは、多値変調で誤りやすいラベルに割り当てられたビットに対応する事前尤度を優先的に更新する。これにより、繰り返しの初期段階で誤りやすく信頼度の低い尤度情報が他のビットに対応する事前尤度の更新に伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、受信データの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC1〜C4とパリティビットC5〜C8を区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC5〜C8に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC5〜C8の事前尤度の更新を行った後、データビットC1〜C4に対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC1〜C4の事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC5〜C8に対応する列について事前尤度の更新を行った後、データビットC1〜C4の事前尤度の更新を行えば、後半に更新されるデータビットC1〜C4の誤りを少なくすることができる。例えば、図18を例にすると、更新スケジュールを6→8→5→7→2→4→1→3とすることで、データビットの誤りが少なくなる。
また、図16に示した通信システムにおいて、符号データビットの時間的な相関を低減させるため、符号データを時間的に拡散するインタリーバ部をLDPC符号化部1201と多値変調部1603の間に備え、一方、インタリーバで拡散した符号データを元の並びに戻すデインタリーバ部を多値復調部1605と、事前尤度更新部105およびパリティ検査部107との間に備えてるようにしてもよい。
次に、この発明の第6の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図20は、その構成を示すものであって、送信装置200Aと受信装置200Bとを備える。この通信システムは、送信装置200Aが送信データをLDPC符号によって符号化して送信し、受信装置200Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得るものであって、復号によって得た受信データを用いて反復復調を行うものである。
なお、図20において、図1に示した構成や図12に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置200Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置200Bは、符号化処理を行う符号化装置の構成も備える。
送信装置200Aは、LDPC符号化部1201、インタリーバ部2002、変調部2003を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC1〜C8を生成し、インタリーバ部2002へ出力する。
インタリーバ部2002は、符号データC1〜C8をビット単位で時間方向へ拡散し、変調部2003へ出力する。変調部2003は、インタリーバ部2002から入力されるビットデータを用いて搬送波を変調し、チャネル部1204を通して伝送するのに適した信号へ、伝送路に出力する。なお、変調部2003で用いられる変調方式としては、1ビット単位で変調するBPSK(Binary Phase Shift Keying)のほか、少なくとも2ビット以上をまとめて変調する多値変調方式も用いられる。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置200Bに伝送される。
受信装置200Bは、復調部2005、デインタリーバ部2006、ソート部102、更新スケジュール作成部2012、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106、パリティ検査部2007およびインタリーバ部2013を備える。
復調部2005は、チャネル部1204を介して、変調部2003から出力された信号を受信して復調し、この復調した受信信号をバッファに保持する。そして、復調部2005は、上記受信信号と、インタリーバ部2013から入力されるビット毎の事前尤度とを用いて反復復調を行い、ビットデータの各ビットの尤度を求め、これをデインタリーバ部2006へ出力する。
また、復調部2005は、同じ受信信号に対する反復復調の回数をカウントし、これをパリティ検査部2007および更新スケジュール作成部2012に通知する。なお、初回の復調処理では、インタリーバ部2013からの事前尤度が入力されないため、復調部2005は、上記バッファに保持した受信信号のみを用いる。
デインタリーバ部2006は、復調部2005から入力された各ビットの尤度を、送信装置200Aのインタリーバ部2002で拡散した手順と逆の操作で並び替え、もとの符号データC1〜C8の並びに戻す。すなわち、尤度F1〜F8を求める。そして、デインタリーバ部2006は、尤度F1〜F8を入力尤度として保持する。またデインタリーバ部2006は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、ソート部102、事前尤度更新部105およびパリティ検査部107に出力する。
ソート部102は、デインタリーバ部2006から入力される符号データの尤度F1〜F8を、所定の基準により並び替える。なお、この実施形態では、上記所定の基準を、入力尤度F1〜F8の絶対値が小さい順とする。このため、ソート部102は、入力尤度F1〜F8の絶対値を検出し、小さい順に並び替えるものとする。そしてソート部102は、並び替えた入力尤度F1〜F8のインデックスの情報(以下、インデックス情報と称する)を作成し、これを更新スケジュール作成部2012に出力する。
更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数と、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
具体的には、更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数が予め設定された回数未満の場合には、インデックス情報に基づいて、入力尤度F1〜F8の絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
また、更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数が予め設定された回数に達した場合には、データビットC1〜C4に対応する事前尤度よりもパリティビットC5〜C8に対応する事前尤度を優先的に更新するために、インデックス情報に基づいて、パリティビットC5〜C8に対応する事前尤度のうち、入力尤度F5〜F8の絶対値の小さいビットに対応する列から事前尤度を更新し、その後、データビットC1〜C4に対応する事前尤度のうち、入力尤度F1〜F4の絶対値の小さいビットに対応する列から事前尤度を更新する更新スケジュールを作成する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部2012から入力される更新スケジュールに従って、デインタリーバ部2006から入力される符号データの尤度F1〜F8と、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部2007に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部2007がパリティ検査を行う際に、保持している事前尤度をパリティ検査部2007に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部2007は、デインタリーバ部2006から入力される尤度F1〜F8と、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC1〜C8のパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部2007は、当該符号データC1〜C8に対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力する。
一方、パリティ検査の結果が良好でなく事前尤度の更新処理の回数が予め設定した回数に達し、かつ復調部2005から通知される反復復調の回数が予め設定された回数に達していない場合には、パリティ検査部2007は、符号データC1〜C8の事前尤度をインタリーバ部2013へ出力する。
インタリーバ部2013は、パリティ検査部2007から入力される符号データC1〜C8の事前尤度を、送信装置200Aのインタリーバ部2002と同様に拡散し、復調部2005へ出力する。
次に、上記構成の受信装置200Bの動作について説明する。この動作を説明するフローチャートを図21に示す。この図に示す処理は、チャネル部1204を介して変調部2003から送られる符号データC1〜C8に相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理2101では、復調部2005が、チャネル部1204を介して変調部2003から、符号データC1〜C8に相当する信号を受信して復調し、この復調した受信信号をバッファに保持する。そして復調部2005は、上記受信信号と、インタリーバ部2013から入力されるビット毎の事前尤度と用いて反復復調を行い、ビットデータの各ビットの尤度を求め、これをデインタリーバ部2006へ出力する。
また、復調部2005は、同じ受信信号に対する反復復調の回数をカウントし、これをパリティ検査部2007および更新スケジュール作成部2012に通知する。なお、初回の復調処理では、インタリーバ部2013からの事前尤度が入力されないため、復調部2005は、上記バッファに保持した受信信号のみを用いる。
処理2102では、デインタリーバ部2006が、処理2101により復調部2005から入力された各ビットの尤度を、送信装置200Aのインタリーバ部2002で拡散した手順と逆の操作で並び替え、もとの符号データC1〜C8の並びに戻す。すなわち、尤度F1〜F8を求める。そして、デインタリーバ部2006は、尤度F1〜F8を入力尤度として保持する。
処理2103では、ソート部102が、デインタリーバ部2006から符号データの尤度F1〜F8を取得し、これをその絶対値が小さい順に並び替える。そしてソート部102は、並び替えた入力尤度F1〜F8のインデックス情報を作成し、これを更新スケジュール作成部2012に出力する。
処理2104では、更新スケジュール作成部2012が、処理2101により復調部2005から通知された反復復調の回数が、予め設定された回数に達したか否かを判定する。ここで、反復復調の回数が予め設定された回数に達さない場合には、処理2105に移行し、一方、反復復調の回数が予め設定された回数に達した場合には、処理2106に移行する。
処理2105では、更新スケジュール作成部2012が、ソート部102から取得したインデックス情報に基づいて、入力尤度F1〜F8の絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
処理2106では、更新スケジュール作成部2012が、データビットC1〜C4に対応する事前尤度よりもパリティビットC5〜C8に対応する事前尤度を優先的に更新するために、ソート部102から取得したインデックス情報に基づいて、ソート部102から取得したパリティビットC5〜C8に対応する事前尤度のうち、入力尤度F5〜F8の絶対値の小さいビットに対応する列から事前尤度を更新し、その後、データビットC1〜C4に対応する事前尤度のうち、入力尤度F1〜F4の絶対値の小さいビットに対応する列から事前尤度を更新する更新スケジュールを作成する。
処理2107では、事前尤度更新部105が、デインタリーバ部2006から入力尤度F1〜F8を取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1207から入力された更新スケジュールに従って、上記入力尤度F1〜F8と上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部2007に通知する。
処理2108では、上記通知を受けたパリティ検査部2007が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、デインタリーバ部2006から入力尤度F1〜F8を取得し、この入力尤度F1〜F8と上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC1〜C8を得る。
処理2109では、パリティ検査部2007が、LDPC検査行列保持部104から検査行列の情報を取得し、処理2108で得た符号データC1〜C8のパリティ検査を行う。ここで、パリティ検査部2007は、パリティ検査の結果が良好な場合、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理2110を実行する。
処理2110では、パリティ検査部2007が、処理2107で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、処理2111を実行する。一方、予め設定した回数に達していない場合には、再び処理2107を実行し、事前尤度の更新を行う。
処理2111では、パリティ検査部2007が、処理2101により復調部2005から通知された反復復調の回数が、予め設定された回数に達したか否かを判定する。ここで、反復復調の回数が予め設定された回数に達さない場合には、処理2112に移行し、一方、反復復調の回数が予め設定された回数に達した場合には、上記符号データC1〜C8(または符号データC1〜C8の事前尤度)を出力して、当該符号データC1〜C8に対する復号処理を終了する。
処理2112では、パリティ検査部2007が、符号データC1〜C8の事前尤度をインタリーバ部2013へ出力する。これに対して、インタリーバ部2013は、パリティ検査部2007から入力される符号データC1〜C8の事前尤度を、送信装置200Aのインタリーバ部2002と同様に拡散し、復調部2005へ出力する。その後、処理2101に移行する。
以上のように、上記構成の受信装置200Bは、反復復調を行うものであって、予め設定した反復回数に達するまでは、データビットC1〜C4とパリティビットC5〜C8を区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新しながら反復復調を行い、一方、予め設定した反復回数に達した場合には、データビットC1〜C4よりもパリティビットC5〜C8を優先して、事前尤度を更新するようにしている。したがって、上記構成の受信装置200Bでは、反復復調によるデータ誤りの軽減効果を十分に発揮できるので、受信データの誤りを少なくすることができる。
図22に、計算機シミュレーションを用いて第1の実施の形態の復号装置を適用した場合のガウス性熱雑音通信路でのビット誤り率(BER)特性を示す。LDPC符号の検査行列は符号長1004bit、パリティ長502bit、符号化率0.5のイレギュラーLDPC符号を用い、最大反復復号回数を3回とした。図22より更新順序を決定する本発明が、更新順序を決定しない従来方式よりも良好なBER特性を得られることが示された。
また、上記実施の形態では、反復復調を行う場合を例に挙げて説明したが、復調処理でなくても、MIMO(Multi-Input Multi-Output)システムやCDMA(Code Division Multiple Access)システムで用いられるような反復処理を行う受信装置に適用しても、反復処理による効果を十分に発揮させることができる。
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
例えば、上記実施形態では、主に無線通信システムについて述べたが、通信分野に限定されるものではなく、LDPC符号化を行うものであれば、いかなる装置にも適用可能である。その一例として、磁気記録システムや光ディスクシステム、更には半導体メモリ等、様々なストレージシステムでも用いることが可能である。これらのシステムでは、データをLDPC符号化して記憶媒体に記録し、その後、読み出した符号データを復号して上記データを得るものである。
また上記実施の形態では、図1、図8、図10、図12、図16および図20に各実施形態に係わる復号装置の構成を回路ブロック図として示したが、これらの構成をそれぞれDSP(Digital Signal Processor)と図示しない記憶部に記憶させた制御プログラムとにより実現することができる。すなわち、上記DSPが上記制御プログラムに従って動作し、上記構成として機能することで実現できる。
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
101…入力尤度保持部、102…ソート部、103,803,1003,1207,1610,2012…更新スケジュール作成部、104,804,1004…LDPC検査行列保持部、105…事前尤度更新部、106…事前尤度保持部、107,2007…パリティ検査部、120A,160A,200A…送信装置、120B,160B,200B…受信装置、401,501〜50G…列処理部、402,511〜51G…行処理部、1002…グルーピング部、1201…LDPC符号化部、1202…パンクチャ部、1203,2003…変調部、1204…チャネル部、1205,2005…復調部、1206…デパンクチャ部、1603…多値変調部、1605…多値復調部、2002,2013…インタリーバ部、2006…デインタリーバ部。