JP5464990B2 - シンボルから成るブロックを復号するための多段復号器及び方法 - Google Patents

シンボルから成るブロックを復号するための多段復号器及び方法 Download PDF

Info

Publication number
JP5464990B2
JP5464990B2 JP2009277535A JP2009277535A JP5464990B2 JP 5464990 B2 JP5464990 B2 JP 5464990B2 JP 2009277535 A JP2009277535 A JP 2009277535A JP 2009277535 A JP2009277535 A JP 2009277535A JP 5464990 B2 JP5464990 B2 JP 5464990B2
Authority
JP
Japan
Prior art keywords
decoder
sub
decoding
code
node
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.)
Active
Application number
JP2009277535A
Other languages
English (en)
Other versions
JP2010178328A (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.)
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Research Laboratories Inc
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 Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Research Laboratories Inc
Publication of JP2010178328A publication Critical patent/JP2010178328A/ja
Application granted granted Critical
Publication of JP5464990B2 publication Critical patent/JP5464990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • H04L1/0053Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving
    • 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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • 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
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • 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/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、包括的には、誤り訂正符号の符号語を復号することに関し、より詳細には、多段復号器を使用して符号語を復号することに関する。
誤り訂正符号
データ記憶及び通信の分野における基本的な問題は、誤り訂正符号(ECC)の実用的な復号方法の開発である。
誤り訂正符号の1つの非常に重要な部類は、線形ブロック誤り訂正符号の部類である。別段の指定のない限り、本明細書において「符号」と言うときは、いずれも線形ブロック誤り訂正符号を指す。
これらの符号の背後にある基本的なアイデアは、N個のシンボルから成るブロックを使用して、K個の情報シンボルから成るブロックを符号化することである。ここで、N>kである。付加されたN−kビットは、破損した信号が、雑音を有するチャネルを介して受信されたとき又は傷害のある記憶媒体から取り出されたときに、それらの破損した信号を訂正するのに使用される。
符号のすべての制約条件を満たす、N個のシンボルから成るブロックは、「符号語」と呼ばれ、k個の情報シンボルから成る対応するブロックは、「情報ブロック」と呼ばれる。これらのシンボルは、q項アルファベットから引き出されるものと仮定される。
重要な特別の場合はq=2のときである。この場合、符号は、「バイナリ」符号と呼ばれる。本明細書で与える例では、バイナリ符号が前提とされる。ただし、本明細書で説明する復号方法の、q>2を有するq項符号への一般化が、通例可能である。バイナリ符号は、実際に使用される最も重要な符号である。
線形ブロック誤り訂正符号による従来の「チャネル符号化」では、ソースは、k個のシンボルu[a]から成る情報ブロックを生成する。この情報ブロックは、誤り訂正符号の符号化器に渡される。符号化器は、N個のシンボルを含む符号語x[n]を生成する。この符号語は、次に、チャネルを通じて送信される。このチャネルでは、符号語は、場合によっては破損されて、信号y[n]になる可能性がある。破損した信号y[n]は、次に、復号器に渡され、復号器は、符号語x[n]を復元したものz[n]の出力を試みる。
符号パラメータ
バイナリ線形ブロック符号は、ブロック長Nを有する2個の可能な符号語の集合によって定義される。パラメータkは、時に、符号の「次元」と呼ばれる。符号は、通常、N及びkが大きいときにはるかに効率的なものとなる。しかしながら、パラメータN及びkのサイズが増加するにつれて、破損したメッセージの復号の困難さも増加する。
2つの符号語間のハミング距離は、2つの語において異なるシンボルの個数として定義される。符号の距離dは、その符号におけるすべての符号語対間の最小ハミング距離として定義される。より大きな値のdを有する符号ほど、より優れた誤り訂正能力を有する。パラメータN及びkを有する符号は、[N,k]符号として参照される。距離dも判明している場合、符号は[N,k,d]符号として参照される。
符号パリティ検査行列表現
線形符号は、パリティ検査行列によって表すことができる。バイナリ[N,k]符号を表すパリティ検査行列は、M行及びN列を有する0及び1から成る行列である。パリティ検査行列のN列は、符号のN個のシンボルに対応する。行列の線形独立な行の個数はN−k個である。
パリティ検査行列の各行は、パリティ検査制約を表す。特定の行によって表される制約に関与するシンボルは、その行において非ゼロのシンボルを有する列に対応する。パリティ検査制約によって、それらのシンボルのモジュロ2の加重和が強制的に0に等しくされる。例えば、バイナリ符号の場合、パリティ検査行列
Figure 0005464990
は、3つの制約
x[1]+x[2]+x[3]+x[5]=0、
x[2]+x[3]+x[4]+x[6]=0、及び
x[3]+x[4]+x[5]+x[7]=0
を表す。ここで、x[n]は、第nビットの値であり、バイナリシンボルの加算は、0+0=1+1=0及び0+1=1+0=1となるようなモジュロ2算術のルールを使用して行われる。
符号のグラフモデル
線形符号のパリティ検査行列は、多くの場合、当該技術分野において「タナーグラフ」とも呼ばれるグラフモデルを使用して表される。タナーグラフは、符号語シンボルに対応する「変数ノード」及びパリティ制約に対応する「制約ノード」の2種類のノードを有する二部グラフである。したがって、符号を表すパリティ検査行列の各列につき1つの変数ノードがあり、パリティ検査行列の各行につき1つの制約ノードがある。変数ノードは、対応するシンボルが制約式にある場合に、タナーグラフの制約ノードに接続される。したがって、パリティ検査行列の各非ゼロのエントリーについて変数ノードと制約ノードとを接続する線がある。
タナーグラフに容易に変換することができる、符号の他のグラフモデルが存在する。例えば、G. David Forneyは、変数がグラフの線によって表され、符号シンボルが変数間の等式制約として表される「ファクタグラフ」表現を広めた。これについては、非特許文献1を参照されたい。本明細書では、タナーグラフの点から復号方法を説明するが、これらの復号方法を、他のグラフモデルと連携するように変換する方法は、よく理解されている。
誤り訂正符号復号器
誤り訂正符号の復号器の作業は、送信された符号語がチャネルにおいて破損した後に受信信号を受け取り、送信された符号語の復元を試みることである。符号語の復号の失敗数を最小にするという点で最適な復号器は、受信信号が与えられた場合に、最も確からしい符号語を出力する。この最適な復号器は、「最尤」復号器として知られている。最尤(ML)復号器であっても、チャネルの雑音が十分に大きい場合には、時に復号誤りを起こし、送信された符号語でない符号語を出力する。
反復復号器
実際には、誤り訂正符号の特別な部類についてしか最尤復号器を構成することができない。反復方法に基づいた最適でない近似的な復号器に多くの関心が持たれてきた。これらの反復復号方法の1つは、「信念伝搬」(BP)と呼ばれる。R. Gallagerは、これをその名称で呼んではいなかったが、低密度パリティ検査(LDPC)符号用のBP復号方法を1963年に最初に記載した。
ターボ符号
1993年に、「ターボ符号」として知られている新しい部類の符号について非常にうまく動作する同様の反復方法が示された。ターボ符号の成功によって、部分的には、LDPC符号及び反復復号方法に対する関心が再度新たに大きく持たれるようになった。ターボ符号及びLDPC符号の双方、並びに「ターボ積符号」及び「繰り返し累積符号」等の他の関連符号について反復復号方法の性能を改善するために、近年、かなりの量の研究が行われている。例えば、IEEE Communications Magazineの2003年8月の特集号が、この研究に充てられた。概観については、非特許文献2及び非特許文献3を参照されたい。
多くのターボ符号及びLDPC符号は、ランダムな構成を使用して構成される。例えば、GallagerのオリジナルのバイナリLDPC符号は、パリティ検査行列の点から定義され、このパリティ検査行列は0及び1のみから成り、少数の1が、所定の確率分布に従って行列内にランダムに配置される。一方、反復復号器は、有限幾何によって定義された符号のような規則的な構成によって定義される符号に適用されることにも成功してきた。これについては、非特許文献4を参照されたい。一般に、相対的に少数の非ゼロのエントリーを有するパリティ検査行列ならば、ランダムな構成を有しようが、規則的な構成を有しようが、そのパリティ検査行列を有する符号について反復復号器はうまく動作する。
BPに基づくLDPC符号の復号器を有するシステムでは、システムは、符号を指定するパリティ検査行列によって与えられるように、反復的に受信シンボルを処理して、制約に基づき各シンボルの信頼性を改善する。
最初の反復では、BP復号器は、入力としてチャネルエビデンス(channel evidence)のみを使用し、各シンボルから、そのシンボルを伴うパリティ検査制約へのソフト出力メッセージを生成する。シンボルから制約へメッセージを送信するステップは、時に、「垂直」ステップと呼ばれる。次に、シンボルからのメッセージは、近接した制約において処理され、シンボルへ新しいメッセージをフィードバックする。このステップは、時に、「水平」ステップと呼ばれる。復号反復プロセスは、一定の終了条件が満たされるまで、垂直ステップと水平ステップとを交互に続ける。その時点で、最後の復号反復からのシンボルの出力信頼性尺度に基づいて各シンボルの硬判定が行われる。
BP復号器のメッセージは、上述したタナーグラフを使用して視覚化することができる。垂直ステップメッセージは、変数ノードから制約ノードに向かう一方、水平ステップメッセージは、制約ノードから変数ノードに向かう。
メッセージ更新ルールの正確な形態及びメッセージの意味は、使用されるBP方法の特定の変形に従って変化する。2つの特に一般的なメッセージ更新ルールは、「積和(sum-product)」ルール及び「最小和(min-sum)」ルールである。これらの従来技術のメッセージ更新ルールは、非常によく知られており、これらのメッセージ更新ルールを近似したものも、実際にうまく動作することが判明している。さらに詳細な内容は、参照により本明細書に援用される特許文献1に記載されている。
BP方法のいくつかの変形では、メッセージは、ビットが0又は1のいずれかである対数尤度を表す。BP方法及び誤り訂正符号へのその応用に関するより背景的な資料については、非特許文献5を参照されたい。
量子化信念伝搬
実際には、BP復号器を実施する一般的な方法は、メッセージをいくつかの少数の可能な値に量子化することである。例えば、復号器は、値+1及び−1を有するメッセージのみを使用することができる。量子化BP(QBP)復号器は、可能なメッセージの個数が増加するにつれて、より強力になる傾向があり、それによって、非量子化BP復号器をより良く近似する。他方、可能なメッセージの個数が増加するにつれて、量子化BP復号器を実施するコスト及び複雑さも同様に増加する傾向がある。
別のQBP復号器は、当該技術分野で「アルゴリズムE(Algorithm-E)」として知られている。これについては、非特許文献6を参照されたい。この復号器は、特に関心があるので、バイナリ対称チャネル(BSC)上でLDPC符号を復号するためのその機能をここで詳細に説明する。
アルゴリズムE復号器は、BSCから受信されたシンボルの入力シーケンスを復号する。このシンボルの入力シーケンスは、ベクトルyによって表される。位置nにおける0のシンボルがy=1にマッピングされ、位置nにおける1のシンボルがy=−1にマッピングされるように2相位相シフトキーイング(BPSK)が使用される。
H=[Hmm]をLDPC符号のM×Nパリティ検査行列とする。検査jに関与する変数ノードの集合は、N(j)={k:Hjk=1}によって表記され、変数kが関与する検査の集合は、Q(k)={j:Hjk=1}と表記される。N(j)\kは、変数kが除外された集合N(j)であり、Q(k)\jは、検査jが除外された集合Q(k)である。
アルゴリズムE復号器は、BPメッセージを−1、0、又は+1の値に量子化する。i番目の反復に関連したメッセージ及び信念は、
(i) mn:検査ノードmから変数ノードnに渡されるメッセージ、
(i) mn:変数ノードnから検査ノードmに渡されるメッセージ、及び
(i) :変数ノードnの信念、
と表記される。
「アルゴリズムE」復号器のステップは、次の通りである。
ステップ1:1≦m≦M及び各n∈N(m)について、
Figure 0005464990
を処理する。
ステップ2:1≦n≦N及び各m∈Q(n)について、
Figure 0005464990
を処理する。ここで、w(i)は、適切に選択された重みであり、
Figure 0005464990
である。ここで、x>0の場合にはsgn(x)=1であり、x<0の場合にはsgn(x)=−1であり、sgn(0)=0である。
ステップ3:v(i) <0の場合には
Figure 0005464990
となり、v(i) >0の場合には
Figure 0005464990
となり、v(i) =0の場合には
Figure 0005464990
をランダムに選択するようなベクトル
Figure 0005464990
を構成する。
Figure 0005464990
又はImaxに達した場合には、復号反復を停止し、復号された符号語として、
Figure 0005464990
を出力する。そうでない場合には、i:=i+1に設定し、ステップ1に進む。
ビットフリッピング復号器
ビットフリッピング(BF)復号器は、BP復号器と同様に動作する反転復号器である。これらの復号器は、幾分、より単純である。LDPC符号のビットフリッピング復号器も、長い歴史を有し、またGallagerがLDPC符号を紹介した1960年代初期にGallagerによって提案された。ビットフリッピング復号器では、各符号語ビットは、最初に、チャネル出力に基づいて0又は1となるように割り当てられる。次に、各反復において、各パリティ検査のシンドロームが計算される。パリティ検査のシンドロームは、パリティ検査が満たされた場合には0であり、パリティ検査が満たされない場合には1である。次に、各ビットについて、そのビットを含むすべてのパリティ検査のシンドロームが検査される。所定のしきい値よりも大きな複数のパリティ検査が満たされない場合、対応するビットがフリッピングされる。すべてのパリティ検査が満たされるまで又は所定の最大反復回数に達するまで、反復は続く。
反復的に復号することができる他の符号
反復復号方法を使用して復号を成功させることができる他の多くの符号がある。それらの符号は、文献で既知であり、それらの符号はあまりにも多いので、それらをすべて詳細に説明することはできない。それらの符号の最も注目すべきもののいくつかは、ターボ符号(非特許文献7参照)、不規則LDPC符号(非特許文献8参照)、繰り返し累算符号(非特許文献9参照)、LT符号(非特許文献10参照)、及びラプタ(Raptor)符号(非特許文献11参照)である。
線形計画復号器及び適応型線形計画復号器
LDPC符号の代替的な復号方法は、線形計画法(LP)に基づいている。LP復号は、BP復号では利用可能でないいくつかの魅力的な特徴を有する。LP復号器は、確定的に収束する。復号器が符号語をいつ出力しようとも、その符号語は、最尤解であることが保証される。LP復号器が非バイナリ解に収束するとき、明確に定義された「疑似符号語」が見つけられている。
ML復号問題は、次の整数最適化問題(integer optimization problem)、すなわち
Figure 0005464990
を条件として、
Figure 0005464990
を最小にする、という問題と等価である。ここで、γは、負の対数尤度の既知のベクトルであり、Tは転置演算子であり、n番目のエントリーは、
Figure 0005464990
として定義される。
チャネルがBSCであるとき、受信されたBPSKシンボルがy=−1である場合にはγ=log[p/(1−p)]であり、受信されたBPSKシンボルがy=1である場合にはγ=log[(1−p)/p]である。
上記整数最適化問題における変数及び制約はバイナリである。この問題の緩和されたLPバージョンでは、各シンボル
Figure 0005464990
は、対応する変数
Figure 0005464990
に緩和され、この対応する変数は、0と1との間の値を取ることができる。各パリティ検査は、符号語が満たさなければならない複数の局所線形制約に置き換えられる。これらの制約の交わりは、LPソルバが操作するポリトープを定義する。ポリトープのバイナリ頂点は、符号Cの符号語に対応する。LP最適条件がこのような頂点にあるとき、LPが満たされ、ML解が見つけられる。非バイナリ解は、疑似符号語と呼称される。
あいにく、LP復号は、BP復号よりも複雑である。1つの手法は、適応型線形計画(ALP)復号器を使用することによって計算負荷を削減する。これについては、非特許文献12を参照されたい。
混合整数線形計画復号器
LP復号問題の解が非バイナリであるとき、オリジナルのLP緩和を厳しくしたもの(tightening)を見つけるように動機付けられる。厳しくすることの目的は、いずれのバイナリ頂点も除去することなく、以前最適であった疑似符号語を除去する変更されたLP問題を生成し、それによって、変更されたLP問題の解をML解に持って行くことである。
1つの手法は、少数の整数制約を追加することであり、その結果、混合整数線形計画法(MILP)となる。詳細には、MILP復号器では、その値が0.5に最も近いシンボルを識別することができる。このインデックス
Figure 0005464990
について、復号器は、整数制約
Figure 0005464990
を含み、この整数制約を含むLP復号器を再実行する。整数制約を追加した後であっても、MILP復号器が復号に失敗した場合、より多くの整数制約を追加することができる。Draper他による関連出願では、この手法がLDPC符号に使用される。
同じ符号の異なる復号器の性能
各異なるタイプの符号について、複数の異なる復号器が一般に利用可能である。例えば、LDPC符号については、(数ある中でも)ビットフリッピング復号器、異なる量子化レベルの量子化BP復号器、積和方法又は最小和方法を使用するBP復号器、LP復号器、及びMILP復号器の中から選択することができる。
例えばリード・ソロモン符号のような他の既知の符号については、バーレカンプ・マッセイ(Berlekamp-Massey)復号方法のような符号化の教科書に見られる「古典的」な復号方法、又は信念伝搬に基づくより新しい復号方法、又はリスト復号方法を含めて、非常に多数の異なる復号方法も存在する。
異なる復号方法は、一般に、復号器の誤り率を信号対雑音比(SNR)の関数としてプロットすることによって比較される。2つの一般的な尺度は、「ワード誤り率」(WER)及び「ビット誤り率」(BER)である。WERは、送信された符号語に正しく復号されないブロックの割合を測定するものである。BERは、誤って復号されるビットの割合を測定するものである。本明細書では、WERに注目する。特定の信号対雑音比において、或る復号器のWERが別の復号器よりも低い場合に、その復号器は、その別の復号器よりも「良好である」か又は「強力である」。
図3は、同じ符号に対して操作を行う異なる復号器についてWERをSNRの関数として示す。この例では、復号器A 310は、低い信号対雑音比については復号器Bよりも良好であるが、復号器B 320は、高い信号対雑音比については復号器Aよりも良好である。図4は、復号器A 410があらゆるSNRにおいて復号器B 420よりも良好に動作する一例を示す。
復号器の処理時間
多くの場合、復号器のWER性能と復号器がブロックを処理するのに要する時間との間にトレードオフがある。一例として、BP復号器は、終了する前に1ブロック当たりより多くの反復動作が可能である場合、より良好なWER性能を有する。単純な復号器は、処理時間が少ないが、WER性能が不十分である傾向がある一方、より複雑な復号器は、処理時間がより長くなるが、WER性能がより良好になる傾向がある。時に、或る復号器は、第2の復号器よりも数桁良好なWERを有するが、同様に、第2の復号器よりも数桁良くない処理時間を有する。
2008年5月13日にYedidia他に発行された米国特許第7,373,585号「Combined-replica group-shuffled iterative decoding for error-correcting codes」
G. D. Forney著「Codes on Graphs: Normal Realizations」, IEEE Transactions on Information Theory, February 2001, vol. 47, pp. 520-548 C. Berrou著「The Ten-Year-Old Turbo Codes are entering into Service」, IEEE Communications Magazine, vol. 41, pp. 110-117, August 2003 T. Richardson及びR. Urbanke著「The Renaissance of Gallager's Low-Density Parity Check Codes」, IEEE Communications Magazine, vol. 41, pp. 126-131, August 2003 Y. Kou、S. Lin、及びM. Fossorier著「Low Density Parity Check Codes Based on Finite Geometries: A Rediscovery and More」, IEEE Transactions on Information Theory, vol. 47, pp. 2711-2736, November, 2001 F. R. Kschischang、B. J. Frey、及びH. -A. Loeliger著「Factor Graphs and the Sum-Product Algorithm」, IEEE Transactions on Information Theory, vol. 47, pp. 498-519, February 2001 Richardson他著「The capacity of low-density parity-check codes under message-passing decoding」, IEEE Trans. Inform. Theory, vol. 47, pp. 599-618, Feb. 2001 C. Berrou及びA. Glavieux著「Near-Optimum Error-Correcting Coding and Decoding: Turbo-codes」, IEEE Transactions in Communications, vol. 44, pp. 1261-1271, October 1996 M. A. Shokrollahi、D. A. Spielman、M. G. Luby、及びM. Mitzenmacher著「Improved Low-Density Parity Check Codes Using Irregular Graphs」, IEEE Trans. Information Theory, vol. 47, pp. 585-598, February 2001 D. Divsalar、H. Jin、及びR. J. McEliece著「Coding Theorems for Turbo-like' Codes」, Proc. 36th Allerton Conference on Communication, Control, and Computing, pp. 201-210, September, 1998 M. Luby著「LT Codes」, Proc. Of the 43 Annual IEEE Symposium on Foundations of Computer Science, pp. 271-282, Nov. 2002 A. Shokrollahi著「Raptor Codes」, Proceedings of the IEEE International Symposium on Information Theory, p. 36, July 2004 Taghavi他著「Adaptive methods for linear programming decoding」, IEEE Transactions on Information Theory, vol. 54, no. 12, pp. 5386-5410, Dec. 2008
性能と処理時間との間のトレードオフを解消する復号器、すなわち、優れた性能及び少ない処理時間を同時に有する復号器を構成することが非常に望ましい。
本発明のアイデアは、対象となる動作領域においてサブ復号器のワード誤り率(WER)の性能の点で順序付けることができる複数のサブ復号器を単一の多段復号器に結合することである。最初のサブ復号器は最低性能の復号器であり、最後のサブ復号器は最良性能の復号器である。サブ復号器は、その処理時間の点でも順序付けが可能である。最初のサブ復号器は、1ブロック当たりの処理時間が最も短い一方、最後のサブ復号器は、1ブロック当たりの処理時間が最も長い。
本発明の実施の形態は、量子化信念伝搬(QBP)サブ復号器、非量子化信念伝搬(UBP)サブ復号器、及び混合整数線形計画(MILP)サブ復号器又は線形計画復号器を順次結合する多段復号器を提供する。各サブ復号器は、前段のサブ復号器が有効な符号語への収束に失敗したときにのみ起動される。
より高速なQBPサブ復号器及びUBPサブ復号器は、ほとんどの誤りを訂正することができ、短い平均復号時間を与える。稀な場合ではあるが、QBPサブ復号器及びUBPサブ復号器の双方が失敗したときにのみ、それよりも低速であるが、より良好な性能の線形計画復号器又はMILPサブ復号器が使用される。
結果は、従来のBP復号と比較して、多段復号器のWERが大きく改善されていることを示す。この改善は、高いSNR領域において特に顕著である。多段復号器は、LDPC符号の復号を大幅に高速化することもできる。一定の符号について、本発明は、線形計画復号器又はMILP復号器のみを使用するよりもはるかに低い複雑さで、高いSNR領域において最適なML復号性能に効率良く近づくことができる。
本発明は、メッセージが変化するときに検査ノード及び変数ノードのみを更新することによってQBP復号器も改善する。高いSNRでは、変数ノード及び検査ノードからのごく少数のメッセージしか更新する必要がない。したがって、復号には、従来のQBP復号器と比較して、ごく少数の計算しか必要とされない。
本発明の実施形態による多段復号器のブロック図である。 本発明の実施形態による量子化信念伝搬復号のフロー図である。 例示の復号器についてワード誤り率の性能を信号対雑音比の関数として比較するグラフである。 例示の復号器についてワード誤り率の性能を信号対雑音比の関数として比較するグラフである。
図1は、本発明の実施形態による低密度パリティ検査(LDPC)符号の多段復号器100を示す。この復号器は、量子化信念伝搬(QBP)サブ復号器110、非量子化BP(UBP)サブ復号器120、及び線形計画(LP)復号器又は混合整数線形計画(MILP)サブ復号器130を含む。これらのサブ復号器は、順次接続されている。
多段復号器100は、雑音を有するチャネル102を介して送信された符号語x 101を受信する。サブ復号器110は、符号語101の復号を試みる。サブ復号器110が失敗した場合、サブ復号器120が復号を試みる。サブ復号器120が失敗した場合、終了条件に達するまで、サブ復号器130が復号を試みる。サブ復号器は、シーケンスの次段のサブ復号器が前段のサブ復号器よりも遅い処理時間(T)及び良好なワード誤り率(WER)を有するように、すなわち、TQBP<<TUBP<<TMILPであり、且つ、WERQBP>>WERUBP>>WERMILPであるように配列されている。
「復号失敗」は、指定された復号器が有効な符号語の出力に失敗することを示す。例えば、QBP復号器は、収束に失敗する場合がある。復号器が、有効ではあるが、正しくない符号語を出力する場合、これは、復号器の「成功」であり、後続の復号器の実行をトリガしない。もちろん、送信された符号語と一致しない復号の「成功」は、WERに寄与する。
MILPサブ復号器130は、次のように動作する。サブ復号器130は、まず、標準的なLP復号の実行を試みる。それが失敗した場合、最も信頼性の低い復号ビットについて整数制約が追加される。復号が再び失敗した場合、別の整数制約が追加され、復号が成功するまで又は整数制約の或る最大個数に達するまで同様に別の整数制約が追加される。MILPサブ復号器は、整数制約の最大個数が大きいほどより良好に動作するが、最悪の場合の処理時間もより長くなる。
驚くことに、本発明の多段復号器は、本明細書で説明及び図示するように配列されると、最も高速の段とほぼ同程度に高速であり、最も低速の段とほぼ良好のWERを有する。以下の解析は、本明細書で説明するように配列された多段復号器の1ブロック当たりの平均処理時間を近似するのに使用される。所与のサブ復号器段が1ブロック当たりTの処理時間を要し、WERのワード誤り率を有すると仮定した場合、多段復号器は、約
Figure 0005464990
の1ブロック当たりの平均処理時間を有する。ここで、TQBPは、QBPサブ復号器110の1ブロック当たりの平均処理時間であり、TUBPは、UBPサブ復号器120の1ブロック当たりの平均処理時間であり、TMILPは、MILPサブ復号器130の1ブロック当たりの平均処理時間であり、WERQBPは、QBPサブ復号器110のWERであり、WERQBP−UBPは、MILPサブ復号器を有しない、QBPサブ復号器及び後続のUBPサブ復号器から成る2段復号器のWERである。
したがって、WERQBP<<TQBP/TUBP、且つ、WERQBP−UBP<<TQBP/TMILPである限り、1ブロック当たりの平均処理時間は、復号器110の平均処理時間とほぼ同じになる。同時に、シミュレーションは、多段復号器のWER性能が、少なくともその最後のサブ復号器130と常にほぼ同程度に良好であることを示す。本発明の多段復号器のコンセプトは、順次配列される追加の復号器に対して開放的であることに留意すべきである。例えば、段数及び復号器の選択は、特定のLDPC符号について最適に設計することができる。
「アクティブ集合」反復復号器
従来のBP復号器等の従来の反復復号器では、検査ノード及び変数ノードからのすべてのメッセージが、各反復において更新される。しかしながら、これは、着信メッセージが最後の反復以後変化していないノードについては必要とすべきではない。例えば、BSCの場合、十分高い信号対雑音比(SNR)では、チャネルは少数の送信ビットしか反転しないので、従来のBP復号器のほとんどのメッセージを復号中に更新する必要は決してなく、復号の複雑さを大幅に削減することができる。
本発明の「アクティブ集合」反復復号器の基本的なアイデアは、変化したメッセージの集合を追跡し、その集合の着信メッセージを有するノードからのメッセージのみを更新することである。
「アクティブ集合」反復復号器を使用して得られる高速化は、単一のプロセッサ又は少数のプロセッサがメッセージのそれぞれの更新を担当する場合に特に重要である。変化していないメッセージを再計算する時間をプロセッサに浪費させることが望まれていない。
アクティブ集合反復復号器は、多くの異なる符号、チャネル、及び復号方法について構成することができる。
バイナリ対称チャネル上におけるLDPC符号のアルゴリズムE復号器の特定の実施形態についてアクティブ集合復号器を説明する。入力ビットシーケンスがベクトルyによって表されるものと仮定し、位置nにおける0のシンボルがy=1にマッピングされ、位置nにおける1のシンボルがy=−1にマッピングされるように2相位相シフトキーイング(BPSK)が使用されるものと仮定する。
H=[Hmn]をLDPC符号のM×Nパリティ検査行列とする。検査jに関与する変数ノードの集合は、N(j)={k:Hjk=1}によって表記され、変数kが関与する検査の集合は、Q(k)={j:Hjk=1}と表記される。N(j)\kは、符号語シンボルkが除外された集合N(j)であり、Q(k)\jは、検査jが除外された集合Q(k)である。
アルゴリズムE復号器は、BPメッセージを−1、0、又は+1の値に量子化することを思い出されたい。i番目の反復に関連したメッセージ及び信念は、
(i) mn:検査ノードmから変数ノードnに渡されるメッセージ、
(i) mn:変数ノードnから検査ノードmに渡されるメッセージ、及び
(i) :変数ノードnの信念、
と表記される。
アクティブ集合アルゴリズムE復号器(QBP)110について、A及びAをそれぞれ変数ノード及び検査ノードのアクティブ集合と定義する。これらのアクティブ集合は、更新されるノードのみを含む。これは、すべてのノードが各反復中にアクティブであり更新される従来技術の反復復号器とは対照的である。
アクティブ集合アルゴリズムE反復復号器のステップは、以下の通りである。
初期化201:i=1に設定し、A=φ、すなわち、空(empty)に設定し、反復の最大回数をImaxに設定する。各検査ノードm及び各変数ノードnについて、v(0) mn=1及びu(0) mn=1に設定する。各nについて、v(0) =yに設定する。y=−1である場合、すべてのm∈Q(n)についてv(0) mn=−1に設定し、これらのmをAに追加する。
ステップ1 210:A=φ、すなわち、空(empty)に設定する。各m∈A及び各n∈N(m)について、
Figure 0005464990
を処理し、すべてのこれらの変数ノードnを集合Aに追加する。
ステップ2 220:A=φ、すなわち、空(empty)に設定する。各n∈A及び各m∈Q(n)について、
Figure 0005464990
を処理する。ここで、w(i)は、適切に選択された重みである。
(i) mn≠v(i−1) mnの場合(225)、このmをAに追加し(256),
Figure 0005464990
を再計算する(227)。ここで、x>1についてsgn(x)=1であり、x<1についてsgn(x)=−1であり、sgn(0)=0である。
ステップ3 230:v(i) <0の場合には
Figure 0005464990
となり、v(i) >0の場合には
Figure 0005464990
となり、v(i) =0の場合には
Figure 0005464990
をランダムに選択するようなベクトル
Figure 0005464990
を作成する。
Figure 0005464990
又はImaxに達した場合には、復号反復を停止し、復号された符号語として、
Figure 0005464990
を出力する。そうでない場合には、i:=i+1に設定し、ステップ1に進む。
このアクティブ集合アルゴリズムE復号器は、従来のアルゴリズムE復号器と同じ性能を有するが、単一のプロセッサ又は少数のプロセッサのみがメッセージを計算するのに使用される場合、1ブロック当たりの処理時間はより少なくなる。
バイナリ入力対称チャネルによる線形符号の復号器のソフトウェアシミュレーションでは、同じ符号語(通常、すべて0の符号語が便宜上使用される)があらゆるブロックで送信されるという単純化した仮定を行うことができることに留意されたい。この理由は、送信されたあらゆる可能な符号語について復号器の性能が同一であるからである。
同一の符号語があらゆるブロックについて送信されると仮定したとき、アクティブ集合復号器の初期化ステップは、さらに大きく高速化される可能性がある。
例えば、BSC上におけるLDPCの本発明のアクティブ集合アルゴリズムE復号器について、同じ符号語が各ブロックについて送信される場合には、ブロックの復号に成功したときはいつでも、次のブロックの初期化ステップは、新しく反転されたビットの位置を記録するのにO(Np)の時間しか要しない。ここで、pはチャネルの交叉確率である。そうでない場合において、任意の符号語の送信が認められるならば、すべての受信シンボルを等確率で+1又は−1に初期化する必要があるので、必然的にO(N)の時間を要する。
表Iは、長さ1908で符号化率8/9のLDPC符号について、従来の量子化復号器(E)、本発明のアクティブ集合量子化復号器(高速E)によって必要とされる更新回数を示す。
Figure 0005464990
表Iにおいて、「変数更新」は、各ブロックについてステップ2で処理される変数ノードの平均個数を表し、「検査更新」は、各ブロックについてステップ1で処理される検査ノードの平均個数を意味する。これらの統計値は、100,000個の送信ブロックにわたって平均することにより得られたものである。明らかに、本発明の復号器110は、すべての態様において従来の量子化復号器よりも性能が優れている。本発明の復号器は、相対的に小さな交叉確率について特に効果的である。これは、発明者が高いSNRで符号の性能を調べるのに特に有用である。
バイナリ対称チャネル(BSC)についてアクティブ集合復号器を詳細に説明した。他のチャネル及び他の符号についてアクティブ集合復号器を構成することも可能である。これらの可能性のいくつかについて更新する必要があるメッセージの個数を制限するには、変化すると考えられるメッセージについて発生するに違いないメッセージの変化の量にしきい値を設定することが好ましい場合がある。メッセージが十分に変化する場合にのみ、すなわち、変化が所定のしきい値よりも大きい場合にのみ、そのメッセージが影響を与えるノードがアクティブ集合に追加される。変数ノードについての別の可能性は、変数ノードにおいて「信念」を追跡し、信念が十分に変化する場合にのみ、変数ノードがアクティブ集合に追加されるというものである。
本発明の実施形態は、低密度パリティ検査符号;ルビー(Luby)変換符号及びラプタ符号を含むファウンテン符号;ターボ符号;繰り返し累積符号;並びに反復信念伝搬復号器又はビットフリッピング復号器を使用して復号することができる他の関連符号を含めて、多くの異なる誤り訂正符号と共に使用することができることに留意されたい。
本発明を好ましい実施形態の例として説明してきたが、本発明の精神及び範囲内において他のさまざまな適合及び変更を行えることが理解されるべきである。したがって、本発明の真の精神及び範囲内に入るこのようなすべての変形及び変更を包含することが添付の特許請求の範囲の目的である。

