JP4627317B2 - 通信装置および復号方法 - Google Patents

通信装置および復号方法 Download PDF

Info

Publication number
JP4627317B2
JP4627317B2 JP2007524684A JP2007524684A JP4627317B2 JP 4627317 B2 JP4627317 B2 JP 4627317B2 JP 2007524684 A JP2007524684 A JP 2007524684A JP 2007524684 A JP2007524684 A JP 2007524684A JP 4627317 B2 JP4627317 B2 JP 4627317B2
Authority
JP
Japan
Prior art keywords
processing
row
column
llr
row processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007524684A
Other languages
English (en)
Other versions
JPWO2007007801A1 (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 JPWO2007007801A1 publication Critical patent/JPWO2007007801A1/ja
Application granted granted Critical
Publication of JP4627317B2 publication Critical patent/JP4627317B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/112Soft-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 with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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/6561Parallelized implementations
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Landscapes

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

Description

本発明は、ディジタル通信における誤り訂正技術に関するものであり、特に、LDPC(Low-Density Parity Check)符号化された信号を復号する受信側の通信装置およびその復号方法に関するものである。
LDPC符号を復号する基本的なアルゴリズムとして、「Sum-Productアルゴリズム」と「Min-Sumアルゴリズム」があり、これらは、受信信号の確率的な信頼度情報である対数尤度比(LLR:Log Likelihood Ratio)を算出しながら繰り返し演算を行うことにより復号処理を行う(非特許文献1参照)。上記「Sum-Productアルゴリズム」は、復号性能は高いが、数学関数を用いた演算が要求されるため、テーブルを保持する必要が生じるなど実装するには計算コストが高い。また、少なくとも“0”,“1”の2元の検査行列に含まれる“1”の数の分だけ中間値を記憶するメモリが必要である。一方、「Min-Sumアルゴリズム」は、数学関数を必要とせず、計算コストは小さくなるが、復号性能が劣化する。
ここで、上記「Sum-Productアルゴリズム」について説明する。まず、送信機側では、M行×N列のパリティ検査行列Hを用いて送信データをLDPC符号化し、符号語c=(c1,c2,…,cN)、cn=0,1を生成する(n=1,2,…,N)。そして、この符号語cに対して、たとえば、BPSK(Binary Phase Shift Keying)変調等の変調処理を実行し、変調信号x=(x1,x2,…,xN)を送信する。
一方、受信機側では、加法性白色ガウス通信路(Additive White Gaussian Noise Channel:AWGN通信路)経由で、下記(1)式のように表記される信号y=(y1,y2,…,yN)を受信する。
n=xn+en …(1)
なお、enは、平均0,分散値σ2=N0/2となるガウス雑音系列である。
そして、受信機側では、上記通信路を介して受け取った変調信号に対して、上記BPSK変調に応じた所定のディジタル復調を行い、さらに、復調結果から得られる対数尤度比(LLR)に対して「Sum-Productアルゴリズム」による繰り返し復号を実施し、最終的に硬判定結果を出力する。
つづいて、上記受信機において実施される、従来の復号方法「Sum-Productアルゴリズム」を以下に示す。
(初期化ステップ)
まず、繰り返し回数l=1および最大繰り返し回数lmaxを設定し、さらに、初期時における、ビットノードからチェックノードへのLLR:βmn (l=1)として、下記(2)式に示すように受信LLR:λnを入力する。
βmn (1)=λn
n=1,2,…,N
m=1,2,…,M …(2)
(行処理ステップ)
つぎに、行処理として、各m,nについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(3)式により更新する。
Figure 0004627317
…(3)
ただし、N(m)はm行目の“1”を持つ列番号の集合を表し、n´はn以外のN(m)を表し、βmn' (l-1)はn列目以外の(l−1)回のビットノードからチェックノードへのLLRを表す。
(列処理ステップ)
つぎに、列処理として、各m,nについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(4)式により更新する。
Figure 0004627317
…(4)
また、各nについて、硬判定のための、ビットnの繰り返しl回目の事後値βn (l)を下記(5)式により更新する。
Figure 0004627317
…(5)
ただし、M(n)はn列目の“1”を持つ行番号の集合を表し、m´はm以外のM(n)を表し、αm'n (l)はm行目以外のl回目のチェックノードからビットノードへのLLRを表す。
(停止規範)
その後、たとえば、ビット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」とし、上記行処理に戻り、以降、順に演算を実行する。
低密度パリティ検査符号とその復号法 LDPC(Low Density Parity Check)符号/sum-product復号法、和田山正著、トリケップス
しかしながら、上記「Sum-Productアルゴリズム」は、復号性能が高いことは知られているが、一方で、数学関数を用いた繰り返し演算(tanh-1の演算)が要求されるため、ハードウェア,ソフトウェアのどちらで実現しても受信機側の計算負荷が高くなる、という問題があった。また、計算負荷を低減させるために所定のテーブルを保持する方法(テーブルルックアップ)もあるが、当該テーブルを保持するために必要なメモリ量が増大する、という問題があった。
また、上記「Sum-Productアルゴリズム」においては、少なくとも“0”,“1”の2元の検査行列に含まれる“1(重み)”の数の分だけ中間値(行毎の対数尤度比,繰り返し毎の更新値等)を記憶するためのメモリが必要となる。すなわち、メモリの消費量が非常に多くなる、という問題があった。また、「Sum-Productアルゴリズム」においては、量子化ビット数が多い,繰り返し回数が多い、等の問題もある。
本発明は、上記に鑑みてなされたものであって、LDPC符号化された符号語の復号処理において、計算量およびメモリ量を削減可能な通信装置および復号方法を得ることを目的とする。また、量子化サイズの縮小、さらには、繰り返し回数の削減、を実現する通信装置および復号方法を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる通信装置は、LDPC符号化された符号語を検査行列を用いて復号する通信装置において、復号アルゴリズムにおける所定の処理により得られる中間値を保持する保持手段と、検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値に基づいて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理手段と、列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行処理用LLRの絶対値の最小k値を前記保持手段に保持する列処理、を実行する列処理手段と、を備え、前記列処理手段が行の前記最小k値を更新しながら復号を行うことを特徴とする。
この発明によれば、LDPC復号において、行処理のためのLLRの絶対値を、巡回構造により行単位に最小k値に縮小することとしたので、それらを保持するためのメモリ量を大幅に削減することができる、という効果を奏する。また、本発明によれば、従来の「Min-Sumアルゴリズム」よりも確率伝搬を効率的に行うことができるので、復号の繰り返し回数を大幅に削減することができ、ひいては、復号処理における計算量を大幅に低減させることができる、という効果を奏する。
図1は、LDPC符号化器およびLDPC復号器を含む通信システムの構成例を示す図である。 図2は、LDPC復号器において「Min-Sumアルゴリズム」の行処理ステップを実行する場合の行処理部の構成例を示す図である。 図3は、LDPC復号器において「Min-Sumアルゴリズム」の列処理ステップを実行する場合の列処理部の構成例を示す図である。 図4は、「Min-Sumアルゴリズム」における処理の流れを示すフローチャートである。 図5−1は、実施の形態1のLDPC復号器の構成例を示す図である。 図5−2は、実施の形態1のLDPC復号器の構成例を示す図である。 図6は、「巡回近似minアルゴリズム」において行処理を実行する行処理部の構成例を示す図である。 図7−1は、「巡回近似minアルゴリズム」において列処理を実行する列処理部の構成例を示す図である。 図7−2は、「巡回近似minアルゴリズム」において列処理を実行する列処理部の構成例を示す図である。 図8は、n=15の列処理において、Min2LLRにn=15の情報が保持されている場合の処理を示す図である。 図9は、「巡回近似minアルゴリズム」における処理の流れを示すフローチャートである。 図10は、列番号表記を示す図である。 図11は、「巡回近似minアルゴリズム」と「Min-Sumアルゴリズム」の比較シミュレーションの結果を示す図である。 図12は、「巡回近似minアルゴリズム」と「Min-Sumアルゴリズム」の比較シミュレーションの結果を示す図である。 図13は、実施の形態2のLDPC復号器の構成例を示す図である。 図14は、繰り返し回数についての性能比較を示す図である。 図15は、実施の形態3の行処理を実行する行処理部の構成例を示す図である。 図16は、実施の形態4の行処理を実行する行処理部の構成例を示す図である。 図17は、「δ minアルゴリズム」に対して「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用した復号アルゴリズムと、「Sum-Productアルゴリズム」と、の比較結果を示す図である。 図18は、実施の形態5の行処理を実行する行処理部の構成例を示す図である。 図19は、実施の形態6の「シリアル巡回近似minアルゴリズム」において列処理を実行する列処理部の構成例を示す図である。
符号の説明
1 LDPC符号化器
2 変調器
3 通信路
4 復調器
5 LDPC復号器
11 受信LLR算出部
12 復号コア部
21,21a 途中結果保持部
22,22−1,22−2,22−G 行処理部
23,23−1,23−2,23−G 列処理部
24 復号結果判定部
25,25a 制御部
31,31a,31b,31c 最小値選択部
32 符号演算部
33 LLR算出部
41 α加算部
42 λ加算部
43 最小k値比較部
44 符号演算部
45 スイッチ
以下に、本発明にかかる通信装置および復号方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、本発明にかかる復号方法は、一例として、携帯電話等の無線通信において、端末および基地局における復号処理として適用可能である。また、衛星通信,HDD,光通信,無線LAN,量子暗号,その他の復号処理として適用可能である。
実施の形態1.
まず、本発明にかかる通信装置および復号方法を実現するためのLDPC復号器の、通信システム内における位置付けについて説明する。図1は、LDPC符号化器およびLDPC復号器を含む通信システムの構成例を示す図である。図1において、送信側の通信装置(送信装置と呼ぶ)は、LDPC符号化器1と変調器2を含む構成とし、受信側の通信装置(受信装置と呼ぶ)は、復調器4とLDPC復号器5を含む構成とする。
ここで、LDPC符号を採用する通信システムにおける符号化処理,復号処理の流れを簡単に説明する。送信装置内のLDPC符号化器1では、たとえば、既知の方法によりK行×N列の生成行列G(K:情報長,N:符号語長)を生成する。そして、情報長Kのメッセージ(m1,m2,…,mK)を受け取り、このメッセージおよび上記生成行列Gを用いて、下記(6)式のように、符号語Cを生成する。ただし、LDPC用のパリティ検査行列をH(M行×N列)とした場合、生成行列Gは、GHT=0(Tは転置行列),H(c1,c2,…,cNT=0を満たす行列となる。
C=(m1,m2,…,mK)G
=(c1,c2,…,cN) …(6)
そして、変調器2では、LDPC符号化器1で生成した符号語Cに対して、BPSK,多値PSK,多値QAM等の所定の変調方式によりディジタル変調を行い、その変調信号x=(x1,x2,…,xN)を、通信路3を介して受信装置に送信する。
一方、受信装置では、復調器4が、通信路3を介して受け取った変調信号y=(y1,y2,…,yN)に対して、上記BPSK,多値PSK,多値QAM等の変調方式に応じたディジタル復調を行い、さらに、LDPC復号器5が、復調結果から得られる対数尤度比(LLR)を用いて、後述する本実施の形態の復号アルゴリズムによる繰り返し復号を実施し、その復号結果として硬判定値(元のメッセージm1,m2,…,mKに対応)を出力する。
つづいて、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる従来の復号アルゴリズムである「Min-Sumアルゴリズム」について説明する。
「Min-Sumアルゴリズム」では、まず、前述した「Sum-Productアルゴリズム」と同様の初期化ステップを実行し、つぎに、当該「Min-Sumアルゴリズム」の行処理ステップを実行し、その後、前述した「Sum-Productアルゴリズム」と同様の列処理ステップおよび停止規範を実行することにより、確率情報の算出処理および更新処理を行う。以下では、「Sum-Productアルゴリズム」と処理の異なる、「Min-Sumアルゴリズム」の行処理ステップについて説明する。
図2は、LDPC復号器において「Min-Sumアルゴリズム」の行処理ステップを実行する場合の行処理部の構成例を示す図である。この行処理部は、パリティ検査行列Hの行重み分のLLR:βmn' (l-1)を保持するメモリ部111,各LLRを大小比較してLLRの最小値を出力する比較部112を備えた最小値選択部101と、上記行重み分のLLRの符号を保持するメモリ部113,各LLRの符号(+または−)を乗算する乗算器114を備えた符号演算部102と、最小値選択部101から得られる最小値と符号演算部102から得られる符号の乗算結果(+または−)とを乗算することによってLLR:αmn (l)を算出するLLR算出部103と、から構成されている。
上記行処理部において、最小値選択部101の比較部112は、2入力(a,b)の比較器を複数備え、上記メモリ部111および前段の比較器(1段目の比較器は上記メモリ部111のみ)から比較対象のLLRを受け取った各比較器が、「|a|<|b|」の場合は|a|を出力し、その以外の場合は|b|を出力することによって、LLRの絶対値の最小値を出力する。そして、LLR算出部103が、上記最小値と上記符号の乗算結果とを乗算し、その乗算結果であるLLR:αmn (l)を列処理部へ受け渡す。
なお、図3は、LDPC復号器において「Min-Sumアルゴリズム」の列処理ステップを実行する場合の列処理部の構成例を示しており、この列処理部では、パリティ検査行列Hの列重みのLLR:αm'n (l)を保持し、各LLRを加算することにより、繰り返しl回目の事後値βn (l)を出力している。
(行処理ステップ)
また、上記「Min-Sumアルゴリズム」の行処理を一般化すると、下記(7)式のように表すことができる。ここでは、行処理として、各m,nについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(7)式により更新している。
Figure 0004627317
…(7)
ただし、min|βmn' (l-1)|は、パリティ検査行列Hのm行目においてn列目を除くLLR:βmn' (l-1)の絶対値の最小値を表し、sgn(βmn' (l-1))は、n列目を除くLLR:βmn' (l-1)の符号を表す。
上記のように、行処理ステップを実行後、「Min-Sumアルゴリズム」では、さらに、前述した「Sum-Productアルゴリズム」と同様の列処理および停止規範に基づく処理を実行し、最終的な符号結果を得る。
つぎに、上記「Min-Sumアルゴリズム」における処理の流れを、図4のフローチャートを用いて簡単に説明する。
上記「Min-Sumアルゴリズム」においては、まず、受信情報から受信LLRを算出し(ステップS1,S2)、その結果を初期値としてメモリ部111に設定し、さらに、繰り返し回数をl=1と初期化する(ステップS3)。つぎに、繰り返し処理(ステップS4:繰り返し復号1回目〜繰り返し復号最終回)として、まず、繰り返しl回目の復号演算における行処理を行い(行処理)、つぎに、繰り返しl回目の復号演算における列処理を行い(列処理)、その後、繰り返しl回目で算出した事後値を硬判定し、その判定値を復号結果として決定し、さらに、パリティ検査を行う(停止規範)。そして、上記停止規範において、パリティ検査結果がOKとなるか、または繰り返し回数がl=lmaxとなった場合に、最終的にそのときの復号結果を出力する(ステップS5)。
このように、上記「Min-Sumアルゴリズム」においては、前述した「Sum-Productアルゴリズム」の行処理、すなわち、(3)式を近似することにより、「Sum-Productアルゴリズム」よりも計算量およびメモリ量を削減している。しかしながら、上記「Min-Sumアルゴリズム」においては、中間値を保持するために、パリティ検査行列Hに含まれる“1(重み)”の数に対応する膨大なメモリ量が必要であり、よりメモリ量を削減するためには、さらなる改良が必要である。
以下において説明する本実施の形態の復号アルゴリズムは、上記さらなるメモリ量の削減および計算量の低減を実現するものであり、たとえば、「Sum-Productアルゴリズム」の近似復号法である「Min-Sumアルゴリズム」を改良したアルゴリズムである。
つづいて、本発明にかかる受信装置を構成するLDPC復号器5の構成、およびLDPC復号器5による復号方法(復号アルゴリズム)を、図面にしたがって詳細に説明する。
図5−1は、本実施の形態のLDPC復号器5の構成を示す図であり、このLDPC復号器5は、受信情報から受信LLRを算出する受信LLR算出部11と本実施の形態の復号処理を行う復号コア部12で構成されている。また、復号コア部12は、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21と、本実施の形態の行処理を実行する行処理部22と、本実施の形態の列処理を実行する列処理部23と、本実施の形態の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25と、を備えている。
なお、本実施の形態の復号アルゴリズムは、巡回的に最小k値のLLRの絶対値のみを更新していく方法であり、正確な最小値ではなく近似的な最小値を用いて復号する方法であることから、以降、「巡回近似minアルゴリズム」と呼ぶこととする。また、上記最小k値とは、「最小値から昇順にk番目まで」を表す。
ここで、上記受信装置において実施される「巡回近似minアルゴリズム」を以下に示す。
(初期化ステップ)
まず、繰り返し回数l=1および最大繰り返し回数lmaxを設定する。さらに、初期時におけるm行目の最小k値のLLRをβmn(i) (0)として、受信LLR:λnを入力し、下記(8)式に示すようにBmn(i)を求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(8)式に示すようにSmを求める。
Figure 0004627317
…(8)
ただし、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)を、下記(9)式により更新する。なお、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(9)
具体的には、現在の列番号が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'の符号とを乗算する項に、置き換えることとした。これにより、さらに、計算量およびメモリ量を削減できる。なお、上記(9)式のNk(m)は、m行目のn(i)の集合であり、Nk(m)={n(1),n(2),…,n(k)}と表す。
(列処理ステップ)
つぎに、列処理として、各m,nについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(10)式により更新する。
Figure 0004627317
…(10)
具体的には、列番号nにおいて、受信LLR:λnと、l回目の行処理で更新されたm行目以外のLLR:αm'n (l)の合計値と、の加算結果を、更新後のLLR:βmn (l)としている。また、上記Sm´とl回目の列処理で更新されたβmn (l)の符号(+または−)とを乗算することにより、行処理にて使用するSmを更新している。なお、上記(10)式における下の2つの式は、Bmn(1)の並べ替え処理(最小k値)を規定したものである。
また、各nについて、硬判定のための、ビットnの繰り返しl回目の事後値βn (l)を下記(11)式により更新する。
Figure 0004627317
…(11)
(停止規範)
その後、たとえば、ビット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の特徴的な動作を、構成図を用いて具体的に説明する。
図6は、上記「巡回近似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値分に縮小できる。
図7−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)|を受け取る。ここで、図7−1に図示はしていないが、たとえば、列処理の対象となるn列目のnと、Min1LLR,Min2LLR,Min3LLRにそれぞれ保持されているBmn(1),Bmn(2),Bmn(3)に対応する列番号を示すn(1),n(2),n(3)のいずれかが一致した場合、n=n(i)となるBmn(i)を間引きし、図8に示すような操作を行う。具体的には、Min2LLRに保持されている情報を削除し、Min3LLRに保持されている情報をMin2LLRに移動し、さらに、Min3LLRには、たとえば(16ビットの場合)、最大値“FFFF”を格納する。これにより、処理対象の列を除いた比較処理が可能となるとともに、少なくともMin3LLRが列処理において必ず更新されることになる。この処理後、図7−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が偶数の場合)となる効果がある。
また、上記と同じ処理を、図7−2に示す構成でも実現することができ、その際、α加算部41では、列重み分のすべてのLLRの加算のみを行い、その後、λ加算部42でλnの加算を行い、その結果を復号結果判定部24に出力するとともに、m行目のLLRであるαmnの減算を行う。このような手順でも上記処理の手順と同一の結果を得ることができる。この際のLDPC符号器の構成は図5−2のようになる。
つぎに、本実施の形態の「巡回近似minアルゴリズム」における処理の流れを、図9のフローチャートを用いて説明する。
上記「巡回近似minアルゴリズム」においては、まず、受信LLR計算部11が、受信情報から受信LLRを算出し(ステップS11,S12)、その結果を初期値として途中結果保持部21に設定し(ステップS13)、さらに、制御部25が、繰り返し回数をl=1と初期化する(ステップS13)。また、列処理部23のうち、λ加算部42,最小k値比較部43,符号演算部44を用いて、n=1からn=Nまで巡回的に、上記(8)式の演算を行う(ステップS13)。
つぎに、復号コア部12は、制御部25の制御により、l回目(1回目〜最終回)の繰り返し復号演算を行う(ステップS14)。具体的には、繰り返し復号の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´を出力する(ステップS15)。なお、上記2つの条件を満たしていない場合は、制御部25がl=l+1とし、復号コア部12においては、(l+1)回目の繰り返し復号を実行する。
つぎに、列番号の表記方法によるメモリサイズの削減について説明する。図10は、本実施の形態の列番号表記を示す図である。「巡回近似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…)に変更することにより、さらにメモリ量を削減することができる。
また、本実施の形態の「巡回近似minアルゴリズム」においては、行処理と列処理による確率情報(LLR)の算出および更新を巡回的に1ビットずつ行うこととした。これにより、従来の「Min-Sumアルゴリズム」よりも確率伝搬を効率的に行うことができる。
たとえば、図11、図12に、「巡回近似minアルゴリズム」と「Min-Sumアルゴリズム」の比較シミュレーションの結果を示す。LDPC符号は、イレギュラーEG符号で最大行重みは8である。図11においては、復号繰り返し回数を100回に固定し、「巡回近似minアルゴリズム」の保存する最小値の個数を3,4,5個と変えて、「Min-Sumアルゴリズム」と性能比較を行った場合を表している。図中、CyclicXminは最小X値を保持した「巡回近似minアルゴリズム」を表し、Min-Sumは「Min-Sumアルゴリズム」を表す。図11からも明らかなように、本実施の形態の「巡回近似minアルゴリズム」によって、メモリを削減しつつ復号性能が劣化しないことが確認できる。
また、図12には、「巡回近似minアルゴリズム」と「Min-Sumアルゴリズム」において、復号が成功するまでに要した平均繰り返し回数を比較した結果を示している。図中、CyclicXminは最小X値を保存した「巡回近似minアルゴリズム」を表し、Min-Sumは「Min-Sumアルゴリズム」を表す。この結果からも明らかなように、「巡回近似minアルゴリズム」では確率伝搬が効率的に行われ、復号繰り返し回数が大幅に削減されている。すなわち、本実施の形態の「巡回近似minアルゴリズム」により、復号処理における計算量を大幅に低減させることができる。
なお、本実施の形態において、行処理の演算対象のLLRは、1値であるが、kの個数は、2値以上であれば何値でもよい。また、本実施の形態においては、行処理と列処理とを交互に1回ずつ実行し、これに応じて、行処理と列処理による確率情報(LLR)の更新を1ビットずつ巡回的に行う場合について説明したが、これに限定されるものではなく、行処理を複数回実行した後、列処理を複数回実行するようにしてもよい。すなわち、行処理と列処理による確率情報(LLR)の算出および更新を巡回的に複数ビットずつ行うようにしてもよい。
実施の形態2.
つづいて、実施の形態2の受信装置および復号方法について説明する。本実施の形態の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を入力し、下記(12)式に示すようにBmn(i) Cを求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(12)式に示すようにSmを求める。
Figure 0004627317
…(12)
ただし、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)を、下記(13)式により更新する。なお、Gは並列数であり、NGは並列化された各復号回路が処理する列数である。また、G・Ng=Nである。また、本実施の形態においては、各行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(13)
具体的には、たとえば、列数: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)を、下記(14)式により更新する。すなわち、本実施の形態においては、上記のように並列に行処理が行われた後の各列について、並列に、下記(14)式に示す列処理を実行する。
Figure 0004627317
…(14)
また、各nについて、硬判定のための、ビットnの繰り返しl回目の事後値βn (l)を下記(15)式により更新する。
Figure 0004627317
…(15)
なお、停止規範については、前述した「巡回近似minアルゴリズム」と同様である。
つづいて、上記「Overlapped巡回近似minアルゴリズム」を実現する実施の形態2のLDPC復号器5の構成および動作について説明する。
図13は、本実施の形態のLDPC復号器5の構成例を示す図であり、受信情報から受信LLRを算出する受信LLR算出部11と本実施の形態の復号処理を行う復号コア部12aで構成されている。また、復号コア部12aは、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21aと、本実施の形態の行処理(並列処理)を実行する行処理部22−1〜22−Gと、本実施の形態の列処理(並列処理)を実行する列処理部23−1〜23−Gと、本実施の形態の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25aと、を備えている。
図13において、本実施の形態のLDPC復号器5は、各行処理部および各列処理部が並列に処理を行う際、上記(12)式,(13)式,(14)式に従って、途中結果保持部21aのBmn CおよびSmを共通に使用し、それぞれが更新する。この並列処理により、Bmn CおよびSmは、並列数に応じて急速に更新され、それに伴って、復号の繰り返し回数を大幅に削減することができる。
なお、本実施の形態では、並列処理において、同一クロックで同一行の演算が発生し、同一バッファを参照するような問題が生じる場合には、たとえば、各処理部にメモリアクセスの優先順位を設定する、メモリバンクを区切る、シフトレジスタを用いてメモリアクセスのタイミングを調整する、等の対策を行う。
以上のように、本実施の形態の「Overlapped巡回近似minアルゴリズム」は、前述した「巡回近似minアルゴリズム」を応用し、行処理および列処理をそれぞれ並列に実行することとした。また、並列に実行される各列処理において更新される最小k値を保持する途中結果保持部を共有し、並列に実行される各列処理においてそれぞれ最小k値を更新することとした。これにより、「Min-Sumアルゴリズム」および前述した実施の形態1と比較して、復号の繰り返し回数を大幅に削減することができる。
図14は、繰り返し回数についての性能比較を示す図である。詳細には、並列数を2とした場合の「Overlapped巡回近似minアルゴリズム」、「巡回近似minアルゴリズム」、「Min-Sumアルゴリズム」について、復号の繰り返し回数を固定した状態で、それぞれの復号性能を比較した結果である。図14において、復号の繰り返し回数が少なく制限された場合、「巡回近似minアルゴリズム」は、従来法である「Min-Sumアルゴリズム」と比較して、復号性能が高いことが確認でき、さらに、「Overlapped巡回近似minアルゴリズム」は、「巡回近似minアルゴリズム」の半分の復号繰り返し回数で同程度の復号性能を持つことが確認できる。なお、図14においては、並列数を2としたため、復号の繰り返し回数が半分程度であったが、「Overlapped巡回近似minアルゴリズム」を用いた場合、繰り返し回数は、「巡回近似minアルゴリズム」の「1/並列数」となる。
実施の形態3.
つづいて、実施の形態3の受信装置および復号方法について説明する。本実施の形態においては、「Min-Sumアルゴリズム」を応用した既知の復号アルゴリズムである「Normalized BP-basedアルゴリズム」に対して、実施の形態1の「巡回近似minアルゴリズム」または実施の形態2の「Overlapped巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「Normalized BP-basedアルゴリズム」を以下に示す。なお、ここでは、「Min-Sumアルゴリズム」と処理が異なる、行処理について説明する。
(行処理ステップ)
たとえば、「Normalized BP-basedアルゴリズム」の行処理を一般化すると、下記(16)式のように表すことができる。ここでは、行処理として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(16)式により更新している。また、式中のAは正規化ファクターと呼ばれる定数であり、「Normalized BP-basedアルゴリズム」では、「Min-Sumアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。
Figure 0004627317
…(16)
つづいて、上記「Normalized BP-basedアルゴリズム」に対して「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と処理の異なる、行処理について説明する。
(巡回近似minアルゴリズムを適用した場合の行処理ステップ)
たとえば、「巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(17)式のように表すことができる。ここでは、行処理として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(17)式により更新している。すなわち、下記(17)式においては、「巡回近似minアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。なお、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(17)
(Overlapped巡回近似minアルゴリズムを適用した場合の行処理ステップ)
また、「Overlapped巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(18)式のように表すことができる。ここでは、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(18)式により更新している。すなわち、下記(18)式においては、「Overlapped巡回近似minアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。
Figure 0004627317
…(18)
なお、本実施の形態の復号アルゴリズムでは、上記のように行処理ステップを実行後、さらに、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と同様の列処理および停止規範に基づく処理を実行し、最終的な符号結果を得ている。
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図15は、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31aを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。本実施の形態の最小値選択部31aでは、たとえば、途中結果保持部21(または21a)から読み出したLLRの最小値(Min1LLRまたはMin2LLR)を、正規化ファクターAを用いて補正している。具体的には、LLRの最小値をAで除算することにより正規化を行っている。
以上のように、本実施の形態においては、「Min-Sumアルゴリズム」よりも性能が良好とされている「Normalized BP-basedアルゴリズム」に「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することとした。これにより、前述した実施の形態1,2と同様の効果が得られるとともに、さらに、ほぼ「Min-Sumアルゴリズム」と同等の回路量にもかかわらず「Sum-Productアルゴリズム」に近い性能を実現できる。
なお、本実施の形態においては、「Normalized BP-basedアルゴリズム」に「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することとしたが、これに限らず、既知の「Offset BP-basedアルゴリズム」、またはそれ以外のアルゴリズムに巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することも可能であり、この場合についても、上記と同様の効果を得ることができる。
実施の形態4.
つづいて、実施の形態4の受信装置および復号方法について説明する。本実施の形態においては、「Normalized BP-basedアルゴリズム」や「Offset BP-basedアルゴリズム」よりもLLR:βmnの補正性能が優れている既知の復号アルゴリズムである「δ minアルゴリズム」に対して、実施の形態1の「巡回近似minアルゴリズム」または実施の形態2の「Overlapped巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「δ minアルゴリズム」を以下に示す。なお、ここでは、「Min-Sumアルゴリズム」と処理が異なる、行処理について説明する。
(行処理ステップ)
たとえば、「δ minアルゴリズム」の行処理を一般化すると、下記(19)式のように表すことができる。ここでは、行処理として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(19)式により更新している。「δ minアルゴリズム」の行処理では、繰り返しl−1回目に更新されたLLRの絶対値:|βmn' (i-1)|から、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(19)
つづいて、上記「δ minアルゴリズム」に対して「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と処理の異なる、行処理について説明する。また、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
(巡回近似minアルゴリズムを適用した場合の行処理ステップ)
たとえば、「巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(20)式のように表すことができる。ここでは、行処理として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(20)式により更新している。また、この復号アルゴリズムの行処理では、繰り返しl−1回目に更新された最小k値のLLRの絶対値:Bmn'から、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(20)
(Overlapped巡回近似minアルゴリズムを適用した場合の行処理ステップ)
また、「Overlapped巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(21)式のように表すことができる。ここでは、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(21)式により更新している。また、この復号アルゴリズムの行処理では、繰り返しl−1回目に並列処理にて更新された最小k値のLLRの絶対値:Bmn' Cから、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(21)
なお、本実施の形態の復号アルゴリズムでは、上記のように行処理ステップを実行後、さらに、前述した「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」と同様の列処理および停止規範に基づく処理を実行し、最終的な符号結果を得ている。
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図16は、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31bを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。また、ここでは、一例として、図5のLDPC復号器5の場合について説明するが、図13のLDPC復号器5についても同様に適用可能である。
本実施の形態の最小値選択部31bでは、たとえば、途中結果保持部21からMin1LLR(Bmn(1)),Min2LLR(Bmn(2)),MinkLLR(Bmn(k))とそれぞれの列番号を読み出し、演算部がΘの演算を行う。すなわち、本実施の形態の最小値選択部31bでは、処理対象となっているn列目と、途中結果保持部21に保持されたBmn(k)の列番号n(k)と、が一致しないBmn(k)に対して、演算部が、「δ minアルゴリズム」における以下の演算を行う。
たとえば、演算部は、符号を除く更新値|αmn (l)|(=Θ[Bmn'])を下記(22)式のように求める。
Figure 0004627317
…(22)
また、演算対象のLLRをk値から最小3値に限定することで演算量を削減することができ、演算部は、符号を除く更新値|αmn (l)|(=Θ[Bmn'])を下記(23)式のように求める。
Figure 0004627317
…(23)
なお、上記では、一例として、演算対象のLLRをk値から最小3値に限定した場合について説明したが、最小4,5…値と限定した場合においても同様に適用可能である。
以上のように、本実施の形態においては、「Min-Sumアルゴリズム」よりも性能が良好とされている「δ minアルゴリズム」に「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することとした。これにより、前述した実施の形態1,2と同様の効果が得られるとともに、さらに、ほぼ「Min-Sumアルゴリズム」と同等の回路量にもかかわらず「Sum-Productアルゴリズム」に近い性能を実現できる。また、本実施の形態においては、行処理用のLLRの絶対値の最小値を、既知の「δ minアルゴリズム」にて規定された所定の補正式に基づいて最適値に補正する場合について記載したが、補正式はこれに限定されるものではなく、「δ minアルゴリズム」以外のアルゴリズムにて規定された補正式を用いることとしてもよい。この場合も上記と同様の効果を得ることができる。
図17は、「δ minアルゴリズム」に対して「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用した復号アルゴリズムと、「Sum-Productアルゴリズム」と、の比較結果を示す図である。たとえば、overlap5delta10は「Overlapped巡回近似minアルゴリズム」を適用した本実施の形態の復号アルゴリズム(並列数が2,最小5値,l=10)、Cyclic5delta50は「巡回近似minアルゴリズム」を適用した本実施の形態の復号アルゴリズム(並列なし,最小5値,l=50)、Sum-Product100は「Sum-Productアルゴリズム」(l=100)を示し、ほぼ重なっている。この結果から、「δ minアルゴリズム」に対して「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することにより、「Sum-Productアルゴリズム」と同程度の性能を持つだけでなく、復号の繰り返し回数についても大幅に削減することができる。
実施の形態5.
つづいて、実施の形態5の受信装置および復号方法について説明する。本実施の形態においては、「Sum-Productアルゴリズム」に対して、実施の形態1の「巡回近似minアルゴリズム」または実施の形態2の「Overlapped巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「Sum-Productアルゴリズム」を以下に示す。なお、本実施の形態では、数学関数をテーブル化して演算を行う方法、すなわち、TLU(テーブルルックアップ)を利用した一般的な「Sum-Productアルゴリズム」について記載する。また、ここでは、従来技術において説明した「Sum-Productアルゴリズム」と処理が異なる、行処理について記載する。
(行処理ステップ(1))
たとえば、TLUを利用した「Sum-Productアルゴリズム」の行処理を一般化すると、下記(24)式のように表すことができる。ここでは、行処理として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(24)式により更新している。TLUを利用した「Sum-Productアルゴリズム」の行処理では、繰り返しl−1回目に更新されたLLRの絶対値:|βmn' (l-1)|に対して、TLUを用いた演算を行っている。
Figure 0004627317
…(24)
(行処理ステップ(2))
また、上記とは異なる方法で、TLUを利用した「Sum-Productアルゴリズム」の行処理を実現することもできる。たとえば、上記とは異なる、TLUを利用した「Sum-Productアルゴリズム」の行処理を一般化すると、下記(25)式のように表すことができる。ここでは、行処理として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(25)式により更新している。
Figure 0004627317
…(25)
なお、TLU1(x)は、下記(26)に基づいて予めテーブルを用意しておく。
TLU1(x)=ln(1+exp(−x)) …(26)
また、上記TLUを利用した「Sum-Productアルゴリズム」において、上記(24)式に示した行処理は、テーブルは大きくなるが演算回数が少ないという特徴があり、一方、上記(25)に示した行処理は、テーブルは小さくなるが演算回数が多いという特徴がある。
つづいて、上記TLUを利用した「Sum-Productアルゴリズム」に対して「巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「巡回近似minアルゴリズム」と処理の異なる、行処理について説明する。また、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
(巡回近似minアルゴリズムを適用した場合の行処理ステップ(1))
たとえば、上記行処理ステップ(1)に対して「巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(27)式のように表すことができる。ここでは、行処理として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(27)式により更新している。また、この復号アルゴリズムの行処理では、繰り返しl−1回目に更新された最小k値のLLRの絶対値:Bmn'に対して、TLUを用いた演算を行っている。
Figure 0004627317
…(27)
(巡回近似minアルゴリズムを適用した場合の行処理ステップ(2))
また、上記行処理ステップ(2)に対して「巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(28)式のように表すことができる。ここでは、行処理として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(28)式により更新している。
Figure 0004627317
…(28)
つづいて、上記TLUを利用した「Sum-Productアルゴリズム」に対して「Overlapped巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「Overlapped巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「Overlapped巡回近似minアルゴリズム」と処理の異なる、行処理について説明する。
(Overlapped巡回近似minアルゴリズムを適用した場合の行処理ステップ(1))
たとえば、上記行処理ステップ(1)に対して「Overlapped巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(29)式のように表すことができる。ここでは、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(29)式により更新している。また、この復号アルゴリズムの行処理では、繰り返しl−1回目に並列処理にて更新された最小k値のLLRの絶対値:Bmn' Cに対して、TLUを用いた演算を行っている。
Figure 0004627317
…(29)
(Overlapped巡回近似minアルゴリズムを適用した場合の行処理ステップ(2))
また、上記行処理ステップ(2)に対して「Overlapped巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理を一般化すると、下記(30)式のように表すことができる。ここでは、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(30)式により更新している。
Figure 0004627317
…(30)
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図18は、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31cを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。また、ここでは、一例として、図5のLDPC復号器5の場合について説明するが、図13のLDPC復号器5についても同様に適用可能である。
本実施の形態の最小値選択部31cでは、たとえば、途中結果保持部21からMin1LLR(Bmn(1)),Min2LLR(Bmn(2)),MinkLLR(Bmn(k))とそれぞれの列番号を読み出し、演算部がTLUを用いた演算を行う。すなわち、本実施の形態の最小値選択部31cでは、処理対象となっているn列目と、途中結果保持部21に保持されたBmn(k)の列番号n(k)と、が一致しないBmn(k)に対して、演算部が、「Sum-Productアルゴリズム」における以下の演算を行う。
たとえば、演算部は、符号を除く更新値を下記(31)式のように求める。
Figure 0004627317
…(31)
また、演算対象のLLRをk値から最小3値に限定することで演算量を削減することができ、演算部は、符号を除く更新値を下記(32)式のように求める。
Figure 0004627317
…(32)
なお、上記では、一例として、演算対象のLLRをk値から最小3値に限定した場合について説明したが、最小4,5…値と限定した場合においても同様に適用可能である。
以上のように、本実施の形態においては、TLUを利用した「Sum-Productアルゴリズム」に「巡回近似minアルゴリズム」または「Overlapped巡回近似minアルゴリズム」を適用することとした。これにより、他の実施の形態と比較して、計算量およびメモリ量は多くなるが、復号性能を向上させることができる。なお、本実施の形態においては、TLUを用いた「Sum-Productアルゴリズム」を例に説明したが、数学関数に対してTLUを行う他の復号アルゴリズムにおいても同様である。また、本実施の形態においては、行処理用のLLRの絶対値の最小値に対して、既知の「Sum-Productアルゴリズム」にて規定されたTLUを用いた場合について記載したが、TLUはこれに限定されるものではなく、「Sum-Productアルゴリズム」にて規定されたTLU以外のTLUを用いることとしてもよい。この場合も上記と同様の効果を得ることができる。
実施の形態6.
つづいて、実施の形態6の通信装置および復号方法について説明する。本実施の形態の復号処理は、完全なビット単位のシリアル復号に対応させることにより、さらに繰り返し回数の低減を図る。
前述の実施の形態と同様に、図5−1は、本実施の形態のLDPC復号器5の構成を示す図であり、このLDPC復号器5は、受信情報から受信LLRを算出する受信LLR算出部11と本実施の形態の復号処理を行う復号コア部12で構成されている。また、復号コア部12は、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21と、本実施の形態の行処理を実行する行処理部22と、本実施の形態の列処理を実行する列処理部23と、本実施の形態の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25と、を備えている。
なお、本実施の形態の復号アルゴリズムは、巡回的に最小k値のLLRの絶対値のみを更新していく方法であり、正確な最小値ではなく近似的な最小値を用いて復号する方法であり、シリアル復号法であることから、以降、「シリアル巡回近似minアルゴリズム」と呼ぶこととする。また、上記最小k値とは、「最小値から昇順にk番目まで」を表す。
ここで、上記受信装置において実施される「シリアル巡回近似minアルゴリズム」を以下に示す。
(初期化ステップ)
まず、繰り返し回数l=1および最大繰り返し回数lmaxを設定する。さらに、初期時におけるm行目の最小k値のLLRをβmn(i) (0)として、受信LLR:λnを入力し、下記(33)式に示すようにBmn(i)を求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(33)式に示すようにSmを求める。
Figure 0004627317
…(33)
ただし、Bmn(i)は、m行目の最小k値のLLR:βmn(i)の絶対値であり、n(i)は、Bmn(i)の中で最小i番目のLLRの列番号であり、Smは、m行目のLLR:βmnの符号(+または−)の積である。
(行処理ステップ1)
つぎに、行処理として、1≦n≦Nおよび各mについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(34)式により更新する。なお、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(34)
具体的には、現在の列番号が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'の符号とを乗算する項に、置き換えることとした。これにより、さらに、計算量およびメモリ量を削減できる。なお、上記(34)式のNk(m)は、m行目のn(i)の集合であり、Nk(m)={n(1),n(2),…,n(k)}と表す。
(列処理ステップ)
つぎに、列処理として、行処理ステップ1で行った列番号nの各mについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(35)式により更新する。これ以降の列処理ステップおよび行処理ステップ2は例えば行番号mの最も小さい行番号から順に1行ずつ計算を実行する。但し実行する行番号の順番は重複せずにすべての「1」の立っている行が実行されれば、どの順番で実行してもよい。
Figure 0004627317
…(35)
具体的には、列番号nにおいて、受信LLR:λnと、l回目の行処理で更新されたm行目以外のLLR:αm'n (l)の合計値と、の加算結果を、更新後のLLR:βmn (l)としている。この計算はβn (l)から、αmn (l)を引く事によっても得られる。また、上記Sm´とl回目の列処理で更新されたβmn (l)の符号(+または−)とを乗算することにより、行処理にて使用するSmを更新している。なお、上記(35)式における下の2つの式は、Bmn(1)の並べ替え処理(最小k値)を規定したものである。
(行処理ステップ2)
さらに、再度行処理として、列番号nの列処理で実行した行と同一のmについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:α'mn (l)を、下記(36)式により更新する。
Figure 0004627317
…(36)
具体的には再度行処理として、α'mn (l)を更新し、さらにその結果を用いてβmn (l)にその更新したα'mn (l)を加算してβn (l)を更新する。この後、列番号nのすべてのmに対して計算が完了するまで列処理ステップに戻り計算を繰り返す。また、列番号nの検査行列に“1”が立っている全ての行mに対して列処理ステップと行処理ステップ2が処理終了したら停止規範の処理に移る。
(停止規範)
その後、たとえば、ビット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」とし、上記行処理ステップ1に戻り、以降、順に演算を実行する。
つぎに、上記「シリアル巡回近似minアルゴリズム」を実行するLDPC復号器5の特徴的な動作を、構成図を用いて具体的に説明する。
前述の実施の形態と同様に、図6は、上記「シリアル巡回近似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値分に縮小できる。
図19は、上記「シリアル巡回近似minアルゴリズム」において列処理を実行する列処理部23の構成例を示す図であり、この列処理部23は、α加算部41とλ加算部42と最小k値比較部43と符号演算部44から構成されている。なお、本実施の形態では、k=3の場合を一例として記載している。また、図示の列重み分のLLR,α'mn,αmn,λn,Sm´,Min1LLR,Min2LLR,Min3LLR(m行目における最小3番目のLLR)は、それぞれ途中結果保持部21に保持された値である。
上記列処理部23では、α加算部41が、l回目の行処理で更新されたm行目を含めたすべてのLLR:αmn (l)を加算し、さらに、λ加算部42が、α加算部41による加算結果に受信LLR:λnを加算し、スイッチ45が最初にその下のブロックに接続されるように制御され、そこからαmn (l)を引いてβmn (l)を出力する。そして、最小k値比較部43(k=3)は、|βmn (l)|を受け取る。
ここで、図19に図示はしていないが、前述の実施の形態と同様に、たとえば、列処理の対象となるn列目のnと、Min1LLR,Min2LLR,Min3LLRにそれぞれ保持されているBmn(1),Bmn(2),Bmn(3)に対応する列番号を示すn(1),n(2),n(3)のいずれかが一致した場合、n=n(i)となるBmn(i)を間引きし、図8に示すような操作を行う。具体的には、Min2LLRに保持されている情報を削除し、Min3LLRに保持されている情報をMin2LLRに移動し、さらに、Min3LLRには、たとえば(16ビットの場合)、最大値“FFFF”を格納する。これにより、処理対象の列を除いた比較処理が可能となるとともに、少なくともMin3LLRが列処理において必ず更新されることになる。
この処理後、図19に示すとおり、|β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が偶数の場合)となる効果がある。この比較結果のMin1LLRとMin2LLRから図6の回路によりα'mn (l))を求めβmn (l)と加算してβn (l)を算出し、スイッチ45により次の列処理に移る。
つぎに、本実施の形態の「シリアル巡回近似minアルゴリズム」における処理の流れを、図9のフローチャートを用いて説明する。なお、図中、「繰り返し復号1回目」,「繰り返し復号2回目」,…,「繰り返し復号最終回」において、「行処理」,「列処理」,「行処理」,…,「列処理」と処理されるように記載されているが、本実施の形態においては、「行処理ステップ1」を処理した後、「列処理ステップ」,「行処理ステップ2」を列番号nのすべてのmに対して計算が完了するまで繰り返す処理を、繰り返すものとする。即ち、「行処理ステップ1」,「列処理ステップ」,「行処理ステップ2」,「列処理ステップ」,「行処理ステップ2」「列処理ステップ」,…,「行処理ステップ2」,「行処理ステップ1」,「列処理ステップ」,「行処理ステップ2」,「列処理ステップ」,「行処理ステップ2」「列処理ステップ」,…,「行処理ステップ2」と処理されるものとする。
上記「シリアル巡回近似minアルゴリズム」においては、まず、受信LLR計算部11が、受信情報から受信LLRを算出し(ステップS11,S12)、その結果を初期値として途中結果保持部21に設定し(ステップS13)、さらに、制御部25が、繰り返し回数をl=1と初期化する(ステップS13)。また、列処理部23のうち、λ加算部42,最小k値比較部43,符号演算部44を用いて、n=1からn=Nまで巡回的に、上記(33)式の演算を行う(ステップS13)。
つぎに、復号コア部12は、制御部25の制御により、l回目(1回目〜最終回)の繰り返し復号演算を行う(ステップS14)。具体的には、繰り返し復号の1回目として、行処理部22が、1列目に“1”を持つ行に対して行処理ステップ1(受信LLRを使用)を行い、その結果を列処理部23へ受け渡す。その後、列処理部23が、1列目の列処理ステップを行い、その結果であるBmn(i)とSmを、途中結果保持部21に保持する(更新する)。またその後、行処理部22が、行処理ステップ2を行い、その結果を列処理部23へ渡し、行処理部22と列処理部23によって、列処理ステップと行処理ステップ2を繰り返す。以降、2列目,3列目,…N列目の順に、上記と同様の処理を行い、それぞれBmn(i)とSmを、途中結果保持部21に保持する(繰り返し復号1回目に相当)。その後、繰り返し復号の2回目以降は、1つ前の処理で更新されたLLRおよびSmを用いて行処理を行い、それ以外は、上記1回目と同様に復号処理を行う。
また、上記l回目の繰り返し復号を実施後、復号結果判定部24が、繰り返しl回目で算出した事後値を硬判定し、その判定値を復号結果x´として決定し、さらにパリティ検査を行う(停止規範)。そして、この停止規範において、パリティ検査結果がOK(「Hx´=0」)となるか、または繰り返し回数がl=lmaxとなった場合に、最終的にそのときの復号結果x´を出力する(ステップS15)。なお、上記2つの条件を満たしていない場合は、制御部25がl=l+1とし、復号コア部12においては、(l+1)回目の繰り返し復号を実行する。
つぎに、前述の実施の形態と同様に列番号の表記方法によるメモリサイズの削減について説明する。図10は、本実施の形態の列番号表記を示す図である。「シリアル巡回近似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…)に変更することにより、さらにメモリ量を削減することができる。
また、本実施の形態の「シリアル巡回近似minアルゴリズム」においては、行処理と列処理による確率情報(LLR)の算出および更新を巡回的に1ビットずつ行うこととした。これにより、従来の「Min-Sumアルゴリズム」よりも確率伝搬を効率的に行うことができる。
また、本実施の形態の「シリアル巡回近似minアルゴリズム」においては、行処理ステップ2として、α'mn (l)を更新し、さらにその結果を用いてβmn (l)にその更新したα'mn (l)を加算してβn (l)を更新するようにしたので、完全なビット単位のシリアル復号に対応させることができ、さらに繰り返し回数を削減することができる。
なお、本実施の形態において、行処理の演算対象のLLRは、1値であるが、kの個数は、2値以上であれば何値でもよい。また、本実施の形態においては、行処理ステップ1を実行した後、列処理ステップと行処理ステップ2とを交互に実行し、これに応じて、行処理と列処理による確率情報(LLR)の更新を1ビットずつ巡回的に行う場合について説明したが、これに限定されるものではなく、行処理と列処理による確率情報(LLR)の算出および更新を巡回的に複数ビットずつ行うようにしてもよい。
実施の形態7.
つづいて、実施の形態7の受信装置(通信装置)および復号方法について説明する。本実施の形態の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を入力し、下記(37)式に示すようにBmn(i) Cを求める。また、初期時におけるm行目のLLR:βmn (0)の符号として、sgn(λn)を入力し、下記(37)式に示すようにSmを求める。
Figure 0004627317
…(37)
ただし、Bmn(i) Cは、m行目の最小k値のLLR:βmn(i)の絶対値であり、並列処理の際に共通に用いられる。また、n(i)は、Bmn(i) Cの中で最小i番目のLLRの列番号である。
(行処理ステップ1)
つぎに、行処理として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:αmn (l)を、下記(38)式により更新する。なお、Gは並列数であり、NGは並列化された各復号回路が処理する列数である。また、G・Ng=Nである。また、本実施の形態においては、各行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(38)
具体的には、たとえば、列数:NG毎にG個に分割された各列郡にそれぞれ割り当てられたG個の行処理部が、並列に行処理を実行する。なお、G個の行処理部が並列に処理を行い、すべての処理部が同一のBmn Cを用いる以外は、前述した「シリアル巡回近似minアルゴリズム」と同様に動作する。
(列処理ステップ)
つぎに、列処理として、行処理ステップ1で行った列番号nの各mについて、ビットノードnからチェックノードmへ送るビットnの繰り返しl回目のLLR:βmn (l)を、下記(39)式により更新する。すなわち、本実施の形態においては、上記のように並列に行処理が行われた後の各列について、並列に、下記(39)式に示す列処理を実行する。ただし、並列に列処理をする際、処理対象となる列番号nに対して、これ以降の列処理ステップおよび行処理ステップ2は例えば行番号mの最も小さい行番号から順に1行ずつ計算を実行する。但し実行する行番号の順番は重複せずにすべての「1」の立っている行が実行されれば、どの順番で実行してもよい。
Figure 0004627317
…(39)
(行処理ステップ2)
さらに、再度行処理として、列番号nの列処理で実行した行と同一のmについて、チェックノードmからビットノードnへ送るビットnの繰り返しl回目のLLR:α'mn (l)を、下記(40)式により更新する。
Figure 0004627317
…(40)
具体的には再度行処理として、α'mn (l)を更新し、さらにその結果を用いてβmn (l)にその更新したα'mn (l)を加算してβn (l)を更新する。この後、列番号nのすべてのmに対して計算が完了するまで列処理ステップに戻り計算を繰り返す。また、列番号nの検査行列に“1”が立っている全ての行mに対して列処理ステップと行処理ステップ2が処理終了したら停止規範の処理に移る。
なお、停止規範については、前述した「シリアル巡回近似minアルゴリズム」と同様である。
つづいて、上記「Overlappedシリアル巡回近似minアルゴリズム」を実現する実施の形態7のLDPC復号器5の構成および動作について説明する。
図13は、前述の実施の形態と同様に、本実施の形態のLDPC復号器5の構成例を示す図であり、受信情報から受信LLRを算出する受信LLR算出部11と本実施の形態の復号処理を行う復号コア部12aで構成されている。また、復号コア部12aは、復号の途中結果(中間値)を保持しておくためのメモリで構成された途中結果保持部21aと、本実施の形態の行処理(並列処理)を実行する行処理部22−1〜22−Gと、本実施の形態の列処理(並列処理)を実行する列処理部23−1〜23−Gと、本実施の形態の停止規範として、列処理における事後値の硬判定およびパリティ検査結果の正誤判定を行う復号結果判定部24と、復号の繰り返し制御を行う制御部25aと、を備えている。
図13において、本実施の形態のLDPC復号器5は、各行処理部および各列処理部が並列に処理を行う際、上記(37)式、(38)式、(39)式、(40)式に従って、途中結果保持部21aのBmn CおよびSmを共通に使用し、それぞれが更新する。この並列処理により、Bmn CおよびSmは、並列数に応じて急速に更新され、それに伴って、復号の繰り返し回数を大幅に削減することができる。
なお、本実施の形態では、並列処理において、同一クロックで同一行の演算が発生し、同一バッファを参照するような問題が生じる場合には、たとえば、各処理部にメモリアクセスの優先順位を設定する、メモリバンクを区切る、シフトレジスタを用いてメモリアクセスのタイミングを調整する、等の対策を行う。
以上のように、本実施の形態の「Overlappedシリアル巡回近似minアルゴリズム」は、前述した「シリアル巡回近似minアルゴリズム」を応用し、行処理および列処理をそれぞれ並列に実行することとした。また、並列に実行される各列処理において更新される最小k値を保持する途中結果保持部を共有し、並列に実行される各列処理においてそれぞれ最小k値を更新することとした。これにより、「Min-Sumアルゴリズム」および前述した実施の形態6と比較して、復号の繰り返し回数を大幅に削減することができる。
また、本実施の形態の「Overlappedシリアル巡回近似minアルゴリズム」においては、行処理ステップ2として、α'mn (l)を更新し、さらにその結果を用いてβmn (l)にその更新したα'mn (l)を加算してβn (l)を更新するようにしたので、完全なビット単位のシリアル復号に対応させることができ、前述した実施の形態2と比較して、さらに繰り返し回数を削減することができる。
実施の形態8.
つづいて、実施の形態8の受信装置(通信装置)および復号方法について説明する。本実施の形態においては、「Min-Sumアルゴリズム」を応用した既知の復号アルゴリズムである「Normalized BP-basedアルゴリズム」に対して、実施の形態6の「シリアル巡回近似minアルゴリズム」または実施の形態7の「Overlappedシリアル巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「Normalized BP-basedアルゴリズム」を以下に示す。なお、ここでは、「Min-Sumアルゴリズム」と処理が異なる、行処理について説明する。
(行処理ステップ1)
たとえば、「Normalized BP-basedアルゴリズム」の行処理ステップ1を一般化すると、下記(41)式のように表すことができる。ここでは、行処理ステップ1として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(41)式により更新している。また、式中のAは正規化ファクターと呼ばれる定数であり、「Normalized BP-basedアルゴリズム」では、「Min-Sumアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。
Figure 0004627317
…(41)
つづいて、上記「Normalized BP-basedアルゴリズム」に対して「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と処理の異なる、行処理ステップ1について説明する。
(シリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1)
たとえば、「シリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(42)式のように表すことができる。ここでは、行処理ステップ1として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(42)式により更新している。すなわち、下記(42)式においては、「シリアル巡回近似minアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。なお、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
Figure 0004627317
…(42)
(Overlappedシリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1)
また、「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(43)式のように表すことができる。ここでは、行処理ステップ1として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(43)式により更新している。すなわち、下記(43)式においては、「Overlappedシリアル巡回近似minアルゴリズム」により得られる繰り返しl回目のLLRを、正規化ファクターAにより補正している。
Figure 0004627317
…(43)
なお、本実施の形態の復号アルゴリズムでは、上記のように行処理ステップ1を実行後、さらに、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と同様の列処理および停止規範に基づく処理を実行し、最終的な符号結果を得ている。
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図15は、前述した実施の形態と同様に、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31aを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。本実施の形態の最小値選択部31aでは、たとえば、途中結果保持部21(または21a)から読み出したLLRの最小値(Min1LLRまたはMin2LLR)を、正規化ファクターAを用いて補正している。具体的には、LLRの最小値をAで除算することにより正規化を行っている。
以上のように、本実施の形態においては、「Min-Sumアルゴリズム」よりも性能が良好とされている「Normalized BP-basedアルゴリズム」に「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用することとした。これにより、前述した実施の形態6、7と同様の効果が得られるとともに、さらに、ほぼ「Min-Sumアルゴリズム」と同等の回路量にもかかわらず「Sum-Productアルゴリズム」に近い性能を実現できる。
なお、本実施の形態においては、「Normalized BP-basedアルゴリズム」に「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用することとしたが、これに限らず、既知の「Offset BP-basedアルゴリズム」、またはそれ以外のアルゴリズムに「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用することも可能であり、この場合についても、上記と同様の効果を得ることができる。
実施の形態9.
つづいて、実施の形態9の受信装置(通信装置)および復号方法について説明する。本実施の形態においては、「Normalized BP-basedアルゴリズム」や「Offset BP-basedアルゴリズム」よりもLLR:βmnの補正性能が優れている既知の復号アルゴリズムである「δ minアルゴリズム」に対して、実施の形態6の「シリアル巡回近似minアルゴリズム」または実施の形態7の「Overlappedシリアル巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「δ minアルゴリズム」を以下に示す。なお、ここでは、「Min-Sumアルゴリズム」と処理が異なる、行処理について説明する。
(行処理ステップ1)
たとえば、「δ minアルゴリズム」の行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(44)式のように表すことができる。ここでは、行処理ステップ1として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(44)式により更新している。「δ minアルゴリズム」の行処理ステップ1では、繰り返しl−1回目に更新されたLLRの絶対値:|βmn' (i-1)|から、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(44)
つづいて、上記「δ minアルゴリズム」に対して「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と処理の異なる、行処理ステップ1について説明する。また、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
(シリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1)
たとえば、「シリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(45)式のように表すことができる。ここでは、行処理ステップ1として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(45)式により更新している。また、この復号アルゴリズムの行処理ステップ1では、繰り返しl−1回目に更新された最小k値のLLRの絶対値:Bmn'から、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(45)
(Overlappedシリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1)
また、「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(46)式のように表すことができる。ここでは、行処理ステップ1として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(46)式により更新している。また、この復号アルゴリズムの行処理ステップ1では、繰り返しl−1回目に並列処理にて更新された最小k値のLLRの絶対値:Bmn' Cから、Θの演算によりαmn (l)を算出する。
Figure 0004627317
…(46)
なお、本実施の形態の復号アルゴリズムでは、上記のように行処理ステップ1を実行後、さらに、前述した「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」と同様の列処理、行処理ステップ2および停止規範に基づく処理を実行し、最終的な符号結果を得ている。
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図16は、前述の実施の形態と同様に、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31bを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。また、ここでは、一例として、図5のLDPC復号器5の場合について説明するが、図13のLDPC復号器5についても同様に適用可能である。
本実施の形態の最小値選択部31bでは、たとえば、途中結果保持部21からMin1LLR(Bmn(1)),Min2LLR(Bmn(2)),MinkLLR(Bmn(k))とそれぞれの列番号を読み出し、演算部がΘの演算を行う。すなわち、本実施の形態の最小値選択部31bでは、処理対象となっているn列目と、途中結果保持部21に保持されたBmn(k)の列番号n(k)と、が一致しないBmn(k)に対して、演算部が、「δ minアルゴリズム」における以下の演算を行う。
たとえば、演算部は、符号を除く更新値|αmn (l)|(=Θ[Bmn'])を下記(47)式のように求める。
Figure 0004627317
…(47)
また、演算対象のLLRをk値から最小3値に限定することで演算量を削減することができ、演算部は、符号を除く更新値|αmn (l)|(=Θ[Bmn'])を下記(48)式のように求める。
Figure 0004627317
…(48)
なお、上記では、一例として、演算対象のLLRをk値から最小3値に限定した場合について説明したが、最小4,5…値と限定した場合においても同様に適用可能である。
以上のように、本実施の形態においては、「Min-Sumアルゴリズム」よりも性能が良好とされている「δ minアルゴリズム」に「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用することとした。これにより、前述した実施の形態6、7と同様の効果が得られるとともに、さらに、ほぼ「Min-Sumアルゴリズム」と同等の回路量にもかかわらず「Sum-Productアルゴリズム」に近い性能を実現できる。また、本実施の形態においては、行処理用のLLRの絶対値の最小値を、既知の「δ minアルゴリズム」にて規定された所定の補正式に基づいて最適値に補正する場合について記載したが、補正式はこれに限定されるものではなく、「δ minアルゴリズム」以外のアルゴリズムにて規定された補正式を用いることとしてもよい。この場合も上記と同様の効果を得ることができる。
実施の形態10.
つづいて、実施の形態10の受信装置(通信装置)および復号方法について説明する。本実施の形態においては、「Sum-Productアルゴリズム」に対して、実施の形態6の「シリアル巡回近似minアルゴリズム」または実施の形態7の「Overlappedシリアル巡回近似minアルゴリズム」における、巡回的に最小k値のLLRの絶対値のみを更新する処理、および近似的な最小値を用いた復号処理、を適用する。
ここで、本実施の形態の復号アルゴリズムについて説明を行う前に、その前提となる既知の「Sum-Productアルゴリズム」を以下に示す。なお、本実施の形態では、数学関数をテーブル化して演算を行う方法、すなわち、TLU(テーブルルックアップ)を利用した一般的な「Sum-Productアルゴリズム」について記載する。また、ここでは、従来技術において説明した「Sum-Productアルゴリズム」と処理が異なる、行処理について記載する。
(行処理ステップ1(1))
たとえば、TLUを利用した「Sum-Productアルゴリズム」の行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(49)式のように表すことができる。ここでは、行処理ステップ1として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(49)式により更新している。TLUを利用した「Sum-Productアルゴリズム」の行処理ステップ1では、繰り返しl−1回目に更新されたLLRの絶対値:|βmn' (l-1)|に対して、TLUを用いた演算を行っている。
Figure 0004627317
…(49)
(行処理ステップ1(2))
また、上記とは異なる方法で、TLUを利用した「Sum-Productアルゴリズム」の行処理ステップ1を実現することもできる。たとえば、上記とは異なる、TLUを利用した「Sum-Productアルゴリズム」の行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(50)式のように表すことができる。ここでは、行処理ステップ1として、各m,nについて、繰り返しl回目のLLR:αmn (l)を、下記(50)式により更新している。
Figure 0004627317
…(50)
なお、TLU1(x)は、下記(51)に基づいて予めテーブルを用意しておく。
TLU1(x)=ln(1+exp(−x)) …(51)
また、上記TLUを利用した「Sum-Productアルゴリズム」において、上記(49)式に示した行処理ステップ1は、テーブルは大きくなるが演算回数が少ないという特徴があり、一方、上記(50)式に示した行処理ステップ1は、テーブルは小さくなるが演算回数が多いという特徴がある。
つづいて、上記TLUを利用した「Sum-Productアルゴリズム」に対して「シリアル巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「シリアル巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「シリアル巡回近似minアルゴリズム」と処理の異なる、行処理ステップ1について説明する。また、本実施の形態においては、行処理の開始列は任意とし、最終列まで処理が終了した段階で、再度最初の列から巡回的に復号処理を行う。
(シリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1(1))
たとえば、上記行処理ステップ1(1)に対して「シリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(52)式のように表すことができる。ここでは、行処理ステップ1として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(52)式により更新している。また、この復号アルゴリズムの行処理ステップ1では、繰り返しl−1回目に更新された最小k値のLLRの絶対値:Bmn'に対して、TLUを用いた演算を行っている。
Figure 0004627317
…(52)
(シリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1(2))
また、上記行処理ステップ1(2)に対して「シリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(53)式のように表すことができる。ここでは、行処理ステップ1として、1≦n≦Nおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(53)式により更新している。
Figure 0004627317
…(53)
つづいて、上記TLUを利用した「Sum-Productアルゴリズム」に対して「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の復号アルゴリズムを以下に示す。なお、本実施の形態では、前述した「Overlappedシリアル巡回近似minアルゴリズム」と同様の処理(初期化,列処理,停止規範)についてはその説明を省略する。以下では、前述した「Overlappedシリアル巡回近似minアルゴリズム」と処理の異なる、行処理ステップ1について説明する。
(Overlappedシリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1(1))
たとえば、上記行処理ステップ1(1)に対して「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(54)式のように表すことができる。ここでは、行処理ステップ1として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(54)式により更新している。また、この復号アルゴリズムの行処理ステップ1では、繰り返しl−1回目に並列処理にて更新された最小k値のLLRの絶対値:Bmn' Cに対して、TLUを用いた演算を行っている。
Figure 0004627317
…(54)
(Overlappedシリアル巡回近似minアルゴリズムを適用した場合の行処理ステップ1(2))
また、上記行処理ステップ1(2)に対して「Overlappedシリアル巡回近似minアルゴリズム」を適用した場合の本実施の形態の復号アルゴリズムの行処理ステップ1、2のαmn (l)、α'mn (l)を一般化すると、下記(55)式のように表すことができる。ここでは、行処理ステップ1として、0≦g≦G−1,g・NG+1≦n≦(g+1)・NGおよび各mについて、繰り返しl回目のLLR:αmn (l)を、下記(55)式により更新している。
Figure 0004627317
…(55)
つづいて、上記本実施の形態の復号アルゴリズムを実行するLDPC復号器5の行処理部の特徴的な動作を、図面を用いて説明する。なお、LDPC復号器5の全体構成については、前述した図5または図13と同様である。
図18は、前述の実施の形態と同様に、本実施の形態における行処理を実行する行処理部22,22−1〜22−Gの構成例を示す図であり、この行処理部は、最小値選択部31cを備えている。なお、前述した図6と同様の構成については、同一の符号を付してその説明を省略する。また、ここでは、一例として、図5のLDPC復号器5の場合について説明するが、図13のLDPC復号器5についても同様に適用可能である。
本実施の形態の最小値選択部31cでは、たとえば、途中結果保持部21からMin1LLR(Bmn(1)),Min2LLR(Bmn(2)),MinkLLR(Bmn(k))とそれぞれの列番号を読み出し、演算部がTLUを用いた演算を行う。すなわち、本実施の形態の最小値選択部31cでは、処理対象となっているn列目と、途中結果保持部21に保持されたBmn(k)の列番号n(k)と、が一致しないBmn(k)に対して、演算部が、「Sum-Productアルゴリズム」における以下の演算を行う。
たとえば、演算部は、符号を除く更新値を下記(56)式のように求める。
Figure 0004627317
…(56)
また、演算対象のLLRをk値から最小3値に限定することで演算量を削減することができ、演算部は、符号を除く更新値を下記(57)式のように求める。
Figure 0004627317
…(57)
なお、上記では、一例として、演算対象のLLRをk値から最小3値に限定した場合について説明したが、最小4,5…値と限定した場合においても同様に適用可能である。
以上のように、本実施の形態においては、TLUを利用した「Sum-Productアルゴリズム」に「シリアル巡回近似minアルゴリズム」または「Overlappedシリアル巡回近似minアルゴリズム」を適用することとした。これにより、他の実施の形態と比較して、計算量およびメモリ量は多くなるが、復号性能を向上させることができる。なお、本実施の形態においては、TLUを用いた「Sum-Productアルゴリズム」を例に説明したが、数学関数に対してTLUを行う他の復号アルゴリズムにおいても同様である。また、本実施の形態においては、行処理用のLLRの絶対値の最小値に対して、既知の「Sum-Productアルゴリズム」にて規定されたTLUを用いた場合について記載したが、TLUはこれに限定されるものではなく、「Sum-Productアルゴリズム」にて規定されたTLU以外のTLUを用いることとしてもよい。この場合も上記と同様の効果を得ることができる。
以上、各実施の形態においては、行処理の開始列を1とし、昇順に処理を行ったが、これに限らない。たとえば、開始列を任意とし、重複しない任意の列に対して処理を行い、すべての列が終了した段階で、再度同一の順番で繰り返し復号を行うこととしてもよい。または、行処理の開始列を任意とし、重複しない任意の列に対して処理を行い、すべての列が終了した段階で、続いて異なる順番で重複しない任意の列に対してすべての列が終了するまで繰り返し復号を行うこととしてもよい。これらの処理においても、上記各実施の形態と同様の効果が得られる。また、上記実施の形態の説明では、確率情報として対数尤度比LLRを用いる場合について説明したが、対数尤度比LLR以外の確率情報を用いるようにしてもよい。
以上のように、本発明にかかる受信装置および復号方法は、ディジタル通信における誤り訂正技術として有用であり、特に、LDPC符号化された信号を復号する通信装置に適している。

Claims (26)

  1. LDPC符号化された符号語を検査行列を用いて復号する通信装置において、
    復号アルゴリズムにおける所定の処理により得られる中間値を保持する保持手段と、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値の最小値と、前記行処理用LLRの符号の乗算結果と、を乗算することにより、つぎの列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理手段と、
    列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行処理用LLRの絶対値の最小k値を前記保持手段に保持する列処理、を実行する列処理手段と、
    を備え、
    前記行処理手段は、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、処理対象の列番号よりも小さい列番号については、繰り返しl回目の列処理で更新された行処理用LLRの符号を乗算し、また、処理対象の列番号よりも大きい列番号については、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号を乗算し、さらに、それらの乗算結果同士を乗算し、
    前記列処理手段が行の前記最小k値を更新しながら復号を行うことを特徴とする通信装置。
  2. LDPC符号化された符号語を検査行列を用いて復号する通信装置において、
    復号アルゴリズムにおける所定の処理により得られる中間値を保持する保持手段と、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値の最小値と、前記行処理用LLRの符号の乗算結果と、を乗算することにより、つぎの列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理手段と、
    列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行処理用LLRの絶対値の最小k値を前記保持手段に保持する列処理、を実行する列処理手段と、
    を備え、
    前記行処理手段は、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、繰り返し(l−1)回目の列処理で更新された行重みに対応した行処理用LLRの符号の乗算結果Sと、処理対象の列番号に対応する、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号と、を乗算し、当該乗算結果S´を前記保持手段に保持し、
    前記列処理手段が行の前記最小k値を更新しながら復号を行うことを特徴とする通信装置。
  3. 前記列処理手段は、繰り返しl回目において、特定の列に対する列処理を行う場合、
    処理対象の列番号に対応する受信LLRと、l回目の行処理で更新された、処理対象の行番号以外の列重みに対応した列処理用LLRの合計値と、の加算結果を行処理用LLRとし、当該行処理用LLRの絶対値が、処理対象の行の最小k値の少なくともいずれか一つよりも小さい場合に、当該最小k値を更新し、
    さらに、前記加算結果である行処理用LLRの符号と、前記保持手段に保持された符号の乗算結果S´と、を乗算し、当該乗算結果を繰り返し(l+1)回目の行処理で用いる符号の乗算結果Sとして更新しておくことを特徴とする請求項2に記載の通信装置。
  4. 前記検査行列の列を所定数に分割し、分割後の行列単位に並列に前記行処理および列処理を実行し、さらに、前記最小k値を保持する前記保持手段の領域を共有し、並列に実行される各列処理においてそれぞれ前記最小k値を更新することを特徴とする請求項1または2に記載の通信装置。
  5. 前記行処理手段は、さらに、予め規定された固定の正規化ファクターにより前記行処理用LLRの絶対値の最小値を補正し、補正後の値を用いて列処理用LLRを求めることを特徴とする請求項1または2に記載の通信装置。
  6. 前記行処理手段は、前記行重みに対応した行処理用LLRの絶対値の最小値を、所定の補正式に基づいて最適値に補正し、補正後の値と前記行処理用LLRの符号の乗算結果とを乗算することにより、つぎの列処理で用いる列処理用LLRを求めることを特徴とする請求項1または2に記載の通信装置。
  7. 前記行処理手段は、前記行重みに対応した行処理用LLRの絶対値の最小値に対して、TLU(テーブルックアップ)を用いた所定の演算を行い、当該演算処理後の値と前記行処理用LLRの符号の乗算結果とを乗算することにより、つぎの列処理で用いる列処理用LLRを求めることを特徴とする請求項1または2に記載の通信装置。
  8. LDPC符号化された符号語を検査行列を用いて復号する通信装置において、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値に基づいて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理手段と、
    列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算する列処理を実行する列処理手段と、
    を備え、
    前記行処理手段と前記列処理手段が所定回数ずつ交互に処理を行い、前記行処理用LLRおよび列処理用LLRの更新を巡回的に行う場合に、
    前記行処理手段は、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、処理対象の列番号よりも小さい列番号については、繰り返しl回目の列処理で更新された行処理用LLRの符号を乗算し、また、処理対象の列番号よりも大きい列番号については、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号を乗算し、さらに、それらの乗算結果同士を乗算することを特徴とする通信装置。
  9. 前記行処理手段は、前記行重みに対応した行処理用LLRの絶対値の最小値と、前記行処理用LLRの符号の乗算結果と、を乗算することにより、つぎの列処理で用いる列処理用LLRを求めることを特徴とする請求項8に記載の通信装置。
  10. 前記行処理手段は、さらに、予め規定された固定の正規化ファクターにより前記行処理用LLRの絶対値の最小値を補正し、補正後の値を用いて列処理用LLRを求めることを特徴とする請求項9に記載の通信装置。
  11. 前記行処理手段は、前記行重みに対応した行処理用LLRの絶対値の最小値を、所定の補正式に基づいて最適値に補正し、補正後の値と前記行処理用LLRの符号の乗算結果とを乗算することにより、つぎの列処理で用いる列処理用LLRを求めることを特徴とする請求項8に記載の通信装置。
  12. 前記行処理手段は、前記行重みに対応した行処理用LLRの絶対値の最小値に対して、TLU(テーブルックアップ)を用いた所定の演算を行い、当該演算処理後の値と前記行処理用LLRの符号の乗算結果とを乗算することにより、つぎの列処理で用いる列処理用LLRを求めることを特徴とする請求項8に記載の通信装置。
  13. 前記行処理手段は、繰り返し1回目の復号時、前記最小値として受信LLRの絶対値の最小値を用いることを特徴とする請求項1、2または8に記載の通信装置。
  14. 前記列処理手段は、前記列処理を実行する毎に事後値を算出し、当該事後値を硬判定し、パリティ検査結果がOKの場合か、または、繰り返し回数が規定された最大回数の場合に、そのときの硬判定値を復号結果として出力することを特徴とする請求項1、2または8に記載の通信装置。
  15. 前記行処理の開始列を任意とし、最終列まで処理が終了した段階で、再度最初の列から繰り返し復号を行うことを特徴とする請求項1、2または8に記載の通信装置。
  16. 前記行処理の開始列を任意とし、重複しない任意の列に対して処理を行い、すべての列が終了した段階で、再度同一の順番で繰り返し復号を行うことを特徴とする請求項1、2または8に記載の通信装置。
  17. 前記行処理の開始列を任意とし、重複しない任意の列に対して処理を行い、すべての列が終了した段階で、続いて異なる順番で重複しない任意の列に対してすべての列が終了するまで繰り返し復号を行うことを特徴とする請求項1、2または8に記載の通信装置。
  18. 検査行列における行重みの列番号を、列番号の小さい順に0から昇順に表記することを特徴とする請求項1、2または8に記載の通信装置。
  19. 前記行処理手段と前記列処理手段が所定回数ずつ交互に処理を行う度に、前記行処理用LLRおよび列処理用LLRの更新を行うことを特徴とする請求項8に記載の通信装置。
  20. LDPC符号化された符号語を検査行列を用いて復号する復号方法であって、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値、および前記行処理用LLRの符号の乗算結果を用いて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理ステップと、
    前記行処理により演算された列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行重みに対応した行処理用LLRの絶対値の最小k値をメモリの特定領域に保持する列処理、を実行する列処理ステップと、
    を行の最小k値を更新しながら実行し、復号を行う場合に、
    前記行処理ステップでは、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、処理対象の列番号よりも小さい列番号については、繰り返しl回目の列処理で更新された行処理用LLRの符号を乗算し、また、処理対象の列番号よりも大きい列番号については、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号を乗算し、さらに、それらの乗算結果同士を乗算することを特徴とする復号方法。
  21. LDPC符号化された符号語を検査行列を用いて復号する復号方法であって、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値、および前記行処理用LLRの符号の乗算結果を用いて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理ステップと、
    前記行処理により演算された列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算し、さらに、行重みに対応した行処理用LLRの絶対値の最小k値をメモリの特定領域に保持する列処理、を実行する列処理ステップと、
    を行の最小k値を更新しながら実行し、復号を行う場合に、
    前記行処理ステップでは、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、繰り返し(l−1)回目の列処理で更新された行重みに対応した行処理用LLRの符号の乗算結果Sと、処理対象の列番号に対応する、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号と、を乗算し、当該乗算結果S´をメモリの特定領域に保持することを特徴とする復号方法。
  22. LDPC符号化された符号語を検査行列を用いて復号する復号方法であって、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値、および前記行処理用LLRの符号の乗算結果を用いて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理ステップと、
    前記行処理により演算された列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算する列処理を実行する列処理ステップと、
    を所定回数ずつ交互に実行し、前記行処理用LLRおよび列処理用LLRの更新を巡回的に行う場合に、
    前記行処理ステップでは、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、処理対象の列番号よりも小さい列番号については、繰り返しl回目の列処理で更新された行処理用LLRの符号を乗算し、また、処理対象の列番号よりも大きい列番号については、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号を乗算し、さらに、それらの乗算結果同士を乗算することを特徴とする復号方法。
  23. LDPC符号化された符号語を検査行列を用いて復号する復号方法であって、
    検査行列における行重みに対応した対数尤度比(ビットノードからチェックノードへ送る対数尤度比:行処理用LLRと呼ぶ)の絶対値、および前記行処理用LLRの符号の乗算結果を用いて、列処理で用いる対数尤度比(チェックノードからビットノードへ送る対数尤度比:列処理用LLRと呼ぶ)を演算する行処理を実行する行処理ステップと、
    前記行処理により演算された列重みに対応した列処理用LLRを用いて、行処理で用いる行処理用LLRを演算する列処理を実行する列処理ステップと、
    を所定回数ずつ交互に実行し、前記行処理用LLRおよび列処理用LLRの更新を巡回的に行う場合に、
    前記行処理ステップでは、繰り返しl回目において、特定の行における行重みに対応した行処理用LLRの符号を乗算する場合、繰り返し(l−1)回目の列処理で更新された行重みに対応した行処理用LLRの符号の乗算結果Sと、処理対象の列番号に対応する、繰り返し(l−1)回目の列処理で更新された行処理用LLRの符号と、を乗算し、当該乗算結果S´をメモリの特定領域に保持することを特徴とする復号方法。
  24. 前記列処理ステップでは、繰り返しl回目において、特定の列に対する列処理を行う場合、
    処理対象の列番号に対応する受信LLRと、l回目の行処理で更新された、処理対象の行番号以外の列重みに対応した列処理用LLRの合計値と、の加算結果を行処理用LLRとし、当該行処理用LLRの絶対値が、処理対象の行の最小k値の少なくともいずれか一つよりも小さい場合に、当該最小k値を更新し、
    さらに、前記加算結果である行処理用LLRの符号と、前記メモリの特定領域に保持された符号の乗算結果S´と、を乗算し、当該乗算結果を繰り返し(l+1)回目の行処理で用いる符号の乗算結果Sとして更新しておくことを特徴とする請求項21または23に記載の復号方法。
  25. 繰り返し1回目の復号時、前記最小値として受信LLRの絶対値の最小値を用いることを特徴とする請求項20〜23のいずれか1つに記載の復号方法。
  26. 前記列処理ステップを実行する毎に事後値を算出し、当該事後値を硬判定し、パリティ検査結果がOKの場合か、または、繰り返し回数が規定された最大回数の場合に、そのときの硬判定値を復号結果として出力することを特徴とする請求項20〜23のいずれか1つに記載の復号方法。
JP2007524684A 2005-07-13 2006-07-12 通信装置および復号方法 Expired - Fee Related JP4627317B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2005205004 2005-07-13
JP2005205004 2005-07-13
JP2006047392 2006-02-23
JP2006047392 2006-02-23
PCT/JP2006/313891 WO2007007801A1 (ja) 2005-07-13 2006-07-12 通信装置および復号方法

Publications (2)

Publication Number Publication Date
JPWO2007007801A1 JPWO2007007801A1 (ja) 2009-01-29
JP4627317B2 true JP4627317B2 (ja) 2011-02-09

Family

ID=37637191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007524684A Expired - Fee Related JP4627317B2 (ja) 2005-07-13 2006-07-12 通信装置および復号方法

Country Status (6)

Country Link
US (1) US8132080B2 (ja)
EP (1) EP1909395B1 (ja)
JP (1) JP4627317B2 (ja)
KR (1) KR100983692B1 (ja)
CN (1) CN101248583B (ja)
WO (1) WO2007007801A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
FR2912574B1 (fr) * 2007-02-13 2010-09-17 Commissariat Energie Atomique Procede de decodage a passage de messages et a convergence forcee.
JP4743156B2 (ja) * 2007-04-27 2011-08-10 ソニー株式会社 復号装置
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
JP4760769B2 (ja) * 2007-05-15 2011-08-31 住友電気工業株式会社 復号回路及び部分処理回路
JP4821724B2 (ja) * 2007-07-18 2011-11-24 ソニー株式会社 復号装置および復号方法
TW200906073A (en) * 2007-07-31 2009-02-01 Univ Nat Chiao Tung Calculation method applied to Low Density Parity check Code (LDPC) decoder and circuit thereof
JP4728381B2 (ja) * 2008-11-27 2011-07-20 住友電気工業株式会社 復号装置
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
JP5018807B2 (ja) * 2009-02-26 2012-09-05 富士通株式会社 復号化装置
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
JP5523064B2 (ja) * 2009-11-13 2014-06-18 三菱電機株式会社 復号装置及び方法
JP5370337B2 (ja) 2010-10-29 2013-12-18 株式会社Jvcケンウッド 復号装置および復号方法
WO2013147777A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Updating variable nodes associated with an iterative decoder
US8930790B1 (en) * 2013-09-13 2015-01-06 U-Blox Ag Method and apparatus for identifying selected values from among a set of values
WO2015087643A1 (ja) * 2013-12-09 2015-06-18 三菱電機株式会社 誤り訂正復号装置
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
US20160055055A1 (en) * 2014-08-25 2016-02-25 Kabushiki Kaisha Toshiba Memory system and error correction decoding method
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
TWI682636B (zh) * 2018-06-13 2020-01-11 財團法人資訊工業策進會 通訊系統之低密度奇偶檢查碼的解碼方法及應用其之通訊裝置
WO2020052754A1 (en) * 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Simplified check node processing for ldpc decoding
CN112152639A (zh) * 2019-06-27 2020-12-29 深圳市中兴微电子技术有限公司 一种极化码的译码方法、装置、存储介质和终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186940A (ja) * 2002-12-03 2004-07-02 Nec Corp 誤り訂正符号復号装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184486B1 (en) * 2000-04-27 2007-02-27 Marvell International Ltd. LDPC encoder and decoder and method thereof
KR100891782B1 (ko) * 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US7219288B2 (en) * 2002-11-27 2007-05-15 Koninklijke Philips Electronics N.V. Running minimum message passing LDPC decoding
KR100502608B1 (ko) * 2002-12-24 2005-07-20 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
CN101069356A (zh) 2004-12-02 2007-11-07 三菱电机株式会社 解码装置以及通信装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004186940A (ja) * 2002-12-03 2004-07-02 Nec Corp 誤り訂正符号復号装置

Also Published As

Publication number Publication date
WO2007007801A1 (ja) 2007-01-18
JPWO2007007801A1 (ja) 2009-01-29
EP1909395A4 (en) 2009-04-15
KR20080015145A (ko) 2008-02-18
US8132080B2 (en) 2012-03-06
EP1909395A1 (en) 2008-04-09
EP1909395B1 (en) 2019-11-20
US20090132887A1 (en) 2009-05-21
KR100983692B1 (ko) 2010-09-24
CN101248583A (zh) 2008-08-20
CN101248583B (zh) 2012-04-18

Similar Documents

Publication Publication Date Title
JP4627317B2 (ja) 通信装置および復号方法
JP4777261B2 (ja) 復号装置及び通信装置
US7181676B2 (en) Layered decoding approach for low density parity check (LDPC) codes
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
US20030229843A1 (en) Forward error correction apparatus and method in a high-speed data transmission system
JPWO2007018066A1 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器
KR20040049864A (ko) 패리티 검사 디코더에 사용하기 위한 노드 처리기
CN107404321B (zh) 用于纠错码解码的方法和设备
WO2007088870A1 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
CN111865335B (zh) 一种分组纠错码的译码方法、装置、存储介质和电子装置
JP4551740B2 (ja) 低密度パリティチェック符号復号器及び方法
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
JP5523064B2 (ja) 復号装置及び方法
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
CN113612485A (zh) 一种译码方法、译码装置、设备及存储装置
KR102045438B1 (ko) Ldpc 부호의 복호를 위한 방법 및 장치
JP4341646B2 (ja) 復号装置
JP2008153874A (ja) 軟判定復号装置、軟判定復号方法および軟判定復号プログラム
EP3591845B1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes
JP2008147764A (ja) 軟判定復号装置および軟判定復号プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100924

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

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

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4627317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees