JP4777261B2 - 復号装置及び通信装置 - Google Patents

復号装置及び通信装置 Download PDF

Info

Publication number
JP4777261B2
JP4777261B2 JP2006548007A JP2006548007A JP4777261B2 JP 4777261 B2 JP4777261 B2 JP 4777261B2 JP 2006548007 A JP2006548007 A JP 2006548007A JP 2006548007 A JP2006548007 A JP 2006548007A JP 4777261 B2 JP4777261 B2 JP 4777261B2
Authority
JP
Japan
Prior art keywords
decoding
column
unit
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.)
Active
Application number
JP2006548007A
Other languages
English (en)
Other versions
JPWO2006059688A1 (ja
Inventor
塁 阪井
渉 松本
好邦 宮田
英夫 吉田
隆彦 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2006548007A priority Critical patent/JP4777261B2/ja
Publication of JPWO2006059688A1 publication Critical patent/JPWO2006059688A1/ja
Application granted granted Critical
Publication of JP4777261B2 publication Critical patent/JP4777261B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/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/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/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3911Correction factor, e.g. approximations of the exp(1+x) function
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

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

Description

この発明は、デジタル通信における誤り訂正技術に係り、特に低密度パリティ検査LDPC(Low-Density Parity Check)符号及びTurbo符号による符号化信号を復号する復号装置及びこれを備えた通信装置に関するものである。
LDPC符号化信号を復号する基本的なアルゴリズムには、Sum−ProductアルゴリズムとMin−Sumアルゴリズムがある。これら復号アルゴリズムでは、受信信号の確率的な信頼度情報として対数尤度比LLR(Log Likelihood Ratio)を算出しながら繰り返し演算を行うことで復号を行う(例えば、非特許文献1参照)。
Sum−Productアルゴリズムでは、例えばtanh関数などの数学関数を用いた演算(実数の加算や関数の評価)が要求され、計算コストが高い。このため、実装の際には、当該関数の値を保持するテーブルを用意するなどして計算コストを下げる必要がある。その反面、正確な演算がなされるために復号性能は高いという利点もある。
これに対して、Min−Sumアルゴリズムでは、Sum−Productアルゴリズムの数学関数を近似した簡易な数式を用い、加算、最小、正負の判定、正負の符号の乗算という4種類の演算のみで実装できる。このため、計算コストは小さくなる。しかしながら、近似の影響により復号性能は劣化する。
また、従来のLDPC符号化信号の復号アルゴリズムは、確率情報の伝搬に基づいて繰り返し復号を行う。Sum−ProductアルゴリズムやMin−Sumアルゴリズムでは、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う。
例えば、復号したいLDPC符号の検査行列が2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であるとすると、m=1,2,3,・・・,Mの順にHm,n=1を満たす全ての組(m,n)に対して行処理を行い、この後n=1,2,3,・・・,Nの順にHm,n=1を満たす全ての組(m,n)に対して列処理が実行される。
このため、復号処理の繰り返し回数が大きくなると、それに伴って復号遅延時間が大きくなるという問題が生じる。そこで、繰り返し復号の回数を削減する復号アルゴリズムとして、Shuffled BP(Belief Propagation)アルゴリズムがある(例えば、非特許文献2参照)。
Shuffled BPアルゴリズムでは、符号化信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ実行する。これにより、確率情報の伝搬が効率的に行われて収束が速くなるという利点がある。このShuffled BPアルゴリズムを以下に簡単に説明する。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLR(Log Likelihood Ratio)の初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数、mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、下記式(1)の条件に対し、下記式(2)及び下記式(3)を演算する行処理を実行する。ここで、N(m)、M(n)は集合[1,N]の部分集合であり、N(m):={n:Hm,n=1}、M(n):={m:Hm,n=1}と定義する。つまり、N(m)は検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)はLDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
Figure 0004777261
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(1)の条件に対し、下記式(4)及び下記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
Figure 0004777261
次に、ステップ2として、事後値zn (i)を硬判定し、下記式(6)で表される復号系列を生成する。このあと、下記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た下記式(6)に従う復号系列を出力する。また、下記式(6)におけるwnは、復号系列wのn=1〜Nにおける要素である。
Figure 0004777261
Figure 0004777261
上述したShuffled BPアルゴリズムでは、繰り返し回数iに着目すると、同じ繰り返しi回目で更新したLLRであるzm,n' (i)を用いて行処理を行うことで確率伝搬が効率的に行われている。
なお、非特許文献2では、Ng=1として受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ行う場合をShuffled BPアルゴリズムとし、1<Ng<Nとして受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う場合をGroup Shuffled BPアルゴリズムとしており、ここでもそれに従う。なお、Ng=Nである場合、Sum−Productアルゴリズムになる。また、簡単のためNgをNの約数としている。
一方、Min−Sumアルゴリズムと同程度の計算コストでLDPC符号の復号を行いつつ、Sum−Productアルゴリズムと比較して復号性能が劣化するのを抑えることができる復号アルゴリズムとして、例えばNormalized BPアルゴリズムやOffset BPアルゴリズムがある(例えば、非特許文献3参照)。
簡単に説明すると、Normalized BPアルゴリズムでは、Min−Sumアルゴリズムで算出されるLLRがSum−Productアルゴリズムで算出されるLLRよりも常に大きな値になることから、Min−Sumアルゴリズムの行処理で算出されたLLRを、Normalization Factorと呼ばれる因子α(>1)で除算して受け渡すLLRとする。また、Offset BPアルゴリズムでは、Min−Sumアルゴリズムの行処理で算出されたLLRを、Offset Factorと呼ばれる因子β(>0)によって減算して受け渡すLLRとする。
このように、復号に際して除算や減算を実行するが、除算や減算による計算コストはそれほど大きなものではなく、Sum−Productアルゴリズムと比較した復号性能の劣化を軽減することが可能となる。また、各因子α,βについてはシミュレーション若しくは密度発展法(例えば、非特許文献4参照)を用いて予め算出しておき、LDPC復号部で保持しておけば良い。
また、Min−Sumアルゴリズムの行処理で算出されたLLRに対し、受信信号の大きさに応じて補正を行うアルゴリズムがある(例えば、非特許文献5参照)。この復号アルゴリズムでは、Min−Sumアルゴリズムの補正項として、補正関数のテーブルを用意しておき、受信信号の大きさに応じて補正項を変えることで的確な補正を行い、復号性能を向上させるものである。
さらに、通信路情報として受信LLRの大きさでShuffled BPアルゴリズムの演算順序を制御する方法がある。この方法は、受信情報から算出した受信LLRの絶対値の大きい方、若しくは小さい方から順序制御してShuffled BPアルゴリズムで復号するものである。
Turbo符号化信号を復号する基本的なアルゴリズムには、Log−MAP(Maximum A Posteriori Probability)アルゴリズムとMax−Log−Mapアルゴリズムがある。これら復号アルゴリズムでは、受信信号の確率的な信頼度情報としてメトリック値を算出しながら繰り返し演算を行うことで復号を行う(例えば、非特許文献6参照)。
Log−MAPアルゴリズムでは、例えば指数関数などの数学関数を用いた演算(実数の加算や関数の評価)が要求され、計算コストが高い。このため、実装の際には、当該関数の値を保持するテーブルを用意するなどして計算コストを下げる必要がある。その反面、正確な演算がなされるために復号性能は高いという利点もある。
これに対して、Max−Log−MAPアルゴリズムでは、Log−Mapアルゴリズムの数学関数を近似した簡易な数式を用い、加算、最大、正負の判定、正負の符号の乗算という4種類の演算のみで実装できる。Log−MAPアルゴリズムにおいて行う指数関数の和に対する対数計算を指数の最大値で近似する。このため、数学関数を含む処理がなくなり計算コストは小さくなる。しかしながら、近似の影響により復号性能は劣化する。
一方、Max−Log−Mapアルゴリズムと同程度の計算コストでTurbo符号の復号を行いつつ、Mapアルゴリズムと比較して復号性能が劣化するのを抑えることができる復号アルゴリズムがある(例えば、非特許文献7参照)。
簡単に説明すると、Max−Log−Mapアルゴリズムのメトリック計算で算出されたメトリック値を、因子sで乗算してMAPアルゴリズムで算出される値と同程度に調整して受け渡すLLRとする。
このように、復号に際して乗算を実行するが、乗算による計算コストはそれほど大きなものではなく、Log−MAPアルゴリズムと比較した復号性能の劣化を軽減することが可能となる。また、因子sについてはシミュレーションを用いて予め算出しておき、Turbo復号部で保持しておけば良い。
和田山正、「低密度パリティ検査符号とその復号法 LDPC(Low Density Parity Check)符号/sum−product復号法」、トリケップス、2002年6月5日、p.76−99 Juntan Zhang等、"Shuffled Belief Propagation Decoding"、[online]、[平成16年9月28日検索]、http://lester.univ-ubs.fr:8080/~boutillon/Journee_GDR_LDPC/Fossorier1_GDR_LDPC.pdf Jinghu Chen等、"Reduced-Complexity Decoding of LDPC Codes"、[online]、[平成16年9月28日検索]、http://www-ee.eng.hawaii.edu/~jinghu/FILES/tcom02v3p2.pdf Jinghu Chen等、"Density evolution of two improved BP-based algorithms for LDPC decoding"、IEEE Communications Letters, March 2002 Xiao−Yu等、"Efficient Implementation of the Sum-Product algorithm for Decoding LDPC Codes"、Proc. 2001 IEEE GlobeCom Conf., pp.1036-1036E, Nov. 2001 萩原春生、「ターボ符号の基礎」、トリケップス、1999年10月7日、p.37−46 J Vogt等、"Improving the max-log-MAP turbo decoder"、ELECTRONICS LETTERS,Vol.36,No.23、p.1937−1938
従来のMin−Sumアルゴリズムに従うLDPC符号化信号の復号装置では、復号性能を維持するには繰り返し回数が大きくしなければならず、これに伴い復号遅延も大きくなるという課題があった。また、この傾向は、Min−Sumアルゴリズムにおける近似更新式を基本更新式として使用するNormalized BPアルゴリズムや、Offset BPアルゴリズムにおいても同様である。
また、Normalized BPアルゴリズム及びOffset BPアルゴリズムの復号性能は、因子α(Normalization Factor)及び因子β(Offset Factor)の値にそれぞれ大きく依存している。このため、各因子α,βを事前に算出しておく必要があるが、実際の受信装置等に実装した場合、符号構成や通信路に依存して各因子α,βの値を変えなければ十分な復号性能が発揮できない。
さらに、Min−Sumアルゴリズムの行処理で算出されたLLRに対し、受信信号の大きさに応じて補正を行う復号アルゴリズムでは、受信情報(受信信号の大きさ)に応じた補正定数を保持した補正項テーブルを設ける必要があり、実装が容易ではない。Sum−ProductアルゴリズムやShuffled BPアルゴリズムのように、復号に際してtanh関数などの数学関数を必要とする場合も、計算コストが大きくなりハードウェア構成が複雑になるために実装が困難である。
また、Shuffled BPアルゴリズム及びGroup Shuffled BPアルゴリズムでは、符号の先頭ビットから順に復号演算を行うか、若しくは、符号の先頭からグループ分けされた複数ビット順に復号演算を行う。このため、符号構成や変調方式に最適な演算順序とすることができないという課題もある。さらに、通信路情報として、受信情報から算出される受信LLRの大きさで順序制御する技術では、受信の度に順序を変える必要があるという不具合がある。
さらに、前記因子sで乗算するMax−Log−MAPアルゴリズムの復号性能は、因子sの値に依存している。このため、因子sを事前に算出しておく必要があるが、実際の受信装置等に実装した場合、符号構成や通信路に依存して因子sの値を変えなければ十分な復号性能が発揮できない。
この発明は、上記のような課題を解決するためになされたもので、Min−Sumアルゴリズム及びそれを基本更新式とするNormalized BPアルゴリズムやGroup Shuffled BPアルゴリズムに対して高効率な確率伝搬アルゴリズムを提供して演算結果の収束を速め、繰り返し復号の回数を削減することができる符号化信号の復号方法、復号装置及びこれを備えた通信装置を得ることを目的とする。
また、この発明は、Sum−Productアルゴリズムのような複雑な数学関数を用いずにMin−Sumアルゴリズムと同程度の計算コストで、Normalized BPアルゴリズムやOffset BPアルゴリズムのように因子に大きく依存することもなく、補正項をテーブルとして保持する必要をなくしても、なお且つ高い復号能力を実現することができる復号装置及びこれを備えた通信装置を得ることを目的とする。
さらに、この発明は、多値変調されて送受信された場合や符号がイレギュラーLDPC符号である場合においても、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う復号アルゴリズムの演算順序制御を効率的に行うことができ、さらに繰り返し回数も削減できる復号装置及びこれを備えた通信装置を得ることを目的とする。
さらに、この発明では、多値変調されて送受信する場合において、因子α(Normalization Factor)や因子β(Offset Factor)を変調方式や符号構成に依存して決定することで復号性能を向上させた復号装置及びこれを備えた通信装置を得ることを目的とする。
さらに、この発明は、Shuffled BPアルゴリズムのように受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行うにあたり処理を並列化することにより演算遅延時間を削減することができる復号装置及びこれを備えた通信装置を得ることを目的とする。
また、この発明は、Log−MAPアルゴリズムのような複雑な数学関数を用いずにMax−Log−MAPアルゴリズムと同程度の計算コストで、高い復号能力を実現することができる復号装置及びこれを備えた通信装置を得ることを目的とする。
この発明に係る復号装置は、低密度パリティ検査(Low-density Parity-check:LDPC)符号化された受信信号に対して「Min−Sumアルゴリズム」に従う行処理及び列処理による確率情報の算出及びその更新を実行するにあたり、Shuffled BPアルゴリズムを基にして実行するとともに、その行処理の更新演算では、Min−Sumアルゴリズムの近似更新式を利用することで、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行する復号手段を備えるものである。
このことによって、従来のSum−Productアルゴリズムからの復号性能の劣化を抑えることができる上、従来のMin−Sumアルゴリズムと比較すると格段に復号性能を向上させることができる効果がある。
また、Min−Sumアルゴリズムに対する補正項を受信信号から算出することから、従来の補正型のMin−Sumアルゴリズムのように補正項を保持するテーブルを用意しておく必要がなく、従来のNormalized BPアルゴリズムやOffset BPアルゴリズムのように、符号構成に依存して最適化した因子を予め用意しておく必要もない効果がある。
この発明の実施の形態1によるLDPC符号復号装置の構成を示すブロック図である。 図1中の行処理部の構成を示すブロック図である。 実施の形態1によるLDPC符号復号装置の動作を示すフローチャートである。 ビット誤り率と復号繰り返し回数の平均値との関係をプロットしたグラフである。 この発明の実施の形態2によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 ビット誤り率と復号繰り返し回数の平均値との関係をプロットしたグラフである。 この発明の実施の形態3によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 ビット誤り率と復号繰り返し回数の平均値との関係をプロットしたグラフである。 この発明の実施の形態4によるLDPC符号復号装置の構成を示すブロック図である。 図9中の行処理部の構成を示すブロック図である。 図9中の行処理部の他の構成を示すブロック図である。 実施の形態4によるLDPC符号復号装置の動作を示すフローチャートである。 ビット誤り率と信号対雑音比(Eb/No)との関係をプロットしたグラフである。 この発明の実施の形態5によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 ビット誤り率と信号対雑音比(Eb/No)との関係をプロットしたグラフである。 この発明の実施の形態6によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 ビット誤り率と信号対雑音比(Eb/No)との関係をプロットしたグラフである。 4PAM Gray Mappingでの受信値の分布を示すグラフである。 この発明の実施の形態10によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 この発明の実施の形態11によるLDPC符号復号装置の行処理部の構成を示すブロック図である。 この発明の実施の形態12によるLDPC符号復号装置の構成を示すブロック図である。 LDPC符号化行列の構成例を示す図である。 実施の形態12のLDPC符号復号装置によるLDPC符号行列のグループ分割例を示す図である。 実施の形態12によるLDPC符号復号装置の動作を示すフローチャートである。 ビット誤り率と復号繰り返し回数の平均値との関係をプロットしたグラフである。 この発明の実施の形態16による通信装置の構成を示すブロック図である。 実施の形態16による通信装置で使用するLDPC符号の構成を示す図である。 実施の形態16による通信装置でLDPC符号を4PAMに変調して送受信する場合におけるビットの割り当ての例を示す図である。 実施の形態16による通信装置の動作を示すフローチャートであり、この図に沿って説明する。 この発明の実施の形態17によるLDPC符号復号装置の構成を示すブロック図である。 図29中の行処理部及び列処理部による復号演算を説明するためのブロック図である。 図29中の行処理部及び列処理部による他の復号演算を説明するためのブロック図である。 擬似巡回符号の模式図である。 この発明の実施の形態18による行処理部及び列処理部の復号演算を説明するためのブロック図である。 この発明の実施の形態19によるTurbo符号復号装置の構成を示すブロック図である。 実施の形態19によるTurbo符号復号装置の動作を示すフローチャートである。 LDPC復号器を含む本実施の形態の通信システムの構成例を示す図である。 移動体通信システムの構成例を示す図である。
以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面に従って説明する。
実施の形態1.
図1は、この発明の実施の形態1によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態1によるLDPC符号復号装置1は、受信LLR計算部2及び復号コア部(復号手段)3から構成される。受信LLR計算部2は、LDPC(Low-Density Parity Check)符号化信号を受信し、その対数尤度比LLR(Log Likelihood Ratio)(以下、受信LLRと称する)を算出して復号コア部3に出力する。復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4では、受信LLR計算部2から入力した受信LLRに基づく行処理部5及び列処理部6による復号処理の途中結果を保持する。行処理部5は、行処理を行う。列処理部6は、列処理を行う。制御部7は、行処理部5及び列処理部6による復号処理の繰り返しを制御する。復号結果判定部8は、事後値の硬判定から復号結果を決定し、パリティ検査を行って復号結果の正誤を判定する。
ここで、本実施の形態1による行処理部5では、上記式(1)に対して、上記式(1)及び上記式(2)の代わりに下記式(8)の演算を実行する。つまり、上述したShuffled BPアルゴリズムのステップ1の行処理において、Min−Sumアルゴリズムで使用する更新式で更新演算を行う。なお、下記式中の各記号は、上述したものと同様である。
Figure 0004777261
図2は、図1中の行処理部の構成を示すブロック図である。比較部9は、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5は、複数の比較部9を複数段に接続して構成される。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、比較部9がそれぞれの大小比較と符号(±)の積を算出した値を列処理部6へ受け渡す。
このように、本実施の形態1によるLDPC符号復号装置1は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにMin−Sumアルゴリズムの近似更新式である上記式(8)を利用する。これにより、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うMin−Sumアルゴリズムが実現される。
次に動作について説明する。
図3は、実施の形態1によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(8)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図4は、従来のMin−Sumアルゴリズムに従うLDPC符号復号装置と、実施の形態1によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のMin−Sumアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態1によるものである。
また、図4において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。
従来のMin−Sumアルゴリズムでは、上記式(8)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態1によるLDPC符号復号装置1では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図4に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のMin−Sumアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態1によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてMin−Sumアルゴリズムの簡易な更新式を用いるので、従来のMin−Sumアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。また、Min−Sumアルゴリズムを行処理の基本アルゴリズムとして、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態2.
上記実施の形態1では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うMin−Sumアルゴリズムを実現したLDPC符号復号装置を示した。これに対し、本実施の形態2によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてNormalized BPアルゴリズムを実行するものである。
本実施の形態2によるLDPC符号復号装置は、図1に示した上記実施の形態1によるLDPC符号復号装置と基本的に同様な構成を有しているが、Normalized BPアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態2における行処理部5では、上記式(1)に対して上記式(2)及び上記式(3)の代わりに下記式(9)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、Normalized BPアルゴリズムで使用する更新式である下記式(9)により更新演算を行う。なお、下記式(9)中の各記号は、上述したものと同様である。また、定数αは、Normalization Factorである。
Figure 0004777261
本実施の形態2によるLDPC符号復号装置は、上述したように、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Normalized BPアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(9)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図5は、実施の形態2によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9と除算部10から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
除算部10では、入力値cに対し、因子α(Normalization Factor)で除算したc/αを計算して列処理部6に出力する。つまり、本実施の形態2による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力すると、それぞれの大小比較と符号(±)の積を比較部9で行い、比較部9により得られた値を除算部10が因子αによる除算を行った後、列処理部6へ受け渡す処理を行う。
このように、本実施の形態1によるLDPC符号復号装置1は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにNormalized BPアルゴリズムの更新式である上記式(9)を利用する。これにより、Min−Sumアルゴリズムと同程度の計算コストでLDPC符号の復号を行いつつ、復号性能が劣化するのを抑えたNormalized BPアルゴリズムを、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うことを実現している。
次に動作について説明する。
本実施の形態2によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明し、併せて上記実施の形態1と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行について上記式(9)に従う行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、上記式(3)及び上記式(4)に従って1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(9)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(9)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図6は、従来のNormalized BPアルゴリズムに従うLDPC符号復号装置と、実施の形態2によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のNormalized BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態2によるものである。
また、図6において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6、最大繰り返し回数Imaxが100回である。また、通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定し、変調方式をBPSK(Binary Phase Shift Keying)としている。さらに、従来のNormalized BPアルゴリズム及び本実施の形態2によるNormalized BPアルゴリズムにおいて、因子α(Normalization Factor)をそれぞれα=1.25としている。
従来のNormalized BPアルゴリズムでは、上記式(9)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態2によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図6に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のNormalized BPアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態2によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてNormalized BPアルゴリズムの簡易な更新式を用いるので、従来のNormalized BPアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することが可能となる。また、Normalized BPアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態3.
本実施の形態3では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてOffset BPアルゴリズムを実行するものである。
本実施の形態3によるLDPC符号復号装置は、図1に示した上記実施の形態1によるLDPC符号復号装置と基本的に同様な構成を有しているが、Offset BPアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態3における行処理部5では、上記式(1)に対して下記式(10)の演算を実行する。
つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、Offset BPアルゴリズムで使用する近似更新式である下記式(10)により更新演算を行う。なお、下記式(10)中の各記号は、上述したものと同様である。また、定数βは、Offset Factorであり、MAXは両者の大きい方を選択する操作とする。
Figure 0004777261
本実施の形態3によるLDPC符号復号装置は、上述したように、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Offset BPアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(10)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図7は、実施の形態3によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9と減算部11から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
減算部11では、入力値cに対し、因子β(Offset Factor)で減算したc−βを計算して列処理部6に出力する。つまり、本実施の形態3による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力すると、それぞれの大小比較と符号(±)の積を比較部9で行い、比較部9により得られた値を減算部11が因子βによる減算を行った後、列処理部6へ受け渡す処理を行う。
このように、本実施の形態3によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずにOffset BPアルゴリズムの更新式である上記式(10)を利用する。これにより、Min−Sumアルゴリズムと同程度の計算コストでLDPC符号の復号を行いつつ、復号性能が劣化するのを抑えたOffset BPアルゴリズムを、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うことを実現している。
次に動作について説明する。
本実施の形態3によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明し、併せて上記実施の形態1と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行について上記式(10)に従う行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、上記式(3)及び上記式(4)に従って1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(10)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(10)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図8は、従来のOffset BPアルゴリズムに従うLDPC符号復号装置と、実施の形態3によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のOffset BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態3によるものである。
また、図8において、LDPC符号は、レギュラーLDPC、符号長8000、符号化率1/2、列重み3、行重み6、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、従来のOffset BPアルゴリズム及び本実施の形態3によるOffset BPアルゴリズムにおいて、因子β(Offset Factor)をそれぞれβ=0.15としている。
従来のOffset BPアルゴリズムでは、上記式(10)に従って繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。これに対して、本実施の形態3によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う。これにより、図8に示すように、パリティ検査がOKとなるまでに要した復号繰り返し回数の平均値の収束が、従来のOffset BPアルゴリズムと比較して格段に速くなっていることがわかる。
以上のように、この実施の形態3によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理においてOffset BPアルゴリズムの簡易な更新式を用いるので、従来のOffset BPアルゴリズムよりも確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。また、Offset BPアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムのように数学関数を必要とすることがなく、計算コストを削減することができる。
実施の形態4.
この実施の形態4は、Min−Sumアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムを復号アルゴリズムとして備えるものである。
図9は、この発明の実施の形態4によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態4によるLDPC符号復号装置1は、受信LLR計算部2及び復号コア部3から構成される。受信LLR計算部2は、LDPC(Low-Density Parity Check)符号化信号を受信し、その対数尤度比LLRを算出して復号コア部3に出力する。復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4は、受信LLR計算部2から入力した受信LLRに基づく行処理部5及び列処理部6による復号処理の途中結果を保持する。行処理部5は、上述した補正項による補正を行う補正型のMin−Sumアルゴリズムによる行処理を行う。列処理部6は、当該行処理部5による処理結果について列処理を行う。制御部7は、行処理部5及び列処理部6による復号処理の繰り返しを制御する。復号結果判定部8は、事後値の硬判定から復号結果を決定し、パリティ検査を行って復号結果の正誤を判定する。
ここで、本実施の形態4では、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う。つまり、復号したいLDPC符号の検査行列が2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であるとすると、m=1,2,3,・・・,Mの順にHm,n=1を満たす全ての組(m,n)に対して行処理を行い、この後n=1,2,3,・・・,Nの順にHm,n=1を満たす全ての組(m,n)に対して列処理が実行される。
繰り返し1回の中で実行される行処理であるステップ1において、本実施の形態4による行処理部5は、下記式(11)に対して下記式(12)の演算を実行する。下記式(12)中の各パラメータは、下記式(13)〜(15)で表され、これら式中の各記号は、上述したものと同様である。
Figure 0004777261
なお、上記式(15)において、Min−Sumアルゴリズムに対する補正項となるδについては、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、例えば0.9など適切な値を設定することで、復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
さらに、ステップ1において、行処理部5による全ての行処理が終了すると、本実施の形態4による列処理部6は、下記式(16)に対して上記式(4)及び上記式(5)の演算を実行する。
Figure 0004777261
続いて、ステップ2として、復号結果判定部8が、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果判定部8が、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
図10は、図9中の行処理部の構成を示すブロック図である。補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5は、複数の補正演算部12を複数段に接続して構成される。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
このように、本実施の形態4によるLDPC符号復号装置1では、繰り返し復号の任意の1回で符号化信号に対して、Min−Sumアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムによって、全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う。
なお、上述した上記式(12)及び図10の構成では、全ての比較において補正を行うが、図10Aに示すように比較部9による最小2値の比較のときのみ補正を行うなど、比較回数よりも補正回数を減らすことで、演算量を削減することができる。
次に動作について説明する。
図11は、実施の形態4によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的に説明すると、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(12)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図12は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のMin−Sumアルゴリズムに従うLDPC符号復号装置と、実施の形態4によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を一点破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を破線で繋いだ方が従来のMin−Sumアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態4によるものである。
また、図12において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。
従来のSum−Productアルゴリズム及び従来のMin−Sumアルゴリズムでは、それぞれ上記式(2)及び上記式(8)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態4によるLDPC符号復号装置1では、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図12に示すように、本実施の形態4によるLDPC符号復号装置1は、従来のMin−Sumアルゴリズムと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムと同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態4によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムからの復号性能の劣化を抑えることができる上、従来のMin−Sumアルゴリズムと比較すると格段に復号性能を向上させることができる。
また、Min−Sumアルゴリズムに対する補正項を受信情報から算出することから、従来の補正型のMin−Sumアルゴリズムのように補正項を保持するテーブルを用意しておく必要がなく、従来のNormalized BPアルゴリズムやOffset BPアルゴリズムのように、符号構成に依存して最適化した因子を予め用意しておく必要もない。
さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態4によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態5.
上記実施の形態4では、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムを実現した復号装置を示した。これに対し、本実施の形態5による復号装置は、上記実施の形態4で説明した補正型のMin−Sumアルゴリズムにおける行処理結果を定数で除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムを復号アルゴリズムとして実行するものである。
本実施の形態5による復号装置は、図9に示した上記実施の形態4による復号装置と基本的に同様な構成を有しているが、除算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態5における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(17)の演算を実行する。なお、下記式(17)中の各パラメータは、上記式(13)〜上記式(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
Figure 0004777261
ここで、Min−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
除算定数αは、Normalized BPアルゴリズムにおけるNormalization Factorと同様な効果を持ち、上記実施の形態4における補正型のMin−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。なお、本実施の形態における除算付き補正型のMin−Sumアルゴリズムにおける除算定数αは、Normalized BPアルゴリズムと同様にNormalization Factorと呼ぶことにする。
本実施の形態5によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して除算付き補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(17)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図13は、実施の形態5によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の補正演算部12と除算部13から構成される。補正演算部12は、図10で示したものと同様に、入力された2値の絶対値の大小比較、補正項の算出及び補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5において、複数の補正演算部12が複数段に接続している。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12は、2値a,bの絶対値を入力すると、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
除算部13では、上述した補正演算部12による演算結果を定数α(Normalization Factor)で除算する。つまり、除算部13は、入力値cに対し、c/αを計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、除算部13は、補正演算部12が算出した値を定数αで除算した後、列処理部6へ受け渡す。
次に動作について説明する。
本実施の形態5によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明し、併せて上記実施の形態4と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(17)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図14は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のNormalized BPアルゴリズムに従うLDPC符号復号装置と、実施の形態5によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を一点破線で繋いだ方が従来のNormalized BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態5によるものである。
また、図14において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、Normalized BPアルゴリズムにおいて、因子α(Normalization Factor)をα=1.25とした場合の復号性能を示している。
従来のSum−Productアルゴリズム及び従来のNormalized BPアルゴリズムでは、それぞれ上記式(2)及び上記式(9)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態5によるLDPC符号復号装置1では、上記実施の形態4で示した補正型のMin−Sumアルゴリズムにおける行処理結果を定数αで除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図14に示すように、本実施の形態5では、従来のNormalized BPと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムとほぼ同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態5によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムにおける行処理結果を定数で除算した値を用いて列処理を行う除算付き補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムで算出されるLLRの大きさの差を従来のNormalized BPアルゴリズムのように因子α(Normalization Factor)で調整するだけでなく、上記実施の形態4で示した補正型のMin−Sumアルゴリズムに対してさらに補正を行うことにより、従来のNormalized BPアルゴリズムよりも格段に復号性能を向上させることができる。
また、本実施の形態5によるMin−Sumアルゴリズムに対する補正項は、受信情報から算出するので、従来の補正型アルゴリズムのように補正項テーブルを保持する必要がない。さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態5によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態6.
本実施の形態6では、上記実施の形態4で説明した補正型のMin−Sumアルゴリズムにおける行処理結果から定数で減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムを復号アルゴリズムとして実行するものである。
本実施の形態6によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、減算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態6における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(18)の演算を実行する。なお、下記式(18)中の各パラメータは、上記式(13)〜上記式(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
Figure 0004777261
ここで、Min−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
減算定数βは、Offset BPアルゴリズムにおけるOffset Factorと同様な効果を持ち、上記実施の形態4による補正型のMin−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。なお、本実施の形態6による減算付き補正型のMin−Sumアルゴリズムにおける減算定数βは、Offset BPアルゴリズムと同様にOffset Factorと呼ぶことにする。
本実施の形態6によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して減算付き補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(18)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図15は、実施の形態6によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の補正演算部12と減算部14から構成される。補正演算部12は、図10で示したものと同様に、入力された2値の絶対値の大小比較、補正項の算出及び補正を行い、補正された値と2値の符号(±)との積を算出する。行処理部5において、複数の補正演算部12が複数段に接続している。また、図に示すように、下段の補正演算部12は、入力2値の一方として上段の補正演算部12の算出結果を入力する。各補正演算部12による処理は下記の通りである。
補正演算部12は、2値a,bの絶対値を入力すると、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
減算部14では、上述した補正演算部12による演算結果を定数β(Offset Factor)で減算する。つまり、減算部14は、入力値cに対し(c−β)を計算して、計算結果が負でなければ(c−β)を出力し、負であれば0を出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、減算部14は、補正演算部12が算出した値を定数βで減算し、その結果に応じて(c−β)又は0を列処理部6へ受け渡す。
次に動作について説明する。
本実施の形態6によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明し、併せて上記実施の形態4と異なる動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(18)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図16は、従来のSum−Productアルゴリズムに従うLDPC符号復号装置と、従来のOffset BPアルゴリズムに従うLDPC符号復号装置と、実施の形態6によるLDPC符号復号装置とにおける、ビット誤り率とこのビット誤り率での信号対雑音比(Eb/No)との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のSum−Productアルゴリズムによるものであり、プロット間を一点破線で繋いだ方が従来のOffset BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態5によるものである。
また、図16において、LDPC符号は、レギュラーLDPC符号、符号長8000、符号化率1/2、列重み3、行重み6であり、最大繰り返し回数Imaxが100回である。通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、変調方式はBPSK(Binary Phase Shift Keying)としている。また、Offset BPアルゴリズムにおいて、因子β(Offset Factor)をβ=0.15とした場合の復号性能を示している。
従来のSum−Productアルゴリズム及び従来のOffset BPアルゴリズムでは、それぞれ上記式(2)及び上記式(10)に従って、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行われる。
これに対して、本実施の形態6によるLDPC符号復号装置1では、上記実施の形態4で示した補正型のMin−Sumアルゴリズムにおける行処理結果を定数βで減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムに従って、受信信号に対する行処理に対して全ての行処理を終えてから、当該符号化信号の全てのビットに対する列処理が行う。この補正により、図16に示すように、本実施の形態6では、従来のOffset BPと比較して格段に復号性能が向上しており、また従来のSum−Productアルゴリズムとほぼ同様な復号性能を実現できているのがわかる。
以上のように、この実施の形態6によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMin−Sumアルゴリズムにおける行処理結果を定数で減算した値を用いて列処理を行う減算付き補正型のMin−Sumアルゴリズムに従って復号処理を実行するので、従来のSum−Productアルゴリズムで算出されるLLRの大きさの差を従来のOffset BPアルゴリズムのように因子β(Offset Factor)で調整するだけでなく、上記実施の形態4で示した補正型のMin−Sumアルゴリズムに対してさらに補正を行うことにより、従来のOffset BPアルゴリズムよりも格段に復号性能を向上させることができる。
また、本実施の形態6によるMin−Sumアルゴリズムに対する補正項は、受信情報から算出するので、従来の補正型アルゴリズムのように補正項テーブルを保持する必要がない。さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態6によるLDPC符号復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態7.
この実施の形態7では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態4で説明した補正型のMin−Sumアルゴリズムを行うものである。
本実施の形態7によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、補正型のMin−Sumアルゴリズムにおける受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う点が異なる。
具体的に説明すると、本実施の形態7における行処理部5では、上記式(1)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(19)の演算を実行する。なお、下記式(19)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
Figure 0004777261
なお、上記式(15)において、Min−Sumアルゴリズムに対する補正項となるδについては、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
本実施の形態7によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して補正型のMin−Sumアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に対し、上記式(19)を用いた行処理を行い、列処理部6は、上記式(1)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態7による行処理部5は、上述したように、基本的な構成は図10に示す上記実施の形態4と同様である。つまり、補正演算部12が、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。ここで、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
このように、本実施の形態7によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(2)及び上記式(3)を用いずに、上記式(19)を利用する。
次に動作について説明する。
本実施の形態7によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(19)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(19)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態7によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態4で示した補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態8.
この実施の形態8によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムを実行するものである。
本実施の形態8によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、除算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態8における行処理部5では、上記式(1)に対して下記式(21)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムで使用する更新式である下記式(21)により更新演算を行う。なお、下記式(21)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
Figure 0004777261
上記式(15)中のMin−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
除算定数αは、Normalized BPアルゴリズムにおけるNormalization Factorと同様な効果を持ち、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、除算付き補正型Min−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。
本実施の形態8によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、除算付き補正型のMin−Sumアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に従って上記式(21)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態8による行処理部5は、基本的な構成は図13に示す上記実施の形態5と同様である。つまり、複数の補正演算部12と除算部13から構成される。ここで、補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。また、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。
除算部13では、上述した補正演算部12による演算結果を定数α(Normalization Factor)で除算する。つまり、除算部13は、入力値cに対し、c/αを計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、除算部13は、補正演算部12が算出した値を定数αで除算した後、列処理部6へ受け渡す。
このように、本実施の形態8によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(21)を利用する。
次に動作について説明する。
本実施の形態8によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(21)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(21)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態8によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う除算付き補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態9.
この実施の形態9によるLDPC符号復号装置では、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムを実行するものである。
本実施の形態9によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、減算付き補正型のMin−Sumアルゴリズムの実行のために行処理部5の構成及びその処理内容が異なる。
具体的に説明すると、本実施の形態9における行処理部5では、上記式(1)に対して下記式(22)の演算を実行する。つまり、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う、Shuffled BPアルゴリズムのステップ1の行処理において、上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムで使用する更新式である下記式(22)により更新演算を行う。なお、下記式(22)中の各パラメータは、下記式(20)、上記式(14)、(15)に従うものとする。また、他の処理については、上記実施の形態4と同様であり、記号は前記の通りである。
Figure 0004777261
上記式(15)中のMin−Sumアルゴリズムに対する補正項となるδは、Sum−Productアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の絶対値の差と2による除算、定数Cからの減算のみで算出することができる。
なお、定数Cについては、Sum−Productアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切な値を設定することで、復号性能を向上させることもできる。さらに、2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
減算定数βは、Offset BPアルゴリズムにおけるOffset Factorβと同様な効果を持ち、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、減算付き補正型Min−Sumアルゴリズムの行処理で算出されるLLRの大きさを、Sum−Productアルゴリズムで算出されるLLRの大きさと同程度に調整することで、復号性能を向上させる効果を持つ。
本実施の形態9によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、減算付き補正型のMin−Sumアルゴリズムによる復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(1)の関係に従って上記式(22)を用いた行処理を行い、列処理部6は、上述したShuffled BPアルゴリズムのステップ1と同様に上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
また、本実施の形態9による行処理部5は、基本的な構成は図15に示す上記実施の形態6と同様である。つまり、複数の補正演算部12と減算部14から構成される。ここで、補正演算部12は、入力された2値の絶対値の大小比較、補正項の算出及びこれに基づく補正を行い、補正された値と2値の符号(±)との積を算出する。また、行処理部5は、複数の補正演算部12を複数段に接続して構成されており、下段の補正演算部12における入力2値の一方として上段の補正演算部12の算出結果が入力される。各補正演算部12による処理は下記の通りである。
補正演算部12が2値a,bの絶対値を入力した場合、先ず、δ=0.69−(||a|−|b||)>>2を計算する(ln(2)〜0.69)。そして、|a|<|b|であれば、sign(a)×sign(b)×(|a|−δ)を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×(|b|−δ)を出力する。なお、sign(a)はaの符号(±)を示している。行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、補正演算部12がそれぞれの大小比較と補正、符号(±)の積を算出した値を列処理部6へ受け渡す処理を行う。
減算部14では、上述した補正演算部12による演算結果を定数β(Offset Factor)で除算する。つまり、減算部14は、入力値cに対し、(c−β)を計算して出力する。このように、行処理部5において、補正演算部12は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積及び補正項による補正を行い、減算部14は、補正演算部12が算出した値を定数βで減算した後、列処理部6へ受け渡す。
このように、本実施の形態9によるLDPC符号復号装置は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うShuffled BPアルゴリズムを基にして、その各行処理において上記式(22)を利用する。
次に動作について説明する。
本実施の形態9によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態1における図3のフローチャートと同様である。よって、図3に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5は、1列目からNg列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に1列目からNg列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(1)においてg=2のとき、行処理部5は、(Ng+1)列目から2Ng列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(Ng+1)列目から2Ng列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3以降の処理を逐次実行し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、上記式(1)においてg=Gのとき、行処理部5は、(N−Ng)列目からN列目までの列に1を持つ行の行処理を上記式(22)に従って行い、処理結果を列処理部6へ受け渡す。列処理部6では、同様に(N−Ng)列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(22)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態9によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うと共に、その行処理において上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズムに従って処理を行うので、確率伝搬が効率的に行われることになり、復号演算の収束が速くなり繰り返し回数を削減することができる。
また、Sum−Productアルゴリズムの近似に基づいて受信情報から補正を行う除算付き補正型のMin−Sumアルゴリズムを基本アルゴリズムとしたことで、従来のShuffled BPアルゴリズムよりも計算コストを削減しつつ、高い復号性能を得ることができる。
実施の形態10.
この実施の形態10は、検査行列の全ての行に対して一定の因子α(Normalization Factor)は持たず、行ごとに決定した因子αm(Normalization Factor)を持つ復号アルゴリズムに従い復号を行うものである。
なお、本実施の形態10は、通常のNormalized BPアルゴリズム、上記実施の形態5で示した除算付き補正型Min−Sumアルゴリズム、また、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなど、因子α(Normalization Factor)を有する全ての復号アルゴリズムにおいて適用可能である。
ここでは、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Normalized BPアルゴリズムにおいて、行ごとの因子αm(Normalization Factor)を適用したLDPC符号復号装置を例に挙げて説明する。
本実施の形態10によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、行ごとの因子αm(Normalization Factor)を用いたNormalized BPアルゴリズムを実行するために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態10における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(23)の演算を実行する。なお、下記式(23)中の各パラメータは、上記実施の形態4と同様であり、記号は前記の通りである。因子αmは、m行目のNormalization Factorを示している。
Figure 0004777261
図17は、変調方式を4PAM Gray Mappingとした場合の受信値の分布を示すグラフである。図において、黒塗りのプロットで示す各変調信号点に対応する2ビットのデジタル符号00,01,11,10のうち、ビット値0,0,1,1を示すMSB(Most Significant Bit)の0と1の境界は、0(図中、実線の部分)のみであるが、ビット値0,1,1,0を示すLSB(Least Significant Bit)の0と1の境界は−2と2(図中、破線の部分)の2箇所であり、LSBの方がビットの反転が起こりやすいことがわかる。
このように、MSBとLSBでは、ビット誤り率に違いがある。また、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の比で表されるαmは、各行で1を持つビットの誤り率に依存する。これにより、変調方式4PAMの場合、因子αmは、各行で1を持つビットのMSBである個数、LSBである個数に依存することになる。
そこで、本実施の形態では、αmについて各行に対応した値を予め用意する。なお、ここでは4PAMを例に挙げたが、他に受信信号の各ビットにおけるビット誤り率に違いの生じる多値変調方式でも同様である。
また、イレギュラーLDPC符号の場合、行重みが一定ではない。このため、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の比であるαmは行重みに依存する。これにより、本実施の形態では、αmについて各行の行重みに対応した値を用意する。なお、αmは、シミュレーション若しくは密度発展法を用いて事前に算出しておく。
本実施の形態10によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して行ごとの因子αm(Normalization Factor)を用いたNormalized BPアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(23)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図18は、実施の形態10によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9、除算部10a及び除算定数選択部15から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
除算部10aでは、上述した比較部9による演算結果を、除算定数選択部15からの定数αm(Normalization Factor)で除算する。つまり、除算部10aは、入力値cに対し、c/αmを計算して出力する。このように、行処理部5において、比較部9は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を求め、除算部10aは、比較部9が算出した値を定数αmで除算した後、列処理部6へ受け渡す。
除算定数選択部15では、各行のαm値を予め記憶しており、制御部7より通信路及び符号構成の情報を受け、この情報中の処理対象の行番号mを入力して各行のαmを決定し、除算部10aへ受け渡す。
このように、本実施の形態10による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を比較部9で求め、除算部10aが、比較部9により得られた値を除算定数選択部15が選択したαmで除算した後、列処理部6へ受け渡す処理を行う。
次に動作について説明する。
本実施の形態10によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化すると共に、除算定数選択部15に対して変調方式や行重みに関する情報を受け渡す。この情報に基づき、除算定数選択部15は、各行のαmを決定して除算部10aへ渡す。
次に、ステップST4aにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(23)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態10によれば、Normalized BPアルゴリズムにおけるNormalization Factorを変調方式及び符号構成に応じて行ごとに設定するので、多値変調された場合や符号がイレギュラーLDPC符号の場合などに従来のNormalized BPアルゴリズムで復号を行うよりも、伝搬される確率情報がSum−Productアルゴリズムに近づき、復号性能を向上させることができる。
なお、上記実施の形態10では、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Normalized BPアルゴリズムにおいて、行ごとの因子αm(Normalization Factor)を適用したLDPC符号復号装置を例に挙げたが、このアルゴリズムの他、上記実施の形態5で示した除算付き補正型のMin−Sumアルゴリズム、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなどにおいて、行ごとの因子αmを適用したLDPC符号復号装置を構成しても良い。
実施の形態11.
この実施の形態11は、検査行列の全ての行に対して一定の因子β(Offset Factor)は持たず、行ごとに決定した因子βm(Offset Factor)を持つ復号アルゴリズムに従い復号を行うものである。
なお、本実施の形態11は、通常のOffset BPアルゴリズム、上記実施の形態6で説明した減算付き補正型のMin−Sumアルゴリズム、また、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなど、因子β(Offset Factor)を有する全ての復号アルゴリズムにおいて適用可能である。
ここでは、従来のMin−Sumアルゴリズムと同様に、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Offset BPアルゴリズムにおいて、行ごとの因子βm(Offset Factor)を適用したLDPC符号復号装置を例に挙げて説明する。
本実施の形態11によるLDPC符号復号装置は、図9に示した上記実施の形態4によるLDPC符号復号装置と基本的に同様な構成を有しているが、行ごとの因子βm(Offset Factor)を用いたOffset BPアルゴリズムを実行するために行処理部5の構成及びその処理内容が異なる。具体的に説明すると、本実施の形態11における行処理部5では、上記式(11)に対し、上記実施の形態4における行処理で用いた上記式(12)の代わりに、下記式(24)の演算を実行する。なお、下記式(24)中の各パラメータは、上記実施の形態4と同様であり、記号は前記の通りである。因子βmは、m行目のOffset Factorを示している。
Figure 0004777261
例えば、変調方式を4PAM Gray Mappingとした場合の受信値は、上述したように図17のように分布し、MSBとLSBとでビット誤り率に違いがある。また、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の差で表されるβmは、各行で1を持つビットの誤り率に依存する。これにより、変調方式4PAMの場合、βmは、各行で1を持つビットのMSBである個数、LSBである個数に依存することになる。
そこで、本実施の形態では、βmについて各行に対応して値を予め用意する。なお、ここでは4PAMを例として挙げたが、他にビット誤り率に違いの生じる多値変調方式でも同様である。
また、イレギュラーLDPC符号の場合、行重みが一定ではない。このため、Sum−ProductアルゴリズムとMin−Sumアルゴリズムの行処理結果の平均値の差で表されるβmは、行重みに依存する。これにより、本実施の形態では、βmについて各行の行重みに対応した値を用意する。なお、βmは、シミュレーション若しくは密度発展法を用いて事前に算出しておく。
本実施の形態11によるLDPC符号復号装置は、上述したように、基本的な構成は図9に示す上記実施の形態4と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号に対して行ごとの因子βm(Offset Factor)を用いたOffset BPアルゴリズムに従った行処理と列処理による復号が実行される。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(24)を用いた行処理を行い、列処理部6は、上記式(16)の関係に対し、上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
図19は、実施の形態11によるLDPC符号復号装置の行処理部の構成を示すブロック図である。本実施の形態による行処理部5は、複数の比較部9、減算部11a及び減算定数選択部16から構成される。比較部9は、図2で示したものと同様に、入力された2値の絶対値の大小比較を行い、小さい方と2値の符号(±)との積を算出する。行処理部5において、複数の比較部9が複数段に接続している。また、図に示すように、下段の比較部9は、入力2値の一方として上段の比較部9の算出結果を入力する。各比較部9による処理は下記の通りである。
比較部9が2値a,bの絶対値を入力した場合、|a|<|b|であれば、sign(a)×sign(b)×|a|を出力する。また、|a|<|b|以外であれば、sign(a)×sign(b)×|b|を出力する。なお、sign(a)はaの符号(±)を示している。
減算部11aでは、上述した比較部9による演算結果を、減算定数選択部16からの定数βm(Offset Factor)で減算する。つまり、減算部11aは、入力値cに対し、c−βmを計算して出力する。このように、行処理部5において、比較部9は、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を求め、減算部11aは、比較部9が算出した値を定数βmで減算した後、列処理部6へ受け渡す。
減算定数選択部16では、各行のβm値を予め記憶しており、制御部7より通信路及び符号構成の情報を受け、この情報中の処理対象の行番号mを入力して各行のβmを決定し、減算部11aへ受け渡す。
このように、本実施の形態11による行処理部5では、途中結果保持部4から行処理を行う該当ビットのLLRを入力し、それぞれの大小比較と符号(±)の積を比較部9で求め、減算部11aが、比較部9により得られた値を減算定数選択部16が選択したβmで減算した後、列処理部6へ受け渡す処理を行う。
次に動作について説明する。
本実施の形態11によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態4における図11のフローチャートと同様である。よって、図11に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化すると共に、減算定数選択部16に対して変調方式や行重みに関する情報を受け渡す。この情報に基づき、減算定数選択部16は、各行のβmを決定して減算部11aへ渡す。
次に、ステップST4aにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、行処理部5は、復号したいLDPC符号の検査行列H(=[Hm,n])に対して繰り返しi回目の復号演算における行処理を行う。具体的には、上記式(11)の関係に従って1列目からN列目までの列に1を持つ行の行処理を上記式(24)を用いて行い、処理結果を途中結果保持部4に保持させる。
ステップ1において、行処理部5による行処理が終了すると、列処理部6は、復号したいLDPC符号の検査行列Hに対して繰り返しi回目の復号演算における列処理を行う。具体的には、上記式(16)の関係に従って1列目からN列目までの列処理を行い、処理結果を途中結果保持部4に保持させる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態11によれば、Offset BPアルゴリズムにおけるOffset Factorを変調方式及び符号構成に応じて行ごとに設定するので、多値変調された場合や符号がイレギュラーLDPC符号の場合などに従来のOffset BPアルゴリズムで復号を行うよりも、伝搬される確率情報がSum−Productアルゴリズムに近づき、復号性能を向上させることができる。
なお、上記実施の形態11では、繰り返し復号の任意の1回で符号化信号に対して全ての行処理を終えてから当該符号化信号の全てのビットに対する列処理を行う、Offset BPアルゴリズムにおいて、行ごとの因子βm(Offset Factor)を適用したLDPC符号復号装置を例に挙げたが、このアルゴリズムの他、上記実施の形態6で示した減算付き補正型のMin−Sumアルゴリズム、これらアルゴリズムにおいて受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムなどにおいて、行ごとの因子βmを適用したLDPC符号復号装置を構成しても良い。
実施の形態12.
図20は、この発明の実施の形態12によるLDPC符号復号装置の構成を示すブロック図である。本実施の形態12によるLDPC符号復号装置1は、図1に示す上記実施の形態1の構成と同様に、受信LLR計算部2及び復号コア部3から構成される。ここで、上記実施の形態1とは、演算列制御部17を備える点で異なる。演算列制御部17は、グループ分割に基づいて行処理部5及び列処理部6による演算対象の列を決定して、グループ分割に基づく復号処理を制御する。
実施の形態12によるLDPC符号復号装置では、従来のGroup Shuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行うものであるが、符号構成に基づいて複数ビットごとの組み合わせであるグループに分割する。
ここで、本実施の形態における符号構成に基づくグループ分割について説明する。
先ず、行処理と列処理による確率情報の算出及び更新を1ビットずつ行う復号アルゴリズムでは、そうでないアルゴリズムよりも少ない繰り返し回数で復号を終えるのは、算出した確率情報を即座に更新して同じ繰り返し回数における次の復号演算で利用することで、確率情報の伝播が効率的に行われるからである。
行処理と列処理による確率情報の算出及び更新を複数ビットずつ行うGroup Shuffled BPアルゴリズムの場合も同様であるが、従来のGroup Shuffled BPアルゴリズムでは、同じグループの列同士が互いに同じ行に1を持っていると、互いに更新されていない確率情報を用いて処理を行うことになる。
そこで、本実施の形態では、Group Shuffled BPアルゴリズムのように行処理と列処理による確率情報の算出及び更新を複数ビットずつ行う復号アルゴリズムにおいて、複数ビットの組み合わせを作るグループ分割の際に同じグループに含まれる列同士が互いに同じ行に1を持たないようにグループ分割する。これにより、同じグループの列同士が互いに同じ行に1を持っている場合と比較して確率情報の伝播を効率的に行うことできるようになり、繰り返し回数を削減することができる。
図21は、LDPC符号化行列の構成例を示す図であり、図中で行列の右上を三角形で囲んだ部分が0となるLDPC符号化行列を示している。また、図22は、実施の形態12のLDPC符号復号装置によるLDPC符号行列のグループ分割例を示す図である。図21に示すようなLDPC行列では、符号化行列が復号行列と共通で用いることができ、実用上の利点は多い。
このようなLDPC符号で符号化された符号化行列をグループ分割して、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う場合、図22に示すように、パリティビット部分を連続させないグループ分割を行う。図22の例では、パリティビット部分を連続させないグループ分割としてLDPC行列を1列おきにグループ分割している。なお、図中、各グループに付した符号A,B,C,D,E,Fは、それぞれ第1番目から第6番目のグループを示すグループ1,2,3,4,5,6を表すものとする。
本実施の形態12によるLDPC符号復号装置では、符号構成に基づいて、図22に示すようにLDPC符号化行列をグループ分割するGroup Shuffled BPアルゴリズムを実行する。以下に簡単に説明する。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLR(Log Likelihood Ratio)の初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、下記式(25)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:Hm,n=1}、M(n):={m:Hm,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
Figure 0004777261
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
但し、各記号は、上記式に従うものとする。また、GR(g)は、g番目のグループを構成する列の組を表すものとする。図22に示す例でGR(g)を具体的に示すと、以下のようになる。
グループ1(GR(1))は2k+1=1,3,5,7,・・・,Ng−1であり、kは0以上Ng未満である。
グループ2(GR(2))は2k+2=2,4,6,8,・・・,Ngであり、kは0以上Ng未満である。
グループ3(GR(3))は2k+1=Ng+1,Ng+3,Ng+5,・・・,2Ng−1であり、kはNg以上2Ng未満である。
グループG(GR(G))は、2k+2=G・Ng−2Ng+2,・・・,G・Ngであり、kは(G/2−1)・Ng以上G・Ng未満である。
本実施の形態12によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により1ビットおきにグループ分割したGroup Shuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(25)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したGroup Shuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列をグループ分割して行処理部5及び列処理部6による演算対象の列を制御する。
次に動作について説明する。
図23は、実施の形態12によるLDPC符号復号装置の動作を示すフローチャートであり、この図に沿って図22に示す符号化行列を用いた復号動作を例に挙げて説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された1列ごとのグループに対して行処理部5及び列処理部6による繰り返し復号処理を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])について、図22に示すように、演算列制御部17は、図中で符号Aを付したグループ1に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ1に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ1に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図中で符号Bを付したグループ2に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ2に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、演算列制御部17は、グループgに含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループgに含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループgに含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
図22の例では、演算列制御部17が、図中で符号Fを付したグループ6に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、グループ6に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(25)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
図24は、実施の形態12によるLDPC符号復号装置により上述のように符号構成に基づいて符号化行列をグループ分割して復号した場合と、従来のGroup Shuffled BPアルゴリズムでグループ分割して復号した場合とにおける、ビット誤り率とこのビット誤り率でのパリティ検査がOKになるまでに要した復号繰り返し回数の平均値との関係をプロットしたグラフである。図において、プロット間を破線で繋いだ方が従来のGroup Shuffled BPアルゴリズムによるものであり、実線でプロット間を繋いだものが本実施の形態12によるものである。
また、図24において、LDPC符号は、右上三角0構造のイレギュラーLDPC符号、符号長64800、符号化率1/2、最大列重み7、最大行重み8、最大繰り返し回数Imaxが20回である。また、通信路は、AWGN(Additive White Gaussian Noise;加法性白色ガウス雑音)通信路を想定しており、QPSK(Quadrature Phase Shift Keying)で復調している。
ここで、実施の形態12では、上述したように、符号構成に基づき、1列ごとにLDPC行列をグループ分割したGroup Shuffled BPアルゴリズムで復号処理を実行している。また、従来のGroup Shuffled BPアルゴリズムでは、従来と同様に、LDPC行列における先頭の第1ビットから所定のビットごとのグループに分割している。
図24に示すように、本実施の形態12による復号処理によって、パリティ検査がOKとなるまでに要した復号繰り返し回数が、従来のGroup Shuffled BPアルゴリズムと比較して格段に削減されていることがわかる。なお、従来のGroup Shuffled BPアルゴリズムとの比較例を示したが、本実施の形態12は、従来のShuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う復号アルゴリズムに対しても同様に繰り返し回数を削減することができる。
以上のように、この実施の形態12によれば、隣り合った列に1を持つLDPC符号に対し、Group Shuffled BPアルゴリズムのようにグループ分割して受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う復号アルゴリズムでLDPC符号の復号を行う場合において、LDPC符号の構成に基づいて1列ごとにLDPC符号化行列をグループ分割し、グループごとの列について1を持つ行を行処理すると共に、当該グループに含まれる列の列処理を行って復号処理するので、隣り合った列を同じグループに分割しないことから、確率情報の伝播が効率的に行われる。これにより、図24に示すように、LDPC符号化行列の先頭ビットから順にグループ分けする従来のGroup Shuffled BPアルゴリズムに比べ繰り返し回数を削減することができる。
実施の形態13.
上記実施の形態12では、LDPC符号の構成に基づいて1列ごとにLDPC符号化行列をグループ分割するLDPC符号復号装置を示したが、本実施の形態13によるLDPC符号復号装置は、受信信号の変調方式に基づいて復号処理の対象をグループ分割するものである。
本実施の形態13によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17により変調方式に基づいて受信信号をグループ分割し、行処理部5及び列処理部6により受信信号のグループごとに復号処理を実行する。
また、変調方式の仮定によって本実施の形態13におけるグループ分割も上記実施の形態12と同様となっている。つまり、本実施の形態13では、Group Shuffled BPアルゴリズムのようにグループ分割して受信信号に対する行処理と列処理による確率情報の算出及び更新を行う復号を実行するにあたり、受信信号の変調方式に基づいて、上記実施の形態12で示した図22のように符号化行列を1列ごとのグループ1〜6に分割する。
ここで、上述した図17に示す4PAM Gray Mappingの受信値の分布からわかるように、変調方式が多値変調である場合、受信信号のビットごとの誤り率が異なる。図17の場合では、受信信号のMSBはビット誤り率が低く、LSBはビット誤り率が高い。この場合、MSBの復号はLSBの復号に比べて少ない繰り返し回数で復号を終えることができる。
そこで、本実施の形態13は、図17に示す変調方式4PAMの場合を例として、受信信号をMSBのみのグループとLSBのみのグループに分割して、MSBのみのグループを先に演算し、LSBのみのグループを後で演算するように構成する。
なお、Group Shuffled BPアルゴリズムのようにグループ分割をする場合を例に挙げたが、本実施の形態のような受信信号の変調方式に基づいて処理対象をグループ分割する処理は、受信信号に対する行処理と列処理による確率情報の算出及び更新を予め定めた複数ビットずつ行う他の復号アルゴリズムにおいても同様に適用することができる。
また、図17に示すような4PAMを変調方式の例として挙げたが、他に受信信号のビット誤り率に違いの生じる多値変調方式であれば、同様にビット誤り率の違いに応じてグループ分割するようにしてもよい。
本実施の形態13に係る演算アルゴリズムは、上記実施の形態12と同様である。以下に具体的に説明する。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLRの初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、上記式(25)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:Hm,n=1}、M(n):={m:Hm,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。
但し、各記号は、上記式に従うものとする。また、GR(g)は、g番目のグループを構成する列の組を表すとする。GR(g)を具体的に示すと、以下のようになる。
グループ1(GR(1))は2k+1=1,3,5,7,・・・,Ng−1であり、kは0以上Ng未満である。
グループ2(GR(2))は2k+1=Ng+1,Ng+3,Ng+5,・・・,2Ng−1であり、kはNg以上2Ng未満である。
グループ(G/2)(GR(G/2))は2k−1=G・Ng−2Ng−1,・・・,G・Ng−1であり、kは(G/2−1)・Ng以上G・Ng未満である。
グループ(G/2+1)(GR(G/2+1))は2k+2=2,4,6,8,・・・,Ngであり、kは0以上Ng未満である。
グループG(GR(G))は2k+2=G・Ng−2Ng+2,・・・,G・Ngであり、kは(G/2−1)・Ng以上G・Ng未満である。
図22の例では、符号Aを付したグループ1、符号Cを付したグループ3、符号Eを付したグループ5がMSBのみのグループに対応し、符号Bを付したグループ2、符号Dを付したグループ4、符号Fを付したグループ6がLSBのみのグループに対応する。
次に動作について説明する。
本実施の形態13によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された上述した1列ごとのグループに対して、行処理部5及び列処理部6によりMSBのみのグループに続いてLSBのみのグループを処理する繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、図22で符号Aを付したMSBのみのグループ1に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ1に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ1に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図22中で符号Cを付したMSBのみのグループ3に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ3に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ3に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のMSBのみのグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
図22の例では、符号Eを付したMSBのみのグループ5に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ5に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ5に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
このあと、演算列制御部17は、図22で符号Bを付したLSBのみのグループ2に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ2に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、グループ2に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、図22中で符号Dを付したLSBのみのグループ4に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ4に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ4に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降のLSBのみのグループに含まれる全ての列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
図22の例では、グループGに相当する符号Fを付したLSBのみのグループ6に含まれる全ての列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、グループ6に含まれる列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、グループ6に含まれる列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(25)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2において、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態13によれば、4PAMに変調されて送受信された受信信号にGroup Shuffled BPアルゴリズムで復号を行うにあたり、MSBのみとLSBのみのグループに分割し、ビット誤り率が低いMSBのみのグループを先に演算するので、ビット誤り率の高いLSBでは信頼度の高い確率情報をMSBから受けて復号演算を行うことになり、LSBの復号演算は従来よりも効率的に行われ少ない繰り返し回数での復号が可能となる。
実施の形態14.
この実施の形態14は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、符号構成に基づいて復号順序を制御するものである。
本実施の形態14によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17が符号構成に基づいて復号の順序を制御して行処理部5及び列処理部6に復号処理を実行させる点で異なる。
Shuffled BPアルゴリズムを例として符号構成に基づく順序制御の概要を説明する。Shuffled BPアルゴリズムがSum−Productアルゴリズムよりも少ない繰り返し回数で復号を終了するのは、復号過程で算出して受け渡している確率情報の伝搬がSum−Productアルゴリズムよりも効率的に行われているからである。そこで、符号がイレギュラーLDPC符号であれば、列重みの大きい順に順序付けしてShuffled BPアルゴリズムで復号を行う。
例えば、O(g)をg番目に順序付けされた列番号とすると、O(1)は最大列重みを持つ列、O(2)は次に列重みの大きい列、O(3)はその次に列重みの大きい列、と順序付けて列を選択してゆき、Shuffled BPアルゴリズムによる復号を行う。
順序付けしたShuffled BPアルゴリズムは、以下の通りである。
先ず、初期化ステップとして、繰り返し回数iをi=1と設定し、最大繰り返し回数をImaxと設定し、対数尤度比LLR(Log Likelihood Ratio)の初期値zm,n (0)をFn(zm,n (0):=Fn)と設定する。なお、復号したいLDPC符号の検査行列Hは、2元m×n行列H=[Hm,n](nは0以上N未満の整数,mは0以上M未満の整数)であり、Hm,nをHのm行n列目要素とする。
次に、ステップ1として、下記式(26)の条件に対し、上記式(2)及び上記式(3)を演算する行処理を実行する。ここで、N(m),M(n)は、集合[1,N]の部分集合であり、N(m):={n:Hm,n=1}、M(n):={m:Hm,n=1}と定義する。つまり、N(m)は、検査行列Hのm行において1を持つ列インデックスの集合を意味し、M(n)は、LDPC検査行列Hのm行において1を持つ列インデックスの集合を意味する。
Figure 0004777261
また、集合Aから元aを取り去って得られる集合をA\aと表記する。即ち、N(m)\nは集合N(m)からn列目を除く列インデックスの集合であり、M(n)\mが集合M(n)からm行目を除く行インデックスの集合を示している。zm,n' (i)は、繰り返しi回目で更新したLLRであり、εm,n (i)はチェックノードからビットノードへ送る繰り返しi回目のLLRである。
さらに、ステップ1において、上記式(25)の条件に対し、上記式(4)及び上記式(5)を演算する列処理を実行する。ここで、zm,n (i)はビットノードからチェックノードへ送る繰り返しi回目のLLRである。さらに、zn (i)は繰り返しi回目の事後値である。
次に、ステップ2として、事後値zn (i)を硬判定し、上記式(6)で表される復号系列を生成する。このあと、上記式(7)の条件を満たせば、後述するステップ3の処理に移行し、これら2条件のいずれをも満たさなければ、繰り返し回数iを加算してステップ2の処理に戻る。ステップ3では、復号結果として、ステップ2で得た上記式(6)に従う復号系列を出力する。但し、各記号は、上記式に従うものとする。また、O(g)はg番目に順序付けされた列を表すものとする。
本実施の形態14によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により符号構成に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列を列重みの大きい順に順序制御して行処理部5及び列処理部6に復号演算させる。
次に動作について説明する。
本実施の形態14によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により指定された列重みが大きい順で列に対して、行処理部5及び列処理部6により繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、列重みの最も大きい第1番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第1番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第1番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、列重みが次に大きい第2番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第2番目に演算を行う列で1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第2番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降も列重みが大きい順に列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
最後に、演算列制御部17は、第g番目に演算を行う列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第g番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。一方、列処理部6は、第g番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(26)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態14によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、符号構成に基づいて復号順序を制御するので、先に演算した確率情報が早く伝搬されることになり繰り返し回数を削減することができる。また、符号構成に基づいて順序制御しているため、符号情報を受信するたびに順序付けする必要はない。
なお、上記実施の形態14では、Shuffled BPアルゴリズムの順序制御を行う例を示したが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムであれば、他のアルゴリズムであっても同様である。
実施の形態15.
この実施の形態15は、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、受信信号の変調方式に基づいて復号順序を制御するものである。
本実施の形態15によるLDPC符号復号装置は、図20に示した上記実施の形態12によるLDPC符号復号装置と基本的に同様な構成を有しているが、演算列制御部17が受信信号の変調方式に基づいて復号順序を制御して行処理部5及び列処理部6に復号処理を実行させる点で異なる。
Shuffled BPアルゴリズムを例として変調方式に基づく順序制御の概要を説明する。先ず、変調方式が多値変調である場合、ビットごとの誤り率が異なる。例えば、上述した図17に示す変調方式4PAM Gray Mappingでは、符号の先頭ビットから順に変調信号点を割り当てると、ビットごとの誤り率でMSBは誤り率が低く、LSBは誤り率が高くなる。
このような受信信号を復号する場合、MSBの復号過程で算出される確率情報は、信頼度が高い特徴がある。そこで、Shuffled BPアルゴリズムで復号を行う場合、MSBのビットから順に復号を行うことで、LSBには常に信頼度の高い確率情報が伝搬されることになる。
例えば、O(g)をg番目に順序付けされた列番号とすると、先にMSBに対応する全ての列を選択し、続いてLSBに対応する列を選択する、O(1)=1、O(2)=3、O(3)=5、O(4)=7,・・・,2n+1,・・・,N−1,2,4,6,・・・,2n,・・・,Nという順で列を選択してゆき、Shuffled BPアルゴリズムによる復号を行う。
本実施の形態15によるLDPC符号復号装置は、上述したように、演算列制御部17を有する以外、基本的な構成は図1に示す上記実施の形態1と同様である。つまり、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により受信信号の変調方式に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を実行する。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7、復号結果判定部8及び演算列制御部17から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。演算列制御部17では、上述したようにLDPC符号化行列を受信信号の変調方式に基づいてビット誤りの低いビットに対応する全ての列を選択し続いてビット誤りの高いビットに対応する列を選択するように順序制御して行処理部5及び列処理部6に復号演算させる。
次に動作について説明する。
本実施の形態15によるLDPC符号復号装置の基本的な動作の流れは、上記実施の形態12における図23のフローチャートと同様である。よって、図23に沿って動作を説明する。
先ず、受信LLR計算部2は、受信情報を入力(ステップST1)し、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4bにおいて、繰り返し回数i=1から最終復号回(最大繰り返し回数Imax)まで、演算列制御部17により受信信号の変調方式に基づいて選択された列に対して、行処理部5及び列処理部6により繰り返し復号を行うステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、復号したいLDPC符号の検査行列H(=[Hm,n])について、演算列制御部17は、変調方式に基づいて特定した受信信号のMSBに対応する先頭の列を、第1番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第1番目に演算を行う列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第1番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、変調方式に基づいて特定した受信信号の次のMSBに対応する列を第2番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、演算列制御部17により指定された第2番目に演算を行う列で1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、第2番目に演算を行う列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(25)におけるg=3以降も、MSBに対応する列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
MSBに対応する列の演算が完了すると、演算列制御部17は、変調方式に基づいて特定した受信信号のLSBに対応する先頭の列を、MSBに対応する列の次に第1番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第1番目に演算を行うLSBに対応する列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、当該列の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、演算列制御部17は、変調方式に基づいて特定した受信信号のLSBに対応する次の列を第2番目に演算を行う列としてその列の番号を行処理部5及び列処理部6に受け渡す。これにより、行処理部5は、第2番目に演算を行うLSBに対応する列に1を持つ行の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6は、当該列の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、演算列制御部17は、上記式(26)におけるg=3以降においても、LSBに対応する列の番号を行処理部5及び列処理部6に逐次受け渡し、その都度、行処理部5による処理結果が列処理部6に受け渡され、列処理部6の処理結果が途中結果保持部4に保持される。
上述した処理において、行処理部5が上記式(26)の関係に対して上記式(2)及び上記式(3)を演算することで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やして、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態15によれば、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うにあたり、受信信号の変調方式に基づいて復号順序を制御するので、例えば4PAMに変調されて送受信された受信信号をShuffled BPアルゴリズムで復号する場合、MSBから順序付けして先にMSBの演算を行うことで、LSBへは信頼度の高い確率情報が伝搬され、LSBの復号が早く進み、繰り返し回数を削減することができる。
なお、上記実施の形態15では、Shuffled BPアルゴリズムの順序制御を行う例を示したが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムであれば、他のアルゴリズムであっても同様である。
また、上記実施の形態15では、変調方式として4PAMを例として挙げたが、ビット誤り率に違いの生じる他の多値変調方式でも同様に誤り率の低く信頼度の高いビットから順序付けを行うことができる。
実施の形態16.
図25は、この発明の実施の形態16による通信装置の構成を示すブロック図である。図に示すように、本実施の形態16による通信装置18は、受信復号装置(受信復号部)19と符号化送信装置(符号化送信部)20とから構成される。受信復号装置19は、図1に示した基本構成の他、符号化送信装置20により送信されたLDPC符号化信号を受信して復調する復調部21を備えている。
符号化送信装置20は、符号化部22及び変調部23から構成される。符号化部22では、送信すべき情報を入力してLDPC符号の符号化を行う。変調部23は、符号化部22からの符号化データを入力して変調し、変調信号として受信復号装置19へ送信する。
実施の形態16による通信装置18では、受信復号装置19と符号化送信装置20との間で、LDPC符号の符号構成に適応して検査ビットに変調信号点を割り当てて符号化信号の送受信を行い、符号構成に基づく順序制御に従ってShuffled BPアルゴリズムのような受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号を実行する。
図26は、実施の形態16による通信装置で使用するLDPC符号の構成を示す図である。図26に示すように、8行16列の検査行列であって右上三角の要素が0の構造を有し、また検査ビットが対角に同値となる対称構造を含んでいる。図27は、実施の形態16による通信装置でLDPC符号を4PAMに変調して送受信する場合におけるビットの割り当ての例を示す図である。図27では、M行N列の行列要素である検査ビットに対する割り当てとして、1列目から(n1−1)列目までにLSB以外を割り当て、n1列目からN列目までにMSB以外を割り当てる。これらの図を用いて実施の形態16の概要を説明する。
上述したように、Shuffled BPアルゴリズムがSum−Productアルゴリズムよりも少ない繰り返し回数で復号を終了するのは、復号過程で算出して受け渡している確率情報の伝搬がSum−Productアルゴリズムよりも効率的に行われているからである。
そこで、図26に示すような右上三角0の符号化行列で検査ビット部分が対角状のLDPC符号が4PAMに変調されて送受信される場合には、図27に示すように検査ビットに誤り率の高いLSBを割り当てて送受信する。復号側ではShuffled BPアルゴリズムで復号を行い、このとき検査ビットであるLSBの復号を先に行う。
また、図27に示すように変調信号点が割り当てられている場合、検査ビットであるLSBの先頭から順に復号を行う。LDPC符号の復号における行処理は、上記実施の形態15に示す行処理のように、対象列以外の列の情報を用いて行う。このため、LSBの先頭であるn1列目を演算する際にはMSBの持つ信頼性の高い情報のみを用いて演算することができる。
さらに、(n1+1)列目の演算には、MSBの持つ情報と既に1回演算したn1列目の情報のみを用いて演算することができるため、常に信頼性の高い情報のみを用いて演算することになる。
例えば、O(g)をg番目に順序付けされた列番号とすると、図27の例では、O(1)はn1列目(LSB)、O(2)は(n1+1)列目(LSB)、O(N−n1)はN列目(LSB)、というように順位付けして列を選択し、Shuffled BPアルゴリズムによる復号を行う。ここで、O(N−n1+1)以降は、LSB以外の1列目から(n1−1)列目の演算を行うことになる。
次に、図25を用いて、符号構成に適応した変調信号点を割り当てて送受信を行い、上述した処理式を備えて上記順序制御を行ったLDPC符号を送受信する、実施の形態16による通信装置18の具体例について述べる。図25に示すように、実施の形態16による通信装置18は、符号化送信装置20と受信復号装置21とから構成されている。ここで、符号化送信装置20は、LDPC符号の符号化を行う符号化部22と符号構成に適応した変調信号点の割り当てを行う変調部23とから構成される。
実施の形態16による通信装置18の受信復号装置19は、変調された信号の復調を行う復調部21、受信情報から受信LLRを算出する受信LLR算出部2及び復号コア部3で構成され、復号コア部3では符号構成に基づいて順序制御したShuffled BPアルゴリズムによるLDPC符号の復号を行う。
復号コア部3は、途中結果保持部4、行処理部5、列処理部6、制御部7及び復号結果判定部8から構成される。途中結果保持部4は、上記実施の形態1で説明したように、行処理部5及び列処理部6による復号の途中結果を保持する。行処理部5では、上記式(26)の条件に対して上記式(2)及び式(3)を用いた行処理を行い、列処理部6は、上記式(25)の条件に対して上記式(4)及び式(5)を用いた列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、上述したShuffled BPアルゴリズムのステップ1と同様に列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
次に動作について説明する。
図28は、実施の形態16による通信装置の動作を示すフローチャートであり、この図に沿って説明する。
先ず、符号化送信装置20の符号化部22は、送信すべき情報を入力すると(ステップST1A)、LDPC符号の検査行列Hを基に求めた生成行列と入力した情報とを用いてLDPC符号化を実行し、符号化データを生成する(ステップST2A)。変調部23は、符号化部22から符号化データを入力すると、図27に示すLDPC符号のビット割り当てに従って、入力した符号化データを4PAM変調して受信復号装置19に送信する(ステップST3A)。
受信復号装置19の復調部21は、符号化送信装置20からの受信信号を復調して(ステップST1−1)、復調結果の受信情報を受信LLR計算部2に出力する。受信LLR計算部2では、受信情報を入力すると(ステップST1)、当該受信情報から受信LLRを算出する(ステップST2)。次に初期化ステップ(ステップST3)において、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST4cにおいて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで行処理部5及び列処理部6による繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(26)においてg=1のとき、行処理部5は、1行目と2行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、n1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、上記式(26)においてg=2のとき、行処理部5は、2行目と3行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、(n1+1)列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、上記式(26)においてg=3以降の処理として、行処理部5は、4行目以降の処理を上記と同様に逐次実行し、その都度、処理結果を列処理部6に受け渡す。また、列処理部6は、(n1+2)列目以降の列処理を逐次実行し、その都度、処理結果を途中結果保持部4に保持させる。
このあと、上記式(26)においてg=N−n1−1になると、行処理部5は、(M−1)行目とM行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、(N−1)列目の列処理を行って処理結果を途中結果保持部4に保持させる。
次に、上記式(26)においてg=(N−n1)のとき、行処理部5は、M行目の行処理を行い、処理結果を列処理部6へ受け渡す。列処理部6では、N列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
これに続く上記式(26)のg=(N−n1+1)〜Nの処理では、列処理部6がLSB以外の列の演算を行う。例えば、LSB以外が割り当てられた1列目が演算対象であれば、行処理部5にて1列目に1を持つ行の行処理を行い、その処理結果を列処理部6へ受け渡す。列処理部では、同様に1列目の列処理を行って処理結果を途中結果保持部4に保持させる。
上述した処理において、行処理部5が上記式(2)に従うことで、g=1以降の処理では、繰り返しi回目にて既に更新されたLLRを持つ列に関しては、受信LLRではなく更新されたLLRを用いて行処理が実行される。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまでステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3(ステップST5)として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態16によれば、検査行列の右上三角が0の構造を持ち、検査ビットが対角状のLDPC符号で多値変調して符号化データを送受信するにあたり、当該符号構成に適応して変調信号点を割り当てて送受信し、その受信信号をShuffled BPアルゴリズムで復号を行う際、LSBから順序付けして先にLSBの演算を行うので、LSBへは信頼度の高い確率情報が伝搬され、LSBの復号が早く進み、繰り返し回数を削減することができる。
なお、上記実施の形態16では、Shuffled BPアルゴリズムの順序制御を行う例を示すが、他の受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ、若しくは予め定めた複数ビットずつ行う復号アルゴリズムでも同様である。また、多値変調方式として4PAMを例とするが、ビットごとに誤り率に偏りが現れる他の多値変調方式でも同様である。
また、上記実施の形態16では、変調方式として4PAMを例として挙げたが、他にビット誤り率に違いの生じる多値変調方式でも同様にして、誤り率の高いビットを検査ビットに割り当てた場合には、誤り率の高いLSBから順に復号を行うようにしてもよい。
実施の形態17.
この実施の形態17は、Shuffled BPアルゴリズムのように受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行うアルゴリズムで復号を行うにあたり、これらの演算を並列化して実行するものである。
図29は、この発明の実施の形態17によるLDPC符号復号装置の構成を示すブロック図である。実施の形態17によるLDPC符号復号装置1は、上記実施の形態で示した構成と同様に受信LLR算出部2と復号コア部3で構成される。但し、実施の形態17による復号コア部3は、復号途中結果保持部4、制御部7及び復号結果判定部8の他、行重みの大きさに応じて並列に行処理を実行する行処理部5−1〜5−w及びこれらの処理結果に応じて列処理を実行する列処理部6を有する。
つまり、通常、Shuffled BPアルゴリズムでは、選択した1列において1を持つ行の行処理を行い、その列の列処理を行う。これに対して、実施の形態17によるLDPC符号復号装置1では、Shuffled BPアルゴリズムで復号を行うにあたり、行処理及び列処理の演算を並列に実行する。
次に動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力すると、当該受信情報から受信LLRを算出する。次に初期化ステップにおいて、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
続いて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで、上記式(1)の条件に対し、上記式(2)、(3)に従う行処理部5−1〜5−wによる行処理及び上記式(4)、(5)に従う列処理部6による列処理からなる繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
図30は、図29中の行処理部及び列処理部による復号演算を説明するためのブロック図である。この図を用いて復号演算の流れを説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5−1〜5−wは、1列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6へ受け渡す。
次に、g=2のとき、列処理部6は、1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。一方、行処理部5−1〜5−wは、2列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。
続いて、g=3のとき、列処理部6は、2列目の列処理を行い、処理結果を途中結果保持部4に保持させる。行処理部5−1〜5−wでは、3列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。
同様に、g=4以降において、行処理部5−1〜5−wによって4列目以降の列に1を持つw行分の行に対する行処理を並列に逐次実行し、各処理結果が列処理部6に受け渡される。一方、列処理部6では3列目以降の列処理を逐次実行して、各処理結果を途中結果保持部4に保持する。このように復号演算を並列化することで、処理時間を削減することができる。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
なお、上述したように行処理と列処理を並列化した場合、次の行処理には1列前の行処理の結果が反映できず、Shuffled BPアルゴリズムの特徴である効率的な確率伝搬を遅らせるように見える。しかしながら、一般的にLDPC符号の行列で1を持つ要素は非常に疎であり、隣の列に1を持つことはほとんどない。このため、通常のLDPC符号の検査行列であれば、確率伝搬に大きく影響することはない。
図31は、図29中の行処理部及び列処理部による他の復号演算を説明するためのブロック図である。上述したように、一般的なShuffled BPアルゴリズムであれば、隣の列に1を持つことはほとんどないため、確率伝搬に大きく影響することはないが、上記実施の形態12で示した図21のLDPC符号の行列のように検査ビット部分の1が隣り合っている場合、図31に示すように並列化した行処理のみを行えば良い。
繰り返しi回目の復号演算を例に挙げて具体的に説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、上記式(1)においてg=1のとき、行処理部5−1〜5−wは、1列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6へ受け渡す。列処理部6では、1列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
次に、g=2のとき、行処理部5−1〜5−wは、2列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。列処理部6では、2列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
続いて、g=3のとき、行処理部5−1〜5−wでは、3列目の列に1を持つw行分の行に対する行処理を並列に実行し、処理結果を列処理部6に受け渡す。列処理部6は、3列目の列処理を行い、処理結果を途中結果保持部4に保持させる。
同様に、g=4以降において、行処理部5−1〜5−wによって4列目以降の列に1を持つw行分の行に対する行処理を並列に逐次実行し、各処理結果が列処理部6に受け渡される。一方、列処理部6では4列目以降の列処理を逐次実行して、各処理結果を途中結果保持部4に保持する。
以上のように、この実施の形態17によれば、Shuffled BPアルゴリズムにおける復号演算を並列に実行する行処理部5−1〜5−w及び列処理部6を設けたので、復号演算に係る処理時間を短縮することができ、復号処理による遅延時間を削減することが可能となる。
なお、上記実施の形態17では、Shuffled BPアルゴリズムの行処理及び列処理の演算を並列化した例を示したが、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う、他の復号アルゴリズムでも同様に適用することができる。
実施の形態18.
この実施の形態18は、Shuffled BPアルゴリズムのように、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う復号アルゴリズムで、巡回構造を持つLDPC符号を復号するにあたり符号構造に基づいて復号演算を並列に実行する。
本実施の形態18によるLDPC符号復号装置は、図29に示した上記実施の形態17によるLDPC符号復号装置と基本的に同様な構成を有しているが、巡回構造を持つLDPC符号の符号構造に基づいて復号演算を並列に実行するために各行処理部の処理内容が異なる。以降では、Shuffled BPアルゴリズムにおいて、擬似巡回符号の符号構成の特徴を利用して復号演算を並列に処理する構成を例に挙げて具体的に説明する。
擬似巡回符号は、図32に模式図で示すように、単位行列である基本行列I(0)と基本行列を巡回置換した行列I(1),I(2),I(3),・・・,I(k)の組み合わせで構成される。構成された擬似巡回符号をH=[Hm,n]とする。ここで、nは0以上N未満の整数、mは0以上M未満の整数であり、Hm,nはHのm行n列目要素とする。集合[1,N]の部分集合N(m)をN(m)={n:Hm,n=1}、M(n)をM(n)={m:Hm,n=1}と定義する。
つまり、N(m)は検査行列Hのm行において1が立っている列インデックスの集合を意味し、M(n)は検査行列Hのn行において1が立っている行インデックスの集合を指す。また、単位行列の大きさを(p×p)とする。図32の例では、N=4p,M=3pとなっており、擬似巡回符号には以下の特徴がある。
(特徴1)
M(n)={m:Hm,n=1}(nは1以上p以下)において、互いに同じ行に1を持たない。
M(n)={m:Hm,n=1}(nはp以上2p以下)において、互いに同じ行に1を持たない。
M(n)={m:Hm,n=1}(nは2p以上3p以下)において、互いに同じ行に1を持たない。
(特徴2)
N(m)={n:Hm,n=1}(mは1以上p以下)において、互いに同じ列に1を持たない。
N(m)={n:Hm,n=1}(mはp以上2p以下)において、互いに同じ列に1を持たない。
N(m)={n:Hm,n=1}(mは2p以上3p以下)において、互いに同じ列に1を持たない。
このような擬似巡回符号では、Shuffled BPアルゴリズムで復号を行う際、特徴1からnが1以上p以下のときでは列処理を並列して行うことができ、特徴2からmが1以上p以下のとき行処理を並列して行う際に同じ列を呼び出すことがなく、ハードウェアで構成する場合には同じメモリにアクセスすることがないという利点がある。
本実施の形態18によるLDPC符号復号装置は、上述したように、受信情報から受信LLRを算出する受信LLR算出部2と復号コア部3とから構成され、復号コア部3により擬似巡回符号の符号構成の特徴を利用して復号演算が並列に処理される。復号コア部3は、途中結果保持部4、行処理部5−1〜5−p、列処理部6、制御部7及び復号結果判定部8から構成される。
途中結果保持部4は、上記実施の形態17で説明したように、行処理部5−1〜5−p及び列処理部6による復号の途中結果を保持する。行処理部5−1〜5−pは、図32に示す疑似巡回符号の単位行列の全ての行に対応するp行分設けられ、巡回構造の基本行列の大きさに並列化されている。列処理部6は列処理を行う。
制御部7は、最大繰り返し回数の設定などの復号繰り返しの制御を行う。復号結果判定部8では、列処理部6が求めた事後値の硬判定から上記式(6)により復号結果の復号系列を算出し、パリティ検査を行って上記式(7)の条件から復号結果の正誤を判定する。
次に動作について説明する。
先ず、受信LLR計算部2は、受信情報を入力すると、当該受信情報から受信LLRを算出する。次に初期化ステップにおいて、受信LLR計算部2は、算出した受信LLRを初期値zm,n (0)(:=Fn)として途中結果保持部4に設定する。このとき、制御部7は、復号の繰り返し回数iをi=1と初期化する。
続いて、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)まで、行処理部5−1〜5−pによる行処理及び列処理部6による列処理からなる繰り返し復号処理であるステップ1と、復号結果判定部8による上記式(7)に従うステップ2の判定処理を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
図33は、実施の形態18による行処理部及び列処理部の復号演算を説明するためのブロック図である。この図を用いて復号演算の流れを説明する。
先ず、復号したいLDPC符号の検査行列H(=[Hm,n])に対して、行処理部5−1〜5−pは、1行目からp行目まで1列からp列までに関連した行処理を並列に実行し、p行目から2p行目までの1列からp列までに関連した行処理を並列に実行し、2p行目から3p行目までの1列からp列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。
ここで、1列からp列までに関連した行処理では、下記式(27)の条件に対し、上記式(2)及び式(3)を用いた演算を実行する。
Figure 0004777261
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、1列目からp列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目までp列から2p列までに関連した行処理を並列に実行し、p行目から2p行目までのp列から2p列までに関連した行処理を並列に実行し、2p行目から3p行目までのp列から2p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、p列から2p列までに関連した行処理では、上記式(27)におけるnをpから2pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、p列目から2p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目まで2p列から3p列までに関連した行処理を並列に実行し、p行目から2p行目までの2p列から3p列までに関連した行処理を並列に実行し、2p行目から3p行目までの2p列から3p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、2p列から3p列までに関連した行処理では、上記式(27)におけるnを2pから3pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、2p列目から3p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
続いて、行処理部5−1〜5−pは、1行目からp行目まで3p列から4p列までに関連した行処理を並列に実行し、p行目から2p行目までの3p列から4p列までに関連した行処理を並列に実行し、2p行目から3p行目までの3p列から4p列までに関連した行処理を実行して、処理結果を列処理部6へ受け渡す。なお、3p列から4p列までに関連した行処理では、上記式(27)におけるnを3pから4pまでとし、この条件に対し上記式(2)及び式(3)を用いた演算を実行する。
次に、列処理部6は、例えば上記式(4)及び上記式(5)を用いて、3p列目から4p列目までの列処理を並列に実行し、処理結果を途中結果保持部4に保持させる。
なお、上述した処理例では、疑似巡回符号の特徴2を利用して行処理を1〜p,p〜2p,2p〜3pに分けて行処理する例を示したが、1〜3pの全てを並列に実行させることも可能である。
ステップ2では、復号結果判定部8が、列処理部6により繰り返しi回目で算出された事後値zn (i)を硬判定して復号結果を決めて、パリティ検査を行う。このとき、制御部7が、パリティ検査の結果がNGであるならば、繰り返し回数iを1増やし、続いてステップ1の処理を行処理部5及び列処理部6に実行させる。一方、上記式(7)の条件を満たせば、後述するステップ3の処理に移行させる。
このようにして、制御部7は、上記式(7)に示すように、パリティ検査の結果がOKとなるか、若しくは繰り返し回数が設定した最大値Imaxとなるまで、上記式(8)に基づく、ステップ1及びステップ2の処理を繰り返すように行処理部5及び列処理部6を制御する。
復号結果判定部8によるパリティ検査の結果がOKとなるか、制御部7により設定された繰り返し回数iが最大値Imaxとなれば、ステップ3として、制御部7が行処理部5及び列処理部6による復号処理を終了させ、復号結果判定部8が復号結果として上記式(6)のような復号系列を出力する。
以上のように、この実施の形態18によれば、擬似巡回符号のように巡回構造を持ったLDPC符号をShuffled BPアルゴリズムで復号する場合に、巡回構造の特徴を利用するので、行処理及び列処理の並列化が可能となり、復号演算に係る処理時間を短縮することができることから復号処理に要する遅延時間を削減することができる。
なお、上記実施の形態18では、Shuffled BPアルゴリズムを例に挙げて説明したが、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ行う他の復号アルゴリズムでも同様に適用することができる。また、巡回構造を持つLDPC符号として擬似巡回符号を例に挙げたが、他の巡回構造を持つLDPC符号でも同様である。
実施の形態19.
この実施の形態19は、Max−Log−MAPアルゴリズムに受信情報から減算とビットシフト演算のみで算出できる補正項による補正を行う補正型のMax−Log−MAPアルゴリズムを復号アルゴリズムとして備えるものである。
図34は、この発明の実施の形態19によるTurbo符号復号装置の構成を示すブロック図である。本実施の形態19によるTurbo符号復号装置24は、受信値保持部25及びTurbo復号処理部26から構成される。Turbo符号では、情報ビット系列diとそのパリティビット系列p1 i、インタリーブした情報ビット系列のパリティビット系列p2 iを符号化情報として送信する。受信値保持部25は、それらの受信値Ri、P1 i、P2 iを分けてそれぞれの受信値を保持し、Turbo復号処理部26に出力する。Turbo復号処理部26は、途中結果保持部27、メトリック計算部28、インタリーブ処理部29及び繰り返し制御部30から構成される。
途中結果保持部27は、受信値保持部25から入力した受信値に基づくメトリック計算部28による復号処理の途中結果を保持する。メトリック計算部28は、上述した補正項による補正を行う補正型のMax−Log−MAPアルゴリズムによるメトリック計算を行い、復号結果を出力する。インタリーブ処理部29はTurbo符号化に従ったインタリーブ処理を行う。繰り返し制御部30は、メトリック計算部28とインタリーブ処理部29による復号処理の繰り返しを制御する。
メトリック計算部28では、Max−Log−MAPアルゴリズムでの処理が
Figure 0004777261
であるのに対し,
Figure 0004777261
と最大値を補正しながらメトリック値の算出と更新を行う。
なお、上記式(29)において、Max−Log−MAPアルゴリズムに対する補正項となるδについては、Log−MAPアルゴリズムの更新式から級数展開して得ることのできる近似項であり、入力する2値の差と2による除算、定数Cからの減算のみで算出することができる。
また、定数Cについては、Log−MAPアルゴリズムの更新式からの近似計算で得られるln(2)が1例であるが、適切に値を設定することで復号性能を向上させることも可能である。さらに2による除算については、ハードウェアなど2進数で表現された系においては、1ビットのビットシフト演算で可能である。
インタリーブ処理部29では、復号したいTurbo符号のインタリーブ処理を行うための情報をメトリック計算部28に与え、繰り返し制御部30では繰り返し回数とインタリーブを行う場合と行わない場合の制御を行う。
次に動作について説明する。
図35は、実施の形態19によるTurbo符号復号装置の動作を示すフローチャートであり、この図に沿って動作を説明する。
先ず、受信値保持部25は、受信情報として受信値Ri、P1 i、P2 iを分けて保持しておく(ステップST1)。次に初期化ステップ(ステップST2)において、繰り返し制御部30は、復号の繰り返し回数iをi=1と初期化する。
次に、ステップST3において、繰り返し回数i=1からi=最終復号回(最大繰り返し回数Imax)までメトリック計算部とインタリーブ処理部による繰り返し復号処理であるステップ1を繰り返し実行する。
繰り返しi回目の復号演算を例に説明する。
先ず、ステップ1において、メトリック計算部5は、復号したいTurbo符号に対して繰り返しi回目の復号演算におけるインタリーブのない受信値に対するメトリック計算を行う。具体的に説明すると、受信値Ri、P1 iに対し、上記式(29)で補正を行うMax−Log−MAPアルゴリズムに従ってメトリック計算を行い、処理結果を途中結果保持部27に保持させる。インタリーブのないメトリック計算を行うには、受信値Ri、P1 iを受信値保持部から呼び出す際にiを先頭から順にインクリメントして行う。
ステップ2では、メトリック計算部28が、復号したいTurbo符号に対して繰り返しi回目の復号演算におけるインタリーブのあるメトリック計算を行う。具体的に説明すると、受信値P2 iとインタリーブした受信値Riに対し、上記式(29)で補正を行うMax−Log−MAPアルゴリズムに従ってメトリック計算を行い、メトリック値を途中結果保持部27に保持させる。受信値Riをインタリーブするには、受信値保持部25から受信値を呼び出す際に、インタリーブ処理部から呼び出す番号iの情報を受けて呼び出すことで行う。
このようにして、繰り返し制御部30は、繰り返し回数が設定した最大値Imaxとなるまで、ステップ1、2を繰り返すようにメトリック計算部とインタリーブ処理部を制御する。
繰り返し制御部30により設定された繰り返し回数iが最大値Imaxとなれば、ステップST4として、繰り返し制御部30がメトリック計算部28及びインタリーブ処理部29による復号処理を終了させ、メトリック計算部から復号結果を出力する。
以上のように、この実施の形態19によれば、受信情報の減算及びビットシフト演算のみで算出できる補正項による補正を行う補正型のMax−Log−MAPアルゴリズムに従って復号処理を実行するので、従来のLog−MAPアルゴリズムからの復号性能の劣化を抑えることができる上、従来のMax−Log−MAPアルゴリズムと比較すると格段に復号性能を向上させることができる。
さらに、受信情報に基づく補正項を算出するための計算は、減算と1ビットシフト演算のみで実行することが可能であり、実施の形態19によるTurbo復号装置1を簡易なハードウェア構成で実現することができる。
実施の形態20.
本実施の形態20では、前述した実施の形態1から実施の形態19までの復号処理を適用するシステムについて説明する。例えば、本発明に係るLDPC復号処理は、移動体通信(端末、基地局)、無線LAN、光通信、衛星通信、量子暗号装置等、通信機器全般に適用できる。具体的には、図36に示すように、LDPC符号化器31、変調器32、通信路33、復調器34、及びLDPC復号器35を含んでなるシステムを構成し、このシステムにおけるLDPC復号器35として、上記実施の形態1〜19に示す復号器を搭載し、誤り訂正を行う。
図37は、この発明に係る復号処理を、移動体端末36及びこの移動体端末36と通信を行う基地局37を備えた移動体通信システムに適用した場合の構成例を示す図である。図において、移動体端末36は、LDPC符号化器31、変調器32、復調器34、LDPC復号器35及びアンテナ42を備える。また、基地局37は、LDPC復号器43、復調器44、変調器45、LDPC符号化器46及びアンテナ47を備えている。
移動体端末36及び基地局37のLDPC復号器35,43としては、前述した実施の形態1〜19で説明した構成のLPDC復号器を適用する。
上記のように構成される移動体通信システムにおいて、移動体端末36からデータを送信する場合は、データをLDPC符号化器37が符号化し、変調器38とアンテナ41を介して無線通信路へ送出する。
一方、基地局37では、無線通信路中で発生した誤りを含む受信信号を、アンテナ47と復調器44を介して受け取り、復調後の受信データをLDPC復号器43にて訂正する。なお、ネットワークから移動体端末36が各種データを受信する場合についても、上記と同様の処理で、基地局37が移動体端末36へ符号化データを送信し、移動体端末36が各種データを受信して復号する。
基地局37が移動体端末36へ符号化データを送信する場合は、データをLDPC符号化器46により符号化し、符号化データを変調器45とアンテナ47を介して無線通信路へ送出する。一方、移動体端末36では、無線通信路中で発生した誤りを含む受信信号を、アンテナ42と復調器34を介して受け取り、復調後の受信データをLDPC復号器35にて訂正する。
以上のように、この実施の形態20によれば、上記実施の形態1から上記実施の形態19までに示した復号処理を移動体通信システムに適用したので、移動体端末36及び基地局37による復号処理において、上記実施の形態1から上記実施の形態19までに示した効果をそれぞれ得ることができる。
以上のように、この発明に係る復号方法は、デジタル通信における復号技術として有用であり、特に符号化方式としてLDPC符号を採用する通信装置に適している。

Claims (9)

  1. 低密度パリティ検査(Low-density Parity-check:LDPC)符号化された受信信号に対して、Min−Sumアルゴリズムに従う行処理及び列処理による確率情報の算出及びその更新を実行するにあたり、Shuffled BP(Belief Propagation)アルゴリズムを基にして実行するとともに、その行処理の更新演算では、Min−Sumアルゴリズムの近似更新式である下記式(8)を利用することで、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行する復号手段を備えた復号装置。
    Figure 0004777261
  2. 復号手段は、行処理により算出される対数尤度比を所定の定数で除算して前記対数尤度比の大きさを、Sum−Productアルゴリズムによる対数尤度比の大きさと同程度に調整することを特徴とする請求項1記載の復号装置。
  3. 復号手段は、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行することを特徴とする請求項2記載の復号装置。
  4. 復号手段は、行処理により算出される対数尤度比から所定の定数を減算して前記対数尤度比の大きさを、Sum−Productアルゴリズムによる対数尤度比の大きさと同程度に調整することを特徴とする請求項1記載の復号装置。
  5. 復号手段は、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行することを特徴とする請求項4記載の復号装置。
  6. 低密度パリティ検査(Low-density Parity-check:LDPC)符号化された受信信号に対して、Normalized BP(Belief Propagation)アルゴリズムに従う行処理及び列処理による確率情報の算出及びその更新を実行するにあたり、Shuffled BP(Belief Propagation)アルゴリズムを基にして実行するとともに、その行処理の更新演算では、Normalized BPアルゴリズムの簡易更新式である下記式(9)を利用することで、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行する復号手段を備え、
    前記復号手段は、行処理を実行する行処理部と、列処理を実行する列処理部とを有し、
    前記行処理部は、対数尤度比の更新演算を実行する比較部と、前記比較部による更新演算結果を定数(Normalization Factor)で除算して、前記対数尤度比の大きさを、Sum−Productアルゴリズムによる対数尤度比の大きさと同程度に調整する除算部と、受信信号の変調方式に依存したビット誤り率及び/又はLDPC符号の検査行列の行重みに応じて決定した行ごとの定数(Normalization Factor)を予め記憶し、前記行処理部が行処理を実行する行に対応する前記定数を前記行処理部に出力する除算定数選択部とを有してなる復号装置。
    Figure 0004777261
  7. 低密度パリティ検査(Low-density Parity-check:LDPC)符号化された受信信号に対して、Offset BP(Belief Propagation)アルゴリズムに従う行処理及び列処理による確率情報の算出及びその更新を実行するにあたり、Shuffled BP(Belief Propagation)アルゴリズムを基にして実行するとともに、その行処理の更新演算では、Offset BPアルゴリズムの近似更新式である下記式(10)を利用することで、行処理及び列処理による確率情報の算出及びその更新を1ビットずつ若しくは予め定めた複数ビットずつ実行する復号手段を備え、
    前記復号手段は、行処理を実行する行処理部と、列処理を実行する列処理部とを有し、
    前記行処理部は、対数尤度比の更新演算を実行する比較部と、前記比較部による更新演算結果を定数(Offset Factor)で減算して、前記対数尤度比の大きさを、Sum−Productアルゴリズムによる対数尤度比の大きさと同程度に調整する減算部と、受信信号の変調方式に依存したビット誤り率及び/又はLDPC符号の検査行列の行重みに応じて決定した行ごとの定数(Offset Factor)を予め記憶し、前記行処理部が行処理を実行する行に対応する前記定数を前記行処理部に出力する減算定数選択部とを有してなる復号装置。
    Figure 0004777261
  8. LDPC符号の符号化を行う符号化部と、当該LDPC符号の構成に適応した変調信号点の割り当てを行う変調部とを有してなる符号化送信部と、
    請求項1から請求項7のうちのいずれか1項に記載されている復号装置とを備え、
    前記復号装置は、前記符号化送信部から受信した変調信号の復調を行う復調部を有し、
    前記復号装置の復号手段は、前記LDPC符号の構成に基づく順序制御に従って復号処理を実行することを特徴とする通信装置。
  9. 復号手段は、受信信号の変調信号点に基づく順序制御に従って、受信信号に対する行処理と列処理による確率情報の算出及び更新を1ビットずつ若しくは予め定めた複数ビットずつ実行することを特徴とする請求項8記載の通信装置。
JP2006548007A 2004-12-02 2005-12-01 復号装置及び通信装置 Active JP4777261B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006548007A JP4777261B2 (ja) 2004-12-02 2005-12-01 復号装置及び通信装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004350168 2004-12-02
JP2004350168 2004-12-02
PCT/JP2005/022104 WO2006059688A1 (ja) 2004-12-02 2005-12-01 復号装置及び通信装置
JP2006548007A JP4777261B2 (ja) 2004-12-02 2005-12-01 復号装置及び通信装置

Publications (2)

Publication Number Publication Date
JPWO2006059688A1 JPWO2006059688A1 (ja) 2008-06-05
JP4777261B2 true JP4777261B2 (ja) 2011-09-21

Family

ID=36565121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006548007A Active JP4777261B2 (ja) 2004-12-02 2005-12-01 復号装置及び通信装置

Country Status (6)

Country Link
US (1) US8201047B2 (ja)
EP (1) EP1819056B1 (ja)
JP (1) JP4777261B2 (ja)
KR (1) KR100924189B1 (ja)
CN (1) CN101069356A (ja)
WO (1) WO2006059688A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4492352B2 (ja) * 2005-01-05 2010-06-30 日本電気株式会社 復号装置及びその方法並びにプログラム
US7562279B2 (en) * 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
JP4526451B2 (ja) * 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム
CN101248583B (zh) 2005-07-13 2012-04-18 三菱电机株式会社 通信装置以及解码方法
KR100804793B1 (ko) * 2005-10-07 2008-02-20 삼성전자주식회사 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
US7647548B2 (en) * 2006-07-31 2010-01-12 Agere Systems Inc. Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture
US7644339B2 (en) 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
WO2009004572A1 (en) * 2007-07-04 2009-01-08 Nxp B.V. Shuffled ldpc decoding
JP4823176B2 (ja) * 2007-08-31 2011-11-24 パナソニック株式会社 復号方法及び復号装置
JP4487212B2 (ja) 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
JP4487213B2 (ja) 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
KR101077552B1 (ko) 2007-12-14 2011-10-28 한국전자통신연구원 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
KR20090065411A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 그룹 단위 복호화를 위한 전처리 장치 및 그 방법
WO2009078653A2 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Preprocessing apparatus and method for group-based decoding
US8627165B2 (en) * 2008-03-24 2014-01-07 Micron Technology, Inc. Bitwise operations and apparatus in a multi-level system
US8572332B2 (en) * 2008-03-28 2013-10-29 Qualcomm Incorporated De-interleaving mechanism involving a multi-banked LLR buffer
KR101526317B1 (ko) 2008-05-09 2015-06-11 삼성전자주식회사 계층적 디코딩 장치
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
JP4545217B1 (ja) 2009-04-03 2010-09-15 三菱電機株式会社 復号装置および復号方法
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
US8683302B2 (en) * 2009-09-25 2014-03-25 Panasonic Corporation Coding device, decoding device, coding method, decoding method, and communication system
JP5434454B2 (ja) * 2009-10-08 2014-03-05 富士通株式会社 復号化装置
TWI380598B (en) * 2010-05-18 2012-12-21 Univ Nat Taiwan Programmable ldpc code decoder and decoding method thereof
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US9131238B2 (en) * 2010-06-18 2015-09-08 The Trustees Of Princeton University System and method for lossy source-channel coding at the application layer
CN101917248A (zh) * 2010-07-20 2010-12-15 北京全路通信信号研究设计院 一种列控报文处理方法、装置和系统
JP5365601B2 (ja) * 2010-09-30 2013-12-11 株式会社Jvcケンウッド 復号装置および復号方法
JP5310701B2 (ja) * 2010-10-29 2013-10-09 株式会社Jvcケンウッド 復号装置および復号方法
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
JP5631846B2 (ja) * 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法
JP5772622B2 (ja) * 2012-01-20 2015-09-02 株式会社Jvcケンウッド 復号装置および復号方法
CN104185952B (zh) * 2012-03-28 2018-11-13 英特尔公司 初级检验节点处理的方法和系统
US8885766B2 (en) * 2012-09-11 2014-11-11 Inphi Corporation Optical communication interface utilizing N-dimensional double square quadrature amplitude modulation
EP3082267A4 (en) * 2013-12-09 2017-08-16 Mitsubishi Electric Corporation Error-correction decoding device
TWI583141B (zh) * 2016-05-12 2017-05-11 國立清華大學 低密度奇偶檢查碼的解碼方法與解碼器
CN106059596B (zh) * 2016-06-24 2019-05-14 中山大学 以二元bch码为成份码的分组马尔可夫叠加编码方法及其译码方法
CN106330203B (zh) * 2016-08-26 2019-12-31 晶晨半导体(上海)股份有限公司 一种ldpc的解码方法
US10419027B2 (en) 2016-10-13 2019-09-17 Qualcomm Incorporated Adjusted min-sum decoder

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003204272A (ja) * 2002-01-08 2003-07-18 Sony Corp 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
WO2004010588A1 (en) * 2002-07-19 2004-01-29 Samsung Electronics Co., Ltd. Appartaus and method for reducing bit error rates (ber) and frame error rates (fer) using turbo decoding in a digital communication system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6829308B2 (en) 2002-07-03 2004-12-07 Hughes Electronics Corporation Satellite communication system utilizing low density parity check codes
US20040109507A1 (en) * 2002-12-06 2004-06-10 Ido Kanter Sequential decoding of parity check codes
JP2004274186A (ja) * 2003-03-05 2004-09-30 Sony Corp 誤り訂正符号の復号評価方法及び装置
US20080109698A1 (en) * 2006-07-25 2008-05-08 Legend Silicon Hybrid min-sum decoding apparatus with low bit resolution for ldpc code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003204272A (ja) * 2002-01-08 2003-07-18 Sony Corp 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法
WO2004010588A1 (en) * 2002-07-19 2004-01-29 Samsung Electronics Co., Ltd. Appartaus and method for reducing bit error rates (ber) and frame error rates (fer) using turbo decoding in a digital communication system

Also Published As

Publication number Publication date
US20080246639A1 (en) 2008-10-09
EP1819056A4 (en) 2009-03-04
CN101069356A (zh) 2007-11-07
JPWO2006059688A1 (ja) 2008-06-05
KR100924189B1 (ko) 2009-10-29
US8201047B2 (en) 2012-06-12
EP1819056B1 (en) 2013-07-17
EP1819056A1 (en) 2007-08-15
KR20070073949A (ko) 2007-07-10
WO2006059688A1 (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
JP4777261B2 (ja) 復号装置及び通信装置
JP4627317B2 (ja) 通信装置および復号方法
JP4563454B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、通信システム、符号化器および復号器
US7343548B2 (en) Method and apparatus for encoding and decoding data
JP4602418B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
RU2450442C2 (ru) Способ и устройство для кодирования и декодирования канала в системе связи с использованием кодов с низкой плотностью проверок на четность
US8880973B1 (en) Detector-decoder interface for GF(q) iterative decoding
EP2068449A2 (en) Method and apparatus for encoding and decoding channel in a communication system using low-density parity-check codes
US9356623B2 (en) LDPC decoder variable node units having fewer adder stages
US20100325514A1 (en) Decoding method and decoding device
CN111164897B (zh) 广义低密度奇偶校验码
CN101106383A (zh) 一种低密度奇偶校验码的译码方法
JP2006060695A (ja) 情報復号方法、情報符号化方法、情報通信方法、情報復号装置、送信装置及び情報通信システム
JP6395658B2 (ja) 誤り訂正復号装置、受信装置及び誤り訂正復号方法
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
CN111835363B (zh) 基于交替方向乘子法的ldpc码译码方法
JP4341646B2 (ja) 復号装置
EP3591844B1 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
KR20190000768A (ko) 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
EP3591845B1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes
JP2009118418A (ja) 復号化装置、符号化装置、復号化方法、及び、符号化方法
JP2007325011A (ja) 復号装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4777261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250