JP4422436B2 - Method and system for generating a low density parity check code - Google Patents

Method and system for generating a low density parity check code Download PDF

Info

Publication number
JP4422436B2
JP4422436B2 JP2003176330A JP2003176330A JP4422436B2 JP 4422436 B2 JP4422436 B2 JP 4422436B2 JP 2003176330 A JP2003176330 A JP 2003176330A JP 2003176330 A JP2003176330 A JP 2003176330A JP 4422436 B2 JP4422436 B2 JP 4422436B2
Authority
JP
Japan
Prior art keywords
nodes
ldpc
bit
code
parity check
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 - Lifetime
Application number
JP2003176330A
Other languages
Japanese (ja)
Other versions
JP2004064756A (en
Inventor
ムスタファ・エロズ
フェン−ウェン・スン
リン−ナン・リー
Original Assignee
ディーティーブイジー・ライセンシング、インコーポレイテッド
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
Priority claimed from US10/353,230 external-priority patent/US20040019845A1/en
Application filed by ディーティーブイジー・ライセンシング、インコーポレイテッド filed Critical ディーティーブイジー・ライセンシング、インコーポレイテッド
Publication of JP2004064756A publication Critical patent/JP2004064756A/en
Application granted granted Critical
Publication of JP4422436B2 publication Critical patent/JP4422436B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/36Modulator circuits; Transmitter circuits
    • 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
    • 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
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] 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/2906Coding, 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 using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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
    • 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/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • 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/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • 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/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/18Phase-modulated carrier systems, i.e. using phase-shift keying
    • H04L27/20Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H40/00Arrangements specially adapted for receiving broadcast information
    • H04H40/18Arrangements characterised by circuits or components specially adapted for receiving
    • H04H40/27Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95
    • H04H40/90Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95 specially adapted for satellite broadcast receiving
    • 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/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

An approach for generating a structured Low Density Parity Check (LDPC) codes is provided. Structure of the LDPC codes is provided by restricting a certain part of the parity check matrix to be lower triangular, hence enabling a very simple encoding method that does not require the generator matrix of the code. The approach can also exploit the unequal error protecting capability of LDPC codes on transmitted bits to provide extra error protection to more vulnerable bits of high order modulation constellations (such as 8-PSK (Phase Shift Keying)). Additionally, an efficient decoding scheme is described where both bit nodes and check nodes are partitioned into groups. The edge values associated with each of the group can be placed together in memory simultaneously for bit nodes groups and check nodes groups. This architecture allows the multiple edges to be fetched from memory at a single clock cycle. A method of designing the parity check matrix that ensures the fetching of all the adjacent edges for a group of bit nodes or check nodes in a few clock cycles is described. The above approach is particularly applicable to bandwidth constrained communication systems requiring high data rates. <IMAGE>

Description

【0001】
【発明の属する技術分野】
本発明は通信システム、特に、コード化されたシステムに関する。
【0002】
【発明の参考とする文献】
本出願は、2002年7月26日出願の米国プロビジョナル特許出願第60/398,760号明細書(発明の名称“Code Design and Implementation Improvements for Low Density Parity Check Codes”)と、2002年8月15日出願の米国プロビジョナル特許出願第60/403,812号明細書(発明の名称“Power and Bandwidth Efficient Modulation and Coding Scheme for Direct Broadcast Satellite and Broadcast Satellite Communications”)と、2002年10月25日出願の米国プロビジョナル特許出願第60/421,505号明細書(発明の名称“Method and System for Generating Low Density Parity Check Code”)と、2002年10月29日出願の米国プロビジョナル特許出願第60/421,999号明細書(発明の名称“Satellite Communications System Utilizing Low Density Parity Check Codes”)と、2002年11月4日出願の米国プロビジョナル特許出願第60/423,710号明細書(発明の名称“Code Design and Implementation Improvements for Low Density Parity Check Codes”)の35 U.S.C.119(e) による早期出願日の有効性を請求している。
【0003】
【従来の技術】
通信システムは雑音の多い通信チヤンネルを通って信頼のできる通信を確保するためにコード化を使用している。これらの通信チヤンネルは固定容量を有しており、それは理論的上限(シャノン限界として知られている)を規定しているある所定の信号対雑音比(SNR)におけるシンボル当たりのビットによって表現される。その結果、コード化設計はこのシャノン限界に近いレートを達成することを目的としている。シャノン限界に近いこのようなコードのクラスの1つはパリティ(LDPC)コードである。
【0004】
伝統的に、LDPCコードは多くの欠点のために広く展開されていない。1つの欠点はLDPCコード化技術が非常に複雑であることである。その発生器マトリックスを使用するLDPCコードのコード化は、非常に大きく疎(sparse)でないマトリックスを記憶する必要がある。さらにLDPCコードは実効的に大きいブロックを必要とし、その結果、LDPCコードのパリティチェックマトリックスが疎であっても、これらのマトリックスの記憶について問題がある。構成上の観点から、記憶の問題が実際にLDPCコードが広がらない重要な理由の1つである。LDPCコード実行に対する重要な挑戦はデコーダ中のいくつかの処理エンジン(ノード)間の接続ネットワークをどのように得るのかに係っている。
【0005】
【発明が解決しようとする課題】
それ故、簡単なコード化およびデコード処理を使用するLDPCコード通信システムが必要とされている。また、大きい複雑性を導入することなく高いデータレートをサポートする効率のよいLDPCコードを使用することが必要とされている。また、LDPCエンコーダおよびデコーダの性能を改善することも必要である。また、LDPCコード化を行なうための記憶装置の必要な容量を最小にすることも必要である。さらに、LDPCデコーダ中の処理ノード間の通信を簡単にする方式が必要とされる。
【0006】
【課題を解決するための手段】
これらおよびその他の要求は本発明によって解決される。本発明よれば構成された低密度パリティチェック(LDPC)コードを生成する方法が提供される。LDPCコードの構造は、パリティチェックマトリックスの部分を低い三角形に制限し、および、またはデコーダの処理ノード間の通信が非常に簡単になるようにその他の要求を満足させることにより与えられる。また、その方法は、高次の変調の立体配座(constellation) (8−PSK[位相シフトキーイング])の被害を受けやすいビットに対して余分のエラー保護を与えるように送信されたビットにおけるLDPCコードの均等ではないエラー保護能力を生成することができる利点がある。さらに、パリティチェックマトリックスは予め記憶された定数およびビットワイズ動作を使用するアルゴリズムにすることができる。
【0007】
本発明の1特徴によれば、低密度パリティチェック(LDPC)コードを発生する方法が提供される。その方法は、受信された入力メッセージを、LDPCコードの発生器マトリックスを使用しないでLDPCコードのパリティチェックマトリックスだけを使用してLDPCコードワードに変換し、LDPCコードワードを出力する。
【0008】
本発明の別の特徴によれば、線形ブロックコードのコード化をサポートする方法が提供される。その方法は、高次の信号の立体配座ビットを線形ブロックコードに対応するパリティチェックマトリックスのビットノードにマップするステップを含んでいる。信号の立体配座の被害を受けやすい弱いビットは少なくとも3つのエッジを有するビットノードにマップされる。
【0009】
本発明の別の特徴によれば、線形ブロックコードのコード化をサポートする方法が提供される。その方法は、高次の信号の立体配座ビットを線形ブロックコードに対応するパリティチェックマトリックスのビットノードにマップするステップを含んでいる。信号の立体配座の弱いビットがもっと信頼性の高いビットより少なくないエッジ数を有するビットノードにマップされる。
【0010】
本発明の別の特徴によれば、低密度パリティチェック(LDPC)コードを発生する方法が提供され、その方法は、受信された入力メッセージを、LDPCコードの発生器マトリックスを使用しないでLDPCコードのパリティチェックマトリックスだけを使用してLDPCコードワードに変換するステップを含んでいる。この方法は、外部コードをLDPCコードワードに供給し、供給された外部コードを有するLDPCコードワードを出力する。
【0011】
本発明のさらに別の特徴によれば、低密度パリティチェック(LDPC)コードを発生する方法が提供される。その方法は、メモリ中で互いに隣接しているビットノードのグループに対してエッジの内容を配置する。また、同時にメモリ中で互いに隣接しているチェックノードのグループに対してエッジの内容を配置する。
【0012】
本発明のさらに別の特徴によれば、低密度パリティチェック(LDPC)コードを発生するシステムが提供され、そのシステムは、受信された入力メッセージを、LDPCコードの発生器マトリックスを使用しないでLDPCコードのパリティチェックマトリックスだけを使用してLDPCコードワードに変換する手段と、LDPCコードワードを出力する手段とを具備している。
【0013】
本発明のさらに別の特徴によれば、低密度パリティチェック(LDPC)コードを処理する方法が提供される。その方法は、受信されたLDPCコードをLDPCコードデコーダによってデコードする。また、その方法は毎回またはいくつかのLDPCコードデコーダの反復動作後にLDPCコードデコーダ信号の立体配座ビットメトリック値を反復的に再生する。
【0014】
本発明のさらに別の特徴、観点、および利点は、多数の特定の実施形態および構成を本発明を実行するときに期待される最良のモードを含めて例示する以下の詳細な説明により容易に明白となるであろう。本発明はまた本発明の技術的範囲を逸脱することなくその他の異なった実施形態が可能であり、そのいくつかの詳細は主々の明白な観点から変更可能である。したがって、図面および明細書の記載は単なる例示であって本発明の技術的範囲を制限するものではない。
【0015】
【発明の実施の形態】
構成された低密度パリティチェック(LDPC)コードを効率よく生成するシステム、方法、およびソフトウエアについて説明する。以下の説明において、本発明の理解を容易にするために説明のために多くの特定の詳細な説明が行われている。しかしながら、本発明はこれらの特定の詳細な構成およびそれと等価な装置によらないで実現することが可能であることは当業者には明白である。別の例において、よく知られた構造および装置は本発明の説明を不必要に不明瞭にすることを避けるためにブロック図の形態で示されている。
【0016】
図1は、本発明による低密度パリティチェック(LDPC)コードを使用するように構成された通信システムのブロック図である。デジタル通信システム100 は送信機101 を含み、それは通信チヤンネル103 を通って受信機105 に送る信号波形を発生する。このディスクリートな通信システム100 では、送信機101 はメッセージソースを有し、そのメッセージソースは可能なメッセージのディスクリートなセットを生成し、各可能なメッセージは対応する信号波形を有している。これらの信号波形は通信チヤンネル103 によって減衰され、或いはそうでなければ変更される。雑音チヤンネル103 に対抗するためにLDPCコードが使用される。
【0017】
送信機101 によって発生されたLDPCコードは性能損失を生じることなく高速の通信を可能にする。送信機101 から出力されたこれらの構成されたLDPCコードは、変調方式(例えば8−PSK)によるチヤンネルエラーを受けやすいビットノードに少数のチェックノードの割当てを避ける。
【0018】
このようなLDPCコードは並列化されたデコードアルゴリズムを有し(ターボコードと異なる)、それは加算、比較、およびテーブル検索のような簡単な演算を含む利点がある。さらに、注意深く設計されたLDPCコードはエラーフロアの兆候を有しない。
【0019】
本発明の1実施形態では、送信機101 は比較的簡単なコード化技術を使用してパリティチェックマトリックスに基づいてLDPCコードを発生し(それはデコード中の効率のよいメモリアクセスを容易にする)、受信機105 と通信する。送信機101 はブロック長が十分な大きさを与える場合には、連結されたターボ+RS(リード・ソロモン)コードに代わってLDPCコードを使用する。
【0020】
図2は、図1のシステムの例示的な送信機のブロック図である。送信機200 はLDPCエンコーダ203 を備え、それは情報ソース201 から入力を受取り、受信機105 でエラー補正処理を行うために適している高い冗長度のコード流を出力する。情報ソース201 はディスクリートなアルファベットXからkの信号を発生する。LDPCコードはパリティチェックマトリックスにより特定される。他方、LDPCコードの符号化は通常発生器マトリックスの特定を必要とする。ガウスの消去法を使用してパリティチェックマトリックスから発生器マトリックスを得ることが可能である場合でも、結果的に得られたマトリックスは疎ではなく、大きい発生器マトリックスの記憶は複雑になる。
【0021】
エンコーダ203 は簡単なコード化技術を使用して変調器205 に対してアルファベットYから信号を発生する。そのコード化技術はパリティチェックマトリックスに構造を与えることによりパリティチェックマトリックスだけを使用する。特に、マトリックスのある所定の部分を三角形であるように制限することによってパリティチェックマトリックスに制限が与えられる。そのようなパリティチェックマトリックスの構成は図6を参照して後で詳細に記載する。そのような制限の結果として、性能の損失は無視できる程度となり、それ故、魅力的なトレード・オフを与える。
【0022】
変調器205 はエンコーダ203 からのコード化されたメッセージを送信アンテナ207 へ送られる信号波形にマップし、送信アンテナ207 はこれらの信号波形を通信チヤンネル103 で放射する。したがってコード化されたメッセージは変調されテ送信アンテナ207 に分配される。送信アンテナ207 からの送信は以下説明するように受信機に伝搬する。
【0023】
図3は、図1のシステムの例示的な受信機のブロック図である。受信機側では受信機300 は送信機200 から受信された信号の復調を行う復調器301 を含んでいる。これらの信号は受信アンテナ303 で受信され、復調される。復調後、受信された信号はデコーダ305 に転送され、そこで、ビットメトリック発生器307 と共にメッセージX' を発生することによりもとのソースメッセージを再構成しようと試みる。グレーでないマッピングにより、図10に詳細に示されているようにデコード処理中にビットメトリック発生器307 はデコーダ305 と確率情報を前後に(反復的に)交換する。その代りに、グレーマッピングが使用される場合には(本発明の1実施形態にしたがって)、ビットメトリック発生器の通過は1回で十分であるが、ビットメトリック発生器が各LDPCデコーダの反復動作後に制限された性能の改善を生成する可能性があり、この方法は図11に詳細に示されている。本発明により提供された利点を認識するために、図4を参照にしてLDPCコードがどのように発生されるを検査することが有効である。
【0024】
図4は、本発明の1実施形態によるスパースパリティチェックマトリックスの説明図である。LDPCコードは、スパースパリティチェックマトリックスH(n-k)xn を有する長い線形のブロックコードである。典型的にブロック長nは数千から数万ビットの範囲である。例えば、長さn=8およびレート1/2に対するLDPCコードに対するパリティチェックマトリックスは図4に示されている。同じコードは図5の2部分により表されるものと等価である。
【0025】
図5は図4のマトリックスのLDPCコードの2部分のグラフである。パリティチェックの式は、各チェックノードに対して、全ての隣接するビットのノードの合計(GF[Galoisフィールド][2] にわたる)はゼロに等しい。図に示されるように、ビットノードはグラフの左側を占め、予め定められた関係にしたがって1以上のチェックノードと関係している。例えば、チェックノードm1 に対応して、ビットノードに関して、次の式
1 +n4 +n5 +n8 =0 が存在する。
【0026】
受信機303 に戻ると、LDPCデコーダ305 はメッセージパスデコーダと考えられ、したがってデコーダ305 はビットノードの値を発見することを目的としている。この作業を行うために、ビットノードとチェックノードは互いに反復的に通信する。この通信の性質について以下説明する。
【0027】
チェックノードからビットノードへ、各チェックノードは他の隣接するビットノードから来る情報に基づいてそのビットノードの値に関する評価(“意見”)を隣接するビットノードへ与える。例えば、上記の例において、n4 、n5 、n8 の合計がm1 に対して0のように見える場合には、m1 はn1 に対する指示であり、n1 のその値は0であるべきであると信じられる(n1 +n4 +n5 +n8 =0であるからである)。他方、m1 はn1 に対する指示であり、n1 のその値は1であるべきであると信じられる。さらに、ソフト決定デコードに対して、信頼性の測定が付加される。
【0028】
ビットノードからチェックノードへ、各ビットノードは他の隣接するチェックノードから来るフィードバックに基づいてその自分の値に関する評価を隣接するチェックノードへ送る。上記の例において、n1 はただ2つの隣接するチェックノードm1 およびm3 を有している。n1 の値が恐らく0であることをm3 からn1 へ来るフィードバックが示した場合には、n1 はm1 にn1 の自己の値の評価が0であることを通知する。ビットノードが2より多くの隣接するチェックノードを有する場合に対して、ビットノードは、そのチェックノードに対する決定を報告する前に、それが通信する他の隣接するチェックノードから来るフィードバックについての主投票(ソフト決定)を行う。上記のプロセスは、全てのビットノードが正しいと考えられるまで反復され(すなわち、全てのパリティチェックの式が満足される)か、或いは予め定められた反復の最大数に到達するまで反復され、それによってデコードの故障が宣言される。
【0029】
図6はスパースパリティチェックマトリックスのサブマトリックスを示す図であり、それにおいて、サブマトリックスは本発明の1実施形態による低い三角形領域に制限されたパリティチェック値を有している。前述のように、エンコーダ203 (図2の)はパリティチェックマトリックスの低い三角形領域の値を制限することによって簡単なコード化技術を使用することができる。本発明の1実施形態によれば、パリティチェックマトリックスに与えられる制限は次のような形態である。
(n-k)xn =[A(n-k)xk (n-k)x(n-k)
ここで、Bは低い三角形である。
【0030】
任意の情報ブロックi=(i0 ,i1 ,…,ik-1 )がHC T =0を使用し、コードワードc=(i0 ,i1 ,…ik-1 ,p0 ,p1 ,…,pn-k-1 )にコード化され、パリティビットを解くために反復される。例えば、
000 +a011 +…+a0,k-1 k-1 +p0 =0 p0 を解く
100 +a111 +…+a1,k-1 k-1 +b100 +p1 =0 p1 を解く
2 ,p3 ,…,pn-k-1 に対しても同様である。
【0031】
図7は制限されないパリティチェックマトリックス(Hマトリックス)と図6の制限されたHマトリックスを利用するコード間の特性を示すグラフである。グラフは2つのLDPCコード間の比較である。:すなわち、1つは一般的なパリティチェックマトリックスによるものであり、他方は、簡単なコード化のために低い三角形に制限したパリティチェックマトリックスよるものである。このシミュレーションに対しては、変調方式は8−PSKである。性能損失は0.1dB以内である。それ故、性能損失は低い三角形のHマトリックスの制限に基づいて無視される。一方、コード化技術の簡単化における利益は可成りのものである。したがって、低い三角形または行と列の少なくとも一方の交換された上部三角形に等価な任意のパリティチェックマトリックスが同じ目的に対して使用されることができる。
【0032】
図8の(A)および(B)はそれぞれグレーでない8−PSK変調方式およびグレーの8−PSK変調方式を示す図であり、それぞれは図1のシステムで使用されることができる。図8の(A)のグレーでない8−PSK変調方式は図3の受信機で使用されて非常に低いフレーム消去レート(FER)を必要とするシステムを提供することができる。この要求はまた図8の(B)に示されているグレー8−PSK変調方式を使用し、ボーズ(Bose),チャウドリ(Chaudhuri) およびホッケンゲム(Hocquenghem) (BCH)のコード、ハミング、マタハリードソロモン(RS)コードのような外部コードを使用することにより満足されることができる。
【0033】
その代りに、図8の(B)のグレーの8−PSK変調方式は外部コードにより行われることができる。この方式では、LDPCデコーダ305 (図3)と8−PSK変調を使用することができるビットメトリック発生器307 との間の反復は必要ない。外部コードが存在しないとき、グレーラベリングを使用するLDPCデコーダ305 は図9に示され、以下説明されるように以前のエラーフロアを示している。
【0034】
図9は、図8の(A)および(B)のグレーとグレーでないラベリングを使用するコード間の性能を示すグラフである。エラーフロアは、LDPCデコーダ305 からの正確なフィードバックを仮定し、8−PSKビットメトリックの再生は既知の2つのビットを有する2つの8−PSKシンボルがグレーでないラベリングによりさらに離れるためにグレーでないラベリングによりさらに正確になることによって生じる。これは高い信号対雑音比(SNR)で動作するときに同様に認められる。それ故、グレー或いはグレーでないラベリングを使用する同じLDPCコードのエラー漸近線が同じスロープを有している(すなわち、互いに平行)場合でも、グレーでないラベリングのものは任意のSNRで低いFERを通過する。
【0035】
他方で、非常に低いFERを必要としないシステムに対して、LDPCデコーダ305 と8−PSKビットメトリック発生器307 との間の何らかの反復のないグレーラベリングはより適切である。それは毎回のLDPCデコーダの反復の前の8−PSKビットメトリックの再生は付加的な複雑性を生じるからである。さらに、グレーラベリングが使用されるとき、LDPCデコーダの反復の前の8−PSKビットメトリックの再生はほんの少しの性能の改善を生じる。前述したように、反復なしのグレーラベリングは外部コードの提供が行われる場合には非常に低いFERを必要とするシステムに対して使用されることができる。
【0036】
グレーラベリングとグレーでないラベリングとの間の選択はまたLDPCコードの特性に依存している。典型的に高い程度のビットまたはチェックノードのほうがグレーラベリングではよい。それは、高い程度のノードに対しては、LDPCデコーダ305 から8−PSK(または類似の高次変調)ビットメトリック発生器307 への最初のフィードバックはグレーではないラベリングによりより多く劣化されるからである。
【0037】
8−PSK変調(または類似の高次変調)が2進デコーダによって利用されるとき、1つのシンボルの3(またはそれより多くの)ビットが“等しい雑音”で受信されない。たとえばグレーの8−PSKラベリングにより、シンボルの第3のビットは他の2つのビットよりもデコーダに対して雑音が多いと考えられる。それ故、LDPCコード設計は8−PSKシンボルの“雑音が多い”第3のビットにより表されるビットノードに小さい数のエッジを割当てない。それ故それらのビットは2回ペナルティを与えられることはない。 図10は本発明の1実施形態によるグレーではないマッピングを使用するLDPCデコーダの動作のフローチャートである。この方法では、LDPCデコーダとビットメトリック発生器は次々に反復動作する。この例では、8−PSK変調が使用されるが、同一の原理は他の高次の変調方式にも適用される。このシナリオでは、変調器301 は距離ベクトルdを出力し、ビットメトリック発生器307 に対する受信された雑音の多いシンボル点と8−PSKシンボル点との間の距離を示し、それによってベクトル成分は以下のようになることが想定される。
i =−(ES /N0 ){(rx −si,x 2 +(ry −si,y 2
i=0,1,…7
8−PSKビットメトリック発生器307 は演繹的(アプリオリ)確率情報と経験的(アポステリオリ)確率情報を交換するためにLDPCデコーダ305 と通信し、これはそれぞれuとaで表される。即ちベクトルuとaはそれぞれコード化されたビットのログ尤度比の演繹的および経験的確率を表す。
【0038】
8−PSKビットメトリック発生器307 は以下のように3ビットの各グループの演繹的尤度比を発生する。最初に、コード化されたビットの外因的な情報が得られる。
【0039】
j =aj −uj j=0,1,2
次に、8−PSKシンボル確率pi i=0,1,…,7が決定される。
* j =−f(0,ej ) j=0,1,2
ここでf(a,b)=max(a,b)+LUTf (a,b)であり、
LUTf (a,b)=ln(1+e - a-b )である。
* j =yj +ej j=0,1,2
* 0 =x0 +x1 +x2 4 =y0 +x1 +x2
1 =x0 +x1 +y2 5 =y0 +x1 +y2
2 =x0 +y1 +x2 6 =y0 +y1 +x2
3 =x0 +y1 +y2 7 =y0 +y1 +y2
次に、ビットメトリック発生器307 は以下のようにLDPCデコーダ305 への入力として、コード化されたビットの演繹的なログ尤度比を決定する。
【数1】

Figure 0004422436
2つよりも多くの変数が帰納的に評価されることができることに注意し、例えば、
f(a,b,c)=f(f(a,b),c)
グレーではないマッピングを使用するLDPCデコーダ305 の動作について説明する。ステップ1001では、LDPCデコーダ305 は次式にしたがって(および図12のAに示されているように)第1の反復前にコード化されたビットのログ尤度比vを初期化する。
n ki=un 、n=0,1,…,N−1、i=1,2,…,deg(ビットノードn)
ここでv n kiはビットノードnからその隣接するチェックノードki へ送られるメッセージを示し、un はビットnの復調器出力を示し、Nはコードワードのサイズである。
【0040】
ステップ1003では、チェックノードkは更新され、それによって入力vは出力wを生成する。図12のBに示されるように、dc の隣接するビットノードからチェックノードkへ入来するメッセージはvn1 k ,vn2 k ,…v ndc k により示される。目的はチェックノードkからdc の隣接するビットノードへ戻る出力メッセージを計算することである。これらのメッセージはw k n1,w k n2,…,w k ndc により示され、ここで、
k ni
g(vn1 k ,vn2 k ,…,vni-1 k ,vni+1 k ,…,vndc k
関数g( )は以下のように規定される。
g(a,b)=sign(a)×sign(b)×{min(|a|,|b|)}+LUTg (a,b)
ここで、
LUTg (a,b)=ln(1+e - a+b )−ln(1+e - a-b
である。関数fと類似して、2よりも多数の変数を有する関数gは帰納的に評価されることができる。
【0041】
次に、デコーダ305 はステップ1205で経験的確率情報(図12のC)を出力し、それによって、
【数2】
Figure 0004422436
ステップ1007で、全てのパリティチェックの式が満足されるか否かが決定される。これらのパリティチェックの式が満足されないならば、デコーダ305 はステップ1011のように、8−PSKビットメトリックとチャンネル入力un を再度導く。次に、ステップ1013のようにビットノードが更新される。図15に示されているように、チェックノードに隣接するdv からビットノードnへ入来するメッセージはwk1 n 、wk2 n 、…w kdv n により示される。ビットノードnからの出力メッセージはdv の隣接するチェックノードへ計算して戻され、このようなメッセージはv n k1、v n k2、v n kdv により示され、以下のように計算される。
【0042】
【数3】
Figure 0004422436
ステップ1009では(全てのパリティチェックの式が満足される場合)デコーダ305 はハード決定を出力する。
【数4】
Figure 0004422436
前述の方法はグレーではないレベリングが使用されるときに適切である。一方、グレーレベリングが実行されるときには、図11のプロセスが実行される。
【0043】
図11は、本発明の1実施形態にしたがってグレーのマッピングを使用している図3のLDPCデコーダの動作のフローチャートである。グレーレベリングが使用されるとき、それぞれのLDPCデコーダ反復後に再生されたビットメトリックが公称上の性能改良をもたらすので、ビットメトリックはLDPCデコーダの前に一度だけ発生されることが有効である。図10のステップ1001および1003のように、ステップ1101および1103でコード化されたビットのログ尤度比vの初期化が実行され、チェックノードが更新される。次に、ビットノードnはステップ1105のように更新される。その後、デコーダはアポステリオリ確率情報を出力する(ステップ1107)。ステップ1109では、全てのパリティチェックの式が満足されるか否かの決定が行われ、イエスならば、デコーダはハード決定を出力する(ステップ1111)。ノーであるならば、ステップ1103−1107が反復される。
【0044】
図13乃至15は本発明の種々の実施形態にしたがって発生されたLDPCコードのシミュレーション結果を示したグラフである。特に、図13乃至15は高次の変調と、3/4(QPSK、1.485ビット/シンボル)、2/3(8−PSK、1.980ビット/シンボル)、5/6(8−PSK、2.474ビット/シンボル)のコードレートにおけるLDPCコードの特性を示している。
【0045】
2つの通常の方法がチェックノードとビットノードとの間の相互接続を実現するために存在し、それぞれ(1)全体的な並列方法、(2)部分的な並列方法である。全体的な並列アーキテクチャでは、全てのノードとそれらの相互接続が物理的に構成される。このアーキテクチャの利点は速度である。
【0046】
しかしながら、全体的な並列アーキテクチャは全てのノードとそれらの接続を実現するために大きな複雑性を含んでいる。それ故、全体的な並列アーキテクチャでは、より小さいブロックサイズが複雑性を減少するために必要とされる。その場合、同じクロック周波数に対しては、スループットの比例した減少と幾らかのFER対Es/No性能の劣化が結果として生じる。
【0047】
LDPCコードを構成する第2の方法は、ノードの総数のサブセットだけを物理的に実現し、コードの全ての“機能的”ノードを処理するために限定された数の“物理的”ノードだけを使用することである。LDPCデコーダの動作は非常に簡単に行われることができ、並列に動作されることができるが、設計上のさらなる挑戦は、通信が“ランダムに”分配されたビットノードとチェックノード間で設定される方法の開発である。図3のデコーダ305 は、本発明の1実施形態によれば、この問題を表面的にランダムコードを実現するために構成された方法でメモリをアクセスすることにより解決する。この方法を図16および17に関して説明する。
【0048】
図16および17は、本発明の1実施形態にしたがって、LDPCコード化のランダム性を実現するために構成されたアクセスをサポートするように組織されているメモリの上部および下部エッジをそれぞれ示している。構成されたアクセスはパリティチェックマトリックスの発生に焦点を合わせることにより正確なランダムコードの性能に妥協せずに実現されることができる。通常、パリティチェックマトリックスはチェックノードとビットノードとの接続により特定されることができる。例えば、ビットノードは392のグループに分割される(392は例示の目的で示されている)。さらに、例えば程度3の第1のビットノードに接続されるチェックノードがa、b、cの符号を付けられると仮定すると、第2のビットノードに接続されるチェックノードはa+p、b+p、c+pの符号を付けられ、第3のビットノードに接続されるチェックノードはa+2p、b+2p、c+2pの符号を付けられる。392のビットノードの次のグループでは、第1のビットノードに接続されるチェックノードはa、b、cとは異なり、そのためpの適切な選択では、全てのチェックノードは同一の程度を有する。ランダムな検索がフリー定数(free constant )にわたって行われ、それによって結果的なLDPCコードはサイクル−4およびサイクル−6フリーである。
【0049】
前述の構成はチェックノードおよびビットノード処理中のメモリアクセスを容易にする。2部分グラフのエッジの値はランダムアクセスメモリ(RAM)のような記憶媒体に記憶されることができる。チェックノードおよびビットノード処理中の正確なランダムなLDPCコードに対して、エッジの値はランダムな方法で1つずつアクセスされる必要があることに注意する。しかしながら、このようなアクセス方式は高いデータレートのアプリケーションに対しては非常に遅くなる。図16および17のRAMは1つの方法によって1クロックサイクルにおいて関連するエッジの大きいグループで組織され、したがってこれらの値は“共に”メモリに位置付けられる。実際には、正確なランダムコードでさえも、チェックノードのグループ(およびそれぞれのビットノード)では、関連するエッジはRAM中で相互に隣接して位置されることができるが、ビットノードのグループ(それぞれのチェックノード)に隣接する関連するエッジはRAM中にランダムに分散されることが観察される。それ故、本発明では“トゲザネス”(togetherness)はパリティチェックマトリックス自体の設計から生じる。即ち、チェックマトリックス設計はビットノードとチェックノードのグループに対する関連するエッジがRAM中で共に同時に位置されることを確実にする。
【0050】
図16および17で見られるように、各ボックスはエッジの値を含んでおり、これは多数のビット(例えば6)である。エッジRAMは本発明の1実施形態にしたがって2つの部分、即ち上部エッジRAM(図16)と下部エッジRAM(図17)とに分割される。下部エッジRAMは例えば程度2のビットノードとチェックノードとの間にエッジを含んでいる。上部エッジRAMは2よりも大きい程度のビットノードとチェックノードとの間にエッジを含んでいる。それ故、チェックノード毎に、2つの隣接エッジは下部RAMに記憶され、残りのエッジは上部エッジRAMに記憶される。
【0051】
前述の例の説明を続けると、392のビットノードと392のチェックノードのグループは一度の処理で選択される。392のチェックノード処理では、qの連続的な行が上部エッジRAMからアクセスされ、2つの連続的な行が下部エッジRAMから選択される。この例では、q+2は各チェックノードの程度である。ビットノード処理では、392のビットノードのグループが程度2を有するならば、それらのエッジは下部エッジRAMの2つの連続する行中に位置される。ビットノードが程度d>2を有するならば、それらのエッジは上部エッジRAMの幾つかのd行に位置される。これらのd行のアドレスは読取専用メモリ(ROM)のような不揮発性メモリ中に記憶されることができる。1つの行のエッジは392のビットのノードの第1のエッジに対応し、別の行のエッジは392ビットのノードの第2のエッジに対応する。さらに各行に対しては、392のグループの第1のビットノードに属すエッジの列インデックスもまたROMに記憶されることができる。第2、第3等のビットノードに対応するエッジは“ラップアラウンド”方法でスタート列のインデックスにしたがう。例えば行のj番目のエッジが第1のビットノードに属すならば、(j+1)番目のエッジは第2のビットノードに属し、(j+2)番目のエッジは第3のビットノードに属し、(j−1)番目のエッジは第392のビットノードに属している。
【0052】
(図16および17に示されている)前述の組織により、メモリアクセスの速度はLDPCコード化中に非常に強化される。
【0053】
図18は本発明にしたがって実施形態が構成されることができるコンピュータシステム1500を示している。このコンピュータシステム1500は情報を通信するためのバス1501またはその他の通信機構と、情報を処理するためにバス1501に結合されたプロセッサ1503とを含んでいる。コンピュータシステム1500はまたランダムアクセスメモリ(RAM)等の主メモリ1505、またはプロセッサ1503により行われる情報および命令を記憶するためにバス1501に結合されている他のダイナミックな記憶装置を含んでいる。主メモリ1505はまたプロセッサ1503により行われる命令を実行するときに一時的に変数または他の中間情報を記憶するために使用されることもできる。コンピュータシステム1500はさらにプロセッサ1503の静止情報および命令を記憶するためにバス1501に結合される読取専用メモリ(ROM)1507またはその他の静的記憶装置を含んでいる。磁気ディスクまたは光ディスク等の記憶装置1509は付加的に情報および命令を記憶するためにバス1501へ結合される。
【0054】
コンピュータシステム1500は情報をコンピュータユーザへ表示するためにバス1501により、陰極線管(CRT)、液晶ディスプレイ、アクチブマトリックスディスプレイ、またはプラズマディスプレイ等のディスプレイ1511へ結合されてもよい。文字数字およびその他のキーを含んでいるキーボードのような入力装置1513はプロセッサ1503へ情報およびコマンド選択を通信するためにバス1501へ結合されている。別のタイプのユーザ入力装置は指令情報およびコマンド選択をプロセッサ1503へ通信し、ディスプレイ1511上のカーソル移動を制御するためにマウス、トラックボール、またはカーソル指令キー等のカーソル制御装置1515である。
【0055】
本発明の1実施形態にしたがって、LDPCコードの発生は主メモリ1505中に含まれている命令の構成を実行するプロセッサ1503に応答してコンピュータシステム1500により行われる。このような命令は別のコンピュータの読取可能な媒体から記憶装置1509のような主メモリ1505に読取られることができる。主メモリ1505中に含まれる命令の構成の実行はプロセッサ1503にここで説明されているプロセスステップを実行させる。多処理構成において1以上のプロセッサは主メモリ1505中に含まれている命令を実行するために使用されてもよい。別の実施形態では、ハードワイヤ回路が本発明の実施形態を構成するためにソフトウェア命令の代わりにまたはそれと組合わせて使用されてもよい。したがって、本発明の実施形態はハードウェア回路のとソフトウェアの任意の特定の組合わせに限定されない。
【0056】
コンピュータシステム1500はまたバス1501に結合された通信インターフェース1517を含んでいる。通信インターフェース1517はローカルネットワーク1521に接続されるネットワークリンク1519に結合されて2方向データ通信を行う。例えば通信インターフェース1517はデジタル加入者ライン(DSL)カードまたはモデム、統合サービスデジタル網(ISDN)カード、ケーブルモデムまたはデータ通信接続を対応するタイプの電話線に行う電話機のモデムであってもよい。別の例として、通信インターフェース1517は互換性のあるLANに対してデータ通信接続を行うために(例えばイーサネット(商標名)または非同期転送モデル(ATM)ネットワーク用の)構内ネットワーク(LAN)カードであってもよい。無線リンクもまた構成されることができる。任意のこのような構成では、通信インターフェース1517は種々のタイプの情報を表すデジタルデータ流を伝送する電気的、電磁的または光信号を送信し、受信する。さらに、通信インターフェース1517はユニバーサルシリアルバス(USB)インターフェース、PCMCIA(パーソナルコンピュータメモリカード国際協会)インターフェース等のような周辺インターフェース装置を含むことができる。
【0057】
ネットワークリンク1519は典型的に1以上のネットワークを通してデータ通信を他のデータ装置へ提供する。例えばネットワークリンク1519はローカルネットワーク1521を介してホストコンピュータ1523への接続を行い、これはネットワーク1525(例えば広域網(WAN)または“インターネット”として普通に呼ばれているグローバルパケットデータ通信ネットワーク)またはサービスプロバイダにより動作されるデータ装置への接続を行う。構内ネットワーク1521およびネットワーク1525の両者は情報および命令を伝送するために電気的、電磁的または光信号を使用する。種々のネットワークを通る信号およびネットワークリンク1519上および通信インターフェース1517を通る信号はデジタルデータをコンピュータシステム1500により通信し、情報および命令を伝送する例示的な形態は搬送波である。
【0058】
コンピュータシステム1500は、ネットワーク、ネットワークリンク1519、通信インターフェース1517を通してメッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ(図示せず)はネットワーク1525、構内ネットワーク1521、通信インターフェース1517を通して本発明の1実施形態を実行するためのアプリケーションプログラムに属すリクエストされたコードを送信する。プロセッサ1503は受信しながら送信されたコードを実行および/または後に実行するために記憶装置159 または他の不揮発性記憶装置に記憶する。この方法では、コンピュータシステム1500は搬送波の形態のアプリケーションコードを獲得する。
【0059】
ここで使用される用語“コンピュータの読取可能な媒体”は実行のためプロセッサ1503へ命令を与えることに関係する任意の媒体を示している。このような媒体は多くの形態を取り、不揮発性媒体、揮発性媒体、伝送媒体を含むがそれに限定されない。不揮発性媒体は、例えば記憶装置1509のような光学または磁気ディスクを含んでいる。揮発性媒体は主メモリ1505のようなダイナミックメモリを含んでいる。伝送媒体はバス1501を構成しているワイヤを含めて、同軸ケーブル、銅線、または光ファイバを含んでいる。伝送媒体はまた無線周波数(RF)および赤外線(IR)データ通信中に発生されるような音響、光または電磁波の形態を取ることができる。コンピュータの読取可能な媒体の通常の形態は、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、CDRW、DVD、任意の他の光媒体、パンチカード、ペーパーテープ、光マークシート、穴のパターンまたは他の光学的に認識可能な指標を有する任意の他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップまたはカートリッジ、搬送波またはコンピュータが読取可能な任意の他の媒体を含んでいる。
【0060】
コンピュータの読取可能な媒体の種々の形態は実行命令をプロセッサに与えることを含んでいてもよい。例えば、本発明の最小部分を実行するための命令は最初は遠隔コンピュータの磁気ディスクに位置されてもよい。このようなシナリオでは、遠隔コンピュータは命令を主メモリにロードし、モデムを使用して電話線によって命令を送信する。ローカルコンピュータシステムのモデムは電話線でデータを受信し、赤外線送信機を使用してそのデータを赤外線信号に変換し、その赤外線信号をパーソナルデジタルアシスタンス(PDA)およびラップトップのようなポータブルコンピュータ装置へ送信する。ポータブルコンピュータ装置の赤外線検出器は赤外線信号により伝送された情報および命令を受信し、そのデータをバスに供給する。バスはそのデータを主メモリに伝送し、そこからプロセッサは命令を検索し実行する。主メモリにより受信された命令はプロセッサによる実行される前または後に随意選択的に記憶装置に記憶される。
【0061】
以上説明したように、本発明の種々の実施形態はエンコーダおよびデコーダを簡単にするために構成された低密度パリティチェック(LDPC)コードを発生する方法を提供する。LDPCコードの構造はパリティチェックマトリックスを低い三角形であるように限定することにより与えられる。また、(8−PSK(位相シフトキーイング)のような)高次の変調コンステレーションのさらに脆弱なビットに対して特別のエラー保護を行うために、送信されたビットにLDPCコードの不均一なエラー保護能力を有効に使用することができる。さらに、パリティチェックマトリックスは予め記憶された定数とビット単位のる動作を使用してアルゴリズム的に発生されることができる。LDPCの効率のよいデコードはチェックノードからメモリの連続的なスロットにおけるパリティチェックマトリックスのビットノードまでの連続的なエッジを表す情報を記憶することによって行われることができる。前述の方法は性能を犠牲にせずに複雑性を有効に減少させる。
【0062】
本発明を多くの実施形態および構成と共に説明したが、本発明はそれに限定されるものではなく、種々の明白な変形および均等な構成は特許請求の範囲に記載された本発明の技術的範囲内に含まれるべきものである。
【図面の簡単な説明】
【図1】本発明の1実施形態による低密度パリティチェック(LDPC)コードを使用するように構成された通信システムの概略図。
【図2】図1のシステムの例示的な送信機の概略図。
【図3】図1のシステムの例示的な受信機の概略図。
【図4】本発明の1実施形態のスパースパリティチェックマトリックスの概略図。
【図5】図4のマトリックスのLDPCコードの2部分からなるグラフ図。
【図6】本発明の1実施形態によるサブマトリックスが低い三角形領域に制限されたパリティチェック値を含むスパースパリティチェックマトリックスのサブマトリックスの概略図。
【図7】制限されないパリティチェックマトリックス(Hマトリックス)と、図6のようなサブマトリックスを有する制限されたHマトリックスとの使用しているコード間の特性を示すグラフ図。
【図8】それぞれ図1のシステムで使用されることのできるグレーでない8−PSK変調方式とグレーの8−PSK変調方式の概略図。
【図9】グレーのラベリングとグレーでないラベリングとを使用するコード間の特性を示すグラフ図。
【図10】本発明の1実施形態によるグレーでないマッピングを使用するLDPCデコーダの動作のフロー図。
【図11】本発明の1実施形態によるグレーのマッピングを使用する図3のLDPCデコーダの動作のフロー図。
【図12】本発明の1実施形態によるデコードプロセスにおけるチェックノードとビットノードとの間の相互作用の説明図。
【図13】本発明の種々の実施形態により生成されたLDPCコードのシミュレーションのを示すグラフ。
【図14】本発明の種々の実施形態により生成されたLDPCコードのシミュレーションのを示すグラフ。
【図15】本発明の種々の実施形態により生成されたLDPCコードのシミュレーションのを示すグラフ。
【図16】本発明の1実施形態によるLDPCコード化のランダム性を実現するように構成されたアクセスをサポートするように組織されているメモリの上部エッジの概略図。
【図17】本発明の1実施形態によるLDPCコード化のランダム性を実現するように構成されたアクセスをサポートするように組織されているメモリの下部エッジの概略図。
【図18】本発明の1実施形態によるLDPCコードのコード化およびデコードの処理を行うコンピュータシステムの概略図。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to communication systems, and in particular to coded systems.
[0002]
[References for reference of the invention]
This application includes US Provisional Patent Application No. 60 / 398,760 filed on July 26, 2002 (titled “Code Design and Implementation Improvements for Low Density Parity Check Codes”) and filed on August 15, 2002. US Provisional Patent Application No. 60 / 403,812 (invention name “Power and Bandwidth Efficient Modulation and Coding Scheme for Direct Broadcast Satellite and Broadcast Satellite Communications”) and US Provisional Patent Application No. No. 60 / 421,505 (name of invention “Method and System for Generating Low Density Parity Check Code”) and US Provisional Patent Application No. 60 / 421,999 filed Oct. 29, 2002 (name of invention “Satellite”) Communications System Utilizing Low Density Parity Check Codes ”and US Provisional Patent Application No. 60 / 423,710 filed Nov. 4, 2002 (invention“ Code Design and Implementation Improvem ”). ents for Low Density Parity Check Codes ”). S. C. Requests the validity of the early filing date under 119 (e).
[0003]
[Prior art]
Communication systems use coding to ensure reliable communication through noisy communication channels. These communication channels have a fixed capacity, which is represented by bits per symbol at a given signal-to-noise ratio (SNR) that defines a theoretical upper limit (known as the Shannon limit). . As a result, coding design aims to achieve rates close to this Shannon limit. One class of such codes that are close to the Shannon limit are parity (LDPC) codes.
[0004]
Traditionally, LDPC codes have not been widely deployed due to a number of drawbacks. One drawback is that the LDPC encoding technique is very complex. The coding of LDPC code using the generator matrix needs to store a very large and non-sparse matrix. Furthermore, the LDPC code effectively requires large blocks, and as a result, there is a problem in storing these matrices even if the parity check matrix of the LDPC code is sparse. From a configuration point of view, the storage problem is one of the important reasons that the LDPC code does not actually spread. An important challenge to LDPC code execution is how to obtain a connection network between several processing engines (nodes) in the decoder.
[0005]
[Problems to be solved by the invention]
Therefore, there is a need for an LDPC code communication system that uses simple encoding and decoding processes. There is also a need to use efficient LDPC codes that support high data rates without introducing large complexity. There is also a need to improve the performance of LDPC encoders and decoders. It is also necessary to minimize the required capacity of the storage device for performing LDPC coding. Furthermore, there is a need for a scheme that simplifies communication between processing nodes in an LDPC decoder.
[0006]
[Means for Solving the Problems]
These and other needs are solved by the present invention. In accordance with the present invention, a method is provided for generating a constructed low density parity check (LDPC) code. The structure of the LDPC code is given by limiting the portion of the parity check matrix to a low triangle and / or satisfying other requirements so that communication between the processing nodes of the decoder is very simple. The method also includes LDPC in the transmitted bits to provide extra error protection for bits that are susceptible to higher order modulation constellation (8-PSK [Phase Shift Keying]). There is the advantage that non-equal error protection capability of the code can be generated. Furthermore, the parity check matrix can be an algorithm that uses pre-stored constants and bitwise operations.
[0007]
According to one aspect of the invention, a method for generating a low density parity check (LDPC) code is provided. The method converts the received input message into an LDPC codeword using only the parity check matrix of the LDPC code without using the generator matrix of the LDPC code, and outputs the LDPC codeword.
[0008]
According to another aspect of the present invention, a method for supporting linear block code coding is provided. The method includes mapping the conformational bits of the higher order signal to the bit nodes of the parity check matrix corresponding to the linear block code. Weak bits that are susceptible to signal conformational damage are mapped to bit nodes having at least three edges.
[0009]
According to another aspect of the present invention, a method for supporting linear block code coding is provided. The method includes mapping the conformational bits of the higher order signal to the bit nodes of the parity check matrix corresponding to the linear block code. Bits with a weak signal conformation are mapped to bit nodes that have not less than the number of edges more reliable than the more reliable bits.
[0010]
In accordance with another aspect of the present invention, a method is provided for generating a low density parity check (LDPC) code, wherein the received input message is converted from an LDPC code without using an LDPC code generator matrix. Converting to an LDPC codeword using only the parity check matrix. This method supplies an external code to an LDPC code word and outputs an LDPC code word having the supplied external code.
[0011]
According to yet another aspect of the invention, a method for generating a low density parity check (LDPC) code is provided. The method places the contents of the edge for groups of bit nodes that are adjacent to each other in the memory. At the same time, the contents of the edge are arranged for groups of check nodes adjacent to each other in the memory.
[0012]
In accordance with yet another aspect of the present invention, a system for generating a low density parity check (LDPC) code is provided, which system receives an incoming message without using an LDPC code generator matrix. Means for converting to an LDPC code word using only the parity check matrix, and means for outputting an LDPC code word.
[0013]
According to yet another aspect of the invention, a method for processing a low density parity check (LDPC) code is provided. The method decodes the received LDPC code by an LDPC code decoder. The method also repetitively reproduces the conformational bit metric value of the LDPC code decoder signal each time or after several LDPC code decoder iterations.
[0014]
Further features, aspects, and advantages of the present invention will be readily apparent from the following detailed description, illustrating a number of specific embodiments and configurations, including the best mode expected when practicing the present invention. It will be. The present invention is also capable of other different embodiments without departing from the scope of the invention, and its several details can be varied from the principal obvious point of view. Accordingly, the drawings and the description in the specification are merely examples and do not limit the technical scope of the present invention.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
A system, method, and software for efficiently generating a configured low density parity check (LDPC) code is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to facilitate an understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details and equivalent equipment. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the description of the present invention.
[0016]
FIG. 1 is a block diagram of a communication system configured to use a low density parity check (LDPC) code according to the present invention. The digital communication system 100 includes a transmitter 101 that generates a signal waveform that is sent through a communication channel 103 to a receiver 105. In this discrete communication system 100, the transmitter 101 has a message source, which generates a discrete set of possible messages, each possible message having a corresponding signal waveform. These signal waveforms are attenuated by communication channel 103 or otherwise altered. An LDPC code is used to combat the noise channel 103.
[0017]
The LDPC code generated by the transmitter 101 allows high speed communication without causing performance loss. These constructed LDPC codes output from the transmitter 101 avoid assigning a small number of check nodes to bit nodes that are susceptible to channel errors due to modulation schemes (eg, 8-PSK).
[0018]
Such LDPC codes have parallel decoding algorithms (unlike turbo codes), which have the advantage of including simple operations such as addition, comparison, and table lookup. In addition, carefully designed LDPC codes have no indication of an error floor.
[0019]
In one embodiment of the invention, transmitter 101 uses a relatively simple coding technique to generate an LDPC code based on a parity check matrix (which facilitates efficient memory access during decoding), Communicate with the receiver 105. The transmitter 101 uses an LDPC code instead of a concatenated turbo + RS (Reed-Solomon) code if the block length gives a sufficient size.
[0020]
FIG. 2 is a block diagram of an exemplary transmitter of the system of FIG. The transmitter 200 includes an LDPC encoder 203 that receives input from the information source 201 and outputs a highly redundant code stream suitable for performing error correction processing at the receiver 105. The information source 201 generates a signal of discrete alphabets X to k. The LDPC code is specified by a parity check matrix. On the other hand, LDPC code encoding usually requires identification of the generator matrix. Even if it is possible to obtain a generator matrix from a parity check matrix using Gaussian elimination, the resulting matrix is not sparse and the storage of a large generator matrix is complicated.
[0021]
Encoder 203 generates a signal from alphabet Y to modulator 205 using a simple coding technique. The coding technique uses only the parity check matrix by providing structure to the parity check matrix. In particular, the parity check matrix is limited by limiting certain portions of the matrix to be triangular. The structure of such a parity check matrix will be described later in detail with reference to FIG. As a result of such limitations, the performance loss is negligible, thus providing an attractive trade-off.
[0022]
Modulator 205 maps the encoded message from encoder 203 to signal waveforms that are sent to transmit antenna 207, which transmits these signal waveforms on communication channel 103. Thus, the encoded message is modulated and distributed to the te transmit antenna 207. Transmission from the transmit antenna 207 propagates to the receiver as will be described below.
[0023]
FIG. 3 is a block diagram of an exemplary receiver of the system of FIG. On the receiver side, the receiver 300 includes a demodulator 301 that demodulates the signal received from the transmitter 200. These signals are received by the receiving antenna 303 and demodulated. After demodulation, the received signal is forwarded to decoder 305 where it attempts to reconstruct the original source message by generating message X ′ with bit metric generator 307. Due to the non-gray mapping, the bit metric generator 307 exchanges probability information back and forth (iteratively) with the decoder 305 during the decoding process as detailed in FIG. Instead, if gray mapping is used (according to one embodiment of the present invention), one pass of the bit metric generator is sufficient, but the bit metric generator is an iterative operation of each LDPC decoder. This may produce a limited performance improvement later, and this method is illustrated in detail in FIG. To recognize the advantages provided by the present invention, it is useful to examine how the LDPC code is generated with reference to FIG.
[0024]
FIG. 4 is an explanatory diagram of a sparse parity check matrix according to an embodiment of the present invention. The LDPC code is a sparse parity check matrix H(nk) xnIs a long linear block code. Typically, the block length n is in the range of thousands to tens of thousands of bits. For example, the parity check matrix for the LDPC code for length n = 8 and rate 1/2 is shown in FIG. The same code is equivalent to that represented by the two parts of FIG.
[0025]
FIG. 5 is a graph of two parts of the LDPC code of the matrix of FIG. The parity check equation shows that for each check node, the sum of all adjacent bit nodes (over GF [Galois field] [2]) is equal to zero. As shown in the figure, bit nodes occupy the left side of the graph and are associated with one or more check nodes according to a predetermined relationship. For example, check node m1Corresponding to the bit node
n1+ NFour+ NFive+ N8= 0 exists.
[0026]
Returning to the receiver 303, the LDPC decoder 305 is considered a message path decoder, and therefore the decoder 305 is intended to find the value of the bit node. To perform this task, the bit node and the check node communicate with each other iteratively. The nature of this communication will be described below.
[0027]
From a check node to a bit node, each check node gives an evaluation (“opinion”) regarding the value of that bit node to the adjacent bit node based on information coming from other adjacent bit nodes. For example, in the above example, nFour, NFive, N8Is the sum of m1M looks like 0 for1Is n1Instructions for n1It is believed that the value of should be 0 (n1+ NFour+ NFive+ N8= 0). On the other hand, m1Is n1Instructions for n1It is believed that the value of should be 1. In addition, a reliability measure is added for soft decision decoding.
[0028]
From a bit node to a check node, each bit node sends an evaluation of its value to the adjacent check node based on feedback coming from other adjacent check nodes. In the above example, n1Is just two adjacent check nodes m1And mThreehave. n1That the value of is probably 0ThreeTo n1If the feedback coming to shows n1Is m1N1It is notified that the evaluation of its own value is 0. For a case where a bit node has more than two adjacent check nodes, the bit node will vote for feedback coming from other adjacent check nodes with which it communicates before reporting a decision for that check node (Soft decision). The above process is repeated until all bit nodes are considered correct (ie, all parity check equations are satisfied) or until a predetermined maximum number of iterations is reached, Declares a decoding failure.
[0029]
FIG. 6 is a diagram illustrating a sub-matrix of a sparse parity check matrix, where the sub-matrix has a parity check value limited to a low triangular area according to one embodiment of the present invention. As mentioned above, the encoder 203 (of FIG. 2) can use a simple coding technique by limiting the values of the low triangular area of the parity check matrix. According to one embodiment of the present invention, the restrictions imposed on the parity check matrix are of the form:
H(nk) xn= [A(nk) xkB(nk) x (nk)]
Here, B is a low triangle.
[0030]
Arbitrary information block i = (i0, I1, ..., ik-1) Is HC T= 0 and the codeword c = (i0, I1, ... ik-1, P0, P1, ..., pnk-1) And repeated to resolve the parity bits. For example,
a00i0+ A01i1+ ... + a0, k-1ik-1+ P0= 0 p0Solve
aTeni0+ A11i1+ ... + a1, k-1ik-1+ BTenp0+ P1= 0 p1Solve
p2, PThree, ..., pnk-1The same applies to.
[0031]
FIG. 7 is a graph illustrating characteristics between codes that use an unrestricted parity check matrix (H matrix) and the restricted H matrix of FIG. The graph is a comparison between two LDPC codes. : One is due to a general parity check matrix and the other is due to a parity check matrix restricted to a low triangle for easy coding. For this simulation, the modulation scheme is 8-PSK. The performance loss is within 0.1 dB. Therefore, performance loss is ignored based on the limitations of the low triangular H matrix. On the other hand, the benefits of simplification of coding techniques are substantial. Thus, any parity check matrix equivalent to a low triangle or a swapped upper triangle of at least one of row and column can be used for the same purpose.
[0032]
8A and 8B are diagrams illustrating a non-gray 8-PSK modulation scheme and a gray 8-PSK modulation scheme, respectively, which can be used in the system of FIG. The non-gray 8-PSK modulation scheme of FIG. 8A can be used in the receiver of FIG. 3 to provide a system that requires a very low frame erasure rate (FER). This requirement also uses the Gray 8-PSK modulation scheme shown in FIG. 8B, and the Bose, Chaudhuri, and Hocquenghem (BCH) codes, Hamming, Matah Reed Solomon. It can be satisfied by using an external code such as an (RS) code.
[0033]
Alternatively, the gray 8-PSK modulation scheme of FIG. 8B can be performed by an outer code. In this scheme, no iteration is required between the LDPC decoder 305 (FIG. 3) and the bit metric generator 307 which can use 8-PSK modulation. When no outer code is present, LDPC decoder 305 using gray labeling is shown in FIG. 9 and shows the previous error floor as described below.
[0034]
FIG. 9 is a graph showing performance between codes using the gray and non-grey labeling of FIGS. 8A and 8B. The error floor assumes accurate feedback from the LDPC decoder 305 and the reconstruction of the 8-PSK bit metric is due to non-grey labeling because two 8-PSK symbols with two known bits are further separated by non-grey labeling. It comes from being more accurate. This is similarly observed when operating at a high signal-to-noise ratio (SNR). Therefore, even if the error asymptote of the same LDPC code using gray or non-grey labeling has the same slope (ie parallel to each other), the non-gray labeling will pass a low FER at any SNR. .
[0035]
On the other hand, for systems that do not require very low FER, some non-repetitive gray labeling between LDPC decoder 305 and 8-PSK bit metric generator 307 is more appropriate. This is because the regeneration of the 8-PSK bit metric before every LDPC decoder iteration introduces additional complexity. In addition, when gray labeling is used, playback of the 8-PSK bit metric prior to LDPC decoder iteration results in only a slight performance improvement. As described above, gray labeling without iteration can be used for systems that require very low FER when providing external code.
[0036]
The choice between gray labeling and non-gray labeling is also dependent on the characteristics of the LDPC code. Typically, a higher degree of bits or check nodes is better for gray labeling. That is because for a high degree of nodes, the initial feedback from LDPC decoder 305 to 8-PSK (or similar higher order modulation) bit metric generator 307 is more degraded by non-gray labeling. .
[0037]
When 8-PSK modulation (or similar higher order modulation) is utilized by a binary decoder, 3 (or more) bits of a symbol are not received with “equal noise”. For example, due to gray 8-PSK labeling, the third bit of the symbol is considered noisier to the decoder than the other two bits. Therefore, the LDPC code design does not assign a small number of edges to the bit node represented by the “noisy” third bit of the 8-PSK symbol. Therefore those bits will not be penalized twice. FIG. 10 is a flowchart of the operation of an LDPC decoder using non-gray mapping according to one embodiment of the present invention. In this method, the LDPC decoder and the bit metric generator repeatedly operate one after another. In this example, 8-PSK modulation is used, but the same principle applies to other higher order modulation schemes. In this scenario, the modulator 301 outputs a distance vector d, indicating the distance between the received noisy symbol point and the 8-PSK symbol point for the bit metric generator 307 so that the vector component is It is assumed that
di=-(ES/ N0) {(Rx-Si, x)2+ (Ry-Si, y)2}
i = 0, 1,... 7
The 8-PSK bit metric generator 307 communicates with the LDPC decoder 305 to exchange a priori and a priori probability information, which are represented by u and a, respectively. That is, vectors u and a represent the a priori and empirical probabilities of the log likelihood ratio of the coded bits, respectively.
[0038]
The 8-PSK bit metric generator 307 generates an a priori likelihood ratio for each group of 3 bits as follows. First, extrinsic information of the coded bits is obtained.
[0039]
ej= Aj-Uj    j = 0, 1, 2
Next, 8-PSK symbol probability pi  i = 0, 1,..., 7 are determined.
*yj= −f (0, ejJ = 0,1,2,
Where f (a, b) = max (a, b) + LUTf(A, b)
LUTf(A, b) = ln (1 + e- ab ).
*xj= Yj+ Ej    j = 0, 1, 2
*p0= X0+ X1+ X2    pFour= Y0+ X1+ X2
p1= X0+ X1+ Y2    pFive= Y0+ X1+ Y2
p2= X0+ Y1+ X2    p6= Y0+ Y1+ X2
pThree= X0+ Y1+ Y2    p7= Y0+ Y1+ Y2
The bit metric generator 307 then determines the a priori log likelihood ratio of the coded bits as input to the LDPC decoder 305 as follows.
[Expression 1]
Figure 0004422436
Note that more than two variables can be evaluated recursively, eg
f (a, b, c) = f (f (a, b), c)
The operation of the LDPC decoder 305 that uses non-gray mapping will be described. In step 1001, LDPC decoder 305 initializes the log likelihood ratio v of the coded bits prior to the first iteration according to the following equation (and as shown in FIG. 12A).
vn ki= Un, N = 0, 1,..., N−1, i = 1, 2,..., Deg (bit node n)
Where vn kiIs from bit node n to its adjacent check node kiIndicates a message sent to unIndicates the demodulator output of bit n, where N is the size of the codeword.
[0040]
In step 1003, check node k is updated, so that input v produces output w. As shown in FIG. 12B, dcA message coming into check node k from the adjacent bit node ofn1 k, Vn2 k, ... vndc kIndicated by. Purpose is check node k to dcIs to compute the outgoing message back to the adjacent bit node. These messages are wk n1, Wk n2, ..., wk ndcWhere, where
wk ni=
g (vn1 k, Vn2 k, ..., vni-1 k, Vni + 1 k, ..., vndc k)
The function g () is defined as follows.
g (a, b) = sign (a) × sign (b) × {min (| a |, | b |)} + LUTg(A, b)
here,
LUTg(A, b) = ln (1 + e- a + b ) -Ln (1 + e- ab )
It is. Similar to function f, function g with more than two variables can be evaluated recursively.
[0041]
Next, the decoder 305 outputs empirical probability information (C in FIG. 12) in step 1205, thereby
[Expression 2]
Figure 0004422436
In step 1007, it is determined whether all parity check equations are satisfied. If these parity check equations are not satisfied, the decoder 305 performs 8-PSK bit metric and channel input u as in step 1011.nLead again. Next, the bit node is updated as in step 1013. D adjacent to the check node, as shown in FIG.vThe message coming from bit node n to wk1 n, Wk2 n... wkdv nIndicated by. The output message from bit node n is dvIs returned to the adjacent check node ofn k1, Vn k2, Vn kdvAnd is calculated as follows:
[0042]
[Equation 3]
Figure 0004422436
In step 1009 (if all parity check equations are satisfied), decoder 305 outputs a hard decision.
[Expression 4]
Figure 0004422436
The above method is suitable when non-gray leveling is used. On the other hand, when gray leveling is executed, the process of FIG. 11 is executed.
[0043]
FIG. 11 is a flowchart of the operation of the LDPC decoder of FIG. 3 using gray mapping in accordance with one embodiment of the present invention. When gray leveling is used, it is useful that the bit metric is generated only once before the LDPC decoder because the bit metric reproduced after each LDPC decoder iteration provides a nominal performance improvement. As in steps 1001 and 1003 of FIG. 10, initialization of the log likelihood ratio v of the bits encoded in steps 1101 and 1103 is performed, and the check node is updated. Next, bit node n is updated as in step 1105. Thereafter, the decoder outputs the a posteriori probability information (step 1107). In step 1109, a determination is made whether all parity check equations are satisfied, and if yes, the decoder outputs a hard decision (step 1111). If no, steps 1103-1107 are repeated.
[0044]
13 to 15 are graphs showing simulation results of LDPC codes generated according to various embodiments of the present invention. In particular, FIGS. 13-15 show high-order modulation and 3/4 (QPSK, 1.485 bits / symbol), 2/3 (8-PSK, 1.980 bits / symbol), and 5/6 (8-PSK). 2 shows characteristics of an LDPC code at a code rate of 2.474 bits / symbol).
[0045]
Two conventional methods exist to realize the interconnection between the check node and the bit node: (1) the overall parallel method and (2) the partial parallel method, respectively. In an overall parallel architecture, all nodes and their interconnections are physically configured. The advantage of this architecture is speed.
[0046]
However, the overall parallel architecture involves a great deal of complexity to implement all nodes and their connections. Therefore, in an overall parallel architecture, a smaller block size is required to reduce complexity. In that case, for the same clock frequency, a proportional decrease in throughput and some degradation of FER vs. Es / No performance result.
[0047]
The second method of constructing the LDPC code physically implements only a subset of the total number of nodes, and only a limited number of “physical” nodes to handle all “functional” nodes of the code. Is to use. Although the operation of the LDPC decoder can be done very easily and can be operated in parallel, a further design challenge is that communication is set up between "randomly" distributed bit nodes and check nodes. Is the development of a method. The decoder 305 of FIG. 3 solves this problem by accessing the memory in a manner that is configured to superficially implement random codes, according to one embodiment of the invention. This method is described with respect to FIGS.
[0048]
FIGS. 16 and 17 illustrate the upper and lower edges, respectively, of a memory organized to support access configured to achieve LDPC encoding randomness, according to one embodiment of the present invention. . Configured access can be achieved without compromising the performance of accurate random codes by focusing on the generation of the parity check matrix. Usually, the parity check matrix can be specified by connecting check nodes and bit nodes. For example, the bit nodes are divided into 392 groups (392 is shown for illustrative purposes). Further, for example, assuming that check nodes connected to the first bit node of degree 3 are labeled a, b, c, the check nodes connected to the second bit node are a + p, b + p, c + p. Check nodes that are signed and connected to the third bit node are labeled a + 2p, b + 2p, c + 2p. In the next group of 392 bit nodes, the check nodes connected to the first bit node are different from a, b, c, so that with proper selection of p, all check nodes have the same degree. A random search is performed over the free constant so that the resulting LDPC code is cycle-4 and cycle-6 free.
[0049]
The above arrangement facilitates memory access during check node and bit node processing. The edge values of the bipartite graph can be stored in a storage medium such as random access memory (RAM). Note that for exact random LDPC codes during check node and bit node processing, the edge values need to be accessed one by one in a random manner. However, such access schemes are very slow for high data rate applications. The RAMs of FIGS. 16 and 17 are organized in one way into a large group of related edges in one clock cycle, so that these values are “both” located in memory. In practice, even with an exact random code, in a group of check nodes (and each bit node), the associated edges can be located adjacent to each other in the RAM, but a group of bit nodes ( It is observed that the associated edges adjacent to each check node) are randomly distributed in the RAM. Therefore, in the present invention, “togetherness” arises from the design of the parity check matrix itself. That is, the check matrix design ensures that the associated edges for a group of bit nodes and check nodes are located simultaneously in the RAM.
[0050]
As seen in FIGS. 16 and 17, each box contains an edge value, which is a number of bits (eg, 6). The edge RAM is divided into two parts, an upper edge RAM (FIG. 16) and a lower edge RAM (FIG. 17), according to one embodiment of the present invention. The lower edge RAM includes an edge between a bit node of about 2 and a check node, for example. The upper edge RAM includes an edge between a bit node and a check node that are larger than two. Therefore, for each check node, two adjacent edges are stored in the lower RAM and the remaining edges are stored in the upper edge RAM.
[0051]
Continuing the description of the above example, the group of 392 bit nodes and 392 check nodes is selected in a single process. In the check node processing of 392, q consecutive rows are accessed from the upper edge RAM and two consecutive rows are selected from the lower edge RAM. In this example, q + 2 is the degree of each check node. In bit node processing, if a group of 392 bit nodes has degree 2, their edges are located in two consecutive rows of the bottom edge RAM. If bit nodes have a degree d> 2, their edges are located in several d rows of the upper edge RAM. These d row addresses can be stored in a non-volatile memory such as a read only memory (ROM). The edge of one row corresponds to the first edge of the 392 bit node and the edge of the other row corresponds to the second edge of the 392 bit node. Furthermore, for each row, the column index of the edge belonging to the first bit node of the 392 group can also be stored in the ROM. Edges corresponding to second, third, etc. bit nodes follow the index of the start column in a “wrap around” manner. For example, if the jth edge of the row belongs to the first bit node, the (j + 1) th edge belongs to the second bit node, the (j + 2) th edge belongs to the third bit node, (j -1) The edge belongs to the 392rd bit node.
[0052]
With the above organization (shown in FIGS. 16 and 17), the speed of memory access is greatly enhanced during LDPC coding.
[0053]
FIG. 18 illustrates a computer system 1500 upon which an embodiment can be configured in accordance with the present invention. The computer system 1500 includes a bus 1501 or other communication mechanism for communicating information, and a processor 1503 coupled to the bus 1501 for processing information. Computer system 1500 also includes main memory 1505, such as random access memory (RAM), or other dynamic storage devices coupled to bus 1501 for storing information and instructions performed by processor 1503. Main memory 1505 can also be used to temporarily store variables or other intermediate information when executing instructions performed by processor 1503. Computer system 1500 further includes a read only memory (ROM) 1507 or other static storage device coupled to bus 1501 for storing static information and instructions for processor 1503. A storage device 1509 such as a magnetic disk or optical disk is additionally coupled to the bus 1501 for storing information and instructions.
[0054]
Computer system 1500 may be coupled via bus 1501 to a display 1511, such as a cathode ray tube (CRT), liquid crystal display, active matrix display, or plasma display, for displaying information to a computer user. An input device 1513, such as a keyboard containing alphanumeric characters and other keys, is coupled to the bus 1501 for communicating information and command selections to the processor 1503. Another type of user input device is a cursor control device 1515, such as a mouse, trackball, or cursor command key, for communicating command information and command selections to the processor 1503 and controlling cursor movement on the display 1511.
[0055]
In accordance with one embodiment of the present invention, the generation of LDPC code is performed by computer system 1500 in response to processor 1503 executing the configuration of instructions contained in main memory 1505. Such instructions can be read into main memory 1505, such as storage device 1509, from another computer readable medium. Execution of the configuration of instructions contained in main memory 1505 causes processor 1503 to perform the process steps described herein. In a multiprocessing configuration, one or more processors may be used to execute instructions contained in main memory 1505. In another embodiment, hardwire circuits may be used in place of or in combination with software instructions to construct embodiments of the present invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
[0056]
Computer system 1500 also includes a communication interface 1517 coupled to bus 1501. The communication interface 1517 is coupled to a network link 1519 connected to the local network 1521 to perform two-way data communication. For example, the communication interface 1517 may be a digital subscriber line (DSL) card or modem, an integrated services digital network (ISDN) card, a cable modem or a telephone modem that provides data communication connections to a corresponding type of telephone line. As another example, communication interface 1517 is a local area network (LAN) card (eg, for an Ethernet or Asynchronous Transfer Model (ATM) network) to provide a data communication connection to a compatible LAN. May be. A wireless link can also be configured. In any such configuration, communication interface 1517 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. Further, the communication interface 1517 may include peripheral interface devices such as a universal serial bus (USB) interface, a PCMCIA (Personal Computer Memory Card International Association) interface, and the like.
[0057]
Network link 1519 typically provides data communication through one or more networks to other data devices. For example, network link 1519 connects to host computer 1523 via local network 1521, which is a network 1525 (eg, a global packet data communication network commonly referred to as a wide area network (WAN) or “Internet”) or service. Connects to a data device operated by the provider. Both local area network 1521 and network 1525 use electrical, electromagnetic or optical signals to transmit information and instructions. Signals through various networks and over network link 1519 and communication interface 1517 communicate digital data with computer system 1500 and an exemplary form of transmitting information and instructions is a carrier wave.
[0058]
The computer system 1500 can send messages and receive data including program codes through the network, the network link 1519, and the communication interface 1517. In the Internet example, a server (not shown) transmits the requested code belonging to an application program for performing one embodiment of the present invention through the network 1525, the local network 1521, and the communication interface 1517. The processor 1503 stores the received transmitted code in storage 159 or other non-volatile storage for execution and / or later execution. In this method, computer system 1500 obtains application code in the form of a carrier wave.
[0059]
The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to the processor 1503 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks such as storage device 1509. Volatile media includes dynamic memory, such as main memory 1505. Transmission media includes coaxial cable, copper wire, or optical fiber, including the wires that make up bus 1501. Transmission media can also take the form of acoustic, light or electromagnetic waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Usual forms of computer readable media are, for example, floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROM, CDRW, DVD, any other optical media, punch cards, paper Tape, light mark sheet, hole pattern or any other physical medium with optically recognizable indicators, RAM, PROM, EPROM, flash EPROM, any other memory chip or cartridge, carrier wave or computer Includes any other readable medium.
[0060]
Various forms of computer readable media may include providing execution instructions to a processor. For example, instructions for performing the minimum portion of the present invention may be initially located on a remote computer's magnetic disk. In such a scenario, the remote computer loads the instructions into main memory and transmits the instructions over a telephone line using a modem. The modem of the local computer system receives the data on the telephone line, converts the data to an infrared signal using an infrared transmitter, and the infrared signal to a portable computer device such as a personal digital assistance (PDA) and laptop. Send. The infrared detector of the portable computer device receives information and instructions transmitted by the infrared signal and supplies the data to the bus. The bus transmits the data to main memory, from which the processor retrieves and executes instructions. The instructions received by the main memory are optionally stored in a storage device before or after being executed by the processor.
[0061]
As described above, various embodiments of the present invention provide a method for generating a low density parity check (LDPC) code configured to simplify encoders and decoders. The structure of the LDPC code is given by limiting the parity check matrix to be a low triangle. Also, to provide extra error protection for more vulnerable bits of higher-order modulation constellations (such as 8-PSK (Phase Shift Keying)), the transmitted bits will have non-uniform errors in the LDPC code. The protective ability can be used effectively. Further, the parity check matrix can be generated algorithmically using prestored constants and bitwise operations. LDPC efficient decoding can be performed by storing information representing successive edges from the check nodes to the bit nodes of the parity check matrix in successive slots of the memory. The foregoing method effectively reduces complexity without sacrificing performance.
[0062]
Although the present invention has been described with many embodiments and configurations, the present invention is not limited thereto, and various obvious modifications and equivalent configurations are within the scope of the present invention described in the claims. Should be included.
[Brief description of the drawings]
FIG. 1 is a schematic diagram of a communication system configured to use a low density parity check (LDPC) code according to an embodiment of the invention.
2 is a schematic diagram of an exemplary transmitter of the system of FIG.
3 is a schematic diagram of an exemplary receiver of the system of FIG.
FIG. 4 is a schematic diagram of a sparse parity check matrix according to an embodiment of the present invention.
FIG. 5 is a graph of two parts of the LDPC code of the matrix of FIG.
FIG. 6 is a schematic diagram of a sub-matrix of a sparse parity check matrix in which the sub-matrix includes parity check values limited to low triangular regions according to one embodiment of the invention.
7 is a graph showing characteristics between codes used in an unrestricted parity check matrix (H matrix) and a restricted H matrix having a sub-matrix as shown in FIG. 6;
8 is a schematic diagram of a non-gray 8-PSK modulation scheme and a gray 8-PSK modulation scheme that can be used in the system of FIG. 1, respectively.
FIG. 9 is a graph illustrating characteristics between codes using gray labeling and non-gray labeling.
FIG. 10 is a flow diagram of the operation of an LDPC decoder using non-gray mapping according to one embodiment of the invention.
11 is a flow diagram of the operation of the LDPC decoder of FIG. 3 using gray mapping according to one embodiment of the invention.
FIG. 12 is an explanatory diagram of an interaction between a check node and a bit node in a decoding process according to an embodiment of the present invention.
FIG. 13 is a graph illustrating a simulation of LDPC code generated according to various embodiments of the present invention.
FIG. 14 is a graph illustrating a simulation of LDPC code generated according to various embodiments of the present invention.
FIG. 15 is a graph illustrating a simulation of LDPC code generated according to various embodiments of the present invention.
FIG. 16 is a schematic diagram of the upper edge of a memory organized to support access configured to achieve randomness of LDPC encoding according to one embodiment of the invention.
FIG. 17 is a schematic diagram of a lower edge of a memory organized to support access configured to achieve randomness of LDPC encoding according to one embodiment of the present invention.
FIG. 18 is a schematic diagram of a computer system that performs LDPC code encoding and decoding processing according to an embodiment of the present invention;

Claims (9)

低密度パリティチェック(LDPC)コードを発生する方法において、
LDPCコードの発生器マトリックスを使用しないでLDPCコードのパリティチェックマトリックスだけを使用して、受信された入力メッセージをLDPCコードワードに変換するステップと
前記LDPCコードワードを出力するステップと、を含み、
前記パリティチェックマトリックスは、複数のチェックノードと複数のビットノードとの間の繋がりを特定していて、
複数のビットノードはMビットノードの複数のグループに分割されていて、
ビットノードの各グループに対して、各ビットノードnjがm1+jp, m2+jp, …, md+jpと番号付けられた複数のチェックノードに繋がっていて、ここでjは0からM-1までの値を取り、従ってjは前記グループの複数のビットノードの番号を表していて、m1, m2, …, mdは各グループの第1のビットノードに繋がったd個のチェックノードを表していて、チェックノードm1, m2, …, mdはあるグループのビットノードと次のグループのビットノード間で異なっており、従って、pを適切な値に定めると、マトリックスで表された全てのチェックノードは同じ次数を有するようになり、
ビットノードのグループに対する複数のエッジ値を互いに隣接してメモリに配置し且つチェックノードのグループに対する複数のエッジ値を互いに隣接して前記メモリに同時に配置することにより、前記パリティチェックマトリックスが前記LDPCコードワードのデコーディング期間中に組織だったアクセスを提供する、LDPCコードの発生方法。
In a method for generating a low density parity check (LDPC) code,
Converting the received input message into an LDPC codeword using only the parity check matrix of the LDPC code without using the generator matrix of the LDPC code;
Anda step of outputting the LDPC codeword,
The parity check matrix specifies connections between a plurality of check nodes and a plurality of bit nodes;
The bit nodes are divided into groups of M bit nodes,
For each group of bit nodes, each bit node nj is connected to a plurality of check nodes numbered m1 + jp, m2 + jp, ..., md + jp, where j ranges from 0 to M-1 , J represents the number of a plurality of bit nodes in the group, and m1, m2,..., Md represent d check nodes connected to the first bit node of each group. The check nodes m1, m2, ..., md are different between the bit nodes of one group and the next group, so if p is set to an appropriate value, all the check nodes represented in the matrix Will have the same order,
By arranging a plurality of edge values for a group of bit nodes adjacent to each other in a memory and simultaneously arranging a plurality of edge values for a group of check nodes adjacent to each other in the memory, the parity check matrix is converted into the LDPC code. A method of generating LDPC codes that provides organized access during the decoding of words .
変換ステップにおいて、パリティチェックマトリックスの予め定められた三角形部分が行または列の交換後にゼロ値を有する請求項1記載の方法。  The method of claim 1, wherein, in the converting step, the predetermined triangular portion of the parity check matrix has a zero value after the row or column exchange. さらに、変調方式にしたがったLDPCコードの変調は、
8−PSK(位相シフトキーイング)、16QAM(直交振幅変調)またはQPSK(直交位相シフトキーイング)の1つを含んでいる請求項1記載の方法。
Furthermore, the modulation of the LDPC code according to the modulation method is
2. The method of claim 1 including one of 8-PSK (Phase Shift Keying), 16QAM (Quadrature Amplitude Modulation) or QPSK (Quadrature Phase Shift Keying).
線形ブロックコードを発生するための命令を保持するコンピュータ読出可能な媒体において、
請求項1記載の方法を1以上のプロセッサに行わせるために前記命令が配置されているコンピュータ読出可能な媒体。
In a computer readable medium having instructions for generating a linear block code,
A computer readable medium on which the instructions are arranged to cause one or more processors to perform the method of claim 1.
外部コードを前記LDPCコードワードに適用するステップを更に含み、外部コードはボーズ(Bose)、チャウドリ(Chaudhuri),ホッケンゲム(Hocqunghem)(BCH)コードを含む、請求項1に記載のLDPCコードの発生方法。 Further comprising the step of applying an outer code to the LDPC codeword, an external code Bose (Bose), Chaudori (Chaudhuri), Hokkengemu (Hocqunghem) (BCH) encoding including, generation of LDPC codes according to claim 1 Method. 適用するステップにおいて、外部コードは,代りにリード・ソロモン(RS)コードまたはハミングコードのいずれかを含んでいる請求項記載の方法。6. The method of claim 5 , wherein, in the step of applying, the outer code includes either a Reed-Solomon (RS) code or a Hamming code instead. 低密度パリティチェック(LDPC)コードを発生するシステムにおいて、
LDPCコードの発生器マトリックスを使用しないでLDPCコードのパリティチェックマトリックスだけを使用して、受信された入力メッセージをLDPCコードワードに変換する手段と、
前記LDPCコードワードを出力する手段とを具備し、
前記パリティチェックマトリックスは、複数のチェックノードと複数のビットノードとの間の繋がりを特定していて、
複数のビットノードはMビットノードの複数のグループに分割されていて、
ビットノードの各グループに対して、各ビットノードnjがm1+jp, m2+jp, …, md+jpと番号付けられた複数のチェックノードに繋がっていて、ここでjは0からM-1までの値を取り、従ってjは前記グループの複数のビットノードの番号を表していて、m1, m2, …, mdは各グループの第1のビットノードに繋がったd個のチェックノードを表していて、チェックノードm1, m2, …, mdはあるグループのビットノードと次のグループのビットノード間で異なっており、従って、pを適切な値に定めると、マトリックスで表された全てのチェックノードは同じ次数を有するようになり、
ビットノードのグループに対する複数のエッジ値を互いに隣接してメモリに配置し且つチェックノードのグループに対する複数のエッジ値を互いに隣接して前記メモリに同時に配置することにより、前記パリティチェックマトリックスが前記LDPCコードワードのデコーディング期間中に組織だったアクセスを提供する、LDPCコード発生システム。
In a system that generates a low density parity check (LDPC) code,
Means for converting a received input message into an LDPC codeword using only the parity check matrix of the LDPC code without using the generator matrix of the LDPC code ;
And means for outputting the LDPC codeword,
The parity check matrix specifies connections between a plurality of check nodes and a plurality of bit nodes;
The bit nodes are divided into groups of M bit nodes,
For each group of bit nodes, each bit node nj is connected to a plurality of check nodes numbered m1 + jp, m2 + jp, ..., md + jp, where j ranges from 0 to M-1 , J represents the number of a plurality of bit nodes in the group, and m1, m2,..., Md represent d check nodes connected to the first bit node of each group. The check nodes m1, m2, ..., md are different between the bit nodes of one group and the next group, so if p is set to an appropriate value, all the check nodes represented in the matrix Will have the same order,
By arranging a plurality of edge values for a group of bit nodes adjacent to each other in a memory and simultaneously arranging a plurality of edge values for a group of check nodes adjacent to each other in the memory, the parity check matrix is converted into the LDPC code. An LDPC code generation system that provides organized access during the decoding of a word .
パリティチェックマトリックスの予め定められた三角形部分が行または列の交換後にゼロ値を有する請求項記載のシステム。The system of claim 7 , wherein the predetermined triangular portion of the parity check matrix has a zero value after a row or column exchange. 変調方式にしたがったLDPCコードの変調はさらに、8−PSK(位相シフトキーイング)、16QAM(直交振幅変調)またはQPSK(直交位相シフトキーイング)の1つを含んでいる請求項記載のシステム。8. The system of claim 7 , wherein the modulation of the LDPC code according to the modulation scheme further comprises one of 8-PSK (Phase Shift Keying), 16QAM (Quadrature Amplitude Modulation) or QPSK (Quadrature Phase Shift Keying).
JP2003176330A 2002-07-26 2003-06-20 Method and system for generating a low density parity check code Expired - Lifetime JP4422436B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39876002P 2002-07-26 2002-07-26
US10/353,230 US20040019845A1 (en) 2002-07-26 2003-01-28 Method and system for generating low density parity check codes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009234228A Division JP2010050994A (en) 2002-07-26 2009-10-08 Method and system for generating low density parity check code

Publications (2)

Publication Number Publication Date
JP2004064756A JP2004064756A (en) 2004-02-26
JP4422436B2 true JP4422436B2 (en) 2010-02-24

Family

ID=30002875

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003176330A Expired - Lifetime JP4422436B2 (en) 2002-07-26 2003-06-20 Method and system for generating a low density parity check code
JP2009234228A Withdrawn JP2010050994A (en) 2002-07-26 2009-10-08 Method and system for generating low density parity check code

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009234228A Withdrawn JP2010050994A (en) 2002-07-26 2009-10-08 Method and system for generating low density parity check code

Country Status (8)

Country Link
EP (1) EP1385270B1 (en)
JP (2) JP4422436B2 (en)
KR (1) KR100543154B1 (en)
CN (1) CN1481130A (en)
AT (1) ATE362675T1 (en)
DE (1) DE60313832T2 (en)
DK (1) DK1385270T3 (en)
ES (1) ES2285049T3 (en)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
KR20050052184A (en) * 2003-11-29 2005-06-02 삼성전자주식회사 Method of interleaving for low density parity check encoding
CN1310433C (en) * 2004-03-29 2007-04-11 上海交通大学 Channel coding method adopting layered low density check code
CN101924565B (en) * 2004-04-02 2014-10-15 苹果公司 LDPC encoders, decoders, systems and methods
KR100540663B1 (en) * 2004-04-19 2006-01-10 삼성전자주식회사 Method for converting parity check matrix in Low Density Parity Check coding
US7171603B2 (en) 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
EP1782540B1 (en) * 2004-07-27 2013-07-24 LG Electronics Inc. Method of encoding and decoding using low density parity check code
JP4545793B2 (en) * 2004-08-10 2010-09-15 サムスン エレクトロニクス カンパニー リミテッド Apparatus and method for encoding / decoding block low density parity check code
EP1790083B1 (en) * 2004-08-13 2011-01-12 Dtvg Licensing, Inc Code design and implementation improvements for low density parity check codes for multiple-input multiple-output channels
EP1800408A1 (en) * 2004-10-01 2007-06-27 Thomson Licensing A low density parity check (ldpc) decoder
KR100846869B1 (en) 2004-12-16 2008-07-16 한국전자통신연구원 Apparatus for Decoding LDPC with Low Computational Complexity Algorithms and Method Thereof
US7617439B2 (en) * 2005-01-10 2009-11-10 Broadcom Corporation Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
CN100414841C (en) * 2005-05-11 2008-08-27 电子科技大学 High-speed coding method of low density check code
KR100727316B1 (en) * 2005-06-01 2007-06-12 삼성전자주식회사 Method and apparatus for LDPC channel decoding
CN100424999C (en) * 2005-06-06 2008-10-08 重庆市成鑫机电制造有限公司 Method of using algorithm of adding edge one by one for encoding and decoding low-density parity check code in multiple system of carry digit
JP4808722B2 (en) * 2005-09-06 2011-11-02 Kddi株式会社 Data transmission system and data transmission method
CN100438394C (en) * 2006-01-12 2008-11-26 北京大学 Construction method of non-regular permutation matrix LDPC code and its device
CN101005333B (en) * 2006-01-17 2010-05-12 华为技术有限公司 Low density parity check code encoding method
KR100899738B1 (en) * 2006-02-02 2009-05-27 삼성전자주식회사 Ldpc decoder and decoding based on node memory
CN100546205C (en) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 The method of constructing low-density parity code, interpretation method and transmission system thereof
WO2007145491A1 (en) * 2006-06-15 2007-12-21 Samsung Electronics Co., Ltd. Apparatus and method of encoding/decoding block low density parity check codes in a communication system
KR101154995B1 (en) * 2006-07-14 2012-06-15 엘지전자 주식회사 Method for performing a Low Density Parity Check encoding
JP4603518B2 (en) * 2006-07-27 2010-12-22 日本放送協会 Encoding device and decoding device
US8230299B2 (en) 2006-09-18 2012-07-24 Availink, Inc. Interleaving scheme for an LDPC coded QPSK/8PSK system
WO2008034291A1 (en) * 2006-09-18 2008-03-27 Ming Yang An interleaving scheme for an ldpc coded qpsk/8psk system
CN101127581B (en) * 2007-09-07 2010-09-08 普天信息技术研究院有限公司 A mapping and reverse mapping method and device for LDPC coding modulation
KR101431268B1 (en) 2007-12-14 2014-08-20 삼성전자주식회사 Apparatus and method for generating low density parity check codes for sequential decoding algorithm
CN101459430B (en) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 Encoding method and apparatus for low density generation matrix code
CN102301704B (en) * 2009-02-06 2014-04-23 Lg电子株式会社 Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal
US8464123B2 (en) 2009-05-07 2013-06-11 Ramot At Tel Aviv University Ltd. Matrix structure for block encoding
EP2436120B1 (en) 2009-05-27 2017-09-27 Novelsat Ltd Adaptive scheduling of iterative demodulation and ldpc decoding
CN102386995A (en) * 2010-09-01 2012-03-21 国家广播电影电视总局广播科学研究院 Check matrix constructing method and device for low density parity check code
US9264182B2 (en) 2012-09-13 2016-02-16 Novelsat Ltd. Iterative receiver loop
US10411737B2 (en) * 2015-02-25 2019-09-10 Samsung Electronics Co., Ltd. Transmitter and method for generating additional parity thereof
EP3624412B1 (en) * 2017-06-27 2022-06-08 Mitsubishi Electric Corporation Likelihood generation device
CN108462496B (en) * 2018-04-24 2021-04-02 成都吉纬科技有限公司 LDPC decoder based on random bit stream updating
CN108880563A (en) * 2018-06-14 2018-11-23 东南大学 A kind of the improvement coding method and system of LDPC code

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2266107T3 (en) * 2001-01-16 2007-03-01 Koninklijke Philips Electronics N.V. MAPPING BY CODIFIED MODULATION OF BITS INTERRUPTED (BICM).
EP1379001A3 (en) * 2002-07-03 2004-03-10 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes

Also Published As

Publication number Publication date
CN1481130A (en) 2004-03-10
JP2010050994A (en) 2010-03-04
JP2004064756A (en) 2004-02-26
EP1385270B1 (en) 2007-05-16
KR20040010116A (en) 2004-01-31
ATE362675T1 (en) 2007-06-15
DE60313832T2 (en) 2008-01-24
EP1385270A3 (en) 2004-02-04
ES2285049T3 (en) 2007-11-16
EP1385270A2 (en) 2004-01-28
KR100543154B1 (en) 2006-01-20
DE60313832D1 (en) 2007-06-28
DK1385270T3 (en) 2007-09-24

Similar Documents

Publication Publication Date Title
JP4422436B2 (en) Method and system for generating a low density parity check code
KR100683600B1 (en) Encoding of low-density parity check codes using a structured parity check matrix
JP3917563B2 (en) Method and system for decoding low density parity check (LDPC) codes
US8095854B2 (en) Method and system for generating low density parity check codes
US7962830B2 (en) Method and system for routing in low density parity check (LDPC) decoders
US7398455B2 (en) Method and system for decoding low density parity check (LDPC) codes
EP2273683B9 (en) Encoding of low density parity check (LDPC) codes

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051012

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061019

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061025

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080924

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081002

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091008

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

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

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4422436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131211

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

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

EXPY Cancellation because of completion of term