JP3893383B2 - LDPC code parity check matrix generation method and parity check matrix generation apparatus - Google Patents

LDPC code parity check matrix generation method and parity check matrix generation apparatus Download PDF

Info

Publication number
JP3893383B2
JP3893383B2 JP2003572182A JP2003572182A JP3893383B2 JP 3893383 B2 JP3893383 B2 JP 3893383B2 JP 2003572182 A JP2003572182 A JP 2003572182A JP 2003572182 A JP2003572182 A JP 2003572182A JP 3893383 B2 JP3893383 B2 JP 3893383B2
Authority
JP
Japan
Prior art keywords
weight
row
column
check matrix
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003572182A
Other languages
Japanese (ja)
Other versions
JPWO2003073621A1 (en
Inventor
渉 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2003073621A1 publication Critical patent/JPWO2003073621A1/en
Application granted granted Critical
Publication of JP3893383B2 publication Critical patent/JP3893383B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/1151Algebraically constructed LDPC codes, e.g. LDPC codes derived from Euclidean geometries [EG-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/13Linear codes
    • H03M13/134Non-binary linear block codes not provided for otherwise

Description

技術分野
本発明は、誤り訂正符号としてLDPC(Low−Density Parity−Check)符号を採用した場合におけるLDPC符号用検査行列生成方法に関するものである。
背景技術
第27図は、LDPC符号化/復号システムを示す図である。第27図において、101は符号化器であり、102は変調器であり、103は通信路であり、104は復調器であり、105は復号器である。ここでは、従来のLDPC符号用検査行列生成方法を説明する前に、LDPC符号を使用した場合の符号化,復号の流れについて説明する。
まず、送信側の符号化器101では、後述する所定の方法で検査行列Hを生成する。そして、以下の条件に基づいて生成行列Gを求める。

Figure 0003893383
その後、符号化器101では、情報長kのメッセージ(m…m)を受け取り、上記生成行列Gを用いて符号語Cを生成する。
Figure 0003893383
そして、変調器102では、生成した符号語Cに対して、BPSK,QPSK,多値QAMなどのデジタル変調を行い、送信する。
一方、受信側では、復調器104が、通信路103を介して受け取った変調信号に対して、BPSK,QPSK,多値QAMなどのデジタル復調を行い、さらに、復号器105が、LDPC符号化された復調結果に対して、「sum−productアルゴリズム」による繰り返し復号を実施し、推定結果(もとのm…mに対応)を出力する。
以下、従来のLDPC符号用検査行列生成方法について説明する。LDPC符号用の検査行列としては、たとえば、LDPCの発案者Gallagerにより以下のような行列が提案されている(第28図参照)。
第28図に示す行列は、「1」と「0」の2値の行列で、「1」の部分を塗りつぶしている。他の部分は全て「0」である。この行列は、1行の「1」の数(これを行の重みと表現する)が4で、1列の「1」の数(これを列の重みと表現する)が3であり、全ての列と行の重みが均一なため、これを一般に「Regular−LDPC符号」と呼んでいる。また、Gallagerの符号では、たとえば、第28図に示すように、行列を3ブロックに分け、2ブロック目と3ブロック目に対してランダム置換を行っている。
しかしながら、このランダム置換には、所定のルールがないため、より特性の良好な符号を見つけるためには、計算機による時間のかかる探索を行わなければならなかった。
そこで、たとえば、計算機探索によらなくても確定的に行列を生成でき、比較的安定した良好な特性を示すLDPC符号として、ユークリット幾何符号を用いる方法が、Y.Kou等(Y.Kou,S.Lin,and M.P.C.Fossorier,″Low Density Parity Check Codes Based on Finite Geometries:A Rediscovery,″ISIT 2000,pp.200,Sorrento,Itary,June 25−30,2000.)によって提案された。この方法では、規則的なensemble(アンサンブル)で構成された「Regular−LDPC符号」について説明されている。
ここでは、有限幾何符号の一種であるユークリット幾何符号EG(2,2)を用いてLDPC符号の検査行列を生成する方法が提案されており、誤り率10−4点において、シャノン限界から1.45dBに接近した特性を得ている。第29図は、たとえば、ユークリット幾何符号EG(2,2)の構成を示す図であり、行,列のそれぞれの重みが4,4の「Regular−LDPC符号」構造をしている。
したがって、ユークリット幾何符号EG(m,2)の場合、その特性は、以下のように規定される。
符号長: n=22s−1
冗長ビット長: n−k=3−1
情報長: k=22s−3
最小距離: dmin=2+1
密度: r=2/(22s−1)
第29図を見ても分かるように、ユークリット幾何符号は、各行の「1」の配置が行毎に巡回シフトした構造になっており、符号が容易にかつ確定的に構成できる特長がある。
Y.Kouらによる検査行列の生成方法では、さらに、上記ユークリット幾何符号に基づいて行と列の重みを変更し、行,列を必要に応じて拡張している。たとえば、EG(2,2)の列の重みを1/2に分離する場合、Y.Kouらの論文では、1列内に4つある重みを1つ置きに2個づつ分離する。第30図は、列の重みを4から2に規則的に分離した例を示す図である。
一方、上記「Regular−LDPC符号」の特性よりも「Irregular−LDPC符号」の特性の方が良好であることが、Ludy等(M.G.Luby,M.Mitzenmacher,M.A.Shokrollahi,and D.A.Spielman,″Improved Low−Density Parity−Check Codes Using Irregular Graphs and Belief Propagation,″Proceedings of 1998 IEEE International Symposium on Information Theory,pp.171,Cambridge,Mass.,August 16−21,1998.)により報告された。なお、上記「Irregular−LDPC符号」は、列と行の重みがそれぞれあるいはどちらか一方が均一でないLDPC符号を表す。
そして、それは、Richardson等(T.J.Richardson and R.Urbanke,″The capacity of low−density parity−check codes under message−passing decoding,″IEEE Trans.Inform.Theory,vol.47,No.2,pp.599−618,Feb.2001.)、あるいはChung等(S.−Y.Chung,T.J.Richardson,and R.Urbanke,″Analysis of Sum−Product Decoding of Low−Density Parity−Check Codes Using a Gaussian Approximation,″IEEE Trans.Inform.Theory,vol.47,No.2,pp.657−670,Feb.2001.)によって理論的に解析された。
特に、Chung等は、繰り返し復号器における入力と出力の対数尤度比(LLR)がガウス分布に近似できると仮定してLDPC符号の「Sum−Productアルゴリズム」を解析し、良好な行と列の重みのアンサンブルを求めている。
しかしながら、たとえば、上記Chung等による従来のLDPC符号用検査行列生成方法は、行内の「1」の点の数(後述するバリアブルノードの次数配分に相当)と、列内の「1」の点の数(後述するチェックノードの次数配分に相当)と、の両方を変数として、下記の(1)式(rate:符号化率)が最大となるバリアブルノードの次数配分およびチェックノードの次数配分を求めている。すなわち、SNR(Signal to Noise Ratio)が最小となるアンサンブルを線形計画法により探索している。
Figure 0003893383
そのため、上記「rate」の最大値により得られる検査行列が流動的になり、特性が安定しない、という問題があった。また、従来のLDPC符号用検査行列生成方法は、バリアブルノードの次数配分の導出とチェックノードの次数配分の導出とを所定回数にわたって繰り返し行っているため、探索処理にある程度の時間を要する、という問題もあった。
従って、本発明は、確定的で特性が安定し、かつ任意のアンサンブルに対応したLDPC符号用の検査行列を、容易に探索可能で、さらに、性能の良好なLDPC符号用検査行列生成方法を提供することを目的としている。
発明の開示
本発明にかかるLDPC符号用検査行列生成方法にあっては、Irregular−LDPC符号の検査行列を生成するために、列の重みの最大値を決定する重み決定ステップと、前記列の重みの最大値に基づいて基本となるユークリット幾何符号を決定するユークリット幾何符号決定ステップと、符号化率を決定する符号化率決定ステップと、前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索ステップと、所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出ステップと、前記ユークリット幾何符号を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除ステップと、前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割ステップと、を含むことを特徴とする。
つぎの発明にかかるLDPC符号用検査行列生成方法において、前記行削除ステップにあっては、前記アンサンブルに基づいて前記ユークリット幾何符号における各行の重みをランダムに分割し、分割後の行数から前記情報長を減算し、その後、前記アンサンブルにおける各重みの比率を調整しながら、前記減算結果に相当する行数を削除することを特徴とする。
つぎの発明にかかるLDPC符号用検査行列生成方法において、前記行削除ステップにあっては、前記基本のユークリット幾何符号から所定の行数を削除し、その後、前記アンサンブルに基づいて当該削除後のユークリット幾何符号における各行の重みをランダムに分割することを特徴とする。
つぎの発明にかかるLDPC符号用検査行列生成方法にあっては、前記アンサンブルの重み配分を、重み単位の重み総数が整数で、かつ重み単位の重み総数の総和とユークリット幾何符号の「1」の総数とが等しくなるように調整し、調整後のアンサンブルに基づいて前記分割処理を行うことを特徴とする。
つぎの発明にかかるLDPC符号用検査行列生成方法にあっては、基本のランダム系列のラテン方陣を作成し、当該ラテン方陣に基づいて、前記ユークリット幾何符号における各行および各列から重み「1」を抽出することにより、各列および各行をランダムに分割することを特徴とする
つぎの発明にかかるLDPC符号用検査行列生成方法にあっては、Irregular−LDPC符号の検査行列を生成するために、所定の多項式を用いて前記ユークリット幾何符号における行または列の重みを分割し、特性劣化の要因となる前記ユークリット幾何符号に存在する「サイクル数6」を削減することを特徴とする。
つぎの発明にかかる検査行列生成装置にあっては、ユークリット幾何符号を用いてIrregular−LDPC符号の検査行列を生成する構成として、列の重みの最大値を決定する重み決定手段と、前記列の重みの最大値に基づいてユークリット幾何符号を決定するユークリット幾何符号決定手段と、符号化率を決定する符号化率決定手段と、前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索手段と、所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出手段と、前記ユークリット幾何符号を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除手段と、前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割手段と、を備えることを特徴とする。
発明を実施するための最良の形態
以下に、本発明にかかるLDPC符号用検査行列生成方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
第1図は、本発明にかかるLDPC符号用検査行列生成方法を示すフローチャートである。なお、本実施の形態におけるLDPC符号用検査行列生成方法は、たとえば、設定されるパラメータに応じて通信装置内で実行する構成としてもよいし、通信装置外部の他の制御装置(計算機等)で実行することとしてもよい。本実施の形態におけるLDPC符号用検査行列生成方法が通信装置外部で実行される場合は、生成済みのLDPC符号用検査行列が通信装置に格納される。以降の実施の形態では、説明の便宜上、通信装置内で上記方法を実行する場合について説明する。
まず、本実施の形態のLDPC符号用検査行列生成方法を説明する前に、本実施の形態のLDPC符号用検査行列生成方法を実現可能な符号化器および復号器の位置付け、および「Irregular−LDPC符号」用の従来の検査行列生成方法について説明する。なお、LDPC符号化/復号システムの構成については、先に説明した第27図と同様である。
送信側の符号化器101では、後述する本実施の形態のLDPC符号用検査行列生成方法で検査行列Hを生成する。そして、以下の条件に基づいて生成行列Gを求める。
Figure 0003893383
その後、符号化器101では、情報長kのメッセージ(m…m)を受け取り、上記生成行列Gを用いて符号語Cを生成する。
Figure 0003893383
そして、変調器102では、生成した符号語Cに対して、BPSK,QPSK,多値QAMなどのデジタル変調を行い、送信する。
一方、受信側では、復調器104が、通信路103を介して受け取った変調信号に対して、BPSK,QPSK,多値QAMなどのデジタル復調を行い、さらに、復号器105が、LDPC符号化された復調結果に対して、「sum−productアルゴリズム」による繰り返し復号を実施し、推定結果(もとのm…mに対応)を出力する。
つぎに、Chung等(S.−Y.Chung,T.J.Richardson,and R.Urbanke,″Analysis of Sum−Product Decoding of Low−Density Parity−Check Codes Using a Gaussian Approximation,″IEEE Trans.Inform.Theory,vol.47,No.2,pp.657−670,Feb.2001.)によって理論的に解析された、「Irregular−LDPC符号」用の従来の検査行列生成方法について詳細に説明する。ここでは、繰り返し復号器における入力と出力の対数尤度比(LLR)がガウス分布に近似できると仮定してLDPC符号の「Sum−Productアルゴリズム」を解析し、良好な行と列の重みのアンサンブルを求めている。
なお、上記論文に記述されたLDPC符号用検査行列生成方法であるガウス近似法(Gaussian Approximation)では、前提として、検査行列における行内の「1」の点をバリアブルノードと定義し、列内の「1」の点をチェックノードと定義する。
まず、チェックノードからバリアブルノードへのLLRメッセージ伝搬を解析する。0<s<∞と0≦t<∞という条件において、以下の関数(2)式を定義する。なお、s=mu0はu0の平均値であり、u0は分散値σ のガウスノイズを含む伝送路を経由して受信した信号の対数尤度比(LLR)であり、tは所定の繰り返しの時点におけるチェックノードのLLR出力値のアンサンブル平均である。
Figure 0003893383
なお、上記λ(x)およびρ(x)は、それぞれバリアブルノードおよびチェックノードの次数配分(バリアブルノードとチェックノードの各1行,各1列内の「1」の数を次数と表現する)の生成関数を表し、(3)式および(4)式のように表すことができる。また、λとρは、それぞれ次数iのバリアブルノードとチェックノードに属するエッジの比率を表す。また、dは最大バリアブルノードの次数であり、dは最大チェックノードの次数である。
Figure 0003893383
ただし、φ(x)は下記(5)式のように定義する。
Figure 0003893383
そして、(2)式は、等価的に下記(6)式と表すことができる。
Figure 0003893383
なお、tは1番目の繰り返し時点におけるチェックノードのLLR出力値のアンサンブル平均である。
ここで、誤りが0となりうるSNRの限界(threshold)を求めるための条件は、1→∞のときにt(s)→∞(Rと表現する)となることであり、この条件を満たすためには、以下の条件(7)式を満たす必要がある。
Figure 0003893383
つぎに、バリアブルノードからチェックノードへのLLRメッセージ伝搬を解析する。0<s<∞と0<r≦1という条件において、以下の関数(8)式を定義する。なお、rの初期値rはφ(s)である。
Figure 0003893383
そして、(8)式は、等価的に下記(9)式と表すことができる。
Figure 0003893383
ここで、誤りが0となりうるSNRの限界(threshold)を求めるための条件は、r(s)→0となることであり、この条件を満たすためには、以下の条件(10)式を満たす必要がある。
Figure 0003893383
さらに、上記Chung等の論文では、上記式を用いて以下の手順でバリアブルノードとチェックノードの最適な次数を探索している(ガウス近似法)。
(1)生成関数λ(x)とガウスノイズσが与えられていると仮定し、生成関数ρ(x)を変数として、前述した(1)式が最大となる点を探索する。なお、この探索における拘束条件は、ρ(1)=1と正規化することと、上記(7)式を満たすことである。
(2)生成関数ρ(x)とガウスノイズσが与えられていると仮定し(たとえば、(1)の結果より得られる値)、生成関数λ(x)を変数として、(1)式が最大となる点を探索する。なお、この探索における拘束条件は、λ(1)=1と正規化することと、上記(10)式を満たすことである。
(3)最大「rate」を求めるために、上記(1)と上記(2)を繰り返し実行し、生成関数λ(x)と生成関数ρ(x)のより良好なアンサンブルを線形計画法で探索する。
(4)最後に、ガウスノイズσより信号電力を1と正規化して、SNRの限界(threshold)を求める。
Figure 0003893383
しかしながら、上記Chung等の論文では、「rate(符号化率)」の最大値により得られる検査行列が流動的になり、設計時の仕様として固定されるrateが変動してしまう、という問題があった。また、上記Chung等の論文では、バリアブルノードの次数配分の導出とチェックノードの次数配分の導出とを所定回数にわたって繰り返し行っているため、探索処理にある程度の時間を要する、という問題や、任意のアンサンブル,任意の符号長,任意の符号化率に容易に対応することができない、という問題もあった。
そこで、本実施の形態においては、確定的で特性が安定し、かつ任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を、短時間で容易に探索する方法について説明する(第1図参照)。具体的にいうと、ここでは、ユークリット幾何符号における1行または1列の「1」の配置を分割および削除することにより、「Irregular−LDPC符号」用の検査行列を生成する。第1図は、実施の形態1のLDPC符号用検査行列生成方法を示す図である。
本実施の形態のLDPC符号用検査行列生成方法では、まず、列の重みの最大値dlを決定する(ステップS1)。ここでは、たとえば、dl=32とする。
つぎに、列の重みdlに基づいてベースとなるユークリット幾何符号EG(2,2)を選択する(ステップS2)。たとえば、dl=32の場合、ユークリット幾何符号EG(2,2)の列の重み2はs=5となるため、ユークリット幾何符号EG(2,2)を選択する。一般には、2s−1<dl<2s+1の条件を満たすsが選択される。
つぎに、符号化率(rate)を決定する(ステップS3)。ここでは、たとえば、rate=0.5の場合について説明する。
つぎに、後述するガウス近似法を用いて、バリアブルノードの次数配分の生成関数λ(x)と、チェックノードの次数配分の生成関数ρ(x)、のアンサンブルを導出する(ステップS4)。第2図は、rate=0.5の時のλ(x)とρ(x)のアンサンブルの一例を示す図である。ただし、xは重みを表し、λおよびρはそれぞれバリアブルノードとチェックノードの重み配分を表す。また、表中σGAはガウス近似法により導出した「threshol」時のノイズ分散値を表し、SNRnorm(GA)はガウス近似法により導出した「threshol」時のSNRとシャノン限界のSNRとの差分を表す。
ここで、バリアブルノードの次数配分の生成関数λ(x)とチェックノードの次数配分の生成関数ρ(x)のアンサンブルを探索するための上記ガウス近似法の実行手順について説明する。
(1)「rate」が与えられているものと仮定する。すなわち、要求「rate」を固定する。実際の設計では、目標「rate」が予め指定されている場合が多いためである。
(2)生成関数λ(x)と生成関数ρ(x)を同時に変数として扱い、ガウスノイズσが最大になるように、線形計画法で最適な生成関数λ(x)と生成関数ρ(x)を探索する。この探索における拘束条件は、λ(1)=1,ρ(1)=1と正規化し、さらに上記(10)式を満たすことである。
このように、本実施の形態では、上記(9)式と上記(10)式を満たす生成関数λ(x)と生成関数ρ(x)を1回の線形計画法で求めることとしたため、上記論文(chung等)のように、生成関数λ(x)の導出と生成関数ρ(x)の導出を繰り返し実行し、双方の最適値を求める方法よりも、容易かつ短時間に、確定的でかつ特性が安定したアンサンブルを生成できる。
ステップS4においてアンサンブルを導出後、つぎに、ブロック長Nを求め、このブロック長Nから情報長Kを確定する(ステップS5)。たとえば、N=5000の場合、
Figure 0003893383
となる。
つぎに、情報長Kに対応した行の削除を行う(ステップS6)。ここでは、本実施の形態における行の削除方法(第1の削除方法,第2の削除方法)について詳細に説明する。なお、ベースとなるユークリット幾何符号EG(2,2)の行の数と列の数は、それぞれ2×2−1で表すことができる。
第1の削除方法では、まず、第2図に示すアンサンブルに基づいて、重み32の1行を、重み10の1行と重み11の2行とに分割する。このケースでは、重み10の比率がρ10=10/32=0.3125となっており、重み6の比率ρ10がρ10=22/32=0.6875となっている。また、ユークリット幾何符号EG(2,2)の行の数REGはREG=2×2−1=1023であるため、重み10の行数が1023となり、重み11の行数が2046となり、その結果、トータルの行数Rは、R=1023+2046=3069となる。したがって、行の削除数Dは、検査行列の行数が情報長Kと一致することを利用して、
Figure 0003893383
となる。
なお、上記のように、重み32の各行を重み10の1行と重み11の2行に分割する場合は、たとえば、後述するランダム分割、すなわち「乱数系列のラテン方陣を用いた分割方法」を実施する。
このように、上記第1の削除方法では、たとえば、重み32の1行を重み10の1行と重み11の2行とに分割する場合、分割後の行列から、D=R−K=3069−2500=569行を削除する。このとき、比率ρ10,ρ11をできるだけ変えないように、569行の削除を行う。
一方、第2の削除方法では、基本のユークリット幾何符号EG(2,2)の段階で行の削除を行う。ここでは、基本のユークリット幾何符号EG(2,2)からの削除数Dr_EG
Figure 0003893383
により求める。たとえば、Dr_EG=1023×569/3069=189.6667の場合、ユークリット幾何符号EG(2,2)から189行を削除する。
このとき、削除後に行のランダム分割を行った場合であっても、行数は、(1023−569)×3=2502となり、目標の符号長2500に近い値となる。実際には、ユークリット幾何符号EG(2,2)から189行を削除した後、1023−189=834行分のランダム分割を行って834×3=2502行(各行を重み10の1行と重み11の2行に分割する)とし、その後、残りの2行を削除する。
上記第2の削除方法を、図面を用いて具体的に説明する。ここでは、説明の便宜上、ユークリット幾何符号EG(2,2)を用いる。第3図は、ユークリット幾何符号EG(2,2)を示す図(空白は0を表す)である。また、第4図は、第3図に示すユークリット幾何符号EG(2,2)における各行の「1」の列番号を示す図であり、ここでは、各行の「1」の列番号をRow(i,j)と表現する(iは行番号を表し、jは列番号を表す)。たとえば、ユークリット幾何符号EG(2,2)の1行目は、Row(1,j)={1,5,13,14}と表現する。
第4図に基づいて、Row(i,j)の1列目が昇順になるように行の順番を並べ替える。第5図は、並べ替えた後の各行の「1」の列番号を示す図であり、ここでは、並べ替え後の各行の「1」の列番号をRow´(i,j)と表現する。
たとえば、削除する行数を5行とした場合、ここでは、Row´(i,j)の下から5行を削除する。第6図は、第5図の下から5行を削除した後の各行の「1」の列番号を示す図であり、ここでは、削除後の各行の「1」の列番号をRow_5´(i,j)と表現する。また、第7図は、行削除後の列内の重み分布を示す図であり、第6図における、列番号とその列に含まれる「1」の数との関係を表している。また、第8図は、ユークリット幾何符号EG(2,2)における5行削除後の重み分布を示す図である。
上記第2の削除方法と同様の手順で、ユークリット幾何符号EG(2,2)における行を189行だけ削除した場合の重み分布を第9図に示す。
ステップS6における削除処理を実行後、最後に、列の分割処理を行う(第1図、ステップS7)。ここでは、本実施の形態における分割方法を、説明の便宜上、第2図を用いて詳細に説明する。なお、重み配分λのxの値および重み配分ρのxの値、すなわち、列と行の重みは、それぞれxの組み合わせで、たとえば、32を構成できる値とする。第10図は、分割テーブルの一例を示す図である。たとえば、7×4と2×2の組み合わせは、重み32の1列を、重み7の4列と重み2の2列に分割できることを表している。第10図のように、基本となる各行と各列の重みが32のユークリット幾何符号EG(2,2)を適切に分割すれば、「Irregular−LDPC符号」用の検査行列が構成できる。また、図示はしていないが、列の重み31,30,29,28,27,26,25,24,23,22,21に関しても(第9図参照)、同様に分割できる。
まず、分割処理を行う前に、第2図に示す生成関数λ(x)と生成関数ρ(x)のアンサンブルの重み配分を以下の手順で調整する。第11図は、重み配分調整用テーブルを示す図である。
(1)ガウス近似法で求めた生成関数λ(x)と生成関数ρ(x)のアンサンブル(第2図参照)をテーブルの2列目と3列目に設定する。
(2)重み配分λおよびρ(3列目)と、ユークリット幾何符号EG(2,2)における全行列の「1」の総数TP=26688と、を乗算し、重み単位の重み総数を求め、さらに、当該重み単位の重み総数とその総和を4列目に設定する。
(3)重み単位の重み総数(4列目)を対応する重みxで割り、重み単位の総列数を求め、それを5列目に設定する。
(4)重み単位の総列数が小数点以下を含む場合、丸め処理(四捨五入,切上げ,切捨て等)を行い、その結果を6列目に設定する。
(5)丸め処理後の重み単位の総列数(6列目)と対応する重みxとを乗算し、丸め処理後の重み単位の重み総数を求め、それを7列目に設定する。そして、各重み総数の総和(7列目の合計の行)が行列内の「1」の総数(TP=26688)と等しいかどうかを確認する。
(6)行列内の「1」の総数に等しくない場合、丸め処理後の重み単位の重み総数(7列目)を整数単位で調整し、その結果を8列目に設定する。この場合、8列目の総和が、行列内の「1」の総数(TP=26688)に等しくなるように調整する。
(7)調整後の重み単位の重み総数(8列目)を対応する重みxで割り、調整後の重み単位の総列数を求め、それを9列目に設定する。調整後の各重みの配分(11列目)は、可能な限りガウス近似法で求めた値(3列目)に近い値にする。
第12図は、重み配分後の生成関数λ(x)と生成関数ρ(x)のアンサンブルを示す図である。
つぎに、ユークリット幾何符号における1行あるいは1列の分割手順について説明する。たとえば、分割手順に関して、Y.Kou等の論文では、規則的に分割する方法を提示している。第13図は、上記論文における分割手順を示す図である。まず、第13図に示すように行列のナンバリングを行う。ここでは、列番号を左端から順に1,2,3,…とし、行番号を上から順に1,2,3,…とする。そして、たとえば、32点×1列を8点×4列に分割する場合、下記(12)式にしたがって規則的に分割する。
Figure 0003893383
なお、m=1,2,3,4とし、n=0,1,2,3,4,5,6,7とし、1はEG(2,2)の列番号を表す。また、B(x)はEG(2,2)の1列目の「1」の位置を表し、S(n)は分割後の行列のm列目の「1」の位置を表す。
具体的にいうと、EG(2,2)における1列中の「1」の位置を示す行番号は、
Figure 0003893383
となり、その結果、分割後の行列における1〜4列目の「1」の位置を示す行番号は、B(x)から「1」の番号が規則的に抽出され、
Figure 0003893383
となる。すなわち、32点×1列が8点×4列に分割される。
一方、本実施の形態におけるユークリット幾何符号の分割処理は、上記のように規則的に分割するのではなく、B(x)から「1」の番号をランダムに抽出する。なお、この抽出処理は、ランダム性が保持されるのであればどのような方法を用いてもよい。
したがって、分割後の行列のm列目の「1」の位置の一例をR(n)とした場合、R(n)は、
Figure 0003893383
となる。
上記のような本実施の形態の分割手順をグラフ上で表現すると、以下のように表現することができる。第14図は、分割前のEG(2,2)のグラフを示す図である。なお、両ノードを結ぶ線はエッジと表現する。第14図では、分割前の1023行×1023列(各行列の重みがそれぞれ32)のユークリット幾何符号を表現している。また、第15図は、EG(2,2)のエッジをランダムに選択した、分割後のグラフを示す図である。
ここで、上記で説明したLDPC符号の特性を比較する。第16図は、Eb/No(情報1ビットあたりの信号電力対ノイズ電力比)と誤り率特性(BER)との関係を示す図である。なお、繰り返し回数は50回で、復号法は「Sum−Productアルゴリズム」である。
なお、図中″Simple regular extended EG(2,2)″は、Y.Kou等の発案によるEG(2,2)の規則的な列の分割(従来技術参照)を実施した場合の、rate=0.5の「Regular−LDPC符号」であり、″Random regular extended EG(2,2)″は、本実施の形態によるEG(2,2)のランダムな列の分割を実施した場合の、rate=0.5の「Regular−LDPC符号」である。第17図は、上記「Regular−LDPC符号」のアンサンブルを示す図である。
また、図中″Simple irregular extended EG(2,2)″は、第18図によって特定されたアンサンブルに対して、Y.Kou等の発案によるEG(2,2)の規則的な列の分割を実施した場合の、rate=0.5の「Irregular−LDPC符号」であり、″Random irregular extended EG(2,2)″は、第18図によって特定されたアンサンブルに対して、本実施の形態によるEG(2,2)のランダムな列の分割を実施した場合の、rate=0.5の「Irregular−LDPC符号」である。第18図は、上記「Irregular−LDPC符号」のアンサンブルを示す図である。
第16図からわかるように、同一レートでは、「Regular−LDPC符号」より「Irregular−LDPC符号」のほうが性能がよい。また、Y.Kou等の論文のような規則的な分割では、「Irregular−LDPC符号」であっても大幅な改善は見込めないが、本実施の形態のランダムな分割を実施すると性能が画期的に改善される。
このように、本実施の形態においては、まず、列の重みの最大値dlを決定し、つぎに、列の重みdlに基づいてベースとなるユークリット幾何符号EG(2,2)を選択し、つぎに、符号化率(rate)を決定し、つぎに、上記ガウス近似法を用いてバリアブルノードの次数配分の生成関数λ(x)とチェックノードの次数配分の生成関数ρ(x)のアンサンブルを導出し、つぎに、所定のブロック長Nから情報長Kを確定し、つぎに、上記所定の手順で情報長Kに対応した行の削除処理を行い、最後に、上記所定の手順で列の分割処理を行う。これにより、確定的で特性が安定し、かつ任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を、短時間で容易に生成できる。
つぎに、上記ランダム分割の一例、すなわち、上記「乱数系列のラテン方陣を用いた分割方法」を詳細に説明する。ここでは、ランダム分割を行う場合のランダム系列を容易かつ確定的に生成する。この方法による利点は、送信側と受信側が同じランダム系列を生成できることにある。これは、現実のシステムではきわめて重要となる。また、符号特性の条件が正確に規定できる、という利点もある。
(1)基本のランダム系列を作成する。
以下に、ランダム系列作成の一例を記述する。ここでは、説明の便宜上、ユークリット幾何符号EG(2,2)を用いる。ユークリット幾何符号EG(2,2)の場合、1行に存在する「1」の数は2=32個である。
PをP≧2を満たす最小の素数とした場合、たとえば、2のときはP=37となる。ここで、系列長P−5=32の基本のランダム系列C(i)を(13)式にしたがって作成する。
Figure 0003893383
ただし、i=0,1,…,P−2とし、Gはガロア体GF(P)の原始元である。その結果、C(i)は、
Figure 0003893383
となる。
(2)系列長が2=32となるように、32より大きい数を削除する。
Figure 0003893383
(3)基本のランダム系列を一定間隔で読み出すためにスキップ間隔S(j)を以下の(14)式のように定義する。
Figure 0003893383
(4)以下の(15)式で置換パターンLB(i)を作成する。
Figure 0003893383
なお、LB(i)も2より大きい数字は削除する。第19図は、基本のランダム系列C(i)と基本のランダム系列の置換パターンLB(i)を示す図である。
(5)q列i行でj番目のラテン方陣行列Ljq(i)を以下の(16)式で算出する。
Figure 0003893383
第20図は、ラテン方陣行列Ljq(i)を示す図である。このラテン方陣行列Ljq(i)は、拡張する対象の行列(たとえば、第12図に示す行列)のj×32+q列目の分割パターンを決める。たとえば、削除により短縮されたEG(2,2)の670列目g670(l)を
Figure 0003893383
これを重み6の5列と重み2の1列に分割する。対応するラテン方陣Ljq(i)は20*32+30=670であるため、
Figure 0003893383
となる。結果として、分割パターンは以下のようになる。
Figure 0003893383
実施の形態2.
LDPC符号(LDPC符号用検査行列)は、一般的な表現方法として、たとえば、2部グラフ(bipartite graph:2種類の要素(ソフトANDとソフトEXOR)で構成された「tanner graph」)で表現することができる。第21図は、一例として、第29図に示すLDPC符号を2部グラフで表現した場合を示す図である。このように、上記2部グラフ上では、バリアブルノードがソフトANDで表現され、チェックノードがソフトEXORで表現される。
LDPC符号を用いた符号化/復号においては、一般的に、2部グラフ上にサイクル4,サイクル6,およびそれ以上のサイクル、がより少ないほど良好な特性を得ることができる。第22図は、サイクル4およびサイクル6の一例を示す図である。
特に、特性が劣化する要因としては、サイクル4の影響度が最も大きく、サイクル数が大きくなるほどその影響は小さくなる。したがって、LDPC符号としては、サイクル4やサイクル6といった少ないサイクルの発生を抑制する構造が望ましい。
そこで、実施の形態2のLDPC符号用検査行列生成方法においては、ユークリット幾何符号に存在するサイクル数6を削減することによって、復号特性の向上を図る。なお、ベースとなるユークリット幾何符号には、すでにサイクル4が存在せず、この特性は、行および列の分離および削除(実施の形態1における分離および削除を含む)によっても変わらない。
第23図は、前述の第3図に示すユークリット幾何符号EG(2,2)の各列における「1」の行番号を示す図であり、この行列をcol(i,j)と表現する。col(i,j)において「1」の位置を示す多項式W(X)は、1番上の行に関して以下の(17)式のように表現できる。
Figure 0003893383
ユークリット幾何符号は、この一つの多項式を巡回シフトした形式で表現できるため、以下の(18)式のように表現できる。
Figure 0003893383
そして、ユークリット幾何符号に存在するサイクル数6を削減する場合、たとえば、列の重みを4から2に分離する。すなわち、上記(18)式を前半部と後半部に分けて、以下の(19)式のように表現する。
Figure 0003893383
第24図は、第23図に示す行列を上記(19)式により分離して、列の重みを2にした場合の行列を示す図であり、この行列をcol_s2(i,j)と表現する。上記処理により分離した第24図の行列に対応するLDPC符号は、サイクル6をまったく持たない構成となる。なお、多項式をベースにした分離は、どの次数同士のペアでもよい。すなわち、以下の(20)式を用いて分離することとしてもよい。
Figure 0003893383
このように、重みが4のユークリット幾何符号であれば、上記の(19)式または(20)式を用いて列の重みを2に分離することによって、サイクル6を完全に除去できる。ただし、サイクル6を完全に除去できるのは、列の重みをすべて2に分離した場合である。したがって、重みが3以上の列が他に存在する場合、すなわち、「Irregular−LDPC符号」の場合は、サイクル6を削減することはできるが完全には除去できない。
第25図は、重み4の列を重み2の20列と重み4の5列に分離する手順として、上記col(i,j)を単純に前2列と後ろ2列に分離した場合の、行列col_s2_4(i,j)を示す図である。第25図の行列col_s2_4(i,j)では、サイクル6の数が35となる。一方、第26図は、上記式で分離した場合の行列col_s2_4´(i,j)を示す図である。第26図の行列col_s2_4´(i,j)では、サイクル6の数が33となり、第25図の場合よりも少なくなっていることがわかる。
このように、本実施の形態においては、特性劣化の要因となるユークリット幾何符号に存在するサイクル数6を削減するように、列の重みを分離することとしたため、復号特性の向上を実現できる。
なお、上記実施の形態1および2においては、基本となる符号(基本行列)にユークリット幾何符号を用いることとしたが、これに限らず、「行と列の重みが一定」かつ「サイクル数が6以上」という条件を満たす行列であれば、たとえば、射影幾何符号等の、ユークリット幾何符号以外の行列を用いることとしてもよい。
以上、説明したとおり、本発明によれば、まず、列の重みの最大値dlを決定し、つぎに、列の重みdlに基づいてベースとなるユークリット幾何符号EG(2,2)を選択し、つぎに、符号化率(rate)を決定し、つぎに、上記ガウス近似法を用いてバリアブルノードの次数配分の生成関数λ(x)とチェックノードの次数配分の生成関数ρ(x)のアンサンブルを導出し、つぎに、所定のブロック長Nから情報長Kを確定し、つぎに、上記所定の手順で情報長Kに対応した行の削除処理を行い、最後に、上記所定の手順で列の分割処理を行う。これにより、確定的で特性が安定し、かつ任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を、短時間で容易に生成できる、という効果を奏する。
つぎの発明によれば、所定のアンサンブルに基づいてユークリット幾何符号における各行の重みをランダムに分割し、分割後の行数から情報長を減算し、その後、前記アンサンブルにおける各重みの比率ができるだけ変わらないように前記減算結果に相当する行数を削除する。これにより、任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を容易に生成できる、という効果を奏する。
つぎの発明によれば、基本のユークリット幾何符号から所定の行数を削除し、その後、前記アンサンブルに基づいて当該削除後のユークリット幾何符号における各行の重みをランダムに分割する。これにより、任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を容易に生成できる、という効果を奏する。
つぎの発明によれば、重み配分を、重み単位の重み総数が整数で、かつ重み単位の重み総数の総和とユークリット幾何符号の「1」の総数とが等しくなるように調整することによって、より高精度な分割処理を実現できる、という効果を奏する。
つぎの発明によれば、ランダム系列のラテン方陣を作成することによって、符号特性の条件を正確に規定できる、という効果を奏する。
つぎの発明によれば、特性劣化の要因となるユークリット幾何符号に存在するサイクル数6を削減するように、列の重みを分離することとしたため、大幅に復号特性を向上させることができる、という効果を奏する。
つぎの発明によれば、まず、列の重みの最大値dlを決定し、つぎに、列の重みdlに基づいてベースとなるユークリット幾何符号EG(2,2)を選択し、つぎに、符号化率(rate)を決定し、つぎに、上記ガウス近似法を用いてバリアブルノードの次数配分の生成関数λ(x)とチェックノードの次数配分の生成関数ρ(x)のアンサンブルを導出し、つぎに、所定のブロック長Nから情報長Kを確定し、つぎに、上記所定の手順で情報長Kに対応した行の削除処理を行い、最後に、上記所定の手順で列の分割処理を行う構成とした。これにより、確定的で特性が安定し、かつ任意のアンサンブル,任意の符号長,任意の符号化率に対応した「Irregular−LDPC符号」用の検査行列を、短時間で容易に生成可能な検査行列生成装置を得ることができる、という効果を奏する。産業上の利用可能性
以上のように、本発明にかかるLDPC符号用検査行列生成方法および検査行列生成装置は、誤り訂正符号としてLDPC符号を採用した通信システムに有用であり、特に、確定的で特性が安定した「Irregular−LDPC符号」を生成する装置に適している。
【図面の簡単な説明】
第1図は、実施の形態1のLDPC符号用検査行列生成方法を示すフローチャートであり、第2図は、rate=0.5の時のλ(x)とρ(x)のアンサンブルの一例を示す図であり、第3図は、ユークリット幾何符号EG(2,2)を示す図であり、第4図は、第3図に示すユークリット幾何符号EG(2,2)における各行の「1」の列番号を示す図であり、第5図は、並べ替えた後の各行の「1」の列番号を示す図であり、第6図は、第5図の下から5行を削除した後の各行の「1」の列番号を示す図であり、第7図は、行削除後の列内の重み分布を示す図であり、第8図は、ユークリット幾何符号EG(2,2)における5行削除後の重み分布を示す図であり、第9図は、ユークリット幾何符号EG(2,2)における行を189行だけ削除した場合の重み分布を示す図であり、第10図は、分割テーブルの一例を示す図であり、第11図は、重み配分調整用テーブルを示す図であり、第12図は、重み配分後の生成関数λ(x)と生成関数ρ(x)のアンサンブルを示す図であり、第13図は、従来の分割手順を示す図であり、第14図は、分割前のEG(2,2)のグラフを示す図であり、第15図は、EG(2,2)のエッジをランダムに選択した分割後のグラフを示す図であり、第16図は、Eb/NoとBERとの関係を示す図であり、第17図は、「Regular−LDPC符号」のアンサンブルを示す図であり、第18図は、「Irregular−LDPC符号」のアンサンブルを示す図であり、第19図は、基本のランダム系列C(i)と基本のランダム系列の置換パターンLB(i)を示す図であり、第20図は、ラテン方陣行列Ljq(i)を示す図であり、第21図は、第29図に示すLDPC符号を2部グラフで表現した場合を示す図であり、第22図は、サイクル4およびサイクル6の一例を示す図であり、第23図は、第3図に示すユークリット幾何符号EG(2,2)の各列における「1」の行番号を示す図であり、第24図は、第23図に示す行列を(19)式により分離して列の重みを2にした場合の行列を示す図であり、第25図は、行列col(i,j)を単純に前2列と後ろ2列に分離した場合の行列col_s2_4(i,j)を示す図であり、第26図は、実施の形態2の方法で分離した場合の行列col_s2_4´(i,j)を示す図であり、第27図は、LDPC符号化/復号システムを示す図であり、第28図は、従来のLDPC符号用の検査行列を示す図であり、第29図は、ユークリット幾何符号EG(2,2)の構成を示す図であり、第30図は、列の重みを4から2に規則的に分離した例を示す図である。Technical field
The present invention relates to a parity check matrix generation method for LDPC codes when an LDPC (Low-Density Parity-Check) code is adopted as an error correction code.
Background art
FIG. 27 is a diagram showing an LDPC encoding / decoding system. In FIG. 27, 101 is an encoder, 102 is a modulator, 103 is a communication path, 104 is a demodulator, and 105 is a decoder. Here, before explaining a conventional LDPC code parity check matrix generation method, the flow of encoding and decoding when an LDPC code is used will be described.
First, encoder 101 on the transmission side generates a check matrix H by a predetermined method described later. Then, a generator matrix G is obtained based on the following conditions.
Figure 0003893383
After that, the encoder 101 sends a message (m1m2... mk) And a codeword C is generated using the generator matrix G.
Figure 0003893383
Then, the modulator 102 performs digital modulation such as BPSK, QPSK, and multilevel QAM on the generated code word C, and transmits it.
On the other hand, on the receiving side, the demodulator 104 performs digital demodulation such as BPSK, QPSK, and multilevel QAM on the modulated signal received via the communication path 103, and the decoder 105 is LDPC encoded. The demodulated result is iteratively decoded by the “sum-product algorithm”, and the estimation result (original m1m2... mkIs output).
Hereinafter, a conventional LDPC code check matrix generation method will be described. As a parity check matrix for an LDPC code, for example, the following matrix is proposed by LDPC inventor Gallager (see FIG. 28).
The matrix shown in FIG. 28 is a binary matrix of “1” and “0”, and the portion “1” is filled. All other parts are “0”. In this matrix, the number of “1” in one row (this is expressed as the weight of the row) is 4, the number of “1” in one column (this is expressed as the weight of the column) is 3, Since the column and row weights are uniform, this is generally called a “Regular-LDPC code”. In the Gallager code, for example, as shown in FIG. 28, the matrix is divided into three blocks, and random replacement is performed on the second block and the third block.
However, since there is no predetermined rule for this random replacement, it has been necessary to perform a time-consuming search by a computer in order to find a code with better characteristics.
Therefore, for example, a method using a Euclidean geometric code as an LDPC code that can generate a matrix deterministically without using a computer search and exhibits a relatively stable and good characteristic is disclosed in Y.C. Kou et al. (Y. Kou, S. Lin, and MPC Fossorier, “Low Density Parity Check Codes Based on Fine Geometry”: A Red Discovery, “ISIT 2000, pp. 200, Irr. , 2000.). In this method, “Regular-LDPC code” composed of regular ensembles is described.
Here, a Euclidean geometric code EG (2, 2) which is a kind of finite geometric code.6) Has been proposed to generate a parity check matrix of an LDPC code using an error rate of 10-4In this respect, the characteristics approaching 1.45 dB from the Shannon limit are obtained. FIG. 29 shows, for example, the Euclidean geometric code EG (2, 22), And has a “Regular-LDPC code” structure in which the weights of rows and columns are 4 and 4, respectively.
Therefore, the Euclidean geometric code EG (m, 2s), The characteristics are defined as follows.
Code length: n = 22s-1
Redundant bit length: nk = 3s-1
Information length: k = 22s-3s
Minimum distance: dmin= 2s+1
Density: r = 2s/ (22s-1)
As can be seen from FIG. 29, the Euclidean geometric code has a structure in which the arrangement of “1” in each row is cyclically shifted for each row, and has a feature that the code can be easily and definitely configured.
Y. In the check matrix generation method by Kou et al., The weights of rows and columns are further changed based on the Euclidean geometric code, and the rows and columns are expanded as necessary. For example, EG (2, 22)) Is separated by half. In the paper by Kou et al., Four weights in one column are separated every other two. FIG. 30 is a diagram showing an example in which the column weights are regularly separated from 4 to 2.
On the other hand, the characteristics of the “Irregular-LDPC code” are better than those of the “Regular-LDPC code” described above, indicating that Ludy et al. DA Spielman, "Improved Low-Density Parity-Check Codes Using Irregular Graphs and Belief Propagation," Proceedings of 1998. Reported by. The “Irregular-LDPC code” represents an LDPC code in which the weights of the columns and rows are not uniform or one of them is not uniform.
And it is described by Richardson et al. (TJ Richardson and R. Urbane, “The capacity of low-density parity-check codes under message-passing decoding,” IE In.or. pp. 599-618, Feb. 2001.), or Chung et al. (S.-Y. Chung, T.J. Richardson, and R. Urbanbank, “Analysis of Sum-Product Decoding of Low-Density Partnerships-City. a Gaussian Application, "IE EE Trans.Inform.Theory, vol.47, No.2, pp.657-670, Feb.2001.).
In particular, Chung et al. Analyzed the “Sum-Product algorithm” of an LDPC code, assuming that the log-likelihood ratio (LLR) of the input and output in the iterative decoder can be approximated to a Gaussian distribution. Seeking an ensemble of weights.
However, for example, the conventional LDPC code parity check matrix generation method by Chung et al. Described above uses the number of “1” points in a row (corresponding to the variable node degree distribution described later) and the “1” point in a column. The number distribution (corresponding to the order distribution of check nodes described later) and both are used as variables, and the variable node order distribution and the check node order distribution that maximize expression (1) below (rate: coding rate) are obtained. ing. That is, an ensemble having a minimum SNR (Signal to Noise Ratio) is searched for by linear programming.
Figure 0003893383
Therefore, there is a problem that the check matrix obtained by the maximum value of “rate” becomes fluid and the characteristics are not stable. Also, the conventional LDPC code parity check matrix generation method repeatedly performs the derivation of the variable node degree distribution and the derivation of the check node order distribution for a predetermined number of times, and therefore requires a certain amount of time for the search process. There was also.
Therefore, the present invention provides an LDPC code parity check matrix generation method that is deterministic, has stable characteristics, can easily search for a parity check matrix for an LDPC code corresponding to an arbitrary ensemble, and has good performance. The purpose is to do.
Disclosure of the invention
In the LDPC code parity check matrix generation method according to the present invention, in order to generate an Irregular-LDPC code parity check matrix, a weight determination step for determining the maximum value of the column weight, and the maximum value of the column weight A Euclidean geometric code determining step for determining a basic Euclidean geometric code based on the coding rate, a coding rate determining step for determining a coding rate, and a state in which the coding rate is fixed and Gaussian noise is maximized. A weight search step for searching for an optimal ensemble of row weights and column weights by linear programming, an information length calculation step for calculating an information length based on a predetermined block length and the coding rate, and the Eucrit Using a geometric code, a row deletion step for deleting a predetermined row based on the information length, and a row or column of the matrix after the row deletion Characterized in that it comprises a dividing step of dividing randomly only a predetermined procedure, a.
In the parity check matrix generation method for LDPC codes according to the next invention, in the row deletion step, the weight of each row in the Euclidean geometric code is randomly divided based on the ensemble, and the information is obtained from the number of rows after division. The length is subtracted, and then the number of rows corresponding to the subtraction result is deleted while adjusting the ratio of each weight in the ensemble.
In the LDPC code check matrix generation method according to the next invention, in the row deletion step, a predetermined number of rows are deleted from the basic Euclidean geometric code, and then the deleted euclits are based on the ensemble. A feature is that the weight of each row in the geometric code is randomly divided.
In the LDPC code parity check matrix generation method according to the next invention, the weight distribution of the ensemble is determined by dividing the total weight of the weight unit by an integer, the sum of the total weights of the weight unit, and the Euclidean geometric code “1”. The division processing is performed based on the ensemble after adjustment so that the total number becomes equal.
In the LDPC code check matrix generation method according to the next invention, a Latin square of a basic random sequence is created, and a weight “1” is set from each row and each column in the Euclidean geometric code based on the Latin square. It is characterized by randomly dividing each column and each row by extracting
In the LDPC code parity check matrix generation method according to the next invention, in order to generate an Irregular-LDPC code parity check matrix, a row or column weight in the Euclidean geometric code is divided using a predetermined polynomial, The present invention is characterized in that the “number of cycles 6” existing in the Euclidean geometric code that causes characteristic deterioration is reduced.
In the parity check matrix generation apparatus according to the next invention, as a configuration for generating an Irregular-LDPC code parity check matrix using a Euclidean geometric code, weight determination means for determining a maximum value of a column weight, Euclidean geometric code determining means for determining the Eucrit geometric code based on the maximum value of the weight, coding rate determining means for determining the coding rate, and with the coding rate fixed, and Gaussian noise is maximized As described above, weight search means for searching for an optimal ensemble of row weights and column weights by linear programming, information length calculation means for calculating an information length based on a predetermined block length and the coding rate, and Using a Euclidean geometric code, a row deletion means for performing a deletion process of a predetermined row based on the information length, and a weight of a row or a column of the matrix after the row deletion is set to a predetermined value Characterized in that it comprises a dividing means for dividing randomly order.
BEST MODE FOR CARRYING OUT THE INVENTION
Embodiments of an LDPC code parity check matrix generation method according to the present invention will be described below in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.
Embodiment 1 FIG.
FIG. 1 is a flowchart showing an LDPC code check matrix generation method according to the present invention. Note that the LDPC code parity check matrix generation method according to the present embodiment may be configured to be executed in the communication device in accordance with a set parameter, or may be performed by another control device (such as a computer) outside the communication device. It may be executed. When the LDPC code check matrix generation method according to the present embodiment is executed outside the communication apparatus, the generated LDPC code check matrix is stored in the communication apparatus. In the following embodiments, for convenience of explanation, a case where the above method is executed in the communication device will be described.
First, before describing the LDPC code parity check matrix generation method of this embodiment, the positioning of encoders and decoders that can implement the LDPC code parity check matrix generation method of this embodiment, and “Irregular-LDPC”. A conventional check matrix generation method for “code” will be described. The configuration of the LDPC encoding / decoding system is the same as that shown in FIG. 27 described above.
The encoder 101 on the transmission side generates a check matrix H by the LDPC code check matrix generation method of the present embodiment described later. Then, a generator matrix G is obtained based on the following conditions.
Figure 0003893383
After that, the encoder 101 sends a message (m1m2... mk) And a codeword C is generated using the generator matrix G.
Figure 0003893383
Then, the modulator 102 performs digital modulation such as BPSK, QPSK, and multilevel QAM on the generated code word C, and transmits it.
On the other hand, on the receiving side, the demodulator 104 performs digital demodulation such as BPSK, QPSK, and multilevel QAM on the modulated signal received via the communication path 103, and the decoder 105 is LDPC encoded. The demodulated result is iteratively decoded by the “sum-product algorithm”, and the estimation result (original m1m2... mkIs output).
Next, Chung et al. (S.-Y. Chung, T.J. Richardson, and R. Urbanbank, “Analysis of Sum-Product Decoding of Low-Density Parity-Checking Codes Us. The conventional check matrix generation method for “Irregular-LDPC code” theoretically analyzed by Theory, vol. 47, No. 2, pp. 657-670, Feb. 2001.) will be described in detail. Here, it is assumed that the log-likelihood ratio (LLR) of the input and output in the iterative decoder can be approximated to a Gaussian distribution. Seeking.
Note that in the Gaussian approximation method, which is the LDPC code parity check matrix generation method described in the above paper, the “1” point in the row in the parity check matrix is defined as a variable node, and the “ The point “1” is defined as a check node.
First, the LLR message propagation from the check node to the variable node is analyzed. The following function (2) is defined under the conditions of 0 <s <∞ and 0 ≦ t <∞. S = mu0Is the average value of u0, and u0 is the variance σn 2Is a log likelihood ratio (LLR) of a signal received via a transmission line including Gaussian noise, and t is an ensemble average of LLR output values of a check node at a predetermined repetition point.
Figure 0003893383
Note that λ (x) and ρ (x) are the degree distributions of the variable node and the check node, respectively (the number of “1” s in each row and each column of the variable node and the check node is expressed as the degree). This can be expressed as shown in equations (3) and (4). Also, λiAnd ρiRepresents the ratio of edges belonging to variable nodes and check nodes of degree i, respectively. D1Is the order of the maximum variable node, drIs the order of the maximum check node.
Figure 0003893383
However, φ (x) is defined as the following equation (5).
Figure 0003893383
The equation (2) can be equivalently expressed as the following equation (6).
Figure 0003893383
T1Is the ensemble average of the LLR output values of the check node at the first iteration time.
Here, the condition for obtaining the threshold of SNR where the error can be 0 is t → 1 → ∞.1(S) → ∞ (R+In order to satisfy this condition, the following condition (7) must be satisfied.
Figure 0003893383
Next, the LLR message propagation from the variable node to the check node is analyzed. The following function (8) is defined under the conditions of 0 <s <∞ and 0 <r ≦ 1. The initial value r of r0Is φ (s).
Figure 0003893383
The equation (8) can be equivalently expressed as the following equation (9).
Figure 0003893383
Here, the condition for obtaining the threshold of the SNR at which the error can be zero is r1(S) → 0. In order to satisfy this condition, the following condition (10) must be satisfied.
Figure 0003893383
Further, in the above paper by Chung et al., The optimal order of the variable node and the check node is searched by the following procedure using the above formula (Gaussian approximation method).
(1) Generation function λ (x) and Gaussian noise σnAnd the generation function ρ (x) is used as a variable to search for a point where the above-described expression (1) is maximum. Note that the constraint conditions in this search are normalization as ρ (1) = 1 and satisfying the above expression (7).
(2) Generation function ρ (x) and Gaussian noise σn(For example, a value obtained from the result of (1)), and using the generation function λ (x) as a variable, a point where expression (1) is maximum is searched. Note that the constraint conditions in this search are to normalize to λ (1) = 1 and to satisfy the above equation (10).
(3) In order to obtain the maximum “rate”, the above (1) and (2) are repeatedly executed, and a better ensemble of the generation function λ (x) and the generation function ρ (x) is searched by linear programming. To do.
(4) Finally, Gaussian noise σnThen, the signal power is normalized to 1 to determine the SNR threshold.
Figure 0003893383
However, the Chung et al. Paper has a problem that the check matrix obtained by the maximum value of “rate (coding rate)” becomes fluid and the rate fixed as the design specification fluctuates. It was. In the above paper by Chung et al., The derivation of the variable node degree distribution and the derivation of the check node degree distribution are repeated a predetermined number of times. There is also a problem that it is not possible to easily cope with an ensemble, an arbitrary code length, and an arbitrary coding rate.
Therefore, in the present embodiment, a check matrix for “Irregular-LDPC code” that is deterministic and stable in characteristics, and that corresponds to an arbitrary ensemble, an arbitrary code length, and an arbitrary coding rate can be obtained in a short time. An easy search method will be described (see FIG. 1). Specifically, here, a parity check matrix for “Irregular-LDPC code” is generated by dividing and deleting the arrangement of “1” in one row or one column in the Euclidean geometric code. FIG. 1 is a diagram illustrating an LDPC code parity check matrix generation method according to the first embodiment.
In the LDPC code parity check matrix generation method of this embodiment, first, the maximum column weight dl is determined (step S1). Here, for example, dl = 32.
Next, based on the column weight dl, the base Euclidean geometric code EG (2, 2s) Is selected (step S2). For example, when dl = 32, the Euclidean geometric code EG (2, 2s) Column weight 2sSince s = 5, the Euclidean geometric code EG (2, 25) Is selected. In general, 2s-1<Dl <2s + 1S satisfying the condition is selected.
Next, the coding rate is determined (step S3). Here, for example, a case where rate = 0.5 will be described.
Next, an ensemble of a variable node order distribution generation function λ (x) and a check node order distribution generation function ρ (x) is derived using a Gaussian approximation method described later (step S4). FIG. 2 is a diagram showing an example of an ensemble of λ (x) and ρ (x) when rate = 0.5. Where x represents a weight and λxAnd ρxRepresents the weight distribution of variable nodes and check nodes, respectively. In the table, σGARepresents the noise variance at the time of “thresh” derived by the Gaussian approximation method, and SNRnorm(GA) represents the difference between the SNR at the time of “threshold” derived by the Gaussian approximation method and the SNR at the Shannon limit.
Here, an execution procedure of the Gaussian approximation method for searching for an ensemble of the variable node order distribution generation function λ (x) and the check node order distribution generation function ρ (x) will be described.
(1) Assume that “rate” is given. That is, the request “rate” is fixed. This is because in an actual design, the target “rate” is often designated in advance.
(2) The generation function λ (x) and the generation function ρ (x) are treated as variables simultaneously, and Gaussian noise σnIs searched for the optimal generation function λ (x) and generation function ρ (x) by linear programming. The constraint condition in this search is to normalize λ (1) = 1 and ρ (1) = 1 and to satisfy the above expression (10).
As described above, in this embodiment, the generation function λ (x) and the generation function ρ (x) satisfying the expression (9) and the expression (10) are obtained by one linear programming. As in the paper (chung, etc.), the derivation of the generation function λ (x) and the derivation of the generation function ρ (x) are repeatedly executed, and it is easier and more deterministic than the method of obtaining the optimum values of both. An ensemble with stable characteristics can be generated.
After deriving the ensemble in step S4, next, the block length N is obtained, and the information length K is determined from this block length N (step S5). For example, if N = 5000,
Figure 0003893383
It becomes.
Next, the line corresponding to the information length K is deleted (step S6). Here, the row deletion method (first deletion method, second deletion method) in the present embodiment will be described in detail. The base Euclidean geometric code EG (2, 2s) Has 2 rows and 2 columnss× 2s−1.
In the first deletion method, first, one row of weight 32 is divided into one row of weight 10 and two rows of weight 11 based on the ensemble shown in FIG. In this case, the ratio of weight 10 is ρ10= 10/32 = 0.3125, and the ratio ρ of weight 610Is ρ10= 22/32 = 0.6875. The Euclidean geometric code EG (2, 25) Number of rows REGIs REG= 25× 25Since −1 = 1023, the number of rows with a weight of 10 becomes 1023 and the number of rows with a weight of 11 becomes 2046. As a result, the total number of rows RTIs RT= 1023 + 2046 = 03069. Therefore, the number of deleted rows DrUses the fact that the number of rows of the check matrix matches the information length K,
Figure 0003893383
It becomes.
As described above, when dividing each row of the weight 32 into one row of the weight 10 and two rows of the weight 11, for example, a random division described later, that is, “a division method using a Latin square of a random number sequence” is used. carry out.
As described above, in the first deletion method, for example, when one row of weight 32 is divided into one row of weight 10 and two rows of weight 11, D 1r= RT-K = 3069-2500 = 569 rows are deleted. At this time, the ratio ρ10, Ρ11Is deleted as much as possible.
On the other hand, in the second deletion method, the basic Euclidean geometric code EG (2, 2s) Delete the line at the stage. Here, the basic Euclidean geometric code EG (2, 2sNumber of deletions fromr_EGThe
Figure 0003893383
Ask for. For example, Dr_EG= 1023 × 569/3069 = 189.667, the Euclidean geometric code EG (2, 25) Line 189 is deleted.
At this time, even if random row division is performed after deletion, the number of rows is (1023-569) × 3 = 2502, which is close to the target code length 2500. In practice, the Euclidean geometric code EG (2,25) After deleting 189 rows, random division for 1023-189 = 834 rows is performed to obtain 834 × 3 = 2502 rows (each row is divided into one row with a weight of 10 and two rows with a weight of 11). Delete the remaining two lines.
The second deletion method will be specifically described with reference to the drawings. Here, for convenience of explanation, the Euclidean geometric code EG (2, 22) Is used. FIG. 3 shows the Euclidean geometric code EG (2, 22) (Blank represents 0). FIG. 4 shows the Euclidean geometric code EG (2, 2) shown in FIG.2), The column number of “1” in each row is expressed as Row (i, j) where i is the row number, and j is the column number. To express). For example, the Euclidean geometric code EG (2, 22) Is expressed as Row (1, j) = {1, 5, 13, 14}.
Based on FIG. 4, the row order is rearranged so that the first column of Row (i, j) is in ascending order. FIG. 5 is a diagram showing the column number “1” of each row after rearrangement. Here, the column number “1” of each row after rearrangement is expressed as Row ′ (i, j). .
For example, if the number of rows to be deleted is five, here, five rows are deleted from the bottom of Row ′ (i, j). FIG. 6 is a diagram showing the column number of “1” of each row after deleting five rows from the bottom of FIG. 5. Here, the column number of “1” of each row after deletion is set to Row — 5 ′ ( i, j). FIG. 7 is a diagram showing the weight distribution in the column after row deletion, and shows the relationship between the column number and the number of “1” included in the column in FIG. FIG. 8 shows the Euclidean geometric code EG (2, 25It is a figure which shows the weight distribution after 5 lines deletion in).
In the same procedure as the second deletion method, the Euclidean geometric code EG (2, 25FIG. 9 shows the weight distribution when only 189 rows are deleted.
After executing the deletion process in step S6, finally, a column division process is performed (FIG. 1, step S7). Here, the division method in the present embodiment will be described in detail with reference to FIG. The weight distribution λxX value and weight distribution ρxThe value of x, i.e., the column and row weights, is a combination of x, for example, 32. FIG. 10 is a diagram showing an example of a division table. For example, the combination of 7 × 4 and 2 × 2 represents that one column of weight 32 can be divided into four columns of weight 7 and two columns of weight 2. As shown in FIG. 10, the Euclidean geometric code EG (2, 2) having a weight of 32 for each basic row and each column.5) Is appropriately divided, a parity check matrix for “Irregular-LDPC code” can be configured. Although not shown, the column weights 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21 (see FIG. 9) can be divided in the same manner.
First, before performing the division process, the ensemble weight distribution of the generation function λ (x) and the generation function ρ (x) shown in FIG. 2 is adjusted by the following procedure. FIG. 11 is a diagram showing a weight distribution adjustment table.
(1) The ensemble (see FIG. 2) of the generation function λ (x) and the generation function ρ (x) obtained by the Gaussian approximation method is set in the second and third columns of the table.
(2) Weight distribution λxAnd ρx(Third column) and Euclidean geometric code EG (2, 25) Is multiplied by the total number TP = 26688 of all the matrixes to obtain the total number of weights in the weight unit, and the total number of weights in the weight unit and the sum thereof are set in the fourth column.
(3) The total number of weights in the weight unit (fourth column) is divided by the corresponding weight x to obtain the total number of columns in the weight unit, which is set in the fifth column.
(4) When the total number of columns in the weight unit includes the decimal part, rounding processing (rounding, rounding up, rounding down, etc.) is performed, and the result is set in the sixth column.
(5) Multiply the total number of weight units after rounding processing (sixth column) by the corresponding weight x to obtain the total number of weights after rounding processing, and set it in the seventh column. Then, it is confirmed whether or not the total sum of the total weights (total row in the seventh column) is equal to the total number of “1” s in the matrix (TP = 26688).
(6) If it is not equal to the total number of “1” s in the matrix, the total number of weights (the seventh column) after rounding is adjusted in integer units, and the result is set in the eighth column. In this case, the total of the eighth column is adjusted to be equal to the total number of “1” s in the matrix (TP = 26688).
(7) The total number of weights in the adjusted weight unit (eighth column) is divided by the corresponding weight x to obtain the total number of columns in the adjusted weight unit, which is set in the ninth column. The distribution of the weights after adjustment (the 11th column) is set to a value as close as possible to the value obtained by the Gaussian approximation method (the 3rd column).
FIG. 12 is a diagram showing an ensemble of the generation function λ (x) and the generation function ρ (x) after weight distribution.
Next, a procedure for dividing one row or one column in the Euclidean geometric code will be described. For example, with respect to the dividing procedure, Y.R. Kou et al. Presents a method of regular division. FIG. 13 is a diagram showing a division procedure in the above paper. First, matrix numbering is performed as shown in FIG. Here, the column numbers are 1, 2, 3,... In order from the left end, and the row numbers are 1, 2, 3,. For example, when dividing 32 points × 1 row into 8 points × 4 rows, the division is made regularly according to the following equation (12).
Figure 0003893383
Note that m = 1, 2, 3, 4, n = 0, 1, 2, 3, 4, 5, 6, 7, and 1 is EG (2, 25) Column number. B1(X) is EG (2, 25) Represents the position of “1” in the first column, and Sm(N) represents the position of “1” in the m-th column of the divided matrix.
Specifically, EG (2, 25The row number indicating the position of “1” in one column in
Figure 0003893383
As a result, the row number indicating the position of “1” in the first to fourth columns in the divided matrix is B1The number “1” is regularly extracted from (x),
Figure 0003893383
It becomes. That is, 32 points × 1 column is divided into 8 points × 4 columns.
On the other hand, the Euclidean geometric code dividing process according to the present embodiment is not divided regularly as described above.1The number “1” is extracted at random from (x). Note that this extraction process may use any method as long as the randomness is maintained.
Therefore, an example of the position of “1” in the m-th column of the divided matrix is RmIn the case of (n), Rm(N)
Figure 0003893383
It becomes.
When the division procedure of the present embodiment as described above is expressed on a graph, it can be expressed as follows. FIG. 14 shows EG (2, 2) before division.5FIG. A line connecting both nodes is expressed as an edge. In FIG. 14, the Euclidean geometric code of 1023 rows × 1023 columns (the weight of each matrix is 32) before the division is expressed. FIG. 15 shows EG (2, 25It is a figure which shows the graph after the division | segmentation which selected the edge of () randomly.
Here, the characteristics of the LDPC codes described above are compared. FIG. 16 is a diagram showing the relationship between Eb / No (ratio of signal power to noise power per bit of information) and error rate characteristics (BER). The number of iterations is 50, and the decoding method is the “Sum-Product algorithm”.
In the figure, “Simple regular extended EG (2, 25) "Is an EG (2, 2) based on the idea of Y. Kou et al.5) Is a “Regular-LDPC code” with a rate = 0.5 and “Random regular extended EG (2, 2).5) ″ Represents EG (2, 2) according to the present embodiment.5) Is a “Regular-LDPC code” with rate = 0.5. FIG. 17 is a diagram showing an ensemble of the “Regular-LDPC code”.
In the figure, “Simple irregular extended EG (2, 25) "Is an EG (2, 2) based on the idea of Y. Kou et al. For the ensemble specified by FIG.5) Is an “Irregular-LDPC code” with rate = 0.5, and “Random irregular extended EG (2, 25) ″ Represents the EG (2, 2) according to the present embodiment for the ensemble specified by FIG.5) Is an “Irregular-LDPC code” with rate = 0.5. FIG. 18 is a diagram showing an ensemble of the “Irregular-LDPC code”.
As can be seen from FIG. 16, at the same rate, the “Irregular-LDPC code” has better performance than the “Regular-LDPC code”. Y. In the regular division like Kou et al.'S paper, the “Irregular-LDPC code” cannot be expected to improve significantly, but the random division of this embodiment will dramatically improve the performance. The
Thus, in the present embodiment, first, the maximum value dl of the column weight is determined, and then the base Euclidean geometric code EG (2, 2) is based on the column weight dl.5Next, the coding rate is determined, and then the variable node order distribution generation function λ (x) and the check node order distribution generation function ρ using the Gaussian approximation method. The ensemble of (x) is derived, then the information length K is determined from the predetermined block length N, the line corresponding to the information length K is deleted in the predetermined procedure, and finally the above Column division processing is performed according to a predetermined procedure. This makes it possible to easily generate a parity check matrix for “Irregular-LDPC code” that is deterministic and stable in characteristics, and that corresponds to an arbitrary ensemble, an arbitrary code length, and an arbitrary coding rate in a short time.
Next, an example of the random division, that is, the “division method using a Latin square of a random number sequence” will be described in detail. Here, a random sequence for performing random division is generated easily and deterministically. An advantage of this method is that the same random sequence can be generated on the transmission side and the reception side. This is extremely important in real systems. There is also an advantage that the condition of the code characteristic can be accurately defined.
(1) Create a basic random sequence.
An example of creating a random sequence is described below. Here, for convenience of explanation, the Euclidean geometric code EG (2, 25) Is used. Eucrit geometric code EG (2, 25), The number of “1” s in one line is 25= 32.
P is P ≧ 25For example, if the smallest prime number satisfying5In this case, P = 37. Here, a basic random sequence C (i) with sequence length P−5 = 32 is created according to the equation (13).
Figure 0003893383
Where i = 0, 1,..., P-2, and G0Is the primitive element of the Galois field GF (P). As a result, C (i) is
Figure 0003893383
It becomes.
(2) The sequence length is 25Delete numbers greater than 32 so that = 32.
Figure 0003893383
(3) In order to read out a basic random sequence at a constant interval, a skip interval S (j) is defined as in the following equation (14).
Figure 0003893383
(4) Substitution pattern LB in the following formula (15)jCreate (i).
Figure 0003893383
LBj(I) 2sRemove larger numbers. FIG. 19 shows a basic random sequence C (i) and a basic random sequence replacement pattern LB.jIt is a figure which shows (i).
(5) jth Latin square matrix L with q columns and i rowsjq(I) is calculated by the following equation (16).
Figure 0003893383
FIG. 20 shows a Latin square matrix LjqIt is a figure which shows (i). This Latin square matrix Ljq(I) determines the division pattern of the j × 32 + q column of the matrix to be expanded (for example, the matrix shown in FIG. 12). For example, EG shortened by deletion (2, 25670th column g)670(L)
Figure 0003893383
This is divided into 5 columns of weight 6 and 1 column of weight 2. Corresponding Latin square LjqSince (i) is 20 * 32 + 30 = 670,
Figure 0003893383
It becomes. As a result, the division pattern is as follows.
Figure 0003893383
Embodiment 2. FIG.
An LDPC code (LDPC code parity check matrix) is expressed as a general expression method, for example, by a bipartite graph (“tanner graph” composed of two types of elements (soft AND and soft EXOR)). be able to. FIG. 21 is a diagram showing a case where the LDPC code shown in FIG. 29 is expressed by a bipartite graph as an example. Thus, on the bipartite graph, variable nodes are expressed by soft AND, and check nodes are expressed by soft EXOR.
In encoding / decoding using an LDPC code, generally, the smaller the number of cycles 4, 6 and more cycles on a bipartite graph, the better characteristics can be obtained. FIG. 22 is a diagram showing an example of cycle 4 and cycle 6.
In particular, as a factor of deterioration in characteristics, the influence degree of cycle 4 is the largest, and the influence becomes smaller as the number of cycles increases. Therefore, it is desirable that the LDPC code has a structure that suppresses the occurrence of few cycles such as cycle 4 and cycle 6.
Therefore, in the LDPC code parity check matrix generation method according to the second embodiment, the decoding characteristic is improved by reducing the number of cycles 6 existing in the Euclidean geometric code. Note that cycle 4 does not already exist in the base Euclidean geometric code, and this characteristic is not changed by the separation and deletion of rows and columns (including separation and deletion in the first embodiment).
FIG. 23 shows the Euclidean geometrical code EG (2, 2 shown in FIG.2) Is a diagram showing the row number of “1” in each column, and this matrix is expressed as col (i, j). The polynomial W (X) indicating the position of “1” in col (i, j) can be expressed as the following equation (17) with respect to the top row.
Figure 0003893383
Since the Euclidean geometric code can be expressed in a form in which this one polynomial is cyclically shifted, it can be expressed as the following equation (18).
Figure 0003893383
When the number of cycles 6 existing in the Euclidean geometric code is reduced, for example, the column weight is separated from 4 to 2. That is, the above equation (18) is divided into the first half and the second half and expressed as the following equation (19).
Figure 0003893383
FIG. 24 is a diagram showing a matrix when the matrix shown in FIG. 23 is separated by the above equation (19) and the column weight is set to 2, and this matrix is expressed as col_s2 (i, j). . The LDPC code corresponding to the matrix of FIG. 24 separated by the above processing has a configuration having no cycle 6 at all. The separation based on the polynomial may be any order pair. That is, it is good also as separating using the following (20) Formula.
Figure 0003893383
Thus, if the Euclidean geometric code has a weight of 4, the cycle 6 can be completely removed by separating the column weight into 2 using the above equation (19) or (20). However, the cycle 6 can be completely removed when the column weights are all separated into two. Therefore, when there are other columns having a weight of 3 or more, that is, in the case of an “Irregular-LDPC code”, the cycle 6 can be reduced but cannot be completely removed.
FIG. 25 shows a procedure for separating the column of weight 4 into 20 columns of weight 2 and 5 columns of weight 4 when the above col (i, j) is simply separated into the front 2 columns and the back 2 columns. It is a figure which shows matrix col_s2_4 (i, j). In the matrix col_s2_4 (i, j) in FIG. 25, the number of cycles 6 is 35. On the other hand, FIG. 26 is a diagram showing the matrix col_s2_4 ′ (i, j) when separated by the above equation. In the matrix col_s2_4 ′ (i, j) in FIG. 26, the number of cycles 6 is 33, which is smaller than in the case of FIG.
As described above, in this embodiment, since the column weights are separated so as to reduce the number of cycles 6 existing in the Euclidean geometric code, which causes the characteristic deterioration, the decoding characteristic can be improved.
In the first and second embodiments, the Euclidean geometric code is used as the basic code (basic matrix). However, the present invention is not limited to this, and “the weight of the row and column is constant” and “the number of cycles is As long as the matrix satisfies the condition “6 or more”, for example, a matrix other than the Euclidean geometric code such as a projective geometric code may be used.
As described above, according to the present invention, the maximum column weight dl is first determined, and then the base Euclidean geometric code EG (2, 2) is determined based on the column weight dl.sNext, the coding rate is determined, and then the variable node order distribution generation function λ (x) and the check node order distribution generation function ρ using the Gaussian approximation method. The ensemble of (x) is derived, then the information length K is determined from the predetermined block length N, the line corresponding to the information length K is deleted in the predetermined procedure, and finally the above Column division processing is performed according to a predetermined procedure. As a result, a deterministic and stable characteristic and a parity check matrix for “Irregular-LDPC code” corresponding to an arbitrary ensemble, an arbitrary code length, and an arbitrary coding rate can be easily generated in a short time. There is an effect.
According to the next invention, the weight of each row in the Euclidean geometric code is randomly divided based on a predetermined ensemble, the information length is subtracted from the number of rows after the division, and then the ratio of each weight in the ensemble is changed as much as possible. The number of rows corresponding to the subtraction result is deleted so as not to be present. Thereby, there is an effect that a parity check matrix for “Irregular-LDPC code” corresponding to an arbitrary ensemble, an arbitrary code length, and an arbitrary coding rate can be easily generated.
According to the next invention, a predetermined number of rows are deleted from the basic Euclidean geometric code, and then the weight of each row in the deleted Euclidean geometric code is randomly divided based on the ensemble. Thereby, there is an effect that a parity check matrix for “Irregular-LDPC code” corresponding to an arbitrary ensemble, an arbitrary code length, and an arbitrary coding rate can be easily generated.
According to the next invention, the weight distribution is adjusted by adjusting the weight distribution so that the total number of weights in the weight unit is an integer, and the sum of the total number of weights in the weight unit is equal to the total number of “1” of the Euclidean geometric code. There is an effect that high-precision division processing can be realized.
According to the next invention, there is an effect that the condition of the code characteristic can be accurately defined by creating a Latin series of random sequences.
According to the next invention, since the column weights are separated so as to reduce the number of cycles 6 existing in the Euclidean geometric code that causes the characteristic deterioration, the decoding characteristic can be greatly improved. There is an effect.
According to the next invention, first, the maximum value dl of the column weight is determined, and then the base Euclidean geometric code EG (2, 2) is based on the column weight dl.sNext, the coding rate is determined, and then the variable node order distribution generation function λ (x) and the check node order distribution generation function ρ using the Gaussian approximation method. The ensemble of (x) is derived, then the information length K is determined from the predetermined block length N, the line corresponding to the information length K is deleted in the predetermined procedure, and finally the above The column is divided according to a predetermined procedure. This makes it possible to generate a parity check matrix for “Irregular-LDPC code” that is deterministic and stable in characteristics, and that supports any ensemble, any code length, and any coding rate, in a short time. There is an effect that a matrix generation device can be obtained. Industrial applicability
As described above, the LDPC code parity check matrix generation method and parity check matrix generation apparatus according to the present invention are useful for a communication system that employs an LDPC code as an error correction code, and in particular, a definite and stable characteristic “Irregular” -It is suitable for a device that generates "LDPC code".
[Brief description of the drawings]
FIG. 1 is a flowchart showing a method for generating a parity check matrix for LDPC codes according to Embodiment 1, and FIG. 2 shows an example of an ensemble of λ (x) and ρ (x) when rate = 0.5. FIG. 3 shows a Euclidean geometric code EG (2, 224 is a diagram showing the Euclidean geometrical code EG (2, 2) shown in FIG.2) Is a diagram showing the column number of “1” of each row in FIG. 5, FIG. 5 is a diagram showing the column number of “1” of each row after rearrangement, and FIG. 6 is the bottom of FIG. FIG. 7 is a diagram showing a column number of “1” of each row after deleting five rows from FIG. 7, FIG. 7 is a diagram showing a weight distribution in the column after row deletion, and FIG. 8 is a Euclidean geometric code EG (2, 25) In FIG. 9 shows the weight distribution after deletion of five rows. FIG. 9 shows the Euclidean geometric code EG (2, 25) Is a diagram showing a weight distribution when only 189 rows are deleted, FIG. 10 is a diagram showing an example of a division table, FIG. 11 is a diagram showing a weight distribution adjustment table, FIG. 12 is a diagram showing an ensemble of the generation function λ (x) and the generation function ρ (x) after weight distribution, FIG. 13 is a diagram showing a conventional division procedure, and FIG. EG before division (2, 25), And FIG. 15 shows EG (2, 2).5FIG. 16 is a diagram showing a relationship between Eb / No and BER, and FIG. 17 is an ensemble of “Regular-LDPC code”. FIG. 18 is a diagram showing an ensemble of “Irregular-LDPC code”, and FIG. 19 is a basic random sequence C (i) and a basic random sequence replacement pattern LB.jFIG. 20 shows a Latin square matrix L.jqFIG. 21 is a diagram showing a case where the LDPC code shown in FIG. 29 is expressed by a bipartite graph, and FIG. 22 is a diagram showing an example of cycle 4 and cycle 6. FIG. 23 shows the Euclidean geometrical code EG (2, 2 shown in FIG.2) Is a diagram showing a row number of “1” in each column, and FIG. 24 is a diagram showing a matrix when the matrix shown in FIG. 23 is separated by the equation (19) and the column weight is set to 2. FIG. 25 is a diagram showing a matrix col_s2_4 (i, j) when the matrix col (i, j) is simply separated into two front columns and two rear columns, and FIG. FIG. 27 is a diagram illustrating a matrix col_s2_4 ′ (i, j) when separated by the method of mode 2, FIG. 27 is a diagram illustrating an LDPC encoding / decoding system, and FIG. 28 is a diagram for a conventional LDPC code. FIG. 29 shows the Euclidean geometric code EG (2, 2).2), And FIG. 30 is a diagram showing an example in which the column weights are regularly separated from 4 to 2.

Claims (10)

Irregular−LDPC符号の検査行列を生成するためのLDPC符号用検査行列生成方法において、
列の重みの最大値を決定する重み決定ステップと、
前記列の重みの最大値に基づいて、「行と列の重みが一定」かつ「サイクル数が6以上」という条件を満たす基本行列を決定する基本行列決定ステップと、
符号化率を決定する符号化率決定ステップと、
前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索ステップと、
所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出ステップと、
前記基本行列を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除ステップと、
前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割ステップと、
を含むことを特徴とするLDPC符号用検査行列生成方法。
In a parity check matrix generation method for an LDPC code for generating a parity check matrix of an Irregular-LDPC code,
A weight determination step for determining a maximum value of the weight of the column;
A basic matrix determining step for determining a basic matrix satisfying a condition that “the weight of the row and the column is constant” and “the number of cycles is 6 or more” based on the maximum value of the column weight;
A coding rate determining step for determining a coding rate;
A weight search step of searching for an optimal ensemble of row weights and column weights by linear programming so that the coding rate is fixed and Gaussian noise is maximized;
An information length calculating step for calculating an information length based on a predetermined block length and the coding rate;
A row deletion step of performing a deletion process of a predetermined row based on the information length using the basic matrix;
A division step of randomly dividing the row or column weight of the matrix after the row deletion by a predetermined procedure;
A parity check matrix generation method for LDPC codes, comprising:
ユークリット幾何符号を用いてIrregular−LDPC符号の検査行列を生成するためのLDPC符号用検査行列生成方法において、
列の重みの最大値を決定する重み決定ステップと、
前記列の重みの最大値に基づいてユークリット幾何符号を決定するユークリット幾何符号決定ステップと、
符号化率を決定する符号化率決定ステップと、
前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索ステップと、
所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出ステップと、
前記ユークリット幾何符号を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除ステップと、
前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割ステップと、
を含むことを特徴とするLDPC符号用検査行列生成方法。
In a parity check matrix generation method for an LDPC code for generating a parity check matrix of an Irregular-LDPC code using a Euclidean geometric code,
A weight determination step for determining a maximum value of the weight of the column;
A Euclidean geometric code determining step for determining a Euclidean geometric code based on a maximum value of the weight of the column;
A coding rate determining step for determining a coding rate;
A weight search step of searching for an optimal ensemble of row weights and column weights by linear programming so that the coding rate is fixed and Gaussian noise is maximized;
An information length calculating step for calculating an information length based on a predetermined block length and the coding rate;
A line deletion step for performing a deletion process of a predetermined line based on the information length using the Euclidean geometric code;
A division step of randomly dividing the row or column weight of the matrix after the row deletion by a predetermined procedure;
A parity check matrix generation method for LDPC codes, comprising:
前記行削除ステップにあっては、
前記アンサンブルに基づいて前記ユークリット幾何符号における各行の重みをランダムに分割し、分割後の行数から前記情報長を減算し、その後、前記アンサンブルにおける各重みの比率を調整しながら、前記減算結果に相当する行数を削除することを特徴とする請求の範囲第2項に記載のLDPC符号用検査行列生成方法。
In the line deletion step,
Based on the ensemble, randomly divide the weight of each row in the Euclidean geometric code, subtract the information length from the number of rows after the division, and then adjust the ratio of each weight in the ensemble, 3. The LDPC code check matrix generation method according to claim 2, wherein the corresponding number of rows is deleted.
前記行削除ステップにあっては、
前記基本のユークリット幾何符号から所定の行数を削除し、その後、前記アンサンブルに基づいて当該削除後のユークリット幾何符号における各行の重みをランダムに分割することを特徴とする請求の範囲第2項に記載のLDPC符号用検査行列生成方法。
In the line deletion step,
The range according to claim 2, wherein a predetermined number of rows are deleted from the basic Euclidean geometric code, and thereafter, the weight of each row in the deleted Euclidean geometric code is randomly divided based on the ensemble. The LDPC code check matrix generation method described.
前記アンサンブルの重み配分を、重み単位の重み総数が整数で、かつ重み単位の重み総数の総和とユークリット幾何符号の「1」の総数とが等しくなるように調整し、調整後のアンサンブルに基づいて前記分割処理を行うことを特徴とする請求の範囲第2項に記載のLDPC符号用検査行列生成方法。The weight distribution of the ensemble is adjusted so that the total number of weights in the weight unit is an integer, and the sum of the total number of weights in the weight unit is equal to the total number of “1” of the Euclidean geometric code, and based on the adjusted ensemble The LDPC code check matrix generation method according to claim 2, wherein the division processing is performed. 基本のランダム系列のラテン方陣を作成し、当該ラテン方陣に基づいて、前記ユークリット幾何符号における各行および各列から重み「1」を抽出することにより、各列および各行をランダムに分割することを特徴とする請求の範囲第2項に記載のLDPC符号用検査行列生成方法。A Latin square of a basic random sequence is created, and based on the Latin square, a weight “1” is extracted from each row and each column in the Euclidean geometric code, and each column and each row is randomly divided. The parity check matrix generation method for LDPC codes according to claim 2. Irregular−LDPC符号の検査行列を生成するためのLDPC符号用検査行列生成方法において、
所定の多項式を用いて、「行と列の重みが一定」かつ「サイクル数が6以上」という条件を満たす基本行列における行または列の重みを分割し、特性劣化の要因となる「サイクル数6」を削減することを特徴とするLDPC符号用検査行列生成方法。
In a parity check matrix generation method for an LDPC code for generating a parity check matrix of an Irregular-LDPC code,
A predetermined polynomial is used to divide the row or column weights in the basic matrix satisfying the condition that “the weights of the rows and columns are constant” and “the number of cycles is 6 or more”, and the “number of cycles 6 ], A parity check matrix generation method for LDPC codes.
ユークリット幾何符号を用いてIrregular−LDPC符号の検査行列を生成するためのLDPC符号用検査行列生成方法において、
所定の多項式を用いて前記ユークリット幾何符号における行または列の重みを分割し、特性劣化の要因となる前記ユークリット幾何符号に存在する「サイクル数6」を削減することを特徴とするLDPC符号用検査行列生成方法。
In a parity check matrix generation method for an LDPC code for generating a parity check matrix of an Irregular-LDPC code using a Euclidean geometric code,
LDPC code inspection characterized in that a predetermined polynomial is used to divide row or column weights in the Euclidean geometric code to reduce "number of cycles 6" existing in the Euclidean geometric code causing characteristic deterioration Matrix generation method.
Irregular−LDPC符号の検査行列を生成する検査行列生成装置において、
列の重みの最大値を決定する重み決定手段と、
前記列の重みの最大値に基づいて、「行と列の重みが一定」かつ「サイクル数が6以上」という条件を満たす基本行列を決定する基本行列決定手段と、
符号化率を決定する符号化率決定手段と、
前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索手段と、
所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出手段と、
前記基本行列を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除手段と、
前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割手段と、
を備えることを特徴とする検査行列生成装置。
In a parity check matrix generation device that generates a parity check matrix of an Irregular-LDPC code,
A weight determining means for determining the maximum value of the column weight;
A basic matrix determining means for determining a basic matrix satisfying a condition that “the weight of the row and the column is constant” and “the number of cycles is 6 or more” based on the maximum value of the column weight;
A coding rate determining means for determining a coding rate;
Weight search means for searching for an optimal ensemble of row weights and column weights by linear programming so that the coding rate is fixed and Gaussian noise is maximized;
Information length calculating means for calculating an information length based on a predetermined block length and the coding rate;
Using the basic matrix, row deletion means for performing a deletion processing of a predetermined row based on the information length;
A dividing means for randomly dividing the row or column weights of the matrix after row deletion by a predetermined procedure;
A parity check matrix generation apparatus comprising:
ユークリット幾何符号を用いてIrregular−LDPC符号の検査行列を生成する検査行列生成装置において、
列の重みの最大値を決定する重み決定手段と、
前記列の重みの最大値に基づいてユークリット幾何符号を決定するユークリット幾何符号決定手段と、
符号化率を決定する符号化率決定手段と、
前記符号化率を固定した状態で、かつガウスノイズが最大になるように、行の重みと列の重みの最適なアンサンブルを線形計画法で探索する重み探索手段と、
所定のブロック長および前記符号化率に基づいて情報長を算出する情報長算出手段と、
前記ユークリット幾何符号を用いて、前記情報長に基づいた所定の行の削除処理を行う行削除手段と、
前記行削除後の行列の行または列の重みを所定の手順でランダムに分割する分割手段と、
を備えることを特徴とする検査行列生成装置。
In a parity check matrix generation device that generates a parity check matrix of an Irregular-LDPC code using a Euclidean geometric code,
A weight determining means for determining the maximum value of the column weight;
Euclidean geometric code determining means for determining a Euclidean geometric code based on the maximum value of the weight of the column;
A coding rate determining means for determining a coding rate;
Weight search means for searching for an optimal ensemble of row weights and column weights by linear programming so that the coding rate is fixed and Gaussian noise is maximized;
Information length calculating means for calculating an information length based on a predetermined block length and the coding rate;
Line deletion means for performing a deletion process of a predetermined line based on the information length using the Euclidean geometric code;
A dividing means for randomly dividing the row or column weights of the matrix after row deletion by a predetermined procedure;
A parity check matrix generation apparatus comprising:
JP2003572182A 2002-02-28 2003-02-28 LDPC code parity check matrix generation method and parity check matrix generation apparatus Expired - Fee Related JP3893383B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002053888 2002-02-28
JP2002053888 2002-02-28
PCT/JP2003/002331 WO2003073621A1 (en) 2002-02-28 2003-02-28 Ldpc code inspection matrix generation method and inspection matrix generation device

Publications (2)

Publication Number Publication Date
JPWO2003073621A1 JPWO2003073621A1 (en) 2005-06-23
JP3893383B2 true JP3893383B2 (en) 2007-03-14

Family

ID=27764375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003572182A Expired - Fee Related JP3893383B2 (en) 2002-02-28 2003-02-28 LDPC code parity check matrix generation method and parity check matrix generation apparatus

Country Status (5)

Country Link
US (1) US7089479B2 (en)
EP (1) EP1480346A4 (en)
JP (1) JP3893383B2 (en)
CN (1) CN100592641C (en)
WO (1) WO2003073621A1 (en)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3808769B2 (en) * 2001-12-27 2006-08-16 三菱電機株式会社 LDPC code check matrix generation method
JP4163023B2 (en) 2003-02-28 2008-10-08 三菱電機株式会社 Parity check matrix generation method and parity check matrix generation apparatus
KR100996029B1 (en) * 2003-04-29 2010-11-22 삼성전자주식회사 Apparatus and method for coding of low density parity check code
EP1524771B1 (en) * 2003-05-30 2011-01-05 Sony Corporation Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method
US7814392B2 (en) * 2003-06-20 2010-10-12 Intel Corporation System, apparatus and methods of dynamically determined error correction codes in communication systems
CN100440737C (en) * 2003-12-04 2008-12-03 北京泰美世纪科技有限公司 High structural LDPC coding and decoding method and coder and decoder
KR20050118056A (en) * 2004-05-12 2005-12-15 삼성전자주식회사 Method and apparatus for channel encoding and decoding in mobile communication systems using multi-rate block ldpc codes
US7165205B2 (en) * 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
JP4138700B2 (en) * 2004-05-31 2008-08-27 株式会社東芝 Decoding device and decoding circuit
KR101208546B1 (en) * 2004-08-09 2012-12-05 엘지전자 주식회사 Method of encoding and decoding using low density parity check matrix
US7752520B2 (en) * 2004-11-24 2010-07-06 Intel Corporation Apparatus and method capable of a unified quasi-cyclic low-density parity-check structure for variable code rates and sizes
CN100385796C (en) * 2004-11-25 2008-04-30 上海交通大学 Channel coding method for low-density checking code
WO2006062351A1 (en) * 2004-12-08 2006-06-15 Electronics And Telecommunications Research Institute Ldpc encoder and decoder and ldpc encoding and decoding methods
KR100641052B1 (en) 2004-12-08 2006-11-02 한국전자통신연구원 LDPC encoder and decoder, and method for LDPC encoding and decoding
US7461328B2 (en) * 2005-03-25 2008-12-02 Teranetics, Inc. Efficient decoding
US7634710B2 (en) * 2005-03-25 2009-12-15 Teranetics, Inc. Efficient decoding
JP4917023B2 (en) * 2005-03-31 2012-04-18 三菱電機株式会社 Error correction coding device
KR20080048988A (en) * 2005-04-15 2008-06-03 트렐리스웨어 테크놀러지스, 인코포레이티드 Clash-free irregular-repeat-accumulate code
US7793190B1 (en) * 2005-08-10 2010-09-07 Trellisware Technologies, Inc. Reduced clash GRA interleavers
WO2007030030A1 (en) * 2005-09-07 2007-03-15 Intel Corporation Construction and use of shortened eg-ldpc codes
GB2439986B (en) * 2006-07-07 2008-05-21 Siemens Ag Method for generating LDPC codes and apparatus using the LDPC codes
US8316287B1 (en) * 2006-08-24 2012-11-20 Marvell International Ltd. Low-density parity check codes for holographic storage
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
JP4674226B2 (en) * 2007-08-22 2011-04-20 日本電信電話株式会社 Channel encoding method, channel encoding system, hierarchical channel encoding program, and hierarchical channel decoding program
US8261152B2 (en) * 2007-09-10 2012-09-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication system using variable-length LDPC codes
JP5203717B2 (en) * 2007-12-19 2013-06-05 パナソニック株式会社 Encoder, decoder, encoding method, and decoding method
JP4563476B2 (en) 2008-07-09 2010-10-13 パナソニック株式会社 Encoder, decoder and encoding method
US8166364B2 (en) 2008-08-04 2012-04-24 Seagate Technology Llc Low density parity check decoder using multiple variable node degree distribution codes
JP2010114862A (en) 2008-10-10 2010-05-20 Panasonic Corp Encoder, transmission device, and encoding method
US8413010B1 (en) 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector
CN111628783A (en) * 2019-02-27 2020-09-04 西南科技大学 EG-LDPC decoder

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
JP3808769B2 (en) * 2001-12-27 2006-08-16 三菱電機株式会社 LDPC code check matrix generation method
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants

Also Published As

Publication number Publication date
CN100592641C (en) 2010-02-24
US20040199859A1 (en) 2004-10-07
EP1480346A4 (en) 2006-05-10
WO2003073621A1 (en) 2003-09-04
US7089479B2 (en) 2006-08-08
EP1480346A1 (en) 2004-11-24
JPWO2003073621A1 (en) 2005-06-23
CN1639985A (en) 2005-07-13

Similar Documents

Publication Publication Date Title
JP3893383B2 (en) LDPC code parity check matrix generation method and parity check matrix generation apparatus
JP3808769B2 (en) LDPC code check matrix generation method
JP4163023B2 (en) Parity check matrix generation method and parity check matrix generation apparatus
JP4005084B2 (en) Parity check matrix generation method and parity check matrix generation apparatus
Johnson Introducing low-density parity-check codes
JP2008035524A (en) Apparatus and method for decoding block of symbols using iterative belief propagation
US8799742B1 (en) QC-LDPC decoder with list-syndrome decoding
US10637510B2 (en) Methods and devices for error correcting codes decoding
WO2004107585A1 (en) Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method
Zhang et al. Toward low LDPC-code floors: a case study
WO2017105291A1 (en) Generalized quasi-cyclic ldpc convolutional codes for digital communication systems
JP4772689B2 (en) Check matrix generation method and communication method
Zikry et al. Performance Analysis of LDPC Decoding Techniques
Jayasooriya et al. Optimization of graph based codes for belief propagation decoding
Pal et al. Error-Control Coding Algorithms and Architecture for Modern Applications Powered by LDPC Codes and Belief Propagation
JP2010028408A (en) Information processing apparatus, information processing method, and program
WO2023218050A1 (en) Quasi-cyclic ldpc codes based on generalised quadrangles
Prasad et al. Irreducible Polynomials: Non-Binary Fields
Mitchell Mathematical approach to channel codes with a diagonal matrix structure
Narang et al. imAGE PRoCEssiNG
Sun Non-Binary Protograph-Based LDPC Codes: Analysis, Enumerators and Designs
Farrell et al. Graph decoding of array error-correcting codes
Kupimai A high rate non-binary QC-LDPC codes in high order Galois Field for PR2 and EPR2 channels
SHENG Contributions to the construction and decoding of non-binary low-density parity-check codes
Uzunoğlu Performance comparison of message passing decoding algorithms for binary and non-binary low density parity check (LDPC) codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050322

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131215

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees