JP5523064B2 - 復号装置及び方法 - Google Patents

復号装置及び方法 Download PDF

Info

Publication number
JP5523064B2
JP5523064B2 JP2009259784A JP2009259784A JP5523064B2 JP 5523064 B2 JP5523064 B2 JP 5523064B2 JP 2009259784 A JP2009259784 A JP 2009259784A JP 2009259784 A JP2009259784 A JP 2009259784A JP 5523064 B2 JP5523064 B2 JP 5523064B2
Authority
JP
Japan
Prior art keywords
row
llr
value
division
column
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
JP2009259784A
Other languages
English (en)
Other versions
JP2011109228A (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 JP2009259784A priority Critical patent/JP5523064B2/ja
Publication of JP2011109228A publication Critical patent/JP2011109228A/ja
Application granted granted Critical
Publication of JP5523064B2 publication Critical patent/JP5523064B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、符号長が等しく符号化率が異なる複数の低密度パリティ検査符号(Low-Density Parity-Check code;以下、LDPC符号と称す)を切り替え可能な復号装置及び方法に関するものである。
誤り訂正符号の符号長をn、情報系列長をkとすると、符号化率はk/nで表される値である。符号化率が大きいと通信効率が高く誤り訂正能力が低く、逆に符号化率が小さいと通信効率が低く誤り訂正能力が高い。つまり、誤り訂正符号を用いる通信システムに応じて、符号化率を適切な値に設定するのが重要である。また、一部の通信システムにおいては、異なる符号化率の誤り訂正符号を通信装置に備え、通信路の状況などに応じてそれらを切り替えることで、適切な値の符号化率の誤り訂正符号を用いるようにしている。
LDPC符号は、1の要素が疎(全要素数に対して少ない割合で存在)であるパリティ検査行列で定義される誤り訂正符号である。パリティ検査行列の列数nが符号長に対応し、行数mが検査ビット(パリティビット)数に対応する。パリティ検査行列の列に含まれる1の数をその列の列重みと呼び、全ての列に対する列重みの分布を列重み分布と呼ぶ。列重み分布はLDPC符号の誤り訂正能力に大きく影響するが、最適な列重み分布は密度発展法などにより計算できる。なお、同様に、行に含まれる1の数を行重みと呼ぶ。また、パリティ検査行列をタナーグラフとよばれる2部グラフによって表現したとき、タナーグラフに含まれる最短ループの長さ(girth)が大きいほど、LDPC符号の誤り訂正能力は高い。
LDPC符号を用いて符号化率が可変な通信装置を構成する場合、可変する符号化率それぞれに対してパリティ検査行列が必要となる。LDPC符号では、符号化率が異なるとパリティ検査行列も異なるものにしなければならず、また、符号化演算や復号演算はパリティ検査行列に依存する。つまり、複数の符号化率のLDPC符号を1つの通信装置に搭載する場合、搭載する符号化率の数だけ異なる符号化器や復号器を用意する必要がある。
前記の問題を解決する方法として、Rate-Compatible LDPC符号(以下、RC−LDPC符号と称す)の開発が行われている(例えば特許文献1参照)。RC−LDPC符号では、可変を行う符号化率のうち、符号化率のより小さいLDPC符号のパリティ検査行列が、符号化率のより大きいLDPC符号のパリティ検査行列の部分行列となるように構成されている。つまり、可変を行う異なる符号化率の間でパリティ検査行列が共通部分をもち、復号装置が効率的に構成可能となる。しかし、可変する符号化率の全てで列重み分布を最適値に近い値とし、かつタナーグラフの最短ループ長が大きくなるようにRC−LDPC符号を構成するのは困難であり、また、符号化率が大きいほど列重みが大きくなるため、高符号化率における復号演算の演算量が大きいことが問題であった。さらに、効率的な符号化器を構成するために、符号化率が大きいほどLDPC符号の符号長が長くなるように設計する必要があり、異なる符号化率間で符号長を一定にできないという問題があった。
符号化率を可変する方法として、他にもパディングおよびパンクチャという手法がある。パディングでは、送信時に情報ビットの一部をある決まった値(例えば0)に固定して符号化し、その情報ビットを既知の値として受信側では復号を行う。情報系列長のみを小さくでき、符号化率を小さくすることができる。また、パンクチャは、送信時にパリティビットの一部を送信しないことでパリティビット長を小さくする技術であり、受信側では送信されなかったパリティビットを全く未知のビットとして扱い復号を行う。パンクチャではパリティビット長のみが小さくなるため、符号率は大きくなる。通信システムには、これらの手法を適用するかしないかの切り替え機能を搭載することで比較的小さな回路規模の増加で可変符号化率を実現できる。しかし、これらの手法で構成されたLDPC符号は、同じ符号化率のLDPC符号と比べて誤り訂正能力が小さい。また、手法の性質上、符号化率によって異なる符号長となってしまう。
前記のRC−LDPC符号に対し、パディングやパンクチャを適用することで符号長が一定である可変符号化率のLDPC符号を構成することは可能であるが、前記で述べたようにRC−LDPC符号自体の演算量の大きさと、パディングやパンクチャによる誤り訂正能力の低下が問題であった。
次に、LDPC符号の復号法について説明する。広く用いられているメッセージパッシング型の復号法は列演算および行演算と呼ばれる2つの演算から構成されており、これらの演算を交互に繰り返すことで推定ビットを算出する。このような復号法のうちで代表的なのがSum-product復号法であるが、行演算の演算量が大きい。そのため、行演算を簡略化した復号法が提案されており、例えばMin-sum復号法がある。
前記で説明した復号法の列演算および行演算は、それぞれパリティ検査行列の列と行に対応した演算である。行演算は、各ビットの信頼度を表す受信対数尤度比(Log-Likelihood Ratio;以下、LLRと称す。)を入力として行LLRを出力する。列演算は、行LLRを入力として列LLRを出力する。なお、前記の通り列演算と行演算は交互に繰り返すが、繰り返しの2回目以降の行演算では、列演算が出力した列LLRを入力として行LLRを出力する。
次に、Sum-product復号法の行演算について詳しく説明する。まず、パリティ検査行列のr行目において、行列要素が1である列番号の集合をN(r)とおく。下に示す式(1)はr行目に対応する行演算であり、行LLR(繰り返し一回目は受信LLR)Zr,cから列LLRεr,cを算出することを表している。ただし、式(1)において、cはN(r)が含む列番号を表し、N(r)\{c}はN(r)からcを除いた集合である。なお、行演算では、各cに対してεr,cを算出する必要があり、N(r)の要素数、つまりr行目の行重みの数だけ列LLRεr,cを算出することになる。
Figure 0005523064
なお、式(1)の演算記号や関数の定義は以下の通りである。
Figure 0005523064
国際公開第07/088870号公報
従来手法による、符号長が等しく符号化率が異なる複数のLDPC符号を切り替え可能な復号装置は、パリティ検査行列の列重み増大による回路規模増加と、パディングやパンクチャによる誤り訂正能力の低下が問題であった。
この発明では、上述した点に鑑みてなされたもので、パリティ検査行列の列重み増大による回路規模増加と、パディングやパンクチャによる誤り訂正能力の低下が発生しない復号装置及び方法を得ることを目的とする。
この発明に係る復号装置及び方法は、LDPC符号の復号装置及び方法であって、受信信号から受信LLRを算出する受信LLR算出手段(工程)と、前記受信LLRまたは列LLRから行LLRを算出する行演算の際に、パリティ検査行列の行を行分割することによって生じた複数の行それぞれに対して、最小値と2番目に小さい値と3番目に小さい値を算出する最小3値演算手段(工程)と、パリティ検査行列の行分割後の行に対する最小3値演算結果に基づいて行分割前の行に対する最小3値演算を行うことにより、行分割の前後それぞれの行に対する行演算を切り替えて行う行分割切り替え手段(工程)と、算出した最小値と2番目に小さい値と3番目に小さい値に基づいて、D値を演算し、最小3値それぞれからD値を引く演算手段(工程)と、前記行LLRから列LLRおよび推定ビット列を算出する列演算手段(工程)と、前記最小3値演算手段(工程)、行分割切り替え手段(工程)およびD値を引く演算手段(工程)と前記列演算手段(工程)とを交互に繰り返し、規定の回数に達した場合もしくは推定ビット列が符号語となった場合に繰り返しを終了する繰り返し演算終了判定手段(工程)とを備え、行重みの最も大きいまたは比較的大きい行を選択して行分割を行う、行分割後におけるパリティ検査行列の最大行重みが小さくなるように行を選択して行分割を行う、行分割後の行のうち行重みが2の累乗数となる行がより多く生じるように行分割を行う、の少なくとも1つに基づいて行分割を行うものである。
この発明によれば、パリティ検査行列に行分割または行結合を行うことで、列重みを増大させずに、符号長が等しく符号化率が異なる複数のLDPC符号を生成することができ、行分割後または行結合後の行に対応する行演算結果を用いて行分割前または行結合前の行に対応の行演算を行うことができ、小さな回路規模で前記LDPC符号それぞれの復号を切り替えて行うことが可能であり、さらに、パディングやパンクチャを行わないため、パディングやパンクチャによる誤り訂正能力の低下が発生しない。
この発明の実施の形態1に係るもので、パリティ検査行列の行分割を説明する図である。 この発明の実施の形態1で行う行分割操作の前後におけるパリティ検査行列の変化を示す図である。 この発明の実施の形態1に適用が可能な通信システムの一例を示す構成図である。 図3に示す復号器500の内部構成を示すブロック図である。 図4に示す行演算器530の内部構成を示すブロック図である。 図5に示す行演算部a531の内部構成を示すブロック図である。 図5に示す行演算部b532の内部構成を示すブロック図である。 この発明の実施の形態2に係るもので、図5に示す行演算部a531がMin-sum復号法の行演算部a531でなる場合の内部構成を示すブロック図である。
実施の形態1.
この発明では、誤り訂正符号としてLDPC符号を扱う。また、パリティ検査行列は要素が0と1からなるm×n行列とする。本実施の形態1では、行分割という操作により、列数を変化させずにパリティ検査行列の行数を変化させる。つまり、符号長を一定としたままパリティビット数を変化させることで、LDPC符号の符号化率の可変を行う。
行分割操作は、図1に示すように、パリティ検査行列の1つの行が含む1を新たな2つ以上の行に分割して配置し、行数を増加する手法である。元となるパリティ検査行列を1つ用意し、行分割を行うか行わないか切り替えることによって符号化率の可変が可能となる。また、2種類より多くの符号化率を可変とする場合には、複数通りの行分割を行い、それぞれの行分割において増加する行数が異なるようにし、それらの行分割のうちどれを用いるか切り替えれば符号化率を可変とすることが可能である。
行分割の特徴は、行分割の前後において符号長が同一であること、各列の列重みが同一であること、パリティ検査行列のタナーグラフの最短ループ長が減少しないことであり、特に後者2つの特徴は、行分割を行っても誤り訂正能力が高いことを示している。
図2では、本実施の形態1で行う行分割操作の前後におけるパリティ検査行列の変化を図示する。図2の下に示すパリティ検査行列H2は、パリティ検査行列H1に行分割を施すことによってr行が増加した(m+r)×n行列である。図2で示すように、行分割の前後で符号長は同一であり、各列の列重みも同一となる。なお、本実施の形態1において、1つの行を必ず2つの行に分割しなければならないといった制限はなく、1つの行は何行に分割しても良い。そのため、行分割を適用する行数だけでなく、それぞれの行分割において1行を何行に分割するかによっても、増加させたい行数r(増加させたいパリティビット数)を設定可能である。なお、図2では、パリティ検査行列の列のうちパリティビットに対応する列を最も右側のm列もしくはm+r列としたが、これは一例であり、H1とH2とで共通するパリティビットの対応列が同じであれば、どの列にパリティビットを対応させたとしても本実施の形態1の構成は可能である。
この発明では、予めパリティ検査行列を用意し、どのように行分割を行うかを決定してから、符号化率の可変が可能な、LDPC符号の復号装置を構成する。
図3は、この発明の適用が可能な通信システムの構成図の一例である。送信側の装置は、送信ビット列から誤り訂正符号の符号語を生成する符号化器100と、符号語を元に変調信号を生成する変調器200とで構成される。送信された信号は通信路300を介して受信される。受信側の装置は、受信した信号の復調を行う復調器400と、復調された信号を元に誤り訂正符号の復号を行う復号器500とから構成される。
図3において、符号化器100は、送信ビット列を元にしてパリティビットを生成して符号化を行い、符号語を算出する。変調器200は、符号語に基づいて変調を行い、通信方式により電波や光もしくは電気信号による変調信号を生成し、送信する。送信された信号は、通信路300を通る際に雑音が付加され、受信側の装置によって受信される。復調器400では、受信した信号の復調を行い、各ビットの受信信号値を出力する。復号器500は入力された受信信号値に基づいて復号を行い、その結果算出された送信情報の推定ビット列を出力する。
図4に、図3に示す復号器500の内部構成を示すブロック図を示す。復号器500は入力を制御する入力回路510と、入力値である受信信号値を元に受信LLRを算出する受信LLR演算器520と、受信LLRもしくは列LLRを入力として行LLRを出力する行演算器530と、行LLRから列LLRを算出する列演算器540と、行演算と列演算の繰り返しの終了を判定する繰り返し演算終了判定回路550と、推定ビット列の出力を制御する出力回路560と、内部もしくは外部に設置されたメモリ570とから構成される。
次に、図4に示す復号器500の動作について説明する。入力回路510は、入力値である受信信号値の入力を制御して、適切なタイミングで受信LLR演算器520へ受信信号値を出力する。復号演算はLDPC符号の符号語単位で行うため、符号長と同数のn個の受信信号値を一度に、もしくは数回にわけて適宜出力する。単位受信LLR演算器520は、変調方式などによって異なる演算を行い、各受信信号値から受信LLRを算出し出力する。
行演算器530は、受信LLR演算器520から入力された受信LLRか、もしくは繰り返し演算終了判定回路7から入力された列LLRを入力として、行LLRを算出する。なお、入力の受信LLRは、パリティ検査行列のn個の列それぞれに対応した値であり、n個の値からなる。また、繰り返し演算終了判定回路7から入力される列LLRは、パリティ検査行列の各列それぞれに対し列重みの数だけ存在する値であり、全合計でパリティ検査行列に含まれる1の数と同数の種類の値からなる。行LLRも同様に、各行に対しそれぞれ行重みの数だけ存在し、合計でパリティ検査行列が含む1の数と同数の種類の値からなる。
列演算器540は、行LLRから列LLRを算出し、また推定ビット列も計算する。繰り返し演算終了判定回路7は、行演算と列演算を規定の回数繰り返したかを判定し、もし繰り返しを続行するなら行演算器530へ列LLRを出力し、繰り返しを終了するならば推定ビット列を出力回路560へと出力する。繰り返しを終了するかの判定は、推定ビット列にパリティチェックを行い、推定ビット列が符号語になっているかどうかで判定してもよく、本実施の形態ではどのような繰り返し終了判定基準でも構成可能である。
出力回路560は、適切なタイミングで推定ビット列を出力する。メモリ570は、前記の演算器もしくは回路が用いる記憶領域であり、例えば、行演算器530が行演算を行うのに途中経過を記憶したりするのに用いる。どの演算器および回路が用いたとしても、本実施の形態1は構成可能であり、また、記憶するという目的であればどのように用いても本実施の形態1の構成は可能である。
図4の構成は一例であり、例えば繰り返し演算終了判定回路7から行演算器へと入力されている列LLRは列演算器540から直接入力されていてもよく、繰り返し演算の終了時に推定ビット列が出力回路560へと出力されればよい。
本実施の形態1は、復号器500に関する発明であるが、行分割の前後で図4に示した行演算器530以外の部分は共通して用いることができる。例えば、列演算器540は、本来であればパリティ検査行列に従って異なる構成とする必要があるが、行分割によってパリティ検査行列が変化した場合には構成を変える必要がない。なぜなら、列数は行分割前後で変わらず、また各列の列重みも変化しないからである。
図5に、本実施の形態1における図4に示す行演算器530の内部構成を示す。行演算器530は、行演算部a531と行演算部b532とで構成される。それぞれの行演算部は、複数設置されており、双方の合計数と行分割前のパリティ検査行列H1の行数は一致している。
行演算部それぞれは、パリティ検査行列H1の各行に対応する行演算を行い、列LLRから行LLRを計算して出力する。本実施の形態1における行演算部は、行演算部a531と行演算部b532の2種類あり、行分割後のパリティ検査行列H2を生成する際に行分割を施した行に対応した行演算を行う行演算部a531(図6)と、行分割を施してない行に対応した行演算を行う行演算部b532(図7)とがあり、それぞれ対応する行数だけ設置される。
次に、行分割を施した行に対応する行演算部a531について説明する。図6の行演算部a531は、行分割前のパリティ検査行列H1における行(r行目)に対応して設置されるものである。この行演算部a531では、行分割前のパリティ検査行列H1のr行目に対応した行演算と、r行目を行分割することによって生じた複数の行それぞれに対応した行演算(行分割後のパリティ検査行列H2の行演算)とを切り替えて行い、出力することが可能である。
図6に示すように、行演算部a531は、入力回路1と、行分割後の行それぞれの行演算に対応した行LLR演算器a2、行LLR演算器b3および行LLR演算器x4と、これらの行LLR演算器の出力を用いて行分割前のr行目の行演算を行う行分割前行LLR演算器5と、LDPC符号の符号化率を切り替える符号化率切り替え器6と、行LLRの出力を行う出力回路7とからなる。なお、図6において、スリードッツ8で示しているように、行LLR演算器は、行rを行分割して生じる行数だけ設置され、図で明示した3個とは限らない。具体的には、r行目をq個の行に分割したのなら行LLR演算器はq個設置される。
入力回路1は、列LLRの入力制御などを行い、パリティ検査行列が含む1の数だけの値で構成される列LLRのうち、図6の行演算部a531の入力となる列LLRを選択して出力する。ただし、復号器内の配線などによって、列LLRのうち行演算部a531の演算に必要となるものだけが入力されるようになっている場合には、入力回路1による列LLRの選択の必要はない。
次に、行LLR演算器について説明する。ここでは、パリティ検査行列のr行目を行分割することによって行a,b,...,xが新たに生じたとし、それぞれの行が含む1の列番号の集合を、Na(r),Nb(r),...,Nx(r)とする。行分割の性質から、これらのどの2つの集合も共通要素をもたず、また、これら全ての集合の和集合はN(r)(行分割前のr行に含まれる1の列番号の集合)と等しい。
次に、行LLR演算器について説明する。ここでは、パリティ検査行列のr行目を行分 図6の行LLR演算器a2、行LLR演算器b3、行LLR演算器x4は、前記で述べた行分割後の行である行a、行b、行xにそれぞれ対応した行LLR演算器である。これらのうち、行LLR演算器x4で算出する行LLRεx,cの算出式を式(6)に示す。式(6)の右辺は、背景技術で述べた式(1)のN(r)をNx(r)に置き換えた形となっているが、cはNx(r)が含む列番号である。
Figure 0005523064
なお、行LLR演算器a2、行LLR演算器b3に対する行LLR算出式も同様である。
前記のようにして、行分割後のパリティ検査行列H2の行a,b,xにおける行演算を、行LLR演算器a2、行LLR演算器b3、行LLR演算器x4によって行うことができる。
しかし、さらに本実施の形態1では、行分割前の行演算も行演算部a531で行えるようにするため、行LLR演算器a2、行LLR演算器b3、行LLR演算器x4において、式(7)で示すようなε,ε,εも計算することとする。ただし、式(7)では、行LLR演算器x4で行うεの算出式を代表して示す。
Figure 0005523064
式(7)は、式(6)のNx(r)\{c}をNx(r)に置き換えたものであり、ε,εの算出式も同様である。
なお、行分割後のパリティ検査行列H2に対応した行演算を行う場合には、式(7)の演算は必要ない。そのため、例えば、後に説明する符号化率切り替え器6において、行分割後のパリティ検査行列H2を用いると設定したときには、式(7)の演算を行わないように行LLR演算器a2、行LLR演算器b3および行LLR演算器x4を構成しても良い。
また、式(6)、式(7)の1つ目の小括弧内の関数sgnの積は、+1もしくは−1の値しかとらない。さらに、後半の小括弧の演算は負の数になることはない。
次に、行分割前行LLR演算器5の動作について説明する。行分割前行LLR演算器5は、前記の式(6)および式(7)の演算結果を用いて、行分割前の行rに対応した行演算を行う。行rの行演算は式(1)によって行えるが、行rが含む1の列番号の集合N(r)が、行分割後の1の列番号の集合Na(r),Nb(r),...,Nx(r)の和集合となる性質から、式(1)にN(r)=Na(r)∪Nb(r)∪・・・∪Nx(r)を代入すると次式(8)が得られる。
Figure 0005523064
式(8)の右辺後半の小括弧内の演算には次の式(9)のような性質があり、また、演算順序は任意に変更してもよい。そのため、式(8)のNa(r)∪Nb(r)∪・・・∪Nx(r)の部分を後に示す式(10)のように分割することができる。
Figure 0005523064
さらに、式(8)の右辺の最初の小括弧は、関数sgnの積を単純に計算しているだけであるので分割可能であり、結局、式(8)は次の式(10)に変形できる。なお、ここでは、cがNa(r)に含まれているとする(このとき、前記で説明したように、他のNb(r),...,Nx(r)はcを含まない)。
Figure 0005523064
式(10)の右辺の各小括弧内の式は、式(6)および式(7)の右辺の小括弧内の式と同じである。そのため、式(10)に式(6)および式(7)で演算したεx,c,εxなどを代入すると、次式(11)のように変形できる。
Figure 0005523064
式(11)によれば、行分割前行LLR演算器5は、行LLR演算器a2、行LLR演算器b3、行LLR演算器x4の演算結果を用いて、行分割前の行rに対する行演算で算出すべき行LLRεr,cを計算可能ということになる。ただし、前記では列番号cがNa(r)に含まれている場合を示した。各cに対してεr,cを計算するときには、N(b),...,Nx(r)のどれがcを含むかによって式(11)を変更することとする。
行分割前行LLR演算器5における具体的な計算方法の一例を示す、まず、行LLR演算器a2、行LLR演算器b3、行LLR演算器x4からの入力値を正負の符号および絶対値に分ける。次に、符号が正なら+1を、負なら−1を式(11)のsgn関数に代入し、絶対値は式後半の中括弧内の式に代入する。このとき、sgn関数の積は排他的論理和を行うことで計算可能である。行LLR演算器からの各入力値に対し、正なら0、負なら1として全ての排他的論理を演算し、演算結果が0なら+1、1なら−1とすればよい。また、式(11)の後半部分は、背景技術で説明した定義式(4)に従って計算すればよい。
以上では、行分割前行LLR演算器5に入力された値を、まず正負の符号と絶対値に分けるとしたが、予め分けられた状態で入力されるように行LLR演算器a2などを構成してもよい。
なお、前記で説明した行rに対する行演算の演算量(行LLR演算器a2、行LLR演算器b3、行LLR演算器x4の演算量を含む)は、行rに対する通常の行演算の演算量と同等である。
次に、符号化率切り替え器6について説明する。符号化率切り替え器6は、通信システムで用いるLDPC符号の符号化率を決定し、その情報を出力回路7へ出力する。つまり行分割前のパリティ検査行列H1を用いるか、行分割後のパリティ検査行列H2を用いるかの決定を行う。符号化率の決定には、予め設定するか、送信装置と同期しながら通信路の雑音などの状態に応じて自動的に決定されるか、復号器500の外部に設置された切り替えスイッチなどにより手動で切り替えるか、またはその他の手段で行う。また、前記で説明したように、行LLR演算器a2、行LLR演算器b3、行LLR演算器x4に対しても符号化率の情報を出力し、通信システムで用いる符号化率によっては不要となる演算をこれら行LLR演算器が行わないようにしてもよい。
出力回路7は、行LLR演算器a2、行LLR演算器b3および行LLR演算器x4、もしくは行分割前行LLR演算器5で演算された行LLRを入力として、符号化率切り替え器6で決定された符号化率に従い、行分割の前後のどちらかに対応した行LLRを出力する。
次に、図7に示す行演算部b532について説明する。上でも述べた通り、図7の行演算部b532は行分割を施さなかった行に対応するものであり、行分割を行わなかった行数だけ図5の行演算器530内に設置される。行演算部b532は、入力回路9と行LLR演算器10と出力回路11とから構成されている。入力回路9は、図6の行演算部a531と同様の動作を行い、出力回路11は、図6の出力回路7とは異なり、符号化率の切り替えによる出力行LLRの選択を行わない。それ以外の動作は同様である。また、図7の行LLR演算器10は、式(1)によって行LLRを演算する通常の行演算器である。
以上の構成では、行分割を行う場合および行わない場合で2つの符号化率を切り替え可能としたが、3つ以上の符号化率の切り替えも同様のアプローチで可能である。そのためには、元のパリティ検査行列H1を行分割して得たパリティ検査行列H2に対し、さらに行分割を行う。このようにして生成したパリティ検査行列をH3とする。
H3に対応した行演算器を構成するには、前記で説明した行演算部aとb以外の行演算部が必要となる。なぜなら、H1からH2の生成の際で行分割された行がさらにH2からH3を生成する際に行分割された場合に対応する必要があるからである。それには、図6において、例えば行xをさらに行分割するのであれば、行LLR演算器xの内部の構成を図6中に破線で囲った部分と同様の構成とし、行LLR演算器xの出力線のビット幅を適切に増加させた行演算部を構成すればよい。この新たな行演算部と行演算部a531と行演算部b532とをそれぞれ対応する行数ずつ、図5の行演算器530に設置すれば、3つの符号化率の切り替え可能な行演算器530を構成することができる。
以上のようにすることで、3種類の符号化率の切り替えに対応した復号器が構成できる。また、2種類の符号化率に対応した行演算部から3種類に対応の行演算部を構成したのと同様にして、3種類の符号化率に対応した行演算部からさらに多くの符号化率に対応した行演算器を構成することも可能である。すなわち、行演算器として、行分割を複数回行ったパリティ検査行列それぞれに対する行演算を、より分割された行に対する行演算結果に基づいて、より分割される前の行に対する行演算を行うことにより、複数回の行分割それぞれに対する行演算を切り替えて行うようにすればよい。
以上では、行分割によって符号化率を可変とした復号器の構成を示したが、同様の構成によって行結合によって符号化率を可変とする場合の復号器も構成可能である。行結合とは、行分割とは逆の操作であり、パリティ検査行列の2つの行を結合し1行とすることで行数を減少させる操作である。2つの行を結合するには、列ごとに要素を加算することで行う。つまり、結合を行う2つの行の、ある列の要素がそれぞれ0と1の場合には結合後の行におけるその列の要素を1とし、また、ある列の要素がそれぞれ0と0、1と1の場合には結合後の行におけるその列の要素を0とする。
前記で説明した行演算器530において、行結合を行っていないパリティ検査行列を、行分割を行った後のパリティ検査行列H2とみなし、行結合後のパリティ検査行列を、行分割を行っていないパリティ検査行列H1とみなして構成すれば、行結合の前後に対応の行演算器530および復号器500を構成できる。また、3つ以上の符号化率に対応した復号器500も同様に構成可能である。
すなわち、行演算器530として、受信LLRまたは列LLRから行LLRを算出する行演算の際に、パリティ検査行列の複数の行を行結合することによって生じた行に対する行演算を、行結合前の行に対する複数の行演算を組み合わせることで行うようにすればよく、パリティ検査行列の行結合前の行に対する行演算結果に基づいて行結合後の行に対する行演算を行うことにより、行結合の前後それぞれの行に対する行演算を切り替えて行うことができ、行結合を複数回行ったパリティ検査行列それぞれに対する行演算を、行結合前の行に対する行演算結果に基づいて、より行結合がなされた行に対する行演算を行うことにより、複数回の行結合それぞれに対する行演算を切り替えて行うことができる。
ただし、行結合する2つの行の同じ列の要素が1であった場合、結合後にその列の要素が0となるため、前記と同一の構成は不可能である。この場合、行結合によって不要となった演算を行わないように切り替える回路が必要である。例えば、列演算器540であるなら、行結合により0となる要素に対応する行LLRの入力を0に固定するなどして無効化すればよい。また、行演算器530においては、行結合により0となる要素に対応する列LLRの入力を無視して行LLRを計算するようにすればよい。例えば該当の列LLRの値を最大値に固定する方法がある。これらの機能追加による回路規模増大幅は小さい。
また、以上では、元のパリティ検査行列および、そのパリティ検査行列に行分割もしくは行結合を行ったパリティ検査行列を切り替え可能な復号器を示したが、必ずしも元のパリティ検査行列を通信システムで用いる必要はない。つまり、元のパリティ検査行列に行分割や行結合を施して生成される複数のパリティ検査行列に対し、元のパリティ検査行列以外から1つを切り替えて用いるようにしてもよい。
なお、行分割もしくは行結合を施す行の選び方として、行分割後もしくは行結合後のパリティ検査行列の行重みの偏りが小さくなるように選べば、偏りが大きい場合に比べ誤り訂正能力を高くできる。行分割におけるこのような行の選び方の一例として、行重みの最も大きい、もしくは比較的大きい行を優先的に分割し、かつそれらの行分割において2つの行に分割する方法が挙げられる。また、行結合を行う行の選び方の一例としては、行重みの小さい行を結合することが挙げられる。
また、パリティ検査行列の最大行重みが小さくなるように行分割もしくは行結合を行う行を選択すれば、最大行重みに依存する値(例えば、行が含む1の位置を示すアドレスのビット幅)を小さくでき、メモリなどの回路規模を削減できる。
以上のような構成によれば、行分割前の行演算を行分割後の行演算結果を用いて効率よく演算することができ、行分割前のパリティ検査行列に従って構成した復号器の演算量および回路規模と同等の演算量および回路規模で、行分割の前後の復号演算が切り替え可能な復号器を構成することができ、演算量と回路規模の増大を抑えることができる。なお、行分割を複数回行う場合でも同様の構成が可能であり、行分割前のパリティ検査行列に従って構成した復号器の演算量および回路規模と同等の演算量および回路規模で、複数の符号化率の可変に対応した復号器を構成することができる。
さらに、以上のような構成によれば、行結合後の行演算を行結合前の行演算結果を用いて効率よく演算することができ、行結合後のパリティ検査行列に従って構成した復号器の演算量および回路規模と同等の演算量および回路規模で、行結合の前後の復号演算が切り替え可能な復号器を構成することができ、演算量と回路規模の増大を抑えることができる。なお、行結合を複数回行う場合でも同様の構成が可能であり、行結合後のパリティ検査行列に従って構成した復号器の演算量および回路規模と同等の演算量および回路規模で、複数の符号化率の可変に対応した復号器を構成することができる。
この構成による復号器は、可変する符号化率のLDPC符号の中で最も符号化率が高く、かつ最小行数のパリティ検査行列に対応する復号器と同等の回路規模である。一方、元のパリティ検査行列に新たな行を追加することで可変符号化率を行う従来手法では、可変する符号化率の中で最も行数の多いパリティ検査行列に対応する回路規模が少なくとも必要となる。つまり、本構成によれば、従来手法と比べても回路規模を小さくできる。
また、行分割もしくは行結合によって符号化率の異なるLDPC符号を生成しているため、異なる符号化率間でパリティ検査行列の列重みは一定であり、パリティ検査行列の行数増加に伴う列重みの増大がない。そのため、回路規模を小さくすることができる。また、行分割および行結合を行っても符号化率は一定に保たれるため、パディングやパンクチャを行う必要がなく、これらを行うことによる誤り訂正能力の低下を避けることができる。
さらに、以上のような構成によれば、列重み分布を一定としたまま符号化率の可変が可能となり、各符号化率のLDPC符号で誤り訂正能力が大きい。また、行分割に基づく本構成によってタナーグラフの最短ループ長が小さくなることはないため、可変符号化率に対応し、かつ高い誤り訂正能力を引き出すパリティ検査行列を容易に構成することが可能である。
また、以上の構成は、符号化率の可変を目的とするのではなく符号長を一定としたままLDPC符号の符号化率を調整、すなわち情報系列長とパリティビット数を調整する目的でも用いることができる。復号装置の回路構成を変更せずに、1ビット単位でパリティビット数などの調整を行うことができる。例えば、通信システムのフレームフォーマットが変更した場合や、変更したい場合に、符号長を一定に保ったままパリティビット数と情報系列長をフレームフォーマットに合致させる目的で用いることができる。
実施の形態2.
実施の形態1ではSum-product復号の行演算について述べたが、他の復号法であっても同様の可能性は可能である。例えば、Sum-product復号法の行演算を近似計算することによって演算量を小さくした復号法に、本構成は適用可能である。それらの復号法の中に、Min-sum復号法がある。この復号法は、背景技術で示したSum-product復号法の行演算式(1)を、次の式(12)で置き換えたものである。
Figure 0005523064
Figure 0005523064
の最小となる列番号がc'=pのときであった場合、式(12)は
Figure 0005523064
の最小値と2番目に小さい値、および最小値となる列番号c'の値pを求め、sgn関数の積による符号を付加することで計算可能である。つまり、εr,cは、c=pに対しては2番目の最小値に符号を付加した値となり、c≠pに対しては最小値に符号を付加した値となる。
前記の計算方法による行演算部a531を図8に示す。図8の行演算部aは、図6の行演算部aの行LLR演算器それぞれを最小2値演算器に置き換えた構成となっている。なお、最小2値とは最小値および2番目に小さい値のことを指す。
図8の動作について説明する。最小2値演算器それぞれは、入力となる列LLRの正負の符号からεr,cの符号を各列cに対して計算し、また列LLRの絶対値の最小2値と最小値となる列番号の値pを算出し出力する。
行分割前行LLR演算器5では、最小2値演算器それぞれから入力された最小2値とp、および符号に基づいて行分割前の行rに対応する行演算を行う。符号は実施の形態1と同様にして計算可能である。行rが含む1の列番号全体における最小2値は、最小2値演算器それぞれから入力された最小2値の中での最小2値を計算することによって求めることができる。また、最小値となる列番号も入力された各pの中から計算可能である。
出力回路7では、符号化率切り替え器による符号化率に従って、最小2値演算器からの入力値と行分割前行LLR演算器5からの入力値とのどちらかを選択し、最小2値とpとに従って、各行LLRを出力すればよい。
なお、以上の構成では行分割前後の2つの符号化率の切り替えについて述べたが、実施の形態1と同様にして3つ以上の符号化率の切り替えが可能な復号器を構成可能である。
また、図8の行演算部aの構成は、Min-sum復号法以外にも、列LLRの絶対値の最小2値を求めるような復号法で構成可能である。たとえば、Offset BP-based復号法であれば、最小2値それぞれからオフセット値を引く演算を行う演算部を追加すればよく、またNormalized BP-based復号法であれば、最小2値それぞれとノーマライズファクターとの積を演算する演算器を追加すればよい。
さらに、同様にして最小3値(最小値、2番目に小さい値、3番目に小さい値)を計算するような復号法にも同様の構成が可能であり、例えば巡回近似δ−min復号法であれば、図8の最小2値演算器の変わりに最小3値演算器を設置し、行分割前行LLR演算器5では最小3値演算器それぞれからの入力の中における最小3値を演算するようにすればよい。なお、この場合、D値と呼ばれる値を演算するデルタ演算器と、最小3値それぞれからD値を引く演算器とを図8の行演算部あに付加する必要がある。さらに、行演算において列LLRの絶対値の最小4値以上を計算する復号法であれば、本実施の形態と同様の構成が可能である。
以上のようにすれば、行分割後の行LLRの演算結果を用いて行分割前の行LLRも効率的に計算でき、行演算器の回路規模増大を抑えつつ、効率的に符号化率の切り替えに対応した復号器を構成することができる。
また、行分割後の行のうち、行重みが2の累乗数となる行がなるべく多く生じるように行分割を行えば、行重みが2の累乗数の行に対する行LLR演算回路を効率的に構成することができる。最小2値の算出には2値の比較を行重みの値に応じた回数だけ行うが、二分木のような構成(トーナメントのような構成)とした場合に、全ての段において全ての値が2値比較可能(2値比較を行う相手がいない場合が発生しない)だからである。
1,9 入力回路、2 行LLR演算器a、3 行LLR演算器b、4 行LLR演算器x、5 行分割前行LLR演算器、6 符号化率切り替え器、7,11 出力回路、10 行演算器、12 最小2値演算器a、13 最小2値演算器b、14 最小2値演算器x、100 符号化器、200 変調器、300 通信路、400 復調器、500 復号器、510 入力回路、520 受信LLR演算器、530 行演算器、531 行演算部a、532 行演算部b、540 列演算器、550 繰り返し演算終了判定回路、560 出力回路、570 メモリ。

Claims (2)

  1. LDPC符号の復号装置であって、
    受信信号から受信LLRを算出する受信LLR算出手段と、
    前記受信LLRまたは列LLRから行LLRを算出する行演算の際に、パリティ検査行列の行を行分割することによって生じた複数の行それぞれに対して、最小値と2番目に小さい値と3番目に小さい値を算出する最小3値演算手段と、
    パリティ検査行列の行分割後の行に対する最小3値演算結果に基づいて行分割前の行に対する最小3値演算を行うことにより、行分割の前後それぞれの行に対する行演算を切り替えて行う行分割切り替え手段と、
    算出した最小値と2番目に小さい値と3番目に小さい値に基づいて、D値を演算し、最小3値それぞれからD値を引く演算手段と、
    前記行LLRから列LLRおよび推定ビット列を算出する列演算手段と、
    前記最小3値演算手段、行分割切り替え手段およびD値を引く演算手段と前記列演算手段とを交互に繰り返し、規定の回数に達した場合もしくは推定ビット列が符号語となった場合に繰り返しを終了する繰り返し演算終了判定手段とを備え、
    行重みの最も大きいまたは比較的大きい行を選択して行分割を行う、
    行分割後におけるパリティ検査行列の最大行重みが小さくなるように行を選択して行分割を行う、
    行分割後の行のうち行重みが2の累乗数となる行がより多く生じるように行分割を行う、
    の少なくとも1つに基づいて行分割を行う復号装置。
  2. LDPC符号の復号方法であって、
    受信信号から受信LLRを算出する受信LLR算出工程と、
    前記受信LLRまたは列LLRから行LLRを算出する行演算の際に、パリティ検査行列の行を行分割することによって生じた複数の行それぞれに対して、最小値と2番目に小さい値と3番目に小さい値を算出する最小3値演算工程と、
    パリティ検査行列の行分割後の行に対する最小3値演算結果に基づいて行分割前の行に対する最小3値演算を行うことにより、行分割の前後それぞれの行に対する行演算を切り替えて行う行分割切り替え工程と、
    算出した最小値と2番目に小さい値と3番目に小さい値に基づいて、D値を演算し、最小3値それぞれからD値を引く演算工程と、
    前記行LLRから列LLRおよび推定ビット列を算出する列演算工程と、
    前記最小3値演算工程、行分割切り替え工程およびD値を引く演算工程と前記列演算工程とを交互に繰り返し、規定の回数に達した場合もしくは推定ビット列が符号語となった場合に繰り返しを終了する繰り返し演算終了判定工程とを備え、
    行重みの最も大きいまたは比較的大きい行を選択して行分割を行う、
    行分割後におけるパリティ検査行列の最大行重みが小さくなるように行を選択して行分割を行う、
    行分割後の行のうち行重みが2の累乗数となる行がより多く生じるように行分割を行う、
    の少なくとも1つに基づいて行分割を行う復号方法。
JP2009259784A 2009-11-13 2009-11-13 復号装置及び方法 Active JP5523064B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009259784A JP5523064B2 (ja) 2009-11-13 2009-11-13 復号装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009259784A JP5523064B2 (ja) 2009-11-13 2009-11-13 復号装置及び方法

Publications (2)

Publication Number Publication Date
JP2011109228A JP2011109228A (ja) 2011-06-02
JP5523064B2 true JP5523064B2 (ja) 2014-06-18

Family

ID=44232274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009259784A Active JP5523064B2 (ja) 2009-11-13 2009-11-13 復号装置及び方法

Country Status (1)

Country Link
JP (1) JP5523064B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5792256B2 (ja) 2013-10-22 2015-10-07 日本電信電話株式会社 疎グラフ作成装置及び疎グラフ作成方法
WO2015133288A1 (ja) * 2014-03-04 2015-09-11 三菱電機株式会社 Fecフレーム処理装置およびfecフレーム処理方法
CN115276910B (zh) * 2022-07-29 2023-03-10 深圳鹏龙通科技有限公司 Ldpc速率匹配和解速率匹配方法、信号发送和接收装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3891186B2 (ja) * 2004-03-22 2007-03-14 住友電気工業株式会社 復号装置および前処理装置
JP4627317B2 (ja) * 2005-07-13 2011-02-09 三菱電機株式会社 通信装置および復号方法
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
US7853862B2 (en) * 2005-08-03 2010-12-14 Qualcomm Incorporated Systems and methods for a turbo low-density parity-check decoder
JPWO2007108396A1 (ja) * 2006-03-17 2009-08-06 三菱電機株式会社 通信装置、復号装置、情報伝送方法および復号方法
JP4858335B2 (ja) * 2007-07-10 2012-01-18 ソニー株式会社 符号化方法および符号化装置
CN102612806B (zh) * 2009-11-17 2015-01-28 三菱电机株式会社 纠错编码方法和装置以及使用了它们的通信系统

Also Published As

Publication number Publication date
JP2011109228A (ja) 2011-06-02

Similar Documents

Publication Publication Date Title
CN110089037B (zh) 用于极化码构造的装置和方法
JP4062435B2 (ja) 誤り訂正符号復号装置
US8010869B2 (en) Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
KR101611169B1 (ko) 통신/방송 시스템에서 데이터 송수신 장치 및 방법
US8918694B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
JP4602418B2 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
US8726137B2 (en) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
US11784668B2 (en) Decoding fec codewords using ldpc codes define by a parity check matrix which is defined by rpc and qc constraints
US10103751B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
US7934146B2 (en) Method, apparatus and computer program product providing for data block encoding and decoding
WO2014122772A1 (ja) 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法
WO2007034870A1 (ja) 復号装置および受信装置
US10193568B2 (en) Optical coherent receiver with forward error correction
US11177834B2 (en) Communication method and apparatus using polar codes
US8190977B2 (en) Decoder of error correction codes
EP4062540A1 (en) Spatially coupled forward error correction encoding method and device using generalized error locating codes as component codes
CN111164897B (zh) 广义低密度奇偶校验码
JP5523064B2 (ja) 復号装置及び方法
KR20110114204A (ko) 저밀도 패리티 체크 부호화 방법 및 이를 이용하는 저밀도 패리티 체크 인코더
US9189321B2 (en) Error correction encoding method, decoding method and associated devices
JP2011146899A (ja) 符号化器、復号化器及び符号化方法、復号化方法
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101267654B1 (ko) 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101227328B1 (ko) 가변 부호화율 결합 상태 체크 코드 부호화 및 복호화 방법과 이를 위한 장치
CN112470406A (zh) 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140408

R150 Certificate of patent or registration of utility model

Ref document number: 5523064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250