[go: up one dir, main page]

JP4253332B2 - 復号装置、方法およびプログラム - Google Patents

復号装置、方法およびプログラム Download PDF

Info

Publication number
JP4253332B2
JP4253332B2 JP2006183659A JP2006183659A JP4253332B2 JP 4253332 B2 JP4253332 B2 JP 4253332B2 JP 2006183659 A JP2006183659 A JP 2006183659A JP 2006183659 A JP2006183659 A JP 2006183659A JP 4253332 B2 JP4253332 B2 JP 4253332B2
Authority
JP
Japan
Prior art keywords
likelihood
unit
update
code data
prior
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006183659A
Other languages
English (en)
Other versions
JP2008016959A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006183659A priority Critical patent/JP4253332B2/ja
Priority to US11/723,336 priority patent/US7979777B2/en
Publication of JP2008016959A publication Critical patent/JP2008016959A/ja
Application granted granted Critical
Publication of JP4253332B2 publication Critical patent/JP4253332B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing

Landscapes

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

Description

この発明は、通信システムや記録システムに用いられるLDPC(Low Density Parity Check)符号を用いた復号装置に関する。
LDPC符号は、その符号に対応するパリティ検査行列を用いて行方向処理と列方向処理と呼ばれる確率計算を繰り返し行い、符号ビットの事後確率を求めることで復号する。行方向処理とは、パリティ検査行列の行毎のパリティ検査式を用いて外部情報を求める処理である。また列方向処理とは、行方向処理で得られた外部情報を基に事前確率を求める処理である。一般には、全てのパリティ検査行列の行に対して行方向処理を行った後、全ての列に対して列方向処理を行う。
近年、上記LDPC符号の復号処理を効率的に行う方法として、シャッフル復号が知られている(例えば非特許文献1)。このシャッフル復号は、行方向処理と列方向処理を符号ビット毎に交互に行う(列毎に事前確率を更新する)ことで、外部情報の伝搬速度をあげ効率的な復号を行うことができる。
しかしながら、行方向処理と列方向処理を符号ビット毎に交互に行うことで効率的な復号を行うシャッフル復号だが、その復号効率はパリティ検査行列の構造や通信路や記録メディアから得られる符号ビットの受信確率、さらにその確率を計算する順序(更新スケジュール)に依存する。そのため、それらを考慮しない従来の方法では、必ずしも効率よく復号することができないという問題があった。
Juntan Zhang and Marc.P.C. Fossorier, "Shuffled Iterative Decoding," IEEE Trans.on Commun. VOL.53,NO.2,pp.209-213,Feb.2005。
従来の復号装置では、必ずしも効率よく復号することができないという問題があった。この発明は上記の問題を解決すべくなされたもので、適切な更新スケジュールを作成し、パリティ検査行列の構造や符号ビットの受信確率によらず、常に効率良く復号できる復号装置、方法およびプログラムを提供することを目的とする。
上記の目的を達成するために、この発明は、低密度パリティ検査行列を用いてデータビットをLDPC符号化した符号データに含まれる前記データビットとパリティビットの各尤度を取得する取得手段と、尤度の信頼度を検出する検出手段と、信頼度に基づいて、尤度を信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成する作成手段と、低密度パリティ検査行列を用いて、更新スケジュールに従った順序で尤度をそれぞれ更新する更新手段と、この更新手段が更新した尤度、データビットの尤度およびパリティビットの尤度に基づいて事後尤度を求め、これを硬判定する判定手段と、符号データを得るために、判定手段の判定結果をパリティ検査する検査手段とを具備して構成するようにした。
この発明によれば、常に効率良く復号できる復号装置、方法およびプログラムを提供できる。
以下、図面を参照しながら本実施の形態について詳細に説明する。
図1は、この発明の第1の実施形態に係わる復号装置の構成を示すものである。なお、以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
上記復号装置は、入力尤度保持部101、ソート部102、更新スケジュール作成部103、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
入力尤度保持部101は、前段の信号処理部(図示しない)にて得られた符号データの尤度が入力され、この尤度の復号が完了するまでの間保持する。上記符号データは、後述するLDPC検査行列保持部104が保持するLDPC(Low Density Parity Check)検査行列で定義されるLDPC符号であり、組織符号であって、データビットとパリティビットとから構成される。
この例では、上記符号データは、4つのデータビットC〜Cと4つのパリティビットC〜Cからなるものとし、ここで入力尤度保持部101に保持される符号データの尤度F〜Fは、上記8つの符号データビットにそれぞれ対応するものである。
すなわち、入力尤度保持部101は、8つの尤度F〜Fを同時に保持する。また入力尤度保持部101は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
なお、ここでいう尤度とは、データビットが0である確率P(x=0)と、1である確率P(x=1)の比の対数値(底は自然対数)であって、以下の式(1)で表される。また、本説明で述べる事前尤度とは、事前確率の尤度を意味し、事後尤度とは、事後確率の尤度を意味する。
Figure 0004253332
ソート部102は、前段の信号処理部から入力される符号データの尤度を、所定の基準により並び替える。なお、この実施形態では、上記所定の基準を、入力尤度F〜Fの絶対値が小さい順とする。このため、ソート部102は、入力尤度F〜Fの絶対値を検出し、小さい順に並び替えるものとする。そしてソート部102は、並び替えた入力尤度F〜Fのインデックスの情報(以下、インデックス情報と称する)を更新スケジュール作成部103に出力する。
更新スケジュール作成部103は、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、更新スケジュール作成部103は、インデックス情報に基づき、入力尤度F〜Fの絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
例として図2を用いて説明する。図2は、符号データC〜Cの各入力尤度F(n=1〜8)の例を示すものである。この図に示す入力尤度Fは、ソート部102によりその絶対値が小さい順に並べ変えられ、その順序は、|F|<|F|<|F|<|F|<|F|<|F|<|F|<|F|となる。
よって更新スケジュール作成部103には、ソート部102から、符号データC〜C(入力尤度F〜F)にそれぞれ対応するインデックスI〜Iの情報として、「I→I→I→I→I→I→I→I」が入力される。更新スケジュール作成部103は、このインデックス情報に基づいて更新スケジュールを作成する。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
なお、図3において、検査行列中の「1」の無い位置には「0」が代入されているものとし、1行中の「1」の数を行重み、1列中の「1」の数を列重みと呼ぶ。この4行8列の検査行列で定義される符号データは、符号長8、パリティ長4である。検査行列の列は、符号データの各ビットに対応し、1回の復号処理で全ての列について処理を行う。
N(m)は、m行中にある「1」の列番号の集合である。図3からわかるように、例えばN(2)は{2,3,6}となる。同様にして、例えばM(3)は{2,3}となる。LDPC符号の検査行列は、行列中の「1」の数が行列の大きさに比べて少ないため、復号に使用するこの「1」の位置情報のみを保持することで、LDPC検査行列保持部104の回路規模を少なくすることができる。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部103から入力される更新スケジュールに従って、入力尤度保持部101から入力される入力尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
図4に事前尤度更新部105の構成例を示す。事前尤度更新部105は、列処理部401と行処理部402とを備える。列処理部401は、行処理部402で用いる部分事後尤度z(i) mnを入力尤度Fnと事前尤度r(i) mnとに基づいて、下式(2)より求める。
Figure 0004253332
なお、上式(2)において、iは事前尤度の更新回数を示し、nは検査行列の列番号、つまり符号データビットのインデックスを表し、mは検査行列の行番号を表す。またM(n)は、図3に示すように列n中の「1」がある行番号の集合を表し、M(n)\mは、集合M(n)のうちmを除いた列の部分集合を表す。よって、部分事後尤度z(i) mnは、i回目の更新処理後に得られるn番目の符号データビットのうち、m列を除いた符号データビットの事後尤度を表す。
行処理部402は、上式(2)で求められた部分事後尤度z(i) mnを用い、下式(3)より新たな事前尤度r(i) mnを求める。なお、初回の復号処理では、事前尤度r(0) mn=0となるため、部分事後尤度z(0) mn=Fnを用いて事前尤度r(1) mnを求める。なお、Np(m)は、N(m)のうち、既にi回目の事前尤度の更新を行った列の集合を表し、Nf(m)はまだi回目の事前尤度の更新がされてない列の集合であり、N(m)\Np(m)となる。また、この時の列nの更新順序は、更新スケジュール作成部103から入力される更新スケジュールに従う。
Figure 0004253332
また、図4に示した例では、1列ずつ事前尤度を更新する場合の事前尤度更新部105の構成を示している。これに代わって例えば、第5図に示すように、事前尤度更新部105が、列処理部401と同じ機能を備える列処理部501〜50Gと、行処理部402と同じ機能を備える行処理部511〜51Gとを備えることで、一度に複数の列(第5図ではG個の列)を更新することができる。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC〜Cに対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。なお、パリティ検査部107において、事後尤度zn (i)は、入力尤度Fnと事前尤度Rmn (i)とに基づいて、下式(4)による計算で求められる。
Figure 0004253332
上式(4)において、iは復号の繰り返し回数を示し、nは検査行列の列番号つまり符号データC〜Cを構成する各ビットのインデックスを表す。よって、事後尤度z(i) nは、i回目の復号処理後に得られるn番目の符号データビットの事後尤度を表す。またmは、検査行列の行番号を表し、M(n)は、図3に示すように列n中の「1」がある行番号の集合を表す。つまり上式(4)の第2項は、列n中に「1」がある行のパリティ検査式を用いて計算された事前尤度の合計となる。またパリティ検査部107にて行う硬判定は、上式(4)より得られる事後尤度の正負判定により行い、正の時は0、負のときは1と判定する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図6に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC〜Cの各尤度F〜Fが入力されてから、これに基づく符号データC〜Cが出力されるまでを1つのサイクルとしており、符号データC〜C(または符号データC〜Cの事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC〜Cの各尤度F〜Fが、入力尤度保持部101およびソート部102に入力される。入力尤度保持部101は、入力された符号データC〜Cの各尤度F〜Fを、この尤度の復号が完了するまでの間保持する。
処理601では、ソート部102に入力された符号データC〜Cの各尤度F〜Fが、ソート部102によって、その絶対値の小さい順に並び替えられる。そして、ソート部102は、この並び替えられた尤度の順を示すインデックス情報を作成し、このインデックス情報を更新スケジュール作成部103に出力する。
処理602では、更新スケジュール作成部103が、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理603では、事前尤度更新部105が、入力尤度保持部101から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部103から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理604では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度を取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。
処理605では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理604で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理606を実行する。
処理606では、パリティ検査部107が、処理603で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理603を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、入力尤度F〜Fの絶対値、つまり信頼度の大きさに基づき、信頼度の低い入力尤度を優先的に用いて事前尤度の更新を行うスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度の低い入力尤度を持つ列に対応する事前尤度を優先的に更新することで、信頼度の低い入力尤度が繰り返しの初期段階で伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC〜CとパリティビットC〜Cを区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC〜Cの事前尤度の更新を行った後、データビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC〜Cの事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC〜Cに対応する列について事前尤度の更新を行った後、データビットC〜Cの事前尤度の更新を行えば、後半に更新されるデータビットC〜Cの誤りを少なくすることができる。
例えば入力尤度F〜Fが図2に示すようなものであった場合、ソート部102でその絶対値が小さい順に並べ変えられ|F|<|F|<|F|<|F|<|F|<|F|<|F|<|F|となる。この並びのうちパリティビットC〜Cに着目すると、|F|<|F|<|F|<|F|となっており、データビットC〜Cに着目すると|F|<|F|<|F|<|F|となっている。よって、更新スケジュールはI→I→I→I→I→I→I→Iとなる。
次に、この発明の第2の実施形態に係わる復号装置について説明する。図8は、その構成を示すものであって、入力尤度保持部101、更新スケジュール作成部803、LDPC検査行列保持部804、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図8において、図1に示した構成と同様の機能を有する構成については、同じ番号を付与し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
図8に示した復号装置の特徴は、第1の実施形態の復号装置では入力尤度F〜Fの値に基づいて更新スケジュールを作成していたのに対し、LDPC検査行列の構造に基づいて更新スケジュールを作成するようにした点である。
LDPC検査行列保持部804は、LDPC検査行列保持部104と同様に、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部804は、事前尤度更新部105、パリティ検査部107および更新スケジュール作成部803に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
更新スケジュール作成部803は、LDPC検査行列保持部804から入力される検査行列の情報から検査行列の構造を検出し、この検出結果に基づいて、上記検査行列に適した更新スケジュールを作成し、事前尤度更新部105へ出力する。
ここで例えば図7に示した検査行列のように列重みが列毎に異なる検査行列の場合、列重みが重い列ほど正確な事前尤度を得ることができる。なお、列重みとは、該当列の「1」の数である。このため、更新スケジュール作成部803は、検査行列の各列の重みを検出し、この検出結果に基づいて上記更新スケジュールを作成する。
図7に示した検査行列の場合、更新スケジュール作成部803は、I→I→I→I→I→I→I→Iといったように列重みが重い列ほど優先的に事前尤度を更新する更新スケジュールを作成する。これにより、信頼度の低い尤度が伝搬するのを防ぎ、効率の良い復号が可能となる。
このように、第1の実施形態の復号装置と異なり、第1の実施形態の復号装置では、更新スケジュールの作成は、検査行列の構造のみに依存する。このため、検査行列が動的に変化しないシステムの場合、あらかじめ更新スケジュールを作成しておくことが可能であるので、第1の実施形態の復号装置のように、符号データC〜C毎に更新スケジュールを作成する必要がない。
事前尤度更新部105は、LDPC検査行列保持部804から入力される検査行列の情報と、更新スケジュール作成部803から入力される更新スケジュールに従って、入力尤度保持部101から入力される符号データの尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部804から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC〜Cに対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図9に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC〜Cの各尤度F〜Fが入力されてから、これに基づく符号データC〜Cが出力されるまでを1つのサイクルとしており、符号データC〜C(または符号データC〜Cの事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC〜Cの各尤度F〜Fが、入力尤度保持部101に入力される。入力尤度保持部101は、入力された符号データC〜Cの各尤度F〜Fを、この尤度の復号が完了するまでの間保持する。なお、この時点で既に、更新スケジュール作成部803は、LDPC検査行列保持部804から入力される検査行列の情報に基づいて、上記検査行列に適した更新スケジュールを作成し、事前尤度更新部105へ出力している。
処理901では、事前尤度更新部105が、入力尤度保持部101から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部804から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部803から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理902では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度F〜Fを取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。
処理903では、パリティ検査部107が、LDPC検査行列保持部804から検査行列の情報を取得し、処理902で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理904を実行する。
処理904では、パリティ検査部107が、処理901で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、予め設定した回数iに達していない場合には、再び処理901を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、LDPC検査行列の構造に基づいて、列重みが重い列に対応する入力尤度を優先的に用いて事前尤度を更新する更新スケジュールを作成するようにし、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度の高い事前尤度を求めることができる列重みが重い列を優先的に更新を行うので、後段で更新する列では信頼度の高い事前尤度を用いて事前尤度の更新をすることができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC〜CとパリティビットC〜Cを区別することなく、列重みの大きい列に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、パリティビットC〜Cに対応する列について、列重みの大きい列順に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC〜Cの事前尤度の更新を行った後、データビットC〜Cに対応する列について、列重みの大きい列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC〜Cの事前尤度の更新を行うようにしてもよい。
列単位で順に事前尤度を更新していく、上述した復号処理では、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。例えば図7に示すようなLDPC検査行列の場合、I→I→I→I→I→I→I→Iと更新スケジュールを作成することにより、データビットC〜Cの誤りを少なくすることができる。
次に、この発明の第3の実施形態に係わる復号装置について説明する。図10は、その構成を示すものであって、入力尤度保持部101、グルーピング部1002、更新スケジュール作成部1003、LDPC検査行列保持部1004、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図10において、図1に示した構成と同様の機能を有する構成については、同じ番号を付与し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、復号処理に係わる構成ついてのみ説明するが、上記復号装置は、符号化処理を行う符号化装置の構成も備える。
図10に示した復号装置の特徴は、第1の実施形態の復号装置における更新スケジュールの作成方法と、第2の実施形態の復号装置における更新スケジュールの作成方法とを共に考慮した点にあり、入力尤度の値およびLDPC検査行列の構造に基づいて更新スケジュールを作成するようにしたものである。
グルーピング部1002は、前段の信号処理部から入力される符号データC〜Cの各尤度F〜Fの絶対値の大きさを検出する。そして、グルーピング部1002は、検出した絶対値の大きさに応じて、少なくとも2つ以上のグループに分け、各尤度F〜Fが属するグループを示すグループインデックスを更新スケジュール作成部1003に出力する。
ここで例えば、図7の検査行列で定義された符号データC〜Cの入力尤度F〜Fが、図2に示すようなものであったとき、グルーピング部1002は、各尤度の絶対値の大きさと閾値を比較して、各尤度F〜Fを3つのグループg1,g2,g3に分けする。図2に示す例では、閾値を「0.5」、「1.0」としている。なお、この閾値やグループ分けの数は、実験により適宜設定する。
LDPC検査行列保持部1004は、LDPC検査行列保持部104と同様に、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データC〜Cの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部1004は、事前尤度更新部105、パリティ検査部107および更新スケジュール作成部1003に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
更新スケジュール作成部1003は、LDPC検査行列保持部804から入力される検査行列の情報からこの検査行列の構造を検出し、この検出結果と、グルーピング部1002から取得したグループインデックスの情報とに基づいて、どの列から事前尤度の更新を行うかを示す更新スケジュールを作成する。
ここで例えば、検査行列が図7に示すようなものであった場合、列重みが列毎に異なるため、列重みが重い列ほど正確な事前尤度を得ることができる。そこで、更新スケジュール作成部1003は、入力尤度F〜Fの絶対値が小さいグループに属する尤度に対応する列から優先的に事前尤度の更新を行う更新スケジュールを作成する。また、同じグループの尤度が複数ある場合には、上記検出結果に基づき、列重みが重い列ほど優先的に事前尤度を更新するような更新スケジュールを作成する。
すなわち、図7の検査行列で定義された符号データC〜Cの入力尤度F〜Fが図2に示すようなものである場合、更新スケジュール作成部1003は、I(g1)→I(g1)→I(g2)→I(g2)→I(g2)→I(g3)→I(g3)→I(g3)という更新スケジュールを作成する。
事前尤度更新部105は、LDPC検査行列保持部1004から入力される検査行列の情報と、更新スケジュール作成部1003から入力される更新スケジュールに従って、入力尤度保持部101から入力される符号データの尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、入力尤度保持部101から入力される入力尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部1004から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC〜Cに対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。
次に、上記構成の復号装置の動作について説明する。この動作を説明するフローチャートを図11に示す。この図に示す処理は、前段の信号処理部(図示しない)にて得られた符号データC〜Cの各尤度F〜Fが入力されてから、これに基づく符号データC〜Cが出力されるまでを1つのサイクルとしており、符号データC〜C(または符号データC〜Cの事前尤度)を出力すると、新たなサイクルの処理が開始される。
まず、処理が開始されると、前段の信号処理部より、符号データC〜Cの各尤度F〜Fが、入力尤度保持部101およびグルーピング部1002に入力される。入力尤度保持部101は、入力された符号データC〜Cの尤度F〜Fを、この尤度F〜Fの復号が完了するまでの間保持する。
処理1101では、グルーピング部1002に入力された符号データC〜Cの尤度F〜Fが、グルーピング部1002によって、その絶対値の大きさで少なくとも2つ以上のグループに分けられる。そして、グルーピング部1002は、各尤度F〜Fが属するグループを示すグループインデックスの情報を更新スケジュール作成部1003に出力する。
処理1102では、更新スケジュール作成部1003が、LDPC検査行列保持部804から入力される検査行列の情報からこの検査行列の構造を検出し、この検出結果と、グルーピング部1002から取得したグループインデックスの情報とに基づいて、どの列から事前尤度の更新を行うかを示す更新スケジュールを作成する。この更新スケジュールは、事前尤度更新部105に出力される。
処理1103では、事前尤度更新部105が、入力尤度保持部101から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部1004から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1003から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1104では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、入力尤度保持部101から入力尤度F〜Fを取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データを得る。
処理1105では、パリティ検査部107が、LDPC検査行列保持部1004から検査行列の情報を取得し、処理1104で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1106を実行する。
処理1106では、パリティ検査部107が、処理1103で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1103を実行し、事前尤度の更新を行う。
以上のように、上記構成の復号装置では、入力尤度F〜Fの絶対値、つまり信頼度の大きさと、LDPC検査行列の構造に基づいて、信頼度が低く、列重みが重い列に対応する入力尤度を優先的に用いて事前尤度を更新する更新スケジュールを作成するようにし、このスケジュールに従って事前尤度の更新を行うようにしている。
したがって、上記構成の復号装置によれば、信頼度が低い入力尤度を持つ列のうち、信頼度の高い事前尤度を求めることができる列重みが重い列を優先的に事前尤度の更新を行うので、繰り返し処理の初期段階で信頼度の低い尤度が伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、復号後のデータの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC〜CとパリティビットC〜Cを区別することなく、信頼度が低く、列重みの大きい列に対応する入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC〜Cに対応する列について、信頼度が低い入力尤度に対応し、列重みの大きい列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC〜Cの事前尤度の更新を行った後、データビットC〜Cに対応する列について、信頼度が低い入力尤度に対応し、列重みの大きい列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC〜Cの事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC〜Cに対応する列について事前尤度の更新を行った後、データビットC〜Cの事前尤度の更新を行えば、後半に更新されるデータビットC〜Cの誤りを少なくすることができる。
例えば入力尤度F〜Fが図2に示すようなものであった場合に、閾値が「0.5」、「1.0」であることから、グルーピング部1002は、グループg1としてIおよびI、グループg2としてI、IおよびI、またグループg3としてI、IおよびIとグループ分けし、このようなグループ分けを示すグループインデックスが更新スケジュール作成部1003に出力される。
しかし、更新スケジュール作成部1003は、データビットC〜CとパリティビットC〜Cを区別し、パリティビットC〜Cに対応する列から優先的に事前尤度を更新し、その後、データビットC〜Cに対応する列について事前尤度を更新するための更新スケジュールを作成する。すわなち、図2に示す例では、更新スケジュールは、I→I→I→I→I→I→I→Iとなる。
次に、この発明の第4の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図12は、その構成を示すものであって、送信装置120Aと受信装置120Bとを備える。この通信システムは、送信装置120Aが送信データをLDPC符号によって符号化して送信し、受信装置120Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得る。
送信装置120Aは、LDPC符号化部1201、パンクチャ部1202、変調部1203を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC〜Cを生成し、パンクチャ部1202へ出力する。
パンクチャ部1202は、任意の符号化率を達成するため、LDPC符号化部1201から入力される符号データC〜Cに対してパンクチャを行う。すなわち、パンクチャ部1202は、上記符号データC〜Cを少なくとも1ビット以上削減する。そしてパンクチャ部1202は、パンクチャ済みの符号データを変調部1203へ出力する。図13にパンクチャの一例を示す。図13のように符号化率0.5の符号データC〜Cは、例えば符号データC、CおよびCをパンクチャすることにより、符号化率を0.8にすることができる。
変調部1203は、パンクチャ部1202から入力されるパンクチャ済みの符号データを用いて搬送波を変調し、チャネル部1204を通して伝送するのに適した信号に変換し、伝送路に出力する。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置120Bに伝送される。
受信装置120Bは、復調部1205、デパンクチャ部1206、更新スケジュール作成部1207、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
なお、図12示す受信装置120Bにおいて、図1に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置120Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置120Bは、符号化処理を行う符号化装置の構成も備える。
復調部1205は、チャネル部1204を介して、変調部1203から出力された信号を受信して復調し、この復調した受信信号からビット毎の尤度を計算して、パンクチャされた符号データの各尤度を求め、この求めた尤度をデパンクチャ部1206へ出力する。なお、チャネル部1204において、ビットが消失してしまう消失誤りが起きた場合には、復調部1205は、消失したビットの尤度を後述するパンクチャビットの尤度と同一の値(例えば0など)で補い、デパンクチャ部1206へ出力する。後段の処理では、上記のように消失により補間したビットは、スケジュール作成の際にパンクチャビットと同等に扱うため、復調部1205は、補間したビットの位置を示す補間情報をデパンクチャ部1206に通知する。
デパンクチャ部1206は、復調部1205から入力された尤度から、送信装置120Aのパンクチャ部1202でパンクチャされたビットの位置を検出し、この位置にパンクチャされたビットに対応する尤度を付加して、符号データC〜Cに対する全ての尤度F〜Fを得る。ここで、デパンクチャ部1206により付加される尤度は、符号データC〜Cの並びに従ったものであり、その値は予め設定された値(例えば「0」など)である。
例えば、デパンクチャ部1206に入力される尤度が、図14に示すように、符号データC、CおよびCが送信装置120Aのパンクチャ部1202でパンクチャされていた場合、これらの符号データC、CおよびCに対応する入力尤度F、FおよびFとして「0」が設定され、全ての尤度F〜Fを得る。
そして、デパンクチャ部1206は、上記尤度F〜Fを入力尤度として保持する。またデパンクチャ部1206は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
また、デパンクチャ部1206は、復調部1205から通知された補間情報と、上記パンクチャされたビットの位置を示すパンクチャ情報とでそれぞれ示されるビットの識別情報を更新スケジュール作成部1207に通知する。
更新スケジュール作成部1207は、デパンクチャ部1206から入力される識別情報で示されるビットを信頼度の低いビットとして検出し、これに基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、パンクチャされたビットや伝送時に消失したビットに対応する列から優先的に事前尤度を更新するような更新スケジュールを作成する。例えば図14のようにデパンクチャした符号データがC、CおよびCの場合、更新スケジュールは4→7→8→1→2→3→5→6となる。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部1207から入力される更新スケジュールに従って、デパンクチャ部1206から入力される符号データの尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、全ての列の新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、デパンクチャ部1206から入力される入力尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部107は、当該符号データC〜Cに対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。
次に、上記構成の受信装置120Bの動作について説明する。この動作を説明するフローチャートを図15に示す。この図に示す処理は、チャネル部1204を介して変調部1203から送られる符号データC〜Cに相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理1501では、復調部1205が、チャネル部1204を介して変調部1203から、符号データC〜Cに相当する信号を受信する。そして復調部1205は、受信信号からビット毎の尤度を計算して求め、この求めた尤度をデパンクチャ部1206へ出力する。
なお、チャネル部1204において、ビットが消失してしまう消失誤りが起きた場合には、復調部1205は、消失したビットの尤度をパンクチャビットの尤度と同一の値で補う。そして復調部1205は、補間したビットを示す補間情報をデパンクチャ部1206に通知する。
処理1502では、デパンクチャ部1206が、復調部1205から入力された尤度に対して、送信装置120Aのパンクチャ部1202でパンクチャされたビットに対応する尤度を付加して、符号データC〜Cに対する全ての尤度F〜Fを得る。そして、デパンクチャ部1206は、上記尤度F〜Fを入力尤度として保持する。
また、デパンクチャ部1206は、復調部1205から通知された補間情報と、上記パンクチャされたビットを示すパンクチャ情報とでそれぞれ示されるビットの識別情報を更新スケジュール作成部1207に通知する。
処理1503では、更新スケジュール作成部1207が、デパンクチャ部1206から入力される識別情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理1504では、事前尤度更新部105が、デパンクチャ部1206から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1207から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1505では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、デパンクチャ部1206から入力尤度F〜Fを取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。
処理1506では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理1505で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1507を実行する。
処理1507では、パリティ検査部107が、処理1504で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1504を実行し、事前尤度の更新を行う。
以上のように上記構成の受信装置120Bでは、パンクチャされたビットや伝送中に消失したビットに対応する列の事前尤度を優先的に更新する。これにより、繰り返しの初期段階で欠落した入力尤度が他のビットに対応する事前尤度の更新に伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、受信データの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC〜CとパリティビットC〜Cを区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC〜Cの事前尤度の更新を行った後、データビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC〜Cの事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC〜Cに対応する列について事前尤度の更新を行った後、データビットC〜Cの事前尤度の更新を行えば、後半に更新されるデータビットC〜Cの誤りを少なくすることができる。例えば、図13および図14を例にすると、更新スケジュールを7→8→5→6→4→1→2→3とすることで、データビットの誤りが少なくなる。
また、図12に示した通信システムにおいて、符号データビットの時間的な相関を低減させるために、符号データを時間的に拡散するインタリーバ部をパンクチャ部1202と変調部1203の間に備え、一方、インタリーバで拡散した符号データを元の並びに戻すデインタリーバ部を復調部1205とデパンクチャ部1206の間に備えるようにしてもよい。
次に、この発明の第5の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図16は、その構成を示すものであって、送信装置160Aと受信装置160Bとを備える。この通信システムは、送信装置160Aが送信データをLDPC符号によって符号化して送信し、受信装置160Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得る。
なお、図16において、図1に示した構成や図12に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置160Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置160Bは、符号化処理を行う符号化装置の構成も備える。
送信装置160Aは、LDPC符号化部1201、多値変調部1603を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC〜Cを生成し、多値変調部1603へ出力する。
多値変調部1603は、LDPC符号化部1201から入力される符号データC〜Cを用いて搬送波を多値変調し、チャネル部1204を通して伝送するのに適した信号に変換し、伝送路に出力する。なお、多値変調部1603は、少なくとも2ビット以上をまとめて1つの信号点に割り当てる変調を行う多値変調方式を採用するものである。
その方式としては、例えばQAM(Quadrature Amplitude Modulation)やPAM(Pulse Amplitude Modulation)がある。以下の説明では、多値変調部1603は、図17に示す4PAMを採用するものとして説明する。4PAMでは、図17のように、信号振幅の4つのレベルに割り当てることで、2つのラベル{b0,b1}にそれぞれビットが割り当てられる。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置160Bに伝送される。
受信装置160Bは、多値復調部1605、更新スケジュール作成部1610、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106およびパリティ検査部107を備える。
多値復調部1605は、チャネル部1204を介して、多値変調部1603から出力された信号を受信して復調し、この復調した受信信号からビット毎の尤度を計算して、符号データC〜Cの各尤度F〜Fを求め、これらを入力尤度として保持する。また多値復調部1605は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、事前尤度更新部105およびパリティ検査部107に出力する。
また多値復調部1605は、符号データを構成する各ビットが、4PAMによってどのラベルにマッピングされていたか(ラベルb0か、あるいはラベルb1)を示すマッピング情報を検出し、これを更新スケジュール作成部1610に出力する。なお、多値復調部1605は、図17に示したように、2つのラベル{b0,b1}のうち、一方のラベルb0に対応するビットを判定面B0でレベル判定することで「0」か「1」かを判定し、他方のラベルb1に対応するビットを判定面B1でレベル判定することで「0」か「1」かを判定する。
更新スケジュール作成部1610は、多値復調部1605から入力されるマッピング情報に基づいて、誤りやすいラベルに割り当てられたビットに対応する尤度を、それ以外のビットに対応する尤度よりも信頼度が低いものとして検出する。そして更新スケジュール作成部1610は、検出した信頼度に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。具体的には、誤りやすいラベルに割り当てられたビットに対応する列から優先的に事前尤度を更新するような更新スケジュールを作成する。多値変調では、割り当てられるラベルにより、ビットの誤る確率が異なる。
図17の4PAMを例に説明すると、4PAMでは、b0とb1の二つのラベルがあるが、ラベルb0の判定面B0に比べラベルb1の判定面B1は狭く、一般にラベルb1の方が誤りやすい。そのため、事前尤度更新部105が、誤りやすいラベルに割り当てられたビットの尤度を優先的に更新するようなスケジュールを作成し、これにより信頼度の低い尤度情報が伝搬することを防ぐことができる。例えば図18のように符号データC、C、C、Cがラベルb0に対応し、符号データC、C、C、Cがラベルb1に対応する場合、更新スケジュール作成部1610は、更新スケジュールI→I→I→I→I→I→I→Iを作成する。
LDPC検査行列保持部104は、例えば図3に示すようなLDPC検査行列(以下、検査行列と略称する)の情報を予め保持している。この検査行列は、符号データの送り側との間で予め申し合わせたものである。そしてLDPC検査行列保持部104は、事前尤度更新部105およびパリティ検査部107に対して、それぞれの処理の必要に応じて、上記検査行列の情報を出力する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部1610から入力される更新スケジュールに従って、多値復調部1605から入力される符号データの尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部107に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部107がパリティ検査を行う際に、保持している事前尤度をパリティ検査部107に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部107は、多値復調部1605から入力される尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、当該符号データC〜Cに対する復号処理を終了するために、パリティ検査部107は、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。
次に、上記構成の受信装置160Bの動作について説明する。この動作を説明するフローチャートを図19に示す。この図に示す処理は、チャネル部1204を介して変調部2003から送られる符号データC〜Cに相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理1901では、多値復調部1605が、チャネル部1204を介して多値変調部1603から、符号データC〜Cに相当する信号を受信する。そして多値復調部1605は、受信信号から符号データC〜Cの各ビットの尤度F〜Fを計算して求め、この尤度F〜Fを入力尤度として保持する。また多値復調部1605は、上記符号データC〜Cを構成する各ビットが、4PAMによってどのラベルにマッピングされていたか(b0か、あるいはb1)を示すマッピング情報を検出し、これを更新スケジュール作成部1610に出力する。
処理1902では、更新スケジュール作成部1610が、多値復調部1605から入力されるマッピング情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
処理1903では、事前尤度更新部105が、多値復調部1605から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1610から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部107に通知する。
処理1904では、上記通知を受けたパリティ検査部107が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、多値復調部1605から入力尤度F〜Fを取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。
処理1905では、パリティ検査部107が、LDPC検査行列保持部104から検査行列の情報を取得し、処理1904で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部107は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理1906を実行する。
処理1906では、パリティ検査部107が、処理1903で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、予め設定した回数に達していない場合には、再び処理1903を実行し、事前尤度の更新を行う。
以上のように、上記構成の受信装置160Bでは、多値変調で誤りやすいラベルに割り当てられたビットに対応する事前尤度を優先的に更新する。これにより、繰り返しの初期段階で誤りやすく信頼度の低い尤度情報が他のビットに対応する事前尤度の更新に伝搬することを防ぐことができ、少ない繰り返し回数で復号が可能となる。また、受信データの誤りを少なくすることができる。
なお、上記実施の形態では、データビットC〜CとパリティビットC〜Cを区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新するスケジュールを作成し、このスケジュールに従って事前尤度の更新を行うようにした。
これに代わって例えば、まずパリティビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新するスケジュールを作成し、このスケジュールに従ってパリティビットC〜Cの事前尤度の更新を行った後、データビットC〜Cに対応する列について、信頼度が低い入力尤度に対応する列から優先的に事前尤度を更新する更新スケジュールを作成し、このスケジュールに従ってデータビットC〜Cの事前尤度の更新を行うようにしてもよい。
上述した復号処理では、列単位で順に事前尤度を更新していくため、後半の列ほど更新された信頼度の高い事前尤度を用いることができる。そのため、上述したように、パリティビットC〜Cに対応する列について事前尤度の更新を行った後、データビットC〜Cの事前尤度の更新を行えば、後半に更新されるデータビットC〜Cの誤りを少なくすることができる。例えば、図18を例にすると、更新スケジュールを6→8→5→7→2→4→1→3とすることで、データビットの誤りが少なくなる。
また、図16に示した通信システムにおいて、符号データビットの時間的な相関を低減させるため、符号データを時間的に拡散するインタリーバ部をLDPC符号化部1201と多値変調部1603の間に備え、一方、インタリーバで拡散した符号データを元の並びに戻すデインタリーバ部を多値復調部1605と、事前尤度更新部105およびパリティ検査部107との間に備えてるようにしてもよい。
次に、この発明の第6の実施形態に係わる通信システムについて説明する。この通信システムは、この発明に係わる復号装置を適用したものである。図20は、その構成を示すものであって、送信装置200Aと受信装置200Bとを備える。この通信システムは、送信装置200Aが送信データをLDPC符号によって符号化して送信し、受信装置200Bは、通信システム特有のチャネル部1204を通って受信された上記送信データを受信して復号し、受信データを得るものであって、復号によって得た受信データを用いて反復復調を行うものである。
なお、図20において、図1に示した構成や図12に示した構成と同様の機能を有する構成については、同じ番号を付して示し、その詳細についての説明は省略し、異なる構成を中心に説明する。また以下では、受信装置200Bにおいて、復号処理に係わる構成ついてのみ説明するが、上記受信装置200Bは、符号化処理を行う符号化装置の構成も備える。
送信装置200Aは、LDPC符号化部1201、インタリーバ部2002、変調部2003を備える。
LDPC符号化部1201は、送信データをLDPC符号で符号化して符号データC〜Cを生成し、インタリーバ部2002へ出力する。
インタリーバ部2002は、符号データC〜Cをビット単位で時間方向へ拡散し、変調部2003へ出力する。変調部2003は、インタリーバ部2002から入力されるビットデータを用いて搬送波を変調し、チャネル部1204を通して伝送するのに適した信号へ、伝送路に出力する。なお、変調部2003で用いられる変調方式としては、1ビット単位で変調するBPSK(Binary Phase Shift Keying)のほか、少なくとも2ビット以上をまとめて変調する多値変調方式も用いられる。
伝送路に出力された信号は、伝送路上のチャネル部1204によって、例えばガウス性熱雑音やマルチパスフェージングなど、通信システムに特有の歪みが付加され、受信装置200Bに伝送される。
受信装置200Bは、復調部2005、デインタリーバ部2006、ソート部102、更新スケジュール作成部2012、LDPC検査行列保持部104、事前尤度更新部105、事前尤度保持部106、パリティ検査部2007およびインタリーバ部2013を備える。
復調部2005は、チャネル部1204を介して、変調部2003から出力された信号を受信して復調し、この復調した受信信号をバッファに保持する。そして、復調部2005は、上記受信信号と、インタリーバ部2013から入力されるビット毎の事前尤度とを用いて反復復調を行い、ビットデータの各ビットの尤度を求め、これをデインタリーバ部2006へ出力する。
また、復調部2005は、同じ受信信号に対する反復復調の回数をカウントし、これをパリティ検査部2007および更新スケジュール作成部2012に通知する。なお、初回の復調処理では、インタリーバ部2013からの事前尤度が入力されないため、復調部2005は、上記バッファに保持した受信信号のみを用いる。
デインタリーバ部2006は、復調部2005から入力された各ビットの尤度を、送信装置200Aのインタリーバ部2002で拡散した手順と逆の操作で並び替え、もとの符号データC〜Cの並びに戻す。すなわち、尤度F〜Fを求める。そして、デインタリーバ部2006は、尤度F〜Fを入力尤度として保持する。またデインタリーバ部2006は、保持している尤度を少なくとも1つ以上、後段の事前尤度更新部105およびパリティ検査部107の処理に応じて、ソート部102、事前尤度更新部105およびパリティ検査部107に出力する。
ソート部102は、デインタリーバ部2006から入力される符号データの尤度F〜Fを、所定の基準により並び替える。なお、この実施形態では、上記所定の基準を、入力尤度F〜Fの絶対値が小さい順とする。このため、ソート部102は、入力尤度F〜Fの絶対値を検出し、小さい順に並び替えるものとする。そしてソート部102は、並び替えた入力尤度F〜Fのインデックスの情報(以下、インデックス情報と称する)を作成し、これを更新スケジュール作成部2012に出力する。
更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数と、ソート部102から入力されるインデックス情報に基づいて、事前尤度更新部105で事前尤度を更新する列の順序(更新スケジュール)を作成し、この更新スケジュールを事前尤度更新部105へ出力する。
具体的には、更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数が予め設定された回数未満の場合には、インデックス情報に基づいて、入力尤度F〜Fの絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
また、更新スケジュール作成部2012は、復調部2005から通知される反復復調の回数が予め設定された回数に達した場合には、データビットC〜Cに対応する事前尤度よりもパリティビットC〜Cに対応する事前尤度を優先的に更新するために、インデックス情報に基づいて、パリティビットC〜Cに対応する事前尤度のうち、入力尤度F〜Fの絶対値の小さいビットに対応する列から事前尤度を更新し、その後、データビットC〜Cに対応する事前尤度のうち、入力尤度F〜Fの絶対値の小さいビットに対応する列から事前尤度を更新する更新スケジュールを作成する。
事前尤度更新部105は、LDPC検査行列保持部104から入力される検査行列の情報と、更新スケジュール作成部2012から入力される更新スケジュールに従って、デインタリーバ部2006から入力される符号データの尤度F〜Fと、事前尤度保持部106から入力される事前尤度を用いて、全ての列の新たな事前尤度を求め、これを事前尤度保持部106へ出力する。また事前尤度更新部105は、新たな事前尤度を求める度に、事前尤度の更新処理を1回行ったものとして、その旨をパリティ検査部2007に通知する。
事前尤度保持部106は、事前尤度更新部105から入力される新たな事前尤度を保持する。なお、事前尤度保持部106が保持する事前尤度の数は検査行列中の1の数と一致する。そして、事前尤度保持部106は、パリティ検査部2007がパリティ検査を行う際に、保持している事前尤度をパリティ検査部2007に出力したり、また事前尤度更新部105が事前尤度の更新をする際に、保持している事前尤度を事前尤度更新部105に出力する。
なお、復号処理開始時において、事前尤度保持部106は、全て「0」に初期化した事前尤度を保持しており、事前尤度更新部105から新たな事前尤度が入力された場合には、古い事前尤度を廃棄し新たな事前尤度を保持する。
パリティ検査部2007は、デインタリーバ部2006から入力される尤度F〜Fと、事前尤度保持部106から入力される事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。そしてパリティ検査部107は、LDPC検査行列保持部104から入力される検査行列の情報に基づいて、上記符号データC〜Cのパリティ検査を行う。
ここでパリティ検査の結果が良好な場合、もしくは事前尤度更新部105から通知される事前尤度の更新処理の回数が予め設定した回数に達した場合、パリティ検査部2007は、当該符号データC〜Cに対する復号処理を終了するために、後段の信号処理部(図示しない)へ上記符号データC〜C(または符号データC〜Cの事前尤度)を出力する。
一方、パリティ検査の結果が良好でなく事前尤度の更新処理の回数が予め設定した回数に達し、かつ復調部2005から通知される反復復調の回数が予め設定された回数に達していない場合には、パリティ検査部2007は、符号データC〜Cの事前尤度をインタリーバ部2013へ出力する。
インタリーバ部2013は、パリティ検査部2007から入力される符号データC〜Cの事前尤度を、送信装置200Aのインタリーバ部2002と同様に拡散し、復調部2005へ出力する。
次に、上記構成の受信装置200Bの動作について説明する。この動作を説明するフローチャートを図21に示す。この図に示す処理は、チャネル部1204を介して変調部2003から送られる符号データC〜Cに相当する信号に対して行われる処理であって、上記信号毎に繰り返し行われる。
まず、処理2101では、復調部2005が、チャネル部1204を介して変調部2003から、符号データC〜Cに相当する信号を受信して復調し、この復調した受信信号をバッファに保持する。そして復調部2005は、上記受信信号と、インタリーバ部2013から入力されるビット毎の事前尤度と用いて反復復調を行い、ビットデータの各ビットの尤度を求め、これをデインタリーバ部2006へ出力する。
また、復調部2005は、同じ受信信号に対する反復復調の回数をカウントし、これをパリティ検査部2007および更新スケジュール作成部2012に通知する。なお、初回の復調処理では、インタリーバ部2013からの事前尤度が入力されないため、復調部2005は、上記バッファに保持した受信信号のみを用いる。
処理2102では、デインタリーバ部2006が、処理2101により復調部2005から入力された各ビットの尤度を、送信装置200Aのインタリーバ部2002で拡散した手順と逆の操作で並び替え、もとの符号データC〜Cの並びに戻す。すなわち、尤度F〜Fを求める。そして、デインタリーバ部2006は、尤度F〜Fを入力尤度として保持する。
処理2103では、ソート部102が、デインタリーバ部2006から符号データの尤度F〜Fを取得し、これをその絶対値が小さい順に並び替える。そしてソート部102は、並び替えた入力尤度F〜Fのインデックス情報を作成し、これを更新スケジュール作成部2012に出力する。
処理2104では、更新スケジュール作成部2012が、処理2101により復調部2005から通知された反復復調の回数が、予め設定された回数に達したか否かを判定する。ここで、反復復調の回数が予め設定された回数に達さない場合には、処理2105に移行し、一方、反復復調の回数が予め設定された回数に達した場合には、処理2106に移行する。
処理2105では、更新スケジュール作成部2012が、ソート部102から取得したインデックス情報に基づいて、入力尤度F〜Fの絶対値が小さいビットに対応する列から事前尤度を更新するような更新スケジュールを作成する。
処理2106では、更新スケジュール作成部2012が、データビットC〜Cに対応する事前尤度よりもパリティビットC〜Cに対応する事前尤度を優先的に更新するために、ソート部102から取得したインデックス情報に基づいて、ソート部102から取得したパリティビットC〜Cに対応する事前尤度のうち、入力尤度F〜Fの絶対値の小さいビットに対応する列から事前尤度を更新し、その後、データビットC〜Cに対応する事前尤度のうち、入力尤度F〜Fの絶対値の小さいビットに対応する列から事前尤度を更新する更新スケジュールを作成する。
処理2107では、事前尤度更新部105が、デインタリーバ部2006から入力尤度F〜Fを取得するとともに、LDPC検査行列保持部104から検査行列の情報を取得し、さらに事前尤度保持部106から事前尤度を取得する。そして、事前尤度更新部105は、上記検査行列の情報と、更新スケジュール作成部1207から入力された更新スケジュールに従って、上記入力尤度F〜Fと上記事前尤度を用いて、検査行列の全ての列の事前尤度を更新する。
このようにして更新された事前尤度は、事前尤度保持部106へ出力され、事前尤度保持部106にて保持される。事前尤度保持部106にて保持されていた古い事前尤度は破棄される。また事前尤度更新部105は、新たな事前尤度を求めると、事前尤度の更新処理を行った旨をパリティ検査部2007に通知する。
処理2108では、上記通知を受けたパリティ検査部2007が、事前尤度保持部106からここに保持される最新の事前尤度を取得するとともに、デインタリーバ部2006から入力尤度F〜Fを取得し、この入力尤度F〜Fと上記事前尤度とに基づいて、事後尤度を算出し、この事後尤度に基づく硬判定を行って符号データC〜Cを得る。
処理2109では、パリティ検査部2007が、LDPC検査行列保持部104から検査行列の情報を取得し、処理2108で得た符号データC〜Cのパリティ検査を行う。ここで、パリティ検査部2007は、パリティ検査の結果が良好な場合、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。一方、パリティ検査の結果が良好でない場合は、処理2110を実行する。
処理2110では、パリティ検査部2007が、処理2107で通知される事前尤度の更新処理の回数iが予め設定した回数に達したか否かを判定する。ここで、事前尤度の更新処理の回数iが予め設定した回数に達している場合には、処理2111を実行する。一方、予め設定した回数に達していない場合には、再び処理2107を実行し、事前尤度の更新を行う。
処理2111では、パリティ検査部2007が、処理2101により復調部2005から通知された反復復調の回数が、予め設定された回数に達したか否かを判定する。ここで、反復復調の回数が予め設定された回数に達さない場合には、処理2112に移行し、一方、反復復調の回数が予め設定された回数に達した場合には、上記符号データC〜C(または符号データC〜Cの事前尤度)を出力して、当該符号データC〜Cに対する復号処理を終了する。
処理2112では、パリティ検査部2007が、符号データC〜Cの事前尤度をインタリーバ部2013へ出力する。これに対して、インタリーバ部2013は、パリティ検査部2007から入力される符号データC〜Cの事前尤度を、送信装置200Aのインタリーバ部2002と同様に拡散し、復調部2005へ出力する。その後、処理2101に移行する。
以上のように、上記構成の受信装置200Bは、反復復調を行うものであって、予め設定した反復回数に達するまでは、データビットC〜CとパリティビットC〜Cを区別することなく、信頼度の低い入力尤度を優先的に用いて事前尤度を更新しながら反復復調を行い、一方、予め設定した反復回数に達した場合には、データビットC〜CよりもパリティビットC〜Cを優先して、事前尤度を更新するようにしている。したがって、上記構成の受信装置200Bでは、反復復調によるデータ誤りの軽減効果を十分に発揮できるので、受信データの誤りを少なくすることができる。
図22に、計算機シミュレーションを用いて第1の実施の形態の復号装置を適用した場合のガウス性熱雑音通信路でのビット誤り率(BER)特性を示す。LDPC符号の検査行列は符号長1004bit、パリティ長502bit、符号化率0.5のイレギュラーLDPC符号を用い、最大反復復号回数を3回とした。図22より更新順序を決定する本発明が、更新順序を決定しない従来方式よりも良好なBER特性を得られることが示された。
また、上記実施の形態では、反復復調を行う場合を例に挙げて説明したが、復調処理でなくても、MIMO(Multi-Input Multi-Output)システムやCDMA(Code Division Multiple Access)システムで用いられるような反復処理を行う受信装置に適用しても、反復処理による効果を十分に発揮させることができる。
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
例えば、上記実施形態では、主に無線通信システムについて述べたが、通信分野に限定されるものではなく、LDPC符号化を行うものであれば、いかなる装置にも適用可能である。その一例として、磁気記録システムや光ディスクシステム、更には半導体メモリ等、様々なストレージシステムでも用いることが可能である。これらのシステムでは、データをLDPC符号化して記憶媒体に記録し、その後、読み出した符号データを復号して上記データを得るものである。
また上記実施の形態では、図1、図8、図10、図12、図16および図20に各実施形態に係わる復号装置の構成を回路ブロック図として示したが、これらの構成をそれぞれDSP(Digital Signal Processor)と図示しない記憶部に記憶させた制御プログラムとにより実現することができる。すなわち、上記DSPが上記制御プログラムに従って動作し、上記構成として機能することで実現できる。
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
この発明に係わる復号装置の第1の実施の形態の構成を示す図。 図1に示した復号装置で用いる入力尤度の一例を示す図。 図1に示した復号装置で用いるLDPC検査行列の一例を示す図。 図1に示した復号装置の事前尤度更新部の構成例を示す図。 図1に示した復号装置の事前尤度更新部の構成例を示す図。 図1に示した復号装置の動作を示すフローチャート。 図3に示したLDPC検査行列の列重みを示す図。 この発明に係わる復号装置の第2の実施の形態の構成を示す図。 図8に示した復号装置の動作を示すフローチャート。 この発明に係わる復号装置の第3の実施の形態の構成を示す図。 図10に示した復号装置の動作を示すフローチャート。 この発明の第4の実施の形態に係わる通信システムの構成を示す図。 図12に示した通信システムで行われるパンクチャを示す図。 図12に示したデパンクチャ部に入出力される尤度を示す図。 図12に示した復号装置の動作を示すフローチャート。 この発明の第5の実施の形態に係わる通信システムの構成を示す図。 図16に示した多値変調部における変調を示す図。 符号データとラベルとの対応を示す図。 図16に示した復号装置の動作を示すフローチャート。 この発明の第6の実施の形態に係わる通信システムの構成を示す図。 図20に示した復号装置の動作を示すフローチャート。 図1に示した復号装置のビット誤り率特性を示す図。
符号の説明
101…入力尤度保持部、102…ソート部、103,803,1003,1207,1610,2012…更新スケジュール作成部、104,804,1004…LDPC検査行列保持部、105…事前尤度更新部、106…事前尤度保持部、107,2007…パリティ検査部、120A,160A,200A…送信装置、120B,160B,200B…受信装置、401,501〜50G…列処理部、402,511〜51G…行処理部、1002…グルーピング部、1201…LDPC符号化部、1202…パンクチャ部、1203,2003…変調部、1204…チャネル部、1205,2005…復調部、1206…デパンクチャ部、1603…多値変調部、1605…多値復調部、2002,2013…インタリーバ部、2006…デインタリーバ部。

Claims (10)

  1. 低密度パリティ検査行列を用いてデータビットをLDPC符号化した符号データに含まれる前記データビットとパリティビットの各尤度を取得する取得手段と、
    前記尤度の信頼度を検出する検出手段と、
    前記信頼度に基づいて、前記尤度を信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成する作成手段と、
    前記低密度パリティ検査行列を用いて、前記更新スケジュールに従った順序で前記尤度をそれぞれ更新する更新手段と、
    この更新手段が更新した尤度、前記データビットの尤度および前記パリティビットの尤度に基づいて事後尤度を求め、これを硬判定する判定手段と、
    前記符号データを得るために、前記判定手段の判定結果をパリティ検査する検査手段とを具備することを特徴とする復号装置。
  2. 前記検出手段は、前記符号データを構成するビットの尤度の絶対値の大きさに基づいて信頼度を検出することを特徴とする請求項1に記載の復号装置。
  3. 低密度パリティ検査行列を用いてデータビットをLDPC符号化した符号データに含まれる前記データビットとパリティビットの各尤度を取得する取得手段と、
    前記低密度パリティ検査行列のうち、前記符号データを構成するビットの尤度に対応する列の列重みを検出する検出手段と、
    前記列重みが大きな列に対応するビットから優先的に更新する順序を示す更新スケジュールを作成する作成手段と、
    前記低密度パリティ検査行列を用いて、前記更新スケジュールに従った順序で前記尤度をそれぞれ更新する更新手段と、
    この更新手段が更新した尤度、前記データビットの尤度および前記パリティビットの尤度に基づいて事後尤度を求め、これを硬判定する判定手段と、
    前記符号データを得るために、前記判定手段の判定結果をパリティ検査する検査手段とを具備することを特徴とする復号装置。
  4. 前記検出手段は、前記符号データを構成するビットの尤度の絶対値の大きさに基づいて、前記尤度のグループ分けを行い、各グループの信頼度を検出し、
    前記作成手段は、前記各グループの信頼度に基づいて、前記符号データを構成する各ビットの尤度を、信頼度の低いグループに属するものから優先的に更新する順序を示す更新スケジュールを作成することを特徴とする請求項1に記載の復号装置。
  5. 前記取得手段は、パンクチャされた符号データを構成するビットの尤度をそれぞれ取得するものであって、
    さらに、前記取得手段が取得した各ビットの尤度に、パンクチャされたビットに対応する尤度を付加するデパンクチャ手段を備え、
    前記検出手段は、前記パンクチャされたビットに対応する尤度を、それ以外のビットに対応する尤度よりも信頼度が低いものとして検出することを特徴とする請求項1に記載の復号装置。
  6. 前記取得手段は、1つの信号点に複数のビットを割り当てる多値変調により伝送された符号データを構成するビットの尤度をそれぞれ取得し、
    前記検出手段は、前記信号点に割り当てられたビットのうち、誤りやすいラベルが割り当てられたビットに対応する尤度を、それ以外のラベルが割り当てられたビットに対応する尤度よりも信頼度が低いものとして検出することを特徴とする請求項1に記載の復号装置。
  7. 前記取得手段は、受信信号を復調して前記符号データを構成するビットの尤度をそれぞれ取得するとともに、更新手段が更新した尤度を用いて反復復調を行うものであって、
    さらに、前記取得手段による反復復調の回数を検出する回数検出手段を備え、
    前記作成手段は、前記回数が予め設定した値未満の場合には、前記データビットに対応する尤度と前記パリティビットに対応する尤度とを区別することなく、前記信頼度に基づき、信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成し、一方、前記回数が予め設定した値に達した場合には、前記パリティビットに対応する尤度について、優先的に更新する順序を示す更新スケジュールを作成することを特徴とする請求項1に記載の復号装置。
  8. 前記作成手段は、前記符号データを構成する各ビットの尤度のうち、前記パリティビットに対応する尤度について、前記信頼度に基づき、信頼度の低いものから優先的に更新し、次に、前記データビットに対応する尤度について、前記信頼度に基づき、信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成することを特徴とする請求項1に記載の復号装置。
  9. 低密度パリティ検査行列を用いてデータビットをLDPC符号化した符号データに含まれる前記データビットとパリティビットの各尤度を取得する取得工程と、
    前記尤度の信頼度を検出する検出工程と、
    前記信頼度に基づいて、前記尤度を信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成する作成工程手段と、
    前記低密度パリティ検査行列を用いて、前記更新スケジュールに従った順序で前記尤度をそれぞれ更新をする更新工程と、
    この更新工程で更新した尤度、前記データビットの尤度および前記パリティビットの尤度に基づいて事後尤度を求め、これを硬判定する判定工程と、
    この符号データを得るために、前記判定工程の判定結果をパリティ検査する検査工程とを具備することを特徴とする復号方法。
  10. 低密度パリティ検査行列を用いてデータビットをLDPC符号化した符号データに含まれる前記データビットとパリティビットの各尤度を取得する取得手段と、
    前記尤度の信頼度を検出する検出手段と、
    前記信頼度に基づいて、前記尤度を信頼度の低いものから優先的に更新する順序を示す更新スケジュールを作成する作成手段と、
    前記低密度パリティ検査行列を用いて、前記更新スケジュールに従った順序で前記尤度をそれぞれ更新する更新手段と、
    この更新手段が更新した尤度、前記データビットの尤度および前記パリティビットの尤度に基づいて事後尤度を求め、これを硬判定する判定手段と、
    前記符号データを得るために、前記判定手段の判定結果をパリティ検査する検査手段として復号装置を機能させるためのプログラム。
JP2006183659A 2006-07-03 2006-07-03 復号装置、方法およびプログラム Expired - Fee Related JP4253332B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006183659A JP4253332B2 (ja) 2006-07-03 2006-07-03 復号装置、方法およびプログラム
US11/723,336 US7979777B2 (en) 2006-07-03 2007-03-19 Apparatus, method and program for decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006183659A JP4253332B2 (ja) 2006-07-03 2006-07-03 復号装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008016959A JP2008016959A (ja) 2008-01-24
JP4253332B2 true JP4253332B2 (ja) 2009-04-08

Family

ID=38878335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006183659A Expired - Fee Related JP4253332B2 (ja) 2006-07-03 2006-07-03 復号装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US7979777B2 (ja)
JP (1) JP4253332B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8034717B2 (en) 1999-08-31 2011-10-11 Renesas Electronics Corporation Mass production method of semiconductor integrated circuit device and manufacturing method of electronic device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007091327A1 (ja) * 2006-02-09 2007-08-16 Fujitsu Limited Ldpc検査行列生成方法及び検査行列生成器並びに符号再送方法
JP4766013B2 (ja) * 2007-08-02 2011-09-07 住友電気工業株式会社 復号器、受信装置及び符号化データの復号方法
KR101503058B1 (ko) * 2008-02-26 2015-03-18 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서의 채널 부호화/복호화 방법 및 장치
US20090252146A1 (en) * 2008-04-03 2009-10-08 Microsoft Corporation Continuous network coding in wireless relay networks
JP5276173B2 (ja) * 2008-08-15 2013-08-28 エルエスアイ コーポレーション ニア・コードワードのromリスト復号
JP5790029B2 (ja) 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
WO2012166168A1 (en) 2011-06-02 2012-12-06 Atrium Medical Corporation Body lumen fluid delivery device
JP5765281B2 (ja) * 2012-03-27 2015-08-19 株式会社Jvcケンウッド 復号装置、復号方法、及び、プログラム
US8826105B2 (en) * 2012-04-12 2014-09-02 Lsi Corporation Data processing system with out of order transfer
WO2017123273A1 (en) * 2016-01-14 2017-07-20 Intel IP Corporation Informationally efficient error correction coding
US11177002B1 (en) * 2020-06-30 2021-11-16 Sandisk Technologies Llc Programming memory cells using encoded TLC-fine
KR20230107872A (ko) 2020-10-15 2023-07-18 삼성전자주식회사 통신 또는 방송 시스템에서 데이터 복호화 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03185530A (ja) * 1989-12-14 1991-08-13 Mitsubishi Electric Corp データ処理装置
JP3502216B2 (ja) * 1995-07-13 2004-03-02 富士通株式会社 情報処理装置
US6938196B2 (en) 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8034717B2 (en) 1999-08-31 2011-10-11 Renesas Electronics Corporation Mass production method of semiconductor integrated circuit device and manufacturing method of electronic device
US8293648B2 (en) 1999-08-31 2012-10-23 Renesas Electronics Corporation Mass production method of semiconductor integrated circuit device and manufacturing method of electronic device

Also Published As

Publication number Publication date
JP2008016959A (ja) 2008-01-24
US20080005641A1 (en) 2008-01-03
US7979777B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
JP4253332B2 (ja) 復号装置、方法およびプログラム
CN110226289B (zh) 接收器和用于解码的方法
TWI401892B (zh) 在使用低密度同位檢查碼的通訊系統中的通道編碼與解碼的方法及其裝置
JP6886515B2 (ja) データ伝送方法、送信デバイス、受信デバイス、及び通信システム
KR20090092197A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 방법 및 장치
JP2007507989A (ja) 単一の送信機または多数の送信機を有する通信システムのためのエラー訂正マルチステージ符号生成器および復号器
JP4138700B2 (ja) 復号装置および復号回路
CN110995278A (zh) 一种改进极性码串行消除列表比特翻转译码方法及系统
US20130007551A1 (en) Stochastic Stream Decoding of Binary LDPC Codes
US9300328B1 (en) Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios
CN111480324B (zh) 用于检测相互干扰的信息流的装置和方法
CN107809303A (zh) 一种基于awgn子信道优化的极化码译码方法
KR20130012550A (ko) Ldpc 부호화 및 복호화 방법 및 그 방법을 사용하는 장치
JP2008544639A (ja) 復号方法と装置
KR20150003127A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR102048515B1 (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
JP4863519B2 (ja) 復号化装置、復号化方法、復号化プログラム、受信装置、及び通信システム
US8156412B2 (en) Tree decoding method for decoding linear block codes
KR101503655B1 (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
KR102163876B1 (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
US20250070916A1 (en) Device and method for decoding polar codes by using future constraints in communication system or broadcasting system
CN109379085B (zh) 基于ldpc码的突发信道的译码方法、设备和存储介质
JP6771184B2 (ja) 符号化装置、符号化方法及びプログラム
RU2446585C2 (ru) Способ и устройство для кодирования и декодирования канала в системе связи с использованием кодов проверок на четность с малой плотностью
KR20250024515A (ko) 최소 신뢰 비트(lrb) 식별을 위한 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081201

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

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

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

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140130

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees