JPWO2014069464A1 - 誤り訂正符号化方法および誤り訂正符号化装置 - Google Patents

誤り訂正符号化方法および誤り訂正符号化装置 Download PDF

Info

Publication number
JPWO2014069464A1
JPWO2014069464A1 JP2014544524A JP2014544524A JPWO2014069464A1 JP WO2014069464 A1 JPWO2014069464 A1 JP WO2014069464A1 JP 2014544524 A JP2014544524 A JP 2014544524A JP 2014544524 A JP2014544524 A JP 2014544524A JP WO2014069464 A1 JPWO2014069464 A1 JP WO2014069464A1
Authority
JP
Japan
Prior art keywords
matrix
bit sequence
parity
partial
vector
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
JP2014544524A
Other languages
English (en)
Other versions
JP5774237B2 (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
Priority to JP2014544524A priority Critical patent/JP5774237B2/ja
Application granted granted Critical
Publication of JP5774237B2 publication Critical patent/JP5774237B2/ja
Publication of JPWO2014069464A1 publication Critical patent/JPWO2014069464A1/ja
Active 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

誤り訂正符号化装置1は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算部2と、パリティ検査行列のうちのパリティビット系列に対応した部分行列に対して予め定められた基本行列操作を施して予め定められた行列を算出しておく基本行列操作部3と、基本行列操作部3の算出した予め定められた行列と疎行列演算部2の算出したベクトルを掛け、パリティビット系列を算出する行列掛け算部4とを備える。

Description

この発明は、Low−Density Parity−Check(低密度パリティ検査)符号(以下、LDPC符号と称す)に準じて符号化する誤り訂正符号化方法および誤り訂正符号化装置に関するものである。
誤り訂正符号は、通信システムにおいて、通信路の雑音に起因して生じる誤りビットを訂正する技術である。本技術を用いた通信システムでは、送信機から情報データをそのまま送信するのではなく、送信する情報ビット系列d(式1)に対し、符号化と呼ばれる処理を行ってパリティビット系列p(式2)を算出し、情報ビット系列dとパリティビット系列pとを合わせた系列である符号語c(式3)を送信する。
Figure 2014069464
パリティビット系列pの分だけ送信ビットレートは下がるが、受信機において情報ビット系列dとパリティビット系列pの双方を用いて復号と呼ばれる処理を行うことにより、受信データ内に存在する誤りを訂正したり、検出したりできる。
LDPC符号は、図13に示すように、非零要素が少ない疎なパリティ検査行列で定義される誤り訂正符号である。ここでは、行列要素は0と1のみであるとする。パリティ検査行列の列数は符号語cのビット数(符号長)nと対応し、また、多くの場合に行数がパリティビット数mとなる。情報ビット系列dのビット数kは、k=n−mである。
LDPC符号の符号化を行う従来技術として、下三角行列を用いる方法が非特許文献1に開示されている。この、下三角行列を用いる方法では、まずパリティ検査行列に対して後述する基本行列操作を施し、行列右側のm行m列(以下、m×m)部分行列における右上方を0にして、図14に示すような下三角行列を得る。そして、この下三角行列を用い、後退代入によってパリティビットを算出し符号化を行う。
ここで、基本行列操作は、(1)2つの行を入れ替える、(2)2つの列を入れ替える、(3)行iに対し、行j(i≠j)をmod2で加算する(即ち、排他的論理和を計算する)ことである。
下三角行列を用いる従来方法の場合、パリティ検査行列に対して基本行列操作を行うことにより、行列の非零要素が増大してしまい、その結果、パリティ検査行列が疎であったとしても、下三角行列は疎な行列ではなくなってしまう。そのため、下三角行列を用いる従来方法では、非零要素の増大に伴い演算量が増大してしまう。
他方、非特許文献1には、下三角行列を用いる方法とは別に、古くから知られている符号化方法も開示されている。この符号化方法では、上記の下三角行列に対してさらに基本行列操作を施し、図15に示すように、行列の右側を単位行列にする。この行列の左側m×k部分行列をQ2とすると、情報ビット系列dに対して左から行列Q2を掛けることでパリティビット系列pを求めることができる。このときの行列Q2(または、行列Q2の転置行列)を生成行列と呼ぶ。
しかし、図15の生成行列Q2に含まれる1の数は、図14の行列Q1と同等か、または行列Q1より多くなる場合が多い。そのため、上記の下三角行列を用いた従来方法と同様、排他的論理和の回数が多く、演算量が大きいという問題があった。
和田山正著、「低密度パリティ検査符号とその復号法」トリケップス、2002年6月5日発行
従来のLDPC符号の符号化方法は、非零要素が多い行列を用いて符号化を行うため、演算量が多いという課題があった。また、演算量が多いことに起因して、回路実装の際の回路規模が増大するという課題があった。
この発明は、上記のような課題を解決するためになされたもので、LDPC符号の符号化における演算量の削減、および実装時の回路規模削減を目的とする。
この発明に係る誤り訂正符号化方法は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、パリティ検査行列のうちのパリティビット系列に対応した部分行列に対して予め定められた基本行列操作を施した予め定められた行列に、疎行列演算ステップで得られたベクトルを掛ける行列掛け算ステップとを備えるものである。
この発明に係る誤り訂正符号化方法は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、疎行列演算ステップで得られたベクトルの要素の一部を足し合わせるベクトル要素加算ステップと、パリティ検査行列のうちのパリティビット系列に対応する部分行列の一部を加算した行列の逆行列に、ベクトル要素加算ステップで得られたベクトルを掛けて、パリティビット系列の一部を算出する第1の行列掛け算ステップと、パリティ検査行列のうちのパリティビット系列に対応する部分行列の残りの部分に、第1の行列掛け算ステップで得られたパリティビット系列の一部を掛ける第2の行列掛け算ステップと、ベクトル要素加算ステップで得られたベクトルと第2の行列掛け算ステップで得られたベクトルを足し合わせて、パリティビット系列の残りの部分を算出するパリティビット算出ステップとを備えるものである。
この発明に係る誤り訂正符号化方法は、情報ビット系列db,iが、各要素をq個毎にブロックに分けたとき、i(1≦i≦K)番目のブロックに対応するq個の要素からなるベクトルであり、パリティビット系列pb,iは、各要素をq個毎にブロックに分けたとき、i(1≦i≦M)番目のブロックに対応するq個の要素からなるベクトルであり、M行N列のパリティ検査行列は、情報ビット系列に対応するM行K列(K=N−M)の部分行列Xijと、パリティビット系列に対応するM行M列のうちの1列目の部分行列Zjと、対角成分2行分に単位行列を含む部分行列とからなり、後述する式(24)、式(26)および式(27)に従って、パリティビット系列の各要素を算出するものである。
この発明に係る誤り訂正符号化装置は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算部と、パリティ検査行列のうちのパリティビット系列に対応した部分行列に対して予め定められた基本行列操作を施した予め定められた行列に、疎行列演算部で得られたベクトルを掛ける行列掛け算部とを備えるものである。
この発明に係る誤り訂正符号化装置は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算部と、疎行列演算部で得られたベクトルの要素の一部を足し合わせるベクトル要素加算部と、パリティ検査行列のうちのパリティビット系列に対応する部分行列の一部を加算した行列の逆行列に、ベクトル要素加算部で得られたベクトルを掛けて、パリティビット系列の一部を算出する第1の行列掛け算部と、パリティ検査行列のうちのパリティビット系列に対応する部分行列の残りの部分に、第1の行列掛け算部で得られたパリティビット系列の一部を掛ける第2の行列掛け算部と、ベクトル要素加算部で得られたベクトルと第2の行列掛け算部で得られたベクトルを足し合わせて、パリティビット系列の残りの部分を算出するパリティビット算出部とを備えるものである。
この発明によれば、パリティ検査行列と情報ビット系列の掛け算を2工程に分けて行うようにしたので、行列掛け算ステップでベクトルに掛け合わせる疎でない行列のサイズを従来方法よりも小さくすることができる。よって、LDPC符号の符号化の演算量を削減することができる。
この発明によれば、パリティ検査行列と情報ビット系列の掛け算を複数工程に分けて行うようにしたので、行列掛け算ステップでベクトルに掛け合わせる疎でない行列のサイズを従来方法よりも小さくすることができ、また、演算の多くを疎な行列を用いて行うことができる。よって、QC(Quasi−Cyclic)−LDPC符号の符号化の演算量を削減することができる。
この発明によれば、後述する式(24)、式(26)および式(27)を用いるようにしたので、演算の多くを疎な行列を用いて行うことができ、QC−LDPC符号の符号化の演算量を削減することができる。
この発明によれば、パリティ検査行列と情報ビット系列の掛け算を2工程に分けて行うようにしたので、行列掛け算ステップでベクトルに掛け合わせる疎でない行列のサイズを従来方法よりも小さくすることができる。よって、LDPC符号の誤り訂正符号化装置の回路規模を削減することができる。
この発明によれば、パリティ検査行列と情報ビット系列の掛け算を複数工程に分けて行うようにしたので、行列掛け算ステップでベクトルに掛け合わせる疎でない行列のサイズを従来方法よりも小さくすることができ、また、演算の多くを疎な行列を用いて行うことができる。よって、QC−LDPC符号の誤り訂正符号化装置の回路規模を削減することができる。
この発明の実施の形態1に係る誤り訂正符号化装置の構成を示すブロック図である。 実施の形態1に係る誤り訂正符号化装置において用いるパリティ検査行列の構成を説明する図である。 実施の形態1に係る誤り訂正符号化装置の動作を示すフローチャートである。 この発明の実施の形態2に係る誤り訂正符号化装置の構成を示すブロック図である。 実施の形態2に係る誤り訂正符号化装置の動作を示すフローチャートである。 この発明の実施の形態3に用いるQC−LDPC符号の一例を示す図である。 実施の形態3に係る誤り訂正符号化装置の構成を示すブロック図である。 実施の形態3に係る誤り訂正符号化装置の動作を示すフローチャートである。 この発明の実施の形態4に係る誤り訂正符号化装置の構成を示すブロック図である。 図6に示すパリティ検査行列に対する基本行列操作を説明する図である。 実施の形態4に用いるQC−LDPC符号の一例を示す図である。 実施の形態4に用いるQC−LDPC符号の別の例を示す図である。 LDPC符号のパリティ検査行列の構成を説明する図である。 従来の符号化方法において用いるパリティ検査行列の構成例を説明する図である。 従来の符号化方法において用いるパリティ検査行列の別の構成例を説明する図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1に示す誤り訂正符号化装置1は、疎行列演算部2と、基本行列操作部3と、行列掛け算部4とを備え、LDPC符号の符号化として、情報ビット系列dを入力とし、パリティ検査行列Hに基づいた条件を満たすパリティビット系列pを算出する。
LDPC符号のパリティ検査行列Hと符号語cとには、式(4)のような関係がある。
Figure 2014069464
ここで、行列Hとベクトルcの掛け算で行う要素(ビット)同士の加算は、mod2の加算(排他的論理和と同じ)とする。また、Tは転置を表す。
パリティ検査行列Hは、式(5)および図2のように表される。このパリティ検査行列Hは、情報ビット系列dに対応するm×k行列Xと、パリティビット系列pに対応するm×m行列Yとを含み、m×m行列Yは正則行列とする。すると、式(4)の左辺は、式(6)のように変形できる。この式(6)と式(4)とから、パリティビット系列pは式(7)のように求められる。
Figure 2014069464

Figure 2014069464

Figure 2014069464
上記を踏まえ、本実施の形態1を説明する。図3は、本実施の形態1に係る誤り訂正符号化装置1の動作を示すフローチャートである。
ステップST11では、疎行列演算部2が上式(6)に従って、情報ビット系列dと、パリティ検査行列Hのm×k行列Xとの排他的論理和を演算し、XdTのベクトルを得る。ここで、m×k行列Xはパリティ検査行列Hの部分行列であるから疎であり、1の数が少ない。そのため、本ステップST11での排他的論理和の回数は、m×k回に比べて非常に小さい。
次のステップST12では、行列掛け算部4が上式(4)に従って、別途算出しておいたm×m行列Yの逆行列Y-1を、ステップST11の算出結果XdTに掛け、Y-1XdTのベクトルを得る。逆行列Y-1は、基本行列操作部3がパリティ検査行列Hのm×m行列Yから予め算出しておく。この逆行列Y-1はm×m行列であり、必ずしも疎な行列ではない。そのため、本ステップST12では約m×m/2回の排他的論理和を計算する必要がある。
本実施の形態1において、排他的論理和の回数はステップST12の回数が支配的であり、約m×m/2回となる。一方、先立って説明した従来方法においては排他的論理和の回数がm×k/2回であるので、m<kのときは本実施の形態1の方が演算量が小さい。なお、実際の誤り訂正符号化装置で用いられるLDPC符号のほとんどはm<kを満たす。
以上より、実施の形態1によれば、誤り訂正符号化装置1は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、パリティ検査行列のうちのパリティビット系列に対応した部分行列に対して予め定められた基本行列を施した予め定められた行列(即ち、パリティ検査行列のうちのパリティビット系列に対応する部分行列の逆行列Y-1)に、疎行列演算ステップで得られたベクトルを掛ける行列掛け算ステップとを実施するようにした。このため、パリティ検査行列と情報ビット系列の掛け算を2回に分けて行うことで、掛け算に用いる疎でない逆行列のサイズを従来方法よりも小さくすることができる。従って、LDPC符号の符号化の演算量を削減することができる。
なお、実施の形態1のステップST11,ST12それぞれの演算はビット同士の加算と乗算であるので、一例として、加算を排他的論理和(EXOR)ゲートで行い、乗算を論理積(AND)ゲートで行う回路を構成できる。つまり、誤り訂正符号化装置1において、疎行列演算部2および行列掛け算部4それぞれを、排他的論理和ゲートと論理積ゲートとからなる回路で構成する。
この回路構成の場合、掛け算に用いる疎でない逆行列Y-1のサイズを従来方法よりも小さくしたことにより排他的論理和の回数を削減でき、結果、誤り訂正符号化装置1の回路規模も削減することができる。
また、実施の形態1では、式(3)で示したように、符号語cのベクトルの左側を情報ビット系列dとし、右側をパリティビット系列pとした場合の誤り訂正符号化方法を説明したが、これに限定されるものではない。例えば、符号語cのうちの任意の部分をパリティビット系列pとしてもよく、そのような場合に本実施の形態1の構成を実現するには、一例として符号語cの要素を並び替える処理を行ってパリティビット系列pをベクトル右側にし、パリティ検査行列Hの列もそれに合わせて並び替える処理を行う方法がある。パリティ検査行列Hの列を並び替えてもLDPC符号の本質的な性質は変化しないので、このような方法が可能である。
また、実施の形態1では、誤り訂正符号化装置1が基本行列操作部3を備え、LDPC符号のパリティ検査行列に対して基本行列操作を施す構成にしたが、この基本行列操作は情報ビット系列には依存せず、パリティ検査行列のみに基づいて演算が行われるため、パリティ検査行列に対して基本行列操作を行った演算結果を予め求めておき、演算結果をメモリ等の記憶部にデータとして保持させ行列掛け算部4がそのデータを使用する構成にしたり、演算結果を行列掛け算部4に組み込んで構成しておくことが可能である。この場合には基本行列操作部3を省略できる。
実施の形態2.
図4は、本実施の形態2に係る誤り訂正符号化装置1の構成を示すブロック図である。本実施の形態2に係る誤り訂正符号化装置1は、疎行列演算部2と、基本行列操作部3と、行列掛け算部4と、パリティビット算出部5とを備える。なお、図4において図1と同一または相当の部分については同一の符号を付し説明を省略する。
上記実施の形態1では、上式(4)を上式(7)のように変形した場合の誤り訂正符号化方法を説明したが、本実施の形態2では、上式(4)を下式(8)のように変形した場合の誤り訂正符号化方法を説明する。
Figure 2014069464
式(8)の行列Tlは、m×m行列であり、下式(9)に示すような下三角行列である。つまり、行列Tlのi行j列の要素をTl(ij)と表すと、行列Tlは式(10)および式(11)を満たす。
なお、行列Tlは、式(9)、式(10)、および式(11)を満たすm×m行列であればどんなものでもよい。
Figure 2014069464
なお、式(9)において行列Tlの左下半分は0または1である。
Figure 2014069464

Figure 2014069464
式(8)において、行列Sはm×m行列であり、SY=Tlを満たす行列である。所定の行列W=[YI](ただし、Iは単位行列とする)に対し、Yの部分がTlとなるように基本行列操作を施せば、この行列Wは[TlS]となり、右側部分がSとなる。つまり、この行列Sは、m×m行列Yを下三角行列Tlに変換するための行列である。
この行列Sは、基本行列操作部3が予め算出しておく。
ここで、式(8)の最下段右辺(SXdT)を、式(12)のようにベクトルuで表すと、パリティビット系列pの1番目の要素p1は、式(13)のように算出できる。また、p1以外の要素は、後退代入と呼ばれる操作を用いて式(14)のように算出できる。
Figure 2014069464

Figure 2014069464

Figure 2014069464
上記を踏まえ、本実施の形態2を説明する。図5は、本実施の形態2に係る誤り訂正符号化装置1の動作を示すフローチャートである。
ステップST21では、上記実施の形態1のステップST11と同様に、疎行列演算部2が、情報ビット系列dとパリティ検査行列Hのm×k行列Xとの排他的論理和を演算し、XdTのベクトルを得る。
ステップST22では、行列掛け算部4が上式(12)に従って、別途算出しておいた行列Sを、ステップST21の算出結果XdTに掛け、ベクトルuを得る。ここで、行列Sはm×m行列の疎ではない行列である。そのため、本ステップST22では約m×m/2回の排他的論理和を計算する必要がある。
ステップST23では、パリティビット算出部6が上式(13)および上式(14)に従って、ステップST22で得たベクトルuからパリティビット系列pの要素を順次算出する。本ステップST23の演算量は、行列Tlが含む1の数に依存し、排他的論理和は約m×m/4回となる。
先立って説明した従来方法では、情報ビット系列dに対して行列Q1を掛け、その後、式(13)と式(14)と同様に計算でパリティビット系列pを求めている。しかし、行列Q1はm×k行列の疎ではない行列である。そのため、約m×k/2回の排他的論理和を計算する必要があり、演算量が大きい。
一方、本実施の形態2では、排他的論理和の回数がステップST21でm×m回より非常に少ない回数、ステップST22で約m×m/2回、ステップST23で約m×m/4回であるため、合計約3×m×m/4回の排他的論理和の計算によりLDPC符号の符号化を行うことができる。そのため、m<k、かつ、mとkの差が大きい場合に、従来方法の約m×k/2回よりも演算量を削減することができる。
また、本実施の形態2で見積もった演算量の値である約3×m×m/4は、上記実施の形態1の約m×m/2よりも大きい。しかし、これら演算量の実際の値は、行列S,Tl、および実施の形態1における逆行列Y-1に依存するため、具体的な演算量は実施するパリティ検査行列Hによって異なる。また、パリティ検査行列Hによっては、本実施の形態2での演算量が上記実施の形態1での演算量よりも少なくなる。いずれにしても、従来方法の演算量よりも削減することができる。
以上より、実施の形態2によれば、誤り訂正符号化装置1は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、パリティ検査行列のうちのパリティビット系列に対応した部分行列に対して予め定められた基本行列を施した予め定められた行列(即ち、パリティ検査行列のうちのパリティビット系列に対応する部分行列を下三角行列Tlに変換するための行列S)に、疎行列演算ステップで得られたベクトルを掛ける行列掛け算ステップとを実施するようにした。このため、パリティ検査行列と情報ビット系列の掛け算を2回に分けて行うことで、掛け算に用いる疎でない行列のサイズを従来方法よりも小さくすることができる。従って、LDPC符号の符号化の演算量を削減することができる。
また、実施の形態2によれば、誤り訂正符号化装置1は、行列掛け算ステップで得られたベクトルと下三角行列を用いてパリティビット系列を算出するパリティビット算出ステップを実施するようにした。このため、少ないベクトルの加算回数でパリティビット系列を算出でき、LDPC符号の符号化の演算量を削減できる。
なお、実施の形態2では、行列Tlを下三角行列としたが、これに限定されるものではない。その場合、ステップST23を式(14)のようなベクトルの加算により実施可能か否かが演算量の観点で問題となるが、ステップST23をベクトルの加算により実施可能な行列Tlの構造は下三角行列に限らない。少ないベクトルの加算回数でステップST23を構成できれば、小さな演算量でLDPC符号の符号化を行うことができる。
このような行列Tlの例として、下三角行列の列もしくは行を入れ替えたような行列、または一部が下三角となっているような行列がある。また、当然ながら、行列Tlを単位行列とすれば、行列Sはm×m行列Yの逆行列Y-1と等しくなり、つまりは上記実施の形態1と同じ構成となる。
いずれにしても、上記で説明した基本行列操作による行列Sの算出方法と同様にして、基本行列操作部3が行列Tlから行列Sを算出でき、ステップST22を実施可能である。
また、実施の形態2のステップST21〜ST23それぞれの演算はビット同士の加算と乗算であるので、上記実施の形態1と同様に、疎行列演算部2、行列掛け算部4およびパリティビット算出部5それぞれを、排他的論理和ゲートと論理積ゲートとからなる回路で構成できる。
この回路構成の場合、掛け算に用いる疎でない行列Sのサイズを従来方法よりも小さくしたことにより排他的論理和の回数を削減でき、結果、誤り訂正符号化装置1の回路規模も削減することができる。
また、実施の形態2でも上記実施の形態1と同様に、符号語cのベクトルの左側を情報ビット系列dとし、右側をパリティビット系列pとした場合の誤り訂正符号化方法を説明したが、これに限定されるものではない。例えば、符号語cのうちの任意の部分をパリティビット系列pとしてもよく、そのような場合に本実施の形態2の構成を実現するには、一例として符号語cの要素を並び替える処理を行ってパリティビット系列pをベクトル右側にし、パリティ検査行列Hの列もそれに合わせて並び替える処理を行う方法がある。パリティ検査行列Hの列を並び替えてもLDPC符号の本質的な性質は変化しないので、このような方法が可能である。
また、実施の形態2でも上記実施の形態1と同様に、パリティ検査行列に対して基本行列操作を行った演算結果を予め求めておき、演算結果をメモリ等の記憶部にデータとして保持させ行列掛け算部4がそのデータを使用する構成にしたり、演算結果を行列掛け算部4に組み込んで構成したりして、基本行列操作部3を省略してもよい。
実施の形態3.
本実施の形態3では、QC−LDPC符号を扱う。QC−LDPC符号はLDPC符号の1種であり、パリティ検査行列が巡回置換行列のブロックで構成されているLDPC符号である。
式(15)に、QC−LDPC符号の一例を示す。式(15)では、パリティ検査行列Hの列数nをn=Nqとし、行数をm=Mqとする。つまり、パリティ検査行列Hは、Xij,Yijを縦にM個、横にN個含む構造となっている。また、K=N−Mとおく。
また、式(15)においてi行j列(1≦i≦M、1≦j≦K)の要素Xijと、i行j列(1≦i≦M、1≦j≦M)の要素Yijは、それぞれq×qの正方行列であり、巡回置換行列または零行列である。巡回置換行列は、式(16)のような、単位行列を巡回シフトした行列である。
Figure 2014069464

Figure 2014069464
また、図6に、本実施の形態3に用いるQC−LDPC符号の一例を示す。
QC−LDPC符号のパリティ検査行列Hにおいて、パリティビット系列pに対応するM行M列のブロックのうち、1列目をZjとする。
また、パリティ検査行列Hの部分行列で示しているIは、q×qの単位行列である。また、0はq×qの零行列であり、XijおよびZjは巡回置換行列または零行列である。
さらに、本実施の形態3では、情報ビット系列dを式(17)のように表し、パリティビット系列pを式(18)のように表す。式(17)および式(18)の表記は、上記実施の形態1,2で用いた情報ビット系列dおよびパリティビット系列pを、パリティ検査行列Hのブロック単位で表したものである。つまり、情報ビット系列をq個ごとにブロックに分けたとき、db,iはi(1≦i≦K)番目のブロックに対応するq個の情報データからなるベクトルである。同様に、pb,iは、パリティビット系列をq個ごとにブロックに分けたときのi(1≦i≦M)番目のブロックに対応するq個のパリティビットからなるベクトルである。
Figure 2014069464

Figure 2014069464
次に、本実施の形態3におけるLDPC符号の符号化方法を式を用いて説明する。
まず、上記実施の形態1,2と同様に、上式(3)に基づいてパリティ検査行列Hと情報ビット系列dとパリティビット系列pとに関する方程式を定める。その際、パリティ検査行列H、情報ビット系列d、およびパリティビット系列pとして、式(15)、式(17)、および式(18)で説明したようなブロックで分けた表記を用いると、式(3)は下式(19)のようになる。
Figure 2014069464
この式(19)をブロックごとに分けて展開すると、1行目のブロックについて式(20)、2〜M−1行目のブロックについて式(21)、M行目のブロックについて式(22)が得られる。そして、式(20)、式(22)および式(21)を各jに対して全て足すと、式(23)が得られる。
Figure 2014069464

Figure 2014069464

Figure 2014069464

Figure 2014069464
式(23)に含まれるパリティビットのブロックはpb,1のみであるため、式(23)を変形することで、式(24)を得ることができ、pb,1を算出することができる。
Figure 2014069464
さらに、式(21)および式(22)を一部のjに対して適宜加算すれば、各j(2≦j≦M−1)に対するpb,jを算出可能な式(25)が得られ、この式(25)を変形して式(26)を得ることができる。式(26)の右辺のpb,1は、上式(24)から算出した値である。なお、rはΣで和を求める対象(j,j+1,・・・,M)を表し、式(26)により、j番目のブロックからM番目のブロックに対し、Σの内部(丸括弧内)のベクトルの総和を求めることになる。
Figure 2014069464

Figure 2014069464
また、式(22)からpb,Mを算出可能な式(27)が得られ、式(27)においても、式(26)と同様に式(24)から算出したpb,1を用いることでpb,Mを算出できる。
Figure 2014069464
上記のようにして、パリティ検査行列HをもつLDPC符号のパリティビットが算出でき、LDPC符号の符号化を行うことができる。
上記を踏まえ、本実施の形態3を説明する。
図7は、本実施の形態3に係る誤り訂正符号化装置1の構成を示すブロック図である。本実施の形態3に係る誤り訂正符号化装置1は、疎行列演算部2と、基本行列操作部3と、(第1の)行列掛け算部4と、パリティビット算出部5と、ベクトル要素加算部6と、第2の行列掛け算部7とを備える。なお、図7において図1および図4と同一または相当の部分については同一の符号を付し説明を省略する。
図8は、本実施の形態3に係る誤り訂正符号化装置1の動作を示すフローチャートである。
ステップST31では、表記が異なるものの、上記実施の形態1,2のステップST11,21と同様に、疎行列演算部2が情報ビット系列db,iとパリティ検査行列Hの部分行列Xijとの排他的論理和を演算し、Xijb,iの各jについてq次元ベクトルを得る。本ステップST31は、上式(20)〜(22)の第一項の算出に対応する。Xijは巡回置換行列であり、疎な行列であるため、本ステップST31の演算量は小さい。
ステップST32では、ベクトル要素加算部6が、ステップST31の算出結果であるq次元ベクトルを、r=1からjまで、M−1回加算する。本ステップST32は、上式(23)の第一項の算出に対応する。
ステップST33では、行列掛け算部4が上式(24)に従って、別途算出しておいた、Zjのj=1からMまでの総和の行列の逆行列を、ステップST32の算出結果に掛け、パリティビット系列pb,1を得る。ここで、Zjの総和の逆行列は、基本行列操作部3が予め算出しておく。この逆行列は疎ではないが、q×q行列であり、行列サイズは小さい。そのため、本ステップST33の演算量は小さい。
ステップST34では、第2の行列掛け算部7が、ステップST33で得たパリティビット系列pb,1に対する各Zjの掛け算と、その掛け算結果であるベクトルの和を算出する。本ステップST34は、上式(25)の第二項の算出に対応する。なお、Zjは疎であり、演算量は小さい。
ステップST35では、パリティビット算出部5が上式(26)および上式(27)に従って、ステップST32の算出結果とステップST34の算出結果とを加算し、パリティビット系列pb,j,pb,Mを算出する。本ステップST35は2つのベクトルの足し算であるため、演算量は小さい。
本実施の形態3においては、疎でない行列を用いる演算を少なくすることで演算量の削減を行っている。疎でない行列は、ステップST33のZjのjに対する総和の逆行列であるが、この逆行列はq×q行列でありサイズが小さい。目安として、上記実施の形態1,2および従来方法で用いる疎でない行列サイズのmおよびkと比べ、qは一般的に1/3〜1/100と小さい。そのため、ステップST33の演算量は、約q×q/2回の排他的論理和となり、従来方法に比べて、q/mまたはq/kの2乗オーダーで演算量を削減することができる。
なお、ステップST33以外のステップで最も演算量が多くなり得るのはステップST31であるが、ステップST31で用いる行列Xは疎であり、またステップST31は上記実施の形態1,2のステップST11,ST21と同じ演算である。そのため、同じパリティ検査行列であれば、本実施の形態3の符号化方法は、上記実施の形態1,2の符号化方法に比べ演算量を削減することができる。
以上より、実施の形態3によれば、誤り訂正符号化装置1は、パリティ検査行列のうちの情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、疎行列演算ステップで得られたベクトルの要素の一部を足し合わせるベクトル要素加算ステップと、パリティ検査行列のうちのパリティビット系列に対応する部分行列の一部を加算した行列の逆行列に、ベクトル要素加算ステップで得られたベクトルを掛けて、パリティビット系列の一部を算出する(第1の)行列掛け算ステップと、パリティ検査行列のうちのパリティビット系列に対応する部分行列の残りの部分に、(第1の)行列掛け算ステップで得られたパリティビット系列の一部を掛ける第2の行列掛け算ステップと、ベクトル要素加算ステップで得られたベクトルと第2の行列掛け算ステップで得られたベクトルを足し合わせて、パリティビット系列の残りの部分を算出するパリティビット算出ステップとを実施するように構成した。このため、QC−LDPC符号の符号化において、演算の多くを疎な行列を用いて行うことができ、演算量を削減することができる。また、上記実施の形態1,2と同様に、掛け算に用いる疎でない逆行列のサイズを従来方法よりも小さくすることができ、これによっても演算量を削減することができる。
また、実施の形態3のステップST31〜ST35それぞれの演算はビット同士の加算と乗算であるので、上記実施の形態1,2と同様に、疎行列演算部2、行列掛け算部4、第2の行列掛け算部7、およびパリティビット算出部5それぞれを、排他的論理和ゲートと論理積ゲートとからなる回路で構成できる。
この回路構成の場合、掛け算に用いる疎でない逆行列のサイズを従来方法よりも小さくしたことにより排他的論理和の回数を削減でき、結果、誤り訂正符号化装置1の回路規模も削減することができる。
なお、実施の形態3でも上記実施の形態1,2と同様に、符号語cのベクトルの左側を情報ビット系列dとし、右側をパリティビット系列pとした場合の誤り訂正符号化方法を説明したが、これに限定されるものではない。例えば、符号語cのうちの任意の部分をパリティビット系列pとしてもよく、そのような場合に本実施の形態3の構成を実現するには、一例として符号語cの要素を並び替える処理を行ってパリティビット系列pをベクトル右側にし、パリティ検査行列Hの列もそれに合わせて並び替える処理を行う方法がある。パリティ検査行列Hの列を並び替えてもLDPC符号の本質的な性質は変化しないので、このような方法が可能である。
また、実施の形態3でも上記実施の形態1,2と同様に、パリティ検査行列に対して基本行列操作を行った演算結果を予め求めておき、演算結果をメモリ等の記憶部にデータとして保持させ行列掛け算部4がそのデータを使用する構成にしたり、演算結果を行列掛け算部4に組み込んで構成したりして、基本行列操作部3を省略してもよい。
実施の形態4.
図9は、この発明の実施の形態4に係る誤り訂正符号化装置1の構成を示すブロック図である。本実施の形態4に係る誤り訂正符号化装置1は、疎行列演算部2と、基本行列操作部3と、行列掛け算部4と、パリティビット算出部5と、ベクトル要素加算部6と、第2の行列掛け算部7と、巡回シフト部8,9と、逆巡回シフト部10とを備える。なお、図9において図7と同一または相当の部分については同一の符号を付し説明を省略する。
本実施の形態4では、上記実施の形態3で説明したパリティビット系列pの算出式を、基本行列操作に基づいた他の表現で説明する。
既に説明したように、上記実施の形態3を適用するQC−LDPC符号のパリティ検査行列Hの一例は、図6に示す通りである。図6のパリティ検査行列Hは、基本行列操作部3の行う所定の基本行列操作により、単純な構造となる。図10はその基本行列操作を説明する図であり、矢印上側のように、パリティ検査行列Hについて加算(1)から加算(M−1)を順番にブロック単位で行うと、矢印下側の行列となる。この基本行列操作により、単位行列Iの多くを消すことができ、1行目に現れるZrのr=1からMまでの総和を除けば、下三角行列の構造となっていることがわかる。このZrの総和は、図8のステップST33および上式(24)で逆行列として用いた、Zjの総和のq×q行列に対応する。
以上を踏まえると、パリティ検査行列Hは、図6の構造に限定されないことは明らかである。
そこで、本実施の形態4では、一例として図11に示すパリティ検査行列Hを使用する。図11に示すパリティ検査行列Hは、図6のパリティ検査行列Hのうち、単位行列Iとしていた部分の一部またはすべてを巡回置換行列Ajで置き換えた構造である。また、Ajの一部またはすべてを零行列にしてもよい。
つまり、図10に示す加算(j)(1≦j≦M−1)を、基本行列操作部3が単純にブロック単位に加算するのではなく、図11の場合、まず巡回シフト部8が、加算する2つのブロック(例えば、パリティ検査行列Hの一番下のM行目のブロックと、1つ上M−1行目のブロック)のうちの下方のブロックXij,Zj,Ajを巡回シフトし、続いて基本行列操作部3が、巡回シフトした下方のブロックを上方のブロックへ加算する。これを繰り返せば、図10の矢印下側の行列と同様の行列が得られる。
この場合に得られる行列は、図10の矢印下側の行列のうち、一部の部分行列Xij,Zjを巡回シフトした構造となる。図10に示したIおよび0の部分は、図10と同じままである。
基本行列操作部3は、巡回シフト部8によりXij,Zj,Ajが巡回シフトされたパリティ検査行列Hの各行を加算(j)した後、1行目に現れるZrのr=1からMまでの総和の逆行列を算出し、この逆行列を行列掛け算部4へ出力する。
上述のようにパリティ検査行列Hの部分行列を巡回シフトし基本行列操作を行うことにより、図10の矢印下側の行列と同様の行列を得ることができるが、このときの巡回シフトに対応して、情報ビット系列dとパリティビット系列pも巡回シフトさせる必要がある。
具体的には、巡回シフト部9が、図8のステップST31を実施する前に、情報ビット系列dを部分ベクトルdb,i単位で巡回シフトする。他方の逆巡回シフト部10は、図8のステップST35を実施した後に、パリティビット系列pを部分ベクトルpb,i単位で巡回シフトする。巡回シフト部9および逆巡回シフト部10が行う巡回シフトは、巡回シフト部8が行うブロックXij,Zj,Ajの巡回シフトに対応しており、巡回シフト部8がパリティ検査行列Hの各Xijに施す巡回シフトと同様の巡回シフトを、巡回シフト部9が情報ビット系列db,iに施してシフトさせる。また、巡回シフト部8がパリティ検査行列Hの各Zj,Ajに施す巡回シフトとは逆のシフトを、逆巡回シフト部10がパリティビット系列pb,iに施して元に戻す。
以上の処理により、本実施の形態4の誤り訂正符号化装置1においても、図8と同様の符号化方法を実施可能である。
以上より、実施の形態4によれば、誤り訂正符号化装置1は、パリティ検査行列として、情報ビット系列に対応した部分行列Xij(iは行、jは列)と、パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列目以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に単位行列を含む構成の行列のうち、巡回シフト部8が部分行列Xij,Zjおよび巡回置換行列Ajの一部を巡回シフトした構成の行列を使用するようにした。このため、図11の構造のパリティ検査行列Hに対して、一部の部分行列を巡回シフトすることで、図8の符号化方法によりLDPC符号の符号化を行うことができる。一部の部分行列を巡回シフトしても、行列に含まれる1の数は変わらないため、上記実施の形態3の図6に示した構造のパリティ検査行列Hと同様の演算量となる。従って、従来方法および上記実施の形態1,2の符号化方法に比べ演算量を削減することができる。
さらに、本実施の形態4に適用可能なパリティ検査行列Hは、図11に限定されない。
例えば、図12に示すように、図11のパリティ検査行列Hのうち、単位行列Iとしていた部分の一部またはすべてを巡回置換行列Bjとしてもよい。また、Bjの一部またはすべてを零行列にしてもよい。パリティ検査行列Hは、行の順番を入れ替えても、パリティ検査行列およびLDPC符号の本質的構造は変わらないからである。当然ながら、行をブロック単位で巡回シフトさせても本質的構造は変わらない。なお、図12に示すパリティ検査行列Hの行において、ブロック単位で各巡回置換行列Bjを単位行列Iにした場合、図11と同様の構造のパリティ検査行列Hとなる。
図12の場合にも、まず巡回シフト部8が、加算する2つのブロックのうちの下方のブロックXij,Zj,Aj,Bjを巡回シフトし、続いて基本行列操作部3が、巡回シフトした下方のブロックを上方のブロックへ加算する。これを繰り返せば、図10の矢印下側の行列と同様の行列が得られる。
この場合に得られる行列は、図10の矢印下側の行列のうち、一部の部分行列Xij,Zj、およびAjに置き換えたIを巡回シフトした構造となる。基本行列操作部3は、巡回シフト部8によりXij,Zj,Aj,Bjが巡回シフトされたパリティ検査行列Hの各行を加算(j)した後、1行目に現れるZrのr=1からMまでの総和の逆行列を算出し、この行列を行列掛け算部4へ出力する。
また、この場合にも、巡回シフト部9が情報ビット系列dを部分ベクトルdb,i単位で巡回シフト部8と同様に巡回シフトさせると共に、逆巡回シフト部10がパリティビット系列pを部分ベクトルpb,i単位で巡回シフト部8とは逆に巡回シフトさせる。
以上の処理により、図8と同様の符号化方法を実施可能である。
以上より、実施の形態4によれば、誤り訂正符号化装置1は、パリティ検査行列として、情報ビット系列に対応した部分行列Xij(iは行、jは列)と、パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に巡回置換行列Bjを含む構成の行列のうち、巡回シフト部8が部分行列Xij,Zjおよび巡回置換行列Aj,Bjの一部を巡回シフトした構成の行列を使用するようにした。このため、図12の構造のパリティ検査行列Hに対して、一部の部分行列を巡回シフトすることで、図8の符号化方法によりLDPC符号の符号化を行うことができる。一部の部分行列を巡回シフトしても、行列に含まれる1の数は変わらないため、上記実施の形態3の図6に示した構造のパリティ検査行列Hと同様の演算量となる。従って、従来方法および上記実施の形態1,2の符号化方法に比べ演算量を削減することができる。
また、実施の形態4でも上記実施の形態3と同様に、図8のステップST31〜ST35それぞれの演算はビット同士の加算と乗算であるので、上記実施の形態3と同様に、疎行列演算部2、行列掛け算部4、第2の行列掛け算部7、およびパリティビット算出部5それぞれを、排他的論理和ゲートと論理積ゲートとからなる回路で構成できる。
この回路構成の場合、掛け算に用いる疎でない逆行列のサイズを従来方法よりも小さくしたことにより排他的論理和の回数を削減でき、結果、誤り訂正符号化装置1の回路規模も削減することができる。
なお、実施の形態4でも上記実施の形態1〜3と同様に、符号語cのベクトルの左側を情報ビット系列dとし、右側をパリティビット系列pとした場合の誤り訂正符号化方法を説明したが、これに限定されるものではない。例えば、符号語cのうちの任意の部分をパリティビット系列pとしてもよく、そのような場合に本実施の形態4の構成を実現するには、一例として符号語cの要素をブロック単位に並び替える処理を行ってパリティビット系列pをベクトル右側にし、パリティ検査行列Hのブロック列もそれに合わせて並び替える処理を行う方法がある。並び替え後のパリティ検査行列Hが図11、図12に例示した構造になるなら、実施の形態4は実施可能である。つまり、ブロック単位に行および列を並び替えることにより、上記で説明した実施の形態4を実施可能な構造とできるパリティ検査行列Hであるなら、実施の形態4は実施可能であると言える。
また、実施の形態4でも上記実施の形態1〜3と同様に、パリティ検査行列に対して基本行列操作を行った演算結果を予め求めておき、演算結果をメモリ等の記憶部にデータとして保持させ行列掛け算部4がそのデータを使用する構成にしたり、演算結果を行列掛け算部4に組み込んで構成したりして、基本行列操作部3を省略してもよい。
また、実施の形態4において、巡回シフトはデータの順番を入れ替える処理であるため、予め巡回シフトの規則(巡回シフト部8の出力結果)が判明していれば、パリティ検査行列に対して巡回シフトおよび基本行列操作を行った演算結果を予め求めておくことが可能であり、その場合には巡回シフト部8および基本行列操作部3を省略可能である。
さらに、予め巡回シフトの規則が判明していれば、巡回シフト部9および逆巡回シフト部10を構成する演算器などを必要とせずに実装できる場合がある。特に回路の場合、データの順番は配線の繋ぎ方で決まるため、演算器を必要とせずに実装可能であり、回路規模を増大させることなく巡回シフト部9および逆巡回シフト部10の機能を実現できる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
以上のように、この発明に係る誤り訂正符号化装置は、情報データをLDPC符号に準じて符号化する、通信システムの送信機などに用いるのに適している。
1 誤り訂正符号化装置、2 疎行列演算部、3 基本行列操作部、4 (第1の)行列掛け算部、5 パリティビット算出部、6 ベクトル要素加算部、7 第2の行列掛け算部、8,9 巡回シフト部、 10 逆巡回シフト部。
この発明に係る誤り訂正符号化方法は、パリティ検査行列のうちの情報ビット系列に対応する複数の部分行列のそれぞれの1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算して複数のベクトルを算出する疎行列演算ステップと、疎行列演算ステップで得られた複数のベクトルを足し合わせたベクトルを得るベクトル要素加算ステップと、パリティ検査行列のうちのパリティビット系列に対応する複数の部分行列の一部を加算した行列の逆行列、ベクトル要素加算ステップで得られる足し合わせたベクトルを掛けて、パリティビット系列の一部を算出する第1の行列掛け算ステップと、第1の行列掛け算ステップで加算の対象とされた一部の部分行列と、第1の行列掛け算ステップで得られたパリティビット系列の一部を掛けて掛け算結果のベクトルを得る第2の行列掛け算ステップと、疎行列演算ステップで得られた複数のベクトルと第2の行列掛け算ステップで得られた掛け算結果のベクトルとに基づいて、パリティビット系列の残りの部分を算出するパリティビット算出ステップとを備えるものである。
この発明に係る誤り訂正符号化装置は、パリティ検査行列のうちの情報ビット系列に対応する複数の部分行列のそれぞれの1の位置に基づいて、当該部分行列と情報ビット系列の排他的論理和を演算して複数のベクトルを算出する疎行列演算部と、疎行列演算部で得られた複数のベクトルを足し合わせたベクトルを得るベクトル要素加算部と、パリティ検査行列のうちのパリティビット系列に対応する複数の部分行列の一部を加算した行列の逆行列、ベクトル要素加算部で得られる足し合わせたベクトルを掛けて、パリティビット系列の一部を算出する第1の行列掛け算部と、第1の行列掛け算部で加算の対象とされた一部の部分行列と、第1の行列掛け算部で得られたパリティビット系列の一部を掛けて掛け算結果のベクトルを得る第2の行列掛け算部と、疎行列演算部で得られた複数のベクトルと第2の行列掛け算部で得られた掛け算結果のベクトルとに基づいて、パリティビット系列の残りの部分を算出するパリティビット算出部とを備えるものである。

Claims (12)

  1. LDPC(Low−Density Parity−Check)符号用の疎なパリティ検査行列を用いて、情報ビット系列からパリティビット系列を算出し符号化する誤り訂正符号化方法であって、
    前記パリティ検査行列のうちの前記情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と前記情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、
    前記パリティ検査行列のうちの前記パリティビット系列に対応した部分行列に対して予め定められた基本行列操作を施した予め定められた行列に、前記疎行列演算ステップで得られた前記ベクトルを掛ける行列掛け算ステップとを備えることを特徴とする誤り訂正符号化方法。
  2. 前記予め定められた行列は、前記パリティ検査行列のうちの前記パリティビット系列に対応する部分行列の逆行列であって、前記行列掛け算ステップでは、当該逆行列と前記疎行列演算ステップで得られた前記ベクトルを掛けることを特徴とする請求項1記載の誤り訂正符号化方法。
  3. 前記予め定められた行列は、前記パリティ検査行列のうちの前記パリティビット系列に対応する部分行列を下三角行列に変換するための行列であって、前記行列掛け算ステップでは、当該行列と前記疎行列演算ステップで得られた前記ベクトルを掛けることを特徴とする請求項1記載の誤り訂正符号化方法。
  4. 前記行列掛け算ステップで得られた前記ベクトルと前記下三角行列を用いて前記パリティビット系列を算出するパリティビット算出ステップを備えることを特徴とする請求項3記載の誤り訂正符号化方法。
  5. QC(Quasi−Cyclic)−LDPC(Low−Density Parity−Check)符号用の疎なパリティ検査行列を用いて、情報ビット系列からパリティビット系列を算出し符号化する誤り訂正符号化方法であって、
    前記パリティ検査行列のうちの前記情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と前記情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算ステップと、
    前記疎行列演算ステップで得られた前記ベクトルの要素の一部を足し合わせるベクトル要素加算ステップと、
    前記パリティ検査行列のうちの前記パリティビット系列に対応する部分行列の一部を加算した行列の逆行列に、前記ベクトル要素加算ステップで得られた前記ベクトルを掛けて、前記パリティビット系列の一部を算出する第1の行列掛け算ステップと、
    前記パリティ検査行列のうちの前記パリティビット系列に対応する前記部分行列の残りの部分に、前記第1の行列掛け算ステップで得られた前記パリティビット系列の一部を掛ける第2の行列掛け算ステップと、
    前記ベクトル要素加算ステップで得られた前記ベクトルと前記第2の行列掛け算ステップで得られた前記ベクトルを足し合わせて、前記パリティビット系列の残りの部分を算出するパリティビット算出ステップとを備えることを特徴とする誤り訂正符号化方法。
  6. QC(Quasi−Cyclic)−LDPC(Low−Density Parity−Check)符号用の疎なパリティ検査行列を用いて、情報ビット系列からパリティビット系列を算出し符号化する誤り訂正符号化方法であって、
    前記情報ビット系列db,iは、各要素をq個毎にブロックに分けたとき、i(1≦i≦K)番目のブロックに対応するq個の要素からなるベクトルであり、
    前記パリティビット系列pb,iは、各要素をq個毎にブロックに分けたとき、i(1≦i≦M)番目のブロックに対応するq個の要素からなるベクトルであり、
    M行N列の前記パリティ検査行列は、前記情報ビット系列に対応するM行K列(K=N−M)の部分行列Xijと、前記パリティビット系列に対応するM行M列のうちの1列目の部分行列Zjと、対角成分2行分に単位行列を含む部分行列とからなり、
    下記に示す3つの式に従って、前記パリティビット系列の各要素を算出することを特徴とする誤り訂正符号化方法。
    Figure 2014069464

    Figure 2014069464

    Figure 2014069464
    ここで、Tは転置行列である。
  7. 前記パリティ検査行列は、前記情報ビット系列に対応した部分行列Xij(iは行、jは列)と、前記パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列目以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に単位行列を含む構成であり、前記部分行列Xij,Zjおよび前記巡回置換行列Ajの一部が巡回シフトされることを特徴とする請求項5記載の誤り訂正符号化方法。
  8. 前記パリティ検査行列は、前記情報ビット系列に対応した部分行列Xij(iは行、jは列)と、前記パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列目以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に単位行列を含む構成であり、前記部分行列Xij,Zjおよび前記巡回置換行列Ajの一部が巡回シフトされることを特徴とする請求項6記載の誤り訂正符号化方法。
  9. 前記パリティ検査行列は、前記情報ビット系列に対応した部分行列Xij(iは行、jは列)と、前記パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に巡回置換行列Bjを含む構成であり、前記部分行列Xij,Zjおよび前記巡回置換行列Aj,Bjの一部が巡回シフトされることを特徴とする請求項5記載の誤り訂正符号化方法。
  10. 前記パリティ検査行列は、前記情報ビット系列に対応した部分行列Xij(iは行、jは列)と、前記パリティビット系列に対応した部分行列のうちの1列目の部分行列Zjと、2列以降の部分行列とからなり、当該2列目以降の部分行列が、対角成分に巡回置換行列Ajを含むと共に当該巡回置換行列Ajそれぞれの1つ下に巡回置換行列Bjを含む構成であり、前記部分行列Xij,Zjおよび前記巡回置換行列Aj,Bjの一部が巡回シフトされることを特徴とする請求項6記載の誤り訂正符号化方法。
  11. LDPC(Low−Density Parity−Check)符号用の疎なパリティ検査行列を用いて、情報ビット系列からパリティビット系列を算出し符号化する誤り訂正符号化装置であって、
    前記パリティ検査行列のうちの前記情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と前記情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算部と、
    前記パリティ検査行列のうちの前記パリティビット系列に対応した部分行列に対して予め定められた基本行列操作を施した予め定められた行列に、前記疎行列演算部で得られた前記ベクトルを掛ける行列掛け算部とを備えることを特徴とする誤り訂正符号化装置。
  12. QC(Quasi−Cyclic)−LDPC(Low−Density Parity−Check)符号用の疎なパリティ検査行列を用いて、情報ビット系列からパリティビット系列を算出し符号化する誤り訂正符号化装置であって、
    前記パリティ検査行列のうちの前記情報ビット系列に対応した部分行列の1の位置に基づいて、当該部分行列と前記情報ビット系列の排他的論理和を演算してベクトルを算出する疎行列演算部と、
    前記疎行列演算部で得られた前記ベクトルの要素の一部を足し合わせるベクトル要素加算部と、
    前記パリティ検査行列のうちの前記パリティビット系列に対応する部分行列の一部を加算した行列の逆行列に、前記ベクトル要素加算部で得られた前記ベクトルを掛けて、前記パリティビット系列の一部を算出する第1の行列掛け算部と、
    前記パリティ検査行列のうちの前記パリティビット系列に対応する前記部分行列の残りの部分に、前記第1の行列掛け算部で得られた前記パリティビット系列の一部を掛ける第2の行列掛け算部と、
    前記ベクトル要素加算部で得られた前記ベクトルと前記第2の行列掛け算部で得られた前記ベクトルを足し合わせて、前記パリティビット系列の残りの部分を算出するパリティビット算出部とを備えることを特徴とする誤り訂正符号化装置。
JP2014544524A 2012-11-05 2013-10-29 誤り訂正符号化方法および誤り訂正符号化装置 Active JP5774237B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014544524A JP5774237B2 (ja) 2012-11-05 2013-10-29 誤り訂正符号化方法および誤り訂正符号化装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012243590 2012-11-05
JP2012243590 2012-11-05
JP2014544524A JP5774237B2 (ja) 2012-11-05 2013-10-29 誤り訂正符号化方法および誤り訂正符号化装置
PCT/JP2013/079285 WO2014069464A1 (ja) 2012-11-05 2013-10-29 誤り訂正符号化方法および誤り訂正符号化装置

Publications (2)

Publication Number Publication Date
JP5774237B2 JP5774237B2 (ja) 2015-09-09
JPWO2014069464A1 true JPWO2014069464A1 (ja) 2016-09-08

Family

ID=50627366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014544524A Active JP5774237B2 (ja) 2012-11-05 2013-10-29 誤り訂正符号化方法および誤り訂正符号化装置

Country Status (5)

Country Link
US (1) US9484959B2 (ja)
EP (1) EP2916461B1 (ja)
JP (1) JP5774237B2 (ja)
CN (1) CN104488196B (ja)
WO (1) WO2014069464A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753807B1 (en) * 2014-06-17 2017-09-05 Amazon Technologies, Inc. Generation and verification of erasure encoded fragments
US9768805B2 (en) * 2015-05-29 2017-09-19 National Instruments Corporation LPDC encoding techniques using a matrix representation
CN105356968B (zh) * 2015-06-24 2018-11-16 深圳大学 基于循环置换矩阵的网络编码的方法及系统
WO2017130237A1 (en) * 2016-01-29 2017-08-03 Nec Corporation Information processing apparatus, information processing method and a computer program
CN106844085A (zh) * 2016-12-30 2017-06-13 北京联想核芯科技有限公司 数据处理方法和装置
WO2018132444A1 (en) * 2017-01-11 2018-07-19 Groq, Inc. Error correction in computation
US10379952B2 (en) * 2017-06-16 2019-08-13 Western Digital Technologies, Inc. Data recovery and regeneration using parity code
JP6741159B1 (ja) * 2019-01-11 2020-08-19 三菱電機株式会社 推論装置及び推論方法
CN112015325B (zh) * 2019-05-28 2024-03-26 阿里巴巴集团控股有限公司 一种生成解码矩阵的方法、解码方法和对应装置
US11075650B1 (en) * 2019-10-29 2021-07-27 Xilinx, Inc. Sub-matrix reduction for quasi-cyclic LDPC codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2536259C (en) 2002-08-20 2011-05-24 Flarion Technologies, Inc. Methods and apparatus for encoding ldpc codes
KR100936022B1 (ko) * 2002-12-21 2010-01-11 삼성전자주식회사 에러 정정을 위한 부가정보 생성 방법 및 그 장치
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
CN100440737C (zh) * 2003-12-04 2008-12-03 北京泰美世纪科技有限公司 一种高度结构化的ldpc编码和解码方法及其编码器和解码器
CN101128981B (zh) * 2004-08-09 2013-03-20 Lg电子株式会社 使用低密度奇偶校验矩阵的编码和解码方法
RU2348103C2 (ru) * 2004-08-10 2009-02-27 Самсунг Электроникс Ко., Лтд. Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности
US7657816B2 (en) * 2005-07-13 2010-02-02 Leanics Corporation Low-complexity hybrid LDPC code encoder
TWI332205B (en) * 2007-03-01 2010-10-21 Lite On It Corp Data modulation/encryption method used in holographic stotage system
US8683302B2 (en) 2009-09-25 2014-03-25 Panasonic Corporation Coding device, decoding device, coding method, decoding method, and communication system
US8443249B2 (en) * 2010-04-26 2013-05-14 Lsi Corporation Systems and methods for low density parity check data encoding

Also Published As

Publication number Publication date
CN104488196B (zh) 2017-08-01
EP2916461A1 (en) 2015-09-09
US20150188578A1 (en) 2015-07-02
US9484959B2 (en) 2016-11-01
EP2916461B1 (en) 2019-08-28
CN104488196A (zh) 2015-04-01
JP5774237B2 (ja) 2015-09-09
EP2916461A4 (en) 2016-07-06
WO2014069464A1 (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
JP5774237B2 (ja) 誤り訂正符号化方法および誤り訂正符号化装置
US20200313700A1 (en) Transmission apparatus including encoder, reception apparatus including decoder, and associated methods
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
KR101789959B1 (ko) 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
KR102229233B1 (ko) 구조화된 ldpc의 부호화 및 복호화 방법 및 장치
CN101073205B (zh) 低密度奇偶校验编码器和解码器以及低密度奇偶校验编码和解码方法
WO2014122772A1 (ja) 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
KR101529360B1 (ko) 부호화기, 복호화기 및 부호화 방법
US8099644B2 (en) Encoders and methods for encoding digital data with low-density parity check matrix
US20110099454A1 (en) Low Complexity LDPC Encoding Algorithm
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
EP2951925B1 (en) Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR101077552B1 (ko) 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
JP4819470B2 (ja) 復号装置および復号方法
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
KR20110070730A (ko) 효율적인 ldpc 고속 부호화 방법 및 이를 이용하는 장치
CN106877882B (zh) 数据处理方法和装置
KR20070076538A (ko) 리차드슨 유형 재킷 ldpc 부호 생성장치 및 방법
KR100800775B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150630

R150 Certificate of patent or registration of utility model

Ref document number: 5774237

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250