JP2007166605A - パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置 - Google Patents

パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置 Download PDF

Info

Publication number
JP2007166605A
JP2007166605A JP2006325863A JP2006325863A JP2007166605A JP 2007166605 A JP2007166605 A JP 2007166605A JP 2006325863 A JP2006325863 A JP 2006325863A JP 2006325863 A JP2006325863 A JP 2006325863A JP 2007166605 A JP2007166605 A JP 2007166605A
Authority
JP
Japan
Prior art keywords
vector
parity check
check matrix
row
subset
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.)
Pending
Application number
JP2006325863A
Other languages
English (en)
Inventor
Sung-Hee Hwang
盛 ▲煕▼ 黄
Hyun-Jung Kim
▲ひょん▼ 廷 金
Jin-Seok Hong
振 碩 洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007166605A publication Critical patent/JP2007166605A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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
    • 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

Abstract

【課題】 デコーディングによるエンコーディングを可能にするパリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置を提供する。
【解決手段】 M×Nパリティ検査行列H=[H|H]を定義するステップと、記部分行列Hとして、あらゆる行ベクトルが線形独立であり、あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、部分集合Aは、集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、部分集合A(2≦i≦k)は、部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列を生成するステップとを含む。
【選択図】 図6

Description

本発明は、エラー訂正のためのパリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置に関する。
情報記録媒体の高密度化、データ伝送の高密度化によって有/無線通信、光通信などを含むデータ伝送のための通信チャンネル上で、単位時間当りデータ再生または伝送量が多くなるにつれて、チャンネルの状況が相対的に悪化して、既存より多くのエラーを含む。例えば、光情報記録媒体の場合、高密度によって物理的な単位長にさらに多くのデータが保存されて、ホコリ、スクラッチ、指紋などによって、さらに多くのエラーを内包する。また、有無線通信の場合、データの高画質化によって単位時間当り伝送されるデータ量が多くなって、同じ時間の通信障害に対して、受信されたデータが持つエラーの量が相対的に多くなっている。これにより、高密度化による通信チャンネル上に高いエラー訂正能力を持つエラー訂正方法またはエラー訂正コードが要求されている。
これによるエラー訂正コード及び方法で、既存のRS(リード−ソロモン)コードのように入力されたビットのハード値(0または1)でエラー訂正を行う方式ではない、ターボコードデコーディング、LDPC(ロー デンシティ パリティ チェック)デコーディングのように入力されたビットのソフト値(0.2、0.9など)を参照して、反復訂正を通じてエラー訂正を行う“ソフトイタラティブデコーディング”方式が注目されている。前記入力されるビットのソフト値というのは、一般的に入力されたハード値の確率として表すことができる。
一般的に、RSコードやLDPCコードのような線形ブロックコードは、与えられたコードワードベクトルCに対してHC=0を満足するパリティ検査行列(パリティ チェック マトリックス)Hが与えられる。また、前記与えられたHからm*G=Cを満足する生成行列(ジェネレータ マトリックス)Gが存在する。ここで、mは、メッセージベクトル、Cはコードワードベクトルである。すなわち、線形ブロックコードでは、生成行列Gを利用して、メッセージベクトルをコードワードベクトルにしてエンコーディングを行い、パリティ検査行列Hを利用して受信されたコードワードベクトルをデコーディングして、メッセージベクトルを得る。したがって、これを、光情報記録媒体や有/無線通信、コンピュータシステムのような実際システムに適用するためには、一般的にエンコーディングのためのハードウェアとデコーディングのためのハードウェアとを別途に構成せねばならない。
特許文献1は、前記のようなエンコーディング/デコーディングのためのハードウェアの負担を低減するための方法として、一つのRSデコーダによりRSエンコーディングとRSデコーディングとを同時に行える方法を提案した。ここで、RSデコーダだけでエンコーディング可能な理由は、次の通りである。RSデコーダは、パリティ検査行列Hを利用して、受信されたコードワードを、代数的方法によりそのエラー位置とその値を探して訂正を行うが、エンコーディング時に、エラーの位置をあらかじめ知っていて訂正を行うイレイジャー(Erasure)訂正方法を利用する。メッセージベクトルに付加情報、すなわち、パリティがついてコードワードベクトルになるが、この時、パリティが添加される部分をあらかじめエラーと見なし、メッセージベクトルを確定してRSデコーダに入力すれば、RSデコーダは、受信されたコードワードに対するイレイジャー訂正を行って、メッセージベクトルに対する実際パリティベクトルを生成することによってエンコーディングを行う。しかし、このような方法は、ターボコードやLDPCコードのように、反復(Iteration)によるデコーディングを行うシステムに適用できないという問題がある。
米国特許第5,771,244号明細書 日本特許公開第2005−051756号公報 日本特許公開第平8−275175号公報 日本特許公開第昭63−86928号公報
本発明は、前記のような問題を解決して、デコーダによるエンコーディングを行えるパリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置を提供することを目的とする。
前記のような課題を解決するための本発明の一特徴は、エラー訂正及びデータのデコーディングによるエンコーディングのためのパリティ検査行列において、前記パリティ検査行列は、M×N行列H=[H|H]であり、前記部分行列Hは、M×(N−M)行列であり、前記部分行列Hは、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは互いに交集合を持たず、空集合ではない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合であるM×M行列である。
望ましくは、前記パリティ検査行列は、4サイクルを含まない。
本発明の他の特徴は、エラー訂正のためのパリティ検査行列を生成する方法において、M×Nパリティ検査行列H=[H|H]を定義するステップと、前記部分行列Hとして、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列を生成するステップと、を含むことである。
本発明のさらに他の特徴は、N−M次元のデータメッセージベクトルをエンコーディングする方法において、M×Nパリティ検査行列を生成するステップと、前記生成されたパリティ検査行列を利用したデコーディングにより、前記メッセージベクトルに付加されるM次元のパリティベクトルを獲得するステップと、を含むことである。
望ましくは、前記パリティベクトルを獲得するステップは、前記メッセージベクトルと、全体が0に設定されたパリティベクトルとを入力としてソフトイタラティブデコーディングを行うことによって、前記パリティベクトルをエラー訂正するステップを含む。
本発明のさらに他の特徴は、エラー訂正装置において、M×Nパリティ検査行列を生成する行列生成部と、前記生成されたパリティ検査行列を利用したデコーディングにより、N−M次元のメッセージベクトルに付加されるM次元のパリティベクトルを獲得して前記メッセージベクトルをエンコーディングし、受信されたコードワードベクトルのデコーディングを行うデコーダとを備えることである。
望ましくは、前記エラー訂正装置は、前記エンコーディング実行時、前記メッセージベクトルの0を−1に置換した情報と、全体が0に設定されたパリティベクトルで構成されたコードワードベクトルとを前記デコーダに出力するデコーダ入力処理部をさらに備え、前記デコーダは、ソフトイタラティブデコーダである。
本発明の構成によれば、デコーディングによるエンコーディングができるので、システム具現時にパリティ検査行列のためのデコーダだけでデータのエンコーディングとデコーディングとをいずれも行える。
以下、添付された図面を参照して本発明の望ましい実施形態を説明する。
エンコーディングは、システマチックエンコーディングと非システマチックエンコーディングとに大別される。システマチックエンコーディングは、メッセージベクトルを元来の値そのまま維持し、パリティベクトルのみを付加してコードワードを生成するエンコーディング方法をいう。すなわち、システマチックエンコーディング方法によりエンコーディングされたコードワードのメッセージベクトルに該当する部分は、元来メッセージベクトルと同じ値を持つ。一方、非システマチックエンコーディング方法によれば、メッセージベクトルの値がエンコーディングにより他の値に変更される。
本発明によって、デコーディングによるシステマチックエンコーディングを可能にするパリティ検査行列の構造は、次のように定義される。
本発明によるパリティ検査行列は、GF(2)上のベクトル空間でM個の線形独立した行(row)を持つM×N行列Hで定義され、HのM×M部分行列(sub−matrix)Hは、次のような構造を持つと定義される。
定義1:HのM個の行ベクトルの集合をAとする。
定義2:与えられたベクトルの各成分のうち、0でない成分の数をウエート(weight)としよう。例えば、ベクトルV=(1,0,0,0,1,0,0)のウエートは2である。
定義3:集合Aの元素のうち、ウエートが1である元素の集合をAとする。
1.集合Aの部分集合Aは空集合でない。
2.集合Aと集合Aとの差集合1=A−Aが空集合でなければ、集合Bは、次のようなベクトルで構成されたBの部分集合Aを含み、Aは空集合ではない。集合Bの元素であるベクトルvに対して、vとAのベクトルとの線形結合により、ウエートが1であるベクトルを作ることができるならば、前記ベクトルvはAの元素である。
3.差集合B=A−(A∪A)が空集合でなければ、集合Bは、次のようなベクトルで構成されたBの部分集合Aを含み、Aは空集合でない。集合Bの一元素であるベクトルvに対して、vとA∪Aのベクトルとの線形結合によりウエートが1であるベクトルを作ることができるならば、前記ベクトルvはAの元素である。
4.前記2と3のような方式により、差集合B=A−(A∪A∪…∪A)が空集合になる、すなわち、A=A∪A∪…∪Aになるkが存在し、kは、1より大きいか、または同じであり、Mより小さいか、または同じである。
5.HのM個の行ベクトルは線形独立である。
要約すれば、本発明によるパリティ検査行列は、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列Hを含む、M×N行列H=[H|H]構造で定義される。また、パリティ検査行列が4サイクルを含まないことが望ましい。4サイクルが含まれれば、パリティ検査行列の性能が顕著に落ちるためである。
図1は、本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第1実施形態を図示したものである。図1を参照するに、Mは8であり、i番目行ベクトルをR(i=1,2,…,8)とした。この実施形態で、kは8であり、それぞれのiに対して、Aは、一つの行ベクトルのみを持って{R}と同一である。
図2は、本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第2実施形態を図示したものである。図2を参照するに、Mは8であり、i番目行ベクトルをR(i=1,2,…,8)とした。この実施形態で、kは4であり、A={R,R}、A={R,R}、A={R,R}、A={R,R}である。
図3Aは、本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第3実施形態を図示したものである。図3Bは、本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第4実施形態を図示したものである。
図3A及び図3Bを参照するに、Mは8*Bであり、ここで、Bは、1以上の整数である。すなわち、図3A及び図3Bは、図1及び図2をそれぞれ拡張したものであり、パリティ検査行列Hがブロック構造からなる場合において、本発明による定義を満足するHの部分行列Hを表す図である。BR(i=1,2,…,8)は、B×8*B部分行列をいう。例えば、BRは、Hの最初のB個の行ベクトルで構成されたB×8*B行列(P
0 0 0 0 0 0 0)である。P(301,351)は、B×B単位行列Iであるか、Iを行移動して作ったIの順列行列(permutation matrix)である。Iの行移動により作られるPは、全体パリティ検査行列Hのガース(girth、行列H内で最も短いサイクルの長さ)が6以上になるように決定することが望ましい。すなわち、4サイクルを持たないようにその移動(shift)値が決定されることが望ましい。また、図3A及び図3Bで0は、B×Bゼロ行列をいう。
図1及び図2に図示されたように、本発明によるHは、少なくとも一つ以上のウエートが1である列ベクトルを持つ。パリティ検査行列の特性上ウエートが1である列(column)を持つようになれば、パリティ検査行列の性能が多少低下する。図3A及び図3Bのように、B×B行列で構成されたブロック構造で本発明によるH構造を設計する場合、ウエートが1である列が少なくともB個含まれる。ウエートが1である列の数を最小化することが望ましいので、このために、P(302,352)は、列のウエートが1または2であるB×Bブロックで構成されることが望ましく、P(303,353)は、図1または図2のように、本発明による性質を満足するB×B行列で構成されることが望ましい。
がIの順列行列である場合、図3Aで、k=8であり、i=1,2,…,8に対して、A={v|vは、BRの行ベクトル}であり、ウエートが1である列ベクトルがB個存在する。図3Bの場合、k=4であり、A={v|vは、BRまたはBRの行ベクトル}、A={v|vは、BRまたはBRの行ベクトル}、A={v|vは、BRまたはBRの行ベクトル}、A={v|vは、BRまたはBRの行ベクトル}であり、ウエートが1である列ベクトルが2*B個存在する。
一方、Pが図1のような構造を持つ場合、図3Aで、k=7+Bであり、i=1,2,…,7に対してA={v|vは、BRの行ベクトル}であり、i=1,2,…,Bに対してAi+7={BRのi番目の行ベクトル}であり、ウエートが1である列ベクトルが1個存在する。図3Bの場合、k=3+Bであり、A={v|vは、BRまたはBRの行ベクトル}、A={v|vは、BRまたはBRの行ベクトル}、A={v|vは、BRまたはBRの行ベクトル}、i=1,2,…,Bに対して、A+i={BRまたはBRのi番目行ベクトル}であり、ウエートが1である列ベクトルが2個存在する。
エンコーディング時間はkに比例し、ウエートが1である列ベクトルの数が大きいほど、パリティ検査行列のエラー訂正能力は落ちる。前記のように、ブロック構造下でkとウエートが1である列ベクトルの数とを調節することができるので、エンコーディング時間とHの性能とを考慮して適切な構造を選択することが望ましい。
図4Aは、図1の部分行列Hをパリティ検査ノード401とビットノード402との連結状態を表すグラフに変換したものであり、図4Bは、図2の部分行列Hを、パリティ検査ノード451とビットノード452との連結状態を表すグラフに変換したものである。
図5は、本発明によるデコーディングによるエンコーディング方法を図示したフローチャートである。図5を参照するに、まず前述した定義を満足するパリティ検査行列を生成する(S502)。その後、生成されたパリティ検査行列を利用したデコーディングにより、メッセージベクトルをコードワードベクトルにエンコーディングする。デコーディング方法としては、ソフトイタラティブデコーディングを使用でき、この場合、パリティ部分全体を0に設定してソフトイタラティブデコーディングを行い、デコーディング実行結果でパリティ部分の値を求めることができるので、デコーディングによるエンコーディングが可能である(S504)。しかし、後述するように、ソフトイタラティブデコーディング以外の方式でもデコーディングによるエンコーディングが可能である。次いで、本発明によるデコーディングによるエンコーディング方法を詳細に説明する。
本発明によって、一つのデコーダでエンコーディングを行うためには、エンコーディングであるかデコーディングであるかを判断できる情報を受信した後、エンコーディングと見なされれば、代数的方法やソフトイタラティブデコーディングによりパリティベクトルP(x)を求める。
まず、パリティ検査行列がH=[H|H]とする。ここで、Hは、M×(N−M)部分行列である。与えられたN−M次元メッセージベクトルM(x)に対するM次元パリティベクトルをP(x)=(P,P,…,P)とした時、コードワードベクトルC(x)=(M(x)、P(x))は、HC=H+H=0(M次元のゼロベクトル)を満足せねばならない。すなわち、Hのあらゆる行ベクトルとCとの行列積は、GF(2)上で0でなければならない。結論的に、与えられたM(x)に対してHC=0を満足するM次元パリティベクトルP(x)を探せば、デコーディングによるエンコーディングが可能である。
第1に、代数的方法によるデコーディング過程を説明する。まず、P(x)=(x,x,…,x)と設定する。この値は、あらかじめ決定された任意の値であればよい。この時、C(x)=(M(x),P(x))である。代数的方法による場合、kステップのデコーディングによりM(x)をC(x)にエンコーディングできる。
段階1:集合Aによるデコーディングを行う。
集合Aにある行ベクトルを含むHの行ベクトルとC との行列積は0でなければならず、前記行ベクトルのウエートは1であるため、前記行ベクトルでその値が1である成分に該当するパリティベクトルP(x)の成分xi1は、一元一次方程式により唯一の解Pi1を持つ。その結果AによりP(x)は、P(x)=(x,…,Pi1,…,x)にデコーディングされる。C(x)=(M(x),P(x))とする。
段階2:段階1のデコーディング結果を持ってAによるデコーディングを行う。
集合Aにある行ベクトルを含むHの行ベクトルとC との行列積は0でなければならず、前記行ベクトルは、Aにある行ベクトルとの線形結合を通じてウエートが1である行ベクトルを生成できるので、前記行ベクトルでその値が1である成分に該当するパリティベクトルP(x)の成分xi2は、一元一次方程式により唯一の解Pi2を持つ。その結果、AによりP(x)は、P(x)=(x,…,Pi1,…,Pi2,…,x)にデコーディングされる。C(x)=(M(x),P(x))とする。
段階k:ステップ(k−1)のデコーディング結果を持ってAによるデコーディングを行う。
集合Aにある行ベクトルを含むHの行ベクトルとCk−1 との行列積は0でなければならず、前記行ベクトルは、A+A+…+Ak−1にある行ベクトルとの線形結合を通じて、ウエートが1である行ベクトルを生成できるので、前記行ベクトルでその値が1である成分に該当するパリティベクトルPk−1(x)の成分xikは、一元一次方程式により唯一の解Pikを持つ。その結果、AによりPk−1(x)は、P(x)=(P,P,…,P)にデコーディングされる。C(x)=(M(x)、P(x))とすれば、C(x)は、M(x)のエンコーディングされたコードワードである。
第二に、Sum−ProductやSum−Productのapproximationである“MIN”Approximationのように、LLR(Log Likelihood Ratio)を使用したソフトイタラティブデコーディングによるエンコーディング方法を説明する。
この場合、M(x)をM’(x)=2*M(x)−1に転換し、P’(x)=0に設定して、C’(x)=(M’(x),P’(x))をイタラティブデコーダに入力すれば、多くてもk回の反復によりHC=0になるC(x)=(M(x)、P(x))をデコーディングできる。この時、P’(x)はイレイジャー表示のために0に設定されねばならず、これは、イレイジャー訂正を通じてエンコーディングを行うためである。
M’(x)は、いかなるエラーも含んでおらず、その成分の値が1または−1であり、P’(x)がいずれも0であるために、ソフトイタラティブデコーディングの特性上、最初の訂正によりAの行ベクトルの成分が1である位置に対応するP(x)の成分の値を訂正する。最初の訂正による結果をC(x)とした時、HC =0ならば訂正が完了し、そうでなければ、2番目の反復訂正を行う。この時、Aの行ベクトルは、Aの行ベクトルとの線形結合を通じてウエートが1である行ベクトルを派生できるために、前記派生されたウエートが1である行ベクトルの成分が、1の位置に対応するP(x)の成分の値を訂正する。2番目の訂正による結果をC(x)とした時、HC =0ならば訂正が完了し、そうでなければ、反復訂正を続ける。このような方式で、少なくともk番目の訂正によりP(x)のあらゆる成分値を訂正し、結果的には、多くてもk回のイタラティブデコーディングにより、C’(x)をC(x)=(M(x),P(x))に訂正する。すなわち、メッセージベクトルM(x)を、パリティベクトルが追加されたコードワードにエンコーディングする。
図6は、本発明によるエラー訂正装置の構成図である。エラー訂正装置は、本発明によるM×Nパリティ検査行列Hを生成する行列生成部630と、前記生成されたパリティ検査行列を利用したデコーディングを行うデコーダ620とを備える。デコーダ620は、エンコーディング時は、N−M次元のメッセージベクトル602に付加されるM次元のパリティベクトルを獲得して、エンコーディングされたメッセージベクトル622を出力し、デコーディング時は、受信されたコードワードベクトル624をデコーディングして、デコーディングされたコードワードベクトル604を出力する。また、デコーダ620としてソフトイタラティブデコーダを使用する場合、エンコーディング実行時、入力されたメッセージベクトル602の0を−1に置換した情報と、全体が0に設定された表示されたパリティベクトルとで構成されたコードワードベクトルをデコーダ620に出力するデコーダ入力処理部610をさらに備えることができる。
図7Aないし図7Dは、本発明によるデコーディングによるエンコーディング過程の例を示す図である。図示された例は、ソフトイタラティブデコーディングによるエンコーディング方法により、HC=0を満足するC(x)を求める過程であり、図2に図示された例によるパリティ検査行列Hを利用して、ソフトイタラティブデコーディングを行う過程である。まず、ソフトイタラティブデコーディングのためにC’(x)=(2*M(x)−1,0)を入力する。すなわち、メッセージ部分は値が1ならば1、0ならば−1に変換し、パリティ部分は、イレイジャー訂正のために0に設定して、ソフトイタラティブデコーダに入力する。
図7Aは、入力C’(x)=(M’(x),0,0,0,0,0,0,0,0)である場合、最初の訂正過程を図示したものである。LLR(1)(qi)を硬判定(Hard decision)した結果をC(x)とした時、HC =0ならば、デコーディングを終了し、そうでなければ訂正を続ける。図7Bは、二番目の訂正過程を図示したものである。LLR(2)(qi)を硬判定した結果をC(x)とした時、HC =0ならばデコーディングを終了し、そうでなければ訂正を続ける。図7Cは、3番目の訂正過程を図示したものである。LLR(3)(qi)を硬判定した結果をC(x)とした時、HC =0ならばデコーディングを終了し、そうでなければ訂正を続ける。図7Dは、4番目の訂正過程を図示したものである。LLR(4)(qi)を硬判定した結果をC(x)とした時、C(x)=C(x)であるしかないので、HC =0であり、デコーディングが終了する。C(x)=C(x)であるしかない理由は、パリティ部分のa、b、c、d、e、f、g、h値が、デコーディングアルゴリズムにより各ステップでの行ベクトル、すなわち、AとCi(x)との行列積が0になるように設定されるためである。
前述したような、本発明による方法は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現できる。
これまで、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態に具現できるということを理解できるであろう。したがって、開示された実施形態は限定的な観点でなく説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく特許請求の範囲に現れており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれていると解釈されねばならない。
本発明は、情報記録媒体に好適に用いられる。
本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第1実施形態を示す図である。 本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第2実施形態を示す図である。 本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第3実施形態を示す図である。 本発明によるM×Nパリティ検査行列H=[H|H]の部分行列Hの第4実施形態を示す図である。 図1の部分行列Hを、パリティ検査ノードとビットノードとの連結状態を表すグラフに変換した図である。 図2の部分行列Hを、パリティ検査ノードとビットノードとの連結状態を表すグラフに変換した図である。 本発明によるデコーディングによるエンコーディング方法を示すフローチャートである。 本発明によるエラー訂正装置の構成図である。 本発明によるデコーディングによるエンコーディング過程の例を示す図である。 本発明によるデコーディングによるエンコーディング過程の例を示す図である。 本発明によるデコーディングによるエンコーディング過程の例を示す図である。 本発明によるデコーディングによるエンコーディング過程の例を示す図である。
符号の説明
602 メッセージベクトル
604 コードワードベクトル
610 デコーダ入力処理部
620 デコーダ
622 エンコーディングされたメッセージベクトル
624 デコーディングされたコードワードベクトル
630 パリティ検査行列生成部

Claims (31)

  1. エラー訂正及びデータのデコーディングによるエンコーディングのためのパリティ検査行列において、
    前記パリティ検査行列は、M×N行列H=[H|H]であり、
    前記部分行列Hは、M×(N−M)行列であり、
    前記部分行列Hは、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは互いに交集合を持たず、空集合ではない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合であるM×M行列であることを特徴とするパリティ検査行列。
  2. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項1に記載のパリティ検査行列。
  3. 前記パリティ検査行列は、M=8*Bであるブロック構造を持ち、前記Bは、1以上の整数であり、前記Hは、少なくともB個のウエートが1である列ベクトルを含むことを特徴とする請求項1に記載のパリティ検査行列。
  4. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項3に記載のパリティ検査行列。
  5. エラー訂正及びデータのデコーディングによるエンコーディングのためのパリティ検査行列を生成する方法において、
    M×Nパリティ検査行列H=[H|H]を定義するステップと、
    前記部分行列Hとして、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列を生成するステップとを含むことを特徴とするパリティ検査行列の生成方法。
  6. 前記パリティ検査行列から4サイクルを除去するステップをさらに含むことを特徴とする請求項5に記載のパリティ検査行列の生成方法。
  7. 前記M×Nパリティ検査行列を定義するステップは、前記パリティ検査行列がM=8*Bであるブロック構造を持ち、前記Bは、1以上の整数になるように定義するステップを含み、
    前記M×M部分行列Hを生成するステップは、前記H内に少なくともB個のウエートが1である列ベクトルを生成するステップを含むことを特徴とする請求項5に記載のパリティ検査行列の生成方法。
  8. 前記パリティ検査行列から4サイクルを除去するステップをさらに含むことを特徴とする請求項7に記載のパリティ検査行列の生成方法。
  9. N−M次元のデータメッセージベクトルをエンコーディングする方法において、
    M×Nパリティ検査行列H=[H|H]を定義し、前記部分行列Hとして、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列を生成することによって、パリティ検査行列を生成するステップと、
    前記生成されたパリティ検査行列を利用したデコーディングにより、前記メッセージベクトルにM次元のパリティベクトルを付加することで、前記メッセージベクトルをエンコーディングするステップとを含むことを特徴とするエンコーディング方法。
  10. 前記パリティ検査行列を生成するステップは、
    前記生成されたパリティ検査行列から4サイクルを除去するステップを含むことを特徴とする請求項9に記載のエンコーディング方法。
  11. 前記M×Nパリティ検査行列を生成するステップは、
    前記パリティ検査行列がM=8*Bであるブロック構造を持ち、前記Bは、1以上の整数になるように定義するステップと、
    前記H内に少なくともB個のウエートが1である列ベクトルを生成するステップとを含むことを特徴とする請求項9に記載のエンコーディング方法。
  12. 前記M×Nパリティ検査行列を生成するステップは、前記パリティ検査行列から4サイクルを除去するステップを含むことを特徴とする請求項11に記載のエンコーディング方法。
  13. 前記メッセージベクトルをエンコーディングするステップは、前記パリティベクトルにイレイジャー表示を行うステップを含み、
    前記エンコーディングは、イレイジャー訂正により行われ、前記デコーディングは、ソフトイタラティブデコーディング方法であることを特徴とする請求項9に記載のエンコーディング方法。
  14. 前記パリティベクトルにイレイジャー表示を行うステップは、デコーディング時にパリティベクトル全体を0に設定するステップを含むことを特徴とする請求項13に記載のエンコーディング方法。
  15. 前記メッセージベクトルをエンコーディングするステップは、
    前記メッセージベクトルの0を−1に置換するステップをさらに含むことを特徴とする請求項13に記載のエンコーディング方法。
  16. N−M次元のメッセージベクトルをエンコーディングする方法において、
    M×Nパリティ検査行列H=[H|H]を定義し、前記部分行列Hとして、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合になるM×M行列を生成することによって、パリティ検査行列を生成するステップと、
    パリティベクトル全体を0に設定し、前記メッセージベクトルの0を−1に置換し、前記生成されたパリティ検査行列を利用したソフトイタラティブデコーディングにより、M次元の前記パリティベクトルを前記メッセージベクトルに付加することで、前記メッセージベクトルをエンコーディングするステップとを含むことを特徴とするエンコーディング方法。
  17. 前記M×Nパリティ検査行列を生成するステップは、前記パリティ検査行列から4サイクルを除去するステップを含むことを特徴とする請求項16に記載のエンコーディング方法。
  18. 前記M×Nパリティ検査行列を生成するステップは、
    前記パリティ検査行列がM=8*Bであるブロック構造を持ち、前記Bは、1以上の整数になるように定義するステップと、
    前記H内に少なくともB個のウエートが1である列ベクトルを生成するステップと、を含むことを特徴とする請求項16に記載のエンコーディング方法。
  19. 前記M×Nパリティ検査行列を生成するステップは、前記パリティ検査行列から4サイクルを除去するステップを含むことを特徴とする請求項18に記載のエンコーディング方法。
  20. エラー訂正装置において、
    M×(N−M)部分行列Hと、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合であるM×M部分行列Hを含む、M×Nパリティ検査行列H=[H|H]を生成する行列生成部と、
    前記生成されたパリティ検査行列を利用したデコーディングにより、N−M次元のメッセージベクトルに付加されるM次元のパリティベクトルを獲得して前記メッセージベクトルをエンコーディングし、受信されたコードワードベクトルのデコーディングを行うデコーダとを備えることを特徴とするエラー訂正装置。
  21. 前記メッセージベクトルの0を−1に置換して前記デコーダに出力するデコーダ入力処理部をさらに備え、前記パリティベクトルは全体が0に設定され、
    前記デコーダは、ソフトイタラティブデコーダであることを特徴とする請求項20に記載のエラー訂正装置。
  22. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項20に記載のエラー訂正装置。
  23. 前記パリティ検査行列は、M=8*Bであるブロック構造を持ち、前記Bは、1以上の整数であり、前記Hは、少なくともB個のウエートが1である列ベクトルを含むことを特徴とする請求項20に記載のエラー訂正装置。
  24. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項23に記載のエラー訂正装置。
  25. エラー訂正装置において、
    M×(N−M)部分行列Hと、あらゆる行ベクトルが線形独立であり、前記あらゆる行ベクトルの集合Aは、互いに交集合を持たず、空集合でない部分集合A,A,…,A(1≦k≦M)の合集合であり、前記部分集合Aは、前記集合Aの元素のうち、ウエートが1である行ベクトルの集合であり、前記部分集合A(2≦i≦k)は、前記部分集合A,…,Ai−1の合集合に含まれない行ベクトルのうち、前記部分集合A,…,Ai−1の合集合に含まれた行ベクトルとの線形結合で、ウエートが1である行ベクトルを派生できる行ベクトルの集合であるM×M部分行列Hを含む、M×Nパリティ検査行列H=[H|H]を生成する行列生成部と、
    パリティベクトル全体を0に設定し、前記メッセージベクトルの0を−1に置換し、前記生成されたパリティ検査行列を利用したソフトイタラティブデコーディングにより、M次元の前記パリティベクトルを前記メッセージベクトルに付加することで、前記メッセージベクトルをエンコーディングするデコーダとを備えることを特徴とするエラー訂正装置。
  26. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項25に記載のエラー訂正装置。
  27. 前記パリティ検査行列は、M=8*Bであるブロック構造を持ち、前記Bは、1以上の整数であり、前記Hは、少なくともB個のウエートが1である列ベクトルを含むことを特徴とする請求項25に記載のエラー訂正装置。
  28. 前記パリティ検査行列は、4サイクルを含まないことを特徴とする請求項27に記載のエラー訂正装置。
  29. 請求項5に記載の方法を行うプログラムを記録したコンピュータで読み取り可能な記録媒体。
  30. 請求項9に記載の方法を行うプログラムを記録したコンピュータで読み取り可能な記録媒体。
  31. 請求項16に記載の方法を行うプログラムを記録したコンピュータで読み取り可能な記録媒体。
