無線或いは有線における映像、音声、データなどのデジタル伝送において、安定した伝送を実現することを目的として、現在誤り訂正符号が広く用いられている。誤り訂正符号では伝送したい情報ビットをK[bit]とすると、情報ビットに対して何らかの規則に従った冗長なビットを付加するか、又は情報ビットを畳みこむことにより誤り訂正符号化を行い、符号化されたビットN[bit](> K)を送信する。
伝送途中の様々な要因により送信したデータにビット誤りが生じても、受信側において規則にしたがった誤り訂正復号を行うことでビット誤りを訂正してデータを復元することが可能になる。誤り訂正符号の符号化率Rは、式(1)のように表わすことができる。
一般にRが小さいほど誤り訂正能力が高くなり安定した伝送が可能になるが、一方で情報ビットとは別の余分な冗長ビットが多くなるので、伝送効率は悪くなる。
このうち、複数の誤り訂正符号を組み合わせて誤り訂正を行うものは連接符号と呼ばれ放送、通信などの分野で広く用いられている。例えば、無線によって映像や音声を伝送する地上デジタル放送(例えば、非特許文献1参照)や、テレビ番組の中継などで用いられるFPU装置(例えば、非特許文献2参照)などでは、畳み込符号とリードソロモン符号とを組み合わせた連接符号を用いている。
連接符号では、送信側では、はじめに外符号によって情報ビット系列を符号化し、その後内符号によって外符号で符号化された符号語を符号化する。受信側では初めに内符号を復号し、その後残留するビット誤りを外符号復号によって訂正する。畳み込み符号とリードソロモン符号との連接では、一般に畳みこみ符号を内符号とし、リードソロモン符号を外符号とする。この組み合わせによる連接符号は特性が良く、ここ10年前後に実用化された多くの放送規格や通信規格に採用されてきた。
しかしながら、電波が激しく変動する移動伝送環境や受信電力が微弱な環境では生じたビット誤りを訂正しきれない場合があり、より誤り訂正能力の高い誤り訂正符号が求められている。より高い誤り訂正能力を得るためには、一般により多くの冗長ビットを付加して伝送すれば良いが、昨今の急速なIT技術の発展により、より高速にデータを伝送できるシステムが要求されており、出来るだけ少ない冗長ビットで高い誤り訂正能力を得るための誤り訂正符号が求められている。
低密度パリティ検査符号(Low−Density Parity−Check Code) (以下、LDPC符号と称する)は、かかる要求に応えるための有望な誤り訂正符号として近年注目されており、盛んに研究が行われている。LDPC符号は1960年代にGallagerによって提案され(例えば、非特許文献3参照)、その後1990年代以降にMackayらによって再発見された(例えば、非特許文献4参照)。
LDPC符号は後述するSum−Productアルゴリズムという確率伝搬を反復して行う復号アルゴリズムによって復号し、設計次第では、誤り訂正の理論的限界であるShannon限界に迫る特性が得られる。LDPC符号はこのような優れた誤り訂正能力に加え、復号演算の並列処理が可能なため、高速動作が要求される大容量伝送に適しており、2000年代に入り欧州の衛星放送規格であるDVB−S2(例えば、非特許文献5参照)や無線通信規格のIEEE802.16e(例えば、非特許文献6参照)などで採用されている。
LDPC符号は、図3の例に示すような検査行列Hにより定義される。検査行列Hは、符号長N[bit]、情報長K[bit]とすると、(n−k)行n列の行列となる。図3の例は、符号長N=8[bit]、 情報長K=4[bit]、符号化率R=0.5の例である。一般にLDPC符号はN = 数100〜数十万ビット程度の長い符号長において高い性能が得られるため、その程度のNで設計することが一般的であるが、ここでは、説明の理解を容易にするため、N=8において検査行列の例を示した。
Hは値0又は1で構成される行列であり、1の数は0の数に比べて非常に少ない低密度な行列であることを特徴としている。ただし、図3の例では、Hのサイズが小さいために1の割合が比較的多くなっている。また、検査行列中にどのように1を配置するかは特に明確な決まりがあるわけではなく、その設計指針として後述するような研究が行われているが、ここで示したのはあくまでN=8のLDPC符号の検査行列の一例であり、特に最適設計の符号というわけではない。
検査行列中に1を何個どのような位置に配置するかによってLDPC符号の性能が決まってくるため、LDPC符号の設計における非常に重要なパラメータとなる。検査行列中の各列の1の数を列重み、各行の1の数を行重みと呼ぶ。例えば、図3に示した検査行列例では、列重みは1列目から順に[2,2,2,2,2,1,2,1]、行重みは1行目から順に[4,2,3,5]となる。列重みおよび行重みが一定の検査行列で定義されるLDPC符号は一般にレギュラー符号、重みが不均一なものをイレギュラー符号と呼び、レギュラーかイレギュラーか、或いは検査行列中のどの位置に1を配置するかによって符号の性能が変わる。性能の良いLDPC符号の検査行列を設計するための指針としてRichardsonらによってDensity Evolutionなどが提案されているが、これらは本発明の主な要旨とは関連がないので詳細については省略する。
LDPC符号の符号化はHに基づいて情報ビットに対して冗長ビットを計算することによって行われる。例えば、図3のN=8, K=4の例において、情報ビットをi(=[i1,i2,i3,i4] )、冗長ビットをp(=[p1,p2,p3,p4] )、とし、符号語をc ( = [i1,i2,i3,i4, p1,p2,p3,p4] )と表すとすると符号化の条件となるのは、式(2)となる。
ここで、Tは転置行列を表す。
任意の検査行列HからLDPC符号の符号化を行うためには、検査行列Hから式(3)を満たす生成行列Gを計算し、式(4)によって符号語cを計算する。
LDPC符号は、符号長nがある程度(数百〜数十万)大きくないと、優れた特性が得られないことを先に述べた。検査行列Hのサイズは符号長nに比例するため、符号長が数万のLDPC符号の検査行列Hは、非常に大きなサイズの行列となる。従って、符号化に必要な生成行列Gを式(3)の方程式にもとづいて計算する際の演算量は非常に大きくなる。或いはGを予め計算してメモリさせておき符号化を行う場合においても非常に大きなメモリが必要となる。このように符号化における演算量または所要メモリ量がLDPC符号の課題の一つとなっている。
これを解決する一つの手段として、LDGM(Low−Density Generator Matrix)構造を導入した検査行列によるLDPC符号が提案されている(例えば、非特許文献7,8参照)。LDGM構造とは、検査行列Hを式(5)に示すように情報部HIとHPに分割することで、検査行列から生成行列Gを求めずに直接符号化を可能にすることを特徴としている。
情報部HIは(N−K)行K列の行列であり、その要素は0又は1によって構成される。1の数は0に比べて非常に少なく、疎な行列であるというLDPC符号の特徴を逸脱しない範囲において、1はどのように配置しても構わないが、前述のように1を何個どのように配置するかによって符号の特性が変化する。
パリティ部HPは、図4に示すような(N−K)行(N−K)列の行列であり、1が階段状に対角線状に配置されていることを特徴とする。HPは右上三角が全て要素0で満たされる行列となっていることを特徴とする。対角線状に配置された1に加えて、HP行列の右下三角に、さらに階段状に1を配置するなどの構造もLDGM構造と呼ばれるがこれらに関しての詳細については後述する。
このようにLDGM構造を検査行列に持たせることにより、例えば、図4のように1が対角線状に1重にのみ配置された場合では、式(6)により1ビット目の冗長ビットから順に、冗長ビットp1〜p(N−K)を計算することが可能になる。これは、LDPC符号の符号化の条件となる式(2)の方程式を、N−K個の未知数1の方程式に分解して、それぞれの方程式を順に解いていく作業に等しい。このような手法により、生成行列Gを求めなくてもLDPC符号化が可能になることが、LDGM構造の最大の特長であり、類似する構造が、様々な標準規格のLDPC符号に採用されている。
ただし、ikはkビット目の情報ビット(値0又は1)、pmはmビット目の冗長ビット(値0又は1)、hmkは検査行列Hのm行k列の要素(値0又は1)を表す。
受信側にて行うLDPC符号の復号について説明する。LDPC符号の復号は各ビットの尤度情報(確からしさ)の交換を繰り返すことにより、符号語全体の尤度を向上させ、受信した際に含まれるビット誤りを訂正していく。この復号アルゴリズムはSum−Productアルゴリズムと呼ばれ、交換する尤度情報はビットの確からしさを対数比(Log Likelihood Ratio (以下LLRと表記)で表したものとなる。尚、Sum−Productアルゴリズムでは、尤度をLLRではなく、真値の確率値として取り扱ってもよく、等価な結果が得られるが、若干数式の表現などが異なってくるため、以降では尤度をLLRにて表現して説明を行う。
Sum−ProductアルゴリズムのLLRの交換は、検査行列にもとづいて結線されたタナーグラフ上で行われる。例として図3で示した検査行列のタナーグラフを図5に示す。タナーグラフはN(=8)個のビットノード(図5条段の○)とN−K(=4)個
される。ビットノードは検査行列Hの各列に対応し、チェックノードは検査行列Hの格行に対応しており、例えば検査行列Hの1列目は1行目と3行目が1となっているので、1番目(左側から順に1,2,・・8番とする)のビットノードは1番目と3番目のチェックノードに結線されている。検査行列Hの8列目は4行目にのみ1が配置されているので、8番目のビットノードは4番目のチェックノードに結線されている。復号の過程においては、図の矢印で示したように、一番目のビットノードが持つLLRは、1番目と3番目のチェックノードを介して他のビットノードへと送信される。他のビットノードが持つLLRも同様にチェックノードを介して伝搬していく。このような過程を繰り返し行うことによって、LLRが更新されていき、ビット誤りが訂正されていく。
以上LDPC符号のSum−Product復号の概要についてタナーグラフを用いて説明したが、以下では、より詳細に数式を用いてSum−Productアルゴリズムを解説する(例えば、非特許文献9参照)。
受信側の復号過程において、まず初期LLR値を各ビットの受信電力などに基づいて求める。たとえば、BPSK変調の場合の初期LLRは式(7)で表される。
ここでλnはnビット目のLLR、ynはnビット目の受信電力、σ2は雑音の分散であり、nは1〜Nの整数である。
続いて、以下のステップによりLLRを交換することを繰り返すことによりLLRを更新していく。
<ステップ1>初期化
Hmn = 1を満たす全ての組(m,n)に対してβmn = 0とする。また反復回数のカウンタを1とする。ここで、mは1〜N−Kの整数である。
<ステップ2>行処理
m = 1,2,・・・M(=N−K)の順にHmn=1を満たす全ての組(m,n)に対して式(8)の更新式を利用してαmnを更新する。
関数f(x)は式(10)とする。
また、式(10)のように定義する。
<ステップ3>行処理
n=1,2,・・・Nの順にHmn=1を満たす全ての組(m,n)に対して、式(12)を利用してβmnを更新する。
また、式(13)のように定義する。
<ステップ5>パリティ検査
一時推定語が符号語になっているかを検査する。即ち、ステップ4で計算した一時推定語cが式(15)を満たしていればcを出力して、アルゴリズムを終了する。
<ステップ6>反復回数のカウント
反復回数が設定した最大反復回数未満であれば、ステップ2に戻る。最大反復回数になった場合はcを出力してアルゴリズムを終了する。
最大反復回数は多いほど誤り訂正性能がよくなる。論文などで特に繰り返し復号回数に焦点を当てないシミュレーションなどでは数10回〜数100回程度としている論文が多いが、当然演算に時間がかかるため、実システムにおいては、システムの速度要求などによって決めることとなる。
以上数式によってLDPC符号のSum−Product復号アルゴリズムについて記した。このようにSum−Productアルゴリズムは、LLRの低いビットが他のLLRの高いビットからの情報を受け取り情報を更新していくことによりLLRが改善していくアルゴリズムである。
これはタナーグラフ上でみると、自身が送信した情報は自分の情報を更新する際に使わないことを意味する。自身が送信した情報を自身の情報更新に使ってしまうと、LLRの低いビットはループ発振的にLLRが悪くなっていってしまうためである。
従って、Sum−Productアルゴリズムでは、検査行列の列重みが1のビットでは、ビットノードからチェックノードに送られた情報は更新されないこととなる。このため、パリティ部HPが全て列重み1となる図4のようなHPの構造をもつLDPC符号ではパリティ部のLLRが伝搬しにくいために、全ての列重みが2以上の検査行列を持つLDPC符号に比べて反復復号を行ってもLLRが更新されにくい。そのためLDGM構造のLDPC符号は、誤り率特性が悪くなるという特徴がある。
図6に一般的なLDPC符号の誤り率特性を示す。横軸は受信信号のSN比、縦軸はビット誤り率を表す。一般にLDPC符号は、SN比が低くビット誤り率が高い状態(図6左側)から、SN比が高くなるにつれ、あるSN比を境に急激にビット誤り率が低くなる「ウォーターフォール領域」とこれよりも傾きがゆるくなり、SN比が高くなってもあまり誤り率特性が下がらないか、又はほとんど横ばいに推移する「エラーフロア領域」に分けられる。
エラーフロア領域ではSN比が相当に高くなり、雑音が少ない状況なってもある確率でビット誤りが発生してしまう。ウォーターフォール領域が低いSN比にあり、そのままSN比が高くなるにつれて、ビット誤り率が極力低くなり、エラーフロア領域のビット誤り率が極力低くなることが誤り訂正符号として望ましい特性であるが、一般にLDPC符号では、ウォーターフォール領域のSN比が低いほどエラーフロア領域のビット誤り率が高くなる傾向がある。
エラーフロア領域でとの程度のビット誤り率を許容するかは、システムの要求によるが、例えば、高いビットレートの映像を伝送する放送などの分野では10−12台のビット誤り率が要求される。これは1×1012ビットを伝送して、発生するビット誤りが1ビット以内という非常に厳しい条件である。データ通信などで誤ったビットを再度送信することが可能なシステムでは、要求されるエラーフロアはそれよりも高い場合が多い。
図4で示した1重階段のLDGM構造をもつLDPC符号は、前段落で述べた理由により、LLRの更新が遅いために、比較的高いSN比になっても尤度の高いLLR情報が伝搬しにくく、このため、エラーフロア領域のビット誤り率が高くなる傾向がある。ただし、SN比が低い状況で尤度の低いLLRが伝搬しにくいためにウォーターフォール領域のSN比も低くなる傾向がある。
そのような点を改善するために、図7のようにHPの階段構造を2重にして一番右の一列以外は列重みが2となるようなLDGM構造が提案されている(例えば、非特許文献7参照)。この構造における符号化方法の詳細については、非特許文献5,7などに記載のため省略するが、符号化の手法としては式(2)と類似する式により、未知数1の方程式を順に解いていくという同様の手法により、生成行列Gを求めずに検査行列Hから直接符号化が可能であるという点で図4の1重階段構造のLDPC符号と同様であり、一般的なLDPC符号の欠点である符号化の煩雑さという欠点を回避している。
このような構造はDVB−S2で採用されている(例えば、非特許文献5参照)。このようにHPを2重階段状にすることで、1重階段の場合に比べてエラーフロアを低く抑えることが可能となる。しかしながら、この構造では列重みが1の列が1列残ってしまい、若干のエラーフロアが発生する。これをDVB−S2システムで求められるエラーフロアまで低減するために、DVB−S2では、LDPC符号を内符号とし、外符号にBCH符号を連接して、LDPC符号で訂正しきれなかったビットをBCH符号で訂正するという手法をとっている。
同様に比較的低いエラーフロアを達成する手段として、通信規格のIEEE802.16eで採用されているLDGM構造も提案されている(例えば、非特許文献6、特許文献1参照)。詳細については文献記載のため省略するが、この方法では、HP部の列重み1の列を完全になくし、列重み2及び3の列によってHP部を構成している。このようなHP部の構造を用いた場合、特許文献1の段落0011及び段落0100に記載のように、重み1の列を完全に排除できるため、HI部の設計が同一であるならば、1重階段や2重階段構造のHPを用いた場合よりもエラーフロアが低く抑えられると考えられる。
以上、LDGM構造をもつLDPC符号について説明をしてきた。尚、LDPC符号のエラーフロアを回避する手段として、前述のDVB−S2システムのようにLDPC符号にBCH符号を連接する連接符号があるが、LDPC符号とLDPC符号とを組み合わせた連接符号が提案されている(例えば、非特許文献8参照)。これは、内符号のLDPC符号で生じたビット誤りを外符号のLDPC符号によって訂正することによりエラーフロアを回避しつつ、低いSN比でのウォーターフォール領域を実現することにより、低SNの伝送環境においても誤りのない安定した伝送を実現できる。また、LDGM構造のLDPC符号を内符号及び外符号の双方に適用することにより、符号化が容易になるという利点がある。
特開2006−157926号公報
"地上デジタル放送の伝送方式",標準規格 ARIB STD−B31、社団法人 電波産業会
"テレビジョン番組素材伝送用可搬型OFDM方式デジタル無線伝送システム」 標準規格 ARIB STD−B33、 社団法人電波産業会
R. Gallager, "Low−density parity−check codes", IRE Trans. Information Theory, vol. IT−8, Jan. 1962,pp21−28.
D.J.C. Mackay, "Good error−correcting codes based on very sparse matrices", IEEE Trans. Inf. Theory, vol. 45, no. 3, Mar. 1999,pp. 399−431
ETSI EN 302 307 V1.1.1 (2005−03), European Standard (Telecommunications series), Digital Video Broadcasting
IEEE Std 802.16e−2005.
L. Ping, W.K. Leung, and N. Phamdo, "Low density parity check codes with semi−random parity check matrix", Electron. Lett., vol. 35, Jan, 1999,pp.38−39
Y. Kumano and T. Ohtsuki, "On construction of concatenated low−density generator matrix codes", IEEE PacRim 2007, Aug. 2007,pp. 442−445
低密度パリティ検査符号とその復号方法、和田山正著、株式会社トリケップス、2002
まず、本発明による実施例1のLDPC連接符号に適したLDGM構造の連接誤り訂正符号の符号化をそれぞれ説明する。
[実施例1]
まず、本発明による実施例1のLDPC符号は、既存のOFDM方式の送信装置及び受信装置に適用可能であり、その概略を説明する。
図1に、本発明による実施例1のLDPC符号を適用したOFDM方式の送信装置の概略図を示す。送信装置1は、データフレーム同期部2と、外符号符号化部3と、エネルギー拡散部4と、外インタリーブ部5と、内符号符号化部6と、内インタリーブ部7と、マッピング部8と、OFDMフレーム構成部9と、IFFT部10と、ガードインターバル付加部11と、直交変調部12とを備える。
データフレーム同期部2は、送信データを先頭に同期バイトを付加したトランスポートストリームパケットの形態でデータフレームを構成する。
外符号符号化部3は、受信側で伝送誤りを訂正可能にするために、本実施例のLDPC符号を用いてトランスポートストリームパケットを符号化する。
エネルギー拡散部4は、伝送信号のエネルギー集中を防止するために、所定の規則に従ったランダムデータを外符号符号化したデータに加えてエネルギー拡散を行う。
外インタリーブ部5は、LDPC連接符号を形成して、さらに誤り訂正効果を高める場合に、バイト単位でデータの並び替えを行う。
内符号符号化部6は、受信側で伝送誤りを訂正可能にするために、本実施例のLDPC符号を用いてトランスポートストリームパケットを符号化する。尚、内符号符号化部6に外符号符号化部3と同一の符号化処理を用いることができる、或いは又、BCH符号を用いてもよい。
内インタリーブ部7は、キャリア変調する前に、さらにデータの拡散を高める場合にビット単位でデータの並び替えを行う。
マッピング部8は、キャリアの位相と振幅で決まる信号点にマッピングして、BPSK,QPSKなどのキャリア変調を施す。この後、連続したデータ誤りの訂正を容易にするように、時間的に又は周波数的にデータを並び替える時間インタリーブ及び周波数インタリーブ処理を施すこともできる。
OFDMフレーム構成部9は、キャリア変調を施したデータに、キャリア方向(周波数軸)及びシンボル方向(時間軸)で振幅・位相が既知のパイロット信号(SP)を付加して、送信する全キャリアを1OFDMシンボルとして、所定数のOFDMシンボルのブロックでOFDMフレームを構成する。OFDMフレームには、伝送パラメータを含むTMCC信号と、付加情報のAC信号が付加される。
IFFT部10は、OFDMフレームに対応した1OFDMシンボル分の逆フリーェ変換を施し、OFDM信号を生成する。
ガードインターバル付加部11は、シンボル間干渉の影響を少なくするため、OFDM信号の時間上のサンプルデータの有効シンボルのデータを一部コピーして、有効シンボルの先頭に付加する。
直交変調部12は、ガードインターバルを付加したOFDM信号をD/A変換して連続信号を生成し、直交周波数変換を施してOFDM変調信号を生成し、受信装置で受信可能な態様で伝送する。
図2に、本発明による実施例1のLDPC符号を適用したOFDM方式の受信装置の概略図を示す。受信装置21は、チャンネル選択・AGC部22と、直交復調部23と、ガードインターバル除去部24と、OFDMフレームデコード・FFT・TMCC再生部25と、デマッピング・キャリア復調部26と、内デインタリーブ部27と、内符号復号部28と、外デインターリーブ部29と、エネルギー逆拡散部30と、外符号復号部31とを備える。
チャンネル選択・AGC部22は、受信したOFDM変調の伝送信号から選択されたチャンネルの信号を一定のレベルに利得制御する。
直交復調部23は、利得制御した受信信号を同期確立して直交復調する。
ガードインターバル除去部24は、ガードインターバルを除去してOFDMの有効シンボルを抽出する。
OFDMフレームデコード・FFT・TMCC再生部25は、フリーェ変換を施し、伝送信号の受信の同期を確立するとともに、OFDMフレームを再構成する。
デマッピング・キャリア復調部26は、キャリア復調を施してキャリアの位相と振幅で決まる信号点にデマッピングする。
内デインタリーブ部27は、キャリア復調に伴い、内インタリーブ部7によるビット単位のデータの並び替えを元に戻す。
内符号復号部28は、本実施例のLDPC符号を用いた内符号を復号する。
外デインターリーブ部29は、外インタリーブ部5によるバイト単位のデータの並び替えを元に戻す。
エネルギー逆拡散部30は、エネルギー拡散部4によるエネルギー拡散を元に戻す。
外符号復号部31は、本実施例のLDPC符号を用いた外符号を復号し、受信データを抽出する。
上記において、外符号符号化部3及び内符号符号化部6、並びに内符号復号部28及び外符号復号部31に、本発明の実施例1におけるLDPC符号を適用することができ、或いは又、単なる符号化器又は復号器として構成することもできる。
以下の説明では、本発明の実施例1におけるLDPC符号を連接符号の内符号として用いる場合について説明する。連接符号の外符号にはLDPC符号を含む任意の誤り訂正符号を使用することができるが、本実施例1においては外符号にもLDPC符号を使用した例において説明を行う。ただし、外符号にはLDPC符号以外の符号を用いても本発明を適用することが可能である。
はじめに本実施例において扱うLDPC連接符号のパラメータについて説明を行い、送信装置で行う符号化器及び受信装置で行う復号器の順に説明する。その後、内LDPC符号のパリティ部の設計技法について詳細に説明する。
内LDPC符号の符号長をNi、情報長をKiとし、外符号の符号長をNo、情報長をKo、符号化率Roと表記することとする。これらの値は、本発明の主旨に関わるものではなく、特に任意の値において本発明が適用できるが、本実施例では、以下の値において説明を行う。
このパラメータにおいては、実際の情報として有効なビットはKo = 3008 [bit]でありその他は誤り訂正のための冗長ビットとなる。従って連接符号トータルでの符号化率Rcは、式(18)のようになる。
送信側では伝送データをKo[bit]毎に区切り、外符号符号化を行い、No[bit]の外符号ブロックを出力する。次に出力されたNo[bit]の外符号ブロックに対して内符号符号化を行い、Ni[bit]の内符号ブロックを出力して、送信する。受信側では、送信側の符号化手順と逆に、はじめに内符号を復号し、その後外符号を復号する。
尚、外符号符号化および内符号符号化に前後して特定の規則に従ったビット並替えを行うインタリーブや、ビットの反転を行うエネルギー拡散、その他のさまざまな処理をおこない、受信側でもこれに即したデインタリーブ、エネルギー逆拡散などを行うなど、個々のシステム特有の処理を行う場合があるが、これらは本発明の原理に関わるものではないためここでは省略する。
以下、実施例1の主旨である内LDPC符号のLDGM部の設計手法について詳細に解説する。
内LDPC符号には、LDGM構造をもつLDPC符号を用いる。LDGM構造をもつLDPC符号の検査行列Hは先の式(5)で示したように、情報部HIとパリティ部HPに分割することができる。HIは本実施例の符号長の場合、3264行×3264列の行列となり、その要素は多くの値0と極少量の値1で構成される。HIの設計はLDGM構造を用いたLDPC符号の性能に大きく関わるため重要なパラメータとなるが、本発明の適用にあたっては関連がないため設計技法等については省略する。
パリティ部HPは、本実施例の符号長、符号化率の場合、3264行×3264列の行列となる。HPの構造としては、従来技術として説明したように、図4のような一重階段上の構造(以下、HP1と表記する)や特許文献1に記載のように2重階段構造から列重み1をなくした構造(以下HP2と表記する)などがある。
実施例1の符号化器は、所定のデータをLDPC符号の誤り訂正符号で符号化する符号化器として構成でき、符号長をNi、情報長をKiとし、符号長Niに比例するLDPC誤り訂正符号の検査行列が、(Ni−Ki)行Ki列の行列の情報部と、(Ni−Ki)行(Ni−Ki)列の行列のパリティ部で構成される場合に、パリティ部に対して、dを設定する手段と、(1行、1列)から順に、(Ni−Ki行、Ni−Ki列)目まで階段状に1を配置する手段と、(d行、1列)から順に(N i −K i 行、N i −K i −d+1列)目まで階段状に1を配置する手段と、1を配置していない部分に、全て値0を配置する手段とを備える。このdを設定する手段は、検査行列のパリティ部の2個以上の列が列重み1となる、2<d<N i −K i を満たす範囲内で、システム全体として所望されるビット誤り率に応じてdを調整する。実施例1の復号器は、実施例1の符号化器で符号化したデータをSum−Productアルゴリズムで復号する。
本発明のHPを図8に示す。HPは(1行、1列)から順に、(3264行、3264列)目まで階段状に1を配置する段階と、(d行,1列)から順に(3264行,3264−d+1列)まで階段状に1を配置する段階と1を配置していない部分の要素はすべて値0とする段階により構成される。ただしdは式(19)を満たす正の整数とする。d=2の場合は図7で示すような構造となるが、ここでは、dは3以上の整数であり、図7とは異なる構造となる。
ここで、M=Ni−Ki = 3264である。
以下、本構造によるHPをHP3と表記する。HP3の符号化はHP1やHP2とほぼ同様であるが、以下の式(20)、式(21)にて行うことができ、生成行列Gを求めずに検査行列Hから直接符号化が可能であるというLDGM構造の利点を損ねることはなく、容易に符号化が可能である。
HP3構造では、列重み1の列がd−1列、列重み2の列が3264−d+1列となる。従って列重み1の列の数がHP1やHP2に比べて多くなる。このため、従来技術で述べたように、そのビット誤り率特性は、エラーフロア領域のビット誤り率が高くなる。ただし、同時にウォーターフォール領域のSN比も低くなる。具体的なのエラーフロア領域のビット誤り率の値や、ウォーターフォール領域のSN比の値はHI部の設計によって変化するが、HI部の設計が同じであれば、HP3を用いた場合のビット誤り率特性は前述したような傾向となる。従って、HI部を最適に設計した場合においては、HP部にはHP3を用いるとウォーターフォール領域のSN比を低く下げることが可能となる。
以下では本発明の効果を実証するために行った計算機シミュレーション結果を示す。
本発明では、情報部HIの構成方法は値1の数が値0に比べてきわめて少量であるというLDPC符号の条件を満たしていれば任意であり、乱数などによって設定しても良いし、特に何らかの最適化手法に基づいて構成してもよいが、本シミュレーションでは列重みが全て4、行重みが全て4の3264行×3264列の行列を乱数によって作成し、これをHI部とした。
パリティ部にHP1、HP2にHP3を用いた場合のLDPC符号のビット誤り率特性を図9に示す。HP3ではdの値を273、545、817、1089と変化させた場合について計算を行った。シミュレーションでは送信ビット列をBPSK変調したシンボルに対して、AWGN(加法性白色ガウス雑音)を加え、Sum−ProductアルゴリズムによってLDPC符号を復号している。符号長N=6528[bit]、情報長K=3264[bit]である。Sum−Productアルゴリズムの最大繰り返し回数は50回とした。尚、Sum−ProductアルゴリズムにはMini−Sum法その他数々の派生復号方法があるが、本シミュレーションの相対的なグラフ傾向に影響を与えるものではない。最大繰り返し復号回数についても同様である。
HP1はC/N=−4〜−2.4[dB]程度の雑音が多い場合において、一番低いビット誤り率特性を示しているが、一方で、C/Nが大きくなっても他に比べてビット誤り率が低くならず、C/N=−0.5[dB]においてもビット誤り率が1×10−3台に留まる。
HP2は、C/N=−2.0[dB]程度までは、最もビット誤り率が高くなっているが、C/Nが大きくなるにつれ急激にビット誤り率が低下し、C/N=−1.4[dB]では最もビット誤り率が低くなり、エラーフロアも、本シミュレーションの計算回数の範囲においては発生していない。
HP3はdの値によってビット誤り率特性が大きく変わっている。HP3はdの値が大きいほど列重み1の数が多くなる。このため、HP部の全ての列重み1が1であるHP1に近い構造となっていく。例えば、d=1089の場合、列重み1の数がHP部全体の1/3となる1088個となり、C/N=−2.4〜−2.0[dB]では最も低いビット誤り率となるが、C/N=−0.5[dB]ではビット誤り率=1×10−4程度となり、HP1に次いでエラーフロアが高くなっている。d=273の場合、列重み1の数は272個となり、HP部全体の1/12となる。この場合はHP2の特性に近くなり、特にC/N=−1.6〜−1.4[dB]の範囲では最もビット誤り率が低くなっている。ただし、それ以上のC/Nではグラフの傾きが緩やかになり、ビット誤り率1×10−7〜10−8の範囲でエラーフロアとなっている。
以上のように、HP3では列重み1の数を調整することにより、尤度の更新を調整することで、エラーフロア領域が高くなることと引き換えにウォーターフォール領域を低くすることが可能であることを前述の尤度伝搬の理論背景に加えて、シミュレーション結果によっても示した。
図9のLDPC符号を単体であるシステムに用いる場合、そのシステムで求められるビット誤り率が3×10−2程度であれば、HP1が最も低いC/Nで所望のビット誤り率を達成する良い符号ということになり、極力低いエラーフロアが求められる場合にはHP2がもっとも適した符号ということができる。しかし、これらを連接符号の内符号として用いる場合には、異なる観点から符号設計を行う必要がある。
連接符号においては内符号で誤り訂正しきれなかったビットを外符号によって訂正することが可能であるため、内符号において多少のエラーフロアが発生しても、これを外符号によって訂正することで、システム全体として必要とされるビット誤り率を達成することが可能となる。したがって、外符号で誤り訂正できる範囲内のエラーフロアであればウォーターフォール領域が低いほうが、連接符号全体としては、より低いC/Nでより所望のビット誤り率を達成することが可能になる。
これを示すために、外符号に式(17)に示した符号長No、情報長Ko、符号化率RoのLDPC符号を用い、内符号に図9でシミュレーションしたLDPC符号を用いたLDPC連接符号のシミュレーションを行った。シミュレーション結果を図10に示す。
外符号には、乱数によって作成したLDPC符号を用いた。外符号の構造や性能の詳細については本発明の主旨に関わるものではないので省略する。
シミュレーションでは送信ビット列をBPSK変調したシンボルに対して、AWGN(加法性白色ガウス雑音)を加え、Sum−ProductアルゴリズムによってLDPC符号を復号している。復号方法は内符号、外符号ともSum−Productアルゴリズムを用い、最大繰り返し復号回数は内符号、外符号それぞれ50回とした。
HP1は、C/N=−4〜−2.5[dB]程度の範囲では最も低いビット誤り率となったが、−2.5[dB]以上のC/NではHP1、HP3のほうがビット誤り率が低くなる。HP1のC/N=−2.5[dB]におけるビット誤り率は、3×10−2程度であり、伝送システム全体として所望されるビット誤り率がその程度であれば、最も低いC/Nで所望のビット誤り率を達成する符号であるといえる。ただし、多くの実用システムにおいて求められるビット誤り率はこれより低いものである場合が多く、そのようなシステムではHP1、HP3のほうが有利である。
HP2は、C/N=−4〜−2.0[dB]程度までは最もビット誤り率が高くなっている。これは、図12で示したように内符号のウォーターフォール領域となるC/Nが他に比べて大きいため、連接符号のウォーターフォール領域のC/Nも大きくなるためである。
HP3は、所望されるビット誤り率が10−3台以下の場合、HP1、HP2に比べてより低いC/Nでより低いビット誤り率を達成している。これは本発明により内符号のウォーターフォール領域が低く抑えられているためである。そのトレードオフとして、HP3を用いたLDPC符号はHP2に比べてエラーフロアが高くなるが、このシミュレーションで用いた外符号では内符号で残留したビット誤りを外符号によって訂正することにより、連接符号全体としては低いビット誤り率を達成している。
例えば、システム全体として所望されるビット誤り率が、1×10−6の場合はHP3(d=1089)が最も低いC/Nにてこのビット誤り率を達成するため、内符号には、HP3(d=1089)を用いるのがもっとも有利である。また、所望されるビット誤り率が1×10−7の場合は、わずかながらHP3(d=817)のほうが有利である。
以上のように、検査行列にLDGM構造をもつ内LDPC符号のパリティ部HPを本発明によるHP3構造とし、さらに、HP3構造におけるdの値を外符号の性能とシステムで所望されるビット誤り率に応じて調整することにより、既存のLDGM構造によるLDPC符号を連接符号の内符号に用いる場合よりも有利になる。
本発明による送信装置は上記技法により設計した連接誤り訂正符号に基づき、情報ビットに対して外符号符号化を行ったのちに、内符号符号化を行い、符号化されたビット列をそのシステムの然るべき手順にもとづいて変調などを行い送信する。
本発明による受信装置は、前段落にて示した方法により送信された信号を受信し、そのシステムの然るべき手順に基づいて復調を行ったのちに、内符号の復号化を行い、そののちに外符号の復号化を行う。
次に、本発明による実施例2のLDPC連接符号に適したLDGM構造の連接誤り訂正符号の符号化をそれぞれ説明する。
[実施例2]
実施例1の図8において示したHP構造(HP3)は、図11のような構造としてもよく、複数の列重み1の列をもつという点で、実施例1の場合と同様である。従って、実施例1と同様に、外符号符号化部3及び内符号符号化部6、並びに内符号復号部28及び外符号復号部31に、本発明の実施例2におけるLDPC符号を適用することができ、或いは又、単なる符号化器又は復号器として構成することもできる。
実施例2の符号化器は、所定のデータをLDPC符号の誤り訂正符号で符号化する符号化器として構成でき、符号長をNi、情報長をKiとし、符号長Niに比例するLDPC誤り訂正符号の検査行列が、(Ni−Ki)行Ki列の行列の情報部と、(Ni−Ki)行(Ni−Ki)列の行列のパリティ部で構成され、前記パリティ部に対して、d 1 及びd2を設定する手段と、(1行、1列)から順に、(Ni−Ki行、Ni−Ki列)目まで階段状に1を配置する手段と、(d1行、1列)から順に、(d2行、d2−d1+1列)目まで階段状に1を配置する手段と、1を配置していない部分に、全て値0を配置する手段とを備える。このd 1 及びd 2 を設定する手段は、検査行列のパリティ部の2個以上の列が列重み1となる、2<d 1 <N i −K i −1、及び3<d 2 <N i −K i を満たす範囲内で、システム全体として所望されるビット誤り率に応じてd 1 及びd 2 を調整する。実施例2の復号器は、実施例2の符号化器で符号化したデータをSum−Productアルゴリズムで復号する。
HP部は(1行、1列)から順に、(272行、272列)目まで階段状に1を配置する段階と、(d1行,1列)から順に(d2行,d2−d1+1列)まで階段状に1を配置する段階と、1を配置していない部分の要素は全て値0とする段階により構成される。ただしd1,d2は式(22)を満たす正の整数とする。
実施例2による符号の符号化は式(25)、式(26)、式(27)のように行うことができ、実施例1の場合と同様に検査行列Hから直接符号化が可能である。
その他の部分に関しては全て実施例1に同様である。本構造によるHP部はd1とd2の値によって列重み1の数を設定するが、その目的は実施例1と同様に内符号のウォーターフォール領域を低減させることであり、設計指針は実施例1と同様である。
また、実施例1と同様にLDGM構造のLDPC符号の利点である検査行列Hから直接符号化が可能であるという点を逸脱しない。
次に、本発明による実施例3のLDPC連接符号に適したLDGM構造の連接誤り訂正符号の符号化を説明する。
[実施例3]
実施例1の図8において示したHP構造(HP3)は、図12のような構造としてもよい。従って、実施例1と同様に、外符号符号化部3及び内符号符号化部6、並びに内符号復号部28及び外符号復号部31に、本発明の実施例3におけるLDPC符号を適用することができ、或いは又、単なる符号化器又は復号器として構成することもできる。
実施例3の符号化器は、所定のデータをLDPC符号の誤り訂正符号で符号化する符号化器として構成でき、符号長をNi、情報長をKiとし、符号長Niに比例するLDPC誤り訂正符号の検査行列が、(Ni−Ki)行Ki列の行列の情報部と、(Ni−Ki)行(Ni−Ki)列の行列のパリティ部で構成され、前記パリティ部に対して、dを設定する手段と、(1行、1列)から順に、(Ni−Ki行、Ni−Ki列)目まで階段状に1を配置する手段と、(d行、1列)から順に、(N i −K i 行、N i −K i −d+1列)目まで階段状に1を配置する手段と、列重み1となる列以外の列に1個以上の1を配置して当該列を列重み2以上にする手段と、1を配置していない部分に、全て値0を配置する手段とを備える。このdを設定する手段は、検査行列のパリティ部の2個以上の列が列重み1となる、2<d<N i −K i を満たす範囲内で、システム全体として所望されるビット誤り率に応じてdを調整する。実施例3の復号器は、実施例3の符号化器で符号化したデータをSum−Productアルゴリズムで復号する。
HPの(1行、1列)から順に、(272行、272列)目まで階段状に1を配置する段階と、実施例1の手法により、所望の列重み1の列数を決定する段階と、決定した数の列重み1の列位置を決定する段階と、列重み1となる列以外の列に1個以上の1を配置して当該の列を列重み2以上とする段階と、1を配置していない部分の要素はすべて値0とする段階と、により構成される。
実施例1,2の場合と同様に、列重み1の数を増減することにより、内符号のエラーフロアのビット誤り率を、外符号の誤り訂正性能に応じて内符号に必要とされるビット誤り率の値以下に抑えたうえで、内符号のウォーターフォール領域をできるだけ低減することを目的とする。ただし、列重み1となる列以外の列の列重みを2以上の任意の値とし、内符号のウォーターフォール領域を下げることを目的としてこれらの列の列重みも調整する。
実施例3による符号の符号化は、式(28)のように行うことができ、実施例1,2の場合と同様に検査行列Hから直接符号化が可能であり、実施例1,2と同様にLDGM構造のLDPC符号の利点である検査行列Hから直接符号化が可能であるという点を逸脱しない。
次に、本発明による実施例4のLDPC連接符号に適したLDGM構造の連接誤り訂正符号の符号化を説明する。
[実施例4]
本発明によるLDPC符号を連接符号ではなく、単独で用いる場合についての実施例を説明する。従って、実施例1における内符号符号化部6及び内符号復号部28のみの誤り訂正符号のシステムに適用することができ、或いは又、単なる符号化器又は復号器として構成することもできる。具体的なdの値とその時の特性は符号長や情報部HI部によっても変わってくるが、このようにシステムに要求されるエラーフロアによって式(19)のdの値を設計することによりそのシステムに最も適したLDPC符号の設計が可能となる。
例えば、図9のLDPC符号をあるシステムで用いる場合、そのシステムに要求されるエラーフロアがビット誤り率1×10−2程度である場合、式(19)のdの値がd=1089とすることで、最も低いC/N比にて所望の伝送が実現できるため、もっとも適している。また、例えば、システムで要求されるエラーフロアがビット誤り率1×10−3程度である場合、d=817とするのがもっとも適している。同様に要求されるエラーフロアがビット誤り率1×10−6である場合、d=273がもっとも適している。
次に、本発明による実施例5のLDPC連接符号に適したLDGM構造の連接誤り訂正符号の符号化を説明する。
[実施例5]
本発明をブロックタイプのLDPC符号によって実施した場合の例を説明する。上述した全ての実施例に適用可能である。
ブロックタイプのLDPC符号の検査行列はz行×z列の小ブロックを複数個連結した大きな行列によって定義される。たとえば符号化率1/2の検査行列は図13及び図14のように表される。このような行列を検査行列の種行列と呼ぶこととする。図13は検査行列の情報部HIを、図14は、検査行列のパリティ部HPの具体的内容を表す。
情報部HI、HPは24×24個の小ブロックを連結した行列であり、図13及び図14の枠内の数字は各小ブロックの内容を表す。値が“−1”となっているブロックはz行×z列の要素が全て0の行列を表す。また、それ以外の値のブロックはz行×z列の単位行列をその値だけ右(或いは左でもよい)に巡回シフトした行列を表す。
例えば、値が0となっている小ブロックは、z行×z列の単位行列を表す。ブロックタイプのLDPC符号の特長としてzの値を可変とすることで容易に異なる符号長のLDPC符号を作成することが可能であり、また、種行列を変更することで異なる符号化率のLDPC符号が容易に作成可能である。例えば、z=136とすることにより、符号長6528、情報長3264ビット、符号化率1/2のLDPC符号ができる。また、図16のような種行列においてz=272とすれば、符号長13056、情報長9792、符号化率3/4のLDPC符号が作成できる。ブロックタイプのLDPC符号に関するより説明は、特許文献1などに詳しく、また本発明の主旨とは異なるため、詳細については省略する。
図13及び図14で定義されるLDPC符号においてz=272とすると、これは、符号長13056ビット、情報長6528ビット、符号化率1/2のLDPC符号となる。図14のようにパリティ部HPは一番右の小ブロック部分を除いた23列は重み2となっており、一番右の小ブロックのみ重み1となっている。従って検査行列の列重みは重み2の列が23×272=6256列、重み1の列が1×272=272列となっている。従って、このLDPC符号では、実施例1にて説明した式(19)のdの値は272である。
図13及び図14で定義されるLDPC符号でz=272とした場合の特性を計算機シミュレーションした結果を図15に示す。シミュレーションはBPSK変調におけるAWGN特性である。エラーフロア領域はビット誤り率10−7台で発生しており、システムに要求されるビット誤り率が、それ以上である場合は、実施例4で示したように、このLDPC符号を単体で用いることができる。システムに要求されるビット誤り率がそれ以下である場合には、このLDPC符号にさらに別の誤り訂正符号を連接することでエラーフロア領域をさらに低減して使用する。
以上のように、実施例1〜実施例5によれば、LDPC連接符号に適したLDGM構造の符号化を構築する符号化器及び復号器、並びに送信装置及び受信装置を提供することができる。このような符号化器及び復号器の各々を構成するコンピュータに、各処理を実行させるためのプログラムで実現することができる。このようなプログラムは、コンピュータ内のメモリに格納して、コンピュータ内のCPUにより実行させることで、符号化器及び復号器の各々を構成することができるほか、流通可能な記録媒体に格納することができ、或いは又、ネットワークを通じて流通させることができる。
上述の実施例については代表的な例として説明したが、本発明の趣旨及び範囲内で、実施例1〜実施例5を組み合わせて多くの変形及び置換することができることは当業者に明らかである。従って、本発明は、上述の実施例によって制限するものと解するべきではなく、特許請求の範囲によってのみ制限される。