Claims (13)

  1. 雑音を有するチャネルを介して受信されたシンボルから成るブロックを、誤り訂正符号から成る符号語に復号するための多段復号器であって、
    順次接続された複数のサブ復号器を備え、次段のサブ復号器は、前段のサブ復号器よりも遅い処理時間及び良好なワード誤り率を有し、前記次段のサブ復号器は、前記前段の復号器が、シンボルから成るブロックシーケンスの復号に失敗した場合にのみ実行され、最後のサブ復号器は、終了条件に達するまで実行され
    反復復号方法を使用するいずれのサブ復号器も、アクティブ集合反復復号方法を使用する、シンボルから成るブロックを復号するための多段復号器。
  2. 前記複数のサブ復号器は、順次接続された
    量子化信念伝搬(QBP)サブ復号器、
    非量子化信念伝搬(UBP)サブ復号器、及び
    混合整数線形計画(MILP)サブ復号器、
    から成る、請求項1に記載の多段復号器。
  3. 前記最後のMILPサブ復号器の実行はさらに、
    最尤符号語が見つかるまで又は或る最大個数のバイナリ制約が前記MILPサブ復号器に追加されるまでのいずれかまでバイナリ制約を反復的に追加すること、
    をさらに含む、請求項2に記載の多段復号器。
  4. 前記複数のサブ復号器の個数及び選択は、特定の低密度パリティ検査(LDPC)符号について設計される、請求項1に記載の多段復号器。
  5. 前記チャネルはバイナリ対称チャネルであり、前記アクティブ集合復号器は、反復信念伝搬復号器をさらに備え、前記反復信念伝搬復号器は、
    検査ノードの集合、
    変数ノードの集合、及び
    前記検査ノードの集合と前記変数ノードの集合との間でメッセージを渡す手段、
    を備え、前記検査ノードからの発信メッセージの集合は、前記検査ノードへの着信メッセージの集合が変化する場合にのみ更新され、前記変数ノードからの前記発信メッセージの集合は、該変数ノードへの前記着信メッセージが変化する場合にのみ更新される、
    請求項に記載の多段復号器。
  6. 前記発信メッセージの集合は、前記着信メッセージの集合の前記変化がしきい値を超えるときに更新される、請求項に記載の多段復号器。
  7. 前記更新されるノードは、ノードのアクティブ集合に追加される、請求項に記載の多段復号器。
  8. 前記チャネルはバイナリ対称チャネルであり、前記アクティブ集合復号器は反復信念伝搬復号器をさらに備え、前記反復信念伝搬復号器は、
    検査ノードの集合、及び
    変数ノードの集合、
    を備え、各変数ノードは信念を有し、前記変数ノードからの発信メッセージの集合は、前記信念が変化した場合にのみ更新され、前記検査ノードからの発信メッセージの集合は、該検査ノードへの前記着信メッセージが変化した場合にのみ更新される、請求項に記載の多段復号器。
  9. 前記変数ノードからの前記発信メッセージは、前記変数ノードの信念の前記変化がしきい値を超えた場合にのみ更新され、前記検査ノードからの前記発信メッセージの集合は、前記検査ノードへの前記着信メッセージの集合の前記変化が前記しきい値を超えた場合にのみ更新される、請求項に記載の多段復号器。
  10. 前記更新されるノードは、ノードのアクティブ集合に追加される、請求項に記載の多段復号器。
  11. 前記誤り訂正符号は、低密度パリティ検査符号、ターボ符号、ターボ積符号、繰り返し累積符号、ルビー変換符号、及びラプタ符号から成る群から選択される、請求項1に記載の多段復号器。
  12. 前記複数のサブ復号器は、順次接続された
    量子化信念伝搬(QBP)サブ復号器、
    非量子化信念伝搬(UBP)サブ復号器、及び
    線形計画サブ復号器、
    から成る、請求項1に記載の多段復号器。
  13. 雑音を有するチャネルを介して受信されたシンボルから成るブロックを、順次接続された複数のサブ復号器で、誤り訂正符号から成る符号語に復号する方法であって、該方法のステップを実行するためのプロセッサを備え、該方法は、
    第1のサブ復号器で前記シンボルから成るブロックを復号するステップ、
    前記第1のサブ復号器による前記復号が失敗した場合には、該第1のサブ復号器よりも遅い処理時間及び良好なワード誤り率を有する第2のサブ復号器で前記シンボルから成るブロックを復号するステップ、及び
    前記第2のサブ復号器による前記復号が失敗した場合には、該第2のサブ復号器よりも遅い処理時間及び良好なワード誤り率を有する第3のサブ復号器で前記シンボルから成るブロックを復号するステップ、
    を含
    反復復号方法を使用するいずれのサブ復号器も、アクティブ集合反復復号方法を使用する、シンボルから成るブロックを復号するための方法。
JP2009277535A 2009-01-27 2009-12-07 シンボルから成るブロックを復号するための多段復号器及び方法 Active JP5464990B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/360,832 2009-01-27
US12/360,832 US8261170B2 (en) 2007-06-19 2009-01-27 Multi-stage decoder for error-correcting codes

Publications (2)

Publication Number Publication Date
JP2010178328A JP2010178328A (ja) 2010-08-12
JP5464990B2 true JP5464990B2 (ja) 2014-04-09

Family

ID=42355153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009277535A Active JP5464990B2 (ja) 2009-01-27 2009-12-07 シンボルから成るブロックを復号するための多段復号器及び方法

Country Status (3)

Country Link
US (1) US8261170B2 (ja)
JP (1) JP5464990B2 (ja)
CN (1) CN101814975B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652452B1 (ko) * 2010-03-02 2016-08-30 시게이트 테크놀로지 인터내셔날 디코더와 상기 디코더를 포함하는 장치들
US8756473B1 (en) * 2010-12-23 2014-06-17 Sk Hynix Memory Solutions Inc. Solid state device coding architecture for chipkill and endurance improvement
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
WO2012097046A1 (en) * 2011-01-14 2012-07-19 Marvell World Trade Ltd. Ldpc multi-decoder architectures
US8726122B2 (en) 2011-05-11 2014-05-13 Samsung Electronics Co., Ltd. High throughput LDPC decoder
JP5574340B2 (ja) * 2011-06-09 2014-08-20 日本電信電話株式会社 線形符号におけるlp復号器及び整数解計算方法及びプログラム
US8774324B2 (en) * 2011-12-14 2014-07-08 Xilinx, Inc. Systems and methods for changing decoding parameters in a communication system
US8918705B1 (en) 2012-01-11 2014-12-23 Sk Hynix Memory Solutions Inc. Error recovery by modifying soft information
US20130339814A1 (en) * 2012-06-15 2013-12-19 Shantanu Rane Method for Processing Messages for Outsourced Storage and Outsourced Computation by Untrusted Third Parties
GB2505228B (en) * 2012-08-23 2014-12-03 Canon Kk Method and apparatus for controlling the decoding of codewords received by a linear block code pipelined decoder from an input buffer
US9612903B2 (en) * 2012-10-11 2017-04-04 Micron Technology, Inc. Updating reliability data with a variable node and check nodes
US9183095B1 (en) 2013-06-28 2015-11-10 Sk Hynix Memory Solutions Inc. Recovering from a program failure by combining write data
EP3098991B1 (en) 2014-02-11 2019-10-23 Huawei Technologies Co., Ltd. Channel decoding method and apparatus
TWI543178B (zh) * 2014-06-10 2016-07-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
GB2533639B (en) * 2014-12-24 2017-11-22 Imagination Tech Ltd Low density parity check decoder
EP3258605A4 (en) 2015-02-10 2018-03-28 Panasonic Intellectual Property Management Co., Ltd. Transmitting method, transmitting device, receiving method and receiving device
US9600364B2 (en) 2015-03-09 2017-03-21 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US10587288B1 (en) * 2015-06-04 2020-03-10 Marvell International Ltd. Systems and methods for iterative coding of product codes in nand FLASH controllers
EP3151458B1 (en) * 2015-10-02 2019-03-20 Mitsubishi Electric R&D Centre Europe B.V. A method for determining features of an error correcting code system
US10205469B2 (en) * 2016-08-11 2019-02-12 SK Hynix Inc. Low latency soft decoder architecture for generalized product codes
CN106681856B (zh) * 2016-08-23 2020-03-17 合肥兆芯电子有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN107249144B (zh) * 2017-05-12 2020-05-15 北京小鸟看看科技有限公司 多媒体文件解码的方法、多媒体播放器和播放设备
EP3451561A1 (en) * 2017-08-28 2019-03-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Hybrid decoder for coded slotted aloha
US10637511B2 (en) * 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
KR102475805B1 (ko) * 2018-08-20 2022-12-09 에스케이하이닉스 주식회사 디코더, 그것의 동작 방법 및 메모리 시스템
EP4290776A1 (en) * 2022-06-08 2023-12-13 Nokia Solutions and Networks Oy Low-density parity-check decoder with scaling to reduce power consumption

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954501B (zh) * 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
US7373585B2 (en) 2005-01-14 2008-05-13 Mitsubishi Electric Research Laboratories, Inc. Combined-replica group-shuffled iterative decoding for error-correcting codes
US7856584B2 (en) * 2005-03-30 2010-12-21 Intel Corporation Unequal error protection apparatus, systems, and methods
JP4092352B2 (ja) * 2005-11-16 2008-05-28 Necエレクトロニクス株式会社 復号装置、復号方法、及び受信装置
JP4245602B2 (ja) * 2005-11-25 2009-03-25 シャープ株式会社 デジタル復調装置、デジタル受信装置、デジタル復調装置の制御方法、デジタル復調装置の制御プログラム、及び、この制御プログラムを記録した記録媒体
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US8042029B2 (en) * 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
JP2008271312A (ja) * 2007-04-23 2008-11-06 Matsushita Electric Ind Co Ltd 無線パケット通信装置
US9128868B2 (en) * 2008-01-31 2015-09-08 International Business Machines Corporation System for error decoding with retries and associated methods
WO2009156935A1 (en) * 2008-06-23 2009-12-30 Ramot At Tel Aviv University Ltd. Using damping factors to overcome ldpc trapping sets

Also Published As

Publication number Publication date
JP2010178328A (ja) 2010-08-12
CN101814975B (zh) 2014-08-27
US20100192040A1 (en) 2010-07-29
US8261170B2 (en) 2012-09-04
CN101814975A (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
JP5464990B2 (ja) シンボルから成るブロックを復号するための多段復号器及び方法
JP5068537B2 (ja) レプリカ結合グループシャッフル反復デコーダ及びこの生成方法
Smith et al. Staircase codes: FEC for 100 Gb/s OTN
US8448050B2 (en) Memory system and control method for the same
US7607063B2 (en) Decoding method and device for decoding linear code
US20080052594A1 (en) Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
Zimmermann et al. Reduced complexity LDPC decoding using forced convergence
EP1909394A2 (en) Overlapping sub-matrix based LDPC (low density parity check) decoder
US20200059243A1 (en) Systems and methods for decoding error correcting codes
EP1835625A1 (en) Encoding and decoding of accumulate convolutional codes
KR20090126829A (ko) 반복 복호 방법과 반복 복호 장치
JPWO2003073621A1 (ja) Ldpc符号用検査行列生成方法および検査行列生成装置
US7340671B2 (en) Decoding low density parity codes
Zhang et al. Toward low LDPC-code floors: a case study
WO2004049578A1 (en) Running minimum message passing ldpc decoding
US9473173B2 (en) Method for early terminating decoding processes of serial concatenated coding and decoder using the same
Liu et al. Hard-decision bit-flipping decoder based on adaptive bit-local threshold for LDPC codes
Papaharalabos et al. Modified sum-product algorithms for decoding low-density parity-check codes
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
Lentmaier et al. Exact erasure channel density evolution for protograph-based generalized LDPC codes
Palanki et al. Iterative decoding of multiple-step majority logic decodable codes
Johnson et al. Low-density parity-check codes: design and decoding
Varnica Ldpc decoding: Vlsi architectures and implementations
Bellorado et al. Soft-input, iterative, Reed-Solomon decoding using redundant parity-check equations
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140121

R150 Certificate of patent or registration of utility model

Ref document number: 5464990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250