(57)【要約】  【課題】  任意の検査行列に対応した汎用のＬＤＰＣ復号器を構成するため検査行列から演算に必要なデータのメモリからの読み出し、メモリへのデータの書き込み制御データを生成して汎用のＬＤＰＣ復号器を実現する。【解決手段】  付与した検査行列に対し、列毎の１のある行の算出、列番号と算出した列重みに相当する数の複数の行番号と１で示す接続情報を同一の行番号毎にグループ化したデータを生成し、α演算時のβ格納メモリからの読み出し、演算結果のα格納メモリへ書き込みのアドレス制御データとする。【選択図】図１
2008072247.tif 000002
【特許請求の範囲】
【請求項１】
α演算器、α格納メモリ、β演算器、β格納メモリを有し、入力された検査行列に対し、α演算、β演算を繰り返し実行して復号を行なうＬＤＰＣ復号器における演算器制御のデータを生成するＬＤＰＣ復号器の演算制御データのデータ生成方法であって、
前記検査行列の列毎に１のある行を抽出し、
前記抽出行番号の数が最大列重みに不足する列番号にはダミーデータを付けた行番号データを生成し、
前記生成行番号に対し順番を付けて列内番号として、列番号と列内番号の組み合わせに対し、ダミーデータが無い組み合わせには接続されている情報を表す接続情報をさらに組み合わせた配列を、ダミーデータのある列番号と列内番号の組み合わせには接続されていない情報を表す接続情報を組み合わせた配列を生成し、
前記接続されている接続情報を有する配列を行番号を昇順にサーチして同一の行番号をグループ化し、
前記グループ化した配列の数が最大行重みの数に不足する場合は、前記接続されていない接続情報を有する列番号と列内番号の組み合わせを不足する数だけ追加して行番号を昇順に、行番号グループ内では列番号を昇順に並べた文字列を生成し、
前記生成した文字列をα演算時の前記β格納メモリからの読み出し、α演算結果の前記α格納メモリへの格納データ書き込みの制御データとすることを特徴とするデータ生成方法。
【請求項２】
請求項１記載のデータ生成法であって、
前記生成した文字列を前記β格納メモリ、及び前記α格納メモリのアドレス、メモリ領域選択のデータとすることを特徴とする請求項１記載のデータ生成方法。
【請求項３】
α演算器、α格納メモリ、β演算器、β格納メモリを有し、入力された検査行列に対し、α演算、β演算を繰り返し実行して復号を行なうＬＤＰＣ復号器であって、
前記検査行列の列毎に１のある行を抽出する手段と、
前記抽出行番号の数が最大列重みに不足する列番号にはダミーデータを付けた行番号データを生成する手段と、
前記生成行番号に対し順番を付けて列内番号として、列番号と列内番号の組み合わせに対し、ダミーデータが無い組み合わせには接続されている情報を表す接続情報をさらに組み合わせた配列と、ダミーデータのある列番号と列内番号の組み合わせには接続されていない情報を表す接続情報を組み合わせた配列を生成する手段と、
前記接続されている接続情報を有する配列を行番号を昇順にサーチして同一の行番号をグループ化する手段と、
前記グループ化した配列の数が最大行重みの数に不足する場合は、前記接続されていない接続情報を有する列番号と列内番号の組み合わせを不足する数だけ追加し行番号を昇順に行番号グループ内では列番号を昇順に並べた文字列を生成する手段と、
を備えたＬＤＰＣ復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は低密度パリティ検査符号(ＬＤＰＣ)の復号に係り、特に、任意の検査行列を与えた時のＬＤＰＣ符号の復号化手順と復号化装置に関するものである。
【背景技術】
【０００２】
低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｏｄｅ）は優れた特性から通信システムでのディジタル情報の伝送、蓄積システムへのディジタル情報の蓄積の符号化方式として知られている。
【０００３】
ＬＤＰＣ符号化方式は以下に述べる手順で符号化、復号化が行われる。
１）符号化
符号化する情報ビットをＭビットとすると、ＭビットにＫビットの検査ビットを加えたＮ＝（Ｍ＋Ｋ）ビットの符号を生成する。Ｋ行Ｎ列の生成行列を作成し、Ｎビットの情報かビットに生成行列を乗算する事によりＮビットのＬＤＰＣの符号を生成できる。生成行列は任意の行列で良い。
２）復号化
復号化はＭ行Ｎ列のパリティ検査行列（以下検査行列と表示）を任意に生成し、ＮビットにＬＤＰＣ符号化された情報に検査行列を乗ずることにより復号できる。
【０００４】
検査行列は行列要素「１」が少ない任意の行列を行列を定義すれば良い。適用する分野のＬＤＰＣ符号語の性質により選定する。
【０００５】
検査行列はその行列の性質により特性が異なり、収束するまでの繰り返し演算の回数、ＬＤＰＣ符号語の性質に対応して適切な検査行列が異なっている。このため、検査行列を変えて特性を確認することが必要となる。
【０００６】
ＬＤＰＣ符号の復号方法として、設定した検査行列Ｋらｓｕｍ−ｐｒｏｄｕｃｔ法、あるいはＭｉｎ−ｓｕｍ法による繰り返し演算を行い、繰り返し演算後の値より復号化信号を得る。Ｍｉｎ−ｓｕｍ法を基にＬＤＰＣ符号の復号方法について説明する。
【０００７】
図６はＭｉｎ−ｓｕｍ法によるＬＤＰＣ符号の復号を示す図である。ＬＤＰＣ符号をメッセージノードとチェックノードとの間でＭｉｎ−ｓｕｍ法による逐次演算行い受信語を判定して復号する手順をタナーグラフにより示している。
【０００８】
タナーグラフはＮ個のメッセージノードとＭ個のチェックノードが検査行列の「１」の位置に対応して接続されたグラフである。タナーグラフは検査行列の列がメッセージノードに、行がチェックノードに対応している。
【０００９】
メッセージノードとチェックノードの接続は、検査行列のｉ行ｊ列の要素が「１」の場合にｊ番目のメッセージノードとｉ番目のチェックノードが接続されていることになる。これより、１回のαｍｎ、βｍｎの演算に必要な数は「１」の数により定まり、１つのαｍｎを算出する場合、ｍ番目のチェックノードに接続されている全てのメッセージノードのβが必要となり、１つのβｍｎを算出する場合、ｎ番目のメッセージに接続されている全てのチェックノードのαが必要となる。１回の演算に必要な回数は「１」の数、Ｍ×列重み数(＝Ｎ×行重み数)依存する。ここで、列重みは１つの列に存在する１の数であり、行重みは１つの行に存在する１の数である。
【００１０】
復号の手順について説明する。
１）（式１）によりβｍｎを演算する。
【００１１】
αｍｎの初期値は「０」とし、λｎは（式３）に示すように入力語ｙｎである。ここで、αｍ’ｎの「ｍ’」はβｍｎのｍに一致するｍは演算に含めないことを意味する。
２）（式２）によりαｍｎを演算する。
【００１２】
ここでβｍｎ’の「ｎ’」はβｍｎのｎに一致するｎは演算に含めないことを意味する。なお、ｓｉｇｎ（ｘ）はｘ＞＝の場合、値が「１」とし、ｘ＜０の場合、値「０」とする。
３）（式４）で得たＱｎを（式５）で判定して受信語ｙｎを決定する。
【００１３】
【数１】
2008072247.tif 000003
【００１４】
【数２】
2008072247.tif 000004
【００１５】
【数３】
2008072247.tif 000005
【００１６】
【数４】
2008072247.tif 000006
【００１７】
【数５】
2008072247.tif 000007
図７はＬＤＰＣ符号の復号手順を示す図である。図６で示したＭｉｎ−ｓｕｍ法を例にしてＬＤＰＣ符号の復号手順を示している。
Ｓ１１：Ｍ行Ｎ列の検査行列を与える。
Ｓ１２：ＬＤＰＣ符号情報ｙｎ(n＝１〜Ｎ)を得る。
Ｓ１３：下記の初期設定を行なう。
ア．尤度λｎは受信語のｙｎ(n＝１〜Ｎ)とし保持する。
イ．αｍｎ＝０と設定し、(ｍ＝１〜Ｍ、n＝１〜Ｎ）とし保持する。
ウ．演算繰り返し回数をＬとし、最大演算繰り返しＬｍａｘと初期値Ｌ＝０を設定する。
Ｓ１４：（式１）によりβｍｎの演算の演算を行いβ格納メモリに保持する。
Ｓ１５：（式２）によりαｍｎの演算の演算を行いα格納メモリ保持する。
Ｓ１６、Ｓ１７：設定した繰り返し回数まで演算を繰り返し、あるいは、繰り返し演算により演算結果が収束したと判断した場合に切り返し演算を終了する。
Ｓ１８：（式４）、（式５）によりＱｎの値より受信語(ｙｎ)’を推定し決定する。
【００１８】
次にＬＤＰＣ符号の復号に必要なα演算、β演算の規模は、前述したように１つの検査行列の「１」の数に依存する。
【００１９】
一方、ＬＤＰＣ符号を適用する通信システムでは符号長Ｎとして例えば、Ｎ＝１０，０００語が必要であり、検査行列は５，０００行１０，０００の検査行列の規模となる。検査行列の行重みを６、列重み３とすると検査行列「１」の数は３０，０００となる。１回のα演算に必要なβの数（１回のβ演算に必要なαの数）は３０，０００個となる。
【００２０】
これより、例えば、全て並列演算で実現する場合は３０，０００個のβから５，０００個のα演算器を使用して（α演算器への入力を６入力として６個のβより１つのαの演算と仮定）αを算出する。また、α演算器への３０，０００へのβを同時に読み出し、また、その演算結果を格納するためのメモリへの書き込むための制御は複雑であり、演算器、メモリ間の配線接続の数は膨大となる。同様にβ演算に複雑、膨大である。また、可変の検査行列の場合はさらに複雑となる。
【００２１】
また、共通演算器で実現する場合においても演算器へのデータの入出力制御が膨大になる。検査行列を固定にする場合は配線、あるいは入出力制御が膨大としても１度設定すれば良い。しかしながら、ＬＤＰＣ符号を適用したシステムでは複数の検査行列を設定してシステムの性能を調べ、向上させる必要があり、可変の検査行列でのＬＤＰＣ複合器が望まれる。
【００２２】
特許文献１では検査行列の要素「１」の位置を規則的に並べる検査行列の生成し、復号する技術が開示されている。しかしながら、任意の検査行列に対する復号化方法は述べられていない。
【特許文献１】特開２００５−３４０９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
解決しようとする課題は任意の検査行列に対応して汎用のＬＤＰＣ復号器を構成するため検査行列から演算器、格納メモリの制御データの生成し、汎用のＬＤＰＣ復号器がないことである。
【課題を解決するための手段】
【００２４】
第１の発明は、α演算器、α格納メモリ、β演算器、β格納メモリを有し、入力された検査行列に対し、α演算、β演算を繰り返し実行して復号を行なうＬＤＰＣ復号器における演算器制御のデータを生成するＬＤＰＣ復号器の演算制御データのデータ生成方法である。
【００２５】
演算制御データの生成方法は、前記検査行列の列毎に１のある行を抽出し、前記抽出行番号の数が最大列重みに不足する列番号にはダミーデータを付けた行番号データを生成し、前記生成行番号に対し順番を付けて列内番号として、列番号と列内番号の組み合わせに対し、ダミーデータが無い組み合わせには接続されている情報を表す接続情報をさらに組み合わせた配列を、ダミーデータのある列番号と列内番号の組み合わせには接続されていない情報を表す接続情報を組み合わせた配列を生成し、前記接続されている接続情報を有する配列を行番号を昇順にサーチして同一の行番号をグループ化し、前記グループ化した配列の数が最大行重みの数に不足する場合は、前記接続されていない接続情報を有する列番号と列内番号の組み合わせを不足する数だけ追加して行番号を昇順に、行番号グループ内では列番号を昇順に並べた文字列を生成し、前記生成した文字列をα演算時の前記β格納メモリからの読み出し、α演算結果の前記αメモリへの格納データ書き込みの制御データとする。
【００２６】
第２の発明は、第１の発明のデータ生成法である。
【００２７】
前記生成した文字列を前記β格納メモリ、及び前記α格納メモリのアドレス、メモリ領域選択のデータとする。
【００２８】
第３の発明は、α演算器、α格納メモリ、β演算器、β格納メモリを有し、入力された検査行列に対し、α演算、β演算を繰り返し実行して復号を行なうＬＤＰＣ復号器である。
【００２９】
前記ＬＤＰＣ復号器は、前記検査行列の列毎に１のある行を抽出する手段と、、
前記抽出行番号の数が最大列重みに不足する列番号にはダミーデータを付けた行番号データを生成する手段と、前記生成行番号に対し順番を付けて列内番号として、列番号と列内番号の組み合わせに対し、ダミーデータが無い組み合わせには接続されている情報を表す接続情報をさらに組み合わせた配列と、ダミーデータのある列番号と列内番号の組み合わせには接続されていない情報を表す接続情報を組み合わせた配列を生成する手段と、前記接続されている接続情報を有する配列を行番号を昇順にサーチして同一の行番号をグループ化する手段と、前記グループ化した配列の数が最大行重みの数に不足する場合は、前記接続されていない接続情報を有する列番号と列内番号の組み合わせを不足する数だけ追加し行番号を昇順に行番号グループ内では列番号を昇順に並べた文字列を生成する手段と、を備える。
【発明の効果】
【００３０】
本発明により任意の検査行列に対する復号化を行うことができ、又、回路規模の少ない汎用のＬＤＰＣ復号器が実現できる。
【発明を実施するための最良の形態】
【００３１】
（実施例１）
図１は本発明のＬＤＰＣ復号の演算器、メモリ制御データの生成手順を示す図である。設定した検査行列からＭｉｎ−ｓｕｍ法でＬＤＰＣ復号演算を行なう場合の演算制御のための格納メモリからのデータ読み出し、格納メモリへのデータ書き込みデータの生成手順示している。
【００３２】
１つの検査行列に対する前述の行重みは行毎に異なり、列重みも列毎に異なる。このため、今後の説明上最大の重みと行毎の重みを区別し、最大行重みをＲｗ、最大の列重みをＣｗと記述する。
Ｓ１:検査行列（Ｍ行Ｎ列）を設定する。
Ｓ２：検査行列の列毎に「１」のある行を抽出する。ここで、抽出した行番号の数はＣｗの数ある。
Ｓ３：Ｃｗに不足する列番号にはダミーデータを付け、全ての列番号に対しＣｗに相当する行番号の表を作成する。
【００３３】
なお、このデータは各列番号を昇順に、「１」の存在する行番号を昇順に並べてあり、行番号を「ｉ」、列番号を「ｊ」とするとβｉｊに相当する。
Ｓ４：Ｓ３で生成した列番号毎の行番号に順番を付け列内番号とし、（列番号、列内番号）の配列を生成する。
Ｓ５：Ｓ４で生成した配列に接続情報を組み合わせた（接続情報、列内番号、列番号）の配列を生成する。
ア．ダミーデータがない場合：接続情報を０として（０、列内番号、列番号）の配列を生成する。接続情報「０」は接続している事を示している。この配列の意味は列番号のメッセージノードに行番号のチェックノードが接続し、その接続数は順番に番号付けした最大列内番号に相当していることを示している。
イ．ダミーデータがある場合:接続情報を１として（１、列内番号、列番号）の配列を生成する。接続情報「１」は接続していない事を示している。
Ｓ６、Ｓ７：Ｓ５のア．で生成した配列に対し、行番号を昇順にサーチし、その行番号毎にグループに分けた配列（０、列内番号、列番号）を生成する。
【００３４】
列重みは個々の列により異なるので、配列の数をＣｗの個数に合わせて同一にするため、Ｃｗに不足する行グループについてはＳ５のイ．で生成した配列を各行番号グループの配列の後ろに設定する。方法はＣｗに足りない各行番号グループについてダミーデータのあるＳ５のイ．の配列から列番号を昇順に埋める。ダミーデータの生成手順より数は過不足なく一致する。説明は省略する。
Ｓ８：Ｓ７で生成した配列に対し、行番号を昇順に、行番号グループ内では列番号を昇順に文字列を生成する。
【００３５】
なお、このデータは行番号グループ毎に接続情報、列内番号、列番号を示す文字列がダミーデータと併せＣｗの数ある。先頭の接続情報が「０」の場合、行番号のチェックノードと列番号で示すメッセージノードが接続されていることを示している。また、行番号を「ｉ」、列番号を「ｊ」とするとαｉｊに相当する。
Ｓ９：Ｓ８で生成した文字列をＬＤＰＣ復号器のα演算時のメモリのアドレス制御データとする。
【００３６】
生成文字列とα演算時でのα格納メモリ、β格納メモリのアドレス制御については後述する。
【００３７】
図２は本発明のＬＤＰＣ復号器の構成を示す図である。付与した検査行列２に対し、ＬＤＰＣ復号器１は復号器基本部１０、制御データ生成部２０で構成する。復号器基本部１０は、λ格納メモリ１１、α格納メモリ１２、β格納メモリ１３とβ演算器１４、α演算器１５、α格納メモリ入出力制御部１６、β格納メモリ入出力制御部１７、受信語（Ｑｎ）判定部１８で構成する。ここでは基本部分のみを示し、実際のハードウエア構成に必要となるクロック、入出力インタフェースなどは省略している。なお、検査行列に対するＬＤＰＣ復号の特性確認の例えば、特性試験機を構成する場合は制御データ生成部を復号器基本部と併せて構成しても良い。
【００３８】
λ格納器１１は受信したｙｎをλｎとして保持し、β演算器に入力される。α格納メモリ１２、β格納メモリ１３は各々、前述の手順で生成したデータαｍｎ、βｍｎを格納し、逐次演算に伴い書き込みと読み込みが行なわれる。
【００３９】
β演算器１４は、λ格納メモリ１１からのλ、α格納メモリ１２からのαｍｎにより（式１）に示す加算演算が行われる。
【００４０】
α演算器１５は、β格納メモリ１３からのβｍｎにより（式２）に示す（乗算、絶対値変換、最小値選択）が行なわれる。
【００４１】
また、受信語の長さＮとすると、λ格納メモリの容量はＮ個のデータを保持し、α格納メモリ１２、β格納メモリ１３の容量はＮの数、重みの数から確保する。図２の例では全ての列の列重みをＣｗとし、列番号を昇順にαｍｎ、βｍｎを格納した場合の例を示している。
【００４２】
図３は本発明のＬＤＰＣ復号の演算器、メモリ制御データ生成例を示す図である。検査行列を設定し、Ｍｉｎ−ｓｕｍ法でＬＤＰＣ復号演算を行なう場合の演算器、メモリに入力するデータの生成手順示している。以下では行番号、列番号、列内番号は便宜上「０」からカウントする。図１のステップ番号に対応した番号を括弧付きステップ番号で示す。
１）行重み６、列重み３の５行１０列の検査行列とする。この場合、Ｃｗ＝６、Ｒｗ＝３となる。（Ｓ１）
２）０列目は１行、２行、４行に１があるので、（１、２、４）となり、1列目は（０、１、２）となる。また、４列目は２行、４行に１があるだけであるので、ダミーデータのＤを付け（２、４、Ｄ）となる。（Ｓ２、Ｓ３）
なお、０列は（１、２、４）よりβｍ０を算出するに必要なα１０、α２０、α４０を示している。
３）列番号０については３ケの行番号１、２、４に対し（０、１）、（１、２）、（２、４）の配列を得る。同様に列番号１は（０  ０）、（１、１）、（２、２）となる。列番号３はダミーデータＤがあるので、（０  ２）、（１、４）、（２、Ｄ）となる。（Ｓ４）
４）ダミーデータが無い場合：４）で生成した配列に対し、例えば列番号０に対する配列は（０、０、０）、（０、１、０）、（０、２、０）となる。（Ｓ５のア．）
５）ダミーデータがある場合：（列内番号、列番号）の組み合わせに１を加えて（１、２、３）、（１、２、４）、（１、２、６）、（１、２、８）、（１、２、９）の配列を生成する。以下説明は省略する。（Ｓ５のイ．）
６）例えば、行番号０のグループについては（０、０、１）、（０、０、２）、（０、０、６）、（０、０、８）、（０、０、９）の５ケの元配列となりＣｗ＝６に１ケ不足するので、ダミーデータの（１、２、３）を加えた配列となる。以下説明は省略する。（Ｓ６、Ｓ７）
７）α演算時のβ格納メモリからの読み込み、α格納メモリへの書き込み制御のデータとして‘００１’‘００２’‘００６’‘００８’‘００９’‘１２３’で始まり‘０２５’‘０２７’‘１２９’で終わるデータを得る。
【００４３】
生成手順で分るように例えば、先頭の６個の各文字列最終項（ｃ）の１、２、６、８、９はα０ｎの演算に必要なβ０１、β０２、β０６、β０８、β０９と最後の行重みＲｗ＝６に不足するダミーデータを示している。この制御データと格納メモリに関係については後述する。（Ｓ８、Ｓ９）
図４は本発明のα演算器、β演算器の構成例を示す図である。検査行列の最大行重みＲｗ６、最大列重みＣｗ＝３を前提としたα演算器、β演算器の構成例を示している。
１）α演算器
乗算器１  ２０、乗算器２  ２１、絶対値変換部２２、最小値変換部２３で構成し、６個のβから６個のαを演算する。検査行列の１つの行毎に生成した６個のβを入力して６個のαを算出する。この６個のαは３クロックで２個ずつ６個をβ格納メモリから読み出し、６個のβの乗算結果と６個のβの絶対値変換後選択した最小値と乗算して６個のαを算出する。例えば、β０１、β０２、β０６、β０８、β０９、ダミーデータより、
α０１：β０２、β０６、β０８、β０９
α０２：β０１、β０６、β０８、β０９
α０６：β０１、β０２、β０８、β０９
α０８：β０１、β０２、β０６、β０９
α０９：β０１、β０２、β０６、β０８
の６個のαを得る。この６個のαを３つのメモリで構成するα格納メモリに各々格納する。格納アドレスは生成順とする。α格納メモリについては図５で述べる。
２）β演算器
加算器２４で構成し、３個のαと１つのλから３個のβを演算する。β格納メモリから３個のβとλ格納メモリからλを１クロックで読み出しβを算出する。例えば、α１０、α２０、α４０とλよりβ１０、β２０、β４０の３個のβを得る。β格納メモリの1つのアドレスに格納する。β格納メモリ及び格納方法については図５で述べる。
【００４４】
図５は本発明の検査行列一例での生成制御データと格納メモリの例を示す図である。検査行列に対して生成した制御データとα格納メモリ、β格納メモリの内容を示している。なお、図３の説明と同様に行、列のカウントは便宜上０からとする。
１）検査行列
図３に示した検査行列（Ｒｗ＝６、Ｃｗ＝３）の５行１０列の検査行列である。
２）生成制御データ
図３の５）で生成した制御データを２個ずつ２系にし、α演算時のβ格納メモリからの必要なβの読み出しと演算結果のα格納メモリへの書き込みに使う。
【００４５】
２つの系を各々ポート１、ポート２とし、３個の数値ａ、ｂ、ｃを以下として処理する
ａ：βの有無（β有＝０、β無し＝１）
ｂ：ＲＡＭ選択のＲＡＭセレクト
ｃ：格納メモリのアドレス
実際のハードウエア構成では文字列を１６進法で扱うためにＨＥＸ変換を行なうが、ここではこのままで説明する。
３）α格納メモリ
１ポートのＲＡＭ３個で構成する。各ＲＡＭの内容は図５の３）のように検査行列の「１」位置で定まるαｍｎをダミーデータ（後述するようにダミーデータは数０とする。）を含め格納する。例えば、ＲＡＭ１にαｍ０、α０１、α０２で始まりα０８、α０９で終わるαを格納する。ＲＡＭ２、ＲＡＭ３についても同様に格納する。β演算時は各ＲＡＭのアドレス０から順次読み出し、図３のβ演算器に入力する。
４）β格納メモリ
２ポートのＲＡＭ１個で構成し、１つアドレスを３つの領域に分け、図５の４）のように検査行列の「１」位置で定まるβｍｎをダミーデータ（後述するようにダミーデータはβ最大値０とする。）を含め格納する。例えば、領域０にはβ１０、β０１、β０２で始まりβ０８、β０９で終わるデータを領域０に格納する。領域１、領域２への格納についても同様に格納する。
【００４６】
β演算は３個のβが同時に算出されるので、３つのα格納メモリにβが算出された順番にＲＡＭ１、ＲＡＭ２、ＲＡＭ３に且つアドレス０から順番に書き込む。
【００４７】
次に２）で示す生成制御データを基に、α演算時のβ格納メモリからの必要なβの読み出し、演算結果のα格納メモリへの書き込みを中心に演算手順を述べる。
１）β演算
β演算はα格納メモリの３個のＲＡＭよりアドレス順に読み出し、各メッセージノードに接続されたβを算出する。ここで、前述したようにαの初期値は全て「０」に設定しているので、１回目のβはλに同一である。例えば以下となる。
【００４８】
３個のＲＡＭのアドレス「０」のα１０、α２０、α４０よりβ１０、β２０、β４０を算出し、β格納ＲＡＭのアドレス「０」に書き込む。β演算結果は演算結果の順番にアドレス順に書き込む。
２）α演算
α演算は１クロックに２個のβを読み出し３クロックで１つのチェックノードに接続する６個のβより算出する。６個のβから６個のαを算出し、１クロックに１個ずつ出力する。最大行重みＲｗ＝６に満たない行については図３で生成した制御データのダミーデータをβの最大値としておき最小値選択に影響をしないようにする。同様に最大列重みＣｗ＝３に満たない列については図３で生成した制御データのダミーデータに数０を設定して加算演算に影響がないようにする。
【００４９】
この演算に必要なＲＡＭアドレス、データ選択、ＲＡＭ選択（読み込みの場合はＲＡＭの領域に対応させる）β有無を制御データで指定する。例えばα０ｊの演算は以下となる。なお、図５の制御データを上から順に０番目から始まり１４番目までとして表現する。
（１）β格納メモリからβの読み出し
ア．０番目のデータ＝００１、００２
ポート０：ｃ＝１よりアドレス＝１、ｂ＝０よりＲＡＭの領域０として、β０１を読み出し、βの有無のデータ「０」よりデータ有とする。以下では（ポート番号、アドレス番号、ＲＡＭ領域、β有無の「０」あるいは「１」、βｉｊ）として（ポート０、１、０、０、β０１）と表現する。
【００５０】
（ポート１、２、０、０、β０２）
イ．１番目のデータ＝００６、００８
（ポート０、６、０、０、β０６）
（ポート１、８、０、０、β０８）
ウ．２番目のデータ＝００９、１２３
（ポート０、９、０、０、β０９）
（ポート１、３、１、２、最大値）この場合、接続情報がないダミーデータであるので、最大値を読み出す。
【００５１】
この結果、読み出したβ０１、β０２、β０６、β０８、β０９よりα０１、α０２、α０６、α０８、α０９を算出する。
（２）α格納メモリへαの書き込み
ア．０番目のデータ＝００１、００２
ＲＡＭ０（ｂ＝０）のアドレス１（ｃ＝１）にα０１を書き込む。以下では（ＲＡＭ０、１、α０１）と表現する。
【００５２】
（ＲＡＭ０、２、α０２）
イ．１番目のデータ＝００６、００８
（ＲＡＭ０、６、α０６）
（ＲＡＭ１、８、α０８）
ウ．２番目のデータ＝００９、１２３
（ＲＡＭ０、９、α０９）
（ＲＡＭ１、２、数０）この場合、接続情報がないダミーデータであるので、数０を書き込む。
【００５３】
これによりβ演算後にα格納メモリの各ＲＡＭからアドレス順に読み出すことができる。
【００５４】
以上述べたように図３で生成したデータよりβ格納メモリからの読み出し、α格納メモリへの書き込みを図３で生成した制御データで制御できる。
【図面の簡単な説明】
【００５５】
【図１】本発明のＬＤＰＣ復号の演算器、メモリ制御データの生成手順を示す図である。
【図２】本発明のＬＤＰＣ復号器の構成を示す図である。
【図３】本発明のＬＤＰＣ復号の演算器、メモリ制御データ生成例を示す図である。
【図４】本発明のα演算器、β演算器の構成例を示す図である。
【図５】本発明の検査行列一例での生成制御データと格納メモリの例を示す図である。
【図６】Ｍｉｎ−ｓｕｍ法によるＬＤＰＣ符号の復号を示す図である。
【図７】ＬＤＰＣ符号の復号手順を示す図である。
【符号の説明】
【００５６】
１    ＬＤＰＣ復号器
２    検査行列
１０  復号基本部
１１  λ格納メモリ
１２  α格納メモリ
１３  β格納メモリ
１４  β演算器
１５  α演算器
１６  α格納メモリ入出力制御部
１７  β格納メモリ入出力制御部
１８  受信語（Ｑｎ)判定部
２０  乗算器１
２１  乗算器２
２２  絶対値変換部
２３  最小値選択部
２４  加算器
【図１】
2008072247.tif 000008
【図２】
2008072247.tif 000009
【図３】
2008072247.tif 000010
【図４】
2008072247.tif 000011
【図５】
2008072247.tif 000012
【図６】
2008072247.tif 000013
【図７】
2008072247.tif 000014