本発明の好適な実施形態に係る積符号の復号装置、及び、復号方法について、図面を参照しながら説明する。
(実施形態1)
図1(a)は、デジタル通信システム1の構成を示すブロック図である。本実施形態におけるデジタル通信システム1は、無線送信装置001と無線受信装置002とから構成され、無線送信装置001は、積符号化部001Aと、変調部001Bと、無線通信部001Cとから構成される。
積符号化部001Aは、図2に示すように、入力されたK2xK1の情報系列{K}を、行方向に、線形符号C1により情報系列長K1、符号長N1となるように符号化し、列方向に、線形符号C2により情報系列長K2、符号長N2となるように符号化する。図中のブロック1は、情報データ(情報系列)、ブロック2乃至4はパリティ(冗長)を表している。積符号化部001Aにより積符号化された情報系列{K}、すなわち、N2xN1のデータ行列(以下、積符号化情報行列という){R}は、積符号化部001Aが備える内部メモリに記憶される。
積符号化部001Aにより積符号化された情報系列{K}(積符号化情報行列{R})は、例えば、一行単位で上側から最終行(第N2番目の行)まで順次読み出される。ここで、順次読み出された行を積符号化行情報ベクトル[Ri](i=1,2,…,N2)ということとする。
なお、実施形態の復号処理では、行における処理と列における処理とは同じであることから、以下、行における処理について説明する。また、行に対応するベクトルの表記は符号iを使用し、例えば、[Ai]とし、列に対応するベクトルの表記は符号jを使用し、[Aj]とする。特に行と列の区別が必要ないときは[A]と表記することとする。
変調部001Bは、積符号化部001Aが備える内部メモリから順次読み出された積符号化行情報ベクトル[Ri]を所定の信号方式へ変調する。無線通信部001Cは、アンテナと無線通信モジュール等から構成され、変調後の積符号化行情報ベクトル[Ri]を増幅して通信路CHへ出力する。通信路CHにおいて、出力された積符号化行情報ベクトル[Ri]にノイズ成分が付加され、ノイズ成分が付加された積符号化行情報ベクトル[Ri]が無線受信装置002により受信される。なお、ノイズ成分が付加された積符号化行情報ベクトルについても、便宜上、積符号化行情報ベクトル[Ri]ということとする。
無線受信装置002は、図1(a)に示すように、無線通信部002Aと、復調部002Bと、復号部002Cとから構成される。無線通信部002Aは、アンテナと無線通信モジュール等から構成され、無線送信装置001の無線通信部001Cにより出力された積符号化行情報ベクトル[Ri]を受信する。復調部002Bは、無線通信部002Aが受信した積符号化行情報ベクトル[Ri]を復調し、復調後の積符号化行情報ベクトル[Ri]は、復号部002Cに入力される。
復号部002Cは、CPU(Central Processing Unit)と、ROM(Read Only Memory)とRAM(Random Access Memory)等から構成された記憶部002C1と、から構成される。復号部002Cは、順次入力される復調後の積符号化行情報ベクトル[Ri]から積符号化情報行列{R}を生成し、記憶部002C1に格納する。
記憶部002C1は、CPUのワークエリアとして機能すると共にCPUが実行する動作プログラム、詳しくは後述する個数情報テーブルT1と反転パターン情報テーブルT2を格納する。また、記憶部002C1は、復号部002Cにより生成された積符号化情報行列{R}(受信行列)、後述の反転パターン格納情報テーブルT3と最小絶対値情報テーブルT4とコンカーレント符号語候補情報テーブルT5、後述の軟出力ベクトル算出部002C11により算出された軟出力ベクトル[rr]の各構成要素rrk等を格納する。
ここで、図3を参照して、記憶部002C1に格納される個数情報テーブルT1と反転パターン情報テーブルT2について説明する。図3(a)は、行方向の符号化がハミング符号(13,9,3)で行われた場合、つまり、行方向の符号長N1が”13”の場合における決定ベクトル[D]の要素ビットk(k=1,2,…,13)と、当該要素ビットkの位置が反転対象であり且つ最小ハミング距離を隔てる反転パターンPmkの個数Mkと、を対応付けた個数情報テーブルT1の例を示す図である。図3(a)に示す例では、上側から順番に要素ビット1、2、3、…、13にそれぞれ対応した反転パターンPmkの個数Mkを示している。なお、(13,9,3)のそれぞれの値は、左から符号長、情報データ長、最小ハミング距離を示すものである。
図3(b)は、行方向の符号化がハミング符号(13,9,3)で行われた場合、つまり、行方向の符号長N1が”13”の場合における、決定ベクトル[D]の要素ビットk(k=1,2,…,13)と、当該要素ビットkの位置が反転対象であり且つ最小ハミング距離を隔てる反転パターン群と、を対応付けた反転パターン情報テーブルT2の例を示す図である。例えば、反転パターンPmkが(1,2,13)の場合には、後述のコンカーレント符号語候補生成部002C8は、決定ベクトル[D]の要素ビット”1”と”2”と”13”の位置を反転(+1→−1又は−1→+1)させることで、コンカーレント符号語候補[Ct]を生成する。つまり、各反転パターンPmkの()内の各数字は、反転させる決定ベクトル[D]の要素ビット位置を特定するものである。
また、要素ビットkに対応する各反転パターンPmkは、本実施形態では、左側から順番にPmk(mk=1)、Pmk(mk=2)、…、Pmk(mk=Mk)に対応し、符号”mk”は個数カウンタ002C14のカウンタ値mkに対応する。すなわち、要素ビットカウンタ002C15のカウンタ値kが”1”で、個数カウンタ002C14のカウンタ値mkが”1”の場合、図3(b)の例では、要素ビット”1”に対応する反転パターン群の中から一番左側の反転パターン(1,2,13)を後述の検索部002C3は取得する。
ここで、「反転パターンPmk」について、より具体的に説明する。まず、「最小ハミング距離を隔てる」とは、決定ベクトル[D]と反転パターンPmkが指示する決定ベクトル[D]の要素ビット位置を反転させることで生成されるベクトル(以下、反転決定ベクトルという)[RDmk]とのハミング距離が最小ハミング距離と一致することを意味する。すなわち、反転させる要素ビット位置の数が最小ハミング距離と一致することを意味する。図3の例では、最小ハミング距離は”3”であることから、各反転パターンPmkが特定する反転対象の要素ビットの数は”3”となる。次に、各反転パターンPmkが特定する反転対象の決定ベクトル[D]の要素ビットの位置は、任意に設定されるものではなく、反転パターンが指示する要素ビット位置を反転させることにより生成される反転決定ベクトル[RDmk]が符号語となるように設定される。
記憶部002C1は、列方向と行方向の符号化が別々の線形符号により行われた場合には、列方向と行方向それぞれについて別々の個数情報テーブルT1と反転パターン情報テーブルT2を格納するが、列方向と行方向の符号化が同じ線形符号により行われた場合には、列方向と行方向共通の個数情報テーブルT1と反転パターン情報テーブルT2を格納する。
図1に戻り、図1(b)に示すように、復号部002Cが備えるCPUは、動作プログラムを実行することにより、決定ベクトル生成部002C2と、検索部002C3と、尤度閾値判定部002C4と、第1反転パターン特定部002C5と、最小絶対値判定部002C6、第2反転パターン特定部002C7と、コンカーレント符号語候補生成部002C8と、コンカーレント符号語特定部002C9と、判定部002C10と、軟出力ベクトル算出部002C11と、行(列)カウンタ002C12と、繰り返し回数カウンタ002C13と、個数カウンタ002C14と、要素ビットカウンタ002C15として機能する。
また、復号部002Cが備えるCPUは、動作プログラムを実行することにより、後述する本発明特有の軟出力ベクトル生成処理を含む復号処理を実行し、軟出力ベクトル生成処理では、記憶部002C1に格納されている各情報テーブルを用い、決定ベクトル[D]の各要素ビットk(k=1,2,…,N1)に対応するカーレント符号語[Ck]を探索し、探索により得られたコンカーレント符号語[Ck]を用いて、軟出力ベクトル[rr]の各構成要素rrkを求めることで軟出力ベクトル[rr]を生成する。
決定ベクトル生成部002C2は、従来技術であるChase復号等を用いて、線形符号C1及び線形符号C2の決定ベクトル[D]を求め、決定ベクトル[D]と軟入力ベクトル[R’]との間のメトリック値Mdを記憶部002C1に格納する。検索部002C3は、記憶部002C1に格納されている個数情報テーブルT1を検索し、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する反転パターンPmkの個数Mkを取得する。また、検索部002C3は、記憶部002C1に格納されている反転パターン情報テーブルT2を検索し、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する反転パターン群から、個数カウンタ002C14のカウンタ値mkにより特定される反転パターンPmkを取得する。
尤度閾値判定部002C4は、検索部002C3が取得した反転パターンPmkにより特定される反転対象から処理対象の要素ビットkを除外した各要素ビットにそれぞれ対応する軟入力ベクトル[R’]の要素値R’n(但し、n≠k)の絶対値|R’n|のうちで、予め設定されている尤度閾値α(本実施形態においては、尤度閾値α=0.3とする)より小さい絶対値|R’n|が存在する否かを判定する。
第1反転パターン特定部002C5は、尤度閾値判定部002C4により、反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[R’]の各要素値R’n(但し、n≠k)の絶対値|R’n|うちで、尤度閾値αより小さい絶対値|R’n|が存在すると判定された場合に、判定対象の反転パターンPmkを図5に例示する反転パターン格納情報テーブルT3の反転パターン欄に格納する。
ここで、尤度閾値判定部002C4と第1反転パターン特定部002C5の動作を、図3乃至5を参照して、具体的に説明する。図4は、それぞれ、軟入力ベクトルの具体例を示す図である。図5は、反転パターン格納情報テーブルT3の例である。例えば、要素ビットカウンタ002C15のカウンタ値k=1で個数カウンタ002C14のカウンタ値m1=1の場合、検索部002C3は、反転パターン(1,2,13)を取得する。処理対象の要素ビットkは”1”なので、反転パターン(1,2,13)が特定する反転対象から要素ビット”1”を除外した要素ビットは、”2”と”13”となる。図4(a)を参照し、反転対象の要素ビット”2”と”13”に対応する軟入力ベクトル[R’]の要素値はそれぞれ、”0.75”と”−0.53”である。この場合、これらの要素値の絶対値はいずれも尤度閾値α=0.3以上であることから、尤度閾値判定部002C4は、尤度閾値αより小さい絶対値|R’n|が存在しないと判定する。
また、例えば、要素ビットカウンタ002C15のカウンタ値k=1で個数カウンタ002C14のカウンタ値m1=3の場合、検索部002C3は、反転パターン(1,4,5)を取得する。処理対象の要素ビットkは”1”なので、反転パターン(1,4,5)が特定する反転対象から要素ビット”1”を除外した要素ビットは、”4”と”5”となる。図4(a)を参照し、反転対象の要素ビット”4”と”5”に対応する軟入力ベクトル[R’]の要素値はそれぞれ、”−1.00”と”−0.25”である。この場合、要素値”−0.25”の絶対値”0.25”は尤度閾値α=0.3より小さいことから、尤度閾値判定部002C4は、尤度閾値αより小さい絶対値|R’n|が存在すると判定し、第1反転パターン特定部002C5は、図5に示すように、反転パターン(1,4,5)を反転パターン格納情報テーブルT3に格納する。要素ビットk=1に対応する反転パターンPm1からは、反転パターン(1,4,5)と反転パターン(1,6,11)とが反転パターン格納情報テーブルT3に格納される。
図1(b)に戻り、最小絶対値判定部002C6は、尤度閾値判定部002C4により、反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[R’]の各要素値R’n(但し、n≠k)の絶対値|R’n|うちで、尤度閾値αより小さい絶対値|R’n|が存在しないと判定され、且つ、判定部002C10により、反転パターン格納情報テーブルT3に反転パターンが格納されていないと判定された場合に、以下の動作を実行する。最小絶対値判定部002C6は、反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[R’]の各要素値R’n(但し、n≠k)の絶対値|R’n|うちで、最小値min|R’n|が詳しくは後述する最小絶対値情報テーブルT4に格納されている最小絶対値以下か否かを判定する。但し、最小絶対値判定部002C6は、最小絶対値情報テーブルT4に最小絶対値が格納されていない場合には、最小絶対値情報テーブルT4に格納されている最小絶対値以下であると判定する。
第2反転パターン特定部002C7は、最小絶対値判定部002C6により、最小値min|R’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下であると判定された場合には、最小値min|R’n|と、反転パターンPmkと、を対応付けて最小絶対値情報テーブルT4を更新する。但し、最小値min|R’n|が最小絶対値情報テーブルT4に格納されている最小絶対値と等しい場合には、反転パターンPmkを最小絶対値情報テーブルT4の反転パターンの欄に追加する。
ここで、最小絶対値判定部002C6と第2反転パターン特定部002C7の動作について、図3と図4と図6を参照して、具体的に説明する。図6は、最小絶対値情報テーブルT4の例である。例えば、図3と図4(b)の例では、処理対象の要素ビットkが”1”で尤度閾値α=0.3の場合、軟入力ベクトル[R’2]の要素値の絶対値が、尤度閾値以下の値となる要素ビットは”1”のみである。しかしながら、上述したように、要素ビット”1”は処理対象の要素ビットであることから除外され、反転パターン格納情報テーブルT3には、要素ビット”1”に対応する反転パターンPm1はいずれも格納されない。
この場合、例えば、個数カウンタ002C14のカウンタ値m1=1の時には、検索部002C3により取得される反転パターンは(1,2,13)である。そして、反転パターン(1,2,13)により特定される反転対象の要素ビットから処理対象の要素ビット”1”を除いた”2”と”13”にそれぞれ対応する軟入力ベクトル[R’2]の要素値の絶対値は”0.75”と”0.53”である。まだ、最小絶対値情報テーブルT4には最小絶対値が格納されていないことから、最小絶対値判定部002C6により、最小値min|R’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下であると判定され、第2反転パターン特定部002C7は、図6(a)に示すように、最小値”0.53”と反転パターン(1,2,13)とを対応付けて最小絶対値情報テーブルT4に格納する。
また、例えば、個数カウンタ002C14のカウンタ値m1=2の時には、検索部002C3により取得される反転パターンは(1,3,10)である。そして、反転パターン(1,3,10)により特定される反転対象の要素ビットから処理対象の要素ビット”1”を除いた”3”と”10”にそれぞれ対応する軟入力ベクトル[R’2]の要素値の絶対値は”0.65”と”0.66”である。この場合、最小絶対値判定部002C6により、最小値min|R’n|(0.65)が最小絶対値情報テーブルT4に格納されている最小絶対値(0.53)以下でないと判定され、第2反転パターン特定部002C7は、最小絶対値情報テーブルT4を更新しない。すなわち、この時点での最小絶対値情報テーブルT4の状態は、図6(a)に示す状態である。
また、例えば、図3と図4(c)の例では、処理対象の要素ビットkが”1”で尤度閾値α=0.3の場合、軟入力ベクトル[R’3]の要素値の絶対値が、尤度閾値以下の値となる要素ビットは”1”のみである。しかしながら、上述したように、要素ビット”1”は処理対象の要素ビットであることから除外され、反転パターン格納情報テーブルT3には、要素ビット”1”に対応する反転パターンPm1はいずれも格納されない。この場合、例えば、個数カウンタ002C14のカウンタ値m1=2の時には、検索部002C3により取得される反転パターンは(1,3,10)である。そして、反転パターン(1,3,10)により特定される反転対象の要素ビットから処理対象の要素ビット”1”を除いた”3”と”10”にそれぞれ対応する軟入力ベクトル[R’3]の要素値の絶対値は”0.53”と”0.66”である。
この場合、図6(a)に示すように、最小値min|R’n|(0.53)は最小絶対値情報テーブルT4に格納されている最小絶対値”0.53”と等しいことから、最小絶対値判定部002C6により、最小値min|R’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下であると判定され、第2反転パターン特定部002C7は、最小値min|R’n|と最小絶対値情報テーブルT4に格納されている最小絶対値が等しいことから、図6(b)に示すように、反転パターン(1,3,10)を最小絶対値情報テーブルT4の反転パターンの欄に追加する。
最小絶対値判定部002C6と第2反転パターン特定部002C7は、要素ビット”1”に対応する各反転パターン(1,2,13)と(1,3,10)と(1,4,5)と(1,6,11)と(1,7,9)について上述の処理を繰り返す。図6(c)は、反転パターン(1,7,8)まで処理を終えた時点での、図4(b)と(c)に示した軟入力ベクトル[R’2]と[R’3]を例にした場合の最小絶対値情報テーブルT4の状態を示す図である。図4(b)と(c)のいずれの場合も、反転パターン(1,6,11)が特定する反転対象の要素ビット”11”に対応する軟入力ベクトル[R’2](又は[R’3])の要素値”0.35”が最小絶対値となる。したがって、最小絶対値情報テーブルT4は、図6(c)に示すように、反転パターン(1,6,11)と最小絶対値”0.35”とが対応付けられた状態となる。
図1(b)に戻り、コンカーレント符号語候補生成部002C8は、判定部002C10により、反転パターン格納情報テーブルT3に反転パターンPmkが格納されていると判定された場合には、反転パターン格納情報テーブルT3に格納されている各反転パターンPmkから、反転パターンPmkが特定する反転対象の決定ベクトル[D]の要素ビットを反転させることで、要素ビットk(k=1,2,…,N1)のコンカーレント符号語候補[Ctk]を生成し、反転パターンPmkとそれぞれ対応付けて後述のコンカーレント符号語候補情報テーブルT5に格納する。
一方、判定部002C10により、反転パターン格納情報テーブルT3に反転パターンPmkが格納されていないと判定された場合には、コンカーレント符号語候補生成部002C8は、最小絶対値情報テーブルT4に格納されている反転パターンPmkから、反転パターンPmkが特定する反転対象の決定ベクトル[D]の要素ビットを反転させることで、要素ビットk(k=1,2,…,N1)のコンカーレント符号語候補[Ctk]を生成し、反転パターンPmkと対応付けて後述のコンカーレント符号語候補情報テーブルT5に格納する。
コンカーレント符号語特定部002C9は、コンカーレント符号語候補情報テーブルT5を参照し、コンカーレント符号語候補生成部002C8により生成されたコンカーレント符号語候補[Ctk]それぞれに対し、軟入力ベクトル[R’]との間のメトリック値Mtkを求め、最も値が小さいメトリック値minMtkを有するコンカーレント符号語候補[Ctk]を要素ビットkのコンカーレント符号語[Ck]として特定し、最も値が小さいメトリック値minMtkを要素ビットkのコンカーレント符号語[Ck]のメトリック値Mckとして、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する。
ここで、図3乃至7を参照して、コンカーレント符号語候補生成部002C8とコンカーレント符号語特定部002C9の具体的な動作について説明する。図7は、コンカーレント符号語候補情報テーブルT5の例を示す図である。例えば、図3と図4(a)の例では、処理対象の要素ビットkが”1”で尤度閾値α=0.3の場合、上述したように反転パターン格納情報テーブルT3には、反転パターン(1,4,5)と(1,6,11)とが格納される(図5を参照)。したがって、判定部002C10により、反転パターン格納情報テーブルT3に反転パターンPmkが格納されていると判定される。この場合、コンカーレント符号語候補生成部002C8は、反転パターン格納情報テーブルT3に格納されている反転パターン(1,4,5)と(1,6,11)とから、決定ベクトル[D]の要素ビット”1”と”4”と”5”とを反転させたコンカーレント符号語候補[C11]と決定ベクトル[D]の要素ビット”1”と”6”と”11”とを反転させたコンカーレント符号語候補[C21]を生成する。
そして、コンカーレント符号語候補生成部002C8は、図7(a)に示すように、反転パターン(1,4,5)と(1,6,11)をそれぞれコンカーレント符号語候補[C11]と[C21]とに対応付けてコンカーレント符号語候補情報テーブルT5に格納する。そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補情報テーブルT5(図7(a))を参照して、コンカーレント符号語候補[C11]と[C21]それぞれについて、軟入力ベクトル[R’]との間のメトリック値M11とM21を算出する。そして、コンカーレント符号語特定部002C9は、値が小さい方のメトリック値を要素ビット”1”のコンカーレント符号語[C1]のメトリック値Mc1として、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する。図7(a)の例では、コンカーレント符号語候補[C11]が要素ビット”1”のコンカーレント符号語[C1]として特定されたことを示している。
また、例えば、図3と軟入力ベクトルの一例を示す図4(b)の例では、処理対象の要素ビットkが”1”で尤度閾値α=0.3の場合、軟入力ベクトル[R’2]の要素ビット”1”の要素値0.20は尤度閾値以下であるが、処理対象の要素ビットkが”1”であるので除外され、反転パターン格納情報テーブルT3には、反転パターンPmkが格納されない。したがって、判定部002C10により、反転パターン格納情報テーブルT3に反転パターンPmkが格納されていないと判定される。反転パターン(1,7,9)の処理を終えた時点で、最小絶対値情報テーブルT4には、図6(c)に示すように、反転パターン(1,6,11)が格納されている。コンカーレント符号語候補生成部002C8は、図7(b)に示すように、決定ベクトル[D]の要素ビット”1”と”6”と”11”を反転させることでコンカーレント符号語候補[C1k]を生成し、反転パターン(1,6,11)とコンカーレント符号語候補[C11]とを対応付けてコンカーレント符号語候補情報テーブルT5に格納する。
そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補情報テーブルT5(図7(b))を参照して、コンカーレント符号語候補[C11]と軟入力ベクトル[R’]との間のメトリック値M11を算出する。そして、コンカーレント符号語特定部002C9は、メトリック値M11を要素ビット”1”のコンカーレント符号語[C1]のメトリック値Mc1として、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する。
図1(b)に戻り、判定部002C10は、個数カウンタ002C14のカウンタ値mkが、検索部002C3により取得された要素ビットk(k=1,2,…,N1)に対応する反転パターンPmkの個数Mk以下であるか否かを判定する。また、判定部002C10は、要素ビットカウンタ002C15のカウンタ値kが行方向の符号長N1以下であるか否かを判定する。また、判定部002C10は、反転パターン格納情報テーブルT3を検索し、反転パターンPmkが格納されているか否かを判定する。
軟出力ベクトル算出部002C11は、記憶部002C1に格納されている決定ベクトル[D]のメトリック値Mdと要素ビットkのコンカーレント符号語[Ck]のメトリック値Mckを用いて、次式より軟出力ベクトル[rr]の第k番目の構成要素rrk(k=1,2,…,N1)の値を算出し、軟出力ベクトル[rr]を生成する。
(数3)
rrk=(Mck−Md)・Dk/4
行(列)カウンタ002C12は、復号部002Cにより記憶部002C1から順次読み出される積符号化行情報ベクトル[Ri]が、第一行目から最終行(第N2行目)まで復号処理されたかを管理するためのカウンタである。カウンタの初期設定値は”1”であり、処理対象の行に対応する訂正ベクトル[Wi]が生成されるたびにインクリメントされる。また、行(列)カウンタ002C12は、行処理と同様に、列処理において、順次読み出される積符号化列情報ベクトル[RJ]が、第1列から最終列(第N1列目)まで復号処理されたかを管理する。
繰り返し回数カウンタ002C13は、積符号化情報行列{R}に対して所定の回数の復号処理を実施したかを管理するカウンタである。カウンタの初期設定値は”1”であり、積符号化情報行列{R}から第一行目を読み出して最終列(第N1列目)までの処理を1回の処理とし、最終列(第N1列目)の処理を終えるたびにインクリメントされる。
個数カウンタ002C14は、記憶部002C1に格納されている個数情報テーブルT1により特定される要素ビットkに対応する反転パターンPmkの個数Mk(k=1,2,…,N1)に対応するカウンタであり、反転パターン情報テーブルT2により特定される要素ビットkに対応する全ての反転パターンPmk(mk=1,2,…,Mk)について、尤度閾値判定部002C4による判定処理がなされたかを管理するためのものである。また、個数カウンタ002C14のカウンタ値mkの初期設定値は”1”であり、尤度閾値判定部002C4による判定処理が実行されるごとにインクリメントされる。
要素ビットカウンタ002C15は、決定ベクトル[D]の要素ビットk(k=1,2,…,N1)の個数、すなわち、行方向の符号長N1に対応するカウンタであり、軟出力ベクトル算出部002C11が、決定ベクトル[D]の要素ビット個数分、すなわち、N1個の軟出力ベクトル[rr]の構成要素rrk(k=1,2,…,N1)を算出したかを管理するためのものである。要素ビットカウンタ002C15の初期設定値は”1”であり、軟出力ベクトル算出部002C11が、軟出力ベクトル[rr]の構成要素rrkを算出するごとにインクリメントされる。
次に、図8と図9を参照して、本発明の特徴的な部分である軟出力ベクトル生成処理を含む積符号の復号処理について説明する。図8は、復号処理全体のフローを示す図であり、従来技術と同様の処理を示している。図9は、図8の軟出力ベクトル生成ステップ(ステップ005、012)での本発明特有の軟出力ベクトル生成処理のフローを示す図である。
まず、図8を参照して、復号処理全体のフローについて説明する。前提条件として、復号部002Cが備える記憶部002C1に格納された積符号化情報行列{R}から一行単位で上側から最終行(第N2番目の行)まで順次読み出され、最終行まで読み出された後に、今度は、一列単位で左側から最終列(第N1番目の列)まで順次読み出されるものと仮定する。
無線送信装置001の積符号化部001Aの内部メモリに格納されている積符号化情報行列{R}から順次読み出された積符号化行情報ベクトル[Ri](i=1,2,…,N2)は、変調部001Bにより所定の信号方式に順次変調され、変調された積符号化行情報ベクトル[Ri]は、無線通信部001Cにより増幅され通信路CHへ順次出力される。そして、積符号化行情報ベクトル[Ri]は、無線受信装置002の無線通信部002Aにより順次受信され、復調部002Bにより順次復調され、復調された積符号化行情報ベクトル[Ri]は復号部002Cに順次入力される。
復号部002Cは、順次入力される積符号化行情報ベクトル[Ri]から積符号化情報行列{R}を生成し、記憶部002C1に格納する。
復号部002Cは、繰り返し回数カウンタ002C13を初期化、すなわち、カウンタ値itを”1”とする共に、訂正行列{W}を初期化、すなわち、訂正行列{W}の全構成要素を”0”にする(ステップ001)。そして、復号部002Cは、行(列)カウンタ002C12を初期化、すなわち、カウンタ値iを”1”にする(ステップ002)。
そして、復号部002Cは、行(列)カウンタ002C12のカウンタ値iに対応する第i行目の積符号化行情報ベクトル[Ri]を読み出し、訂正行列{W}の第i番目の行に対応する訂正ベクトル[Wi]と読み出された積符号化行情報ベクトル[Ri]を用いて、第i番目の行に対応する軟入力ベクトル[Ri’]を算出し、軟入力ベクトル[Ri’]を更新する(ステップ003)。
(数4)
[Ri’]=[Ri]+α1・[Wi] (i=1,2,…、N2)
そして、復号部002Cは、第i番目の行に対応する軟入力ベクトル[Ri’]の各構成要素Ri’k(k=1,2,…,N1)に対する硬判定値Dikを次式により求め、求めた硬判定値Dikを構成要素とするベクトルを決定ベクトル[Di]とする(ステップ004)。つまり、決定ベクトル[Di]をステップ004の処理で新たに求めた決定ベクトル[Di]で更新する。
(数5)
Dik=sign(Ri’k) (k=1,2,…,N1)
なお、関数sign(x)は、x≧0の場合は、”+1”となり、x<0の場合は、”−1”となるシグネチャ関数である。
そして、復号部002Cは、第i番目の行に対応する軟入力ベクトル[Ri’]と決定ベクトル[Di]を用いて、第i番目の行に対応する軟出力ベクトル[rri]を生成する(ステップ005)。
そして、復号部002Cは、軟出力ベクトル[rri]の構成要素rrikと軟入力ベクトル[Ri’]の構成要素Ri’kを用いて、次式によりWikを求め、求めたWikで構成されるベクトルを第i番目の行に対応する訂正ベクトル[Wi]とする(ステップ006)。つまり、訂正ベクトル[Wi]をステップ006の処理で新たに求めた訂正ベクトル[Wi]で更新する。
(数6)
Wik=rrik−Ri’k (k=1,2,…,N1)
そして、復号部002Cは、行(列)カウンタ002C12のカウンタ値iがN2であるか否かを判定する(ステップ007)。つまり、ステップ003乃006の処理を積符号化情報行列{R}の全行に対して行ったか否かを判定する。行(列)カウンタ002C12のカウンタ値iがN2でないと判定した場合には(ステップ007;NO)、行(列)カウンタ002C12のカウンタ値iをインクリメントし(ステップ008)、前述のステップ003乃006の処理を最終行(第N2番目の行)に至るまで繰り返す。
一方、行(列)カウンタ002C12のカウンタ値iがN2であると判定した場合には(ステップ007;YES)、復号部002Cは積符号化情報行列{R}から列を順次読み出して、行に対して行った処理と同様の処理を行う(ステップ009乃至015)。
そして、復号部002Cは、繰り返し回数カウンタ002C13のカウンタ値itが設定された繰り返し回数に達したか否かを判定する(ステップ016)。繰り返し回数カウンタ002C13のカウンタ値itが設定された繰り返し回数に達していないと判定した場合には(ステップ016;NO)、復号部002Cは、繰り返し回数カウンタ002C13のカウンタ値itをインクリメントし(ステップ017)、ステップ002の処理から復号処理を繰り返す。
一方、繰り返し回数カウンタ002C13のカウンタ値itが設定された繰り返し回数に達したと判定した場合には(ステップ016;YES)、復号部002Cは、軟出力行列{rr}の各構成要素の硬判定値を構成要素とするN2xN1の硬判定行列{Drr}を復号結果として出力して(ステップ018)、復号処理を終了する。この復号結果として出力されたN2xN1の硬判定行列{Drr}のK2xK1部分が復号処理により推定された情報系列を表し、推定された情報系列の構成要素は”+1”又は”−1”であるが、それぞれ2進法の”0”と”1”に対応する。
次に、図9を参照して、本発明特有の軟出力ベクトル生成処理について説明する。この軟出力ベクトル生成処理は、上述したように、図8に示す復号処理のステップ005とステップ012の処理に対応する処理である。なお、行における軟出力ベクトル生成処理と列おける軟出力ベクトル生成処理は同様の処理であることから、行における軟出力ベクトル生成処理、すなわち、ステップ005の処理に対応する処理について説明する。
決定ベクトル生成部002C2は、ステップ003の処理で求めた第i行目(i=1,2,…,N2)の軟入力ベクトル[Ri’]とステップ004の処理で求めた第i行目(i=1,2,…,N2)の決定ベクトル[Di]を用いて、従来技術であるChase復号により生成した候補符号語[Ct]の中から、軟入力ベクトル[Ri’]とのメトリック値が最小となる候補符号語[Cdi]を決定ベクトル[Di]とする(つまり、[Cdi]で[Di]を更新する)と共に、候補符号語[Cdi]のメトリック値Mdiを記憶部002C1に格納する(ステップS01)。以下、候補符号語[Cdi]で更新された決定ベクトル[Di]を決定ベクトル[Cdi]ということとする。
そして、復号部002Cは、要素ビットカウンタ002C15を初期化し、カウンタ値kを”1”とし(ステップS02)、検索部002C3は、記憶部002C1に格納されている個数情報テーブルT1を検索して、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットに対応する反転パターンPmkの個数Mkを取得する(ステップS03)。そして、復号部002Cは、個数カウンタ002C14を初期化し、カウンタ値mkを”1”とし(ステップS04)、検索部002C3は、記憶部002C1に格納されている反転パターン情報テーブルT2を検索して、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットに対応する反転パターン群の中から、個数カウンタ002C14のカウンタ値mkにより特定される反転パターンPmkを取得する(ステップS05)。
そして、尤度閾値判定部002C4は、ステップS05の処理で検索部002C3が取得した反転パターンPmkにより特定される反転対象から処理対象の要素ビットkを除外した各要素ビットにそれぞれ対応する軟入力ベクトル[Ri’]の要素値Ri’n(但し、n≠k)の絶対値|Ri’n|のうちで、予め設定されている尤度閾値αより小さい絶対値|Ri’n|が存在する否かを判定する(ステップS06)。尤度閾値αより小さい絶対値|Ri’n|が存在すると判定された場合には(ステップS06;YES)、第1反転パターン特定部002C5は、判定対象の反転パターンPmkを反転パターン格納情報テーブルT3の反転パターン欄に格納し(ステップS07)、処理はステップS09の処理へ進む。
一方、尤度閾値αより小さい絶対値|Ri’n|が存在しないと判定された場合には(ステップS06;NO)、復号部002Cは詳しくは後述する最小絶対値判定処理を実行する(ステップS08)。そして、復号部002Cは、個数カウンタ002C14のカウンタ値mkをインクリメントし(ステップS09)、判定部002C10は、ステップS09の処理でインクリメントされた後のカウンタ値mkが、ステップS03の処理で取得した反転パターンPmkの個数Mkを越えたか否かを判定する(ステップS10)。カウンタ値mkが個数Mk以下であると判定された場合には(ステップS10;NO)、処理はステップS05の処理に戻り、前述の処理を繰り返す。
一方、カウンタ値mkが個数Mkを越えたと判定された場合には(ステップS10;YES)、判定部002C10は、反転パターン格納情報テーブルT3を検索し、反転パターンPmkが格納されているか否かを判定する(ステップS11)。反転パターン格納情報テーブルT3に反転パターンPmkが格納されていると判定された場合には(ステップS11;YES)、反転パターン格納情報テーブルT3に格納されている各反転パターンPmkから、反転パターンPmkが特定する反転対象の決定ベクトル[Cdi]([Di])の要素ビットを反転させることで、要素ビットkのコンカーレント符号語候補[Ctki]を生成し、反転パターンPmkとそれぞれ対応付けてコンカーレント符号語候補情報テーブルT5に格納する(ステップS12)。
一方、反転パターン格納情報テーブルT3に反転パターンPmkが格納されていないと判定された場合には(ステップS11;NO)、コンカーレント符号語候補生成部002C8は、最小絶対値情報テーブルT4に格納されている反転パターンPmkから、反転パターンPmkが特定する反転対象の決定ベクトル[Cdi]([Di])の要素ビットを反転させることで、要素ビットkのコンカーレント符号語候補[Ctki]を生成し、反転パターンPmkと対応付けて後述のコンカーレント符号語候補情報テーブルT5に格納する(ステップS13)。
そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補情報テーブルT5を検索し、コンカーレント符号語候補生成部002C8により生成されたコンカーレント符号語候補[Ctki]それぞれに対し、軟入力ベクトル[Ri’]との間のメトリック値Mtkiを求め、最も値が小さいメトリック値minMtkiを有するコンカーレント符号語候補[Ctki]を要素ビットkのコンカーレント符号語[Cki]として特定する。そして、コンカーレント符号語特定部002C9は、最も値が小さいメトリック値minMtkiを要素ビットkのコンカーレント符号語[Cki]のメトリック値Mckiとして、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する(ステップS14)。
そして、軟出力ベクトル算出部002C11は、ステップS14の処理で特定した要素ビットkのコンカーレント符号語[Cki]のメトリック値MckiとステップS01の処理で記憶部002C1に格納された決定ベクトル[Cdi]のメトリック値Mdiを用いて、上述した算出式(数3)により、要素ビットカウンタ002C15のカウンタ値kに対応する第k番目の軟出力ベクトル[rri]の構成要素rrikを算出し、算出した構成要素rrikを記憶部002C1に格納する(ステップS15)。
そして、復号部002Cは、要素ビットカウンタ002C15のカウンタ値kをインクリメントすると共に、記憶部002C1に格納されている反転パターン格納情報テーブルT3と最小絶対値情報テーブルT4とコンカーレント符号語候補情報テーブルT5とを初期化する(ステップS16)。そして、判定部002C10は、ステップS16の処理でインクリメントされた後の要素ビットカウンタ002C15のカウンタ値kが決定ベクトル[Cdi]の要素ビット個数N1(行方向の符号長)を越えたか否かを判定する(ステップS17)。
カウンタ値kが要素ビット個数N1以下であると判定された場合には(ステップS17;NO)、処理はステップS03の処理に戻り、前述の処理を繰り返す。一方、カウンタ値が要素ビット個数N1を越えたと判定された場合には(ステップS17;YES)、軟出力ベクトル算出部002C11は、前述の処理を決定ベクトル[Cdi]の要素ビット個数回(N1回)繰り返すことで得られた、構成要素rrik(k=1,2,…,N1)から、第i番目の行に対応する軟出力ベクトル[rri](=(rri1,rri2,…,rriN1))を生成し(ステップS18)、軟出力ベクトル生成処理を終了する。
次に、図10を参照して、最小絶対値判定処理について説明する。この最小絶対値判定処理は、図9の軟出力ベクトル生成処理のステップS08の処理に対応する処理である。
尤度閾値判定部002C4により、尤度閾値αより小さい絶対値|Ri’n|が存在しないと判定された場合には(ステップS06;NO)、判定部002C10は、反転パターン格納情報テーブルT3に反転パターンが格納されているか否かを判定する(ステップS101)。反転パターンが格納されていると判定された場合には(ステップS101;YES)、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップS09に進む。
一方、反転パターンが格納されていないと判定された場合には(ステップS101;NO)、最小絶対値判定部002C6は、反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[Ri’]の各要素値Ri’n(但し、n≠k)の絶対値|Ri’n|うちで、最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下か否かを判定する(ステップS102)。最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下でないと判定された場合には(ステップS102;NO)、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップS09に進む。
一方、最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値以下であると判定した場合には(ステップS102;NO)、最小絶対値判定部002C6は、さらに、反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[Ri’]の各要素値Ri’n(但し、n≠k)の絶対値|Ri’n|うちで、最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値と等しいか否かを判定する(ステップS103)。
最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値と等しいと判定された場合には(ステップS103;YES)、第2反転パターン特定部002C7は、反転パターンPmkを最小絶対値情報テーブルT4の反転パターンの欄に追加する(ステップS104)。そして、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップS09に進む。
一方、最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値と等しくないと判定された場合には、すなわち、最小値min|Ri’n|が最小絶対値情報テーブルT4に格納されている最小絶対値より小さい場合には(ステップS103;NO)、第2反転パターン特定部002C7は、反転パターンPmkと最小値min|Ri’n|とを対応付けて最小絶対値情報テーブルT4を更新する(ステップS105)。そして、最小絶対値判定処理を終了し、処理は軟出力ベクトル生成処理のステップS09に進む。
次に、図3と図4(a)と図5と図6(a)と図7を参照して、軟出力ベクトル生成処理について具体例に沿って説明する。
要素ビットカウンタ002C15のカウンタ値kが”1”の場合(ステップS02)、検索部002C3は、図3(a)に例示する番号情報テーブルT1から要素ビット”1”に対応する反転パターンの個数M1、すなわち、”5”を取得する(ステップS03)。復号部002Cは、個数カウンタ002C14のカウンタ値m1を初期化、すなわち、m1=1とする(ステップS04)。
そして、検索部002C3は、図3(b)に例示する反転パターン情報テーブルT2を検索して、個数カウンタ002C14のカウンタ値m1(m1=1,2,…,5)は”1”なので、要素ビット”1”に対応する反転パターン群から反転パターンPm1(m1=1)、すなわち、第1番目の反転パターン(1,2,13)を取得する(ステップS05)。反転パターン(1,2,13)により特定される反転対象から処理対象の要素ビット”1”を除外した要素ビット”2”と”13”にそれぞれ対応する軟入力ベクトル[R’1]の要素値の絶対値”0.75”と”0.53”は、尤度閾値”0.3”より大きいことから(ステップS06;NO)、最小絶対値判定処理を実行する(ステップS08)。
最小絶対値判定処理において、反転パターン格納情報テーブルT3には、まだ、反転パターンが格納されておらず(ステップS101;NO)、最小絶対値情報テーブルT4には、まだ、最小絶対値が格納されていないことから(ステップ102;YES、ステップ103;NO)、第2反転パターン特定部002C7は、反転パターン(1,2,13)と最小絶対値”0.53”とを対応付けて最小絶対値情報テーブルT4に格納する(ステップS107)。図6(a)は、この時点での、最小絶対値情報テーブルT4の状態を示している。
そして、復号部002Cは、個数カウンタ002C14のカウンタ値m1をインクリメントし(ステップS09)、インクリメント後の個数カウンタ002C14のカウンタ値m1は”2”なので(ステップS10;NO)、処理は、ステップS05の処理に戻る。
そして、検索部002C3は、図3(b)に例示する反転パターン情報テーブルT2を検索して、個数カウンタ002C14のカウンタ値m1は”2”なので、要素ビット”1”に対応する反転パターン群から反転パターンPm1(m1=2)、すなわち、第2番目の反転パターン(1,3,10)を取得し、前述の処理を繰り返す。
反転パターン(1,3,10)の処理では、反転パターン(1,3,10)により特定される反転対象から処理対象の要素ビット”1”を除外した要素ビット”3”と”10”に対応する軟入力ベクトル[R’1]の要素値の絶対値はいずれも尤度閾値”0.3”より大きく(ステップS06;NO)、最小絶対値情報テーブルT4に格納されている最小絶対値”053”よりも大きいので(ステップ101;NO、ステップ102;NO)、処理は、ステップS09の処理に進む。
個数カウンタ002C14のカウンタ値m1が”3”での処理、すなわち、反転パターン(1,4,5)の処理では、反転パターン(1,4,5)により特定される反転対象から処理対象の要素ビット”5”に対応する軟入力ベクトル[R’1]の要素値の絶対値”0.25”は尤度閾値”0.3”より小さいので(ステップS06;YES)、第1反転パターン特定部002C5は、反転パターン(1,4,5)を反転パターン格納情報テーブルT3に格納する(ステップS07)。
個数カウンタ002C14のカウンタ値m1が”4”での処理、すなわち、反転パターン(1,6,11)の処理では、反転パターン(1,6,11)により特定される反転対象から処理対象の要素ビット”11”に対応する軟入力ベクトル[R’1]の要素値の絶対値”0.15”は尤度閾値”0.3”より小さいので(ステップS06;YES)、第1反転パターン特定部002C5は、反転パターン(1,6,11)を反転パターン格納情報テーブルT3に格納する(ステップS07)。
個数カウンタ002C14のカウンタ値m1が”5”での処理、すなわち、反転パターン(1,7,9)の処理では、反転パターン(1,7,9)により特定される反転対象から処理対象の要素ビット”1”を除外した要素ビット”7”と”9”に対応する軟入力ベクトル[R’1]の要素値の絶対値はいずれも尤度閾値”0.3”より大きく(ステップS06;NO)、反転テーブル格納情報テーブルT3には、反転パターンが格納されているので(ステップ101;YES)、処理は、ステップS09の処理に進む。
図5は、要素ビット”1”に対応する全ての反転パターンについて、前述の処理を終えた時点での、反転パターン格納情報テーブルT3の状態を示していることから(ステップS11;YES)、コンカーレント符号語候補生成部002C8は、反転パターン格納情報テーブルT3に格納されている反転パターン(1,4,5)と(1,6,11)から、コンカーレント符号語候補[C11]と[C21]を生成する。そして、コンカーレント符号語候補生成部002C8は、それぞれ反転パターンと対応つけてコンカーレント符号語候補情報テーブルT5に格納する(ステップS12)。
そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補[C11]と[C21]とそれぞれに対し、軟入力ベクトル[R’1]との間のメトリック値M11とM21を算出する。そして、最小のメトリック値M11のコンカーレント符号語候補[C11]を要素ビット”1”のコンカーレント符号語[C1]として特定し、そのメトリック値M11をMc1として、図7(a)に示すように、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する(ステップS14)。
そして、軟出力ベクトル算出部002C11は、記憶部002C1に格納されている決定ベクトル[Cd]([D])のメトリック値Mdと要素ビット”1”のコンカーレント符号語[C1]のメトリック値Mc1と決定ベクトル[Cd]([D])の要素ビット”1”(第1番目)の構成要素Cd1とを用いて、上述した算出式(数3)より、軟出力ベクトル[rr]の第1番目の構成要素rr1を算出し、記憶部002C1に格納する(ステップS15)。
そして、復号部002Cは、要素ビットカウンタ002C15のカウンタ値kをインクリメントすると共に、反転パターン格納情報テーブルT3と最小絶対値情報テーブルT4とコンカーレント符号語候補情報テーブルT5とを初期化する(ステップS16)。そして、判定部002C10は、インクリメント後のカウンタ値kが行方向の符号長”13”を越えたか否かを判定する(ステップS17)。インクリメント後のカウンタ値kが行方向の符号長”13”を越えるまで、前述の処理を繰り返えし、軟出力ベクトル算出部002C11は、軟出力ベクトル[rr]の各構成要素rrk(k=1,2,…,13)を算出し、記憶部002C1に格納する。
判定部002C10が、インクリメント後のカウンタ値kが行方向の符号長”13”を越えたと判定すると(ステップS17;YES)、軟出力ベクトル算出部002C11は、算出した構成要素rrk(k=1,2,…,13)から軟出力ベクトル[rr]を生成し(ステップS18)、軟出力ベクトル生成処理を終了する。
本実施形態によれば、決定ベクトル[Cdi]([Di])の各要素ビットk(k=1,2,…,N1)に対応する反転パターンの個数を示す個数情報テーブルT1と、各要素ビットkに対応する反転パターンPmk(mk=1,2,…,Mk)を示す反転パターン情報テーブルT2を予め記憶部002C1に格納し、処理対象の要素ビットkに対応する反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[Ri’]の要素値の絶対値|Ri’n|が、尤度閾値αより小さい反転パターンを特定した。こうすることで、軟入力ベクトル[Ri’]との間のメトリック値が小さいコンカーレント符号語候補[Ctki]が生成出来る可能性が高い反転パターンに絞り込むことが可能となる。その結果、コンカーレント符号語[Cki]の探索処理における演算量を軽減し、復号処理の高速化を図ることが可能となる。
また、本実施形態によれば、処理対象の要素ビットkに対応する反転パターンPmkにより特定される要素ビットk以外の反転対象に対応する軟入力ベクトル[Ri’]の各要素値の絶対値|Ri’n|が、いずれも尤度閾値α以上の場合には、最小絶対値判定部002C6と第2反転パターン特定部002C7とにより、絶対値|Ri’n|が最小となる反転パターンを特定した。こうすることで、確実にコンカーレント符号語[Cki]を見つけることが可能となることから、訂正ベクトル[Wi]を推定する必要がなくなり、訂正ベクトル[Wi]を推定することで生じる積符号の復号性能の劣化を防ぐことが可能となる。
(実施形態2)
実施形態1においては、決定ベクトル[Cdi]([Di])の各要素ビットk(k=1,2,…,N1)に対応する反転パターンPmkごとに、軟入力ベクトル[Ri’]との間のメトリック値が小さいコンカーレント符号語候補[Ctki]が生成出来る可能性が高い反転パターンの絞り込みを行った。本実施形態においては、反転パターンの絞り込みを要素ビットkに対応する全ての反転パターンに対し1度の処理で行う。
本実施形態における、デジタル通信システム1の構成は、図1に示す実施形態1の構成と同じである。但し、図11に示すように、復号部002Cが備える各機能部の構成が異なり、復号部002Cは、記憶部002C1と、決定ベクトル生成部002C2と、検索部002C3と、尤度閾値判定部002C4と、第1反転パターン特定部002C5と、第2反転パターン特定部002C7と、コンカーレント符号語候補生成部002C8と、コンカーレント符号語特定部002C9と、判定部002C10と、軟出力ベクトル算出部002C11と、行(列)カウンタ002C12と、繰り返し回数カウンタ002C13と、要素ビットカウンタ002C15を備える。
また、番号情報テーブルT1と、反転パターン格納情報テーブルT3と、最小絶対値情報テーブルT4は、記憶部002C1に格納されない点で、実施形態1とは異なる。さらに、検索部002C3と、尤度閾値判定部002C4と、第1反転パターン特定部002C5と、第2反転パターン特定部002C7と、コンカーレント符号語候補生成部002C8と、判定部002C10が果たす機能が実施形態1とは若干異なる。
検索部002C3は、記憶部002C1に格納されている反転パターン情報テーブルT2を検索し、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する各反転パターンPk(本実施形態では、PmkでなくPkとする)により特定される反転対象の全ての要素ビットnkを取得する。
尤度閾値判定部002C4は、検索部002C3が取得した要素ビットnkから処理対象の要素ビットkを除外した各要素ビットnk(nk≠k)にそれぞれ対応する軟入力ベクトル[R’]の要素値R’nk(但し、nk≠k)の絶対値|R’nk|の中に、予め設定されている尤度閾値α(本実施形態においては、尤度閾値α=0.3とする)より小さい絶対値|R’nk|が存在する否かを判定する。
第1反転パターン特定部002C5は、尤度閾値判定部002C4により、要素ビットnkから処理対象の要素ビットkを除外した各要素ビットnk(nk≠k)に対応する軟入力ベクトル[R’]の各要素値R’nk(但し、nk≠k)の絶対値|R’nk|の中に、尤度閾値αより小さい絶対値|R’nk|が存在すると判定された場合に、尤度閾値αより小さい絶対値|R’nk|に対応する要素ビットnkが反転対象である反転パターンPkを特定し、コンカーレント符号語候補情報テーブルT5の反転パターン欄に格納する。
第2反転パターン特定部002C7は、尤度閾値判定部002C4により、要素ビットnkから処理対象の要素ビットkを除外した各要素ビットnk(nk≠k)に対応する軟入力ベクトル[R’]の各要素値R’nk(但し、nk≠k)の絶対値|R’nk|の中に、尤度閾値αより小さい絶対値|R’nk|が存在しないと判定された場合に、最小絶対値min|R’nk|の要素ビットnkが反転対象である反転パターンPkを特定する。そして、第2反転パターン特定部002C7は、特定した反転パターンPkをコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納する。
コンカーレント符号語候補生成部002C8は、反転パターン格納情報テーブルT3に格納されている各反転パターンPkから、反転パターンPkが特定する反転対象の決定ベクトル[D]の要素ビットを反転させることで、要素ビットk(k=1,2,…,N1)のコンカーレント符号語候補[Ctk]を生成し、反転パターンPkとそれぞれ対応付けて、コンカーレント符号語候補[Ctk]をコンカーレント符号語候補情報テーブルT5に格納する。
判定部002C10は、要素ビットカウンタ002C15のカウンタ値kが行方向の符号長N1以下であるか否かを判定する。
次に、図12を参照して、本実施形態における軟出力ベクトル生成処理について説明する。この軟出力ベクトル生成処理は、上述したように、図8に示す復号処理のステップ005とステップ012の処理に対応する処理である。なお、行における軟出力ベクトル生成処理と列おける軟出力ベクトル生成処理とは同様の処理であることから、行における軟出力ベクトル生成処理、すなわち、ステップ005の処理に対応する処理について説明する。
決定ベクトル生成部002C2は、ステップ003の処理で求めた第i行目(i=1,2,…,N2)の軟入力ベクトル[Ri’]とステップ004の処理で求めた第i行目(i=1,2,…,N2)の決定ベクトル[Di]を用いて、従来技術であるChase復号により生成した候補符号語[Ct]の中から、軟入力ベクトル[Ri’]とのメトリック値が最小となる候補符号語[Cdi]を決定ベクトル[Di]とする(つまり、[Cdi]で[Di]を更新する)と共に、候補符号語[Cdi]のメトリック値Mdiを記憶部002C1に格納する(ステップS201)。以下、候補符号語[Cdi]で更新された決定ベクトル[Di]を決定ベクトル[Cdi]ということとする。
そして、復号部002Cは、要素ビットカウンタ002C15を初期化し、カウンタ値kを”1”とし(ステップS202)、検索部002C3は、記憶部002C1に格納されている反転パターン情報テーブルT2を検索して、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する各反転パターンPkが特定する反転対象の全ての要素ビットnkを取得する(ステップS203)。
そして、尤度閾値判定部002C4は、ステップS203の処理で検索部002C3が取得した要素ビットnkから処理対象の要素ビットkを除外した要素ビットnk(nk≠k)にそれぞれ対応する軟入力ベクトル[Ri’]の要素値の絶対値|Ri’nk|(但し、nk≠k)の中に、予め設定されている尤度閾値αより小さい絶対値|Ri’ nk|が存在する否かを判定する(ステップS204)。尤度閾値αより小さい絶対値|Ri’nk|が存在すると判定された場合には(ステップS204;YES)、第1反転パターン特定部002C5は、最小絶対値min|R’nk|の要素ビットnkが反転対象である反転パターンPkを特定し、特定した反転パターンPkをコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納し(ステップS205)、処理はステップS207の処理へ進む。
一方、尤度閾値αより小さい絶対値|R’nk|が存在しないと判定された場合には(ステップS204;NO)、第2反転パターン特定部002C7は、最小絶対値min|R’nk|の要素ビットnkが反転対象である反転パターンPkを特定し、特定した反転パターンPkをコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納する(ステップS206)。
コンカーレント符号語候補生成部002C8は、コンカーレント符号語候補情報テーブルT5に格納されている各反転パターンPkから、反転パターンPkが特定する反転対象の決定ベクトル[Cdi]([Di])の要素ビットを反転させることで、要素ビットkのコンカーレント符号語候補[Ctki]を生成し、反転パターンPkとそれぞれ対応付けてコンカーレント符号語候補情報テーブルT5に格納する(ステップS207)。
そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補情報テーブルT5を検索し、コンカーレント符号語候補生成部002C8により生成されたコンカーレント符号語候補[Ctki]それぞれに対し、軟入力ベクトル[Ri’]との間のメトリック値Mtkiを求め、最も値が小さいメトリック値minMtkiを有するコンカーレント符号語候補[Ctki]を要素ビットkのコンカーレント符号語[Cki]として特定する。そして、コンカーレント符号語特定部002C9は、最も値が小さいメトリック値minMtkiを要素ビットkのコンカーレント符号語[Cki]のメトリック値Mckiとして、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する(ステップS208)。
そして、軟出力ベクトル算出部002C11は、ステップS14の処理で特定した要素ビットkのコンカーレント符号語[Cki]のメトリック値MckiとステップS01の処理で記憶部002C1に格納された決定ベクトル[Cdi]のメトリック値Mdiを用いて、上述した算出式(数3)により、要素ビットカウンタ002C15のカウンタ値kに対応する第k番目の軟出力ベクトル[rri]の構成要素rrikを算出し、算出した構成要素rrikを記憶部002C1に格納する(ステップS209)。
そして、復号部002Cは、要素ビットカウンタ002C15のカウンタ値kをインクリメントすると共に、記憶部002C1に格納されているコンカーレント符号語候補情報テーブルT5を初期化する(ステップS210)。そして、判定部002C10は、ステップS16の処理でインクリメントされた後の要素ビットカウンタ002C15のカウンタ値kが決定ベクトル[Cdi]の要素ビット個数N1(行方向の符号長)を越えたか否かを判定する(ステップS211)。
カウンタ値kが要素ビット個数N1以下であると判定された場合には(ステップS211;NO)、処理はステップS203の処理に戻り、前述の処理を繰り返す。一方、カウンタ値kが要素ビット個数N1を越えたと判定された場合には(ステップS211;YES)、軟出力ベクトル算出部002C11は、前述の処理を決定ベクトル[Cdi]の要素ビット個数回(N1回)繰り返すことで得られた、構成要素rrik(k=1,2,…,N1)から、第i番目の行に対応する軟出力ベクトル[rri](=(rri1,rri2,…,rriN1))を生成し(ステップS212)、軟出力ベクトル生成処理を終了する。
次に、図3(b)と図4(a)と図7(a)を参照して、本実施形態における軟出力処理について具体例に沿って説明する
要素ビットカウンタ002C15のカウンタ値kが”1”の場合(ステップS202)、検索部002C3は、図3(b)に例示する反転パターン情報テーブルT2を検索して、要素ビット”1”に対応する反転パターン(1,2,13)、(1,3,10)、(1,4,5)、(1,6,11)、(1,7,9)により特定される反転対象の全ての要素ビット(1,2,3,4,5,6,7,9,10,11,13)を取得する(ステップS203)。
これらの要素ビットの中で要素ビット”5”と”11”にそれぞれ対応する軟入力ベクトル[R’1]の要素値の絶対値”0.25”と”0.15”が、尤度閾値0.3より小さいことから(ステップS204;YES)、第1反転パターン特定部002C5は、要素ビット”5”と”11”が反転対象である反転パターン(1,4,5)と(1,6,11)を特定し、特定した反転パターン(1,4,5)と(1,6,11)をコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納する(ステップS205)。
そして、コンカーレント符号語候補生成部002C8は、コンカーレント符号語候補情報テーブルT5に格納されている反転パターン(1,4,5)と(1,6,11)から、コンカーレント符号語候補[C11]と[C21]を生成する。そして、コンカーレント符号語候補生成部002C8は、それぞれ反転パターンと対応つけてコンカーレント符号語候補情報テーブルT5に格納する(ステップS207)。
そして、コンカーレント符号語特定部002C9は、コンカーレント符号語候補[C11]と[C21]とそれぞれに対し、軟入力ベクトル[R’1]との間のメトリック値M11とM21を算出する。そして、最小のメトリック値M11のコンカーレント符号語候補[C11]を要素ビット”1”のコンカーレント符号語[C1]として特定し、そのメトリック値M11をMc1として、図7(a)に示すように、対応するコンカーレント符号語候補情報テーブルT5のメトリック値欄に格納する(ステップS208)。
そして、軟出力ベクトル算出部002C11は、記憶部002C1に格納されている決定ベクトル[Cd]([D])のメトリック値Mdと要素ビット”1”のコンカーレント符号語[C1]のメトリック値Mc1と決定ベクトル[Cd]([D])の要素ビット”1”(第1番目)の構成要素Cd1とを用いて、上述した算出式(数3)より、軟出力ベクトル[rr]の第1番目の構成要素rr1を算出し、記憶部002C1に格納する(ステップS209)。
そして、復号部002Cは、要素ビットカウンタ002C15のカウンタ値kをインクリメントすると共に、コンカーレント符号語候補情報テーブルT5を初期化する(ステップS210)。そして、判定部002C10は、インクリメント後のカウンタ値kが行方向の符号長”13”を越えたか否かを判定する(ステップS211)。インクリメント後のカウンタ値kが行方向の符号長”13”を越えるまで、前述の処理を繰り返えし、軟出力ベクトル算出部002C11は、軟出力ベクトル[rr]の各構成要素rrk(k=1,2,…,13)を算出し、記憶部002C1に格納する。
判定部002C10が、インクリメント後のカウンタ値kが行方向の符号長”13”を越えたと判定すると(ステップS211;YES)、軟出力ベクトル算出部002C11は、算出した構成要素rrk(k=1,2,…,13)から軟出力ベクトル[rr]を生成し(ステップS212)、軟出力ベクトル生成処理を終了する。
本実施形態によれば、検索部002C3は、反転パターン情報テーブルT2を検索して、処理対象の決定ベクトル[Cdi]([Di])の要素ビットkに対応する反転パターンPkにより特定される反転対象の全ての要素ビットnkを取得した(ステップS203。そして、尤度閾値判定部002C4は、要素ビットnkから処理対象の要素ビットkを除外した要素ビットnk(nk≠k)にそれぞれ対応する軟入力ベクトル[Ri’]の要素値の絶対値|Ri’nk|(但し、nk≠k)の中に、予め設定されている尤度閾値αより小さい絶対値|Ri’nk|が存在する否かを判定した(ステップS204)。そして、尤度閾値αより小さい絶対値|Ri’nk|が存在すると判定された場合には、第1反転パターン特定部002C5は、最小絶対値min|R’nk|の要素ビットnkが反転対象である反転パターンPkを特定し、特定した反転パターンPkをコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納した(ステップS205)。こうすることで、記憶部002C1に格納する情報テーブルを削減でき、メモリ資源を節約できると共に、実施形態1において反転パターンに対して繰り返し行っていた同様の処理を、一度に行うことが可能となる。その結果、復号処理をさらに高速化することが可能となる。
また、本実施形態によれば、尤度閾値αより小さい絶対値|R’nk|が存在しないと判定された場合には(ステップS204;NO)、第2反転パターン特定部002C7は、最小絶対値min|R’nk|の要素ビットnkが反転対象である反転パターンPkを特定し、特定した反転パターンPkをコンカーレント符号語候補情報テーブルT5の反転パターン欄に格納した(ステップS206)。こうすることで、確実にコンカーレント符号語を見つけられることから、復号性能を高めることが可能となると共に、各反転パターンに対し繰り返し行った処理を、一度の処理で行うことが可能となる。その結果、復号処理をさらに高速化することが可能となる。
なお、上記実施形態における無線送信装置001と無線受信装置002は、それぞれ基地局及び移動情報端末に適用でき、ピアツーピア通信装置等に適用できる。
また、上記実施形態において、行方向と列方向に対して1又は2つの線形符号より符号化された2次元積符号の復号方法について説明したが、これに限定されるものではなく、本発明は、1又は複数の線形符号による多次元積符号における復号においても適用できる。
また、上記実施形態1において、検索部002C3は、記憶部002C1に格納されている個数情報テーブルT1から処理対象の要素ビットkに対応する反転パターンPmkの個数を取得すると説明したが、これに限定される物ではなく、反転パターン情報テーブルT2から反転パターンPmkの個数を取得してもよい。この場合、個数情報テーブルT1は不要となる。
また、上記実施形態における復号処理において、積符号化情報行列{R}からの行又は列の読み出し順序は任意である。
また、上記実施形態において、記憶部002C1に格納される反転パターン情報テーブルT2に含まれる反転パターンは、(i)処理対象の要素ビットkが反転対象であり、(ii)決定ベクトル[Cd]([D])の反転対象の要素ビットを反転させることで得られる反転決定ベクトル[RD]が、処理対象の配列を符号化した線形符号の符号語となり、(iii)反転対象の要素ビットの個数が該線形符号の最小距離と一致する、という条件を満たすものとして説明したが、これに限定されるものではなく、条件(i)と(ii)のみを満たす場合にも、本発明は適用できる。
また、上記実施形態において、尤度閾値αは、復号部002Cが備えるCPUの処理能力に応じ設定すればよい。尤度閾値αの設定値を大きくすれば、生成されるコンカーレント符号語候補[Ct]が増え、高い処理能力が必要になるが、コンカーレント符号語候補[Ct]が増えることで、軟入力ベクトル[R’]との間のメトリック値がより小さいコンカーレント符号語候補[Ct]を得られる可能性が高まる。また、符号化する際に用いられる線形符号の符号長やハミング距離に応じて、尤度閾値αの値を設定してもよい。
また、尤度閾値αの設定値を固定値とするのではなく、例えば、通信路CHの状態に応じて可変してもよい。なお、尤度閾値αは、積符号化が複数の線形符号による場合には、それぞれ別々の尤度閾値αを設定するのが好ましい。
また、上記実施形態2において、検索部002C3が、記憶部002C1に格納されている反転パターン情報テーブルT2を検索し、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する各反転パターンPk(本実施形態では、PmkでなくPkとする)により特定される反転対象の全ての要素ビットnkを取得すると説明したが、これに限定されるものではなく、検索部002C3が、要素ビットカウンタ002C15のカウンタ値kにより特定される要素ビットkに対応する各反転パターンPkを取得し、第1反転パターン特定部002C5と第2反転パターン特定部002C7が、取得された反転パターンPkにより特定される反転対象の全ての要素ビットnkを特定するように構成してもよい。
なお、上記実施形態において、実行されるプログラムは、フレキシブルディスク、CD−ROM(Compact Disc Read-Only Memory)、DVD、MO(Magneto-Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述の処理を実行することとしてもよい。
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、取得等するようにしてもよい。
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。