以下、本発明に係る実施の形態について図面を参照して説明する。
[第1の実施形態]
本発明の実施形態は、UMP-APP復号法をベースとした復号装置である。
図1は、本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。図1において、通信システムは、送信側において、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)(=N)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)ビットのLDPC符号(低密度パリティ検査符号)を生成する。(K+M)ビットのLDPC符号のどのビットに、K個の情報ビットおよびM個の冗長ビットを配置するかは、送信側と受信側で取り決めていれば、どのように配置してもよい。本発明の実施形態では、LDPC符号の先頭(MSB:Most Significant Bit)からM個のビットに冗長ビットを配置し、その次のK個のビットに情報ビットを配置するように、送信側と受信側で決められているものとする。
パリティ検査行列においては、行が冗長ビットに対応し、列が符号ビットに対応する。
変調器2は、この通信路3の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。たとえば、通信路3が、光ファイバの場合、変調器2においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調(一種の振幅変調)を行なっている。たとえば、送信データビットが“0”の場合には、このレーザダイオードの発光強度を強くして“+1”として送信し、また送信データビットが“1”の場合、レーザダイオードの発光強度を弱くして、“−1”に変換して送信する。
受信部においては、通信路3を介して送信された変調信号に復調処理を施して、(K+M)ビットのデジタル符号を復調する復調器4と、この復調器4からの(K+M)ビットの符号にパリティ検査行列演算処理を施して元のKビットの情報を再生する復号化器5が設けられる。
復調器4は、この通信路3における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器4において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
図2は、通信路3が光ファイバの場合の変調器2および復調器4の出力データの対応関係を一覧にして示す図である。図2において、上述のように、通信路3が光ファイバの場合、変調器2においては、送信データが“0”のときには、送信用のレーザダイオード(発光ダイオード)の発光強度を強くし、“1”を出力し、また送信データビットが“1”のときには、この発光強度を弱くしてビット“−1”を送信する。
この通信路3における伝送損失等により、復調器4に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器4においては、この入力された光信号を量子化処理(アナログ/デジタル変換)を行なって、この受光レベルを検出する。図2においては、8段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“7”のときには、発光強度がかなり強く、受光レベルが“0”のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器4から出力される。この復調器4の出力は、受光レベルが“7”のときにはデータ“3”が出力され、受光レベルが“0”のときには、データ“−4”が出力される。したがって、この復調器4からは、1ビットの受信信号に対し、多値量子化された信号が出力される。
復号化器5は、この復調器4から与えられた(K+M)ビットの受信情報(各ビットは、多値情報を含む)を入力し、後に詳細に説明する、復号法に従ってLDPCパリティ検査行列を適用して、元のKビットの情報を復元する。
なお、この図2においては、復調器4において、8レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器4においては、L値(L≧2)に量子化されたビットを用いて復号処理を行なうことができる。
また、図2においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、2値信号を生成してもよい。
図3は、本発明の実施形態に従う復号化器5の構成を概略的に示す図である。この図3においては、復調器4および通信路3も併せて示す。復調器4は、通信路3から与えられた信号を復調する復調回路4aと、この復調回路4aにより生成されたアナログ復調信号をデジタル信号に変換するアナログ/デジタル変換回路4bを含む。このアナログ/デジタル変換回路4bの出力データInが復号化器5へ与えられる。この復号化器5へ与えられるデータInは、L値(L≧2)のデータである。以下、データInは、多値量子化データであるため、シンボルと称す。復号化器5は、この入力シンボルIn系列に対して復号処理を行なって復号ビットCnを生成する。
復号化器5は、復調器4からの復調シンボルInの対数尤度比λnを生成する対数尤度比算出部6と、対数尤度比λnおよびパリティ検査行列に基づいて繰返し演算によって外部値対数比αmn(t)、擬似事前値対数比Sn(t)、および擬似対数尤度比γn(t)を更新する更新部7と、擬似対数尤度比γn(t)に基づいて復号語を生成する復号語生成部16とを含む。
対数尤度比算出部6は、この受信信号のノイズ情報と独立に、対数尤度比λnを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λnは、2×In/σ2で与えられる。ここで、σは、ノイズの分散を示す。この対数尤度比λnを用いてもよいが、本発明の実施形態の説明では、この対数尤度比算出部6は、バッファ回路または定数乗算回路で形成され、対数尤度比λnは、In×fで与えられることとする。ここで、fは非ゼロの正の数である。このノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。
更新部7は、次式(1)、(2)および(3)に従って演算処理を行ない、パリティ検査行列の行の各要素についての処理(行処理)および列についての各要素についての処理(列処理)を繰返し実行する。
ここで、上式(1)において、n′∈A(m)\n、自身を除く要素を意味する。つまり、外部値対数比αmn(t)について、n′≠nである。
また、α、S、γ、の添え字“mn”、“n”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
また、関数sign(x)は、次式(4)で定義される。
ここで、関数minは、最小値を求める演算を示す。
また、集合A(m)およびB(n)は、式(5)および(6)に示すように、2元M・N行列H=[Hmn]を復号対象のLDPC符号のパリティ検査行列とした場合、集合[1,N]={1,2,…,N}の部分集合である。
A(m)={n:Hmn=1} …(5)
B(n)={m:Hmn=1} …(6)
すなわち、部分集合A(m)は、パリティ検査行列Hの第m行目において1が立っている列インデックスの集合を意味し、部分集合B(n)は、パリティ検査行列Hの第n列目において1が立っている行インデックスの集合を示す。
具体的に、今、図4に示すパリティ検査行列Hを考える。この図4に示すパリティ検査行列Hにおいては、第1行の第1列から第3列に“1”が立ち、また第2行の第3列および第4列に“1”が立ち、また第3行の第4列から第6列に、“1”が立つ。したがって、この場合、部分集合A(m)は以下のようになる。
A(1)={1,2,3}、
A(2)={3,4}、
A(3)={4,5,6}。
同様、部分集合B(n)については、以下のようになる。
B(1)=B(2)={1}、
B(3)={1,2}、
B(4)={2,3}、
B(5)=B(6)={3}。
図4のパリティ検査行列では、“1”の数と“0”の数が等しいが、本発明の実施形態で用いるパリティ検査行列Hは、“1”の数は少なく、低密度のパリティ検査行列であり、これにより、計算量を低減できる。
復号語生成部16は、更新部7から出力される擬似対数尤度比γn(t)(=γ1(t)、γ2(t)、・・・、γN(t))にしたがって、次式(7)に従って、一次推定語(C1(t)、C2(t)、・・・、CN(t))を算出する。ここで、(C1(t)、C2(t)、・・・、CN(t))の表記は、Nビットの一次推定語の第1ビット(LSB:Least Significant Bit)がC1(t)であり、第2ビットがC2(t)であり、第Nビット(MSB)がCN(t)であることを表わす。
さらに、復号語生成部16は、次式(8)の演算に従って、一次推定語(C1(t)、C2(t)、・・・、CN(t))が符号語を構成しているかどうかを検査する。復号語生成部16は、次式(8)が成立する場合、つまりシンドロームが“0”となる場合には、更新部7の繰返し演算を終了させて、一次推定語(C1(t)、C2(t)、・・・、CN(t))のうちのKビットの情報ビット部分、すなわち、(C1(t)、C2(t)、・・・、CK(t))を復号語として復号化器5の外部に出力する。また、復号語生成部16は、ループの回数、つまり更新部7の演算の繰返し回数が所定値を超えたときにも、更新部7の繰返し演算を終了させて、一次推定語(C1(t)、C2(t)、・・・、CN(t))のうちのKビットの情報ビット部分、すなわち、(C1(t)、C2(t)、・・・、CK(t))を復号語として復号化器5の外部に出力する。
(C1(t)、C2(t)、・・・、CN(t))・Ht=0 … (8)
ただし、Htは、Hの転置を表わ。
さて、本発明の実施形態では、低密度であって、かつ2以上の列重みを有するパリティ検査行列Hを用いる。
図5は、列重みがXのパリティ検査行列の生成方法を説明するための図である。
図5を参照して、パリティ検査行列Hは、X個のブロック(H1、H2、・・・,HX)に分割される。行重みの数が6の場合に、まず、第1ブロック(H1)において、第1行目の第1列目〜第6列目に「1」が配置され、第2行目の第7列目〜第11列目に「1」が配置され、以下の行も同様の要領で配置される。そして、第1ブロック内の任意の列を乱数を用いて再配置し、これを適当な回数繰返すことによって、第1ブロック内の要素が決定される。
第2ブロック以降についても、上記を同じように乱数を用いて列の入れ替え処理を行なうことによって、ブロック内の要素が決定される。
図6は、更新部7の概略構成を表わす図である。
図6を参照して、更新部7は、対数尤度比λnをシリアルデータからパラレルデータに変換するS/P変換部8と、演算処理部11とを含む。演算処理部11は、パリティ検査行列の行処理を行なう行処理部10と、パリティ検査行列の列処理を行なう列処理部12とを含む。
S/P変換部8は、シリアルに入力される対数尤度比λnを受けて、パリティ検査行列の列数をNとしたときに、1単位がNビットのパラレルデータに変換して出力する。
行処理部10は、S/P変換部8から送られる対数尤度比λnと、列処理部12から繰返し演算の1ステップごとに送られる擬似事前値対数比Sn(t)とを用いて、式(3)に従って、擬似対数尤度比γn(t)を更新するとともに、式(1)に従って、外部値対数比αmn(t)を更新する。
列処理部12は、行処理部10から与えられる外部値対数比αmn(t)を用いて、式(2)に従って、擬似事前値対数比Sn(t)を更新する。
図7は、更新部7の詳細な構成を表わす図である。
図7を参照して、行処理部10は、第1ブロック行処理部23と、第2ブロック行処理部24と、第3ブロック行処理部25と、擬似対数尤度比記憶部22と、加算部21とを備える。
第1ブロック行処理部23は、第1行処理部27と、第2行処理部28とを含む。第2ブロック行処理部24は、第3行処理部29と、第4行処理部30とを含む。第3ブロック行処理部25は、第5行処理部31と、第6行処理部32とを含む。
第m行処理部は(m=1〜6)、擬似対数尤度比記憶部22からパリティ検査行列の第m行目の「1」が立つ列である複数個の擬似対数尤度比を読出す。第m行処理部は、第j列目についての外部値対数比を算出するために、読出した要素のうち、第j列目の要素を除いた集合を特定し、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定し、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比を更新する。
擬似対数尤度比記憶部22は、第tフェーズにおいて、擬似対数尤度比γn(t)を記憶する。第0フェーズにおいては、S/P変換部8から擬似対数尤度比記憶部22にN列分の対数尤度比λn(n=1、2、・・・N)が送られてくる。擬似対数尤度比記憶部22は、受け取ったN列分の対数尤度比λnを第0フェーズのN列分の擬似対数尤度比γn(t)として記憶する。
図8(a)は、第0フェーズで、擬似対数尤度比記憶部22に記憶されるデータを表わす図である。
図8(a)を参照して、第0フェーズでは、第0フェーズの擬似対数尤度比γn(0)(n=1、2、・・・N)として、S/P変換部8から出力されたN列分の対数尤度比λn(n=1、2、・・・N)が記憶される。
図8(b)は、第1フェーズで、擬似対数尤度比記憶部22に記憶されるデータを表わす図である。
図8(b)を参照して、第1フェーズでは、第1フェーズの擬似対数尤度比γn(1)(n=1、2、・・・N)として、第0フェーズの擬似対数尤度比γn(0)と第1フェーズの擬似事前値対数比Sn(1)との和が記憶される。
図8(c)は、第2フェーズで、擬似対数尤度比記憶部22に記憶されるデータを表わす図である。
図8(c)を参照して、第2フェーズでは、第2フェーズの擬似対数尤度比γn(2)(n=1、2、・・・N)として、第1フェーズの擬似対数尤度比γn(1)と第2フェーズの擬似事前値対数比Sn(2)との和が記憶される。
加算部21は、それぞれN個の列に対応してN個の加算器を有する。各加算器は、対応する列について、加算を行なう。たとえば、第i列目に対応する加算器は、列処理部12から出力される第tフェーズの擬似事前値対数比Si(t)と、擬似対数尤度比記憶部22に記憶されている第(t−1)フェーズの擬似対数尤度比γi(t)とを加算して、加算結果である第tフェーズの擬似事前値対数比γi(t)で、擬似対数尤度比γi(t-1)を更新する(つまり、上書きする)。
列処理部12は、加算部26を含む。
加算部26は、それぞれN個の加算器を有する。各加算器は、対応する列についての加算を行なう。たとえば、第i列目に対応する加算器は、第1ブロック行処理部23、第2ブロック行処理部24および第3ブロック行処理部25からそれぞれ出力される第tフェーズの外部値対数比αmi(t)の総和である擬似事前値対数比Si(t)を計算して、行処理部10の加算部21に出力する。
(具体例)
次に、図9のパリティ検査行列が用いられるときの更新部7の具体的な動作を説明する。
第0フェーズにおいて、S/P変換部8は、シリアルに入力される対数尤度比λ1〜λNを受けて、1単位がN個のパラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))に変換して、演算処理部11の擬似対数尤度比記憶部22に送り、擬似対数尤度比記憶部22は、パラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))を第0フェーズの擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))として記憶する。
第1フェーズにおいて、第1ブロック行処理部23、第2ブロック行処理部24および第3ブロック行処理部25の以下の処理が並行して行なわれる。
第1行処理部27は、擬似対数尤度比記憶部22からパリティ検査行列の第1行目の「1」が立つ列である第1列目、第3列目、第4列目、第5列目、第10列目および第12列目の擬似対数尤度比γ1(0)(=λ1)、γ3(0)(=λ3)、γ4(0)(=λ4)、γ5(0)(=λ5)、γ10(0)(=λ10)、γ12(0)(=λ12)を読出す。
第1行処理部27は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ3(0)、γ4(0)、γ5(0)、γ10(0)、γ12(0)}を特定する。第1行処理部27は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第1行処理部27は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α1,1(1)を出力する。第1行処理部28は、上記と同様にして、第3列目、第4列目、第5列目、第10列目および第12列目についての外部値対数比α1,3(1)、α1,4(1)、α1,5(1)、α1,10(1)、α1,12(1)を出力する。
第2行処理部28は、擬似対数尤度比記憶部22からパリティ検査行列の第2行目の「1」が立つ列である第2列目、第6列目、第7列目、第8列目、第9列目および第11列目の擬似対数尤度比γ2(0)(=λ2)、γ6(0)(=λ6)、γ7(0)(=λ7)、γ8(0)(=λ8)、γ9(0)(=λ9)、γ11(0)(=λ11)を読出す。
第2行処理部28は、第2列目についての外部値対数比を算出するために、読出した要素のうち、第2列目の要素を除いた集合{γ6(0)、γ7(0)、γ8(0)、γ9(0)、γ11(0)}を特定する。第2行処理部28は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第2行処理部28は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α2,2(1)を出力する。第2行処理部28は、上記と同様にして、第6列目、第7列目、第8列目、第9列目および第11列目についての外部値対数比α2,6(1)、α2,7(1)、α2,8(1)、α2,9(1)、α2,11(1)を出力する。
第3行処理部29は、擬似対数尤度比記憶部22からパリティ検査行列の第3行目の「1」が立つ列である第3列目、第5列目、第6列目、第7列目、第11列目および第12列目の擬似対数尤度比γ3(0)(=λ3)、γ5(0)(=λ5)、γ6(0)(=λ6)、γ7(0)(=λ7)、γ11(0)(=λ11)、γ12(0)(=λ12)を読出す。
第3行処理部29は、第3列目についての外部値対数比を算出するために、読出した要素のうち、第3列目の要素を除いた集合{γ5(0)、γ6(0)、γ7(0)、γ11(0)、γ12(0)}を特定する。第3行処理部29は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第3行処理部29は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α3,3(1)を出力する。第3行処理部29は、上記と同様にして、第5列目、第6列目、第7列目、第11列目および第12列目についての外部値対数比α3,5(1)、α3,6(1)、α3,7(1)、α3,11(1)、α3,12(1)を出力する。
第4行処理部30は、擬似対数尤度比記憶部22からパリティ検査行列の第4行目の「1」が立つ列である第1列目、第2列目、第4列目、第8列目、第9列目および第10列目の擬似対数尤度比γ1(0)(=λ1)、γ2(0)(=λ2)、γ4(0)(=λ4)、γ8(0)(=λ8)、γ9(0)(=λ9)、γ10(0)(=λ10)を読出す。
第4行処理部30は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ2(0)、γ4(0)、γ8(0)、γ9(0)、γ10(0)}を特定する。第4行処理部30は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第4行処理部30は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α4,1(1)を出力する。第4行処理部30は、上記と同様にして、第2列目、第4列目、第8列目、第9列目および第10列目についての外部値対数比α4,2(1)、α4,4(1)、α4,8(1)、α4,9(1)、α4,10(1)を出力する。
第5行処理部31は、擬似対数尤度比記憶部22からパリティ検査行列の第5行目の「1」が立つ列である第2列目、第3列目、第6列目、第8列目、第10列目および第12列目の擬似対数尤度比γ2(0)(=λ2)、γ3(0)(=λ3)、γ6(0)(=λ6)、γ8(0)(=λ8)、γ10(0)(=λ10)、γ12(0)(=λ12)を読出す。
第5行処理部31は、第2列目についての外部値対数比を算出するために、読出した要素のうち、第2列目の要素を除いた集合{γ3(0)、γ6(0)、γ8(0)、γ10(0)、γ12(0)}を特定する。第5行処理部31は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第5行処理部31は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α5,2(1)を出力する。第5行処理部31は、上記と同様にして、第3列目、第6列目、第8列目、第10列目および第12列目についての外部値対数比α5,3(0)、α5,6(0)、α5,8(0)、α5,10(0)、α5,12(0)を出力する。
第6行処理部32は、擬似対数尤度比記憶部22からパリティ検査行列の第6行目の「1」が立つ列である第1列目、第4列目、第5列目、第7列目、第9列目および第11列目の擬似対数尤度比γ1(0)(=λ1)、γ4(0)(=λ4)、γ5(0)(=λ5)、γ7(0)(=λ7)、γ9(0)(=λ9)、γ11(0)(=λ11)を読出す。
第6行処理部32は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ4(0)、γ5(0)、γ7(0)、γ9(0)、γ11(0)}を特定する。第6行処理部32は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第6行処理部32は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α6,1(1)を出力する。第6行処理部32は、上記と同様にして、第4列目、第5列目、第7列目、第9列目および第11列目についての外部値対数比α6,4(1)、α6,5(1)、α6,7(1)、α6,9(1)、α6,11(1)を出力する。
加算部26は、第1列目について、第1ブロック行処理部23から外部値対数比α1,1(1)を受け、第2ブロック行処理部24から外部値対数比α4,1(1)を受け、第3ブロック行処理部25から外部値対数比α6,1(1)を受けて、それらを加算して加算結果である擬似事前値対数比S1(1)(=α1,1(1)+α4,1(1)+α6,1(1))を加算部21へ出力する。加算部26は、上記と同様にして、第2列目〜第12列についての擬似事前値対数比S2(1)〜S12(1)を加算部21へ出力する。
加算部21は、第1列目について、加算部26から送られる擬似事前値対数比S1(1)と、擬似対数尤度比記憶部22に記憶されているの擬似対数尤度比γ1(0)とを加算して、加算結果である擬似対数尤度比γ1(1)で、擬似対数尤度比記憶部22内の擬似対数尤度比γ1(0)を更新する(つまり、上書きする)。加算部21は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γ2(1)〜γ12(1)を算出して、擬似対数尤度比γ2(1)〜γ12(1)で擬似対数尤度比記憶部22内の擬似対数尤度比γ2(0)〜γ12(0)を更新する(つまり、上書きする)。
第2フェーズにおいて、第1ブロック行処理部23、第2ブロック行処理部24および第3ブロック行処理部25の以下の処理が並行して行なわれる。
第1行処理部27は、擬似対数尤度比記憶部22から擬似対数尤度比γ1(1)、γ3(1)、γ4(1)、γ5(1)、γ10(1)、γ12(1)を読出す。第1行処理部27は、第1フェーズと同様にして、外部値対数比α1,1(2)、α1,3(2)、α1,4(2)、α1,5(2)、α1,10(2)、α1,12(2)を出力する。
第2行処理部28は、擬似対数尤度比記憶部22から擬似対数尤度比γ2(1)、γ6(1)、γ7(1)、γ8(1)、γ9(1)、γ11(1)を読出す。第2行処理部28は、第1フェーズと同様にして、外部値対数比α2,2(2)、α2,6(2)、α2,7(2)、α2,8(2)、α2,9(2)、α2,11(2)を出力する。
第3行処理部29は、擬似対数尤度比記憶部22から擬似対数尤度比γ3(1)、γ5(1)、γ6(1)、γ7(1)、γ11(1)、γ12(1)を読出す。第3行処理部29は、、第1フェーズと同様にして、外部値対数比α3,3(2)、α3,5(2)、α3,6(2)、α3,7(2)、α3,11(2)、α3,12(2)を出力する。
第4行処理部30は、擬似対数尤度比記憶部22から擬似対数尤度比γ1(1)、γ2(1)、γ4(1)、γ8(1)、γ9(1)、γ10(1)を読出す。第4行処理部30は、第1フェーズと同様にして、外部値対数比α4,1(2)、α4,2(2)、α4,4(2)、α4,8(2)、α4,9(2)、α4,10(2)を出力する。
第5行処理部31は、擬似対数尤度比記憶部22から擬似対数尤度比γ2(1)、γ3(1)、γ6(1)、γ8(1)、γ10(1)、γ12(1)を読出す。第5行処理部31は、第1フェーズと同様にして、外部値対数比α5,2(2)、α5,3(2)、α5,6(2)、α5,8(2)、α5,10(2)、α5,12(2)を出力する。
第6行処理部32は、擬似対数尤度比記憶部22から擬似対数尤度比γ1(1)、γ4(1)、γ5(1)、γ7(1)、γ9(1)、γ11(1)を読出す。第6行処理部32は、第1フェーズと同様にして、外部値対数比α6,1(2)、α6,4(2)、α6,5(2)、α6,7(2)、α6,9(2)、α6,11(2)を出力する。
加算部26は、第1フェーズと同様にして、第1列目について、第1ブロック行処理部23から外部値対数比α1,1(2)を受け、第2ブロック行処理部24から外部値対数比α4,1(2)を受け、第3ブロック行処理部25から外部値対数比α6,1(2)を受けて、それらを加算して加算結果である擬似事前値対数比S1(2)(=α1,1(2)+α4,1(2)+α6,1(2))を加算部21へ出力する。加算部26は、上記と同様にして、第2列目〜第12列についての擬似事前値対数比S2(2)〜S12(2)を加算部21へ出力する。
加算部21は、第1列目について、加算部26から送られる擬似事前値対数比S1(2)と、擬似対数尤度比記憶部22に記憶されているの擬似対数尤度比γ1(1)とを加算して、加算結果である擬似対数尤度比γ1(2)で、擬似対数尤度比記憶部22内の擬似対数尤度比γ1(1)を更新する(つまり、上書きする)。加算部21は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γ2(2)〜γ12(2)を算出して、擬似対数尤度比γ2(2)〜γ12(2)で擬似対数尤度比記憶部22内の擬似対数尤度比γ2(1)〜γ12(1)を更新する(つまり、上書きする)。
第3フェーズ以降についても、同様の処理が繰返される。
(従来の復号装置の行および列処理部)
本発明の実施形態の更新部との比較のために、非特許文献5に記載されているUMP-APPの復号装置の更新部について説明する。
図10は、従来の復号装置の更新部37の詳細な構成を表わす図である。
図10を参照して、行処理部30は、本発明の実施形態と同様の第1ブロック行処理部23と、第2ブロック行処理部24と、第3ブロック行処理部25とを含む。
また、従来の行処理部30は、本発明の実施形態の擬似対数尤度比記憶部22とは異なる対数尤度比記憶部33を備える。
図11は、対数尤度比記憶部33に記憶されているデータを表わす図である。
図11を参照して、対数尤度比記憶部33は、全フェーズにおいて、対数尤度比λnを記憶する。つまり、第0フェーズにおいて、S/P変換部8から擬似対数尤度比記憶部22にN列分の対数尤度比λn(n=1、2、・・・N)が送られてくる。擬似対数尤度比記憶部22は、受け取ったN列分の対数尤度比λnを全フェーズにわたって記憶し続ける。
再び、図10を参照して、本発明の実施形態の加算部24とは異なる加算部34を含む。
加算部34は、それぞれN個の列に対応してN個の加算器を有する。各加算器は、対応する列について、加算を行なう。たとえば、第i列目に対応する加算器は、列処理部12から出力される第tフェーズの擬似事前値対数比Si(t)と、対数尤度比記憶部33に記憶されている対数尤度比λiとを加算して、加算結果(Si(t)+λi)を出力する。
列処理部32は、本発明の実施形態と同様の加算部26を含む。また、従来の列処理部32は、擬似事前値対数比記憶部35を含む。
図12(a)は、第0フェーズで、擬似事前値対数比記憶部35に記憶されるデータを表わす図である。
図12(a)を参照して、第0フェーズでは、加算部26から出力される第0フェーズの擬似事前値対数比Sn(0)(n=1、2、・・・N)が記憶される。
図12(b)は、第1フェーズで、擬似事前値対数比記憶部35に記憶されるデータを表わす図である。
図12(b)を参照して、第1フェーズでは、加算部26から出力される第1フェーズの擬似事前値対数比Sn(1)(n=1、2、・・・N)が記憶される。
図7と図10と比較するとわかるように、非特許文献5の復号装置では、N列分の対数尤度比λnを記憶する対数尤度比記憶部33と、N列分の擬似事前値対数比Sn(t)を記憶する擬似事前値対数比記憶部35を必要とするのに対して、本発明の実施形態の復号装置では、N列分の擬似対数尤度比γn(t)を記憶する擬似対数尤度比記憶部22のみでよいので、メモリ容量を低減することができる。
また、本発明の実施形態の復号装置の擬似対数尤度比記憶部22には、初期値として対数尤度比λnが記憶されるので、更新計算の初期値として適切な値を与えることができる。
[第1の実施形態の変形例1]
本発明の実施形態では、加算部21と加算部26とを備え、加算部21は、列処理部12から出力される第tフェーズの擬似事前値対数比と、擬似対数尤度比記憶部22に記憶されている第(t−1)フェーズの擬似対数尤度比γi(t)とを加算して、加算結果である第tフェーズの擬似事前値対数比で、第(t−1)フェーズの擬似対数尤度比γi(t-1)を更新する。一方、加算部26は、第1ブロック行処理部23、第2ブロック行処理部24および第3ブロック行処理部25から出力される3個の第tフェーズの外部値対数比の総和である擬似事前値対数比Si(t)を計算して、加算部21へ出力する。
これに対して、加算部21と加算部25を1個の加算部にまとめてもよい。すなわち1個の加算部が、第1ブロック行処理部23、第2ブロック行処理部24および第3ブロック行処理部25から出力される第tフェーズの3個の外部値対数比と、擬似対数尤度比記憶部22に記憶されている第(t−1)フェーズの擬似対数尤度比とを加算して、加算結果である第tフェーズの擬似事前値対数比で、擬似対数尤度比記憶部22に記憶されている第(t−1)フェーズの擬似対数尤度比を更新するものとしてもよい。
このように本変形例では、図10の従来の復号装置に対して、メモリ容量に加えてさらに加算器の数も低減することができる。
[第2の実施形態]
図13は、第2の実施形態の更新部17を表わす図である。
図13を参照して、更新部17は、S/P変換部8と、カスケード接続されたn個の演算処理部11−1〜11−nを備える。
第1段の演算処理部11−1は、第1の実施形態の演算処理部11と同様に、加算部21−1と、擬似対数尤度比記憶部22−1と、第1ブロック行処理部23−1と、第2ブロック行処理部24−1と、第3ブロック行処理部25−2と、加算部26−1とを備える。
他の段の演算処理部11−2〜11−nも、第1段の演算処理部11−1と同様である。
たたし、第2の実施形態では、第tフェーズにおいて、S/P変換部8は、第kグループのシリアルのN個の対数尤度比λ1〜λNをパラレルデータ(λ1(t)、λ2(t)、・・・、λN(t))kに変換して、これをN個の第1段の演算処理部11の擬似対数尤度比記憶部22−1に送る。
また、加算部21−1は、加算結果を、次段の演算処理部11−2内の擬似対数尤度比記憶部22−2に送る。
第n段の演算処理部11−nの加算部21−nが、加算結果であるN列分の擬似対数尤度比を復号語生成部16に出力する。
復号語生成部16は、受け取った擬似対数尤度比から式(7)に従って、一次推定語(C1(t)、C2(t)、・・・、CN(t))を生成し、一次推定語(C1(t)、C2(t)、・・・、CN(t))のうちのKビットの情報ビット部分、すなわち、(C1(t)、C2(t)、・・・、CK(t))を復号語として復号化器5の外部に出力する。
(具体例)
次に、この第2の実施形態の更新部17の動作を具体的に説明する。
第0フェーズにおいて、以下の処理が行われる。
S/P変換部8は、第0フェーズでシリアルに入力される第1グループの対数尤度比λ1〜λNを受けて、1単位がN個のパラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))1に変換して、演算処理部11−1の擬似対数尤度比記憶部22−1に送り、擬似対数尤度比記憶部22−1は、パラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))1を第0回更新の第1グループのN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))1として記憶する。
第1フェーズにおいて、以下の処理が行われる。
演算処理部11−1の第1ブロック行処理部23−1、第2ブロック行処理部24−1および第3ブロック行処理部25−1は、擬似対数尤度比記憶部22−1内の第1グループのN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))1に基づいて行処理を行なって外部値対数比αmn(1)を算出し、加算部26−1は、第1回更新の第1グループのN列分の擬似事前値対数比(S1(1)、S2(1)、・・・、SN(1))1を加算部21−1に出力する。演算処理部11−1の加算部21−1は、加算部26−1から送られる第1グループのN列分の擬似事前値対数比(S1(1)、S2(1)、・・・、SN(1))1と、擬似対数尤度比記憶部22−1に記憶されているN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))1とを加算して、加算結果を演算処理部11−2の擬似対数尤度比記憶部22−2に送る。擬似対数尤度比記憶部22−2は、加算結果を第1回更新の第1グループの擬似対数尤度比(γ1(1)、γ2(1)、・・・、γN(1))1として記憶する。
S/P変換部8は、第1フェーズでシリアルに入力される第2グループの対数尤度比λ1〜λNを受けて、1単位がNビットのパラレルデータ(λ1(1)、λ2(1)、・・・、λN(1))2に変換して演算処理部11−1の擬似対数尤度比記憶部22−1に送り、擬似対数尤度比記憶部22−1は、パラレルデータ(λ1(1)、λ2(1)、・・・、λN(1))2を第2グループの第0回更新のN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))2として、(γ1(0)、γ2(0)、・・・、γN(0))1に代えて記憶する。
第2フェーズにおいて、以下の処理が行われる。
演算処理部11−2の第1ブロック行処理部23−2、第2ブロック行処理部24−2および第3ブロック行処理部25−2は、擬似対数尤度比記憶部22−2内の第1グループの第1回更新のN列分の擬似対数尤度比(γ1(1)、γ2(1)、・・・、γN(1))1に基づいて行処理を行なって外部値対数比αmn(2)を算出し、加算部26−2は、第1グループの第2回更新のN列分の擬似事前値対数比(S1(2)、S2(2)、・・・、SN(2))1を加算部21−2に出力する。加算部21−2は、加算部26−2から送られる第1グループの第2回更新のN列分の擬似事前値対数比(S1(2)、S2(2)、・・・、SN(2))1と、擬似対数尤度比記憶部22−2に記憶されている第1グループの第1回更新のN列分の擬似対数尤度比(γ1(1)、γ2(1)、・・・、γN(1))1とを加算して、加算結果を演算処理部11cの擬似対数尤度比記憶部22cに送る。擬似対数尤度比記憶部22cは、加算結果を第1グループの第2回更新の擬似対数尤度比(γ1(2)、γ2(2)、・・・、γN(2))1として記憶する。
演算処理部11−1の第1ブロック行処理部23−1、第2ブロック行処理部24−1および第3ブロック行処理部25−1は、擬似対数尤度比記憶部22−1内の第2グループの第0回更新のN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))2に基づいて行処理を行なって外部値対数比αmn(2)を算出し、加算部26−1は、第2グループの第1回更新のN列分の擬似事前値対数比(S1(1)、S2(1)、・・・、SN(1))2を加算部21−1に出力する。加算部21−1は、加算部26−1から送られる第2グループの第1回更新のN列分の擬似事前値対数比(S1(1)、S2(1)、・・・、SN(1))2と、擬似対数尤度比記憶部22−1に記憶されている第2グループの第0回更新のN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))2とを加算して、加算結果を演算処理部11−2の擬似対数尤度比記憶部22−2に送る。擬似対数尤度比記憶部22−2は、加算結果を第2グループの第1回更新の擬似対数尤度比(γ1(1)、γ2(1)、・・・、γN(1))2として、(γ1(1)、γ2(1)、・・・、γN(1))1に代えて記憶する。
S/P変換部8は、第1フェーズでシリアルに入力される第3グループの対数尤度比λ1〜λNを受けて、1単位がNビットのパラレルデータ(λ1(2)、λ2(2)、・・・、λN(2))3に変換して演算処理部11−1の擬似対数尤度比記憶部22−1に送り、擬似対数尤度比記憶部22−1は、パラレルデータ(λ1(2)、λ2(2)、・・・、λN(2))3を第3グループの第0回更新のN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))3として、(γ1(0)、γ2(0)、・・・、γN(0))2に代えて記憶する。
第nフェーズにおいて、以下の処理が行われる。
演算処理部11−nの第1ブロック行処理部23−n、第2ブロック行処理部24−nおよび第3ブロック行処理部25−nは、擬似対数尤度比記憶部22−n内の第1グループの第(n−1)回更新のN列分の擬似対数尤度比(γ1(n-1)、γ2(n-1)、・・・、γN(n-1))1に基づいて行処理を行なって外部値対数比αmn(n)を算出し、加算部26−nは、第1グループの第n回更新のN列分の擬似事前値対数比(S1(n)、S2(n)、・・・、SN(n))1を加算部21−nに出力する。加算部21−nは、加算部26−nから送られる第1グループの第n回更新のN列分の擬似事前値対数比(S1(n)、S2(n)、・・・、SN(n))1と、擬似対数尤度比記憶部22−nに記憶されている第1グループの第(n−1)回更新のN列分の擬似対数尤度比(γ1(n-1)、γ2(n-1)、・・・、γN(n-1))1とを加算して、加算結果を第1グループの第n回更新の擬似対数尤度比(γ1(n)、γ2(n)、・・・、γN(n))1として復号語決定部16に出力する。
演算処理部11−1〜演算処理部11−(n-1)についても、それぞれ、同様の処理を行なって、第K(2≦K≦n)グループの第(n+1−K)回更新の擬似対数尤度比γ1(n+1-K)、γ2(n+1-K)、・・・、γN(n+1-K))Kが演算処理部11−(n+2-K)の擬似対数尤度比記憶部22−(n+2-K)に記憶される。
S/P変換部8は、第nフェーズでシリアルに入力される第(n+1)グループの対数尤度比λ1〜λNを受けて、1単位がNビットのパラレルデータ(λ1(n)、λ2(n)、・・・、λN(n))n+1に変換して演算処理部11−1の擬似対数尤度比記憶部22−1に送り、擬似対数尤度比記憶部22−1は、パラレルデータ(λ1(n)、λ2(n)、・・・、λN(n))n+1を第(n+1)グループの第0フェーズのN列分の擬似対数尤度比(γ1(0)、γ2(0)、・・・、γN(0))n+1として、(γ1(0)、γ2(0)、・・・、γN(0))nに代えて記憶する。
以下、上記の処理が繰返される。
以上のように、第2の実施形態の復号装置によれば、パイプライン処理によって、高速に復号ができる。具体的には、更新部が、100MHzで動作し、列数Nが1000とする。シンドロームが“0”となるまでに、更新部7は10回の繰返し演算を行なうとする。本発明の実施形態のようなパイプライン処理を行わなかった場合に、100×1000/10=10Gbpsしか実現できず、高速性が要求されている現状においては十分とはいえない。これに対して、本発明の実施形態のようにパイプライン処理を行わった場合には、100×1000=100Gbpsを実現でき、実用化において画期的な改善が図れる。
[第3の実施形態]
本発明の実施形態は、min-sum復号法をベースとした復号装置である。
本発明の実施形態の更新部は、次式(9)、(10)および(11)に従って演算処理を行ない、パリティ検査行列の行の各要素についての処理(行処理)および列についての各要素についての処理(列処理)を繰返し実行する。
ここで、上式(9)および(10)それぞれにおいて、n′∈A(m)\nおよびm′∈B(n)\mは、自身を除く要素を意味する。外部値対数比αmnについては、n′≠nであり、事前値対数比βmnについては、m′≠mである。
図14は、第3の実施形態の更新部77の構成を表わす図である。
図14を参照して、更新部77は、S/P変換部8と、演算処理部51を含む。演算処理部51は、行処理部50と、列処理部52とを含む。
行処理部50は、S/P変換部8から送られる対数尤度比λnと、列処理部52から繰返し演算の1ステップごとに送られる事前値対数比βmn(t)とを用いて、式(11)に従って、擬似対数尤度比γmn(t)を更新するとともに、式(9)に従って、外部値対数比αmn(t)を更新する。
列処理部52は、行処理部50から与えられる外部値対数比αmn(t)を用いて、式(10)に従って、事前値対数比βmn(t)を更新する。
行処理部50は、第1ブロック行処理部53と、第2ブロック行処理部54と、第3ブロック行処理部55と、第1ブロック行処理部53に対応して配置される加算部68と、第2ブロック行処理部54に対応して配置される加算部69と、第3ブロック行処理部55に対応して配置される加算部70とを備える。
第1ブロック行処理部53は、パリティ検査行列Hの第1ブロックに対応するN列分の擬似対数尤度比γの最新値を記憶する第1ブロック擬似対数尤度比記憶部56と、第1行処理部57と、第2行処理部58とを含む。
第2ブロック行処理部54は、パリティ検査行列Hの第2ブロックに対応するN列分の擬似対数尤度比γの最新値を記憶する第2ブロック擬似対数尤度比記憶部59と、第3行処理部60と、第4行処理部61とを含む。
第3ブロック行処理部55は、パリティ検査行列Hの第3ブロックに対応するN列分の擬似対数尤度比γの最新値を記憶する第3ブロック擬似対数尤度比記憶部62と、第5行処理部63と、第6行処理部64とを含む。
列処理部52は、第1ブロック行処理部53に対応して配置される加算部65と、第2ブロック行処理部54に対応して配置される加算部66と、第3ブロック行処理部55に対応して配置される加算部67とを含む。
加算部65〜70は、それぞれN個の列に対応してN個の加算器を有し、各加算器は、対応する列についての加算を行なう。
次に、図9のパリティ検査行列が用いられる場合を例にして、第1ブロック擬似対数尤度比記憶部56、第2ブロック擬似対数尤度比記憶部59および第3ブロック擬似対数尤度比記憶部62にそれぞれ記憶されるデータについて説明する。
図15(a)は、第0フェーズで、第1ブロック擬似対数尤度比記憶部56に記憶されるデータを表わす図である。
図15(a)を参照して、第0フェーズでは、第0フェーズの擬似対数尤度比γmn(0)(n=1、2、・・・N)として、S/P変換部8から出力されたN列分の対数尤度比λn(n=1、2、・・・N)が記憶される。ただし、mは1または2である。たとえば、パリティ検査行列の第1ブロック内で第1列目で「1」が立つのは第1行目であるから、第1ブロック擬似対数尤度比記憶部56の第1列目にはγ1,1(0)が記憶される。また、パリティ検査行列の第1ブロック内で第2列目で「1」が立つのは第2行目であるから、第1ブロック擬似対数尤度比記憶部56の第2列目にはγ2,2(0)が記憶される。
図15(b)は、第0フェーズで、第2ブロック擬似対数尤度比記憶部59に記憶されるデータを表わす図である。
図15(b)を参照して、第0フェーズでは、第0フェーズの擬似対数尤度比γmn(0)(n=1、2、・・・N)として、S/P変換部8から出力されたN列分の対数尤度比λn(n=1、2、・・・N)が記憶される。ただし、mは3または4である。たとえば、パリティ検査行列の第2ブロック内で第1列目で「1」が立つのは第4行目であるから、第2ブロック擬似対数尤度比記憶部59の第1列目にはγ4,1(0)が記憶される。また、パリティ検査行列の第2ブロック内で第2列目で「1」が立つのは第4行目であるから、第2ブロック擬似対数尤度比記憶部59の第2列目にはγ4,2(0)が記憶される。
図15(c)は、第0フェーズで、第3ブロック擬似対数尤度比記憶部62に記憶されるデータを表わす図である。
図15(c)を参照して、第0フェーズでは、第0フェーズの擬似対数尤度比γmn(0)(n=1、2、・・・N)として、S/P変換部8から出力されたN列分の対数尤度比λn(n=1、2、・・・N)が記憶される。ただし、mは5または6である。たとえば、パリティ検査行列の第3ブロック内で第1列目で「1」が立つのは第6行目であるから、第3ブロック擬似対数尤度比記憶部62の第1列目にはγ6,1(0)が記憶される。また、パリティ検査行列の第3ブロック内で第2列目で「1」が立つのは第5行目であるから、第3ブロック擬似対数尤度比記憶部62の第2列目にはγ5,2(0)が記憶される。
図16(a)は、第1フェーズで、第1ブロック擬似対数尤度比記憶部56に記憶されるデータを表わす図である。
図16(a)を参照して、第1フェーズでは、第1フェーズの擬似対数尤度比γmn(1)(n=1、2、・・・N)として、第0フェーズの擬似対数尤度比γmn(0)と第1フェーズの事前値対数比βmn(1)との和が記憶される。ただし、mは1または2である。
図16(b)は、第1フェーズで、第2ブロック擬似対数尤度比記憶部59に記憶されるデータを表わす図である。
図16(b)を参照して、第1フェーズでは、第1フェーズの擬似対数尤度比γmn(1)(n=1、2、・・・N)として、第0フェーズの擬似対数尤度比γmn(0)と第1フェーズの事前値対数比βmn(1)との和が記憶される。ただし、mは3または4である。
図16(c)は、第1フェーズで、第3ブロック擬似対数尤度比記憶部62に記憶されるデータを表わす図である。
図16(c)を参照して、第1フェーズでは、第1フェーズの擬似対数尤度比γmn(1)(n=1、2、・・・N)として、第0フェーズの擬似対数尤度比γmn(0)と第1フェーズの事前値対数比βmn(1)との和が記憶される。ただし、mは5または6である。
図17(a)は、第2フェーズで、第1ブロック擬似対数尤度比記憶部56に記憶されるデータを表わす図である。
図17(a)を参照して、第2フェーズでは、第2フェーズの擬似対数尤度比γmn(2)(n=1、2、・・・N)として、第1フェーズの擬似対数尤度比γmn(1)と第2フェーズの事前値対数比βmn(2)との和が記憶される。ただし、mは1または2である。
図17(b)は、第2フェーズで、第2ブロック擬似対数尤度比記憶部59に記憶されるデータを表わす図である。
図17(b)を参照して、第2フェーズでは、第2フェーズの擬似対数尤度比γmn(2)(n=1、2、・・・N)として、第1フェーズの擬似対数尤度比γmn(1)と第2フェーズの事前値対数比βmn(2)との和が記憶される。ただし、mは3または4である。
図17(c)は、第2フェーズで、第3ブロック擬似対数尤度比記憶部62に記憶されるデータを表わす図である。
図17(c)を参照して、第2フェーズでは、第2フェーズの擬似対数尤度比γmn(2)(n=1、2、・・・N)として、第1フェーズの擬似対数尤度比γmn(1)と第2フェーズの事前値対数比βmn(2)との和が記憶される。ただし、mは5または6である。
(具体例)
次に、図9のパリティ検査行列が用いられるときの更新部77の具体的な動作を説明する。
第0フェーズにおいて、S/P変換部8は、シリアルに入力される対数尤度比λ1〜λNを受けて、1単位がN個のパラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))に変換して、演算処理部51の第1ブロック擬似対数尤度比記憶部56、第2ブロック擬似対数尤度比記憶部59、および第3ブロック擬似対数尤度比記憶部62に送る。
第1ブロック擬似対数尤度比記憶部56は、パラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))を第0フェーズの擬似対数尤度比(γm1(0)、γm2(0)、・・・、γmN(0))として記憶する。ただし、mは0または1である。
第2ブロック擬似対数尤度比記憶部59は、パラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))を第0フェーズの擬似対数尤度比(γm1(0)、γm2(0)、・・・、γmN(0))として記憶する。ただし、mは3または4である。
第3ブロック擬似対数尤度比記憶部62は、パラレルデータ(λ1(0)、λ2(0)、・・・、λN(0))を第0フェーズの擬似対数尤度比(γm1(0)、γm2(0)、・・・、γmN(0))として記憶する。ただし、mは5または6である。
第1フェーズにおいて、第1ブロック行処理部53、第2ブロック行処理部54および第3ブロック行処理部55の以下の処理が並行して行なわれる。
第1行処理部57は、第1ブロック擬似対数尤度比記憶部56からパリティ検査行列の第1行目の「1」が立つ列である第1列目、第3列目、第4列目、第5列目、第10列目および第12列目の擬似対数尤度比γ1,1(0)(=λ1)、γ1,3(0)(=λ3)、γ1,4(0)(=λ4)、γ1,5(0)(=λ5)、γ1,10(0)(=λ10)、γ1,12(0)(=λ12)を読出す。
第1行処理部57は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ1,3(0)、γ1,4(0)、γ1,5(0)、γ1,10(0)、γ1,12(0)}を特定する。第1行処理部57は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第1行処理部57は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α1,1(1)を出力する。第1行処理部28は、上記と同様にして、第3列目、第4列目、第5列目、第10列目および第12列目についての外部値対数比α1,3(1)、α1,4(1)、α1,5(1)、α1,10(1)、α1,12(1)を出力する。
第2行処理58は、第1ブロック擬似対数尤度比記憶部56からパリティ検査行列の第2行目の「1」が立つ列である第2列目、第6列目、第7列目、第8列目、第9列目および第11列目の擬似対数尤度比γ2,2(0)(=λ2)、γ2,6(0)(=λ6)、γ2,7(0)(=λ7)、γ2,8(0)(=λ8)、γ2,9(0)(=λ9)、γ2,11(0)(=λ11)を読出す。
第2行処理部58は、第2列目についての外部値対数比を算出するために、読出した要素のうち、第2列目の要素を除いた集合{γ2,6(0)、γ2,7(0)、γ2,8(0)、γ2,9(0)、γ2,11(0)}を特定する。第2行処理部58は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第2行処理部58は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α2,2(1)を出力する。第2行処理部58は、上記と同様にして、第6列目、第7列目、第8列目、第9列目および第11列目についての外部値対数比α2,6(1)、α2,7(1)、α2,8(1)、α2,9(1)、α2,11(1)を出力する。
第3行処理部60は、第2ブロック擬似対数尤度比記憶部59からパリティ検査行列の第3行目の「1」が立つ列である第3列目、第5列目、第6列目、第7列目、第11列目および第12列目の擬似対数尤度比γ3,3(0)(=λ3)、γ3,5(0)(=λ5)、γ3,6(0)(=λ6)、γ3,7(0)(=λ7)、γ3,11(0)(=λ11)、γ2,12(0)(=λ12)を読出す。
第3行処理部60は、第3列目についての外部値対数比を算出するために、読出した要素のうち、第3列目の要素を除いた集合{γ3,5(0)、γ3,6(0)、γ3,7(0)、γ3,11(0)、γ3,12(0)}を特定する。第3行処理部60は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第3行処理部60は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α3,3(1)を出力する。第3行処理部60は、上記と同様にして、第5列目、第6列目、第7列目、第11列目および第12列目についての外部値対数比α3,5(1)、α3,6(1)、α3,7(1)、α3,11(1)、α3,12(1)を出力する。
第4行処理部61は、第2ブロック擬似対数尤度比記憶部59からパリティ検査行列の第4行目の「1」が立つ列である第1列目、第2列目、第4列目、第8列目、第9列目および第10列目の擬似対数尤度比γ4,1(0)(=λ1)、γ4,2(0)(=λ2)、γ4,4(0)(=λ4)、γ4,8(0)(=λ8)、γ4,9(0)(=λ9)、γ4,10(0)(=λ10)を読出す。
第4行処理部61は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ2(0)、γ4(0)、γ8(0)、γ9(0)、γ10(0)}を特定する。第4行処理部61は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第4行処理部61は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α4,1(1)を出力する。第4行処理部30は、上記と同様にして、第2列目、第4列目、第8列目、第9列目および第10列目についての外部値対数比α4,2(1)、α4,4(1)、α4,8(1)、α4,9(1)、α4,10(1)を出力する。
第5行処理部63は、第3ブロック擬似対数尤度比記憶部62からパリティ検査行列の第5行目の「1」が立つ列である第2列目、第3列目、第6列目、第8列目、第10列目および第12列目の擬似対数尤度比γ5,2(0)(=λ2)、γ5,3(0)(=λ3)、γ5,6(0)(=λ6)、γ5,8(0)(=λ8)、γ5,10(0)(=λ10)、γ5,12(0)(=λ12)を読出す。
第5行処理部63は、第2列目についての外部値対数比を算出するために、読出した要素のうち、第2列目の要素を除いた集合{γ5,3(0)、γ5,6(0)、γ5,8(0)、γ5,10(0)、γ5,12(0)}を特定する。第5行処理部63は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第5行処理部63は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α5,2(1)を出力する。第5行処理部63は、上記と同様にして、第3列目、第6列目、第8列目、第10列目および第12列目についての外部値対数比α5,3(0)、α5,6(0)、α5,8(0)、α5,10(0)、α5,12(0)を出力する。
第6行処理部64は、第3ブロック擬似対数尤度比記憶部62からパリティ検査行列の第6行目の「1」が立つ列である第1列目、第4列目、第5列目、第7列目、第9列目および第11列目の擬似対数尤度比γ6,1(0)(=λ1)、γ6,4(0)(=λ4)、γ6,5(0)(=λ5)、γ6,7(0)(=λ7)、γ6,9(0)(=λ9)、γ6,11(0)(=λ11)を読出す。
第6行処理部64は、第1列目についての外部値対数比を算出するために、読出した要素のうち、第1列目の要素を除いた集合{γ6,4(0)、γ6,5(0)、γ6,7(0)、γ6,9(0)、γ6,11(0)}を特定する。第6行処理部64は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第6行処理部64は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けて、外部値対数比α6,1(1)を出力する。第6行処理部64は、上記と同様にして、第4列目、第5列目、第7列目、第9列目および第11列目についての外部値対数比α6,4(1)、α6,5(1)、α6,7(1)、α6,9(1)、α6,11(1)を出力する。
加算部65は、第1列目について、第2ブロック行処理部54から外部値対数比α4,1(1)を受け、第3ブロック行処理部55から外部値対数比α6,1(1)を受けて、それらを加算して加算結果である事前値対数比β1,1(1)(=α4,1(1)+α6,1(1))を加算部68へ出力する。加算部65は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(1)〜βm12(1)を加算部68へ出力する。ただし、mは1または2である。
加算部66は、第1列目について、第1ブロック行処理部53から外部値対数比α1,1(1)を受け、第3ブロック行処理部55から外部値対数比α6,1(1)を受けて、それらを加算して加算結果である事前値対数比β4,1(1)(α1,1(1)+α6,1(1))を加算部69へ出力する。加算部66は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(1)〜βm12(1)を加算部69へ出力する。ただし、mは3または4である。
加算部67は、第1列目について、第1ブロック行処理部53から外部値対数比α1,1(1)を受け、第3ブロック行処理部55から外部値対数比α6,1(1)を受けて、それらを加算して加算結果である事前値対数比β6,1(1)(=α1,1(1)+α4,1(1))を加算部70へ出力する。加算部70は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(1)〜βm12(1)を加算部70へ出力する。ただし、mは5または6である。
加算部68は、第1列目について、加算部65から送られる事前値対数比β1,1(1)と、第1ブロック擬似対数尤度比記憶部56に記憶されている擬似対数尤度比γ1,1(0)とを加算して、加算結果である擬似対数尤度比γ1,1(1)で、第1ブロック擬似対数尤度比記憶部56内の擬似対数尤度比γ1,1(0)を更新する(つまり、上書きする)。加算部68は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(1)〜γm12(1)(ただし、mは1または2である)を算出して、擬似対数尤度比γm2(1)〜γm12(1)で第1ブロック擬似対数尤度比記憶部56内の擬似対数尤度比γm2(0)〜γm12(0)を更新する(つまり、上書きする)。
加算部69は、第1列目について、加算部66から送られる事前値対数比β4,1(1)と、第2ブロック擬似対数尤度比記憶部59に記憶されている擬似対数尤度比γ4,1(0)とを加算して、加算結果である擬似対数尤度比γ4,1(1)で、第2ブロック擬似対数尤度比記憶部59内の擬似対数尤度比γ4,1(0)を更新する(つまり、上書きする)。加算部69は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(1)〜γm12(1)(ただし、mは3または4である)を算出して、擬似対数尤度比γm2(1)〜γm12(1)で第2ブロック擬似対数尤度比記憶部59内の擬似対数尤度比γm2(0)〜γm12(0)を更新する(つまり、上書きする)。
加算部70は、第1列目について、加算部67から送られる事前値対数比β6,1(1)と、第3ブロック擬似対数尤度比記憶部62に記憶されている擬似対数尤度比γ6,1(0)とを加算して、加算結果である擬似対数尤度比γ6,1(1)で、第3ブロック擬似対数尤度比記憶部62内の擬似対数尤度比γ6,1(0)を更新する(つまり、上書きする)。加算部70は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(1)〜γm12(1)(ただし、mは5または6である)を算出して、擬似対数尤度比γm2(1)〜γm12(1)で第3ブロック擬似対数尤度比記憶部62内の擬似対数尤度比γm2(0)〜γm12(0)を更新する(つまり、上書きする)。
第2フェーズにおいて、第1ブロック行処理部53、第2ブロック行処理部54および第3ブロック行処理部55の以下の処理が並行して行なわれる。
第1行処理部57は、第1ブロック擬似対数尤度比記憶部56から擬似対数尤度比γ1,1(1)、γ1,3(1)、γ1,4(1)、γ1,5(1)、γ1,10(1)、γ1,12(1)を読出す。第1行処理部57は、第1フェーズと同様にして、外部値対数比α1,1(2)、α1,3(2)、α1,4(2)、α1,5(2)、α1,10(2)、α1,12(2)を出力する。
第2行処理部58は、第1ブロック擬似対数尤度比記憶部56から擬似対数尤度比γ2,2(1)、γ2,6(1)、γ2,7(1)、γ2,8(1)、γ2,9(1)、γ2,11(1)を読出す。第2行処理部58は、第1フェーズと同様にして、外部値対数比α2,2(2)、α2,6(2)、α2,7(2)、α2,8(2)、α2,9(2)、α2,11(2)を出力する。
第3行処理部60は、第2ブロック擬似対数尤度比記憶部59から擬似対数尤度比γ3,3(1)、γ3,5(1)、γ3,6(1)、γ3,7(1)、γ3,11(1)、γ3,12(1)を読出す。第3行処理部60は、、第1フェーズと同様にして、外部値対数比α3,3(2)、α3,5(2)、α3,6(2)、α3,7(2)、α3,11(2)、α3,12(2)を出力する。
第4行処理部61は、第2ブロック擬似対数尤度比記憶部59から擬似対数尤度比γ4,1(1)、γ4,2(1)、γ4,4(1)、γ4,8(1)、γ4,9(1)、γ4,10(1)を読出す。第4行処理部61は、第1フェーズと同様にして、外部値対数比α4,1(2)、α4,2(2)、α4,4(2)、α4,8(2)、α4,9(2)、α4,10(2)を出力する。
第5行処理部63は、第3ブロック擬似対数尤度比記憶部62から擬似対数尤度比γ5,2(1)、γ5,3(1)、γ5,6(1)、γ5,8(1)、γ5,10(1)、γ5,12(1)を読出す。第5行処理部63は、第1フェーズと同様にして、外部値対数比α5,2(2)、α5,3(2)、α5,6(2)、α5,8(2)、α5,10(2)、α5,12(2)を出力する。
第6行処理部64は、第3ブロック擬似対数尤度比記憶部62から擬似対数尤度比γ6,1(1)、γ6,4(1)、γ6,5(1)、γ6,7(1)、γ6,9(1)、γ6,11(1)を読出す。第6行処理部64は、第1フェーズと同様にして、外部値対数比α6,1(2)、α6,4(2)、α6,5(2)、α6,7(2)、α6,9(2)、α6,11(2)を出力する。
加算部65は、第1フェーズと同様にして。第1列目について、第2ブロック行処理部54から外部値対数比α4,1(2)を受け、第3ブロック行処理部55から外部値対数比α6,1(2)を受けて、それらを加算して加算結果である事前値対数比β1,1(2)(=α4,1(2)+α6,1(2))を加算部68へ出力する。加算部65は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(2)〜βm12(2)を加算部68へ出力する。ただし、mは1または2である。
加算部66は、第1フェーズと同様にして、第1列目について、第1ブロック行処理部53から外部値対数比α1,1(2)を受け、第3ブロック行処理部55から外部値対数比α6,1(2)を受けて、それらを加算して加算結果である事前値対数比β4,1(2)(α1,1(2)+α6,1(2))を加算部69へ出力する。加算部66は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(2)〜βm12(2)を加算部69へ出力する。ただし、mは3または4である。
加算部67は、第1フェーズと同様にして、第1列目について、第1ブロック行処理部53から外部値対数比α1,1(2)を受け、第3ブロック行処理部55から外部値対数比α6,1(2)を受けて、それらを加算して加算結果である事前値対数比β6,1(2)(=α1,1(2)+α4,1(2))を加算部70へ出力する。加算部70は、上記と同様にして、第2列目〜第12列についての事前値対数比βm2(2)〜βm12(2)を加算部70へ出力する。ただし、mは5または6である。
加算部68は、第1フェーズと同様にして、第1列目について、加算部65から送られる事前値対数比β1,1(2)と、第1ブロック擬似対数尤度比記憶部56に記憶されている擬似対数尤度比γ1,1(1)とを加算して、加算結果である擬似対数尤度比γ1,1(2)で、第1ブロック擬似対数尤度比記憶部56内の擬似対数尤度比γ1,1(1)を更新する(つまり、上書きする)。加算部68は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(2)〜γm12(2)(ただし、mは1または2である)を算出して、擬似対数尤度比γm2(2)〜γm12(2)で第1ブロック擬似対数尤度比記憶部56内の擬似対数尤度比γm2(1)〜γm12(1)を更新する(つまり、上書きする)。
加算部69は、第1フェーズと同様にして、第1列目について、加算部66から送られる事前値対数比β4,1(2)と、第2ブロック擬似対数尤度比記憶部59に記憶されている擬似対数尤度比γ4,1(1)とを加算して、加算結果である擬似対数尤度比γ4,1(2)で、第2ブロック擬似対数尤度比記憶部59内の擬似対数尤度比γ4,1(1)を更新する(つまり、上書きする)。加算部69は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(2)〜γm12(2)(ただし、mは3または4である)を算出して、擬似対数尤度比γm2(2)〜γm12(2)で第2ブロック擬似対数尤度比記憶部59内の擬似対数尤度比γm2(1)〜γm12(1)を更新する(つまり、上書きする)。
加算部70は、第1フェーズと同様にして、第1列目について、加算部67から送られる事前値対数比β6,1(2)と、第3ブロック擬似対数尤度比記憶部62に記憶されている擬似対数尤度比γ6,1(1)とを加算して、加算結果である擬似対数尤度比γ6,1(2)で、第3ブロック擬似対数尤度比記憶部62内の擬似対数尤度比γ6,1(1)を更新する(つまり、上書きする)。加算部70は、上記と同様にして、第2列目〜第12列についての擬似対数尤度比γm2(2)〜γm12(2)(ただし、mは5または6である)を算出して、擬似対数尤度比γm2(2)〜γm12(2)で第3ブロック擬似対数尤度比記憶部62内の擬似対数尤度比γm2(1)〜γm12(1)を更新する(つまり、上書きする)。
第3フェーズ以降についても、同様の処理が繰返される。
また、本発明の実施形態の復号語生成部は、第1ブロック行処理部53、第2ブロック行処理部54、および第3ブロック行処理部55から擬似対数尤度比γmn(t)を受けて、そのうち1個のブロック行処理部の擬似対数尤度比γmn(t)にしたがって、次式(12)に従って、一次推定語(C1(t)、C2(t)、・・・、CN(t))を算出し、これに基づいて、第1の実施形態と同様にして復号語を生成する。
以上のように、第3の実施形態の復号装置では、N列分の擬似対数尤度比γmn(t)を記憶する第1ブロック擬似対数尤度比記憶部56、第2ブロック擬似対数尤度比記憶部59、および第3ブロック擬似対数尤度比記憶部62のみを備えればよく、N列分の事前値対数比βmn(t)を記憶する記憶部が不要であるので、メモリ容量を低減することができる。
[第3の実施形態の変形例1]
本発明の実施形態においても、第1の実施形態の変形例1のように、次に示すように、2つの加算部を1つにまとめてもよい。
加算部65と加算部68を1個の加算部にまとめてよい。すなわち、1個の加算部が、第2ブロック行処理部54および第3ブロック行処理部55から出力される第tフェーズの2個の外部値対数比αmn(t)と、第1ブロック擬似対数尤度比記憶部56に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t-1)とを加算して、加算結果である第tフェーズの擬似事前値対数比γmn(t)で、第1ブロック擬似対数尤度比記憶部56に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t)を更新する。ただし、mは1または2である。
同様に、加算部66と加算部69を1個の加算部にまとめてよい。すなわち、1個の加算部が、第1ブロック行処理部53および第3ブロック行処理部55から出力される第tフェーズの2個の外部値対数比αmn(t)と、第2ブロック擬似対数尤度比記憶部59に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t-1)とを加算して、加算結果である第tフェーズの擬似事前値対数比γmn(t)で、第2ブロック擬似対数尤度比記憶部59に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t)を更新する。ただし、mは3または4である。
同様に、加算部67と加算部70を1個の加算部にまとめてよい。すなわち、1個の加算部が、第2ブロック行処理部54および第3ブロック行処理部55から出力される第tフェーズの2個の外部値対数比αmn(t)と、第3ブロック擬似対数尤度比記憶部62に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t-1)とを加算して、加算結果である第tフェーズの擬似事前値対数比γmn(t)で、第3ブロック擬似対数尤度比記憶部62に記憶されている第(t−1)フェーズの擬似対数尤度比γmn(t)を更新する。ただし、mは5または6である。
[第3の実施形態の変形例2]
本発明の実施形態においても、第2の実施形態のように、更新部が、S/P変換部と、カスケード接続されたn個の演算処理部を備えるものとしてもよい。
この場合、第1段〜第(n−1)段の演算処理部の行処理部内の第1ブロックに対応する加算器は、加算結果を次段の第1ブロック擬似対数尤度比記憶部に出力し、第2ブロックに対応する加算器は、加算結果を次段の第2ブロック擬似対数尤度比記憶部に出力し、第3ブロックに対応する加算器は、加算結果を次段の第3ブロック擬似対数尤度比記憶部に出力する。
そして、S/P変換部は、第1段の演算処理部内の第1ブロック擬似対数尤度比記憶部、第2ブロック擬似対数尤度比記憶部および第3ブロック擬似対数尤度比記憶部に初期値として対数尤度比を出力する。
また、第n段の演算処理部の行処理部内の3つの加算器が、それぞれの加算結果であるN列分の擬似対数尤度比を復号語生成部に出力する。
(全体を通じての変形例)
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例を含む。
(1) sum-product復号法など
本発明の実施形態では、min-sum復号法およびUMP-APP復号法をベースとした場合を例として説明したが、sum-product復号法などを用いた場合でも、図14の第1行処理部〜第6行処理部の行処理の中身が変わるだけであって、本発明の実施形態で説明したような処理を行なうことができる。
(2) 最小値検出方法
本発明の実施形態の各行処理部における自分自身を除いて最小値を求める手法として、様々な方法を用いることができるが、特に、度数分布ソートを改良した方法で行なうとよい。この方法は、対象となる集合に含まれる各要素を第1の規則で変換して第1変換データを生成し、変換された複数個の第1変換データのビット単位の論理演算を行ない、論理演算の結果を第2の規則で変換して最小値または最小値の近似値を表わす第2変換データを生成する手法である。
この手法によれば、ビット単位の論理演算によって、最小値またはその近似値が高速に検出できる。またこの手法によれば、最小値の検出のための作業変数を記憶する必要がなく、擬似対数尤度比のみを記憶すればよいので、メモリ容量をより低減できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 符号化器、2 変調器、3 通信路、4 復調器、4a 復調回路、4b アナログ/デジタル変調回路、5 復号化器、6 対数尤度比算出部、7,17,37,77 更新部、8 S/P変換部、10,30,50 行処理部、11,11−1,11−2,11−n,31,51 演算処理部、12,32,52 列処理部、21,21−1,21−2,21−n,34,65,66,67,68,69 加算部、22,22−1,22−2,22−n 擬似対数尤度比記憶部、23,23−1,23−2,23−n,53 第1ブロック行処理部、24,24−1,24−2,24−n,54 第2ブロック行処理部、25,25−1,25−2,25−n,55 第3ブロック行処理部、26,26−1,26−2,26−n 加算部、27,57 第1行処理部、28,58 第2行処理部、29,60 第3行処理部、30,61 第4行処理部、31,63 第5行処理部、32,64 第6行処理部、16 復号語生成部、33 対数尤度比記憶部、35 擬似事前値対数比記憶部、56 第1ブロック擬似対数尤度比記憶部、59 第2ブロック擬似対数尤度比記憶部、62 第3ブロック擬似対数尤度比記憶部。