(57)【要約】【課題】計算量が少なく、かつ高い計算精度で低密度パリティ検査符号を復号する復号装置および復号プログラムを提供する。【解決手段】行処理部１２は、第ｍ行（１≦ｍ≦Ｍ）について、対数尤度比と事前値対数比の和である尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中のＬ個（Ｌは３以上、かつＳ以下）のデータの絶対値の総和ＳＵＭ、データ数Ｌに依存する第１の係数Ｃおよび第２の係数Ｄによって、｛Ｒmn＝Ｃ×ＳＵＭ−Ｄ｝で表わされるＲmnを外部値対数比の絶対値の更新値とする。列処理部１４は、外部値対数比に基づいて、パリティ検査行例Ｈの列方向の要素を用いて列処理を行なって事前値対数比を更新する。【選択図】図３
2007306495.tif 000002
【特許請求の範囲】
【請求項１】
行重みＳ（Ｓ≧４）、かつＭ行Ｎ列（Ｍ≧１、Ｎ≧Ｓ）の低密度パリティ検査行列Ｈ＝［Ｈmn］（１≦ｍ≦Ｍ、１≦ｎ≦Ｎ）を用いて、入力されたデータを所定個数の単位で復号を行なう復号装置であって、
前記入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、前記パリティ検査行列Ｈの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、
前記外部値対数比に基づいて、前記パリティ検査行例Ｈの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部とを備え、
前記行処理部および前記列処理部は、前記パリティ検査で誤りが検出された場合に、前記処理を繰返し、
前記行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中のＬ個（Ｌは３以上、かつＳ以下）のデータの絶対値の総和ＳＵＭ、データ数Ｌに依存する第１の係数Ｃおよび第２の係数Ｄによって次の式（１）で表わされるＲmnを前記外部値対数比の絶対値の更新値とする、復号装置。
Ｒmn＝Ｃ×ＳＵＭ−Ｄ  ・・・（１）
【請求項２】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、データｘmn以外の（Ｓ−１）個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項１記載の復号装置。
【請求項３】
前記行処理部は、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和ＳＵＭ１を算出し、前記総和ＳＵＭ１と、データ数（Ｓ−１）についての第１の係数Ｃとを乗算して積Ｐを算出し、前記積Ｐからデータ数（Ｓ−１）についての第２の係数Ｄを減算して線形和Ｔを算出して記憶し、さらにデータｘmnの絶対値と前記データ数（Ｓ−１）についての第１の係数Ｃとの積Ｕを算出し、前記記憶している線形和Ｔから前記積Ｕを減算することによって、前記式（１）におけるＲmnを算出する、請求項２記載の復号装置。
【請求項４】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が最小のときには、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝からデータｘmnを除いた（Ｓ−１）個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とし、
前記行処理部は、データｘmnの絶対値が最小でないときには、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｓについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｓについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項１記載の復号装置。
【請求項５】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が小さなものから数えて第Ｚ番目（（Ｓ−１）≧Ｚ≧３）までに入る場合には、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第（Ｚ＋１）番目までの（Ｚ＋１）個のデータから、データｘmnを除いたＺ個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とし、
前記行処理部は、データｘmnの絶対値が小さなものから数えて第Ｚ番目までに入らない場合には、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第Ｚ番目までのＺ個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項１記載の復号装置。
【請求項６】
前記行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の少なくとも１つの大きさの変化にしたがって、前記データ数Ｌを３以上、かつＳ以下の範囲内で変化させる、請求項１記載の復号装置。
【請求項７】
行重みＳ（Ｓ≧４）、かつＭ行Ｎ列（Ｍ≧１、Ｎ≧Ｓ）の低密度パリティ検査行列Ｈmn＝［Ｈmn］（１≦ｍ≦Ｍ、１≦ｎ≦Ｎ）を用いて、入力されたデータを所定個数の単位で復号を行なう復号プログラムであって、
コンピュータを、
前記入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、前記パリティ検査行列Ｈの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、
前記外部値対数比に基づいて、前記パリティ検査行例Ｈの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部として機能させ、
前記行処理部および前記列処理部は、前記パリティ検査で誤りが検出された場合に、前記処理を繰返し、
前記行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中のＬ個（Ｌは３以上、かつＳ以下）のデータの絶対値の総和ＳＵＭ、データ数Ｌに依存する第１の係数Ｃおよび第２の係数Ｄによって次の式（１）で表わされるＲmnを前記外部値対数比の絶対値の更新値とする、復号プログラム。
Ｒmn＝Ｃ×ＳＵＭ−Ｄ  ・・・（１）
【請求項８】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、データｘmn以外の（Ｓ−１）個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項７記載の復号プログラム。
【請求項９】
前記行処理部は、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和ＳＵＭ１を算出し、前記総和ＳＵＭ１と、データ数（Ｓ−１）についての第１の係数Ｃとを乗算して積Ｐを算出し、前記積Ｐからデータ数（Ｓ−１）についての第２の係数Ｄを減算して線形和Ｔを算出して記憶し、さらにデータｘmnの絶対値と前記データ数（Ｓ−１）についての第１の係数Ｃとの積Ｕを算出し、前記記憶している線形和Ｔから前記積Ｕを減算することによって、前記式（１）におけるＲmnを算出する、請求項８記載の復号プログラム。
【請求項１０】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が最小のときには、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝からデータｘmnを除いた（Ｓ−１）個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とし、
前記行処理部は、データｘmnの絶対値が最小でないときには、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｓについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｓについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項７記載の復号プログラム。
【請求項１１】
前記行処理部は、前記尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が小さなものから数えて第Ｚ番目（（Ｓ−１）≧Ｚ≧３）までに入る場合には、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第（Ｚ＋１）番目までの（Ｚ＋１）個のデータから、データｘmnを除いたＺ個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とし、
前記行処理部は、データｘmnの絶対値が小さなものから数えて第Ｚ番目までに入らない場合には、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第Ｚ番目までのＺ個のデータの絶対値の総和を前記式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを前記式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを前記式（１）の係数Ｄとしたときの、前記式（１）のＲmnを前記外部値対数比の絶対値の更新値とする、請求項７記載の復号プログラム。
【請求項１２】
前記行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、前記Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の少なくとも１つの大きさの変化にしたがって、前記データ数Ｌを３以上、かつＳ以下の範囲内で変化させる、請求項７記載の復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置および復号プログラムに関し、特に低密度パリティ検査符号を復号する復号装置および復号プログラムに関する。
【背景技術】
【０００２】
データの通信システムを構築する場合には、高速通信、低消費電力、高通信品質（低ビット誤り率）等が要求される。受信符号の誤りを検出して訂正する誤り訂正技術は、これらの要求を満たす１つの技術として、無線、有線および記録システム等において幅広く利用されている。
【０００３】
近年、この誤り訂正技術の１つとして、低密度パリティ検査（ＬＤＰＣ：Low-Density Parity-Check）符号と、sum-product復号法とが注目されている。このＬＤＰＣ符号を利用する復号操作は、非特許文献１において議論されている。この非特許文献１においては、符号化率１／２のイレギュラーＬＤＰＣ符号を利用して白色ガウス通信路のシャノン（Shannon）限界まで０．０４ｄＢという復号特性が得られることが示されている。イレギュラーＬＤＰＣ符号は、パリティ検査行列の行重み（行において１が立つ数）および列重み（列において１が立つ数）が、一定ではない符号を示す。行重みおよび列重みが各行および各列において一定のＬＤＰＣ符号は、レギュラーＬＤＰＣ符号と呼ばれる。
【０００４】
この非特許文献１においては、ＬＤＰＣ符号をsum-product復号法に従って復号する数学的なアルゴリズムが示されているものの、その膨大な計算を具体的に行なう回路構成については何ら示していない。
【０００５】
非特許文献２は、ＬＤＰＣ符号の復号装置の回路構成について検討している。この非特許文献２においては、受信系列に基づいて情報シンボルの事後確率を、トレリスに基づくＭＡＰ（最大事後確率）アルゴリズム、すなわちＢＣＪＲアルゴリズムに従って計算する。このトレリスにおいて前方向および後方向の繰返しを各状態について計算し、これらの前方向および後方向の繰返し値に基づいて、事後確率を求めている。この計算式において、加算／比較／選択／加算装置を用いて計算する。ＬＤＰＣ符号の算出においては、sum-product復号法に基づき、検査行列を生成し、異なるチェックノードからの値を利用して、推定値を算出するように回路を構成している。
【０００６】
また、非特許文献３においては、対数領域でのmin-sum復号法が解説されている。この非特許文献３では、min-sum復号法によれば、加算、最小、正負の判定および正負の符号の乗算という４種類の基本演算のみでギャラガー（Gallager）のｆ関数に従う処理を実装することができ、実装時の回路構成を簡略化することができることが示されている。
【０００７】
また、非特許文献４には、δ−min復号法が提案されている。、δ−min復号法は、min-sum復号法よりも、ギャラガー（Gallager）のｆ関数に従う処理に利用するデータの数が多いため、計算の精度が高くなる。
【０００８】
非特許文献２、非特許文献３、非特許文献４に記載されているsum-product復号法、min-sum復号法およびδ−min復号法では、パリティ検査行列を用いて外部値対数比αを更新し（行処理）、次いで、この外部値対数比αに基づいてシンボルの事前値対数比βを算出する処理（列処理）が繰返される。
【０００９】
以上のような、sum-product復号法の近似であるmin-sum復号法およびδ−min復号法によって、sum-product復号法に比べて、計算量は少なくできる。
【非特許文献１】S. Y. Chung et al.,“On the Design of Low-Density Parity-Check Codes within 0.0045dB of the Shannon Limit”IEEE COMMUNICATIONS LETTERS, VOL.5, No.2, Feb. 2001, pp.58-60
【非特許文献２】E. Yeo et al.,“VLSI Architectures for Iterative Decoders inMagnetic Recording Channels”IEEE Trans. Magnetics, Vol,37, No.2, March 2001, pp.748-755
【非特許文献３】和田山正、「低密度パリティ検査符号とその復号法について」、信学技報、ＭＲ２００１−８３、２００１年１２月
【非特許文献４】R.Sakai, W.Matsumoto, H.Yoshida, ”Low Complexity Decoding Algorithm for LDPC Codes and Its Discretized Density Evolution”, pp.13-18, RCS2005-42 (2005-7) Okayama, Japan, July, 2005
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、行処理の計算に用いるデータについては、min-sum復号法で２種類、δ−min復号法では３種類と少ないため、これらの復号法では、sum-product復号法を精度よく近似することができない。
【００１１】
それゆえに、本発明の目的は、計算量が少なく、かつ高い計算精度で低密度パリティ検査符号を復号する復号装置および復号プログラムを提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、行重みＳ（Ｓ≧４）、かつＭ行Ｎ列（Ｍ≧１、Ｎ≧Ｓ）の低密度パリティ検査行列Ｈ＝［Ｈmn］（１≦ｍ≦Ｍ、１≦ｎ≦Ｎ）を用いて、入力されたデータを所定個数の単位で復号を行なう復号装置であって、入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、パリティ検査行列Ｈの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、外部値対数比に基づいて、パリティ検査行例Ｈの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部とを備え、行処理部および列処理部は、パリティ検査で誤りが検出された場合に、処理を繰返し、行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中のＬ個（Ｌは３以上、かつＳ以下）のデータの絶対値の総和ＳＵＭ、データ数Ｌに依存する第１の係数Ｃおよび第２の係数Ｄによって次の式（１）で表わされるＲmnを外部値対数比の絶対値の更新値とする。
Ｒmn＝Ｃ×ＳＵＭ−Ｄ  ・・・（１）
【００１３】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、データｘmn以外の（Ｓ−１）個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００１４】
好ましくは、行処理部は、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和ＳＵＭ１を算出し、総和ＳＵＭ１と、データ数（Ｓ−１）についての第１の係数Ｃとを乗算して積Ｐを算出し、積Ｐからデータ数（Ｓ−１）についての第２の係数Ｄを減算して線形和Ｔを算出して記憶し、さらにデータｘmnの絶対値とデータ数（Ｓ−１）についての第１の係数Ｃとの積Ｕを算出し、記憶している線形和Ｔから積Ｕを減算することによって、式（１）におけるＲmnを算出する。
【００１５】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が最小のときには、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝からデータｘmnを除いた（Ｓ−１）個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とし、行処理部は、データｘmnの絶対値が最小でないときには、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和を式（１）のＳＵＭとし、データ数Ｓについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｓについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００１６】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が小さなものから数えて第Ｚ番目（（Ｓ−１）≧Ｚ≧３）までに入る場合には、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第（Ｚ＋１）番目までの（Ｚ＋１）個のデータから、データｘmnを除いたＺ個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とし、行処理部は、データｘmnの絶対値が小さなものから数えて第Ｚ番目までに入らない場合には、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第Ｚ番目までのＺ個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００１７】
好ましくは、行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の少なくとも１つの大きさの変化にしたがって、データ数Ｌを３以上、かつＳ以下の範囲内で変化させる。
【００１８】
また、本発明は、行重みＳ（Ｓ≧４）、かつＭ行Ｎ列（Ｍ≧１、Ｎ≧Ｓ）の低密度パリティ検査行列Ｈmn＝［Ｈmn］（１≦ｍ≦Ｍ、１≦ｎ≦Ｎ）を用いて、入力されたデータを所定個数の単位で復号を行なう復号プログラムであって、コンピュータを、入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、パリティ検査行列Ｈの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、外部値対数比に基づいて、パリティ検査行例Ｈの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部として機能させ、行処理部および列処理部は、パリティ検査で誤りが検出された場合に、処理を繰返し、行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中のＬ個（Ｌは３以上、かつＳ以下）のデータの絶対値の総和ＳＵＭ、データ数Ｌに依存する第１の係数Ｃおよび第２の係数Ｄによって次の式（１）で表わされるＲmnを外部値対数比の絶対値の更新値とする。
Ｒmn＝Ｃ×ＳＵＭ−Ｄ  ・・・（１）
【００１９】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、データｘmn以外の（Ｓ−１）個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００２０】
好ましくは、行処理部は、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和ＳＵＭ１を算出し、総和ＳＵＭ１と、データ数（Ｓ−１）についての第１の係数Ｃとを乗算して積Ｐを算出し、積Ｐからデータ数（Ｓ−１）についての第２の係数Ｄを減算して線形和Ｔを算出して記憶し、さらにデータｘmnの絶対値とデータ数（Ｓ−１）についての第１の係数Ｃとの積Ｕを算出し、記憶している線形和Ｔから積Ｕを減算することによって、式（１）におけるＲmnを算出する。
【００２１】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が最小のときには、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝からデータｘmnを除いた（Ｓ−１）個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数（Ｓ−１）についての第１の係数Ｃを式（１）の係数Ｃとし、データ数（Ｓ−１）についての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とし、行処理部は、データｘmnの絶対値が最小でないときには、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の総和を式（１）のＳＵＭとし、データ数Ｓについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｓについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００２２】
好ましくは、行処理部は、尤度を表わすＳ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の絶対値の中でデータｘmnの絶対値が小さなものから数えて第Ｚ番目（（Ｓ−１）≧Ｚ≧３）までに入る場合には、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第（Ｚ＋１）番目までの（Ｚ＋１）個のデータから、データｘmnを除いたＺ個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とし、行処理部は、データｘmnの絶対値が小さなものから数えて第Ｚ番目までに入らない場合には、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が小さなものから数えて第Ｚ番目までのＺ個のデータの絶対値の総和を式（１）のＳＵＭとし、データ数Ｚについての第１の係数Ｃを式（１）の係数Ｃとし、データ数Ｚについての第２の係数Ｄを式（１）の係数Ｄとしたときの、式（１）のＲmnを外部値対数比の絶対値の更新値とする。
【００２３】
好ましくは、行処理部は、第ｍ行（１≦ｍ≦Ｍ）について、Ｓ個のデータ｛ｘmn′：ただし、ｎ′はＨmn′＝１を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の少なくとも１つの大きさの変化にしたがって、データ数Ｌを３以上、かつＳ以下の範囲内で変化させる。
【発明の効果】
【００２４】
本発明によれば、計算量が少なく、かつ高い計算精度で低密度パリティ検査符号を復号することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明に係る実施の形態について図面を参照して説明する。
［第１の実施形態］
図１は、本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。図１において、通信システムは、送信側において、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器１と、この符号化器１からの（Ｋ＋Ｍ）（＝Ｎ）ビットの符号を所定の方式に従って変調して通信路３へ出力する変調器２とを含む。
【００２６】
符号化器１は、Ｋビットの情報に対し、パリティ計算用の冗長ビットＭビットを付加して、（Ｋ＋Ｍ）ビットのＬＤＰＣ符号（低密度パリティ検査符号）を生成する。パリティ検査行列Ｈ（Ｍ行、Ｎ列）においては、行が冗長ビットに対応し、列が符号ビットに対応する。
【００２７】
変調器２は、この通信路３の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。たとえば、通信路３が、光ファイバの場合、変調器２においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調（一種の振幅変調）を行なっている。たとえば、送信データビットが“０”の場合には、このレーザダイオードの発光強度を強くして“＋１”として送信し、また送信データビットが“１”の場合、レーザダイオードの発光強度を弱くして、“−１”に変換して送信する。
【００２８】
受信部においては、通信路３を介して送信された変調信号に復調処理を施して、（Ｋ＋Ｍ）ビットのデジタル符号を復調する復調器４と、この復調器４からの（Ｋ＋Ｍ）ビットの符号にパリティ検査行列演算処理を施して元のＫビットの情報を再生する復号化器５が設けられる。
【００２９】
復調器４は、この通信路３における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器４において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
【００３０】
図２は、通信路３が光ファイバの場合の変調器２および復調器４の出力データの対応関係を一覧にして示す図である。図２において、上述のように、通信路３が光ファイバの場合、変調器２においては、送信データが“０”のときには、送信用のレーザダイオード（発光ダイオード）の発光強度を強くし、“１”を出力し、また送信データビットが“１”のときには、この発光強度を弱くしてビット“−１”を送信する。
【００３１】
この通信路３における伝送損失等により、復調器４に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器４においては、この入力された光信号を量子化処理（アナログ／デジタル変換）を行なって、この受光レベルを検出する。図２においては、８段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“７”のときには、発光強度がかなり強く、受光レベルが“０”のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器４から出力される。この復調器４の出力は、受光レベルが“７”のときにはデータ“３”が出力され、受光レベルが“０”のときには、データ“−４”が出力される。したがってこの復調器４からは、１ビットの受信信号に対し、多値量子化された信号が出力される。
【００３２】
復号化器５は、この復調器４から与えられた（Ｋ＋Ｍ）ビットの受信情報（各ビットは、多値情報を含む）を入力し、ＬＤＰＣパリティ検査行列Ｈを適用して、元のＫビットの情報を復元する。
【００３３】
なお、この図２においては、復調器４において、８レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器４においては、ＬＤ値（ＬＤ≧２）に量子化されたビットを用いて復号処理を行なうことができる。
【００３４】
また、図２においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、２値信号を生成してもよい。
【００３５】
図３は、本発明の実施形態に従う復号化器５の構成を概略的に示す図である。この図３においては、復調器４および通信路３も併せて示す。復調器４は、通信路３から与えられた信号を復調する復調回路４ａと、この復調回路４ａにより生成されたアナログ復調信号をデジタル信号に変換するアナログ／デジタル変換回路４ｂを含む。このアナログ／デジタル変換回路４ｂの出力データＩｎが復号化器５へ与えられる。この復号化器５へ与えられるデータＩｎは、ＬＤ値（Ｌ≧２）のデータである。以下、データＩｎは、多値量子化データであるため、シンボルと称す。復号化器５は、この入力シンボルＩｎ系列に対して復号処理を行なって復号ビットＣｎを生成する。
【００３６】
復号化器５は、復調器４からの復調シンボルＩｎの対数尤度比λｎを生成する対数尤度比算出部１０と、パリティ検査行列の行処理を行なう行処理部１２と、パリティ検査行列の列処理を行なう列処理部１４と、対数尤度比算出部１０からの対数尤度比λｎと行処理部１２の出力ビット（外部値対数比）αｍｎとに従って復号語を生成するループ判定部１６とを含む。
【００３７】
対数尤度比算出部１０は、この受信信号のノイズ情報と独立に、対数尤度比λｎを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λｎは、２×Ｉｎ／σ2で与えられる。ここで、σは、ノイズの分散を示す。この対数尤度比λｎを用いてもよいが、本発明の実施形態の説明では、この対数尤度比算出部１０は、バッファ回路または定数乗算回路で形成され、対数尤度比λｎは、Ｉｎ×ｆで与えられることとする。ここで、fは非ゼロの正の数である。このノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。対数尤度比算出部は、パリティ検査行列Ｈの列数Ｎの単位で、対数尤度比λｎ（ｎ＝１、２、・・・、Ｎ）を出力する。
【００３８】
行処理部１２および列処理部１４は、それぞれ、次式（１）および（２）に従って、演算処理を行ない、パリティ検査行列の行の各要素についての処理（行処理）および列についての各要素についての処理（列処理）を実行する。行処理部１２において、列処理部１４から与えられる事前値対数比βｍｎと対数尤度比λｎとに従って外部値対数比αｍｎを更新する。列処理部１４において、行処理部１２から与えられる外部値対数比αｍｎに従って事前値対数比βｍｎを更新する。
【数１】
2007306495.tif 000003
【００３９】
ここで、上式（１）および（２）それぞれにおいて、ｎ′∈Ａ（ｍ）＼ｎおよびｍ′∈Ｂ（ｎ）＼ｍは、自身を除く要素を意味する。外部値対数比αｍｎについては、ｎ′≠ｎであり、事前値対数比βｍｎについては、ｍ′≠ｍである。また、αおよびβの行列内の位置を示す添え字“ｍｎ”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
【００４０】
また、関数ｓｉｇｎ（ｘ）は、次式（３）で定義される。
【数２】
2007306495.tif 000004
【００４１】
集合Ａ（ｍ）および式（２）のＢ（ｎ）は、２元Ｍ・Ｎ行列Ｈ＝［Ｈｍｎ］を復号対象のＬＤＰＣ符号のパリティ検査行列とした場合、集合［１，Ｎ］＝｛１，２，…，Ｎ｝の部分集合である。
【００４２】
Ａ（ｍ）＝｛ｎ：Ｈｍｎ＝１｝  …（４）
Ｂ（ｎ）＝｛ｍ：Ｈｍｎ＝１｝  …（５）
すなわち、部分集合Ａ（ｍ）は、パリティ検査行列Ｈの第ｍ行目において１が立っている列インデックスの集合を意味し、部分集合Ｂ（ｎ）は、パリティ検査行列Ｈの第ｎ列目において１が立っている行インデックスの集合を示す。
【００４３】
具体的に、今、図４に示すパリティ検査行列Ｈを考える。この図４に示すパリティ検査行列Ｈにおいては、第１行の第１列から第３列に“１”が立ち、また第２行の第３列および第４列に“１”が立ち、また第３行の第４列から第６列に、“１”が立つ。したがって、この場合、部分集合Ａ（ｍ）は以下のようになる。
Ａ（１）＝｛１，２，３｝、
Ａ（２）＝｛３，４｝、
Ａ（３）＝｛４，５，６｝。
【００４４】
同様、部分集合Ｂ（ｎ）については、以下のようになる。
Ｂ（１）＝Ｂ（２）＝｛１｝、
Ｂ（３）＝｛１，２｝、
Ｂ（４）＝｛２，３｝、
Ｂ（５）＝Ｂ（６）＝｛３｝。
【００４５】
このパリティ検査行列Ｈにおいて、タナー（Tanner）グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この“１”により示される。これを、本明細書においては「“１”が立つ」と称している。すなわち、図５に示すように、変数ノード１，２，３は、チェックノードＸ（第１行）に接続され、変数ノード３，４が、チェックノードＹ（第２行）に接続される。変数ノード４，５，６が、チェックノードＺ（第３行）に接続される。この変数ノードがパリティ検査行列Ｈの列に対応し、チェックノードＸ，ＹおよびＺが、このパリティ検査行列Ｈの各行に対応する。従って、図４に示すパリティ検査行列は、情報ビットが３ビット、冗長ビットが３ビットの合計６ビットの符号に対して適用される。
【００４６】
このパリティ検査行列Ｈは、“１”の数は少なく、低密度のパリティ検査行列であり、これにより、計算量を低減できる。
【００４７】
この変数ノードとチェックノードの間で各条件確率Ｐ（Ｘｉ｜Ｙｉ）を伝播させ、ＭＡＰアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率Ｐ（Ｘｉ｜Ｙｉ）は、Ｙｉの条件下でＸｉとなる確率を示す。
【００４８】
列処理部１４は、先の式（２）において示された演算処理を行ない、検査行列Ｈの各行において生成された外部値対数比を用いて、自身を除く行以外の対応の列の“１”が立っている位置の外部値対数比を加算する。したがって、検査行列Ｈが図４に示される構成の場合、事前値対数比β１１は、第１列において自身が属する第１行以外には“１”が立っていないため、“０”となる。
【００４９】
ループ判定部１６は、行処理部１２で生成される外部値対数比αｍｎと対数尤度比算出部１０からの対数尤度比λｎとを用いて、複数の符号で構成される１次推定語を生成し、これらの１次推定語のパリティ検査を行なう。１次推定語の符号の数は、検査行列の列の数に対応する。このパリティ検査時において、シンドロームが“０”とならない場合には、１次推定語に誤りがあると判断し、行処理部１２および列処理部１４に処理を繰返し実行させる。この処理の繰返し回数が所定値に到達すると、そのときの１次推定語を復号語として出力する。
【００５０】
図６は、ループ判定部１６の処理動作を示すフロー図である。以下、図６を参照して、ループ判定部１６の処理操作について説明する。
【００５１】
まず、初期動作として、ループ回数および事前値対数比βｍｎの初期設定が行なわれる。このループ回数は、列処理部１４で生成された事前値対数比βｍｎを用いて再び行処理部１２で外部値対数比αｍｎを生成するループにおける演算回数を示す。このループ回数においては、最大値が予め定められる。事前値対数比βｍｎは、“０”に初期設定される（ステップＳＰ１）。
【００５２】
次いで、受信シンボル系列に従って、対数尤度比λｎおよび外部値対数比αｍｎが、それぞれ、対数尤度比算出部１０および行処理部１２により生成されて、ループ判定部１６へ供給される（ステップＳＰ２）。
【００５３】
ループ判定部１６は、これらの供給された対数尤度比λｎおよび外部値対数比αｍｎに従って、演算λｎ＋Σαｍｎを行って推定受信語Ｑｎを算出する（ステップＳＰ３）。ここで、総和Σは、部分集合Ｂ（ｎ）の要素ｍについて実行される。
【００５４】
このステップＳＰ３において算出された値Ｑｎの正負の符号を判定し（ステップＳＰ４）、１次推定符号Ｃｎを生成する（ステップＳＰ５）。この符号の正／負判定においては、たとえば、推定受信語Ｑｎが２の補数表示されているときには、最上位ビット（符号ビット）のビット値を見ることにより、正および負の判定を行なうことができる。
【００５５】
１次推定符号Ｃｎが全て生成され、１次推定語（Ｃ１，・・・，ＣＮ）が生成されると、次いでパリティ検査を実行する（ステップＳＰ６）。このパリティ検査においては、先の検査行列Ｈの転置行列を用いて、（Ｃ１，…，ＣＮ）・Ｈt＝０を計算する。この計算により、生成されるシンドロームが０であれば、１次推定語（Ｃ１，…，ＣＮ）を復号語として出力する（ステップＳＰ９）。
【００５６】
一方、この生成されたシンドロームが０と異なる場合には、ループ回数が最大値であるかの判定が行なわれる（ステップＳＰ７）。すなわち、この１次推定語の生成回数をカウントし、その生成回数が所定の最大回数に到達すると、その符号についての算出をそれ以上をやめて、現在生成されている１次推定語を復号語として出力する（ステップＳＰ９）。これにより、収束性の悪いノイジーな符号に対して、不必要に演算処理時間が要するのを防止する。
【００５７】
ステップＳＰ７において、ループ回数が最大値に到達していないと判定されると、このループ回数を１だけインクリメントして、再び、行処理部１２および列処理部１４における処理を開始させて、再びステップＳＰ２からの処理を実行する（ステップＳＰ８）。
【００５８】
行処理部１２は、先の式（１）において示された演算処理を行ない、行処理を行なう。式（１）における行処理の計算は、最初にsum-product復号法が提案された。そして、このsum-product復号法の計算量を減らすために、sum-product復号法を近似した方法がこれまでいくつか提案されている。以下では、sum-product復号法と、いくつかの近似方法について説明する。
【００５９】
（sum-product復号法）
【００６０】
sum-product復号法では、式（１）における外部値対数比αｍｎの絶対値Ｒｍｎを、次の式（６）に従って計算する。
【数３】
2007306495.tif 000005
【００６１】
ここで、ギャラガー関数ｆは、次の式（７）で定義される。
【数４】
2007306495.tif 000006
【００６２】
このsum-product復号法では、計算精度が高いが、ギャラガー関数ｆを直接計算する必要があり、計算量が多くなるという問題がある。
【００６３】
（min-sum復号法）
【００６４】
次に、sum-product復号法の近似であるmin-sum復号法について説明する。
【００６５】
式（７）で定義される関数ｆ（ｘ）は、式（８）で示される性質を有する。
ｆ-1（ｘ）＝ｆ（ｘ）  …（８）
【００６６】
ここで、ｘn′＝λn′＋βmn′とおくと、sum-product復号法による外部値対数比αｍｎの絶対値Ｒｍｎは、次の式（９）で表わされる。
Ｒｍｎ＝ｆ［Σｆ（ｘn′）］
＝ｆ-1［Σｆ（ｘn′）］  …（９）
【００６７】
式（９）を変形すると、式（１０）が成立する。
ｆ（Ｒｍｎ）＝Σｆ（ｘn′）  …（１０）
【００６８】
図７は、外部値対数比αｍｎの絶対値Ｒｍｎの近似値を説明するための図である。
【００６９】
図７を参照して、｛xn′：（ｎ′∈Ａ（ｍ）／ｎ）｝の中の、第１番目に小さな値（以下、第１最小値という）をｘmin1、第２番目に小さな値（以下、第２最小値という）をｘmin2、第３番目に小さな値（以下、第３最小値という）をｘmin3とする。
【００７０】
図７に示すように、絶対値Ｒｍｎは、第１最小値ｘmin１の値に最も強く影響を受ける。
【００７１】
以上より、sum-product復号法による絶対値Ｒｍｎは、次の式（１１）で近似することができる。
Ｒｍｎ＝ｆ（Σｆ（ｘn′）］
≒Min（ｘn′）  …（１１）
【００７２】
min-sum復号法では、式（１１）の近似を用いる。すなわち、min-sum復号法では、外部値対数比αｍｎの絶対値Ｒｍｎを次の式（１２）に従って計算する。
【数５】
2007306495.tif 000007
【００７３】
（δ-min復号法）
【００７４】
次に、同じくsum-product復号法の近似であるδ-min復号法について説明する。
【００７５】
min-sum復号法では、第１最小値ｘmin1によって外部値対数比αｍｎの絶対値Ｒｍｎを表わしたが、δ-min復号法では近似の精度を上げるために、次の式（１３）のように、外部値対数比αｍｎの絶対値Ｒｍｎを第１最小値ｘmin1と第２最小値ｘmin2で表わす。
Ｒｍｎ＝ｆ［Σｆ（ｘn′）］
≒ｆ（ｆ（ｘmin1）＋ｆ（ｘmin2））  …（１３）
【００７６】
式（１３）をさらに近似すると、次の式（１４）が成り立つ。
Ｒｍｎ≒ｆ（ｆ（ｘmin1）＋ｆ（ｘmin2））
≒Min（ｘmin1，ｘmin2）＋ｌｎ（１＋ｅ-｜ｘmin1＋ｘmin2｜）−ｌｎ（１＋ｅ-｜xmin1-xmin2｜）≒Min（ｘmin1，ｘmin2）−Ｄ  …（１４）
ただし、Ｄ＝ｌｎ（１＋ｅ-｜xmin1-xmin2｜）…（１５）
【００７７】
式（１５）の近似を検討する前に、まず次の関数ｇ（ｘ）の近似を検討する。
ｇ（ｘ）＝ｌｎ（１＋ｅ-x）  …（１６）
式（１６）は、一般に次の式のように近似される。
ｇ（ｘ）≒ｌｎ（２）−ｘ／２  …（１７）
【００７８】
ここでは、式（１７）のｌｎ（２）を定数ｔとおいて、ｇ（ｘ）をより精度よく近似することができる定数ｔの値を求める。
図８は、ｇ（ｘ）と、ｌｎ（２）−２／ｘと、ｔ−ｘ／２を表わすグラフである。
図８を参照して、ｌｎ（２）−２／ｘは、ｘが０に近いときにｇ（ｘ）に近いが、ｘが大きくなると、ｇ（ｘ）から大きくはずれることがわかる。ｇ（ｘ）とｔ−ｘ／２との誤差が、特定のｘの範囲でのみ小さくするのではなく、ｘの全体に対して、ほどよい大きさとなるためには、次の式（１８）で表わされるＳと、式（１９）で表わされるＴとが等しくなることが必要である。
【数６】
2007306495.tif 000008
【数７】
2007306495.tif 000009
【００７９】
式（１８）および式（１９）より、ｔ2＝０．８２となり、ｔ＝０．９となる。
以上の結果を利用して、式（１５）のＤは、次の式（２０）で近似される。
Ｄ≒Max（０，０．９−｜ｘmin1−ｘmin2｜／２）  …（２０）
ここで、Maxを用いたのは、ｇ（ｘ）＞０であることを考慮して、Ｄが負とならないようにするためである。
【００８０】
式（２０）を用いると、式（１４）は、次の式（２１）で近似される。
Ｒｍｎ≒Min（ｘmin1，ｘmin2）＋Max（０，０．９−｜ｘmin1−ｘmin2｜／２）
＝Min（ｘmin1，ｘmin2）＋Min（｜ｘmin1−ｘmin2｜／２−０．９，０）
…（２１）
【００８１】
式（２１）において、｜ｘmin1−ｘmin2｜＜１．８の場合には、次の式（２２）が成り立つ。
Ｒｍｎ≒０．５（ｘmin1＋ｘmin2）−０．９  …（２２）
式（２２）で表わされるＲｍｎが、δ-min復号法での外部値対数比αｍｎの絶対値である。
【００８２】
（本発明の実施形態の復号法）
以上のような、sum-product復号法の従来から提案されている近似法では、第１最小値ｘｍｉｎ１を用いて、または第１最小値ｘｍｉｎ１および第２最小値ｘｍｉｎ２を用いて、ギャラガー関数ｆを近似することができた。しかしながら、近似に利用するデータ数が１個または２個と少ないので、ギャラガー関数ｆの近似精度は必ずしも高くない。
【００８３】
そこで、本発明の実施形態の復号法は、３個以上のデータでギャラガー関数を近似することとする。
【００８４】
すなわち、本発明の実施形態では、次の式（２３）にしたがって、外部値対数比αｍｎの絶対値Ｒｍｎを計算する。
【数８】
2007306495.tif 000010
【００８５】
ただし、パリティ検査行列Ｈの、行重みＳを４以上、行数Ｍを１以上、列数ＮをＳ以上とし、集合Ａ′（ｍ）には、「Ｈｍｎ′＝１」を満たすＳ個のｎ′のうちのＬ個（Ｓ≧Ｌ≧３）が属する。また、係数ＣおよびＤは、Ａ′（ｍ）のデータ数Ｌに依存する定数である。ここで、パリティ検査行列の行重みとは、パリティ検査行列の行方向の値が「１」である要素の個数である。たとえば、図４に示すパリティ検査行列の場合には、行重みは「３」である。
【００８６】
さて、式（２３）の係数ＣおよびＤには近似の精度が良くなるように予め計算した値が設定される。
【００８７】
以下、係数ＣおよびＤを算出方法の一例について説明する。
式（２３）における｜λn′＋βmn′｜は、その値が大きければ尤度が高く、逆に０に近いほど尤度が低い。つまり、｜λn′＋βmn′｜が０の場合には、尤度が最も低く、尤度を使った誤り訂正には全く寄与しない。また、復号器内で取り使われる信号は、すべて量子化されていることを考慮して、｜λn′＋βmn′｜の値は、０を除く、ある上限値までの整数値と考えることができる。そして、図８に示されるように、関数ｇ（ｘ）の値がｘが５以上でほとんど変化しないことを考慮して、上限値を５にすればよいと考えることができる。
【００８８】
以上より、たとえば、データ数Ｌが３個の場合には、次の式（２４）で表わされる誤差Ｅｒｒが最小となるように、最小２乗誤差法によって、係数Ｃ3およびＤ3を求めることができる。
【数９】
2007306495.tif 000011
【００８９】
最小２乗誤差法による計算の結果、データ数Ｌが３のときには、係数Ｃ3は０．３、係数Ｄ3は１．３が望ましい値として求められる。
【００９０】
同様の計算をデータ数が４、５、６について行った結果を次に示す。
データ数Ｌが４のときには、係数Ｃ4は０．２１、係数Ｄ4は１．４が望ましい。データ数Ｌが５のときには、係数Ｃ5は０．１４、係数Ｄ5は１．４が望ましい。データ数Ｌが６のときには、係数Ｃ6は０．１１、係数Ｄ6は１．３が望ましい。また、データ数Ｌが２のときには、係数Ｃ2は０．４９、係数Ｄ2は１．０が望ましい。
【００９１】
（本発明の第１の実施形態の復号法）
さて、本発明の第１の実施形態では、式（２３）の一形態である、次の式（２５）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出する。
【数１０】
2007306495.tif 000012
【００９２】
すなわち、第１の実施形態では、行重みをＳとしたときに、Ｓ個のデータ｛（λn＋βmn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数（つまり、ｎ′はパリティ検査行列Ｈの第ｍ行で「１」が立つ列の位置を表わす）｝のうち、（λn＋βmn）を除いた（Ｓ−１）個のデータの絶対値の総和と、データ数（Ｓ−１）についての係数ＣS-1と、データ数（Ｓ−１）についての係数ＤS-1とで表わされる式（２５）のＲｍｎを算出する。
【００９３】
（行処理部の構成）
図９は、本発明の第１の実施形態の行処理部１２の機能ブロック図である。
【００９４】
図９を参照して、行処理部１２は、加算部２１と、抽出部２２と、制御部２６と、符号計算部２３と、絶対値計算部２４と、符号乗算部２５とを備える
加算部２１は、列処理部１４から事前値対数比βｍｎ（ここで、ｍおよびｎは「Ｈｍｎ＝１」を満たす。）を受け、対数尤度比算出部１０から列数Ｎ個分の対数尤度比λn（ｎ＝１、・・・Ｎ）を受けて、「Ｈｍｎ＝１」を満たすｎおよびｍについて、対数尤度比λnと事前値対数比βｍｎとを加算する。
【００９５】
抽出部２２は、加算部２１から出力される加算結果（λn＋βmn）のうち、第ｍ行（ｍ＝１〜Ｍ）を処理するときには、Ａ（ｍ）に従って、第ｍ行に関するＳ個（Ｓは行重み）のデータ｛（λn′＋βｍｎ′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を抽出する。
【００９６】
制御部２６は、行処理部１２内の構成要素の制御を行なう。
絶対値計算部２４は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ｛（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝に基づいて、式（２５）のＲｍｎを計算する。
【００９７】
符号計算部２３は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ｛（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝に基づいて、式（１）の符号部分（これをＳｍｎとする）の計算を行なう。
【００９８】
符号乗算部２５は、絶対値計算部２４から出力される絶対値Ｒｍｎと、符号計算部２３から出力される符号Ｓｍｎとを乗算して、外部値対数比αｍｎを出力する。
【００９９】
絶対値計算部２４は、絶対値記憶部２７と、演算部２８と、係数記憶部２９とを備える。
【０１００】
絶対値記憶部２７は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータの絶対値｛｜λn′＋βｍn′｜：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を記憶する。
【０１０１】
演算部２８は、加算、乗算および減算を行なう。
係数記憶部２９は、データ数（Ｓ−１）についての係数ＣS-1および係数ＤS-1を記憶する。
【０１０２】
（行処理部の動作）
図１０は、第１の実施形態の行処理部１２が第１行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
【０１０３】
図１０を参照して、まず、加算部２１は、列処理部１４から事前値対数比βｍｎ（ここで、ｍおよびｎは「Ｈｍｎ＝１」を満たす。）を受け、対数尤度比算出部１０から列数Ｎ個分の対数尤度比λn（ｎ＝１、・・・Ｎ）を受けて、「Ｈｍｎ＝１」を満たすｎおよびｍについて、対数尤度比λnと事前値対数比βｍｎとを加算する。抽出部２２は、加算結果（λn＋βmn）のうち、Ａ（１）に従って、第１行目に関するＳ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を抽出する。制御部２６は、絶対値記憶部２７に、抽出されたＳ個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶させる（ステップＳ１０１）。
【０１０４】
次に、制御部２６は、制御変数ｊを１とする（ステップＳ１０２）。
次に、演算部２８は、Ａ（１）内のｊ番目の要素ｒを特定し、絶対値記憶部２７に記憶されているＳ個のデータ｛｜λn′＋β1n′｜｝のうち、｜λr＋β1r｜を除いた総和ＳＵＭを計算する（ステップＳ１０３）。
【０１０５】
次に、演算部２８は、係数記憶部２９からデータ数（Ｓ−１）についての係数ＣS-1を読み出して、係数ＣS-1と総和ＳＵＭとの積Ｐを計算する（ステップＳ１０４）。
【０１０６】
次に、演算部２８は、係数記憶部２９からデータ数（Ｓ−１）についての係数ＤS-1を読み出して、積Ｐから係数ＤS-1を減算して、線形和Ｖを得る（ステップＳ１０５）。
【０１０７】
次に、演算部２８は、線形和Ｖと０とを比較して、線形和Ｖが正であれば、線形和Ｖを第１行、第ｒ列目の絶対値Ｒ1rとして出力し、線形和Ｖが０または負であれば、０を第１行、第ｒ列目の絶対値Ｒ1rとして出力する（ステップＳ１０６）。
【０１０８】
符号計算部２３は、第１行、第ｒ列目の符号S1rを算出し、符号乗算部２５は、絶対値Ｒ1rと符号S1rとを乗算して、第１行、第ｒ列目の外部値対数比α1rを出力する（ステップＳ１０７）。
【０１０９】
次に、制御部２６は、制御変数ｊと行重みＳとが等しくない場合に（ステップＳ１０８でＮＯ）、制御変数ｊを１だけ増加させて（ステップＳ１０９）、ステップＳ１０３に戻り、等しい場合に（ステップＳ１０８でＹＥＳ）、終了する。
【０１１０】
以上のように、第１の実施形態の復号装置によれば、式（２５）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出するので、絶対値Ｒｍｎの計算に用いるデータをＳ（≧４）種類（１個のＲｍｎについては、Ｓ個のデータの中の自分自身を除いて（Ｓ−１）個）にすることができるので、従来よりも計算精度を高くすることができる。
【０１１１】
［第２の実施形態］
第２の実施形態は、第１の実施形態で説明した式（２５）で示される計算の計算量を少なくしたものである。
【０１１２】
次の式（２６）で表わされる線形和Ｔを定義する。
【数１１】
2007306495.tif 000013
【０１１３】
式（２６）の線形和Ｔを用いると、式（２５）で示される外部値対数比αｍｎの絶対値Ｒｍｎは、次の式（２７）で表わされる。
Ｒｍｎ＝Ｔ−ＣS-1×｜λn＋βmn｜  ・・・（２７）
【０１１４】
このように、第２の実施形態では、式（２６）および式（２７）を計算することによって、ｎが変わるごとに、｜λｎ＋βｍｎ｜を除いた総和を計算しないで済むので、式（２５）を直接計算するよりも、計算量を減らすことができる。
【０１１５】
（行処理部の構成）
図１１は、本発明の第２の実施形態の行処理部１２の機能ブロック図である。
【０１１６】
図１１を参照して、この行処理部１２が、図９に示す行処理部１２と相違するのは、絶対値計算部３４である。
【０１１７】
絶対値計算部３４は、第１の実施形態と同様に、式（２５）のＲｍｎを計算するが、計算方法が第１の実施形態と相違する。すなわち、絶対値計算部３４は、線形和記憶部３１を備え、線形和記憶部３１に式（２６）で示される線形和Ｔを記憶しておき、線形和Ｔから各データと係数ＣS-1との積を減算することによってＲｍｎを算出する。絶対値計算部３４の詳細な説明は、以下の動作説明にて行なう。
【０１１８】
（行処理部の動作）
図１２は、第２の実施形態の行処理部１２の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
【０１１９】
図１２を参照して、まず、加算部２１は、列処理部１４から事前値対数比βｍｎ（ここで、ｍおよびｎは「Ｈｍｎ＝１」を満たす。）を受け、対数尤度比算出部１０から列数Ｎ個分の対数尤度比λn（ｎ＝１、・・・Ｎ）を受けて、「Ｈｍｎ＝１」を満たすｎおよびｍについて、対数尤度比λnと事前値対数比βｍｎとを加算する。抽出部２２は、加算結果（λn＋βmn）のうち、Ａ（１）に従って、第１行目に関するＳ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を抽出する。制御部２６は、絶対値記憶部２７に、抽出されたＳ個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶させる（ステップＳ２０１）。
【０１２０】
次に、演算部３２は、絶対値記憶部２７に記憶されているＳ個のデータ｛｜λn＋β1n｜｝の総和ＳＵＭ１を計算する（ステップＳ２０２）。
【０１２１】
次に、演算部３２は、係数記憶部２９からデータ数（Ｓ−１）についての係数ＣS-1を読み出して、係数ＣS-1と総和ＳＵＭ１との積Ｐを計算する（ステップＳ２０３）。
【０１２２】
次に、演算部３２は、係数記憶部２９からデータ数（Ｓ−１）についての係数ＤS-1を読み出して、積Ｐから係数ＤS-1を減算して、線形和Ｔを算出する（ステップＳ２０４）。
【０１２３】
次に、制御部２６は、線形和記憶部３１に線形和Ｔを記憶させる（ステップＳ２０５）。
【０１２４】
次に、制御部２６は、制御変数ｊを１とする（ステップＳ２０６）。
次に、演算部３２は、Ａ（１）内のｊ番目の要素ｒを特定し、係数記憶部２９からデータ数（Ｓ−１）についての係数ＣS-1を読み出す。演算部３２は、絶対値記憶部２７に記憶されている｜λr＋β1r｜と、係数ＣS-1との積Ｕを計算する（ステップＳ２０７）。
【０１２５】
次に、演算部３２は、線形和記憶部３１から線形和Ｔを読み出して、線形和Ｔから積Ｕを減算して、減算結果Ｖを得る（ステップＳ２０８）。
【０１２６】
次に、演算部３２は、減算結果Ｖと０とを比較して、減算結果Ｖが正であれば、減算結果Ｖを第１行、第ｒ列目の絶対値Ｒ1rとして出力し、減算結果Ｖが０または負であれば、０を第１行、第ｒ列目の絶対値Ｒ1rとして出力する（ステップＳ２０９）。
【０１２７】
符号計算部２３は、第１行の第１行、第ｒ列目の符号S1rを算出し、符号乗算部２５は、絶対値Ｒ1rと符号S1rとを乗算して、第１行、第ｒ列目の外部値対数比α1rを出力する（ステップＳ２１０）。
【０１２８】
次に、制御部２６は、制御変数ｊと行重みＳとが等しくない場合に（ステップＳ２１１でＮＯ）、制御変数ｊを１だけ増加させて（ステップＳ２１２）、ステップＳ２０７に戻り、等しい場合に（ステップＳ２１１でＹＥＳ）、終了する。
【０１２９】
以上のように、第２の実施形態の復号装置によれば、式（２６）および式（２７）によって、外部値対数比αｍｎの絶対値Ｒｍｎを算出するので、第１の実施形態と同様に従来よりも計算精度を高くすることができる。さらに、第２の実施形態では、式（２６）および式（２７）を計算するので、第１の実施形態のように式（２５）を直接計算するよりも、計算量を減らすことができる。
【０１３０】
［第３の実施形態］
第３の実施形態は、第１の実施形態で説明した絶対値Ｒｍｎの計算と文献（Jones, C., E. Vall´es, M. Smith, and J. Villasenor. 13-16 Oct. 2003. “Approximatemin* constraint node updating for ldpc code decoding.” Military Communications Conference, 2003. MILCOM 2003. IEEE.）に記載されているA-min復号法（ギャラガー関数の計算を、自身が最小値のときのみ正確に計算する方法）とを併用したものである。
【０１３１】
本発明の第３の実施形態では、式（２３）の一形態である、次の式（２８）、（２９）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出する。
すなわち、第ｍ行について、Ｓ個（Ｓは行重み）のデータ（λn′＋βmｎ′）（ｎ′はＨｍｎ′＝１を満たし、かつＳ個の異なる数である。）の絶対値の中で｜λn＋βmn｜が最小でないときには、式（２８）にしたがって、外部値対数比αｍｎの絶対値Ｒｍｎを計算する。
【数１２】
2007306495.tif 000014
【０１３２】
また、｜λn＋βmn｜が最小であるときには、式（２９）にしたがって、外部値対数比αｍｎの絶対値Ｒｍｎを計算する。
【数１３】
2007306495.tif 000015
【０１３３】
（行処理部の構成）
図１３は、本発明の第３の実施形態の行処理部１２の機能ブロック図である。
【０１３４】
図１３を参照して、この行処理部１２が、図９に示す行処理部１２と相違するのは、絶対値計算部４４である。
【０１３５】
絶対値計算部４４は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ｛（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝に基づいて、式（２８）、（２９）のＲｍｎを計算する。
【０１３６】
絶対値計算部４４は、絶対値記憶部２７と、演算部４２と、係数記憶部４９と、線形和記憶部４１と、最小値位置記憶部４６とを備える。
【０１３７】
絶対値記憶部２７は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータの絶対値｛｜λn′＋βｍn′｜：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を記憶する。
【０１３８】
演算部４２は、加算、乗算および減算を行なう。
係数記憶部４９は、データ数（Ｓ−１）についての係数ＣS-1および係数ＤS-1と、データ数Ｓについての係数ＣSおよび係数ＤSとを記憶する。
【０１３９】
線形和記憶部４１は、線形和Ｔ１、線形和絶対値Ｔ′、線形和Ｔ２を記憶する。
最小値位置記憶部４６は、第ｍ行を処理するときには、Ｓ個（Ｓは行重み）のデータ｛（λn′＋βｍｎ′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中で絶対値が最小のデータの位置n′を最小値位置ｌとして記憶する。
【０１４０】
（行処理部の動作）
図１４は、第３の実施形態の行処理部１２の第１行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
【０１４１】
図１４を参照して、まず、加算部２１は、列処理部１４から事前値対数比βｍｎ（ここで、ｍおよびｎは「Ｈｍｎ＝１」を満たす。）を受け、対数尤度比算出部１０から列数Ｎ個分の対数尤度比λn（ｎ＝１、・・・Ｎ）を受けて、「Ｈｍｎ＝１」を満たすｎおよびｍについて、対数尤度比λnと事前値対数比βｍｎとを加算する。抽出部２２は、加算結果（λn＋βmn）のうち、Ａ（１）に従って、第１行目に関するＳ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を抽出する。制御部２６は、絶対値記憶部２７に、抽出されたＳ個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶させる。（ステップＳ３０１）。
【０１４２】
次に、演算部４２は、絶対値記憶部２７に記憶されているＳ個のデータの総和ＳＵＭ１を計算する（ステップＳ３０２）。
【０１４３】
次に、演算部４２は、係数記憶部４９からデータ数Ｓについての係数ＣSを読み出して、係数ＣSと総和ＳＵＭ１との積Ｐ１を計算する（ステップＳ３０３）。
【０１４４】
次に、演算部４２は、係数記憶部４９からデータ数Ｓについての係数ＤSを読み出して、積Ｐ１から係数ＤSを減算して、線形和Ｔ１を算出する（ステップＳ３０４）。
【０１４５】
次に、演算部４２は、線形和Ｔ１と０とを比較して、線形和Ｔ１が正であれば、線形和絶対値Ｔ′を線形和Ｔ１とし、線形和Ｔ１が０または負であれば、線形和絶対値Ｔ′を０とする（ステップＳ３０５）。
【０１４６】
次に、制御部２６は、線形和記憶部４１に線形和絶対値Ｔ′を記憶させる（ステップＳ３０６）。
【０１４７】
さらに、演算部４２は、係数記憶部４９からデータ数（Ｓ−１）についての係数ＣS-1を読み出して、係数ＣS-1と総和ＳＵＭ１との積Ｐ２を計算する（ステップＳ３０７）。
【０１４８】
次に、演算部４２は、係数記憶部４９からデータ数（Ｓ−１）についての係数ＤS-1を読み出して、積Ｐ２から係数ＤS-1を減算して、線形和Ｔ２を算出する（ステップＳ３０８）。
【０１４９】
次に、制御部２６は、線形和記憶部４１に線形和Ｔ２を記憶させる（ステップＳ３０９）。
【０１５０】
次に、演算部４２は、Ｓ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中で絶対値が最小のデータの位置n′を最小値位置ｌとして、最小値位置記憶部４６に記憶させる（ステップＳ３１０）。
【０１５１】
次に、制御部２６は、制御変数ｊを１とする（ステップＳ３１１）。
制御部２６は、Ａ（１）内のｊ番目の要素ｒを特定し、ｒが最小値位置ｌと同じ場合には（ステップＳ３１２でＹＥＳ）、ステップＳ３１３〜Ｓ３１５の処理を行なわせる。
【０１５２】
次に、演算部４２は、係数記憶部４９からデータ数（Ｓ−１）についての係数ＣS-1を読み出して、絶対値記憶部２７からデータ｜λr＋β1r｜を読み出して、係数ＣS-1とデータ｜λr＋β1r｜との積Ｕを計算する（ステップＳ３１３）。
【０１５３】
次に、演算部４２は、線形和記憶部４１から線形和Ｔ２を読み出して、線形和Ｔ２から積Ｕを減算して、減算結果Ｖを得る（ステップＳ３１４）。
【０１５４】
次に、演算部４２は、減算結果Ｖと０とを比較して、減算結果Ｖが正であれば、減算結果Ｖを第１行、第ｒ列目の絶対値Ｒ1rとして出力し、減算結果Ｖが０または負であれば、０を第１行、第ｒ列目の絶対値Ｒ1rとして出力する（ステップＳ３１５）。
【０１５５】
一方、制御部２６は、ｒが最小値位置ｌと異なる場合には（ステップＳ３１２でＮＯ）、ステップＳ３１６の処理を行なわせる。
【０１５６】
制御部２６は、線形和記憶部４１から線形和絶対値Ｔ′を読み出して、第１行、第ｒ列目の絶対値Ｒ１rとして出力する（ステップＳ３１６）。
【０１５７】
符号計算部２３は、第１行、第ｒ列目の行の符号S1rを算出し、符号乗算部２５は、絶対値Ｒ1rと符号S1rとを乗算して、第１行、第ｒ列目の外部値対数比α1rを出力する（ステップＳ３１７）。
【０１５８】
次に、制御部２６は、制御変数ｊと行重みＳとが等しくない場合に（ステップＳ３１８でＮＯ）、制御変数ｊを１だけ増加させて（ステップＳ３１９）、ステップＳ３１２に戻り、等しい場合に（ステップＳ３１８でＹＥＳ）、終了する。
【０１５９】
以上のように、第３の実施形態の復号装置によれば、式（２８）、式（２９）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出するので、第１の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第３の実施形態の復号装置によれば、Ｓ個（Ｓは行重み）のデータ｛（λn′＋βｍｎ′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中で絶対値が最小のデータの位置n′を最小値位置ｌとしたときに、絶対値Ｒｍｉ（ｉ≠ｌ）の値はすべて同一の値Ｔ′とするので、計算量を少なくすることができる。
【０１６０】
［第４の実施形態］
第４の実施形態は、第１の実施形態で説明した絶対値Ｒｍｎの計算と文献（Guilloud, F.,Sept. 1-5, 2003b. “λ-Min Decoding Algorithm of Regular and Irregular LDPC Codes.” 3rd International Symposium on Turbo Codes & related topics.）に記載されているλ−min復号法（ギャラガー関数に入力するデータの個数を小さなものから数えてλ個に制限する方法）とを併用したものである。本明細書では、対数尤度比λと、λ-minにおけるλ（個数）と区別するために、λ-minにおけるλ（個数）の代わりにＺを用いることとする。
【０１６１】
さて、本発明の第４の実施形態では、式（２３）の一形態である、次の式（３０）、（３１）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出する。
すなわち、第ｍ行について、Ｓ個（Ｓは行重み）のデータ（λn′＋βmｎ′）（ｎ′はＨｍｎ′＝１を満たし、かつＳ個の異なる数である。）の絶対値の中で｜λn＋βmn｜が第１最小値〜第Ｚ最小値（（Ｓ−１）≧Ｚ≧３）のいずれでもないとき、すなわち小さな方から数えて第Ｚ番目までに入らないときには、式（３０）にしたがって、外部値対数比αｍｎの絶対値Ｒｍｎを計算する。
【数１４】
2007306495.tif 000016
【０１６２】
ここで、集合Ｍｉｎ（ｍ、ｚ）に属する要素ｉは、Ｈｍｉ＝１を満たし、かつ｜λｉ+βｍｉ｜は、Ｓ個（Ｓは行重み）のデータ（λn′＋βmｎ′）（ｎ′はＨｍｎ′＝１を満たし、かつＳ個の異なる数である。）の絶対値の中で第１最小値〜第Ｚ最小値のいずれかである、すなわち小さな方から数えて第Ｚ番目に入る。
【０１６３】
また、｜λn＋βmn｜が第１最小値〜第Ｚ最小値のいずれかであるときには、式（３１）にしたがって、外部値対数比αｍｎの絶対値Ｒｍｎを計算する。
【数１５】
2007306495.tif 000017
【０１６４】
ここで、集合Ｍｉｎ（ｍ、ｚ＋１）＼ｎに属する要素ｉは、ｉ≠ｎ、Ｈｍｉ＝１を満たし、かつ｜λｉ+βｍｉ｜は、Ｓ個（Ｓは行重み）のデータ（λn′＋βmｎ′）（ｎ′はＨｍｎ′＝１を満たし、かつＳ個の異なる数である。）の絶対値の中で第１最小値〜第（Ｚ＋１）最小値のいずれかである、すなわち小さな方から数えて第（Ｚ＋１）番目までに入る。
【０１６５】
（行処理部の構成）
図１５は、本発明の第４の実施形態の行処理部１２の機能ブロック図である。
【０１６６】
図１５を参照して、この行処理部１２が、図９に示す行処理部１２と相違するのは、絶対値計算部５４である。
【０１６７】
絶対値計算部５４は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ｛（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝に基づいて、式（３０）、（３１）のＲｍｎを計算する。
【０１６８】
絶対値計算部５４は、絶対値記憶部５７と、演算部５２と、係数記憶部５９と、線形和記憶部５１と、位置記憶部５６とを備える。
【０１６９】
絶対値記憶部５７は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ{（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が第１最小値から第（Ｚ＋１）最小値までの（Ｚ＋１）個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶する。
【０１７０】
演算部５２は、加算、乗算および減算を行なう。
係数記憶部５９は、データ数Ｚについての係数ＣZおよび係数ＤZを記憶する。
【０１７１】
線形和記憶部５１は、線形和絶対値Ｔ′、線形和Ｔ２を記憶する。
位置記憶部５６は、第ｍ行を処理するときに、集合ｌ（ｍ）を記憶する。集合ｌ（ｍ）の要素は、Ｓ個（Ｓは行重み）のデータ｛（λn′＋βｍｎ′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中で絶対値が第１最小値〜第Ｚ最小値のいずれかであるのデータの位置n′である。
【０１７２】
（行処理部の動作）
図１６は、第４の実施形態の行処理部１２の第１行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
【０１７３】
図１６を参照して、まず、加算部２１は、列処理部１４から事前値対数比βｍｎ（ここで、ｍおよびｎは「Ｈｍｎ＝１」を満たす。）を受け、対数尤度比算出部１０から列数Ｎ個分の対数尤度比λn（ｎ＝１、・・・Ｎ）を受けて、「Ｈｍｎ＝１」を満たすｎおよびｍについて、対数尤度比λnと事前値対数比βｍｎとを加算する。抽出部２２は、加算結果（λn＋βmn）のうち、Ａ（１）に従って、第１行目に関するＳ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝を抽出する。演算部５２は、抽出したＳ個のデータのうち、その絶対値が第１最小値から第（Ｚ＋１）最小値までを特定する。制御部２６は、絶対値記憶部５７に、特定された絶対値が第１最小値から第（Ｚ＋１）最小値までの（Ｚ＋１）個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶させる（ステップＳ４０１）。
【０１７４】
次に、演算部５２は、絶対値記憶部５７に記憶されている（Ｚ＋１）個のデータのうち、第１最小値から第Ｚ最小値までのデータの総和ＳＵＭ１を計算する（ステップＳ４０２）。
【０１７５】
次に、演算部５２は、係数記憶部５９からデータ数Ｚについての係数ＣZを読み出して、係数ＣZと総和ＳＵＭ１との積Ｐ１を計算する（ステップＳ４０３）。
【０１７６】
次に、演算部５２は、係数記憶部５９からデータ数Ｚについての係数ＤZを読み出して、積Ｐ１から係数ＤZを減算して、線形和Ｔ１を算出する（ステップＳ４０４）。
【０１７７】
次に、演算部５２は、線形和Ｔ１と０とを比較して、線形和Ｔ１が正であれば、線形和絶対値Ｔ１′を線形和Ｔとし、線形和Ｔ１が０または負であれば、線形和絶対値Ｔ１′を０とする（ステップＳ４０５）。
【０１７８】
次に、制御部２６は、線形和記憶部５１に算出した線形和絶対値Ｔ１′を記憶させる（ステップＳ４０６）。
【０１７９】
次に、制御部２６は、総和ＳＵＭ１と、絶対値記憶部５７に記憶されている第（Ｚ＋１）最小値のデータとの総和ＳＵＭ２を計算する（ステップＳ４０７）。
【０１８０】
次に、演算部５２は、係数記憶部５９からデータ数Ｚについての係数ＣZを読み出して、係数ＣZと総和ＳＵＭ２との積Ｐ２を計算する（ステップＳ４０８）。
【０１８１】
次に、演算部５２は、係数記憶部５９からデータ数Ｚについての係数ＤZを読み出して、積Ｐ２から係数ＤZを減算して、線形和Ｔ２を算出する（ステップＳ４０９）。
【０１８２】
次に、制御部２６は、線形和記憶部５１に算出した線形和Ｔ２を記憶させる（ステップＳ４１０）。
【０１８３】
次に、演算部５２は、Ｓ個（Ｓは行重み）のデータ｛（λn′＋β1ｎ′）：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、絶対値が第１最小値〜第Ｚ最小値のいずれかであるデータの位置n′を集合ｌ（１）の要素として位置記憶部５６に記憶する（ステップＳ４１１）。
【０１８４】
次に、制御部２６は、制御変数ｊを１とする（ステップＳ４１２）。
制御部２６は、Ａ（１）内のｊ番目の要素ｒを特定し、ｒが集合ｌ（１）の要素である場合には（ステップＳ４１３でＹＥＳ）、ステップＳ４１４〜Ｓ４１６の処理を行なわせる。
【０１８５】
演算部５２は、係数記憶部５９からデータ数Ｚについての係数ＣZを読出し、絶対値記憶部５７からデータ｜λr＋β1r｜を読み出して、係数ＣZとデータ｜λr＋β1r｜との積Ｕを計算する（ステップＳ４１４）。
【０１８６】
次に、演算部５２は、線形和記憶部５１から線形和Ｔ２を読み出して、線形和Ｔ２から積Ｕを減算して、減算結果Ｖを得る（ステップＳ４１５）。
【０１８７】
次に、演算部５２は、減算結果Ｖと０とを比較して、減算結果Ｖが正であれば、減算結果Ｖを第１行、第ｒ列目の絶対値Ｒ1rとして出力し、減算結果Ｖが０または負であれば、０を第１行、第ｒ列目の絶対値Ｒ1rとして出力する（ステップＳ４１６）。
【０１８８】
一方、制御部２６は、ｒが集合ｌ（１）の要素でない場合には（ステップＳ４１３でＮＯ）、ステップＳ４１７の処理を行なわせる。
【０１８９】
制御部２６は、線形和記憶部５１から線形和絶対値Ｔ′を読み出して、第１行、第ｒ列目の絶対値Ｒ1rとして出力する（ステップＳ４１７）。
【０１９０】
符号計算部２３は、第１行、第ｒ列目の符号S1rを算出し、符号乗算部２５は、絶対値Ｒ1rと符号S1rとを乗算して、第１行、第ｒ列目の外部値対数比α1rを出力する（ステップ４１８）。
【０１９１】
次に、制御部２６は、制御変数ｊが行重みＳとが等しくない場合に（ステップＳ４１９でＮＯ）、制御変数ｊを１だけ増加させて（ステップＳ４２０）、ステップＳ４１３に戻り、等しい場合に（ステップＳ４１９でＹＥＳ）、終了する。
【０１９２】
以上のように、第４の実施形態の復号装置によれば、式（３０）、式（３１）で表わされる、外部値対数比αｍｎの絶対値Ｒｍｎを算出するので、第１の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第４の実施形態の復号装置によれば、Ｓ個（Ｓは行重み）のデータ｛（λn′＋βｍｎ′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の中で、自分自身を除いて絶対値が小さな方から数えてＺ（≧３）番目までのデータを用いるので、少ないデータ数でギャラガー関数を良好に近似することができる。
【０１９３】
［第５の実施形態］
第５の実施形態では、行処理に利用するデータ数を順次減少させる。最初は、第２の実施形態で説明したように、自分自身を除いて（Ｓ−１）個のデータを用いて絶対値Ｒｍｎの計算を行なう、行処理の計算が収束するにつれて、第４の実施形態で説明したように、自分自身を除いて小さなものから数えて（Ｓ−２）番目までのデータを用いて絶対値Ｒｍｎの計算を行なう。さらに行処理の計算が収束するにつれて、自分自身を除いて小さなものから数えて（Ｓ−３）番目までのデータを用いて絶対値Ｒｍｎの計算を行なう。以下、順次、絶対値Ｒｍｎの計算に利用するデータ数を減少させる。ここで、行処理の計算の収束を判定するために、Ｓ個（Ｓは行重み）のデータ｛λn′＋βmn′：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の２乗平均値を用いる。
【０１９４】
（行処理部の構成）
図１７は、本発明の第５の実施形態の行処理部１２の機能ブロック図である。
【０１９５】
図１７を参照して、この行処理部１２が、図９に示す行処理部１２と相違するのは、絶対値計算部６４である。
【０１９６】
絶対値計算部６４は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ｛（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝に基づいて、式（２５）、または式（３０）、（３１）のＲｍｎを計算する。
【０１９７】
絶対値計算部６４は、絶対値記憶部６７と、演算部６２と、係数記憶部６９と、線形和記憶部６１と、位置記憶部６６と、切替パラメータ記憶部６３とを備える。
【０１９８】
絶対値記憶部６７は、第ｍ行を処理するときには、抽出部２２で抽出されたＳ個のデータ{（λn′＋βｍn′）：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、第２の実施形態の処理を行なうときには、Ｓ個すべてのデータの絶対値｛｜λn′＋β1n′｜｝を記憶し、第４の実施形態の処理を行なうときには、絶対値が第１最小値から第（Ｚ＋１）最小値までの（Ｚ＋１）個のデータの絶対値｛｜λn′＋β1n′｜｝を記憶する。
【０１９９】
演算部６２は、加算、乗算および減算を行なう。
係数記憶部６９は、データ数１からＳまでの係数Ｃ1、Ｃ2、・・・、ＣSおよびＤ1、Ｄ2、・・・、ＤSを記憶する。
【０２００】
線形和記憶部６１は、線形和Ｔ、線形和絶対値Ｔ′、線形和Ｔ２を記憶する。
位置記憶部６６は、第４の実施形態で示されるものと同様である。
【０２０１】
切替パラメータ記憶部６３は、行処理に利用するデータ数をｉ（ｉ＝１〜（Ｓ−１））から１つ減らすための判断基準となるパラメータＬＨiを記憶する。
【０２０２】
（行処理部の動作）
図１８は、第５の実施形態の行処理部１２の第１行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
【０２０３】
図１８を参照して、まず、制御部２６は、行処理部１２の各構成要素に図１４のステップＳ２０１〜Ｓ２１２の処理を実行させる（ステップＳ５０１）。
【０２０４】
次に、演算部６２は、第１行目に関するＳ個（Ｓは行重み）のデータ｛λn′＋β1n′：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の２乗平均値ＬＨを計算する（ステップＳ５０２）。
【０２０５】
制御部２６は、切替パラメータ記憶部６３から、データ数（Ｓ−１）個についての切替パラメータＬＨS-1を読み出して、２乗平均値ＬＨがデータ数（Ｓ−１）についての切替パラメータＬＨS-1以上であるかどうかを判定する。制御部２６は、２乗平均値ＬＨが切替パラメータＬＨS-1未満である場合には（ステップＳ５０３でＮＯ）、ステップＳ５０１の処理、すなわち、図１４のステップＳ２０１〜Ｓ２１２の処理を繰返させる。制御部２６は、２乗平均値ＬＨが切替パラメータＬＨS-1以上である場合には（ステップＳ５０３でＹＥＳ）、ステップＳ５０４以降の処理を行なわせる。
【０２０６】
制御部２６は、制御変数Ｚ＝Ｓ−２とする（ステップＳ５０４）。
制御部２６は、行処理部１２内の各構成要素に図１８に示すステップＳ４０１〜Ｓ４２０の処理を実行させる（ステップＳ５０５）。
【０２０７】
次に、演算部６２は、第１行目に関するＳ個（Ｓは行重み）のデータ｛λn′＋β1n′：ただし、ｎ′はＨ1n′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の２乗平均値ＬＨを計算する（ステップＳ５０６）。
【０２０８】
制御部２６は、切替パラメータ記憶部６３から、データ数Ｚについての切替パラメータＬＨZを読み出して、２乗平均値ＬＨが切替パラメータＬＨZ以上であるかどうかを判定する。制御部２６は、２乗平均値ＬＨが切替パラメータＬＨZ未満である場合には（ステップＳ５０７でＮＯ）、ステップＳ５０５の処理、すなわち、図１８のステップＳ４０１〜Ｓ４２０の処理を繰返させる。制御部２６は、２乗平均値ＬＨが切替パラメータＬＨZ以上である場合には（ステップＳ５０７でＹＥＳ）、さらに、制御変数Ｚが３であるかどうかを調べる。制御部２６は、制御変数Ｚが３である場合には（ステップＳ５０８でＹＥＳ）、制御変数Ｚを変化させずに、ステップＳ４０１〜Ｓ４２０の処理を繰返させる（ステップＳ５０９）。一方、制御部２６は、制御変数Ｚが３でない場合には（ステップＳ５０８でＮＯ）、制御変数Ｚを１だけ減少させて（ステップＳ５１０）、ステップＳ５０５に戻り、ステップＳ４０１〜Ｓ４２０の処理を行なわせる。
【０２０９】
以上のように、第５の実施形態の復号装置によれば、第１〜第４の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第５の実施形態の復号装置によれば、行処理の計算の収束にしたがって、外部値対数比の絶対値Ｒｍｎの計算に用いるデータの数を減少させるので、少ない計算量で、高い計算精度を得ることができる。
【０２１０】
（変形例）
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例を含む。
【０２１１】
（１）  復号プログラム
本発明の実施形態で説明した復号装置は、専用のハードウエア装置で実現されるものに限られない。外部から復号プログラムをメモリにインストールし、コンピュータがこの復号プログラムをメモリから読出して実行することによって、復号装置の機能を実現することとしてもよい。この場合、復号プログラムは、図６、１０、１２、１４、１６、１８のフローチャートの各ステップを備える。
【０２１２】
（２）  絶対値Ｒｍｎの計算の用いるデータの種類
第４の実施形態では、Ｓ個（Ｓは行重み）のデータ｛λn′＋βmn′：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝のうち、自分自身を除いて小さな方から数えてＺ（３≦Ｚ≦（Ｓ−１））個までのデータを用いて外部値対数比の絶対値Ｒｍｎを計算したが、これに限定されるものではなく、自分自身を除いて、その大きさに係わりなく任意のＬ個（３≦Ｌ≦（Ｓ−１）を用いて外部値対数比の絶対値Ｒｍｎを計算するものとしてもよい。
【０２１３】
（３）  第５の実施形態のデータ数
第５の実施形態では、Ｚ＝３になるまでデータ数を減少させたが、これに限定するものではない。Ｚ＝１になるまでデータ数を減少させることとしてもよい。
【０２１４】
（４）  第５の実施形態の切替えの判定基準
第５の実施形態では、Ｓ個（Ｓは行重み）のデータ｛λn′＋βmn′：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の２乗平均値を用いたが、これに限定されるものではない。Ｓ個のデータ｛λn′＋βmn′：ただし、ｎ′はＨmn′＝1を満たし、かつｎ′は１からＮまでのＳ個の異なる数｝の平均値を用いてもよいし、特定の１個のデータの大きさ、たとえばＳ個のデータの最大値の大きさを用いてもよいし、最小値の大きさを用いてもよい。
【０２１５】
（５）  第５の実施形態の発展形
第５の実施形態では、行処理の収束とともに、外部値対数比の絶対値Ｒｍｎの計算に用いるデータの数を減少させたが、これに限定するものではない。受信側の復号装置から送信側の符号装置に、行処理の収束を通知し、行重みの数を減少させたパリティ検査行列を用いて符号装置で符号化し、復号装置で復号化することとしてもよい。
【０２１６】
（６）  第５の実施形態の行処理に用いるデータ数Ｌ
第５の実施形態では、２乗平均値ＬＨが増加すると、制御変数Ｚ、つまり行処理に用いるデータ数Ｌを減少させたが、それに代えてまたはそれとともに、２乗平均値ＬＨが減少すると、制御変数Ｚ、つまり行処理に用いるデータ数Ｌを増加させるものとしてもよい。
【０２１７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２１８】
【図１】本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。
【図２】通信路が光ファイバの場合の変調器および復調器の出力データの対応関係を一覧にして示す図である。
【図３】本発明の実施形態に従う復号化器の構成を概略的に示す図である。
【図４】パリティ検査行列の例を表わす図である。
【図５】図４に示すパリティ検査行列のタナーグラフを示す図である。
【図６】ループ判定部の処理動作を示すフロー図である。
【図７】外部値対数比αｍｎの絶対値Ｒｍｎの近似値を説明するための図である。
【図８】ｇ（ｘ）と、ｌｎ（２）−２／ｘと、ｔ−ｘ／２を表わすグラフである。
【図９】本発明の第１の実施形態の行処理部の機能ブロック図である。
【図１０】第１の実施形態の行処理部の第１行についての行処理の動作手順を表わすフローチャートである。
【図１１】本発明の第２の実施形態の行処理部の構成を表わす図である。
【図１２】第２の実施形態の行処理部の第１行についての行処理の動作手順を表わすフローチャートである。
【図１３】本発明の第３の実施形態の行処理部の機能ブロック図である。
【図１４】第３の実施形態の行処理部の第１行についての行処理の動作手順を表わすフローチャートである。
【図１５】本発明の第４の実施形態の行処理部の機能ブロック図である。
【図１６】第４の実施形態の行処理部の第１行についての行処理の動作手順を表わすフローチャートである。
【図１７】本発明の第５の実施形態の行処理部の機能ブロック図である。
【図１８】第５の実施形態の行処理部の第１行についての行処理の動作手順を表わすフローチャートである。
【符号の説明】
【０２１９】
１  符号化器、２  変調器、３  通信路、４  復調器、５  復号化器、４ａ  復調回路、４ｂ  アナログ／デジタル変換回路、１０  対数尤度比算出部、１２  行処理部、１４  列処理部、１６  ループ判定部、２１  加算部、２２  抽出部、２３  符号計算部、２５  符号乗算部、２６  制御部、２４，３４，４４，５４，６４  絶対値計算部、２７，５７，６７  絶対値記憶部、２８，３２，４２，５２，６２  演算部、２９，４９，５９，６９  係数記憶部、３１，４１，５１，６１  線形和記憶部、４６  最小値位置記憶部、５６，６６  位置記憶部。
【図１】
2007306495.tif 000018
【図２】
2007306495.tif 000019
【図３】
2007306495.tif 000020
【図４】
2007306495.tif 000021
【図５】
2007306495.tif 000022
【図６】
2007306495.tif 000023
【図７】
2007306495.tif 000024
【図８】
2007306495.tif 000025
【図９】
2007306495.tif 000026
【図１０】
2007306495.tif 000027
【図１１】
2007306495.tif 000028
【図１２】
2007306495.tif 000029
【図１３】
2007306495.tif 000030
【図１４】
2007306495.tif 000031
【図１５】
2007306495.tif 000032
【図１６】
2007306495.tif 000033
【図１７】
2007306495.tif 000034
【図１８】
2007306495.tif 000035