JP4645645B2 - 復号装置及び検査行列生成方法 - Google Patents

復号装置及び検査行列生成方法 Download PDF

Info

Publication number
JP4645645B2
JP4645645B2 JP2007340090A JP2007340090A JP4645645B2 JP 4645645 B2 JP4645645 B2 JP 4645645B2 JP 2007340090 A JP2007340090 A JP 2007340090A JP 2007340090 A JP2007340090 A JP 2007340090A JP 4645645 B2 JP4645645 B2 JP 4645645B2
Authority
JP
Japan
Prior art keywords
parity check
check matrix
row
sequence
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.)
Expired - Fee Related
Application number
JP2007340090A
Other languages
English (en)
Other versions
JP2009164759A (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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2007340090A priority Critical patent/JP4645645B2/ja
Publication of JP2009164759A publication Critical patent/JP2009164759A/ja
Application granted granted Critical
Publication of JP4645645B2 publication Critical patent/JP4645645B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Description

本発明は、低密度パリティ検査符号の復号装置及び検査行列生成方法に関するものである。
近年、誤り訂正技術の一つとして、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号と、その復号法であるsum−product復号法とが注目されている(非特許文献1及び特許文献1参照)。
LDPC符号は、非常に疎な検査行列により定義される線形符号であり、Gallagerによって発明されたものである。このLDPC符号では、白色ガウス通信路のシャノン(Shannon)限界まで、0.004dBという復号特性が得られることが知られている。また、sum-product復号法は、並列処理による復号処理を実行するため、符号長を長くすることができるとともに処理能力を向上させることができる。
LDPC符号においては、より良い訂正能力を得るには、検査行列として適切なものを定義する必要がある。ここで、Gallagerによって提案された検査行列の生成法は、次の通りである。
まず、生成対象の検査行列Hは、列重み(列のハミング重み;各列の1(非零要素)の個数)がwc、行重み(行のハミング重み;各行の1(非零要素)の個数)がwrであるものとする。この場合、検査行列Hを、図22に示すように、検査行列Hの行方向にwc=3個のブロックに分ける。
また、ここでは行重みwr=6とし、第1ブロック(H1)において、第1行目の第1列目〜第6列目に「1」(非零要素)が配置され、第2行目の第7〜第12列目に「1」(非零要素)が配置され、以下同様に、第1ブロック内の以下の行についても「1」(非零要素)が配置される。ここでは、第1ブロック(H1)における各列の列重みが1となるように配置される。
そして、第1ブロック内の任意の列を、乱数を用いて再配置(入れ替え)し、これを適当な回数繰り返したものを第1ブロックとする。第1ブロックの各列の重みは1であるので、列を入れ替えても列の重みは1のままである。
第2ブロック以降についても、第1ブロックと同様に乱数(他のブロックとは別の乱数)を用いて列の入れ替え処理を行い、非零要素の配置が各ブロックで異なるようにする。
以上の処理をwc=3個のブロックについて行えば、列重みがwcのパリティ検査行列が生成される。
LDPC符号では、上記のように乱数を用いて検査行列を決定するのが一般的である。つまり、乱数を用いることで検査行列における「1」(非零要素)の配置に規則性が無くなり訂正能力を確保することができる。
また、近年、通信エラーの状態に応じて、通信の場所ごとに検査行列を変化させることが望まれている。つまり、通信社間で複数の符号を使い分けることで、効率のよい通信を実現できる。例えば、WiMAXでは、114通りの符号が規定され、IEEE802.11nでは、12通りの符号が規定されている。
ここで、非特許文献2には、マルチレートに対応したLCPD符号の復号器が開示されている。非特許文献2の復号器では、ハードウェアで実装することを考慮して、検査行列の構造としてブロック分割形を採用しており、検査行列を符号化率に応じて分割するものとなっている。検査行列を符号化率に応じて分割することで、複数の検査行列があってもハードウェア構成が膨大にならない復号器を構成することができる。
そして、S/N比が劣悪な時は符号化率の低い検査行列の構成をとり、S/N比が良好な時は符号化率を高めることで復号スループットを高めることができる。
和田山正、「低密度パリティ検査符号とその復号法について」、信学技報、MR2001−83、2001年12月 今井優太(他4名)、「動的再構成可能なマルチレート対応LDPC符号復号器の実装」、信学技報、RECONF2006−43、2006年11月 特開2005−269535号公報
非特許文献2の復号器では、符号化率として「0.5」、「0.625」、「0.75」
の3つの場合が示されており、符号化率に応じて検査行列を分割することにより、各符号化率での符号長Nは、それぞれ、1536ビット、2048ビット、3072ビットになることが示されている。
上記のように非特許文献2の復号器では、符号化率Rが高くなるほど符号長Nが長くなり、符号化率が低いほど符号長が短くなっている。特許文献2では、ハードウェアでの実装を優先してブロック分割形という構成を採用したため、符号化率を下げるほど符号長が短くなるという結果が生じているものと推察される。
しかし、低S/N比など通信環境が劣悪な時は、符号化率Rを低くして誤り訂正能力を高めるために、情報ビットに付加される冗長ビットを多くして符号長Nを長くするのが、一般的な考え方である。なお、ここで、符号長Nは、情報ビット数Kと冗長ビット数Mとの和であり、符号化率Rは、「情報ビット数K/符号長N」で表される。
したがって、符号化率Rを低くしたい場合に、符号長Nが短くなると、十分な数の冗長ビットを付加できなくなるおそれがあり、非特許文献2のように符号化率を下げるほど符号長が短くなるという点は、一般的な冗長ビットの付加の仕方と整合せず、不利な制約となる。
よって、符号化率(訂正能力)は、符号長が連動して変化することなく変更できるのが望ましい。
一方、ハードウェア実装の観点からは、複数の符号化率に対応した複数の検査行列それぞれの回路が全く別のものになると、回路規模が膨大となる。したがって、回路規模が膨大になるのを避けようとすると、従来は、非特許文献2のように、符号化率を下げるほど符号長が短くなるという不利な制約を受けざるを得なかった。
そこで、本発明の目的は、符号化率を下げるほど符号長が短くなるという不利な制約を受けることなく、異なる符号化率に対応した複数の検査行列を用いることができるが、ハードウェア実装された場合であっても、回路規模の膨大化の抑制を可能とすることにある。
また、本発明の他の目的は、ルールに基づいて表現できる検査行列を提供することである。
本発明は、符号化率の異なる複数の低密度パリティ検査符号を使い分けることができる復号装置であって、前記複数の低密度パリティ検査符号に対応する複数の検査行列は、低密度パリティ検査符号の符号長及び検査行列の列重みが共通しているとともに、検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しており、行重みが複数の検査行列間で異なることで複数の検査行列の符号化率が異なっているものを含むことを特徴とする復号装置である。
ここで、列重みとは、検査行列の各列に含まれる非零要素の数であり、行重みとは、検査行列の各行に含まれる非零要素の数である。なお、低密度パリティ検査符号の正則な検査行列においては、「検査行列における非零要素の総数」=「列重み×検査行列の列数」=「行重み×検査行列の行数」が成り立つ。
本発明によれば、複数の符号化率に対応した複数の検査行列において、符号長が共通しているため、符号化率によって符号長が変化することはない。
そして、本発明では、複数の検査行列において列重みも共通しているため、「検査行列における非零要素の総数」=「列重み×検査行列の列数(符号長)」という関係式より、符号化率の異なる複数の検査行列間でも、非零要素の総数は共通する。つまり、検査行列に含まれる非零要素の列位置を示す数の集合の要素数が、複数の検査行列間で共通する。
すると、「検査行列における非零要素の総数」=「行重み×検査行列の行数(冗長ビット数)」という関係式より、行重みが複数の検査行列間で異なることで符号化率を異ならせると、複数の検査行列間で、符号長が共通しつつ、行数(冗長ビット)が異なることになる。
このように、符号化率を変えるために、共通した符号長において行重みを変えると、検査行列の行数が変化し、これは冗長ビットを増減することになる。つまり、行重みの変更は、ある符号長において情報ビットの占める割合を変更することになり、符号化率を変更する際の一般的な考え方に準拠したものとなる。
しかも、本発明では、複数の検査行列の符号長及列重みが共通しているとともに、検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しているため、検査行列を用いた処理を回路実装する場合には、共通点に関する回路を複数の検査行列で共用でき、回路規模の膨大化を防止することができる。
そして、上記本発明では、非零要素の列位置を示す数の集合の要素である「列位置を示す数」それぞれが、検査行列のどの行に配置されるかを、行重みに応じて変更すればよい。
なお、本発明において、複数の検査行列間の上記のような関係は、復号装置が使い分ける複数の検査行列すべてにおいて満たされている必要はなく、復号装置が使い分ける複数の検査行列のうちの「一部の複数の検査行列」が、上記のような関係を満たしていればよい。
前記符号長をNとし、前記検査行列の列重みをwcとし、前記検査行列の行重みをwrとし、前記Nに対して互いに素である少なくともwc個の数をA1,・・,Aj(ただし、jは、wc以上の数であり、A1,・・・,Ajはそれぞれ異なる数)としたときに、前記検査行列のそれぞれの行には、当該検査行列の行数に応じた個数の数列であって、それぞれが以下の条件(A)〜(B)を満たす数列に含まれる各数に対応した列位置に非零要素が配置されているのが好ましい。
(A)検査行列の行数に応じた数の数列それぞれは、以下の条件(C)〜(D)を満たす基礎数列を、wr個の数ごとに分割した部分数列である。
(B)検査行列の行数に応じた個数の部分数列は、それぞれ、検査行列のいずれか一の行に割り当てられている。
(C)前記基礎数列に含まれる数は、1〜Nの自然数である。
(D)前記基礎数列において、1〜Nの自然数それぞれの出現回数は、列重みの値wcと同じである。
(E)前記基礎数列は、公差がA1,・・,AjのいずれかであるX個の等差数列(ただし、当該数列に含まれる任意の数yAと当該数yAに隣り合う数yBとの差がAでない場合があっても、yAと(yB+N)との差がAであれば、yAとyBの差はAであるとみなす)を連結したものである。
上記検査行列は、上記条件に従っているものの、乱数で生成したものと同様な良好な訂正能力を有することを、本発明者は見出した。
なお、検査行列の各行に存在する非零要素の位置を示す「数」からなる数列には、1つの行について、複数パターンをとり得る。例えば、上記(A)〜(E)の条件を満たす検査行列であっても、当該検査行列のある一つの行に存在する非零要素の位置を示す「数」を小さい順に並べた数列は、上記(E)の条件(等差数列)を満たすとは限らない。
しかし、本発明では、「等差数列に含まれる各数に対応した列位置に非零要素が配置されて」いればよく、検査行列における非零要素の並びを基準に考えた数列が、条件(E)を満たすか否かは考慮しなくともよい。つまり、検査行列の各行が、条件(E)を満たす数列を持ち得るものであれば足りる。
前記基礎数列における複数の部分数列の並び順と、前記部分数列が割り当てられている検査行列の各行の並び順とが一致するように、複数の部分数列が検査行列の各行に割り当てられているのが好ましい。
また、通信レートに応じて検査行列の行重みを変更することでマルチレートに対応するのが好ましい。
また、検査行列の生成方法に係る本発明は、低密度パリティ検査符号の符号長Nと、前記Nに対して互いに素である数値Aと、検査行列の行重みwrを用いて、低密度パリティ検査符号の検査行列を生成する方法であって、通信レートに応じて前記wrを変更する行重み変更ステップと、検査行列に含まれるP個(Pは2以上の自然数)の行それぞれが有する非零要素の位置を算出する位置算出ステップと、前記位置算出ステップによって算出された位置に、非零要素を配置する配置ステップと、を含み、前記位置算出ステップでは、変数xを、初期値x1から(x1+(N−1))まで増加させつつ、(A×x)をNで割ったときの剰余を求める演算を行って、N個の演算結果を取得し、前記配置ステップでは、N個の演算結果からなる数列を、wr個の数からなるP個の部分数列に分割し、P個の部分数列に含まれる数を非零要素の列位置として、対応するP個の行に非零要素を配置し、ことを特徴とする検査行列生成方法である。
本発明によれば、符号化率を下げるほど符号長が短くなるという制約を受けることなく、異なる符号化率に対応した複数の検査行列を用いることができるものの、ハードウェア実装された場合であっても、回路規模の膨大化の抑制が可能である。
以下、本発明の実施形態を、図面を参照して説明する。
図1は、本発明の実施形態に係る復号装置(復号器)5を有する通信システムの構成の一例を示す図である。図1において、通信システムの送信側通信装置は、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)=NビットのLDPC符号(低密度パリティ検査符号)を生成する。
変調器2は、この通信路3の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直交周波数分割多重変調などの変調を行なう。たとえば、通信路3が、光ファイバの場合、変調器2においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調(一種の振幅変調)を行なっている。たとえば、送信データビットが"0"の場合には、"+1"に変換して、レーザダイオードの発光強度を強くして送信し、また送信データビットが"1"の場合、"−1"に変換して、レーザダイオードの発光強度を弱くして送信する。
通信システムの受信側通信装置は、通信路3を介して送信された変調信号に復調処理を施して、(K+M)ビットのデジタル符号を復調する復調器4と、この復調器4からの(K+M)ビットの符号にパリティ検査行列に基づく復号処理を施して元のKビットの情報を再生する復号器(復号装置)5が設けられる。
復調器4は、この通信路3における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直交周波数分割多重変調等の場合、復調器4において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
図2は、通信路3が光ファイバの場合の変調器2および復調器4の出力データの対応関係を一覧にして示す図である。図2において、上述のように、通信路3が光ファイバの場合、変調器2においては、送信データが"0"のときには、"1"に変換され、送信用のレーザダイオード(発光ダイオード)の発光強度が強くなり、また送信データビットが"1"のときには、"−1"に変換され、レーザダイオードの発光強度を弱くして送信する。
この通信路3における伝送損失等により、復調器4に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器4においては、この入力された光信号に量子化処理(アナログ/デジタル変換)を行なって、この受光レベルを検出する。
図2においては、8段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ"7"のときには、発光強度がかなり強く、受光レベルが"0"のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器4から出力される。この復調器4の出力は、受光レベルが"7"のときにはデータ"3"が出力され、受光レベルが"0"のときには、データ"−4"が出力される。したがってこの復調器4からは、1ビットの受信信号に対し、多値量子化された信号が出力される。
復号化器5は、この復調器4から与えられた(K+M)ビットの受信情報(各ビットは、多値情報を含む)を入力し、sum-product復号法又はmin-sum復号法に従って低密度パリティ検査行列を適用して、元のKビットの情報を復元する。
なお、この図2においては、復調器4において、8レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器4においては、L値(L≧2)に量子化されたビットを用いて復号処理を行なうことができる。
また、図2においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、2値信号を生成してもよい。
図3は、復号器5の構成を概略的に示す図である。この図3においては、復調器4および通信路3も併せて示す。復調器4は、通信路3から与えられた信号を復調する復調回路4aと、この復調回路4aにより生成されたアナログ復調信号をデジタル信号に変換するアナログ/デジタル変換回路4bを含む。
このアナログ/デジタル変換回路4bの出力データXnが復号器5へ与えられる。この復号器5へ与えられるデータXnは、L値(L≧2)のデータである。以下、データXnは、多値量子化データであるため、シンボルと称す。復号化器5は、この入力シンボルXn系列に対しsum-product復号法又はmin-sum復号法などの復号法に従って復号処理を行なって符号ビットCnを生成する。
復号器5は、復調器4からの復調シンボルXnの対数尤度比λnを生成する対数尤度比算出部6と、対数尤度比λn及びパリティ検査行列に基づく繰り返し演算によって復号演算処理を行う外部値対数比算出部(復号処理部)7と、外部値対数比算出部7によって算出された外部値対数比αmn及び対数尤度比λnに基づいて復号語を生成する復号語生成部199と、を含む。
対数尤度比算出部6は、この受信信号のノイズ情報と独立に、対数尤度比λnを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λnは、Xn/(2・σ・σ)で与えられる。ここで、σは、ノイズの分散を示す。
しかしながら、本実施の形態においては、この対数尤度比算出部6は、バッファ回路または定数乗算回路で形成され、対数尤度比λnは、Xn・fで与えられる。ここで、fは非ゼロの正の数である。また、min-sum復号方法においては、検査行列に基づく復号処理(行処理)において、最小値を利用して演算を行なうため、信号処理において線形性が維持される。このため、ノイズ情報に従って出力データを正規化するなどの処理は不要である。この場合ノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。
ここでの外部値対数比算出部7は、min-sum復号方法によって復号処理を行うものとする。なお、復号法は、sum-product復号法でもよい。
外部値対数比算出部7は、次式(1)及び(2)に従って演算処理を行い、パリティ検査行列の行の各要素(非零要素:1)についての処理(行処理)、及び列についての各要素(非零要素:1)についての処理(列処理)を繰り返し実行する。
ここで、上式(1)および(2)それぞれにおいて、n’∈A(m)\nおよびm’∈B(n)\mは、自身を除く要素を意味する。
外部値対数比αmnについては、n’≠nであり、事前値対数比βmnについては、m’≠mである。また、αおよびβの行列内の位置を示す添え字"mn"は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
また、関数sign(x)は、次式(3)で定義される。
また、集合A(m)およびB(n)は、2元M・N行列H=[Hmn]を復号対象のLDPC符号の検査行列とした場合、集合[1,N]={1,2,…,N}の部分集合である。
A(m)={n:Hmn=1} …(4)
B(n)={m:Hmn=1} …(5)
すなわち、上記部分集合A(m)は、検査行列Hの第m行目において1(非零要素)が立っている列インデックスの集合を意味し、部分集合B(n)は、検査行列Hの第n列目において1(非零要素)が立っている行インデックスの集合を示す。
具体的に、今、図4に示す検査行列Hを考える。この図4に示す検査行列Hにおいては、第1行の第1列から第3列に"1"が立ち、また第2行の第3列および第4列に"1"が立ち、また第3行の第4列から第6列に、"1"が立つ。したがって、この場合、部分集合A(m)は以下のようになる。
A(1)={1,2,3}
A(2)={3,4}
A(3)={4,5,6}
同様に、部分集合B(n)については、以下のようになる。
B(1)=B(2)={1}
B(3)={1,2}
B(4)={2,3}
B(5)=B(6)={3}
この検査行列Hにおいて、タナー(Tanner)グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この"1"により示される。これを、本明細書においては「"1"が立つ」と称している。すなわち、図5に示すように、変数ノード1,2,3は、チェックノードX(第1行)に接続され、変数ノード3,4が、チェックノードY(第2行)に接続される。変数ノード4,5,6が、チェックノードZ(第3行)に接続される。この変数ノードが検査行列Hの列に対応し、チェックノードX,YおよびZが、この検査行列Hの各行に対応する。従って、図4に示す検査行列は、情報ビットが3ビット、冗長ビットが3ビットの合計6ビットの符号長の符号に対して適用される。
LDPCの検査行列Hでは、"1"の数は少なく、低密度の検査行列であり、これにより、計算量を低減できる。
この変数ノードとチェックノードの間で各条件確率P(Xi|Yi)を伝播させ、MAPアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率P(Xi|Yi)は、Yiの条件下でXiとなる確率を示す。
再び、図3を参照して、外部値対数比αmn及び対数尤度比λnに基づいて復号語を生成する復号語生成部199は、一次推定語生成部180と、復号語決定部190とを含む。
図6は、一次推定語生成部180の構成を表す図である。
図6を参照して、一次推定語生成部180は、Qn算出部140と、Cn算出部141とを含む。
Qn算出部140は、対数尤度比算出部6からの対数尤度比λと、外部対数比算出部7からの外部値対数比αmnとを用いて、次式(6)に従って、推定受信語(Q1,Q2,・・・,QN)を算出する。
Cn算出部141は、次式(7)に従って、一次推定語(C1,C2,・・・,CN)を算出する。ここで、(C1,C2,・・・,CN)の標記は、Nビットの一次推定語の第1ビット(LSB:Least Significant Bit)がC1であり、第2ビットがC2であり、第Nビット(MSN)がCNであることを表す。
再び、図3を参照して、復号語決定部190は、一次推定語生成部180から一次推定語(C1,C2,・・・,CN)が符号語を構成しているかどうかを検査する。復号語決定部190は、次式(8)が成立する場合、つまり、シンドロームが“0”となる場合には、外部値対数比算出部7の繰り返し演算を終了させて、一次推定語(C1,C2,・・・,CN)のうちのKビットの情報ビット部分、すなわち、(C1,C2,・・・,CK)を復号語として復号器5の外部に出力する。また、復号語決定部190は、ループの回数、つまり外部値対数比算出部7の演算の繰り返し回数が所定値を超えたときにも、外部値対数比算出部7の繰り返し演算を終了させて、一次推定語(C1,C2,・・・,CN)のうちのKビットの情報ビット部分、すなわち、(C1,C2,・・・,CK)を復号語として復号器5の外部に出力する。
(C1,C2,・・・,CN)・Ht=0(ただし、Htは、Hの転置を表す・・・(8)
以上のような本実施形態の復号器5は、複数の検査行列を使い分けて、複数の符号に対応することができる。本実施形態では、復号装置4は、符号化率の異なる複数の低密度パリティ検査符号を使い分けることができる。符号化率は、マルチレートに対応可能な通信装置における通信レートに応じて決定でき、高速のレートであれば符号化率を小さくし、低速のレートであれば符号化率を大きくする。なお、通信レートは、通信装置が検出したSN比又はCIN比等の通信路品質に応じて決定され、復号装置は、決定された符号化率に対応する検査行列を用いて復号を行う。本実施形態では、異なる符号化率に対応するため、検査行列の行重みを変更する。
[検査行列について]
さて、図7は、本実施形態の復号器5において用いられるLDPC符号の検査行列H96の具体例を示している。図7の検査行列H96は、符号長N=96、行重みwr=6、列重みwc=3の正則な検査行列(行列サイズ=48×96)を示している。図7においては、検査行列の「1」(非零要素)のあるところは、点で示されている。図7の検査行列H96において、非零要素を示す点は288個ある。
また、比較例として、図8に、図22に示すGallagerの方法(乱数ベースの方法)で生成した同サイズの正則検査行列を示した。なお、図8の検査行列は、行重みwr及び列重みwcも、図7のものと同様である。
図8の検査行列は、規則性がないため、この検査行列を表現するための情報としては、少なくとも2016ビットが必要である。つまり、図8の検査行列を表現するためには、各行における点の位置(列番号;列インデックス)を列挙しておき、1行当たりの点数が6個であることを利用して、各行内で列挙された点の位置を記録すれば各行を再現することができる。したがって、この方式では、それぞれの点が、1〜96の数値をとり、1点あたり7ビット必要であるため、288点で、7×288×=2016が必要である。
一方、本実施形態に係る図7の検査行列H96では、符号長Nに対して互いに素である3つの数値A1,A2,A3で表現することができる。ここで、数値A1,A2,A3は、符号長Nよりも小さい値をとるものとすると、一つの数値は7ビットで表現できるため、7×3=21ビットで足り、Nを加えても、7×4=28ビットで足りることになる。なお、本実施形態において、数値A1〜A3は、列重みwcに対応した個数が用意される。
なお、Nに対して互いに素である複数の数値A1,A2,A3を区別せずに総称する場合は、単に「数値A」という。
図7の検査行列H96は列重みwcが3であることに対応して、検査行列H96を行方向に3つに分割した部分行列(ブロック)H1〜H3としてみた場合に、図9に示すように、第1ブロックH1は数値A1によって、第2ブロックH2は数値A2によって、第3ブロックは数値A3によって生成される。つまり、それぞれのブロックは、数値Aが与えられることで構成できる。また、Nに対して互いに素である数値AをA1〜A3のように異ならせることで、非零要素の配置が異なる複数のブロックH1〜H3を生成できる。
図7の検査行列H96において、各ブロックH1〜H3は、列重みが1であり、行重みが6の部分行列となっており、これらのブロックH1〜H3を結合することで、図7の検査行列H96が得られる。
図7の各ブロックH1〜H3では、斜め方向を向く点(非零要素)の列が、略一定間隔をおいて略規則正しく並んでいる。点の列の傾きや点の列の間隔はブロックH1〜H3ごとに異なる。
図7の各ブロックH1〜H3では、一見すると(マクロ的にみると)、斜め方向を向く点の列が、直線的に並んでいるようにみえる。しかし、図7の点の列は、厳密にみると(ミクロ的にみると)、直線的に点(非零要素)が並んでいるのではなく、やや蛇行しながら並んでいる。前述のように各ブロックH1〜H3の列重みは、それぞれ1であり、各ブロックH1〜H3において一つの列位置には一つの点(非零要素)しか存在しないようにするため、点の列がやや蛇行したり、点の列を構成する点の間隔が異なっていたりする。
図7の検査行列H96では、点の列が略等間隔であり、しかも、点(非零要素)の分布が検査行列全体で一様な疎行列となっているため、訂正能力に悪影響を与える短いサイクルが発生しにくく、良好な訂正能力が得られる。
[本実施形態に係る検査行列の生成規則]
本実施形態の復号器5は、上記のような特性を持つ検査行列H96を用いて復号を行う。この検査行列H96の第1ブロックH1の生成規則は、次のとおりである。なお、各ブロックH1〜H3に含まれる行数Pは、P=行長さM/列重みwr=48/3=16である。
(0:行重み変更ステップ)通信レートに応じて行重みwrを決定する。
(1)符号長(検査行列の列方向長さ)をNとする。
(2)Nと互いに素である数値をA1とする。
(3)変数xが、初期値x1から(x1+(N−1))になるまで下記(3−1)(3−2)の処理を繰り返す(N回の繰り返し処理)。なお、ここでは、初期値x1=1とする。
(3−1:位置算出ステップ)mod(A1×x,N)を計算し、その結果に1を加える。つまり、“mod(A1×x,N)+1”を計算する。なお、mod(A1×x,N)は、(A1×x)をNで割ったときの剰余を求める関数である。
(3−2:配置ステップ)第1ブロックH1中の、“mod(A1×x,N)+1”の結果(列インデックス)が示す列位置に非零要素「1」を配置する。例えば、“mod(A1×x,N)+1”の演算結果が「10」であれば、指定された行の10列目に「1」を立てる。「1」が配置される行は、第1ブロックH1の1行目からP行目まで順次切り替わる。各行には、行重みwrに対応した数の「1」が順次配置され、一つの行に、行重み分の数の「1」を立てたら、次の行に移って、同様に行重み分の数の「1」を立てる。
ここで、“mod(A1×x,N)+1”によって算出された数は、検査行列において「1」が配置されるべき列位置(列インデックス)を示しており、“mod(A1×x,N)+1”の値が示す列位置に「1」が立てられる。
A1とNとは互いに素な数であるため、xが1〜(N−1)までの数値をとる場合、A1×xがNによって割り切れることはない。つまり、xが1〜(N−1)までの数値をとる場合、“mod(A1×x,N)+1”は、2〜Nまでの数値を唯一1回のみ発生することになる。そして、x=Nになると、A1×xがNによって割り切れ、“mod(A1×x,N)+1”の演算結果が1となる。
このように、xが1〜Nまでの数値をとると、“mod(A1×x,N)+1”は、1〜Nまでの数値を唯一1回のみ発生する。
つまり、N回の計算結果として、1〜Nまでの数値を重複させることなく、全ての値を生成でき、このため、この計算結果を基に、検査行列(の各ブロックH1〜H3)に非零要素「1」を配置すれば、それぞれのブロックには、全ての列に対して、それぞれ1点のみ非零要素「1」を配置することができる。
なお、“mod(A1×x,N)+1”の式において、本質的な演算は、“mod(A1×x,N)”である。“+1”は、“mod(A1×x,N)”の演算結果(0〜N−1の範囲をとる)を、検査行列の列インデックス(1〜Nの範囲をとる)に対応させるための変換処理である。したがって、例えば、検査行列の列インデックスの範囲を(0〜N−1)にするのであれば、“+1”の演算は不要である。
また、上記生成規則では、xの初期値x1を1としたが、例えば、その他の数値としてもよい。例えば、xを0〜N−1の範囲で繰り返しても良い。xの初期値を調整すると、“mod(A1×x,N)+1”の計算で生成される数値がずれるが、1〜Nまでの数値を唯一1回のみ発生することには変わりなく、xの初期値を調整しても同様な性質の検査行列が得られる。
さて、以下では、前記位置算出ステップ3−1及び前記配置ステップ3−2をより具体的に説明する。なお、ここでは、N=96,A1=29とする。また、N=96とA1=29とは互いに素である。
前記位置算出ステップ3−1を初期値x1から6回(行重みの値)まで繰り返すと、下記のように{30,59,88,21,50,79}の計6個の数が求まる。
mod(29×1,96)+1=30
mod(29×2,96)+1=59
mod(29×3,96)+1=88
mod(29×4,96)+1=21
mod(29×5,96)+1=50
mod(29×6,96)+1=79
配置ステップ3−2では、“mod(A1×x,N)+1”が求まると、順次、検査行列(の第1ブロックH1)中に「1」を立てていく。つまり、第1ブロックH1の1行目から開始し、当該1行目の30列目、59列目、88列目、21列目、50列目、79列目に、「1」を立てる。ここでは、行重みwr=6であるから、6回の繰り返しで、1行目に「1」を配置できたことになる。
1行目への「1」の配置が完了すると、次の行に「1」を配置する。つまり、7回目(x=7)〜12回目(x=12)の繰り返しでは、2行目について、“mod(A1×x,N)+1”が示す列位置に「1」を立てていく。
同様に、13回目〜18回目の繰り返しでは、3行目に「1」を立て、以下、これを繰り返していき、第1ブロックH1を構成する1行目〜P行目(16行目)までにN個の「1」を立てることができる。
上記生成規則は、数値A2によって生成される第2ブロックH2、数値A3によって生成される第3ブロックにも適用される。この場合、上記生成規則の「A1」を「A2」乃至「A3」に置きかえれば良い。また、上記生成規則の「A1」を「A1」に限定しないように抽象化するには、上記生成規則の「A1」を「A」とすればよい。
したがって、検査行列H96の第2ブロックH2を構成する(P+1)行目〜(2×P)行目には、変数A2を用いた位置算出ステップの演算結果に基づき、N個の「1」が立てられる。また、検査行列H96の第3ブロックH3の(2×P+1)行目〜(3×P)行目には、変数A3を用いた位置算出ステップの演算結果に基づき、N個の「1」が立てられる。
以下は、検査行列H96の第1ブロックH1を数値A1=29で、第2ブロックH2を数値A2=31で、第3ブロックH3を数値A3=37で、位置算出ステップを実行した場合の演算結果を示している。
第1ブロックH1
1行目:30,59,88,21,50,79
2行目:12,41,70, 3,32,61
3行目:90,23,52,81,14,43
4行目:72, 5 34,63,92,25
5行目:54,83,16,45,74, 7
6行目:36,65,94,27,56,85
7行目:18,47,76, 9,38,67
8行目:96,29,58,87,20,49
9行目:78,11,40,69, 2,31
10行目:60,89,22,51,80,13
11行目:42,71, 4,33,62,91
12行目:24,53,82,15,44,73
13行目: 6,35,64,93,26,55
14行目:84,17,46,75, 8,37
15行目:66,95,28,57,86,19
15行目:48,77,10,39,68, 1
第2ブロックH2
17行目:32,63,94,29,60,91
18行目:26,57,88,23,54,85
19行目:20,51,82,17,48,79
20行目:14,45,76,11,42,73
21行目: 8,39,70, 5,36,67
22行目: 2,33,64,95,30,61
23行目:92,27,58,89,24,55
24行目:86,21,52,83,18,49
25行目:80,15,46,77,12,43
26行目:74, 9,40,71, 6,37
27行目:68, 3,34,65,96,31
28行目:62,93,28,59,90,25
29行目:56,87,22,53,84,19
30行目:50,81,16,47,78,13
31行目:44,75,10,41,72, 7
32行目:38,69, 4,35,66, 1
第3ブロックH3
33行目:38,75,16,53,90,31
34行目:68, 9,46,83,24,61
35行目: 2,39,76,17,54,91
36行目:32,69,10,47,84,25
37行目:62, 3,40,77,18,55
38行目:92,33,70,11,48,85
39行目:26,63, 4,41,78,19
40行目:56,93,34,71,12,49
41行目:86,27,64, 5,42,79
42行目:20,57,94,35,72,13
43行目:50,87,28,65, 6,43
44行目:80,21,58,95,36,73
45行目:14,51,88,29,66, 7
46行目:44,81,22,59,96,37
47行目:74,15,52,89,30,67
48行目: 8,45,82,23,60, 1
このようにして得られた(N×3)個の数値(列位置)に「1」(図7の点)を配置したものが、図7に示す検査行列H96である。
上記からも明かであるように、上記生成規則の配置ステップ3−2は、N個(=96個)
N個の演算結果からなる数列を、検査行列H96の行重wrの数(=6)からなるP個(=16個)の部分数列S1〜SPに分割し、P個の部分数列S1〜SPに含まれる数を非零要素の列位置として、対応するP個の行(1行目〜P行目)に非零要素を配置して各ブロックH1〜H3を生成するものということができる。
なお、算出された(N×3)個の列位置を示す数値と図7の点との対応を容易にするため、各行の数値(列位置)を、左から小さい順に並び替えたものを下記に示す。
第1ブロックH1
1行目:21,30,50,59,79,88
2行目: 3,12,32,41,61,70
3行目:14,23,43,52,81,90
4行目: 5,25,34,63,72,92
5行目: 7,16,45,54,74,83
6行目:27,36,56,65,85,94
7行目: 9,18,38,47,67,76
8行目:20,29,49,58,87,96
9行目: 2,11,31,40,69,78
10行目:13,22,51,60,80,89
11行目: 4,33,42,62,71,91
12行目:15,24,44,53,73,82
13行目: 6,26,35,55,64,93
14行目: 8,17,37,46,75,84
15行目:19,28,57,66,86,95
16行目: 1,10,39,48,68,77
第2ブロックH2
17行目:29,32,60,63,91,94
18行目:23,26,54,57,85,88
19行目:17,20,48,51,79,82
20行目:11,14,42,45,73,76
21行目: 5, 8,36,39,67,70
22行目: 2,30,33,61,64,95
23行目:24,27,55,58,89,92
24行目:18,21,49,52,83,86
25行目:12,15,43,46,77,80
26行目: 6, 9,37,40,71,74
27行目: 3,31,34,65,68,96
28行目:25,28,59,62,90,93
29行目:19,22,53,56,84,87
30行目:13,16,47,50,78,81
31行目: 7,10,41,44,72,75
32行目: 1,4,35,38,66,69
第3ブロックH3
33行目:16,31,38,53,75,90
34行目: 9,24,46,61,68,83
35行目: 2,17,39,54,76,91
36行目:10,25,32,47,69,84
37行目: 3,18,40,55,62,77
38行目:11,33,48,70,85,92
39行目: 4,19,26,41,63,78
40行目:12,34,49,56,71,93
41行目: 5,27,42,64,79,86
42行目:13,20,35,57,72,94
43行目: 6,28,43,50,65,87
44行目:21,36,58,73,80,95
45行目: 7,14,29,51,66,88
46行目:22,37,44,59,81,96
47行目:15,30,52,67,74,89
48行目: 1, 8,23,45,60,82
各行に対応する部分数列S1〜S48に含まれる数を小さい順に置きかえた上記結果から明らかなように、第1ブロックH1においては、数を小さい順に置きかえた数列の隣り合う数の差が、9前後の値又は20前後の値となっている。このため、図7に示すように、第1ブロックH1では、斜め方向の「点の列」の間隔が、列方向に約10となっている。
また、第2ブロックH2においては、数を小さい順に置きかえた数列の隣り合う数の差が、3前後の値又は28前後の値となっている。このため、図7に示すように、第2ブロックH2では、斜め方向の「点の列」の間隔が、列方向に約30となっている。
さらに、第3ブロックH3においては、数を小さい順に置きかえた数列の隣り合う数の差が、7前後の値、15前後の値、又は22前後の値となっている。このため、図7に示すように、第3ブロックH3では、斜め方向の「点の列」の間隔が、列方向に約7となっている。
なお、第1〜第3ブロックH1,H2,H3では、数値A1,A2,A3がそれぞれ異なることから、「点の列」の傾きも、それぞれ異なる。
[本実施形態に係る検査行列の性質]
本実施形態に係る検査行列H96の性質は、以下の通りである。
ここで、上記のように“mod(A1×x,N)+1”をx=1〜NまでN回繰り返して得られた演算結果を、その算出順に並べた数列Sとして考え、下記のように表現する。なお、以下では、{}を、数列を囲む記号として用いる。
数列S:{y1,y2,・・・,yN
また、第1ブロックH1を構成する1行目〜P行目までの各行における非零要素の列位置を示す部分数列S1〜SPを、下記のように表現する。
1行目に対応する部分数列 S1:{y1,y2,・・・,y6
2行目に対応する部分数列 S2:{y7,y8,・・・,y12
・ ・
・ ・
・ ・
P−1行目に対応する部分数列SP-1:{yN-11,yN-10,・・・,yN-6
P行目に対応する部分数列 SP:{yN-5,yN-4,・・・,yN
前記数列Sは、部分数列S1〜SPを用いると、部分数列S1〜SPの連結数列として表現でき、具体的には下記のとおりである。
数列S={y1,y2,・・・,yN}={S1,S2,・・・,SP-1,SP
上記の部分数列S1〜SPは、位置算出ステップにおける演算処理内容から明らかなように、次の性質(1)(2)を有する。
(性質1)前記部分数列S1〜SPは、行ごとに異なるものである。
(性質2)前記部分数列S1〜SPに含まれる数は、1〜Nの自然数である。
さらに、部分数列S1〜SPは、公差がA1である等差数列となっている(性質3)。
これは、mod(A1×x,N)の演算で、xを1つずつ増加させると、A1×xは、A1(=29)ずつ大きくなり、mod(A1×x,N)によって算出される剰余もA1(=29)ずつ大きくなるからである。
例えば、第1行目に対応する第1部分数列S1は、前述のように{30,59,88,21,50,79}である。この場合、第1部分数列S1の第1項の「30」と、これと隣り合う第2項の「59」との間の差は、A1=29である。
他の項についても同様に差が29であるが、第4項の「88」と第5項の「21」との間の差は、「−67」であり、「29」ではない。
これは、mod(A1×x,N)という剰余を求める演算の性質上、mod(A1×x,N)の演算結果がNを超えず、xを順次増加させると、mod(A1×x,N)も増加するものの、1〜Nの間で循環的に増加するからである。
mod(A1×x,N)が1〜Nの間で循環的に増加するという前提の下では、数列中の隣り合う数の差がA1でなくても、当該差(第1部分数列S1の第4項の「88」と第5項の「21」との間の差の場合「−67」)にN=96を加えた値が、A1であれば、差はA1とみなしてよい。
このような例外は、他の部分数列S2〜SPにおいても存在するが、このような例外について数値間の差を、A1であるとみなすことで、全ての部分数列S1〜SPは、「公差A1の等差数列である」ということができる。
つまり、上記(性質3)を言い換えると次の通りである。
(性質3)部分数列S1〜SPは公差がA1である等差数列である(ただし、当該部分数列S1〜SPに含まれる任意の数yAと当該数yAに隣り合う数yBとの差がAでない場合があっても、yAと(yB+N)との差がAであれば、yAとyBの差はAであるとみなす)。
さらに、A1とNが互いに素であるという条件から、部分数列S1〜SPは、次の性質も有する
(性質4)同一の公差Aを持つ複数の等差数列(部分数列S1〜SP)において、1〜Nの自然数それぞれの出現回数は、1回以内である。
また、上記生成規則に従って生成した検査行列H96の部分数列S1〜SPは、次の性質も有する。
(性質5)P個の部分数列S1〜SPは、連結数列SをP分割したものである。
(性質6)P個の部分数列S1〜SPは、前記連結数列SにおけるP個の前記部分数列S1〜SPの並び順と、P個の連続する行(1行目〜P行目)の並び順と、が一致するように、前記検査行列H96に含まれるP個の連続する行(1行目〜P行目)に、それぞれ割り当てられている。
また、上記生成規則に従って生成した連結数列Sは、次の性質を有する。
(性質7)前記連結数列Sは、P個の連続する行(1行目〜P行目)に含まれる非零要素の総数に対応した個数の「数」を有する。
(性質8)前記連結数列Sに含まれる数は、1〜Nの自然数である。
(性質9)前記連結数列Sにおいて、1〜Nの自然数それぞれの出現回数は、1回以内である。
(性質10)前記連結数列Sは、公差がA1である等差数列である(ただし、当該連結数列に含まれる任意の数yAと当該数yAに隣り合う数yBとの差がA1でない場合があっても、yAと(yB+N)との差がA1であれば、yAとyBの差はA1であるとみなす)
上記(性質10)に示すように、数列S:{y1,y2,・・・,yN}も公差がA1である等差数列である。これは、(性質3)同様、mod(A1×x,N)という剰余を求める演算の性質上、明かである。
なお、(性質6)は、生成規則の配置ステップ3−2において、当該(性質6)を満たすように、「1」が配置される行を、第1ブロックH1の1行目からP行目まで順次切り替えることによって成立する性質であるため、例えば、まず、1行目からP行目までの奇数行に順次切り替えて「1」を配置し、その後、1行目からP行目までの偶数行に順次切り替えて「1」を配置するといった切り替えルールを採用した場合には、(性質6)は成立しない。
また、性質1〜10を満たす検査行列を生成した後、検査行列に含まれる行(列)同士の行置換(列置換)を行った場合も、(性質6)が失われる。
ただし、このような特殊な切り替えルールを採用しても、数値A1から、性質1〜4を満たすブロックが生成されることに変わりはない。
また、上記のような場合、上記(性質6)を下記のように言い換えることで、行置換等を行って上記(性質5)を満たさなくなった場合も、性質5〜10を満たすということができる。
(性質6)P個の数列は、前記検査行列に含まれるP個の行又はP個の列に、それぞれ割り当てられている。
なお、上記性質1〜10は、第1ブロックH1の数列群S1〜SPについて説明したが、他のブロックH2,H3の数列群についても同様に成り立つ。つまり、他のブロックH2,H3は、Nと互いに素である数値が、第1ブロックH1と異なるだけであり、その他の点は、第1ブロックH1と同様に生成されたものだからである。
したがって、性質1〜10は、検査行列H96全体で成り立つ。また、性質1〜10は、符号長Nに関係なく成立するため、性質1〜10は、任意の符号長(列長さ)の検査行列Hに、一般化できる。
[数値A1,A2,A2の決定方法]
検査行列H96を生成するための生成情報である数値A1,A2,A3の決定手順は、例えば、下記の通りである。ここで、数値A1,A2,A3は、それぞれ、Nと互いに素な数値である。また、数値A1,A2,A3は、それぞれ異なる数値である。なお、ここでは、数値A1,A2,A3<Nとする。
(決定手順1)集合1を作成する。
Nを因数分解することで得られた数の集合を集合1とする。Nが96の場合、集合1は、(2,2,2,2,2,3)である。
(決定手順2)集合2を作成する。
Nまでの素数を集合2とする。Nが96の場合、集合2は、(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47)である。
(決定手順3)集合3を作成する
集合2より集合1の要素を取り除いたものを集合3とする、Nが96の場合、集合2は、(5,7,11,13,17,19,23,29,31,37,41,43,47)である。
(決定手順4)数値A1,A2,A3の候補の組の集合を作る。
集合3より、列重みwc(=3)に相当する数の要素を取りし、それらの3つの数値A1,A2,A3の組を候補の一つとする。候補は、集合3の要素数が13個あることから、13C3=286通りできる。286通りの候補を集合4とする。
(決定手順5)集合4より、候補の組(A1,A2,A3)を一つ取り出し、上記生成規則に従って、検査行列を生成する。
(決定手順6)決定手順5で生成された検査行列の評価を行う。評価は、サイクルの有無、行列のランクの計算、行列の重み分布の評価、Stoppinng Setの分布などによって行うことができる。
(決定手順6)決定手順5,6を286個の候補すべてについて行い、優れた訂正能力を有する検査行列を生成できる候補の組(A1,A2,A3)を決定する。
Nと互いに素である数値Aを使って検査行列を生成する本実施形態の方法においては、決定手順5のような評価を行わなくても、ある程度の訂正能力が得られるが、決定手順5のように評価を介在させることで、特に優れた検査行列を選択することができる。
また、Nと互いに素である数値Aを使って検査行列を生成する本実施形態の方法においては、上記の決定手順に従うことで、大量の候補の組(A1,A2,A3)をコンピュータ演算によって自動的に生成することができる。よって、多数の候補について評価を行うことができ、当該評価を経て決定された数値(A1,A2,A3)は、訂正能力が非常に優れた検査行列を生成するものとなることが期待できる。
なお、上記決定手順では、A(A1,A2,A3)として、素数が選ばれるが、Aとしては、複数の素数の積となる数であってもよく、Nと互いに素である数は、素数に限定されるものではない。
[検査行列の生成情報について]
本実施形態の検査行列の上記生成規則によれば、復号器5が、当該生成規則に従って検査行列を生成するには、少なくとも列重みwcに対応した数の数値A1,A2,A3が検査行列の生成情報としてあれば良い。従って、復号器5は、検査行列に含まれる全ての「1」の位置を示す情報を記憶していなくとも、より少ない数の数値A1,A2,A3を記憶しておくことで、前記生成規則を実行する生成部(図示省略)によって、当該数値A1,A2,A3を用いて、動的に検査行列を生成することができる。
また、復号器5が、生成規則に従って検査行列を生成するには、数値A1,A2,A3のほか、検査行列の符号長(検査行列の列方向長さ)Nが、検査行列の生成情報として必要である。
また、上記生成規則に従って、検査行列に「1」を立てるには、1つの行に含まれる「1」の個数(行重み)wrも、検査行列の生成情報として必要である。この行重みwrの情報を用いることで、異なる符号化率に対応する複数の検査行列を生成することができる。
以下、Nのように検査行列のサイズに関するパラメータや、wrのように「1」の数に関するパラメータについて、考察する。
まず、正則検査行列において、列方向長さ(符号長)をN、行方向長さをM、1行当たりの「1」の個数(行重み)をwr、1列当たりの「1」の個数(列重み)をwcとする。この検査行列に含まれる「1」の全数は、次のように表現される。
(1の全数)=wr×M=wc×N
上記式より、M/N=wc/wrが成り立つ。
また、符号化率をRとし、情報記号数をKとすると、
符号化率R=K/N
=(N−M)/N
=1−M/N
=1−wc/wr
となる。
上記式において、M/Nは、検査行列のサイズを示しており、wc/wrは「1」を立てる割合を示している。
ここで、復号器5を有する通信装置が、符号化率R及び符号長Nを、固定の値で通信を行うことを前提とした場合、復号器5は、数値A1,A2,A3を取得するだけで、様々な検査行列を生成することができる(Nやwrは復号器5にとって既知であるから)。
つまり、前述のように、復号器5は、復号器5(通信装置)が備えている記憶部(図示省略)に記憶された数値A1,A2,A3を、当該記憶部から取得し、前記生成規則に従って検査行列を生成して復号を行うことができる。この場合、復号器5が、複数種類の検査行列を記憶しておく場合でも、検査行列を記憶するためのメモリの大きさを小さくできる。
特に、WiMAXなどの規格(通信方式)では、複数の異なる検査行列を使い分けることが要求されており、このようなシステムにおいて、上記検査行列を活用する事は、複数の検査行列を記憶するメモリを削減する上でメリットは大である。
また、復号器5の外部から数値A1,A2,A3を取得(例えば、他の復号器から通信路を介して受信)し、前記生成規則に従って検査行列を生成して復号を行うこともできる。この場合、検査行列の情報を、復号器(通信装置)間で、通信によってやりとりすることで、エラー状況などの通信状況に応じて検査行列を通信中に変更することができる。しかも、検査行列の情報を他の復号装置に送っても、検査行列を少ない情報で表現できるため、通信負荷の増大を防止できる。
一方、復号器5を有する通信装置が、符号化率Rを通信状況に応じて変化させる場合、例えば、Nやwcを固定値とした場合、上記式によれば、wrを復号器(通信装置)間で通信によって通知し合うことで、実現できる。つまり、wrを変更することで、符号化率を変更できる。そして、1行当たりの「1」の数をwrに応じて決定して、検査行列を生成すればよい。
つまり、本実施形態の復号器5(通信装置)には、通信品質状況(エラー状況)に応じて変動する符号化率に応じてwrを決定し、それを他の復号器5(通信装置)へ送信する機能を具備させることができる。そして、wrを受信した復号器5(通信装置)は、数値Aのほか、受信したwrを用いて、検査行列を生成することができる。
[符号化率Rと行重みwrの関係]
図10は、符号化率Rと行重みの関係を示す図である。まず、検査行列全体に含まれる“1”の列位置を示す数列を「基礎数列」というものとすると、基礎数列は、前述の検査行列H96は、数値A1によって生成される第1の連結数列(公差がA1の等差数列)S、数値A2によって生成される第2の連結数列(公差がA2の等差数列)S、及び数値A3によって生成される第3の連結数列(公差がA3の等差数列)Sを連結したものである。
ここで、基礎数列を構成する連結数列Sの個数jは、列重みwc以上である。つまり、連結数列Sに含まれる数の個数がN個である場合、連結数列Sの個数jは列重みwcに等しい。また、連結数列Sに含まれる数の個数が、N個未満である場合、連結数列Sの個数jは列重みwcよりも多く必要である。
そして、前述のように、j個の連結数列S,S,Sは、それぞれ、P個の部分数列S1〜SPから構成されている。各部分数列S1〜SPは、検査行列の各行に対応し、部分数列の総数P×jと検査行列の行数は同じであるから、検査行列の行数Mは、P×jとなる。
また、部分数列の個数Pは、連結数列の長さNを、1個の部分数列の長さwrで割った数に等しい。したがって、M=N・j/wrである。
したがって、1個の部分数列の長さ(行重み;1行あたりの“1”の個数)wrを変えると、検査行列の行数Mが変わる。つまり、検査行列の列数(符号長)Nを変えずに、行数(冗長ビット数)Mを変えることができる。
ここで、符号化率R=1−M/Nであるから、Mを変えることで、符号化率Rを変更することにある。
このように、本実施形態では、符号化率が異なる検査行列が、共通の基礎数列に基づいて、行重みを変更することで得られる。したがって、異なる符号化率に対応した複数の検査行列が必要であっても、基礎行列は共通のものを用いることができる。
符号化率は、列重みwc及び行重みwrを用いて、図12に示すように決定できる。図12に示すように、列重みwcが3である場合、行重みwrを6,9,12,15にすることで、符号化率Rは、1/2,2/3,3/4,4/5となる。また、列重みwcが4である場合、行重みwrを8,12にすることで、符号化率は1/2,2/3になる。
上記のように、符号長Nと列重みwcが決まれば、行重みwcを変更することで符号化率Rを変更することが可能である。なお、当然であるが、符号長Nや列重みwcを調整することでも符号化率を変更することができる。
前記基礎数列の考え方を導入すると、本実施形態の検査行列は、次の性質A〜Eを有するということができる。
(性質A)検査行列の行数に応じた数の数列それぞれは、以下の条件(C)〜(D)を満たす基礎数列を、wr個の数ごとに分割した部分数列である。
(性質B)検査行列の行数に応じた個数の部分数列は、それぞれ、検査行列のいずれか一の行に割り当てられている。
(性質C)前記基礎数列に含まれる数は、1〜Nの自然数である。
(性質D)前記基礎数列において、1〜Nの自然数それぞれの出現回数は、列重みの値wcと同じである。
(性質E)前記基礎数列は、公差がA1,・・,AjのいずれかであるX個の等差数列(ただし、当該数列に含まれる任意の数yAと当該数yAに隣り合う数yBとの差がAでない場合があっても、yAと(yB+N)との差がAであれば、yAとyBの差はAであるとみなす)を連結したものである。
なお、本実施形態では、上記性質Bに関し、基礎数列における複数の部分数列の並び順と、部分数列が割り当てられている検査行列の各行の並び順とが一致するように、複数の部分数列が検査行列の各行に割り当てられている。ただし、前述のように行置換などを行った場合のように並び順が一致しなくてもよく、行置換などを行っても誤り訂正能力には差が生じない。
図12〜図15は、共通の基礎行列から行重みwrを変更することで生成された複数の検査行列を示している。図12〜図15の検査行列は、いずれも、符号長N=576、列重みwc=3(=j)、Nと互いに素である数値(A1〜Aj)=(A1,A2,A3)=(5,61,557)である。基礎数列は、A1,A2,A3を用いて“mod(A×x、N)+1”の式によって生成されたものであるため、図12〜図15の各検査行列において基礎数列は共通している。なお、ここでは、xの初期値x1を0とした。
図12の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,6,5,61,557)の“1”の総数nzは1728である(図13〜図14の検査行列も同様)。また、行数Mは288であり、符号化率R=1−wc/wr=1−3/6=1/2である。
図12(b)の拡大図に示すように、行重みwrが6であることに対応して、1つの行には、6個の点(“1”)が配置されている。
図13の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,9,5,61,557)の“1”の行数Mは192であり、符号化率R=1−wc/wr=1−3/9=2/3である。図13(b)の拡大図に示すように、行重みwrが9であることに対応して、1つの行には、9個の点(“1”)が配置されている。
図14の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,12,5,61,557)の“1”の行数Mは144であり、符号化率R=1−wc/wr=1−3/12=3/4である。図14(b)の拡大図に示すように、行重みwrが12であることに対応して、1つの行には、12個の点(“1”)が配置されている。
図15の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,16,5,61,557)の“1”の行数Mは108であり、符号化率R=1−wc/wr=1−3/16=13/16である。図15(b)の拡大図に示すように、行重みwrが16であることに対応して、1つの行には、16個の点(“1”)が配置されている。
上記のように図12〜図15の検査行列は、すべて共通の基礎数列を有している。換言すると、検査行列に含まれる非零要素の列位置を示す数の集合が図12〜図15に示す複数の検査行列間で共通しているといえる。ただし、本実施形態では、単に「非零要素の列位置を示す数の集合」が共通しているだけでなく、等差数列を連結した基礎数列が共通している。
図16は、図12〜図15の検査行列を用いて復号した場合のBER(Bit Error Rate)特性を示している。なお、図16には、誤り訂正を行わなかった場合のBER特性の、参考のため「訂正なし」として表している。
図16に示すように、図12〜図15の検査行列は、符号化率Rに応じた訂正能力を有している。また、図12〜図15の検査行列を用いると、エラーフロアーを引かず良好な特性になることを示している。
[復号器の回路構成]
図17は、図3に示した復号器5における外部値対数比算出部7のブロック図を示している。外部値対数比算出部7は、min−sum復号法による場合、前述の式(1)の行処理及び式(2)の列処理の繰り返しによって復号が行われる。したがって、外部値対数比算出部7は、図17に示すように行処理を行う行処理部7aと列処理を行う列処理部7bを備えている。
ここで、行処理は、式(1)のsignで示す符号決定のための演算と、式(1)のminで示す最小値を探索するための演算に大別される。なお、符号決定と最小値探索とはλn+βmnに対して行われるため、λnとβmnを加算する処理も必要である。
したがって、行処理部7aは、図18に示すように、λnとβmnの加算を行う加算部7a−1、式(1)のsing演算を行う符号処理部7a−2、式(1)の最小値探索を行う最小値探索部7aを備えている。そして、符号処理部7a−2と最小値探索部7a−3の結果は符号乗算部7a−4によって乗算され、式(1)に示すαmnが求められる。
図19は行重みwr=6の場合(図12の検査行列)の最小値探索部7a−3の回路構成を示し、図20は行重みwr=9の場合(図13の検査行列)の最小値探索部7a−3の回路構成を示している。ここでの最小値探索部は、ある行mにおけるλn+βmnの最小値を求めるためにトーナメント方式を採用している。つまり、2つの値うちの小さい値を出力する比較器200を複数備え、比較を順次行っていくことで、最小値を求める。なお、式(1)では、自身を除く要素についての最小値であるから、実際には、自身の要素を除いたλn’+βmn’の最小値を算出するため、自身の要素は最小値探索部に入力されない。例えば、1行1列目の要素α11を求めるための最小値探索では、対応する(λ1+β11)は、最小値探索部への入力から除外され、1行目の他の要素の中から最小値が探索される。
図19及び図20の最小値探索部7a−3では、行ごとに最小値を求めるための処理回路300,301が設けられており、1行あたりの非零要素の数だけ最小値探索の処理が繰り返し行われる。各処理回路300,301では、検査行列の1行あたりの非零要素の数(行重み)−1の比較器200が設けられており、行毎に最小値を求めるためのトーナメント方式での演算が行われる。
したがって、図19及び図20では、各処理回路300,301内の比較器200の数が異なり、処理回路300,301の総数も異なる。つまり、図19及び図20では、最小値探索部7a−3の回路構成が異なる。
ただし、図19及び図20に示すように、最小値探索部7a−3への入力内容は、全体としてみれば、共通している。つまり、本実施形態では、複数の検査行列間で、非零要素の列位置を示す基礎数列が共通しているため、λn+βmnも(行位置mは別として)共通する。そして、図19及び図20においては、各λn+βmnが、どの行mの処理回路300に与えられるかという点が異なるだけである。
したがって、図19及び図20の回路では、最小値探索部7a−3自体の構成と、各λn+βmnがどの行の処理回路300に割り当てられるか(βmnのmを何にするか)という点は、異ならせる必要があるものの、λn+βmnの演算を行う加算部7a−1は共通化することができる。これにより回路規模の膨大化を抑制できる。
図21は、最小値探索部7a−3の他の例を示している。図21は、行重みが異なる検査行列について最小値探索部7a−3を共通化したものである。ここでは最小値を探索するための処理回路302は、行単位ではなく、複数の行重みの最小公倍数単位で設けられている。例えば、図19のように行重み=6であり、図20のように行重み=9である場合について、両者を共通化するには、6と9の最小公倍数である18個の入力(λn’+βmn’)から最小値を求める回路が一つの処理回路302としてあればよい。なお、実際には自身の要素は除かれるため、処理回路302を用いた実際の演算では17個の入力から最小値が求められる。
図21において実線で示す比較器200は、行重み6の場合の、各行(3行分)の最小値を求めるためのものである。また、図21において、点線で示す比較器200は、行重み6の場合の比較結果を一部利用して、行重み9の場合の各行(2行分)の最小値をもめるためのものである。
図21の処理回路302では、複数の行重みについての出力を共に出力できるため、処理回路302を行重みごとに設ける必要がない。しかも、比較器200は、異なる行重み間で共用されているため、素子数の増加が抑えられている。
そして、図21の最小値探索部7a−3では、処理回路302から出力される各行重みの出力から、選択された行重みについての出力(最小値)を選択して出力するためのセレクタ304が設けられている。セレクタは、選択された行重み情報wrによって、どの最小値を出力するかを決定することができる。なお、行重みは、通信装置の通信レートに応じて決定される。
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である
例えば、本実施形態の検査行列に基づく処理(行処理又は列処理)は、ハードウェアによって実行される必要はなく、コンピュータプログラムによって実行されてもよい。また、基礎数列は、等差数列を連結したものに限られず、どのような数列であってもよい。さらに、最小値を求める処理回路は、トーナメント方式に限られず、分布数えソートをベースとした方式であってもよい。なお、分布数えソートをベースとした方式は、例えば、“前畠貴、「FUMP−APP復号法によるLDPC復号器の実装」、電子情報通信学会、信学技報、CAS2006、pp.8−20 2006年6月”に開示されている。
通信システムの構成を概略的に示す図である。 送信データと復調データの対応の一例を示す図である。 復号化器の構成を概略的に示す図である。 参考的に示す検査行列(本発明の実施形態ではない)の一例である。 図4に示す検査行列のタナーグラフである。 一次推定語生成部のブロック図である。 実施形態に係る検査行列の1例を示す図である。 比較例に係る検査行列を示す図である。 検査行列の生成の仕方に関する説明図である。 基礎数列の説明図である。 列重み及び行重みと符号化率の関係図である。 符号化率R=1/2の検査行列である。 符号化率R=2/3の検査行列である。 符号化率R=3/4の検査行列である。 符号化率R=13/16の検査行列である。 BER特性図である。 外部値対数比算出部の構成図である。 行処理部の構成図である。 最小値探索部の構成図である。 最小値探索部の構成図である。 最小値探索部の構成図である。 従来の検査行列の生成方法の説明図である。
符号の説明
1 符号化器
2 変調器
3 通信路
4 復調器
5 変調器
H 検査行列
N 符号長
wc 列重み
wr 行重み
R 符号化率

Claims (5)

  1. 検査行列を用いて、低密度パリティ検査符号の復号を行う復号装置であって、
    符号化率の異なる複数の検査行列を使い分けることができるよう構成され、
    符号化率の異なる前記複数の検査行列は、低密度パリティ検査符号の符号長を示す列数が共通しているとともに、行数が符号化率に応じて異なっており、
    検査行列に含まれる非零要素の総数が前記複数の検査行列間で共通しており、
    前記非零要素の列位置を示す数」を要素とする集合が前記複数の検査行列間で共通し、かつ、列重みが前記複数の検査行列間で共通し、かつ、行重みが符号化率に応じて前記複数の検査行列間で異なるように、前記非零要素が配置されている
    ことを特徴とする復号装置。
  2. 検査行列を用いて、低密度パリティ検査符号の復号を行う復号装置であって、
    符号化率の異なる複数の検査行列を使い分けることができるよう構成され、
    符号化率の異なる前記複数の検査行列は、低密度パリティ検査符号の符号長及び検査行列の列重みが共通しており、行重みが複数の検査行列間で異なることで複数の検査行列の符号化率が異なっているものを含んでおり、
    さらに、
    前記符号長をNとし、
    前記検査行列の列重みをwcとし、
    前記検査行列の行重みをwrとし、
    前記Nに対して互いに素である少なくともwc個の数をA1,・・,Aj(ただし、jは、wc以上の数であり、A1,・・・,Ajはそれぞれ異なる数)としたときに、
    前記検査行列のそれぞれの行には、当該検査行列の行数に応じた個数の数列であって、それぞれが以下の条件(A)〜(B)を満たす数列に含まれる各数に対応した列位置に非零要素が配置されていることを特徴とする復号装置。
    (A)検査行列の行数に応じた数の数列それぞれは、以下の条件(C)〜(D)を満たす基礎数列を、wr個の数ごとに分割した部分数列である。
    (B)検査行列の行数に応じた個数の部分数列は、それぞれ、検査行列のいずれか一の行に割り当てられている。
    (C)前記基礎数列に含まれる数は、1〜Nの自然数である。
    (D)前記基礎数列において、1〜Nの自然数それぞれの出現回数は、列重みの値wcと同じである。
    (E)前記基礎数列は、公差がA1,・・,AjのいずれかであるX個の等差数列(ただし、当該数列に含まれる任意の数yAと当該数yAに隣り合う数yBとの差がAでない場合があっても、yAと(yB+N)との差がAであれば、yAとyBの差はAであるとみなす)を連結したものである。
  3. 前記基礎数列における複数の部分数列の並び順と、前記部分数列が割り当てられている検査行列の各行の並び順とが一致するように、複数の部分数列が検査行列の各行に割り当てられている請求項2記載の復号装置。
  4. 検査行列を用いて、低密度パリティ検査符号の復号を行う復号装置であって、
    符号化率の異なる複数の検査行列を使い分けることができるよう構成され、
    符号化率の異なる前記複数の検査行列は、低密度パリティ検査符号の符号長及び検査行列の列重みが共通しているとともに、検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しており、行重みが複数の検査行列間で異なることで複数の検査行列の符号化率が異なっているものを含んでおり、
    通信レートに応じて検査行列の行重みを変更することでマルチレートに対応する復号装置。
  5. 低密度パリティ検査符号の符号長Nと、前記Nに対して互いに素である数値Aと、検査行列の行重みwrを用いて、低密度パリティ検査符号の検査行列を生成する方法であって、
    通信レートに応じて前記wrを変更する行重み変更ステップと、
    検査行列に含まれるP個(Pは2以上の自然数)の行それぞれが有する非零要素の位置を算出する位置算出ステップと、
    前記位置算出ステップによって算出された位置に、非零要素を配置する配置ステップと、を含み、
    前記位置算出ステップでは、変数xを、初期値x1から(x1+(N−1))まで増加させつつ、(A×x)をNで割ったときの剰余を求める演算を行って、N個の演算結果を取得し、
    前記配置ステップでは、N個の演算結果からなる数列を、wr個の数からなるP個の部分数列に分割し、P個の部分数列に含まれる数を非零要素の列位置として、対応するP個の行に非零要素を配置する
    ことを特徴とする検査行列生成方法。
JP2007340090A 2007-12-28 2007-12-28 復号装置及び検査行列生成方法 Expired - Fee Related JP4645645B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007340090A JP4645645B2 (ja) 2007-12-28 2007-12-28 復号装置及び検査行列生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007340090A JP4645645B2 (ja) 2007-12-28 2007-12-28 復号装置及び検査行列生成方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010265293A Division JP4985843B2 (ja) 2010-11-29 2010-11-29 復号装置

Publications (2)

Publication Number Publication Date
JP2009164759A JP2009164759A (ja) 2009-07-23
JP4645645B2 true JP4645645B2 (ja) 2011-03-09

Family

ID=40966884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007340090A Expired - Fee Related JP4645645B2 (ja) 2007-12-28 2007-12-28 復号装置及び検査行列生成方法

Country Status (1)

Country Link
JP (1) JP4645645B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2503698B1 (en) * 2009-11-17 2018-02-14 Mitsubishi Electric Corporation Error correction method and device, and communication system using the same
US9077377B2 (en) 2010-02-10 2015-07-07 Panasonic Intellectual Property Management Co., Ltd. Transmission device and reception device for communication in an environment with strong external noise, and transmission method and reception method for the same
BR112012024859A2 (pt) * 2010-04-27 2020-08-11 Nec Corporation dispositivo de condificação método de configuração de código de correção e de erro e programa de configuração de código de correção de erro

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005069492A1 (ja) * 2004-01-20 2005-07-28 Nec Corporation 検査行列生成方法、データ伝送システム、符号化装置、復号装置および検査行列生成プログラム
JP2007215089A (ja) * 2006-02-13 2007-08-23 Fujitsu Ltd 復号装置及び復号方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005069492A1 (ja) * 2004-01-20 2005-07-28 Nec Corporation 検査行列生成方法、データ伝送システム、符号化装置、復号装置および検査行列生成プログラム
JP2007215089A (ja) * 2006-02-13 2007-08-23 Fujitsu Ltd 復号装置及び復号方法

Also Published As

Publication number Publication date
JP2009164759A (ja) 2009-07-23

Similar Documents

Publication Publication Date Title
JP4296949B2 (ja) 復号装置及び方法、並びに情報処理装置及び方法
KR101944526B1 (ko) 송신 장치 및 그의 인터리빙 방법
KR101227264B1 (ko) Ldpc 코드용 디코더
JP2010130193A (ja) 誤り訂正復号装置
WO2014122772A1 (ja) 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法
CN101073205A (zh) 低密度奇偶校验编码器和解码器以及低密度奇偶校验编码和解码方法
EP1798861A1 (en) LDPC encoding through decoding algorithm
JP4591371B2 (ja) Qc符号の符号化方法
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
JP4645645B2 (ja) 復号装置及び検査行列生成方法
KR101370903B1 (ko) Ldpc 코드를 이용한 부호화 및 복호화 방법
KR102059002B1 (ko) 무선 통신 시스템에서 ldpc 부호의 패리티 검사 행렬을 기반으로 부호화를 수행하는 방법 및 이를 이용한 단말
JP4985843B2 (ja) 復号装置
JP4618293B2 (ja) 復号装置及び検査行列生成方法
JP2009182421A (ja) 復号化方法及び復号化装置
JP5385944B2 (ja) 復号器
JP4341646B2 (ja) 復号装置
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
KR101405961B1 (ko) Ldpc 코드를 이용한 부호화/복호화 방법
JP4755238B2 (ja) 復号器
JP4341643B2 (ja) 復号装置
JP5811212B2 (ja) 誤り訂正復号装置
JP4650485B2 (ja) 復号装置
JP4766013B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4973647B2 (ja) 誤り訂正符号の復号評価装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

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

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

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4645645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees