JP5091996B2 - 誤り訂正復号器、メモリコントローラ及び受信機 - Google Patents

誤り訂正復号器、メモリコントローラ及び受信機 Download PDF

Info

Publication number
JP5091996B2
JP5091996B2 JP2010202095A JP2010202095A JP5091996B2 JP 5091996 B2 JP5091996 B2 JP 5091996B2 JP 2010202095 A JP2010202095 A JP 2010202095A JP 2010202095 A JP2010202095 A JP 2010202095A JP 5091996 B2 JP5091996 B2 JP 5091996B2
Authority
JP
Japan
Prior art keywords
value
parity check
error correction
check
external
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
JP2010202095A
Other languages
English (en)
Other versions
JP2012060450A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010202095A priority Critical patent/JP5091996B2/ja
Priority to US13/043,918 priority patent/US20120066563A1/en
Publication of JP2012060450A publication Critical patent/JP2012060450A/ja
Application granted granted Critical
Publication of JP5091996B2 publication Critical patent/JP5091996B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Description

本発明の実施形態は、非正則低密度パリティ検査(LDPC;Low Density Parity Check)符号を用いた誤り訂正に関する。
情報を送信する場合、情報を記録する場合などに、情報に誤り訂正符号が付加されることがある。誤り訂正符号が付加された情報は、受信機、メモリコントローラなどに組み込まれた誤り訂正復号器によって復号される。誤り訂正符号を利用することにより、受信された情報、読み出された情報などにある程度のビット誤りが含まれていても、ビット誤りを訂正して正しい情報を復元できる。
誤り訂正符号の一種としてLDPC符号が知られている。LDPC符号は、優れた誤り訂正能力を持つ。一方、LDPC符号に関して、復号前ビット誤り率がある程度低い領域において復号誤り率が殆ど低減しなくなるエラーフロアと呼ばれる現象が知られている。
Zhengya Zhang, Dolecek L., Nikolic B., Anantharam V., and Wainwright M.J., "Lowering LDPC Error Floors by Postprocessing," Global Telecommunications Conference, 2008. IEEE GLOBECOM 2008. IEEE, vol., no., pp. 1-6, Nov. 30 2008-Dec. 4 2008
エラーフロアを低減させることにより、LDPC符号は更に優れた誤り訂正能力を発揮できる。実施形態は、LDPC符号の誤り訂正能力を向上させることを目的とする。
一実施形態に係る誤り訂正復号器は、非正則LDPC符号を利用して符号化されたデータに対して繰り返し復号を実施する。誤り訂正復号器は、チェックノードから変数ノードへの外部値を生成する行処理部を含む。誤り訂正復号器は、外部値に基づいて一時推定語を生成し、一時推定語にパリティ検査を行い、全てのチェックノードがパリティ検査を満たす場合に一時推定語を符号語と判定するパリティ検査部を含む。誤り訂正復号器は、繰り返し復号の実施回数が所定の繰り返し回数を超えても符号語が得られないことを含む所定の条件が満たされる場合に、変数ノードの列重みの降順に応じてより大きな値或いは等しい値を持ち、最大値が最小値と等しくない複数の第1の外部値重みを用いて、パリティ検査を満たさないチェックノードから変数ノードへの外部値の絶対値を拡大する重み付けを行う尤度制御部を含む。
第1の実施形態に係る誤り訂正復号器を例示するブロック図。 LDPC検査行列の説明図。 図2のLDPC検査行列のタナ−グラフ表現の説明図。 図2のLDPC検査行列を用いたパリティ検査結果の一例の説明図。 図1の誤り訂正復号器の動作の一例を示すフローチャート。 図1の誤り訂正復号器の動作の別の例を示すフローチャート。 図1の誤り訂正復号器の動作の別の例を示すフローチャート。 第2の実施形態に係る記憶装置を例示するブロック図。 第3の実施形態に係る受信機を例示するブロック図。
以下、図面を参照して、各実施形態について説明する。
(第1の実施形態)
第1の実施形態に係る誤り訂正復号器は、図1に示されるように、入力尤度保持部101、行処理部102、列処理部103、パリティ検査部104、検査行列保持部105及び尤度制御部106を有する。この誤り訂正復号器は、基本的には、いわゆるメッセージパッシング復号アルゴリズム(Sum-ProductアルゴリズムやMin-Sumアルゴリズム復号法)に基づく繰り返し復号を実施する。
入力尤度保持部101には、前段の信号処理部(図示しない)によって得られた符号データの尤度Fnが入力される。入力尤度保持部101は、入力尤度Fnを符号データの復号が完了するまで保持する。この符号データは、検査行列保持部105が保持する非正則LDPC検査行列H(以降、単に検査行列Hとも称する)によって定義されるLDPC符号である。即ち、この符号データは、いわゆる組織符号であり、データビットとパリティビットとで構成される。
一例として、2つのデータビットC1,C2と、4つのパリティビットC3,・・・,C6とで構成される符号データを仮定する。このとき、入力尤度保持部101は、各ビットC1,・・・,C6に対応する入力尤度F1,・・・,F6を保持する。これら入力尤度F1,・・・,F6は、行処理部102及びパリティ検査部104によって必要に応じて読み出される。
ここで、尤度とは、次の数式(1)に示されるように、データビットが「1」である確率P(x=1)に対するデータビットが「0」である確率P(x=0)の比の対数値(底は自然対数)である。また、以降の説明において、事前尤度とは、事前確率の尤度を意味する。
Figure 0005091996
検査行列保持部105は、M行N列の検査行列Hの情報を予め保持している。検査行列Hは、符号化側と復号化側との間で共通である。検査行列H(の情報)は、行処理部102、列処理部103、パリティ検査部104及び尤度制御部106によって必要に応じて読み出される。
一例として、M=4、N=6の場合の検査行列Hを図2に示す。図2の4行6列の検査行列Hによって定義される符号データの符号長は6ビットであり、この符号データのパリティ長は4ビットである。検査行列Hの第m行に含まれる「1」の数を第m(1以上4以下の整数)行の行重みと呼ぶ。また、検査行列Hの第n(1以上6以下の整数)列に含まれる「1」の数を第n列の列重みと呼ぶ。尚、非正則LDPC符号は、その検査行列Hの行重み及び列重みが非一様である。
更に、以降の説明では、第m行目に含まれる「1」の列位置を示す列インデックスの集合をA(m)、第n列目に含まれる「1」の行位置を示す行インデックスの集合をB(n)と呼ぶ。図2の例であれば、A(2)={1,2,5}、B(3)={1,4}である。LDPC符号の検査行列Hは、行列のサイズに対して「1」の総数が非常に少ない(「1」の密度が低い)ので、行列中の「1」の位置情報のみで検査行列Hの情報を表現することにより検査行列Hの情報量を節約できる。即ち、検査行列保持部105の回路規模を抑えることができる。
図2の検査行列Hは、図3に示されるように、タナ−グラフによって表現することもできる。タナ−グラフは、2種類のノードグループで構成される。具体的には、タナ−グラフは、変数ノードグループ(図3の変数ノードV1,・・・,V6)及びチェックノードグループ(図3のチェックノードP1,・・・,P4)で構成される。検査行列Hの第m行第n列の要素が「1」であるならば、チェックノードPmと変数ノードVnとが辺(エッジ)で結ばれる。
行処理部102は、入力尤度保持部101からの入力尤度F1,・・・,F6と、検査行列保持部105からの検査行列Hの情報と、列処理部103からの事前尤度βmnとを用いて外部値αmnを生成する。具体的には、行処理部102は、次の数式(2)に従って、外部値αmnを生成する。行処理部102は、生成した外部値αmnをパリティ検査部104及び尤度制御部106に入力する。
Figure 0005091996
尚、数式(2)において、事前尤度βmnは、一回目の復号では全て0に設定されるが、二回目以降の復号では列処理部103からフィードバックされる最新の値が設定される。また、数式(2)における関数sign(x)及び関数f(x)は、次の数式(3)及び(4)で夫々表される。
Figure 0005091996
Figure 0005091996
パリティ検査部104は、検査行列保持部104からの検査行列Hの情報と、行処理部102からの外部値αmnと、入力尤度保持部101からの入力尤度Fnとに基づいて一時推定語を生成する。具体的には、パリティ検査部104は、一時推定語の第n番目の要素を次の数式(5)に従って生成する。
Figure 0005091996
そして、パリティ検査部104は、生成した一時推定語が、検査行列Hによって定義される符号語であるか否かを検査する。具体的には、パリティ検査部104は、次の数式(6)に従ってパリティ検査ベクトルUを計算する。
Figure 0005091996
パリティ検査ベクトルUの各要素は、対応するチェックノードがパリティ検査を満たすか否か(対応するチェックノードのパリティが正しいか否か)を示す。具体的には、パリティ検査ベクトルUの第m番目の要素が「0」であれば第m番目のチェックノードPmはパリティ検査を満たす。一方、パリティ検査ベクトルUの第m番目の要素が「1」であれば第m番目のチェックノードPmはパリティ検査を満たさない。また、パリティ検査ベクトルUに含まれる「1」の総数は、パリティ検査を満たさないチェックノードの総数UCNと等しい。
以降の説明では、パリティ検査を満たさないチェックノードの集合をUC(P)と定義し、パリティ検査を満たさないチェックノードと(辺を介して)繋がっている変数ノードと(辺を介して)繋がっている、パリティ検査を満たすチェックノードの集合をSD(P)と定義する。尚、UCNは、集合UC(P)に含まれる要素の総数と等しい。
例えば、図4に示されるように、変数ノードV2,V4及びV6においてビット誤りが生じ、パリティ検査ベクトルU=[1110]というパリティ検査結果が得られたとする。この場合には、UCN=3、UC(P)={P1,P2,P3}、SD(P)={P4}である。尚、図4において、ビット誤りが生じている変数ノードV2,V4及びV6を黒い丸印で、これら変数ノードV2,V4及びV6と任意のチェックノードとを繋ぐ辺を破線で、パリティ検査を満たさないチェックノードを黒い四角印で夫々表している。
パリティ検査ベクトルUが零ベクトルとなることは、全てのチェックノードがパリティ検査を満たすことを意味する。パリティ検査ベクトルUが零ベクトルとなれば、パリティ検査部104は、一時推定語を符号語として出力する。一方、パリティ検査ベクトルUが零ベクトルでなければ、後述するように、予め定められる最大繰り返し回数Lmaxを上限として外部値αmnの更新と、更新後の外部値αmnに基づくパリティ検査とが繰り返し行われる。パリティ検査部104は、パリティ検査ベクトルUが零ベクトルでなく、かつ、繰り返し復号の実施回数Lが最大繰り返し回数Lmaxに達していなければ、集合UC(P)の情報及び集合SD(P)の情報を尤度制御部106に通知する。尚、繰り返し復号の実施回数Lは、例えば行処理部102によってカウントされる。
尤度制御部106は、所定の条件が満たされる場合には、行処理部102からの外部値αmnに重み付けを行って、重み付けされた外部値αmnを列処理部103に入力する。一方、尤度制御部106は、上記所定の条件が満たされない場合には、行処理部102からの外部値αmnをそのまま列処理部103に入力する。上記所定の条件は、例えば、繰り返し復号の実施回数Lが所定の繰り返し回数Linを超えているという第1の条件及びUCNが所定の最大数UCNmax以下であるという第2の条件の一方のみまたは両方の組み合わせである。
列処理部103は、検査行列保持部105からの検査行列Hの情報と、尤度制御部106からの(必要に応じて重み付けされた)外部値αmnとを用いて事前尤度βmnを計算する。具体的には、列処理部103は、次の数式(7)に従って、事前尤度βmnを計算する。列処理部103は、計算した事前尤度βmnを行処理部102にフィードバックする。
Figure 0005091996
尚、数式(7)において、外部値αmnは、尤度制御部106から入力される外部値αmnであり、重み付けされている場合とそうでない場合とがある。
図1の誤り訂正復号器は、基本的には、尤度制御部106による外部値αmnの重み付けを伴わない通常の繰り返し復号を行って誤り訂正復号を実現する。しかしながら、図1の誤り訂正復号器は、通常の繰り返し復号を例えばLin回実施しても符号語を得られない場合に、尤度制御部106によって以下に説明するような外部値αmnの重み付けを行うことでエラーフロアの低減(即ち、誤り訂正能力の向上)を試みる。
以下、外部値αmnの重み付けの技術的意義と、外部値αmnの重み付けにおける具体的な処理内容とを説明する。
通常の繰り返し復号を例えばLin回実施した結果、図4に示されるようなパリティ検査結果が得られたと仮定する。変数ノードV2,V4及びV6においてビット誤りが生じているので、チェックノードP1,P2及びP3はパリティ検査を満たさないが、チェックノードP4はパリティ検査を満たす。但し、チェックノードP4は、変数ノードV2及びV4の両方においてビット誤りが生じたことによりパリティ検査を一時的に満たしているに過ぎない。例えば、変数ノードV2及びV4のいずれかの誤りが訂正されれば、チェックノードP4はパリティ検査を満たさなくなる。故に、図4の例に関して、パリティ検査を満たすチェックノードP4から変数ノードV2に送られる外部値α42は実際には不適切な値であり、パリティ検査を満たさないチェックノードP2から変数ノードV2に送られる外部値α22は実際には適切な値であると考えられる。そこで、例えば不適切な外部値α42の影響(具体的には、絶対値など)を縮小するような重み付けを行ったり、適切な外部値α22の影響を拡大するような重み付けを行ったりすることにより、変数ノードV2のビット誤りが訂正される可能性が高くなる。但し、図1の誤り訂正復号器は、パリティ検査を満たすチェックノード(図4のチェックノードP4など)が、パリティ検査を真に満たしているのか、或いは、偶数個の変数ノードにおいてビット誤りが生じたことによりパリティ検査を一時的に満たしているに過ぎないのかを判別できない。
図1の誤り訂正復号器は、パリティ検査を満たさないチェックノード(即ち、集合UC(P)の各要素)から各変数ノードへの外部値αmnに関して、これらの影響を拡大するような重み付けを行う。一方、図1の誤り訂正復号器は、パリティ検査を満たさないチェックノードと繋がっている変数ノードと繋がっている、パリティ検査を満たすチェックノード(即ち、集合SD(P)の各要素)から上記パリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnに関して、これらの影響を縮小するような重み付けを行う。この集合SD(P)には、偶数個の変数ノードにおいてビット誤りが生じたことによりパリティ検査を一時的に満たしているに過ぎない要素が含まれると推定される。尚、図1の誤り訂正復号器は、集合UC(P)の各要素から各変数ノードへの外部値αmnの重み付けと、集合SD(P)の各要素からパリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnの重み付けとのうちのいずれか一方のみを行ってもよいが、以降の説明では両方の重み付けを行うこととする。
また、前述のように、本実施形態では非正則LDPC符号の利用が想定されている。非正則LDPC符号は、列重み及び行重みが非一様である。一般に、列重みが小さい変数ノードほどビット誤りが発生しやすい。故に、本実施形態では、外部値αmnの重み付けにおいて、列重みに応じたビット誤りの発生傾向が考慮される。具体的には、本実施形態では、列重みw(n)の値毎に個別の外部値重みを外部値αmnに適用する。一例として、チェックノードP3から列重みが小さい(信頼度の低い)変数ノードV1に送られる外部値α31にはより大きな外部値重み(>1)が乗算されるが、同じチェックノードP3から列重みが大きい(信頼度の高い)変数ノードV6に送られる外部値α36にはより小さな外部値重み(>1)が乗算される。
具体的には、尤度制御部106は、次の数式(8)に従って、集合UC(P)の各要素から各変数ノードへの外部値αmnの重み付けを行うことができる。
Figure 0005091996
尚、数式(8)における各外部値重みWu1,Wu2及びWu3は、次の条件式(9)を満たす。
Figure 0005091996
尚、数式(8)及び条件式(9)は、列重みw(n)が3種類の場合を例示しているが、列重みw(n)が2種類または4種類以上である場合に一般化できる。列重みw(n)の種類によらず、列重みの値iの降順に応じて、対応する外部値重みWuiは等しい値になるか、或いは、より大きな値になる。即ち、列重みの値iの降順に応じて、対応する外部値重みWuiはより小さな値にならない。また、列重みw(n)の種類によらず、外部値重みの最大値Wui_minは外部値重みの最小値Wui_maxよりも大きい(即ち、外部値重みの最大値Wui_minは外部値重みの最小値Wui_maxと等しくない)。ここで、i_maxは列重みの最大値を示し、i_minは列重みの最小値を示す。このような外部値重みWuiを用いた重み付けによって、集合UC(P)の各要素から各変数ノードへの外部値αmnの絶対値が列重みの値iに応じて適切に拡大される。
また、尤度制御部106は、次の数式(10)に従って、集合SD(P)の各要素からパリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnの重み付けを行うことができる。
Figure 0005091996
尚、数式(10)における各外部値重みWs1,Ws2及びWs3は、次の条件式(11)を満たす。
Figure 0005091996
尚、数式(10)及び条件式(11)は、列重みw(n)が3種類の場合を例示しているが、列重みw(n)が2種類または4種類以上である場合に一般化できる。列重みw(n)の種類によらず、列重みの値iの降順に応じて、対応する外部値重みWsiは等しい値になるか、或いは、より小さな値になる。即ち、列重みの値iの降順に応じて、対応する外部値重みWsiはより大きな値にならない。また、列重みw(n)の種類によらず、外部値重みの最大値Wsi_maxは外部値重みの最小値Wsi_minよりも大きい(即ち、外部値重みの最大値Wsi_maxは外部値重みの最小値Wsi_minと等しくない)。このような外部値重みWsiを用いた重み付けによって、集合SD(P)の各要素からパリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnの絶対値が列重みの値iに応じて適切に縮小される。
また、尤度制御部106は、前述の数式(8)の代わりに次の数式(12)に従って、集合UC(P)の各要素から各変数ノードへの外部値αmnの重み付けを行うこともできる。
Figure 0005091996
尚、数式(12)における各外部値重み|Vu1|,|Vu2|及び|Vu3|は、次の条件式(13)を満たす。
Figure 0005091996
尚、数式(12)及び条件式(13)は、列重みw(n)が3種類の場合を例示しているが、列重みw(n)が2種類または4種類以上である場合に一般化できる。列重みw(n)の種類によらず、列重みの値iの降順に応じて、対応する外部値重み|Vui|は等しい値になるか、或いは、より大きな値になる。即ち、列重みの値iの降順に応じて、対応する外部値重み|Vui|はより小さな値にならない。また、列重みw(n)の種類によらず、外部値重みの最大値|Vui_min|は外部値重みの最小値|Vui_max|よりも大きい(即ち、外部値重みの最大値|Vui_min|は外部値重みの最小値|Vui_max|と等しくない)。このような外部値重み|Vui|を用いた重み付けによって、集合UC(P)の各要素から各変数ノードへの外部値αmnの絶対値が列重みの値iに応じて適切に拡大される。
更に、尤度制御部106は、数式(8)に示される1より大きい重み係数の乗算による重み付けと、数式(12)に示される絶対値の加算による重み付けとを組み合わせた重み付けを行ってもよい。
また、尤度制御部106は、前述の数式(10)の代わりに次の数式(14)に従って、集合SD(P)の各要素からパリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnの重み付けを行うこともできる。
Figure 0005091996
尚、数式(14)における各外部値重み(−|Vs1|),(−|Vs2|)及び(−|Vs3|)は、次の条件式(15)を満たす。
Figure 0005091996
尚、数式(14)及び条件式(15)は、列重みw(n)が3種類の場合を例示しているが、列重みw(n)が2種類または4種類以上である場合に一般化できる。列重みw(n)の種類によらず、列重みの値iの降順に応じて、対応する外部値重み(−|Vsi|)は等しい値になるか、或いは、より小さな値になる。即ち、列重みの値iの降順に応じて、対応する外部値重み(−|Vsi|)はより大きな値にならない。また、列重みw(n)の種類によらず、外部値重みの最大値(−|Vsi_max|)は外部値重みの最小値(−|Vsi_min|)よりも大きい(即ち、外部値重みの最大値(−|Vsi_max|)は外部値重みの最小値(−|Vsi_min|)と等しくない)。このような外部値重み(−|Vsi|)を用いた重み付けによって、集合SD(P)の各要素からパリティ検査を満たさないチェックノードと繋がっている変数ノードへの外部値αmnの絶対値が列重みの値iに応じて適切に縮小される。
更に、尤度制御部106は、数式(10)に示される1より小さい重み係数の乗算による重み付けと、数式(14)に示される絶対値の減算(絶対値の符号反転値の加算)による重み付けとを組み合わせた重み付けを行ってもよい。
以上のように、列重みが小さい変数ノードほどビット誤りが発生しやすいという傾向を考慮して、列重みの値i毎に個別の外部値重み(Wui、Wsi、|Vui|、(−|Vsi|)など)を設定して外部値αmnを重み付けすることにより、例えば図4に示される状況において誤り訂正能力を効果的に向上させることができる。
以下、図5を用いて、図1の誤り訂正復号器の動作の一例を説明する。図5の処理は、前段の信号処理部によって得られた尤度Fnが入力尤度保持部101に入力されると開始し、ステップS201に遷移する。この処理は、符号語(誤り訂正復号結果)が得られる(復号成功)か、繰り返し復号の実施回数Lが最大繰り返し回数Lmaxに達しても符号語が得られない(復号失敗)ならば終了し、次の処理対象に関する尤度Fnが入力保持部101に入力される。
ステップS201において、行処理部102は、前述のように、入力尤度保持部101からの入力尤度Fnと、検査行列保持部105からの検査行列Hの情報と、列処理部103からの(最新の)事前尤度βmnとを用いて外部値αmnを生成する。尚、ステップS201の処理が実行される毎に、行処理部102は繰り返し復号の実施回数Lをカウントしてもよい。次に、パリティ検査部104は、前述のように、検査行列保持部104からの検査行列Hの情報と、行処理部102からの外部値αmnとに基づいて一時推定語を生成し、生成した一時推定語が検査行列Hによって定義される符号語であるか否かを検査する(ステップS202)。一時推定語が符号語であれば処理は終了(復号成功)し、そうでなければ処理はステップS203に進む。
ステップS203において、尤度制御部106は、繰り返し復号の実施回数Lが所定の最大繰り返し回数Lmaxに達しているか否かを判定する。繰り返し復号の実施回数Lが所定の最大繰り返し回数Lmaxに達していれば処理は終了(復号失敗)し、そうでなければ処理はステップS204に進む。ステップS204において、尤度制御部106は、繰り返し復号の実施回数Lが所定の繰り返し回数Lin以下であるか否かを判定する。尚、Lin<Lmaxである。繰り返し復号の実施回数Lが所定の繰り返し回数Lin以下であれば処理はステップS205に進み、そうでなければ処理はステップS206に進む。ステップS206において、尤度制御部106は、パリティ検査を満たさないチェックノードの総数UCNが所定の最大数UCNmaxより大きいか否かを判定する。パリティ検査を満たさないチェックノードの総数UCNが所定の最大数UCNmaxより大きければ処理はステップS205に進み、そうでなければ処理はステップS207に進む。
ステップS207では、尤度制御部106が前述のように外部値αmnに重み付けを行い、処理はステップS205に進む。ステップS205では、列処理部103が検査行列保持部105からの検査行列Hの情報と、尤度制御部106からの(ステップS207を経由する場合には重み付けされた)外部値αmnとを用いて事前尤度βmnを計算し、処理はステップS201に戻る。
尚、図5の例では、尤度制御部106が重み付け(ステップS207)を行うか否かの分岐条件として、繰り返し復号の実施回数Lが所定の繰り返し回数Linを超えているという第1の条件(ステップS204)及びパリティ検査を満たさないチェックノードの総数UCNが所定の最大数UCNmax以下であるという第2の条件(ステップS206)の両方の組み合わせが採用されている。しかしながら、第1の条件及び第2の条件のいずれか一方のみによって尤度制御部106が重み付け(ステップS207)を行うか否かを分岐させる設計も可能である。第1の条件のみを利用する変形例を図6に示し、第2の条件のみを利用する変形例を図7に示す。第1の条件及び第2の条件の少なくとも一方を利用すれば、外部値αmnの重み付けによる誤り訂正能力の向上が期待できる状況(例えば、図4の状況)を絞り込むことが可能となる。例えば、外部値αmnの重み付けを伴わない通常の繰り返し復号を十分に行ってから外部値の重み付けを行うことによって、誤り訂正能力の向上が期待できる。また、パリティ検査を満たさないチェックノードの総数UCNが十分に少なくなってから外部値の重み付けを行うことによって、誤り訂正能力の向上が期待できる。
以上説明したように、第1の実施形態に係る誤り訂正復号器は、所定の条件を満たす場合(例えば、繰り返し復号を十分に実施した場合)に、列重みの値毎に個別の外部値重みを設定して外部値を重み付けする。従って、本実施形態に係る誤り訂正復号器によれば、繰り返し復号を十分に実施したにも関わらず符号語が得られない場合に、列重みが小さい変数ノードほどビット誤りが発生しやすいという傾向を利用して誤り訂正能力を効果的に向上させることができる。
(第2の実施形態)
第2の実施形態に係る記憶装置は、前述の第1の実施形態に係る誤り訂正復号器の応用例である。本実施形態に係る記憶装置は、典型的には、フラッシュメモリなどの不揮発性メモリと、これを制御するメモリコントローラとを含むメモリカードである。
図8のメモリカード303は、不揮発性メモリである半導体メモリ部305と、半導体メモリ部305を制御するメモリコントローラ302とを有する。メモリカード303は、ホスト304(例えば、パーソナルコンピュータ、デジタルカメラ、携帯電話機など)とリムーバブルに接続し、ホスト304との間でデータを送受信する。例えば、ホスト304はメモリカード303からデータを読み出したり、メモリカード303にデータを書き込んだりすることができる。
メモリコントローラ302は、ROM(Read Only Memory)307、CPU(Central Processing Unit)コア308、RAM(Random Access Memory)309、ホストI/F(インタフェース)310、誤り訂正部311及びメモリI/F312を含む。メモリコントローラ302の各要素は、バス306によって互いに接続されている。
CPUコア308は、ホストI/F310を介してホスト304との間でデータを送受信したり、メモリI/F312を介して半導体メモリ部305との間でデータを送受信したりする。即ち、CPUコア308は、半導体メモリ部305からデータを受ける読み出し部として機能したり、半導体メモリ部305にデータを送る書き込み処理部として機能したりする。また、CPUコア308上で実行されるFW(Firm Ware)は、書き換え回数の制限を含む半導体メモリ部305のアドレス管理を実現する。更に、FWは、ホスト304からのコマンド入力に応じたメモリカード303全体の制御も実現する。
ROM307には、メモリカード303の制御プログラムなどが記憶されている。RAM309には、アドレス管理において必要となるアドレス変換テーブル、異常回路の情報などが記憶される。
誤り訂正部311は、復号器301と符号化器313とを含む。復号器301には、第1の実施形態に係る誤り訂正復号器が組み込まれる。復号器301は、半導体メモリ部305から読み出されたデータの誤り訂正復号を行う。一方、符号化器313は、半導体メモリ305に書き込まれるデータに誤り訂正符号を付加する。
以上説明したように、第2の実施形態に係る記憶装置は、メモリコントローラに前述の第1の実施形態に係る誤り訂正復号器を組み込んでいる。従って、本実施形態に係る記憶装置によれば、読み出されたデータに対して優れた誤り訂正能力を発揮できる。
(第3の実施形態)
第3の実施形態に係る受信機は、前述の第1の実施形態に係る誤り訂正復号器の応用例である。本実施形態に係る受信機は、図9に示されるように、アンテナ320、周波数変換器321、A/D(アナログ/デジタル)変換器322、復調器323及び復号器324を有する。図9の受信機は、符号化及び変調された信号を受信し、復調及び復号することにより受信データを復元する。図9の受信機は、典型的には、(セルラ、無線LAN(Local Area Network)などをサポートする)無線受信機、放送波受信機などである。また、図9には示されていないが、低雑音増幅器、フィルタなどを含むことも可能である。
アンテナ320は、高周波の無線信号を受信する。周波数変換器321は、アンテナ320からの受信信号をダウンコンバートする(中間周波数信号に変換する)。A/D変換器322は、周波数変換器321からの中間周波数信号をアナログドメインからデジタルドメインに変換する。復調器323は、送信側の変調方式に対応する復調方式に従って、A/D変換器322からのデジタル信号を復調する。
復号器324には、前述の第1の実施形態に係る誤り訂正復号器が組み込まれる。復号器324は、送信側の符号化方式に対応する復号方式に従って、復調器323からの復調データに誤り訂正復号を含む復号化処理を行い、受信データを復元する。
以上説明したように、第3の実施形態に係る受信機は、復号器に前述の第1の実施形態に係る誤り訂正復号器を組み込んでいる。従って、本実施形態に係る受信機によれば、受信データに対して優れた誤り訂正能力を発揮できる。尚、図9の要素群と図示しない送信機のための要素群とを組み合わせて送受信機を構成することも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、上記各実施形態の処理を実現するプログラムを、コンピュータで読み取り可能な記憶媒体に格納して提供することも可能である。記憶媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリなど、プログラムを記憶でき、かつ、コンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
また、上記各実施形態の処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
101・・・入力尤度保持部
102・・・行処理部
103・・・列処理部
104・・・パリティ検査部
105・・・検査行列保持部
106・・・尤度制御部
301・・・復号器
302・・・メモリコントローラ
303・・・メモリカード
304・・・ホスト
305・・・半導体メモリ部
306・・・バス
307・・・ROM
308・・・CPUコア
309・・・RAM
310・・・ホストI/F
311・・・誤り訂正部
312・・・メモリI/F
313・・・符号化器
320・・・アンテナ
321・・・周波数変換器
322・・・A/D変換器
323・・・復調器
324・・・復号器

Claims (9)

  1. 非正則LDPC符号を利用して符号化されたデータに対して繰り返し復号を実施する誤り訂正復号器において、
    チェックノードから変数ノードへの外部値を生成する行処理部と、
    前記外部値に基づいて一時推定語を生成し、前記一時推定語にパリティ検査を行い、全てのチェックノードがパリティ検査を満たす場合に前記一時推定語を符号語と判定するパリティ検査部と、
    前記繰り返し復号の実施回数が所定の繰り返し回数を超えても前記符号語が得られないことを含む所定の条件が満たされる場合に、変数ノードの列重みの降順に応じてより大きな値或いは等しい値を持ち、最大値が最小値と等しくない複数の第1の外部値重みを用いて、前記パリティ検査を満たさないチェックノードから変数ノードへの外部値の絶対値を拡大する重み付けを行う尤度制御部と
    を具備する誤り訂正復号器。
  2. 前記第1の外部値重みの最小値は1よりも大きく、
    前記尤度制御部は、前記所定の条件が満たされる場合に、前記パリティ検査を満たさないチェックノードから変数ノードへの外部値に前記第1の外部値重みを乗算する、
    請求項1の誤り訂正復号器。
  3. 前記所定の条件は、前記繰り返し復号の実施回数が所定の繰り返し回数を超えているにも関わらず符号語が得られず、かつ、前記パリティ検査を満たさないチェックノードの総数が所定の最大数以下であることを含む、請求項1の誤り訂正復号器。
  4. 前記尤度制御部は、前記所定の条件が満たされる場合に、変数ノードの列重みの降順に応じてより小さな値或いは等しい値を持ち、最大値が最小値と等しくない複数の第2の外部値重みを用いて、前記パリティ検査を満たすチェックノードから前記パリティ検査を満たさないチェックノードに繋がっている変数ノードへの外部値の絶対値を縮小する重み付けを行う、請求項1記載の誤り訂正復号器。
  5. 前記第2の外部値重みの最大値は1よりも小さく、
    前記尤度制御部は、前記所定の条件が満たされる場合に、前記パリティ検査を満たすチェックノードから前記パリティ検査を満たさないチェックノードに繋がっている変数ノードへの外部値に前記第2の外部値重みを乗算する、
    請求項4の誤り訂正復号器。
  6. 前記第2の外部値重みの最大値は0以下であり、
    前記尤度制御部は、前記所定の条件が満たされる場合に、前記パリティ検査を満たすチェックノードから前記パリティ検査を満たさないチェックノードに繋がっている変数ノードへの外部値の絶対値に前記第2の外部値重みを加算する、
    請求項4の誤り訂正復号器。
  7. 前記第1の外部値重みの最小値は0以上であり、
    前記尤度制御部は、前記所定の条件が満たされる場合に、前記パリティ検査を満たさないチェックノードから変数ノードへの外部値の絶対値に前記第1の外部値重みを加算する、
    請求項1の誤り訂正復号器。
  8. 前記非正則LDPC符号を用いて符号化されたデータを不揮発性メモリから受ける読み出し部と、
    請求項1記載の誤り訂正復号器と
    を具備する、メモリコントローラ。
  9. 受信信号を復調し、前記非正則LDPC符号を用いて符号化されたデータを得る復調部と、
    請求項1記載の誤り訂正復号器と
    を具備する、受信機。
JP2010202095A 2010-09-09 2010-09-09 誤り訂正復号器、メモリコントローラ及び受信機 Expired - Fee Related JP5091996B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010202095A JP5091996B2 (ja) 2010-09-09 2010-09-09 誤り訂正復号器、メモリコントローラ及び受信機
US13/043,918 US20120066563A1 (en) 2010-09-09 2011-03-09 Error correction decoder, memory controller and receiver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010202095A JP5091996B2 (ja) 2010-09-09 2010-09-09 誤り訂正復号器、メモリコントローラ及び受信機

Publications (2)

Publication Number Publication Date
JP2012060450A JP2012060450A (ja) 2012-03-22
JP5091996B2 true JP5091996B2 (ja) 2012-12-05

Family

ID=45807858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010202095A Expired - Fee Related JP5091996B2 (ja) 2010-09-09 2010-09-09 誤り訂正復号器、メモリコントローラ及び受信機

Country Status (2)

Country Link
US (1) US20120066563A1 (ja)
JP (1) JP5091996B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9148175B2 (en) * 2011-05-31 2015-09-29 Mitsubishi Electric Corporation Error correction coding device, error correction decoding device and method therefor
WO2015020395A1 (ko) * 2013-08-05 2015-02-12 엘지전자 주식회사 무선접속시스템에서 신호 수신 방법 및 장치
EP3902142A1 (en) 2016-05-12 2021-10-27 MediaTek Inc. Qc-ldpc coding methods and apparatus
US10318389B2 (en) * 2016-07-15 2019-06-11 Quantum Corporation Joint de-duplication-erasure coded distributed storage
US10581457B2 (en) 2017-01-09 2020-03-03 Mediatek Inc. Shift coefficient and lifting factor design for NR LDPC code
US10432227B2 (en) 2017-01-24 2019-10-01 Mediatek Inc. Location of interleaver with LDPC code
US10630319B2 (en) 2017-01-24 2020-04-21 Mediatek Inc. Structure of interleaver with LDPC code
US10484013B2 (en) 2017-05-12 2019-11-19 Mediatek Inc. Shift-coefficient table design of QC-LDPC code for smaller code block sizes in mobile communications
US10484011B2 (en) 2017-05-12 2019-11-19 Mediatek Inc. Shift-coefficient table design of QC-LDPC code for larger code block sizes in mobile communications
US10567116B2 (en) 2017-05-12 2020-02-18 Mediatek Inc. Wireless communication using codebooks from a QC-LDPC code for shorter processing latency and improved decoder throughput efficiency
KR20200042360A (ko) * 2018-10-15 2020-04-23 에스케이하이닉스 주식회사 에러 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
KR20210015087A (ko) 2019-07-31 2021-02-10 에스케이하이닉스 주식회사 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
US11316532B1 (en) * 2020-12-17 2022-04-26 SK Hynix Inc. Decoding of low-density parity-check codes with high-degree variable nodes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6903887B2 (en) * 2002-01-03 2005-06-07 International Business Machines Corporation Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
US7401283B2 (en) * 2004-09-28 2008-07-15 Broadcom Corporation Amplifying magnitude metric of received signals during iterative decoding of LDPC (Low Density Parity Check) code and LDPC coded modulation
US8140930B1 (en) * 2005-05-13 2012-03-20 Nec Corporation Encoder and decoder by LDPC coding
JP2009182421A (ja) * 2008-01-29 2009-08-13 Panasonic Corp 復号化方法及び復号化装置
US8234556B2 (en) * 2008-12-30 2012-07-31 Intel Corporation Broadcast receiver and method for optimizing a scale factor for a log-likelihood mapper

Also Published As

Publication number Publication date
JP2012060450A (ja) 2012-03-22
US20120066563A1 (en) 2012-03-15

Similar Documents

Publication Publication Date Title
JP5091996B2 (ja) 誤り訂正復号器、メモリコントローラ及び受信機
JP5132758B2 (ja) 誤り訂正復号器及び記憶装置
JP5199255B2 (ja) 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法
US8607118B2 (en) Iterative decoding method and apparatus
US20110252286A1 (en) Non-binary ldpc code decoder
JP4651600B2 (ja) 低密度パリティ検査復号器における検査ノード更新方法
JP2012500514A (ja) 複数のチェックノード・アルゴリズムを用いる誤り訂正デコーダ
EP2164178A1 (en) Encoding method and encoding device
KR100757769B1 (ko) 저밀도 패리티 체크 코드를 디코딩하는 디코더 및 방법
JP2013198017A (ja) 復号装置及び通信装置
JP4572937B2 (ja) 復号装置および方法、プログラム、並びに記録媒体
JP2008011078A (ja) 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
JP5674015B2 (ja) 復号装置および方法、並びにプログラム
JP2009182421A (ja) 復号化方法及び復号化装置
KR20160020996A (ko) 길이가 64800이며, 부호율이 4/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법
JP5385944B2 (ja) 復号器
JP5034588B2 (ja) 軟判定復号装置および軟判定復号プログラム
JP4845846B2 (ja) 復号装置および復号プログラム
TWI583141B (zh) 低密度奇偶檢查碼的解碼方法與解碼器
JP2008153874A (ja) 軟判定復号装置、軟判定復号方法および軟判定復号プログラム
JP4755238B2 (ja) 復号器
Shin et al. Multi-stage decoding scheme with post-processing for LDPC codes to lower the error floors
JP5018807B2 (ja) 復号化装置
JP5132738B2 (ja) 誤り訂正復号器及び受信機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120802

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: 20120821

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: 20120914

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees