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