(57)【特許請求の範囲】
【請求項１】
列重み０の存在確率がＰ０（設定された列重み０の存在確率の上限確率）以下となるように列重みの最小値を選択し、検査行列の列重みの総和が−Ｎ'×ｌｏｇＰ０以下となるように列重みに偏りを持たせて構成した所定の重み分布を満たす低密度パリティ検査行列（Ｎ×Ｎ'）を用いて、入力情報系列から低密度パリティ検査符号を生成する誤り訂正符号化装置において、
行の重みと同数の巡回置換行列を配置した行を前記所定の重み分布を満たす行数分連続させ、かつ行の重みを漸次的に増加乃至減少させるように構成した前記低密度パリティ検査行列を出力する低密度パリティ検査行列出力手段、
を備えたことを特徴とする誤り訂正符号化装置。
【請求項２】
前記低密度パリティ検査行列出力手段は、前記低密度パリティ検査行列において重みｗ（ｗは自然数）の行が開始する開始位置をｓ(ｗ)とした場合に、ｓ(ｗ)行からｓ(ｗ＋１)行までの中のいずれかの行の成分を予め記憶して出力するとともに、
前記低密度パリティ検査行列出力手段が出力する行の成分以外の行を前記行の成分を巡回シフトすることによって復元し、復元した行と前記低密度パリティ検査行列出力手段が出力する行を用いて入力情報系列から低密度パリティ検査符号を生成する低密度パリティ検査符号化手段、
を備えたことを特徴とする請求項１記載の誤り訂正符号化装置。
【請求項３】
前記低密度パリティ検査行列出力手段は、前記所定の重み分布をポアソン分布に従う重み分布としたことを特徴とする請求項１記載の誤り訂正符号化装置。
【請求項４】
低密度パリティ検査行列出力手段は、重みをｗ（ｗは３以上の自然数）となる行からなる部分行列の行数をＲ(ｗ)、重みｗの行が開始する開始位置をｓ(ｗ)、情報長をＫ（Ｋは自然数）、前記部分行列内の行位置をｉ（０≦ｉ≦Ｒ(ｗ)−１）として、行位置ｉの行のｉ列目と（Ｋ−Ｒ(ｗ)＋１＋ｉ）列目とを１とするとともにｉ列目と（Ｋ−Ｒ(ｗ)＋１＋ｉ）列目との間に（ｗ−２）個の１がほぼ等間隔に分布するように巡回置換行列を配置することで構成された前記部分行列を出力することを特徴とする請求項１記載の誤り訂正符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、誤り訂正符号化装置に係るものであり、特に擬似巡回行列を使用して確定的な組織的低密度パリティ検査符号を構成する技術に関する。
【背景技術】
【０００２】
従来の消失訂正符号として代表的なものにＬＴ(Luby Transfer)符号がある。この符号は通信路を消失通信路を仮定し、送信器側が情報長ｋパケットに対し符号長ｎパケットがｎ＞ｋの範囲で任意に符号化できる点、また、受信機側で高々ｎ＋ε（ε≒１．０５〜１．２×ｎ）個のパケットを受信成功するだけで情報パケットｋが復号成功できる点に特徴がある（例えば、非特許文献１）。【０００３】
【非特許文献１】Ｍｉｃｈａｅｌ  Ｌｕｂｙ，  ”ＬＴ  ｃｏｄｅｓ”，  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＦＯＣＳ，  ２００２．
【０００４】
しかしながら、ＬＴ符号の生成には乱数系列を用いるため、特に短い符号長において良い性能が得られないという問題がある。この発明は、かかる問題を解決するためになされたものであって、乱数系列ではなく擬似巡回行列を使用して確定的な組織的ＬＤＰＣ符号を構成するものである。
【発明の開示】
【０００５】
この発明に係る誤り訂正符号化装置は、列重み０の存在確率がＰ０（設定された列重み０の存在確率の上限確率）以下となるように列重みの最小値を選択し、検査行列の列重みの総和が−Ｎ'×ｌｏｇＰ０以下となるように列重みに偏りを持たせて構成した所定の重み分布を満たす低密度パリティ検査行列（Ｎ×Ｎ'）を用いて、入力情報系列から低密度パリティ検査符号を生成する誤り訂正符号化装置において、行の重みと同数の巡回置換行列を配置した行を前記所定の重み分布を満たす行数分連続させ、かつ行の重みを漸次的に増加乃至減少させるように構成した前記低密度パリティ検査行列を出力する低密度パリティ検査行列出力手段を備えたことを特徴とするものである。
【０００６】
この発明に係る誤り訂正符号化装置によれば、擬似巡回行列を使用して確定的な組織的低密度パリティ検査符号を構成したので、短い符号長の場合であっても、高効率に消失訂正を行うことが可能となる。
【図面の簡単な説明】
【０００７】
【図１】この発明の実施の形態による符号化装置と復号装置との構成を示すブロック図である。
【図２】この発明の実施の形態による低密度パリティ検査行列の構成例である。
【図３】この発明の実施の形態による低密度パリティ検査符号生成処理のフローチャートである。
【図４】この発明の実施の形態による復号処理のフローチャートである。
【図５】所定の列重みの行列において列重み０の列が発生する確率分布を示す図である。
【図６】列重みを固定した場合の確率分布とポアソン分布とを示す図である。
【発明を実施するための最良の形態】
【０００８】
以下、この発明をより詳細に説明するために、この発明を実施するための最良の形態について、添付の図面に従って説明する。
実施の形態１．
以下、この発明による誤り訂正符号化装置と復号装置について説明する。ここでは、この発明の誤り訂正符号化方法とこの符号化方法に対応する復号方法とを具体的に説明するために、ネットワークを介して情報を伝送する系での構成例を用いる。【０００９】
［装置構成］
図１は、かかる符号化装置と復号装置の構成を示すブロック図である。図において、符号化装置１は、情報を送信する側に配置されたこの発明による誤り訂正符号化装置であって、情報ビット２の入力を受け付けて、誤り訂正符号化を施し、符号化の結果として得られた信号をネットワーク３に伝送する装置である。また復号装置４はこの発明による誤り訂正符号化方法に対応する復号装置であって、ネットワーク３を介して符号化装置１が送信した情報を受信し、情報ビット５を復号する装置である。なお、ネットワーク３は情報を伝送する媒体であれば有線、無線の別を問わない。【００１０】
符号化装置１は、パケット生成部１１、符号化部１２、検査行列記憶部１３、送信部１４とを備えている。パケット生成部１１は、外部から情報ビット２の入力を受け付けて、パケットサイズ長Ｌ（ビット）の単位でパケットの位置番号を伴った入力パケット系列１５を生成する部位である。以下の説明において、パケット系列１５に含まれるパケットの総数をｋ（ｋは自然数）、パケット系列１５の各要素をＩＰ（１），ＩＰ（２），…，ＩＰ（ｋ）と表す。なお、各系列の引数を位置番号である。【００１１】
符号化部１２は、入力パケット系列１４に低密度パリティ検査符号化（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ：ＬＰＤＣ符号化）を施して、符号化パケット系列１６を生成する部位である。符号化パケット系列１６は、消失訂正用に符号化されたものであって、個数Ｎ（Ｎは自然数）のパケットを含むものとする。以下において、符号化パケット系列１６に含まれる各パケットをＣ（１），Ｃ（２），…，Ｃ（Ｎ）と表す。【００１２】
符号化パケット系列１６は、後に復号装置２の復号処理において参照されることにより、元のパケット系列１５が復号されるように構成されていなければならない。そこで、符号化部１２は、「入力パケット系列１５の各要素ＩＰ（１）〜ＩＰ（Ｋ）を変数ノード」、「符号化パケット系列１６の各要素Ｃ（１）〜Ｃ（Ｎ）をチェックノード」として、変数ノード、チェックノード、さらには変数ノードとチェックノードとを結ぶ枝、によって２部グラフが構成されるように、符号化パケット系列１５を生成する。この場合において、チェックノードに接続されている枝の数を「重み」と呼ぶ。【００１３】
検査行列記憶部１３は、請求項１の低密度パリティ検査行列出力手段の例をなすものであって、所定の重み分布Ｄを満たすような２元の低密度パリティ検査行列Ｈ（以下、単に検査行列Ｈという）を記憶し、符号化部１２に検査行列Ｈを出力する部位である。検査行列記憶部１３が記憶する検査行列Ｈの構成と重み分布Ｄの求め方については後述する。【００１４】
送信部１４は、符号化部１２が生成したパケット系列に対して変調等の処理を施した後に、このパケット系列を光又は電気信号、無線信号等ネットワーク３に適合する信号形式で送出する部位であって、その構成は採用するネットワーク３に依存する。【００１５】
復号装置２は、受信部２１、復号部２２、索引算出テーブル記憶部２３、情報ビット再生部２４を備えている。受信部２１は、送信部１３によって送信されネットワーク３によって伝送された信号を受信する部位であり、受信部２１が受信した信号は受信パケット系列２５として出力される。【００１６】
復号部２２は、受信パケット系列２５の消失訂正符号を復号する部位である。復号部２２の復号結果は、復号済みパケット系列２５として出力される。なお、復号部２２は、受信部２１が受信に成功した受信パケット系列２４のみを受け取るため、受信パケット系列２４に含まれるパケットは、送信側のパケット系列１６の一部が欠落したもの、例えばＣ（１），Ｃ（３），Ｃ（７），…，Ｃ（Ｎ）のようになる。復号部２２は、受信パケット系列２４から復号済みパケット系列２５として、ＩＰ（１），ＩＰ（２），…，ＩＰ（Ｋ）を復号する。【００１７】
索引算出テーブル記憶部２３は、索引算出テーブルを記憶する記憶装置である。索引算出テーブルは検査行列の行成分間の関係を保持するものであって、検査行列の一部の行がネットワーク３を介する送信によって欠落してしまった場合であっても、受信に成功した行成分を組み合わせて簡易な演算を行うことで欠落した行成分を復元できるようにするものである。【００１８】
最後に情報ビット再生部２４は、復号部２２が出力する復号済みパケット系列２５の入力を受け付けて、情報ビット５に変換し出力する部位である。【００１９】
［符号化側の動作説明］
次に、この発明の実施の形態による符号化装置１の動作について説明する。パケット生成部１１は、情報ビット２として情報ベクトルｘ＝（ｘ1  ｘ2  …  ｘk）∈Ｆ2k、｛０，１｝∈Ｆ2を外部から取得する。以降においては、説明を簡略化するために１パケットのサイズＬの値を１とする。その結果、パケット生成部１１が生成するパケット系列１５のＩＰ（１），ＩＰ（２），…，ＩＰ（Ｋ）と情報ベクトルｘとの間には、ｘ1＝ＩＰ(１)，ｘ2＝ＩＰ（２），ｘ3＝ＩＰ（３），…，ｘK＝ＩＰ（Ｋ）という関係が成立する。以下、パケット系列１５をｘ1，ｘ2，…，ｘKと表す。【００２０】
符号化部１２は、検査行列記憶部１３によって記憶される検査行列Ｈを用いてパケット系列１５を符号化し、符号化パケット系列１６を生成する。検査行列ＨはＮ×Ｋの２元検査行列であって、１と０のみの成分から構成された検査行列である。なお、Ｎは符号長であって、Ｋは情報長である。【００２１】
検査行列Ｈは、所定の重み分布Ｄを満たす検査行列であって（構成条件１）、検査行列Ｈの列方向において値が１となる成分を、なるべく行列内において均一に分散させた（構成条件２）構成となっている。かかる検査行列Ｈの構成方法の詳細は後述することとして、ここではまずこのような条件を満たす検査行列Ｈの実例に基づいた符号化処理を説明する。【００２２】
図２は、検査行列Ｈの構成例を示す図である。図においてＡは巡回置換行列（部分行列）である。またＡ以外の成分はすべて０である。行列Ａは、列重み１、行重み１のｐ×ｐの巡回置換行列である。例えばｐ＝３の場合に、Ａの成分を完全な形で示すとすれば、次の（１）〜（３）のようになる。
【数１】
0004917023.tif 000002
【００２３】
図２に示した検査行列Ｈの特徴の１つは、ある行の重みとなる行が重み分布Ｄを満たす行数分だけ連続し、さらにそれらの行に隣接して行の重みを漸次的に増加させる行が連続することにある。つまり、構成条件１に基づいて、重み分布Ｄを満たす重みｗとなる行の数をＲ(ｗ)とすると、１行目からｐ行目までが行重み１（ｗ＝１）の行となり、ｐ＋１行目から（ｐ＋Ｒ（２））行目までは行重み２（ｗ＝２）の行、（ｐ＋Ｒ(２)＋１）行目から（ｐ＋Ｒ（２）＋Ｒ（３））行目までは行重み３（ｗ＝３）の行、というように同じ行重みの行が連続した後、その次に大きい行重みの行が連続する、という構成となっている点にある。【００２４】
なお、ここでは行重みが漸次的に増加する構成のみを示しているが、漸次的に減少する構成も同様の効果を有することはいうまでもない。【００２５】
加えて、図２に示した検査行列Ｈは、Ａが巡回置換行列であるために、行重みが同じ行の範囲（例えば、行重み２の場合は、ｐ＋１行目から（ｐ＋Ｒ（２））行目まで）では、前の行の成分を巡回シフトすることで次の行の成分を得ることができるという特徴も有している。【００２６】
このように構成することで、検査行列記憶部１３は各行重みの最初の行のみを記憶しておけばよく、その他の行の成分については重み分布Ｄに基づいて符号化時に展開することが可能となる。すなわち記憶容量の削減につながる。【００２７】
またそのように記憶容量を削減するものであるにもかかわらず、巡回シフト演算という極めて計算負荷の軽い演算のみで検査行列における次の行の成分復元できるという効果も有する。【００２８】
なお、構成条件２は、値が１となる成分が一部の列に偏ってしまった結果、検査行列に１のない列が存在することによって、行列のランクが情報ベクトルの要素数よりも小さくなり、情報ベクトルの復号が行えない状況が生じるという問題を回避するための条件である。この条件に従って検査行列Ｈを構成する方法については、後に詳述する。【００２９】
以降の説明では、符号化処理を具体的に説明するために、検査行列の多項式表現を導入する。巡回置換行列Ａのｉ行目を表現する巡回多項式をＩi（ｘ）とすると、Ｉi（ｘ）＝ａ0ｇ0＋ａ1ｇ1＋…ａp-1ｇp-1，ａj∈｛０，１｝と表現することができる。例えば、巡回置換行列Ａが数１で示した行列(１)となる場合、行番号ｉ，１≦ｉ≦ｐに対して、Ｉi(１)＝ｇ(i-1)mod pとなる。また巡回置換行列Ａが数１で示した行列(２)となる場合、Ｉi（２）＝ｇi mod pとなる。巡回置換行列Ａが数１で示した行列（３）の場合、Ｉi（３）＝ｇ(i+1)mod pとなる。このように、巡回置換行列のｊ（１≦ｊ≦ｐ）列目の要素はｇj-1と係数ａj∈｛０，１｝との積として表現される。【００３０】
ｐ×ｐ巡回置換行列Ａと同様に、Ｎ行Ｋ列の行列である検査行列Ｈの各行も多項式表現が可能である。検査行列Ｈのｎ行目の多項式表現をｙn＝ｂ0ｇ0＋ｂ1ｇ1＋…ｂK-1ｇK-1，ｂj∈｛０，１｝とする。検査行列記憶部１３は、検査行列Ｈの特徴に基づいて重みｗの最初の行の多項式の係数のみを記憶しているものとする。【００３１】
次に、符号化部１２は検査行列記憶部１３によって記憶されている検査行列に基づいて情報ベクトルの符号化を行う。図３は符号化部１２における符号化処理のフローチャートである。この処理を行うに先立って、予め行重みの最大値をｗmaxとして定めておく。まず符号化部１２は重みｗを１に初期化する（ステップＳ１０１）。続いて、カウンタ変数ｉを０に初期化する（ステップＳ１０２）。【００３２】
このような初期化の後、符号化部１２は、検査行列記憶部１３よりｗに対する多項式ｙs(w)＝ｂ0s(w)ｇ0＋ｂ1s(w)ｇ1＋…ｂK-1s(w)ｇK-1，ｂjs(w)∈｛０，１｝の係数ベクトルｂs(w)＝（ｂ0s(w)  ｂ1s(w)  …  ｂK-1s(w)）を取得する（ステップＳ１０３）。【００３３】
そして情報ベクトルｘに対する重みｗの符号語ｃをｃs(w)+i＝ｂs(w)+i×ｘTとして算出する（ステップＳ１０４）。なおｘTはｘの転置を表す。ここで、係数ベクトルｂs(w)+iは以下のように巡回シフトして構成するものとする。
ｂs(w)＝(ｂ0s(w)  ｂ1s(w)  …  ｂK-1s(w))
ｂs(w)+1＝(ｂK-1s(w)  ｂ0s(w)  …  ｂK-2s(w))
ｂs(w)+2＝(ｂK-2s(w)  ｂK-1s(w)  …  ｂK-3s(w))
：                ：【００３４】
ｉに１を加えて（ステップＳ１０５）、１を加えた後のｉがｓ(ｗ)−ｓ(ｗ＋１)−１を越えたか否かを判定する（ステップＳ１０６）。その結果、ｉがｓ(ｗ)−ｓ(ｗ＋１)−１以下である場合（ステップＳ１０５：Ｎｏ）には、ステップＳ１０３に戻る。【００３５】
一方、ｉがｓ(ｗ)−ｓ(ｗ＋１)−１を越えている場合（ステップＳ１０５：Ｙｅｓ）は、ｗに１を加える（ステップＳ１０７）。ｗに１を加えた後、ｗがｗmaxを越えたか否かを判定し（ステップＳ１０８）、ｗがｗmax以下である場合（ステップＳ１０８：Ｎｏ）にはステップＳ１０２に戻る。またｗがｗmaxを越えた場合（ステップＳ１０８：Ｙｅｓ）は処理を終了する。【００３６】
送信部１４は、符号化部１２によって符号化された符号語ベクトルをネットワーク３に送出する。これによって符号化側の動作が完了する。【００３７】
［復号側の動作説明］
復号装置４の受信部２１がネットワーク３から符号語ベクトルを受信すると、復号部２２は、受信パケット系列２４の消失訂正符号を復号することで復号済みパケット系列２５を生成する。受信部２１が受信に成功した符号語ベクトルの要素（チェックノード）の個数を（１＋ε）Ｋ個とし、符号語ベクトルをｃ’∈Ｆ2(1+τ)Kとする。【００３８】
復号部２２は、索引算出テーブル記憶部２３によって記憶される索引算出テーブルを参照しながら情報系列の要素の復元を行う。そこで、索引算出テーブルの構成について説明する。【００３９】
例えば、数１の行列（１）を用いて検査行列Ｈが構成されている場合、行重み１の開始行をｓ１＝１、行重み２の開始行をｓ２、行重み３の開始行をｓ３、…とすると、非負の整数ｉ，ａ，ｂ，ｃに対して
行重み１の部分行列の多項式表現は、ｙs1+i＝ｙ1+i＝ｇi
行重み２の部分行列の多項式表現は、ｙs2+i＝ｇi＋ｇ(a+i)
行重み３の部分行列の多項式表現は、ｙs3+i＝ｇi＋ｇ(b+i)＋ｇ(c+i)
となる。ここでｇiは情報系列のｉ番目の要素に対応する。【００４０】
ここでｂ＝２ａとすると、行重み３の部分行列ｙs3+iは、ｙs3+i＝ｇi＋ｇ(2a+i)＋ｇ(c+i)となる。そこで、ｙs2+i＋ｙs3+a+i＋ｙs3+iを求めると、
ｙs2+i＋ｙs3+a+i＋ｙs3+i
＝ｇi＋ｇ(a+i)＋ｇ(a+i)＋ｇ(2a+i)＋ｇi＋ｇ(2a+i)＋ｇ(c+i)
＝ｇ(c+i)
となって、ｇ(c+i)を導出できる。このことは｛ｓ２＋ｉ，ｓ３＋ａ＋ｉ，ｓ３＋ｉ｝，０≦ｉを満たす行番号のパケットの受信が成功していれば、ｇ(c+i)を求めることができることを意味している。索引算出テーブルは、行番号に対応する多項式の加算のみで、部分的に欠落した他の行番号の多項式が存在していても特定の情報系列の要素を復元できる行番号の関係を保持するテーブルである。【００４１】
このようなテーブルを設けることによって、欠落した行番号が存在していても、簡易に特定の情報系列の要素を復元することが可能となる。また、各多項式は巡回構造であるから巡回構造の周期をｑとすれば、およそ周期ｑ個分を同一の算法で計算できる。【００４２】
続いて復号部２２の復号処理について説明する。図４は復号部２２の復号処理のフローチャートである。復号部２２では、２元の連立一次方程式を解く要領で以下の手順により、復号を行う。但しｉ≠ｊ≠ｋ≠ｌとする。まずｃ’の各要素に対応する行番号に対し、１つまたは複数の算出索引テーブルと一致する組み合わせを検索する（ステップＳ２０１）。【００４３】
続いて、算出索引テーブルと一致した行番号（チェックノードの番号に一致）に対応する多項式の組み合わせを用いて、その各多項式を加算して重み１のチェックノードｃiを算出し、そのｃiに接続する変数ノードｘjの値をｘj＝ｃiから定める（ステップＳ２０２）。既知となった変数ノード（その個数をｂとする）に接続する重みｂ＋１のチェックノードｃkに式（４）のように加算し、未知の変数ノードxlを求める（ステップＳ２０３）。
【数２】
0004917023.tif 000003
なお、Σｘjはチェックノードｃkに接続する既知となったｂ個の変数ノードすべての加算値である。【００４４】
次に、既知となったｂ個の変数ノードに接続する重みｂ＋１のチェックノードが存在していたら（ステップＳ２０４：Ｙｅｓ）、ステップＳ２０３に戻る。それ以外の場合は終了する。【００４５】
このように、索引算出テーブルを設けたことによって、極めて簡易に特定の情報系列の要素の復元を行うことができる。【００４６】
以上がこの発明の実施の形態による符号化処理と復号処理の説明であるが、次にこの発明の実施の形態で用いられる検査行列の構成方法について説明する。まず最初に検査行列が構成条件１として満たす重み分布の導出方法について説明し、次に構成条件２の検査行列Ｈの列方向において値が１となる成分を、なるべく行列内において均一に分散させるための構成方法について説明する。【００４７】
［重み分布Ｄの導出方法］
重み分布Ｄは復号法に依存する。この発明の実施の形態では、後述するようにガウス消去法をベースにした復号法である。ここで再構成した検査行列に１のない列が存在するために、再構成した検査行列のランクがＫ未満になってしまう場合は、ガウス消去法では復号できないこととなる。また、ガウス消去法では検査行列の持つ１の数が多いほど、演算時間が大きくなる。【００４８】
このような問題を回避するためには、すべての列に所定の確率以上で１が存在する必要がある。そこで、少ない総重みで達成するためには列重みの平均値が低くかつ列に存在する“１”の数が“０”である確率を低くすることが望ましいことになる。【００４９】
再構成された検査行列に１のない列が存在する確率を小さくするために、従来のようにランダムに構成する方法に替えて、検査行列のすべての列重みが十分な大きさになるよう規制する。符号語ベクトルの長さがＮ、情報ベクトルの長さがＫであり、列重みがλである検査行列からランダムにＮ’（Ｎ’はＮ以下の自然数）行抽出した行列の重みｘの列が存在する確率ｇ(ｘ)は、式（５）によって算出される。
【数３】
0004917023.tif 000004
【００５０】
各列重みλに対して、再構成した検査行列に１のない列が存在する確率を式（５）から算出し、算出した確率とλとの関係を図示すると、図５のようになる。なお、ここではＮ＝１５０、Ｎ'＝１００としている。この図から、列重みを４以上とすれば、１のない列が存在する確率を１％程度以下に抑えられることがわかる。【００５１】
列重みが４の検査行列（Ｎ×Ｎ’）からＮ’行抽出して再構成した検査行列の列重みの分布を図６に示す。ここでは、Ｎ＝１５０、Ｎ’＝１００としている。また同図では、比較のために同じ列重みλ＝４を持ち、ＬＴ符号のようにランダムに検査行列を構成した場合に、Ｎ’行抽出して再構成した検査行列の列重み分布についても示している。ランダムに符号を構成した場合の列重み分布は、平均λ×Ｎ’／Ｎのポアソン分布となり、重みｘの列が存在する確率ｆ(ｘ)は式（６）から算出される。
【数４】
0004917023.tif 000005
【００５２】
図６から同じ列重みであってもランダムに構成した場合と列重みを確定させた場合とでは、後者の方が１のない列が存在する確率が小さくなり、ガウス消去法で復号するのに有利である。【００５３】
重みの存在確率が最も高くなる重みをｘmaxとすると、列重みを固定した場合の特徴は重み０から重みｘmaxまでは存在確率の上昇率が高いが、ｘmax以降は存在確率の下降率が低いことである。このためランダムに構成するよりも、ｘmaxを低く抑え重み０の存在確率を小さくできる。０の存在確率を小さくできるという性質によりケース１の問題を回避することにつながる。ｘmaxを低く抑えこむことができるという性質により、計算量の低減に効果がある。列重みを小さくすることができれば、ガウス消去法の際に行同士の加算数を少なくすることにつながるからである。【００５４】
ガウス消去法の演算において、後に演算される列ほど列重みが大きい方が良い。同じ行に１を持つ列同士の加算によって、１の存在する列でも１が対角成分とならずガウス消去法を失敗することがあるからである。そこで、ガウス消去法を行う方向と逆から列重みを大きくとるような列重みが不均一な構成とする。【００５５】
このように、列重みを不均一に固定した確率分布に従って重み分布を導出すると有利である。そこで、この発明の実施の形態による検査行列では、上記分布に従って重み分布Ｄを導出し、その重み分布Ｄに基づいて検査行列を構成する。次に重み分布の導出方法を具体的に説明する。【００５６】
まず、列重み０の存在確率の上限確率Ｐ０を設定する。続いて検査行列の列重みの総和の上限を決める。ランダムに構成した場合の総和を上限として、列重みが０となる確率をＰ０とするためにはｆ(０)＝ｅ-λ＝Ｐ０であるから、列重みの総和の上限Ｎ’×λ＝−Ｎ’×ｌｏｇＰ０を算出する。列重み０の存在確率がＰ０以下となるように列重みの最小値を選び、総和が−Ｎ’×ｌｏｇＰ０以下となるように列重みに偏りを持たせて構成する。列重みはガウス消去法を行う方向と逆から大きくなるように線形に大きくしていく。【００５７】
なお、上述の手順は列重みの存在確率の上限Ｐ０のみを入力すれば、計算機で各重みの行数を算出することが可能である。また、システムの設計時にこの方法に基づいて重み分布を算出しておき、算出した重み分布に従うように検査行列を構成してもよい。【００５８】
なお、ここで説明した手順では、不均一な列重みを線形に算出したが、２次曲線など非線形な式で算出して検査行列を構成しても構わない。【００５９】
［検査行列の構成方法］
次に、検査行列Ｈの構成方法について説明する。検査行列Ｈの構成条件１については、重み１の行を重み分布Ｄに従って最初に配置し、次に重み２の行を重み分布Ｄに従って配置し、…、というように、行の重みと同数の巡回置換行列を配置した行を重み分布Ｄを満たす行数分連続させ、かつ行の重みを漸次的に増加又は減少させるようにすることで、構成条件１を満たすことができる。【００６０】
重みを漸次的に増加又は減少させるように検査行列を構成することで、多項式あるいは検査行列の一部の成分のみを記憶しておけばよく、また記憶されていない成分を符号化時に展開する場合にも演算量が増大することがほとんどないことはすでに述べた通りである。【００６１】
次に構成条件２を満たす多項式ｙn（検査行列Ｈのｎ行目の行を表す多項式）は次のように設定される。情報長（検査行列Ｈの総次数）をＫ、検査行列Ｈにおいて重み分布Ｄを満たす行重みｗの行数をＲ(ｗ)、検査行列Ｈにおいて、行重みｗとなる部分行列の開始行をｓ(ｗ)とすると、行重みｗとなる部分行列の行位置はｓ(ｗ)＋ｉ，ｉ＝０，１，…，Ｒ(ｗ)−１となる。そうすると多項式はｙs(w)+iとなる。【００６２】
まずに多項式ｙiに次数ｉの項と次数Ｋ−Ｒ(ｗ)＋１＋ｉの項を設ける。すなわち多項式ｙs(w)+iiは
ｙs(w)+i＝ｇi＋…＋ｇ(K-R(w)+1+i)，ｉ＝０，１，…，Ｒ(ｗ)−１
となる。ここでは、次数ｉを最小次数、次数Ｋ−Ｒ（ｗ）＋１＋ｉを最大次数と呼ぶ。【００６３】
さらにｗが２を越える場合は、ｗ−２個の次数の項（この項の次数を中間次数という）を最小次数と最大次数の間の次数から均等な間隔となるように選択し、選択した次数の項をさらに設ける。例えば、行重みｗ＝３で情報長Ｋ＝１００，Ｒ（３）＝５（行重み３の行が５行存在するということ）の場合、最小次数はｉ、最大次数はＫ−Ｒ（ｗ）＋１＋ｉ＝１００−５＋１＋ｉ＝９６＋ｉとなる。そこで、ｗ−２＝３−２＝１となって、中間次数の項としてｉと９６＋ｉの中間から１つの項４８＋ｉが選択される。したがって、ｗ＝３の場合の多項式ｙs(3)+iは
ｙs(3)+i＝ｇi＋…＋ｇ47+i＝ｇi＋ｇ48+i＋ｇ96+i，ｉ＝０，１，…，４
とする。【００６４】
こうすることで、検査行列Ｈの１の分布ができるだけ偏らない分布とすることが可能となる。【００６５】
以上のように、この発明の実施の形態の符号化装置によれば、低密度パリティ検査符号を生成する際、所定の重み分布を満たす低密度パリティ検査行列として、重みと同数の巡回置換行列を配置した行を前記所定の重み分布を満たす行数分連続させ、かつ行の重みを漸次的に増加乃至減少させるように構成した前記低密度パリティ検査行列を用いるようにしたので、乱数系列を用いる従来の方法に比べて性能が向上するという効果を奏する。
【産業上の利用可能性】
【００６６】
この発明は、消失訂正誤り符号を用いる通信システムや信号伝送を行う機器等に幅広く適用することが可能である。
【図１】
0004917023.tif 000006
【図２】
0004917023.tif 000007
【図３】
0004917023.tif 000008
【図４】
0004917023.tif 000009
【図５】
0004917023.tif 000010
【図６】
0004917023.tif 000011