以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面に従って説明する。
実施の形態1.
図1は、この発明の実施の形態1によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態1によるLDPC符号復号装置1は、受信LLR計算部2及び復号コア部(復号手段)3から構成される。受信LLR計算部2は、LDPC(Low-Density Parity Check)符号化信号を受信し、その対数尤度比LLR(Log Likelihood Ratio)(以下、受信LLRと称する)を算出して復号コア部3に出力する。復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4では、受信LLR計算部2から入力した受信LLRに基づく行処理部5及び列処理部6による復号処理の途中結果を保持する。行処理部5は、行処理を行う。列処理部6は、列処理を行う。制御部7は、行処理部5及び列処理部6による復号処理の繰り返しを制御する。復号結果判定部8は、事後値の硬判定から復号結果を決定し、パリティ検査を行って復号結果の正誤を判定する。
ここで、本実施の形態1による行処理部5では、上記式(1)に対して、上記式(1)及び上記式(2)の代わりに下記式(8)の演算を実行する。つまり、上述したShuffled BPアルゴリズムのステップ1の行処理において、Min−Sumアルゴリズムで使用する更新式で更新演算を行う。なお、下記式中の各記号は、上述したものと同様である。
図2は、図1中の行処理部の構成を示すブロック図である。比較部9は、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5は、複数の比較部9を複数段に接続して構成される。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、比較部9がそれぞれの大小比較と符号(±)の積を算出した値を列処理部6へ受け渡す。
このように、本実施の形態1によるLDPC符号復号装置1は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにMin−Sumアルゴリズムの近似更新式である上記式(8)を利用する。これにより、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うMin−Sumアルゴリズムが実現される。
次に動作について説明する。
図3は、実施の形態1によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(8)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図4は、従来のMin−Sumアルゴリズムに従うLDPC符号復号装置と、実施の形態1によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のMin−Sumアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態1によるものである。
また、図4において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。
従来のMin−Sumアルゴリズムでは、上記式(8)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態1によるLDPC符号復号装置1では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図4に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のMin−Sumアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態1によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてMin−Sumアルゴリズムの簡易な更新式を用いるので、従来のMin−Sumアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。また、Min−Sumアルゴリズムを行処理の基本アルゴリズムとして、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態2.
上記実施の形態1では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うMin−Sumアルゴリズムを実現したLDPC符号復号装置を示した。これに対し、本実施の形態2によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてNormalized BPアルゴリズムを実行するものである。
本実施の形態2によるLDPC符号復号装置は、図1に示した上記実施の形態1によるLDPC符号復号装置と基本的に同様な構成を有しているが、Normalized BPアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態2における行処理部5では、上記式(1)に対して上記式(2)及び上記式(3)の代わりに下記式(9)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、Normalized BPアルゴリズムで使用する更新式である下記式(9)により更新演算を行う。なお、下記式(9)中の各記号は、上述したものと同様である。また、定数αは、Normalization Factorである。
本実施の形態2によるLDPC符号復号装置は、上述したように、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Normalized BPアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(9)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図5は、実施の形態2によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9と除算部10から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
除算部10では、入力値cに対し、因子α(Normalization Factor)で除算したc/αを計算して列処理部6に出力する。つまり、本実施の形態2による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力すると、それぞれの大小比較と符号(±)の積を比較部9で行い、比較部9により得られた値を除算部10が因子αによる除算を行った後、列処理部6へ受け渡す処理を行う。
このように、本実施の形態1によるLDPC符号復号装置1は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにNormalized BPアルゴリズムの更新式である上記式(9)を利用する。これにより、Min−Sumアルゴリズムと同程度の計算コストでLDPC符号の復号を行いつつ、復号性能が劣化するのを抑えたNormalized BPアルゴリズムを、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うことを実現している。
次に動作について説明する。
本実施の形態2によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明し、併せて上記実施の形態1と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行について上記式(9)に従う行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、上記式(3)及び上記式(4)に従って1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(9)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(9)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図6は、従来のNormalized BPアルゴリズムに従うLDPC符号復号装置と、実施の形態2によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のNormalized BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態2によるものである。
また、図6において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6、最大繰り返し回数Imaxが100回である。また、通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定し、変調方式をBPSK(Binary Phase Shift Keying)としている。さらに、従来のNormalized BPアルゴリズム及び本実施の形態2によるNormalized BPアルゴリズムにおいて、因子α(Normalization Factor)をそれぞれα=1.25としている。
従来のNormalized BPアルゴリズムでは、上記式(9)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態2によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図6に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のNormalized BPアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態2によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてNormalized BPアルゴリズムの簡易な更新式を用いるので、従来のNormalized BPアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することが可能となる。また、Normalized BPアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態3.
本実施の形態3では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてOffset BPアルゴリズムを実行するものである。
本実施の形態3によるLDPC符号復号装置は、図1に示した上記実施の形態1によるLDPC符号復号装置と基本的に同様な構成を有しているが、Offset BPアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態3における行処理部5では、上記式(1)に対して下記式(10)の演算を実行する。
つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、Offset BPアルゴリズムで使用する近似更新式である下記式(10)により更新演算を行う。なお、下記式(10)中の各記号は、上述したものと同様である。また、定数βは、Offset Factorであり、MAXは両者の大きい方を選択する操作とする。
本実施の形態3によるLDPC符号復号装置は、上述したように、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Offset BPアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(10)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図7は、実施の形態3によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9と減算部11から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
減算部11では、入力値cに対し、因子β(Offset Factor)で減算したc−βを計算して列処理部6に出力する。つまり、本実施の形態3による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力すると、それぞれの大小比較と符号(±)の積を比較部9で行い、比較部9により得られた値を減算部11が因子βによる減算を行った後、列処理部6へ受け渡す処理を行う。
このように、本実施の形態3によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにOffset BPアルゴリズムの更新式である上記式(10)を利用する。これにより、Min−Sumアルゴリズムと同程度の計算コストでLDPC符号の復号を行いつつ、復号性能が劣化するのを抑えたOffset BPアルゴリズムを、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うことを実現している。
次に動作について説明する。
本実施の形態3によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明し、併せて上記実施の形態1と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行について上記式(10)に従う行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、上記式(3)及び上記式(4)に従って1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(10)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(10)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図8は、従来のOffset BPアルゴリズムに従うLDPC符号復号装置と、実施の形態3によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のOffset BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態3によるものである。
また、図8において、LDPC符号は、レギュラーLDPC、符号長8000、符号化率1/2、列重み3、行重み6、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、従来のOffset BPアルゴリズム及び本実施の形態3によるOffset BPアルゴリズムにおいて、因子β(Offset Factor)をそれぞれβ=0.15としている。
従来のOffset BPアルゴリズムでは、上記式(10)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態3によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図8に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のOffset BPアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態3によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてOffset BPアルゴリズムの簡易な更新式を用いるので、従来のOffset BPアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。また、Offset BPアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態4.
この実施の形態4は、Min−Sumアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムを復号アルゴリズムとして備えるものである。
図9は、この発明の実施の形態4によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態4によるLDPC符号復号装置1は、受信LLR計算部2及び復号コア部3から構成される。受信LLR計算部2は、LDPC(Low-Density Parity Check)符号化信号を受信し、その対数尤度比LLRを算出して復号コア部3に出力する。復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4は、受信LLR計算部2から入力した受信LLRに基づく行処理部5及び列処理部6による復号処理の途中結果を保持する。行処理部5は、上述した補正項による補正を行う補正型のMin−Sumアルゴリズムによる行処理を行う。列処理部6は、当該行処理部5による処理結果について列処理を行う。制御部7は、行処理部5及び列処理部6による復号処理の繰り返しを制御する。復号結果判定部8は、事後値の硬判定から復号結果を決定し、パリティ検査を行って復号結果の正誤を判定する。
ここで、本実施の形態4では、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う。つまり、復号したいLDPC符号の検査行列が2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であるとすると、m=1,2,3,・・・,Mの順にHm,n=1を満たす全ての組(m,n)に対して行処理を行い、この後n=1,2,3,・・・,Nの順にHm,n=1を満たす全ての組(m,n)に対して列処理が実行される。
繰り返し1回の中で実行される行処理であるステップ1において、本実施の形態4による行処理部5は、下記式(11)に対して下記式(12)の演算を実行する。下記式(12)中の各パラメータは、下記式(13)〜(15)で表され、これら式中の各記号は、上述したものと同様である。
なお、上記式(15)において、Min−Sumアルゴリズムに対する補正項となるδについては、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、例えば0.9など適切な値を設定することで、復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
さらに、ステップ1において、行処理部5による全ての行処理が終了すると、本実施の形態4による列処理部6は、下記式(16)に対して上記式(4)及び上記式(5)の演算を実行する。
続いて、ステップ2として、復号結果判定部8が、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果判定部8が、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
図10は、図9中の行処理部の構成を示すブロック図である。補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5は、複数の補正演算部12を複数段に接続して構成される。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
このように、本実施の形態4によるLDPC符号復号装置1では、繰り返し復号の任意の1回で符号化信号に対して、Min−Sumアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムによって、全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う。
なお、上述した上記式(12)及び図10の構成では、全ての比較において補正を行うが、図10Aに示すように比較部9による最小2値の比較のときのみ補正を行うなど、比較回数よりも補正回数を減らすことで、演算量を削減することができる。
次に動作について説明する。
図11は、実施の形態4によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的に説明すると、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(12)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図12は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のMin−Sumアルゴリズムに従うLDPC符号復号装置と、実施の形態4によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を一点破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を破線で繋いだ方が従来のMin−Sumアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態4によるものである。
また、図12において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。
従来のSum−Productアルゴリズム及び従来のMin−Sumアルゴリズムでは、それぞれ上記式(2)及び上記式(8)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態4によるLDPC符号復号装置1では、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図12に示すように、本実施の形態4によるLDPC符号復号装置1は、従来のMin−Sumアルゴリズムと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムと同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態4によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムからの復号性能の劣化を抑えることができる上、従来のMin−Sumアルゴリズムと比較すると格段に復号性能を向上させることができる。
また、Min−Sumアルゴリズムに対する補正項を受信情報から算出することから、従来の補正型のMin−Sumアルゴリズムのように補正項を保持するテーブルを用意しておく必要がなく、従来のNormalized BPアルゴリズムやOffset BPアルゴリズムのように、符号構成に依存して最適化した因子を予め用意しておく必要もない。
さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態4によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態5.
上記実施の形態4では、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムを実現した復号装置を示した。これに対し、本実施の形態5による復号装置は、上記実施の形態4で説明した補正型のMin−Sumアルゴリズムにおける行処理結果を定数で除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムを復号アルゴリズムとして実行するものである。
本実施の形態5による復号装置は、図9に示した上記実施の形態4による復号装置と基本的に同様な構成を有しているが、除算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態5における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(17)の演算を実行する。なお、下記式(17)中の各パラメータは、上記式(13)〜上記式(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
ここで、Min−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
除算定数αは、Normalized BPアルゴリズムにおけるNormalization Factorと同様な効果を持ち、上記実施の形態4における補正型のMin−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。なお、本実施の形態における除算付き補正型のMin−Sumアルゴリズムにおける除算定数αは、Normalized BPアルゴリズムと同様にNormalization Factorと呼ぶことにする。
本実施の形態5によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して除算付き補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(17)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図13は、実施の形態5によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の補正演算部12と除算部13から構成される。補正演算部12は、図10で示したものと同様に、入力された2値の絶対値の大小比較、補正項の算出及び補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5において、複数の補正演算部12が複数段に接続している。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12は、2値a,bの絶対値を入力すると、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
除算部13では、上述した補正演算部12による演算結果を定数α(Normalization Factor)で除算する。つまり、除算部13は、入力値cに対し、c/αを計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、除算部13は、補正演算部12が算出した値を定数αで除算した後、列処理部6へ受け渡す。
次に動作について説明する。
本実施の形態5によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明し、併せて上記実施の形態4と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(17)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図14は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のNormalized BPアルゴリズムに従うLDPC符号復号装置と、実施の形態5によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を一点破線で繋いだ方が従来のNormalized BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態5によるものである。
また、図14において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、Normalized BPアルゴリズムにおいて、因子α(Normalization Factor)をα=1.25とした場合の復号性能を示している。
従来のSum−Productアルゴリズム及び従来のNormalized BPアルゴリズムでは、それぞれ上記式(2)及び上記式(9)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態5によるLDPC符号復号装置1では、上記実施の形態4で示した補正型のMin−Sumアルゴリズムにおける行処理結果を定数αで除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図14に示すように、本実施の形態5では、従来のNormalized BPと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムとほぼ同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態5によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムにおける行処理結果を定数で除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムで算出されるLLRの大きさの差を従来のNormalized BPアルゴリズムのように因子α(Normalization Factor)で調整するだけでなく、上記実施の形態4で示した補正型のMin−Sumアルゴリズムに対してさらに補正を行うことにより、従来のNormalized BPアルゴリズムよりも格段に復号性能を向上させることができる。
また、本実施の形態5によるMin−Sumアルゴリズムに対する補正項は、受信情報から算出するので、従来の補正型アルゴリズムのように補正項テーブルを保持する必要がない。さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態5によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態6.
本実施の形態6では、上記実施の形態4で説明した補正型のMin−Sumアルゴリズムにおける行処理結果から定数で減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムを復号アルゴリズムとして実行するものである。
本実施の形態6によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、減算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態6における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(18)の演算を実行する。なお、下記式(18)中の各パラメータは、上記式(13)〜上記式(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
ここで、Min−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
減算定数βは、Offset BPアルゴリズムにおけるOffset Factorと同様な効果を持ち、上記実施の形態4による補正型のMin−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。なお、本実施の形態6による減算付き補正型のMin−Sumアルゴリズムにおける減算定数βは、Offset BPアルゴリズムと同様にOffset Factorと呼ぶことにする。
本実施の形態6によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して減算付き補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(18)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図15は、実施の形態6によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の補正演算部12と減算部14から構成される。補正演算部12は、図10で示したものと同様に、入力された2値の絶対値の大小比較、補正項の算出及び補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5において、複数の補正演算部12が複数段に接続している。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12は、2値a,bの絶対値を入力すると、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
減算部14では、上述した補正演算部12による演算結果を定数β(Offset Factor)で減算する。つまり、減算部14は、入力値cに対し(c−β)を計算して、計算結果が負でなければ(c−β)を出力し、負であれば0を出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、減算部14は、補正演算部12が算出した値を定数βで減算し、その結果に応じて(c−β)又は0を列処理部6へ受け渡す。
次に動作について説明する。
本実施の形態6によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明し、併せて上記実施の形態4と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(18)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図16は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のOffset BPアルゴリズムに従うLDPC符号復号装置と、実施の形態6によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を一点破線で繋いだ方が従来のOffset BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態5によるものである。
また、図16において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、Offset BPアルゴリズムにおいて、因子β(Offset Factor)をβ=0.15とした場合の復号性能を示している。
従来のSum−Productアルゴリズム及び従来のOffset BPアルゴリズムでは、それぞれ上記式(2)及び上記式(10)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態6によるLDPC符号復号装置1では、上記実施の形態4で示した補正型のMin−Sumアルゴリズムにおける行処理結果を定数βで減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図16に示すように、本実施の形態6では、従来のOffset BPと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムとほぼ同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態6によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムにおける行処理結果を定数で減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムで算出されるLLRの大きさの差を従来のOffset BPアルゴリズムのように因子β(Offset Factor)で調整するだけでなく、上記実施の形態4で示した補正型のMin−Sumアルゴリズムに対してさらに補正を行うことにより、従来のOffset BPアルゴリズムよりも格段に復号性能を向上させることができる。
また、本実施の形態6によるMin−Sumアルゴリズムに対する補正項は、受信情報から算出するので、従来の補正型アルゴリズムのように補正項テーブルを保持する必要がない。さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態6によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態7.
この実施の形態7では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態4で説明した補正型のMin−Sumアルゴリズムを行うものである。
本実施の形態7によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、補正型のMin−Sumアルゴリズムにおける受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う点が異なる。
具体的に説明すると、本実施の形態7における行処理部5では、上記式(1)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(19)の演算を実行する。なお、下記式(19)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
なお、上記式(15)において、Min−Sumアルゴリズムに対する補正項となるδについては、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
本実施の形態7によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に対し、上記式(19)を用いた行処理を行い、列処理部6は、上記式(1)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態7による行処理部5は、上述したように、基本的な構成は図10に示す上記実施の形態4と同様である。つまり、補正演算部12が、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。ここで、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
このように、本実施の形態7によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずに、上記式(19)を利用する。
次に動作について説明する。
本実施の形態7によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(19)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態7によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態4で示した補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態8.
この実施の形態8によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムを実行するものである。
本実施の形態8によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、除算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態8における行処理部5では、上記式(1)に対して下記式(21)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムで使用する更新式である下記式(21)により更新演算を行う。なお、下記式(21)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
上記式(15)中のMin−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
除算定数αは、Normalized BPアルゴリズムにおけるNormalization Factorと同様な効果を持ち、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、除算付き補正型Min−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。
本実施の形態8によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、除算付き補正型のMin−Sumアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に従って上記式(21)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態8による行処理部5は、基本的な構成は図13に示す上記実施の形態5と同様である。つまり、複数の補正演算部12と除算部13から構成される。ここで、補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。また、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
除算部13では、上述した補正演算部12による演算結果を定数α(Normalization Factor)で除算する。つまり、除算部13は、入力値cに対し、c/αを計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、除算部13は、補正演算部12が算出した値を定数αで除算した後、列処理部6へ受け渡す。
このように、本実施の形態8によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(21)を利用する。
次に動作について説明する。
本実施の形態8によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(21)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態8によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う除算付き補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態9.
この実施の形態9によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムを実行するものである。
本実施の形態9によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、減算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態9における行処理部5では、上記式(1)に対して下記式(22)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムで使用する更新式である下記式(22)により更新演算を行う。なお、下記式(22)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
上記式(15)中のMin−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
減算定数βは、Offset BPアルゴリズムにおけるOffset Factorβと同様な効果を持ち、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、減算付き補正型Min−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。
本実施の形態9によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、減算付き補正型のMin−Sumアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に従って上記式(22)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態9による行処理部5は、基本的な構成は図15に示す上記実施の形態6と同様である。つまり、複数の補正演算部12と減算部14から構成される。ここで、補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。また、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
減算部14では、上述した補正演算部12による演算結果を定数β(Offset Factor)で除算する。つまり、減算部14は、入力値cに対し、(c−β)を計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、減算部14は、補正演算部12が算出した値を定数βで減算した後、列処理部6へ受け渡す。
このように、本実施の形態9によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(22)を利用する。
次に動作について説明する。
本実施の形態9によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(22)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態9によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う除算付き補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態10.
この実施の形態10は、検査行列の全ての行に対して一定の因子α(Normalization Factor)は持たず、行ごとに決定した因子αm(Normalization Factor)を持つ復号アルゴリズムに従い復号を行うものである。
なお、本実施の形態10は、通常のNormalized BPアルゴリズム、上記実施の形態5で示した除算付き補正型Min−Sumアルゴリズム、また、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなど、因子α(Normalization Factor)を有する全ての復号アルゴリズムにおいて適用可能である。
ここでは、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Normalized BPアルゴリズムにおいて、行ごとの因子αm(Normalization Factor)を適用したLDPC符号復号装置を例に挙げて説明する。
本実施の形態10によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、行ごとの因子α
m(Normalization Factor)を用いたNormalized BPアルゴリズムを実行するために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態10における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(23)の演算を実行する。なお、下記式(23)中の各パラメータは、上記実施の形態4と同様であり、記号は前記の通りである。因子α
mは、m行目のNormalization Factorを示している。
図17は、変調方式を4PAM Gray Mappingとした場合の受信値の分布を示すグラフである。図において、黒塗りのプロットで示す各変調信号点に対応する2ビットのデジタル符号00,01,11,10のうち、ビット値0,0,1,1を示すMSB(Most Significant Bit)の0と1の境界は、0(図中、実線の部分)のみであるが、ビット値0,1,1,0を示すLSB(Least Significant Bit)の0と1の境界は−2と2(図中、破線の部分)の2箇所であり、LSBの方がビットの反転が起こりやすいことがわかる。
このように、MSBとLSBでは、ビット誤り率に違いがある。また、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の比で表されるαmは、各行で1を持つビットの誤り率に依存する。これにより、変調方式4PAMの場合、因子αmは、各行で1を持つビットのMSBである個数、LSBである個数に依存することになる。
そこで、本実施の形態では、αmについて各行に対応した値を予め用意する。なお、ここでは4PAMを例に挙げたが、他に受信信号の各ビットにおけるビット誤り率に違いの生じる多値変調方式でも同様である。
また、イレギュラーLDPC符号の場合、行重みが一定ではない。このため、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の比であるαmは行重みに依存する。これにより、本実施の形態では、αmについて各行の行重みに対応した値を用意する。なお、αmは、シミュレーション若しくは密度発展法を用いて事前に算出しておく。
本実施の形態10によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して行ごとの因子αm(Normalization Factor)を用いたNormalized BPアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(23)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図18は、実施の形態10によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9、除算部10a及び除算定数選択部15から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
除算部10aでは、上述した比較部9による演算結果を、除算定数選択部15からの定数αm(Normalization Factor)で除算する。つまり、除算部10aは、入力値cに対し、c/αmを計算して出力する。このように、行処理部5において、比較部9は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を求め、除算部10aは、比較部9が算出した値を定数αmで除算した後、列処理部6へ受け渡す。
除算定数選択部15では、各行のαm値を予め記憶しており、制御部7より通信路及び符号構成の情報を受け、この情報中の処理対象の行番号mを入力して各行のαmを決定し、除算部10aへ受け渡す。
このように、本実施の形態10による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を比較部9で求め、除算部10aが、比較部9により得られた値を除算定数選択部15が選択したαmで除算した後、列処理部6へ受け渡す処理を行う。
次に動作について説明する。
本実施の形態10によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化すると共に、除算定数選択部15に対して変調方式や行重みに関する情報を受け渡す。この情報に基づき、除算定数選択部15は、各行のαmを決定して除算部10aへ渡す。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(23)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態10によれば、Normalized BPアルゴリズムにおけるNormalization Factorを変調方式及び符号構成に応じて行ごとに設定するので、多値変調された場合や符号がイレギュラーLDPC符号の場合などに従来のNormalized BPアルゴリズムで復号を行うよりも、伝搬される確率情報がSum−Productアルゴリズムに近づき、復号性能を向上させることができる。
なお、上記実施の形態10では、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Normalized BPアルゴリズムにおいて、行ごとの因子αm(Normalization Factor)を適用したLDPC符号復号装置を例に挙げたが、このアルゴリズムの他、上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズム、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなどにおいて、行ごとの因子αmを適用したLDPC符号復号装置を構成しても良い。
実施の形態11.
この実施の形態11は、検査行列の全ての行に対して一定の因子β(Offset Factor)は持たず、行ごとに決定した因子βm(Offset Factor)を持つ復号アルゴリズムに従い復号を行うものである。
なお、本実施の形態11は、通常のOffset BPアルゴリズム、上記実施の形態6で説明した減算付き補正型のMin−Sumアルゴリズム、また、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなど、因子β(Offset Factor)を有する全ての復号アルゴリズムにおいて適用可能である。
ここでは、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Offset BPアルゴリズムにおいて、行ごとの因子βm(Offset Factor)を適用したLDPC符号復号装置を例に挙げて説明する。
本実施の形態11によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、行ごとの因子β
m(Offset Factor)を用いたOffset BPアルゴリズムを実行するために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態11における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(24)の演算を実行する。なお、下記式(24)中の各パラメータは、上記実施の形態4と同様であり、記号は前記の通りである。因子β
mは、m行目のOffset Factorを示している。
例えば、変調方式を4PAM Gray Mappingとした場合の受信値は、上述したように図17のように分布し、MSBとLSBとでビット誤り率に違いがある。また、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の差で表されるβmは、各行で1を持つビットの誤り率に依存する。これにより、変調方式4PAMの場合、βmは、各行で1を持つビットのMSBである個数、LSBである個数に依存することになる。
そこで、本実施の形態では、βmについて各行に対応して値を予め用意する。なお、ここでは4PAMを例として挙げたが、他にビット誤り率に違いの生じる多値変調方式でも同様である。
また、イレギュラーLDPC符号の場合、行重みが一定ではない。このため、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の差で表されるβmは、行重みに依存する。これにより、本実施の形態では、βmについて各行の行重みに対応した値を用意する。なお、βmは、シミュレーション若しくは密度発展法を用いて事前に算出しておく。
本実施の形態11によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して行ごとの因子βm(Offset Factor)を用いたOffset BPアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(24)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図19は、実施の形態11によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9、減算部11a及び減算定数選択部16から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
減算部11aでは、上述した比較部9による演算結果を、減算定数選択部16からの定数βm(Offset Factor)で減算する。つまり、減算部11aは、入力値cに対し、c−βmを計算して出力する。このように、行処理部5において、比較部9は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を求め、減算部11aは、比較部9が算出した値を定数βmで減算した後、列処理部6へ受け渡す。
減算定数選択部16では、各行のβm値を予め記憶しており、制御部7より通信路及び符号構成の情報を受け、この情報中の処理対象の行番号mを入力して各行のβmを決定し、減算部11aへ受け渡す。
このように、本実施の形態11による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を比較部9で求め、減算部11aが、比較部9により得られた値を減算定数選択部16が選択したβmで減算した後、列処理部6へ受け渡す処理を行う。
次に動作について説明する。
本実施の形態11によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化すると共に、減算定数選択部16に対して変調方式や行重みに関する情報を受け渡す。この情報に基づき、減算定数選択部16は、各行のβmを決定して減算部11aへ渡す。
次に、ステップST4aにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(24)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態11によれば、Offset BPアルゴリズムにおけるOffset Factorを変調方式及び符号構成に応じて行ごとに設定するので、多値変調された場合や符号がイレギュラーLDPC符号の場合などに従来のOffset BPアルゴリズムで復号を行うよりも、伝搬される確率情報がSum−Productアルゴリズムに近づき、復号性能を向上させることができる。
なお、上記実施の形態11では、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Offset BPアルゴリズムにおいて、行ごとの因子βm(Offset Factor)を適用したLDPC符号復号装置を例に挙げたが、このアルゴリズムの他、上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズム、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなどにおいて、行ごとの因子βmを適用したLDPC符号復号装置を構成しても良い。
実施の形態12.
図20は、この発明の実施の形態12によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態12によるLDPC符号復号装置1は、図1に示す上記実施の形態1の構成と同様に、受信LLR計算部2及び復号コア部3から構成される。ここで、上記実施の形態1とは、演算列制御部17を備える点で異なる。演算列制御部17は、グループ分割に基づいて行処理部5及び列処理部6による演算対象の列を決定して、グループ分割に基づく復号処理を制御する。
実施の形態12によるLDPC符号復号装置では、従来のGroup Shuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行うものであるが、符号構成に基づいて複数ビットごとの組み合わせであるグループに分割する。
ここで、本実施の形態における符号構成に基づくグループ分割について説明する。
先ず、行処理と列処理による確率情報の算出及び更新を1ビットずつ行う復号アルゴリズムでは、そうでないアルゴリズムよりも少ない繰り返し回数で復号を終えるのは、算出した確率情報を即座に更新して同じ繰り返し回数における次の復号演算で利用することで、確率情報の伝播が効率的に行われるからである。
行処理と列処理による確率情報の算出及び更新を複数ビットずつ行うGroup Shuffled BPアルゴリズムの場合も同様であるが、従来のGroup Shuffled BPアルゴリズムでは、同じグループの列同士が互いに同じ行に1を持っていると、互いに更新されていない確率情報を用いて処理を行うことになる。
そこで、本実施の形態では、Group Shuffled BPアルゴリズムのように行処理と列処理による確率情報の算出及び更新を複数ビットずつ行う復号アルゴリズムにおいて、複数ビットの組み合わせを作るグループ分割の際に同じグループに含まれる列同士が互いに同じ行に1を持たないようにグループ分割する。これにより、同じグループの列同士が互いに同じ行に1を持っている場合と比較して確率情報の伝播を効率的に行うことできるようになり、繰り返し回数を削減することができる。
図21は、LDPC符号化行列の構成例を示す図であり、図中で行列の右上を三角形で囲んだ部分が0となるLDPC符号化行列を示している。また、図22は、実施の形態12のLDPC符号復号装置によるLDPC符号行列のグループ分割例を示す図である。図21に示すようなLDPC行列では、符号化行列が復号行列と共通で用いることができ、実用上の利点は多い。
このようなLDPC符号で符号化された符号化行列をグループ分割して、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う場合、図22に示すように、パリティビット部分を連続させないグループ分割を行う。図22の例では、パリティビット部分を連続させないグループ分割としてLDPC行列を1列おきにグループ分割している。なお、図中、各グループに付した符号A,B,C,D,E,Fは、それぞれ第1番目から第6番目のグループを示すグループ1,2,3,4,5,6を表すものとする。
本実施の形態12によるLDPC符号復号装置では、符号構成に基づいて、図22に示すようにLDPC符号化行列をグループ分割するGroup Shuffled BPアルゴリズムを実行する。以下に簡単に説明する。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLR(Log Likelihood Ratio)の初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、下記式(25)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:H
m,n=1}、M(n):={m:H
m,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
但し、各記号は、上記式に従うものとする。また、GR(g)は、g番目のグループを構成する列の組を表すものとする。図22に示す例でGR(g)を具体的に示すと、以下のようになる。
グループ1(GR(1))は2k+1=1,3,5,7,・・・,Ng−1であり、kは0以上Ng未満である。
グループ2(GR(2))は2k+2=2,4,6,8,・・・,Ngであり、kは0以上Ng未満である。
グループ3(GR(3))は2k+1=Ng+1,Ng+3,Ng+5,・・・,2Ng−1であり、kはNg以上2Ng未満である。
グループG(GR(G))は、2k+2=G・Ng−2Ng+2,・・・,G・Ngであり、kは(G/2−1)・Ng以上G・Ng未満である。
本実施の形態12によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により1ビットおきにグループ分割したGroup Shuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(25)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したGroup Shuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列をグループ分割して行処理部5及び列処理部6による演算対象の列を制御する。
次に動作について説明する。
図23は、実施の形態12によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って図22に示す符号化行列を用いた復号動作を例に挙げて説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された1列ごとのグループに対して行処理部5及び列処理部6による繰り返し復号処理を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])について、図22に示すように、演算列制御部17は、図中で符号Aを付したグループ1に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ1に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ1に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図中で符号Bを付したグループ2に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ2に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、演算列制御部17は、グループgに含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループgに含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループgに含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
図22の例では、演算列制御部17が、図中で符号Fを付したグループ6に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ6に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(25)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図24は、実施の形態12によるLDPC符号復号装置により上述のように符号構成に基づいて符号化行列をグループ分割して復号した場合と、従来のGroup Shuffled BPアルゴリズムでグループ分割して復号した場合とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のGroup Shuffled BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態12によるものである。
また、図24において、LDPC符号は、右上三角0構造のイレギュラーLDPC符号、符号長64800、符号化率1/2、最大列重み7、最大行重み8、最大繰り返し回数Imaxが20回である。また、通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、QPSK(Quadrature Phase Shift Keying)で復調している。
ここで、実施の形態12では、上述したように、符号構成に基づき、1列ごとにLDPC行列をグループ分割したGroup Shuffled BPアルゴリズムで復号処理を実行している。また、従来のGroup Shuffled BPアルゴリズムでは、従来と同様に、LDPC行列における先頭の第1ビットから所定のビットごとのグループに分割している。
図24に示すように、本実施の形態12による復号処理によって、パリティ検査がOKとなるまでに要した復号繰り返し回数が、従来のGroup Shuffled BPアルゴリズムと比較して格段に削減されていることがわかる。なお、従来のGroup Shuffled BPアルゴリズムとの比較例を示したが、本実施の形態12は、従来のShuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う復号アルゴリズムに対しても同様に繰り返し回数を削減することができる。
以上のように、この実施の形態12によれば、隣り合った列に1を持つLDPC符号に対し、Group Shuffled BPアルゴリズムのようにグループ分割して受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う復号アルゴリズムでLDPC符号の復号を行う場合において、LDPC符号の構成に基づいて1列ごとにLDPC符号化行列をグループ分割し、グループごとの列について1を持つ行を行処理すると共に、当該グループに含まれる列の列処理を行って復号処理するので、隣り合った列を同じグループに分割しないことから、確率情報の伝播が効率的に行われる。これにより、図24に示すように、LDPC符号化行列の先頭ビットから順にグループ分けする従来のGroup Shuffled BPアルゴリズムに比べ繰り返し回数を削減することができる。
実施の形態13.
上記実施の形態12では、LDPC符号の構成に基づいて1列ごとにLDPC符号化行列をグループ分割するLDPC符号復号装置を示したが、本実施の形態13によるLDPC符号復号装置は、受信信号の変調方式に基づいて復号処理の対象をグループ分割するものである。
本実施の形態13によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17により変調方式に基づいて受信信号をグループ分割し、行処理部5及び列処理部6により受信信号のグループごとに復号処理を実行する。
また、変調方式の仮定によって本実施の形態13におけるグループ分割も上記実施の形態12と同様となっている。つまり、本実施の形態13では、Group Shuffled BPアルゴリズムのようにグループ分割して受信信号に対する行処理と列処理による確率情報の算出及び更新を行う復号を実行するにあたり、受信信号の変調方式に基づいて、上記実施の形態12で示した図22のように符号化行列を1列ごとのグループ1〜6に分割する。
ここで、上述した図17に示す4PAM Gray Mappingの受信値の分布からわかるように、変調方式が多値変調である場合、受信信号のビットごとの誤り率が異なる。図17の場合では、受信信号のMSBはビット誤り率が低く、LSBはビット誤り率が高い。この場合、MSBの復号はLSBの復号に比べて少ない繰り返し回数で復号を終えることができる。
そこで、本実施の形態13は、図17に示す変調方式4PAMの場合を例として、受信信号をMSBのみのグループとLSBのみのグループに分割して、MSBのみのグループを先に演算し、LSBのみのグループを後で演算するように構成する。
なお、Group Shuffled BPアルゴリズムのようにグループ分割をする場合を例に挙げたが、本実施の形態のような受信信号の変調方式に基づいて処理対象をグループ分割する処理は、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う他の復号アルゴリズムにおいても同様に適用することができる。
また、図17に示すような4PAMを変調方式の例として挙げたが、他に受信信号のビット誤り率に違いの生じる多値変調方式であれば、同様にビット誤り率の違いに応じてグループ分割するようにしてもよい。
本実施の形態13に係る演算アルゴリズムは、上記実施の形態12と同様である。以下に具体的に説明する。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLRの初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、上記式(25)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:Hm,n=1}、M(n):={m:Hm,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
但し、各記号は、上記式に従うものとする。また、GR(g)は、g番目のグループを構成する列の組を表すとする。GR(g)を具体的に示すと、以下のようになる。
グループ1(GR(1))は2k+1=1,3,5,7,・・・,Ng−1であり、kは0以上Ng未満である。
グループ2(GR(2))は2k+1=Ng+1,Ng+3,Ng+5,・・・,2Ng−1であり、kはNg以上2Ng未満である。
グループ(G/2)(GR(G/2))は2k−1=G・Ng−2Ng−1,・・・,G・Ng−1であり、kは(G/2−1)・Ng以上G・Ng未満である。
グループ(G/2+1)(GR(G/2+1))は2k+2=2,4,6,8,・・・,Ngであり、kは0以上Ng未満である。
グループG(GR(G))は2k+2=G・Ng−2Ng+2,・・・,G・Ngであり、kは(G/2−1)・Ng以上G・Ng未満である。
図22の例では、符号Aを付したグループ1、符号Cを付したグループ3、符号Eを付したグループ5がMSBのみのグループに対応し、符号Bを付したグループ2、符号Dを付したグループ4、符号Fを付したグループ6がLSBのみのグループに対応する。
次に動作について説明する。
本実施の形態13によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された上述した1列ごとのグループに対して、行処理部5及び列処理部6によりMSBのみのグループに続いてLSBのみのグループを処理する繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、図22で符号Aを付したMSBのみのグループ1に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ1に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ1に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図22中で符号Cを付したMSBのみのグループ3に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ3に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ3に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のMSBのみのグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
図22の例では、符号Eを付したMSBのみのグループ5に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ5に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ5に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
このあと、演算列制御部17は、図22で符号Bを付したLSBのみのグループ2に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ2に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図22中で符号Dを付したLSBのみのグループ4に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ4に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ4に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のLSBのみのグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
図22の例では、グループGに相当する符号Fを付したLSBのみのグループ6に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ6に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ6に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(25)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2において、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態13によれば、4PAMに変調されて送受信された受信信号にGroup Shuffled BPアルゴリズムで復号を行うにあたり、MSBのみとLSBのみのグループに分割し、ビット誤り率が低いMSBのみのグループを先に演算するので、ビット誤り率の高いLSBでは信頼度の高い確率情報をMSBから受けて復号演算を行うことになり、LSBの復号演算は従来よりも効率的に行われ少ない繰り返し回数での復号が可能となる。
実施の形態14.
この実施の形態14は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、符号構成に基づいて復号順序を制御するものである。
本実施の形態14によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17が符号構成に基づいて復号の順序を制御して行処理部5及び列処理部6に復号処理を実行させる点で異なる。
Shuffled BPアルゴリズムを例として符号構成に基づく順序制御の概要を説明する。Shuffled BPアルゴリズムがSum−Productアルゴリズムよりも少ない繰り返し回数で復号を終了するのは、復号過程で算出して受け渡している確率情報の伝搬がSum−Productアルゴリズムよりも効率的に行われているからである。そこで、符号がイレギュラーLDPC符号であれば、列重みの大きい順に順序付けしてShuffled BPアルゴリズムで復号を行う。
例えば、O(g)をg番目に順序付けされた列番号とすると、O(1)は最大列重みを持つ列、O(2)は次に列重みの大きい列、O(3)はその次に列重みの大きい列、と順序付けて列を選択してゆき、Shuffled BPアルゴリズムによる復号を行う。
順序付けしたShuffled BPアルゴリズムは、以下の通りである。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLR(Log Likelihood Ratio)の初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、下記式(26)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:H
m,n=1}、M(n):={m:H
m,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。但し、各記号は、上記式に従うものとする。また、O(g)はg番目に順序付けされた列を表すものとする。
本実施の形態14によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により符号構成に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列を列重みの大きい順に順序制御して行処理部5及び列処理部6に復号演算させる。
次に動作について説明する。
本実施の形態14によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された列重みが大きい順で列に対して、行処理部5及び列処理部6により繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、列重みの最も大きい第1番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第1番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第1番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、列重みが次に大きい第2番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第2番目に演算を行う列で1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第2番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降も列重みが大きい順に列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、演算列制御部17は、第g番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第g番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、第g番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(26)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態14によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、符号構成に基づいて復号順序を制御するので、先に演算した確率情報が早く伝搬されることになり繰り返し回数を削減することができる。また、符号構成に基づいて順序制御しているため、符号情報を受信するたびに順序付けする必要はない。
なお、上記実施の形態14では、Shuffled BPアルゴリズムの順序制御を行う例を示したが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムであれば、他のアルゴリズムであっても同様である。
実施の形態15.
この実施の形態15は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、受信信号の変調方式に基づいて復号順序を制御するものである。
本実施の形態15によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17が受信信号の変調方式に基づいて復号順序を制御して行処理部5及び列処理部6に復号処理を実行させる点で異なる。
Shuffled BPアルゴリズムを例として変調方式に基づく順序制御の概要を説明する。先ず、変調方式が多値変調である場合、ビットごとの誤り率が異なる。例えば、上述した図17に示す変調方式4PAM Gray Mappingでは、符号の先頭ビットから順に変調信号点を割り当てると、ビットごとの誤り率でMSBは誤り率が低く、LSBは誤り率が高くなる。
このような受信信号を復号する場合、MSBの復号過程で算出される確率情報は、信頼度が高い特徴がある。そこで、Shuffled BPアルゴリズムで復号を行う場合、MSBのビットから順に復号を行うことで、LSBには常に信頼度の高い確率情報が伝搬されることになる。
例えば、O(g)をg番目に順序付けされた列番号とすると、先にMSBに対応する全ての列を選択し、続いてLSBに対応する列を選択する、O(1)=1、O(2)=3、O(3)=5、O(4)=7,・・・,2n+1,・・・,N−1,2,4,6,・・・,2n,・・・,Nという順で列を選択してゆき、Shuffled BPアルゴリズムによる復号を行う。
本実施の形態15によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号の変調方式に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列を受信信号の変調方式に基づいてビット誤りの低いビットに対応する全ての列を選択し続いてビット誤りの高いビットに対応する列を選択するように順序制御して行処理部5及び列処理部6に復号演算させる。
次に動作について説明する。
本実施の形態15によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により受信信号の変調方式に基づいて選択された列に対して、行処理部5及び列処理部6により繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、変調方式に基づいて特定した受信信号のMSBに対応する先頭の列を、第1番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第1番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第1番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、変調方式に基づいて特定した受信信号の次のMSBに対応する列を第2番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第2番目に演算を行う列で1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第2番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降も、MSBに対応する列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
MSBに対応する列の演算が完了すると、演算列制御部17は、変調方式に基づいて特定した受信信号のLSBに対応する先頭の列を、MSBに対応する列の次に第1番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第1番目に演算を行うLSBに対応する列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、当該列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、変調方式に基づいて特定した受信信号のLSBに対応する次の列を第2番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第2番目に演算を行うLSBに対応する列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、当該列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(26)におけるg=3以降においても、LSBに対応する列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
上述した処理において、行処理部5が上記式(26)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態15によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、受信信号の変調方式に基づいて復号順序を制御するので、例えば4PAMに変調されて送受信された受信信号をShuffled BPアルゴリズムで復号する場合、MSBから順序付けして先にMSBの演算を行うことで、LSBへは信頼度の高い確率情報が伝搬され、LSBの復号が早く進み、繰り返し回数を削減することができる。
なお、上記実施の形態15では、Shuffled BPアルゴリズムの順序制御を行う例を示したが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムであれば、他のアルゴリズムであっても同様である。
また、上記実施の形態15では、変調方式として4PAMを例として挙げたが、ビット誤り率に違いの生じる他の多値変調方式でも同様に誤り率の低く信頼度の高いビットから順序付けを行うことができる。
実施の形態16.
図25は、この発明の実施の形態16による通信装置の構成を示すブロック図である。図に示すように、本実施の形態16による通信装置18は、受信復号装置(受信復号部)19と符号化送信装置(符号化送信部)20とから構成される。受信復号装置19は、図1に示した基本構成の他、符号化送信装置20により送信されたLDPC符号化信号を受信して復調する復調部21を備えている。
符号化送信装置20は、符号化部22及び変調部23から構成される。符号化部22では、送信すべき情報を入力してLDPC符号の符号化を行う。変調部23は、符号化部22からの符号化データを入力して変調し、変調信号として受信復号装置19へ送信する。
実施の形態16による通信装置18では、受信復号装置19と符号化送信装置20との間で、LDPC符号の符号構成に適応して検査ビットに変調信号点を割り当てて符号化信号の送受信を行い、符号構成に基づく順序制御に従ってShuffled BPアルゴリズムのような受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号を実行する。
図26は、実施の形態16による通信装置で使用するLDPC符号の構成を示す図である。図26に示すように、8行16列の検査行列であって右上三角の要素が0の構造を有し、また検査ビットが対角に同値となる対称構造を含んでいる。図27は、実施の形態16による通信装置でLDPC符号を4PAMに変調して送受信する場合におけるビットの割り当ての例を示す図である。図27では、M行N列の行列要素である検査ビットに対する割り当てとして、1列目から(n1−1)列目までにLSB以外を割り当て、n1列目からN列目までにMSB以外を割り当てる。これらの図を用いて実施の形態16の概要を説明する。
上述したように、Shuffled BPアルゴリズムがSum−Productアルゴリズムよりも少ない繰り返し回数で復号を終了するのは、復号過程で算出して受け渡している確率情報の伝搬がSum−Productアルゴリズムよりも効率的に行われているからである。
そこで、図26に示すような右上三角0の符号化行列で検査ビット部分が対角状のLDPC符号が4PAMに変調されて送受信される場合には、図27に示すように検査ビットに誤り率の高いLSBを割り当てて送受信する。復号側ではShuffled BPアルゴリズムで復号を行い、このとき検査ビットであるLSBの復号を先に行う。
また、図27に示すように変調信号点が割り当てられている場合、検査ビットであるLSBの先頭から順に復号を行う。LDPC符号の復号における行処理は、上記実施の形態15に示す行処理のように、対象列以外の列の情報を用いて行う。このため、LSBの先頭であるn1列目を演算する際にはMSBの持つ信頼性の高い情報のみを用いて演算することができる。
さらに、(n1+1)列目の演算には、MSBの持つ情報と既に1回演算したn1列目の情報のみを用いて演算することができるため、常に信頼性の高い情報のみを用いて演算することになる。
例えば、O(g)をg番目に順序付けされた列番号とすると、図27の例では、O(1)はn1列目(LSB)、O(2)は(n1+1)列目(LSB)、O(N−n1)はN列目(LSB)、というように順位付けして列を選択し、Shuffled BPアルゴリズムによる復号を行う。ここで、O(N−n1+1)以降は、LSB以外の1列目から(n1−1)列目の演算を行うことになる。
次に、図25を用いて、符号構成に適応した変調信号点を割り当てて送受信を行い、上述した処理式を備えて上記順序制御を行ったLDPC符号を送受信する、実施の形態16による通信装置18の具体例について述べる。図25に示すように、実施の形態16による通信装置18は、符号化送信装置20と受信復号装置21とから構成されている。ここで、符号化送信装置20は、LDPC符号の符号化を行う符号化部22と符号構成に適応した変調信号点の割り当てを行う変調部23とから構成される。
実施の形態16による通信装置18の受信復号装置19は、変調された信号の復調を行う復調部21、受信情報から受信LLRを算出する受信LLR算出部2及び復号コア部3で構成され、復号コア部3では符号構成に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を行う。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
次に動作について説明する。
図28は、実施の形態16による通信装置の動作を示すフローチャートであり、この図に沿って説明する。
先ず、符号化送信装置20の符号化部22は、送信すべき情報を入力すると(ステップST1A)、LDPC符号の検査行列Hを基に求めた生成行列と入力した情報とを用いてLDPC符号化を実行し、符号化データを生成する(ステップST2A)。変調部23は、符号化部22から符号化データを入力すると、図27に示すLDPC符号のビット割り当てに従って、入力した符号化データを4PAM変調して受信復号装置19に送信する(ステップST3A)。
受信復号装置19の復調部21は、符号化送信装置20からの受信信号を復調して(ステップST1−1)、復調結果の受信情報を受信LLR計算部2に出力する。受信LLR計算部2では、受信情報を入力すると(ステップST1)、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4cにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(26)においてg=1のとき、行処理部5は、1行目と2行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、n1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(26)においてg=2のとき、行処理部5は、2行目と3行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、(n1+1)列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、上記式(26)においてg=3以降の処理として、行処理部5は、4行目以降の処理を上記と同様に逐次実行し、その都度、処理結果を列処理部6に受け渡す。また、列処理部6は、(n1+2)列目以降の列処理を逐次実行し、その都度、処理結果を途中結果保持部4に保持させる。
このあと、上記式(26)においてg=N−n1−1になると、行処理部5は、(M−1)行目とM行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、(N−1)列目の列処理を行って処理結果を途中結果保持部4に保持させる。
次に、上記式(26)においてg=(N−n1)のとき、行処理部5は、M行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、N列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
これに続く上記式(26)のg=(N−n1+1)〜Nの処理では、列処理部6がLSB以外の列の演算を行う。例えば、LSB以外が割り当てられた1列目が演算対象であれば、行処理部5にて1列目に1を持つ行の行処理を行い、その処理結果を列処理部6へ受け渡す。列処理部では、同様に1列目の列処理を行って処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(2)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまでステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態16によれば、検査行列の右上三角が0の構造を持ち、検査ビットが対角状のLDPC符号で多値変調して符号化データを送受信するにあたり、当該符号構成に適応して変調信号点を割り当てて送受信し、その受信信号をShuffled BPアルゴリズムで復号を行う際、LSBから順序付けして先にLSBの演算を行うので、LSBへは信頼度の高い確率情報が伝搬され、LSBの復号が早く進み、繰り返し回数を削減することができる。
なお、上記実施の形態16では、Shuffled BPアルゴリズムの順序制御を行う例を示すが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う復号アルゴリズムでも同様である。また、多値変調方式として4PAMを例とするが、ビットごとに誤り率に偏りが現れる他の多値変調方式でも同様である。
また、上記実施の形態16では、変調方式として4PAMを例として挙げたが、他にビット誤り率に違いの生じる多値変調方式でも同様にして、誤り率の高いビットを検査ビットに割り当てた場合には、誤り率の高いLSBから順に復号を行うようにしてもよい。
実施の形態17.
この実施の形態17は、Shuffled BPアルゴリズムのように受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うアルゴリズムで復号を行うにあたり、これらの演算を並列化して実行するものである。
図29は、この発明の実施の形態17によるLDPC符号復号装置の構成を示すブロック図である。実施の形態17によるLDPC符号復号装置1は、上記実施の形態で示した構成と同様に受信LLR算出部2と復号コア部3で構成される。但し、実施の形態17による復号コア部3は、復号途中結果保持部4、制御部7及び復号結果判定部8の他、行重みの大きさに応じて並列に行処理を実行する行処理部5−1〜5−w及びこれらの処理結果に応じて列処理を実行する列処理部6を有する。
つまり、通常、Shuffled BPアルゴリズムでは、選択した1列において1を持つ行の行処理を行い、その列の列処理を行う。これに対して、実施の形態17によるLDPC符号復号装置1では、Shuffled BPアルゴリズムで復号を行うにあたり、行処理及び列処理の演算を並列に実行する。
次に動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力すると、当該受信情報から受信LLRを算出する。次に初期化ステップにおいて、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
続いて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで、上記式(1)の条件に対し、上記式(2)、(3)に従う行処理部5−1〜5−wによる行処理及び上記式(4)、(5)に従う列処理部6による列処理からなる繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
図30は、図29中の行処理部及び列処理部による復号演算を説明するためのブロック図である。この図を用いて復号演算の流れを説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5−1〜5−wは、1列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6へ受け渡す。
次に、g=2のとき、列処理部6は、1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。一方、行処理部5−1〜5−wは、2列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。
続いて、g=3のとき、列処理部6は、2列目の列処理を行い、処理結果を途中結果保持部4に保持させる。行処理部5−1〜5−wでは、3列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。
同様に、g=4以降において、行処理部5−1〜5−wによって4列目以降の列に1を持つw行分の行に対する行処理を並列に逐次実行し、各処理結果が列処理部6に受け渡される。一方、列処理部6では3列目以降の列処理を逐次実行して、各処理結果を途中結果保持部4に保持する。このように復号演算を並列化することで、処理時間を削減することができる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
なお、上述したように行処理と列処理を並列化した場合、次の行処理には1列前の行処理の結果が反映できず、Shuffled BPアルゴリズムの特徴である効率的な確率伝搬を遅らせるように見える。しかしながら、一般的にLDPC符号の行列で1を持つ要素は非常に疎であり、隣の列に1を持つことはほとんどない。このため、通常のLDPC符号の検査行列であれば、確率伝搬に大きく影響することはない。
図31は、図29中の行処理部及び列処理部による他の復号演算を説明するためのブロック図である。上述したように、一般的なShuffled BPアルゴリズムであれば、隣の列に1を持つことはほとんどないため、確率伝搬に大きく影響することはないが、上記実施の形態12で示した図21のLDPC符号の行列のように検査ビット部分の1が隣り合っている場合、図31に示すように並列化した行処理のみを行えば良い。
繰り返しi回目の復号演算を例に挙げて具体的に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5−1〜5−wは、1列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6へ受け渡す。列処理部6では、1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、g=2のとき、行処理部5−1〜5−wは、2列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。列処理部6では、2列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3のとき、行処理部5−1〜5−wでは、3列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。列処理部6は、3列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
同様に、g=4以降において、行処理部5−1〜5−wによって4列目以降の列に1を持つw行分の行に対する行処理を並列に逐次実行し、各処理結果が列処理部6に受け渡される。一方、列処理部6では4列目以降の列処理を逐次実行して、各処理結果を途中結果保持部4に保持する。
以上のように、この実施の形態17によれば、Shuffled BPアルゴリズムにおける復号演算を並列に実行する行処理部5−1〜5−w及び列処理部6を設けたので、復号演算に係る処理時間を短縮することができ、復号処理による遅延時間を削減することが可能となる。
なお、上記実施の形態17では、Shuffled BPアルゴリズムの行処理及び列処理の演算を並列化した例を示したが、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、他の復号アルゴリズムでも同様に適用することができる。
実施の形態18.
この実施の形態18は、Shuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムで、巡回構造を持つLDPC符号を復号するにあたり符号構造に基づいて復号演算を並列に実行する。
本実施の形態18によるLDPC符号復号装置は、図29に示した上記実施の形態17によるLDPC符号復号装置と基本的に同様な構成を有しているが、巡回構造を持つLDPC符号の符号構造に基づいて復号演算を並列に実行するために各行処理部の処理内容が異なる。以降では、Shuffled BPアルゴリズムにおいて、擬似巡回符号の符号構成の特徴を利用して復号演算を並列に処理する構成を例に挙げて具体的に説明する。
擬似巡回符号は、図32に模式図で示すように、単位行列である基本行列I(0)と基本行列を巡回置換した行列I(1),I(2),I(3),・・・,I(k)の組み合わせで構成される。構成された擬似巡回符号をH=[Hm,n]とする。ここで、nは0以上N未満の整数、mは0以上M未満の整数であり、Hm,nはHのm行n列目要素とする。集合[1,N]の部分集合N(m)をN(m)={n:Hm,n=1}、M(n)をM(n)={m:Hm,n=1}と定義する。
つまり、N(m)は検査行列Hのm行において1が立っている列インデックスの集合を意味し、M(n)は検査行列Hのn行において1が立っている行インデックスの集合を指す。また、単位行列の大きさを(p×p)とする。図32の例では、N=4p,M=3pとなっており、擬似巡回符号には以下の特徴がある。
(特徴1)
M(n)={m:Hm,n=1}(nは1以上p以下)において、互いに同じ行に1を持たない。
M(n)={m:Hm,n=1}(nはp以上2p以下)において、互いに同じ行に1を持たない。
M(n)={m:Hm,n=1}(nは2p以上3p以下)において、互いに同じ行に1を持たない。
(特徴2)
N(m)={n:Hm,n=1}(mは1以上p以下)において、互いに同じ列に1を持たない。
N(m)={n:Hm,n=1}(mはp以上2p以下)において、互いに同じ列に1を持たない。
N(m)={n:Hm,n=1}(mは2p以上3p以下)において、互いに同じ列に1を持たない。
このような擬似巡回符号では、Shuffled BPアルゴリズムで復号を行う際、特徴1からnが1以上p以下のときでは列処理を並列して行うことができ、特徴2からmが1以上p以下のとき行処理を並列して行う際に同じ列を呼び出すことがなく、ハードウェアで構成する場合には同じメモリにアクセスすることがないという利点がある。
本実施の形態18によるLDPC符号復号装置は、上述したように、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により擬似巡回符号の符号構成の特徴を利用して復号演算が並列に処理される。復号コア部3は、途中結果保持部4、行処理部5−1〜5−p、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4は、上記実施の形態17で説明したように、行処理部5−1〜5−p及び列処理部6による復号の途中結果を保持する。行処理部5−1〜5−pは、図32に示す疑似巡回符号の単位行列の全ての行に対応するp行分設けられ、巡回構造の基本行列の大きさに並列化されている。列処理部6は列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
次に動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力すると、当該受信情報から受信LLRを算出する。次に初期化ステップにおいて、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
続いて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで、行処理部5−1〜5−pによる行処理及び列処理部6による列処理からなる繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
図33は、実施の形態18による行処理部及び列処理部の復号演算を説明するためのブロック図である。この図を用いて復号演算の流れを説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、行処理部5−1〜5−pは、1行目からp行目まで1列からp列までに関連した行処理を並列に実行し、p行目から2p行目までの1列からp列までに関連した行処理を並列に実行し、2p行目から3p行目までの1列からp列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。
ここで、1列からp列までに関連した行処理では、下記式(27)の条件に対し、上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、1列目からp列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目までp列から2p列までに関連した行処理を並列に実行し、p行目から2p行目までのp列から2p列までに関連した行処理を並列に実行し、2p行目から3p行目までのp列から2p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、p列から2p列までに関連した行処理では、上記式(27)におけるnをpから2pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、p列目から2p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目まで2p列から3p列までに関連した行処理を並列に実行し、p行目から2p行目までの2p列から3p列までに関連した行処理を並列に実行し、2p行目から3p行目までの2p列から3p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、2p列から3p列までに関連した行処理では、上記式(27)におけるnを2pから3pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、2p列目から3p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目まで3p列から4p列までに関連した行処理を並列に実行し、p行目から2p行目までの3p列から4p列までに関連した行処理を並列に実行し、2p行目から3p行目までの3p列から4p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、3p列から4p列までに関連した行処理では、上記式(27)におけるnを3pから4pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、3p列目から4p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
なお、上述した処理例では、疑似巡回符号の特徴2を利用して行処理を1〜p,p〜2p,2p〜3pに分けて行処理する例を示したが、1〜3pの全てを並列に実行させることも可能である。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態18によれば、擬似巡回符号のように巡回構造を持ったLDPC符号をShuffled BPアルゴリズムで復号する場合に、巡回構造の特徴を利用するので、行処理及び列処理の並列化が可能となり、復号演算に係る処理時間を短縮することができることから復号処理に要する遅延時間を削減することができる。
なお、上記実施の形態18では、Shuffled BPアルゴリズムを例に挙げて説明したが、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う他の復号アルゴリズムでも同様に適用することができる。また、巡回構造を持つLDPC符号として擬似巡回符号を例に挙げたが、他の巡回構造を持つLDPC符号でも同様である。
実施の形態19.
この実施の形態19は、Max−Log−MAPアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMax−Log−MAPアルゴリズムを復号アルゴリズムとして備えるものである。
図34は、この発明の実施の形態19によるTurbo符号復号装置の構成を示すブロック図である。本実施の形態19によるTurbo符号復号装置24は、受信値保持部25及びTurbo復号処理部26から構成される。Turbo符号では、情報ビット系列diとそのパリティビット系列p1 i、インタリーブした情報ビット系列のパリティビット系列p2 iを符号化情報として送信する。受信値保持部25は、それらの受信値Ri、P1 i、P2 iを分けてそれぞれの受信値を保持し、Turbo復号処理部26に出力する。Turbo復号処理部26は、途中結果保持部27、メトリック計算部28、インタリーブ処理部29及び繰り返し制御部30から構成される。
途中結果保持部27は、受信値保持部25から入力した受信値に基づくメトリック計算部28による復号処理の途中結果を保持する。メトリック計算部28は、上述した補正項による補正を行う補正型のMax−Log−MAPアルゴリズムによるメトリック計算を行い、復号結果を出力する。インタリーブ処理部29はTurbo符号化に従ったインタリーブ処理を行う。繰り返し制御部30は、メトリック計算部28とインタリーブ処理部29による復号処理の繰り返しを制御する。
メトリック計算部28では、Max−Log−MAPアルゴリズムでの処理が
であるのに対し,
と最大値を補正しながらメトリック値の算出と更新を行う。
なお、上記式(29)において、Max−Log−MAPアルゴリズムに対する補正項となるδについては、Log−MAPアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Log−MAPアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切に値を設定することで復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
インタリーブ処理部29では、復号したいTurbo符号のインタリーブ処理を行うための情報をメトリック計算部28に与え、繰り返し制御部30では繰り返し回数とインタリーブを行う場合と行わない場合の制御を行う。
次に動作について説明する。
図35は、実施の形態19によるTurbo符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信値保持部25は、受信情報として受信値Ri、P1 i、P2 iを分けて保持しておく(ステップST1)。次に初期化ステップ(ステップST2)において、繰り返し制御部30は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST3において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)までメトリック計算部とインタリーブ処理部による繰り返し復号処理であるステップ1を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、メトリック計算部5は、復号したいTurbo符号に対して繰り返しi回目の復号演算におけるインタリーブのない受信値に対するメトリック計算を行う。具体的に説明すると、受信値Ri、P1 iに対し、上記式(29)で補正を行うMax−Log−MAPアルゴリズムに従ってメトリック計算を行い、処理結果を途中結果保持部27に保持させる。インタリーブのないメトリック計算を行うには、受信値Ri、P1 iを受信値保持部から呼び出す際にiを先頭から順にインクリメントして行う。
ステップ2では、メトリック計算部28が、復号したいTurbo符号に対して繰り返しi回目の復号演算におけるインタリーブのあるメトリック計算を行う。具体的に説明すると、受信値P2 iとインタリーブした受信値Riに対し、上記式(29)で補正を行うMax−Log−MAPアルゴリズムに従ってメトリック計算を行い、メトリック値を途中結果保持部27に保持させる。受信値Riをインタリーブするには、受信値保持部25から受信値を呼び出す際に、インタリーブ処理部から呼び出す番号iの情報を受けて呼び出すことで行う。
このようにして、繰り返し制御部30は、繰り返し回数が設定した最大値Imaxとなるまで、ステップ1、2を繰り返すようにメトリック計算部とインタリーブ処理部を制御する。
繰り返し制御部30により設定された繰り返し回数iが最大値Imaxとなれば、ステップST4として、繰り返し制御部30がメトリック計算部28及びインタリーブ処理部29による復号処理を終了させ、メトリック計算部から復号結果を出力する。
以上のように、この実施の形態19によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMax−Log−MAPアルゴリズムに従って復号処理を実行するので、従来のLog−MAPアルゴリズムからの復号性能の劣化を抑えることができる上、従来のMax−Log−MAPアルゴリズムと比較すると格段に復号性能を向上させることができる。
さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態19によるTurbo復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態20.
本実施の形態20では、前述した実施の形態1から実施の形態19までの復号処理を適用するシステムについて説明する。例えば、本発明に係るLDPC復号処理は、移動体通信(端末、基地局)、無線LAN、光通信、衛星通信、量子暗号装置等、通信機器全般に適用できる。具体的には、図36に示すように、LDPC符号化器31、変調器32、通信路33、復調器34、及びLDPC復号器35を含んでなるシステムを構成し、このシステムにおけるLDPC復号器35として、上記実施の形態1〜19に示す復号器を搭載し、誤り訂正を行う。
図37は、この発明に係る復号処理を、移動体端末36及びこの移動体端末36と通信を行う基地局37を備えた移動体通信システムに適用した場合の構成例を示す図である。図において、移動体端末36は、LDPC符号化器31、変調器32、復調器34、LDPC復号器35及びアンテナ42を備える。また、基地局37は、LDPC復号器43、復調器44、変調器45、LDPC符号化器46及びアンテナ47を備えている。
移動体端末36及び基地局37のLDPC復号器35,43としては、前述した実施の形態1〜19で説明した構成のLPDC復号器を適用する。
上記のように構成される移動体通信システムにおいて、移動体端末36からデータを送信する場合は、データをLDPC符号化器37が符号化し、変調器38とアンテナ41を介して無線通信路へ送出する。
一方、基地局37では、無線通信路中で発生した誤りを含む受信信号を、アンテナ47と復調器44を介して受け取り、復調後の受信データをLDPC復号器43にて訂正する。なお、ネットワークから移動体端末36が各種データを受信する場合についても、上記と同様の処理で、基地局37が移動体端末36へ符号化データを送信し、移動体端末36が各種データを受信して復号する。
基地局37が移動体端末36へ符号化データを送信する場合は、データをLDPC符号化器46により符号化し、符号化データを変調器45とアンテナ47を介して無線通信路へ送出する。一方、移動体端末36では、無線通信路中で発生した誤りを含む受信信号を、アンテナ42と復調器34を介して受け取り、復調後の受信データをLDPC復号器35にて訂正する。
以上のように、この実施の形態20によれば、上記実施の形態1から上記実施の形態19までに示した復号処理を移動体通信システムに適用したので、移動体端末36及び基地局37による復号処理において、上記実施の形態1から上記実施の形態19までに示した効果をそれぞれ得ることができる。