(57)【特許請求の範囲】
【請求項１】
低密度パリティチェック符号化された受信信号を受け取り、前記受信信号の確率的な信頼度を表わす事前確率から、パリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求めることにより復号処理を行なう復号化装置であって、
前記事前確率を初期値とする前記事後確率と第１の確率メッセージとから第２の確率メッセージを求めるビットノード処理部と、
前記ビットノード処理部が求めた前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求めるチェックノード処理部と、
前記ビットノード処理部が求めた前記第２の確率メッセージと、前記チェックノード処理部が求めた前記第１の確率メッセージの更新値とに基づいて、前記事後確率の更新値を求める事後確率更新処理部と
を含み、前記チェックノード処理部において、前記第１の確率メッセージを求めるＢＰアルゴリズムの式をヤコビアンロガリズムにより展開し更に数学的帰納法により展開した近似式に基づいて、前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求めることを特徴とする復号化装置。
【請求項２】
前記近似式は、前記ヤコビアンロガリズムによる展開により導入される関数ｆ（ｘ）＝ｌｎ（１＋ｅ−｜ｘ｜）について、複数の関数ｆ（ｘ）のうちでｘの値が比較的大きな関数ｆ（ｘ）の群を削除することにより近似がなされていることを特徴とする請求項１記載の復号化装置。
【請求項３】
前記関数ｆ（ｘ）の群を削除することに生じる誤差について、前記複数の関数ｆ（ｘ）のうち残された部分について係数を掛けることにより、前記誤差が削減されていることを特徴とする請求項２記載の復号化装置。
【請求項４】
低密度パリティチェック符号化された受信信号を受け取り、前記受信信号の確率的な信頼度を表わす事前確率から、パリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求めることにより復号処理を行なう復号化方法であって、
前記事前確率を初期値とする前記事後確率と第１の確率メッセージとから第２の確率メッセージを求め、
前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求め、
前記第２の確率メッセージと前記第１の確率メッセージの前記更新値とに基づいて、前記事後確率の更新値を求める
各段階を含み、前記第１の確率メッセージを求めるＢＰアルゴリズムの式をヤコビアンロガリズムにより展開し更に数学的帰納法により展開した近似式に基づいて、前記第２の確率メッセージに基づいて前記第１の確率メッセージの前記更新値を求めることを特徴とする復号化方法。
【請求項５】
前記近似式は、前記ヤコビアンロガリズムによる展開により導入される関数ｆ（ｘ）＝ｌｎ（１＋ｅ−｜ｘ｜）について、複数の関数ｆ（ｘ）のうちでｘの値が比較的大きな関数ｆ（ｘ）の群を削除することにより近似がなされていることを特徴とする請求項４記載の復号化方法。
【請求項６】
２個の前記第２の確率メッセージに対するＢＰアルゴリズムの式をヤコビアンロガリズムにより展開した展開式を求め、ｎ個（ｎ：３以上の自然数）の前記第２の確率メッセージに対するＢＰアルゴリズムの式を、上記展開式に基づいて数学的帰納法により展開し、更に近似することにより、前記近似式を求めることを特徴とする請求項１記載の復号化装置。
【請求項７】
２個の前記第２の確率メッセージに対するＢＰアルゴリズムの式をヤコビアンロガリズムにより展開した展開式を求め、ｎ個（ｎ：３以上の自然数）の前記第２の確率メッセージに対するＢＰアルゴリズムの式を、上記展開式に基づいて数学的帰納法により展開し、更に近似することにより、前記近似式を求めることを特徴とする請求項４記載の復号化方法。
【請求項８】
αｎは着目チェックノードからｎ番目のビットノードへの前記第１の確率メッセージであり、βｋ（ｋ＝１，２，・・・，ｎ）はｋ番目のビットノードから着目チェックノードへの前記第２の確率メッセージであるとしたときに、
2tanh-1(tanh(β1/2)tanh(β2/2))
をヤコビアンロガリズムにより展開した展開式を求め、
αn=2tanh-1(tanh(β1/2)tanh(β2/2)…tanh(βn/2))（ｎ：３以上の自然数）
を上記展開式に基づいて数学的帰納法により展開し、更に近似することにより、前記近似式を求めることを特徴とする請求項１記載の復号化装置。
【請求項９】
αｎは着目チェックノードからｎ番目のビットノードへの前記第１の確率メッセージであり、βｋ（ｋ＝１，２，・・・，ｎ）はｋ番目のビットノードから着目チェックノードへの前記第２の確率メッセージであるとしたときに、
2tanh-1(tanh(β1/2)tanh(β2/2))
をヤコビアンロガリズムにより展開した展開式を求め、
αn=2tanh-1(tanh(β1/2)tanh(β2/2)…tanh(βn/2))（ｎ：３以上の自然数）
を上記展開式に基づいて数学的帰納法により展開し、更に近似することにより、前記近似式を求めることを特徴とする請求項４記載の復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に復号化装置及び復号化方法に関し、詳しくはＬＤＰＣ符号に対する復号化装置及び復号化方法に関する。
【背景技術】
【０００２】
ＬＤＰＣ（Low Density Parity Check:低密度パリティ検査）とは、送信信号がチャネル雑音により誤って受信された場合に、その誤りを訂正する手法の一つである。ＬＤＰＣ符号を用いた送受信方式では、誤り訂正を行うためにＬＤＰＣ検査行列Ｈが用いられる。送信信号Ｔｘは、送信側においてＨ×Ｔｘ＝０となるようにして送信している。従って送信した信号が受信側で正しく受信された場合には、受信信号ＲｘはＨ×Ｒｘ＝０という条件を満たすことになる。このＨ×Ｒｘという計算をパリティ検査と呼ぶ。
【０００３】
図１は、ＬＤＰＣ符号を用いた送受信モデルを示す図である。送信側１０からＨ×Ｔｘ＝０となるように送信した送信信号Ｔｘ＝［００１００１］が、伝送路においてチャネル雑音を受け、受信信号Ｒｘ＝［０１１００１］として受信側１２に受信される。この受信信号Ｒｘに対するパリティ検査Ｈ×Ｒｘの結果はゼロにならず、受信信号Ｒｘには誤りがあることが分かる。受信側１２では、ＬＤＰＣ復号化を行なうＬＤＰＣ復号器を用いて、Ｈ×Ｒｘ＝０となるように誤り訂正を行う。これにより誤り訂正後の受信信号Ｒｘ'＝［００１００１］が得られる。
【０００４】
図２は、パリティ検査で用いる行列計算の定義を示す図である。図２に示すように、パリティ検査の行列計算では、通常の行列演算の積和計算において「積」が論理積（＆）演算となり、「和」が排他的論理和（ＸＯＲ）となった演算を行なう。
【０００５】
ＬＤＰＣ復号処理では、受信信号の確率的な信頼度情報である対数尤度比ＬＬＲ（Log Likelihood Ratio）から算出した確率情報を更新していくことにより、パリティ検査結果がゼロになるような受信信号を求める。ＬＤＰＣ復号アルゴリズムとして、良好な訂正能力を持つＬａｙｅｒｅｄ復号アルゴリズムが一般的に用いられる。
【０００６】
図３はＬａｙｅｒｅｄアルゴリズムを用いたＬＤＰＣ復号器の構成の一例を示す図である。ＬＤＰＣ復号器２０は、確率演算処理部２１とパリティ検査部２２とを含む。ＬＤＰＣ復号器２０への入力λは受信信号から導出した値で、送信信号が０なのか１なのかを確率的に表した事前確率であり、ＬＬＲ（Log-Likelihood Ratio）と呼ばれる。ＬＤＰＣ復号器２０の出力Ｒｘ'は誤り訂正後の受信信号である。確率演算処理部２０は、事前確率λに基づいて事後確率ｓｕｍを求め、反復処理により事後確率ｓｕｍを更新していくことにより、確率を高める処理を行なう。パリティ検査部２２は、事後確率ｓｕｍを用いてＲｘ'を算出してパリティ検査Ｈ×Ｒｘ'の演算を行なう。このパリティ検査の結果がゼロであるか否かに基づいて、復号処理を終了するか或いは事後確率ｓｕｍをフィードバックして反復処理をもう一回繰返すかが制御される。
【０００７】
確率演算処理部２１は、ビットノード処理部２５、チェックノード処理部２６、及び事後確率更新処理部２７を含む。ビットノード処理部２５は、事前確率λと事後確率ｓｕｍと確率α（確率メッセージα）とを用いて確率β（確率メッセージβ）を算出する。これら確率αと確率βとについては、後程説明する。チェックノード処理部２６は、確率βを用いて確率αを更新する。図３では更新後の確率αをα'として示してある。事後確率更新処理部２７は、ビットノード処理部２５で算出したβとチェックノード処理部２６で算出したα'とを用いて事後確率ｓｕｍを更新する。図３では更新後の事後確率ｓｕｍをｓｕｍ'として示してある。
【０００８】
図４は、タナーグラフを説明するための図である。チェックノード処理、ビットノード処理、及び事後確率更新処理の説明は、タナーグラフ表現を用いることで容易になる。（ａ）には、検査行列Ｈの例を示す。各列をｂ１乃至ｂ６で示し、各行をｃ１乃至ｃ４で示す。（ｂ）には、（ａ）に示す検査行列Ｈを用いたパリティ検査による誤り無しの条件を示す。即ち誤り無しの場合には、要素Ｒｘ１乃至Ｒｘ６からなる受信信号列に検査行列Ｈを掛けて得られる列において、各要素の値がゼロとなる。（ｃ）は、（ａ）に示す検査行列Ｈに等価なタナーグラフを示す。タナーグラフにおいては、検査行列Ｈの各列ｂ１乃至ｂ６に対応して設けたノードをビットノードｂ１乃至ｂ６と呼び、検査行列Ｈの各行ｃ１乃至ｃ４に対応して設けたノードをチェックノードｃ１乃至ｃ４と呼ぶ。検査行列Ｈにおいて値が"１"である要素に対応するビットノードｂｎとチェックノードｃｍとの間を線（エッジ）で連結することにより、タナーグラフが得られる。例えば、（ａ）に示す検査行列Ｈの第２行ｃ２の各要素の値は［１１１０１０］である。これらの値"１"の位置に対応して、（ｃ）に示すタナーグラフにおいては、チェックノードｃ２にビットノードｂ１、ｂ２、ｂ３、ｂ５からのエッジが連結される。
【０００９】
ここで（ｃ）に示すように、チェックノードｃ１乃至ｃ４の各々について、受信信号列の要素を排他的論理和で結合した拘束条件が定義される。例えばチェックノードｃ２については、Ｒｘ１＋Ｒｘ２＋Ｒｘ３＋Ｒｘ５＝０が拘束条件となる（"＋"は排他的論理和）。全てのチェックノードｃ１乃至ｃ４についての拘束条件が満たされることが、（ｂ）に示すパリティ検査における誤り無しの条件と等価となる。
【００１０】
このようにパリティ検査条件とタナーグラフとは等価な表現である。なおタナーグラフにおいてビットノードは、受信信号の各ビットの事後確率を表しており、チェックノードは、パリティ検査における誤り検出判定に用いる拘束条件を表している。エッジに対し、チェックノードからビットノード方向への確率メッセージをαと定義し、ビットノードからチェックノード方向への確率メッセージをβと定義する。つまり、エッジ一本に対し一つのαと一つのβとが存在する。
【００１１】
チェックノード処理とは、確率βを用いて、確率αを計算する処理である。βの初期値はλである。図４のチェックノードｃ１に注目すると、Ｒｘ１＋Ｒｘ２＋Ｒｘ４＋Ｒｘ６＝０を満足すればｃ１の拘束条件を満足できる。この拘束条件は、排他的論理和の特性により、Ｒｘ１＝Ｒｘ２＋Ｒｘ４＋Ｒｘ６と表わすことができる。すなわち、Ｒｘ１の確率を計算する時に、Ｒｘ１を用いないで計算することができる。
【００１２】
図５はタナーグラフ表現によりチェックノード処理を示す図である。図５（ａ）は、チェックノードｃｍとビットノードｂｎに対するチェックノード処理を説明するための図である。図５（ａ）に示すように、Ａ（ｍ）はチェックノードｃｍに接続する全てのビットノードの集合を表わし、Ａ（ｍ）＼ｎは、Ａ（ｍ）からｂｎを除いたビットノードの集合を表わす。αｍｎはチェックノードｃｍからビットノードｂｎへの確率メッセージであり、βｍｎはビットノードｂｎからチェックノードｃｍへの確率メッセージである。ｃｍの拘束条件を利用することにより、βｍｎを使わずにαｍｎを計算することができる。例えば、図４（ｃ）のチェックノードｃ１に着目した場合、図５（ｂ）に示すようにチェックノードｃ１に接続しているビットノードの集合はｂ１、ｂ２、ｂ４、ｂ６である。この場合、ｃ１の拘束条件を利用することにより、β１１を使わずに確率β１２、β１４、β１６に基づいてα１１を計算することができる。
【００１３】
ビットノード処理とは、確率αと事前確率λとを用いて確率βを算出する処理である。図６はタナーグラフ表現によりビットノード処理を示す図である。βの計算式は、
【００１４】
【数１】
0005493602.tif 000002
と表すことができる。ここで図６（ａ）に示すように、Ｂ（ｎ）はビットノードｂｎに接続する全てのチェックノードの集合を表わし、Ｂ（ｎ）＼ｍはＢ（ｎ）からｃｍを除いたチェックノードの集合を表わす。例えば、図４のビットノードｂ１に着目した場合、図６（ｂ）に示すようにビットノードｂ１に接続しているチェックノード集合はｃ１、ｃ２、ｃ３である。この場合、β１１＝λ１＋α２１＋α３１と計算することができる。
【００１５】
事後確率更新処理は、ビットノードｂｎに接続している全てのエッジの確率αとλとの総和ｓｕｍ（ｎ）を計算する処理である。即ち、事後確率更新処理の演算は、
【００１６】
【数２】
0005493602.tif 000003
と表すことができる。これは事前確率λｎに対して、チェックノードの拘束条件によって計算したαを加算することにより、事前確率よりも信頼度を高めた事後確率ｓｕｍ（ｎ）を求めることを意味している。なお事前確率λｎは、送信信号Ｔｘｎが０又は１である確率を受信信号Ｒｘｎに基づいて求めた値であり、事後確率ｓｕｍ（ｎ）は、一連の観測受信信号Ｒｘ１乃至Ｒｘ６を受信したという条件及びチェックノードの拘束条件の下で、送信信号Ｔｘｎが０又は１である確率を示す値である。
【００１７】
ここでビットノードｂｎに対して、上記数２を変形して上記数１のβｍｎを代入することにより、
【００１８】
【数３】
0005493602.tif 000004
と表わすことができる。また上式のαｍｎを移項することにより、
【００１９】
【数４】
0005493602.tif 000005
と表わすことができる。図７（ａ）に、ビットノードｂｎに対するｓｕｍ（ｎ）と、βｍｎと、αｍｎとの関係を模式的に示す。例えば図４のビットノードｂ１に着目した場合、図7（ｂ）に示すように、ビットノードｂ１にはチェックノードｃ１、ｃ２、ｃ３が接続される。ここで、
【数５】
0005493602.tif 000006
であるので、β１１とｓｕｍ（１）とは、
【数６】
0005493602.tif 000007
により計算することができる。具体的には、更新前のｓｕｍ（１）からα１１を減算して図３のビットノード処理部２５がβ１１を求め、このβ１１とチェックノード処理部２６が計算した更新後のα１１とを加算して図３の事後確率更新処理部２７が更新後のｓｕｍ（１）を求める。図７（ｂ）に、ビットノードｂ１に対するｓｕｍ（１）と、β１１と、α１１との関係を模式的に示す。
【００２０】
以下Ｌａｙｅｒｅｄアルゴリズムのチェックノード処理におけるαの計算の仕方について説明する。Ｌａｙｅｒｅｄアルゴリズムには、チェックノード処理におけるβからαを求める計算式の違いにより、Layered BPアルゴリズム、Layered Min-sumアルゴリズム、及びLayered Normalized Min-sumアルゴリズムがある。
【００２１】
図８は、Layered BP、Layered Min-sum、及びLayered Normalized Min-sumの数式比較を示す図である。Layered BPアルゴリズムにおけるαの計算式は図８に示す式（1）である。この式（１）に基づいてαを計算することにより、良好なＢＥＲ（Bit Error Rate）特性を得ることができる。しかしながら式（１）の計算をハードウェアで実現することは困難であり、Layered BPアルゴリズムは一般的に用いられない。そこで、式（１）を式（２）に変形し、更に項Ｅ１を切り捨てた式（３）を用いることが考えられる。この式（３）をα計算に用いるアルゴリズムをLayered Min-sumアルゴリズムと呼ぶ。図８において、Layered BPアルゴリズムにより求められるαｍｎの値の大きさを模式的にバー３１の長さで示している。またLayered Min-sumアルゴリズムにより求められるαｍｎの値の大きさを模式的にバー３２の長さで示している。バー３１とバー３２との長さの違いとして表わされるように、Layered Min-sumアルゴリズムにより求められるαｍｎの値は、Layered BPアルゴリズムにより求められるαｍｎの値に比較して誤差Ｅ１を含んでいる。
【００２２】
Layered Min-sumアルゴリズムのハードウェア実現は比較的容易であるが、項Ｅ１を切り捨てたことにより、ＢＥＲ特性はLayered BPアルゴリズムより劣化することが知られている。そこで、式（３）に１未満の定数Normalization factor(γ)を掛けた式（４）をα計算に用いて、誤差量を削減することが考えられる。この式（４）をα計算に用いるアルゴリズムをLayered Normalized Min-sumアルゴリズムと呼ぶ。図８において、Layered Normalized Min-sumアルゴリズムにより求められるαｍｎの値の大きさを模式的にバー３３の長さで示している。図８に示されるように、バー３３の長さは、バー３２の長さをγ倍に縮小することで、バー３１に近い長さとなるように補正されている。即ち、Layered Normalized Min-sumアルゴリズムにより求められるαｍｎの値の大きさは、Layered Min-sumアルゴリズムにより求められるαｍｎの値よりも、Layered BPアルゴリズムにより求められるαｍｎの値に近くなっている。このLayered Normalized Min-sumアルゴリズムは、ハードウェア実現の容易性がLayered Min-sumと略変わらずにLayered BPのＢＥＲ特性に近づくことができるので、一般的に用いられているアルゴリズムである。
【００２３】
図９は、Layered Normalized Min-sumアルゴリズムのフローチャートを示す。ステップＳ１で初期化処理を行なう。即ち、事後確率ｓｕｍｎ（上述のｓｕｍ（ｎ）と同一）に、初期値として事前確率λｎを代入する。ステップＳ２で、ビットノード処理を行なう。即ち、事後確率ｓｕｍｎからαｍｎを減算することでβｍｎを求める。ステップＳ３で、チェックノード処理を行なう。即ち、図８に示す式（４）を用いることにより、更新後のαｍｎを計算する。ステップＳ４で、事後確率更新処理を実行する。即ち、ステップＳ２のビットノード処理で求めたβｍｎとステップＳ３のチェックノード処理で求めた更新後のαｍｎとを加算することにより、更新後の事後確率ｓｕｍｎを求める。ステップＳ５で、全ての確率演算処理が完了したか否かを判断する。まだ実行すべき確率演算処理がある場合にはステップＳ２に戻り、以降の処理を繰り返す。全ての確率演算処理が完了すると、ステップＳ６に進む。ステップＳ６で、パリティ検査を実行する。即ち、求められた事後確率ｓｕｍｎから算出したＲｘ'に対して検査行列を掛けて、演算結果がゼロになるか否かを判断する。パリティ検査結果がゼロでなければ、ステップＳ２に戻り以降の処理を繰り返すことにより、事後確率ｓｕｍｎを再度更新する。パリティ検査結果がゼロになるまで、上記の処理を反復的に実行し、パリティ検査結果がゼロになると処理を終了する。
【００２４】
上述のように、Layered Normalized Min-sumアルゴリズムは、ハードウェア実現が比較的容易である。しかしながら、Layered BPアルゴリズムと比較した場合の誤差の大きさが十分に小さいとはいえず、劣悪な受信環境においては安定した受信ができなくなる。
【先行技術文献】
【非特許文献】
【００２５】
【非特許文献１】Jinghu Chen, Ajay Dholakia, Evangelos Eleftheriou, Marc P. C. Fossorier, Xiao-Yu Hu, "Reduced-Complexity Decoding of ＬＤＰＣ Codes," IEEE Trans. on Communications, vol. 53, no. 8, pp.1288-1299, Aug. 2005
【非特許文献２】Christopher Jones, Esteban Valles, Michael Smith, and John Villasenor, "Approximate-min constraint node updating for ＬＤＰＣ code decoding," Military Communications Conference (MILCOM), 2003
【非特許文献３】Mohammad M. Mansour, Naresh R. Shanbhag, "High-Throughput ＬＤＰＣ Decoders," IEEE Trans. VLSI Syst., vol. 11, no. 6, pp.976-996, Dec. 2003
【発明の概要】
【発明が解決しようとする課題】
【００２６】
以上を鑑みると、Layered Normalized Min-sumアルゴリズムよりも良好なＢＥＲ特性を有し、且つハードウェア実現が容易なアルゴリズムを用いた復号化装置及び復号化方法が望まれる。
【課題を解決するための手段】
【００２７】
低密度パリティチェック符号化された受信信号を受け取り、前記受信信号の確率的な信頼度を表わす事前確率から、パリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求めることにより復号処理を行なう復号化装置は、前記事前確率を初期値とする前記事後確率と第１の確率メッセージとから第２の確率メッセージを求めるビットノード処理部と、前記ビットノード処理部が求めた前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求めるチェックノード処理部と、前記ビットノード処理部が求めた前記第２の確率メッセージと、前記チェックノード処理部が求めた前記第１の確率メッセージの更新値とに基づいて、前記事後確率の更新値を求める事後確率更新処理部とを含み、前記チェックノード処理部において、前記第１の確率メッセージを求めるＢＰアルゴリズムの式をヤコビアンロガリズムにより展開し更に数学的帰納法により展開した近似式に基づいて、前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求めることを特徴とする。
【００２８】
また低密度パリティチェック符号化された受信信号を受け取り、前記受信信号の確率的な信頼度を表わす事前確率から、パリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求めることにより復号処理を行なう復号化方法は、前記事前確率を初期値とする前記事後確率と第１の確率メッセージとから第２の確率メッセージを求め、前記第２の確率メッセージに基づいて前記第１の確率メッセージの更新値を求め、前記第２の確率メッセージと前記第１の確率メッセージの前記更新値とに基づいて、前記事後確率の更新値を求める各段階を含み、前記第１の確率メッセージを求めるＢＰアルゴリズムの式をヤコビアンロガリズムにより展開し更に数学的帰納法により展開した近似式に基づいて、前記第２の確率メッセージに基づいて前記第１の確率メッセージの前記更新値を求めることを特徴とする。
【発明の効果】
【００２９】
本願開示の少なくとも１つの実施例によれば、Layered Normalized Min-sumと比較して、より厳密な近似を行うことでより良好なＢＥＲ特性を得ることができる。また、誤りが無くなるまでに必要な繰返し回数もそれに応じて減少することができる。繰返し回数は消費電力に直接関係があるので、復号化装置における消費電力を削減することができる。
【図面の簡単な説明】
【００３０】
【図１】ＬＤＰＣ符号を用いた送受信モデルを示す図である。
【図２】パリティ検査で用いる行列計算の定義を示す図である。
【図３】ＬＤＰＣ復号器の構成の一例を示す図である。
【図４】ＬＤＰＣパリティ検査条件のタナーグラフ表現を示す図である。
【図５】タナーグラフ表現によりチェックノード処理を示す図である。
【図６】タナーグラフ表現によりビットノード処理を示す図である。
【図７】タナーグラフ表現によりβｍｎとｓｕｍ（ｎ）との関係を示す図である。
【図８】Layered BP、Layered Min-sum、及びLayered Normalized Min-sumの数式比較を示す図である。
【図９】Layered Normalized Min-sumアルゴリズムを示すフローチャートである。
【図１０】関数ｆ（ｘ）を示す図である。
【図１１】誤差近似を示す図である。
【図１２】ＬＤＰＣ復号アルゴリズムを示すフローチャートである。
【図１３】Δ関数を示す図である。
【図１４】量子化した場合のＬＤＰＣ復号アルゴリズムを示すフローチャートである。
【図１５】ＬＤＰＣ復号器の構成の一例を示すブロック図である。
【図１６】シミュレーションにより得たＢＥＲ特性結果を示す図である。
【図１７】シミュレーションにより得た平均繰返し回数結果を示す図である。
【発明を実施するための形態】
【００３１】
本願発明においては、Layered Normalized Min-sumアルゴリズムより良好なＢＥＲ特性を得るために、前述の図８に示す式（２）における項Ｅ１に対しより厳密な近似を行うことで、性能劣化を削減する。従来のLayered Normalized Min-sumアルゴリズム等を導くにあたり、式（１）の計算はＡ（ｍ）＼ｎにおけるβに対して行なわれる。それに対して以下の説明では、チェックノードｃｍに接続する全てのビットノードの集合Ａ（ｍ）におけるβに対して計算を進めていく。この場合、式（１）は以下の式（５）に変形できる。
【００３２】
【数７】
0005493602.tif 000008
ここで、αｍｎのｍを省略してαｎと表記し、βｍｎのｍを省略してβｎと表記してある。またΠは、着目チェックノードに接続する全てのビットノードの集合に対する積算を示す。式（５）は、以下の式（６）（非特許文献１参照）を用いると式（７）に展開できる。
【００３３】
【数８】
0005493602.tif 000009
【数９】
0005493602.tif 000010
また式（６）は非特許文献２に記載されているようにヤコビアンロガリズム（Jacobian Logarithm）を用いて以下のように展開することができる。
【００３４】
【数１０】
0005493602.tif 000011
従って、以下の式（８）が得られる。
【００３５】
【数１１】
0005493602.tif 000012
ここで、
【数１２】
0005493602.tif 000013
と置くことにより、式（８）は式（９）と表現できる。
【００３６】
【数１３】
0005493602.tif 000014
【００３７】
以下において、式（９）を用いて式（７）の展開を行う。式（６）の＋計算は交換法則と結合法則とを満足するので、ｎ個のβの関係を｜β１｜＜｜β２｜＜・・・＜｜βｎ｜とすると、式（７）は数学的帰納法により式（１０）のように展開することができる。
【００３８】
【数１４】
0005493602.tif 000015
【００３９】
以下にその証明を示す。具体的には、式（９）が成り立つことが分かっており、そのとき、上記式（１０）が成り立つならば、
【００４０】
【数１５】
0005493602.tif 000016
が成り立つことを証明する。これにより、帰納的に、式（９）が成り立つならば、式（１０）が成り立つことが分かる。まず、
【数１６】
0005493602.tif 000017
という関係にあるＸとＹを定義しておく。これらＸとＹとを適宜使用し式（７）を変形していき、更に上記式（９）を用いると、
【数１７】
0005493602.tif 000018
となる。ここで、上記式の変形の最後において、上記式（１０）が成り立つという仮定を用いている。ここで
【数１８】
0005493602.tif 000019
である。従って、
【数１９】
0005493602.tif 000020
となる。
【００４１】
図１０は、関数ｆ（ｘ）を示す図である。図１０に示すように、関数ｆ（ｘ）はｘが比較的大きい時に限りなくゼロとなる特性がある。従って、前述の式（１０）において複数の関数ｆの項のうち、第一項ｆ（｜β２｜−｜β１｜）が支配的な値であるとみることができる。よって、式（１０）は式（１１）に変形できる。
【００４２】
【数２０】
0005493602.tif 000021
なお上記変形では、複数の関数ｆ（ｘ）のうちの１つのみを支配的な値であるとして残したが、複数個の関数ｆ（ｘ）のうちの比較的大きな値の複数個を支配的な値であるとして残してもよい。上記式（１１）と前述の図８に示す式（２）とを比べると、Ｅ１は以下のように表すことができる。
【００４３】
【数２１】
0005493602.tif 000022
【００４４】
図１１は、誤差近似を示す図である。バー４１は、その長さで模式的に項Ｅ１の値の大きさを示している。バー４２は、式（１２）から項Ｅ２を削除した第一項ｆ（｜β２｜−｜β１｜）の値の大きさを模式的に示している。バー４２が示す値は、バー４１が示す値に対して、削除した項の分の誤差Ｅ２を含んでいる。項Ｅ２を削除して第一項ｆ（｜β２｜−｜β１｜）のみを用いてより正確に項Ｅ１を近似するために、Normalization factor(γ')を掛けた式（１３）を用いる。バー４３は、その長さで模式的にｆ（｜β２｜−｜β１｜）にγ'を掛けた値の大きさを示している。図１１に示されるように、バー４３の長さは、バー４２の長さをγ'倍に縮小することで、バー４１に近い長さとなるように補正されている。
【００４５】
式（１１）中の［ｆ（｜β２｜−｜β１｜）−Ｅ２］をγ'ｆ（｜β２｜−｜β１｜）に置き換えることで、式（１４）に変形することができる。
【００４６】
【数２２】
0005493602.tif 000023
ここで、
【数２３】
0005493602.tif 000024
は図５（ａ）に示すようにチェックノードｃｍに接続する全てのビットノードの集合Ａ（ｍ）に対応するβのうちの最小値である。また
【数２４】
0005493602.tif 000025
は全てのビットノードの集合Ａ（ｍ）に対応するβのうちの第二最小値（２番目に小さい値）である。
【００４７】
ここまでの説明では、全てのビットノードの集合Ａ（ｍ）に対しての式を示したが、前述の図８に示す式（１）はＡ（ｍ）＼ｎに対しての計算であり、αｍｎの計算においてβｍｎを用いない。式（１４）に基づくα計算式は式（１５）のように表現できる。
【００４８】
【数２５】
0005493602.tif 000026
また
【数２６】
0005493602.tif 000027
は図５（ａ）に示すようにチェックノードｃｍに接続するビットノードの集合Ａ（ｍ）＼ｎに対応するβのうちの最小値である。また
【数２７】
0005493602.tif 000028
はビットノードの集合Ａ（ｍ）＼ｎに対応するβのうちの第二最小値（２番目に小さい値）である。
【００４９】
また、Ａ（ｍ）のβの最小値、第二最小値、第三最小値をそれぞれｍｉｎ１、ｍｉｎ２、ｍｉｎ３とした場合、Ａ（ｍ）＼ｎにおいてＡ（ｍ）から除外されるβｍｎがｍｉｎ１又はｍｉｎ２であるか否かに応じて、式（１６）は式（１５）を詳しく説明できる。
【００５０】
【数２８】
0005493602.tif 000029
【００５１】
図１２は、ＬＤＰＣ復号アルゴリズムを示すフローチャートである。ステップＳ１で初期化処理を行なう。即ち、事後確率ｓｕｍｎに、初期値として事前確率λｎを代入する。ステップＳ２で、ビットノード処理を行なう。即ち、事後確率ｓｕｍｎからαｍｎを減算することでβｍｎを求める。ステップＳ３で、チェックノード処理を行なう。即ち、上記の式（１５）を用いることにより、更新後のαｍｎを計算する。ステップＳ４で、事後確率更新処理を実行する。即ち、ステップＳ２のビットノード処理で求めたβｍｎとステップＳ３のチェックノード処理で求めた更新後のαｍｎとを加算することにより、更新後の事後確率ｓｕｍｎを求める。ステップＳ５で、全ての確率演算処理が完了したか否かを判断する。まだ実行すべき確率演算処理がある場合にはステップＳ２に戻り、以降の処理を繰り返す。全ての確率演算処理が完了すると、ステップＳ６に進む。ステップＳ６で、パリティ検査を実行する。即ち、求められた事後確率ｓｕｍｎから算出したＲｘ'に対して検査行列を掛けて、演算結果がゼロになるか否かを判断する。パリティ検査結果がゼロでなければ、ステップＳ２に戻り以降の処理を繰り返すことにより、事後確率ｓｕｍｎを再度更新する。パリティ検査結果がゼロになるまで、上記の処理を反復的に実行し、パリティ検査結果がゼロになると処理を終了する。
【００５２】
なお、式（１５）における係数γ'の値は、実際に用いる検査行列に応じて適宜決定することが好ましい。例えば、ＩＳＤＢ−Ｓ２（Integrated Services Digital Broadcasting via Satellite - Second Generation）への適用を考える場合、ＩＳＤＢ−Ｓ２の１１個の符号化率に対する検査行列におけるγ'の最適値をシミュレーションにより求めればよい。実際にそのようなシミュレーションを行なうと、γ'＝１／８の場合に最も良好なＢＥＲ特性が得られた。従って、ＩＳＤＢ−Ｓ２に適用する場合、以下の式（１７）をα計算として用いるとよい。
【００５３】
【数２９】
0005493602.tif 000030
【００５４】
また、ＩＳＤＢ−Ｓ２に対し、上記式（１６）（ａ）乃至（ｃ）のうちで、（ａ）又は（ｂ）となる場合は非常に少ないので、以下の式（１8）をαの計算式として近似的に用いることができる。
【００５５】
【数３０】
0005493602.tif 000031
【００５６】
以下に、上記式（１８）を用いたＬＤＰＣ復号器の実施例について説明する。まず式（１７）中の関数ｆ（ｘ）をハードウェア化するときに、非特許文献３に記載されているｆ（ｘ）の近似関数である以下のΔ関数を用いる。
【００５７】
【数３１】
0005493602.tif 000032
【００５８】
図１３は、Δ関数を示す図である。図１３から、関数Δ（ｘ）により関数ｆ（ｘ）が近似されていることが分かる。式（１８）において関数ｆ（ｘ）をΔ関数で置き換えると、式（２０）が得られる。
【００５９】
【数３２】
0005493602.tif 000033
式（２０）に式（１９）を代入すると、式（２１）が得られる。
【００６０】
【数３３】
0005493602.tif 000034
ただし、ｍａｘの中の第一項である５／６４−（ｍｉｎ２−ｍｉｎ１）／３２が負となることはほとんどないので、式（２１）の代りに以下の式（２２）を用いることができる。
【００６１】
【数３４】
0005493602.tif 000035
ハードウェア実現する際に、[−２，２]の範囲の小数である入力ＬＬＲ（λ）を６ビット量子化するために、ＬＬＲに１６を掛けて丸め近似を行うことにより、[−３２，３２]の範囲の整数λ＿ｑに置き換える。これに合わせて、式（２２）におけるαｍｎ、βｍｎ、（ｍｉｎ２−ｍｉｎ１）も１６を掛けて丸め近似することにより量子化し、αｍｎ＿ｑ、βｍｎ＿ｑ、（ｍｉｎ２＿ｑ−ｍｉｎ１＿ｑ）と書き換える。それに合わせて、式（２１）中の５／６４にも１６を掛けると、５／４になる。従って、式（２２）を６ビット量子化すると、以下の式（２３）が得られる。
【００６２】
【数３５】
0005493602.tif 000036
ここで、"＞＞ｘ"は右側にｘビットだけシフトするビットシフト演算を示す。
ただし、
【数３６】
0005493602.tif 000037
の場合は、αｍｎ＿ｑ＝０とする。
【００６３】
図１５は、ＬＤＰＣ復号器の構成の一例を示すブロック図である。図５のＬＤＰＣ復号器５０は、ビットノード処理部５１、チェックノード処理部５２、事後確率更新処理部５３、及びパリティ検査部５４を含む。ＬＤＰＣ復号器５０への入力λは上記のＬＬＲであり、送信信号が０なのか１なのかを確率的に表した事前確率である。ＬＤＰＣ復号器５０の出力Ｒｘ'は誤り訂正後の受信信号である。ビットノード処理部５１は、事前確率λと事後確率ｓｕｍと確率α（確率メッセージα）とを用いて確率β（確率メッセージβ）を算出する。チェックノード処理部５２は、確率βを用いて確率αを更新する。事後確率更新処理部５３は、ビットノード処理部５１で算出したβとチェックノード処理部５２で算出したαとを用いて事後確率ｓｕｍを更新する。パリティ検査部５４は、事後確率ｓｕｍを用いてＲｘ'を算出してパリティ検査Ｈ×Ｒｘ'の演算を行なう。このパリティ検査の結果がゼロであるか否かに基づいて、復号処理を終了するか或いは事後確率ｓｕｍをフィードバックして反復処理をもう一回繰返すかが制御される。
【００６４】
ビットノード処理部５１は、セレクタ６１及び加算器６２を含む。セレクタ６１は、初期状態においては事前確率λを選択して、それ以降は事後確率ｓｕｍを選択する。初期状態において、加算器６２は、事前確率λから確率αを減算することにより、確率βを算出する。それ以降は、加算器６２は、事後確率ｓｕｍから確率αを減算することにより、確率βを算出する。
【００６５】
チェックノード処理部５２は、絶対値算出部（ＡＢＳ）７１、最小値算出部（ＦＭＩＮ）７２、セレクタ７３、加算器７４、ビットシフト演算器７５、１格納部７６、加算器７７、加算器７８、符号抽出部（ｓｇｎ）７９、排他的論理和部（ＸＯＲ）８０、符号抽出部（ｓｇｎ）８１、排他的論理和部（ＸＯＲ）８２、ＦＩＦＯ８３、及び符号処理部８４を含む。チェックノード処理部５２、着目ビットノードｂｎ及び着目チェックノードｃｍに対して、上記式（２３）を計算するものである。絶対値算出部（ＡＢＳ）７１は、着目チェックノードｃｍに接続する全ビットノードの集合Ａ（ｍ）のβに対して、絶対値を求める。最小値算出部（ＦＭＩＮ）７２は、全ビットノードの集合Ａ（ｍ）のβのうちで最小値ｍｉｎ１と、最小値と第二最小値との差Δｍｉｎを算出する。加算器７４は、最小値ｍｉｎ１に差Δｍｉｎを加算することで、第二最小値ｍｉｎ２を求める。セレクタ７３は、βｍｎが最小値の場合にはｍｉｎ２を選択し、それ以外の場合にはｍｉｎ１を選択する。ビットシフト演算器７５は、式（２３）に示されるように、最小値と第二最小値との差Δｍｉｎを５ビット右シフトする。１格納部７６は格納値である値１を供給する。加算器７７は、値１からビットシフト演算器７５の出力を減算する。加算器７８は、セレクタ７３の出力するｍｉｎ１又はｍｉｎ２から、加算器７７の出力を減算することで、式（２３）のΠｓｇｎ（βｍｎ＿ｑ）以外の項を計算する。符号抽出部（ｓｇｎ）７９、排他的論理和部（ＸＯＲ）８０、符号抽出部（ｓｇｎ）８１、排他的論理和部（ＸＯＲ）８２、及びＦＩＦＯ８３は、式（２３）のΠｓｇｎ（βｍｎ＿ｑ）の部分を計算する。具体的には、排他的論理和部（ＸＯＲ）８０で、全ビットノードの集合Ａ（ｍ）についての全てのβの符号の掛け算を計算する。ＦＩＦＯ８３は、着目ビットノードｂｎ及び着目チェックノードｃｍに対してβｍｎを出力する。排他的論理和部（ＸＯＲ）８２により、Ａ（ｍ）についての全てのβの符号の掛け算に対して更にβｍｎの符号を掛け算することで、Ａ（ｍ）＼ｎについての全てのβの符号の掛け算を求める。即ち、Πｓｇｎ（βｍｎ＿ｑ）に対応する符号が求められる。符号処理部８４は、加算器７８の出力に対してΠｓｇｎ（βｍｎ＿ｑ）の符号を付けることで、式（２３）の値を算出する。
【００６６】
事後確率更新処理部５３は、加算器９１を含む。加算器９１は、αｍｎとβｍｎとを加算することで、事後確率ｓｕｍ（ｎ）を求める。事後確率更新処理部５３が求めた事後確率ｓｕｍ（ｎ）は、ビットノード処理部５１にフィードバックされるとともに、パリティ検査部５４に供給される。
【００６７】
上記のＬＤＰＣ復号化手法をＩＳＤＢ−Ｓ２における１１個の符号化率の検査行列に適用してシミュレーションを行った。シミュレーションは変調方式ＱＰＳＫ、通信モデルＡＷＧＮ、入力ビット数３１４，１６０，０００ビット、ＬＤＰＣ復号処理最大繰返し回数５０回を設定して実行した。ＬＤＰＣ復号処理繰り返し回数が５０回に到達してもパリティ検査値が満足できない場合には、復号処理を終了する。結果としては、全ての符号化率においてLayered Normalized Min-sumより良好なＢＥＲ特性を示した。また、平均繰返し回数（誤りがなくなるまでの繰返し回数の平均）は、符号化率に応じて１／２〜７／９に減少されることが分かった。繰り返し回数は消費電力に直接に関係するので、消費電力を削減する効果が得られる。
【００６８】
図１６は、シミュレーションにより得たＢＥＲ特性結果を示す図である。図１７は、シミュレーションにより得た平均繰返し回数結果を示す図である。図１６及び図１７は、符号化率２／３の場合のシミュレーション結果を示す。図１６において１０−５のＢＥＲ特性で比較した場合、本願発明のＬＤＰＣ復号処理では、Layered Normalized Min-sumよりもＣＮＲ（Carrier to Noise Ratio）において約０．２ｄＢの利得の向上を得ることができた。図１７においてＣＮＲが３．２ｄＢの場合、Layered Normalized Min-sumは平均して約３０回の繰返しで処理が終了したのに対して、本願発明のＬＤＰＣ復号処理は平均して約１５回の繰返しで処理が終了した。即ち、平均繰返し回数を約半減することができた。
【００６９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００７０】
５０  ＬＤＰＣ復号器
５１  ビットノード処理部
５２  チェックノード処理部
５３  事後確率更新処理部
【図１】
0005493602.tif 000038
【図２】
0005493602.tif 000039
【図３】
0005493602.tif 000040
【図４】
0005493602.tif 000041
【図５】
0005493602.tif 000042
【図６】
0005493602.tif 000043
【図７】
0005493602.tif 000044
【図８】
0005493602.tif 000045
【図９】
0005493602.tif 000046
【図１０】
0005493602.tif 000047
【図１１】
0005493602.tif 000048
【図１２】
0005493602.tif 000049
【図１３】
0005493602.tif 000050
【図１４】
0005493602.tif 000051
【図１５】
0005493602.tif 000052
【図１６】
0005493602.tif 000053
【図１７】
0005493602.tif 000054