JP2006325863A 2005-12-15 2006-12-01 パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置 Pending JP2007166605A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050124111A KR20070063851A (ko) 2005-12-15 2005-12-15 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치

Publications (1)

Publication Number Publication Date
JP2007166605A true JP2007166605A (ja) 2007-06-28

Family

ID=37781776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006325863A Pending JP2007166605A (ja) 2005-12-15 2006-12-01 パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置

Country Status (6)

Country Link
US (1) US20070162821A1 (ja)
EP (1) EP1798861B1 (ja)
JP (1) JP2007166605A (ja)
KR (1) KR20070063851A (ja)
CN (1) CN1983822A (ja)
DE (1) DE602006003516D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010001565A1 (ja) * 2008-07-04 2010-01-07 三菱電機株式会社 検査行列生成装置、検査行列生成方法、検査行列生成プログラム、送信装置、受信装置及び通信システム
US9098107B2 (en) 2012-11-12 2015-08-04 Fujitsu Limited Proximity determination method, proximity determination device, and proximity determination system

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4601675B2 (ja) * 2006-02-09 2010-12-22 富士通株式会社 Ldpc検査行列生成方法及び検査行列生成器並びに符号再送方法
US8539321B2 (en) * 2010-11-10 2013-09-17 Infineon Technologies Ag Apparatus and method for correcting at least one bit error within a coded bit sequence
US9450613B2 (en) 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
US9746392B2 (en) * 2012-08-07 2017-08-29 The Boeing Company Systems and methods to determine navigation states of a platform
KR101512081B1 (ko) * 2013-02-07 2015-04-14 최수정 특정 밀도를 기반으로 하는 저밀도 행렬을 이용한 부호화/복호화 방법 및 장치
KR101512078B1 (ko) * 2013-02-07 2015-04-14 최수정 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
US10033407B2 (en) 2016-04-08 2018-07-24 SK Hynix Inc. Optimization of low density parity-check code encoder based on a search for an independent set of nodes
JP6798754B2 (ja) * 2016-07-20 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 低密度パリティ検査符号の基底行列を生成するための方法及び装置
CN109756234A (zh) * 2019-01-15 2019-05-14 江西理工大学 一种基于拟阵理论的高码率的ldpc中长码构造方法
KR20230080769A (ko) 2021-11-30 2023-06-07 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771244A (en) * 1994-03-09 1998-06-23 University Of Southern California Universal Reed-Solomon coder/encoder
US6694476B1 (en) * 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US7072417B1 (en) * 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
US6785863B2 (en) * 2002-09-18 2004-08-31 Motorola, Inc. Method and apparatus for generating parity-check bits from a symbol set
KR100936022B1 (ko) * 2002-12-21 2010-01-11 삼성전자주식회사 에러 정정을 위한 부가정보 생성 방법 및 그 장치
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
US7165205B2 (en) * 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010001565A1 (ja) * 2008-07-04 2010-01-07 三菱電機株式会社 検査行列生成装置、検査行列生成方法、検査行列生成プログラム、送信装置、受信装置及び通信システム
JP5307137B2 (ja) * 2008-07-04 2013-10-02 三菱電機株式会社 検査行列生成装置、検査行列生成方法、検査行列生成プログラム、送信装置、受信装置及び通信システム
US9098107B2 (en) 2012-11-12 2015-08-04 Fujitsu Limited Proximity determination method, proximity determination device, and proximity determination system

Also Published As

Publication number Publication date
EP1798861B1 (en) 2008-11-05
DE602006003516D1 (de) 2008-12-18
US20070162821A1 (en) 2007-07-12
EP1798861A1 (en) 2007-06-20
KR20070063851A (ko) 2007-06-20
CN1983822A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
JP2007166605A (ja) パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置
JP3727938B2 (ja) Ldpc復号化装置及びその方法
JP5752317B2 (ja) 準巡回低密度パリティ検査符号を求める方法、及び準巡回低密度パリティ検査符号に基づいてデータを符号化するシステム
KR100849044B1 (ko) 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
TW201815077A (zh) 極化碼之並列連續消除解碼與連續消除清單解碼的裝置和方法、製造方法及建立方法
US20070186138A1 (en) Techniques for providing greater error protection to error-prone bits in codewords genetated from irregular codes
JP2008544686A (ja) 低密度パリティ検査符号化の方法及び装置
JP2006238127A (ja) 復号装置および方法、並びにプログラム
US20050149845A1 (en) Method of constructing QC-LDPC codes using qth-order power residue
WO2004107585A1 (ja) 復号方法および復号装置、プログラム、記録再生装置および方法、並びに、再生装置および方法
JPWO2010073922A1 (ja) 誤り訂正符号化装置、復号装置、符号化方法、復号方法、及びそのプログラム
JP5374156B2 (ja) データを復号化及び符号化するための装置及び方法
KR100617769B1 (ko) 채널 부호화 장치 및 방법
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
JP7047092B2 (ja) 階段コードの復号化方法、装置および記憶媒体
KR100837730B1 (ko) 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
JP4634423B2 (ja) 情報送受信方法、符号化装置および復号化装置
JP4202161B2 (ja) 符号化装置および復号装置
JP2009182421A (ja) 復号化方法及び復号化装置
CN111527705B (zh) 用于解码器重用的信道码构造
US20150381210A1 (en) Parity check matrix creation method, encoding apparatus, and recording/reproduction apparatus
JP2006100941A (ja) 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法
JP2006523989A (ja) 可変長誤り訂正符号の構築のための方法および装置