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

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

Info

Publication number
JPWO2007018066A1
JPWO2007018066A1 JP2007529490A JP2007529490A JPWO2007018066A1 JP WO2007018066 A1 JPWO2007018066 A1 JP WO2007018066A1 JP 2007529490 A JP2007529490 A JP 2007529490A JP 2007529490 A JP2007529490 A JP 2007529490A JP WO2007018066 A1 JPWO2007018066 A1 JP WO2007018066A1
Authority
JP
Japan
Prior art keywords
matrix
parity check
cyclic
row
loop
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.)
Granted
Application number
JP2007529490A
Other languages
English (en)
Other versions
JP4563454B2 (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 JPWO2007018066A1 publication Critical patent/JPWO2007018066A1/ja
Application granted granted Critical
Publication of JP4563454B2 publication Critical patent/JP4563454B2/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Abstract

たとえば、巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則な擬似巡回行列を用意し、さらに、最終的に生成するパリティ検査行列において所定の最小ループを保証するための条件式を導出し、当該条件式および所定の重み分布に基づいて特定の巡回置換行列を0行列に変換するためのマスク行列を生成する処理と、前記マスク行列を用いて前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則なマスク化擬似巡回行列を生成する処理と、前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM構造の非正則なパリティ検査行列を生成する処理と、を実行する。

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符号のパリティ検査行列が提案されている(図17参照)。図17に示す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 2007018066
…(2)
ただし、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等)の数を少なくする必要がある。
なお、図18は、検査行列の一例をタナーグラフで表現した場合を示す図であり、{0,1}の2元のM行×N列のパリティ検査行列Hにおいて、各列に対応するノードをビットノードbn(1≦n≦N)と呼び(図中の○に相当)、各行に対応するノードをチェックノードcm(1≦m≦M)と呼び(図中の□に相当)、さらに、検査行列の行と列の交点に“1”がある場合にそのビットノードとチェックノードを枝で接続する2部グラフをタナーグラフと呼ぶ。また、上記ループとは、図18に示すように、特定のノード(図中の○や□に相当)から始まりそのノードで終わる閉路のことを表し、また、内径とは、その最小ループを意味する。また、ループの長さは、閉路を構成する枝の数で表現され、長さに応じて、簡易的にループ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符号用のパリティ検査行列を生成する検査行列生成方法であって、たとえば、巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則な擬似巡回行列を用意し、さらに、最終的に生成するパリティ検査行列において所定の最小ループを保証するための条件式を導出し、当該条件式および所定の重み分布に基づいて特定の巡回置換行列を0行列に変換するためのマスク行列を生成するマスク行列生成ステップと、前記マスク行列を用いて前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則なマスク化擬似巡回行列を生成するマスク化ステップと、前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、を含むことを特徴とする。
この発明によれば、特定の規則性を持たせた正則な擬似巡回行列に対して、非正則な行列を生成するための所定のマスキングルールを適用することとしたので、容易にLDGM構造の非正則なパリティ検査行列を生成することができる。また、従来のように、生成行列Gを生成する必要がないので、回路規模を大幅に削減することができる。
図1は、LDPC符号化器およびLDPC復号器を含む本実施の形態の通信システムの構成例を示す図である。 図2−1は、符号生成における積和演算部の構成例を示す図である。 図2−2は、図2−1に示す積和演算部を用いた符号生成部の構成例を示す図である。 図3は、マスク行列生成処理の一例を示すフローチャートである。 図4は、マスク行列生成処理の一例を示すフローチャートである。 図5は、本発明にかかる消失訂正LDPC符号化/復号システムの構成例を示す図である。 図6は、符号構成法の一例を示す図である。 図7は、符号化率に応じてパリティ検査行列を拡張する場合の一例を示す図である。 図8は、複数の符号化率に対応した符号の特性を示す図である。 図9−1は、LDPC復号器の構成例を示す図である。 図9−2は、LDPC復号器の構成例を示す図である。 図10は、「巡回近似minアルゴリズム」において行処理を実行する行処理部の構成例を示す図である。 図11−1は、「巡回近似minアルゴリズム」において列処理を実行する列処理部の構成例を示す図である。 図11−2は、「巡回近似minアルゴリズム」において列処理を実行する列処理部の構成例を示す図である。 図12は、n=15の列処理において、Min2LLRにn=15の情報が保持されている場合の処理を示す図である。 図13は、「巡回近似minアルゴリズム」における処理の流れを示すフローチャートである。 図14は、列番号表記を示す図である。 図15は、LDPC復号器の構成例を示す図である。 図16は、移動体通信システムの構成例を示す図である。 図17は、QC符号のパリティ検査行列の一例を示す図である。 図18は、検査行列の一例をタナーグラフで表現した場合を示す図である。
符号の説明
1 LDPC符号化器
2 変調器
3 通信路
4 復調器
5 LDPC復号器
11 受信LLR算出部
12,12a 復号コア部
21,21a 途中結果保持部
22,22−1,22−2,22−G 行処理部
23,23−1,23−2,23−G 列処理部
24 復号結果判定部
25,25a 制御部
31 最小値選択部
32 符号演算部
33 LLR算出部
41 α加算部
42 λ加算部
43 最小k値比較部
44 符号演算部
51 積和演算部
81 情報Packet生成部
82 消失LDPC符号化部
83 送信部
85 受信部
86 消失LDPC復号部
87 情報ビット再生部
100 移動体端末
101 消失訂正LDPC符号化器
102 物理層LDPC符号化器
103 変調器
104 復調器
105 物理層LDPC復号器
106 消失訂正LDPC復号器
107,207 アンテナ
200 基地局
201 消失訂正LDPC復号器
202 物理層LDPC復号器
203 復調器
204 変調器
205 物理層LDPC符号化器
206 消失訂正LDPC符号化器
以下に、本発明にかかる通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、LDPC符号化器およびLDPC復号器を含む本実施の形態の通信システムの構成例を示す図である。図1において、送信側の通信装置(送信装置と呼ぶ)は、LDPC符号化器1と変調器2を含む構成とし、受信側の通信装置(受信装置と呼ぶ)は、復調器4とLDPC復号器5を含む構成とする。
ここで、LDPC符号を採用する通信システムにおける符号化処理,復号処理の流れを簡単に説明する。
送信装置内のLDPC符号化器1では、本実施の形態の検査行列生成方法により生成されたパリティ検査行列、すなわち、後述する所定のマスキングルールに基づいてマスキング処理が行われたM行×N列のパリティ検査行列HMQCLを生成する。
その後、LDPC符号化器1では、情報長Kのメッセージ(u1,u2,…,uK)を受け取り、このメッセージおよび上記パリティ検査行列HMQCLを用いて、下記(3)式のように、長さNの符号語vを生成する。なお、本実施の形態においては、従来技術において計算していた生成行列G(K:情報長,N:符号語長)を用いずに、情報ビットの符号化処理を行う。
v={(v1,v2,…,vN)∈GF(2)|(v1,v2,…,vN)HMQCL 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が、復調結果に対して後述する復号アルゴリズム(「巡回近似minアルゴリズム」)による繰り返し復号を実施し、その復号結果(元のメッセージu1,u2,…,uKに対応)を出力する。なお、上記「巡回近似minアルゴリズム」は、巡回的に最小k値(最小値から昇順にk番目まで)のLLRの絶対値のみを更新していく方法であり、正確な最小値ではなく近似的な最小値を用いて繰り返し復号を行う復号法である。
つづいて、本実施の形態における検査行列生成方法を詳細に説明する。なお、本実施の形態においては、イレギュラー(重み分布を非一様)なパリティ検査行列を生成することとし、その構造として、LDGM(Low Density Generation Matrix)構造を採用することを前提とする。また、以下において説明する各実施の形態の検査行列生成処理については、通信装置内のLDPC符号化器1で実行することとしてもよいし、または、通信装置の外部で予め実行しておくこととしてもよい。通信装置の外部で実行される場合には、生成済みの検査行列を内部メモリに記憶しておく。
まず、本実施の形態の検査行列生成処理により生成されるマスキング処理後のイレギュラーなパリティ検査行列HMQCLの前提となる、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLを定義する。
たとえば、M(=pJ)行×N(=pL+pJ)列のLDGM構造のQC−LDPC符号のパリティ検査行列HQCL(=[hm,n])は、下記(4)式のように定義することができる。
Figure 2007018066
…(4)
なお、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”となる巡回置換行列である。
上記パリティ検査行列HQCLは、左側の行列(情報ビットに対応する部分)が、上記(2)式で示したQC符号のパリティ検査行列と同一の擬似巡回行列HQCであり、右側の行列(パリティビットに対応する部分)が、下記(5)式に示すI(0)を階段状に配置した行列Tである。
Figure 2007018066
…(5)
ただし、上記階段状の構造で用いている巡回置換行列は、I(0)に限定しているわけではなく、任意のI(s|s∈[0,p−1])の組み合わせでもよい。
また、上記LDGM構造とは、上記(4)に示す行列のように、パリティ検査行列の一部を下三角行列にした構造のことをいう。この構造を用いることにより、生成行列Gを用いずに符号化を容易に実現できる。たとえば、組織符号語vを下記(6)式のように表し、情報メッセージu=(u1,u2,…,uK)が与えられた場合、パリティ要素pm=(p1,p2,…,pM)は、「HQCL・vT=0K,」を満たすように、すなわち、下記(7)式のように生成する。
v=(v1,v2,…,vK,vK+1,vK+2,…,vN
=(u1,u2,…,uK,p1,p2,…,pM) …(6)
ただし、N=K+Mである。
Figure 2007018066
…(7)
さらに、本実施の形態においては、上記(4)のように定義されたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、特定の規則性を設けている。具体的には、パリティ検査行列HQCLの左側の擬似巡回行列部分において、行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の列番号が「(j+c)・(l+d)」となる特定の規則性を設けている。なお、c、dは0以上の任意の整数であり、「(j+c)・(l+d)<p」とする。また、特定の規則性を設けたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLの一例を、下記(8)式に示す。ただし、c=0,d=1としている。
Figure 2007018066
…(8)
つづいて、本実施の形態の検査行列生成方法における特徴的な処理である、パリティ検査行列HQCLに対するマスク処理について説明する。
たとえば、上記(8)式に示す左側の擬似巡回行列を、下記(9−1)式に示すように、J行×L列の行列HQCLLと表し、マスク行列Z(=[zj,l])をGF(2)上のJ行×L列の行列とした場合、後述する所定のルールを適用すると、マスク処理後の行列HMQCLLは、下記(9−2)式のように表すことができる。
Figure 2007018066
…(9−1)
Figure 2007018066
…(9−2)
なお、上記(9−2)式におけるzj,lI(pj,l)は、下記(10)式のように定義される。
Figure 2007018066
…(10)
また、上記0行列は、p行×p列の0行列である。また、行列HMQCLLは、擬似巡回行列HQCLLをマスク行列Zの0要素によりマスクし、重み分布を非一様(イレギュラー)にした行列である。ただし、重み分布を非一様にする場合のマスク行列Zの重み分布は、既知の密度発展法等で求めることとする。
したがって、本実施の形態において、最終的に求めるイレギュラーなパリティ検査行列HMQCLは、下記(11)式のように表すことができる。
MQCL=[Z×HQCLL|T]
=[HMQCLL|T] …(11)
つづいて、レギュラーなパリティ検査行列HMQCLを用いて、生成行列Gを用いずに符号化を実現する場合の実装例を以下に示し、その動作を説明する。なお、ここでは、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLを、下記(12−1)式に示す行列とする。
Figure 2007018066
…(12−1)
また、上記(12−1)式に示す行列をマスク化したイレギュラーなパリティ検査行列HMQCLを、下記(12−2)式に示す行列とする。
Figure 2007018066
…(12−2)
また、情報メッセージをu=(up,1p,2)=(01100 11001)とする。ただし、up,lは、uをpビット単位で区切り、lに対して昇順に番号を付したものである。
ここで、生成行列Gを用いずに符号を生成する場合の処理として、p行分のマスク処理後の行列HMQCLLと情報メッセージuとの積和演算について説明する。
図2−1は、符号生成における積和演算部51の構成を示す図である。ここでは、基準クロックを1クロックとし、図中、遅延素子(D)61は1クロック単位で動作し、遅延素子(D)62はpクロック単位で動作する(この例ではp=5)。また、列カウンタ63はpクロック単位で動作し、行カウンタ64はL・pクロック単位で動作する(この例ではL=2)。
図2−1において、擬似巡回行列HQCLLの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まで繰り返し実行し、マスク処理後の行列HMQCLLと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である。
つづいて、上記擬似巡回行列HQCLLをマスク行列Zの0要素によりマスクする場合のマスキングルールを具体的に説明する。ここでは、擬似巡回行列HQCLLを非正則(イレギュラー)にするためのマスク行列Zを、規則的なマスキングルールにより生成する。
本実施の形態では、たとえば、マスク後の行列HMQCLLの最小ループを8とする場合、マスキングルールとして、上記(9−1)式に示す擬似巡回行列HQCLLがループ6を含む条件式を導出する。なお、上記(9−1)式の擬似巡回行列HQCLLは、すでに最小ループ(内径)が6であることが分かっている。
たとえば、上記(2)式に示す6つの巡回置換行列I(pj1,l1),I(pj2,l1),I(pj2,l2),I(pj3,l2),I(pj3,l3),I(pj1,l3)が下記(13)式を満たすとき、上記6つの巡回置換行列間では、ループ6が存在する。なお、「j1,j2,j3∈[0,J−1]」であり、「l1,l2,l3∈[0,L−1]」である。
Figure 2007018066
…(13)
ここで、上記(13)式の条件式を、上記(9−1)式に示す擬似巡回行列HQCLLに適用した場合について説明する。
たとえば、上記(9−1)式に示す擬似巡回行列HQCLLにおいて、行方向にa番目,列方向にb番目の巡回置換行列をI(ab)と表し、このI(ab)から相対的に、行方向にjd番目,列方向にld番目の位置にある巡回置換行列をI((a+jd)(b+ld))と表す。このとき、上記(2)式のI(pa+jd,b+ld)が上記(9−1)式のI((a+jd)(b+ld))に対応する。また、上記6つの巡回置換行列については、I(ab),I((a+jd1)b),I((a+jd1)(b+ld1)),I((a+jd2)(b+ld1)),I((a+jd2)(b+ld2)),I(a(b+ld2))と表す。
したがって、上記(13)式で表される条件式を、上記(9−1)式における6つの巡回置換行列に対して適用すると、マスキングルールとして、下記(14−1)式を導出することができる。
Figure 2007018066
…(14−1)
なお、「(j+c)・(l+d)≧p」が存在した場合、擬似巡回符号HQCLLの行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号を「(j+c)・(l+d)mod p」とする。また、この場合、上記(14−1)式は、下記(14−2)式となる。
Figure 2007018066
…(14−2)
そして、本実施の形態では、上記(14−1)式または上記(14−2)式を満たさないことを条件として、マスク行列Zを構成する。これにより、マスク後の行列HMQCLLの最小ループが8となることを保証することができる。また、上記(14−1)式または上記(14−2)を導出することにより、限られた小さいサイズの条件式によるループ6の検出処理が可能となるため、ループ6を検出が容易となる。なお、以下では、上記(14−1)式または上記(14−2)式を、単に(14)式と表現する。
つづいて、本実施の形態の通信装置において実行される、上記マスキングルールに基づくマスク行列生成処理を具体的に説明する。図3は、本実施の形態のマスク行列生成処理を示すフローチャートである。なお、ここでは、本実施の形態のマスク行列生成処理を、通信装置内のLDPC符号化部1にて実行する場合の例を示す。
まず、通信装置内のLDPC符号化器1では、密度発展法により、マスク行列Zの行と列の重み分布を計算する(ステップS1)。一般の密度発展法では、検査行列H全体の行と列の重みの分布を求めるため、組み合わせが膨大で、その最適値算出には時間が掛かるが、本実施の形態の処理では、マスク行列のみを対象に密度発展法を行なうため、組み合わせ数も少なく、非常に短時間で重み分布を導出できる。また、LDPC符号化器1は、ループ4の含まない特定の規則性を設けた擬似巡回行列として、たとえば、上記(9−1)式に示す擬似巡回行列HQCLLを用意する(ステップS2)。
つぎに、LDPC符号化器1では、上記擬似巡回行列HQCLLに対して上記(13)式で表される条件式を適用し、上記(14)式に示す、擬似巡回行列HQCLLがループ6を含む条件式を導出する(ステップS3)。
つぎに、LDPC符号化器1では、マスク行列Zにおける行カウンタをt=1とし(ステップS4)、上記ステップS1において計算しておいた重み分布に基づいて、行重み分の列番号を乱数にて発生させ、この列番号を行番号t=1における“1”の位置とする(ステップS5)。このとき、現在までに生成したマスク行列Zの各列重みが、上記ステップS1にて計算した列重み数以下かどうかを判定し(ステップS6)、規定の列重み数以下であれば(ステップS6,Yes)、次の処理に移行し、一方で、規定の列重み数を超える列がある場合には(ステップS6,No)、すべての列重みが規定の列重み数以下になるまで、ステップS5およびS6の処理を繰り返し実行する。
その後、上記ステップS6の処理において、すべての列重みが規定の列重み以下となった場合、LDPC符号化器1は、現在までに生成されたマスク行列Zが上記ステップS3にて導出しておいた条件式を満たしているかどうかを判定し(ステップS7)、満たしていなければ(ステップS7,No)、次の処理に移行し、一方で、満たしている場合には(ステップS7,Yes)、すべての列重みが規定の列重み数以下になり、かつ条件式を満たさないようになるまで、ステップS5、S6およびS7の処理を繰り返し実行する。
そして、上記ステップS7の処理において、条件式を満たさないようになった場合、LDPC符号化器1は、マスク行列Zにおける行カウンタtをインクリメントし(ステップS8)、さらに、行カウンタtがJ+1になるまで、ステップS5〜ステップS9の処理を繰り返し実行し(ステップS9)、最終的に、J行×L列のマスク行列Zを出力する。
なお、本実施の形態においては、ステップS3の処理においてループ6の条件式を導出することとしたが、これに限らず、さらにループ8,ループ10…の条件式を導出し、その条件式をステップS7における判定条件として追加することとしてもよい。また、特にマスク行列が小さい場合は、必ずしもループ6等の条件を全て回避できるマスク行列を検出できるとは限らないため、列重みの大きい順に、ループ6等を回避する条件を除外してもよい。列重みの大きいビットノードに部分的に接続されたチェックノードとの経路によって短いループが存在していても、他に接続されたチェックノードの経路が構成するループが大きければ、性能劣化を起こさない場合があるため、このような処置も有効である。
このように、本実施の形態においては、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、擬似巡回行列HQC部分の行番号j,列番号lに配置された巡回置換行列の1行目の列番号が「(j+c)・(l+d)」となる特定の規則性を設け、当該特定の規則性を設けた擬似巡回行列HQCLLに対して、イレギュラーな行列を生成するための所定のマスキングルールを適用することとした。具体的には、擬似巡回行列HQCLLがループ6を含む条件式を導出し、この条件式を満たさないことを条件としてマスク行列Zを構成することによって、マスク後の行列HMQCLLの最小ループを8とすることとした。これにより、LDGM構造のレギュラーなパリティ検査行列HQCLから、LDGM構造のイレギュラーなパリティ検査行列HMQCLを生成することができる。また、従来のように、パリティ検査行列の一部を階段状の構造にしたことにより、生成行列Gを用いずに符号化を容易に実現でき、生成行列Gを生成する必要がないので、回路規模を大幅に低減することができる。
実施の形態2.
前述の実施の形態1においては、上記(4)式のように定義されたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLに対して、パリティ検査行列HQCLの左側の擬似巡回行列HQC部分の行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号が「(j+c)・(l+d)」となる、既知である特定の規則性を設けていた(上記(8)式参照)。しかしながら、上記特定の規則性については、一定の符号化/復号性能が得られるのであれば、上記規則性に限定されるものではない。そこで、実施の形態2においては、前述した実施の形態1とは異なる規則性について提案する。なお、本実施の形態においては、前述した実施の形態1と異なる処理について説明する。
本実施の形態においては、上記(4)式のように定義されたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、前述した実施の形態1とは異なる特定の規則性を設けている。具体的には、パリティ検査行列HQCLの左側の擬似巡回行列部分において、行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号が「q(j+c)・q(l+d)」となる規則性を設けた。なお、qは正の整数であり、c、dは0以上の整数であり、「q(j+c)・q(l+d)<p」を満たすこととする。また、上記特定の規則性を設けた、本実施の形態のLDGM構造のQC−LDPC符号のパリティ検査行列HQCLの一例を、下記(15)式に示す。ただし、q=2,c=1,d=0としている。
Figure 2007018066
…(15)
つづいて、本実施の形態の検査行列生成方法における特徴的な処理である、パリティ検査行列HQCLに対するマスク処理について説明する。
たとえば、上記(15)式に示す左側の擬似巡回行列を、下記(16)式に示すように、J行×L列の行列HQCLLと表し、マスク行列Z(=[zj,l])をGF(2)上のJ行×L列の行列とした場合、後述する所定のルールを適用すると、マスク処理後の行列HMQCLLは、下記(17)式,(18)式のように表すことができる。
Figure 2007018066
…(16)
Figure 2007018066
…(17)
Figure 2007018066
…(18)
なお、本実施の形態において、最終的に求めるイレギュラーなパリティ検査行列HMQCLは、前述同様、上記(11)式のように表すことができる。
つづいて、上記擬似巡回行列HQCLLをマスク行列Zの0要素によりマスクする場合のマスキングルールを具体的に説明する。ここでは、前述同様、マスク行列Zを規則的なマスキングルールにより生成する。
本実施の形態では、たとえば、マスク後の行列HMQCLLの最小ループを8とする場合、マスキングルールとして、上記(16)式に示す擬似巡回行列HQCLLがループ6を含む条件式、を導出する。なお、上記(16)式の擬似巡回行列HQCLLは、すでに最小ループ(内径)が6であることが分かっている。また、本実施の形態においても、上記(2)式に示す6つの巡回置換行列I(pj1,l1),I(pj2,l1),I(pj2,l2),I(pj3,l2),I(pj3,l3),I(pj1,l3)が、前述した上記(13)式を満たすとき、上記6つの巡回置換行列間では、ループ6が存在することになる。
ここで、上記(13)式の条件式を、上記(16)式に示す擬似巡回行列HQCLLの6つの巡回置換行列に適用した場合について説明する。
たとえば、上記(16)式に示す擬似巡回行列HQCLLにおいて、行方向にa番目,列方向にb番目の巡回置換行列をI(qab)と表し、このI(qab)から相対的に、行方向にjd番目,列方向にld番目の位置にある巡回置換行列をI(q(a+jd)(b+ld))と表す。このとき、上記(2)式のI(pa+jd,b+ld)が上記(16)式のI(q(a+jd)(b+ld))に対応する。また、上記6つの巡回置換行列については、I(qab),I(q(a+jd1+b)),I(q(a+jd1+b+ld1)),I(q(a+jd2+b+ld1)),I(q(a+jd2+b+ld2)),I(q(a+b+ld2))と表す。
したがって、上記(13)式で表される条件式を、上記(16)式における6つの巡回置換行列に対して適用すると、マスキングルールとして、下記(19−1)式を導出することができる。
Figure 2007018066
…(19−1)
なお、「q(j+c)・q(l+d)≧p」が存在した場合、擬似巡回符号HQCLLの行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号を「q(j+c)・q(l+d)mod p」とする。また、この場合、上記(19−1)式は、下記(19−2)式となる。
Figure 2007018066
…(19−2)
そして、本実施の形態では、上記(19−1)式または(19−2)式を満たさないことを条件として、マスク行列Zを構成する。これにより、最小ループが8となることを保証することができる。また、上記(19−1)式または(19−2)式を導出することにより、限られた小さいサイズの条件式によるループ6の検出処理が可能となるため、ループ6の検出が容易となる。なお、以下では、上記(19−1)式または上記(19−2)式を、単に(19)式と表現する。
なお、本実施の形態のマスク行列生成処理は、図3に示す実施の形態1のフローチャートと基本的に同様であるが、ステップS2において用意する似巡回行列HQCLLが異なっている。
このように、本実施の形態においては、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLに、擬似巡回行列HQC部分の行番号j,列番号lに配置された巡回置換行列の1行目の列番号が「q(j+c)・q(l+d)mod p」となる特定の規則性を設け、当該特定の規則性を設けた擬似巡回行列HQCLLに対して、イレギュラーな行列を生成するための所定のマスキングルールを適用することとした。具体的には、擬似巡回行列HQCLLがループ6を含む条件式を導出し、この条件式を満たさないことを条件としてマスク行列Zを構成することによって、マスク後の行列HMQCLLの最小ループを8とすることとした。これにより、LDGM構造のレギュラーなパリティ検査行列HQCLから、LDGM構造のイレギュラーなパリティ検査行列HMQCLを生成することができる。また、従来のように、生成行列Gを生成する必要がないので、回路規模を大幅に低減することができる。
実施の形態3.
前述した実施の形態1においては、たとえば、マスク後の行列HMQCLL(上記(9−2)式参照)の最小ループを8とする場合(行列Tを含まない)のマスキングルールについて規定したが、一方で、上記(8)式に示した、特定の規則性を設けたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLは、擬似巡回行列HQCLL部分と行列T部分で構成されていることから、上記マスキングルールを適用して最終的に求めたイレギュラーなパリティ検査行列HMQCLは、ループ6を含む可能性がある。そこで、実施の形態3においては、行列T部分も考慮したマスキングルールを規定することによって、最終的に求めたイレギュラーなパリティ検査行列HMQCLからループ6を排除する。以下、前述した実施の形態1と異なる処理について説明する。
本実施の形態においては、上記(8)式に示すパリティ検査行列HQCLが擬似巡回行列HQCLL部分と行列T部分で構成されていることから、前述した実施の形態1で導出した条件に加えて、擬似巡回行列HQCLLと行列Tとの間で構成されるループ6の条件を導出する。
たとえば、行列Tと擬似巡回行列HQCLLとの間でループ6が発生する条件は、前述した6つの巡回置換行列において、行列Tの縦方向(行方向)に連続するI(0)が含まれている場合である。したがって、パリティ検査行列HQCLにおける6つの巡回置換行列を、I(0),I(0),I(ab),I((a±1)b),I((a+1)(b+ld1)),I((a+jd2)(b+ld1))と表すことができる。なお、最初の2つのI(0)は、行方向にa番目と(a+1)番目、あるいは(a−1)番目とa番目、に対応する。
したがって、上記(13)式で表される条件式を、上記6つの巡回置換行列に対して適用すると、マスキングルールとして、下記(20−1)式を導出することができる。
Figure 2007018066
…(20−1)
なお、「(j+c)・(l+d)≧p」が存在した場合、上記(20−1)式は、下記(20−2)式となる。
Figure 2007018066
…(20−2)
そして、本実施の形態では、上記(14)式および上記(20−1)式または上記(20−2)式を満たさないことを条件として、マスク行列Zを構成する。これにより、マスク後のパリティ検査行列HMQCLの最小ループが8となることを保証することができる。なお、以下では、上記(20−1)式または上記(20−2)式を、単に(20)式と表現する。
なお、本実施の形態のマスク行列生成処理は、図3に示す実施の形態1のフローチャートと基本的に同様であるが、ステップS3において、マスク後のパリティ検査行列HMQCLがループ6を含む条件式(上記(14)式および上記(20)式)を導出する処理、が異なっている。
このように、本実施の形態においては、前述した実施の形態1の処理に加えて、さらに、パリティ検査行列HQCLが擬似巡回行列HQCLL部分と行列T部分で構成されていることから、擬似巡回行列HQCLLと行列Tとの間で構成されるループ6の条件を導出することとした。これにより、最終的に求めるパリティ検査行列HMQCLの最小ループが8となることを保証することができる。
実施の形態4.
前述した実施の形態1においては、たとえば、マスク後の行列HMQCLL(上記(9−2)式参照)の最小ループを8とする場合(行列Tを含まない)のマスキングルールについて規定した。また、前述した実施の形態3においては、たとえば、マスク後のパリティ検査行列HMQCLの最小ループを8とする場合(行列Tを含む)のマスキングルールについて規定した。しかしながら、マスク後の最小ループについては、上記ループ8に限らず、ループ10,ループ12,…であってもよい。そこで、実施の形態4においては、一例として、マスク後の行列HMQCLL(上記(9−2)式参照)の最小ループを10とする場合のマスキングルールについて規定した。以下、前述した実施の形態1と異なる処理について説明する。
本実施の形態では、たとえば、行列HMQCLLの最小ループを10とする場合、マスキングルールとして、前述した上記(9−1)式に示す擬似巡回行列HQCLLがループ6およびループ8を含む条件式、を導出する。なお、ループ6の条件式は、前述した(13)式と同様であるため、以下では、ループ8の条件式について記載する。
たとえば、上記(2)式に示す8つの巡回置換行列I(pj1,l1),I(pj2,l1),I(pj2,l2),I(pj3,l2),I(pj3,l3),I(pj4,l3),I(pj4,l4),I(pj1,l4)が下記(21)式を満たすとき、上記8つの巡回置換行列間では、ループ8が存在する。なお、「j1,j2,j3,j4∈[0,J−1]」であり、「l1,l2,l3,l4∈[0,L−1]」である。
Figure 2007018066
…(21)
ここで、上記(21)式の条件式を、上記(9−1)式に示す擬似巡回行列HQCLLに適用した場合について説明する。
たとえば、上記8つの巡回置換行列は、I(ab),I((a+jd1)b),I((a+jd1)(b+ld1)),I((a+jd2)(b+ld1)),I((a+jd2)(b+ld2)),I((a+jd3)(b+ld2)),I((a+jd3)(b+ld3)),I(a(b+ld3))と表すことができる。
したがって、上記(21)式で表される条件式を、上記(9−1)式における8つの巡回置換行列に対して適用すると、マスキングルールとして、下記(22−1)式を導出することができる。
Figure 2007018066
…(22−1)
なお、「(j+c)・(l+d)≧p」が存在した場合、擬似巡回符号HQCLLの行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号を「(j+c)・(l+d)mod p」とする。また、この場合、上記(22−1)式は、下記(22−2)式となる。
Figure 2007018066
…(22−2)
そして、本実施の形態では、たとえば、上記(14)式および上記(22−1)式または(22−2)式を満たさないことを条件として、マスク行列Zを構成する。これにより、マスク後の行列HMQCLLの最小ループが10となることを保証することができる。なお、以下では、上記(22−1)式または上記(22−2)式を、単に(22)式と表現する。また、本実施の形態においては、マスク後の行列HMQCLLの最小ループが10となることを保証することとしたが、たとえば、上記(14)式を満たさないことを条件とする場合と、上記(14)式および上記(22)式を満たさないことを条件とする場合とを、伝送路状態等に応じて適宜変更することによって、マスク後の行列HMQCLLの最小ループが8また10となることを保証することとしてもよい。さらに、ループ10,ループ12,…の条件式を求めることによって、マスク後の行列HMQCLLの最小ループが8,10,12,…となることを保証することとしてもよい。
また、本実施の形態のマスク行列生成処理は、図3に示す実施の形態1のフローチャートと基本的に同様であるが、ステップS3において、マスク後の行列HMQCLLがループ6,ループ8,…を含む条件式を導出する処理、が異なっている。
このように、本実施の形態においては、伝送路状態等に応じて、適応的にマスク後の行列HMQCLLの最小ループを変更することとした。これにより、伝送路状態等に応じて最適な符号化/復号処理が可能となる。
実施の形態5.
前述した実施の形態4においては、たとえば、マスク後の行列HMQCLL(上記(9−2)式参照)に関するループ8の条件式を導出したが、一方で、上記(8)式に示した、特定の規則性を設けたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLは、擬似巡回行列HQCLL部分と行列T部分で構成されていることから、実施の形態4に示すマスキングルールを適用して最終的に求めたイレギュラーなパリティ検査行列HMQCLは、ループ8を含む可能性がある。そこで、実施の形態5では、たとえば、ループ8の条件式の導出において、行列T部分も考慮したマスキングルールを規定することによって、最終的に求めたイレギュラーなパリティ検査行列HMQCLからループ8を排除する。以下、前述した実施の形態4と異なる処理について説明する。
本実施の形態においては、上記(8)式に示すパリティ検査行列HQCLが擬似巡回行列HQCLL部分と行列T部分で構成されていることから、前述した実施の形態4で導出した条件(実施の形態1および実施の形態3で導出した条件を含む)に加えて、擬似巡回行列HQCLLと行列Tとの間で構成されるループ8の条件を導出する。
たとえば、行列Tと擬似巡回行列HQCLLとの間でループ8が発生する条件は、前述した8つの巡回置換行列において、行列Tの縦方向(行方向)に連続するI(0)が含まれている場合である。したがって、パリティ検査行列HQCLにおける8つの巡回置換行列を、I(0),I(0),I(ab),I((a+jd1)b),I((a+jd1)(b+ld1)),I((a+jd2)(b+ld1)),I((a+jd2)(b+ld2)),I((a±1)(b+ld2))と表すことができる。なお、最初の2つのI(0)は、行方向にa番目と(a+1)番目、あるいは(a−1)番目とa番目、に対応する。
したがって、上記(21)式で表される条件式を、上記8つの巡回置換行列に対して適用すると、マスキングルールとして、下記(23−1)式を導出することができる。
Figure 2007018066
…(23−1)
なお、「(j+c)・(l+d)≧p」が存在した場合、擬似巡回符号HQCLLの行番号j,列番号lに配置されたp行×p列の巡回置換行列の1行目の“1”の列番号を「(j+c)・(l+d)mod p」とする。また、この場合、上記(23−1)式は、下記(23−2)式となる。
Figure 2007018066
…(23−2)
そして、本実施の形態では、上記(14)式、(20)式、(22)式、および上記(23−1)式または上記(23−2)式を満たさないことを条件として、マスク行列Zを構成する。これにより、マスク後のパリティ検査行列HMQCLの最小ループが10となることを保証することができる。以下では、上記(23−1)式または上記(23−2)式を、単に(23)式と表現する。
なお、本実施の形態のマスク行列生成処理は、図3に示す実施の形態1のフローチャートと基本的に同様であるが、ステップS3において、マスク後のパリティ検査行列HMQCLがループ6およびループ8を含む条件式を導出する処理、が異なっている。
このように、本実施の形態においては、前述した実施の形態4の処理に加えて、さらに、擬似巡回行列HQCLLと行列Tとの間で構成されるループ8の条件を導出することとした。これにより、最終的に求めるパリティ検査行列HMQCLの最小ループが10となることを保証することができる。
実施の形態6.
前述した実施の形態2においては、たとえば、マスク後の行列HMQCLL(上記(17)式参照)の最小ループを8とする場合(行列Tを含まない)のマスキングルールについて規定したが、一方で、上記(15)式に示した、特定の規則性を設けたLDGM構造のQC−LDPC符号のパリティ検査行列HQCLは、擬似巡回行列HQCLL部分と行列T部分で構成されていることから、上記マスキングルールを適用して最終的に求めたイレギュラーなパリティ検査行列HMQCLは、ループ6を含む可能性がある。そこで、実施の形態6においては、行列T部分も考慮したマスキングルールを規定することによって、最終的に求めたイレギュラーなパリティ検査行列HMQCLからループ6を排除する。以下、前述した実施の形態2と異なる処理について説明する。
本実施の形態においては、上記(15)式に示すパリティ検査行列HQCLが擬似巡回行列HQCLL部分と行列T部分で構成されていることから、前述した実施の形態2で導出した条件に加えて、擬似巡回行列HQCLLと行列Tとの間で構成されるループ6の条件を導出する。
たとえば、行列Tと擬似巡回行列HQCLLとの間でループ6が発生する条件は、前述した実施の形態2における6つの巡回置換行列において、行列Tの縦方向(行方向)に連続するI(0)が含まれている場合である。したがって、パリティ検査行列HQCLにおける6つの巡回置換行列を、I(0),I(0),I(qa+b),I(q(a+jd1+b)),I(q(a+jd1+b+ld1)),I(q(a±1+b+ld1))と表すことができる。なお、最初の2つのI(0)は、行方向にa番目と(a+1)番目、あるいは(a−1)番目とa番目、に対応する。
したがって、上記(13)式で表される条件式を、上記6つの巡回置換行列に対して適用すると、マスキングルールとして、下記(24)式を導出することができる。
Figure 2007018066
…(24)
そして、本実施の形態では、上記(19)式および上記(24)式を満たさないことを条件として、マスク行列Zを構成する。これにより、マスク後のパリティ検査行列HMQCLの最小ループが8となることを保証することができる。
なお、本実施の形態のマスク行列生成処理は、図3に示す実施の形態1のフローチャートと基本的に同様であるが、ステップS2において、用意する似巡回行列HQCLL(上記(16)式)が異なり、さらに、ステップS3において、マスク後のパリティ検査行列HMQCLがループ6を含む条件式を導出する処理(上記(19)式および上記(24)式)が異なっている。
また、本実施の形態においては、さらに、ループ8,ループ10,ループ12,…の条件式を求めることによって、マスク後のパリティ検査行列HMQCLの最小ループが10,12,14,…となることを保証することとしてもよい。
このように、本実施の形態においては、前述した実施の形態2の処理に加えて、さらに、パリティ検査行列HQCLが擬似巡回行列HQCLL部分と行列T部分で構成されていることから、擬似巡回行列HQCLLと行列Tとの間で構成されるループ6の条件を導出することとした。これにより、最終的に求めるパリティ検査行列HMQCLの最小ループが8となることを保証することができる。
実施の形態7.
前述した実施の形態1〜6においては、LDGM構造のQC−LDPC符号のパリティ検査行列HQCLを用いた所定の探索処理を実行することによって、マスク行列Zを構成していたが、実施の形態7においては、上記(8)式に示すパリティ検査行列HQCLを用いる場合に限り、上記探索処理を実行することなく、最小ループがループ8となることを保証する。以下、前述した実施の形態1〜6と異なる処理について説明する。
本実施の形態においては、マスク行列Zの元となる行列として、たとえば、有限幾何符号の一種であるユークリッド幾何符号を利用する。上記マスク行列Zの元となるユークリッド幾何符号ZEGBを下記(25)式に示す。
Figure 2007018066
…(25)
そして、本実施の形態においては、上記ユークリッド幾何符号ZEGBを所定の規則で置換することにより、前述した探索処理を実行することなく、マスク行列ZEGを生成する。具体的には、巡回行列で表現される2次元の(0,s=2)次ユークリッド幾何符号ZEGBを、ZEGB=[hm,n],1≦m≦22s−1,1≦n≦22s−1とし、さらに、22s−1が3の倍数の場合、下記(26)式により置換処理を行う。
Figure 2007018066
…(26)
また、2次元の(0,s=2)次ユークリッド幾何符号ZEGBを、ZEGB=[hm,n],1≦m≦22s−1,1≦n≦22s−1とし、さらに、22s−1が3の倍数以外の場合、下記(27)式により置換処理を行う。
Figure 2007018066
…(27)
したがって、上記(25)式に示すユークリッド幾何符号ZEGBを、上記(26)式および(27)式にしたがって置換した、本実施の形態のマスク行列ZEGは、下記(28)式のように表すことができる。
Figure 2007018066
…(28)
なお、2次元の(0、s)次ユークリッド幾何的符号のsが2以上の整数の場合は、上記操作により、ループ8以上を保証可能なマスクパターンを生成することができる。
つづいて、本実施の形態の通信装置において実行されるマスク行列生成処理を具体的に説明する。図4は、本実施の形態のマスク行列生成処理を示すフローチャートである。
まず、通信装置内のLDPC符号化器1では、密度発展法により、マスク行列ZEGの行と列の重み分布を計算する(ステップS11)。また、LDPC符号化器1は、上記(8)式に示すパリティ検査行列HQCLを用意し(ステップS12)、さらに、上記ステップS11において計算した行と列の重み分布に基づいて、所定のユークリッド幾何符号を用意する(ステップS13)。
そして、LDPC符号化器1では、上記(26)式および(27)式の処理により、ステップS13において用意したユークリッド幾何符号を置換し、その置換処理結果をマスク行列ZEGとする(ステップS14)。なお、この構造の場合、巡回置換行列のサイズを変更することにより、符号長を可変にできる。
このように、本実施の形態においては、上記(8)式に示すパリティ検査行列HQCLを用いる場合に限り、ユークリッド幾何符号を所定の規則で置換したマスク行列ZEGを用いてマスク処理を実行し、イレギュラーなパリティ検査行列を生成することとした。これにより、前述したマスク行列の探索処理を実行する必要がなくなるので、計算量を大幅に削減することができる。
実施の形態8.
実施の形態8では、上記(8)式に示すパリティ検査行列HQCLに含まれる上記擬似巡回行列HQCLLと、上記ユークリッド幾何と、を用いて、消失誤り訂正に用いる符号を構成する。
以下、消失誤り訂正符号を構成する場合における、LDPC符号による通信システムについて説明する。図5は、本発明にかかる消失訂正LDPC符号化/復号システムの構成例を示す図であり、この消失訂正LDPC符号化/復号システムにおいて、送信側の通信装置は、情報Packet生成部81と消失LDPC符号化部82と送信部83とを備え、一方、受信側の通信装置は、受信部85と消失LDPC復号部86と情報ビット再生部87とを備えている。なお、消失訂正符号としてのLDPC符号は、送信部83に送る、あるいは受信部85から受け取る、特定のサイズにパケット化されたデータに対する誤り訂正符号である。また、受信部85から受け取るパケットは、受信が成功した場合は、そのパケット内のデータが100%正しく、受信が失敗した場合には、そのパケット内のデータが消失してしまっているとみなされる。
図5において、情報Packet生成部81は、情報ビット系列を用いて、予め決められたパケットサイズ長Lの単位でかつパケットの位置番号を伴った系列を生成し、その系列をパケット化する。このとき、全パケット数をkとし、各パケットの系列をIP(1),IP(2),…,IP(k)と表し、各系列の引数を位置番号とする。つぎに、消失LDPC符号化部82は、上記パケットを符号化する。このとき、符号化されたパケットの全パケット数をkとし、符号化されたパケットの系列をC(1),C(2),…,C(k)と表し、各系列の引数を位置番号とする。
その後、符号化されたパケットは送信部83に送られ、ここでは、変調等の処理を施した後の信号を通信路84に送信する。なお、通信路84はノイズ等が存在する場合を想定する。
一方、通信路84を経由した信号は受信部85にて受信され、ここでは、受信に成功したパケットだけが消失LDPC復号部86に送られる。すなわち、消失LDPC復号部86では、成功したパケットのみを受け取るため、位置番号が欠落したパケットの系列、たとえば、C(1),C(3),C(7),…,C(k)のパケットの系列を受け取り、このパケットからIP(1),IP(2),…,IP(k)を生成する。そして、情報ビット再生部87では、受け取ったパケットから送信情報ビット系列を再生する。
つづいて、上記消失訂正LDPC符号化/復号システムにおける符号化処理/復号処理について詳しく説明する。
たとえば、簡単のためにパケットサイズ長L=1と仮定する。この仮定の元で、I1=IP(1),I2=IP(2),I3=IP(3),…,Ik=IP(k)、c1=C(1),c2=C(2),c3=C(3),…,ck=C(k)、のように置き換える。また、I=(I123 … Ik)とし、C=(C123 … Ck)とし、消失訂正用の検査行列をHersとすると、下記(29)式のように符号化することができる。なお、(・)Tは転置行列を意味する。
Figure 2007018066
…(29)
消失LDPC符号化部82は、このCを送信部83へ渡し、受信部85は、通信路84経由で、受信が成功したパケットのみを受け取る。以下、パケット長がL=1なので、パケットをビットに置き換えて説明する。消失訂正符号は、{0,1}の2元消失通信路を仮定した場合、受信した情報長以上のビット数の受信ビットを使って復号する。たとえば、受信が成功したビットは、確率1で受信ビットを受けたと仮定し、受信が失敗したビットは、確率1/2で0か1を受信したと仮定する。一般に、受信が失敗したビットは無視し、受信が成功したビットのみで復号する。この際、たとえば、検査行列Hersを使って受信が成功したビットに対応する行のみを抽出し、行毎に連結し、復号用の行列を再構成する。このとき、この行列のランクが情報長と同じであれば、情報ビットを復号できる。この復号においては、ループ長が長い方が、検査行列の任意の行を抽出した際に線形従属の行が少なくなり、情報長以上の少ない受信成功ビット数でランクが情報長となる確率が高くなる。
そこで、この消失訂正用の検査行列Hersとして、ループ長を長くすることが可能な、前述の実施の形態1〜6に示すTを含まない擬似巡回行列HQCLLやマスク化擬似巡回行列HMQCLLを用いることができる。
また、ユークリッド幾何符号における特定の列の“1”の位置を、多項式を使って表現し、巡回行列を生成すると、ループ4を含まない22行×15列の巡回行列ZEGBEを構成できる。具体的には、上記(25)式の一行目の“1”の列番号に対応した多項式を、y=x0+x1+x3+x7と表現する。そして、この多項式を、1列目の“1”の行番号に対応した多項式表現とし、下記(30)式に示すように、1列移動毎に1行ずつシフトした巡回行列を、ZEGBEとする。この行列ZEGBEもそれ自体ループ4を含まないのでHersとして用いることができる。
Figure 2007018066
…(30)
さらに、上記(30)式に示す、2次元の(0,s=2)次ユークリッド幾何符号ZEGBEを、ZEGBE=[hm,n],1≦m≦M,1≦n≦Nとした場合、このユークリッド幾何符号ZEGBEを用いて、上記(28)式の作成時と同様な操作で、すなわち、下記(31)式および(32)式の処理により、下記(33)式に示す行列ZEGEを生成する。
(I)Mが3の倍数の場合:
Figure 2007018066
…(31)
(II)Mが3の倍数以外の場合:
Figure 2007018066
…(32)
Figure 2007018066
…(33)
この場合、この行列ZEGE,情報長15ビット(長さK)の情報Iを用いて、非組織的符号長22ビット(長さN)の消失訂正符号Cを、下記(34)式にて生成する。また、(9−2)式を用いて行列HMQCLL(=ZEGE×HQCLL)を生成し、このイレギュラーな行列HMQCLL,情報長15ビット(長さK)の情報Iを用いて、非組織的符号長22ビット(長さN)の消失訂正符号Cを生成することとしてもよい。
Figure 2007018066
…(34)
実施の形態9.
実施の形態9では、前述した実施の形態1〜7にて求めたイレギュラーなパリティ検査行列HMQCL、すなわち、上記(11)式に示すマスク化擬似巡回符号のパリティ検査行列HMQCL(=[Z×HQCLL|T]:実施の形態7の場合はZをZEGに置き換える)を用いて、複数の符号化率に対応したLDPC符号を構成する。
本実施の形態においては、特定の符号化率の符号語を基準とし、基準符号語より高い符号化率に関してはパンクチャを行い(符号語のパリティを間引く)、低い符号化率に関してはパリティを増加させる。このとき、本実施の形態では、符号化率に応じて個別にパリティ検査行列を生成することなく、一つのパリティ検査行列HMQCLを用いて上記処理を実現する。図6は、本実施の形態の符号構成法を示す図であり、たとえば、符号化率0.5の符号を基準符号語とし、それよりも高い符号化率に関してはパリティのパンクチャを行い、低い符号化率に関してはパリティを追加している。
ここで、上記処理を具体的に説明する。本実施の形態においては、一つのパリティ検査行列HMQCLで複数の符号化率を実現するために、図7のように、符号化率0.5を基準にパリティ検査行列HMQCLを拡張して、低符号化率(図7の例では1/3)に対応したパリティ検査行列を生成する。上記パリティ検査行列拡張時の次数分布は、密度発展法にて計算する。
なお、図7において、M1行×N1列の検査行列は符号化率0.5に対応し、M2行×N2列の検査行列は、M1行×N1列の検査行列の構成を維持した状態で符号化率1/3に対応している。また、図中右側のIは、単位行列を示し、拡張後のパリティ検査行列がLDGM構造を維持するために配置される。また、図中左側のIも単位行列を示しているが、この部分については、これに限定されるものではなく、良好な性能が得られる行列であればどのような行列を配置してもよい。
一方、高符号化率に関しては、パリティのパンクチャにより対応する。具体的には、M1行×N1列の検査行列(符号化率0.5用)を用いて符号語を作成し、作成した符号語から、Pの部分の列に対応するパリティビットを規則的または不規則なインターバルで削除し、符号化率0.5よりも大きい符号化率の符号を生成する。
たとえば、符号化率0.5の組織符号語vをv=(u1,u2,…,uK,p1,p2,…,pM1)とし、パリティをp=(p1,p2,…,pM1)とし、このパリティが符号化率0.5に対応している場合、符号化率0.6に対応する符号語は、上記pの要素の1/3をパンクチャすることにより生成する。その場合、パンクチャするパリティの位置p´は、たとえば、p´=(p1,p4,p7,p10,…)とする。また、パンクチャのパターンについては、可能な限りビット間隔を空けることとする。これは、LDGM構造のパリティ検査行列により生成したパリティビットが連続して“1”あるいは“0”になるケースが多いためである。具体的な回路構成に基づいて説明すると、図2−2に示す符号化器の回路例では、pp,jがパリティに相当しており、pp,j=(1 0 1 0 1 0 1 1 0 1 1 0 0 0 1)がこの符号化器で生成されるが、たとえば、偶数番目のビットをパンクチャすることによりパンクチャ後のパリティpp,j puncは、pp,j punc=(1 1 1 1 0 1 0 1)となる。
図8は、上記処理により生成した複数の符号化率に対応した符号の特性を示す図である。本実施の形態の符号構成法では、たとえば、情報長1400程度の場合、符号化率1/3,1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/9の全てにおいて、BER=10-4点シャノン限界から1.5dB以内の性能を実現している。
このように、本実施の形態においては、特定の符号化率の符号語を基準とし、基準符号語より高い符号化率に関してはパリティのパンクチャを行い、低い符号化率に関してはパリティを増加させることとし、その際、符号化率に応じて個別にパリティ検査行列を生成することなく、一つのパリティ検査行列HMQCLを用いて、上記パンクチャ処理およびパリティ追加処理を実現することとした。これにより、容易に複数の符号化率に対応できるとともに、さらに、符号化率の数に相当するパリティ検査行列を用意する必要がなくなるので、従来と比較して回路規模を大幅に削減できる。
実施の形態10.
つづいて、前述した実施の形態1〜9の処理で生成されたイレギュラーなパリティ検査行列HMQCLを用いた符号化処理、に対応する復号処理について説明する。
以下において説明する本実施の形態の「巡回近似minアルゴリズム」は、たとえば、一般的な「Sum-Productアルゴリズム」の近似復号法である「Min-Sumアルゴリズム」を改良した復号アルゴリズムであり、この「巡回近似minアルゴリズム」は、巡回的に最小k値のLLRの絶対値のみを更新していく方法であり、正確な最小値ではなく近似的な最小値を用いて復号する方法である。なお、上記最小k値とは、「最小値から昇順にk番目まで」を表す。
つづいて、本発明にかかる受信装置を構成するLDPC復号器5の構成、およびLDPC復号器5による復号方法を、図面にしたがって詳細に説明する。
図9−1は、本実施の形態のLDPC復号器5の構成を示す図であり、このLDPC復号器5は、受信情報から受信LLR(対数尤度比)を算出する受信LLR算出部11と復号処理を行う復号コア部12で構成されている。また、復号コア部12は、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21と、行処理を実行する行処理部22と、列処理を実行する列処理部23と、復号処理の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25と、を備えている。
ここで、上記受信装置において実施される「巡回近似minアルゴリズム」を以下に示す。なお、通信路として2値入力AWGN通信路を仮定した場合、第nシンボルの対数尤度比λnは、下記(35)式となる。
Figure 2007018066
…(35)
ただし、xnは2元{0,1}の第nシンボルの値であり、送信側では、このxnに対して、下記(36)式の変調をかけて送信する。
Figure 2007018066
…(36)
また、通信路では分散値σ2のノイズベクトルe=(e1,e2,…,en,…,eN)が付加され、受信側では、下記(37)式に示す受信値y=(y1,y2,…,yn,…,yN)を受信する。
Figure 2007018066
…(37)
また、前述した実施の形態8に示すパンクチャと検査行列の拡張を併用したLDPC符号の検査行列を使用する場合、LDPC復号器5においてパンクチャするビットの対数尤度比λnは、下記(38)式となる。
Figure 2007018066
…(38)
(初期化ステップ)
まず、繰り返し回数l=1および最大繰り返し回数lmaxを設定する。さらに、初期時におけるm行目の最小k値のLLRをβmn(i) (0)として、受信LLR:λnを入力し、下記(39)式に示すようにBmn(i)を求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(39)式に示すようにSmを求める。
Figure 2007018066
…(39)
ただし、Bmn(i)は、m行目の最小k値のLLR:βmn(i)の絶対値であり、n(i)は、Bmn(i)の中で最小i番目のLLRの列番号であり、Smは、m行目のLLR:βmnの符号(+または−)の積である。
(行処理ステップ)
つぎに、行処理として、1≦n≦Nおよび各mについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(40)式により更新する。なお、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 2007018066
…(40)
具体的には、現在の列番号がnの場合、「n´<n」を満たす列番号については、l回目の列処理で更新されたLLR:βmn' (l)の符号の積をとり、また、「n´>n」を満たす列番号については、(l−1)回目の列処理で更新されたLLR:βmn' (l-1)の符号の積をとり、そして、それらの結果とm行目の最小k値中の最小のLLR:min[βmn']との乗算結果を、列番号nの更新後のLLR:αmn (l)としている。なお、本実施の形態においては、さらに、上記βmn' (l)の符号の積と上記βmn' (l-1)の符号の積と乗算する項を、(l−1)回目に更新されたSmと(l−1)回目に更新されたβmn'の符号とを乗算する項に、置き換えることとした。これにより、さらに、計算量およびメモリ量を削減できる。なお、上記(40)式のNk(m)は、m行目のn(i)の集合であり、Nk(m)={n(1),n(2),…,n(k)}と表す。
(列処理ステップ)
つぎに、列処理として、各m,nについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(41)式により更新する。
Figure 2007018066
…(41)
具体的には、列番号nにおいて、受信LLR:λnと、l回目の行処理で更新されたm行目以外のLLR:αm'n (l)の合計値と、の加算結果を、更新後のLLR:βmn (l)としている。また、上記Sm´とl回目の列処理で更新されたβmn (l)の符号(+または−)とを乗算することにより、行処理にて使用するSmを更新している。なお、上記(41)式における下の2つの式は、Bmn(1)の並べ替え処理(最小k値)を規定したものである。
また、各nについて、硬判定のための、ビットnの繰り返しl回目の事後値βn (l)を下記(42)式により更新する。
Figure 2007018066
…(42)
(停止規範)
その後、たとえば、ビットnの繰り返しl回目の事後値βn (l)が「βn (l)>0」の場合には、復号結果を「xn´=1」とし(x´は元の送信信号xに対応)、一方、「βn (l)≦0」の場合には、復号結果を「xn´=0」とし、復号結果x´=(x1´,x2´,…,xN´)を得る。
そして、パリティ検査の結果が「Hx´=0」または繰り返し回数が「l=lmax」の場合(いずれか1つの条件を満たしている場合)に、そのときの復号結果x´を出力する。なお、上記2つの条件のどちらも満たしていない場合は、「l=l+1」とし、上記行処理に戻り、以降、順に演算を実行する。
つぎに、上記「巡回近似minアルゴリズム」を実行するLDPC復号器5の特徴的な動作を、構成図を用いて具体的に説明する。
図10は、上記「巡回近似minアルゴリズム」において行処理を実行する行処理部22の構成例を示す図であり、この行処理部22は、最小値選択部31と符号演算部32とLLR算出部33から構成されている。なお、図示のMin1LLR(m行目における最小のLLR)はBmn(1)であり、Min2LLR(m行目における最小2番目のLLR)はBmn(2)であり、それぞれ途中結果保持部21に保持された値である。また、図示のSmおよび「(1−1)回目のm行n列目のLLR:βmnの符号」についても、それぞれ途中結果保持部21に保持された値である。
最小値選択部31では、行処理の対象となっている列番号nとMin1LLR(Bmn(1))の列番号n(1)とが一致している場合は、Min2LLR(Bmn(2))を選択し、それ以外の場合は、Min1LLR(Bmn(1))を選択し、出力する。また、符号演算部32は、「(l−1)回目の列処理で更新されたSm」および「(1−1)回目のm行n列目のLLR:βmnの符号」を乗算し、その結果としてSm´を出力する。このとき、Sm´は、途中結果保持部21に保持される。また、LLR算出部33は、最小値選択部31から得られる最小のLLRと符号演算部32から得られる符号の乗算結果Sm´(+または−)とを乗算することによって、LLR:αmn (l)を算出する。この構成により、「Min-Sumアルゴリズム」においては行重み分だけ必要であったメモリを、k値分に縮小できる。
図11−1は、上記「巡回近似minアルゴリズム」において列処理を実行する列処理部23の構成例を示す図であり、この列処理部23は、α加算部41とλ加算部42と最小k値比較部43と符号演算部44から構成されている。なお、本実施の形態では、k=3の場合を一例として記載している。また、図示の列重み分のLLR,αmn,λn,Sm´,Min1LLR,Min2LLR,Min3LLR(m行目における最小3番目のLLR)は、それぞれ途中結果保持部21に保持された値である。
上記列処理部23では、α加算部41が、l回目の行処理で更新されたm行目以外のすべてのLLR:αm'n (l)を加算し、さらに、λ加算部42が、α加算部41による加算結果に受信LLR:λnを加算し、βmn (l)を出力する。そして、最小k値比較部43(k=3)は、|βmn (l)|を受け取る。ここで、図11−1に図示はしていないが、たとえば、列処理の対象となるn列目のnと、Min1LLR,Min2LLR,Min3LLRにそれぞれ保持されているBmn(1),Bmn(2),Bmn(3)に対応する列番号を示すn(1),n(2),n(3)のいずれかが一致した場合、n=n(i)となるBmn(i)を間引きし、図12に示すような操作を行う。具体的には、Min2LLRに保持されている情報を削除し、Min3LLRに保持されている情報をMin2LLRに移動し、さらに、Min3LLRには、たとえば(16ビットの場合)、最大値“FFFF”を格納する。これにより、処理対象の列を除いた比較処理が可能となるとともに、少なくともMin3LLRが列処理において必ず更新されることになる。この処理後、図11−1に示すとおり、|βmn (l)|と、Min1LLR,Min2LLR,Min3LLRと、をそれぞれ比較し、「|βmn (l)|<Min3LLR」であれば、最小3値のLLRを更新する。一方、λ加算部42が出力するβmn (l)の符号を「l回目のm行n列目のLLR:βmn (l)の符号」として途中結果保持部21に保持し、さらに、符号演算部44が、l回目の行処理で更新されたSm´と上記βmn (l)の符号とを乗算し、その結果を用いて途中結果保持部21に保持されたSmを更新する。なお、|βmn (l)|とMin1LLR,Min2LLR,Min3LLRとの比較の際に、|βmn (l)|をBmn(i)の中心の値であるMin2LLRと最初に比較し、それ以降、図示のように、ツリー状に比較するようにしたが、たとえば、最小値であるMin1LLRから比較する場合に比べ、実行時間が{(k+1)/2}/k(kが奇数の場合)となる効果がある。また、kが偶数の場合には、Bmn(i)の中心の値は2個になるが、最初に比較を開始する対象は、そのいずれであってもよい。kが偶数の場合は、最小値であるMin1LLRから比較する場合に比べ、実行時間が{k/2+1}/k(kが偶数の場合)となる効果がある。
また、上記と同じ処理を、図11−2に示す構成でも実現することができ、その際、α加算部41では、列重み分のすべてのLLRの加算のみを行い、その後、λ加算部42でλnの加算を行い、その結果を復号結果判定部24に出力するとともに、m行目のLLRであるαmnの減算を行う。このような手順でも上記処理の手順と同一の結果を得ることができる。この際のLDPC符号器の構成は図9−2のようになる。
つぎに、本実施の形態の「巡回近似minアルゴリズム」における処理の流れを、図13のフローチャートを用いて説明する。
上記「巡回近似minアルゴリズム」においては、まず、受信LLR計算部11が、受信情報から受信LLRを算出し(ステップS31,S32)、その結果を初期値として途中結果保持部21に設定し(ステップS33)、さらに、制御部25が、繰り返し回数をl=1と初期化する(ステップS33)。また、列処理部23のうち、λ加算部42,最小k値比較部43,符号演算部44を用いて、n=1からn=Nまで巡回的に、上記(39)式の演算を行う(ステップS33)。
つぎに、復号コア部12は、制御部25の制御により、l回目(1回目〜最終回)の繰り返し復号演算を行う(ステップS34)。具体的には、繰り返し復号の1回目として、行処理部22が、1列目に“1”を持つ行に対して行処理(受信LLRを使用)を行い、その結果を列処理部23へ受け渡す。その後、列処理部23が、1列目の列処理を行い、その結果であるBmn(i)とSmを、途中結果保持部21に保持する(更新する)。以降、2列目,3列目,…N列目の順に、上記と同様の処理を行い、それぞれBmn(i)とSmを、途中結果保持部21に保持する(繰り返し復号1回目に相当)。その後、繰り返し復号の2回目以降は、1つ前の処理で更新されたLLRおよびSmを用いて行処理を行い、それ以外は、上記1回目と同様に復号処理を行う。
また、上記l回目の繰り返し復号を実施後、復号結果判定部24が、繰り返しl回目で算出した事後値を硬判定し、その判定値を復号結果x´として決定し、さらにパリティ検査を行う(停止規範)。そして、この停止規範において、パリティ検査結果がOK(「Hx´=0」)となるか、または繰り返し回数がl=lmaxとなった場合に、最終的にそのときの復号結果x´を出力する(ステップS35)。なお、上記2つの条件を満たしていない場合は、制御部25がl=l+1とし、復号コア部12においては、(l+1)回目の繰り返し復号を実行する。
つぎに、列番号の表記方法によるメモリサイズの削減について説明する。図14は、本実施の形態の列番号表記を示す図である。「巡回近似minアルゴリズム」では、たとえば、列番号をn=0から昇順に表記することとした。また、従来、列番号nを、パリティ検査行列の列番号そのもの(絶対列番号)で表現していたが、本実施の形態においては、パリティ検査行列におけるm行目の“1”の最小の列番号をn=0とし、m行目の次の“1”の列番号をn=1とし、以降、“1”毎にn=2,3,…とする相対的列番号で表現することとした。すなわち、従来は、パリティ検査行列の“1”の絶対列番号が、たとえば、“32768”である場合、列番号を表現するために必要なビット数が15ビットとなるが、一方、本実施の形態においては、たとえば、行重みが8個であれば0〜7を表現できる3ビットまで、行重みが16個であれば0〜15を表現できる4ビットまで、メモリサイズを縮小することができる。
以上にように、本実施の形態では、LDPC復号において、行処理のためのLLRの絶対値|βmn|を、巡回構造により行単位に最小k値に縮小することとしたので、それらを保持するためのメモリ量を大幅に削減することができる。たとえば、行重みが20でk=3の場合は、従来と比較してメモリ量を3/20に削減することができる。また、列番号を、絶対列番号(1,3,10,15…)から相対的列番号(0,1,2,3…)に変更することにより、さらにメモリ量を削減することができる。
つづいて、前述した実施の形態8の処理により構成された符号に対する復号処理として、たとえば、一般的な「Sum-productアルゴリズム」または上記「巡回近似minアルゴリズム」を用いた場合の効果について説明する。
一般的な「Sum-productアルゴリズム」では、行毎に行重み分のLLRを保存し、かつ列毎に行重み−1回分の関数計算を行う必要があったが、「巡回近似minアルゴリズム」では、行毎に最小値から昇順にk個の行重み分のLLRを保存し、かつ列毎にk回分の関数計算を行なえばよい。たとえば、「巡回近似minアルゴリズム」では、行重み30に対して、kが3〜5個程度でよいことがわかっているため、メモリ量は「Sum-productアルゴリズム」の3/30〜5/30に削減でき、計算量も「Sum-productアルゴリズム」の行処理と比較して3/30〜5/30に削減できる。
一方、LDPC符号の符号化率が高くなると、一般に行重みは増える。たとえば、列重みcw=4、行重みrw=8のレギュラーLDPC符号の場合、符号化率rateと行重み列重みとの関係は、パリティ検査行列がフルランクの場合、「rate=(rw−cw)/rw」となる。上記の場合、「rate=(8−4)/8=0.5」となる。したがって、列重みが一定で符号化率が高くなると、行重みは大きくなる。たとえば、列重みcw=4で符号化率rate=0.9の場合、「rate=(rw−cw)/rw」は、「0.9=(rw−4)/rw」となり、rw=40となる。
このような高符号化率の行重みの大きい符号の場合は、一般の「Sum-productアルゴリズム」を実行すると、行処理の計算量が大きくなる。また、高符号化率の行重みの大きいLDPC符号に対しては、「巡回近似minアルゴリズム」で用いる最小k値のkの値が大きくなる場合がある。たとえば、行重みが10以下の符号化率0.6程度では、k=3で十分だったものが、行重みが30以上になると、kが5以上必要な場合がある。
そこで、行重みが小さいことによりk=3で十分な性能が得られる符号化率rate=0.5程度以下の符号は、パンクチャなしでパリティ検査行列の拡張により符号を構成する。そして、行重みが増えることによりk用のメモリが増える場合には、パンクチャを取り入れることとした(実施の形態8参照)。パンクチャを取り入れることにより、一般の「Sum-productアルゴリズム」を実行する場合の内部メモリを小さくできる。また、パンクチャを取り入れることで行重みを増やすことなく高い符号化率を実現できるので、「巡回近似minアルゴリズム」を採用する場合においては、行重みが増えないのでkの数を増やさなくても復号特性を劣化させることがない。すなわち、k用のメモリを増やすことなく、復号特性を劣化させずに全ての符号化率に対応できる。なお、本実施の形態では、行毎に最小値から昇順にk個の行重み分のLLRを保存する場合について説明したが、最小値から昇順にk個のうちj個(j≦k)の行重み分のLLRを保存するようにしてもよい。
実施の形態11.
つづいて、前述した実施の形態1〜9の処理で生成されたイレギュラーなパリティ検査行列HMQCLを用いた符号化処理、に対応する復号処理(実施の形態9とは異なる復号処理)について説明する。
本実施の形態のLDPC復号は、行処理と列処理による確率情報(LLR)の算出および更新を、1ビットずつまたは予め定めた複数ビットずつ行う場合に適用可能であり、たとえば、演算処理を並列化することにより、繰り返し回数の低減を図る。なお、本実施の形態においては、途中結果保持部のBmn(i)およびSmを、並列化の数にかかわらず1セットとし、並列化されたすべての処理部が同一のBmn CおよびSmを更新していく、いわゆる「Overlapped」されたBmn CおよびSmを用いた「巡回近似minアルゴリズム」を実行する。以降、本実施の形態の復号アルゴリズムを、「Overlapped巡回近似minアルゴリズム」と呼ぶ。
ここで、本実施の形態の受信装置において実施される「Overlapped巡回近似minアルゴリズム」を以下に示す。
(初期化ステップ)
まず、繰り返し回数l=1および最大繰り返し回数lmaxを設定する。さらに、初期時におけるm行目の最小k値のLLRをβmn(i) (0)として、受信LLR:λnを入力し、下記(43)式に示すようにBmn(i) Cを求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(43)式に示すようにSmを求める。
Figure 2007018066
…(43)
ただし、Bmn(i) Cは、m行目の最小k値のLLR:βmn(i)の絶対値であり、並列処理の際に共通に用いられる。また、n(i)は、Bmn(i) Cの中で最小i番目のLLRの列番号である。
(行処理ステップ)
つぎに、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(44)式により更新する。なお、Gは並列数であり、NGは並列化された各復号回路が処理する列数である。また、G・Ng=Nである。また、本実施の形態においては、各行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 2007018066
…(44)
具体的には、たとえば、列数:NG毎にG個に分割された各列郡にそれぞれ割り当てられたG個の行処理部が、並列に行処理を実行する。なお、G個の行処理部が並列に処理を行い、すべての処理部が同一のBmn Cを用いる以外は、前述した「巡回近似minアルゴリズム」と同様に動作する。
(列処理ステップ)
つぎに、列処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(45)式により更新する。すなわち、本実施の形態においては、上記のように並列に行処理が行われた後の各列について、並列に、下記(45)式に示す列処理を実行する。
Figure 2007018066
…(45)
また、各nについて、硬判定のための、ビットnの繰り返しl回目の事後値βn (l)を下記(46)式により更新する。
Figure 2007018066
…(46)
なお、停止規範については、前述した「巡回近似minアルゴリズム」と同様である。
つづいて、上記「Overlapped巡回近似minアルゴリズム」を実現する実施の形態2のLDPC復号器5の構成および動作について説明する。
図15は、本実施の形態のLDPC復号器5の構成例を示す図であり、受信情報から受信LLRを算出する受信LLR算出部11と復号処理を行う復号コア部12aで構成されている。また、復号コア部12aは、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21aと、行処理(並列処理)を実行する行処理部22−1〜22−Gと、列処理(並列処理)を実行する列処理部23−1〜23−Gと、復号処理の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25aと、を備えている。
図15において、本実施の形態のLDPC復号器5は、各行処理部および各列処理部が並列に処理を行う際、上記(43)式,(44)式,(45)式に従って、途中結果保持部21aのBmn CおよびSmを共通に使用し、それぞれが更新する。この並列処理により、Bmn CおよびSmは、並列数に応じて急速に更新され、それに伴って、復号の繰り返し回数を大幅に削減することができる。
つづいて、前述した実施の形態1〜8の処理により構成された符号に対する復号処理として、たとえば、「Overlapped巡回近似minアルゴリズム」を用いた場合の効果について説明する。
たとえば、上記のような並列処理において、同一クロックで同一行の演算が発生し、同一バッファを参照するような問題が生じる場合、従来は、追加回路による対策が必要であった。これは「巡回近似minアルゴリズム」のみならず、如何なる復号法においても同様であった。
この問題の解決のために、本実施の形態においては、p×pの巡回置換行列から成る擬似巡回行列をマスク化することにより生成されたパリティ検査行列の特徴を利用して、復号における並列処理の実施時に、行と列の重複が発生しないように並列処理の列グループを、G1=[0*p+1,1*p+1,2*p+1,…],G2=[0*p+2,1*p+2,2*p+2,…],G3=[0*p+3,1*p+3,2*p+3,…],…に分割し、各グループの要素の最小値から順に全グループあるいは一部のグループを同時に実行する。
また、特定の列のグループの復号処理において、列に関連する行を並列に処理する。たとえば、前述した図17に示す擬似巡回符号の場合、G1=[1,6,11,16,21],G2=[2,7,12,17,22],G3=[3,8,13,18,23],G4=[4,9,14,19,24],G5=[5,10,15,20,25]に分割する。この際、G1,G2,G3,G4,G5は並列に処理するが、同時にそれぞれ各グループの最初の要素1,2,3,4,5の列が実行され、次に6,7,8,9,10の列が実行されるため、列の重複は発生しない。また、G1の最初の要素の列番号は1であるが、これに関連する行番号は1,6,11であり、この3つの行は並行に処理できる。同時に、G2の最初の要素の列番号は2であるが、これに関連する行番号は2,7,12であり、この3つの行も並行に処理でき、かつG1にて処理する行番号との重複はない。同様に、全グループにおいて、行および列の重複はないため、特別の追加回路がなくても、上記グループ分けにより重複なく並列処理が実行できる。
なお、本実施の形態においては、「巡回近似minアルゴリズム」を並列処理する場合について記載したが、これに限らず、巡回置換行列から成る擬似巡回行列をマスク化することにより生成されたパリティ検査行列を利用して符合化が行われるシステムであれば、その他のLDPC用復号法を並列処理する場合についても同様に適用可能である。
実施の形態12.
つづいて、前述した実施の形態1〜11の符号化処理/復号処理を適用するシステムについて説明する。たとえば、本発明にかかるLDPC符号化処理および復号処理は、移動体通信(端末、基地局),無線LAN,光通信,衛星通信,量子暗号装置等、通信機器全般に適用できるものであり、具体的には、図1に示すLDPC符号化器1、LDPC復号器5や、図5に示す消失LDPC符号化部82、消失LDPC復号部86を、各通信機器に搭載し、誤り訂正を行う。
図16は、本発明にかかる符号化処理/復号処理を、移動体端末100およびその移動体端末100と通信を行う基地局200を備えた移動体通信システムに適用した場合の構成例を示す図であり、移動体端末100は、消失訂正LDPC符号化器101と物理層LDPC符号化器102と変調器103と復調器104と物理層LDPC復号器105と消失訂正LDPC復号器106とアンテナ107とを備え、基地局200は、消失訂正LDPC復号器201と物理層LDPC復号器202と復調器203と変調器204と物理層LDPC符号化器205と消失訂正LDPC符号化器206とアンテナ207とを備えている。
また、図16に示す移動体端末100および基地局200には、物理層にフェージング通信路等に適用する物理層LDPC符号化器102および物理層LDPC復号器105が搭載されており、データリンク層等の上位層に消失訂正LDPC符号化器101および消失訂正LDPC復号器106が搭載されている。なお、移動体端末100および基地局200の物理層LDPC符号化器には、前述した実施の形態1〜7,9で説明したLPDC符号化器のいずれかの構成を適用し、移動体端末100および基地局200の物理層LDPC復号器には、前述した実施の形態10または11で説明したLPDC復号器の構成を適用する。また、移動体端末100および基地局200の消失訂正LDPC符号化器および消失訂正LDPC復号器には、実施の形態8の図5に記載の符号化部および復号部を適用する。
上記のように構成される移動体通信システムにおいて、移動体端末100からデータを送信する場合は、まず、データとして、たとえば、音声,メール,WEB等の情報データをパケット化し、消失訂正LDPC符号化器101により符号化する。つぎに、物理層では、このパケットデータ単位に、フェージング通信路用の物理層LDPC符号化器102が符号化する。この符号化データを、変調器103とアンテナ107を介して無線通信路へ送出する。
一方、基地局200では、無線通信路中で発生した誤りを含む受信信号を、アンテナ207と復調器203を介して受け取り、復調後の受信データを物理層用LDPC復号器202にて訂正する。そして、物理層では、パケット単位で誤り訂正が成功したかどうかを、上位層に通知する。上位層では、消失訂正LDPC復号器201が、誤り訂正が成功したパケットのみを用いて情報パケットを再生する。そして、この情報パケットを、ネットワークを介して通信先へ転送する。なお、ネットワークから移動体端末100が各種データを受信する場合についても、上記と同様の処理で、基地局200が移動体端末100へ符号化データを送信し、移動体端末100が各種データを再生する。基地局200が移動体端末100へ符号化データを送信する場合は、まず、データとして、たとえば、音声,メール,WEB等の情報データをパケット化し、消失訂正LDPC符号化器206により符号化する。つぎに、物理層では、このパケットデータ単位に、フェージング通信路用の物理層LDPC符号化器205が符号化する。この符号化データを、変調器204とアンテナ207を介して無線通信路へ送出する。一方、移動体端末100では、無線通信路中で発生した誤りを含む受信信号を、アンテナ107と復調器104を介して受け取り、復調後の受信データを物理層LDPC復号器105にて訂正する。そして、物理層では、パケット単位で誤り訂正が成功したかどうかを、上位層に通知する。上位層では、消失訂正LDPC復号器106が、誤り訂正が成功したパケットのみを用いて情報パケットを再生する。
以上のように、本発明にかかる検査行列生成方法および符号化方法は、ディジタル通信における符号化技術として有用であり、特に、符号化方式としてLDPC符号を採用する通信装置に適している。

Claims (35)

  1. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法であって、
    巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列を用意し、さらに、最終的に生成するパリティ検査行列において所定の最小ループを保証するための条件式を導出し、当該条件式および所定の重み分布に基づいて特定の巡回置換行列を0行列に変換するためのマスク行列を生成するマスク行列生成ステップと、
    前記マスク行列を用いて前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則(行と列の重みが非一様)なマスク化擬似巡回行列を生成するマスク化ステップと、
    前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、
    を含むことを特徴とする検査行列生成方法。
  2. 前記マスク行列生成ステップでは、
    前記正則な擬似巡回行列として、行方向にJ個および列方向にL個のp行×p列の巡回置換行列が配置され、当該巡回置換行列を単位として表現された、ループ4を含まないJ行×L列の擬似巡回行列を想定する場合、
    当該J行×L列の擬似巡回行列に、j行(0≦j≦J−1)l列(0≦l≦L−1)目に配置された巡回置換行列の1行目の“1”の列番号が「(j+c)・(l+d)」(c、dは0以上の任意の整数であり、「(j+c)・(l+d)<p」を満たす)となる特定の規則性を持たせることを特徴とする請求項1に記載の検査行列生成方法。
  3. 前記マスク行列生成ステップでは、
    前記正則な擬似巡回行列として、行方向にJ個および列方向にL個のp行×p列の巡回置換行列が配置され、当該巡回置換行列を単位として表現された、ループ4を含まないJ行×L列の擬似巡回行列を想定する場合、
    当該J行×L列の擬似巡回行列に、j行(0≦j≦J−1)l列(0≦l≦L−1)目に配置された巡回置換行列の1行目の“1”の列番号が「(j+c)・(l+d)mod p」(c、dは0以上の任意の整数である)となる特定の規則性を持たせることを特徴とする請求項1に記載の検査行列生成方法。
  4. 前記マスク行列生成ステップでは、
    前記条件式として、前記正則な擬似巡回行列がループ6を含む条件式(ループ6の条件式)を導出し、当該条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項2に記載の検査行列生成方法。
  5. 前記マスク行列生成ステップでは、
    前記条件式として、前記正則な擬似巡回行列がループ6を含む条件式(ループ6の条件式)を導出し、当該条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項3に記載の検査行列生成方法。
  6. さらに、前記正則な擬似巡回行列と前記巡回置換行列を階段状に配置した行列との間で構成されるループ6の条件式を導出し、
    前記2つの条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項4に記載の検査行列生成方法。
  7. さらに、前記正則な擬似巡回行列と前記巡回置換行列を階段状に配置した行列との間で構成されるループ6の条件式を導出し、
    前記2つの条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項5に記載の検査行列生成方法。
  8. さらに、前記ループ6の条件式に加えて、必要に応じてループ8、ループ10、…の条件式を導出し、前記ループ6の条件式を満たさないこと、前記ループ6および8の条件式を満たさないこと、前記ループ6、8および10の条件式を満たさないこと、…を拘束条件として、適応的にマスク行列を構成することを特徴とする請求項6に記載の検査行列生成方法。
  9. さらに、前記ループ6の条件式に加えて、必要に応じてループ8、ループ10、…の条件式を導出し、前記ループ6の条件式を満たさないこと、前記ループ6および8の条件式を満たさないこと、前記ループ6、8および10の条件式を満たさないこと、…を拘束条件として、適応的にマスク行列を構成することを特徴とする請求項7に記載の検査行列生成方法。
  10. 前記マスク行列生成ステップでは、
    前記正則な擬似巡回行列として、行方向にJ個および列方向にL個のp行×p列の巡回置換行列が配置され、当該巡回置換行列を単位として表現された、ループ4を含まないJ行×L列の擬似巡回行列を想定する場合、
    当該J行×L列の擬似巡回行列に、j行(0≦j≦J−1)l列(0≦l≦L−1)目に配置された巡回置換行列の1行目の“1”の列番号が「q(j+c)・q(l+d)」(c、dは0以上の任意の整数であり、「q(j+c)・q(l+d)<p」を満たす)となる特定の規則性を持たせることを特徴とする請求項1に記載の検査行列生成方法。
  11. 前記マスク行列生成ステップでは、
    前記正則な擬似巡回行列として、行方向にJ個および列方向にL個のp行×p列の巡回置換行列が配置され、当該巡回置換行列を単位として表現された、ループ4を含まないJ行×L列の擬似巡回行列を想定する場合、
    当該J行×L列の擬似巡回行列に、j行(0≦j≦J−1)l列(0≦l≦L−1)目に配置された巡回置換行列の1行目の“1”の列番号が「q(j+c)・q(l+d)mod p」(qは正の整数であり、c、dは0以上の任意の整数である)となる特定の規則性を持たせることを特徴とする請求項1に記載の検査行列生成方法。
  12. 前記マスク行列生成ステップでは、
    前記条件式として、前記正則な擬似巡回行列がループ6を含む条件式(ループ6の条件式)を導出し、当該条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項10に記載の検査行列生成方法。
  13. 前記マスク行列生成ステップでは、
    前記条件式として、前記正則な擬似巡回行列がループ6を含む条件式(ループ6の条件式)を導出し、当該条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項11に記載の検査行列生成方法。
  14. さらに、前記正則な擬似巡回行列と前記巡回置換行列を階段状に配置した行列との間で構成されるループ6の条件式を導出し、
    前記2つの条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項12に記載の検査行列生成方法。
  15. さらに、前記正則な擬似巡回行列と前記巡回置換行列を階段状に配置した行列との間で構成されるループ6の条件式を導出し、
    前記2つの条件式を満たさないことを拘束条件としてマスク行列を構成することを特徴とする請求項13に記載の検査行列生成方法。
  16. さらに、前記ループ6の条件式に加えて、必要に応じてループ8、ループ10、…の条件式を導出し、前記ループ6の条件式を満たさないこと、前記ループ6および8の条件式を満たさないこと、前記ループ6、8および10の条件式を満たさないこと、…を拘束条件として、適応的にマスク行列を構成することを特徴とする請求項14に記載の検査行列生成方法。
  17. さらに、前記ループ6の条件式に加えて、必要に応じてループ8、ループ10、…の条件式を導出し、前記ループ6の条件式を満たさないこと、前記ループ6および8の条件式を満たさないこと、前記ループ6、8および10の条件式を満たさないこと、…を拘束条件として、適応的にマスク行列を構成することを特徴とする請求項15に記載の検査行列生成方法。
  18. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法であって、
    前記請求項2に記載の特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列を用意し、さらに、所定の重み分布に基づく有限幾何符号を用意し、当該有限幾何符号を所定の演算式に基づいて規則的に置換することにより、特定の巡回置換行列を0行列に変換するためのマスク行列を生成するマスク行列生成ステップと、
    前記マスク行列を用いて前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則(行と列の重みが非一様)なマスク化擬似巡回行列を生成するマスク化ステップと、
    前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、
    を含むことを特徴とする検査行列生成方法。
  19. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する検査行列生成方法であって、
    前記請求項3に記載の特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列を用意し、さらに、所定の重み分布に基づく有限幾何符号を用意し、当該有限幾何符号を所定の演算式に基づいて規則的に置換することにより、特定の巡回置換行列を0行列に変換するためのマスク行列を生成するマスク行列生成ステップと、
    前記マスク行列を用いて前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換し、非正則(行と列の重みが非一様)なマスク化擬似巡回行列を生成するマスク化ステップと、
    前記マスク化擬似巡回行列と巡回置換行列を階段状に配置した行列とを所定位置に配置した、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成する検査行列生成ステップと、
    を含むことを特徴とする検査行列生成方法。
  20. 前記マスク行列生成ステップでは、前記マスク行列の重み分布を密度発展法により求めることを特徴とする請求項1に記載の検査行列生成方法。
  21. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を用いて所定の情報ビットを符号化する符号化方法であって、
    前記請求項1〜20のいずれか一つに記載の処理で生成された非正則なパリティ検査行列を用いて所定の情報ビットを符号化する符号化ステップ、
    を含むことを特徴とする符号化方法。
  22. 前記符号化ステップでは、符号語長N(N=情報長K+パリティ長M)の符号を構成する場合、情報長Kのメッセージが与えられると、前記符号と前記非正則なパリティ検査行列との積が0となる条件の下で生成された所定の演算式に基づいて、Mビットのパリティを、K+1ビット目から順にNビット目まで1ビット単位に決定することを特徴とする請求項21に記載の符号化方法。
  23. 複数の符号化率に対応したLDPC符号を構成する場合、
    特定の符号化率の符号語を基準とし、
    前記特定の符号化率よりも低い符号化率の場合には、前記検査行列生成ステップにおいて生成された前記特定の符号化率に対応するLDGM構造の非正則なパリティ検査行列の構成を維持した状態で、前記非正則なパリティ検査行列を拡張し、
    前記特定の符号化率よりも高い符号化率の場合には、前記特定の符号化率の符号語のパリティを間引くことを特徴とする請求項22に記載の符号化方法。
  24. 前記拡張後のパリティ検査行列がLDGM構造を維持することを特徴とする請求項23に記載の符号化方法。
  25. 前記特定の符号化率の符号語のパリティを間引く処理においては、可能な限りビット間隔を空けることを特徴とする請求項24に記載の符号化方法。
  26. 所定の情報ビットを消失訂正符号化する符号化方法であって、
    前記請求項1〜19のいずれか一つに記載の処理で生成された非正則なマスク化擬似巡回行列を用いて消失訂正符号を生成することを特徴とする符号化方法。
  27. 前記請求項21に記載の処理でLDPC符号化された符号語を、前記請求項21に記載の処理と同一の処理で生成したパリティ検査行列を用いて復号する復号方法であって、
    前記パリティ検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値に基づいて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理ステップと、
    前記行処理により演算された列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行重みに対応した行処理用LLRの絶対値の最小k値をメモリの特定領域に保持する列処理、を実行する列処理ステップと、
    を行の最小k値を更新しながら実行し、復号を行うことを特徴とする復号方法。
  28. 前記パリティ検査行列の列を所定数に分割し、分割後のグループ単位に並列に前記行処理および列処理を実行し、さらに、前記最小k値を保持するメモリの領域を共有し、並列に実行される各列処理においてそれぞれ前記最小k値を更新することを特徴とする請求項27に記載の復号方法。
  29. 前記パリティ検査行列の特徴を利用して、前記並列処理の実施時に、前記グループを、G1=[0*p+1,1*p+1,2*p+1,…],G2=[0*p+2,1*p+2,2*p+2,…],G3=[0*p+3,1*p+3,2*p+3,…],…に分割し、各グループの要素の最小値から順に全グループあるいは一部のグループの並列処理を実行することを特徴とする請求項28に記載の復号方法。
  30. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を生成する送信側および受信側の通信装置であって、
    前記請求項1〜20のいずれか一つに記載の処理で、LDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を生成することを特徴とする通信装置。
  31. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を用いて所定の情報ビットを符号化する送信側の通信装置であって、
    前記請求項21に記載の処理で、所定の情報ビットを符号化するLDPC符号化器、
    を備えることを特徴とする通信装置。
  32. 送信側でLDPC符号化された符号語を、パリティ検査行列を用いて復号する受信側の通信装置であって、
    前記請求項27に記載の処理で、符号語を復号するLDPC復号器、
    を備えることを特徴とする通信装置。
  33. 誤り訂正技術として、LDPC(Low-Density Parity Check)符号を採用する通信システムであって、
    前記請求項21に記載の処理で、所定の情報ビットを符号化する送信装置と、
    前記請求項27に記載の処理で、符号語を復号する受信装置と、
    を備えることを特徴とする通信システム。
  34. LDPC(Low-Density Parity Check)符号用のパリティ検査行列を用いて所定の情報ビットを符号化する符号化器において、
    巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列と、最終的に生成するパリティ検査行列において所定の最小ループを保証するための条件および所定の重み分布に基づいて生成された特定の巡回置換行列を0行列に変換するためのマスク行列を用いて、前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換して生成された非正則(行と列の重みが非一様)なマスク化擬似巡回行列と、巡回置換行列を階段状に配置した行列とを所定位置に配置して生成されたLDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を用いて符号化する符号化手段、
    を備えたことを特徴とする符号化器。
  35. 前記請求項34に記載の符号化器で符号化された符号語を復号する復号器であって、
    巡回置換行列が行方向と列方向に配置されかつ当該巡回置換行列に特定の規則性を持たせた正則(行と列の重みが一様)な擬似巡回行列と、最終的に生成するパリティ検査行列において所定の最小ループを保証するための条件および所定の重み分布に基づいて生成された特定の巡回置換行列を0行列に変換するためのマスク行列を用いて、前記正則な擬似巡回行列内の特定の巡回置換行列を0行列に変換して生成された非正則(行と列の重みが非一様)なマスク化擬似巡回行列と、巡回置換行列を階段状に配置した行列とを所定位置に配置して生成されたLDGM(Low Density Generation Matrix)構造の非正則なパリティ検査行列を用いて復号する復号手段、
    を備えたことを特徴とする復号器。
JP2007529490A 2005-08-10 2006-07-31 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器 Expired - Fee Related JP4563454B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005232665 2005-08-10
JP2005232665 2005-08-10
PCT/JP2006/315139 WO2007018066A1 (ja) 2005-08-10 2006-07-31 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器

Publications (2)

Publication Number Publication Date
JPWO2007018066A1 true JPWO2007018066A1 (ja) 2009-02-19
JP4563454B2 JP4563454B2 (ja) 2010-10-13

Family

ID=37727254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007529490A Expired - Fee Related JP4563454B2 (ja) 2005-08-10 2006-07-31 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器

Country Status (5)

Country Link
US (1) US8103935B2 (ja)
EP (1) EP1924001A4 (ja)
JP (1) JP4563454B2 (ja)
KR (1) KR20080033381A (ja)
WO (1) WO2007018066A1 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4620132B2 (ja) 2005-12-20 2011-01-26 三菱電機株式会社 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器
US8566676B2 (en) 2007-01-05 2013-10-22 Qualcomm Incorporated FEC code and code rate selection based on packet size
JP4743156B2 (ja) * 2007-04-27 2011-08-10 ソニー株式会社 復号装置
JP4788650B2 (ja) * 2007-04-27 2011-10-05 ソニー株式会社 Ldpc復号装置およびその復号方法、並びにプログラム
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
JP4987079B2 (ja) * 2007-06-29 2012-07-25 三菱電機株式会社 検査行列生成装置
JP4858335B2 (ja) 2007-07-10 2012-01-18 ソニー株式会社 符号化方法および符号化装置
CN101414833B (zh) * 2007-10-19 2010-08-04 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101272150B (zh) * 2008-05-14 2010-09-29 中兴通讯股份有限公司 一种低密度生成矩阵码的译码方法及装置
US8291283B1 (en) * 2008-06-06 2012-10-16 Marvell International Ltd. Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
US8103931B2 (en) * 2008-08-27 2012-01-24 Mitsubishi Electric Research Laboratories, Inc. Method for constructing large-girth quasi-cyclic low-density parity-check codes
KR20100058260A (ko) * 2008-11-24 2010-06-03 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법
JP4545217B1 (ja) 2009-04-03 2010-09-15 三菱電機株式会社 復号装置および復号方法
JP5197544B2 (ja) * 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
JP5370337B2 (ja) * 2010-10-29 2013-12-18 株式会社Jvcケンウッド 復号装置および復号方法
RU2013146898A (ru) 2011-03-22 2015-04-27 Нек Корпорейшн Устройство кодирования с коррекцией ошибок, способ кодирования с коррекцией ошибок и программа кодирования с коррекцией ошибок
EP2717479B1 (en) * 2011-05-31 2018-12-26 Mitsubishi Electric Corporation Error correction coding device, error correction decoding device and method therefor
JP5288222B2 (ja) * 2011-10-26 2013-09-11 ソニー株式会社 符号化方法および符号化装置
RU2494445C1 (ru) * 2012-01-31 2013-09-27 Петр Петрович Кувырков Способ обработки информации и вычисления кувыркова (варианты) и устройство "генерализатор" для осуществления способа
KR101335419B1 (ko) 2012-04-04 2013-12-05 전자부품연구원 Qc-ldpc 복호 방법
US9281841B2 (en) * 2012-10-31 2016-03-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Load balanced decoding of low-density parity-check codes
JPWO2014141484A1 (ja) * 2013-03-15 2017-02-16 株式会社東芝 パリティ検査行列作成方法、符号化装置及び記録再生装置
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
EP3082267A4 (en) * 2013-12-09 2017-08-16 Mitsubishi Electric Corporation Error-correction decoding device
US20160020787A1 (en) * 2014-07-18 2016-01-21 Kabushiki Kaisha Toshiba Decoding apparatus, decoding method and non-transitory computer-readable recording medium containing a decoding program
KR101800415B1 (ko) * 2015-03-02 2017-11-23 삼성전자주식회사 송신 장치 및 그의 패리티 퍼뮤테이션 방법
JP6395658B2 (ja) * 2015-04-23 2018-09-26 三菱電機株式会社 誤り訂正復号装置、受信装置及び誤り訂正復号方法
US9584158B2 (en) * 2015-07-24 2017-02-28 Tidal Systems, Inc. Unified H-encoder for a class of multi-rate LDPC codes
CN108023677B (zh) * 2016-11-03 2020-12-08 华为技术有限公司 信息处理的方法、装置及无线通信设备
US10979084B2 (en) 2017-01-06 2021-04-13 Nokia Technologies Oy Method and apparatus for vector based LDPC base matrix usage and generation
CN117768059A (zh) 2017-03-30 2024-03-26 三星电子株式会社 用于通信或广播系统中的信道编码/解码的装置和方法
EP3771105B1 (en) * 2018-05-29 2022-10-05 Mitsubishi Electric Corporation Transmitter, receiver, communication system, and coding rate revision method
CN111628783A (zh) * 2019-02-27 2020-09-04 西南科技大学 一种eg-ldpc译码器
CN111934692B (zh) * 2020-08-20 2023-03-10 西安电子科技大学 基于bibd可变码率的量子ldpc码构造方法
CN114421973B (zh) * 2022-03-28 2022-06-17 北京得瑞领新科技有限公司 Ldpc译码器的译码方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004006444A1 (ja) * 2002-07-02 2004-01-15 Mitsubishi Denki Kabushiki Kaisha 検査行列生成方法および検査行列生成装置
WO2004047019A2 (en) * 2002-11-21 2004-06-03 Electronics And Telecommunications Research Institute Encoder using low density parity check codes and encoding method thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000177B1 (en) * 2000-06-28 2006-02-14 Marvell International Ltd. Parity check matrix and method of forming thereof
JP4290401B2 (ja) * 2002-09-18 2009-07-08 三菱電機株式会社 量子鍵配送方法および通信装置
EP1628427B1 (en) 2003-05-28 2010-05-05 Mitsubishi Denki Kabushiki Kaisha Re-transmission control method and communication device
KR20050046471A (ko) 2003-11-14 2005-05-18 삼성전자주식회사 저밀도 패러티 검사 부호를 병렬 연접하는 채널부호화/복호화 장치 및 방법
KR100523708B1 (ko) 2003-12-17 2005-10-26 한국전자통신연구원 Ldpc 부호에 사용되는 거스 조건화된 패러티 검사행렬의 형성 방법
KR100617769B1 (ko) * 2004-03-24 2006-08-28 삼성전자주식회사 채널 부호화 장치 및 방법
EP1746732A4 (en) 2004-04-28 2008-02-27 Mitsubishi Electric Corp RETRANSMISSION CONTROL METHOD AND COMMUNICATION DEVICE
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004006444A1 (ja) * 2002-07-02 2004-01-15 Mitsubishi Denki Kabushiki Kaisha 検査行列生成方法および検査行列生成装置
WO2004047019A2 (en) * 2002-11-21 2004-06-03 Electronics And Telecommunications Research Institute Encoder using low density parity check codes and encoding method thereof

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6010042564, Marc P.C.Fossorier, "Quasicyclic low−density parity−check codes from circulant permutation matrices", IEEE Transactions on Information Theory, 200408, Vol.50 No.8, pp.19−24, US, IEEE *
JPN6010042566, Sarah J.Johnson, Steven R.Weller, "A family of irregular LDPC codes with low encoding complexity", IEEE Communications Letters, 200302, Vol.7 No.2, pp.79−81, US, IEEE *
JPN6010042567, 藤田八郎,大畑真生,坂庭好一, "符号化が容易な非正則LDPC符号の代数的構成法(IT2004−61)", 電子通信情報学会技術研究報告, 20050317, Vol.104 No.731, pp.67−72, JP, 電子情報通信学会 *
JPN6010042569, 松本渉,阪井塁,吉田英夫, "巡回近似MINアルゴリズム(RCS2005−40)", 電子情報通信学会技術研究報告, 20050721, Vol.105 No.196, pp.1−6, JP, 電子情報通信学会 *

Also Published As

Publication number Publication date
EP1924001A1 (en) 2008-05-21
JP4563454B2 (ja) 2010-10-13
EP1924001A4 (en) 2009-03-04
US20090265600A1 (en) 2009-10-22
US8103935B2 (en) 2012-01-24
KR20080033381A (ko) 2008-04-16
WO2007018066A1 (ja) 2007-02-15

Similar Documents

Publication Publication Date Title
JP4563454B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器
JP4602418B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
JP4620132B2 (ja) 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器
US8185797B2 (en) Basic matrix, coder/encoder and generation method of the low density parity check codes
EP3457575B1 (en) Encoding method and device and decoding method and device for structured ldpc
JP4598085B2 (ja) 検査行列生成方法
US9432052B2 (en) Puncture-aware low density parity check (LDPC) decoding
JP4627317B2 (ja) 通信装置および復号方法
JP4987079B2 (ja) 検査行列生成装置
JP4901871B2 (ja) 検査行列生成方法、符号化方法、通信装置、通信システムおよび符号化器
US8386880B2 (en) Method for transmitting non-binary codes and decoding the same
US7607075B2 (en) Method and apparatus for encoding and decoding data
WO2006075417A1 (ja) 符号化方法、復号方法及びそれらの装置
US10637510B2 (en) Methods and devices for error correcting codes decoding
CN111279618A (zh) 通用低密度奇偶校验码
Rohweder et al. Low-density parity-check codes over finite Gaussian integer fields
Veresova et al. Comparison of the probability of Reed–Solomon and LDPC codes decoding error in the Gilbert–Elliott channel
JP2009177228A (ja) 符号化方法、符号化器、復号器
Nozaki et al. LDPC Codes for Communication Systems: Coding Theoretic Perspective
WO2018084732A1 (en) Ldpc codes for incremental redundancy harq (ir-harq) schemes
Zolotarev et al. Usage of divergence within concatenated multithreshold decoding convolutional codes
EP3591845B1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes
Semenov et al. Comparison of code constructions suitable for high-throughput decoding
Toto-Zarasoa et al. Non-asymmetric Slepian-Wolf coding of non-uniform Bernoulli sources
JP2009100234A (ja) 符号化器、符号化方法、及び復号方法

Legal Events

Date Code Title Description
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: 20100727

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

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees