(57)【特許請求の範囲】
【請求項１】
拡大体上で定義される多元ＬＤＰＣ（Low Density Parity Check）符号の検査行列と、複数の対象シンボルのラベルとに基づいて、前記検査行列の各行に対応するシンドローム値を生成する生成部と、
前記シンドローム値の全てが零であれば、前記複数の対象シンボルの復号成功を判定する判定部と、
前記シンドローム値のうち少なくとも１つが非零であれば、前記複数の対象シンボルの各々がパリティ条件の不成立に与えている影響を示す変更指数を導出する導出部と、
前記シンドローム値のうち少なくとも１つが非零であれば、前記複数の対象シンボルから１つの変更シンボルを決定する第１の決定部と、
前記変更シンボルに付与する変更ラベルを決定する第２の決定部と、
前記変更シンボルに前記変更ラベルを付与してから、前記生成部にシンドローム値を再生成させる変更適用部と
を具備し、
前記第１の決定部は、前記影響が最大である特定のシンボルの変更回数が前記拡大体の要素数から１を減じた値に到達していなければ、当該特定のシンボルを前記変更シンボルとして決定し、
前記第１の決定部は、前記特定のシンボルの変更回数が前記拡大体の要素数から１を減じた値に到達していれば、前記特定のシンボルの代わりに別のシンボルを前記変更シンボルとして決定する、
誤り訂正復号器。
【請求項２】
前記複数の対象シンボルの各々の変更回数をカウントするカウンタを更に具備する、請求項１の誤り訂正復号器。
【請求項３】
前記導出部は、前記複数の対象シンボルの各々が作用する各パリティ条件について、当該パリティ条件が満たされていれば第１の重みを累積し、当該パリティ条件が満たされていなければ前記第１の重みと異なる第２の重みを累積することにより、前記複数の対象シンボルの各々の変更指数を導出する、請求項１の誤り訂正復号器。
【請求項４】
前記第２の決定部は、前記変更シンボルが作用する各パリティ条件を満たす局所解ラベルを導出し、前記局所解ラベルが２種類以上存在すれば、前記変更シンボルのラベル以下の尤度を持つラベルを前記変更ラベルとして決定する、
請求項１の誤り訂正復号器。
【請求項５】
前記第２の決定部は、前記変更シンボルが作用する各パリティ条件を満たす局所解ラベルを導出し、全ての前記局所解ラベルが一致すれば、前記局所解ラベルを前記変更ラベルとして決定する、
請求項１の誤り訂正復号器。
【請求項６】
多元ＬＤＰＣ符号語を搬送する受信信号を得る受信部と、
請求項１記載の誤り訂正復号器と
を具備し、
前記誤り訂正復号器は、前記受信信号に基づいて前記複数の対象シンボルの初回のラベルを判定する、
受信機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、多元ＬＤＰＣ符号の復号手法に関する。
【背景技術】
【０００２】
低密度パリティ検査（LDPC; Low Density Parity Check）符号は、ガロア体（GF; Galois Field）（２）だけではなく拡大体ＧＦ（２Ｎ）（Ｎは、２以上の任意の整数）上でも定義できる。以降の説明では、係るＬＤＰＣ符号を、ＧＦ（２）上で定義されるバイナリＬＤＰＣ符号と区別し、多元ＬＤＰＣ符号と称する。
【０００３】
多元ＬＤＰＣ符号を復号する場合にも、各復号対象シンボルの確率ベクトル（または対数尤度ベクトル）が利用される。具体的には、各確率ベクトルについて畳み込み演算、高速フーリエ変換（FFT; Fast Fourier Transform）などを用いて、ＢＰ（Belief Propagation）アルゴリズムが実行される。
【０００４】
ＢＰアルゴリズムの実行時には、全復号対象シンボルの確率ベクトルの全要素について演算を行い、かつ、全復号対象シンボルの確率ベクトルの全要素をメモリなどに常に記憶させておく必要がある。尚、拡大体上には２Ｎ個の要素が存在するので、個々の確率ベクトルもまた２Ｎ個の要素を持つ。即ち、上記アルゴリズムによる多元ＬＤＰＣ符号の復号に必要な計算量及びメモリ容量は、Ｏ（２Ｎ）のオーダーで増加する。故に、上記アルゴリズムによる多元ＬＤＰＣ符号の復号は、特に回路実装（ハードウェア実装）を困難にする。
【０００５】
バイナリＬＤＰＣ符号に対する簡易な復号アルゴリズムとしてビットフリップアルゴリズムが提案されている。しかしながら、多元ＬＤＰＣ符号は、各シンボルに２Ｎ通りのラベルが付与され得る（即ち、シンボルラベルがＮビット値で表現される）ので、ビットフリップアルゴリズムの適用が困難である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４４０２７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態は、多元ＬＤＰＣ符号の復号に必要となる計算量及びメモリ容量を抑えることを目的とする。
【課題を解決するための手段】
【０００８】
一態様に係る誤り訂正復号器は、拡大体上で定義される多元ＬＤＰＣ（Low Density Parity Check）符号の検査行列と、複数の対象シンボルのラベルとに基づいて、検査行列の各行に対応するシンドローム値を生成する生成部を含む。この誤り訂正復号器は、シンドローム値の全てが零であれば、複数の対象シンボルの復号成功を判定する判定部と、シンドローム値のうち少なくとも１つが非零であれば、複数の対象シンボルから１つの変更シンボルを決定する第１の決定部とを含む。この誤り訂正復号器は、変更シンボルに付与する変更ラベルを決定する第２の決定部と、変更シンボルに変更ラベルを付与してから、生成部にシンドローム値を再生成させる変更適用部とを含む。
【０００９】
他の態様に係る誤り訂正復号器は、拡大体上で定義される多元ＬＤＰＣ（Low Density Parity Check）符号の検査行列と、複数の対象シンボルのラベルとに基づいて、検査行列の各行に対応するシンドローム値を生成する生成部を含む。この誤り訂正復号器は、シンドローム値の全てが零であれば、複数の対象シンボルの復号成功を判定する判定部を含む。この誤り訂正復号器は、シンドローム値のうち少なくとも１つが非零であれば、複数の対象シンボルのラベルの各々のバイナリ表現におけるエラービットを検査行列の各行に対応するシンドローム値に基づいて推定し、推定エラー情報を得る推定部を含む。この誤り訂正復号器は、複数の対象シンボルのラベルのバイナリ表現から１つの変更ビットを決定する決定部と、変更ビットを反転してから、生成部にシンドローム値を再生成させる変更適用部とを含む。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る誤り訂正復号器を含む送受信システムを例示するブロック図。
【図２】第１の実施形態に係る誤り訂正復号器を含む記録再生システムを例示するブロック図。
【図３】第１の実施形態に係る誤り訂正復号器を例示するブロック図。
【図４】図３の誤り訂正復号器の動作を例示するフローチャート。
【図５】図３の誤り訂正復号器の効果を説明するためのグラフ。
【図６】第２の実施形態に係る誤り訂正復号器を例示するブロック図。
【図７】第３の実施形態に係る誤り訂正復号器を例示するブロック図。
【図８】図７の誤り訂正復号器の動作を例示するフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態について説明する。  
（第１の実施形態）  
第１の実施形態に係る誤り訂正復号器１００は、典型的には、無線または有線で情報を送受信するための送受信システム、記録媒体に情報を書き込み／記録媒体から情報を読み出すための記録再生システムなどに適用される。
【００１２】
例えば、図１に例示する送受信システムは、誤り訂正復号器１００、誤り訂正符号化部２０、送信部３０及び受信部４０を含む。図１において、誤り訂正復号器１００及び受信部４０は、受信機を形成している。
【００１３】
誤り訂正符号化部２０は、多元ＬＤＰＣ符号を用いてユーザデータ１０を符号化し、符号化系列（多元ＬＤＰＣ符号語）を得る。送信部３０は、誤り訂正符号化部２０からの符号化系列に変調、デジタル−アナログ変換、アップコンバート、フィルタリング、電力増幅などの各種処理を行い、アンテナ（或いは、図示しない信号線）を介して信号を出力する。この信号は、符号化系列を搬送する。
【００１４】
受信部４０は、アンテナ（或いは、図示しない信号線）を介して送信部３０からの信号を入力し、低雑音増幅、フィルタリング、ダウンコンバート、アナログ−デジタル変換、復調などの各種処理を行い、符号化系列５０を得る。誤り訂正復号器１００は、上記多元ＬＤＰＣ符号の検査行列を用いて符号化系列５０を復号し、ユーザデータ６０を得る。
【００１５】
また、図２に例示する記録再生システムは、誤り訂正復号器１００、誤り訂正符号化部２０、記録部７０及び再生部８０を含む。図２において、誤り訂正復号器１００及び再生部８０は、再生機を形成している。尚、図２において、図１と同一のまたは類似する部分には同一のまたは類似する符号を付して示しており、重複する説明は省略する。記録部７０は、誤り訂正符号化部２０からの符号化系列をフラッシュメモリ、ＨＤＤ（Hard Disk Drive）などの記憶媒体に記録するための各種処理を行う。再生部８０は、記憶媒体に記録された符号化系列５０を再生するための各種処理を行う。
【００１６】
誤り訂正復号器１００は、多元ＬＤＰＣ符号を復号する。多元ＬＤＰＣ符号は、ＧＦ（２Ｎ）上で定義される。Ｎは、２以上の任意の整数である。多元ＬＤＰＣ符号は、同じくＧＦ（２Ｎ）上で定義されるパリティ検査行列（以降、単に検査行列と称する）によって定められる。即ち、検査行列の各要素及び多元ＬＤＰＣ符号の各シンボルラベルは、下記の数式（１）に示されるように、ＧＦ（２Ｎ）上の要素αｘで表すことができる。尚、ｘは、−∞，０，１，・・・，２Ｎ−２のいずれかに等しい。
【数１】
0005132738.tif 000002
【００１７】
検査行列の各行は、パリティ条件を規定する。下記の数式（２）は、パリティ条件の１つを例示する。  
【数２】
0005132738.tif 000003
【００１８】
尚、数式（２）においてＢｔは、第ｔ番目のシンボルに付与されるシンボルラベルを表す。ＢｔもまたＧＦ（２Ｎ）上の要素αｘで表される。また、ｔは１以上Ｔ以下の任意の整数を表し、Ｔは多元ＬＤＰＣ符号のシンボル長を表す。任意の多元ＬＤＰＣ符号語は、検査行列の全ての行のパリティ条件を満たすＴ個のシンボルにより構成される。前述のように、第ｔ番目のシンボルラベルＢｔは、αｘで表すことができる。また、数式（２）において、乗算（×）及び加算（＋）は、ＧＦ（２Ｎ）上で定義される乗算及び加算である。また、以降の説明においても、四則演算（尚、ＧＦ（２Ｎ）において減算は加算と同義）はいずれもＧＦ（２Ｎ）上で定義される四則演算を指すものとする。
【００１９】
誤り訂正復号器１００は、図３に示されるように、シンボル尤度算出部１０１、シンボル硬判定部１０２、硬判定情報バッファ１０３、シンドローム生成部１０４、検査行列情報記憶部１０５、シンドローム判定部１０６、変更指数導出部１０７、変更シンボル決定部１０８、変更ラベル決定部１０９及び変更適用部１１０を含む。
【００２０】
シンボル尤度算出部１０１は、符号化系列５０に含まれる複数の対象シンボルの尤度ベクトルを算出する。具体的には、シンボル尤度算出部１０１は、符号化系列５０に含まれる対象シンボル毎に、ＧＦ（２Ｎ）上で定義される２Ｎ個のラベルの尤度を算出する。即ち、１つの尤度ベクトルは、２Ｎ個の要素を持つ。シンボル尤度算出部１０１は、各シンボルの尤度ベクトルをシンボル硬判定部１０２及び変更指数導出部１０７に入力する。
【００２１】
シンボル硬判定部１０２は、シンボル尤度算出部１０１からの各シンボルの尤度ベクトルに基づいて、各シンボルラベルを硬判定する。具体的には、シンボル硬判定部１０２は、所与のシンボルについて、最も尤度の大きい（最尤の）ラベルを尤度ベクトルから探索し、探索したラベルをシンボルラベルとして判定する。シンボル硬判定部１０２は、全てのシンボルについて係る硬判定を行い、判定結果（シンボルラベル）を要素とするシンボルベクトルを硬判定情報バッファ１０３に入力する。
【００２２】
硬判定情報バッファ１０３は、復号が終了するまで、シンボルベクトルを一時推定語として保存する。硬判定情報バッファ１０３は、シンボル硬判定部１０２からシンボルベクトルが入力されると、シンボルベクトルを保存すると共に、シンボルベクトルをシンドローム生成部１０４に入力する。また、硬判定情報バッファ１０３は、後述する変更適用部１１０によりシンボルベクトル中のシンボルラベルが変更されると、変更後のシンボルベクトルを保存すると共に、変更後のシンボルベクトルをシンドローム生成部１０４に入力する。更に、硬判定情報バッファ１０３は、後述するシンドローム判定部１０６から復号が成功した（即ち、一時推定語が多元ＬＤＰＣ符号語の１つに一致した）ことを通知されると、保存しているシンボルベクトルに対応するユーザデータ６０を出力する。
【００２３】
シンドローム生成部１０４は、検査行列情報記憶部１０５からの検査行列情報と、硬判定情報バッファからのシンボルベクトルに基づいてシンドロームベクトルを生成する。具体的には、シンドローム生成部１０４は、検査行列情報によって表現される検査行列と、シンボルベクトル（の転置ベクトル）との乗算を行い、検査行列の全ての行のパリティ検査結果、即ち、シンドロームベクトルを得る。シンドロームベクトルにおける所与の要素（シンドローム値）は、検査行列の対応行の各要素と、シンボルベクトルの各要素との積和によって計算される。検査行列の行数がＭであれば、シンドロームベクトルは下記の数式（３）で表される。
【数３】
0005132738.tif 000004
【００２４】
数式（３）において、εｍは検査行列の第ｍ行に対応するシンドローム値を表しており、ＧＦ（２Ｎ）の２Ｎ個の要素のいずれかに等しい。ｍは、１以上Ｍ以下の任意の整数である。シンドローム生成部１０４は、生成したシンドロームベクトルを変更シンボル決定部１０８及びシンドローム判定部１０６に入力する。
【００２５】
検査行列情報記憶部１０５には、検査行列情報が記憶される。この検査行列情報は、検査行列の全ての要素の値を示す情報であってもよいし、検査行列における非零の要素の位置及びその値を示す情報であってもよい。ＬＤＰＣ符号は、検査行列において非零の要素が零の要素に比べて疎なので、後者の情報によって検査行列を表現することにより検査行列情報の量を削減できる。
【００２６】
シンドローム判定部１０６は、シンドローム生成部１０４からのシンドロームベクトルに基づいてユーザデータ６０が復号されているか否かを判定する。具体的には、シンドローム値が零であることは対応行のパリティ条件が満たされていることを意味し、シンドローム値が非零である（即ち、ＧＦ（２Ｎ）上の零を除く２Ｎ−１個の要素のいずれかに等しい）ことは対応行のパリティ条件が満たされていないことを意味する。即ち、全ての行のシンドローム値が零であれば、シンボルベクトルは検査行列によって定められる多元ＬＤＰＣ符号語の１つに一致している。係る場合に、シンドローム判定部１０６は、硬判定情報バッファ１０３に復号が成功したことを通知し、保存されているシンボルベクトルに対応するユーザデータ６０を出力させる。一方、送受信または記録再生の過程で発生するノイズなどにより、シンボル誤りが生じていれば、少なくとも１つの行のシンドローム値が非零となる。誤り訂正復号器１００は、全ての行に対応するシンドローム値が零となるか、或いは、所定の最大試行回数に達するまで、シンボルラベルを次々と変更し、多元ＬＤＰＣ符号の復号を繰り返し試みる。
【００２７】
変更指数導出部１０７は、ラベルを変更するシンボル（以降、変更シンボルとも称する）を決定するための変更指数を、シンボル尤度算出部１０１からの各シンボルの尤度ベクトル及びシンドローム生成部１０４からのシンドロームベクトルに基づいて導出する。尚、所与のシンボルの尤度ベクトルλは、下記の数式（４）で表すことができる。
【数４】
0005132738.tif 000005
【００２８】
数式（４）において、ｐ（αｘ）はシンボルラベルαｘの尤度（例えば、受信確率密度関数）を表している。尚、各シンボルの尤度ベクトルにおいて、各要素が尤度の降順に従ってソートされてもよい。係るソートを適用する場合には、尤度ベクトルλにおいて、最も尤度の大きい要素が第１番目に配置される。
【００２９】
変更指数導出部１０７は、各シンボルの尤度ベクトルにおける最大の尤度を利用して、下記の数式（５）に従って可変重みｗｍｔを計算する。  
【数５】
0005132738.tif 000006
【００３０】
数式（５）において、ｐ（ｘｔ）は第ｔ番目のシンボルの尤度ベクトルにおける最大の尤度を表す。但し、ｗｍｔは、検査行列の第ｍ行のパリティ検査に作用するシンボル（即ち、検査行列における第ｍ行の非零の要素が乗じられるシンボル）について導出され、検査行列の第ｍ行のパリティ検査に作用しないシンボル（即ち、検査行列における第ｍ行の零の要素が乗じられるシンボル）について導出されない。ｐ（ｘｍ）ｍａｘは検査行列の第ｍ行のパリティ検査に作用する全シンボルの尤度ベクトルにおける最大の尤度を表す。
【００３１】
数式（５）から明らかなように、可変重みｗｍｔは、検査行列の第ｍ行に対応するパリティ条件が満たされるならば負の値（≦−１）となり、満たされないならば正の値（≧１）となる。
【００３２】
変更指数導出部１０７は、数式（５）に従って可変重みｗｍｔの値を各シンドロームεｍに応じて決定し、下記の数式（６）に従って各シンボルの変更指数Ｗｔを導出する。
【数６】
0005132738.tif 000007
【００３３】
変更指数導出部１０７は、全てのシンボルについて変更指数を導出し、下記の数式（７）に示される変更指数ベクトルＷを得る。変更指数導出部１０７は、変更指数ベクトルＷを変更シンボル決定部１０８に入力する。
【数７】
0005132738.tif 000008
【００３４】
変更シンボル決定部１０８は、変更指数ベクトルＷに基づいて、変更シンボルを決定する。変更指数の大小によって、対応するシンボルがパリティ条件の不成立（不満足）に与えている影響を評価できる。具体的には、数式（５）から明らかなように、パリティ条件が不成立の場合には正の可変重みが与えられ、パリティ条件が成立の場合には負の可変重みが与えられる。また、数式（６）から明らかなように、変更指数は、係る可変重みを累積することにより導出される。従って、所与のシンボルが不成立のパリティ条件に数多く作用していれば、対応する変更指数は大きな値となる。変更シンボル決定部１０８は、典型的には、最大の変更指数に対応するシンボルを変更シンボルとして決定する。変更シンボル決定部１０８は、決定した変更シンボルを変更ラベル決定部１０９に通知する。
【００３５】
変更ラベル決定部１０９は、変更シンボルに次に付与するラベル（以降、変更ラベルと称する）を決定する。但し、変更シンボルに付与され得るラベルは２Ｎ通り存在する。そこで、変更ラベル決定部１０９は、変更シンボルが作用する各パリティ条件を参照し、変更ラベルを決定する。
【００３６】
具体的には、変更ラベル決定部１０９は、変更シンボルが作用する各パリティ条件を満たす局所解ラベルを導出する。例えば、数式（２）のパリティ条件についてＢ１＝α１及びＢ５＝α２が正しいと仮定すれば、第２番目のシンボルの局所解ラベルＢ２ｃについて下記の数式（８）が成り立つ。  
【数８】
0005132738.tif 000009
【００３７】
故に、シンボルラベルＢ２を下記の数式（９）に示されるように、局所解ラベルへ変更すれば、数式（２）のパリティ条件が満たされる。
【数９】
0005132738.tif 000010
【００３８】
変更ラベル決定部１０９は、変更シンボルが作用する全てのパリティ条件について局所解ラベルを導出する。変更ラベル決定部１０９は、全ての局所解ラベルが一致すれば、当該局所解ラベルを変更ラベルとして決定する。
【００３９】
一方、変更ラベル決定部１０９は、局所解ラベルが２種類以上存在すれば、変更シンボルの尤度ベクトルに基づいて変更ラベルを決定する。例えば、変更ラベル決定部１０９は、尤度の降順に従って、変更シンボルに現在付与されているラベル以下の尤度を持つラベルを変更ラベルとして決定する。もし、変更シンボルのラベルの尤度が最小であれば、変更ラベル決定部１０９は尤度のより大きいラベル（例えば、尤度最大のラベル）を変更ラベルとして決定してもよいし、これ以外の処理を行ってもよい。変更ラベル決定部１０９は、決定した変更ラベルを変更適用部１１０に通知する。
【００４０】
変更適用部１１０は、硬判定情報バッファ１０３に保存されたシンボルベクトルのうち、変更シンボルに変更ラベルを付与することにより、変更を適用する。
【００４１】
以下、図４を用いて誤り訂正復号器１００の動作例を説明する。  
シンボル尤度算出部１０１は、符号化系列５０を構成する各シンボルの尤度ベクトルを算出する（ステップＳ２０１）。シンボル硬判定部１０２は、ステップＳ２０１において算出された各シンボルの尤度ベクトルから最尤ラベルを探索し、探索したラベルをシンボルラベルとして夫々判定する（ステップＳ２０２）。ステップＳ２０２の判定結果であるシンボルベクトルは硬判定情報バッファ１０３に保存され、処理はステップＳ２０３に進む。
【００４２】
ステップＳ２０３において、シンドローム生成部１０４は、検査行列情報記憶部１０５からの検査行列情報と、硬判定情報バッファ１０３からの現在のシンボルベクトルに基づいてシンドロームベクトルを生成する。シンドローム判定部１０６は、ステップＳ２０３において生成されたシンドロームベクトルの全要素（即ち、全シンドローム値）が零であるか否かを判定する（ステップＳ２０４）。全てのシンドローム値が零であれば、シンドローム判定部１０６は、硬判定情報バッファ１０３に復号が成功したことを通知し、保存されているシンボルベクトルに対応するユーザデータ６０を出力させ、復号処理は終了する。一方、少なくとも１つのシンドローム値が非零であれば、シンドローム判定部１０６（或いは、図示または不図示の別の要素）は復号試行回数が所定の最大試行回数に到達しているか否かを判定する（ステップＳ２０５）。復号試行回数が所定の最大試行回数に到達していれば、シンドローム判定部１０６（或いは、図示または不図示の別の要素）は復号の失敗を判定し、復号処理は終了する。復号試行回数が所定の最大試行回数に到達していなければ、復号処理はステップＳ２０６へ進む。
【００４３】
ステップＳ２０６において、変更指数導出部１０７は、ステップＳ２０３において生成された各シンドローム値に応じて可変重みの値を決定し、各シンボルの変更指数を導出する。尚、可変重みの具体値は、ステップＳ２０６の最初の実行時に計算されてもよいし、ステップＳ２０１の実行時からステップＳ２０６の最初の実行時までの間の任意の時点で予め計算されていてもよい。
【００４４】
変更シンボル決定部１０８は、ステップＳ２０６において導出された変更指数に基づいて、変更シンボルを決定する（ステップＳ２０７）。変更ラベル決定部１０９は、変更シンボルが作用する各パリティ条件を満たす局所解ラベルを導出する（ステップＳ２０８）。変更ラベル決定部１０９は、ステップＳ２０８において導出した全ての局所解ラベルが一致すれば、当該局所解ラベルを変更ラベルとして決定する（ステップＳ２１０）。変更ラベル決定部１０９は、ステップＳ２０８において導出した局所解ラベルが２種類以上存在すれば、変更シンボルの尤度ベクトルに応じて変更ラベルを決定する（ステップＳ２１１）。変更適用部１１０は、硬判定情報バッファ１０３に保存されているシンボルベクトルのうち、ステップＳ２０７において決定された変更シンボルに、ステップＳ２１０またはステップＳ２１１において決定された変更ラベルを付与することにより、変更を適用する（ステップＳ２１２）。処理はステップＳ２１２からステップＳ２０３に戻る。
【００４５】
誤り訂正復号器１００によれば、多元ＬＤＰＣ符号の復号に必要となる計算量及びメモリ容量を抑えつつ、高い誤り訂正能力を実現できる。図５は、ＧＦ（２４）上で定義される多元ＬＤＰＣ符号を誤り訂正復号器１００により復号する場合のビットエラー率（図５の「Proposed Decoding BER」）を例示する。誤り訂正復号器１００によれば、復号前ビットエラー率（図５の「Uncoded BER」）を大きく改善できる。
【００４６】
以上説明したように、第１の実施形態に係る誤り訂正復号器は、一度の復号処理において、シンボル毎に変更指数を導出し、変更指数に基づいて変更シンボルを決定し、変更シンボルが作用するパリティ条件毎に局所解ラベルを導出し、局所解ラベルの導出結果に基づいて変更ラベルを決定する。これらの諸処理はいずれも複雑な演算を必要としない。即ち、本実施形態に係る誤り訂正復号器によれば、多元ＬＤＰＣ符号の復号に必要となる計算量及びメモリ容量を抑えることができる。
【００４７】
（第２の実施形態）  
第２の実施形態に係る誤り訂正復号器３００は、図６に示されるように、シンボル尤度算出部１０１、シンボル硬判定部１０２、硬判定情報バッファ１０３、シンドローム生成部１０４、検査行列情報記憶部１０５、シンドローム判定部１０６、シンボル尤度ソート部３１１、変更指数導出部１０７、変更指数バッファ３１２、変更シンボル決定部３０８、シンボル変更回数カウンタ３１３、総変更回数カウンタ３１４、変更ラベル決定部１０９及び変更適用部１１０を含む。尚、図６において、図３と同一のまたは類似する部分には同一のまたは類似する符号を付して示しており、重複する説明は省略する。
【００４８】
シンボル尤度ソート部３１１は、シンボル尤度算出部１０１によって算出された各シンボルの尤度ベクトルを受け取る。シンボル尤度ソート部３１１は、各シンボルの尤度ベクトルの要素を、尤度の降順（尚、昇順でもよい）に従ってソートする。シンボル尤度ソート部３１１は、ソート済みの尤度ベクトルを変更指数導出部１０７に入力する。前述のように、変更指数導出部１０７は、各シンボルのうち最尤ラベルを探索する必要がある。また、変更ラベル決定部１０９は、局所解ラベルが２種類以上存在する場合に、典型的には尤度の降順に従って現在のラベル以下の尤度を持つラベルを探索する必要がある。尤度の降順に従って各シンボルの尤度ベクトルの要素をソートしておけば、係る探索処理に必要な計算量を節約できる。尚、シンボル尤度ソート部３１１は、任意のソーティングアルゴリズムを利用してよい。  
変更指数バッファ３１２は、変更指数導出部１０７からの変更指数を保存し、変更シンボル決定部３０８に出力する。変更シンボル決定部３０８は、変更シンボルバッファ３１２に保存された変更指数に基づいて、変更シンボル決定部１０８と概ね同様の手法で変更シンボルを決定する。
【００４９】
総変更回数カウンタ３１４は、各シンボルが変更シンボルとして決定された回数の合計値をカウントする。即ち、総変更回数カウンタ３１４は、誤り訂正復号器３００における復号試行回数をカウントする。例えば、総変更回数カウンタ３１４は、変更シンボル決定部３０８が変更シンボルを決定する度に、総変更回数のカウント値を１インクリメントする。
【００５０】
シンボル変更回数カウンタ３１３は、各シンボルが変更シンボルとして決定された回数をカウントする。例えば、シンボル変更回数カウンタ３１３は、変更シンボル決定部３０８が変更シンボルを決定する度に、対応するシンボルの変更回数のカウント値を１インクリメントする。
【００５１】
尚、シンボル変更回数カウンタ３１３及び総変更回数カウンタ３１４は、復号処理が終了する度に、初期値（例えば０）にリセットされる。
【００５２】
各シンボルの変更回数をカウントすることの技術的意義を説明する。  
変更シンボル決定部３０８は、変更シンボル決定部１０８と同様に、最大の変更指数に対応するシンボルを変更シンボルとして決定する。ここで、同一のシンボルが変更シンボルとして繰り返し決定されるという状況が起こり得る。所与のシンボルの変更回数が２Ｎ−１回であることは、当該シンボルについて全てのラベルが試行済みであることを意味する。同一のシンボルが２Ｎ回連続して変更される状況を仮定する。係る状況では、どれだけ多く復号処理を繰り返しても当該シンボルについて一連のラベル変更が再現されるに過ぎず、復号が不成功に終わることは明らかである。
【００５３】
そこで、変更シンボル決定部３０８は、最大の変更指数に対応するシンボルの変更回数が２Ｎ−１回に到達していれば、例外的に他のシンボルを変更シンボルとして決定する。例えば、変更シンボル決定部３０８は、２番目に大きい変更指数に対応するシンボルを変更シンボルとして決定する。勿論、変更シンボル決定部３０８は、他の規範に従って変更シンボルを決定してもよい。尚、係る例外処理に伴い、シンボル変更回数カウンタ３１３は、対応するシンボルの変更回数を初期値または他の値にリセットしてもよい。
【００５４】
尚、誤り訂正復号器３００の動作例は、図４のフローチャートにいくつかのステップを付加することで理解できる。  
シンボル尤度ソート部３１１は、ステップＳ２０１において算出された各シンボルの尤度ベクトルの要素を尤度の降順に従ってソートする。係る処理は、典型的には、ステップＳ２０３乃至ステップＳ２１２で形成されるループ処理よりも前に行われる。
【００５５】
変更シンボル決定部３０８は、ステップＳ２０６において導出された変更指数に基づいて、変更シンボルを決定する。具体的には、変更シンボル決定部３０８は、シンボル変更回数カウンタ３１３を参照することにより、最大の変更指数に対応するシンボルの変更回数を検出する。当該シンボルの変更回数が２Ｎ−１回でなければ、変更シンボル決定部３０８は最大の変更指数に対応するシンボルを変更シンボルとして決定する。一方、当該シンボルの変更回数が２Ｎ−１回であれば、変更シンボル決定部３０８は例外的に他のシンボルを変更シンボルとして決定する。
【００５６】
ステップＳ２０６の実行時または実行後に、シンボル変更回数カウンタ３１３及び総変更回数カウンタ３１４は、夫々カウント処理を行う。具体的には、シンボル変更回数カウンタ３１３は、ステップＳ２０６において変更シンボルとして決定されたシンボルに対応する変更回数のカウント値を１インクリメントする。また、総変更回数カウンタ３１４は、総変更回数のカウント値を１インクリメントする。総変更回数のカウント値は、ステップＳ２０５において参照される。
【００５７】
以上説明したように、第２の実施形態に係る誤り訂正復号器は、第１の実施形態に係る変更シンボルの決定処理において、シンボル変更回数に基づく例外処理を適用する。従って、本実施形態に係る誤り訂正復号器によれば、同一のシンボルが連続して変更され続けることにより復号が不成功に終わる事態を回避できる。
【００５８】
（第３の実施形態）  
第３の実施形態に係る誤り訂正復号器４００は、シンボル尤度算出部１０１、シンボル硬判定部１０２、硬判定情報バッファ１０３、シンドローム生成部１０４、検査行列情報記憶部１０５、シンドローム判定部１０６、変更指数導出部４０７、エラー位置推定部４２１、変更ビット決定部４２２及び変更適用部４１０を含む。尚、図７において、図３と同一のまたは類似する部分には同一のまたは類似する符号を付して示しており、重複する説明は省略する。
【００５９】
誤り訂正復号器４００は、全ての行のシンドローム値が零となるか、或いは、所定の最大試行回数に達するまで、シンボルラベルを次々と変更し、多元ＬＤＰＣ符号の復号を繰り返し試みる。尚、本実施形態において、シンボルラベルの変更は、シンボルラベルのバイナリ表現であるビット列のうちの１ビットを反転させることにより実現される。尚、ビットの変更（即ち、反転）は一意に実現されるので、誤り訂正復号器４００はビット毎の変更回数をカウントする必要がない。
【００６０】
以降、説明を簡単化するために、下記の数式（１０）の原始多項式に基づく拡大体ＧＦ（２３）を仮定する。  
【数１０】
0005132738.tif 000011
【００６１】
係る拡大体ＧＦ（２３）の各要素のバイナリ表現は、表１に示す通りである。  
【表１】
0005132738.tif 000012
【００６２】
エラー位置推定部４２１は、シンドローム生成部１０４からのシンドロームベクトルに基づいて、各シンボルラベルのバイナリ表現についてビット単位のエラー情報を推定する。具体的には、エラー位置推定部４２１は、各パリティ条件に作用する全てのシンボルラベルのバイナリ表現を対象にエラー情報を推定する。エラー位置推定部４２１は、各パリティ条件に関して、対象シンボルラベルを除く全てのシンボルラベルが正しいと仮定し、当該対象シンボルラベルのバイナリ表現における各ビットのエラーの有無を推定する。下記の数式（１１）に示されるパリティ条件を用いて、エラー情報の推定手法を説明する。
【数１１】
0005132738.tif 000013
【００６３】
例えば、Ｂ１＝α１、Ｂ２＝α５及びＢ５＝α２のように、シンボルラベルが付与されているとする。これらシンボルラベルを数式（１１）に代入すると、下記の数式（１２）が得られる。
【数１２】
0005132738.tif 000014
【００６４】
シンボルラベルＢ２を対象にエラー情報を推定する場合には、Ｂ１＝α１及びＢ５＝α２が正しいと仮定する。この仮定により、数式（１１）のパリティ条件についての局所解ラベルＢ２ｃに関して下記の数式（１３）が導かれる。  
【数１３】
0005132738.tif 000015
【００６５】
数式（１３）を用いて、数式（１２）は下記の数式（１４）に書き換えられる。  
【数１４】
0005132738.tif 000016
【００６６】
局所解ラベルＢ２ｃを基準とするシンボルラベルα５の推定エラー情報をｅで表すと、数式（１４）は下記の数式（１５）に書き換えられる。  
【数１５】
0005132738.tif 000017
【００６７】
数式（１５）を変形すれば、下記の数式（１６）が得られる。  
【数１６】
0005132738.tif 000018
【００６８】
推定エラー情報ｅの各ビットにおける「１」は、シンボルラベルの対応ビットのエラーを示す。本例であれば、推定エラー情報ｅは、シンボルラベルＢ２の最上位ビットがエラーであることを示している。即ち、推定エラー情報ｅによれば、対象シンボルラベルにおけるエラービットを識別できる。同様に、エラー位置推定部４２１は、対象シンボルラベルをＢ１及びＢ５に順次切り替え、数式（１１）のパリティ条件に作用する全てのシンボルラベルを対象にエラー情報を推定する。即ち、エラー位置推定部４２１は、各パリティ条件について、シンドローム値を対象シンボルラベルに対応する検査行列の要素で割った商を推定エラー情報として導出する。エラー位置推定部４２１は、推定エラー情報を変更指数導出部４０７に通知する。
【００６９】
変更指数導出部４０７は、反転させるビット（以降、変更ビットとも称する）を決定するための変更指数を、シンボル尤度算出部１０１からの各シンボルの尤度ベクトル及びエラー位置推定部４２１からの推定エラー情報に基づいて導出する。
【００７０】
変更指数導出部４０７は、各シンボルの尤度ベクトルにおける最大の尤度を利用して、下記の数式（１７）に従って可変重みｗｍｔｎを計算する。  
【数１７】
0005132738.tif 000019
【００７１】
数式（１７）において、ｅｍｔｎは、検査行列の第ｍ行のパリティ条件について導出された、対象シンボルラベルＢｔの推定エラー情報ｅｍｔの第ｎ番目のビット値を表す。ｎは、１以上Ｎ以下の任意の整数である。但し、ｗｍｔｎは、検査行列の第ｍ行のパリティ検査に作用するシンボルについて導出され、検査行列の第ｍ行のパリティ検査に作用しないシンボルについて導出されない。変更指数導出部４０７は、数式（１７）に従って可変重みｗｍｔｎの値を各推定エラー情報ｅｍｔに応じて決定し、下記の数式（１８）に従って各シンボルの各ビットの変更指数Ｗｔｎを導出する。Ｗｔｎは、第ｔ番目のシンボルのバイナリ表現における第ｎ番目のビットの変更指数を表す。
【数１８】
0005132738.tif 000020
【００７２】
変更指数導出部４０７は、全てのシンボルのバイナリ表現における全てのビットについて変更指数を導出し、下記の数式（１９）に示される変更指数ベクトルＷを得る。変更指数導出部４０７は、変更指数ベクトルＷを変更ビット決定部４２２に入力する。
【数１９】
0005132738.tif 000021
【００７３】
変更ビット決定部４２２は、変更指数ベクトルＷに基づいて、変更ビットを決定する。変更指数の大小によって、対応するビットがエラーである可能性を評価できる。具体的には、数式（１７）から明らかなように、エラーとして推定される場合には正の可変重みが与えられ、エラーでないと推定される場合には負の可変重みが与えられる。また、数式（１８）から明らかなように、変更指数は、係る可変重みを総和することにより導出される。従って、所与のビットが数多くのパリティ条件に関してエラービットとして推定されていれば、対応する変更指数は大きな値となる。変更ビット決定部４２２は、典型的には、最大の変更指数に対応するビットを変更ビットとして決定する。変更ビット決定部４２２は、決定した変更ビットを変更適用部４１０に通知する。
【００７４】
変更適用部４１０は、硬判定情報バッファ１０３に保存されたシンボルベクトルのうち、変更ビットを反転させることにより、変更を適用する。
【００７５】
以下、図８を用いて誤り訂正復号器４００の動作例を説明する。  
シンボル尤度算出部１０１は、符号化系列５０を構成する各シンボルの尤度ベクトルを算出する（ステップＳ５０１）。シンボル硬判定部１０２は、ステップＳ５０１において算出された各シンボルの尤度ベクトルから最尤ラベルを探索し、探索したラベルをシンボルラベルとして夫々判定する（ステップＳ５０２）。ステップＳ５０２の判定結果であるシンボルベクトルは硬判定情報バッファ１０３に保存され、処理はステップＳ５０３に進む。
【００７６】
ステップＳ５０３において、シンドローム生成部１０４は、検査行列情報記憶部１０５からの検査行列情報と、硬判定情報バッファ１０３からの現在のシンボルベクトルに基づいてシンドロームベクトルを生成する。シンドローム判定部１０６は、ステップＳ５０３において生成されたシンドロームベクトルの全要素が零であるか否かを判定する（ステップＳ５０４）。全てのシンドローム値が零であれば、シンドローム判定部１０６は、硬判定情報バッファ１０３に復号が成功したことを通知し、保存されているシンボルベクトルに対応するユーザデータ６０を出力させ、復号処理は終了する。一方、少なくとも１つのシンドローム値が非零であれば、シンドローム判定部１０６（或いは、図示または不図示の別の要素）は復号試行回数が所定の最大試行回数に到達しているか否かを判定する（ステップＳ５０５）。復号試行回数が所定の最大試行回数に到達していれば、シンドローム判定部１０６（或いは、図示または不図示の別の要素）は復号の失敗を判定し、復号処理は終了する。復号試行回数が所定の最大試行回数に到達していなければ、復号処理はステップＳ５０６へ進む。
【００７７】
ステップＳ５０６において、エラー位置推定部４２１は、各パリティ条件について、ステップＳ５０３において生成されたシンドローム値を対象シンボルラベルに対応する検査行列の要素で割った商を推定エラー情報として導出する。
【００７８】
変更指数導出部４０７は、ステップＳ５０６において導出された推定エラー情報に応じて可変重みの値を決定し、各ビットの変更指数を導出する（ステップＳ５０７）。尚、可変重みの具体値は、ステップＳ５０７の最初の実行時に計算されてもよいし、ステップＳ５０１の実行時からステップＳ５０７の最初の実行時までの任意の時点で予め計算されていてもよい。
【００７９】
変更ビット決定部４２２は、ステップＳ５０７において導出された変更指数に基づいて、変更ビットを決定する（ステップＳ５０８）。変更適用部４１０は、硬判定情報バッファ１０３に保存されたシンボルベクトルのうち、ステップＳ５０８において決定された変更ビットを反転することにより、変更を適用する（ステップＳ５０９）。処理はステップＳ５０９からステップＳ５０３に戻る。
【００８０】
以上説明したように、第３の実施形態に係る誤り訂正復号器は、一度の復号処理において、各シンボルラベルのビット単位のエラー情報をパリティ条件毎に推定し、変更指数をビット毎に導出し、変更指数に基づいて変更ビットを決定する。これらの諸処理はいずれも複雑な演算を必要としない。即ち、本実施形態に係る誤り訂正復号器によれば、多元ＬＤＰＣ符号の復号に必要となる計算量及びメモリ容量を抑えることができる。
【００８１】
尚、上記各実施形態は、その記載の通りに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の態様を形成できる。また、例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【００８２】
上記各実施形態の処理は、汎用のコンピュータを基本ハードウェアとして用いることで実現可能である。上記各実施形態の処理を実現するプログラムは、コンピュータで読み取り可能な記憶媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記憶媒体に記憶される。記憶媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなど、プログラムを記憶でき、かつ、コンピュータが読み取り可能な記憶媒体であれば、何れの形態であってもよい。また、上記各実施形態の処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【００８３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８４】
１０，６０・・・ユーザデータ
２０・・・誤り訂正符号化部
３０・・・送信部
４０・・・受信部
５０・・・符号化系列
７０・・・記録部
８０・・・再生部
１００，３００，４００・・・誤り訂正復号器
１０１・・・シンボル尤度算出部
１０２・・・シンボル硬判定部
１０３・・・硬判定情報バッファ
１０４・・・シンドローム生成部
１０５・・・検査行列情報記憶部
１０６・・・シンドローム判定部
１０７，４０７・・・変更指数導出部
１０８，３０８・・・変更シンボル決定部
１０９・・・変更ラベル決定部
１１０，４１０・・・変更適用部
３１１・・・シンボル尤度ソート部
３１２・・・変更指数バッファ
３１３・・・シンボル変更回数カウンタ
３１４・・・総変更回数カウンタ
４２１・・・エラー位置推定部
４２２・・・変更ビット決定部
【図１】
0005132738.tif 000022
【図２】
0005132738.tif 000023
【図３】
0005132738.tif 000024
【図４】
0005132738.tif 000025
【図５】
0005132738.tif 000026
【図６】
0005132738.tif 000027
【図７】
0005132738.tif 000028
【図８】
0005132738.tif 000029