(57)【特許請求の範囲】
【請求項１】
複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列に基づいて復号する誤り訂正復号装置であって、
前記符号化ビットを受信して得られる尤度を記憶する記憶手段と、
前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する演算手段と、
前記軟判定値を用いて復号ビットを判定する判定手段と、を具備し、
前記演算手段は、
前記設定符号化率が第１の符号化率の場合、前記部分行列として、前記列処理における復号対象の列数に応じて、前記第１の符号化率に対応する第１の検査行列から、任意の列を選択して組み合わせた第１の部分行列を用い、前記設定符号化率が前記第１の符号化率より符号化率が大きい第２の符号化率の場合、前記部分行列として、前記第２の符号化率に対応する第２の検査行列に応じた分散検査行列から、前記第１の部分行列が構成される列数に応じて、任意の列を選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第２の検査行列の行数を拡張して、前記第２の検査行列のうち前記第２の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である、
誤り訂正復号装置。
【請求項２】
前記演算手段は、前記分散部分行列として、行重みが前記第１の部分行列の行重み以下の行列を用いる、
請求項１に記載の誤り訂正復号装置。
【請求項３】
前記演算手段は、前記分散部分行列として、列数が前記第１の部分行列の列数と同数の行列を用いる、
請求項１に記載の誤り訂正復号装置。
【請求項４】
前記第１の部分行列は、前記第１の部分行列の行重みが最小となるように、前記第１の部分行列の列数に応じて前記第１の検査行列から選択される列から構成される、
請求項１に記載の誤り訂正復号装置。
【請求項５】
前記第１の検査行列は、前記第２の検査行列より列重みが大きい、
請求項１に記載の誤り訂正復号装置。
【請求項６】
複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列に基づいて復号する誤り訂正復号方法であって、
前記符号化ビットを受信して得られる尤度を記憶し、
前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出し、
前記軟判定値を用いて復号ビットを判定する方法であり、
前記設定符号化率が第１の符号化率の場合、前記部分行列として、前記第１の符号化率に対応する第１の検査行列から、前記列処理における復号対象の列数に応じて選択して組み合わせた第１の部分行列を用い、
前記設定符号化率が前記第１の符号化率より符号化率が大きい第２の符号化率の場合、前記部分行列として、前記第２の符号化率に対応する第２の検査行列に応じた分散検査行列から、前記第１の部分行列が構成される列数に応じて選択して組み合わせた分散部分行列を用い、
前記分散検査行列は、前記第２の検査行列の行数を拡張して、前記第２の検査行列のうち前記第２の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である、
誤り訂正復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低密度パリティ検査（ＬＤＰＣ：Low-Density Parity-Check）符号を用いた誤り訂正復号装置及び誤り訂正復号方法に関する。
【背景技術】
【０００２】
近年、高い誤り訂正能力を発揮する誤り訂正符号として、ＬＤＰＣ符号が注目されている。ＬＤＰＣ符号は、低密度なパリティ検査行列で定義される誤り訂正符号である。
【０００３】
ＬＤＰＣ符号は、誤り訂正能力が高く、かつ、実装が容易であるため、ＩＥＥＥ８０２．１１ｎの高速無線ＬＡＮ（Local Area Network）システム、ディジタル放送システム、或いは、大容量記憶装置等の誤り訂正符号化方式として検討されている。
【０００４】
従来のＬＤＰＣ符号の復号装置としては、例えば特許文献１に示されるものがある。特許文献１に記載される復号装置は、複数の検査行列に対応する復号装置であって、単位領域の中にエッジが含まれるよう検査行列を区分けしている。ここで、エッジとは、検査行列の要素「１」のことである。２進数表現のＬＤＰＣ符号の場合、検査行列の要素は「０」または「１」である。行列の要素とは行列の成分を表す。そして、特許文献１に記載の復号装置は、区分けしたグループ内に存在するエッジ配置情報を格納することにより、メモリ容量の削減を行っている。また、特許文献１には、エッジ配置情報を用いて、メモリと演算器間の接続を簡易化する方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２１５０８９号公報
【非特許文献】
【０００６】
【非特許文献１】和田山  正著「低密度パリティ検査符号とその復号法」トリケップス出版、2002年6月5日（P92-P99）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記従来の構成は、復号処理における演算器の実装数が、行ウエイト×同時処理行数分だけ必要となる。そのため、複数の検査行列に対応した復号装置を構成する場合には、行ウエイトが最も大きい検査行列に対応可能な数だけ演算器が必要となり、回路規模が増大するという課題を有する。
【０００８】
本発明はかかる点に鑑みてなされたものであり、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したＬＤＰＣ復号を行うことができる誤り訂正符号装置及び誤り訂正復号方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の誤り訂正復号装置の一つの態様は、複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列を用いて復号する誤り訂正復号装置であって、前記符号化ビットを受信して得られる尤度を記憶する記憶手段と、前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する演算手段と、前記軟判定値を用いて復号ビットを判定する判定手段と、を具備し、前記演算手段は、前記設定符号化率が第１の符号化率の場合、前記部分行列として、前記列処理における復号対象の列数に応じて、前記第１の符号化率に対応する第１の検査行列から、任意の列を選択して組み合わせた第１の部分行列を用い、前記設定符号化率が前記第１の符号化率より符号化率が大きい前記第２の符号化率の場合、前記部分行列として、前記第２の符号化率に対応する第２の検査行列に応じた分散検査行列から、前記第１の部分行列が構成される列数に応じて、任意の列を選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第２の検査行列の行数を拡張して、前記第２の検査行列のうち前記第２の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である。
【００１０】
本発明の誤り訂正復号方法の一つの態様は、複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列を用いて復号する誤り訂正復号方法であって、前記符号化ビットを受信して得られる尤度を記憶し、前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出し、前記軟判定値を用いて復号ビットを判定する方法であり、前記設定符号化率が第１の符号化率の場合、前記部分行列として、前記第１の符号化率に対応する第１の検査行列から、前記列処理における復号対象の列数に応じて選択して組み合わせた第１の部分行列を用い、前記設定符号化率が前記第１の符号化率より符号化率が大きい前記第２の符号化率の場合、前記部分行列として、前記第２の符号化率に対応する第２の検査行列に応じた分散検査行列から、前記第１の部分行列が構成される列数に応じて選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第２の検査行列の行数を拡張して、前記第２の検査行列のうち前記第２の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である。
【００１１】
これらにより、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したＬＤＰＣ復号を行うことができる。
【発明の効果】
【００１２】
本発明によれば、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したＬＤＰＣ復号を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における共用化元の検査行列の一例を示す図
【図２】上記実施の形態における共用化元の部分行列の一例を示す図
【図３】上記実施の形態における復号処理フローチャートの図
【図４】上記実施の形態に係る共用化元の復号器の要部構成を示す図
【図５】上記実施の形態における共用化対象の検査行列の一例を示す図
【図６】上記実施の形態における共有化対象の部分行列の一例を示す図
【図７】上記実施の形態における分散検査行列の一例を示す図
【図８】上記実施の形態における分散部分行列の一例を示す図
【図９】上記実施の形態における復号処理フローチャートの図
【図１０】上記実施の形態に係る共有化復号器の要部構成を示す図
【図１１】上記実施の形態に係る共有化復号器の別の要部構成を示す図
【図１２】図１０に示す復号器における復号処理のタイムチャートを表した図
【図１３】図１１に示す復号器における復号処理のタイムチャートを表した図
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１５】
（実施の形態）
本実施の形態は、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したＬＤＰＣ復号を行うことができる誤り訂正復号装置（以下、復号器と略記する）及び誤り訂正復号方法（以下、ＬＤＰＣ復号方法、又は、復号アルゴリズムと呼ぶ）について説明する。
【００１６】
始めに、複数の符号化率のうち、任意に選択された符号化率に対応するＬＤＰＣ復号方法について説明する。
【００１７】
図１は、複数の符号化率のうち、任意に選択された符号化率に対応するＬＤＰＣ符号の検査行列を表す図である。
【００１８】
図１において、四角枠で囲まれた部分は、サブ行列に該当し、第１検査行列は、複数のサブ行列を結合して構成されている。このサブ行列は、単位行列をサイクリックシフトした行列であり、図１において、四角枠で囲まれた数値は、単位行列のサイクリックシフト量を表している。
【００１９】
例えば、０行０列のサイクリックシフト量「０」は、単位行列そのものを表し、１行２列のサイクリックシフト量「９」は、単位行列を９サイクリックシフトした行列を表す。一方「−」はゼロ行列を表し、単位行列のサイクリックシフトではない。
【００２０】
単位行列のサイズが４×４であり、サイクリックシフト量が２のサブ行列は、式（１）のように表される。式（１）から分かるように、サイクリックシフト量が２のサブ行列は、単位行列の要素「１」を右に２つシフトした行列となる。
【００２１】
【数１】
0005485069.tif 000002
以下では、一例として、図１の検査行列におけるサブ行列サイズが６４×６４の場合を例に説明する。このとき、例えば、０行２列のサブ行列は６４×６４の単位行列を右に８サイクリックシフトした行列であり、２行３列のサブ行列は６４×６４の単位行列を右に１２サイクリックシフトした行列である。
【００２２】
図１の検査行列は、列数が１６列あるので符号長は１６×６４＝１０２４となり、行数が８行あるのでパリティ長は８×６４＝５１２となる。よって、情報ビット長は５１２ビットとなり、図１の検査行列は符号化率１／２（Ｒ＝１／２）の検査行列である。なお、本実施の形態における符号化率及び検査行列は特に限定するものではないが、図１に示す符号化率１／２の検査行列を例に用いて説明する。
【００２３】
本実施の形態では、検査行列に対応するＬＤＰＣ復号を検査行列の全列数分一度にまとめて行うのではなく、ある列数ずつに分割して行う。具体的には、本実施の形態では、検査行列を複数の部分行列に分割して、部分行列ごとに復号処理を行う。
【００２４】
以下では、一例として、１６列から構成される図１の検査行列に対応するＬＤＰＣ復号を、４列数ずつ復号処理する場合について考える。
【００２５】
図２は、４列数ずつ復号処理を行う場合に用いる部分行列を表す図である。図２は、図１に示すように番号が割り振られた列を、｛０，１，２，３｝、｛４，５，６，７｝、｛８，９，１０，１２｝、｛１１，１３，１４，１５｝のように選択して組み合わせて、部分行列を形成した例である。図１に示す例では、１６列から構成される検査行列が、４列から構成される部分行列に分割されている。なお、列番号１２が、部分行列＃１−２に選択され、列番号１１が、部分行列＃１−３に選択されている。
【００２６】
検査行列から部分行列を形成するための列選択の規範は、以下のとおりである。
【００２７】
本実施の形態では、部分行列の行重み数が最小となるように、検査行列から列を選択して部分行列を生成する。図２において、各部分行列の各行に対応する行重みは、全て２以下となっている。ここで、行重みとは、行列の各行における要素「１」の数を表している。つまり、行重みが２の場合、行列の要素「１」の数を行方向にカウントしたときに、要素「１」が２つ存在していることを表している。図２においては、サイクリックシフト量が記載されているサブ行列の個数は、全ての行において、２つ以下になっていることを示す。
【００２８】
また、２列数ずつ復号処理を行う場合には、図１の検査行列に対して、例えば、列番号９、１２、１３に着目して、列を｛０，１｝、｛２，３｝、｛４，５｝、｛６，７｝、｛８，１０｝、｛９，１２｝、｛１１，１４｝、｛１３，１５｝のように２列ずつ選択して部分行列を形成する。これにより、行重みを１とすることができる。なお、部分行列を構成する列数、すなわち、復号処理をまとめて行う列数の設定については、後述する。
【００２９】
このように、本実施の形態では、復号処理を行う列数、すなわち、部分行列を構成する列数に応じて、部分行列の行重み数が最小となるよう列選択して、検査行列から部分行列を生成する。
【００３０】
本実施の形態では、上記列選択に従って部分行列を形成した上で、以下の復号処理を行う。以下では、本復号アルゴリズムとして、例えば、対数領域ｍｉｎ−ｓｕｍ復号を用いる場合について説明する。対数領域ｍｉｎ−ｓｕｍ復号の詳細は、非特許文献１を参照することにより得られる。本実施の形態では、対数領域ｍｉｎ−ｓｕｍ復号を以下のように実行する。
【００３１】
表１は、本復号アルゴリズムに用いる変数の定義を示している。
【表１】
0005485069.tif 000003
【００３２】
本復号アルゴリズムは、図２のようにして、検査行列から列選択されて形成された部分行列の列数を単位にして列処理を行う。さらに、本復号アルゴリズムは、列処理の結果として得られる対数事前値比を用いて、行処理を逐次行っていく。
【００３３】
図２の例では、本復号アルゴリズムは４列ごと（部分行列の列数ごと）の列処理を４回行う。具体的には、図２に示す部分行列＃１−０、部分行列＃１−１、部分行列＃１−２、部分行列＃１−３の順に、列処理を行う。このようにして、本復号アルゴリズムが、４列ごと（部分行列の列数ごと）の列処理を４回施した時点で、図１に示す検査行列を用いた列処理の更新を１回実施したことになる。
【００３４】
図３は、本実施の形態に係るＬＤＰＣ復号処理のフローチャートを示す図である。以下では、図３に示すフローチャートを用いて本復号アルゴリズムの詳細を説明する。
【００３５】
［１］開始
ＬＤＰＣ符号全ビット分（本実施の形態では１０２４ビット）の対数尤度比が得られた後、本復号アルゴリズムは、ＬＤＰＣ復号を開始する。
【００３６】
［２］初期設定（ＳＴ１０１）
本復号アルゴリズムは、更新処理回数を０回目として設定する。また、本復号アルゴリズムは、０回目の更新処理における全てのｍ、ｚに対する対数外部値比を以下のように設定する。ここでｍは図１のように検査行列をサブ行列（サブブロック）で表したときの行番号を指す。またｚはｍによって選択されるサブ行列（サブブロック）を単位行列のサイクリックシフトに変換した際の行を示すインデクスである。
【数２】
0005485069.tif 000004
【００３７】
また、本復号アルゴリズムは、全てのｍ、ｎ、ｚに対して対数事前値比の符号を以下のように設定する。ここでｎは図１のように検査行列をサブ行列（サブブロック）で表すときの列番号を指す。
【数３】
0005485069.tif 000005
【００３８】
［３］ｉ＝１（ＳＴ１０２）
本復号アルゴリズムは、更新処理実施回数カウント用変数（以下、更新回数という）ｉを１にセットする。
【００３９】
［４］外部値初期化（ＳＴ１０３）
本復号アルゴリズムは、全てのｍ、ｚに対してｉ回目の更新処理における対数外部値比を以下のように設定する。
【数４】
0005485069.tif 000006
【００４０】
［５］ｊ＝０（ＳＴ１０４）
本復号アルゴリズムは、復号順序を表す変数ｊを０にセットする。なお、復号順序ｊは、図２に示すように、部分行列（復号処理を施す列の集合）に付けた番号である。
【００４１】
［６］事前値の計算（列処理）（ＳＴ１０５）
まず、本復号アルゴリズムは、（ｉ−１）回目の更新処理で求めた対数外部値比から、部分行列に対応した列処理への入力外部値ｅｖａｌ（ｍ、ｎ、ｚ１）を全てのｍ、ｎ、ｚ０に対して以下のように求める。
【数５】
0005485069.tif 000007
【数６】
0005485069.tif 000008
【数７】
0005485069.tif 000009
【００４２】
但し、本復号アルゴリズムは、Ｓ（ｍ，ｎ）＝「−」のとき、すなわち、Ｓ（ｍ，ｎ）が示すサブ行列がゼロ行列の場合、入力外部値を算出しない。但しＳ（ｍ，ｎ）は検査行列の第ｍ行第ｎ列サブ行列に対するサイクリックシフト量を表す。なお、サブ行列内インデクスが対数外部値比に対するインデクスz0と入力外部値に対するインデクスz1とで異なるのは、サブ行列のサイクリックシフトにより処理順序が入れ替わるためである。
【００４３】
以上のようにして得られた入力外部値と対数尤度比とを用いて、本復号アルゴリズムは、対数事前値比を求める。対数事前値比は、全てのｍ、ｎ、ｚに対して式（８）のようにして求められる。
【数８】
0005485069.tif 000010
【００４４】
式（８）において、Σは、サブ行列の行番号ｍを除くサブ行列に対して行われる。なお、式（８）において、0＼ｍは、「行番号ｍを除く」を示す。さらに次回の更新処理における入力外部値ｅｖａｌ（ｍ、ｎ、ｚ１）を生成するために、対数事前値比の符号が式（９）のように更新される。
【数９】
0005485069.tif 000011
【００４５】
［７］外部値の計算（行処理）（ＳＴ１０６）
本復号アルゴリズムは、図２のように選択されたサブ行列の集合からなる部分行列に対して逐次行処理を行う。ｍｉｎ−ｓｕｍ復号における行処理は最小値を探索する演算である。そこで、本復号アルゴリズムは、［６］において求めた対数事前値比とこれまでに求めた対数外部値比とを比較して、絶対値の最小値を探索し、探索した最小値を対数外部値比として更新する。
【００４６】
また、本復号アルゴリズムは、最小値探索において、前述の列処理用として、絶対値の最小値を与える列番号及び絶対値が２番目に小さい値（以降、第二値と呼ぶ）も求めておく。さらに、本復号アルゴリズムは、対数外部値比の符号も更新する。なお、これら行処理は、以下の式によって表される。
【数１０】
0005485069.tif 000012
【数１１】
0005485069.tif 000013
【００４７】
［８］ｊ＋＝１（ＳＴ１０７）
本復号アルゴリズムは、復号順序ｊを１インクリメントする。
【００４８】
［９］ｊ＜＝Ｊ（ＳＴ１０８）
本復号アルゴリズムは、ｊが最後の復号順序Ｊ以下であれば、［６］事前値の計算に戻って列処理を実行し、ｊがＪを超えればループを抜ける。
【００４９】
［１０］ｉ＋＝１（ＳＴ１０９）
本復号アルゴリズムは、更新回数ｉを１インクリメントする。
【００５０】
［１１］ｉ＜ｉｔｍａｘ（ＳＴ１１０）
本復号アルゴリズムは、更新回数ｉが最大更新回数ｉｔｍａｘより小さければ、［４］外部値初期化に戻って復号処理を再開する。一方、更新回数ｉが最大更新回数ｉｔｍａｘ以上であればループを抜ける。
【００５１】
［１２］出力硬判定値の計算（ＳＴ１１１）
本復号アルゴリズムは、以下の式に従って全てのｎ、ｚに対し出力軟判定値を求める。
【数１２】
0005485069.tif 000014
【００５２】
対数事前値比を求める際、本復号アルゴリズムは、式（８）に示すように、復号対象の行番号ｍのサブ行列に対応するｅｖａｌは加算しなかった。しかし、出力軟判定値の計算においては、本復号アルゴリズムは、復号対象の行番号ｍのサブ行列も考慮する。
【００５３】
本復号アルゴリズムは、得られた出力軟判定値の符号を用いて出力硬判定値を求める。なお、出力軟判定値の符号及び出力硬判定値は、対数尤度比の求め方に依存する。非特許文献１のように対数尤度比を求める場合、本復号アルゴリズムは、出力軟判定値の符号が正であれば復号結果として「０」を出力し、負であれば「１」を出力する。そして、本復号アルゴリズムは、情報ビットに対応する復号結果を復号ビットとして出力し、ＬＤＰＣ復号を終了する。
【００５４】
図４は、本実施の形態に係る復号器の要部構成を示すブロック図である。図４の復号器１００は、ＬＤＰＣ検査行列を用いて誤り訂正復号を行う誤り訂正復号装置であり、図３に示すフローチャートに基づいてＬＤＰＣ復号する。なお、図４は、一例として図１に示す検査行列に対応した復号器１００の構成を表している。また、図４は、記載簡略化のため、サブ行列を処理単位として、復号器１００の構成を記載している。
【００５５】
本実施の形態に係る復号器１００は、尤度記憶部１１０、列処理行処理演算部１２０、及び、硬判定部１８０を有する。
【００５６】
列処理行処理演算部１２０は、外部値記憶部１３０−０〜１３０−７、行選択部１４０−０〜１４０−３、事前値生成部１５０−０〜１５０−３、列選択部１６０、及び、外部値更新部１７０−０〜１７０−７を有する。
【００５７】
図１の検査行列の部分行列（図２参照）は、サブ行列を単位とする８行×４列の行列である。すなわち、本復号アルゴリズムは、ＬＤＰＣ復号における行処理を、サブ行列８行をひとまとめとして行う。そのため、図４の復号器１００は、外部値記憶部及び外部値更新部を８個有する構成となっている。また、本復号アルゴリズムは、ＬＤＰＣ復号における列処理を、サブ行列４列をひとまとめにして行う。そのため、図４の復号器１００は、行列選択部及び事前値生成部を４個有する構成となっている。
【００５８】
なお、部分行列を構成する列数は、４に限られず、復号器１００は、部分行列を構成する列数分だけ、行列選択部及び事前値生成部を有すればよい。部分行列を構成する列数が大きくなるほど、行列選択部及び事前値生成部が多く必要となるので、回路規模との兼ね合いにより、部分行列を構成する列数が設定されるようにする。
【００５９】
尤度記憶部１１０は、受信信号から求められる、ＬＤＰＣ符号ビットに対応する対数尤度比を記憶する。尤度記憶部１１０にＬＤＰＣ符号全ビット分の対数尤度比が記憶されると、ＬＤＰＣ復号が開始される。
【００６０】
外部値記憶部１３０−ｋ（ｋ＝０〜７）は、外部値更新部１３０−ｋから出力される対数外部値比を記憶する。なお、ＬＤＰＣ復号開始時、外部値記憶部１３０−ｋ（ｋ＝０〜７）は、前記フローチャート「［２］初期設定」で述べたように、対数外部値比を初期化する。
【００６１】
外部値記憶部１３０−ｋは、記憶した対数外部値比を、行選択部１４０−０〜１４０−３に出力する。
【００６２】
行選択部１４０−ｒ（ｒ＝０〜３）は、図２に示す復号順序ｊの部分行列＃１−ｊ（４列の復号単位）の列番号ｒの列において非零要素の行（サイクリックシフト量が記載された行）に対応する対数外部値比を選択し、出力する。例えば、行選択部１４０−０は、部分行列＃１−０の列番号０の非零要素（第０、１、４、５行）に対応する対数外部値比を選択し、事前値生成部１５０−０に出力する。同様に、行選択部１４０−１は、部分行列＃１−０の列番号１の非零要素（第２、３、６、７行）に対応する対数外部値比を選択し、事前値生成部１５０−１に出力する。行選択部１４０−２は、部分行列＃１−０の列番号２の非零要素（第０、１、４、５行）に対応する対数外部値比を選択し、事前値生成部１５０−２に出力する。行選択部１４０−３は、部分行列＃１−０の列番号３の非零要素（第２、３、６、７行）に対応する対数外部値比を選択し、事前値生成部１５０−３に出力する。
【００６３】
事前値生成部１５０−ｒ（ｒ＝０〜３）は、行選択部１４０−ｒから入力された対数外部値比と、尤度記憶部１１０から入力された対数尤度比とを用いて、前記フローチャート「［６］事前値の計算（列処理）」に示すように対数事前値比を求める。
【００６４】
ここで、事前値生成部１５０−ｒ（ｒ＝０〜３）は、部分行列＃１−ｊ（復号対象の列）の列番号ｒの列において非零要素の行に対応する対数事前値比を求める。例えば、事前値生成部１５０−０は、部分行列＃１−０の列番号０の非零要素の行（第０、１、４、５行）に対応する対数事前値比を求め、求めた対数事前値比を列選択部１６０に出力する。同様に、事前値生成部１５０−１，１５０−２，１５０−３は、それぞれ部分行列＃１−ｊの列番号１，２，３の非零要素に対応する対数事前値比を求め、求めた対数事前値比を列選択部１６０に出力する。
【００６５】
なお、式（８）に示したように、対数事前値比は、加算により求められる。そのため、事前値生成部１５０−ｒ（ｒ＝０〜３）は、内部に加算器を有する。
【００６６】
ここで、事前値生成部１５０−３は、所定回数（ｉｔｍａｘ）だけ復号処理が行われた後、対数事前値比を硬判定部１８０に出力する。
【００６７】
列選択部１６０は、図２に示す復号順序ｊの部分行列＃１−ｊの各行において、非零要素に対応する対数事前値比を選択する。例えば、列選択部１６０が、復号順序０の部分行列＃１−０に関する復号処理を行う場合について考える。このとき、部分行列＃１−０の第０行に関しては、列選択部１６０は、部分行列＃１−０の列番号０，２に対応する対数事前値比を選択する。部分行列＃１−０の第１行に関しては、列選択部１６０は、部分行列＃１−０の列番号０，２に対応する対数事前値比を選択する。また、部分行列＃１−０の第２行に関しては、列選択部１６０は、部分行列＃１−０の列番号１，３に対応する対数事前値比を選択する。また、部分行列＃１−０の第３行に関しては、列選択部１６０は、部分行列＃１−０の列番号１，３に対応する対数事前値比を選択する。
【００６８】
このように、列選択部１６０は、復号対象ｊの部分行列＃１−ｊの各行に関して、非零要素の列に対応する対数事前値比を選択し、選択した対数事前値比を外部値更新部１７０−ｋ（ｋ＝０〜７）に出力する。
【００６９】
外部値更新部１７０−ｋ（ｋ＝０〜７）は、前記フローチャート「［７］外部値の計算（行処理）」として、対数事前値比を用いて第ｋ行に対応する対数外部値比を更新する。例えば、外部値更新部１７０−０は、部分行列＃１−ｊの第０行に対応する対数外部値比を更新する。同様に、外部値更新部１７０−ｋ（ｋ＝１〜７）は、部分行列＃１−ｊの第ｋ行に対応する対数外部値比を更新する。
【００７０】
なお、式（１０−１）、（１０−２）及び式（１１−１）〜（１１−４）に示したように、対数外部値比は、比較により求められる。そのため、外部値更新部１７０−ｋ（ｋ＝０〜７）は、内部に比較器を有する。なお、比較器の数は、部分行列の行重み数分だけ必要となる。
【００７１】
硬判定部１８０は、所定回数（ｉｔｍａｘ）だけ復号処理が行われた後、事前値生成部１５０−３から出力される対数事前値比に対して硬判定を行って、硬判定値を復号ビットとして取得し、取得した復号ビットを出力する。
【００７２】
なお、図４に示す復号器１００は、硬判定部１８０が、事前値生成部１５０−３から出力される対数事前値比に対して硬判定を行う構成を示したが、これに限られない。つまり、硬判定部１８０が、事前値生成部１５０−０，１５０−１，１５０−２のいずれかから出力される対数事前値比に対して硬判定を行う構成としてもよい。
【００７３】
以上のように構成された復号器１００の動作について説明する。
【００７４】
ＬＤＰＣ符号ビットに対応する対数尤度比は、受信信号から求められ、尤度記憶部１１０に記憶される。ＬＤＰＣ符号全ビット分の対数尤度比が記憶されるとＬＤＰＣ復号が開始される。ＬＤＰＣ復号開始時に、外部値記憶部１３０−ｋ（ｋ＝０〜７）に記憶された対数外部値比及び事前値生成部１５０−ｒ（ｒ＝０〜３）に記憶された対数事前値比の符号は、前記フローチャート「［２］初期設定」にあるように初期化される。
【００７５】
外部値記憶部１３０−ｋ（ｋ＝０〜７）にて初期化された対数外部値比は、行選択部１４０−ｒ（ｒ＝０〜３）に入力される。行選択部１４０−ｒ（ｒ＝０〜３）は、図２に示す部分行列（４列の復号単位のうち）のｒ番目の列において、非零要素の行（サイクリックシフト量が記載された行）に対応する対数外部値比を選択し、出力する。
【００７６】
選択された対数外部値比は、事前値生成部１５０−ｒ（ｒ＝０〜３）に入力される。事前値生成部１５０−ｒ（ｒ＝０〜３）は、入力された対数外部値比と、尤度記憶部１１０から入力された対数尤度比とを用いて前記フローチャート「［６］事前値の計算（列処理）」に示すように対数事前値比を求める。求める対数事前値比は、復号対象の部分行列の列のうち非零要素の行に対応したものである。
【００７７】
事前値生成部１５０−ｒ（ｒ＝０〜３）から出力された対数事前値比は、列選択部１６０に入力される。列選択部１６０は、図２に示す復号対象の４列から構成される部分行列に関して、各行の非零要素に対応する対数事前値比を選択し、出力する。例えば、復号順序０の部分行列＃１−１に関する復号処理を行う場合、列選択部１６０は、第０行に関しては列番号０，２に対応する対数事前値比を選択し、出力する。同様に、列選択部１６０は、第１行に関しては列番号０，２に対応する対数事前値比を選択し、出力する。また、列選択部１６０は、第２行に関しては列番号１，３に対応する対数事前値比を選択し、出力する。このように、列選択部１６０は、復号対象の部分行列の各行に関して、非零要素の列に対応する対数事前値比を選択し、出力する機能を持つ。
【００７８】
列選択部１６０において選択された各行の非零要素に対応する対数事前値比は、外部値更新部１７０−ｋ（ｋ＝０〜７）に入力される。外部値更新部１７０−ｋ（ｋ＝０〜７）は、入力された対数事前値比を用いて、前記フローチャート「［７］外部値の計算（行処理）」に示すように各行に対応する対数外部値比を更新する。このように、外部値更新部１７０−ｋ（ｋ＝０〜７）は、復号対象の部分行列の各行に対応する対数外部値比を更新する機能を有する。
【００７９】
以上の処理が、図２における復号順序ｊにおける復号処理、すなわち、部分行列＃１−ｊに関する復号処理となる。復号順序ｊに関連する復号処理が終了すると、次の復号順序（ｊ＋１）に対応した部分行列に関する復号処理が開始される（フローチャート「［８］，［９］」）。
【００８０】
このように、復号器１００は、復号順序ｊに対応した復号処理を行い、対数外部値比を更新する。最後の復号順序Ｊ（図２では復号順序Ｊ＝３）が完了すると、外部値更新部１７０−ｋ（ｋ＝０〜７）は、更新した対数外部値比を出力する。出力された対数外部値比は、外部値記憶部１３０−ｋ（ｋ＝０〜７）に入力される。外部値記憶部１３０−ｋ（ｋ＝０〜７）は、最後の復号順序Ｊにおいて更新された対数外部値比を記憶する。復号器１００は、前記更新された対数外部値比を用いて再度同様の復号処理を行う（フローチャート「［１０］、［１１］」）。
【００８１】
そして、復号器１００は、前記復号処理の繰り返しを所定回数（ｉｔｍａｘ回）行う。所定回数の復号処理後、前記フローチャート「［１２］出力硬判定値の計算」に示すように、事前値生成部１５０−３は、出力軟判定値を求め、求めた出力軟判定値を出力する。
【００８２】
硬判定部１８０は、入力された軟判定値から硬判定値を求め、復号ビットとして出力する。
【００８３】
このように、本実施の形態では、復号器１００は、部分行列ごとに復号を行う。このとき、外部値更新部１７０−ｋ（ｋ＝０〜７）に入力される対数事前値比の数は、部分行列の行重みと同数となる。したがって、行重みが最小となるように検査行列を分割して部分行列を形成することにより、外部値更新部１７０−ｋ（ｋ＝０〜７）に入力される対数事前値比の数を最小にすることができる。これにより、フローチャート「［７］外部値の計算（行処理）」における最小値探索、第二値探索への入力数が最小となり、この結果、外部値更新部１７０−ｋ（ｋ＝０〜７）を構成する比較器の数を最小化することができる。
【００８４】
以上、複数の符号化率のうち、任意に選択された符号化率（以下、第１符号化率という）に対応するＬＤＰＣ復号アルゴリズム及び復号器の構成について説明した。次に、第１符号化率より符号化率が大きい第２符号化率に対応するＬＤＰＣ復号アルゴリズム及び復号器について説明する。
【００８５】
図５は、第２符号化率の検査行列（以下、第２検査行列と呼ぶ）を示す図である。なお、図５の第２検査行列は、符号化率５／８（Ｒ＝５／８）の検査行列である。符号化率は（列数−行数）／（列数）によって決まる値で、第２検査行列は６行１６列のサブ行列集合からなるため、第２検査行列によって定義されるＬＤＰＣ符号の符号化率は（１６−６）／１６＝５／８となる。ここで、第２符号化率の検査行列には、列重みが第１符号化率の検査行列（以下、第１検査行列と呼ぶ）の列重み以下の検査行列を用いる（図１及び図５参照）。換言すると、回路共用化の元となる第１符号化率の検査行列には、列重みが最大となる検査行列を用いる。
【００８６】
列重みは、検査行列における各列に存在する要素「１」の最大個数を表す。例えば、図１に示す第１検査行列の列重みは４であり、図５に示す第２検査行列の列重みも４であり、第２検査行列の列重みは、第１検査行列の列重み以下である。
【００８７】
以下では、回路共有化の元となる検査行列に第１検査行列を用いる場合に、第２検査行列を用いた復号を行う場合を例に説明する。すなわち、以下では、第１検査行列に対応する復号器１００を基本構成に用いて、回路共用化を図りつつ、第２検査行列に対応する復号を行う場合について説明する。
【００８８】
回路の共有化を図るため、図１の第１検査行列に対応すると同様に、図５の第２検査行列に対応する復号アルゴリズムは、第２検査行列の任意の列を組み合わせて得られる部分行列を処理単位として復号処理を行う。以下、第１検査行列の部分行列を第１部分行列と呼び、第２検査行列の部分行列を第２部分行列と呼ぶ。
【００８９】
上述したように、事前値生成部１５０は、部分行列の列数分だけ必要となる。そこで、本実施の形態では、回路規模の増大を抑圧し、複数の符号化率に対応して復号するために、第２部分行列を構成する列数を、第１部分行列を構成する列数と同数とする。これにより、事前値生成部１５０−ｒ（ｒ＝０〜３）は、第１符号化率及び第２符号化率の双方に対応することができる。
【００９０】
図６は、図５の第２検査行列を４列数ずつに分割した第２部分行列を示す図である。図６に示すように、第２検査行列から列番号｛０、１、２、３｝が選択されて第２部分行列＃２−０が形成されている。また、第２検査行列から列番号｛４、５、６、７｝が選択されて第２部分行列＃２−１が形成されている。また、第２検査行列から列番号｛８、９、１０、１１｝が選択されて第２部分行列＃２−２が形成されている。また、第２検査行列から列番号｛１２、１３、１４、１５｝が選択されて第２部分行列＃２−３が形成されている。このように、第２部分行列の列数が共有化元の第１部分行列の列数と同じ場合、事前値生成部１５０−ｒ（ｒ＝０〜３）は、第１符号化率及び第２符号化率の双方に対応することができる。
【００９１】
また、上述したように、外部値更新部１７０−ｋ（ｋ＝０〜７）は、部分行列の行重み数分の比較器が必要となる。
【００９２】
しかし、図６に示すように、第２部分行列＃２−０の第０行の第０列、第１列、第２列、第３列には、行重みを有するサブ行列である非零要素「１０」、「１４」、「１８」、「２１」が、それぞれ、配置されている。そのため、第１部分行列の行重みは２であるのに対し、第２部分行列＃２−０の第０行の行重みは４である。
【００９３】
したがって、第１及び第２部分行列の双方に対応するためには、外部値更新部１７０−ｋ（ｋ＝０〜７）は、４個の比較器を有する必要がある。しかし、比較器の数が増えるほど、回路規模が増大する。
【００９４】
そこで、本実施の形態では、外部値更新部１７０−ｋ（ｋ＝０〜７）への入力数が第１部分行列を用いる場合と同数以下となるように、第２部分行列において行重みを有するサブ行列（すなわち、非零要素）を分散させる。具体的には、第２検査行列の行数を拡張し、拡張した行に第２部分行列のうち、行重みが大きい行の非零要素を配置して、行重みを分散させる。
【００９５】
例えば、第２部分行列＃２−０の第０行の第０列の非零要素「１０」と、第２部分行列＃２−０の第０行の第１列の非零要素「１４」とを、異なる行に分散させる。このとき、図７に示すように、第０行を第０−０行と第０−１行とに分散して、第０行の第０列の非零要素「１０」が第０−０行に含まれるように配置し、また、第０行の第０列の非零要素「１４」が第０−１行に含まれるように配置する。
【００９６】
このようにして、第２検査行列の行数を拡張し、拡張した行に第２部分行列のうち行重みが大きい行の非零要素を配置することにより、行重みが分散される。図７には、第２検査行列の第０行の第０列の非零要素「１０」と第１列の非零要素「１４」とが、それぞれ、第０−０行、第０−１行に含まれるよう分散された例が示されている。
【００９７】
以下、第２検査行列の行数を拡張し、拡張した行に第２部分行列のうち、行重みが大きい行の非零要素を配置して得られる検査行列を、分散検査行列と呼ぶ。なお、分散検査行列の行数は、共用化元となる第１検査行列の行数以下とする。
【００９８】
図８は、分散後の検査行列（分散検査行列）から復号対象の列を選択した後の部分行列を表す。第２検査行列を分散して分散検査行列を生成し、分散検査行列から復号対象の列数だけ列を選択して第２符号化率に対応する部分行列（以下、分散部分行列という）を生成することにより、復号対象の部分行列の行重みを小さくすることができる。
【００９９】
例えば、分散後の分散部分行列＃２−０の行重みは２となり、分散前の第２部分行列の行重み４より小さくすることができる。
【０１００】
なお、上述したように、本実施の形態では、第１及び第２の符号化率にそれぞれ対応する第１及び第２検査行列のうち、列重みが最大となる第１検査行列を、回路共用化の元となる検査行列（図１参照）に用いる。つまり、第１部分行列（共用化元の第１検査行列の部分行列）のある列に含まれる非零要素の数は、第２部分行列のある列に含まれる非零要素の数以上となる。これにより、共用化対象の第２検査行列（図５参照）の行数を拡張して行重みを分散する場合に、復号対象となる分散部分行列の行重みを、共用化元の第１部分行列の行重み以下にすることができる。
【０１０１】
図９は、第２検査行列に対応した復号処理のフローチャートを示す図である。なお、図９において、図３と同じ処理ステップでは、本復号アルゴリズムは、第１部分行列に代えて分散部分行列を用いて同様の処理を行う。
【０１０２】
［１３］階層結合処理：ＳＴ２０１
本復号アルゴリズムは、第２検査行列に対応した復号アルゴリズムとするために、ＳＴ１０８の後段で、階層結合処理を追加する。本復号アルゴリズムでは、図５に示す検査行列を図７に示す検査行列へと行列要素を分散させている。従って第２検査行列に対応するためには、元となる図５の検査行列を用いて復号した場合に得られる対数外部値比と同じ値を求める必要がある。図７の分散検査行列から前記同じ値の対数外部値比を求めるためには、分散した２つの行に対応する対数外部値比のうち小さいほうを選択し出力するという処理が必要となる。これを階層結合処理と定義し、以下の式に処理内容を示す。
【数１３】
0005485069.tif 000015
【０１０３】
上記階層結合処理は、最大更新回数ｉｔｍａｘの最後の復号順序Ｊにおける列処理及び行処理が終了した後（ＳＴ１０８：ＮＯ）に行われる。
【０１０４】
以上、第２検査行列に対応する復号アルゴリズムについて説明した。
【０１０５】
次に、第１符号化率及び第２符号化率に対応可能な復号器の構成について説明する。
【０１０６】
図１０は、本実施の形態に係る復号器の要部構成を示すブロック図である。なお、図１０において、図４と共通する構成部分には、図４と同一の符号を付して説明を省略する。図１０の復号器１００Ａは、基本構成とする図４の復号器１００に対して、列処理行処理演算部１２０に代えて、列処理行処理演算部１２０Ａを有する。
【０１０７】
列処理行処理演算部１２０Ａは、外部値記憶部１３０Ａ−０〜１３０Ａ−７、行選択部１４０Ａ−０〜１４０Ａ−３、事前値生成部１５０Ａ−０〜１５０Ａ−３、列選択部１６０Ａ、外部値更新部１７０Ａ−０〜１７０Ａ−７、及び、階層結合部１９０を有する。
【０１０８】
行選択部１４０Ａ−０〜１４０Ａ−３は、入力される設定符号化率の情報に応じて、用いる部分行列を第１部分行列又は分散部分行列のいずれか一方に設定する点が、行選択部１４０−０〜１４０−３と異なる。部分行列を設定すると、以降、行選択部１４０Ａ−０〜１４０Ａ−３は、行選択部１４０−０〜１４０−３と同様に、用いる部分行列の非零要素に対応した対数外部値比を選択し、出力する。このようにして、行選択部１４０Ａ−０〜１４０Ａ−３は、異なる符号化率に対応して行処理を行う。
【０１０９】
事前値生成部１５０Ａ−０〜１５０Ａ−３は、入力される設定符号化率の情報に応じて、用いる部分行列を第１部分行列又は分散部分行列のいずれか一方に設定する点が、事前値生成部１５０−０〜１５０−３と異なる。部分行列を設定すると、以降、事前値生成部１５０Ａ−０〜１５０Ａ−３は、事前値生成部１５０−０〜１５０−３と同様に、用いる部分行列のサイクリックシフト量に応じて対数事前値比のシフト（並べ替え）を行い、出力する。このようにして、行選択部１４０Ａ−０〜１４０Ａ−３は、異なる符号化率に対応して対数外部値比を出力する。
【０１１０】
なお、事前値生成部１５０−０〜１５０−３と同様に、事前値生成部１５０Ａ−０〜１５０Ａ−３は、加算器を有し、加算器を用いて対数事前値比を算出する。上述したように、第１部分行列及び分散部分行列は、同数列から構成されるので、復号器１００Ａは、事前値生成部を第１部分行列の列数分だけ有していればよい。そのため、加算器より構成される事前値生成部１５０Ａ−０〜１５０Ａ−３は、異なる符号化率に対して共用化可能となる。
【０１１１】
列選択部１６０Ａは、入力される設定符号化率の情報に応じて、用いる部分行列を第１部分行列又は分散部分行列のいずれか一方に設定する点が、列選択部１６０と異なる。部分行列を設定すると、以降、列選択部１６０Ａは、列選択部１６０と同様に、用いる部分行列の非零要素に対応した対数事前値比を選択し、出力する。このようにして、列選択部１６０Ａは、異なる符号化率に対して列処理を行う。
【０１１２】
外部値更新部１７０Ａ−０〜１７０Ａ−７は、入力される設定符号化率の情報に応じて、用いる部分行列を第１部分行列又は分散部分行列のいずれか一方に設定する点が、外部値更新部１７０−０〜１７０−７と異なる。部分行列を設定すると、以降、外部値更新部１７０Ａ−０〜１７０Ａ−７は、外部値更新部１７０−０〜１７０−７と同様に、対数事前値比を用いて各行に対応する対数外部値比を更新する。このようにして、外部値更新部１７０Ａ−０〜１７０Ａ−７は、異なる符号化率に対応して対数外部値比を更新する。
【０１１３】
なお、分散後の検査行列（分散検査行列）の行重みは、共用化元の検査行列（第１検査行列）の行重み以下となっている。よって、外部値更新部１７０Ａ−０〜１７０Ａ−７への入力数は、共用化元の検査行列の行重みの数以下となるので、外部値更新部１７０Ａ−０〜１７０Ａ−７は、異なる符号化率に対して行処理を行うことができる。すなわち、外部値更新部１７０Ａ−０〜１７０Ａ−７を構成する比較器は、異なる符号化率に対して共用化可能となる。
【０１１４】
階層結合部１９０には、外部値更新部１７０Ａ−０〜１７０Ａ−７から出力された対数外部値比が入力される。階層結合部１９０は、入力された対数外部値比を用いて式（１３−１）〜（１３−４）に示す演算を行う。階層結合部１９０は、式（１３−１）〜（１３−４）に示す演算を行うことにより、分散前の第２検査行列に対応した対数外部値比を求める。
【０１１５】
なお、式（１３−１）〜（１３−４）に示したように、第２検査行列に対応した対数外部値比は、比較により求められる。そのため、階層結合部１９０は、内部に比較器を有する。
【０１１６】
階層結合部１９０は、分散前の第２検査行列の行に対応する対数外部値比を、分散後の分散検査行列の行に対応する対数外部値比として分配し、分配後の対数外部値比を外部値記憶部１３０Ａ−０〜１３０Ａ−７に出力する。
【０１１７】
外部値記憶部１３０Ａ−０〜１３０Ａ−７は、階層結合部１９０から出力された対数外部値比を記憶する。
【０１１８】
以上のように、本実施の形態において、復号器１００Ａは、複数の符号化率から設定された設定符号化率でＬＰＤＣ符号化された符号化ビットを、設定符号化率に対応する検査行列に基づいて復号する復号器である。そして、列処理行処理演算部１２０Ａは、尤度と、設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する。具体的には、設定符号化率が第１の符号化率の場合、列処理行処理演算部１２０Ａは、第１の符号化率に対応する第１検査行列から、列処理における復号対象の列数に応じて選択して組み合わせた第１の部分行列を用いる。ここで、列処理における復号対象の列数とは、１以上の列であり、回路規模を考慮して設定される。一方、設定符号化率が第２の符号化率の場合、列処理行処理演算部１２０Ａは、第２の符号化率に対応する第２検査行列に応じた分散検査行列から第１の部分行列が構成される列数と同数の列を選択して組み合わせた分散部分行列を用いる。ここで、第２の符号化率は、第１の符号化率より大きい符号化率である。
【０１１９】
ここで、分散検査行列は、第２検査行列の行数を拡張して、第２検査行列のうち行重みが大きい行の要素が、当該行と拡張した行とに分散して配置された行列である。このとき、列処理行処理演算部１２０Ａは、行重みが第１の部分行列の行重み以下となる分散部分行列を用いる。
【０１２０】
これにより、外部値更新部１７０Ａ−ｋ（ｋ＝０〜７）に入力される対数事前値比の数が、設定符号化率に関わらず、第１部分行列の行重み数以下となる。この結果、外部値更新部１７０Ａ−ｋ（ｋ＝０〜７）を構成する比較器を、異なる符号化率（第１符号化率及び第２符号化率）で共有化することができる。
【０１２１】
また、本実施の形態では、第１検査行列及び分散検査行列を第１部分行列及び分散部分行列に分割し、分割した第１部分行列及び分散部分行列を処理単位として、列処理が行われる。ここで、分散部分行列の列数は第１部分行列の列数と同数とする。これにより、事前値生成部１５０Ａ−ｍ（ｍ＝０〜３）は、設定符号化率に関わらず、第１部分行列及び分散部分行列を構成する列数分だけ必要となる。すなわち、加算器を用いて構成される事前値生成部１５０Ａ−ｍ（ｍ＝０〜３）を、異なる符号化率で共有化することができる。
【０１２２】
また、外部値記憶部１３０Ａ−ｋ（ｋ＝０〜７）には、第１検査行列を構成する行数と同数の対数事前値比が入力される。そのため、分散検査行列の行数を第１検査行列の行数以下とすることにより、外部値記憶部１３０Ａ−ｋ（ｋ＝０〜７）を、異なる符号化率で共有化することができる。
【０１２３】
このように、本実施の形態によれば、対数外部値比の記憶装置（外部値記憶部）、対数事前値比を演算するための加算器（事前値生成部）、対数外部値比を更新するための比較器（外部値更新部）を共用化することができる。
【０１２４】
なお、図１０に示す復号器１００Ａは、外部値更新部１７０Ａ−ｋ（ｋ＝０〜７）の後段に階層結合部１９０を含む構成を採る。無線ＬＡＮシステム或いは携帯電話システムにおける１対１のデータ通信モードの場合、受信機は受信データを復号後、規定時間内に送信機へと確認応答を返信しなければならない。従って、規定時間内での確認応答返信のため、復号に要する処理時間は少なくとも規定時間より短くなければならない。そのため、外部値更新部１７０Ａ−ｋ（ｋ＝０〜７）の後段に階層結合部１９０を設けた図１０に示す復号器１００Ａの構成は、復号処理時間を短くする用途に適している。
【０１２５】
一方で、放送システム或いは１対多のマルチキャストデータ通信モードにおいては、受信機が送信機に対して確認応答を返信する必要がない。すなわち、復号に要する処理遅延に対する制限はない。このような場合、階層結合部１９０を独立して設けず、図１１に示す復号器１００Ｂのように、列処理行処理演算部１２０Ｂにおいて、外部値更新部１７０Ｂ−ｋ（ｋ＝０〜７）が、対数外部値比の更新に加えて、階層結合処理を行うようにしてもよい。
【０１２６】
上述したように、外部値更新部及び階層結合部は、比較器を用いて構成される。そのため、外部値更新部の比較器を階層結合処理にも用いることができる。このようにして、階層結合部を構成する比較器と外部値更新部を構成する比較器との共用化を図ることにより、復号器１００Ｂの回路規模を削減することが可能となる。
【０１２７】
以下、図１０及び図１１に示す構成を採る復号器１００Ａ，１００Ｂにおける復号処理について、図１２及び図１３に示すタイムチャートを用いて説明する。
【０１２８】
図１２は、図１０に示す復号器１００Ａにおける復号処理のタイムチャートを表した図である。図１２は、一例として外部値更新部１７０Ａ−０，１７０Ａ−１における処理を示している。
【０１２９】
外部値更新部１７０Ａ−０，１７０Ａ−１は、図８に示す復号順序の順に、外部値更新を行う。３番目の復号順序における外部値更新が完了した時点で、図７に示す分散検査行列全体に対するｉ回目の復号処理が完了したことになる。外部値更新が完了すると同時に、階層結合部１９０は、外部値更新部１７０Ａ−０，１７０Ａ−１が出力する対数外部値比を用いて階層結合処理を行う。階層結合部１９０は、階層結合後の対数外部値比を外部値記憶部１３０Ａ−０，１３０Ａ−２にフィードバックする。フィードバックが完了すると、ｉ＋１回目の復号処理が開始する。
【０１３０】
図１０に示す復号器１００Ａは、階層結合部１９０を外部値更新部１７０Ａ−１〜１７０Ａ−７とは独立して有している。よって、外部値更新部１７０Ａ−１〜１７０Ａ−７が、外部値更新処理を完了すると同時に、階層結合部１９０は階層結合処理を行うことができる。これにより、反復復号処理における１回の復号処理にかかる処理サイクル数を最小にすることができる。図１２に示すように、階層結合部１９０を独立して有する場合、１回の復号処理におけるサイクル数は４となる。
【０１３１】
一方、図１３は、図１１に示す復号器１００Ｂにおける復号処理のタイムチャートを表した図である。図１２と対比するため、図１３は、外部値更新部１７０Ｂ−０，１７０Ｂ−１における処理を示している。なお、外部値更新部１７０Ｂ−０，１７０Ｂ−１が、分散検査行列のうち、行重みが分散された行に対する対数外部値比を算出する場合について説明する。
【０１３２】
外部値更新部１７０Ｂ−０，１７０Ｂ−１は、図８に示す復号順序の順に、外部値更新を行う。３番目の復号順序における外部値更新が完了し、ｉ回目の復号処理が完了すると、次の処理サイクルにおいて階層結合処理を行う。外部値更新部１７０Ｂ−０，１７０Ｂ−１は、階層結合処理を完了させると、得られた対数外部値比を外部値記憶部１３０Ａ−０，１３０Ａ−２にフィードバックする。フィードバックが完了すると、ｉ＋１回目の復号処理が開始する。
【０１３３】
図１１において、外部値更新部１７０Ｂ−１は３番目の復号順序において更新した対数外部値比を外部値更新部１３０Ａ−０に出力する。更に、外部値更新部１７０Ｂ−０は、３番目の復号順序において更新した対数外部値比と、外部値更新部１７０Ｂ−１から入力された対数外部値比とを用いて、式（１３−１）〜（１３−４）に示す階層結合処理を行う。
【０１３４】
なお、分散検査行列を形成する際に、行重みが分散された行が複数ある場合には、当該行に対する対数外部値を算出する外部値更新部１７０Ｂ−ｐ，１７０Ｂ−（ｐ＋１）が（ｐは、正の偶数）、外部値更新部１７０Ｂ−０，１７０Ｂ−１と同様に、階層結合処理を行う。
【０１３５】
そして、外部値更新部１７０Ｂ−０，１７０Ｂ−１は、階層結合により得た対数外部値比を、分散後の行に対応する対数外部値比に分配し、各外部値更新部１７０Ｂ−０，１７０Ｂ−１は、分配した対数外部値比を外部値記憶部１３０Ａ−０，１３０Ａ−１に出力する。
【０１３６】
このように、図１１に示す復号器１００Ｂは、階層結合部１９０を別途設けず、外部値更新部１７０Ｂ−ｋ（ｋ＝０〜７）を構成する比較器を用いて階層結合処理を行う。この場合、図１３に示すように、１回の復号処理に要する処理サイクル数は５となる。この結果、図１０に示すように、階層結合部１９０を外部値更新部１７０Ａ−ｋ（ｋ＝０〜７）とは独立して有する構成を採る場合より、復号処理サイクル数が増加する。しかし、階層結合処理に要する比較器を外部値更新部１７０Ｂ−ｋ（ｋ＝０〜７）が保持する比較器と共用化することができるため、復号器１００Ａに比べ、復号器１００Ｂの回路規模を削減することができる。
【０１３７】
このように、図１０の復号器１００Ａは、復号処理時間を短くする用途に適しており、例えば１対１のデータ通信モードに適した構成となっている。一方、図１１の復号器１００Ｂは、復号処理時間が若干長くなるものの、更に回路規模を小さくすることができ、例えば放送システム或いは１対多のマルチキャストデータ通信モードに適した構成となっている。
【産業上の利用可能性】
【０１３８】
本発明に係る誤り訂正復号装置及び誤り訂正復号方法は、ＬＤＰＣ符号を適用した通信装置等に有用である。また、放送受信装置或いは記憶メディア等にも応用できる。
【符号の説明】
【０１３９】
１００，１００Ａ，１００Ｂ  復号器
１１０  尤度記憶部
１２０，１２０Ａ，１２０Ｂ  列処理行処理演算部
１３０−０〜１３０−７，１３０Ａ−０〜１３０Ａ−７  外部値記憶部
１４０−０〜１４０−３，１４０Ａ−０〜１４０Ａ−３  行選択部
１５０−０〜１５０−３，１５０Ａ−０〜１５０Ａ−３  事前値生成部
１６０，１６０Ａ  列選択部
１７０−０〜１７０−７，１７０Ａ−０〜１７０Ａ−７，１７０Ｂ−０〜１７０Ｂ−７  外部値更新部
１８０  硬判定部
１９０  階層結合部
【図１】
0005485069.tif 000016
【図２】
0005485069.tif 000017
【図３】
0005485069.tif 000018
【図４】
0005485069.tif 000019
【図５】
0005485069.tif 000020
【図６】
0005485069.tif 000021
【図７】
0005485069.tif 000022
【図８】
0005485069.tif 000023
【図９】
0005485069.tif 000024
【図１０】
0005485069.tif 000025
【図１１】
0005485069.tif 000026
【図１２】
0005485069.tif 000027
【図１３】
0005485069.tif 000028