(57)【特許請求の範囲】
【請求項１】
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する復号装置であって、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定する決定ベクトル算出部と、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルを記憶する記憶部と、
前記決定ベクトルの各要素ビットに対し、前記反転パターン情報テーブルを検索して、処理対象の要素ビットに対応する反転パターンを取得する検索部と、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定する反転パターン特定部と、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定するコンカーレント符号語特定部と、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める軟出力ベクトル算出部と、
を備えることを特徴とする復号装置。
【請求項２】
前記反転パターン特定部が、反転パターンを特定するのに先立って、前記検索部により取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値の中に、予め設定された尤度閾値より小さい前記要素値の絶対値が存在するか否かを判定する尤度閾値判定部を、さらに備え、
前記反転パターン特定部は、前記尤度閾値判定部により、尤度閾値より小さい前記要素値の絶対値が存在すると判定された場合に、該要素値に対応する要素ビットを反転対象に含む反転パターンを特定する、
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記特定された反転パターンにより特定される反転対象の前記第２の決定ベクトルの要素ビットを反転することでコンカーレント符号語候補を生成するコンカーレント符号語候補生成部を、さらに備え、
前記コンカーレント符号語特定部は、前記生成された各コンカーレント符号語候補と前記軟入力ベクトルとの間のメトリック値を求め、該メトリック値が最小となるコンカーレント符号語候補を処理対象の要素ビットのコンカーレント符号語として特定する、
ことを特徴とする請求項１又は２に記載の復号装置。
【請求項４】
前記線形符号は、ハミング符号である、
ことを特徴とする請求項１乃至３の何れか一に記載の復号装置。
【請求項５】
前記受信データは、線形符号により２次元積符号化された受信データである、
ことを特徴とする請求項１乃至４の何れか一に記載の復号装置。
【請求項６】
前記線形符号は、複数であり、
前記記憶部は、異なる線形符号それぞれに対応する前記反転パターン情報テーブルを格納する、
ことを特徴とする請求項１乃至５の何れか一に記載の復号装置。
【請求項７】
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する復号方法であって、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定し、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルに基づいて、処理対象の要素ビットに対応する反転パターンを取得し、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定し、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定し、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める、
ことを特徴とする復号方法。
【請求項８】
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する機能を備えるコンピュータに、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定する処理と、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルに基づいて、処理対象の要素ビットに対応する反転パターンを取得する処理と、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定する処理と、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定する処理と、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積符号の復号装置、積符号の復号方法、及び、プログラムに関する。
【背景技術】
【０００２】
デジタル通信システムにおける信頼度向上のために、様々な符号化及びその復号方法が提案されている。訂正能力の高い符号による符号化は、復号処理が複雑となり装置化することが難しいが、連接符号化或いは積符号化を用いることで、比較的簡単に装置化可能であって高性能な符号化が可能となる。
【０００３】
積符号は、情報データを２重に符号化して冗長化するため、訂正能力が高いという特徴がある。そのため、ＤＶＤ(Digital Versatile Disc)等の誤り訂正方式等に広く用いられている。
【０００４】
積符号の復号方法として、特許文献１に開示されている方法（Pyndiahアルゴリズム）が代表的なものである。特許文献１に開示されている積符号の復号方法では、決定ベクトル候補となるｑ個の符号語［Ｃｔ］（ｔ＝１，２，３，…，ｑ）を生成し、生成した各符号語［Ｃｔ］と受信ベクトル（軟入力ベクトル）［Ｒ’］とのメトリック（ユークリッド距離）を算出し、メトリック値が最小となる符号語を決定ベクトル［Ｃｄ］とする。
【０００５】
そして、決定ベクトル［Ｃｄ］以外の決定ベクトル候補の符号語［Ｃｔ］（以下、コンカーレント符号語候補という）の中からコンカーレント符号語［Ｃｃ］を探索する。コンカーレント符号語［Ｃｃ］の探索は、決定ベクトル［Ｃｄ］の構成要素Ｃｄｋに対応する要素が反転しているコンカーレント符号語候補［Ｃｔ］が存在するか否かにより行われる。探索の結果、条件を満たすコンカーレント符号語候補［Ｃｔ］が存在した場合には、条件を満たすコンカーレント符号語候補［Ｃｔ］の中から、受信ベクトル（軟入力ベクトル）［Ｒ’］とのメトリック値が最小となるコンカーレント符号語候補［Ｃｔ］を特定し、その候補［Ｃｔ］をコンカーレント符号語［Ｃｃ］とする。
【０００６】
そして、コンカーレント符号語［Ｃｃ］が存在する場合は、軟出力ベクトル［ｒｒ］の構成要素ｒｒｋは次式により算出される。ここで、Ｍｃは、コンカーレント符号語［Ｃｃ］と受信ベクトル（軟入力ベクトル）［Ｒ’］との間のメトリック値であり、Ｍｄは、決定ベクトル［Ｃｄ］と受信ベクトル（軟入力ベクトル）［Ｒ’］との間のメトリック値である。
（数１）
ｒｒｋ＝（Ｍｃ−Ｍｄ）／４・Ｃｄｋ
【０００７】
一方、コンカーレント符号語［Ｃｃ］が存在しない場合は、軟出力ベクトル［ｒｒ］の構成要素ｒｒｋはβを定数として次式により算出される。
（数２）
ｒｒｋ＝β・Ｃｄｋ
【０００８】
特許文献１に開示されている方法では、決定ベクトル［Ｃｄ］とコンカーレント符号語［Ｃｃ］の探索では、Ｃｈａｓｅ復号が用いられるため符号語の候補が多様性に富んでおらず、コンカーレント符号語［Ｃｃ］が見つからない場合がある。そのため、コンカーレント符号語［Ｃｃ］が存在しない場合には、上述した算出式（数２）を用いて、軟出力ベクトル［ｒｒ］の構成要素ｒｒｋの推定を行う必要がある。しかしながら、この推定方法は、精度が高くないため、コンカーレント符号語［Ｃｃ］が見つからない場合は、軟出力の精度が劣化してしまう。
【０００９】
また、コンカーレント符号語［Ｃｃ］を決定ベクトル［Ｃｄ］以外の決定ベクトル候補（コンカーレント符号語候補）の符号語［Ｃｔ］から探索するため、演算量の軽減を優先してテストベクトルの個数設定をすると、決定ベクトル［Ｃｄ］の構成要素Ｃｄｋに対応する要素が反転しているコンカーレント符号語候補［Ｃｔ］が存在しなくなる確率がますます高まり、その結果、軟出力の精度がさらに劣化する恐れがある。
【００１０】
軟出力の精度は、復号性能に大きく関わることから、コンカーレント符号語［Ｃｃ］を見つけられるか否かは、積符号の復号において非常に重要な問題である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平７−２０２７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、上記実情に鑑みてなされたものであり、確実にコンカーレント符号語を探索可能な積符号の復号装置、積符号の復号方法、及び、プログラムを提供することを目的とする。
【００１３】
また、本発明は、コンカーレント符号語の候補を絞り込むことで演算量を軽減し、高速処理が可能な積符号の復号装置、積符号の復号方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の第１の観点に係る復号装置は、
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する復号装置であって、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定する決定ベクトル算出部と、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルを記憶する記憶部と、
前記決定ベクトルの各要素ビットに対し、前記反転パターン情報テーブルを検索して、処理対象の要素ビットに対応する反転パターンを取得する検索部と、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定する反転パターン特定部と、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定するコンカーレント符号語特定部と、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める軟出力ベクトル算出部と、
を備えることを特徴とする。
【００１５】
また、前記反転パターン特定部が、反転パターンを特定するのに先立って、前記検索部により取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値の中に、予め設定された尤度閾値より小さい前記要素値の絶対値が存在するか否かを判定する尤度閾値判定部を、さらに備え、前記反転パターン特定部は、前記尤度閾値判定部により、尤度閾値より小さい前記要素値の絶対値が存在すると判定された場合に、該要素値に対応する要素ビットを反転対象に含む反転パターンを特定する、
こととしてもよい。
【００１６】
また、前記特定された反転パターンにより特定される反転対象の前記第２の決定ベクトルの要素ビットを反転することでコンカーレント符号語候補を生成するコンカーレント符号語候補生成部を、さらに備え、前記コンカーレント符号語特定部は、前記生成された各コンカーレント符号語候補と前記軟入力ベクトルとの間のメトリック値を求め、該メトリック値が最小となるコンカーレント符号語候補を処理対象の要素ビットのコンカーレント符号語として特定する、
こととしてもよい。
【００１７】
また、前記線形符号は、ハミング符号である、
こととしてもよい。
【００１８】
この場合、前記受信データは、線形符号により２次元積符号化された受信データである、
こととしてもよい。
【００１９】
また、前記線形符号は、複数であり、前記記憶部は、異なる線形符号それぞれに対応する前記反転パターン情報テーブルを格納する、
こととしてもよい。
【００２０】
上記目的を達成するために、本発明の第２の観点に係る復号方法は、
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する復号方法であって、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定し、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルに基づいて、処理対象の要素ビットに対応する反転パターンを取得し、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定し、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定し、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める、
ことを特徴とする。
【００２１】
上記目的を達成するために、本発明の第３の観点に係るプログラムは、
線形符号により多次元積符号化された受信データを、軟出力ベクトルを求めることで復号する機能を備えるコンピュータに、
前記受信データの各配列に相当する受信ベクトルと初期設定が０ベクトルである訂正ベクトルとから生成される軟入力ベクトルと、軟入力ベクトルを硬判定することで得られる第１の決定ベクトルと、に基づいて、Ｃｈａｓｅ復号により、前記軟入力ベクトルとの間のメトリック値が最小となる第２の決定ベクトルを特定する処理と、
前記第２の決定ベクトルの要素ビットごとに、（ｉ）該要素ビットが反転対象であり、（ｉｉ）前記第２の決定ベクトルの反転対象の要素ビットを反転させることで得られる反転決定ベクトルが、前記受信ベクトルに対応する配列を符号化した前記線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすような、反転させる前記第２の決定ベクトルの要素ビットを特定するための１又は複数の反転パターンが対応付けられている反転パターン情報テーブルに基づいて、処理対象の要素ビットに対応する反転パターンを取得する処理と、
前記取得された反転パターンにより特定される反転対象から処理対象の要素ビットを除外した要素ビットに対応する前記軟入力ベクトルの要素値の絶対値が最小となる要素ビットを反転対象に含む反転パターンを特定する処理と、
前記特定された反転パターンに基づいて、処理対象の要素ビットのコンカーレント符号語を特定する処理と、
前記第２の決定ベクトルのメトリック値と、各要素ビットのコンカーレント符号語のメトリック値と、に基づいて、前記軟出力ベクトルを求める処理と、
を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、確実にコンカーレント符号語を探索可能となり、軟出力の精度の劣化を防ぎ、復号性能を高めることができる。また、本発明によれば、復号処理を高速化することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】（ａ）は、実施形態１における、デジタル通信システムの構成を示すブロック図である。（ｂ）は、実施形態１における、復号部の構成を示すブロック図である。
【図２】実施形態１における、積符号化された情報系列の構成を示す図である。
【図３】（ａ）は、実施形態１における、個数情報テーブルの一例を示す図である。（ｂ）は、実施形態１における、反転パターン情報テーブルの一例を示す図である。
【図４】（ａ）と（ｂ）と（ｃ）は、いずれも、実施形態１における、軟入力ベクトルの例である。
【図５】実施形態１における、反転パターン情報テーブルの例を示す図である。
【図６】（ａ）と（ｂ）と（ｃ）は、いずれも、実施形態１における、最小絶対値情報テーブルの例である。
【図７】（ａ）と（ｂ）は、いずれも、実施形態１における、コンカーレント符号語候補情報テーブルの例である。
【図８】実施形態１における、復号処理のフローチャートを示す図である。
【図９】実施形態１における、軟出力ベクトル生成処理のフローチャートを示す図である。
【図１０】実施形態１における、最小絶対値判定処理のフローチャートを示す図である。
【図１１】実施形態２における、復号部の構成を示すブロック図である。
【図１２】実施形態２における、軟出力ベクトル生成処理のフローチャートを示す図である。
【発明を実施するための形態】
【００２４】
本発明の好適な実施形態に係る積符号の復号装置、及び、復号方法について、図面を参照しながら説明する。
【００２５】
（実施形態１）
図１（ａ）は、デジタル通信システム１の構成を示すブロック図である。本実施形態におけるデジタル通信システム１は、無線送信装置００１と無線受信装置００２とから構成され、無線送信装置００１は、積符号化部００１Ａと、変調部００１Ｂと、無線通信部００１Ｃとから構成される。
【００２６】
積符号化部００１Ａは、図２に示すように、入力されたＫ２ｘＫ１の情報系列｛Ｋ｝を、行方向に、線形符号Ｃ１により情報系列長Ｋ１、符号長Ｎ１となるように符号化し、列方向に、線形符号Ｃ２により情報系列長Ｋ２、符号長Ｎ２となるように符号化する。図中のブロック１は、情報データ（情報系列）、ブロック２乃至４はパリティ（冗長）を表している。積符号化部００１Ａにより積符号化された情報系列｛Ｋ｝、すなわち、Ｎ２ｘＮ１のデータ行列（以下、積符号化情報行列という）{Ｒ}は、積符号化部００１Ａが備える内部メモリに記憶される。
【００２７】
積符号化部００１Ａにより積符号化された情報系列｛Ｋ｝（積符号化情報行列{Ｒ}）は、例えば、一行単位で上側から最終行（第Ｎ２番目の行）まで順次読み出される。ここで、順次読み出された行を積符号化行情報ベクトル［Ｒｉ］（ｉ＝１，２，…，Ｎ２）ということとする。
【００２８】
なお、実施形態の復号処理では、行における処理と列における処理とは同じであることから、以下、行における処理について説明する。また、行に対応するベクトルの表記は符号ｉを使用し、例えば、［Ａｉ］とし、列に対応するベクトルの表記は符号ｊを使用し、［Ａｊ］とする。特に行と列の区別が必要ないときは［Ａ］と表記することとする。
【００２９】
変調部００１Ｂは、積符号化部００１Ａが備える内部メモリから順次読み出された積符号化行情報ベクトル［Ｒｉ］を所定の信号方式へ変調する。無線通信部００１Ｃは、アンテナと無線通信モジュール等から構成され、変調後の積符号化行情報ベクトル［Ｒｉ］を増幅して通信路ＣＨへ出力する。通信路ＣＨにおいて、出力された積符号化行情報ベクトル［Ｒｉ］にノイズ成分が付加され、ノイズ成分が付加された積符号化行情報ベクトル［Ｒｉ］が無線受信装置００２により受信される。なお、ノイズ成分が付加された積符号化行情報ベクトルについても、便宜上、積符号化行情報ベクトル［Ｒｉ］ということとする。
【００３０】
無線受信装置００２は、図１（ａ）に示すように、無線通信部００２Ａと、復調部００２Ｂと、復号部００２Ｃとから構成される。無線通信部００２Ａは、アンテナと無線通信モジュール等から構成され、無線送信装置００１の無線通信部００１Ｃにより出力された積符号化行情報ベクトル［Ｒｉ］を受信する。復調部００２Ｂは、無線通信部００２Ａが受信した積符号化行情報ベクトル［Ｒｉ］を復調し、復調後の積符号化行情報ベクトル［Ｒｉ］は、復号部００２Ｃに入力される。
【００３１】
復号部００２Ｃは、ＣＰＵ(Central Processing Unit)と、ＲＯＭ(Read Only Memory)とＲＡＭ(Random Access Memory)等から構成された記憶部００２Ｃ１と、から構成される。復号部００２Ｃは、順次入力される復調後の積符号化行情報ベクトル［Ｒｉ］から積符号化情報行列{Ｒ}を生成し、記憶部００２Ｃ１に格納する。
【００３２】
記憶部００２Ｃ１は、ＣＰＵのワークエリアとして機能すると共にＣＰＵが実行する動作プログラム、詳しくは後述する個数情報テーブルＴ１と反転パターン情報テーブルＴ２を格納する。また、記憶部００２Ｃ１は、復号部００２Ｃにより生成された積符号化情報行列{Ｒ}（受信行列）、後述の反転パターン格納情報テーブルＴ３と最小絶対値情報テーブルＴ４とコンカーレント符号語候補情報テーブルＴ５、後述の軟出力ベクトル算出部００２Ｃ１１により算出された軟出力ベクトル［ｒｒ］の各構成要素ｒｒｋ等を格納する。
【００３３】
ここで、図３を参照して、記憶部００２Ｃ１に格納される個数情報テーブルＴ１と反転パターン情報テーブルＴ２について説明する。図３（ａ）は、行方向の符号化がハミング符号（１３，９，３）で行われた場合、つまり、行方向の符号長Ｎ１が”１３”の場合における決定ベクトル［Ｄ］の要素ビットｋ（ｋ＝１，２，…，１３）と、当該要素ビットｋの位置が反転対象であり且つ最小ハミング距離を隔てる反転パターンＰｍｋの個数Ｍｋと、を対応付けた個数情報テーブルＴ１の例を示す図である。図３（ａ）に示す例では、上側から順番に要素ビット１、２、３、…、１３にそれぞれ対応した反転パターンＰｍｋの個数Ｍｋを示している。なお、（１３，９，３）のそれぞれの値は、左から符号長、情報データ長、最小ハミング距離を示すものである。
【００３４】
図３（ｂ）は、行方向の符号化がハミング符号（１３，９，３）で行われた場合、つまり、行方向の符号長Ｎ１が”１３”の場合における、決定ベクトル［Ｄ］の要素ビットｋ（ｋ＝１，２，…，１３）と、当該要素ビットｋの位置が反転対象であり且つ最小ハミング距離を隔てる反転パターン群と、を対応付けた反転パターン情報テーブルＴ２の例を示す図である。例えば、反転パターンＰｍｋが（１，２，１３）の場合には、後述のコンカーレント符号語候補生成部００２Ｃ８は、決定ベクトル［Ｄ］の要素ビット”１”と”２”と”１３”の位置を反転（＋１→−１又は−１→＋１）させることで、コンカーレント符号語候補［Ｃｔ］を生成する。つまり、各反転パターンＰｍｋの（）内の各数字は、反転させる決定ベクトル［Ｄ］の要素ビット位置を特定するものである。
【００３５】
また、要素ビットｋに対応する各反転パターンＰｍｋは、本実施形態では、左側から順番にＰｍｋ（ｍｋ＝１）、Ｐｍｋ（ｍｋ＝２）、…、Ｐｍｋ（ｍｋ＝Ｍｋ）に対応し、符号”ｍｋ”は個数カウンタ００２Ｃ１４のカウンタ値ｍｋに対応する。すなわち、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが”１”で、個数カウンタ００２Ｃ１４のカウンタ値ｍｋが”１”の場合、図３（ｂ）の例では、要素ビット”１”に対応する反転パターン群の中から一番左側の反転パターン（１，２，１３）を後述の検索部００２Ｃ３は取得する。
【００３６】
ここで、「反転パターンＰｍｋ」について、より具体的に説明する。まず、「最小ハミング距離を隔てる」とは、決定ベクトル［Ｄ］と反転パターンＰｍｋが指示する決定ベクトル［Ｄ］の要素ビット位置を反転させることで生成されるベクトル（以下、反転決定ベクトルという）［ＲＤｍｋ］とのハミング距離が最小ハミング距離と一致することを意味する。すなわち、反転させる要素ビット位置の数が最小ハミング距離と一致することを意味する。図３の例では、最小ハミング距離は”３”であることから、各反転パターンＰｍｋが特定する反転対象の要素ビットの数は”３”となる。次に、各反転パターンＰｍｋが特定する反転対象の決定ベクトル［Ｄ］の要素ビットの位置は、任意に設定されるものではなく、反転パターンが指示する要素ビット位置を反転させることにより生成される反転決定ベクトル［ＲＤｍｋ］が符号語となるように設定される。
【００３７】
記憶部００２Ｃ１は、列方向と行方向の符号化が別々の線形符号により行われた場合には、列方向と行方向それぞれについて別々の個数情報テーブルＴ１と反転パターン情報テーブルＴ２を格納するが、列方向と行方向の符号化が同じ線形符号により行われた場合には、列方向と行方向共通の個数情報テーブルＴ１と反転パターン情報テーブルＴ２を格納する。
【００３８】
図１に戻り、図１（ｂ）に示すように、復号部００２Ｃが備えるＣＰＵは、動作プログラムを実行することにより、決定ベクトル生成部００２Ｃ２と、検索部００２Ｃ３と、尤度閾値判定部００２Ｃ４と、第１反転パターン特定部００２Ｃ５と、最小絶対値判定部００２Ｃ６、第２反転パターン特定部００２Ｃ７と、コンカーレント符号語候補生成部００２Ｃ８と、コンカーレント符号語特定部００２Ｃ９と、判定部００２Ｃ１０と、軟出力ベクトル算出部００２Ｃ１１と、行（列）カウンタ００２Ｃ１２と、繰り返し回数カウンタ００２Ｃ１３と、個数カウンタ００２Ｃ１４と、要素ビットカウンタ００２Ｃ１５として機能する。
【００３９】
また、復号部００２Ｃが備えるＣＰＵは、動作プログラムを実行することにより、後述する本発明特有の軟出力ベクトル生成処理を含む復号処理を実行し、軟出力ベクトル生成処理では、記憶部００２Ｃ１に格納されている各情報テーブルを用い、決定ベクトル［Ｄ］の各要素ビットｋ（ｋ＝１，２，…，Ｎ１）に対応するカーレント符号語［Ｃｋ］を探索し、探索により得られたコンカーレント符号語［Ｃｋ］を用いて、軟出力ベクトル［ｒｒ］の各構成要素ｒｒｋを求めることで軟出力ベクトル［ｒｒ］を生成する。
【００４０】
決定ベクトル生成部００２Ｃ２は、従来技術であるＣｈａｓｅ復号等を用いて、線形符号Ｃ１及び線形符号Ｃ２の決定ベクトル［Ｄ］を求め、決定ベクトル［Ｄ］と軟入力ベクトル［Ｒ’］との間のメトリック値Ｍｄを記憶部００２Ｃ１に格納する。検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている個数情報テーブルＴ１を検索し、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する反転パターンＰｍｋの個数Ｍｋを取得する。また、検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている反転パターン情報テーブルＴ２を検索し、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する反転パターン群から、個数カウンタ００２Ｃ１４のカウンタ値ｍｋにより特定される反転パターンＰｍｋを取得する。
【００４１】
尤度閾値判定部００２Ｃ４は、検索部００２Ｃ３が取得した反転パターンＰｍｋにより特定される反転対象から処理対象の要素ビットｋを除外した各要素ビットにそれぞれ対応する軟入力ベクトル［Ｒ’］の要素値Ｒ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒ’ｎ｜のうちで、予め設定されている尤度閾値α（本実施形態においては、尤度閾値α＝０．３とする）より小さい絶対値｜Ｒ’ｎ｜が存在する否かを判定する。
【００４２】
第１反転パターン特定部００２Ｃ５は、尤度閾値判定部００２Ｃ４により、反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒ’］の各要素値Ｒ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒ’ｎ｜うちで、尤度閾値αより小さい絶対値｜Ｒ’ｎ｜が存在すると判定された場合に、判定対象の反転パターンＰｍｋを図５に例示する反転パターン格納情報テーブルＴ３の反転パターン欄に格納する。
【００４３】
ここで、尤度閾値判定部００２Ｃ４と第１反転パターン特定部００２Ｃ５の動作を、図３乃至５を参照して、具体的に説明する。図４は、それぞれ、軟入力ベクトルの具体例を示す図である。図５は、反転パターン格納情報テーブルＴ３の例である。例えば、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋ＝１で個数カウンタ００２Ｃ１４のカウンタ値ｍ１＝１の場合、検索部００２Ｃ３は、反転パターン（１，２，１３）を取得する。処理対象の要素ビットｋは”１”なので、反転パターン（１，２，１３）が特定する反転対象から要素ビット”１”を除外した要素ビットは、”２”と”１３”となる。図４（ａ）を参照し、反転対象の要素ビット”２”と”１３”に対応する軟入力ベクトル［Ｒ’］の要素値はそれぞれ、”０．７５”と”−０．５３”である。この場合、これらの要素値の絶対値はいずれも尤度閾値α＝０．３以上であることから、尤度閾値判定部００２Ｃ４は、尤度閾値αより小さい絶対値｜Ｒ’ｎ｜が存在しないと判定する。
【００４４】
また、例えば、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋ＝１で個数カウンタ００２Ｃ１４のカウンタ値ｍ１＝３の場合、検索部００２Ｃ３は、反転パターン（１，４，５）を取得する。処理対象の要素ビットｋは”１”なので、反転パターン（１，４，５）が特定する反転対象から要素ビット”１”を除外した要素ビットは、”４”と”５”となる。図４（ａ）を参照し、反転対象の要素ビット”４”と”５”に対応する軟入力ベクトル［Ｒ’］の要素値はそれぞれ、”−１．００”と”−０．２５”である。この場合、要素値”−０．２５”の絶対値”０．２５”は尤度閾値α＝０．３より小さいことから、尤度閾値判定部００２Ｃ４は、尤度閾値αより小さい絶対値｜Ｒ’ｎ｜が存在すると判定し、第１反転パターン特定部００２Ｃ５は、図５に示すように、反転パターン（１，４，５）を反転パターン格納情報テーブルＴ３に格納する。要素ビットｋ＝１に対応する反転パターンＰｍ１からは、反転パターン（１，４，５）と反転パターン（１，６，１１）とが反転パターン格納情報テーブルＴ３に格納される。
【００４５】
図１（ｂ）に戻り、最小絶対値判定部００２Ｃ６は、尤度閾値判定部００２Ｃ４により、反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒ’］の各要素値Ｒ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒ’ｎ｜うちで、尤度閾値αより小さい絶対値｜Ｒ’ｎ｜が存在しないと判定され、且つ、判定部００２Ｃ１０により、反転パターン格納情報テーブルＴ３に反転パターンが格納されていないと判定された場合に、以下の動作を実行する。最小絶対値判定部００２Ｃ６は、反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒ’］の各要素値Ｒ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒ’ｎ｜うちで、最小値min｜Ｒ’ｎ｜が詳しくは後述する最小絶対値情報テーブルＴ４に格納されている最小絶対値以下か否かを判定する。但し、最小絶対値判定部００２Ｃ６は、最小絶対値情報テーブルＴ４に最小絶対値が格納されていない場合には、最小絶対値情報テーブルＴ４に格納されている最小絶対値以下であると判定する。
【００４６】
第２反転パターン特定部００２Ｃ７は、最小絶対値判定部００２Ｃ６により、最小値min｜Ｒ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下であると判定された場合には、最小値min｜Ｒ’ｎ｜と、反転パターンＰｍｋと、を対応付けて最小絶対値情報テーブルＴ４を更新する。但し、最小値min｜Ｒ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値と等しい場合には、反転パターンＰｍｋを最小絶対値情報テーブルＴ４の反転パターンの欄に追加する。
【００４７】
ここで、最小絶対値判定部００２Ｃ６と第２反転パターン特定部００２Ｃ７の動作について、図３と図４と図６を参照して、具体的に説明する。図６は、最小絶対値情報テーブルＴ４の例である。例えば、図３と図４（ｂ）の例では、処理対象の要素ビットｋが”１”で尤度閾値α＝０．３の場合、軟入力ベクトル［Ｒ’２］の要素値の絶対値が、尤度閾値以下の値となる要素ビットは”１”のみである。しかしながら、上述したように、要素ビット”１”は処理対象の要素ビットであることから除外され、反転パターン格納情報テーブルＴ３には、要素ビット”１”に対応する反転パターンＰｍ１はいずれも格納されない。
【００４８】
この場合、例えば、個数カウンタ００２Ｃ１４のカウンタ値ｍ１＝１の時には、検索部００２Ｃ３により取得される反転パターンは（１，２，１３）である。そして、反転パターン（１，２，１３）により特定される反転対象の要素ビットから処理対象の要素ビット”１”を除いた”２”と”１３”にそれぞれ対応する軟入力ベクトル［Ｒ’２］の要素値の絶対値は”０．７５”と”０．５３”である。まだ、最小絶対値情報テーブルＴ４には最小絶対値が格納されていないことから、最小絶対値判定部００２Ｃ６により、最小値min｜Ｒ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下であると判定され、第２反転パターン特定部００２Ｃ７は、図６（ａ）に示すように、最小値”０．５３”と反転パターン（１，２，１３）とを対応付けて最小絶対値情報テーブルＴ４に格納する。
【００４９】
また、例えば、個数カウンタ００２Ｃ１４のカウンタ値ｍ１＝２の時には、検索部００２Ｃ３により取得される反転パターンは（１，３，１０）である。そして、反転パターン（１，３，１０）により特定される反転対象の要素ビットから処理対象の要素ビット”１”を除いた”３”と”１０”にそれぞれ対応する軟入力ベクトル［Ｒ’２］の要素値の絶対値は”０．６５”と”０．６６”である。この場合、最小絶対値判定部００２Ｃ６により、最小値min｜Ｒ’ｎ｜（０．６５）が最小絶対値情報テーブルＴ４に格納されている最小絶対値（０．５３）以下でないと判定され、第２反転パターン特定部００２Ｃ７は、最小絶対値情報テーブルＴ４を更新しない。すなわち、この時点での最小絶対値情報テーブルＴ４の状態は、図６（ａ）に示す状態である。
【００５０】
また、例えば、図３と図４（ｃ）の例では、処理対象の要素ビットｋが”１”で尤度閾値α＝０．３の場合、軟入力ベクトル［Ｒ’３］の要素値の絶対値が、尤度閾値以下の値となる要素ビットは”１”のみである。しかしながら、上述したように、要素ビット”１”は処理対象の要素ビットであることから除外され、反転パターン格納情報テーブルＴ３には、要素ビット”１”に対応する反転パターンＰｍ１はいずれも格納されない。この場合、例えば、個数カウンタ００２Ｃ１４のカウンタ値ｍ１＝２の時には、検索部００２Ｃ３により取得される反転パターンは（１，３，１０）である。そして、反転パターン（１，３，１０）により特定される反転対象の要素ビットから処理対象の要素ビット”１”を除いた”３”と”１０”にそれぞれ対応する軟入力ベクトル［Ｒ’３］の要素値の絶対値は”０．５３”と”０．６６”である。
【００５１】
この場合、図６（ａ）に示すように、最小値min｜Ｒ’ｎ｜（０．５３）は最小絶対値情報テーブルＴ４に格納されている最小絶対値”０．５３”と等しいことから、最小絶対値判定部００２Ｃ６により、最小値min｜Ｒ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下であると判定され、第２反転パターン特定部００２Ｃ７は、最小値min｜Ｒ’ｎ｜と最小絶対値情報テーブルＴ４に格納されている最小絶対値が等しいことから、図６（ｂ）に示すように、反転パターン（１，３，１０）を最小絶対値情報テーブルＴ４の反転パターンの欄に追加する。
【００５２】
最小絶対値判定部００２Ｃ６と第２反転パターン特定部００２Ｃ７は、要素ビット”１”に対応する各反転パターン（１，２，１３）と（１，３，１０）と（１，４，５）と（１，６，１１）と（１，７，９）について上述の処理を繰り返す。図６（ｃ）は、反転パターン（１，７，８）まで処理を終えた時点での、図４（ｂ）と（ｃ）に示した軟入力ベクトル［Ｒ’２］と［Ｒ’３］を例にした場合の最小絶対値情報テーブルＴ４の状態を示す図である。図４（ｂ）と（ｃ）のいずれの場合も、反転パターン（１，６，１１）が特定する反転対象の要素ビット”１１”に対応する軟入力ベクトル［Ｒ’２］（又は［Ｒ’３］）の要素値”０．３５”が最小絶対値となる。したがって、最小絶対値情報テーブルＴ４は、図６（ｃ）に示すように、反転パターン（１，６，１１）と最小絶対値”０．３５”とが対応付けられた状態となる。
【００５３】
図１（ｂ）に戻り、コンカーレント符号語候補生成部００２Ｃ８は、判定部００２Ｃ１０により、反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていると判定された場合には、反転パターン格納情報テーブルＴ３に格納されている各反転パターンＰｍｋから、反転パターンＰｍｋが特定する反転対象の決定ベクトル［Ｄ］の要素ビットを反転させることで、要素ビットｋ（ｋ＝１，２，…，Ｎ１）のコンカーレント符号語候補［Ｃtｋ］を生成し、反転パターンＰｍｋとそれぞれ対応付けて後述のコンカーレント符号語候補情報テーブルＴ５に格納する。
【００５４】
一方、判定部００２Ｃ１０により、反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていないと判定された場合には、コンカーレント符号語候補生成部００２Ｃ８は、最小絶対値情報テーブルＴ４に格納されている反転パターンＰｍｋから、反転パターンＰｍｋが特定する反転対象の決定ベクトル［Ｄ］の要素ビットを反転させることで、要素ビットｋ（ｋ＝１，２，…，Ｎ１）のコンカーレント符号語候補［Ｃtｋ］を生成し、反転パターンＰｍｋと対応付けて後述のコンカーレント符号語候補情報テーブルＴ５に格納する。
【００５５】
コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補情報テーブルＴ５を参照し、コンカーレント符号語候補生成部００２Ｃ８により生成されたコンカーレント符号語候補［Ｃtｋ］それぞれに対し、軟入力ベクトル［Ｒ’］との間のメトリック値Ｍｔｋを求め、最も値が小さいメトリック値minＭｔｋを有するコンカーレント符号語候補［Ｃtｋ］を要素ビットｋのコンカーレント符号語［Ｃｋ］として特定し、最も値が小さいメトリック値minＭｔｋを要素ビットｋのコンカーレント符号語［Ｃｋ］のメトリック値Ｍｃｋとして、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する。
【００５６】
ここで、図３乃至７を参照して、コンカーレント符号語候補生成部００２Ｃ８とコンカーレント符号語特定部００２Ｃ９の具体的な動作について説明する。図７は、コンカーレント符号語候補情報テーブルＴ５の例を示す図である。例えば、図３と図４（a）の例では、処理対象の要素ビットｋが”１”で尤度閾値α＝０．３の場合、上述したように反転パターン格納情報テーブルＴ３には、反転パターン（１，４，５）と（１，６，１１）とが格納される（図５を参照）。したがって、判定部００２Ｃ１０により、反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていると判定される。この場合、コンカーレント符号語候補生成部００２Ｃ８は、反転パターン格納情報テーブルＴ３に格納されている反転パターン（１，４，５）と（１，６，１１）とから、決定ベクトル［Ｄ］の要素ビット”１”と”４”と”５”とを反転させたコンカーレント符号語候補［Ｃ１１］と決定ベクトル［Ｄ］の要素ビット”１”と”６”と”１１”とを反転させたコンカーレント符号語候補［Ｃ２１］を生成する。
【００５７】
そして、コンカーレント符号語候補生成部００２Ｃ８は、図７（ａ）に示すように、反転パターン（１，４，５）と（１，６，１１）をそれぞれコンカーレント符号語候補［Ｃ１１］と［Ｃ２１］とに対応付けてコンカーレント符号語候補情報テーブルＴ５に格納する。そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補情報テーブルＴ５（図７（ａ））を参照して、コンカーレント符号語候補［Ｃ１１］と［Ｃ２１］それぞれについて、軟入力ベクトル［Ｒ’］との間のメトリック値Ｍ１１とＭ２１を算出する。そして、コンカーレント符号語特定部００２Ｃ９は、値が小さい方のメトリック値を要素ビット”１”のコンカーレント符号語［Ｃ１］のメトリック値Ｍｃ１として、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する。図７（ａ）の例では、コンカーレント符号語候補［Ｃ１１］が要素ビット”１”のコンカーレント符号語［Ｃ１］として特定されたことを示している。
【００５８】
また、例えば、図３と軟入力ベクトルの一例を示す図４（ｂ）の例では、処理対象の要素ビットｋが”１”で尤度閾値α＝０．３の場合、軟入力ベクトル［Ｒ’２］の要素ビット”１”の要素値０．２０は尤度閾値以下であるが、処理対象の要素ビットｋが”１”であるので除外され、反転パターン格納情報テーブルＴ３には、反転パターンＰｍｋが格納されない。したがって、判定部００２Ｃ１０により、反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていないと判定される。反転パターン（１，７，９）の処理を終えた時点で、最小絶対値情報テーブルＴ４には、図６（ｃ）に示すように、反転パターン（１，６，１１）が格納されている。コンカーレント符号語候補生成部００２Ｃ８は、図７（ｂ）に示すように、決定ベクトル［Ｄ］の要素ビット”１”と”６”と”１１”を反転させることでコンカーレント符号語候補［Ｃ１ｋ］を生成し、反転パターン（１，６，１１）とコンカーレント符号語候補［Ｃ１１］とを対応付けてコンカーレント符号語候補情報テーブルＴ５に格納する。
【００５９】
そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補情報テーブルＴ５（図７（ｂ））を参照して、コンカーレント符号語候補［Ｃ１１］と軟入力ベクトル［Ｒ’］との間のメトリック値Ｍ１１を算出する。そして、コンカーレント符号語特定部００２Ｃ９は、メトリック値Ｍ１１を要素ビット”１”のコンカーレント符号語［Ｃ１］のメトリック値Ｍｃ１として、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する。
【００６０】
図１（ｂ）に戻り、判定部００２Ｃ１０は、個数カウンタ００２Ｃ１４のカウンタ値ｍｋが、検索部００２Ｃ３により取得された要素ビットｋ（ｋ＝１，２，…，Ｎ１）に対応する反転パターンＰｍｋの個数Ｍｋ以下であるか否かを判定する。また、判定部００２Ｃ１０は、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが行方向の符号長Ｎ１以下であるか否かを判定する。また、判定部００２Ｃ１０は、反転パターン格納情報テーブルＴ３を検索し、反転パターンＰｍｋが格納されているか否かを判定する。
【００６１】
軟出力ベクトル算出部００２Ｃ１１は、記憶部００２Ｃ１に格納されている決定ベクトル［Ｄ］のメトリック値Ｍｄと要素ビットｋのコンカーレント符号語［Ｃｋ］のメトリック値Ｍｃｋを用いて、次式より軟出力ベクトル［ｒｒ］の第ｋ番目の構成要素ｒｒｋ（ｋ＝１，２，…，Ｎ１）の値を算出し、軟出力ベクトル［ｒｒ］を生成する。
（数３）
ｒｒｋ＝（Ｍｃｋ−Ｍｄ）・Ｄｋ／４
【００６２】
行（列）カウンタ００２Ｃ１２は、復号部００２Ｃにより記憶部００２Ｃ１から順次読み出される積符号化行情報ベクトル［Ｒｉ］が、第一行目から最終行（第Ｎ２行目）まで復号処理されたかを管理するためのカウンタである。カウンタの初期設定値は”１”であり、処理対象の行に対応する訂正ベクトル［Ｗｉ］が生成されるたびにインクリメントされる。また、行（列）カウンタ００２Ｃ１２は、行処理と同様に、列処理において、順次読み出される積符号化列情報ベクトル［ＲＪ］が、第１列から最終列（第Ｎ１列目）まで復号処理されたかを管理する。
【００６３】
繰り返し回数カウンタ００２Ｃ１３は、積符号化情報行列｛Ｒ｝に対して所定の回数の復号処理を実施したかを管理するカウンタである。カウンタの初期設定値は”１”であり、積符号化情報行列｛Ｒ｝から第一行目を読み出して最終列（第Ｎ１列目）までの処理を１回の処理とし、最終列（第Ｎ１列目）の処理を終えるたびにインクリメントされる。
【００６４】
個数カウンタ００２Ｃ１４は、記憶部００２Ｃ１に格納されている個数情報テーブルＴ１により特定される要素ビットｋに対応する反転パターンＰｍｋの個数Ｍｋ（ｋ＝１，２，…，Ｎ１）に対応するカウンタであり、反転パターン情報テーブルＴ２により特定される要素ビットｋに対応する全ての反転パターンＰｍｋ（ｍｋ＝１，２，…，Ｍｋ）について、尤度閾値判定部００２Ｃ４による判定処理がなされたかを管理するためのものである。また、個数カウンタ００２Ｃ１４のカウンタ値ｍｋの初期設定値は”１”であり、尤度閾値判定部００２Ｃ４による判定処理が実行されるごとにインクリメントされる。
【００６５】
要素ビットカウンタ００２Ｃ１５は、決定ベクトル［Ｄ］の要素ビットｋ（ｋ＝１，２，…，Ｎ１）の個数、すなわち、行方向の符号長Ｎ１に対応するカウンタであり、軟出力ベクトル算出部００２Ｃ１１が、決定ベクトル［Ｄ］の要素ビット個数分、すなわち、Ｎ１個の軟出力ベクトル［ｒｒ］の構成要素ｒｒｋ（ｋ＝１，２，…，Ｎ１）を算出したかを管理するためのものである。要素ビットカウンタ００２Ｃ１５の初期設定値は”１”であり、軟出力ベクトル算出部００２Ｃ１１が、軟出力ベクトル［ｒｒ］の構成要素ｒｒｋを算出するごとにインクリメントされる。
【００６６】
次に、図８と図９を参照して、本発明の特徴的な部分である軟出力ベクトル生成処理を含む積符号の復号処理について説明する。図８は、復号処理全体のフローを示す図であり、従来技術と同様の処理を示している。図９は、図８の軟出力ベクトル生成ステップ（ステップ００５、０１２）での本発明特有の軟出力ベクトル生成処理のフローを示す図である。
【００６７】
まず、図８を参照して、復号処理全体のフローについて説明する。前提条件として、復号部００２Ｃが備える記憶部００２Ｃ１に格納された積符号化情報行列{Ｒ}から一行単位で上側から最終行（第Ｎ２番目の行）まで順次読み出され、最終行まで読み出された後に、今度は、一列単位で左側から最終列（第Ｎ１番目の列）まで順次読み出されるものと仮定する。
【００６８】
無線送信装置００１の積符号化部００１Ａの内部メモリに格納されている積符号化情報行列{Ｒ}から順次読み出された積符号化行情報ベクトル［Ｒｉ］（ｉ＝１，２，…，Ｎ２）は、変調部００１Ｂにより所定の信号方式に順次変調され、変調された積符号化行情報ベクトル［Ｒｉ］は、無線通信部００１Ｃにより増幅され通信路ＣＨへ順次出力される。そして、積符号化行情報ベクトル［Ｒｉ］は、無線受信装置００２の無線通信部００２Ａにより順次受信され、復調部００２Ｂにより順次復調され、復調された積符号化行情報ベクトル［Ｒｉ］は復号部００２Ｃに順次入力される。
【００６９】
復号部００２Ｃは、順次入力される積符号化行情報ベクトル［Ｒｉ］から積符号化情報行列{Ｒ}を生成し、記憶部００２Ｃ１に格納する。
【００７０】
復号部００２Ｃは、繰り返し回数カウンタ００２Ｃ１３を初期化、すなわち、カウンタ値ｉｔを”１”とする共に、訂正行列｛Ｗ｝を初期化、すなわち、訂正行列｛Ｗ｝の全構成要素を”０”にする（ステップ００１）。そして、復号部００２Ｃは、行（列）カウンタ００２Ｃ１２を初期化、すなわち、カウンタ値ｉを”１”にする（ステップ００２）。
【００７１】
そして、復号部００２Ｃは、行（列）カウンタ００２Ｃ１２のカウンタ値ｉに対応する第ｉ行目の積符号化行情報ベクトル［Ｒｉ］を読み出し、訂正行列｛Ｗ｝の第ｉ番目の行に対応する訂正ベクトル［Ｗｉ］と読み出された積符号化行情報ベクトル［Ｒｉ］を用いて、第ｉ番目の行に対応する軟入力ベクトル［Ｒｉ’］を算出し、軟入力ベクトル［Ｒｉ’］を更新する（ステップ００３）。
（数４）
［Ｒｉ’］＝［Ｒｉ］＋α１・［Ｗｉ］    （ｉ＝１，２，…、Ｎ２）
【００７２】
そして、復号部００２Ｃは、第ｉ番目の行に対応する軟入力ベクトル［Ｒｉ’］の各構成要素Ｒｉ’ｋ（ｋ＝１，２，…，Ｎ１）に対する硬判定値Ｄｉｋを次式により求め、求めた硬判定値Ｄｉｋを構成要素とするベクトルを決定ベクトル［Ｄｉ］とする（ステップ００４）。つまり、決定ベクトル［Ｄｉ］をステップ００４の処理で新たに求めた決定ベクトル［Ｄｉ］で更新する。
（数５）
Ｄｉｋ＝ｓｉｇｎ（Ｒｉ’ｋ）    （ｋ＝１，２，…，Ｎ１）
なお、関数ｓｉｇｎ（ｘ）は、ｘ≧０の場合は、”＋１”となり、ｘ＜０の場合は、”−１”となるシグネチャ関数である。
【００７３】
そして、復号部００２Ｃは、第ｉ番目の行に対応する軟入力ベクトル［Ｒｉ’］と決定ベクトル［Ｄｉ］を用いて、第ｉ番目の行に対応する軟出力ベクトル［ｒｒｉ］を生成する（ステップ００５）。
【００７４】
そして、復号部００２Ｃは、軟出力ベクトル［ｒｒｉ］の構成要素ｒｒｉｋと軟入力ベクトル［Ｒｉ’］の構成要素Ｒｉ’ｋを用いて、次式によりＷｉｋを求め、求めたＷｉｋで構成されるベクトルを第ｉ番目の行に対応する訂正ベクトル［Ｗｉ］とする（ステップ００６）。つまり、訂正ベクトル［Ｗｉ］をステップ００６の処理で新たに求めた訂正ベクトル［Ｗｉ］で更新する。
（数６）
Ｗｉｋ＝ｒｒｉｋ−Ｒｉ’ｋ    （ｋ＝１，２，…，Ｎ１）
【００７５】
そして、復号部００２Ｃは、行（列）カウンタ００２Ｃ１２のカウンタ値ｉがＮ２であるか否かを判定する（ステップ００７）。つまり、ステップ００３乃００６の処理を積符号化情報行列{Ｒ}の全行に対して行ったか否かを判定する。行（列）カウンタ００２Ｃ１２のカウンタ値ｉがＮ２でないと判定した場合には（ステップ００７；ＮＯ）、行（列）カウンタ００２Ｃ１２のカウンタ値ｉをインクリメントし（ステップ００８）、前述のステップ００３乃００６の処理を最終行（第Ｎ２番目の行）に至るまで繰り返す。
【００７６】
一方、行（列）カウンタ００２Ｃ１２のカウンタ値ｉがＮ２であると判定した場合には（ステップ００７；ＹＥＳ）、復号部００２Ｃは積符号化情報行列{Ｒ}から列を順次読み出して、行に対して行った処理と同様の処理を行う（ステップ００９乃至０１５）。
【００７７】
そして、復号部００２Ｃは、繰り返し回数カウンタ００２Ｃ１３のカウンタ値ｉｔが設定された繰り返し回数に達したか否かを判定する（ステップ０１６）。繰り返し回数カウンタ００２Ｃ１３のカウンタ値ｉｔが設定された繰り返し回数に達していないと判定した場合には（ステップ０１６；ＮＯ）、復号部００２Ｃは、繰り返し回数カウンタ００２Ｃ１３のカウンタ値ｉｔをインクリメントし（ステップ０１７）、ステップ００２の処理から復号処理を繰り返す。
【００７８】
一方、繰り返し回数カウンタ００２Ｃ１３のカウンタ値ｉｔが設定された繰り返し回数に達したと判定した場合には（ステップ０１６；ＹＥＳ）、復号部００２Ｃは、軟出力行列｛ｒｒ｝の各構成要素の硬判定値を構成要素とするＮ２ｘＮ１の硬判定行列｛Ｄｒｒ｝を復号結果として出力して（ステップ０１８）、復号処理を終了する。この復号結果として出力されたＮ２ｘＮ１の硬判定行列｛Ｄｒｒ｝のＫ２ｘＫ１部分が復号処理により推定された情報系列を表し、推定された情報系列の構成要素は”＋１”又は”−１”であるが、それぞれ２進法の”０”と”１”に対応する。
【００７９】
次に、図９を参照して、本発明特有の軟出力ベクトル生成処理について説明する。この軟出力ベクトル生成処理は、上述したように、図８に示す復号処理のステップ００５とステップ０１２の処理に対応する処理である。なお、行における軟出力ベクトル生成処理と列おける軟出力ベクトル生成処理は同様の処理であることから、行における軟出力ベクトル生成処理、すなわち、ステップ００５の処理に対応する処理について説明する。
【００８０】
決定ベクトル生成部００２Ｃ２は、ステップ００３の処理で求めた第ｉ行目（ｉ＝１，２，…，Ｎ２）の軟入力ベクトル［Ｒｉ’］とステップ００４の処理で求めた第ｉ行目（ｉ＝１，２，…，Ｎ２）の決定ベクトル［Ｄｉ］を用いて、従来技術であるＣｈａｓｅ復号により生成した候補符号語［Ｃｔ］の中から、軟入力ベクトル［Ｒｉ’］とのメトリック値が最小となる候補符号語［Ｃｄｉ］を決定ベクトル［Ｄｉ］とする（つまり、［Ｃｄｉ］で［Ｄｉ］を更新する）と共に、候補符号語［Ｃｄｉ］のメトリック値Ｍｄｉを記憶部００２Ｃ１に格納する（ステップＳ０１）。以下、候補符号語［Ｃｄｉ］で更新された決定ベクトル［Ｄｉ］を決定ベクトル［Ｃｄｉ］ということとする。
【００８１】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５を初期化し、カウンタ値ｋを”１”とし（ステップＳ０２）、検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている個数情報テーブルＴ１を検索して、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットに対応する反転パターンＰｍｋの個数Ｍｋを取得する（ステップＳ０３）。そして、復号部００２Ｃは、個数カウンタ００２Ｃ１４を初期化し、カウンタ値ｍｋを”１”とし（ステップＳ０４）、検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている反転パターン情報テーブルＴ２を検索して、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットに対応する反転パターン群の中から、個数カウンタ００２Ｃ１４のカウンタ値ｍｋにより特定される反転パターンＰｍｋを取得する（ステップＳ０５）。
【００８２】
そして、尤度閾値判定部００２Ｃ４は、ステップＳ０５の処理で検索部００２Ｃ３が取得した反転パターンＰｍｋにより特定される反転対象から処理対象の要素ビットｋを除外した各要素ビットにそれぞれ対応する軟入力ベクトル［Ｒｉ’］の要素値Ｒｉ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒｉ’ｎ｜のうちで、予め設定されている尤度閾値αより小さい絶対値｜Ｒｉ’ｎ｜が存在する否かを判定する（ステップＳ０６）。尤度閾値αより小さい絶対値｜Ｒｉ’ｎ｜が存在すると判定された場合には（ステップＳ０６；ＹＥＳ）、第１反転パターン特定部００２Ｃ５は、判定対象の反転パターンＰｍｋを反転パターン格納情報テーブルＴ３の反転パターン欄に格納し（ステップＳ０７）、処理はステップＳ０９の処理へ進む。
【００８３】
一方、尤度閾値αより小さい絶対値｜Ｒｉ’ｎ｜が存在しないと判定された場合には（ステップＳ０６；ＮＯ）、復号部００２Ｃは詳しくは後述する最小絶対値判定処理を実行する（ステップＳ０８）。そして、復号部００２Ｃは、個数カウンタ００２Ｃ１４のカウンタ値ｍｋをインクリメントし（ステップＳ０９）、判定部００２Ｃ１０は、ステップＳ０９の処理でインクリメントされた後のカウンタ値ｍｋが、ステップＳ０３の処理で取得した反転パターンＰｍｋの個数Ｍｋを越えたか否かを判定する（ステップＳ１０）。カウンタ値ｍｋが個数Ｍｋ以下であると判定された場合には（ステップＳ１０；ＮＯ）、処理はステップＳ０５の処理に戻り、前述の処理を繰り返す。
【００８４】
一方、カウンタ値ｍｋが個数Ｍｋを越えたと判定された場合には（ステップＳ１０；ＹＥＳ）、判定部００２Ｃ１０は、反転パターン格納情報テーブルＴ３を検索し、反転パターンＰｍｋが格納されているか否かを判定する（ステップＳ１１）。反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていると判定された場合には（ステップＳ１１；ＹＥＳ）、反転パターン格納情報テーブルＴ３に格納されている各反転パターンＰｍｋから、反転パターンＰｍｋが特定する反転対象の決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の要素ビットを反転させることで、要素ビットｋのコンカーレント符号語候補［Ｃtｋｉ］を生成し、反転パターンＰｍｋとそれぞれ対応付けてコンカーレント符号語候補情報テーブルＴ５に格納する（ステップＳ１２）。
【００８５】
一方、反転パターン格納情報テーブルＴ３に反転パターンＰｍｋが格納されていないと判定された場合には（ステップＳ１１；ＮＯ）、コンカーレント符号語候補生成部００２Ｃ８は、最小絶対値情報テーブルＴ４に格納されている反転パターンＰｍｋから、反転パターンＰｍｋが特定する反転対象の決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の要素ビットを反転させることで、要素ビットｋのコンカーレント符号語候補［Ｃtｋｉ］を生成し、反転パターンＰｍｋと対応付けて後述のコンカーレント符号語候補情報テーブルＴ５に格納する（ステップＳ１３）。
【００８６】
そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補情報テーブルＴ５を検索し、コンカーレント符号語候補生成部００２Ｃ８により生成されたコンカーレント符号語候補［Ｃtｋｉ］それぞれに対し、軟入力ベクトル［Ｒｉ’］との間のメトリック値Ｍｔｋｉを求め、最も値が小さいメトリック値minＭｔｋｉを有するコンカーレント符号語候補［Ｃtｋｉ］を要素ビットｋのコンカーレント符号語［Ｃｋｉ］として特定する。そして、コンカーレント符号語特定部００２Ｃ９は、最も値が小さいメトリック値minＭｔｋｉを要素ビットｋのコンカーレント符号語［Ｃｋｉ］のメトリック値Ｍｃｋｉとして、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する（ステップＳ１４）。
【００８７】
そして、軟出力ベクトル算出部００２Ｃ１１は、ステップＳ１４の処理で特定した要素ビットｋのコンカーレント符号語［Ｃｋｉ］のメトリック値ＭｃｋｉとステップＳ０１の処理で記憶部００２Ｃ１に格納された決定ベクトル［Ｃｄｉ］のメトリック値Ｍｄｉを用いて、上述した算出式（数３）により、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋに対応する第ｋ番目の軟出力ベクトル［ｒｒｉ］の構成要素ｒｒｉｋを算出し、算出した構成要素ｒｒｉｋを記憶部００２Ｃ１に格納する（ステップＳ１５）。
【００８８】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋをインクリメントすると共に、記憶部００２Ｃ１に格納されている反転パターン格納情報テーブルＴ３と最小絶対値情報テーブルＴ４とコンカーレント符号語候補情報テーブルＴ５とを初期化する（ステップＳ１６）。そして、判定部００２Ｃ１０は、ステップＳ１６の処理でインクリメントされた後の要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが決定ベクトル［Ｃｄｉ］の要素ビット個数Ｎ１（行方向の符号長）を越えたか否かを判定する（ステップＳ１７）。
【００８９】
カウンタ値ｋが要素ビット個数Ｎ１以下であると判定された場合には（ステップＳ１７；ＮＯ）、処理はステップＳ０３の処理に戻り、前述の処理を繰り返す。一方、カウンタ値が要素ビット個数Ｎ１を越えたと判定された場合には（ステップＳ１７；ＹＥＳ）、軟出力ベクトル算出部００２Ｃ１１は、前述の処理を決定ベクトル［Ｃｄｉ］の要素ビット個数回（Ｎ１回）繰り返すことで得られた、構成要素ｒｒｉｋ（ｋ＝１，２，…，Ｎ１）から、第ｉ番目の行に対応する軟出力ベクトル［ｒｒｉ］（＝（ｒｒｉ１，ｒｒｉ２，…，ｒｒｉＮ１））を生成し（ステップＳ１８）、軟出力ベクトル生成処理を終了する。
【００９０】
次に、図１０を参照して、最小絶対値判定処理について説明する。この最小絶対値判定処理は、図９の軟出力ベクトル生成処理のステップＳ０８の処理に対応する処理である。
【００９１】
尤度閾値判定部００２Ｃ４により、尤度閾値αより小さい絶対値｜Ｒｉ’ｎ｜が存在しないと判定された場合には（ステップＳ０６；ＮＯ）、判定部００２Ｃ１０は、反転パターン格納情報テーブルＴ３に反転パターンが格納されているか否かを判定する（ステップＳ１０１）。反転パターンが格納されていると判定された場合には（ステップＳ１０１；ＹＥＳ）、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップＳ０９に進む。
【００９２】
一方、反転パターンが格納されていないと判定された場合には（ステップＳ１０１；ＮＯ）、最小絶対値判定部００２Ｃ６は、反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒｉ’］の各要素値Ｒｉ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒｉ’ｎ｜うちで、最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下か否かを判定する（ステップＳ１０２）。最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下でないと判定された場合には（ステップＳ１０２；ＮＯ）、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップＳ０９に進む。
【００９３】
一方、最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値以下であると判定した場合には（ステップＳ１０２；ＮＯ）、最小絶対値判定部００２Ｃ６は、さらに、反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒｉ’］の各要素値Ｒｉ’ｎ（但し、ｎ≠ｋ）の絶対値｜Ｒｉ’ｎ｜うちで、最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値と等しいか否かを判定する（ステップＳ１０３）。
【００９４】
最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値と等しいと判定された場合には（ステップＳ１０３；ＹＥＳ）、第２反転パターン特定部００２Ｃ７は、反転パターンＰｍｋを最小絶対値情報テーブルＴ４の反転パターンの欄に追加する（ステップＳ１０４）。そして、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップＳ０９に進む。
【００９５】
一方、最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値と等しくないと判定された場合には、すなわち、最小値min｜Ｒｉ’ｎ｜が最小絶対値情報テーブルＴ４に格納されている最小絶対値より小さい場合には（ステップＳ１０３；ＮＯ）、第２反転パターン特定部００２Ｃ７は、反転パターンＰｍｋと最小値min｜Ｒｉ’ｎ｜とを対応付けて最小絶対値情報テーブルＴ４を更新する（ステップＳ１０５）。そして、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップＳ０９に進む。
【００９６】
次に、図３と図４（ａ）と図５と図６（ａ）と図７を参照して、軟出力ベクトル生成処理について具体例に沿って説明する。
【００９７】
要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが”１”の場合（ステップＳ０２）、検索部００２Ｃ３は、図３（ａ）に例示する番号情報テーブルＴ１から要素ビット”１”に対応する反転パターンの個数Ｍ１、すなわち、”５”を取得する（ステップＳ０３）。復号部００２Ｃは、個数カウンタ００２Ｃ１４のカウンタ値ｍ１を初期化、すなわち、ｍ１＝１とする（ステップＳ０４）。
【００９８】
そして、検索部００２Ｃ３は、図３（ｂ）に例示する反転パターン情報テーブルＴ２を検索して、個数カウンタ００２Ｃ１４のカウンタ値ｍ１（ｍ１＝１，２，…，５）は”１”なので、要素ビット”１”に対応する反転パターン群から反転パターンＰｍ１（ｍ１＝１）、すなわち、第１番目の反転パターン（１，２，１３）を取得する（ステップＳ０５）。反転パターン（１，２，１３）により特定される反転対象から処理対象の要素ビット”１”を除外した要素ビット”２”と”１３”にそれぞれ対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値”０．７５”と”０．５３”は、尤度閾値”０．３”より大きいことから（ステップＳ０６；ＮＯ）、最小絶対値判定処理を実行する（ステップＳ０８）。
【００９９】
最小絶対値判定処理において、反転パターン格納情報テーブルＴ３には、まだ、反転パターンが格納されておらず（ステップＳ１０１；ＮＯ）、最小絶対値情報テーブルＴ４には、まだ、最小絶対値が格納されていないことから（ステップ１０２；ＹＥＳ、ステップ１０３；ＮＯ）、第２反転パターン特定部００２Ｃ７は、反転パターン（１，２，１３）と最小絶対値”０．５３”とを対応付けて最小絶対値情報テーブルＴ４に格納する（ステップＳ１０７）。図６（ａ）は、この時点での、最小絶対値情報テーブルＴ４の状態を示している。
【０１００】
そして、復号部００２Ｃは、個数カウンタ００２Ｃ１４のカウンタ値ｍ１をインクリメントし（ステップＳ０９）、インクリメント後の個数カウンタ００２Ｃ１４のカウンタ値ｍ１は”２”なので（ステップＳ１０；ＮＯ）、処理は、ステップＳ０５の処理に戻る。
そして、検索部００２Ｃ３は、図３（ｂ）に例示する反転パターン情報テーブルＴ２を検索して、個数カウンタ００２Ｃ１４のカウンタ値ｍ１は”２”なので、要素ビット”１”に対応する反転パターン群から反転パターンＰｍ１（ｍ１＝２）、すなわち、第２番目の反転パターン（１，３，１０）を取得し、前述の処理を繰り返す。
【０１０１】
反転パターン（１，３，１０）の処理では、反転パターン（１，３，１０）により特定される反転対象から処理対象の要素ビット”１”を除外した要素ビット”３”と”１０”に対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値はいずれも尤度閾値”０．３”より大きく（ステップＳ０６；ＮＯ）、最小絶対値情報テーブルＴ４に格納されている最小絶対値”０５３”よりも大きいので（ステップ１０１；ＮＯ、ステップ１０２；ＮＯ）、処理は、ステップＳ０９の処理に進む。
【０１０２】
個数カウンタ００２Ｃ１４のカウンタ値ｍ１が”３”での処理、すなわち、反転パターン（１，４，５）の処理では、反転パターン（１，４，５）により特定される反転対象から処理対象の要素ビット”５”に対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値”０．２５”は尤度閾値”０．３”より小さいので（ステップＳ０６；ＹＥＳ）、第１反転パターン特定部００２Ｃ５は、反転パターン（１，４，５）を反転パターン格納情報テーブルＴ３に格納する（ステップＳ０７）。
【０１０３】
個数カウンタ００２Ｃ１４のカウンタ値ｍ１が”４”での処理、すなわち、反転パターン（１，６，１１）の処理では、反転パターン（１，６，１１）により特定される反転対象から処理対象の要素ビット”１１”に対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値”０．１５”は尤度閾値”０．３”より小さいので（ステップＳ０６；ＹＥＳ）、第１反転パターン特定部００２Ｃ５は、反転パターン（１，６，１１）を反転パターン格納情報テーブルＴ３に格納する（ステップＳ０７）。
【０１０４】
個数カウンタ００２Ｃ１４のカウンタ値ｍ１が”５”での処理、すなわち、反転パターン（１，７，９）の処理では、反転パターン（１，７，９）により特定される反転対象から処理対象の要素ビット”１”を除外した要素ビット”７”と”９”に対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値はいずれも尤度閾値”０．３”より大きく（ステップＳ０６；ＮＯ）、反転テーブル格納情報テーブルＴ３には、反転パターンが格納されているので（ステップ１０１；ＹＥＳ）、処理は、ステップＳ０９の処理に進む。
【０１０５】
図５は、要素ビット”１”に対応する全ての反転パターンについて、前述の処理を終えた時点での、反転パターン格納情報テーブルＴ３の状態を示していることから（ステップＳ１１；ＹＥＳ）、コンカーレント符号語候補生成部００２Ｃ８は、反転パターン格納情報テーブルＴ３に格納されている反転パターン（１，４，５）と（１，６，１１）から、コンカーレント符号語候補［Ｃ１１］と［Ｃ２１］を生成する。そして、コンカーレント符号語候補生成部００２Ｃ８は、それぞれ反転パターンと対応つけてコンカーレント符号語候補情報テーブルＴ５に格納する（ステップＳ１２）。
【０１０６】
そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補［Ｃ１１］と［Ｃ２１］とそれぞれに対し、軟入力ベクトル［Ｒ’１］との間のメトリック値Ｍ１１とＭ２１を算出する。そして、最小のメトリック値Ｍ１１のコンカーレント符号語候補［Ｃ１１］を要素ビット”１”のコンカーレント符号語［Ｃ１］として特定し、そのメトリック値Ｍ１１をＭｃ１として、図７（ａ）に示すように、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する（ステップＳ１４）。
【０１０７】
そして、軟出力ベクトル算出部００２Ｃ１１は、記憶部００２Ｃ１に格納されている決定ベクトル［Ｃｄ］（［Ｄ］）のメトリック値Ｍｄと要素ビット”１”のコンカーレント符号語［Ｃ１］のメトリック値Ｍｃ１と決定ベクトル［Ｃｄ］（［Ｄ］）の要素ビット”１”（第１番目）の構成要素Ｃｄ１とを用いて、上述した算出式（数３）より、軟出力ベクトル［ｒｒ］の第１番目の構成要素ｒｒ１を算出し、記憶部００２Ｃ１に格納する（ステップＳ１５）。
【０１０８】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋをインクリメントすると共に、反転パターン格納情報テーブルＴ３と最小絶対値情報テーブルＴ４とコンカーレント符号語候補情報テーブルＴ５とを初期化する（ステップＳ１６）。そして、判定部００２Ｃ１０は、インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えたか否かを判定する（ステップＳ１７）。インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えるまで、前述の処理を繰り返えし、軟出力ベクトル算出部００２Ｃ１１は、軟出力ベクトル［ｒｒ］の各構成要素ｒｒｋ（ｋ＝１，２，…，１３）を算出し、記憶部００２Ｃ１に格納する。
【０１０９】
判定部００２Ｃ１０が、インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えたと判定すると（ステップＳ１７；ＹＥＳ）、軟出力ベクトル算出部００２Ｃ１１は、算出した構成要素ｒｒｋ（ｋ＝１，２，…，１３）から軟出力ベクトル［ｒｒ］を生成し（ステップＳ１８）、軟出力ベクトル生成処理を終了する。
【０１１０】
本実施形態によれば、決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の各要素ビットｋ（ｋ＝１，２，…，Ｎ１）に対応する反転パターンの個数を示す個数情報テーブルＴ１と、各要素ビットｋに対応する反転パターンＰｍｋ（ｍｋ＝１，２，…，Ｍｋ）を示す反転パターン情報テーブルＴ２を予め記憶部００２Ｃ１に格納し、処理対象の要素ビットｋに対応する反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒｉ’］の要素値の絶対値｜Ｒｉ’ｎ｜が、尤度閾値αより小さい反転パターンを特定した。こうすることで、軟入力ベクトル［Ｒｉ’］との間のメトリック値が小さいコンカーレント符号語候補［Ｃｔｋｉ］が生成出来る可能性が高い反転パターンに絞り込むことが可能となる。その結果、コンカーレント符号語［Ｃｋｉ］の探索処理における演算量を軽減し、復号処理の高速化を図ることが可能となる。
【０１１１】
また、本実施形態によれば、処理対象の要素ビットｋに対応する反転パターンＰｍｋにより特定される要素ビットｋ以外の反転対象に対応する軟入力ベクトル［Ｒｉ’］の各要素値の絶対値｜Ｒｉ’ｎ｜が、いずれも尤度閾値α以上の場合には、最小絶対値判定部００２Ｃ６と第２反転パターン特定部００２Ｃ７とにより、絶対値｜Ｒｉ’ｎ｜が最小となる反転パターンを特定した。こうすることで、確実にコンカーレント符号語［Ｃｋｉ］を見つけることが可能となることから、訂正ベクトル［Ｗｉ］を推定する必要がなくなり、訂正ベクトル［Ｗｉ］を推定することで生じる積符号の復号性能の劣化を防ぐことが可能となる。
【０１１２】
（実施形態２）
実施形態１においては、決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の各要素ビットｋ（ｋ＝１，２，…，Ｎ１）に対応する反転パターンＰｍｋごとに、軟入力ベクトル［Ｒｉ’］との間のメトリック値が小さいコンカーレント符号語候補［Ｃｔｋｉ］が生成出来る可能性が高い反転パターンの絞り込みを行った。本実施形態においては、反転パターンの絞り込みを要素ビットｋに対応する全ての反転パターンに対し１度の処理で行う。
【０１１３】
本実施形態における、デジタル通信システム１の構成は、図１に示す実施形態１の構成と同じである。但し、図１１に示すように、復号部００２Ｃが備える各機能部の構成が異なり、復号部００２Ｃは、記憶部００２Ｃ１と、決定ベクトル生成部００２Ｃ２と、検索部００２Ｃ３と、尤度閾値判定部００２Ｃ４と、第１反転パターン特定部００２Ｃ５と、第２反転パターン特定部００２Ｃ７と、コンカーレント符号語候補生成部００２Ｃ８と、コンカーレント符号語特定部００２Ｃ９と、判定部００２Ｃ１０と、軟出力ベクトル算出部００２Ｃ１１と、行（列）カウンタ００２Ｃ１２と、繰り返し回数カウンタ００２Ｃ１３と、要素ビットカウンタ００２Ｃ１５を備える。
【０１１４】
また、番号情報テーブルＴ１と、反転パターン格納情報テーブルＴ３と、最小絶対値情報テーブルＴ４は、記憶部００２Ｃ１に格納されない点で、実施形態１とは異なる。さらに、検索部００２Ｃ３と、尤度閾値判定部００２Ｃ４と、第１反転パターン特定部００２Ｃ５と、第２反転パターン特定部００２Ｃ７と、コンカーレント符号語候補生成部００２Ｃ８と、判定部００２Ｃ１０が果たす機能が実施形態１とは若干異なる。
【０１１５】
検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている反転パターン情報テーブルＴ２を検索し、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する各反転パターンＰｋ（本実施形態では、ＰｍｋでなくＰｋとする）により特定される反転対象の全ての要素ビットｎｋを取得する。
【０１１６】
尤度閾値判定部００２Ｃ４は、検索部００２Ｃ３が取得した要素ビットｎｋから処理対象の要素ビットｋを除外した各要素ビットｎｋ（ｎｋ≠ｋ）にそれぞれ対応する軟入力ベクトル［Ｒ’］の要素値Ｒ’ｎｋ（但し、ｎｋ≠ｋ）の絶対値｜Ｒ’ｎｋ｜の中に、予め設定されている尤度閾値α（本実施形態においては、尤度閾値α＝０．３とする）より小さい絶対値｜Ｒ’ｎｋ｜が存在する否かを判定する。
【０１１７】
第１反転パターン特定部００２Ｃ５は、尤度閾値判定部００２Ｃ４により、要素ビットｎｋから処理対象の要素ビットｋを除外した各要素ビットｎｋ（ｎｋ≠ｋ）に対応する軟入力ベクトル［Ｒ’］の各要素値Ｒ’ｎｋ（但し、ｎｋ≠ｋ）の絶対値｜Ｒ’ｎｋ｜の中に、尤度閾値αより小さい絶対値｜Ｒ’ｎｋ｜が存在すると判定された場合に、尤度閾値αより小さい絶対値｜Ｒ’ｎｋ｜に対応する要素ビットｎｋが反転対象である反転パターンＰｋを特定し、コンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納する。
【０１１８】
第２反転パターン特定部００２Ｃ７は、尤度閾値判定部００２Ｃ４により、要素ビットｎｋから処理対象の要素ビットｋを除外した各要素ビットｎｋ（ｎｋ≠ｋ）に対応する軟入力ベクトル［Ｒ’］の各要素値Ｒ’ｎｋ（但し、ｎｋ≠ｋ）の絶対値｜Ｒ’ｎｋ｜の中に、尤度閾値αより小さい絶対値｜Ｒ’ｎｋ｜が存在しないと判定された場合に、最小絶対値min｜Ｒ’ｎｋ｜の要素ビットｎｋが反転対象である反転パターンＰｋを特定する。そして、第２反転パターン特定部００２Ｃ７は、特定した反転パターンＰｋをコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納する。
【０１１９】
コンカーレント符号語候補生成部００２Ｃ８は、反転パターン格納情報テーブルＴ３に格納されている各反転パターンＰｋから、反転パターンＰｋが特定する反転対象の決定ベクトル［Ｄ］の要素ビットを反転させることで、要素ビットｋ（ｋ＝１，２，…，Ｎ１）のコンカーレント符号語候補［Ｃtｋ］を生成し、反転パターンＰｋとそれぞれ対応付けて、コンカーレント符号語候補［Ｃtｋ］をコンカーレント符号語候補情報テーブルＴ５に格納する。
【０１２０】
判定部００２Ｃ１０は、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが行方向の符号長Ｎ１以下であるか否かを判定する。
【０１２１】
次に、図１２を参照して、本実施形態における軟出力ベクトル生成処理について説明する。この軟出力ベクトル生成処理は、上述したように、図８に示す復号処理のステップ００５とステップ０１２の処理に対応する処理である。なお、行における軟出力ベクトル生成処理と列おける軟出力ベクトル生成処理とは同様の処理であることから、行における軟出力ベクトル生成処理、すなわち、ステップ００５の処理に対応する処理について説明する。
【０１２２】
決定ベクトル生成部００２Ｃ２は、ステップ００３の処理で求めた第ｉ行目（ｉ＝１，２，…，Ｎ２）の軟入力ベクトル［Ｒｉ’］とステップ００４の処理で求めた第ｉ行目（ｉ＝１，２，…，Ｎ２）の決定ベクトル［Ｄｉ］を用いて、従来技術であるＣｈａｓｅ復号により生成した候補符号語［Ｃｔ］の中から、軟入力ベクトル［Ｒｉ’］とのメトリック値が最小となる候補符号語［Ｃｄｉ］を決定ベクトル［Ｄｉ］とする（つまり、［Ｃｄｉ］で［Ｄｉ］を更新する）と共に、候補符号語［Ｃｄｉ］のメトリック値Ｍｄｉを記憶部００２Ｃ１に格納する（ステップＳ２０１）。以下、候補符号語［Ｃｄｉ］で更新された決定ベクトル［Ｄｉ］を決定ベクトル［Ｃｄｉ］ということとする。
【０１２３】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５を初期化し、カウンタ値ｋを”１”とし（ステップＳ２０２）、検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている反転パターン情報テーブルＴ２を検索して、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する各反転パターンＰｋが特定する反転対象の全ての要素ビットｎｋを取得する（ステップＳ２０３）。
【０１２４】
そして、尤度閾値判定部００２Ｃ４は、ステップＳ２０３の処理で検索部００２Ｃ３が取得した要素ビットｎｋから処理対象の要素ビットｋを除外した要素ビットｎｋ（ｎｋ≠ｋ）にそれぞれ対応する軟入力ベクトル［Ｒｉ’］の要素値の絶対値｜Ｒｉ’ｎｋ｜（但し、ｎｋ≠ｋ）の中に、予め設定されている尤度閾値αより小さい絶対値｜Ｒｉ’ ｎｋ｜が存在する否かを判定する（ステップＳ２０４）。尤度閾値αより小さい絶対値｜Ｒｉ’ｎｋ｜が存在すると判定された場合には（ステップＳ２０４；ＹＥＳ）、第１反転パターン特定部００２Ｃ５は、最小絶対値min｜Ｒ’ｎｋ｜の要素ビットｎｋが反転対象である反転パターンＰｋを特定し、特定した反転パターンＰｋをコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納し（ステップＳ２０５）、処理はステップＳ２０７の処理へ進む。
【０１２５】
一方、尤度閾値αより小さい絶対値｜Ｒ’ｎｋ｜が存在しないと判定された場合には（ステップＳ２０４；ＮＯ）、第２反転パターン特定部００２Ｃ７は、最小絶対値min｜Ｒ’ｎｋ｜の要素ビットｎｋが反転対象である反転パターンＰｋを特定し、特定した反転パターンＰｋをコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納する（ステップＳ２０６）。
【０１２６】
コンカーレント符号語候補生成部００２Ｃ８は、コンカーレント符号語候補情報テーブルＴ５に格納されている各反転パターンＰｋから、反転パターンＰｋが特定する反転対象の決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の要素ビットを反転させることで、要素ビットｋのコンカーレント符号語候補［Ｃtｋｉ］を生成し、反転パターンＰｋとそれぞれ対応付けてコンカーレント符号語候補情報テーブルＴ５に格納する（ステップＳ２０７）。
【０１２７】
そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補情報テーブルＴ５を検索し、コンカーレント符号語候補生成部００２Ｃ８により生成されたコンカーレント符号語候補［Ｃtｋｉ］それぞれに対し、軟入力ベクトル［Ｒｉ’］との間のメトリック値Ｍｔｋｉを求め、最も値が小さいメトリック値minＭｔｋｉを有するコンカーレント符号語候補［Ｃtｋｉ］を要素ビットｋのコンカーレント符号語［Ｃｋｉ］として特定する。そして、コンカーレント符号語特定部００２Ｃ９は、最も値が小さいメトリック値minＭｔｋｉを要素ビットｋのコンカーレント符号語［Ｃｋｉ］のメトリック値Ｍｃｋｉとして、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する（ステップＳ２０８）。
【０１２８】
そして、軟出力ベクトル算出部００２Ｃ１１は、ステップＳ１４の処理で特定した要素ビットｋのコンカーレント符号語［Ｃｋｉ］のメトリック値ＭｃｋｉとステップＳ０１の処理で記憶部００２Ｃ１に格納された決定ベクトル［Ｃｄｉ］のメトリック値Ｍｄｉを用いて、上述した算出式（数３）により、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋに対応する第ｋ番目の軟出力ベクトル［ｒｒｉ］の構成要素ｒｒｉｋを算出し、算出した構成要素ｒｒｉｋを記憶部００２Ｃ１に格納する（ステップＳ２０９）。
【０１２９】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋをインクリメントすると共に、記憶部００２Ｃ１に格納されているコンカーレント符号語候補情報テーブルＴ５を初期化する（ステップＳ２１０）。そして、判定部００２Ｃ１０は、ステップＳ１６の処理でインクリメントされた後の要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが決定ベクトル［Ｃｄｉ］の要素ビット個数Ｎ１（行方向の符号長）を越えたか否かを判定する（ステップＳ２１１）。
【０１３０】
カウンタ値ｋが要素ビット個数Ｎ１以下であると判定された場合には（ステップＳ２１１；ＮＯ）、処理はステップＳ２０３の処理に戻り、前述の処理を繰り返す。一方、カウンタ値ｋが要素ビット個数Ｎ１を越えたと判定された場合には（ステップＳ２１１；ＹＥＳ）、軟出力ベクトル算出部００２Ｃ１１は、前述の処理を決定ベクトル［Ｃｄｉ］の要素ビット個数回（Ｎ１回）繰り返すことで得られた、構成要素ｒｒｉｋ（ｋ＝１，２，…，Ｎ１）から、第ｉ番目の行に対応する軟出力ベクトル［ｒｒｉ］（＝（ｒｒｉ１，ｒｒｉ２，…，ｒｒｉＮ１））を生成し（ステップＳ２１２）、軟出力ベクトル生成処理を終了する。
【０１３１】
次に、図３（ｂ）と図４（ａ）と図７（ａ）を参照して、本実施形態における軟出力処理について具体例に沿って説明する
【０１３２】
要素ビットカウンタ００２Ｃ１５のカウンタ値ｋが”１”の場合（ステップＳ２０２）、検索部００２Ｃ３は、図３（ｂ）に例示する反転パターン情報テーブルＴ２を検索して、要素ビット”１”に対応する反転パターン（１，２，１３）、（１，３，１０）、（１，４，５）、（１，６，１１）、（１，７，９）により特定される反転対象の全ての要素ビット（１，２，３，４，５，６，７，９，１０，１１，１３）を取得する（ステップＳ２０３）。
【０１３３】
これらの要素ビットの中で要素ビット”５”と”１１”にそれぞれ対応する軟入力ベクトル［Ｒ’１］の要素値の絶対値”０．２５”と”０．１５”が、尤度閾値０．３より小さいことから（ステップＳ２０４；ＹＥＳ）、第１反転パターン特定部００２Ｃ５は、要素ビット”５”と”１１”が反転対象である反転パターン（１，４，５）と（１，６，１１）を特定し、特定した反転パターン（１，４，５）と（１，６，１１）をコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納する（ステップＳ２０５）。
【０１３４】
そして、コンカーレント符号語候補生成部００２Ｃ８は、コンカーレント符号語候補情報テーブルＴ５に格納されている反転パターン（１，４，５）と（１，６，１１）から、コンカーレント符号語候補［Ｃ１１］と［Ｃ２１］を生成する。そして、コンカーレント符号語候補生成部００２Ｃ８は、それぞれ反転パターンと対応つけてコンカーレント符号語候補情報テーブルＴ５に格納する（ステップＳ２０７）。
【０１３５】
そして、コンカーレント符号語特定部００２Ｃ９は、コンカーレント符号語候補［Ｃ１１］と［Ｃ２１］とそれぞれに対し、軟入力ベクトル［Ｒ’１］との間のメトリック値Ｍ１１とＭ２１を算出する。そして、最小のメトリック値Ｍ１１のコンカーレント符号語候補［Ｃ１１］を要素ビット”１”のコンカーレント符号語［Ｃ１］として特定し、そのメトリック値Ｍ１１をＭｃ１として、図７（ａ）に示すように、対応するコンカーレント符号語候補情報テーブルＴ５のメトリック値欄に格納する（ステップＳ２０８）。
【０１３６】
そして、軟出力ベクトル算出部００２Ｃ１１は、記憶部００２Ｃ１に格納されている決定ベクトル［Ｃｄ］（［Ｄ］）のメトリック値Ｍｄと要素ビット”１”のコンカーレント符号語［Ｃ１］のメトリック値Ｍｃ１と決定ベクトル［Ｃｄ］（［Ｄ］）の要素ビット”１”（第１番目）の構成要素Ｃｄ１とを用いて、上述した算出式（数３）より、軟出力ベクトル［ｒｒ］の第１番目の構成要素ｒｒ１を算出し、記憶部００２Ｃ１に格納する（ステップＳ２０９）。
【０１３７】
そして、復号部００２Ｃは、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋをインクリメントすると共に、コンカーレント符号語候補情報テーブルＴ５を初期化する（ステップＳ２１０）。そして、判定部００２Ｃ１０は、インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えたか否かを判定する（ステップＳ２１１）。インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えるまで、前述の処理を繰り返えし、軟出力ベクトル算出部００２Ｃ１１は、軟出力ベクトル［ｒｒ］の各構成要素ｒｒｋ（ｋ＝１，２，…，１３）を算出し、記憶部００２Ｃ１に格納する。
【０１３８】
判定部００２Ｃ１０が、インクリメント後のカウンタ値ｋが行方向の符号長”１３”を越えたと判定すると（ステップＳ２１１；ＹＥＳ）、軟出力ベクトル算出部００２Ｃ１１は、算出した構成要素ｒｒｋ（ｋ＝１，２，…，１３）から軟出力ベクトル［ｒｒ］を生成し（ステップＳ２１２）、軟出力ベクトル生成処理を終了する。
【０１３９】
本実施形態によれば、検索部００２Ｃ３は、反転パターン情報テーブルＴ２を検索して、処理対象の決定ベクトル［Ｃｄｉ］（［Ｄｉ］）の要素ビットｋに対応する反転パターンＰｋにより特定される反転対象の全ての要素ビットｎｋを取得した（ステップＳ２０３。そして、尤度閾値判定部００２Ｃ４は、要素ビットｎｋから処理対象の要素ビットｋを除外した要素ビットｎｋ（ｎｋ≠ｋ）にそれぞれ対応する軟入力ベクトル［Ｒｉ’］の要素値の絶対値｜Ｒｉ’ｎｋ｜（但し、ｎｋ≠ｋ）の中に、予め設定されている尤度閾値αより小さい絶対値｜Ｒｉ’ｎｋ｜が存在する否かを判定した（ステップＳ２０４）。そして、尤度閾値αより小さい絶対値｜Ｒｉ’ｎｋ｜が存在すると判定された場合には、第１反転パターン特定部００２Ｃ５は、最小絶対値min｜Ｒ’ｎｋ｜の要素ビットｎｋが反転対象である反転パターンＰｋを特定し、特定した反転パターンＰｋをコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納した（ステップＳ２０５）。こうすることで、記憶部００２Ｃ１に格納する情報テーブルを削減でき、メモリ資源を節約できると共に、実施形態１において反転パターンに対して繰り返し行っていた同様の処理を、一度に行うことが可能となる。その結果、復号処理をさらに高速化することが可能となる。
【０１４０】
また、本実施形態によれば、尤度閾値αより小さい絶対値｜Ｒ’ｎｋ｜が存在しないと判定された場合には（ステップＳ２０４；ＮＯ）、第２反転パターン特定部００２Ｃ７は、最小絶対値min｜Ｒ’ｎｋ｜の要素ビットｎｋが反転対象である反転パターンＰｋを特定し、特定した反転パターンＰｋをコンカーレント符号語候補情報テーブルＴ５の反転パターン欄に格納した（ステップＳ２０６）。こうすることで、確実にコンカーレント符号語を見つけられることから、復号性能を高めることが可能となると共に、各反転パターンに対し繰り返し行った処理を、一度の処理で行うことが可能となる。その結果、復号処理をさらに高速化することが可能となる。
【０１４１】
なお、上記実施形態における無線送信装置００１と無線受信装置００２は、それぞれ基地局及び移動情報端末に適用でき、ピアツーピア通信装置等に適用できる。
【０１４２】
また、上記実施形態において、行方向と列方向に対して１又は２つの線形符号より符号化された２次元積符号の復号方法について説明したが、これに限定されるものではなく、本発明は、１又は複数の線形符号による多次元積符号における復号においても適用できる。
【０１４３】
また、上記実施形態１において、検索部００２Ｃ３は、記憶部００２Ｃ１に格納されている個数情報テーブルＴ１から処理対象の要素ビットｋに対応する反転パターンＰｍｋの個数を取得すると説明したが、これに限定される物ではなく、反転パターン情報テーブルＴ２から反転パターンＰｍｋの個数を取得してもよい。この場合、個数情報テーブルＴ１は不要となる。
【０１４４】
また、上記実施形態における復号処理において、積符号化情報行列｛Ｒ｝からの行又は列の読み出し順序は任意である。
【０１４５】
また、上記実施形態において、記憶部００２Ｃ１に格納される反転パターン情報テーブルＴ２に含まれる反転パターンは、（ｉ）処理対象の要素ビットｋが反転対象であり、（ｉｉ）決定ベクトル［Ｃｄ］（［Ｄ］）の反転対象の要素ビットを反転させることで得られる反転決定ベクトル［ＲＤ］が、処理対象の配列を符号化した線形符号の符号語となり、（ｉｉｉ）反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすものとして説明したが、これに限定されるものではなく、条件（ｉ）と（ｉｉ）のみを満たす場合にも、本発明は適用できる。
【０１４６】
また、上記実施形態において、尤度閾値αは、復号部００２Ｃが備えるＣＰＵの処理能力に応じ設定すればよい。尤度閾値αの設定値を大きくすれば、生成されるコンカーレント符号語候補［Ｃｔ］が増え、高い処理能力が必要になるが、コンカーレント符号語候補［Ｃｔ］が増えることで、軟入力ベクトル［Ｒ’］との間のメトリック値がより小さいコンカーレント符号語候補［Ｃｔ］を得られる可能性が高まる。また、符号化する際に用いられる線形符号の符号長やハミング距離に応じて、尤度閾値αの値を設定してもよい。
また、尤度閾値αの設定値を固定値とするのではなく、例えば、通信路ＣＨの状態に応じて可変してもよい。なお、尤度閾値αは、積符号化が複数の線形符号による場合には、それぞれ別々の尤度閾値αを設定するのが好ましい。
【０１４７】
また、上記実施形態２において、検索部００２Ｃ３が、記憶部００２Ｃ１に格納されている反転パターン情報テーブルＴ２を検索し、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する各反転パターンＰｋ（本実施形態では、ＰｍｋでなくＰｋとする）により特定される反転対象の全ての要素ビットｎｋを取得すると説明したが、これに限定されるものではなく、検索部００２Ｃ３が、要素ビットカウンタ００２Ｃ１５のカウンタ値ｋにより特定される要素ビットｋに対応する各反転パターンＰｋを取得し、第１反転パターン特定部００２Ｃ５と第２反転パターン特定部００２Ｃ７が、取得された反転パターンＰｋにより特定される反転対象の全ての要素ビットｎｋを特定するように構成してもよい。
【０１４８】
なお、上記実施形態において、実行されるプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read-Only Memory)、ＤＶＤ、ＭＯ（Magneto-Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述の処理を実行することとしてもよい。
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、取得等するようにしてもよい。
【０１４９】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。
【符号の説明】
【０１５０】
１              デジタル通信システム
００１          無線送信装置
００１Ａ        積符号化部
００１Ｂ        変調部
００１Ｃ        無線通信部
ＣＨ            通信路
００２          無線受信装置
００２Ａ        無線通信部
００２Ｂ        復調部
００２Ｃ        復号部
００２Ｃ１      記憶部
００２Ｃ２      決定ベクトル生成部
００２Ｃ３      検索部
００２Ｃ４      尤度閾値判定部
００２Ｃ５      第１反転パターン特定部
００２Ｃ６      最小絶対値判定部
００２Ｃ７      第２反転パターン特定部
００２Ｃ８      コンカーレント符号語候補生成部
００２Ｃ９      コンカーレント符号語特定部
００２Ｃ１０    判定部
００２Ｃ１１    軟出力ベクトル算出部
００２Ｃ１２    行（列）カウンタ
００２Ｃ１３    繰り返し回数カウンタ
００２Ｃ１４    個数カウンタ
００２Ｃ１５    要素ビットカウンタ
Ｔ１            個数情報テーブル
Ｔ２            反転パターン情報テーブル
Ｔ３            反転パターン格納情報テーブル
Ｔ４            最小絶対値情報テーブル
Ｔ５            コンカーレント符号語候補情報テーブル
Ｋ              情報系列
［Ｒｉ］        積符号化行情報ベクトル
［Ｒ’１］      軟入力ベクトル
［Ｒ’２］      軟入力ベクトル
［Ｒ’３］      軟入力ベクトル
｛Ｄｒｒ｝      硬判定行列
Ｐｍ１          反転パターン
Ｍ１            反転パターン個数
【図１】
0005757251.tif 000002
【図２】
0005757251.tif 000003
【図３】
0005757251.tif 000004
【図４】
0005757251.tif 000005
【図５】
0005757251.tif 000006
【図６】
0005757251.tif 000007
【図７】
0005757251.tif 000008
【図８】
0005757251.tif 000009
【図９】
0005757251.tif 000010
【図１０】
0005757251.tif 000011
【図１１】
0005757251.tif 000012
【図１２】
0005757251.tif 000013