JP4620132B2 - 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器 - Google Patents

検査行列生成方法、符号化方法、通信装置、通信システム、符号化器 Download PDF

Info

Publication number
JP4620132B2
JP4620132B2 JP2007551049A JP2007551049A JP4620132B2 JP 4620132 B2 JP4620132 B2 JP 4620132B2 JP 2007551049 A JP2007551049 A JP 2007551049A JP 2007551049 A JP2007551049 A JP 2007551049A JP 4620132 B2 JP4620132 B2 JP 4620132B2
Authority
JP
Japan
Prior art keywords
matrix
column
parity check
mask
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
JP2007551049A
Other languages
English (en)
Other versions
JPWO2007072721A1 (ja
Inventor
渉 松本
塁 阪井
英夫 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric 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 JPWO2007072721A1 publication Critical patent/JPWO2007072721A1/ja
Application granted granted Critical
Publication of JP4620132B2 publication Critical patent/JP4620132B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、ディジタル通信における符号化技術に関するものであり、特に、LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法、当該パリティ検査行列を用いて所定の情報ビットを符号化する符号化方法、および通信装置に関するものである。
以下、符号化方式としてLDPC符号を採用する従来の通信システムについて説明する。ここでは、LDPC符号の一例として擬似巡回(QC:Quasi-Cycilc)符号(非特許文献1参照)を採用する場合について説明する。
まず、符号化方式としてLDPC符号を採用する従来の通信システムにおける、符号化/復号処理の流れを簡単に説明する。
送信側の通信装置(送信装置と呼ぶ)内のLDPC符号化器では、後述する従来の方法でパリティ検査行列Hを生成する。さらに、LDPC符号化器では、たとえば、K行×N列の生成行列G(K:情報長,N:符号語長)を生成する。ただし、LDPC用のパリティ検査行列をH(M行×N列)とした場合、生成行列Gは、GHT=0(Tは転置行列)を満たす行列となる。
その後、LDPC符号化器では、情報長Kのメッセージ(m1,m2,…,mK)を受け取り、このメッセージおよび上記生成行列Gを用いて、下記(1)式のように、符号語Cを生成する。ただし、H(c1,c2,…,cNT=0とする。
C=(m1,m2,…,mK)G
=(c1,c2,…,cN) …(1)
そして、送信装置内の変調器では、LDPC符号化器で生成した符号語Cに対して、BPSK(Binary Phase Shift Keying),QPSK(Quadrature Phase Shift Keying),多値QAM(Quadrature Amplitude Modulation)等の所定の変調方式によりディジタル変調を行い、その変調信号x=(x1,x2,…,xN)を受信装置に送信する。
一方、受信側の通信装置(受信装置と呼ぶ)では、復調器が、受け取った変調信号y=(y1,y2,…,yN)に対して、上記BPSK,QPSK,多値QAM等の変調方式に応じたディジタル復調を行い、さらに、受信装置内のLDPC復号器が、復調結果に対して「sum−productアルゴリズム」による繰り返し復号を実施し、その復号結果(元のメッセージm1,m2,…,mKに対応)を出力する。
ここで、LDPC符号用の従来のパリティ検査行列生成方法を具体的に説明する。LDPC符号用のパリティ検査行列としては、たとえば、下記非特許文献1において、以下のQC符号のパリティ検査行列が提案されている(図20参照)。図20に示すQC符号のパリティ検査行列は、5行×5列の巡回置換行列(p=5)が縦方向(J=3)と横方向(L=5)に配置された行列となっている。
一般的には、M(=pJ)行×N(=pL)列の(J,L)QC符号のパリティ検査行列HQCは、下記(2)式のように定義することができる。なお、pは奇数(2以外)の素数であり、Lはパリティ検査行列HQCにおける巡回置換行列の横方向(列方向)の個数であり、Jはパリティ検査行列HQCにおける巡回置換行列の縦方向(行方向)の個数である。
Figure 0004620132
ただし、0≦j≦J−1,0≦l≦L−1において、I(pj,l)は、行番号:r(0≦r≦p−1),列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列である。
また、LDPC符号の設計の際には、一般的に、長さが短いループが多く存在するときに性能の劣化を引き起こすため、内径を大きくし、長さが短いループ(ループ4,ループ6等)の数を少なくする必要がある。
なお、図21は、検査行列の一例をタナーグラフで表現した場合を示す図であり、{0,1}の2元のM行×N列のパリティ検査行列Hにおいて、各列に対応するノードをビットノードbn(1≦n≦N)と呼び(図中の○に相当)、各行に対応するノードをチェックノードcm(1≦m≦M)と呼び(図中の□に相当)、さらに、検査行列の行と列の交点に“1”がある場合にそのビットノードとチェックノードを枝で接続する2部グラフをタナーグラフと呼ぶ。また、上記ループとは、図21に示すように、特定のノード(図中の○や□に相当)から始まりそのノードで終わる閉路のことを表し、また、内径とは、その最小ループを意味する。また、ループの長さは、閉路を構成する枝の数で表現され、長さに応じて、簡易的にループ4,ループ6,ループ8…と表現する。
また、下記非特許文献1においては、(J,L)QC−LDPC符号のパリティ検査行列HQCにおける内径gの範囲が、「4≦g≦12(gは偶数)」とされている。ただし、g=4を回避することは容易であり、多くの場合、g≧6である。
M.Fossorier "Quasi-Cyclic Low Density Parity Check Code" ISIT2003, pp150, Japan, June 29-July 4, 2003.
しかしながら、上記従来の技術によれば、規則的な構成ながらループ6以上となる符号を容易に構成できる一方で、レギュラー(行と列の重みが一様)なLDPC符号用のパリティ検査行列を生成しており、一般に性能が良好とされているイレギュラー(行と列の重みが非一様)なパリティ検査行列については規定されていない、という問題があった。
また、符号化の際には、生成行列Gを検査行列Hとは別に用意する必要があり、生成行列Gを計算するための追加回路が必要となる、という問題があった。また、複数の符号化率に対応する場合には、符号化率の数に相当する検査行列Hを用意する必要があり、さらに回路規模が大きくなる、という問題があった。
本発明は、上記に鑑みてなされたものであって、イレギュラー(行と列の重みが非一様)なLDPC符号用のパリティ検査行列に対応するとともに、さらに、従来技術と比較して回路規模を低減可能な通信装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる検査行列生成方法は、LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法であって、巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列を生成する擬似巡回行列生成ステップと、前記正則な擬似巡回行列を非正則(行と列の重みが非一様)にするための、複数の符号化率に対応可能なマスク行列を生成するマスク行列生成ステップと、特定の符号化率に対応するマスク行列を用いて、前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則なマスク化擬似巡回行列を生成するマスク化ステップと、前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、を含むことを特徴とする。
この発明によれば、特定の規則性を持たせた正則な擬似巡回行列に対して、非正則な行列を生成するための所定のマスキングルールを適用することとしたので、容易にLDGM構造の非正則なパリティ検査行列を生成することができる。また、従来のように、生成行列Gを生成する必要がないので、回路規模を大幅に削減することができる。
図1は、LDPC符号化器およびLDPC復号器を含む本実施の形態の通信システムの構成例を示す図である。 図2−1は、符号生成における積和演算部の構成を示す図である。 図2−2は、図2−1に示す積和演算部を用いた符号生成部の構成例を示す図である。 図3は、実施の形態1のマスク行列生成処理を示すフローチャートである。 図4は、パリティ検査行列HM(1/2)の列次数分布の一例を示す図である。 図5は、パリティ検査行列HM(1/3)の列次数分布の一例を示す図である。 図6は、マスク行列ZAによりマスク後のイレギュラーなパリティ検査行列HM(1/2)の構成例を示す図である。 図7は、マスク行列Zによりマスク後のイレギュラーなパリティ検査行列HM(1/3)の構成例を示す図である。 図8は、p0,lの探索方法を示すフローチャートである。 図9は、符号化率1/10の符号に対応するイレギュラーなパリティ検査行列HMの列次数分布の一例を示す図である。 図10は、マスク行列Zによりマスク後のイレギュラーなパリティ検査行列HMの構成例を示す図である。 図11は、実施の形態4の符号構成法を示す図である。 図12は、システムで用意する一番低い符号化率をR0=1/10とした場合の符号を示す図である。 図13は、従来と本発明の送信処理を示す図である。 図14は、情報パケット長k=N−Mが列サイズ、パリティパケット長Mが行サイズのHERA L´を示す図である。 図15は、実施の形態6のLDPC符号のパリティ検査行列HMの構成を示す図である。 図16−1は、実施の形態6の消失訂正符号化復号法を説明するための図である。 図16−2は、実施の形態6の消失訂正符号化復号法を説明するための図である。 図16−3は、実施の形態6の消失訂正符号化復号法を説明するための図である。 図17は、実施の形態7におけるIPベースのストリーミングシステムの構成例を示す図である。 図18は、RTPプロトコルを示す図である。 図19は、本発明にかかる符号化処理/復号処理を移動体通信システムに適用した場合の構成例を示す図である。 図20は、QC符号のパリティ検査行列の一例を示す図である。 図21は、検査行列の一例をタナーグラフで表現した場合を示す図である。
符号の説明
1 LDPC符号化器
2 変調器
3 通信路
4 復調器
5 LDPC復号器
51 積和演算部
以下に、本発明にかかる検査行列生成方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、LDPC符号化器およびLDPC復号器を含む本実施の形態の通信システムの構成例を示す図である。図1において、送信側の通信装置(送信装置と呼ぶ)は、LDPC符号化器1と変調器2を含む構成とし、受信側の通信装置(受信装置と呼ぶ)は、復調器4とLDPC復号器5を含む構成とする。
ここで、LDPC符号を採用する通信システムにおける符号化処理,復号処理の流れを簡単に説明する。
送信装置内のLDPC符号化器1では、本実施の形態の検査行列生成方法により生成されたパリティ検査行列、すなわち、後述する所定のマスキングルールに基づいてマスキング処理が行われたM行×N列のパリティ検査行列HMを生成する。
その後、LDPC符号化器1では、情報長Kのメッセージ(u1,u2,…,uK)を受け取り、このメッセージおよび上記パリティ検査行列HMを用いて、下記(3)式のように、長さNの符号語vを生成する。なお、本実施の形態においては、従来技術において計算していた生成行列G(K:情報長,N:符号語長)を用いずに、情報ビットの符号化処理を行う。
v={(v1,v2,…,vN)∈GF(2)|(v1,v2,…,vN)HM T=0}
…(3)
そして、送信装置内の変調器2では、LDPC符号化器1で生成した符号語vに対して、BPSK,QPSK,多値QAM等の所定の変調方式によりディジタル変調を行い、その変調信号x=(x1,x2,…,xN)を、通信路3を介して受信装置に送信する。
一方、受信装置では、復調器4が、通信路3を介して受け取った変調信号y=(y1,y2,…,yN)に対して、上記BPSK,QPSK,多値QAM等の変調方式に応じたディジタル復調を行い、さらに、受信装置内のLDPC復号器5が、公知の復号アルゴリズムによる繰り返し復号を実施し、その復号結果(元のメッセージu1,u2,…,uKに対応)を出力する。
つづいて、本実施の形態における検査行列生成方法を詳細に説明する。なお、本実施の形態においては、イレギュラー(重み分布が非一様)なパリティ検査行列を生成することとし、その構造として、LDGM(Low Density Generation Matrix)構造を採用することを前提とする。また、以下において説明する各実施の形態の検査行列生成処理については、通信装置内のLDPC符号化器1で実行することとしてもよいし、または、通信装置の外部で予め実行しておくこととしてもよい。通信装置の外部で実行される場合には、生成済みの検査行列を内部メモリに記憶しておく。
まず、本実施の形態の検査行列生成処理により生成されるマスキング処理後のイレギュラーなパリティ検査行列HMの前提となる、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLを定義する。
たとえば、M(=pJ)行×N(=pL+pJ)列のLDGM構造のQC−LDPC符号のパリティ検査行列HQCL(=[hm,n])は、下記(4−1)式のように定義することができる。
Figure 0004620132
なお、hm,nは、パリティ検査行列HQCLにおいて、行番号m,列番号nの要素を表す。また、0≦j≦J−1,0≦l≦L−1において、I(pj,l)は、行番号:r(0≦r≦p−1),列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列である。たとえば、I(1)は、下記(4−2)式のように表すことができる。
Figure 0004620132
上記パリティ検査行列HQCLは、左側の行列(情報ビットに対応する部分)が、上記(2)式で示したQC符号のパリティ検査行列と同一の擬似巡回行列HQCであり、右側の行列(パリティビットに対応する部分)が、下記(5−1)式または(5−2)式に示すI(0)を階段状に配置した行列HTまたはHDである。
Figure 0004620132
Figure 0004620132
ただし、上記階段状の構造で用いている巡回置換行列は、I(0)に限定しているわけではなく、任意のI(s|s∈[0,p−1])の組み合わせでもよい。
また、上記LDGM構造とは、上記(4−1)式に示す行列のように、パリティ検査行列の一部を下三角行列にした構造のことをいう。この構造を用いることにより、生成行列Gを用いずに符号化を容易に実現できる。たとえば、組織符号語vを下記(6)式のように表し、情報メッセージu=(u1,u2,…,uK)が与えられた場合、パリティ要素pm=(p1,p2,…,pM)は、「HQCL・vT=0」を満たすように、すなわち、下記(7)式のように生成する。
v=(v1,v2,…,vK,vK+1,vK+2,…,vN
=(u1,u2,…,uK,p1,p2,…,pM) …(6)
ただし、N=K+Mである。
Figure 0004620132
さらに、本実施の形態においては、上記(4−1)のように定義されたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、特定の規則性を設けている。具体的には、パリティ検査行列HQCLの左側の擬似巡回行列HQC部分において、行番号j(=0,1,2,…J−1),列番号l(=0,1,2,…L−1)に配置されたp行×p列の巡回置換行列I(pj,l)のpj,lに、下記(8−1)式または下記(8−2)式となる特定の規則性を設けている。
j,l=j(l+1)mod p …(8−1)
j,l=(j+1)(l+1)mod p …(8−2)
また、p0,lを任意の整数とし、巡回置換行列I(pj,l)のpj,lに、下記(9−1)式または下記(9−2)式となる特定の規則性を設けることとしてもよい。
j,l=p0,l(j+1)mod p …(9−1)
j,l=((p−p0,l)(j+1))mod p …(9−2)
なお、本実施の形態においては、上記(8−1)式,(8−2)式,(9−1)式,(9−2)式に限らず、j,l,pj,l等のパラメータで構成できる他の規則性を設けることとしてもよい。
以上のように、本実施の形態においては、巡回置換行列の行番号jと列番号lによってpj,lを特定できる規則性、または、特定の行番号、具体的には、行番号j=0のp0,lを任意の整数とし、それ以外の行番号jによりpj,lを特定できる規則性、を持たせる。これにより、後述するように、たとえば、擬似巡回行列HQCの行数が大きくなるような場合であっても、HQC全体のpj,lを記憶する必要がなくなる。
また、上記(8−1)式あるいは上記(8−2)式を用いる場合には、擬似巡回行列HQCについて何も記憶する必要がない。
また、上記(9−1)式あるいは上記(9−2)式を用いる場合には、p0,lだけを記憶しておけばよい。このとき、p0,lは擬似巡回行列HQCの列数分だけ記憶しておけばよく、行数の大きいHQCであっても少ないメモリで実現することができる。また、これらの規則性により、p0,lの整数倍でj行目の置換行列の1行目の列番号が決まるため、具体的には、行毎にp0,lの足し算をするだけでよく、少ない計算量で実現することができる。
なお、何も記憶する必要がない上記(8−1)式あるいは上記(8−2)式を用いる場合よりも、上記(9−1)式あるいは上記(9−2)式を用いる場合の方が、取り得る組み合わせの幅が広がるため、性能の良い組み合わせを選ぶことができる。ただし、p0,lの探索方法については後述する。
つづいて、本実施の形態の検査行列生成方法における特徴的な処理である、パリティ検査行列HQCLに対するマスク処理について説明する。
たとえば、上記(4−1)式に示す左側の行列を、下記(10−1)式に示すように、J×Lの擬似巡回行列HQCと表し、マスク行列Z(=[zj,l])をGF(2)上のJ行×L列の行列とした場合、後述する所定のルールを適用すると、マスク処理後の行列HMQCは、下記(10−2)式のように表すことができる。
Figure 0004620132
Figure 0004620132
なお、上記(10−2)式におけるzj,lI(pj,l)は、下記(11)式のように定義される。
Figure 0004620132
上記0行列は、p行×p列の0行列である。また、行列HMQCは、擬似巡回行列HQCをマスク行列Zの0要素によりマスクし、重み分布を非一様(イレギュラー)にした行列であり、また、行列HMQCの巡回置換行列の分布は、マスク行列Zの次数分布と同じである。
ただし、上記重み分布を非一様にする場合のマスク行列Zの重み分布は、後述するように、所定の密度発展法で求めることとする。たとえば、64行×32列のマスク行列は、密度発展法による列次数分布に基づいて、下記(12)式のように表すことができる。
Figure 0004620132
したがって、本実施の形態において、最終的に求めるイレギュラーなパリティ検査行列HMは、たとえば、64行×32列のマスク行列Z、64(行番号jは0〜63)×32(列番号lは0〜31)の擬似巡回行列HQC、および64(行番号jは0〜63)×64(列番号lは0〜31)のHTを用いて、下記(13)式のように表すことができる。
M=[Z×HQC|HT
=[HMQC|HT] …(13)
すなわち、LDPC符号Cを生成するためのパリティ検査行列HMQCは、マスク行列Zと擬似巡回行列HQCの行番号j=0の巡回置換行列の値の設計により、与えられる。
つづいて、レギュラーなパリティ検査行列HMを用いて、生成行列Gを用いずに符号化を実現する場合の実装例を以下に示し、その動作を説明する。なお、ここでは、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLを、下記(14−1)式に示す行列とする。
Figure 0004620132
また、上記(14−1)式に示す行列をマスク化したイレギュラーなパリティ検査行列HMを、下記(14−2)式に示す行列とする。
Figure 0004620132
また、情報メッセージをu=(up,1p,2)=(01100 11001)とする。ただし、up,lは、uをpビット単位で区切り、lに対して昇順に番号を付したものである。
ここで、生成行列Gを用いずに符号を生成する場合の処理として、p行分のマスク処理後の行列HMQCと情報メッセージuとの積和演算について説明する。
図2−1は、符号生成における積和演算部51の構成を示す図である。ここでは、基準クロックを1クロックとし、図中、遅延素子(D)61は1クロック単位で動作し、遅延素子(D)62はpクロック単位で動作する(この例ではp=5)。また、列カウンタ63はpクロック単位で動作し、行カウンタ64はL・pクロック単位で動作する(この例ではL=2)。
図2−1において、擬似巡回行列HQCのj行l列目の巡回置換行列は、I(j・(l+1)),「0≦j≦J−1」,「0≦l≦L−1」であるため、行カウンタ64にてjを昇順にL・pクロック単位でカウントし、列カウンタ63にて「l+1」を昇順にpクロック単位でカウントし、乗算器65にて「j・(l+1)」を算出し、その値をセレクタ66に入力し、長さpのレジスタ67の“1”の位置を決めることにより、j行l列目の巡回置換行列の1行目の“1”の位置をセットする。
一方、情報メッセージuについては、長さp毎に区切り、遅延素子62を介してpクロック単位でレジスタ68,69に順に入力する。そして、加算器70にてレジスタ69内の長さpの情報メッセージuとレジスタ67内のビット列とのEXORを計算し、加算器72にてEXOR演算結果の各ビットの総和を計算する。この処理により、I(j・(l+1))の1行目と情報メッセージのup,lとの積和計算が実現できる。つぎに、レジスタ67を、遅延素子61を用いてシフトすることにより、I(j・(l+1))の2行目が生成でき、同様に、I(j・(l+1))の2行目と情報メッセージのup,lとの積和計算が実現できる。その後、この処理をp回にわたって繰り返し実行することにより、I(j・(l+1))のp行分の積和計算結果pp,j´が得られる。なお、pp,j´はj行目の巡回置換行列全ての積和計算結果のpビットを意味する。
つぎに、l=0からl=L−1まで、I(j・(l+1))とup,lとの積和を計算するために、遅延素子62と加算器72により、L回にわたって繰り返しEXOR演算を行う。この操作をj=0からj=J−1まで繰り返し実行し、マスク処理後の行列HMQCとuとの積和計算結果pp,j´を得る。なお、セレクタ73では、zj,l=0のとき0を選択出力し、zj,l=1のとき加算器71出力を選択出力する。
また、図2−2は、図2−1に示す積和演算部51を用いた符号生成部の構成例を示す図である。ここでは、遅延素子(D)74がL・pクロック単位で動作する。図2−2において、pビット単位に昇順にjに番号を付した系列(パリティビット)をpp,jとすると、系列pp,jは、遅延素子74と加算器75によるEXOR演算で得られる。すなわち、「pp,j=pp,j´+pp,j-1´」を計算する。なお、pp,0´=0である。
つづいて、上記擬似巡回行列HQCをマスク行列Zの0要素によりマスクする場合のマスキングルールを具体的に説明する。ここでは、本実施の形態の通信装置が、64(行番号jは0〜63)×32(列番号lは0〜31)の擬似巡回行列HQCを非正則(イレギュラー)にするためのマスク行列Zを、規則的なマスキングルールにより生成する。一例として、符号化率1/3の符号に対応するマスク行列Zを生成する。
図3は、本実施の形態のマスク行列生成処理を示すフローチャートである。なお、本実施の形態では、マスク行列生成処理を、通信装置内のLDPC符号化部1にて実行する場合の例を示す。また、符号化率1/2の符号に対応するイレギュラーなパリティ検査行列HM(1/2)を「HM(1/2)=[ZA×HQCU|HD]」と仮定する。ただし、HQCUは、上記擬似巡回行列HQCにおける上半分の32(行番号jは0〜31)×32(列番号lは0〜31)の擬似巡回行列を表し、HDは、上記(5−2)式に示す、たとえば、32(行番号jは0〜31)×32(列番号lは0〜31)の行列とする。
まず、通信装置内のLDPC符号化器1では、マスク行列のサイズを8の倍数で設定する(ステップS1)。ここでは、一例として、符号化率1/3の符号に対応するマスク行列Zを64行×32列の行列とし、符号化率1/2の符号に対応するマスク行列ZAを32行×32列の行列とする。たとえば、通信に用いられるデータのサイズが一般に8の倍数であるため、マスク行列のサイズを8の倍数に設定することにより、pのサイズを変えた場合であっても、8の倍数である情報長に対して整合をとることができる。
つぎに、LDPC符号化器1は、マスク行列ZAの行数を最大次数とし、上記(5−2)式に示すHDの次数分布を制約条件として、密度発展法により、マスク行列ZAの列次数分布を計算する(ステップS2)。図4は、パリティ検査行列HM(1/2)(=[ZA×HQCU|HD])の列次数分布の一例を示す図であり、列次数14,4,3の欄に記載の数字(分数)がマスク行列ZAの列次数分布を表している。なお、列次数2の欄は、HDの列次数分布に対応している。
さらに、LDPC符号化器1は、マスク行列Zの行数を最大次数とし、上記(5−1)式に示す64(行番号jは0〜63)×64(列番号lは0〜63)のHTの次数分布、および上記で求めたマスク行列ZAの列次数分布、を制約条件として、密度発展法により、マスク行列Zの列次数分布を計算する(ステップS2)。図5は、符号化率1/3の符号に対応するイレギュラーなパリティ検査行列HM(1/3)(=[Z×HQC|HT])の列次数分布の一例を示す図であり、列次数28,8,4,3(9列分)の欄に記載の数字がマスク行列Zの列次数分布を表している。なお、列次数3の(41−9)/96と列次数1の欄は、HTの列次数分布に対応している。
つぎに、LDPC符号化器1は、上記マスク行列ZAの列次数分布に基づいて、下記優先順位#1の条件を満たすように、マスク行列ZAにおける列次数の大きい列、すなわち、ここでは列次数14の列(5/64)の、“1”の位置を決める(ステップS3)。たとえば、Zに連続する“1”が存在する場合は、HDの縦に連続するI(0)との間で4箇所に巡回置換行列が存在し、それらがループ4を構成する可能性があるため、下記優先順位#1の条件を満たすことにより、その可能性を排除する。
・優先順位#1の条件:同一列内の“1”の間隔は2行以上離す
このとき、上記列次数の大きい列は、“1”の密度が大きいため、後述する優先順位#2の条件を満たす必要はない。また、上記で求めた列次数14を実現するために、同一列において“1”が連続しても良いが、その数は可能な限り少なくする。
そして、ここでは、列次数の大きい列が14の一つしか存在していないが、たとえば、列次数の大きい列が14,13,12…等のように複数存在する場合は、左から列次数の降順にマスク行列ZAの列を配置する(ステップS3)。
つぎに、LDPC符号化器1は、上記マスク行列ZAの列次数分布に基づいて、上記優先順位#1の条件および下記優先順位#2の条件を満たすように、マスク行列ZAにおける列次数の小さい列、すなわち、ここでは列次数4,3の列(18/64,9/64)の、“1”の位置を決める(ステップS4)。たとえば、規則的なルールに基づく巡回置換行列の組み合わせに対して、マスク行列の“1”の配置も規則的である場合、特定のループを構成するマスク行列の“1”の配置が存在すると、規則的であるがゆえに多重的に同一ループが多数個存在する可能性がある。しかしながら、下記優先順位#2の条件を満たすことにより、その発生確率を減らすことができる。
・優先順位#2の条件:乱数に基づき配置する
そして、上記列次数の大きい列につづいて、左から列次数の降順にマスク行列ZAの列を配置する(ステップS4)。
たとえば、上記ステップS3およびS4にて生成されたマスク行列ZAは、(15)式に示すような行列となる。
Figure 0004620132
なお、密度発展法により求めたマスク行列ZAの列次数分布に基づいてマスク行列ZAを構成する場合、小さい列次数の列(列次数3,4等)に小さいループ(ループ4,6等)が含まれていると、誤り確率が上がり、良好な性能が得られない場合がある。このような場合、LDPC符号化器1は、小さい列次数の列の重みを増やすことで、性能劣化を回避する。上記マスク行列ZAの場合は、図4に示す列次数分布において、列次数3の列(9/64)のうちの3列の重みを増やしている。すなわち、(15)式においては、列次数14が5列,列次数4が21列,列次数3が6列となっている。
つぎに、LDPC符号化器1は、上記マスク行列Zの列次数分布に基づいて、上記優先順位#1の条件を満たすように、マスク行列Zにおける列次数の大きい列、すなわち、ここでは列次数28の列(5/96)の、“1”の位置を決める(ステップS5)。このとき、上記列次数の大きい列は、“1”の密度が大きいため、上記優先順位#2の条件を満たす必要はない。また、上記で求めた列次数28を実現するために、同一列において“1”が連続しても良いが、その数は可能な限り少なくする。
そして、ここでは、列次数の大きい列が28の一つしか存在していないが、列次数の大きい列が複数存在する場合は、左から列次数の降順にマスク行列Zの列を配置する(ステップS5)。
つぎに、LDPC符号化器1は、上記マスク行列Zの列次数分布に基づいて、上記優先順位#1の条件および上記優先順位#2の条件を満たすように、マスク行列Zにおける列次数の小さい列、すなわち、ここでは列次数8,4,3の一部の列(10/96,8/96,9/96)の、“1”の位置を決める(ステップS6)。
そして、上記列次数の大きい列につづいて、左から列次数の降順にマスク行列Zの列を配置する(ステップS6)。
たとえば、上記ステップS5およびS6にて生成されたマスク行列Zは、上記(12)式のように表すことができる。上記(12)式において、ZA(1:32,2:5)は、マスク行列ZAの1行目〜32行目および2列目〜5列目のサブマトリックスを表し、ZA(1:32,1)は、マスク行列ZAの1行目〜32行目および1列目のサブマトリックスを表し、ZA(1:32,7:16)は、マスク行列ZAの1行目〜32行目および7列目〜16列目のサブマトリックスを表す。
なお、密度発展法により求めたマスク行列Zの列次数分布に基づいてマスク行列Zを構成する場合、小さい列次数の列(列次数3,4,8等)に小さいループ(ループ4,6等)が含まれていると、誤り確率が上がり、良好な性能が得られない場合がある。このような場合、LDPC符号化器1は、小さい列次数の列の重みを増やすことで、性能劣化を回避する。
また、LDPC符号を多値変調のような不均一な誤り確率のアプリケーションに適用する場合、誤り確率の小さいビットを列次数の大きい列に対応するビットに割り当て、誤り確率の大きいビットを列次数の小さい列に対応するビットに割り当てると、性能が向上する。このような場合に、上記ステップS3〜S6に示すように、左側から列次数の降順に列を並べておくと、ビットのオーダリングが容易となる。
図6は、上記のように生成したマスク行列ZAによりマスク後の、イレギュラーなパリティ検査行列HM(1/2)の構成例を示す図であり、図7は、上記のように生成したマスク行列Zによりマスク後の、イレギュラーなパリティ検査行列HM(1/3)の構成例を示す図である。なお、図7において、図示のHQCDは、上記擬似巡回行列HQCにおける下半分の32(行番号jは32〜63)×32(列番号lは0〜31)の擬似巡回行列を表す。また、図示の0は0行列を表し、図示のIは単位行列を表し、HDとIと0でHTを構成する。
つづいて、擬似乱数系列を用いたマスク行列設計法について説明する。たとえば、上記では、上記優先順位#1の条件および優先順位#2の条件を満たすように、小さい列次数の列内の“1”の位置を決めている。具体的には、本実施の形態では、同一列内の1”の位置の差分が2以上となる擬似乱数系列を用いて、小さい列次数の列内の“1”の位置を決める。
たとえば、本実施の形態では、下記(16)式に示すフェルマーの小定理に基づいて乱数を生成する。なお、G0はGF(p)の原始元である。
A(i)=G0 imod p,i=0,1,2,…,p−2 …(16)
そして、その乱数列の中で差分が1の要素が存在する場合は、たとえば、後ろの要素を最後に移動する処理を施し、この処理を施した後の乱数系列を用いて、小さい列次数の列内の“1”の位置を決める。
具体的には、上記乱数系列をp=11,G0=2として生成する場合、
{1 2 4 8 5 10 9 7 3 6}
となるため、要素間差分が1となっている、要素1と要素2,要素10と要素9、のそれぞれの後ろの要素2,9を最後尾に移動する。すなわち、
{1 4 8 5 10 7 3 6 2 9}
となる。
その後、上記並べ替え後の乱数系列を列次数毎に分割して、行位置番号とする。たとえば、列次数3を2列,列次数4を1列とした場合は、乱数系列を、
{1 4 8},{5 10 7},{3 6 2 9}
というように分割して、分割後の各要素を、列中の“1”の行番号とする。
そして、この乱数系列により“1”の位置決めが終了した場合には、さらに異なる原始元にて同様に乱数系列を生成し、その乱数系列を用いて残りの列の“1”の位置を決める。
この処理により、小さいループが発生しづらくなる、という効果が得られる。また、HTを使用し、マスク行列の同一列において“1”が隣り合っている場合には、短いループが発生する可能性があるが、上記乱数系列を用いることにより、その可能性を回避することができる。
なお、上記乱数系列の生成方法は、一例であり、同一列内の要素の差分が2以上となる擬似乱数系列であれば、どのような系列を用いてもよい。
つづいて、p0,lの探索方法について説明する。ここでは、マスク行列ZA使用時で、かつ、上記(9−1)式または上記(9−2)式に基づく擬似巡回行列HQCを用いた場合の、本実施の形態の通信装置によるp0,lの探索方法について説明する。また、上記図3において求めたマスク行列ZAを用いて、HM(1/2)を「HM(1/2)=[ZA×HQCU|HD]」と仮定する。
図8は、本実施の形態のp0,lの探索方法を示すフローチャートである。まず、LDPC符号化器1では、「HM(1/2)=[ZA×HQCU|HD]」に基づいて、p0,L-1の値を1からp−1まで変化させ、最小ループが最大となり、その最小ループの数が最小となるp0,L-1を求める(ステップS11)。このとき、HM(1/2)の1列目から(L−2)列目までの巡回置換行列は、全て0行列に置き換えていることを条件とする。
つぎに、LDPC符号化器1では、「HM(1/2)=[ZA×HQCU|HD]」に基づいて、p0,L-2の値を1からp−1まで変化させ、最小ループが最大となり、その最小ループの数が最小となるp0,L-2を求める(ステップS12)。このとき、HM(1/2)の1列目から(L−3)列目までの巡回置換行列は、全て0行列に置き換えていることを条件とする。
以降、LDPC符号化器1では、上記と同様の処理で、p0,L-3,p0,L-4,p0,L-5を求めていき、最後に、「HM(1/2)=[ZA×HQCU|HD]」に基づいて、p0,0の値を1からp−1まで変化させ、最小ループが最大となり、その最小ループの数が最小となるp0,0を求める(ステップS13)。
上記ステップS11〜S13の処理を実行することにより、最小ループの影響を受けやすい列次数の小さな列から優先的にp0,lが確定していくため、良い性能の検査行列を設計することができる。
ここで、上記探索方法で求めたp0,lの一例を以下に示す。たとえば、32(行番号jは0〜31)×32(列番号lは0〜31)のHQCに対して上記(9−2)式を用いた場合、
0,0=39,p0,1=21,p0,2=41,p0,3=61,p0,4=6,p0,5=40,p0,6=1,p0,7=37,p0,8=3,p0,9=34,p0,10=26,p0,11=10,p0,12=22,p0,13=16,p0,14=37,p0,15=17,p0,16=25,p0,17=23,p0,18=12,p0,19=1,p0,20=10,p0,21=14,p0,22=6,p0,23=24,p0,24=25,p0,25=26,p0,26=27,p0,27=28,p0,28=29,p0,29=30,p0,30=31,p0,31=32
となる。
なお、本実施の形態においては、パリティ検査行列にHDやHTを含まない場合であっても、上記擬似乱数系列を用いたマスク行列設計法および上記p0,lの探索方法を、容易に適用可能である。
このように、本実施の形態においては、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、擬似巡回行列HQC部分の行番号j,列番号lに配置された巡回置換行列の1行目の列番号が上記(8−1)式,上記(8−2)式,上記(9−1)式,上記(9−2)式となる特定の規則性を設け、当該特定の規則性を設けた擬似巡回行列HQCを、所定の方法で生成されたマスク行列を用いてマスクすることにより、イレギュラーなパリティ検査行列を生成することとした。これにより、LDGM構造のレギュラーなパリティ検査行列HQCLから、LDGM構造のイレギュラーなパリティ検査行列HMを生成することができる。また、パリティ検査行列の一部を階段状の構造にしたことにより、生成行列Gを用いずに符号化を容易に実現でき、生成行列Gを生成する必要がないので、回路規模を大幅に低減することができる。
実施の形態2.
前述の実施の形態1では、符号化率1/3までの符号構成法について説明したが、本実施の形態においては、たとえば、符号化率1/10までの符号構成法について説明する。なお、システム構成については、前述した実施の形態1の図1と同様である。ここでは、前述した実施の形態1と異なる処理について説明する。
ここで、符号化率1/10に対応する288(行番号jは0〜287)×32(列番号lは0〜31)の擬似巡回行列HQCを、288行×32列のマスク行列Zの0要素によりマスクする場合のマスキングルールを具体的に説明する。ここでは、本実施の形態の通信装置が、上記288×32の擬似巡回行列HQCを非正則(イレギュラー)にするためのマスク行列Zを、規則的なマスキングルールにより生成する。
以下、本実施の形態のマスク行列生成処理として、前述した実施の形態1の図3と異なる処理について説明する。なお、マスク行列Z生成後、最終的に求めるイレギュラーなパリティ検査行列HMは、たとえば、288行×32列のマスク行列Z、上記288×32の擬似巡回行列HQC、および288(行番号jは0〜287)×288(列番号lは0〜287)のHTを用いて、下記(17)式のように表すことができる。
M=[Z×HQC|HT
=[HMQC|HT] …(17)
また、上記HTを下記(18)式のように定義し、さらに、HT内のTDを下記(19)式のように定義する。
Figure 0004620132
Figure 0004620132
また、符号化率1/2の符号に対応するイレギュラーなパリティ検査行列を「HM(1/2)=[ZA×HQC(1/2)|HT(1/2)]」と仮定する。ただし、ZA(=ZA(1/2))は32行×32列のマスク行列であり、HQC(1/2)は、上記擬似巡回行列HQCにおける上から1/9の32(行番号jは0〜31)×32(列番号lは0〜31)の擬似巡回行列を表し、HT(1/2)は上記TDである。また、符号化率1/3,1/4,…,1/10に対応して、イレギュラーなパリティ検査行列をHM(1/3),HM(1/4),…,HM(1/10)(=HM)と表し、マスク行列をZA(1/3),ZA(1/4),…,ZA(1/10)(=Z)と表し、擬似巡回行列をHQC(1/3),HQC(1/4),…,HQC(1/10)(=HQC)と表し、HT(1/3),HT(1/4),…,HT(1/10)(=HT)と表す。
たとえば、図3のステップS2の処理において、本実施の形態のLDPC符号化器1では、まず、符号化率1/2に対応して、マスク行列ZAの行数を最大次数とし、上記HT(1/2)(=TD)の次数分布を制約条件として、密度発展法により、マスク行列ZAの列次数分布を計算する。つぎに、LDPC符号化器1は、符号化率1/3に対応して、上記HT(1/3)の次数分布および上記で求めたマスク行列ZAの列次数分布を制約条件として、密度発展法により、マスク行列ZA(1/3)の列次数分布を計算する。以降、一つ前のマスク行列の列次数分布を制約条件として、密度発展法により、符号化率1/4,1/5,…に対応したマスク行列の列次数分布を順次計算し、最後に、上記HTの次数分布および符号化率1/9に対応したマスク行列ZA(1/9)の列次数分布を制約条件として、密度発展法により、マスク行列Zの列次数分布を計算する。図9は、符号化率1/10の符号に対応するイレギュラーなパリティ検査行列HM=[Z×HQC|HT]の列次数分布の一例を示す図である。
つぎに、LDPC符号化器1では、図3のステップS3〜S6の処理において、前述した実施の形態1と同様に、優先順位#1の条件および優先順位#2の条件に基づいて、符号化率1/2,1/3に対応するマスク行列の各列の“1”の位置を決め、その後、さらに、同様の手順で、符号化率1/4,1/5,…,1/10に対応するマスク行列の各列の“1”の位置を決める。
たとえば、上記本実施の形態の処理にて生成されたマスク行列Zは、下記(20)式のように表すことができる。
Figure 0004620132
図10は、上記のように生成したマスク行列Zによりマスク後の、イレギュラーなパリティ検査行列HMの構成例を示す図である。
このように、本実施の形態においては、マスク行列Zを、符号化率1/2に対応するマスク行列ZAの部分行列のみを使って構成しているため、符号化率に応じてマスク行列が大きくなった場合であっても、マスク行列を記憶するためのメモリを少なくすることができる。
また、符号化率に応じた各マスク行列は、列方向に同一パターンができないように、マスク行列ZAの部分行列をシフトしながら使用している。具体的には、マスク行列ZAの部分行列を列次数の重い部分行列(重み14)と軽い部分行列(重み4以下)とに分け、それぞれをシフトしながら用いている。たとえば、マスク行列ZAにおいて、ZA(1:32,1:5)は列次数14の部分行列であるが、マスク行列ZA(1/3)においては、これを列単位で左シフトさせ、シフト後のZA(1:32,2:5)ZA(1:32,1)をマスク行列ZAのZA(1:32,1:5)の下に連結させている。また、マスク行列ZAにおいて、ZA(1:32,6:32)は列次数4以下の部分行列であるが、マスク行列ZA(1/3)においては、ZA(1:32,6:32)の中から必要な列数の部分行列ZA(1:32,7:16)を使用し、このZA(1:32,7:16)をマスク行列ZAのZA(1:32,6:15)の下に連結させている。そして、マスク行列ZA(1/4),ZA(1/5),ZA(1/6)…についても、列方向に同一パターンができないように、マスク行列ZAの部分行列をシフトしながら使用する。これにより、HTを用いた場合に発生しやすい小さいループを、回避することができる。
実施の形態3.
つづいて、実施の形態1および2において生成したパリティ検査行列が任意の符号長に対応する場合のルールについて説明する。
巡回置換行列I(pj,l)のサイズpを可変にすることにより、任意の符号長に対応することはできるが、その際、本実施の形態では、以下のルールで、pj,lの値を変更する。
(1)「p≦pA」の場合は、下記(21)式に示すように、pj,lの値を変更する。
j,l len=pj,l PAmod p …(21)
なお、pj,l lenは、サイズpのときの巡回置換行列の最初の行の1の列番号で、pj,l PAはサイズpAのときの巡回置換行列の最初の行の1の列番号であり、このpj,l PAおよびpAは事前に求めておくものとする。
(2)「p>pA」の場合は、下記(22)式,下記(23)式、下記(24)式または上記(21)式に示すように、pj,lの値を変更する。
Figure 0004620132
Figure 0004620132
Figure 0004620132
なお、上記(22)式SMは、マスク行列の行数、αは「0<α≦1」の任意の実数の定数である。また、上記(23)式の第二項は、第一項に加算または減算する整数を一般的に表現したものである。この部分は「((p/pA)×α)以下の乱数」でもよい。
上記(1)に関しては、pが変化してもpj,l lenがpを越えなければ変化しない、という特徴があり、これにより、ループの分布が殆ど変化しない、という効果が得られる。
一方、上記(2)に関しては、整数倍にpが増加した際にはループの分布が変らないが、整数倍で割り切れない倍数の場合に中間値を補足する効果がある。
たとえば、あるLDPC符号が、pA=10で、下記(25)式のようなマスク化擬似巡回行列Hで構成されていると仮定する。
Figure 0004620132
ここで、下記(26)式に示すような擬似巡回行列H´がループ2iを持つための必要十分条件は、下記(27)式の場合、下記(28)式となる。
Figure 0004620132
Figure 0004620132
Figure 0004620132
なお、上記Δは下記(29)式である。
Figure 0004620132
従って、この条件を用いて考えると、上記(25)式に示す行列Hは、(1−2)+(6−9)+(6−2)=0のループ6が存在しているのがわかる。
また、pA=10に対してp=110の場合、上記(24)式を適用すると、下記(30)式となる。この場合、同一箇所で(11−22)+(66−99)+(66−22)=0となり、ループの分布は変わらないため、pA=10のときのループの分布を保証できるという意味では、この方法(上記(24)式)でもよい。
Figure 0004620132
しかしながらpがpAの整数倍の場合、p/pAの倍数以外の数字が存在しないことを考えると、p/pAに対して小さい値を上記(24)式の値に加算すると、さらにループを分解でき、大きいループの分布を構成できる可能性が増える。たとえば、上記(22)式でα=1/4を用いた場合、下記(31)式となり、同一箇所で(11−22)+(66−102)+(67−22)=−2≠0となり、ループ6の条件を満たさなくなる。
Figure 0004620132
一方、上記(24)式はp/pAの倍数でループが全て規定されているから、上記(22)式の第二項がp/pAに比べて十分に小さければ、新たに小さいループを規定する条件が発生する確率は低くなる。すなわち、上記(22)式を適用した場合にはループの分布が大きい値にシフトすることが期待できる。
実施の形態4.
実施の形態4では、前述した実施の形態1〜3にて求めたイレギュラーなパリティ検査行列HMを用いて、複数の符号化率に対応したLDPC符号を構成する。
図11は、本実施の形態の符号構成法を示す図であり、たとえば、符号化率0.5の符号を基準符号語とし、それよりも高い符号化率(=0.75)の符号語を生成する場合はパリティのパンクチャを行い、低い符号化率(=1/3)の符号語を生成する場合はパリティを追加している。なお、パンクチャリングビットには、受信LLRに0を挿入し、通常のLDPC復号を行えばよい。
ここで、複数の符号化率に対応したLDPC符号の構成法を具体的に説明する。たとえば、システムで用意する一番低い符号化率をR0=1/3以下とする。図12は、たとえば、システムで用意する一番低い符号化率をR0=1/10とした場合の符号を示す図である。
たとえば、符号化率R0=1/10に対応する符号がメモリに記憶され、符号化率R1の符号を構成する場合、符号化率R1が1/2未満であれば、すなわち、符号化率R1が1/2〜1/10の間であれば、パリティビットを符号語の最後尾から順にパンクチャする。
一方で、符号化率R1が1/2よりも高い場合は、LDPC符号のパンクチャリングビットの集合r´を以下のように表現する。たとえば、符号化率Rl=K/(K+K/2(l-1))に対して長さrのパリティビットを仮定すると(l=2,3,…)、パンクチャリングビットの集合r´は、下記(32)式のように表すことができる。
r´=r\{r(1:2(l-1):K)}
…(32)
なお、上記{r(1:2(l-1):K)}は、rの集合の、1番目の要素からK番目の要素までの2(l-1)ステップの要素を示し、上記(32)式は、集合rから集合{r(1:2(l-1):K)}を除いた集合を意味する。
したがって、1ビットずつパンクチャする場合は、集合{r(1:2(l-1):K)}に対して、{r(1:2(l-1):K)}\{r(1:2(l-1+1):K)}とした要素の後ろの要素から削除していき、それをrの集合から除いてパンクチャビットとする。このとき、図11に示すとびとびに表現されているパンクチャビットを、後ろから順にパンクチャできるように並べ替える。
このように、本実施の形態においては、特定の符号化率の符号語を基準とし、基準符号語より高い符号化率に関してはパリティのパンクチャを行い、低い符号化率に関してはパリティを増加させることとし、その際、符号化率に応じて個別にパリティ検査行列を生成することなく、一つのパリティ検査行列HMを用いて、上記パンクチャ処理およびパリティ追加処理を実現することとした。これにより、容易に複数の符号化率に対応できるとともに、さらに、符号化率の数に相当するパリティ検査行列を用意する必要がなくなるので、回路規模を大幅に削減できる。
実施の形態5.
実施の形態5では、前述したLDPC符号の消失訂正符号への応用について記載する。ここまで説明したLDPC符号は、通信機の物理層にて実装するタイプの誤り訂正符号であったが、これを消失訂正符号としてもそのまま活用できるので、以降説明を加える。
任意の符号長,符号化率に対して、確率的に小さい受信パケット数で復号を成功させることを目的とする際には、前述したLDPC符号に基づく消失訂正符号が適している。一方、符号化パケットに対して復号可能な消失パケット数を保証する必要がある場合、あるいはバースト性の消失パケット数を保証する必要がある場合には、BCH符号等の巡回符号に基づく消失訂正符号が有効となる。
消失訂正用の符号として、ここまで説明してきた本発明にかかるLDPC符号、あるいは一般のLDPC符号を元に構成する。また、消失パケット数を保証する意味でHamming符号,巡回符号,BCH符号あるいは最小距離が保証できるLDPC符号を元に構成する。これらの消失訂正符号は、無線通信や光ファイバーや銅線による有線通信などに活用できる。あるいは、分散してディスクに符号化パケットを保存し、どこかのディスクが破損した際に消失訂正符号により再生を行うことも可能となる。この際、データをパケット単位(データパケット)に消失訂正符号化した符号化パケットを異なるディスクに分散させて保存するシステムに対し、保存したディスクが部分的に壊れた際に、その壊れたディスクの符号化パケットのみを、必要最小限の別に保存した符号化パケットのみを集めて再生する機能を持つ。また、データパケットを一部更新する際に、関連する最小限の符号化パケットのみを訂正する。
本実施の形態では、BCH符号等の代数的符号を用いた符号化復号法について述べる。なお、以降の説明では、パケット単位で説明するが、処理はパケット内の同一のビット位置毎に並列に符号化復号処理するものとする。
まず、一般に検査行列で定義される符号に関して、その符号を消失訂正符号として用いる場合の処理方法を示す。任意の線形符号のM行N列の2元検査行列HERAを、以下の手順で消失訂正用検査行列に変換する。
(1)HERAをM×(N−M)行列AとM×M行列Bとを用いて下記(33)式のように定義する。
ERA=[A|B]
B≠0
…(33)
(2)Bの逆行列B-1を用いて下記(34)式に示す変換を行い、下記(35)式を生成する。なお、IはM×Mの単位行列である。
ERA´=[B-1A|B-1B]=[B-1A|I]
…(34)
ERA L´=[B-1A]
…(35)
(3)上記HERA L´を用いて情報パケットu=(u12 … uN-M)に対し、パリティパケットp=(p12 … pM)を下記(36)式のように作成する。
T=HERA L´×uT
…(36)
(4)送信パケットは、v=(u|p)を図13に示すように送り、受信側ではガウス消去法等により復号する。
(5)受信パケットの壊れたパケットは、Hの“1”の立っている関連する情報パケットから再生する。
(6)データパケット更新時はHの“1”の立っている関連するパリティパケットを修正する。
ここまでの流れにおいて、従来法との違いは、LT符号やRaptor符号、あるいは「特願2005-101134」の誤り訂正符号化装置にて用いた方式では、情報系列uは送信せず、パリティのみを送信する手順になっている。
(BCH符号を用いた実施例)
BCH符号などの線形ブロック符号を表現する際、符号長Nと情報長kを用いて(N,k)符号という呼び方をする。今、一例として、BCH符号の2元(7,4)符号の検査行列を下記(37)式に示す。
Figure 0004620132
上記手順(1)より、下記(38)式、下記(39)式となる。
Figure 0004620132
Figure 0004620132
なお、B=Iのため、HBCH´=[B-1A|B-1B]=[B-1A|I]はすでに完了している。一般には、上記操作を行い、単位行列Iを生成する作業が必要になる。
つぎに、HBCH L´=[B-1A]を求める。B=Iのため、B-1=Iとなり、HBCH L´=[B-1A]=[A]となる。同様に、生成行列GBCHよりGBCH=[E|D]=[E-1E|E-1D]=[I|E-1D]とすると、[E-1D]T=[B-1A]=HBCH L´となるため、生成行列あるいはその生成行列を定義する生成多項式よりもとめても良い。
また、生成行列GBCHをそのまま用いてc=u×GBCH Tとして符号化パケットを生成し、受信成功した符号化パケットciに対応したHBCH´=[B-1A|B-1B]=[B-1A|I]は、下三角行列が含まれているため、後退代入により符号語v=(u|p)は求められる。
たとえば、後退代入によりu=(u1234)=(0 1 0 1)を、Aの1行目を用いてGF(2)上で積和演算すると「1×0+1×1+1×0+0×0=1」となり、HBCH´×vT=0を満たすためには、パリティパケットp=(p123)のp1はIの1行目を用いて、「1+p1×1=0」よりp1=1となる。2行目、3行目も同様の計算によりp2=0,p3=0となる。
一方、pはpT=HERA L´×uTでも求めることができ、それらの符号語は一致する。また、復号する際、受信パケット成功が「u1,u2,p2,p3=0,1,0,0」とすると、下記(40)式のp2,p3がそれぞれ2行目と3行目に対応するため、それらの行を用いて下記(41)式に示す計算用行列を用意する
Figure 0004620132
Figure 0004620132
この行列にガウス消去法等をかけて下記(42)式に記載の行列に変換する。
Figure 0004620132
この行列より、「u1,u2,p2,p3=0,1,0,0」を用いて、後退代入により「u3,u4=0,1」を解くことができる。
また、生成行列GBCHをそのまま用いて、c=u×GBCH Tとして符号化パケットを生成し、受信成功した符号化パケットciに対応したGBCH Tの行を集めてガウス消去法等をかけても良い。この場合でも、下記(43)式のIの部分は、計算対象からはずし、上記と同等にE-1D部分行列のみを計算してもよい。
Figure 0004620132
従来の方式では、情報パケットを送らないため、同等の誤り率の通信路に適用するのに検査行列を7行×4列の検査行列を用意し、その中の4パケットが受信成功したとすると、4行分のガウス消去法を行わなければならず、計算量が大きくなる。また、分散ディスクシステムのように、一度にパケットを保存しているディスクが複数台壊れることが無い場合は、上記手順(5)のような手順で、全ての符号化パケットを用いなくても、一部のパケットのみから自己再生できる。たとえば、パリティパケットp1が壊れたことが分かったら、上記(40)式の1行目の1の立っている列に対応する情報パケット「u1,u2,u3=0,1,0」のみを用いて、p1=u1+u2+u3で再生できる。また、同等の操作は、もともとの上記(37)式に示すパリティ検査行列を用いてもできる。
たとえば、再生したい消失(壊れた)パケットに対応する列の中で1が立っている行に対し、その行の中で自分の列以外に1が立っている列に対応したパケットを用いて、それらに対応する自分以外のパケットは、全て正常である場合、その行重み−1個のパケットから自らのパケットを自己再生できる。従って、いずれの方法を用いてもよい。
さらに、やはり分散ディスクシステムのような用途の場合、ある情報パケットが保存してある内容を更新する場合、従来は、再度すべてのディスクを符号化して分散する必要があった。これでは効率が悪いので、更新したデータパケットに関連するパリティパケットのみを更新する手順とする。たとえば、上記(40)式に対し、u1を更新したい場合は、p1=u1+u2+u3とp3=u1+u2+u4でp1,p3のみ更新すればよい。上記例では、それほど計算量が減っていないように見えるが、実際の検査行列はもっと疎であるため、計算量の効果は大きくなる。同等の操作は、上記(37)式に示すもともとのパリティ検査行列を用いてもできる。
たとえば、更新したい情報パケットに対応する列の中で1が立っている行に対し、その行の中で自分の列以外に1が立っている列に対応したパケットを用いて、その行重み−1個のパケットから関連するパリティを更新する。従って、いずれの方法を用いてもよい。
以上のような操作は、一般の線形符号(ハミング符号,巡回符号,BCH符号,LDPC符号,畳み込み符号,ターボ符号等)であれば、全て同様な操作で消失訂正符号化復号できる。
また、(n,k)線形符号Cの検査記号Cをl個増やして作られた(n+1,k)線形符号をCの拡大符号と呼ぶ。特に、最小距離が奇数の2元(n,k)線形符号に対しては、1ビット検査ビットを付加することにより、最小距離を1だけ増やすことができる。このためには、各符号語に重みが偶数となるように検査ビットを付ければよい。すなわち、符号語(w1,w2,…,wn)に対し、下記(44)式となるような検査ビットpAを付加し、(w1,w2,…,wn,pA)を符号語とする符号C´を作る。このような検査ビットpAを全パリティ検査ビットと呼ぶ。
A=w1+w2+…+wn
…(44)
このようにして作られた符号C´は、元の符号の検査行列をHとすると、下記(45)式に示すようにHの全成分が0の列を付け加え、全成分が1の行を一つ付け加えて得られる(n−k+1)×n行列H´を検査行列とする(n+1,k)線形符号である。このような符号を用い、最小距離をd+1とした拡大符号を本消失訂正符号に用いても良い。
Figure 0004620132
また、一つ付け加える行が、0,1が混在した任意の要素でも最小距離dを保証した上で符号を構成できるため、この構成でも良い。
(最小距離の拡大法の適用)
また、生成行列GBCHを生成する際、BCH符号の生成多項式、たとえば、(7,4)符号の場合、g(x)=x3+x+1を用いているが、このg(x)=x3+x+1にx+1をかけたg(x)´(=x3+x+1)(x+1)を用いて生成行列G´BCHを生成し、c=u×G´BCH Tとして符号化パケットを生成し、受信が成功した符号化パケットciに対応したG´BCH Tの行を集めてガウス消去法等をかけてもよい。この場合でも、G´BCH T=[I/E-1D]のIの部分は計算対象からはずし、上記と同等にE-1D部分行列のみを計算してもよい。最小距離dの(n,k)符号のGBCHに対してこのG´BCHを用いた符号は最小距離d+1の(n+1,k)符号となる。
(符号語長の調整法)
最小距離dの(n,k)符号の検査行列Hに対して、任意のn−k×zの行列Eを連接したH´´をH´´=[H|E]のように連接すると、最小距離dの(n+z,k)符号を構成できる。これらの手法を用いて、実際のパラメータにあわせた符号を構成し、消失訂正に用いる。
(本方式の効果)
本発明では、HERA L´を用いることにより、情報系列とパリティ系列の両方を含む符号語v=(u|p)を送信でき、かつ受信に成功した情報パケットu´と受信に成功したパリティパケットp´の総数が「uのパケット数×105%」程度集めれば、復号を実行できる。つまり、図14に示す情報パケット長k=N−Mが列サイズ、パリティパケット長Mが行サイズのHERA L´に対し、「p´=(uのパケット数×105%)−k」個集まれば、ガウス消去法や「特願2005-101134」の誤り訂正符号化装置にて提案した方式であるPCC(Polynominal Combinatorial Computation)等により復号できる。
従来の方式では、情報パケットを送らないため、同等の誤り率の通信路に適用するのに、上記実施の形態の場合、検査行列を7行×4列の検査行列を用意し、その中の4パケットが受信成功したとすると、4行分のガウス消去法を行わなければならず、計算量が大きくなる。この従来例に対して計算量を少なくできる。
また、BCH符号を用いる場合、「符号化パケットN:情報パケットk:訂正可能パケットd−1(d:最小距離)」が以下のように確定できる。
符号化パケットN:情報パケットk:訂正可能パケットd-1(d:最小距離)
7:4:2

15:11:2
15:7:4
15:5:6

31:26:2
31:21:4
31:16:6
31:11:10
31:6:14

63:57:2
63:51:4
63:45:6
63:39:8
63:36:10
63:30:12
63:24:14
63:18:20

127:120:2
127:113:4
127:106:6
127:99:8
127:92:10
127:85:12
127:78:14
127:71:18
127:64:20

255:247:2
255:239:4
255:231:6
255:223:8
255:215:10
255:207:12
255:199:15
255:191:16
など。
よって、消失可能なパケット数d−1を保証できるメリットがある。つまり、d−1個パケットが消失しても確実に訂正できる。また、BCH符号の1ビット拡大符号を用いると、
符号化パケットN:情報パケットk:訂正可能パケットd-1(d:最小距離)
8:4:3

16:11:3
16:7:5
16:5:7

32:26:3
32:21:5
32:16:7
32:11:11
32:6:15

64:57:3
64:51:5
64:45:7
64:39:9
64:36:11
64:30:13
64:24:15
64:18:21

128:120:3
128:113:5
128:106:7
128:99:9
128:92:11
128:85:13
128:78:15
128:71:19
128:64:21

256:247:3
256:239:5
256:231:7
256:223:9
256:215:11
256:207:13
256:191:17
など。
よって、消失可能なパケット数d−1を保証できるメリットがある。つまり、d−1個のパケットが消失しても確実に訂正できる。同様な効果は、最小距離dが保証されている符号であれは全てに適用できる。
また、上記のように符号長や情報長が要求と合わない場合は、情報部分を既知データでパディングする方法がある。
たとえば、符号長n´=150で情報長k´=100位にするには、
255:207:12
を使って、情報部に105個既知の0等でパディングする。そうすると、
150:102:12
になる。既知の値でパディングしただけなので訂正できるパケット数は変らない。
同様な効果を示す方法に、BCH符号等の巡回符号を短縮化して用いることもできる。この場合、巡回符号の特徴を失わないために、符号化パケットの左端から連続する情報パケットを除いて短縮化するのが普通である。この場合、検査行列を除いた情報パケットに相当する検査行列を削除する。
また、これに拡大符号という方法を用いると、符号長が+1で修正できるパケット数が+1となる
256:207:13
というものが作れる。この場合、情報部に106個既知の0等でパディングすると、
150:101:13
が作れる。
さらに、BCH符号のような巡回符号の場合は、全て連続するN−K個が消失しても修正できるので、バースト誤りに対する誤り訂正能力も保証できるメリットがある。また、自己再生や更新に関してもパケットの一部を使って再生,更新を行うことができ、従来のように全ての情報パケットを使って符号化パケットを作る必要がなくなるメリットがある。これは1ビット拡大符号でも同様の効果を奏する。単一バースト誤りに限定すると、短縮化巡回符号でもN−K個が消失しても修正できる。
実施の形態6.
つづいて、本発明にかかるLDPC符号を用いた効率的な消失訂正符号化復号法を示す。図15は、本実施の形態のLDPC符号のパリティ検査行列HMの構成を示す図である。HTが上記(19)式のように、行重みが2の対角行列を階段状にした構成となっている場合、
(第1ステップ)
TのTD左端の列に1が立っている最初の行に対応するHMの行と2番目のHMの行とを足し算する。つぎに、2番目に1が立っている列に対しても同様に足し算をしていく。この操作を繰り返すことにより、TDの部分行列が単位行列になるようにする(図16−1〜図16−2への変換)。
(第2ステップ)
つぎに、「Dual Diagonal」となったHTに対し、第1ステップと同様に処理していく(図16−2から図16−3への変換)。これらの操作によりHM=[A|I]の形に変換できるため、HERA L´=[A]を容易に作成できる。前述したLDPC符号は、符号長および符号化率が可変にでき、各符号長,符号化率で良い性能が得られる効果があるが、消失訂正符号としても同様の効果が得られ、かつ実施の形態5に示すメリットを全て満足することが可能となる。
この変換方法は、一部あるいは全てのステップを使って下三角行列の行重みが2のLDGM構造であれば、すべてに適用できる。また、行重みが2以上でも同様な操作を重み分繰り返すことで適用できる。
また、生成行列GM=[I|A]をそのまま用いて、c=u×GBCH Tとして符号化パケットを生成し、受信成功した符号化パケットciに対応したGBCH Tの行を集めてガウス消去法等をかけても良い。この場合でも、GBCH T=[I/A]のIの部分は、計算対象からはずし、上記と同等にA部分行列のみを計算してもよい。
実施の形態7.
図17は、実施の形態7におけるIPベースのストリーミングシステムの構成例を示す図であり、映像/音声信号の送信側が圧縮符号化部101とFEC(Forward Error Correction)/インタリーブ部102とRTP(Real-time Transfer Protocol)部103とUDP(User Datagram Protocol)/IP部104とを備え、受信側が信号受信部105とRTP部106とFEC処理部107と画像処理/復号化部108とを備えている。なお、FECは誤り訂正符号化復号部を意味し、RTPはリアルタイム画像伝送プロトコルであり、UDP/IPはリアルタイム性を重視したIPプロトコルである。
以下、図18を用いてFECに関連したRTPプロトコルについて説明する。図18のように、RTPパケットに約7個のTS(Transport Stream)パケットが含まれており、情報RTPパケットは約5RTPパケットで構成され、それにパリティパケットが誤り率に応じて1〜数パケット(場合によっては数十パケット)追加される。
たとえば、前述した実施の形態5のBCH符号「n:k:d−1=63:36:10」を使うと、「5RTPパケット(各7TSパケット)+1TSパケット」(全36TSパケット)を情報パケット、「6TSパケット+3RTPパケット(各7TSパケット)」(全27TSパケット)、で構成できる。この場合、ランダムな10TSパケットあるいは連続する27TSパケットの消失まで訂正できる。
たとえば、実施の形態5のBCH符号の拡大符号「n:k:d−1=64:36:11」を使い、1パケット分短縮すると、「n:k:d−1=63:35:11」となる。この場合、5RTPパケットの情報パケット(全35パケット)、4RTPパケットのパリティパケット(全28パケット)、で構成できる。また、ランダムな11TSパケットの消失まで訂正できる。
このほかのBCH符号のパラメータ、LDPC符号、その他の線形符号すべてがこの消失訂正符号に適用できる。その他、パケットおよびディスク単位の消失訂正を行うあらゆる用途に適用できる。
実施の形態8.
つづいて、前述した実施の形態1〜7の符号化処理/復号処理を適用するシステムについて説明する。たとえば、本発明にかかるLDPC符号化処理および復号処理は、移動体通信(端末、基地局),無線LAN,光通信,衛星通信,量子暗号装置等、通信機器全般に適用できるものであり、具体的には、図1に示すLDPC符号化器1(実施の形態1〜4に対応),LDPC復号器5や、実施の形態5に記載の消失訂正符号化機能,実施の形態6に記載の消失訂正符号化復号機能を、各通信機器に搭載し、誤り訂正を行う。
図19は、本発明にかかる符号化処理/復号処理を、移動体端末200およびその移動体端末200と通信を行う基地局300を備えた移動体通信システムに適用した場合の構成例を示す図であり、移動体端末200は、消失訂正LDPC符号化器201と物理層LDPC符号化器202と変調器203と復調器204と物理層LDPC復号器205と消失訂正LDPC復号器206とアンテナ207とを備え、基地局300は、消失訂正LDPC復号器301と物理層LDPC復号器302と復調器303と変調器304と物理層LDPC符号化器305と消失訂正LDPC符号化器306とアンテナ307とを備えている。
また、図19に示す移動体端末200および基地局300には、物理層にフェージング通信路等に適用する物理層LDPC符号化器および物理層LDPC復号器が搭載されており、データリンク層等の上位層に消失訂正LDPC符号化器および消失訂正LDPC復号器が搭載されている。なお、移動体端末200および基地局300の物理層LDPC符号化器には、前述した実施の形態1〜4で説明したLPDC符号化器のいずれかの構成を適用する。また、移動体端末200および基地局300の消失訂正LDPC符号化器および消失訂正LDPC復号器には、実施の形態5および6に記載の符号化機能および復号機能を適用する。
上記のように構成される移動体通信システムにおいて、移動体端末200からデータを送信する場合は、まず、データとして、たとえば、音声,メール,WEB等の情報データをパケット化し、消失訂正LDPC符号化器201により符号化する。つぎに、物理層では、このパケットデータ単位に、フェージング通信路用の物理層LDPC符号化器202が符号化する。この符号化データを、変調器203とアンテナ207を介して無線通信路へ送出する。
一方、基地局300では、無線通信路中で発生した誤りを含む受信信号を、アンテナ307と復調器303を介して受け取り、復調後の受信データを物理層用LDPC復号器302にて訂正する。そして、物理層では、パケット単位で誤り訂正が成功したかどうかを、上位層に通知する。上位層では、消失訂正LDPC復号器301が、誤り訂正が成功したパケットのみを用いて情報パケットを再生する。そして、この情報パケットを、ネットワークを介して通信先へ転送する。なお、ネットワークから移動体端末200が各種データを受信する場合についても、上記と同様の処理で、基地局300が移動体端末200へ符号化データを送信し、移動体端末200が各種データを再生する。基地局300が移動体端末200へ符号化データを送信する場合は、まず、データとして、たとえば、音声,メール,WEB等の情報データをパケット化し、消失訂正LDPC符号化器306により符号化する。つぎに、物理層では、このパケットデータ単位に、フェージング通信路用の物理層LDPC符号化器305が符号化する。この符号化データを、変調器304とアンテナ307を介して無線通信路へ送出する。一方、移動体端末200では、無線通信路中で発生した誤りを含む受信信号を、アンテナ207と復調器204を介して受け取り、復調後の受信データを物理層LDPC復号器205にて訂正する。そして、物理層では、パケット単位で誤り訂正が成功したかどうかを、上位層に通知する。上位層では、消失訂正LDPC復号器206が、誤り訂正が成功したパケットのみを用いて情報パケットを再生する。
以上のように、本発明にかかる検査行列生成方法および符号化方法は、ディジタル通信における符号化技術として有用であり、特に、符号化方式としてLDPC符号を採用する通信装置に適している。

Claims (21)

  1. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法であって、
    巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列を生成する擬似巡回行列生成ステップと、
    所定の符号化率に対応する前記正則な擬似巡回行列を非正則(行と列の重みが非一様)にするためのマスク行列の列次数を計算し、前記列次数を制約条件として複数の符号化率に対応可能なマスク行列を生成するマスク行列生成ステップと、
    特定の符号化率に対応するマスク行列を用いて、前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則なマスク化擬似巡回行列を生成するマスク化ステップと、
    前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、
    を含むことを特徴とする検査行列生成方法。
  2. 前記正則な擬似巡回行列において、行番号j(0≦j≦J−1)、列番号l(0≦l≦L−1)に配置されたp行×p列の巡回置換行列I(pj,l)のpj,lに、「pj,l=j(l+1)mod p」となる特定の規則性を設ける(I(pj,l)は、行番号:r(0≦r≦p−1)、列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列)ことを特徴とする請求項1に記載の検査行列生成方法。
  3. 前記正則な擬似巡回行列において、行番号j(0≦j≦J−1)、列番号l(0≦l≦L−1)に配置されたp行×p列の巡回置換行列I(pj,l)のpj,lに、「pj,l=(j+1)(l+1)mod p」となる特定の規則性を設ける(I(pj,l)は、行番号:r(0≦r≦p−1)、列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列)ことを特徴とする請求項1に記載の検査行列生成方法。
  4. 前記正則な擬似巡回行列において、行番号j(0≦j≦J−1)、列番号l(0≦l≦L−1)に配置されたp行×p列の巡回置換行列I(pj,l)のpj,lに、「pj,l=p0,l(j+1)mod p」となる特定の規則性を設ける(I(pj,l)は、行番号:r(0≦r≦p−1)、列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列)ことを特徴とする請求項1に記載の検査行列生成方法。
  5. 前記正則な擬似巡回行列において、行番号j(0≦j≦J−1)、列番号l(0≦l≦L−1)に配置されたp行×p列の巡回置換行列I(pj,l)のpj,lに、「pj,l=((p−p0,l)(j+1))mod p」となる特定の規則性を設ける(I(pj,l)は、行番号:r(0≦r≦p−1)、列番号:「(r+pj,l)mod p」の位置が“1”となり、その他の位置が“0”となる巡回置換行列)ことを特徴とする請求項1に記載の検査行列生成方法。
  6. まず、前記LDGM構造の非正則なパリティ検査行列に基づいて、p0,L-1の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,L-1を求め、
    つぎに、p0,L-2の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,L-2を求め、
    以降、同様の処理でp0,L-3、p0,L-4,p0,L-5を順に求め、最後に、p0,0の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,0を求めることを特徴とする請求項4に記載の検査行列生成方法。
  7. まず、前記LDGM構造の非正則なパリティ検査行列に基づいて、p0,L-1の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,L-1を求め、
    つぎに、p0,L-2の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,L-2を求め、
    以降、同様の処理でp0,L-3、p0,L-4,p0,L-5を順に求め、最後に、p0,0の値を1からp−1まで変化させ、最小ループが最大かつ当該最小ループの数が最小となるp0,0を求めることを特徴とする請求項5に記載の検査行列生成方法。
  8. 前記マスク行列生成ステップでは、
    まず、基準となる第1の符号化率に対応する第1のマスク行列の列次数分布を計算し、つぎに、前記第1のマスク行列の列次数分布を制約条件として次に符号化率の低い第2の符号化率に対応する第2のマスク行列の列次数分布を計算し、以降、必要に応じて、前段のマスク行列の列次数分布を制約条件として第3のマスク行列、第4のマスク行列、…の列次数分布を順に計算する次数分布計算ステップと、
    符号化率の最も高い第1のマスク行列から順に、対応するマスク行列の列次数分布に基づいて、当該マスク行列の列の重み位置を決定する重み位置決定ステップと、
    を含むことを特徴とする請求項1に記載の検査行列生成方法。
  9. 前記重み位置決定ステップでは、
    列次数が小さいことに起因して発生する誤りの確率に基づいて、マスク行列生成処理を、列次数の大きい列と小さい列に分けて行うこととし、
    列次数の大きい列については、「同一列内の重みの間隔を2行以上離す」という第1の条件を満たすように、マスク行列の列の重み位置を決定し、
    列次数の小さい列については、前記第1の条件および「乱数に基づいて配置する」という第2の条件を満たすように、マスク行列の列の重み位置を決定することを特徴とする請求項8に記載の検査行列生成方法。
  10. 前記重み位置決定ステップでは、前記第2の条件を満たすように、
    所定の方法で乱数列を生成し、
    当該乱数列において差分が1の要素が存在する場合に、一方の要素を乱数列の最後に移動することにより、要素間の差分が2以上となる擬似乱数系列を生成し、
    当該擬似乱数系列を列次数毎に分割して、それぞれを列重みの行位置番号とすることを特徴とする請求項9に記載の検査行列生成方法。
  11. 前記重み位置決定ステップでは、列次数分布における列次数の降順に、マスク行列の列を配置することを特徴とする請求項8に記載の検査行列生成方法。
  12. 前記第2のマスク行列以降の各マスク行列は、列方向に同一パターンができないように、前記第1のマスク行列の部分行列をシフトしながら使用することを特徴とする請求項8に記載の検査行列生成方法。
  13. 前記巡回置換行列のサイズを可変とし、任意の符号長に対応することを特徴とする請求項1に記載の検査行列生成方法。
  14. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を用いて所定の情報ビットを符号化する符号化方法であって、
    前記請求項1〜13のいずれか一つに記載の処理で生成された非正則なパリティ検査行列を用いて所定の情報ビットを符号化する符号化ステップ、
    を含むことを特徴とする符号化方法。
  15. 符号化率1/2を基準とし、符号化率1/2よりも高い符号化率の符号語を生成する場合はパリティをパンクチャし、符号化率1/2よりも低い符号化率の符号語を生成する場合はパリティを追加することを特徴とする請求項14に記載の符号化方法。
  16. 符号化率1/2よりも低い特定の符号化率に対応する符号語がメモリに記憶された状態で、伝送時の符号化率が1/2から前記特定の符号化の間の場合は、前記符号語のパリティビットを符号語の最後尾から順にパンクチャし、
    一方で、伝送時の符号化率が1/2よりも高い場合は、符号化率1/2までは、前記符号語のパリティビットを符号語の最後尾から順にパンクチャし、その後、伝送時の符号化率に達するまで、一定の間隔でパンクチャリングビットをパンクチャすることを特徴とする請求項14に記載の符号化方法。
  17. 前記一定間隔のパンクチャリングビットを符号語の最後尾に並べ替え、並べ替え後のパンクチャリングビットを最後尾から順にパンクチャすることを特徴とする請求項16に記載の符号化方法。
  18. 所定の情報ビットを消失訂正符号化する符号化方法であって、
    前記請求項1〜13に記載の処理で生成された非正則なマスク化擬似巡回行列を用いて消失訂正符号を生成することを特徴とする符号化方法。
  19. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する通信装置であって、
    前記請求項1〜13のいずれか一つに記載の処理で、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成することを特徴とする通信装置。
  20. 誤り訂正技術として、LDPC(Low-Density Parity Check)符号を採用する通信システムであって、
    前記請求項14に記載の処理で、所定の情報ビットを符号化する送信装置と、
    既知の処理で符号語を復号する受信装置と、
    を備えることを特徴とする通信システム。
  21. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を用いて所定の情報ビットを符号化する符号化器において、
    前記請求項14に記載の処理で、所定の情報ビットを符号化する符号化手段、
    を備えたことを特徴とする符号化器。
JP2007551049A 2005-12-20 2006-12-13 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器 Expired - Fee Related JP4620132B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005367077 2005-12-20
JP2005367077 2005-12-20
PCT/JP2006/324869 WO2007072721A1 (ja) 2005-12-20 2006-12-13 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器

Publications (2)

Publication Number Publication Date
JPWO2007072721A1 JPWO2007072721A1 (ja) 2009-05-28
JP4620132B2 true JP4620132B2 (ja) 2011-01-26

Family

ID=38188502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007551049A Expired - Fee Related JP4620132B2 (ja) 2005-12-20 2006-12-13 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器

Country Status (5)

Country Link
US (1) US8171371B2 (ja)
EP (1) EP1965498B1 (ja)
JP (1) JP4620132B2 (ja)
KR (1) KR20080077992A (ja)
WO (1) WO2007072721A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090040311A (ko) * 2006-08-04 2009-04-23 미쓰비시덴키 가부시키가이샤 검사 행렬 생성 방법, 부호화 방법, 통신 장치, 통신 시스템 및 부호화기
JP4688841B2 (ja) * 2007-03-20 2011-05-25 日本放送協会 符号化器及び復号器、並びに送信装置及び受信装置
US8196014B2 (en) 2007-06-29 2012-06-05 Mitsubishi Electric Corporation Check matrix generating device, check matrix generating method, encoder, transmitter, decoder, and receiver
JP4858335B2 (ja) * 2007-07-10 2012-01-18 ソニー株式会社 符号化方法および符号化装置
CN101414833B (zh) * 2007-10-19 2010-08-04 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101453297B (zh) * 2007-12-07 2010-12-01 中兴通讯股份有限公司 低密度生成矩阵码的编码方法和装置、及译码方法和装置
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
JP2011507362A (ja) * 2007-12-14 2011-03-03 パナソニック株式会社 無線通信装置およびパンクチャリング方法
EP2134018A1 (en) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
JP5340286B2 (ja) 2008-07-02 2013-11-13 パナソニック株式会社 消失訂正符号化装置及び消失訂正符号化方法
JP4881355B2 (ja) * 2008-08-19 2012-02-22 日本放送協会 Ldpc符号の符号化器及び復号器、並びにプログラム、送信装置及び受信装置
JP5371623B2 (ja) * 2009-08-13 2013-12-18 三菱電機株式会社 通信システム及び受信装置
TWI539757B (zh) * 2009-11-13 2016-06-21 Panasonic Ip Corp America Encoding method, decoding method, encoder and decoder
US8910014B2 (en) 2010-04-27 2014-12-09 Nec Corporation Coding device, error-correction code configuration method, and program thereof
KR101670511B1 (ko) 2010-05-07 2016-10-28 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
US8419547B1 (en) 2010-11-04 2013-04-16 Wms Gaming, Inc. Iterative XOR-matrix forward error correction for gaming
AU2011339962B2 (en) * 2010-12-10 2016-09-01 Sun Patent Trust Signal generation method and signal generation device
JP5595260B2 (ja) * 2010-12-28 2014-09-24 三菱電機株式会社 受信機
JP5288222B2 (ja) * 2011-10-26 2013-09-11 ソニー株式会社 符号化方法および符号化装置
JP2017005285A (ja) * 2013-11-07 2017-01-05 三菱電機株式会社 復号装置
JP2016213701A (ja) * 2015-05-11 2016-12-15 富士通株式会社 誤り訂正方法、半導体装置、送受信モジュールおよび伝送装置
US9584158B2 (en) * 2015-07-24 2017-02-28 Tidal Systems, Inc. Unified H-encoder for a class of multi-rate LDPC codes
US9667276B1 (en) * 2015-08-06 2017-05-30 Xilinx, Inc. Efficient low error-floor LDPC codes
US10998922B2 (en) * 2017-07-28 2021-05-04 Mitsubishi Electric Research Laboratories, Inc. Turbo product polar coding with hard decision cleaning
KR102347189B1 (ko) * 2019-12-17 2022-01-03 한양대학교 산학협력단 비균일 소실 환경에 적합한 소실 부호의 부호화 방법 및 장치
CN111382557B (zh) * 2020-03-31 2023-09-22 字节跳动有限公司 非定长输入数据的批量处理方法、装置、终端及存储介质
US11671198B2 (en) 2021-09-14 2023-06-06 Western Digital Technologies, Inc. Processing problematic signal modulation patterns as erasures using wireless communication devices
US11764813B1 (en) * 2022-06-07 2023-09-19 Western Digital Technologies, Inc. Extendable parity code matrix construction and utilization in a data storage device
US12099409B2 (en) 2022-06-07 2024-09-24 Western Digital Technologies, Inc. Adjustable code rates and dynamic ECC in a data storage device
US12028091B2 (en) 2022-09-26 2024-07-02 Western Digital Technologies, Inc. Adjustable code rates and dynamic ECC in a data storage device with write verification

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005312061A (ja) * 2004-04-22 2005-11-04 Samsung Electronics Co Ltd 多様なコード率を支援する低密度パリティ検査コードによるデータ送受信システム、装置及び方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60332501D1 (de) 2003-05-28 2010-06-17 Mitsubishi Electric Corp Neuübertragungssteuerverfahren und kommunikationseinrichtung
EP1746732A4 (en) 2004-04-28 2008-02-27 Mitsubishi Electric Corp RETRANSMISSION CONTROL METHOD AND COMMUNICATION DEVICE
US7996746B2 (en) * 2004-10-12 2011-08-09 Nortel Networks Limited Structured low-density parity-check (LDPC) code
JP4563454B2 (ja) * 2005-08-10 2010-10-13 三菱電機株式会社 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005312061A (ja) * 2004-04-22 2005-11-04 Samsung Electronics Co Ltd 多様なコード率を支援する低密度パリティ検査コードによるデータ送受信システム、装置及び方法

Also Published As

Publication number Publication date
EP1965498A4 (en) 2009-02-25
EP1965498A1 (en) 2008-09-03
KR20080077992A (ko) 2008-08-26
JPWO2007072721A1 (ja) 2009-05-28
US20090164864A1 (en) 2009-06-25
US8171371B2 (en) 2012-05-01
EP1965498B1 (en) 2014-06-25
WO2007072721A1 (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
JP4620132B2 (ja) 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器
JP4563454B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器
JP4602418B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
JP4901871B2 (ja) 検査行列生成方法、符号化方法、通信装置、通信システムおよび符号化器
JP5354979B2 (ja) 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器
JP4598085B2 (ja) 検査行列生成方法
US9432052B2 (en) Puncture-aware low density parity check (LDPC) decoding
US8782499B2 (en) Apparatus and method for transmitting and receiving data in communication/broadcasting system
US8516347B1 (en) Non-binary LDPC extrinsic calculation unit (LECU) for iterative decoding
JP4987079B2 (ja) 検査行列生成装置
US20090106625A1 (en) Basic Matrix, Coder/Encoder and Generation Method of the Low Density Parity Check Codes
CN101459430B (zh) 低密度生成矩阵码的编码方法及装置
WO2011058760A1 (ja) 符号化方法、復号方法、符号化器、及び、復号器
JP2007531385A (ja) 可変符号化率を有するブロック低密度パリティ検査符号の符号化/復号装置及び方法
US20100138720A1 (en) Channel-encoding/decoding apparatus and method using low-density parity-check codes
US20060156168A1 (en) Construction of irregular LDPC (low density parity check) codes using RS (Reed-Solomon) codes or GRS (generalized Reed-Solomon) code
JP5789014B2 (ja) 符号化方法、符号化器、復号器
JP4603518B2 (ja) 符号化装置及び復号化装置
WO2006062351A1 (en) Ldpc encoder and decoder and ldpc encoding and decoding methods
CN113055024B (zh) 用于5g-nr系统短块长低码率ldpc码的修正译码方法
Bond et al. Constructing low-density parity-check codes
Enad et al. Performance Evaluation and Assessment of LDPC Codec over DVB-S2 and WLAN802. 11n Applications
JP2011109228A (ja) 復号装置及び方法
CN101471743A (zh) 低密度生成矩阵码的编码方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101027

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees