[go: up one dir, main page]

JP2012039371A - 誤り訂正復号装置及び誤り訂正復号方法 - Google Patents

誤り訂正復号装置及び誤り訂正復号方法 Download PDF

Info

Publication number
JP2012039371A
JP2012039371A JP2010177538A JP2010177538A JP2012039371A JP 2012039371 A JP2012039371 A JP 2012039371A JP 2010177538 A JP2010177538 A JP 2010177538A JP 2010177538 A JP2010177538 A JP 2010177538A JP 2012039371 A JP2012039371 A JP 2012039371A
Authority
JP
Japan
Prior art keywords
check matrix
coding rate
row
matrix
parity check
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
JP2010177538A
Other languages
English (en)
Other versions
JP5485069B2 (ja
Inventor
Naoya Yosoku
直也 四十九
Shuta Okamura
周太 岡村
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2010177538A priority Critical patent/JP5485069B2/ja
Priority to US13/814,219 priority patent/US8996965B2/en
Priority to CN201180038008.1A priority patent/CN103069720B/zh
Priority to EP11814289.2A priority patent/EP2602938A4/en
Priority to PCT/JP2011/004396 priority patent/WO2012017652A1/ja
Publication of JP2012039371A publication Critical patent/JP2012039371A/ja
Application granted granted Critical
Publication of JP5485069B2 publication Critical patent/JP5485069B2/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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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
    • 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/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/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
    • H03M13/1188Parity 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 wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (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

【課題】回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したLDPC(Low-Density Parity-Check)復号を行うこと。
【解決手段】設定符号化率が第1の符号化率より符号化率が大きい第2の符号化率の場合、列処理行処理演算部120Aは、第2の符号化率に対応する第2検査行列に応じた分散検査行列から第1の部分行列が構成される列数と同数の列を選択して組み合わせた分散部分行列を用いる。ここで、分散検査行列は、第2検査行列の行数を拡張して、第2検査行列のうち第2検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である。このとき、列処理行処理演算部120Aは、行重みが第1の部分行列の行重み以下となる分散部分行列を用いる。
【選択図】図10

Description

本発明は、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号を用いた誤り訂正復号装置及び誤り訂正復号方法に関する。
近年、高い誤り訂正能力を発揮する誤り訂正符号として、LDPC符号が注目されている。LDPC符号は、低密度なパリティ検査行列で定義される誤り訂正符号である。
LDPC符号は、誤り訂正能力が高く、かつ、実装が容易であるため、IEEE802.11nの高速無線LAN(Local Area Network)システム、ディジタル放送システム、或いは、大容量記憶装置等の誤り訂正符号化方式として検討されている。
従来のLDPC符号の復号装置としては、例えば特許文献1に示されるものがある。特許文献1に記載される復号装置は、複数の検査行列に対応する復号装置であって、単位領域の中にエッジが含まれるよう検査行列を区分けしている。ここで、エッジとは、検査行列の要素「1」のことである。2進数表現のLDPC符号の場合、検査行列の要素は「0」または「1」である。行列の要素とは行列の成分を表す。そして、特許文献1に記載の復号装置は、区分けしたグループ内に存在するエッジ配置情報を格納することにより、メモリ容量の削減を行っている。また、特許文献1には、エッジ配置情報を用いて、メモリと演算器間の接続を簡易化する方法が記載されている。
特開2007−215089号公報
和田山 正著「低密度パリティ検査符号とその復号法」トリケップス出版、2002年6月5日(P92-P99)
しかしながら、前記従来の構成は、復号処理における演算器の実装数が、行ウエイト×同時処理行数分だけ必要となる。そのため、複数の検査行列に対応した復号装置を構成する場合には、行ウエイトが最も大きい検査行列に対応可能な数だけ演算器が必要となり、回路規模が増大するという課題を有する。
本発明はかかる点に鑑みてなされたものであり、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したLDPC復号を行うことができる誤り訂正符号装置及び誤り訂正復号方法を提供することを目的とする。
本発明の誤り訂正復号装置の一つの態様は、複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列を用いて復号する誤り訂正復号装置であって、前記符号化ビットを受信して得られる尤度を記憶する記憶手段と、前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する演算手段と、前記軟判定値を用いて復号ビットを判定する判定手段と、を具備し、前記演算手段は、前記設定符号化率が第1の符号化率の場合、前記部分行列として、前記列処理における復号対象の列数に応じて、前記第1の符号化率に対応する第1の検査行列から、任意の列を選択して組み合わせた第1の部分行列を用い、前記設定符号化率が前記第1の符号化率より符号化率が大きい前記第2の符号化率の場合、前記部分行列として、前記第2の符号化率に対応する第2の検査行列に応じた分散検査行列から、前記第1の部分行列が構成される列数に応じて、任意の列を選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第2の検査行列の行数を拡張して、前記第2の検査行列のうち前記第2の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である。
本発明の誤り訂正復号方法の一つの態様は、複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列を用いて復号する誤り訂正復号方法であって、前記符号化ビットを受信して得られる尤度を記憶し、前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出し、前記軟判定値を用いて復号ビットを判定する方法であり、前記設定符号化率が第1の符号化率の場合、前記部分行列として、前記第1の符号化率に対応する第1の検査行列から、前記列処理における復号対象の列数に応じて選択して組み合わせた第1の部分行列を用い、前記設定符号化率が前記第1の符号化率より符号化率が大きい前記第2の符号化率の場合、前記部分行列として、前記第2の符号化率に対応する第2の検査行列に応じた分散検査行列から、前記第1の部分行列が構成される列数に応じて選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第2の検査行列の行数を拡張して、前記第2の検査行列のうち前記第2の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である。
これらにより、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したLDPC復号を行うことができる。
本発明によれば、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したLDPC復号を行うことができる。
本発明の実施の形態における共用化元の検査行列の一例を示す図 上記実施の形態における共用化元の部分行列の一例を示す図 上記実施の形態における復号処理フローチャートの図 上記実施の形態に係る共用化元の復号器の要部構成を示す図 上記実施の形態における共用化対象の検査行列の一例を示す図 上記実施の形態における共有化対象の部分行列の一例を示す図 上記実施の形態における分散検査行列の一例を示す図 上記実施の形態における分散部分行列の一例を示す図 上記実施の形態における復号処理フローチャートの図 上記実施の形態に係る共有化復号器の要部構成を示す図 上記実施の形態に係る共有化復号器の別の要部構成を示す図 図10に示す復号器における復号処理のタイムチャートを表した図 図11に示す復号器における復号処理のタイムチャートを表した図
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態)
本実施の形態は、回路を共有化して回路規模の増大を抑えつつ、複数の符号化率に対応したLDPC復号を行うことができる誤り訂正復号装置(以下、復号器と略記する)及び誤り訂正復号方法(以下、LDPC復号方法、又は、復号アルゴリズムと呼ぶ)について説明する。
始めに、複数の符号化率のうち、任意に選択された符号化率に対応するLDPC復号方法について説明する。
図1は、複数の符号化率のうち、任意に選択された符号化率に対応するLDPC符号の検査行列を表す図である。
図1において、四角枠で囲まれた部分は、サブ行列に該当し、第1検査行列は、複数のサブ行列を結合して構成されている。このサブ行列は、単位行列をサイクリックシフトした行列であり、図1において、四角枠で囲まれた数値は、単位行列のサイクリックシフト量を表している。
例えば、0行0列のサイクリックシフト量「0」は、単位行列そのものを表し、1行2列のサイクリックシフト量「9」は、単位行列を9サイクリックシフトした行列を表す。一方「−」はゼロ行列を表し、単位行列のサイクリックシフトではない。
単位行列のサイズが4×4であり、サイクリックシフト量が2のサブ行列は、式(1)のように表される。式(1)から分かるように、サイクリックシフト量が2のサブ行列は、単位行列の要素「1」を右に2つシフトした行列となる。
Figure 2012039371
以下では、一例として、図1の検査行列におけるサブ行列サイズが64×64の場合を例に説明する。このとき、例えば、0行2列のサブ行列は64×64の単位行列を右に8サイクリックシフトした行列であり、2行3列のサブ行列は64×64の単位行列を右に12サイクリックシフトした行列である。
図1の検査行列は、列数が16列あるので符号長は16×64=1024となり、行数が8行あるのでパリティ長は8×64=512となる。よって、情報ビット長は512ビットとなり、図1の検査行列は符号化率1/2(R=1/2)の検査行列である。なお、本実施の形態における符号化率及び検査行列は特に限定するものではないが、図1に示す符号化率1/2の検査行列を例に用いて説明する。
本実施の形態では、検査行列に対応するLDPC復号を検査行列の全列数分一度にまとめて行うのではなく、ある列数ずつに分割して行う。具体的には、本実施の形態では、検査行列を複数の部分行列に分割して、部分行列ごとに復号処理を行う。
以下では、一例として、16列から構成される図1の検査行列に対応するLDPC復号を、4列数ずつ復号処理する場合について考える。
図2は、4列数ずつ復号処理を行う場合に用いる部分行列を表す図である。図2は、図1に示すように番号が割り振られた列を、{0,1,2,3}、{4,5,6,7}、{8,9,10,12}、{11,13,14,15}のように選択して組み合わせて、部分行列を形成した例である。図1に示す例では、16列から構成される検査行列が、4列から構成される部分行列に分割されている。なお、列番号12が、部分行列#1−2に選択され、列番号11が、部分行列#1−3に選択されている。
検査行列から部分行列を形成するための列選択の規範は、以下のとおりである。
本実施の形態では、部分行列の行重み数が最小となるように、検査行列から列を選択して部分行列を生成する。図2において、各部分行列の各行に対応する行重みは、全て2以下となっている。ここで、行重みとは、行列の各行における要素「1」の数を表している。つまり、行重みが2の場合、行列の要素「1」の数を行方向にカウントしたときに、要素「1」が2つ存在していることを表している。図2においては、サイクリックシフト量が記載されているサブ行列の個数は、全ての行において、2つ以下になっていることを示す。
また、2列数ずつ復号処理を行う場合には、図1の検査行列に対して、例えば、列番号9、12、13に着目して、列を{0,1}、{2,3}、{4,5}、{6,7}、{8,10}、{9,12}、{11,14}、{13,15}のように2列ずつ選択して部分行列を形成する。これにより、行重みを1とすることができる。なお、部分行列を構成する列数、すなわち、復号処理をまとめて行う列数の設定については、後述する。
このように、本実施の形態では、復号処理を行う列数、すなわち、部分行列を構成する列数に応じて、部分行列の行重み数が最小となるよう列選択して、検査行列から部分行列を生成する。
本実施の形態では、上記列選択に従って部分行列を形成した上で、以下の復号処理を行う。以下では、本復号アルゴリズムとして、例えば、対数領域min−sum復号を用いる場合について説明する。対数領域min−sum復号の詳細は、非特許文献1を参照することにより得られる。本実施の形態では、対数領域min−sum復号を以下のように実行する。
表1は、本復号アルゴリズムに用いる変数の定義を示している。
Figure 2012039371
本復号アルゴリズムは、図2のようにして、検査行列から列選択されて形成された部分行列の列数を単位にして列処理を行う。さらに、本復号アルゴリズムは、列処理の結果として得られる対数事前値比を用いて、行処理を逐次行っていく。
図2の例では、本復号アルゴリズムは4列ごと(部分行列の列数ごと)の列処理を4回行う。具体的には、図2に示す部分行列#1−0、部分行列#1−1、部分行列#1−2、部分行列#1−3の順に、列処理を行う。このようにして、本復号アルゴリズムが、4列ごと(部分行列の列数ごと)の列処理を4回施した時点で、図1に示す検査行列を用いた列処理の更新を1回実施したことになる。
図3は、本実施の形態に係るLDPC復号処理のフローチャートを示す図である。以下では、図3に示すフローチャートを用いて本復号アルゴリズムの詳細を説明する。
[1]開始
LDPC符号全ビット分(本実施の形態では1024ビット)の対数尤度比が得られた後、本復号アルゴリズムは、LDPC復号を開始する。
[2]初期設定(ST101)
本復号アルゴリズムは、更新処理回数を0回目として設定する。また、本復号アルゴリズムは、0回目の更新処理における全てのm、zに対する対数外部値比を以下のように設定する。ここでmは図1のように検査行列をサブ行列(サブブロック)で表したときの行番号を指す。またzはmによって選択されるサブ行列(サブブロック)を単位行列のサイクリックシフトに変換した際の行を示すインデクスである。
Figure 2012039371
また、本復号アルゴリズムは、全てのm、n、zに対して対数事前値比の符号を以下のように設定する。ここでnは図1のように検査行列をサブ行列(サブブロック)で表すときの列番号を指す。
Figure 2012039371
[3]i=1(ST102)
本復号アルゴリズムは、更新処理実施回数カウント用変数(以下、更新回数という)iを1にセットする。
[4]外部値初期化(ST103)
本復号アルゴリズムは、全てのm、zに対してi回目の更新処理における対数外部値比を以下のように設定する。
Figure 2012039371
[5]j=0(ST104)
本復号アルゴリズムは、復号順序を表す変数jを0にセットする。なお、復号順序jは、図2に示すように、部分行列(復号処理を施す列の集合)に付けた番号である。
[6]事前値の計算(列処理)(ST105)
まず、本復号アルゴリズムは、(i−1)回目の更新処理で求めた対数外部値比から、部分行列に対応した列処理への入力外部値eval(m、n、z)を全てのm、n、zに対して以下のように求める。
Figure 2012039371
Figure 2012039371
Figure 2012039371
但し、本復号アルゴリズムは、S(m,n)=「−」のとき、すなわち、S(m,n)が示すサブ行列がゼロ行列の場合、入力外部値を算出しない。但しS(m,n)は検査行列の第m行第n列サブ行列に対するサイクリックシフト量を表す。なお、サブ行列内インデクスが対数外部値比に対するインデクスz0と入力外部値に対するインデクスz1とで異なるのは、サブ行列のサイクリックシフトにより処理順序が入れ替わるためである。
以上のようにして得られた入力外部値と対数尤度比とを用いて、本復号アルゴリズムは、対数事前値比を求める。対数事前値比は、全てのm、n、zに対して式(8)のようにして求められる。
Figure 2012039371
式(8)において、Σは、サブ行列の行番号mを除くサブ行列に対して行われる。なお、式(8)において、0\mは、「行番号mを除く」を示す。さらに次回の更新処理における入力外部値eval(m、n、z)を生成するために、対数事前値比の符号が式(9)のように更新される。
Figure 2012039371
[7]外部値の計算(行処理)(ST106)
本復号アルゴリズムは、図2のように選択されたサブ行列の集合からなる部分行列に対して逐次行処理を行う。min−sum復号における行処理は最小値を探索する演算である。そこで、本復号アルゴリズムは、[6]において求めた対数事前値比とこれまでに求めた対数外部値比とを比較して、絶対値の最小値を探索し、探索した最小値を対数外部値比として更新する。
また、本復号アルゴリズムは、最小値探索において、前述の列処理用として、絶対値の最小値を与える列番号及び絶対値が2番目に小さい値(以降、第二値と呼ぶ)も求めておく。さらに、本復号アルゴリズムは、対数外部値比の符号も更新する。なお、これら行処理は、以下の式によって表される。
Figure 2012039371
Figure 2012039371
[8]j+=1(ST107)
本復号アルゴリズムは、復号順序jを1インクリメントする。
[9]j<=J(ST108)
本復号アルゴリズムは、jが最後の復号順序J以下であれば、[6]事前値の計算に戻って列処理を実行し、jがJを超えればループを抜ける。
[10]i+=1(ST109)
本復号アルゴリズムは、更新回数iを1インクリメントする。
[11]i<itmax(ST110)
本復号アルゴリズムは、更新回数iが最大更新回数itmaxより小さければ、[4]外部値初期化に戻って復号処理を再開する。一方、更新回数iが最大更新回数itmax以上であればループを抜ける。
[12]出力硬判定値の計算(ST111)
本復号アルゴリズムは、以下の式に従って全てのn、zに対し出力軟判定値を求める。
Figure 2012039371
対数事前値比を求める際、本復号アルゴリズムは、式(8)に示すように、復号対象の行番号mのサブ行列に対応するevalは加算しなかった。しかし、出力軟判定値の計算においては、本復号アルゴリズムは、復号対象の行番号mのサブ行列も考慮する。
本復号アルゴリズムは、得られた出力軟判定値の符号を用いて出力硬判定値を求める。なお、出力軟判定値の符号及び出力硬判定値は、対数尤度比の求め方に依存する。非特許文献1のように対数尤度比を求める場合、本復号アルゴリズムは、出力軟判定値の符号が正であれば復号結果として「0」を出力し、負であれば「1」を出力する。そして、本復号アルゴリズムは、情報ビットに対応する復号結果を復号ビットとして出力し、LDPC復号を終了する。
図4は、本実施の形態に係る復号器の要部構成を示すブロック図である。図4の復号器100は、LDPC検査行列を用いて誤り訂正復号を行う誤り訂正復号装置であり、図3に示すフローチャートに基づいてLDPC復号する。なお、図4は、一例として図1に示す検査行列に対応した復号器100の構成を表している。また、図4は、記載簡略化のため、サブ行列を処理単位として、復号器100の構成を記載している。
本実施の形態に係る復号器100は、尤度記憶部110、列処理行処理演算部120、及び、硬判定部180を有する。
列処理行処理演算部120は、外部値記憶部130−0〜130−7、行選択部140−0〜140−3、事前値生成部150−0〜150−3、列選択部160、及び、外部値更新部170−0〜170−7を有する。
図1の検査行列の部分行列(図2参照)は、サブ行列を単位とする8行×4列の行列である。すなわち、本復号アルゴリズムは、LDPC復号における行処理を、サブ行列8行をひとまとめとして行う。そのため、図4の復号器100は、外部値記憶部及び外部値更新部を8個有する構成となっている。また、本復号アルゴリズムは、LDPC復号における列処理を、サブ行列4列をひとまとめにして行う。そのため、図4の復号器100は、行列選択部及び事前値生成部を4個有する構成となっている。
なお、部分行列を構成する列数は、4に限られず、復号器100は、部分行列を構成する列数分だけ、行列選択部及び事前値生成部を有すればよい。部分行列を構成する列数が大きくなるほど、行列選択部及び事前値生成部が多く必要となるので、回路規模との兼ね合いにより、部分行列を構成する列数が設定されるようにする。
尤度記憶部110は、受信信号から求められる、LDPC符号ビットに対応する対数尤度比を記憶する。尤度記憶部110にLDPC符号全ビット分の対数尤度比が記憶されると、LDPC復号が開始される。
外部値記憶部130−k(k=0〜7)は、外部値更新部130−kから出力される対数外部値比を記憶する。なお、LDPC復号開始時、外部値記憶部130−k(k=0〜7)は、前記フローチャート「[2]初期設定」で述べたように、対数外部値比を初期化する。
外部値記憶部130−kは、記憶した対数外部値比を、行選択部140−0〜140−3に出力する。
行選択部140−r(r=0〜3)は、図2に示す復号順序jの部分行列#1−j(4列の復号単位)の列番号rの列において非零要素の行(サイクリックシフト量が記載された行)に対応する対数外部値比を選択し、出力する。例えば、行選択部140−0は、部分行列#1−0の列番号0の非零要素(第0、1、4、5行)に対応する対数外部値比を選択し、事前値生成部150−0に出力する。同様に、行選択部140−1は、部分行列#1−0の列番号1の非零要素(第2、3、6、7行)に対応する対数外部値比を選択し、事前値生成部150−1に出力する。行選択部140−2は、部分行列#1−0の列番号2の非零要素(第0、1、4、5行)に対応する対数外部値比を選択し、事前値生成部150−2に出力する。行選択部140−3は、部分行列#1−0の列番号3の非零要素(第2、3、6、7行)に対応する対数外部値比を選択し、事前値生成部150−3に出力する。
事前値生成部150−r(r=0〜3)は、行選択部140−rから入力された対数外部値比と、尤度記憶部110から入力された対数尤度比とを用いて、前記フローチャート「[6]事前値の計算(列処理)」に示すように対数事前値比を求める。
ここで、事前値生成部150−r(r=0〜3)は、部分行列#1−j(復号対象の列)の列番号rの列において非零要素の行に対応する対数事前値比を求める。例えば、事前値生成部150−0は、部分行列#1−0の列番号0の非零要素の行(第0、1、4、5行)に対応する対数事前値比を求め、求めた対数事前値比を列選択部160に出力する。同様に、事前値生成部150−1,150−2,150−3は、それぞれ部分行列#1−jの列番号1,2,3の非零要素に対応する対数事前値比を求め、求めた対数事前値比を列選択部160に出力する。
なお、式(8)に示したように、対数事前値比は、加算により求められる。そのため、事前値生成部150−r(r=0〜3)は、内部に加算器を有する。
ここで、事前値生成部150−3は、所定回数(itmax)だけ復号処理が行われた後、対数事前値比を硬判定部180に出力する。
列選択部160は、図2に示す復号順序jの部分行列#1−jの各行において、非零要素に対応する対数事前値比を選択する。例えば、列選択部160が、復号順序0の部分行列#1−0に関する復号処理を行う場合について考える。このとき、部分行列#1−0の第0行に関しては、列選択部160は、部分行列#1−0の列番号0,2に対応する対数事前値比を選択する。部分行列#1−0の第1行に関しては、列選択部160は、部分行列#1−0の列番号0,2に対応する対数事前値比を選択する。また、部分行列#1−0の第2行に関しては、列選択部160は、部分行列#1−0の列番号1,3に対応する対数事前値比を選択する。また、部分行列#1−0の第3行に関しては、列選択部160は、部分行列#1−0の列番号1,3に対応する対数事前値比を選択する。
このように、列選択部160は、復号対象jの部分行列#1−jの各行に関して、非零要素の列に対応する対数事前値比を選択し、選択した対数事前値比を外部値更新部170−k(k=0〜7)に出力する。
外部値更新部170−k(k=0〜7)は、前記フローチャート「[7]外部値の計算(行処理)」として、対数事前値比を用いて第k行に対応する対数外部値比を更新する。例えば、外部値更新部170−0は、部分行列#1−jの第0行に対応する対数外部値比を更新する。同様に、外部値更新部170−k(k=1〜7)は、部分行列#1−jの第k行に対応する対数外部値比を更新する。
なお、式(10−1)、(10−2)及び式(11−1)〜(11−4)に示したように、対数外部値比は、比較により求められる。そのため、外部値更新部170−k(k=0〜7)は、内部に比較器を有する。なお、比較器の数は、部分行列の行重み数分だけ必要となる。
硬判定部180は、所定回数(itmax)だけ復号処理が行われた後、事前値生成部150−3から出力される対数事前値比に対して硬判定を行って、硬判定値を復号ビットとして取得し、取得した復号ビットを出力する。
なお、図4に示す復号器100は、硬判定部180が、事前値生成部150−3から出力される対数事前値比に対して硬判定を行う構成を示したが、これに限られない。つまり、硬判定部180が、事前値生成部150−0,150−1,150−2のいずれかから出力される対数事前値比に対して硬判定を行う構成としてもよい。
以上のように構成された復号器100の動作について説明する。
LDPC符号ビットに対応する対数尤度比は、受信信号から求められ、尤度記憶部110に記憶される。LDPC符号全ビット分の対数尤度比が記憶されるとLDPC復号が開始される。LDPC復号開始時に、外部値記憶部130−k(k=0〜7)に記憶された対数外部値比及び事前値生成部150−r(r=0〜3)に記憶された対数事前値比の符号は、前記フローチャート「[2]初期設定」にあるように初期化される。
外部値記憶部130−k(k=0〜7)にて初期化された対数外部値比は、行選択部140−r(r=0〜3)に入力される。行選択部140−r(r=0〜3)は、図2に示す部分行列(4列の復号単位のうち)のr番目の列において、非零要素の行(サイクリックシフト量が記載された行)に対応する対数外部値比を選択し、出力する。
選択された対数外部値比は、事前値生成部150−r(r=0〜3)に入力される。事前値生成部150−r(r=0〜3)は、入力された対数外部値比と、尤度記憶部110から入力された対数尤度比とを用いて前記フローチャート「[6]事前値の計算(列処理)」に示すように対数事前値比を求める。求める対数事前値比は、復号対象の部分行列の列のうち非零要素の行に対応したものである。
事前値生成部150−r(r=0〜3)から出力された対数事前値比は、列選択部160に入力される。列選択部160は、図2に示す復号対象の4列から構成される部分行列に関して、各行の非零要素に対応する対数事前値比を選択し、出力する。例えば、復号順序0の部分行列#1−1に関する復号処理を行う場合、列選択部160は、第0行に関しては列番号0,2に対応する対数事前値比を選択し、出力する。同様に、列選択部160は、第1行に関しては列番号0,2に対応する対数事前値比を選択し、出力する。また、列選択部160は、第2行に関しては列番号1,3に対応する対数事前値比を選択し、出力する。このように、列選択部160は、復号対象の部分行列の各行に関して、非零要素の列に対応する対数事前値比を選択し、出力する機能を持つ。
列選択部160において選択された各行の非零要素に対応する対数事前値比は、外部値更新部170−k(k=0〜7)に入力される。外部値更新部170−k(k=0〜7)は、入力された対数事前値比を用いて、前記フローチャート「[7]外部値の計算(行処理)」に示すように各行に対応する対数外部値比を更新する。このように、外部値更新部170−k(k=0〜7)は、復号対象の部分行列の各行に対応する対数外部値比を更新する機能を有する。
以上の処理が、図2における復号順序jにおける復号処理、すなわち、部分行列#1−jに関する復号処理となる。復号順序jに関連する復号処理が終了すると、次の復号順序(j+1)に対応した部分行列に関する復号処理が開始される(フローチャート「[8],[9]」)。
このように、復号器100は、復号順序jに対応した復号処理を行い、対数外部値比を更新する。最後の復号順序J(図2では復号順序J=3)が完了すると、外部値更新部170−k(k=0〜7)は、更新した対数外部値比を出力する。出力された対数外部値比は、外部値記憶部130−k(k=0〜7)に入力される。外部値記憶部130−k(k=0〜7)は、最後の復号順序Jにおいて更新された対数外部値比を記憶する。復号器100は、前記更新された対数外部値比を用いて再度同様の復号処理を行う(フローチャート「[10]、[11]」)。
そして、復号器100は、前記復号処理の繰り返しを所定回数(itmax回)行う。所定回数の復号処理後、前記フローチャート「[12]出力硬判定値の計算」に示すように、事前値生成部150−3は、出力軟判定値を求め、求めた出力軟判定値を出力する。
硬判定部180は、入力された軟判定値から硬判定値を求め、復号ビットとして出力する。
このように、本実施の形態では、復号器100は、部分行列ごとに復号を行う。このとき、外部値更新部170−k(k=0〜7)に入力される対数事前値比の数は、部分行列の行重みと同数となる。したがって、行重みが最小となるように検査行列を分割して部分行列を形成することにより、外部値更新部170−k(k=0〜7)に入力される対数事前値比の数を最小にすることができる。これにより、フローチャート「[7]外部値の計算(行処理)」における最小値探索、第二値探索への入力数が最小となり、この結果、外部値更新部170−k(k=0〜7)を構成する比較器の数を最小化することができる。
以上、複数の符号化率のうち、任意に選択された符号化率(以下、第1符号化率という)に対応するLDPC復号アルゴリズム及び復号器の構成について説明した。次に、第1符号化率より符号化率が大きい第2符号化率に対応するLDPC復号アルゴリズム及び復号器について説明する。
図5は、第2符号化率の検査行列(以下、第2検査行列と呼ぶ)を示す図である。なお、図5の第2検査行列は、符号化率5/8(R=5/8)の検査行列である。符号化率は(列数−行数)/(列数)によって決まる値で、第2検査行列は6行16列のサブ行列集合からなるため、第2検査行列によって定義されるLDPC符号の符号化率は(16−6)/16=5/8となる。ここで、第2符号化率の検査行列には、列重みが第1符号化率の検査行列(以下、第1検査行列と呼ぶ)の列重み以下の検査行列を用いる(図1及び図5参照)。換言すると、回路共用化の元となる第1符号化率の検査行列には、列重みが最大となる検査行列を用いる。
列重みは、検査行列における各列に存在する要素「1」の最大個数を表す。例えば、図1に示す第1検査行列の列重みは4であり、図5に示す第2検査行列の列重みも4であり、第2検査行列の列重みは、第1検査行列の列重み以下である。
以下では、回路共有化の元となる検査行列に第1検査行列を用いる場合に、第2検査行列を用いた復号を行う場合を例に説明する。すなわち、以下では、第1検査行列に対応する復号器100を基本構成に用いて、回路共用化を図りつつ、第2検査行列に対応する復号を行う場合について説明する。
回路の共有化を図るため、図1の第1検査行列に対応すると同様に、図5の第2検査行列に対応する復号アルゴリズムは、第2検査行列の任意の列を組み合わせて得られる部分行列を処理単位として復号処理を行う。以下、第1検査行列の部分行列を第1部分行列と呼び、第2検査行列の部分行列を第2部分行列と呼ぶ。
上述したように、事前値生成部150は、部分行列の列数分だけ必要となる。そこで、本実施の形態では、回路規模の増大を抑圧し、複数の符号化率に対応して復号するために、第2部分行列を構成する列数を、第1部分行列を構成する列数と同数とする。これにより、事前値生成部150−r(r=0〜3)は、第1符号化率及び第2符号化率の双方に対応することができる。
図6は、図5の第2検査行列を4列数ずつに分割した第2部分行列を示す図である。図6に示すように、第2検査行列から列番号{0、1、2、3}が選択されて第2部分行列#2−0が形成されている。また、第2検査行列から列番号{4、5、6、7}が選択されて第2部分行列#2−1が形成されている。また、第2検査行列から列番号{8、9、10、11}が選択されて第2部分行列#2−2が形成されている。また、第2検査行列から列番号{12、13、14、15}が選択されて第2部分行列#2−3が形成されている。このように、第2部分行列の列数が共有化元の第1部分行列の列数と同じ場合、事前値生成部150−r(r=0〜3)は、第1符号化率及び第2符号化率の双方に対応することができる。
また、上述したように、外部値更新部170−k(k=0〜7)は、部分行列の行重み数分の比較器が必要となる。
しかし、図6に示すように、第2部分行列#2−0の第0行の第0列、第1列、第2列、第3列には、行重みを有するサブ行列である非零要素「10」、「14」、「18」、「21」が、それぞれ、配置されている。そのため、第1部分行列の行重みは2であるのに対し、第2部分行列#2−0の第0行の行重みは4である。
したがって、第1及び第2部分行列の双方に対応するためには、外部値更新部170−k(k=0〜7)は、4個の比較器を有する必要がある。しかし、比較器の数が増えるほど、回路規模が増大する。
そこで、本実施の形態では、外部値更新部170−k(k=0〜7)への入力数が第1部分行列を用いる場合と同数以下となるように、第2部分行列において行重みを有するサブ行列(すなわち、非零要素)を分散させる。具体的には、第2検査行列の行数を拡張し、拡張した行に第2部分行列のうち、行重みが大きい行の非零要素を配置して、行重みを分散させる。
例えば、第2部分行列#2−0の第0行の第0列の非零要素「10」と、第2部分行列#2−0の第0行の第1列の非零要素「14」とを、異なる行に分散させる。このとき、図7に示すように、第0行を第0−0行と第0−1行とに分散して、第0行の第0列の非零要素「10」が第0−0行に含まれるように配置し、また、第0行の第0列の非零要素「14」が第0−1行に含まれるように配置する。
このようにして、第2検査行列の行数を拡張し、拡張した行に第2部分行列のうち行重みが大きい行の非零要素を配置することにより、行重みが分散される。図7には、第2検査行列の第0行の第0列の非零要素「10」と第1列の非零要素「14」とが、それぞれ、第0−0行、第0−1行に含まれるよう分散された例が示されている。
以下、第2検査行列の行数を拡張し、拡張した行に第2部分行列のうち、行重みが大きい行の非零要素を配置して得られる検査行列を、分散検査行列と呼ぶ。なお、分散検査行列の行数は、共用化元となる第1検査行列の行数以下とする。
図8は、分散後の検査行列(分散検査行列)から復号対象の列を選択した後の部分行列を表す。第2検査行列を分散して分散検査行列を生成し、分散検査行列から復号対象の列数だけ列を選択して第2符号化率に対応する部分行列(以下、分散部分行列という)を生成することにより、復号対象の部分行列の行重みを小さくすることができる。
例えば、分散後の分散部分行列#2−0の行重みは2となり、分散前の第2部分行列の行重み4より小さくすることができる。
なお、上述したように、本実施の形態では、第1及び第2の符号化率にそれぞれ対応する第1及び第2検査行列のうち、列重みが最大となる第1検査行列を、回路共用化の元となる検査行列(図1参照)に用いる。つまり、第1部分行列(共用化元の第1検査行列の部分行列)のある列に含まれる非零要素の数は、第2部分行列のある列に含まれる非零要素の数以上となる。これにより、共用化対象の第2検査行列(図5参照)の行数を拡張して行重みを分散する場合に、復号対象となる分散部分行列の行重みを、共用化元の第1部分行列の行重み以下にすることができる。
図9は、第2検査行列に対応した復号処理のフローチャートを示す図である。なお、図9において、図3と同じ処理ステップでは、本復号アルゴリズムは、第1部分行列に代えて分散部分行列を用いて同様の処理を行う。
[13]階層結合処理:ST201
本復号アルゴリズムは、第2検査行列に対応した復号アルゴリズムとするために、ST108の後段で、階層結合処理を追加する。本復号アルゴリズムでは、図5に示す検査行列を図7に示す検査行列へと行列要素を分散させている。従って第2検査行列に対応するためには、元となる図5の検査行列を用いて復号した場合に得られる対数外部値比と同じ値を求める必要がある。図7の分散検査行列から前記同じ値の対数外部値比を求めるためには、分散した2つの行に対応する対数外部値比のうち小さいほうを選択し出力するという処理が必要となる。これを階層結合処理と定義し、以下の式に処理内容を示す。
Figure 2012039371
上記階層結合処理は、最大更新回数itmaxの最後の復号順序Jにおける列処理及び行処理が終了した後(ST108:NO)に行われる。
以上、第2検査行列に対応する復号アルゴリズムについて説明した。
次に、第1符号化率及び第2符号化率に対応可能な復号器の構成について説明する。
図10は、本実施の形態に係る復号器の要部構成を示すブロック図である。なお、図10において、図4と共通する構成部分には、図4と同一の符号を付して説明を省略する。図10の復号器100Aは、基本構成とする図4の復号器100に対して、列処理行処理演算部120に代えて、列処理行処理演算部120Aを有する。
列処理行処理演算部120Aは、外部値記憶部130A−0〜130A−7、行選択部140A−0〜140A−3、事前値生成部150A−0〜150A−3、列選択部160A、外部値更新部170A−0〜170A−7、及び、階層結合部190を有する。
行選択部140A−0〜140A−3は、入力される設定符号化率の情報に応じて、用いる部分行列を第1部分行列又は分散部分行列のいずれか一方に設定する点が、行選択部140−0〜140−3と異なる。部分行列を設定すると、以降、行選択部140A−0〜140A−3は、行選択部140−0〜140−3と同様に、用いる部分行列の非零要素に対応した対数外部値比を選択し、出力する。このようにして、行選択部140A−0〜140A−3は、異なる符号化率に対応して行処理を行う。
事前値生成部150A−0〜150A−3は、入力される設定符号化率の情報に応じて、用いる部分行列を第1部分行列又は分散部分行列のいずれか一方に設定する点が、事前値生成部150−0〜150−3と異なる。部分行列を設定すると、以降、事前値生成部150A−0〜150A−3は、事前値生成部150−0〜150−3と同様に、用いる部分行列のサイクリックシフト量に応じて対数事前値比のシフト(並べ替え)を行い、出力する。このようにして、行選択部140A−0〜140A−3は、異なる符号化率に対応して対数外部値比を出力する。
なお、事前値生成部150−0〜150−3と同様に、事前値生成部150A−0〜150A−3は、加算器を有し、加算器を用いて対数事前値比を算出する。上述したように、第1部分行列及び分散部分行列は、同数列から構成されるので、復号器100Aは、事前値生成部を第1部分行列の列数分だけ有していればよい。そのため、加算器より構成される事前値生成部150A−0〜150A−3は、異なる符号化率に対して共用化可能となる。
列選択部160Aは、入力される設定符号化率の情報に応じて、用いる部分行列を第1部分行列又は分散部分行列のいずれか一方に設定する点が、列選択部160と異なる。部分行列を設定すると、以降、列選択部160Aは、列選択部160と同様に、用いる部分行列の非零要素に対応した対数事前値比を選択し、出力する。このようにして、列選択部160Aは、異なる符号化率に対して列処理を行う。
外部値更新部170A−0〜170A−7は、入力される設定符号化率の情報に応じて、用いる部分行列を第1部分行列又は分散部分行列のいずれか一方に設定する点が、外部値更新部170−0〜170−7と異なる。部分行列を設定すると、以降、外部値更新部170A−0〜170A−7は、外部値更新部170−0〜170−7と同様に、対数事前値比を用いて各行に対応する対数外部値比を更新する。このようにして、外部値更新部170A−0〜170A−7は、異なる符号化率に対応して対数外部値比を更新する。
なお、分散後の検査行列(分散検査行列)の行重みは、共用化元の検査行列(第1検査行列)の行重み以下となっている。よって、外部値更新部170A−0〜170A−7への入力数は、共用化元の検査行列の行重みの数以下となるので、外部値更新部170A−0〜170A−7は、異なる符号化率に対して行処理を行うことができる。すなわち、外部値更新部170A−0〜170A−7を構成する比較器は、異なる符号化率に対して共用化可能となる。
階層結合部190には、外部値更新部170A−0〜170A−7から出力された対数外部値比が入力される。階層結合部190は、入力された対数外部値比を用いて式(13−1)〜(13−4)に示す演算を行う。階層結合部190は、式(13−1)〜(13−4)に示す演算を行うことにより、分散前の第2検査行列に対応した対数外部値比を求める。
なお、式(13−1)〜(13−4)に示したように、第2検査行列に対応した対数外部値比は、比較により求められる。そのため、階層結合部190は、内部に比較器を有する。
階層結合部190は、分散前の第2検査行列の行に対応する対数外部値比を、分散後の分散検査行列の行に対応する対数外部値比として分配し、分配後の対数外部値比を外部値記憶部130A−0〜130A−7に出力する。
外部値記憶部130A−0〜130A−7は、階層結合部190から出力された対数外部値比を記憶する。
以上のように、本実施の形態において、復号器100Aは、複数の符号化率から設定された設定符号化率でLPDC符号化された符号化ビットを、設定符号化率に対応する検査行列に基づいて復号する復号器である。そして、列処理行処理演算部120Aは、尤度と、設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する。具体的には、設定符号化率が第1の符号化率の場合、列処理行処理演算部120Aは、第1の符号化率に対応する第1検査行列から、列処理における復号対象の列数に応じて選択して組み合わせた第1の部分行列を用いる。ここで、列処理における復号対象の列数とは、1以上の列であり、回路規模を考慮して設定される。一方、設定符号化率が第2の符号化率の場合、列処理行処理演算部120Aは、第2の符号化率に対応する第2検査行列に応じた分散検査行列から第1の部分行列が構成される列数と同数の列を選択して組み合わせた分散部分行列を用いる。ここで、第2の符号化率は、第1の符号化率より大きい符号化率である。
ここで、分散検査行列は、第2検査行列の行数を拡張して、第2検査行列のうち行重みが大きい行の要素が、当該行と拡張した行とに分散して配置された行列である。このとき、列処理行処理演算部120Aは、行重みが第1の部分行列の行重み以下となる分散部分行列を用いる。
これにより、外部値更新部170A−k(k=0〜7)に入力される対数事前値比の数が、設定符号化率に関わらず、第1部分行列の行重み数以下となる。この結果、外部値更新部170A−k(k=0〜7)を構成する比較器を、異なる符号化率(第1符号化率及び第2符号化率)で共有化することができる。
また、本実施の形態では、第1検査行列及び分散検査行列を第1部分行列及び分散部分行列に分割し、分割した第1部分行列及び分散部分行列を処理単位として、列処理が行われる。ここで、分散部分行列の列数は第1部分行列の列数と同数とする。これにより、事前値生成部150A−m(m=0〜3)は、設定符号化率に関わらず、第1部分行列及び分散部分行列を構成する列数分だけ必要となる。すなわち、加算器を用いて構成される事前値生成部150A−m(m=0〜3)を、異なる符号化率で共有化することができる。
また、外部値記憶部130A−k(k=0〜7)には、第1検査行列を構成する行数と同数の対数事前値比が入力される。そのため、分散検査行列の行数を第1検査行列の行数以下とすることにより、外部値記憶部130A−k(k=0〜7)を、異なる符号化率で共有化することができる。
このように、本実施の形態によれば、対数外部値比の記憶装置(外部値記憶部)、対数事前値比を演算するための加算器(事前値生成部)、対数外部値比を更新するための比較器(外部値更新部)を共用化することができる。
なお、図10に示す復号器100Aは、外部値更新部170A−k(k=0〜7)の後段に階層結合部190を含む構成を採る。無線LANシステム或いは携帯電話システムにおける1対1のデータ通信モードの場合、受信機は受信データを復号後、規定時間内に送信機へと確認応答を返信しなければならない。従って、規定時間内での確認応答返信のため、復号に要する処理時間は少なくとも規定時間より短くなければならない。そのため、外部値更新部170A−k(k=0〜7)の後段に階層結合部190を設けた図10に示す復号器100Aの構成は、復号処理時間を短くする用途に適している。
一方で、放送システム或いは1対多のマルチキャストデータ通信モードにおいては、受信機が送信機に対して確認応答を返信する必要がない。すなわち、復号に要する処理遅延に対する制限はない。このような場合、階層結合部190を独立して設けず、図11に示す復号器100Bのように、列処理行処理演算部120Bにおいて、外部値更新部170B−k(k=0〜7)が、対数外部値比の更新に加えて、階層結合処理を行うようにしてもよい。
上述したように、外部値更新部及び階層結合部は、比較器を用いて構成される。そのため、外部値更新部の比較器を階層結合処理にも用いることができる。このようにして、階層結合部を構成する比較器と外部値更新部を構成する比較器との共用化を図ることにより、復号器100Bの回路規模を削減することが可能となる。
以下、図10及び図11に示す構成を採る復号器100A,100Bにおける復号処理について、図12及び図13に示すタイムチャートを用いて説明する。
図12は、図10に示す復号器100Aにおける復号処理のタイムチャートを表した図である。図12は、一例として外部値更新部170A−0,170A−1における処理を示している。
外部値更新部170A−0,170A−1は、図8に示す復号順序の順に、外部値更新を行う。3番目の復号順序における外部値更新が完了した時点で、図7に示す分散検査行列全体に対するi回目の復号処理が完了したことになる。外部値更新が完了すると同時に、階層結合部190は、外部値更新部170A−0,170A−1が出力する対数外部値比を用いて階層結合処理を行う。階層結合部190は、階層結合後の対数外部値比を外部値記憶部130A−0,130A−2にフィードバックする。フィードバックが完了すると、i+1回目の復号処理が開始する。
図10に示す復号器100Aは、階層結合部190を外部値更新部170A−1〜170A−7とは独立して有している。よって、外部値更新部170A−1〜170A−7が、外部値更新処理を完了すると同時に、階層結合部190は階層結合処理を行うことができる。これにより、反復復号処理における1回の復号処理にかかる処理サイクル数を最小にすることができる。図12に示すように、階層結合部190を独立して有する場合、1回の復号処理におけるサイクル数は4となる。
一方、図13は、図11に示す復号器100Bにおける復号処理のタイムチャートを表した図である。図12と対比するため、図13は、外部値更新部170B−0,170B−1における処理を示している。なお、外部値更新部170B−0,170B−1が、分散検査行列のうち、行重みが分散された行に対する対数外部値比を算出する場合について説明する。
外部値更新部170B−0,170B−1は、図8に示す復号順序の順に、外部値更新を行う。3番目の復号順序における外部値更新が完了し、i回目の復号処理が完了すると、次の処理サイクルにおいて階層結合処理を行う。外部値更新部170B−0,170B−1は、階層結合処理を完了させると、得られた対数外部値比を外部値記憶部130A−0,130A−2にフィードバックする。フィードバックが完了すると、i+1回目の復号処理が開始する。
図11において、外部値更新部170B−1は3番目の復号順序において更新した対数外部値比を外部値更新部130A−0に出力する。更に、外部値更新部170B−0は、3番目の復号順序において更新した対数外部値比と、外部値更新部170B−1から入力された対数外部値比とを用いて、式(13−1)〜(13−4)に示す階層結合処理を行う。
なお、分散検査行列を形成する際に、行重みが分散された行が複数ある場合には、当該行に対する対数外部値を算出する外部値更新部170B−p,170B−(p+1)が(pは、正の偶数)、外部値更新部170B−0,170B−1と同様に、階層結合処理を行う。
そして、外部値更新部170B−0,170B−1は、階層結合により得た対数外部値比を、分散後の行に対応する対数外部値比に分配し、各外部値更新部170B−0,170B−1は、分配した対数外部値比を外部値記憶部130A−0,130A−1に出力する。
このように、図11に示す復号器100Bは、階層結合部190を別途設けず、外部値更新部170B−k(k=0〜7)を構成する比較器を用いて階層結合処理を行う。この場合、図13に示すように、1回の復号処理に要する処理サイクル数は5となる。この結果、図10に示すように、階層結合部190を外部値更新部170A−k(k=0〜7)とは独立して有する構成を採る場合より、復号処理サイクル数が増加する。しかし、階層結合処理に要する比較器を外部値更新部170B−k(k=0〜7)が保持する比較器と共用化することができるため、復号器100Aに比べ、復号器100Bの回路規模を削減することができる。
このように、図10の復号器100Aは、復号処理時間を短くする用途に適しており、例えば1対1のデータ通信モードに適した構成となっている。一方、図11の復号器100Bは、復号処理時間が若干長くなるものの、更に回路規模を小さくすることができ、例えば放送システム或いは1対多のマルチキャストデータ通信モードに適した構成となっている。
本発明に係る誤り訂正復号装置及び誤り訂正復号方法は、LDPC符号を適用した通信装置等に有用である。また、放送受信装置或いは記憶メディア等にも応用できる。
100,100A,100B 復号器
110 尤度記憶部
120,120A,120B 列処理行処理演算部
130−0〜130−7,130A−0〜130A−7 外部値記憶部
140−0〜140−3,140A−0〜140A−3 行選択部
150−0〜150−3,150A−0〜150A−3 事前値生成部
160,160A 列選択部
170−0〜170−7,170A−0〜170A−7,170B−0〜170B−7 外部値更新部
180 硬判定部
190 階層結合部

Claims (10)

  1. 複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列に基づいて復号する誤り訂正復号装置であって、
    前記符号化ビットを受信して得られる尤度を記憶する記憶手段と、
    前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出する演算手段と、
    前記軟判定値を用いて復号ビットを判定する判定手段と、を具備し、
    前記演算手段は、
    前記設定符号化率が第1の符号化率の場合、前記部分行列として、前記列処理における復号対象の列数に応じて、前記第1の符号化率に対応する第1の検査行列から、任意の列を選択して組み合わせた第1の部分行列を用い、前記設定符号化率が前記第1の符号化率より符号化率が大きい前記第2の符号化率の場合、前記部分行列として、前記第2の符号化率に対応する第2の検査行列に応じた分散検査行列から、前記第1の部分行列が構成される列数に応じて、任意の列を選択して組み合わせた分散部分行列を用い、前記分散検査行列は、前記第2の検査行列の行数を拡張して、前記第2の検査行列のうち前記第2の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である、
    誤り訂正復号装置。
  2. 前記演算手段は、前記分散部分行列として、行重みが前記第1の部分行列の行重み以下の行列を用いる、
    請求項1に記載の誤り訂正復号装置。
  3. 前記演算手段は、前記分散部分行列として、列数が前記第1の部分行列の列数と同数の行列を用いる、
    請求項1に記載の誤り訂正復号装置。
  4. 前記第1の部分行列は、前記第1の部分行列の行重みが最小となるように、前記第1の部分行列の列数に応じて前記第1の検査行列から選択される列から構成される、
    請求項1に記載の誤り訂正復号装置。
  5. 前記第1の検査行列は、前記第2の検査行列より列重みが大きい、
    請求項1に記載の誤り訂正復号装置。
  6. 前記演算手段は、
    対数外部値比を出力する外部値記憶手段と、
    設定符号化率に応じて、前記第1部分行列又は前記分散部分行列に対応する前記対数外部値比を設定する行設定手段と、
    前記設定符号化率及び設定された前記対数外部値比に応じて、対数事前値比を生成し並べ替える事前値生成手段と、
    前記設定符号化率に応じて、前記第1部分行列又は前記分散部分行列に対応する前記対数事前値比を設定する列設定手段と、
    設定された前記対数事前値比に応じて、前記対数外部値比を更新する外部値更新手段と、
    前記対数事前値比に基づいて復号ビットを判定する硬判定手段と、を具備する、
    請求項1に記載の誤り訂正復号装置。
  7. 前記外部値更新手段の入力数は、前記第1の部分行列の行重みの数以下である、
    請求項6に記載の誤り訂正復号装置。
  8. 前記演算手段は、
    前記設定符号化率が前記第2の符号化率の場合、前記分散検査行列を構成する全ての前記分散部分行列を用いた前記列処理及び行処理が終了した時点で、更新された前記対数外部値比を合成する結合手段、を更に具備する、
    請求項6に記載の誤り訂正復号装置。
  9. 前記外部値更新手段は、
    前記設定符号化率が前記第2の符号化率の場合、更に、前記分散検査行列を構成する全ての前記分散部分行列を用いた前記列処理及び行処理が終了した時点で、更新された前記対数外部値比を合成する、
    請求項6に記載の誤り訂正復号装置。
  10. 複数の符号化率から設定された設定符号化率で低密度パリティ検査符号化された符号化ビットを、前記設定符号化率に対応する検査行列に基づいて復号する誤り訂正復号方法であって、
    前記符号化ビットを受信して得られる尤度を記憶し、
    前記尤度と、前記設定符号化率に対応する検査行列に応じた部分行列とを用いて、列処理及び行処理を反復して軟判定値を算出し、
    前記軟判定値を用いて復号ビットを判定する方法であり、
    前記設定符号化率が第1の符号化率の場合、前記部分行列として、前記第1の符号化率に対応する第1の検査行列から、前記列処理における復号対象の列数に応じて選択して組み合わせた第1の部分行列を用い、
    前記設定符号化率が前記第1の符号化率より符号化率が大きい前記第2の符号化率の場合、前記部分行列として、前記第2の符号化率に対応する第2の検査行列に応じた分散検査行列から、前記第1の部分行列が構成される列数に応じて選択して組み合わせた分散部分行列を用い、
    前記分散検査行列は、前記第2の検査行列の行数を拡張して、前記第2の検査行列のうち前記第2の検査行列の行重みが大きい行の要素が当該行と拡張した行とに分散して配置された行列である、
    誤り訂正復号方法。

JP2010177538A 2010-08-06 2010-08-06 誤り訂正復号装置及び誤り訂正復号方法 Expired - Fee Related JP5485069B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010177538A JP5485069B2 (ja) 2010-08-06 2010-08-06 誤り訂正復号装置及び誤り訂正復号方法
US13/814,219 US8996965B2 (en) 2010-08-06 2011-08-03 Error correcting decoding device and error correcting decoding method
CN201180038008.1A CN103069720B (zh) 2010-08-06 2011-08-03 纠错解码装置及纠错解码方法
EP11814289.2A EP2602938A4 (en) 2010-08-06 2011-08-03 DEVICE AND METHOD FOR ERROR CORRECTION DECODING
PCT/JP2011/004396 WO2012017652A1 (ja) 2010-08-06 2011-08-03 誤り訂正復号装置及び誤り訂正復号方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010177538A JP5485069B2 (ja) 2010-08-06 2010-08-06 誤り訂正復号装置及び誤り訂正復号方法

Publications (2)

Publication Number Publication Date
JP2012039371A true JP2012039371A (ja) 2012-02-23
JP5485069B2 JP5485069B2 (ja) 2014-05-07

Family

ID=45559173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010177538A Expired - Fee Related JP5485069B2 (ja) 2010-08-06 2010-08-06 誤り訂正復号装置及び誤り訂正復号方法

Country Status (5)

Country Link
US (1) US8996965B2 (ja)
EP (1) EP2602938A4 (ja)
JP (1) JP5485069B2 (ja)
CN (1) CN103069720B (ja)
WO (1) WO2012017652A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013140727A1 (ja) * 2012-03-19 2013-09-26 パナソニック株式会社 復号装置
JP2013251864A (ja) * 2012-06-04 2013-12-12 Panasonic Corp 復号装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566667B2 (en) * 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US8762798B2 (en) 2011-11-16 2014-06-24 Stec, Inc. Dynamic LDPC code rate solution
KR102019893B1 (ko) * 2013-07-22 2019-09-09 삼성전자주식회사 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
TWI541820B (zh) * 2014-07-10 2016-07-11 群聯電子股份有限公司 解碼方法、記憶體控制電路單元及記憶體儲存裝置
US10268539B2 (en) * 2015-12-28 2019-04-23 Intel Corporation Apparatus and method for multi-bit error detection and correction
JP6907700B2 (ja) * 2017-05-23 2021-07-21 富士通株式会社 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム
JP6789446B2 (ja) * 2018-05-29 2020-11-25 三菱電機株式会社 送信機、受信機、通信システム、符号化率の変更方法、制御回路およびプログラム
CN109379087B (zh) * 2018-10-24 2022-03-29 江苏华存电子科技有限公司 Ldpc根据闪存组件错误率调变核编译码速率的方法
US12476655B2 (en) * 2023-10-04 2025-11-18 Realtek Singapore Private Limited Low-density parity check decoder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007110265A (ja) * 2005-10-11 2007-04-26 Samsung Electronics Co Ltd 復号装置および復号方法
JP2009021676A (ja) * 2007-07-10 2009-01-29 Sony Corp 符号化方法および符号化装置
JP2009060453A (ja) * 2007-08-31 2009-03-19 Panasonic Corp 復号方法、復号装置、インタリーブ方法及び送信装置
WO2011062111A1 (ja) * 2009-11-17 2011-05-26 三菱電機株式会社 誤り訂正方法および装置ならびにそれを用いた通信システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5181207A (en) * 1988-04-14 1993-01-19 Harris Corp. Error correction mechanism using pattern predictive error correction codes
US6628723B1 (en) * 1999-10-15 2003-09-30 Cisco Technology Coding rate reduction for turbo codes
GB0004765D0 (en) * 2000-03-01 2000-04-19 Mitel Corp Soft-decision decoding of convolutionally encoded codeword
WO2001076079A2 (en) * 2000-04-04 2001-10-11 Comtech Telecommunication Corp. Enhanced turbo product code decoder system
EP1686694A3 (en) * 2001-01-31 2006-12-13 Matsushita Electric Industrial Co., Ltd. Decoding devices and decoding method f
US7224743B2 (en) * 2003-04-24 2007-05-29 Northrop Grumman Corporation Efficient decoding of trellis coded modulation waveforms
JP2007215089A (ja) 2006-02-13 2007-08-23 Fujitsu Ltd 復号装置及び復号方法
JP5215537B2 (ja) * 2006-06-28 2013-06-19 三星電子株式会社 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法
JP4618293B2 (ja) * 2007-12-12 2011-01-26 住友電気工業株式会社 復号装置及び検査行列生成方法
JP2010177538A (ja) 2009-01-30 2010-08-12 Fujitsu Semiconductor Ltd 半導体装置の製造方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007110265A (ja) * 2005-10-11 2007-04-26 Samsung Electronics Co Ltd 復号装置および復号方法
JP2009021676A (ja) * 2007-07-10 2009-01-29 Sony Corp 符号化方法および符号化装置
JP2009060453A (ja) * 2007-08-31 2009-03-19 Panasonic Corp 復号方法、復号装置、インタリーブ方法及び送信装置
WO2011062111A1 (ja) * 2009-11-17 2011-05-26 三菱電機株式会社 誤り訂正方法および装置ならびにそれを用いた通信システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6013041022; HYeong-Gun Joo, et al.: 'NEW CONSTRUCTION OF RATE-COMPATIBLE BLOCK-TYPE LOW-DENSITY PARITY-CHECK CODES USING SPLITTING' 2006 IEEE 17th International Symposium on Personal pp.1-5, 20060911, Indoor and Mobile Radio Communications *
JPN6013041023; Hyeong-Gun Joo, et al.: 'Design of Rate-Compatible RA-Type Low-Density Parity-Check Codes Using Splitting' IEEE Transactions on Communications pp.3524-3528, 200912 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013140727A1 (ja) * 2012-03-19 2013-09-26 パナソニック株式会社 復号装置
US9141470B2 (en) 2012-03-19 2015-09-22 Panasonic Corporation Decoding device
JP2013251864A (ja) * 2012-06-04 2013-12-12 Panasonic Corp 復号装置

Also Published As

Publication number Publication date
JP5485069B2 (ja) 2014-05-07
WO2012017652A1 (ja) 2012-02-09
EP2602938A1 (en) 2013-06-12
CN103069720A (zh) 2013-04-24
US20130139038A1 (en) 2013-05-30
EP2602938A4 (en) 2013-09-25
CN103069720B (zh) 2016-11-23
US8996965B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
JP5485069B2 (ja) 誤り訂正復号装置及び誤り訂正復号方法
JP5442024B2 (ja) 誤り訂正符号化方法および装置ならびにそれを用いた通信システム
CN111162797A (zh) 一种速率兼容的5g ldpc码的编码装置及编码方法
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
EP2951925B1 (en) Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength
JP2014180034A (ja) パリティチェックデコーダで使用するノードプロセサ
KR20160122261A (ko) 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치
JP2007295564A (ja) 低密度のパリティ検査コードを用いた復号器
KR101227264B1 (ko) Ldpc 코드용 디코더
CN116054844B (zh) 校验矩阵构造方法、系统、电子设备及计算机存储介质
JP2007089064A (ja) 復号装置および受信装置
US9037938B2 (en) Hardware architecture and implementation of low power layered multi-level LDPC decoder
Han et al. Implementation of IEEE 802.11 n LDPC codes based on general purpose processors
KR20090063948A (ko) 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
CN115102556B (zh) 构建基矩阵的方法及处理装置、存储介质
JP5790029B2 (ja) 復号装置、復号方法、およびプログラム
JP4917023B2 (ja) 誤り訂正符号化装置
JP4645645B2 (ja) 復号装置及び検査行列生成方法
Ren et al. The design and implementation of high-speed codec based on FPGA
Boncalo et al. Cost-efficient FPGA layered LDPC decoder with serial AP-LLR processing
JP2015103866A (ja) 誤り訂正符号方法及びシステム
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
JP2006050622A (ja) 低密度パリティチェック行列の生成装置及びその方法
WO2023272768A1 (en) Low-latency segmented quasi-cyclic low-density parity-check (qc-ldpc) decoder
HK40077490A (en) Low-latency segmented quasi-cyclic low density parity-check (qc-ldpc) decoder

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131010

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140219

R151 Written notification of patent or utility model registration

Ref document number: 5485069

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees