JP4341639B2 - 復号装置および復号プログラム - Google Patents

復号装置および復号プログラム Download PDF

Info

Publication number
JP4341639B2
JP4341639B2 JP2006135306A JP2006135306A JP4341639B2 JP 4341639 B2 JP4341639 B2 JP 4341639B2 JP 2006135306 A JP2006135306 A JP 2006135306A JP 2006135306 A JP2006135306 A JP 2006135306A JP 4341639 B2 JP4341639 B2 JP 4341639B2
Authority
JP
Japan
Prior art keywords
data
coefficient
value
sum
xmn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006135306A
Other languages
English (en)
Other versions
JP2007306495A (ja
Inventor
貴 前畠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2006135306A priority Critical patent/JP4341639B2/ja
Publication of JP2007306495A publication Critical patent/JP2007306495A/ja
Application granted granted Critical
Publication of JP4341639B2 publication Critical patent/JP4341639B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Description

本発明は、復号装置および復号プログラムに関し、特に低密度パリティ検査符号を復号する復号装置および復号プログラムに関する。
データの通信システムを構築する場合には、高速通信、低消費電力、高通信品質(低ビット誤り率)等が要求される。受信符号の誤りを検出して訂正する誤り訂正技術は、これらの要求を満たす1つの技術として、無線、有線および記録システム等において幅広く利用されている。
近年、この誤り訂正技術の1つとして、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号と、sum-product復号法とが注目されている。このLDPC符号を利用する復号操作は、非特許文献1において議論されている。この非特許文献1においては、符号化率1/2のイレギュラーLDPC符号を利用して白色ガウス通信路のシャノン(Shannon)限界まで0.04dBという復号特性が得られることが示されている。イレギュラーLDPC符号は、パリティ検査行列の行重み(行において1が立つ数)および列重み(列において1が立つ数)が、一定ではない符号を示す。行重みおよび列重みが各行および各列において一定のLDPC符号は、レギュラーLDPC符号と呼ばれる。
この非特許文献1においては、LDPC符号をsum-product復号法に従って復号する数学的なアルゴリズムが示されているものの、その膨大な計算を具体的に行なう回路構成については何ら示していない。
非特許文献2は、LDPC符号の復号装置の回路構成について検討している。この非特許文献2においては、受信系列に基づいて情報シンボルの事後確率を、トレリスに基づくMAP(最大事後確率)アルゴリズム、すなわちBCJRアルゴリズムに従って計算する。このトレリスにおいて前方向および後方向の繰返しを各状態について計算し、これらの前方向および後方向の繰返し値に基づいて、事後確率を求めている。この計算式において、加算/比較/選択/加算装置を用いて計算する。LDPC符号の算出においては、sum-product復号法に基づき、検査行列を生成し、異なるチェックノードからの値を利用して、推定値を算出するように回路を構成している。
また、非特許文献3においては、対数領域でのmin-sum復号法が解説されている。この非特許文献3では、min-sum復号法によれば、加算、最小、正負の判定および正負の符号の乗算という4種類の基本演算のみでギャラガー(Gallager)のf関数に従う処理を実装することができ、実装時の回路構成を簡略化することができることが示されている。
また、非特許文献4には、δ−min復号法が提案されている。、δ−min復号法は、min-sum復号法よりも、ギャラガー(Gallager)のf関数に従う処理に利用するデータの数が多いため、計算の精度が高くなる。
非特許文献2、非特許文献3、非特許文献4に記載されている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 和田山正、「低密度パリティ検査符号とその復号法について」、信学技報、MR2001−83、2001年12月 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復号法で2種類、δ−min復号法では3種類と少ないため、これらの復号法では、sum-product復号法を精度よく近似することができない。
それゆえに、本発明の目的は、計算量が少なく、かつ高い計算精度で低密度パリティ検査符号を復号する復号装置および復号プログラムを提供することである。
上記課題を解決するために、本発明は、行重みS(S≧4)、かつM行N列(M≧1、N≧S)の低密度パリティ検査行列H=[Hmn](1≦m≦M、1≦n≦N)を用いて、入力されたデータを所定個数の単位で復号を行なう復号装置であって、入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、パリティ検査行列Hの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、外部値対数比に基づいて、パリティ検査行例Hの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部とを備え、行処理部および列処理部は、パリティ検査で誤りが検出された場合に、処理を繰返し、行処理部は、第m行(1≦m≦M)について、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中のL個(Lは3以上、かつS以下)のデータの絶対値の総和SUM、データ数Lに依存する第1の係数Cおよび第2の係数Dによって次の式(1)で表わされるRmnを外部値対数比の絶対値の更新値とする。
Rmn=C×SUM−D ・・・(1)
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、データxmn以外の(S−1)個のデータの絶対値の総和を式(1)のSUMとし、データ数(S−1)についての第1の係数Cを式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和SUM1を算出し、総和SUM1と、データ数(S−1)についての第1の係数Cとを乗算して積Pを算出し、積Pからデータ数(S−1)についての第2の係数Dを減算して線形和Tを算出して記憶し、さらにデータxmnの絶対値とデータ数(S−1)についての第1の係数Cとの積Uを算出し、記憶している線形和Tから積Uを減算することによって、式(1)におけるRmnを算出する。
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が最小のときには、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}からデータxmnを除いた(S−1)個のデータの絶対値の総和を式(1)のSUMとし、データ数(S−1)についての第1の係数Cを式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とし、行処理部は、データxmnの絶対値が最小でないときには、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和を式(1)のSUMとし、データ数Sについての第1の係数Cを式(1)の係数Cとし、データ数Sについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が小さなものから数えて第Z番目((S−1)≧Z≧3)までに入る場合には、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第(Z+1)番目までの(Z+1)個のデータから、データxmnを除いたZ個のデータの絶対値の総和を式(1)のSUMとし、データ数Zについての第1の係数Cを式(1)の係数Cとし、データ数Zについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とし、行処理部は、データxmnの絶対値が小さなものから数えて第Z番目までに入らない場合には、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第Z番目までのZ個のデータの絶対値の総和を式(1)のSUMとし、データ数Zについての第1の係数Cを式(1)の係数Cとし、データ数Zについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、第m行(1≦m≦M)について、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の少なくとも1つの大きさの変化にしたがって、データ数Lを3以上、かつS以下の範囲内で変化させる。
また、本発明は、行重みS(S≧4)、かつM行N列(M≧1、N≧S)の低密度パリティ検査行列Hmn=[Hmn](1≦m≦M、1≦n≦N)を用いて、入力されたデータを所定個数の単位で復号を行なう復号プログラムであって、コンピュータを、入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、パリティ検査行列Hの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、外部値対数比に基づいて、パリティ検査行例Hの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部として機能させ、行処理部および列処理部は、パリティ検査で誤りが検出された場合に、処理を繰返し、行処理部は、第m行(1≦m≦M)について、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中のL個(Lは3以上、かつS以下)のデータの絶対値の総和SUM、データ数Lに依存する第1の係数Cおよび第2の係数Dによって次の式(1)で表わされるRmnを外部値対数比の絶対値の更新値とする。
Rmn=C×SUM−D ・・・(1)
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、データxmn以外の(S−1)個のデータの絶対値の総和を式(1)のSUMとし、データ数(S−1)についての第1の係数Cを式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和SUM1を算出し、総和SUM1と、データ数(S−1)についての第1の係数Cとを乗算して積Pを算出し、積Pからデータ数(S−1)についての第2の係数Dを減算して線形和Tを算出して記憶し、さらにデータxmnの絶対値とデータ数(S−1)についての第1の係数Cとの積Uを算出し、記憶している線形和Tから積Uを減算することによって、式(1)におけるRmnを算出する。
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が最小のときには、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}からデータxmnを除いた(S−1)個のデータの絶対値の総和を式(1)のSUMとし、データ数(S−1)についての第1の係数Cを式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とし、行処理部は、データxmnの絶対値が最小でないときには、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和を式(1)のSUMとし、データ数Sについての第1の係数Cを式(1)の係数Cとし、データ数Sについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が小さなものから数えて第Z番目((S−1)≧Z≧3)までに入る場合には、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第(Z+1)番目までの(Z+1)個のデータから、データxmnを除いたZ個のデータの絶対値の総和を式(1)のSUMとし、データ数Zについての第1の係数Cを式(1)の係数Cとし、データ数Zについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とし、行処理部は、データxmnの絶対値が小さなものから数えて第Z番目までに入らない場合には、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第Z番目までのZ個のデータの絶対値の総和を式(1)のSUMとし、データ数Zについての第1の係数Cを式(1)の係数Cとし、データ数Zについての第2の係数Dを式(1)の係数Dとしたときの、式(1)のRmnを外部値対数比の絶対値の更新値とする。
好ましくは、行処理部は、第m行(1≦m≦M)について、S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の少なくとも1つの大きさの変化にしたがって、データ数Lを3以上、かつS以下の範囲内で変化させる。
本発明によれば、計算量が少なく、かつ高い計算精度で低密度パリティ検査符号を復号することができる。
以下、本発明に係る実施の形態について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。図1において、通信システムは、送信側において、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)(=N)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)ビットのLDPC符号(低密度パリティ検査符号)を生成する。パリティ検査行列H(M行、N列)においては、行が冗長ビットに対応し、列が符号ビットに対応する。
変調器2は、この通信路3の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。たとえば、通信路3が、光ファイバの場合、変調器2においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調(一種の振幅変調)を行なっている。たとえば、送信データビットが“0”の場合には、このレーザダイオードの発光強度を強くして“+1”として送信し、また送信データビットが“1”の場合、レーザダイオードの発光強度を弱くして、“−1”に変換して送信する。
受信部においては、通信路3を介して送信された変調信号に復調処理を施して、(K+M)ビットのデジタル符号を復調する復調器4と、この復調器4からの(K+M)ビットの符号にパリティ検査行列演算処理を施して元のKビットの情報を再生する復号化器5が設けられる。
復調器4は、この通信路3における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器4において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
図2は、通信路3が光ファイバの場合の変調器2および復調器4の出力データの対応関係を一覧にして示す図である。図2において、上述のように、通信路3が光ファイバの場合、変調器2においては、送信データが“0”のときには、送信用のレーザダイオード(発光ダイオード)の発光強度を強くし、“1”を出力し、また送信データビットが“1”のときには、この発光強度を弱くしてビット“−1”を送信する。
この通信路3における伝送損失等により、復調器4に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器4においては、この入力された光信号を量子化処理(アナログ/デジタル変換)を行なって、この受光レベルを検出する。図2においては、8段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“7”のときには、発光強度がかなり強く、受光レベルが“0”のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器4から出力される。この復調器4の出力は、受光レベルが“7”のときにはデータ“3”が出力され、受光レベルが“0”のときには、データ“−4”が出力される。したがってこの復調器4からは、1ビットの受信信号に対し、多値量子化された信号が出力される。
復号化器5は、この復調器4から与えられた(K+M)ビットの受信情報(各ビットは、多値情報を含む)を入力し、LDPCパリティ検査行列Hを適用して、元のKビットの情報を復元する。
なお、この図2においては、復調器4において、8レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器4においては、LD値(LD≧2)に量子化されたビットを用いて復号処理を行なうことができる。
また、図2においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、2値信号を生成してもよい。
図3は、本発明の実施形態に従う復号化器5の構成を概略的に示す図である。この図3においては、復調器4および通信路3も併せて示す。復調器4は、通信路3から与えられた信号を復調する復調回路4aと、この復調回路4aにより生成されたアナログ復調信号をデジタル信号に変換するアナログ/デジタル変換回路4bを含む。このアナログ/デジタル変換回路4bの出力データInが復号化器5へ与えられる。この復号化器5へ与えられるデータInは、LD値(L≧2)のデータである。以下、データInは、多値量子化データであるため、シンボルと称す。復号化器5は、この入力シンボルIn系列に対して復号処理を行なって復号ビットCnを生成する。
復号化器5は、復調器4からの復調シンボルInの対数尤度比λnを生成する対数尤度比算出部10と、パリティ検査行列の行処理を行なう行処理部12と、パリティ検査行列の列処理を行なう列処理部14と、対数尤度比算出部10からの対数尤度比λnと行処理部12の出力ビット(外部値対数比)αmnとに従って復号語を生成するループ判定部16とを含む。
対数尤度比算出部10は、この受信信号のノイズ情報と独立に、対数尤度比λnを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λnは、2×In/σ2で与えられる。ここで、σは、ノイズの分散を示す。この対数尤度比λnを用いてもよいが、本発明の実施形態の説明では、この対数尤度比算出部10は、バッファ回路または定数乗算回路で形成され、対数尤度比λnは、In×fで与えられることとする。ここで、fは非ゼロの正の数である。このノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。対数尤度比算出部は、パリティ検査行列Hの列数Nの単位で、対数尤度比λn(n=1、2、・・・、N)を出力する。
行処理部12および列処理部14は、それぞれ、次式(1)および(2)に従って、演算処理を行ない、パリティ検査行列の行の各要素についての処理(行処理)および列についての各要素についての処理(列処理)を実行する。行処理部12において、列処理部14から与えられる事前値対数比βmnと対数尤度比λnとに従って外部値対数比αmnを更新する。列処理部14において、行処理部12から与えられる外部値対数比αmnに従って事前値対数比βmnを更新する。
Figure 0004341639
ここで、上式(1)および(2)それぞれにおいて、n′∈A(m)\nおよびm′∈B(n)\mは、自身を除く要素を意味する。外部値対数比αmnについては、n′≠nであり、事前値対数比βmnについては、m′≠mである。また、αおよびβの行列内の位置を示す添え字“mn”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
また、関数sign(x)は、次式(3)で定義される。
Figure 0004341639
集合A(m)および式(2)のB(n)は、2元M・N行列H=[Hmn]を復号対象のLDPC符号のパリティ検査行列とした場合、集合[1,N]={1,2,…,N}の部分集合である。
A(m)={n:Hmn=1} …(4)
B(n)={m:Hmn=1} …(5)
すなわち、部分集合A(m)は、パリティ検査行列Hの第m行目において1が立っている列インデックスの集合を意味し、部分集合B(n)は、パリティ検査行列Hの第n列目において1が立っている行インデックスの集合を示す。
具体的に、今、図4に示すパリティ検査行列Hを考える。この図4に示すパリティ検査行列Hにおいては、第1行の第1列から第3列に“1”が立ち、また第2行の第3列および第4列に“1”が立ち、また第3行の第4列から第6列に、“1”が立つ。したがって、この場合、部分集合A(m)は以下のようになる。
A(1)={1,2,3}、
A(2)={3,4}、
A(3)={4,5,6}。
同様、部分集合B(n)については、以下のようになる。
B(1)=B(2)={1}、
B(3)={1,2}、
B(4)={2,3}、
B(5)=B(6)={3}。
このパリティ検査行列Hにおいて、タナー(Tanner)グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この“1”により示される。これを、本明細書においては「“1”が立つ」と称している。すなわち、図5に示すように、変数ノード1,2,3は、チェックノードX(第1行)に接続され、変数ノード3,4が、チェックノードY(第2行)に接続される。変数ノード4,5,6が、チェックノードZ(第3行)に接続される。この変数ノードがパリティ検査行列Hの列に対応し、チェックノードX,YおよびZが、このパリティ検査行列Hの各行に対応する。従って、図4に示すパリティ検査行列は、情報ビットが3ビット、冗長ビットが3ビットの合計6ビットの符号に対して適用される。
このパリティ検査行列Hは、“1”の数は少なく、低密度のパリティ検査行列であり、これにより、計算量を低減できる。
この変数ノードとチェックノードの間で各条件確率P(Xi|Yi)を伝播させ、MAPアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率P(Xi|Yi)は、Yiの条件下でXiとなる確率を示す。
列処理部14は、先の式(2)において示された演算処理を行ない、検査行列Hの各行において生成された外部値対数比を用いて、自身を除く行以外の対応の列の“1”が立っている位置の外部値対数比を加算する。したがって、検査行列Hが図4に示される構成の場合、事前値対数比β11は、第1列において自身が属する第1行以外には“1”が立っていないため、“0”となる。
ループ判定部16は、行処理部12で生成される外部値対数比αmnと対数尤度比算出部10からの対数尤度比λnとを用いて、複数の符号で構成される1次推定語を生成し、これらの1次推定語のパリティ検査を行なう。1次推定語の符号の数は、検査行列の列の数に対応する。このパリティ検査時において、シンドロームが“0”とならない場合には、1次推定語に誤りがあると判断し、行処理部12および列処理部14に処理を繰返し実行させる。この処理の繰返し回数が所定値に到達すると、そのときの1次推定語を復号語として出力する。
図6は、ループ判定部16の処理動作を示すフロー図である。以下、図6を参照して、ループ判定部16の処理操作について説明する。
まず、初期動作として、ループ回数および事前値対数比βmnの初期設定が行なわれる。このループ回数は、列処理部14で生成された事前値対数比βmnを用いて再び行処理部12で外部値対数比αmnを生成するループにおける演算回数を示す。このループ回数においては、最大値が予め定められる。事前値対数比βmnは、“0”に初期設定される(ステップSP1)。
次いで、受信シンボル系列に従って、対数尤度比λnおよび外部値対数比αmnが、それぞれ、対数尤度比算出部10および行処理部12により生成されて、ループ判定部16へ供給される(ステップSP2)。
ループ判定部16は、これらの供給された対数尤度比λnおよび外部値対数比αmnに従って、演算λn+Σαmnを行って推定受信語Qnを算出する(ステップSP3)。ここで、総和Σは、部分集合B(n)の要素mについて実行される。
このステップSP3において算出された値Qnの正負の符号を判定し(ステップSP4)、1次推定符号Cnを生成する(ステップSP5)。この符号の正/負判定においては、たとえば、推定受信語Qnが2の補数表示されているときには、最上位ビット(符号ビット)のビット値を見ることにより、正および負の判定を行なうことができる。
1次推定符号Cnが全て生成され、1次推定語(C1,・・・,CN)が生成されると、次いでパリティ検査を実行する(ステップSP6)。このパリティ検査においては、先の検査行列Hの転置行列を用いて、(C1,…,CN)・Ht=0を計算する。この計算により、生成されるシンドロームが0であれば、1次推定語(C1,…,CN)を復号語として出力する(ステップSP9)。
一方、この生成されたシンドロームが0と異なる場合には、ループ回数が最大値であるかの判定が行なわれる(ステップSP7)。すなわち、この1次推定語の生成回数をカウントし、その生成回数が所定の最大回数に到達すると、その符号についての算出をそれ以上をやめて、現在生成されている1次推定語を復号語として出力する(ステップSP9)。これにより、収束性の悪いノイジーな符号に対して、不必要に演算処理時間が要するのを防止する。
ステップSP7において、ループ回数が最大値に到達していないと判定されると、このループ回数を1だけインクリメントして、再び、行処理部12および列処理部14における処理を開始させて、再びステップSP2からの処理を実行する(ステップSP8)。
行処理部12は、先の式(1)において示された演算処理を行ない、行処理を行なう。式(1)における行処理の計算は、最初にsum-product復号法が提案された。そして、このsum-product復号法の計算量を減らすために、sum-product復号法を近似した方法がこれまでいくつか提案されている。以下では、sum-product復号法と、いくつかの近似方法について説明する。
(sum-product復号法)
sum-product復号法では、式(1)における外部値対数比αmnの絶対値Rmnを、次の式(6)に従って計算する。
Figure 0004341639
ここで、ギャラガー関数fは、次の式(7)で定義される。
Figure 0004341639
このsum-product復号法では、計算精度が高いが、ギャラガー関数fを直接計算する必要があり、計算量が多くなるという問題がある。
(min-sum復号法)
次に、sum-product復号法の近似であるmin-sum復号法について説明する。
式(7)で定義される関数f(x)は、式(8)で示される性質を有する。
-1(x)=f(x) …(8)
ここで、xn′=λn′+βmn′とおくと、sum-product復号法による外部値対数比αmnの絶対値Rmnは、次の式(9)で表わされる。
Rmn=f[Σf(xn′)]
=f-1[Σf(xn′)] …(9)
式(9)を変形すると、式(10)が成立する。
f(Rmn)=Σf(xn′) …(10)
図7は、外部値対数比αmnの絶対値Rmnの近似値を説明するための図である。
図7を参照して、{xn′:(n′∈A(m)/n)}の中の、第1番目に小さな値(以下、第1最小値という)をxmin1、第2番目に小さな値(以下、第2最小値という)をxmin2、第3番目に小さな値(以下、第3最小値という)をxmin3とする。
図7に示すように、絶対値Rmnは、第1最小値xmin1の値に最も強く影響を受ける。
以上より、sum-product復号法による絶対値Rmnは、次の式(11)で近似することができる。
Rmn=f(Σf(xn′)]
≒Min(xn′) …(11)
min-sum復号法では、式(11)の近似を用いる。すなわち、min-sum復号法では、外部値対数比αmnの絶対値Rmnを次の式(12)に従って計算する。
Figure 0004341639
(δ-min復号法)
次に、同じくsum-product復号法の近似であるδ-min復号法について説明する。
min-sum復号法では、第1最小値xmin1によって外部値対数比αmnの絶対値Rmnを表わしたが、δ-min復号法では近似の精度を上げるために、次の式(13)のように、外部値対数比αmnの絶対値Rmnを第1最小値xmin1と第2最小値xmin2で表わす。
Rmn=f[Σf(xn′)]
≒f(f(xmin1)+f(xmin2)) …(13)
式(13)をさらに近似すると、次の式(14)が成り立つ。
Rmn≒f(f(xmin1)+f(xmin2))
≒Min(xmin1,xmin2)+ln(1+e-|xmin1+xmin2|)−ln(1+e-|xmin1-xmin2|)≒Min(xmin1,xmin2)−D …(14)
ただし、D=ln(1+e-|xmin1-xmin2|)…(15)
式(15)の近似を検討する前に、まず次の関数g(x)の近似を検討する。
g(x)=ln(1+e-x) …(16)
式(16)は、一般に次の式のように近似される。
g(x)≒ln(2)−x/2 …(17)
ここでは、式(17)のln(2)を定数tとおいて、g(x)をより精度よく近似することができる定数tの値を求める。
図8は、g(x)と、ln(2)−2/xと、t−x/2を表わすグラフである。
図8を参照して、ln(2)−2/xは、xが0に近いときにg(x)に近いが、xが大きくなると、g(x)から大きくはずれることがわかる。g(x)とt−x/2との誤差が、特定のxの範囲でのみ小さくするのではなく、xの全体に対して、ほどよい大きさとなるためには、次の式(18)で表わされるSと、式(19)で表わされるTとが等しくなることが必要である。
Figure 0004341639
Figure 0004341639
式(18)および式(19)より、t2=0.82となり、t=0.9となる。
以上の結果を利用して、式(15)のDは、次の式(20)で近似される。
D≒Max(0,0.9−|xmin1−xmin2|/2) …(20)
ここで、Maxを用いたのは、g(x)>0であることを考慮して、Dが負とならないようにするためである。
式(20)を用いると、式(14)は、次の式(21)で近似される。
Rmn≒Min(xmin1,xmin2)+Max(0,0.9−|xmin1−xmin2|/2)
=Min(xmin1,xmin2)+Min(|xmin1−xmin2|/2−0.9,0)
…(21)
式(21)において、|xmin1−xmin2|<1.8の場合には、次の式(22)が成り立つ。
Rmn≒0.5(xmin1+xmin2)−0.9 …(22)
式(22)で表わされるRmnが、δ-min復号法での外部値対数比αmnの絶対値である。
(本発明の実施形態の復号法)
以上のような、sum-product復号法の従来から提案されている近似法では、第1最小値xmin1を用いて、または第1最小値xmin1および第2最小値xmin2を用いて、ギャラガー関数fを近似することができた。しかしながら、近似に利用するデータ数が1個または2個と少ないので、ギャラガー関数fの近似精度は必ずしも高くない。
そこで、本発明の実施形態の復号法は、3個以上のデータでギャラガー関数を近似することとする。
すなわち、本発明の実施形態では、次の式(23)にしたがって、外部値対数比αmnの絶対値Rmnを計算する。
Figure 0004341639
ただし、パリティ検査行列Hの、行重みSを4以上、行数Mを1以上、列数NをS以上とし、集合A′(m)には、「Hmn′=1」を満たすS個のn′のうちのL個(S≧L≧3)が属する。また、係数CおよびDは、A′(m)のデータ数Lに依存する定数である。ここで、パリティ検査行列の行重みとは、パリティ検査行列の行方向の値が「1」である要素の個数である。たとえば、図4に示すパリティ検査行列の場合には、行重みは「3」である。
さて、式(23)の係数CおよびDには近似の精度が良くなるように予め計算した値が設定される。
以下、係数CおよびDを算出方法の一例について説明する。
式(23)における|λn′+βmn′|は、その値が大きければ尤度が高く、逆に0に近いほど尤度が低い。つまり、|λn′+βmn′|が0の場合には、尤度が最も低く、尤度を使った誤り訂正には全く寄与しない。また、復号器内で取り使われる信号は、すべて量子化されていることを考慮して、|λn′+βmn′|の値は、0を除く、ある上限値までの整数値と考えることができる。そして、図8に示されるように、関数g(x)の値がxが5以上でほとんど変化しないことを考慮して、上限値を5にすればよいと考えることができる。
以上より、たとえば、データ数Lが3個の場合には、次の式(24)で表わされる誤差Errが最小となるように、最小2乗誤差法によって、係数C3およびD3を求めることができる。
Figure 0004341639
最小2乗誤差法による計算の結果、データ数Lが3のときには、係数C3は0.3、係数D3は1.3が望ましい値として求められる。
同様の計算をデータ数が4、5、6について行った結果を次に示す。
データ数Lが4のときには、係数C4は0.21、係数D4は1.4が望ましい。データ数Lが5のときには、係数C5は0.14、係数D5は1.4が望ましい。データ数Lが6のときには、係数C6は0.11、係数D6は1.3が望ましい。また、データ数Lが2のときには、係数C2は0.49、係数D2は1.0が望ましい。
(本発明の第1の実施形態の復号法)
さて、本発明の第1の実施形態では、式(23)の一形態である、次の式(25)で表わされる、外部値対数比αmnの絶対値Rmnを算出する。
Figure 0004341639
すなわち、第1の実施形態では、行重みをSとしたときに、S個のデータ{(λn+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数(つまり、n′はパリティ検査行列Hの第m行で「1」が立つ列の位置を表わす)}のうち、(λn+βmn)を除いた(S−1)個のデータの絶対値の総和と、データ数(S−1)についての係数CS-1と、データ数(S−1)についての係数DS-1とで表わされる式(25)のRmnを算出する。
(行処理部の構成)
図9は、本発明の第1の実施形態の行処理部12の機能ブロック図である。
図9を参照して、行処理部12は、加算部21と、抽出部22と、制御部26と、符号計算部23と、絶対値計算部24と、符号乗算部25とを備える
加算部21は、列処理部14から事前値対数比βmn(ここで、mおよびnは「Hmn=1」を満たす。)を受け、対数尤度比算出部10から列数N個分の対数尤度比λn(n=1、・・・N)を受けて、「Hmn=1」を満たすnおよびmについて、対数尤度比λnと事前値対数比βmnとを加算する。
抽出部22は、加算部21から出力される加算結果(λn+βmn)のうち、第m行(m=1〜M)を処理するときには、A(m)に従って、第m行に関するS個(Sは行重み)のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}を抽出する。
制御部26は、行処理部12内の構成要素の制御を行なう。
絶対値計算部24は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}に基づいて、式(25)のRmnを計算する。
符号計算部23は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}に基づいて、式(1)の符号部分(これをSmnとする)の計算を行なう。
符号乗算部25は、絶対値計算部24から出力される絶対値Rmnと、符号計算部23から出力される符号Smnとを乗算して、外部値対数比αmnを出力する。
絶対値計算部24は、絶対値記憶部27と、演算部28と、係数記憶部29とを備える。
絶対値記憶部27は、第m行を処理するときには、抽出部22で抽出されたS個のデータの絶対値{|λn′+βmn′|:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}を記憶する。
演算部28は、加算、乗算および減算を行なう。
係数記憶部29は、データ数(S−1)についての係数CS-1および係数DS-1を記憶する。
(行処理部の動作)
図10は、第1の実施形態の行処理部12が第1行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
図10を参照して、まず、加算部21は、列処理部14から事前値対数比βmn(ここで、mおよびnは「Hmn=1」を満たす。)を受け、対数尤度比算出部10から列数N個分の対数尤度比λn(n=1、・・・N)を受けて、「Hmn=1」を満たすnおよびmについて、対数尤度比λnと事前値対数比βmnとを加算する。抽出部22は、加算結果(λn+βmn)のうち、A(1)に従って、第1行目に関するS個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}を抽出する。制御部26は、絶対値記憶部27に、抽出されたS個のデータの絶対値{|λn′+β1n′|}を記憶させる(ステップS101)。
次に、制御部26は、制御変数jを1とする(ステップS102)。
次に、演算部28は、A(1)内のj番目の要素rを特定し、絶対値記憶部27に記憶されているS個のデータ{|λn′+β1n′|}のうち、|λr+β1r|を除いた総和SUMを計算する(ステップS103)。
次に、演算部28は、係数記憶部29からデータ数(S−1)についての係数CS-1を読み出して、係数CS-1と総和SUMとの積Pを計算する(ステップS104)。
次に、演算部28は、係数記憶部29からデータ数(S−1)についての係数DS-1を読み出して、積Pから係数DS-1を減算して、線形和Vを得る(ステップS105)。
次に、演算部28は、線形和Vと0とを比較して、線形和Vが正であれば、線形和Vを第1行、第r列目の絶対値R1rとして出力し、線形和Vが0または負であれば、0を第1行、第r列目の絶対値R1rとして出力する(ステップS106)。
符号計算部23は、第1行、第r列目の符号S1rを算出し、符号乗算部25は、絶対値R1rと符号S1rとを乗算して、第1行、第r列目の外部値対数比α1rを出力する(ステップS107)。
次に、制御部26は、制御変数jと行重みSとが等しくない場合に(ステップS108でNO)、制御変数jを1だけ増加させて(ステップS109)、ステップS103に戻り、等しい場合に(ステップS108でYES)、終了する。
以上のように、第1の実施形態の復号装置によれば、式(25)で表わされる、外部値対数比αmnの絶対値Rmnを算出するので、絶対値Rmnの計算に用いるデータをS(≧4)種類(1個のRmnについては、S個のデータの中の自分自身を除いて(S−1)個)にすることができるので、従来よりも計算精度を高くすることができる。
[第2の実施形態]
第2の実施形態は、第1の実施形態で説明した式(25)で示される計算の計算量を少なくしたものである。
次の式(26)で表わされる線形和Tを定義する。
Figure 0004341639
式(26)の線形和Tを用いると、式(25)で示される外部値対数比αmnの絶対値Rmnは、次の式(27)で表わされる。
Rmn=T−CS-1×|λn+βmn| ・・・(27)
このように、第2の実施形態では、式(26)および式(27)を計算することによって、nが変わるごとに、|λn+βmn|を除いた総和を計算しないで済むので、式(25)を直接計算するよりも、計算量を減らすことができる。
(行処理部の構成)
図11は、本発明の第2の実施形態の行処理部12の機能ブロック図である。
図11を参照して、この行処理部12が、図9に示す行処理部12と相違するのは、絶対値計算部34である。
絶対値計算部34は、第1の実施形態と同様に、式(25)のRmnを計算するが、計算方法が第1の実施形態と相違する。すなわち、絶対値計算部34は、線形和記憶部31を備え、線形和記憶部31に式(26)で示される線形和Tを記憶しておき、線形和Tから各データと係数CS-1との積を減算することによってRmnを算出する。絶対値計算部34の詳細な説明は、以下の動作説明にて行なう。
(行処理部の動作)
図12は、第2の実施形態の行処理部12の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
図12を参照して、まず、加算部21は、列処理部14から事前値対数比βmn(ここで、mおよびnは「Hmn=1」を満たす。)を受け、対数尤度比算出部10から列数N個分の対数尤度比λn(n=1、・・・N)を受けて、「Hmn=1」を満たすnおよびmについて、対数尤度比λnと事前値対数比βmnとを加算する。抽出部22は、加算結果(λn+βmn)のうち、A(1)に従って、第1行目に関するS個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}を抽出する。制御部26は、絶対値記憶部27に、抽出されたS個のデータの絶対値{|λn′+β1n′|}を記憶させる(ステップS201)。
次に、演算部32は、絶対値記憶部27に記憶されているS個のデータ{|λn+β1n|}の総和SUM1を計算する(ステップS202)。
次に、演算部32は、係数記憶部29からデータ数(S−1)についての係数CS-1を読み出して、係数CS-1と総和SUM1との積Pを計算する(ステップS203)。
次に、演算部32は、係数記憶部29からデータ数(S−1)についての係数DS-1を読み出して、積Pから係数DS-1を減算して、線形和Tを算出する(ステップS204)。
次に、制御部26は、線形和記憶部31に線形和Tを記憶させる(ステップS205)。
次に、制御部26は、制御変数jを1とする(ステップS206)。
次に、演算部32は、A(1)内のj番目の要素rを特定し、係数記憶部29からデータ数(S−1)についての係数CS-1を読み出す。演算部32は、絶対値記憶部27に記憶されている|λr+β1r|と、係数CS-1との積Uを計算する(ステップS207)。
次に、演算部32は、線形和記憶部31から線形和Tを読み出して、線形和Tから積Uを減算して、減算結果Vを得る(ステップS208)。
次に、演算部32は、減算結果Vと0とを比較して、減算結果Vが正であれば、減算結果Vを第1行、第r列目の絶対値R1rとして出力し、減算結果Vが0または負であれば、0を第1行、第r列目の絶対値R1rとして出力する(ステップS209)。
符号計算部23は、第1行の第1行、第r列目の符号S1rを算出し、符号乗算部25は、絶対値R1rと符号S1rとを乗算して、第1行、第r列目の外部値対数比α1rを出力する(ステップS210)。
次に、制御部26は、制御変数jと行重みSとが等しくない場合に(ステップS211でNO)、制御変数jを1だけ増加させて(ステップS212)、ステップS207に戻り、等しい場合に(ステップS211でYES)、終了する。
以上のように、第2の実施形態の復号装置によれば、式(26)および式(27)によって、外部値対数比αmnの絶対値Rmnを算出するので、第1の実施形態と同様に従来よりも計算精度を高くすることができる。さらに、第2の実施形態では、式(26)および式(27)を計算するので、第1の実施形態のように式(25)を直接計算するよりも、計算量を減らすことができる。
[第3の実施形態]
第3の実施形態は、第1の実施形態で説明した絶対値Rmnの計算と文献(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復号法(ギャラガー関数の計算を、自身が最小値のときのみ正確に計算する方法)とを併用したものである。
本発明の第3の実施形態では、式(23)の一形態である、次の式(28)、(29)で表わされる、外部値対数比αmnの絶対値Rmnを算出する。
すなわち、第m行について、S個(Sは行重み)のデータ(λn′+βmn′)(n′はHmn′=1を満たし、かつS個の異なる数である。)の絶対値の中で|λn+βmn|が最小でないときには、式(28)にしたがって、外部値対数比αmnの絶対値Rmnを計算する。
Figure 0004341639
また、|λn+βmn|が最小であるときには、式(29)にしたがって、外部値対数比αmnの絶対値Rmnを計算する。
Figure 0004341639
(行処理部の構成)
図13は、本発明の第3の実施形態の行処理部12の機能ブロック図である。
図13を参照して、この行処理部12が、図9に示す行処理部12と相違するのは、絶対値計算部44である。
絶対値計算部44は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}に基づいて、式(28)、(29)のRmnを計算する。
絶対値計算部44は、絶対値記憶部27と、演算部42と、係数記憶部49と、線形和記憶部41と、最小値位置記憶部46とを備える。
絶対値記憶部27は、第m行を処理するときには、抽出部22で抽出されたS個のデータの絶対値{|λn′+βmn′|:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}を記憶する。
演算部42は、加算、乗算および減算を行なう。
係数記憶部49は、データ数(S−1)についての係数CS-1および係数DS-1と、データ数Sについての係数CSおよび係数DSとを記憶する。
線形和記憶部41は、線形和T1、線形和絶対値T′、線形和T2を記憶する。
最小値位置記憶部46は、第m行を処理するときには、S個(Sは行重み)のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中で絶対値が最小のデータの位置n′を最小値位置lとして記憶する。
(行処理部の動作)
図14は、第3の実施形態の行処理部12の第1行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
図14を参照して、まず、加算部21は、列処理部14から事前値対数比βmn(ここで、mおよびnは「Hmn=1」を満たす。)を受け、対数尤度比算出部10から列数N個分の対数尤度比λn(n=1、・・・N)を受けて、「Hmn=1」を満たすnおよびmについて、対数尤度比λnと事前値対数比βmnとを加算する。抽出部22は、加算結果(λn+βmn)のうち、A(1)に従って、第1行目に関するS個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}を抽出する。制御部26は、絶対値記憶部27に、抽出されたS個のデータの絶対値{|λn′+β1n′|}を記憶させる。(ステップS301)。
次に、演算部42は、絶対値記憶部27に記憶されているS個のデータの総和SUM1を計算する(ステップS302)。
次に、演算部42は、係数記憶部49からデータ数Sについての係数CSを読み出して、係数CSと総和SUM1との積P1を計算する(ステップS303)。
次に、演算部42は、係数記憶部49からデータ数Sについての係数DSを読み出して、積P1から係数DSを減算して、線形和T1を算出する(ステップS304)。
次に、演算部42は、線形和T1と0とを比較して、線形和T1が正であれば、線形和絶対値T′を線形和T1とし、線形和T1が0または負であれば、線形和絶対値T′を0とする(ステップS305)。
次に、制御部26は、線形和記憶部41に線形和絶対値T′を記憶させる(ステップS306)。
さらに、演算部42は、係数記憶部49からデータ数(S−1)についての係数CS-1を読み出して、係数CS-1と総和SUM1との積P2を計算する(ステップS307)。
次に、演算部42は、係数記憶部49からデータ数(S−1)についての係数DS-1を読み出して、積P2から係数DS-1を減算して、線形和T2を算出する(ステップS308)。
次に、制御部26は、線形和記憶部41に線形和T2を記憶させる(ステップS309)。
次に、演算部42は、S個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}の中で絶対値が最小のデータの位置n′を最小値位置lとして、最小値位置記憶部46に記憶させる(ステップS310)。
次に、制御部26は、制御変数jを1とする(ステップS311)。
制御部26は、A(1)内のj番目の要素rを特定し、rが最小値位置lと同じ場合には(ステップS312でYES)、ステップS313〜S315の処理を行なわせる。
次に、演算部42は、係数記憶部49からデータ数(S−1)についての係数CS-1を読み出して、絶対値記憶部27からデータ|λr+β1r|を読み出して、係数CS-1とデータ|λr+β1r|との積Uを計算する(ステップS313)。
次に、演算部42は、線形和記憶部41から線形和T2を読み出して、線形和T2から積Uを減算して、減算結果Vを得る(ステップS314)。
次に、演算部42は、減算結果Vと0とを比較して、減算結果Vが正であれば、減算結果Vを第1行、第r列目の絶対値R1rとして出力し、減算結果Vが0または負であれば、0を第1行、第r列目の絶対値R1rとして出力する(ステップS315)。
一方、制御部26は、rが最小値位置lと異なる場合には(ステップS312でNO)、ステップS316の処理を行なわせる。
制御部26は、線形和記憶部41から線形和絶対値T′を読み出して、第1行、第r列目の絶対値R1rとして出力する(ステップS316)。
符号計算部23は、第1行、第r列目の行の符号S1rを算出し、符号乗算部25は、絶対値R1rと符号S1rとを乗算して、第1行、第r列目の外部値対数比α1rを出力する(ステップS317)。
次に、制御部26は、制御変数jと行重みSとが等しくない場合に(ステップS318でNO)、制御変数jを1だけ増加させて(ステップS319)、ステップS312に戻り、等しい場合に(ステップS318でYES)、終了する。
以上のように、第3の実施形態の復号装置によれば、式(28)、式(29)で表わされる、外部値対数比αmnの絶対値Rmnを算出するので、第1の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第3の実施形態の復号装置によれば、S個(Sは行重み)のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中で絶対値が最小のデータの位置n′を最小値位置lとしたときに、絶対値Rmi(i≠l)の値はすべて同一の値T′とするので、計算量を少なくすることができる。
[第4の実施形態]
第4の実施形態は、第1の実施形態で説明した絶対値Rmnの計算と文献(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におけるλ(個数)の代わりにZを用いることとする。
さて、本発明の第4の実施形態では、式(23)の一形態である、次の式(30)、(31)で表わされる、外部値対数比αmnの絶対値Rmnを算出する。
すなわち、第m行について、S個(Sは行重み)のデータ(λn′+βmn′)(n′はHmn′=1を満たし、かつS個の異なる数である。)の絶対値の中で|λn+βmn|が第1最小値〜第Z最小値((S−1)≧Z≧3)のいずれでもないとき、すなわち小さな方から数えて第Z番目までに入らないときには、式(30)にしたがって、外部値対数比αmnの絶対値Rmnを計算する。
Figure 0004341639
ここで、集合Min(m、z)に属する要素iは、Hmi=1を満たし、かつ|λi+βmi|は、S個(Sは行重み)のデータ(λn′+βmn′)(n′はHmn′=1を満たし、かつS個の異なる数である。)の絶対値の中で第1最小値〜第Z最小値のいずれかである、すなわち小さな方から数えて第Z番目に入る。
また、|λn+βmn|が第1最小値〜第Z最小値のいずれかであるときには、式(31)にしたがって、外部値対数比αmnの絶対値Rmnを計算する。
Figure 0004341639
ここで、集合Min(m、z+1)\nに属する要素iは、i≠n、Hmi=1を満たし、かつ|λi+βmi|は、S個(Sは行重み)のデータ(λn′+βmn′)(n′はHmn′=1を満たし、かつS個の異なる数である。)の絶対値の中で第1最小値〜第(Z+1)最小値のいずれかである、すなわち小さな方から数えて第(Z+1)番目までに入る。
(行処理部の構成)
図15は、本発明の第4の実施形態の行処理部12の機能ブロック図である。
図15を参照して、この行処理部12が、図9に示す行処理部12と相違するのは、絶対値計算部54である。
絶対値計算部54は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}に基づいて、式(30)、(31)のRmnを計算する。
絶対値計算部54は、絶対値記憶部57と、演算部52と、係数記憶部59と、線形和記憶部51と、位置記憶部56とを備える。
絶対値記憶部57は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が第1最小値から第(Z+1)最小値までの(Z+1)個のデータの絶対値{|λn′+β1n′|}を記憶する。
演算部52は、加算、乗算および減算を行なう。
係数記憶部59は、データ数Zについての係数CZおよび係数DZを記憶する。
線形和記憶部51は、線形和絶対値T′、線形和T2を記憶する。
位置記憶部56は、第m行を処理するときに、集合l(m)を記憶する。集合l(m)の要素は、S個(Sは行重み)のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中で絶対値が第1最小値〜第Z最小値のいずれかであるのデータの位置n′である。
(行処理部の動作)
図16は、第4の実施形態の行処理部12の第1行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
図16を参照して、まず、加算部21は、列処理部14から事前値対数比βmn(ここで、mおよびnは「Hmn=1」を満たす。)を受け、対数尤度比算出部10から列数N個分の対数尤度比λn(n=1、・・・N)を受けて、「Hmn=1」を満たすnおよびmについて、対数尤度比λnと事前値対数比βmnとを加算する。抽出部22は、加算結果(λn+βmn)のうち、A(1)に従って、第1行目に関するS個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}を抽出する。演算部52は、抽出したS個のデータのうち、その絶対値が第1最小値から第(Z+1)最小値までを特定する。制御部26は、絶対値記憶部57に、特定された絶対値が第1最小値から第(Z+1)最小値までの(Z+1)個のデータの絶対値{|λn′+β1n′|}を記憶させる(ステップS401)。
次に、演算部52は、絶対値記憶部57に記憶されている(Z+1)個のデータのうち、第1最小値から第Z最小値までのデータの総和SUM1を計算する(ステップS402)。
次に、演算部52は、係数記憶部59からデータ数Zについての係数CZを読み出して、係数CZと総和SUM1との積P1を計算する(ステップS403)。
次に、演算部52は、係数記憶部59からデータ数Zについての係数DZを読み出して、積P1から係数DZを減算して、線形和T1を算出する(ステップS404)。
次に、演算部52は、線形和T1と0とを比較して、線形和T1が正であれば、線形和絶対値T1′を線形和Tとし、線形和T1が0または負であれば、線形和絶対値T1′を0とする(ステップS405)。
次に、制御部26は、線形和記憶部51に算出した線形和絶対値T1′を記憶させる(ステップS406)。
次に、制御部26は、総和SUM1と、絶対値記憶部57に記憶されている第(Z+1)最小値のデータとの総和SUM2を計算する(ステップS407)。
次に、演算部52は、係数記憶部59からデータ数Zについての係数CZを読み出して、係数CZと総和SUM2との積P2を計算する(ステップS408)。
次に、演算部52は、係数記憶部59からデータ数Zについての係数DZを読み出して、積P2から係数DZを減算して、線形和T2を算出する(ステップS409)。
次に、制御部26は、線形和記憶部51に算出した線形和T2を記憶させる(ステップS410)。
次に、演算部52は、S個(Sは行重み)のデータ{(λn′+β1n′):ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が第1最小値〜第Z最小値のいずれかであるデータの位置n′を集合l(1)の要素として位置記憶部56に記憶する(ステップS411)。
次に、制御部26は、制御変数jを1とする(ステップS412)。
制御部26は、A(1)内のj番目の要素rを特定し、rが集合l(1)の要素である場合には(ステップS413でYES)、ステップS414〜S416の処理を行なわせる。
演算部52は、係数記憶部59からデータ数Zについての係数CZを読出し、絶対値記憶部57からデータ|λr+β1r|を読み出して、係数CZとデータ|λr+β1r|との積Uを計算する(ステップS414)。
次に、演算部52は、線形和記憶部51から線形和T2を読み出して、線形和T2から積Uを減算して、減算結果Vを得る(ステップS415)。
次に、演算部52は、減算結果Vと0とを比較して、減算結果Vが正であれば、減算結果Vを第1行、第r列目の絶対値R1rとして出力し、減算結果Vが0または負であれば、0を第1行、第r列目の絶対値R1rとして出力する(ステップS416)。
一方、制御部26は、rが集合l(1)の要素でない場合には(ステップS413でNO)、ステップS417の処理を行なわせる。
制御部26は、線形和記憶部51から線形和絶対値T′を読み出して、第1行、第r列目の絶対値R1rとして出力する(ステップS417)。
符号計算部23は、第1行、第r列目の符号S1rを算出し、符号乗算部25は、絶対値R1rと符号S1rとを乗算して、第1行、第r列目の外部値対数比α1rを出力する(ステップ418)。
次に、制御部26は、制御変数jが行重みSとが等しくない場合に(ステップS419でNO)、制御変数jを1だけ増加させて(ステップS420)、ステップS413に戻り、等しい場合に(ステップS419でYES)、終了する。
以上のように、第4の実施形態の復号装置によれば、式(30)、式(31)で表わされる、外部値対数比αmnの絶対値Rmnを算出するので、第1の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第4の実施形態の復号装置によれば、S個(Sは行重み)のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中で、自分自身を除いて絶対値が小さな方から数えてZ(≧3)番目までのデータを用いるので、少ないデータ数でギャラガー関数を良好に近似することができる。
[第5の実施形態]
第5の実施形態では、行処理に利用するデータ数を順次減少させる。最初は、第2の実施形態で説明したように、自分自身を除いて(S−1)個のデータを用いて絶対値Rmnの計算を行なう、行処理の計算が収束するにつれて、第4の実施形態で説明したように、自分自身を除いて小さなものから数えて(S−2)番目までのデータを用いて絶対値Rmnの計算を行なう。さらに行処理の計算が収束するにつれて、自分自身を除いて小さなものから数えて(S−3)番目までのデータを用いて絶対値Rmnの計算を行なう。以下、順次、絶対値Rmnの計算に利用するデータ数を減少させる。ここで、行処理の計算の収束を判定するために、S個(Sは行重み)のデータ{λn′+βmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の2乗平均値を用いる。
(行処理部の構成)
図17は、本発明の第5の実施形態の行処理部12の機能ブロック図である。
図17を参照して、この行処理部12が、図9に示す行処理部12と相違するのは、絶対値計算部64である。
絶対値計算部64は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}に基づいて、式(25)、または式(30)、(31)のRmnを計算する。
絶対値計算部64は、絶対値記憶部67と、演算部62と、係数記憶部69と、線形和記憶部61と、位置記憶部66と、切替パラメータ記憶部63とを備える。
絶対値記憶部67は、第m行を処理するときには、抽出部22で抽出されたS個のデータ{(λn′+βmn′):ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、第2の実施形態の処理を行なうときには、S個すべてのデータの絶対値{|λn′+β1n′|}を記憶し、第4の実施形態の処理を行なうときには、絶対値が第1最小値から第(Z+1)最小値までの(Z+1)個のデータの絶対値{|λn′+β1n′|}を記憶する。
演算部62は、加算、乗算および減算を行なう。
係数記憶部69は、データ数1からSまでの係数C1、C2、・・・、CSおよびD1、D2、・・・、DSを記憶する。
線形和記憶部61は、線形和T、線形和絶対値T′、線形和T2を記憶する。
位置記憶部66は、第4の実施形態で示されるものと同様である。
切替パラメータ記憶部63は、行処理に利用するデータ数をi(i=1〜(S−1))から1つ減らすための判断基準となるパラメータLHiを記憶する。
(行処理部の動作)
図18は、第5の実施形態の行処理部12の第1行についての行処理の動作手順を表わすフローチャートである。他の行についてもこれと同様である。
図18を参照して、まず、制御部26は、行処理部12の各構成要素に図14のステップS201〜S212の処理を実行させる(ステップS501)。
次に、演算部62は、第1行目に関するS個(Sは行重み)のデータ{λn′+β1n′:ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}の2乗平均値LHを計算する(ステップS502)。
制御部26は、切替パラメータ記憶部63から、データ数(S−1)個についての切替パラメータLHS-1を読み出して、2乗平均値LHがデータ数(S−1)についての切替パラメータLHS-1以上であるかどうかを判定する。制御部26は、2乗平均値LHが切替パラメータLHS-1未満である場合には(ステップS503でNO)、ステップS501の処理、すなわち、図14のステップS201〜S212の処理を繰返させる。制御部26は、2乗平均値LHが切替パラメータLHS-1以上である場合には(ステップS503でYES)、ステップS504以降の処理を行なわせる。
制御部26は、制御変数Z=S−2とする(ステップS504)。
制御部26は、行処理部12内の各構成要素に図18に示すステップS401〜S420の処理を実行させる(ステップS505)。
次に、演算部62は、第1行目に関するS個(Sは行重み)のデータ{λn′+β1n′:ただし、n′はH1n′=1を満たし、かつn′は1からNまでのS個の異なる数}の2乗平均値LHを計算する(ステップS506)。
制御部26は、切替パラメータ記憶部63から、データ数Zについての切替パラメータLHZを読み出して、2乗平均値LHが切替パラメータLHZ以上であるかどうかを判定する。制御部26は、2乗平均値LHが切替パラメータLHZ未満である場合には(ステップS507でNO)、ステップS505の処理、すなわち、図18のステップS401〜S420の処理を繰返させる。制御部26は、2乗平均値LHが切替パラメータLHZ以上である場合には(ステップS507でYES)、さらに、制御変数Zが3であるかどうかを調べる。制御部26は、制御変数Zが3である場合には(ステップS508でYES)、制御変数Zを変化させずに、ステップS401〜S420の処理を繰返させる(ステップS509)。一方、制御部26は、制御変数Zが3でない場合には(ステップS508でNO)、制御変数Zを1だけ減少させて(ステップS510)、ステップS505に戻り、ステップS401〜S420の処理を行なわせる。
以上のように、第5の実施形態の復号装置によれば、第1〜第4の実施形態と同様に、従来よりも計算精度を高くすることができる。さらに、第5の実施形態の復号装置によれば、行処理の計算の収束にしたがって、外部値対数比の絶対値Rmnの計算に用いるデータの数を減少させるので、少ない計算量で、高い計算精度を得ることができる。
(変形例)
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例を含む。
(1) 復号プログラム
本発明の実施形態で説明した復号装置は、専用のハードウエア装置で実現されるものに限られない。外部から復号プログラムをメモリにインストールし、コンピュータがこの復号プログラムをメモリから読出して実行することによって、復号装置の機能を実現することとしてもよい。この場合、復号プログラムは、図6、10、12、14、16、18のフローチャートの各ステップを備える。
(2) 絶対値Rmnの計算の用いるデータの種類
第4の実施形態では、S個(Sは行重み)のデータ{λn′+βmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、自分自身を除いて小さな方から数えてZ(3≦Z≦(S−1))個までのデータを用いて外部値対数比の絶対値Rmnを計算したが、これに限定されるものではなく、自分自身を除いて、その大きさに係わりなく任意のL個(3≦L≦(S−1)を用いて外部値対数比の絶対値Rmnを計算するものとしてもよい。
(3) 第5の実施形態のデータ数
第5の実施形態では、Z=3になるまでデータ数を減少させたが、これに限定するものではない。Z=1になるまでデータ数を減少させることとしてもよい。
(4) 第5の実施形態の切替えの判定基準
第5の実施形態では、S個(Sは行重み)のデータ{λn′+βmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の2乗平均値を用いたが、これに限定されるものではない。S個のデータ{λn′+βmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の平均値を用いてもよいし、特定の1個のデータの大きさ、たとえばS個のデータの最大値の大きさを用いてもよいし、最小値の大きさを用いてもよい。
(5) 第5の実施形態の発展形
第5の実施形態では、行処理の収束とともに、外部値対数比の絶対値Rmnの計算に用いるデータの数を減少させたが、これに限定するものではない。受信側の復号装置から送信側の符号装置に、行処理の収束を通知し、行重みの数を減少させたパリティ検査行列を用いて符号装置で符号化し、復号装置で復号化することとしてもよい。
(6) 第5の実施形態の行処理に用いるデータ数L
第5の実施形態では、2乗平均値LHが増加すると、制御変数Z、つまり行処理に用いるデータ数Lを減少させたが、それに代えてまたはそれとともに、2乗平均値LHが減少すると、制御変数Z、つまり行処理に用いるデータ数Lを増加させるものとしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。 通信路が光ファイバの場合の変調器および復調器の出力データの対応関係を一覧にして示す図である。 本発明の実施形態に従う復号化器の構成を概略的に示す図である。 パリティ検査行列の例を表わす図である。 図4に示すパリティ検査行列のタナーグラフを示す図である。 ループ判定部の処理動作を示すフロー図である。 外部値対数比αmnの絶対値Rmnの近似値を説明するための図である。 g(x)と、ln(2)−2/xと、t−x/2を表わすグラフである。 本発明の第1の実施形態の行処理部の機能ブロック図である。 第1の実施形態の行処理部の第1行についての行処理の動作手順を表わすフローチャートである。 本発明の第2の実施形態の行処理部の構成を表わす図である。 第2の実施形態の行処理部の第1行についての行処理の動作手順を表わすフローチャートである。 本発明の第3の実施形態の行処理部の機能ブロック図である。 第3の実施形態の行処理部の第1行についての行処理の動作手順を表わすフローチャートである。 本発明の第4の実施形態の行処理部の機能ブロック図である。 第4の実施形態の行処理部の第1行についての行処理の動作手順を表わすフローチャートである。 本発明の第5の実施形態の行処理部の機能ブロック図である。 第5の実施形態の行処理部の第1行についての行処理の動作手順を表わすフローチャートである。
符号の説明
1 符号化器、2 変調器、3 通信路、4 復調器、5 復号化器、4a 復調回路、4b アナログ/デジタル変換回路、10 対数尤度比算出部、12 行処理部、14 列処理部、16 ループ判定部、21 加算部、22 抽出部、23 符号計算部、25 符号乗算部、26 制御部、24,34,44,54,64 絶対値計算部、27,57,67 絶対値記憶部、28,32,42,52,62 演算部、29,49,59,69 係数記憶部、31,41,51,61 線形和記憶部、46 最小値位置記憶部、56,66 位置記憶部。

Claims (12)

  1. 行重みS(S≧4)、かつM行N列(M≧1、N≧S)の低密度パリティ検査行列H=[Hmn](1≦m≦M、1≦n≦N)を用いて、入力されたデータを所定個数の単位で復号を行なう復号装置であって、
    前記入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、前記パリティ検査行列Hの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、
    前記外部値対数比に基づいて、前記パリティ検査行例Hの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部とを備え、
    前記行処理部および前記列処理部は、前記パリティ検査で誤りが検出された場合に、前記処理を繰返し、
    前記行処理部は、第m行(1≦m≦M)について、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中のL個(Lは3以上、かつS以下)のデータの絶対値の総和SUM、データ数Lに依存する第1の係数Cおよび第2の係数Dによって次の式(1)で表わされるRmnを前記外部値対数比の絶対値の更新値とする、復号装置。
    Rmn=C×SUM−D ・・・(1)
  2. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、データxmn以外の(S−1)個のデータの絶対値の総和を前記式(1)のSUMとし、データ数(S−1)についての第1の係数Cを前記式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項1記載の復号装置。
  3. 前記行処理部は、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和SUM1を算出し、前記総和SUM1と、データ数(S−1)についての第1の係数Cとを乗算して積Pを算出し、前記積Pからデータ数(S−1)についての第2の係数Dを減算して線形和Tを算出して記憶し、さらにデータxmnの絶対値と前記データ数(S−1)についての第1の係数Cとの積Uを算出し、前記記憶している線形和Tから前記積Uを減算することによって、前記式(1)におけるRmnを算出する、請求項2記載の復号装置。
  4. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が最小のときには、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}からデータxmnを除いた(S−1)個のデータの絶対値の総和を前記式(1)のSUMとし、データ数(S−1)についての第1の係数Cを前記式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とし、
    前記行処理部は、データxmnの絶対値が最小でないときには、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和を前記式(1)のSUMとし、データ数Sについての第1の係数Cを前記式(1)の係数Cとし、データ数Sについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項1記載の復号装置。
  5. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が小さなものから数えて第Z番目((S−1)≧Z≧3)までに入る場合には、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第(Z+1)番目までの(Z+1)個のデータから、データxmnを除いたZ個のデータの絶対値の総和を前記式(1)のSUMとし、データ数Zについての第1の係数Cを前記式(1)の係数Cとし、データ数Zについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とし、
    前記行処理部は、データxmnの絶対値が小さなものから数えて第Z番目までに入らない場合には、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第Z番目までのZ個のデータの絶対値の総和を前記式(1)のSUMとし、データ数Zについての第1の係数Cを前記式(1)の係数Cとし、データ数Zについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項1記載の復号装置。
  6. 前記行処理部は、第m行(1≦m≦M)について、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の少なくとも1つの大きさの変化にしたがって、前記データ数Lを3以上、かつS以下の範囲内で変化させる、請求項1記載の復号装置。
  7. 行重みS(S≧4)、かつM行N列(M≧1、N≧S)の低密度パリティ検査行列Hmn=[Hmn](1≦m≦M、1≦n≦N)を用いて、入力されたデータを所定個数の単位で復号を行なう復号プログラムであって、
    コンピュータを、
    前記入力されたデータの対数尤度比と、事前値対数比の和である尤度を表わすデータに基づいて、前記パリティ検査行列Hの行方向の要素を用いて行処理を行なって外部値対数比を更新する行処理部と、
    前記外部値対数比に基づいて、前記パリティ検査行例Hの列方向の要素を用いて列処理を行なって事前値対数比を更新する列処理部として機能させ、
    前記行処理部および前記列処理部は、前記パリティ検査で誤りが検出された場合に、前記処理を繰返し、
    前記行処理部は、第m行(1≦m≦M)について、尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の中のL個(Lは3以上、かつS以下)のデータの絶対値の総和SUM、データ数Lに依存する第1の係数Cおよび第2の係数Dによって次の式(1)で表わされるRmnを前記外部値対数比の絶対値の更新値とする、復号プログラム。
    Rmn=C×SUM−D ・・・(1)
  8. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、データxmn以外の(S−1)個のデータの絶対値の総和を前記式(1)のSUMとし、データ数(S−1)についての第1の係数Cを前記式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項7記載の復号プログラム。
  9. 前記行処理部は、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和SUM1を算出し、前記総和SUM1と、データ数(S−1)についての第1の係数Cとを乗算して積Pを算出し、前記積Pからデータ数(S−1)についての第2の係数Dを減算して線形和Tを算出して記憶し、さらにデータxmnの絶対値と前記データ数(S−1)についての第1の係数Cとの積Uを算出し、前記記憶している線形和Tから前記積Uを減算することによって、前記式(1)におけるRmnを算出する、請求項8記載の復号プログラム。
  10. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が最小のときには、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}からデータxmnを除いた(S−1)個のデータの絶対値の総和を前記式(1)のSUMとし、データ数(S−1)についての第1の係数Cを前記式(1)の係数Cとし、データ数(S−1)についての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とし、
    前記行処理部は、データxmnの絶対値が最小でないときには、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の総和を前記式(1)のSUMとし、データ数Sについての第1の係数Cを前記式(1)の係数Cとし、データ数Sについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項7記載の復号プログラム。
  11. 前記行処理部は、前記尤度を表わすS個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の絶対値の中でデータxmnの絶対値が小さなものから数えて第Z番目((S−1)≧Z≧3)までに入る場合には、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第(Z+1)番目までの(Z+1)個のデータから、データxmnを除いたZ個のデータの絶対値の総和を前記式(1)のSUMとし、データ数Zについての第1の係数Cを前記式(1)の係数Cとし、データ数Zについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とし、
    前記行処理部は、データxmnの絶対値が小さなものから数えて第Z番目までに入らない場合には、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}のうち、絶対値が小さなものから数えて第Z番目までのZ個のデータの絶対値の総和を前記式(1)のSUMとし、データ数Zについての第1の係数Cを前記式(1)の係数Cとし、データ数Zについての第2の係数Dを前記式(1)の係数Dとしたときの、前記式(1)のRmnを前記外部値対数比の絶対値の更新値とする、請求項7記載の復号プログラム。
  12. 前記行処理部は、第m行(1≦m≦M)について、前記S個のデータ{xmn′:ただし、n′はHmn′=1を満たし、かつn′は1からNまでのS個の異なる数}の少なくとも1つの大きさの変化にしたがって、前記データ数Lを3以上、かつS以下の範囲内で変化させる、請求項7記載の復号プログラム。
JP2006135306A 2006-05-15 2006-05-15 復号装置および復号プログラム Expired - Fee Related JP4341639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006135306A JP4341639B2 (ja) 2006-05-15 2006-05-15 復号装置および復号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006135306A JP4341639B2 (ja) 2006-05-15 2006-05-15 復号装置および復号プログラム

Publications (2)

Publication Number Publication Date
JP2007306495A JP2007306495A (ja) 2007-11-22
JP4341639B2 true JP4341639B2 (ja) 2009-10-07

Family

ID=38840026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006135306A Expired - Fee Related JP4341639B2 (ja) 2006-05-15 2006-05-15 復号装置および復号プログラム

Country Status (1)

Country Link
JP (1) JP4341639B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464129B2 (en) 2008-08-15 2013-06-11 Lsi Corporation ROM list-decoding of near codewords
JP5018807B2 (ja) * 2009-02-26 2012-09-05 富士通株式会社 復号化装置
KR101321487B1 (ko) 2009-04-21 2013-10-23 에이저 시스템즈 엘엘시 기입 검증을 사용한 코드들의 에러-플로어 완화
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
JP5493602B2 (ja) * 2009-08-31 2014-05-14 富士通株式会社 復号化装置及び復号化方法
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems

Also Published As

Publication number Publication date
JP2007306495A (ja) 2007-11-22

Similar Documents

Publication Publication Date Title
JP4341639B2 (ja) 復号装置および復号プログラム
US7120857B2 (en) LDPC decoding apparatus and method
JP5199255B2 (ja) 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法
US7603607B2 (en) Decoding unit and preprocessing unit implemented according to low density parity check code system
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
Holzlohner et al. Evaluation of the very low BER of FEC codes using dual adaptive importance sampling
Tadayon et al. Efficient search of compact QC-LDPC and SC-LDPC convolutional codes with large girth
US8468438B2 (en) Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
Yeo et al. Improved hard-reliability based majority-logic decoding for non-binary LDPC codes
Hatami et al. A threshold-based min-sum algorithm to lower the error floors of quantized LDPC decoders
Lei et al. A soft-aided staircase decoder using three-level channel reliabilities
Chu et al. NOLD: A neural-network optimized low-resolution decoder for LDPC codes
CN111164897B (zh) 广义低密度奇偶校验码
Zhang et al. A two-stage decoding algorithm to lower the error-floors for LDPC codes
Chang et al. Adaptive group shuffled decoding for LDPC codes
JP2008153874A (ja) 軟判定復号装置、軟判定復号方法および軟判定復号プログラム
Kwak et al. Neural Min-Sum Decoding for Generalized LDPC Codes
JP5385944B2 (ja) 復号器
JP5034588B2 (ja) 軟判定復号装置および軟判定復号プログラム
JP4341646B2 (ja) 復号装置
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4766013B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP2008167357A (ja) 低密度パリティ検査符号データを復号する復号方法、装置及びプログラム
JP5500203B2 (ja) 軟判定復号装置および軟判定復号プログラム
Ghaffari et al. The probabilistic finite alphabet iterative decoder for low-density parity-check codes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090629

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees