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

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

Info

Publication number
JP4618293B2
JP4618293B2 JP2007321021A JP2007321021A JP4618293B2 JP 4618293 B2 JP4618293 B2 JP 4618293B2 JP 2007321021 A JP2007321021 A JP 2007321021A JP 2007321021 A JP2007321021 A JP 2007321021A JP 4618293 B2 JP4618293 B2 JP 4618293B2
Authority
JP
Japan
Prior art keywords
check matrix
sequence
parity check
row
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
JP2007321021A
Other languages
English (en)
Other versions
JP2009147541A (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 JP2007321021A priority Critical patent/JP4618293B2/ja
Publication of JP2009147541A publication Critical patent/JP2009147541A/ja
Application granted granted Critical
Publication of JP4618293B2 publication Critical patent/JP4618293B2/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を、図17に示すように、検査行列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」(非零要素)の配置に規則性が無くなり訂正能力を確保することができる。
和田山正、「低密度パリティ検査符号とその復号法について」、信学技法、MR2001−83、2001年12月 特開2005−269535号公報
乱数をベースとして生成された検査行列の場合、検査行列を示す情報が、膨大又は複雑になるという問題がある。
つまり、検査行列における非零要素の配置には規則性がないため、全ての非零要素の位置を特定しなければ、検査行列を表現することができない。
一方、何らかのルールに基づく検査行列であれば、比較的少ない情報で表現することができるものの、規則的に非零要素が配置されるため、十分な訂正能力が得られないことが多い。もっとも、近年の傾向として、あるルールに従って生成された行列でも訂正能力を確保できるものが発見されている。
そこで、本発明は、乱数をベースとせずにルールに基づいて表現することができる新たな検査行列を有する復号装置、及びその検査行列の生成方法を提供することを目的とする。
本発明に係る復号装置は、低密度パリティ検査符号の復号処理を検査行列に基づいて行う復号装置であって、前記検査行列の列又は行のいずれか一方の長さをNとし、前記Nに対して互いに素である数値をAとしたときに、前記検査行列の各行又は各列には、以下の条件(1)〜(4)を満たす数列に含まれる各数に対応した列位置又は行位置に非零要素が配置されていることを特徴とする復号装置である。
(1)前記数列は、行又は列ごとに異なるものである。
(2)前記数列に含まれる数は、1〜Nの自然数である。
(3)前記数列は公差がAである等差数列である(ただし、当該数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)。
(4)同一の公差Aを持つ複数の等差数列において、1〜Nの自然数それぞれの出現回数は、1回以内である。
上記検査行列は、上記条件に従っているものの、乱数で生成したものと同様な良好な訂正能力を有することを、本発明者は発見し、これに基づき本発明を完成したものである。
なお、検査行列の各行又は各列に存在する非零要素の位置を示す「数」からなる数列には、1つの行又は列について、複数パターンをとり得る。例えば、上記(1)〜(4)の条件を満たす検査行列であっても、当該検査行列のある一つの行に存在する非零要素の位置を示す「数」を小さい順に並べた数列は、上記(3)の条件(公差がAである等差数列)を満たすとは限らない。
しかし、上記本発明は、「公差がAである等差数列に含まれる各数に対応した列位置又は行位置に非零要素が配置されている」ことを特徴とするものであり、検査行列における非零要素の並びを基準に考えた数列が、条件(3)を満たすか否かは考慮しなくともよい。つまり、検査行列の各行又は各列が、条件(3)を満たす数列を持ち得るものであれば足りる。
他の観点からみた本発明は、低密度パリティ検査符号の復号処理を検査行列に基づいて行う復号装置であって、前記検査行列の列又は行のいずれか一方の長さをNとし、前記Nに対して互いに素である数値をAとしたときに、前記検査行列に含まれるP個(Pは2以上の自然数)の行又はP個の列には、以下の条件(5)〜(6)を満たすP個の数列に含まれる各数に対応した列位置又は行位置に非零要素が配置されていることを特徴とする復号装置である。
(5)P個の数列は、以下の条件(7)〜(10)を満たす連結数列をP分割したものである。
(6)P個の数列は、前記検査行列に含まれるP個の行又はP個の列に、それぞれ割り当てられている。
(7)前記連結数列は、P個の行又はP個の列に含まれる非零要素の総数に対応した個数の数を有する。
(8)前記連結数列に含まれる数は、1〜Nの自然数である。
(9)前記連結数列において、1〜Nの自然数それぞれの出現回数は、1回以内である。
(10)前記連結数列は、公差がAである等差数列である(ただし、当該連結数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)。
前記検査行列において、前記検査行列に含まれるP個の行又はP個の列は、前記検査行列における行又は列の並び順でみて、連続するP個の行又は連続するP個の列であり、
前記条件(6)は、下記の通りであるのが好ましい。
(6)P個の数列は、前記連結数列におけるP個の前記数列の並び順と、連続するP個の行又は連続するP個の列の並び順と、が一致するように、前記検査行列に含まれるP個の行又は列に、それぞれ割り当てられている。
検査行列が上記のように構成されている場合、非零要素の分布がより均一になり、訂正能力を向上させることができる。
前記検査行列は、同一の公差を持つ複数の等差数列からなる数列群を、複数有するように構成され、
それぞれの数列群の公差は、他の数列群とは公差が異なっているとともに、前記Nに対して互いに素であるのが好ましい。
前記検査行列は、当該検査行列の列重みに対応した数の前記数列群が存在するように構成されているのが好ましい。
また、前記検査行列は、当該検査行列の行重みに対応した数の前記数列群が存在するように構成されていてもよい。
他の観点からみた本発明は、低密度パリティ検査符号の検査行列の列又は行のいずれか一方の長さNと、前記Nに対して互いに素である数値Aと、を用いて、低密度パリティ検査符号の検査行列を生成する方法であって、検査行列に含まれるP個の行又は列それぞれが有する非零要素の位置を算出する位置算出ステップと、前記位置算出ステップによって算出された位置に、非零要素を配置する配置ステップと、を含み、前記位置算出ステップでは、変数xを、初期値x1から(x1+(N−1))まで増加させつつ、(A×x)をNで割ったときの剰余を求める演算を行って、N個の演算結果を取得し、前記配置ステップでは、N個の演算結果からなる数列を、w個(wは検査行列の行重み又は列重み)の数からなるP個の部分数列に分割し、P個の部分数列に含まれる数を非零要素の列位置又は行位置として、対応するP個の行又は列に非零要素を配置する、ことを特徴とする検査行列生成方法である。
この生成方法によれば、前記条件(1)〜(4)を満足する検査行列を容易に生成することができる。
本発明によれば、検査行列は、上記条件(1)〜(4)に従った規則的なものであるものの、良好な訂正能力が得られる。しかも、検査行列を少ない情報で表現することが可能である。
以下、本発明の実施形態を、図面を参照して説明する。
図1は、本発明の実施形態に係る復号装置(復号器)5を有する通信システムの構成の一例を示す図である。図1において、通信システムの送信側通信装置は、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)ビットの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)
[検査行列について]
さて、図7は、本実施形態の復号器5において用いられるLDPC符号の検査行列H96の具体例を示している。図7の検査行列H96は、符号長N=96、行重みwr=6、列重みwc=3の正則な検査行列(行列サイズ=48×96)を示している。図7においては、検査行列の「1」(非零要素)のあるところは、点で示されている。図7の検査行列H96において、非零要素を示す点は288個ある。
また、比較例として、図8に、図17に示す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である。
(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も、検査行列の生成情報として必要である。
以下、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などの規格(通信方式)では、複数の異なる検査行列を使い分けることが要求されており、WiMAX用通信装置(復号器)において、複数の検査行列を記憶するメモリを削減できるメリットは大である。
また、復号器5の外部から数値A1,A2,A3を取得(例えば、他の復号器から通信路を介して受信)し、前記生成規則に従って検査行列を生成して復号を行うこともできる。この場合、検査行列の情報を、復号器(通信装置)間で、通信によってやりとりすることで、エラー状況などの通信状況に応じて検査行列を通信中に変更することができる。しかも、検査行列の情報を他の復号装置に送っても、検査行列を少ない情報で表現できるため、通信負荷の増大を防止できる。
一方、復号器5を有する通信装置が、符号化率Rを通信状況に応じて変化させる場合、例えば、Nやwcを固定値とした場合、上記式によれば、wrを復号器(通信装置)間で通信によって通知し合うことで、実現できる。つまり、wrを変更することで、符号化率を変更できる。そして、1行当たりの「1」の数をwrに応じて決定して、検査行列を生成すればよい。
つまり、復号器5(通信装置)には、通信状況(エラー状況)に応じて変動する符号化率に応じてwrを決定し、それを他の復号器5(通信装置)へ送信する機能を具備させることができる。そして、wrを受信した復号器5(通信装置)は、数値Aのほか、受信したwrを用いて、検査行列を生成することができる。
[検査行列の他の例]
図10は、(符号長N,A1,A2,A3)=(192,37,113,137)の生成情報によって前記生成規則に従って生成された検査行列を示している。
図11は、(符号長N,A1,A2,A3)=(567,109,347,463)の生成情報によって前記生成規則に従って生成された検査行列を示している。
図12は、(符号長N,A1,A2,A3)=(1152,349,983,1069)の生成情報によって前記生成規則に従って生成された検査行列を示している。
なお、図10〜図12の検査行列は、(N,A1,A2,A3)以外の検査行列に関するパラメータ(wrなど)については、図7に示す検査行列と同様である。
図13は、図10〜図12の検査行列を用いて復号した場合のBER(Bit Error Rate)特性を示している。なお、図13には、誤り訂正を行わなかった場合のBER特性も、参考のため「訂正なし」として表している。
図13に示すように、図10〜図12の検査行列は、図7の検査行列と同様に、エラーフロアーを引かず良好な特性が得られることがわかる。
[検査行列の生成規則の変形例]
上記生成規則では、1行単位で、非零要素の位置を決定していたが、この変形例では、1列単位で、非零要素の位置を決定する。
変形例に係る生成規則は下記の通りである。なお、ここでは、図14(a)に示すように、検査行列H(行列サイズM×N)を、行重みwr(=6)の数に応じた複数の部分行列H1〜H6に分割して考える。なお、行重みwr=6であることに対応して、Mと互いに素である数値Aとしては、A1〜A6までの6個が必要である。ただし、以下の生成規則では、A1のみについて説明する。
(変形した生成規則;列単位の生成規則)
(1)検査行列の行方向長さをMとする。
(2)Mと互いに素である数値をA1とする。
(3)変数xが、初期値x1から(x1+(M−1))になるまで下記(3−1)(3−2)の処理を繰り返す(M回の繰り返し処理)。なお、ここでは、初期値x1=1とする。
(3−1:位置算出ステップ)mod(A1×x,M)を計算し、その結果に1を加える。つまり、“mod(A1×x,M)+1”を計算する。なお、mod(A1×x,M)は、(A1×x)をMで割ったときの剰余を求める関数とする。
(3−2:配置ステップ)第1ブロックH1中の、“mod(A1×x,M)+1”の結果(行インデックス)が示す列位置に非零要素「1」を配置する。「1」が配置される列は、第1ブロックH1の1列目からP列目まで順次切り替わる。各列には、列重みwcに対応した数の「1」が順次配置され、一つの列に、列重み分の数の「1」を立てたら、次の列に移って、同様に列重み分の数の「1」を立てる。
上記生成規則を他のブロックH2〜H6についても、数値A2〜A6を用いて「1」を立てる。図14(b)は、このようにして生成された検査行列を示している。
なお、上記列単位の生成規則は、図7の検査行列に関して説明した生成規則を検査行列の転置行列について適用したのち、再び転置を行うことと等価である。つまり、生成したい検査行列(行列サイズM×N)を転置した行列(行列サイズN×M;行重みwr=3;列重みwc=6)を想定し、この転置行列(N×M)に、図7の検査行列に関して説明した生成規則を適用して「1」を立てて、図15に示すような行列を生成する。そして、図15の行列を転置することで、図16に示す行列サイズM×Nの検査行列を得ることができる。
また、変形例に係る生成規則によって生成された検査行列も、前述の性質1〜10(ただし、性質1〜10における「行」と「列」を入れ替える)が成り立つ。
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である
通信システムの構成を概略的に示す図である。 送信データと復調データの対応の一例を示す図である。 復号化器の構成を概略的に示す図である。 参考的に示す検査行列(本発明の実施形態ではない)の一例である。 図4に示す検査行列のタナーグラフである。 一次推定語生成部のブロック図である。 実施形態に係る検査行列の1例を示す図である。 比較例に係る検査行列を示す図である。 検査行列の生成の仕方に関する説明図である。 実施形態に係る検査行列の他の例を示す図である。 実施形態に係る検査行列の他の例を示す図である。 実施形態に係る検査行列の他の例を示す図である。 図10〜図11に示す検査行列でのBER特性図である。 (a)は検査行列の列単位生成規則の説明図であり、(b)は列単位生成規則で生成された検査行列を示す図である。 検査行列の転置行列に行単位生成規則を適用した場合の行列を示す図である。 図15の行列を転置した行列(検査行列)を示す図である。 従来の検査行列の生成方法の説明図である。
符号の説明
1 符号化器
2 変調器
3 通信路
4 復調器
5 変調器
H 検査符号

Claims (7)

  1. 低密度パリティ検査符号の復号処理を検査行列に基づいて行う復号装置であって、
    前記検査行列の列又は行のいずれか一方の長さをNとし、
    前記Nに対して互いに素である数値をAとしたときに、
    前記検査行列の各行又は各列には、以下の条件(1)〜(4)を満たす数列に含まれる各数に対応した列位置又は行位置に非零要素が配置されていることを特徴とする復号装置。
    (1)前記数列は、行又は列ごとに異なるものである。
    (2)前記数列に含まれる数は、1〜Nの自然数である。
    (3)前記数列は公差がAである等差数列である(ただし、当該数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)。
    (4)同一の公差Aを持つ複数の等差数列において、1〜Nの自然数それぞれの出現回数は、1回以内である。
  2. 低密度パリティ検査符号の復号処理を検査行列に基づいて行う復号装置であって、
    前記検査行列の列又は行のいずれか一方の長さをNとし、
    前記Nに対して互いに素である数値をAとしたときに、
    前記検査行列に含まれるP個(Pは2以上の自然数)の行又はP個の列には、以下の条件(5)〜(6)を満たすP個の数列に含まれる各数に対応した列位置又は行位置に非零要素が配置されていることを特徴とする復号装置。
    (5)P個の数列は、以下の条件(7)〜(10)を満たす連結数列をP分割したものである。
    (6)P個の数列は、前記検査行列に含まれるP個の行又はP個の列に、それぞれ割り当てられている。
    (7)前記連結数列は、P個の行又はP個の列に含まれる非零要素の総数に対応した個数の数を有する。
    (8)前記連結数列に含まれる数は、1〜Nの自然数である。
    (9)前記連結数列において、1〜Nの自然数それぞれの出現回数は、1回以内である。
    (10)前記連結数列は、公差がAである等差数列である(ただし、当該連結数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)。
  3. 前記検査行列に含まれるP個の行又はP個の列は、前記検査行列における行又は列の並び順でみて、連続するP個の行又は連続するP個の列であり、
    前記条件(6)は、下記の通りである請求項2記載の復号装置。
    (6)P個の数列は、前記連結数列におけるP個の前記数列の並び順と、連続するP個の行又は連続するP個の列の並び順と、が一致するように、前記検査行列に含まれるP個の行又は列に、それぞれ割り当てられている。
  4. 前記検査行列は、同一の公差を持つ複数の前記等差数列からなる数列群を、複数有するように構成され、
    それぞれの数列群の公差は、他の数列群とは公差が異なっているとともに、前記Nに対して互いに素である請求項1〜3のいずれか1項に記載の復号装置。
  5. 前記検査行列は、当該検査行列の列重みに対応した数の前記数列群が存在するように構成されている請求項4記載の復号装置。
  6. 前記検査行列は、当該検査行列の行重みに対応した数の前記数列群が存在するように構成されている請求項4記載の復号装置。
  7. 低密度パリティ検査符号の検査行列の列又は行のいずれか一方の長さNと、前記Nに対して互いに素である数値Aと、を用いて、低密度パリティ検査符号の検査行列を生成する方法であって、
    検査行列に含まれるP個の行又は列それぞれが有する非零要素の位置を算出する位置算出ステップと、
    前記位置算出ステップによって算出された位置に、非零要素を配置する配置ステップと、を含み、
    前記位置算出ステップでは、変数xを、初期値xから(x+(N−1))まで増加させつつ、(A×x)をNで割ったときの剰余を求める演算を行って、N個の演算結果を取得し、
    前記配置ステップでは、N個の演算結果からなる数列を、w個(wは検査行列の行重み又は列重み)の数からなるP個の部分数列に分割し、P個の部分数列に含まれる数を非零要素の列位置又は行位置として、対応するP個の行又は列に非零要素を配置する、
    ことを特徴とする検査行列生成方法。
JP2007321021A 2007-12-12 2007-12-12 復号装置及び検査行列生成方法 Expired - Fee Related JP4618293B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2009147541A JP2009147541A (ja) 2009-07-02
JP4618293B2 true JP4618293B2 (ja) 2011-01-26

Family

ID=40917674

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4618293B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5485069B2 (ja) 2010-08-06 2014-05-07 パナソニック株式会社 誤り訂正復号装置及び誤り訂正復号方法
CN112558924B (zh) * 2020-12-11 2022-08-26 黑龙江大学 伪随机二值序列的局部弱随机现象的快速检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (ja) * 1999-10-12 2001-06-22 Thomson Csf Ldpcコードの構築およびコーディングのためのプロセス
WO2005069492A1 (ja) * 2004-01-20 2005-07-28 Nec Corporation 検査行列生成方法、データ伝送システム、符号化装置、復号装置および検査行列生成プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (ja) * 1999-10-12 2001-06-22 Thomson Csf Ldpcコードの構築およびコーディングのためのプロセス
WO2005069492A1 (ja) * 2004-01-20 2005-07-28 Nec Corporation 検査行列生成方法、データ伝送システム、符号化装置、復号装置および検査行列生成プログラム

Also Published As

Publication number Publication date
JP2009147541A (ja) 2009-07-02

Similar Documents

Publication Publication Date Title
JP4867980B2 (ja) 誤り訂正復号装置
JP4672016B2 (ja) 低密度パリティ検査行列を用いた符号化及び復号化方法
KR101496182B1 (ko) 최소거리가 확장된 극 부호 생성 방법 및 장치
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
EP1798861B1 (en) LDPC encoding through decoding algorithm
KR20090003164A (ko) 검사 행렬 생성 방법
JP4645645B2 (ja) 復号装置及び検査行列生成方法
KR102059002B1 (ko) 무선 통신 시스템에서 ldpc 부호의 패리티 검사 행렬을 기반으로 부호화를 수행하는 방법 및 이를 이용한 단말
JP4618293B2 (ja) 復号装置及び検査行列生成方法
JP4985843B2 (ja) 復号装置
JP2009182421A (ja) 復号化方法及び復号化装置
KR101276845B1 (ko) 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법
JP5385944B2 (ja) 復号器
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4341646B2 (ja) 復号装置
JP4650485B2 (ja) 復号装置
JP4766013B2 (ja) 復号器、受信装置及び符号化データの復号方法
JP4788680B2 (ja) 復号器
JP4755238B2 (ja) 復号器
JP5811212B2 (ja) 誤り訂正復号装置
JP4341643B2 (ja) 復号装置
JP4973647B2 (ja) 誤り訂正符号の復号評価装置
KR101435831B1 (ko) 패리티 검사 행렬 생성 방법
JP2019213217A (ja) 誤り訂正復号装置
JP2017212758A (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: 20100720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100907

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

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

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4618293

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