以下、本発明の実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
実施の形態1では、(7,5)の畳み込み符号から、新しいLDPC−CCを設計する方法について詳しく説明する。
図1は、(7,5)の畳み込み符号の符号化器の構成を示す図である。図1に示す符号化器は、シフトレジスタ101、102と、排他的論理和回路103、104、105と、を有する。図1に示す符号化器は、入力xに対し、出力xとパリティpを出力する。この符号は組織符号である。
なお、本発明では、組織符号である畳み込み符号を用いることが重要となる。この点については、実施の形態2において詳しく説明する。
符号化率1/2、生成多項式G=[1 G
1(D)/G
0(D)]の畳み込み符号を例に考える。このとき、G
1はフィードフォワード多項式、G
0はフィードバック多項式をあらわす。情報系列(データ)の多項式表現をX(D)、パリティ系列の多項式表現をP(D)とするとパリティ検査多項式は、以下の式(1)のようにあらわされる。
図2に、(7,5)の畳み込み符号に関する情報を記載する。(7,5)畳み込み符号の生成行列はG=[1 (D
2+1)/(D
2+D+1)]とあらわされる。したがって、パリティ検査多項式は、以下の式(2)となる。
ここで、時点iにおけるデータをX
i、パリティをP
iとあらわし、送信系列W
i=(X
i,P
i)とあらわす。そして、送信ベクトルw=(X
1,P
1,X
2,P
2,・・・,X
i,P
i・・・)とあらわす。すると、式(2)から、検査行列Hは図2に示すようにあらわすことができる。このとき、以下の式(3)の関係式が成立する。
したがって、受信装置では、検査行列Hを用い、非特許文献8〜非特許文献10に示されているようなBP(Belief Propagation)復号、BP復号を近似したmin-sum復号、offset BP復号、Normalized BP復号、shuffled BP復号などを用いることで、復号を行うことができる。
ここで、図2の検査行列において、行番号=列番号の「1」より左下の部分(図2の201の左下の部分)を近似下三角行列と定義する。行番号=列番号の「1」より右上の部分を上台形行列と定義する。
次に、本発明におけるLDPC−CCの設計方法について詳しく説明する。
符号化器を簡単な構成で実現するために、本実施の形態では、図2に示した(7,5)の畳み込み符号のための検査行列Hの近似下三角行列に「1」を追加する手法をとる。
<符号化方法>
ここでは、一例として図2の検査行列に対し、追加する「1」は、データ、パリティそれぞれに1つとするものとする。図2の検査行列Hの近似下三角行列に「1」をデータ、パリティそれぞれに1つ追加した場合、検査多項式は以下の式(4)のようにあらわされる。ただし、式(4)において、α≧3、β≧3である。
したがって、パリティP(D)は、以下の式(5)のようにあらわされる。
検査行列の近似下三角行列に「1」を追加した場合、DβP(D)、D2P(D)、DP(D)は過去のデータであり、既知の値であるから、簡単にパリティP(D)を求めることができる。
<「1」を追加する位置>
次に、図3を用いて、追加する「1」の位置について詳しく説明する。図3において、符号301は時点iのデータXiの復号に関連する「1」、符号302は時点iのパリティPiに関連する「1」である。点線303は、1回のBP復号を行った場合、時点iのデータXi、パリティPiに対し、外部情報の伝搬に関与するプロトグラフである。つまり、時点i−2から時点i+2の信頼度が伝播に関与することになる。
プロトグラフ303の最右にある「1」(304)に対し、縦軸に境界線305を引く。そして、境界線305に隣接する最左の「1」(306)に対し、境界線307を引く。そして、時点iのデータXi、パリティPiに境界線305以降の信頼度が伝播するように、領域308にいずれかに「1」を追加する。これにより、「1」を追加する以前には得られなかった確率、つまり、時点i−2から時点i+2以外の信頼度を伝播させることができる。なお、新規の確率を伝播させるには、図3の領域308に追加する必要がある。
ここで、図3の検査行列Hの各行において、最右の「1」と最左の「1」の幅をLとする。これまでは、「1」を追加する位置を列方向で説明した。これを、行方向で考えると、図2の検査行列において、最左の「1」からL−2以上左の位置に「1」を追加することになる。また、検査多項式で説明した場合、式(4)において、αを5以上、βを5以上に設定すればよい。
これを一般式であらわして考える。畳み込み符号のパリティ検査多項式の一般式は以下の式(6)のようにあらわされる。
検査行列Hの近似下三角行列に「1」をデータ、パリティそれぞれに1つ追加した場合、検査多項式は以下の式(7)のようにあらわされる。
この場合、αを2K+1以上、βを2K+1以上に設定すればよい。K≧2である。
図4は、図3の検査行列の近似下三角行列に「1」を追加した場合の一例を示す図である。そして、すべての時点のデータ、パリティに対し「1」を追加すると、検査行列は図5のようにあらわされる。図5は、本実施の形態におけるLDPC−CCの検査行列の構成の一例を示す図である。図5において、領域501、502内の「1」が、追加した「1」であり、検査行列Hを持つ符号が本実施の形態におけるLDPC−CCとなる。このとき、検査多項式は以下の式(8)のようにあらわされる。
以上のように、送信装置では、検査行列Hの近似下三角行列に「1」を追加して畳み込み符号からLDPC−CCを作成することにより、受信装置では、作成したLDPC−CCの検査行列を用いて、BP復号または近似したBP復号を行えば、良好な受信品質を得ることができる。
なお、本実施の形態では、データ、パリティに対し、それぞれ「1」を1個追加する場合について説明したが、本発明はこれに限られず、例えばデータ、パリティのいずれかに対し「1」を追加する方法でもよい。例えば、データに対し「1」を追加し、パリティに対しては「1」を追加しないとしてもよい。一例として、上記式(7)において、Dβがない場合を考える。このとき、αを2K+1以上にすると受信装置は良好な受信品質を得ることができる。逆に、式(7)において、Dαがない場合を考える。このとき、βを2K+1以上にすると受信装置は良好な受信品質を得ることができる。
また、データ、パリティの両者に対し、複数個の「1」を追加した符号でも受信品質は大きく改善される。例えば、複数個挿入する場合の例として、ある畳み込み符号のパリティ検査多項式を式(9)であらわすものとする。なお、式(9)において、K≧2である。
検査行列Hの近似下三角行列に「1」をデータ、パリティに対し複数個追加した場合、検査多項式は以下の式(10)のようにあらわされる。
この場合、α1,・・・,αnを2K+1以上、β1,・・・,βmを2K+1以上に設定すると受信装置において良好な受信品質を得ることができる。この点は本実施の形態では重要である。
ただし、α1,・・・,αnのうちの1つ以上が2K+1以上を満たす場合でも受信装置において良好な受信品質を得ることができる。また、β1,・・・,βmのうちの1つ以上が2K+1以上を満たす場合でも受信装置において良好な受信品質を得ることができる。
また、LDPC−CCの検査多項式が以下の式(11)のようにあらわされた場合、α
1,・・・,α
nを2K+1以上に設定すると受信装置のおいて良好な受信品質を得ることができる。この点は本実施の形態では重要である。
ただし、α1,・・・,αnのうち1つ以上が2K+1以上を満たす場合でも受信装置において良好な受信品質を得ることができる。
同様に、LDPC−CCの検査多項式が以下の式(12)のようにあらわされた場合、β
1,・・・,β
mを2K+1以上に設定すると受信装置のおいて良好な受信品質を得ることができる。この点は本実施の形態では重要である。
ただし、β1,・・・,βmのうち1つ以上が2K+1以上を満たす場合でも受信装置において良好な受信品質を得ることができる。
次に、(7,5)畳み込み符号の式(2)とは異なるパリティ検査多項式からLDPC−CCを設計する方法について詳しく説明する。ここでは一例として、データに対し「1」を2個、パリティに対し「1」を2個追加する場合を例に説明する。
(7,5)畳み込み符号の式(2)とは異なるパリティ検査多項式が、非特許文献11に示されている。その一例は次の式(13)のようにあらわされる。
この場合、検査行列Hは、図6のようにあらわすことができる。
<符号化方法>
ここでは、図6の検査行列に対し、データ、パリティそれぞれに「1」を2つずつ追加する場合について説明する。図6の検査行列Hの近似下三角行列にデータ、パリティそれぞれに「1」を2つ追加した場合、検査多項式は以下の式(14)のようにあらわされる。
したがって、パリティP(D)は以下の式(15)のようにあらわすことができる。
このように、検査行列の近似下三角行列に「1」を追加した場合、Dβ1P(D)、Dβ2P(D)、D9P(D)、D8P(D)、D3P(D)、DP(D)は過去のデータであり、既知の値であるから、簡単にパリティP(D)を求めることができる。
<「1」を追加する位置>
上述と同様の効果を得るためには、α1,α2を19以上、β1,β2を19以上に設定すると受信装置において良好な受信品質を得ることができる。一例として、図7の検査行列では、α1=26、α2=19、β1=30、β2=24としている。これにより、上述と同様な理由から、受信装置では、良好な受信品質を得ることができる。
以上の例から、畳み込み符号からLDPC−CCを作成する方法は以下のような手順となる。なお、以下の手順は、畳み込み符号が符号化率1/2の場合の例である。
<1>良好な特性を与える畳み込み符号を選択する。
<2>選択した畳み込み符号の検査多項式を生成する(例えば、式(6))。ただし、選択した畳み込み符号を組織符号として利用することが重要となる。また、検査多項式は、上述のとおり一つに限らない。良好な受信品質を与える検査多項式を選択する必要がある。このとき、生成多項式から生成した検査多項式より次数が大きく等価な検査多項式を用いるほうがよい(非特許文献11参照)。
<3>選択した畳み込み符号の検査行列Hを作成する。
<4>データ、または(および)、パリティに対し、確率伝播を考慮し、検査行列に対し「1」を追加する。「1」を追加する位置については、上述で説明したとおりである。
本実施の形態では、(7,5)畳み込み符号からLDPC−CCを作成する方法を説明したが、本発明は(7,5)畳み込み符号に限ったものではなく、他の畳み込み符号を用いても同様に実施することができる。このとき、良好な受信品質を与える畳み込み符号の生成多項式Gについては非特許文献12に詳しく記載されている。
以上のように、本実施の形態によれば送信装置では、式(10)において、α1,・・・,αnを2K+1以上、β1,・・・,βmを2K+1以上に設定し、畳み込み符号からLDPC−CCを作成することにより、受信装置では、作成したLDPC−CCの検査行列を用いてBP復号または近似したBP復号を行えば、良好な受信品質を得ることができる。また、畳み込み符号からLDPC−CCを作成した場合、プロトグラフ、つまり、検査多項式のサイズが、非特許文献6、非特許文献7で示されているプロトグラフよりサイズが非常に小さいため、送信データのビット数が小さいパケットを送信するときに発生する余分なビットの数を少なくすることができ、データの伝送効率が低下するという課題を抑制することができる。
(実施の形態2)
実施の形態2では、(7,5)畳み込み符号から、新しいLDPC−CCを設計する方法、特に、検査行列の上台形行列に「1」を追加する方法について詳しく説明する。
(7,5)畳み込み符号の検査多項式、検査行列Hの構成については実施の形態1で説明したとおりである。
本発明におけるLDPC−CCの設計方法について詳しく説明する。
符号化器を簡単な構成で実現するために、本実施の形態での発明では、図8に示した(7,5)畳み込み符号のための検査行列Hの上台形行列に「1」を追加する手法をとる。
<符号化方法>
ここでは、一例として図8の検査行列に対し、追加する「1」は、データ、パリティそれぞれに追加するものと仮定する。この場合、検査多項式は以下の式(16)のようにあらわされる。なお、式(16)において、α
1、・・・、α
n≦−1、β
1、・・・、β
m≦−1である。
したがって、パリティP(D)は以下の式(17)のようにあらわすことができる。
ここで、式(17)において、D
α1X(D)、・・・、D
αnX(D)は、入力データであるため既知であるが、D
β1P(D)、・・・、D
βmP(D)は未知の値である。したがって、検査行列Hの上台形行列のうち、データに関連するものに対し、「1」を挿入することは可能であるが、パリティに関連するものに対し、「1」を挿入してもパリティビットを求めることが困難である。よって、検査行列Hの上台形行列のうち、データに関連するものに対し、「1」を挿入する。つまり、検査多項式が式(18)とあらわされる場合、パリティP(D)は、以下の式(19)のようにあらわすことができ、パリティP(D)を求めることができる。
ここで、非組織符号の場合、検査多項式には、パリティビットのみしか存在しないため、上記で説明したとおり、検査行列Hの上台形行列に「1」を追加すると、パリティビットを求めることが困難である。このように、本発明では、組織符号の畳み込み符号を用いることが重要であることがわかる。
<「1」を追加する位置>
次に、図8を用いて、追加する「1」の位置について詳しく説明する。図8において、符号801は時点iのデータXiの復号に関連する「1」、符号802は時点iのパリティpiに関連する「1」である。点線803は、1回のBP復号を行った場合、時点iのデータXi、パリティPiに対し、外部情報の伝搬に関与するプロトグラフである。つまり、時点i−2から時点i+2の信頼度が伝播に関与することになる。
そして、実施の形態1と同様に、境界線804、805を引く。そして、時点iのデータXiに境界線804以前の信頼度が伝播するように、領域806のいずれかに「1」を追加する。これにより、「1」を追加する以前には得られなかった確率、つまり、時点i−2から時点i+2以外の確率を伝播させることができる。なお、新規の確率を伝播させるには、図8の領域806に追加する必要がある。
ここで、図8の検査行列Hの各行において、最右の「1」と最左の「1」の幅をLとする。これまでは、「1」を追加する位置を列方向で説明した。これを、行方向で考えると、図2の検査行列において、最右の「1」からL−2以上右の位置に「1」を追加することになる。また、検査多項式で説明した場合、式(18)において、α1,・・・,αnを−2以下に設定すればよい。
これを一般式であらわして考える。畳み込み符号のパリティ検査多項式の一般式は式(6)のようにあらわされる。
検査行列Hの上台形行列に「1」をデータに対し追加した場合、検査多項式は以下の式(20)のようにあらわされる。
この場合、α1,・・・,αnを−K−1以下に設定するとよりよい受信品質をえることができる。ただし、α1,・・・,αnのうち一つ以上が、−K−1以下の条件を満たしていても、良好な受信品質を得ることができる。
図9は、図3の検査行列の上台形行列に「1」を追加した場合の一例を示す図である。図9では、領域806に「1」が追加された例である。そして、検査行列Hの上台形行列のすべての時点のデータに対し「1」を追加すると、検査行列は図10のようにあらわされる。図10は、本実施の形態におけるLDPC−CCの検査行列の構成の一例を示す図である。図10において、領域1001内の「1」は、追加された「1」であり、図10に示す行列Hを検査行列とする符号が本実施の形態におけるLDPC−CCとなる。このとき、検査多項式は以下の式(21)のようにあらわされる。
以上のように、本実施の形態によれば送信装置では、式(20)において、α1,・・・,αnを−K−1以下に設定し、畳み込み符号からLDPC−CCを作成することにより、受信装置では、作成したLDPC−CCの検査行列を用いてBP復号または近似したBP復号を行えば、良好な受信品質を得ることができる。なお、本実施の形態では、データ、に対し、検査行列の上台形行列に「1」を追加する例を説明したが、本発明はこれに限られず、実施の形態1と組み合わせ、検査行列の上台形行列に「1」を追加するだけでなく、検査行列の近似下三角行列に「1」を追加してもよい。このとき、実施の形態1に記載した条件を満たすと、よりよい受信品質を確保することができる。
そして、検査行列の上台形行列に「1」を追加した場合、後述する実施の形態3の終端における収束速度の向上につながるという利点もある。この点については、実施の形態3で詳しく説明する。
また、本実施の形態によれば、実施の形態1と同様に、(7,5)畳み込み符号の式(2)とは異なるパリティ検査多項式からLDPC−CCを設計することもできる。
本実施の形態では、(7,5)畳み込み符号からLDPC−CCを作成する方法を説明したが、(7,5)畳み込み符号に限ったものではなく、他の畳み込み符号を用いても同様に実施することができる。このとき、良好な受信品質を与える畳み込み符号の生成多項式Gについては非特許文献12に詳しく記載されている。
また、畳み込み符号からLDPC−CCを作成した場合、プロトグラフ、つまり、検査多項式のサイズが、非特許文献6,非特許文献7で示されているプロトグラフよりサイズが非常に小さいため、送信データのビット数が小さいパケットを送信するときに発生する、送信する余分なビットの数を少なくでき、データの伝送効率が低下するという課題を抑制することができる。
(実施の形態3)
実施の形態3では、実施の形態1で述べたように、畳み込み符号からLDPC−CCを生成する際、検査行列の近似下三角行列に「1」を追加した場合の終端(termination)の課題と、その問題を解決する方法について説明する。
図11は、終端の際の検査行列の一例を示す図である。図11において、符号1100は情報ビットと終端ビットとの境界を示す。なお、「情報ビット」は、送信装置が受信装置に対して送信したい情報に関するビットである。一方、「終端ビット」は、情報ビットを正確に伝えるための余分なビットであり、終端ビット自身は、受信装置が必要としている情報には属さず、情報ビットを的確に受信するために必要なビットである。
ここで、情報ビットにおける、データビットの最終ビットをXf、パリティビットの最終ビットをPfとし、その時点をfとする。図11の領域1103における符号1101が時点fのデータに関する「1」、符号1102が時点fのパリティに関する「1」に相当する。
図11のプロトグラフに対応する検査多項式は、以下の式(22)のようにあらわされる。
図11において、符号1104は終端ビット用の検査行列である。終端ビットで送信するデータビットを「0」とする。ただし、終端ビットで送信するデータビットを「0」とするのは一例であり、送受信機において、既知の情報であれば、終端ビットで送信するデータビットは、どのような系列であっても終端ビットとなりうる。
図11では、時点f+1、つまり、終端ビットの最初の検査多項式は、以下の式(23)のようにあらわされる。
また、時点f+2の終端ビットにおける検査多項式は、以下の式(24)のようにあらわされる。
このように、本実施の形態では、図11に示しているように、終端ビットでは、時間とともに、追加された「1」の位置をずらす、また、時間とともに、検査多項式の次数を小さくすることを特徴としている。図11において、符号1105が、終端ビットの追加に関連する「1」の構成の一例を示している。なお、図11では、追加された「1」は、パリティに存在する。
そして、送信装置から送信される終端ビットの系列は既知であるので、受信装置では、BP復号を行う際、終端ビットの尤度を既知に設定することができる。
以上のように、本実施の形態によれば、終端ビットにおいて、時間とともに、検査多項式の次数を小さくすることにより、トレリス線図が安定する(収束する)速度が向上することになる。したがって、終端のために送信するビット数を削減することができ、データの伝送効率を向上させることができる。
図12は、図11とは異なる「情報ビット」および「終端ビット」に関連する検査行列の構成の一例を示す図である。図12において、符号1200は情報ビットと終端ビットとの境界を示す。
ここで、情報ビットにおける、データビットの最終ビットをXf、パリティビットの最終ビットをPfとし、その時点をfとする。図12の領域1203における符号1201が時点fのデータに関する「1」、符号1202が時点fのパリティに関する「1」に相当する。
図12のプロトグラフに対応する検査多項式は、以下の式(25)のようにあらわされる。
図12において、符号1204は終端ビット用の検査行列である。終端ビットで送信するデータビットを「0」とする。なお、終端ビットで送信するデータビットを「0」とするのは一例であり、送受信装置において、既知の情報であれば、終端ビットで送信するデータビットは、どのような系列であってもよい。
図12では、時点f+1、つまり、終端ビットの最初の検査多項式は、以下の式(26)のようにあらわされる。
また、時点f+2の終端ビットにおける検査多項式は、以下の式(27)のようにあらわされる。
このように、図12に示しているように、終端ビットでは、時間とともに、追加された「1」の位置をずらす、また、時間とともに、検査多項式の次数を小さくすることを特徴としている。図12において、符号1205が、終端ビットの追加に関連する「1」の構成の一例である。なお、図12では、追加された「1」は、データに存在する。
また、情報ビットの受信品質の劣化を防ぐために、実施の形態1で述べたように、「2K+1以上」の条件を満たすように、検査多項式の次数を小さくする。したがって、最終的な終端ビットの検査多項式は、例えば、以下の式(28)のようにあらわされる。
そして、送信装置から送信される終端ビットの系列は既知であるので、受信装置では、BP復号を行う際、終端ビットの尤度を既知に設定することができる。
以上のように、本実施の形態によれば、終端ビットにおいて、時間とともに、検査多項式の次数を小さくすることにより、トレリス線図が安定する(収束する)速度を向上させることができる。したがって、終端のために送信するビット数を削減することができ、データの伝送効率を向上させることができる。
次に、実施の形態2で述べた検査行列の上台形行列に「1」を追加する方法を用いたときの終端方法の一例について述べる。図13は、図11、図12とは異なる「情報ビット」および「終端ビット」に関連する検査行列の構成の一例を示す図である。図13において、符号1300は情報ビットと終端ビットとの境界を示す。
ここで、情報ビットにおける、データビットの最終ビットをXf、パリティビットの最終ビットをPfとし、その時点をfとする。図13の領域1303における符号1301が時点fのデータに関する「1」、符号1302が時点fのパリティに関する「1」に相当する。
図13のプロトグラフに対応する検査多項式は、以下の式(29)のようにあらわされるものとする。
図13において、符号1304は終端ビット用の検査行列である。終端ビットで送信するデータビットを「0」とする。なお、終端ビットで送信するデータビットを「0」とするのは一例であり、送受信装置において、既知の情報であれば、終端ビットで送信するデータビットは、どのような系列であってもよい。
図13では、時点f+1、つまり、終端ビットの最初の検査多項式は、以下の式(30)のようにあらわされる。
また、時点f+2の終端ビットにおける検査多項式は、以下の式(31)のようにあらわされる。
このように、図13に示しているように、終端ビットでは、時間とともに、追加された「1」の位置をずらす、また、時間とともに、検査多項式の次数を小さくすること(図13の符号1305に相当)を特徴としている。図13において、符号1304が、終端ビットのプロトグラフの構成の一例である。なお、図13では、追加された「1」は、データ及びパリティに存在する。
また、情報ビットの受信品質の劣化を防ぐために、実施の形態1で述べたように、「2K+1以上」の条件を満たすように、検査多項式の次数を小さくする。
図13の終端ビットにおけるもう一つの特徴として、図13の符号1305から符号1306への変化のとおり、検査行列に追加挿入した「1」の数を2個から1個へ変化させている点である。これにより、トレリス線図が安定する(収束する)速度が向上する。
なお、本実施の形態では、検査行列に追加する「1」の数を情報ビット送信時は2個、その後、終端ビット送信時に1個と減少させる例で説明しているが、本発明これに限られず、例えば、検査行列に追加する「1」の数を情報ビット送信時はM個、その後、終端ビット送信時にN個(M>N)と減少させても同様な効果を得ることができる。
図13において、検査行列の上台形行列に「1」を追加した場合(図13の符号1307の「1」)の利点について説明する。例えば、図13の時点f−2のデータXf−2(1308)およびパリティPf−2(1309)では、終端ビット1310の影響を受けることになる。これにより、受信装置では、時点f−2のデータXf−2(1308)の受信品質は向上することになる。同様に、時点f−2以降のデータについても同様の効果を得ることができる。このように、検査行列の上台形行列に「1」を追加した場合、上記記載の効果により、トレリス線図が安定する(収束する)速度を向上させることができる。
本実施の形態では、規則的に検査多項式の次数を減少させている(行数が1つ増加するごとに次数を減少させている)が、本発明は、規則的でなくても同様な効果を得ることができ、例えば、数行ごとに次数を減らしても同様の効果を得ることができる。
(実施の形態4)
実施の形態1および実施の形態2では、(7,5)の畳み込み符号つまりフィードバック型の畳み込み符号からLDPC−CCを設計する方法について述べた。本実施の形態では、実施の形態1および実施の形態2で説明したLDPC−CCの設計方法をフィードフォワード型の畳み込み符号に適用した場合について説明する。フィードフォワード型の畳み込み符号を用いる利点は、拘束長が同一の場合、フィードフォワード型の畳み込み符号の検査行列の検査行列では、フィードバック型の畳み込み符号の検査行列に比べ、行重みおよび列重みが小さく、また、タナーグラフを描いた際の長さ4のループの存在する数が少ないという特徴がある。ループとは、あるノードから始まり、そのノードで終わる周回路(周回するパス)であり、長さ4のループの数が多いと、受信品質が劣化する(非特許文献13参照)。そのため、フィードフォワード型の畳み込み符号を用いる場合、BP復号を行った際、受信品質がよくなる可能性が高い。そこで、フィードフォワード型の畳み込み符号から設計したLDPC−CCは、フィードバック型の畳み込み符号から設計したLDPC−CCより、性能がよいという特徴をもつ。
非特許文献12には、フィードフォワード型でかつ組織符号である畳み込み符号が記載されている。以下では、一例として、(1,1547)の畳み込み符号を用いる場合について説明する。(1,1547)の畳み込み符号の検査多項式は、次式のようにあらわされる。
そして、(1,1547)の畳み込み符号の式(32)とは異なるパリティ検査多項式の例として、次式を用いる。
そして、LDPC−CC用の検査多項式として、以下式より与えられるP(D)を考える。
このとき、α1,・・・, αeは15以上の整数、β1,・・・, βfは15以上の整数、γ1,・・・, γgは−1以下の整数とする。このとき、実施の形態1および実施の形態2で説明したように、α1,・・・, αeのうち少なくとも一つは29以上の整数に設定し、β1,・・・, βfのうち少なくとも一つは29以上の整数に設定し、γ1,・・・, γgのうち少なくとも一つは−15以下の整数に設定する。なお、α1,・・・, αeすべてを29以上の整数に設定し、β1,・・・, βfすべてを29以上の整数に設定し、γ1,・・・, γgすべてを−15以下に設定するとより効果的である。このように設定すると、受信品質(復号性能)を大きく改善することができる。
例えば、式(40)において、γ1=−25、γ2=−55、γ3=−95と設定したり、式(40)において、γ1=−25、γ2=−65と設定したり、式(39)において、β1=35、γ1=−40、γ2=−90すると受信品質(復号性能)が大きく改善する。
ただし、式(36)、式(37)、式(39)においては、α1,・・・, αeのうち少なくとも一つは29以上の整数に設定する、または、β1,・・・, βfのうち少なくとも一つは29以上の整数に設定する、または、γ1,・・・, γgのうち少なくとも一つは−15以下に設定する場合においても受信品質(復号性能)を大きく改善できる。
(実施の形態5)
本実施の形態では、符号化率1/2のLDPC−CCから、符号化率1/3のLDPC−CCを作成する方法について詳しく説明する。以下では、非特許文献12に示されるフィードフォワード型で、かつ、組織符号である畳み込み符号、(1,1547)の畳み込み符号を用いて説明する。(1,1547)の畳み込み符号の検査多項式は、次式のようにあらわされる。
そして、(1,1547)の畳み込み符号の式(41)とは異なるパリティ検査多項式の例として、次式を用いる。
ここで、新たなパリティ系列の多項式として、以下式により与えられるPn(D)を考える。
時点iにおけるデータをXi、時点iにおける式(42)のP(D)に関するパリティをPi、時点iにおける式(43)、または、式(44)、または、式(45)のPn(D)に関するパリティPniとすると送信系列Wi=(Xi,Pi,Pni)であらわすことができる。
そして、LDPC−CC用のX(D)、P(D)に関する検査多項式として、実施の形態4と同様に以下の式を考える。
このとき、α1,・・・, αeは15以上の整数、β1,・・・, βfは15以上の整数、γ1,・・・, γgは−1以下の整数とする。このとき、実施の形態1および実施の形態2で説明したように、α1,・・・, αeのうち少なくとも一つは29以上の整数に設定し、β1,・・・, βfのうち少なくとも一つは29以上の整数に設定し、γ1,・・・, γgのうち少なくとも一つは−15以下に設定する。ただし、α1,・・・, αeすべてを29以上の整数に設定し、β1,・・・, βfすべてを29以上の整数に設定し、γ1,・・・, γgすべてを−15以下に設定するとより効果的である。このように設定すると、受信品質(復号性能)が大きく改善する。
そして、LDPC−CC用の新たなパリティ系列Pn(D)に関する検査多項式を式(43)〜式(45)のいずれかとする。このとき、a1,・・・, avのうち少なくとも一つは29以上の整数とする、または、a1,・・・, avのうち少なくとも一つは−15以下の整数に設定する。そして、bw,・・・, bwのうち少なくとも一つは29以上の整数に設定する。ただし、a1,・・・, avすべてを29以上の整数または−15以下の整数に設定すると、受信品質(復号性能)が大きく改善する。また、b1,・・・, bwの全てを29以上の整数に設定しても、受信品質(復号性能)が大きく改善する。ここで、c1,・・・,cyについては制約を与えていないが、c1,・・・,cyのうち少なくとも一つは29以上の整数とすると効果的であり、また、一般的には、c1,・・・,cyの中には、“0”となるものが一つ存在する。
以下、符号化率1/2の畳み込み符号から、符号化率1/3の畳み込み符号のLDPC−CCを生成する方法についてまとめる。
符号化率1/2の畳み込み符号の検査多項式を、以下式であらわし、+K
x(データX(D)の項の最大次数)、K
1(パリティP(D)の項の最大次数)のうちの最大値をK
maxとする。
そして、実施の形態1〜4および他の実施の形態1のように、X(D)とP(D)のLDPC−CC用の検査多項式を作成する。その後、新たなパリティ系列の多項式として、式(54)〜式(56)から得られるPn(D)を考える。
このとき、a1,・・・,avのうち少なくとも一つは2Kmax+1以上の整数とする、または、a1,・・・,avのうち少なくとも一つは−Kmax−1以下の整数に設定する。そして、b1,・・・,bwのうち少なくとも一つは2Kmax+1以上の整数に設定する。なお、a1,・・・,avすべてを2Kmax+1以上の整数、または、−Kmax−1以下の整数に設定すると、受信品質(復号性能)が大きく改善する。また、b1,・・・,bwすべてを2Kmax+1以上の整数に設定しても受信品質(復号性能)が大きく改善する。ここで、c1,・・・,cyについては制約を与えていないが、c1,・・・,cyのうち少なくとも一つは2Kmax+1以上の整数とすると効果的であり、また、一般的には、c1,・・・,cyの中には、“0”となるものが一つ存在する。
以上のように、本実施の形態では、符号化率1/3用の新たなパリティ系列として、式(54)〜式(56)から得られる多項式Pn(D)を用いて、符号化率1/2の畳み込み符号から符号化率1/3のLDPC−CCを生成するようにした。この場合に、a1,・・・, av、b1,・・・, bwに対し、上述したような制限を設けることにより、符号化率1/2用の検査多項式P(D)に変更を加えることなく、信頼度が伝搬する範囲を拡大することができるようになり、受信品質(復号性能)を改善することができる。
以上、符号化率1/2の畳み込み符号から符号化率1/3のLDPC−CCを生成する方法について説明した。なお、符号化率1/4以下のLDPC−CCを生成する場合についても、符号化率1/3のLDPC−CCを生成するときと同様の条件で新たなパリティの検査多項式を生成すれば、符号化率1/4以下のLDPC−CCを生成することができる。
(実施の形態6)
実施の形態4で説明した畳み込み符号からLDPC−CCを生成する方法の変形例について詳しく説明する。
実施の形態4で説明した、LDPC−CC用の検査多項式として、以下のいずれかの多項式を考える。
このとき、α1,・・・, αeは15以上の整数、β1,・・・, βfは15以上の整数、γ1,・・・, γgは−1以下の整数とする。このとき、実施の形態1および実施の形態2で説明したように、α1,・・・, αeのうち少なくとも一つは29以上の整数に設定し、β1,・・・, βfのうち少なくとも一つは29以上の整数に設定し、γ1,・・・, γgのうち少なくとも一つは−15以下の整数に設定する。なお、α1,・・・, αeすべてを29以上の整数に設定し、β1,・・・, βfすべてを29以上の整数に設定し、γ1,・・・, γgすべてを−15以下に設定するとより効果的である。
そして、元の畳み込み符号の「1」および最大次数「D14」を除く項、つまり、図14の項1401(D10)、項1402(D5、D4、D3、D1)のうちから、いくつかの項を選択する。例えば、図14のように項1401(D10)を選択する。そして、選択した項を除去し、図14の多項式1403、多項式1404のような検査多項式を考える。図14の多項式1403では、D10が削除され、Dzの項がX(D)に関し追加されている。図14の多項式1404では、D10が削除され、Dzの項がP(D)に関し追加されている。このとき、実施の形態4の説明と同様に、最大次数Kmax(=14)に対し、zを2Kmax+1以上の整数とすることで、受信品質は改善する。また、図14の多項式1403の場合、zを−Kmax−1以下の整数としても、受信品質は改善する。
図14では、項1401(D10)を選択し、Dzの項を追加する場合について説明したが、これに限ったものでなく、項1401、項1402から複数個選択し、その項を除去し、また、複数のDzの項を追加して、LDPC−CCの検査多項式を作成してもよい。
このように、本実施の形態では、元の畳み込み符号の最大次数DKを除いて、項を少なくとも一つ削除し、更に、z≧2Kmax+1を満たすDzの項を少なくとも一つ、X(D)又はP(D)に関し追加した。上記構成のパリティ検査多項式を用いてLDPC−CCを構成するようにした。なお、Dzの項を、X(D)及びP(D)に追加するようにしてもよい。
また、式(57)を例に説明したが、これに限ったものではなく、式(58)〜式(63)のいずれの場合でも同様に実施することができる。このような操作をすることで、非特許文献13で述べられているタナーグラフにおける長さ4のループ、または、長さが小さいループ、例えば、長さ6のループを削除できるため、受信品質の大幅な向上につながる。
(実施の形態7)
本実施の形態では、パンクチャを容易に行うことが可能であり、かつ、符号化器の構成が簡単な時変LDPC−CCの構成について説明する。特に、本実施の形態では、周期的にデータをパンクチャすることができるLDPC−CCについて説明する。LDPC符号では、これまで、周期的にデータをパンクチャするパンクチャ方法については、十分な検討がなされておらず、特に、簡単にパンクチャを行う方法について、十分に議論がされているわけではない。本実施の形態におけるLDPC−CCでは、データをランダムにパンクチャするのではなく、周期的に、かつ、規則的にパンクチャすることができると、受信品質の劣化を抑えることができる。以下では、符号化率R=1/2の上記を実現できる時変LDPC−CCの構成方法について説明する。
符号化率1/2のとき、情報系列(データ)の多項式表現をX(D)、パリティの系列の多項式表現をP(D)とすると、パリティ検査多項式は以下のようにあらわされる。
式(64)において、a1、a2、・・・、anは1以上の整数(ただし、a1≠a2≠・・・≠an)とする。また、b1、b2、・・・bmは1以上の整数(ただし、b1≠b2≠・・・≠bm)とする。ここで、符号化を容易に行うことを可能とするため、D
0X(D)、および、D
0P(D)の項(D
0=1)が存在するものとする。したがって、P(D)は以下のようにあらわされる。
式(65)から分かるように、D0=1が存在し、かつ、過去のパリティの項、つまり、b1、b2、・・・bmが1以上の整数であるため、パリティPを逐次的に求めることができる。
次に、式(64)とは異なる符号化率1/2のパリティ検査多項式を以下のようにあらわす。
式(66)において、A1、A2、・・・、ANは1以上の整数(ただし、A1≠A2≠・・・≠AN)とする。また、B1、B2、・・・、BMは1以上の整数(ただし、B1≠B2≠・・・≠BM)とする。ここで、符号化を容易に行うことを可能とするため、D
0X(D)およびD
0P(D)の項(D
0=1)が存在するものとする。このときP(D)は、式(67)のようにあらわされる。
以下、時点2iのデータXとパリティPをそれぞれX2i、P2iであらわし、時点2i+1のデータXとパリティPをそれぞれX2i+1、P2i+1であらわす(i:整数)。
本実施の形態では、時点2iのパリティP2iは式(65)を用いて算出し、時点2i+1のパリティP2i+1は式(67)を用いて算出する時変周期が2のLDPC−CCを提案する。上述の実施の形態と同様に、パリティは、逐次的に簡単に求めることができるという利点がある。
以下では、式(64)及び式(66)の一例として、式(68)及び式(69)を用いて説明する。
このとき検査行列は、図15のようにあらわすことができる。図15において、(Ha,11)は式(68)に相当する部分であり、(Hc,11)は式(69)に相当する部分である。図15の検査行列、つまり、時変周期2の検査行列を用いてBP復号を行った場合、実施の形態1から実施の形態6で説明したLDPC−CCに比べ、データの受信品質が大きく改善することが確認された。
以上、時変周期が2の場合について説明したが、時変周期は2に限られない。しかし、時変周期が大きすぎると、周期的にパンクチャすることが難しく、例えば、ランダムにパンクチャしなければならなくなるため、受信品質が劣化してしまう可能性がある。以下に、時変周期を小さくすることにより、受信品質が改善するという利点について説明する。
図16に、時変周期1の場合のパンクチャ方法の一例を示す。同図において、Hは、LDPC−CCの検査行列であり、送信系列ベクトルをvであらわすと、式(70)の関係式が成立する。
ここで、送信系列ベクトルv=(v1、v2、v3、v4、v5、v6、・・・、v2i、v2i+1、・・・)である。
図16は、符号化率R=1/2の送信系列をパンクチャし、符号化率R=3/4とする場合の例を示している。パンクチャを周期的に行う場合、まず、パンクチャビットを選択するためのブロック周期を設定する。図16には、ブロック周期を6とし、ブロックが点線(1602)のように設定される例が示されている。そして、1ブロックを構成する6ビットのうち2ビットがパンクチャビットとして選択され、選択された2ビットは、送信されないビットとして設定される。図16では、丸印で囲まれたビット1601が、送信されないビットとなる。このようにして、符号化率3/4を実現することができる。したがって、送信データ系列は、v1、v3、v4、v5、v7、v9、v11、v13、v15、v16、v17、v19、v21、v22、v23、v25、・・・となる。
図16において四角枠で囲まれた“1”は、パンクチャにより、受信時に、初期の対数尤度比が存在しないので、対数尤度比が0に設定されることになる。
BP復号では行演算と列演算とを反復して行う。したがって、初期の対数尤度比が存在しない(対数尤度比が0の)ビット(消失ビット)が、同一行に2つ以上含まれると、当該行では、列演算により初期の対数尤度比が存在しない(対数尤度比が0の)ビットの対数尤度比が更新されるまで、行演算単独では、対数尤度比が更新されないことになる。すなわち、行演算単独では信頼度が伝搬されず、信頼度を伝搬させるためには、行演算と列演算とを反復する必要がある。したがって、このような行が多数存在すると、BP復号において反復処理数に制限があるような場合、または、反復処理を何度行っても信頼度が伝搬されずに、受信品質の劣化を招く原因となる。図16に示す例では、四角枠で囲まれた1に対応するビットが消失ビットを示し、行1603が、行演算単独では信頼度が伝搬されない行、つまり、受信品質の劣化を招く原因となる行となる。
したがって、パンクチャビット(送信しないビット)の決定方法、すなわち、パンクチャパターンの決定方法として、パンクチャにより、単独では、信頼度が伝播されない行ができるだけ少なくなるような方法を探索する必要がある。以下、パンクチャビットの選択方法の探索について説明する。
1ブロックを構成する6ビットのうち2ビットをパンクチャビットとする場合、2ビットの選択方法は3×2C2存在する。このうち、ブロック周期の6ビットの中で巡回シフトした選択方法は、同一とみなすことができる。以下、図18Aを用いて補足説明をする。一例として、図18Aに、6ビットのうち2ビットを連続してパンクチャする場合の6通りのパンクチャパターンを示す。図18Aにおいて示すように、パンクチャパターン#1〜#3は、ブロック区切りを変更することで、同一のパンクチャパターンとなる。同様に、パンクチャパターン#4〜#6も、ブロック区切りを変更することで、同一のパンクチャパターンとなる。このように、ブロック周期の6ビットの中で巡回シフトした選択方法は、同一とみなすことができる。したがって、パンクチャビットの選択方法は、3×2C2×2/(3×2)=5通り存在する。
なお、1ブロックがL×kビットから構成され、L×kビットのうちkビットをパンクチャする場合、式(71)により求められる数のパンクチャパターンが存在する。
一つのパンクチャパターンに着目した場合の、符号化系列とパンクチャパターンとの関係を図18Bに示す。なお、図示していないが、Xi+3、Pi+3においても、パンクチャビットとなる。このため、図18Bから分かるように、1ブロックを構成する6ビットのうち2ビットをパンクチャした場合、パンクチャパターン1つに対し、存在する検査式のパターンは、(3×2)×1/2となる。同様に、1ブロックがL×kビットから構成され、L×kビットのうちkビットをパンクチャする場合、パンクチャパターン1つに対し、式(72)により求められる数の検査式が存在する。
したがって、パンクチャパターンの選択方法において、式(73)から求められる数の検査式(行)について、単独で、信頼度が伝播されるか否かチェックする必要がある。
以上の関係から、符号化率1/2の符号から符号化率3/4とする場合、L×kビットのブロックからkビットをパンクチャする場合、式(74)から求められる数の検査式(行)について、単独で、信頼度が伝播されるか否かチェックする必要がある。
そして、よいパンクチャパターンが見つからない場合、L及びkを増加させる必要がある。
次に、時変周期がmの場合について検討する。この場合も、時変周期が1の場合と同様に、式(64)であらわされる異なるm個の検査式を用意する。以下、m個の検査式を、「検査式#1、検査式#2、・・・、検査式#m」と名付ける。
そして、時点mi+1のパリティP
mi+1を「検査式#1」を用いて求め、時点mi+2のパリティP
mi+2を「検査式#2」を用いて求め、・・・、時点mi+mのパリティP
mi+mを「検査式#m」を用いて求めるLDPC−CCを考える。このとき、図15と同様に考えると、検査行列は図17のようにあらわされる。すると、符号化率1/2の符号から符号化率3/4とする場合、例えば、6ビットのブロックから2ビットをパンクチャする場合について、式(73)と同様に考えると、式(75)から求められる数の検査式(行)について、単独では、信頼度が伝播されない行であるかどうかをチェックする必要がある。
なお、式(75)において、LCM{α,β}は、自然数αと自然数βとの最小公倍数をあらわす。
式(75)から分かるように、mの増加に伴い、チェックしなければならない検査式が増加する。そのため、周期的にパンクチャを行うパンクチャ方法は適さず、例えば、ランダムにパンクチャする方法を用いることになるため、受信品質が劣化する可能性がある。
なお、図18Cに、パンクチャにより、L×kビットからkビットをパンクチャして、符号化率R=2/3,3/4,5/6の符号系列を生成する場合に、チェックしなければならないパリティ検査多項式の数を示す。
現実的に、最良なパンクチャパターンを探索できる時変周期は2から10程度である。特に、最良なパンクチャパターンを探索できる時変周期、および、受信品質の向上を考慮すると、時変周期2は適している。さらに、時変周期が2で、式(64)、式(66)のような検査式を周期的に繰り返した場合、符号・復号器が非常に簡単に構成することができるという利点がある。
なお、時変周期3、4、5、・・・10の場合には、時変周期が2の場合に比べると、符号・復号器の構成が若干大きくなるももの、時変周期2の場合と同様に、式(64)、式(66)に基づく複数のパリティ検査式を周期的に繰り返す場合には、簡易な構成を採ることができる。
なお、時変周期がsemi-infiniteであったり、LDPC−BCをもとにLDPC−CCを作成する場合、一般に、時変周期が非常に長くなってしまうため、周期的にパンクチャビットを選択する方式を採用し、最良のパンクチャパターンを探索することは困難である。例えば、ランダムにパンクチャビットを選択する方式の採用が考えられるが、パンクチャ時の受信品質が大きく劣化する可能性がある。
なお、式(64)、(66)、(68)、(69)において、両辺にDnを乗算して検査多項式を表現することもできる。本実施の形態では、式(64)、(66)、(68)、(69)においてD0X(D)、及び、D0P(D)の項(D0=1)が存在するものとした。
このようにすることで、パリティが逐次的に演算することができるため、符号化器の構成が簡易になり、又、組織符号の場合、時点iのデータへの信頼度伝播を考えると、データ及びパリティの双方にD0の項が存在すると、データへの信頼度伝搬を簡単に理解することができるため、符号設計を容易に行うことができる。なお、符号設計の容易性を考慮しないのであれば、式(64)、(66)、(68)、(69)において、D0X(D)が存在する必要はない。
図19Aに、時変周期2のLDPC−CCの検査行列の一例を示す。図19Aに示されるように、時変周期2の場合、パリティ検査式1901と、パリティ検査式1902との2つのパリティ検査式が、交互に用いられる。
また、図19Bに、時変周期4のLDPC−CCの検査行列の一例を示す。図19Bに示されるように、時変周期4の場合、パリティ検査式1901と、パリティ検査式1902と、パリティ検査式1903と、パリティ検査式1904との4つのパリティ検査式が、繰り返し用いられる。
以上のように、本実施の形態によれば、パリティ検査多項式(64)と、式(64)と異なるパリティ検査多項式(66)と、からなる時変周期2の検査行列により、パリティ系列を求めるようにした。なお、時変周期は2に限られず、例えば、図19Bに示すような、時変周期4の検査行列を用いて、パリティ系列を求めるようにしてもよい。ただし、時変周期mが大きすぎると、周期的にパンクチャすることが難しく、例えばランダムにパンクチャすることになるため、受信品質が劣化してしまう。現実的に、最適なパンクチャパターンを探索できる時変周期は、2から10程度である。この場合、受信品質を向上することができるとともに、周期的にパンクチャを行うことができるので、LDPC−CCの符号化器を簡単に構成することができる。
なお、検査行列Hにおける行重み、つまり、検査行列を構成する行要素のうち、1が立っている要素数が、7〜12であると良好な受信品質が得られることが確認されている。非特許文献12に記載されているように、畳み込み符号において最小距離が優れている符号を考えると、拘束長が大きくなるにつれ、行重みが増える、例えば、拘束長11のフィードバック畳み込み符号では、行重みが14となることを考慮すると、行重みが7〜12とする点は、本提案のLDPC−CC特有の値であると考えることができる。また、符号設計のメリットを考慮した場合、LDPC−CCの検査行列の各行の行重みを等しくすると設計が容易となる。
また、以上の説明では、符号化率1/2の場合について説明したが、これに限られず、符号化率1/2以外においても、時変周期mの検査行列を用いてパリティ系列を求めることができ、時変周期2から時変周期10程度の場合、同様の効果を得ることができる。
特に、符号化率R=5/6、7/8以上の場合、本実施の形態で説明した時変周期2または時変周期mのLDPC−CCにおいて、消失ビットを2つ以上含む行のみにより構成されないようなパンクチャパターンを選択する。つまり、消失ビットが0または1つの行が存在するようなパンクチャパターンを選択することは、符号化率R=5/6、7/8以上のように、符号化率が高い場合に良好な受信品質を得る上で重要となる。
(実施の形態8)
本実施の形態では、実施の形態2で説明した検査行列の上台形行列に「1」が存在するような検査式を用い、かつ、符号化器を簡単に構成することができる時変LDPC−CCについて説明する。以下では、符号化率R=1/2の上記を実現できる時変LDPC−CCの構成方法について説明する。
符号化率1/2のとき、情報系列(データ)の多項式表現をX(D)、パリティの系列の多項式表現をP(D)とすると、パリティ検査多項式は以下のようにあらわされる。
式(76)において、a1、a2、・・・、anは1以上の整数(ただし、a1≠a2≠・・・≠an)とする。また、b1、b2、・・・、bmは、1以上の整数(ただし、、b1≠b2≠・・・≠bmとする。また、c1、c2、・・・、cqは、−1以下の整数でc1≠c2≠・・・≠cqとする。このとき、P(D)は以下のようにあらわされる。
実施の形態2と同様に、パリティPは逐次的に求めることができる。
次に、式(76)とは異なる符号化率1/2のパリティ検査多項式として、式(78)および式(79)を考える。
式(78)、式(79)において、A1、A2、・・・、ANは、1以上の整数(ただし、A1≠A2≠・・・≠AN)とする。また、B1、B2、・・・、BMは1以上の整数(ただし、B1≠B2≠・・・≠BM)とする。また、C1、C2、・・・、CQは、−1以下の整数(ただし、C1≠C2≠・・・≠CQ)とする。このとき、P(D)は以下のようにあらわされる。
以下、時点2iのデータXとパリティPをそれぞれX2i、P2iであらわし、時点2i+1のデータXとパリティPをそれぞれX2i+1、P2i+1であらわす(i:整数)。
このとき、時点2iのパリティP2iは式(77)を用いて求め、時点2i+1のパリティP2i+1は式(80)を用いて求める時変周期が2のLDPC−CC、または、時点2iのパリティP2iは式(77)を用いて求め、時点2i+1のパリティP2i+1は式(81)を用いて求める時変周期が2のLDPC−CCを考える。
このようなLDPC−CC符号は、
・符号化器を簡単に構成することができ、かつ、パリティを逐次的に求めることができる。
・周期的にパンクチャビットを設定することができる。
・終端ビットの削減、終端時のパンクチャ時の受信品質の向上が見込める
という利点を備える。
次に、時変周期をmとするLDPC−CCを考える。時変周期2の場合と同様に、式(78)であらわされる「検査式#1」を用意し、式(78)または式(79)のいずれかであらわされる「検査式#2」から「検査式#m」を用意する。時点mi+1のデータXとパリティPをそれぞれXmi+1、Pmi+1とあらわし、時点mi+2のデータXとパリティPをそれぞれXmi+2、Pmi+2、・・・時点mi+mのデータXとパリティPを、それぞれXmi+m、Pmi+mとあらわす(i:整数)。
このとき、時点mi+1のパリティPmi+1を「検査式#1」を用いて求め、時点mi+2のパリティPmi+2を「検査式#2」を用いて求め、・・・、時点mi+mのパリティPmi+mを「検査式#m」を用いて求めるLDPC−CCを考える。このようなLDPC−CC符号は、
・符号化器を簡単に構成することができ、かつ、パリティを逐次的に求めることができる。
・終端ビットの削減、終端時のパンクチャ時の受信品質の向上が見込める
という利点を備える。
以上のように、本実施の形態によれば、パリティ検査多項式(76)と、式(76)と異なるパリティ検査多項式(78)と、からなる時変周期2の検査行列により、パリティ系列を求めるようにした。
このように、検査行列の上台形行列に「1」が存在するような検査式を用いる場合において、時変LDPC−CCの符号化器を簡単に構成することができる。なお、時変周期は2に限られない。ただし、実施の形態7と同様に、周期的にパンクチャを行う方法を採る場合、現実的に、最良なパンクチャパターンを探索できる時変周期は2から10程度である。
なお、時変周期3、4、5、・・・10の場合には、時変周期が2の場合に比べると、符号・復号器の構成が若干大きくなるももの、時変周期2の場合と同様に、式(78)、式(79)の検査式を周期的に繰り返す場合には、簡易な構成を採ることができる。
なお、式(76)、(78)、(79)において、両辺にDnを乗算して検査多項式を表現することもできる。また、本実施の形態では、式(76)、(78)、(79)においてD0X(D)および、D0P(D)の項(D0=1)が存在するものとするとした。
このようにすることで、パリティが逐次的に演算することができるため、符号化器の構成が簡易になり、又、組織符号の場合、時点iのデータへの信頼度伝播を考えると、データ及びパリティの双方にD0の項が存在すると、符号設計を容易に行うことができる。なお、符号設計の容易性を考慮しないのであれば、式(76)、(78)、(79)において、D0X(D)が存在する必要はない。
また、検査行列Hにおける行重み、つまり、検査行列を構成する行要素のうち、1が立っている要素数が、7〜12とすると良好な受信品質が得られることが確認されている。非特許文献12に記載されているように、畳み込み符号において最小距離が優れている符号を考えると、拘束長が大きくなるにつれ、行重みが増える、例えば、拘束長11のフィードバック畳み込み符号では、行重みが14となることを考慮すると、行重みが7〜12とする点は、本提案のLDPC−CC特有の値であると考えることができる。また、符号設計のメリットを考慮した場合、LDPC−CCの検査行列の各行の行重みを等しくすると設計が容易となる。
(実施の形態9)
本実施の形態では、実施の形態7および実施の形態8で説明した符号化率1/2のLDPC−CC(時変周期m)から符号化率1/3のLDPC−CCを作成する方法について詳しく説明する。一例として、時変周期2のLDPC−CCを例に説明する。
時点2iのデータXとパリティPをそれぞれX2i、P2iであらわし、時点2i+1のデータXとパリティPをそれぞれX2i+1、P2i+1であらわす(i:整数)。このとき、時点2iのパリティP2iは式(64)を用いて求め、時点2i+1のパリティP2i+1は式(66)を用いて求める時変周期が2のLDPC−CCを考える。
ここで、新たなパリティ系列の多項式をPn(D)として、式(82)〜式(84)のいずれかを考える。
なお、a1、a2、・・・、ayは1以上の整数(ただし、a1≠a2≠・・・≠ay)とする。また、b1、b2、・・・、bwは1以上の整数(ただし、b1≠b2≠・・・≠bw)とする。また、c1、c2、・・・、cy(ただし、c1≠c2≠・・・≠cy)は0以上の整数とする。
そして、式(82)〜式(84)のいずれかで構成される異なる検査多項式「検査式#1」および「検査式#2」を用意する。
時点2iにおけるデータをX2i、及び、時点2iにおけるパリティP2iを、式(64)を用いて求め、時点2iにおけるパリティPn,2i(符号化率1/3のためのパリティ)を「検査式#1」を用いて求める。このとき、送信系列は、W2i=(X2i,P2i,Pn2i)とあらわすことができる。
同様にして、時点2i+1におけるデータをX2i+1、及び、時点2i+1におけるパリティP2i+1を、式(66)を用いて求め、時点2i+1におけるパリティPn2i+1(符号化率1/3のためのパリティ)を「検査式#2」を用いて求める。このとき、送信系列は、W2i+1=(X2i+1,P2i+1,Pn2i+1)とあらわすことができる。なお、一般的には、c1,・・・,cyの中には、“0”となるものが一つ存在する。
式(82)、(83)、(84)におけるX(D)、P(D)、Pn(D)のそれぞれに対応する項について考える。符号化率1/2の検査式は、式(64)、(66)から構成される。このとき、X(D)、P(D)には、それぞれには複数の項(検査行列において“1”が複数ある)が存在することになる。そして、符号化率1/3にする場合に、式(82)、(83)、(84)のいずれかで構成される検査式が追加されることになる。
このときの列重みについて考える。符号化率1/2のときの検査式により、データXおよびパリティPにはある程度の列重み、例えば、5程度の重みが存在することになる。この状態において、符号化率1/3にするために、式(82)、(83)、(84)のいずれかで構成される検査式を追加すると、データXおよびパリティPの列重みが増加することになるものの、列重みをある程度抑えないとBP復号を行った際、受信品質の向上が見込めない。したがって、符号化率1/3にする際、式(82)、(83)、(84)のいずれかで構成される検査式を追加した場合に、データXおよびパリティPの列重みの増加数は1または2に抑えなくてはならない。したがって、式(82)は、式(85)〜式(88)のいずれかとなる。
また、式(83)は、式(89)、(90)のいずれかとなる。
また、式(84)は、式(91)、(92)のいずれかとなる。
以上のように、本実施の形態では、パリティ検査多項式(64)と、式(64)と異なるパリティ検査多項式(66)と、からなる時変周期2の検査行列に、パリティ検査多項式(82)〜(84)から構成される時変周期2の検査行列を追加し、追加された検査行列を用いて、パリティ系列を求めるようにした。
このようにすることで、時変周期2の符号化率1/2の畳み込み符号から時変周期2の符号化率1/3のLDPC−CCを生成することができる。また、符号化率1/4以下のLDPC−CCを生成する場合についても、符号化率1/3のLDPC−CCを生成するときと同様に生成することができる。
なお、時変周期は2に限られず、実施の形態7および実施の形態8において説明した時変周期mの場合に対しても、同様に実施することができる。また、当然であるが、実施の形態8の時変周期2の場合も同様に実施することができる。また、以上の説明では、符号化率1/3とするために、新たにパリティ検査式として、式(82)〜式(84)のいずれかにより構成される時変周期2のパリティ検査式を用いる場合について説明したが、時変周期nのパリティ検査多項式を用いても、同様に実施することができる。式(82)〜式(84)において、実施の形態8と同様に、a1、a2、・・・、ayが、−1以下であってもよい。
(他の実施の形態1)
上記の説明では、符号化率1/2のときの畳み込み符号を例に説明したが、本実施の形態では、符号化率が1/nのときのLDPC−CCの構成方法について説明する。
符号化率1/nのとき、情報系列(データ)の多項式表現をX(D)、パリティ1の系列の多項式表現をP
1(D)、パリティ2の系列の多項式表現をP
2(D)、・・・、パリティn―1の系列の多項式表現をP
n―1(D)とするとパリティ検査多項式は以下の式(93)のようにあらわすことができる。
このとき、Kx、K1、K2、・・・、Kn−1は0以上の整数とし、Kx、K1、K2、・・・、Kn−1のうちの最大値をKmaxとする。
ここで、時点iにおけるデータをXi、パリティ1をP1,i、パリティ2をP2,i、・・・、パリティn−1をPn−1,iとあらわす。そして、送信ベクトルw=(X1,P1,1,P2,1,・・・,Pn−1,1,X2,P1,2,P2,2,・・・,Pn−1,2,・・・,Xi,P1,i,P2,i,・・・,Pn−1,i,・・・)とあらわす。この場合、検査行列をHとすると上記式(3)が成立する。
ここで、実施の形態1と同様に、データ、または(および)、パリティに対し、確率伝播を考慮し、検査行列に対し「1」を追加する。このとき、図20の項2001_0、2001_1、2001_2、・・・、2001_n−1の一つ以上を選択し、項2002_0、2002_1、2002_2、・・・、2002_n−1と変更することになる。例えば、図20の2001_0を選択した場合、2001_0を2002_0へと変更し、それ以外は変更しない。また、図20の2001_0、2001_n−1を選択した場合、2001_0を2002_0へと変更し、加えて、2001_n−1を2002_n−1と変更し、それ以外は変更しない。当然であるが、図20の項2001_0、2001_1、2001_2、・・・、2001_n−1すべてを変更してもよい。すなわち、検査多項式は、以下の式(94)となる。
このとき、図20、式(94)におけるsx、s1、s2、・・・、sn−1は1以上であって、h1、h2、・・・hsk≧2Kmax+1に設定する(k=x,1,2,・・・,n−1)。これにより、良好な受信品質を得ることができる。また、h1、h2、・・・、hskのうち1つ以上が2Kmax+1以上を満たす場合でも良好な受信品質を得ることができる。
次に、符号化率を1/nとし、検査行列の上台形行列に「1」を追加する方法について詳しく説明する。
符号化率1/nのとき、情報系列(データ)の多項式表現をX(D)、パリティ1の系列の多項式表現をP1(D)、パリティ2の系列の多項式表現をP2(D)、・・・、パリティn−1の系列の多項式表現をPn−1(D)とするとパリティ検査多項式は式(32)となる。
ここで、時点iにおけるデータをXi、パリティ1をP1,i、パリティ2をP2,i、・・・、パリティn−1をPn−1,iとあらわす。そして、送信ベクトルw=(X1,P1,1,P2,1,・・・,Pn−1,1,X2,P1,2,P2,2,・・・,Pn−1,2,・・・,Xi,P1,i,P2,i,・・・,Pn−1,i,・・・)とあらわす。この場合、検査行列をHとすると上記式(3)が成立する。
ここで、実施の形態2と同様に、データ、または(および)、パリティに対し、確率伝播を考慮し、検査行列に対し「1」を追加する。このとき、図21の項15_0を、項15_1,0へと変更することになる。すなわち、検査多項式は、以下の式(95)となる。
このとき、図21におけるsxは1以上であって、h1、h2、・・・hsx≦−Kmax−1に設定する。これにより、良好な受信品質を得ることができる。また、h1、h2、・・・、hsxのうち1つ以上が−Kmax−1以下を満たす場合でも良好な受信品質を得ることができる。
以上のように、実施の形態1、実施の形態2で説明した方法を、本実施の形態のように符号化率1/nの畳み込み符号からLDPC−CCを生成する方法へと拡張することもできる。また、上記以外の符号化率の畳み込み符号からLDPC―CCを作成する場合についても、これまでに述べた方法を拡張すれば、同様にしてLDPC―CCを作成することができる。
なお、本発明において、データを送信する際に非特許文献12に記載されているようにパンクチャを行って送信しても、受信装置において、BP復号を行うことにより、データを得ることができる。このとき、実施の形態で説明したLDPC−CCは、単純な検査行列であらわされるため、LDPC−BCのときと比較し、簡単にデータをパンクチャすることができる。
なお、本実施の形態では、図21のように、データに対して検査行列の上台形行列に「1」を追加する例を説明したが、本発明はこれに限られず、図20の場合と組み合わせ、検査行列の上台形行列に「1」を追加することに加え、さらに検査行列の近似下三角行列に「1」を追加してもよい。これにより、さらなる受信品質の向上が期待できる。この場合の検査多項式は、以下の式(96)となる。
また、実施の形態3で述べた符号化率1/2のときの終端方法を本実施の形態のように符号化率1/nのときにも同様に実施することができる。
(他の実施の形態2)
ここでは、本発明の符号化器(エンコーダ)の構成について説明する。図22は、式(15)の符号化器の構成の一例を示す図である。
図22において、パリティ計算部2202は、データx(2201)(つまり、(数15)のX(D))、記憶されたデータ2205(つまり、(数15)のDα1X(D)、Dα2X(D)、D9X(D)、D6X(D)、D5X(D))、記憶されたパリティ2207(つまり、(数15)のDβ1P(D)、Dβ2P(D)、D9P(D)、D8P(D)、D3P(D)、DP(D))を入力とし、式(15)の演算を行い、パリティ2203(つまり、式(15)のP(D))を出力する。
データ記憶部2204は、データx(2201)を入力とし、その値を記憶する。同様に、パリティ記憶部2206は、パリティ2203を入力とし、その値を記憶する。
図23は、式(19)の符号化器の構成の一例を示す図である。図23において、図22と同様に動作するものについては同一符号を付している。記憶部2302は、データ2301を記憶し、記憶されているデータ2303(式(19)のDα1X(D)・・・DαnX(D))を出力する。
データ記憶部2204は、記憶されたデータ2205(つまり、式(19)のD2X(D))を出力する。
パリティ記憶部2206は、記憶されたパリティ2207(つまり、式(19)のD2P(D)、DP(D))を出力する。
パリティ計算部2202は、各信号を入力とし、式(19)のパリティを計算し、出力する。
以上のように、基本的には、シフトレジスタおよび排他的論理和により、符号化器を構成することができる。
次に、復号器のアルゴリズムの一例として、sum-product復号について説明する。sum-product復号のアルゴリズムは以下のとおりである。
sum-product復号
2元M×N行列H={H
mn}を復号対象とするLDPC符号の検査行列とする。集合[1,N]={1,2,・・・,N}の部分集合A(m)、B(n)を次式(97)、(98)のように定義する。
なお、A(m)は検査行列Hのm行目において、「1」である列インデックスの集合を意味し、B(n)は検査行列Hのn行目において「1」である行インデックスの集合である。
Step A・1(初期化)
Hmn=1を満たす全ての組(m,n)に対して対数尤度比β(0) mn=λnと設定する。ループ変数(反復回数)lsum=1とし、ループ最大回数をlsum、muxと設定する。
Step A・2(行処理)
m=1,2,・・・,Mの順にH
mn=1を満たす全ての組(m,n)に対して、以下の更新式(99)、(100)、(101)を用いて対数尤度比α
(i) mnを更新する。ただし、iは反復回数をあらわし、fはGallagerの関数である。
Step A・3(列処理)
n=1,2,・・・,Nの順にH
mn=1を満たす全ての組(m,n)に対して、以下の更新式(102)を用いて対数尤度比β
(i) mnを更新する。
Step A・4(対数尤度比の計算)
n∈[1,N]について対数尤度比L
(i) nを以下の式(103)により求める。
Step A・5(反復回数のカウント)
l
sum<l
sum、muxならばl
sumをインクリメントして、step A・2に戻る。一方、l
sum=l
sum、muxの場合、式(104)に示すように符号語wを推定し、sum-product復号を終了する。
ところで、送信系列(符号化後のデータ)を図3のように、n
1、n
2、n
3、n
4、・・・とし、u=(n
1,n
2,n
3,n
4,・・・)とし、生成行列をGとすると、以下の式(105)の関係式が成立する。
そして、情報系列のベクトルi=(i
1,i
2,・・・)とすると、以下の式(106)の関係式が成立する。
式(105)、(106)の関係式を利用することで、送信系列が求まることになる。
図24は、復号器として、sum-product復号を用いたときの構成の一例を示す図である。図24の復号器2400は、対数尤度比記憶部2403、行処理演算部2405、行処理後データ記憶部2407、列処理演算部2409、列処理後データ記憶部2411、制御部2413、対数尤度比演算部2415、及び、判定部2417を備えて構成される。
対数尤度比記憶部2403は、対数尤度比信号2401、タイミング信号2402を入力とし、タイミング信号2402に基づいてデータ区間の対数尤度比を記憶する。そして、対数尤度比記憶部2403は、記憶した対数尤度比を信号2404として行処理演算部2405に出力する。
行処理演算部2405は、対数尤度比信号2404、列処理後の信号2412を入力とし、検査行列Hに“1”が存在する位置において、上述のStep A・2(行処理)の演算を行う。復号器は反復復号を行っているので、行処理演算部2405は、1回目の復号時には、対数尤度比信号2404を用いて行処理を行い(上述のStep A・1の処理に相当する)、2回目の復号時には、列処理後の信号2412を用いて行処理を行う。そして、行処理演算部2405は、行処理後の信号2406を行処理後データ記憶部2407に出力する。
行処理後データ記憶部2407は、行処理後の信号2406を入力とし、すべての行処理後の値(信号)を記憶する。そして、行処理後データ記憶部2407は、行処理後の信号2408を列処理演算部2409及び対数尤度比演算部2415に出力する。
列処理演算部2409は、行処理後の信号2408及び制御信号2414を入力とし、制御信号2414から最後の反復演算でないことを確認し、検査行列Hに“1”が存在する位置において、上述のStep A・3(列処理)の演算を行う。そして、列処理演算部2409は、列処理後の信号2410を列処理後データ記憶部2411に出力する。
列処理後データ記憶部2411は、列処理後の信号2410を入力とし、すべての列処理後の値(信号)を記憶する。そして、列処理後データ記憶部2411は、列処理後の信号2412を行処理演算部2405に出力する。
制御部2413は、タイミング信号2402を入力とし、反復回数をカウントし、反復回数を制御信号2414として列処理演算部2409及び対数尤度比演算部2415に出力する。
対数尤度比演算部2415は、行処理後の信号2408、制御信号2414を入力とし、制御信号2414に基づいて最後の反復演算であると判断した場合、検査行列Hに“1”が存在する位置に対して、Step A・4(対数尤度比の計算)の演算を施し、対数尤度比信号2416を得る。そして、対数尤度比演算部2415は、対数尤度比信号2416を判定部2417に出力する。
判定部2417は、対数尤度比信号2416を入力とし、符号語を推定し、推定ビット2418を出力する。
ここでは、BP復号として、sum-product復号について述べたが、BP復号を近似したmin-sum復号、offset BP復号、Normalized BP復号、shuffled BP復号などを用いることでも、復号を行うことができる。
(他の実施の形態3)
これまでの実施の形態で説明したLDPC−CCにおいて、パンクチャを行う際、データ、パリティいずれを優先的にパンクチャ(送信しないビットと選択する)すべきか、という問題が発生する。
検査行列の行を考えた場合、つまり、パリティ検査多項式を考えた場合、検査行列の行においてデータに対応する位置に1が存在する数をNx、パリティに対応する位置に1が存在する数をNpとし、NpとNxとの比較結果により、以下1)又は2)のように、優先的にパンクチャする(送信しないビットと選択する)ビットを選択するようにしてもよい。
1)Np<Nxの場合:データを優先的にパンクチャする
2)Nx<Npの場合:パリティを優先的にパンクチャする
このようにすると、パンクチャを行った場合の受信品質の劣化を抑えることができる。
(他の実施の形態4)
本実施の形態では、これまでの実施の形態で説明したパンクチャ方法を実現する送信装置及び受信装置について説明する。本実施の形態に係る送信装置及び受信装置は、複数の符号化率に対応することができる。
図25は、本実施の形態に係る送信装置の構成を示す図である。図25の送信装置2500は、LDPC−CC符号化部(LDPC−CC符号化器)2510、パンクチャ部2520、インタリーブ部2530、及び、変調部2540を備えて構成される。
LDPC−CC符号化部2510は、制御信号が指定する符号化率のLDPC−CCの検査行列を用いて、データXに対し符号化を施す。例えば、制御信号が、符号化率1/2以上を指定する場合、LDPC−CC符号化部2510は、符号化率1/2のLDPC−CCの検査行列を用いて、データXに対し符号化を行い、データX及びパリティPを、パンクチャ部2520に出力する。また、制御信号が、符号化率1/3を指定する場合、LDPC−CC符号化部2510は、符号化率1/3のLDPC−CCの検査行列を用いて、データXに対し符号化を行い、データX、パリティP、及びパリティPnを、パンクチャ部2520に出力する。
パンクチャ部2520は、制御信号が指定する符号化率に応じて、LDPC−CC符号化部2510から出力されるデータX、パリティP、又はパリティPnに対し、パンクチャを施す。なお、本実施の形態では、パンクチャ部2520は、ランダムにパンクチャをするのではなく、周期的に規則的にビットをパンクチャする。パンクチャ部2520は、パンクチャ後の送信系列を、インタリーブ部2530に出力する。
具体的には、制御信号が指定する符号化率が1/2を超える場合、パンクチャ部2520は、パリティPを周期的にパンクチャし、所定の符号化率にする。
一方、制御信号が指定する符号化率が1/2又は1/3の場合、パンクチャ部2520は、パンクチャを行わず、送信系列をインタリーブ部2530に出力する。
インタリーブ部2530は、送信系列の順序を並び替え、並び替え後の送信系列を変調部2340に出力する。
変調部2540は、制御信号により指定された変調方式を用いて、インタリーブ後の送信系列を変調する。
なお、図26に、送信系列の送信フォーマットの一例を示す。送信系列は、制御情報シンボルとデータシンボルとから構成される。なお、制御情報シンボルは、符号化率や変調方式を通信相手に通知するためのシンボルである。
図27は、本実施の形態に係る受信装置の構成を示す図である。図27の受信装置2700は、受信部2710、対数尤度比生成部2720、制御情報生成部2730、デインタリーブ部7540、デパンクチャ部2750、及び、BP復号部2760を備えて構成される。
受信部2710は、送信装置2500から送信される受信信号を受信し、RF(Radio Frequency)フィルタ処理、周波数変換、A/D(Analog to Digital)変換、直交復調などの無線復調処理を行い、無線復調処理後のベースバンド信号を対数尤度比生成部2720に出力する。また、受信部2710は、ベースバンド信号に含まれる既知信号を用いて、送信装置2500と受信装置2700との間の無線伝送路におけるチャネル変動を推定し、推定したチャネル推定信号を対数尤度比生成部2720に出力する。
対数尤度比生成部2720は、ベースバンド信号を用いて、各送信系列の対数尤度比を求め、得られた対数尤度比をデインタリーブ部2740に出力する。
制御情報生成部2730は、ベースバンド信号に含まれる制御情報シンボルから制御情報を抽出する。制御情報シンボルには、符号化率や変調方式の情報が含まれる。制御情報生成部2730は、抽出した制御情報を制御信号として対数尤度比生成部2720、デインタリーブ部2740、デパンクチャ部2750、及び、BP復号部2760に出力する。
デインタリーブ部2740は、送信装置2500のインタリーブ部2530で行なわれた並び替え処理の逆の処理を用いて、対数尤度比の系列の順序を元の順に並び替え、並び替え後の対数尤度比をデパンクチャ部2750に出力する。
デパンクチャ部2750は、送信装置2500のパンクチャ部2520で行われるパンクチャの逆の処理を用いて、デインタリーブ部2740から出力される対数尤度比に対しデパンクチャを行う。つまり、送信装置2500のパンクチャ部2520では、符号化率が1/2を超える場合、パリティPが周期的にパンクチャされるので、この場合、デインタリーブ部2740は、パンクチャ部2520でパンクチャされたビットの対数尤度比として0を挿入する。なお、パンクチャ部2520では、符号化率が1/2又は1/3の場合、パンクチャが行われないので、上記デパンクチャ処理を行わず、対数尤度比をBP復号部2560に出力する。
BP復号部2760は、制御信号が示す符号化率に応じて、LDPC−CCの検査行列を切り替えて、BP復号する。具体的には、BP復号部2760は、符号化率1/2と符号化率1/3とに対応したLDPC−CCの検査行列を備え、制御信号が符号化率1/3を示す場合、符号化率1/3の検査行列を用いてBP復号する。一方、制御信号が符号化率1/3以外の符号化率を示す場合には、符号化率1/2の検査行列を用いてBP復号する。
なお、図28に、一例として、符号化率R=1/2の場合のLDPC−CC符号化部2510の構成例を示す。図28に示すように、LDPC−CC符号化部2510は、シフトレジスタ2511−1〜2511−M,2514−1〜2514−M、ウェイト乗算器2512−0〜2512−M,2513−0〜2513−M、ウェイト制御部2316、及びmod2加算器2515を備えて構成される。
シフトレジスタ2511−1〜2511−M及び2514−1〜2514−Mは、それぞれv1,t−i,v2,t−i(i=0,…,M)を保持するレジスタであり、次の入力が入ってくるタイミングで、保持している値を右隣のシフトレジスタに出力し、左隣のシフトレジスタから出力される値を新たに保持する。なお、シフトレジスタの初期状態はすべて0である。
ウェイト乗算器2512−0〜2512−M,2513−0〜2513−Mは、ウェイト制御部2316から出力される制御信号に従って、h1 (m),h2 (m)の値を0/1に切り替える。ウェイト制御部2516は、内部に保持している検査行列に基づいて、そのタイミングにおけるh1 (m),h2 (m)の値をウェイト乗算器2512−0〜2512−M,2513−0〜2513−Mに出力する。
mod2加算器2515は、ウェイト乗算器2512−0〜2512−M,2513−0〜2513−Mの出力に対しmod2加算を行い、v2,tを算出する。
このような構成を採ることで、LDPC−CC符号化部(LDPC−CC符号化器)2510は、検査行列に従ったLDPC−CCの符号化を行うことができる。
なお、ウェイト制御部2516が保持する検査行列の各行の並びが行ごとに異なる場合、LDPC−CC符号化部2510は、時変(time varying)畳み込み符号化器となる。
図29に、パリティ検査多項式に、D−K(X)(K:正の整数)が含まれる場合、つまり、検査行列の上台形行列に「1」が追加された検査行列を用い、符号化率R=1/2の場合のLDPC−CC符号化部(LDPC−CC符号化器)の構成例を示す。図29のLDPC−CC符号化部2910は、図28のLDPC−CC符号化部(LDPC−CC符号化器)2510に対し、シフトレジスタ2911−1〜2911−K、及び、ウェイト乗算器2912−1〜2912−Kを追加した構成を採る。
シフトレジスタ2911−1〜2911−Kは、v1,t−i(i=−1,…,−K)を保持するレジスタであり、次の入力が入ってくるタイミングで、保持している値を右隣のシフトレジスタに出力し、左隣のシフトレジスタから出力される値を新たに保持する。なお、シフトレジスタの初期状態はすべて0である。
ウェイト乗算器2912−0〜2912−Kは、ウェイト制御部2316から出力される制御信号に従って、h1 (−k),h2 (−k)の値を0/1に切り替える。
ウェイト制御部2516は、内部に保持している検査行列に基づいて、そのタイミングにおけるh1 (m),h2 (m)の値をウェイト乗算器2512−0〜2512−M,2513−0〜2513−Mに出力する。また、ウェイト制御部2516は、内部に保持している検査行列に基づいて、そのタイミングにおけるh1 (−k),h2 (−k)の値をウェイト乗算器2912−1〜2912−Kに出力する。
mod2加算器2515は、ウェイト乗算器2512−0〜2512−M,2513−0〜2513−M,2912−0〜2912−Kの出力に対しmod2加算を行い、v2,tを算出する。
図29のような構成とすることで、LDPC−CC符号化部(LDPC−CC符号化器)2510は、パリティ検査多項式に、D−K(X)(K:正の整数)が含まれる場合にも対応することができる。
なお、図28、図29と同様の構成により、符号化率R=1/2未満に対応するLDPC−CC符号化部(LDPC−CC符号化器)を構成することができる。例えば、符号化率R=1/3の場合、図28、図29に、さらに、パリティ系列Pnを生成するためのシフトレジスタ、ウェイト乗算器、及び、mod2加算器を追加すればよい。
また、以上の説明では、LDPC−CC符号化部2510が、符号化率R=1/2以上の場合と、符号化率R=1/3の場合とに応じて、符号化系列の作成方法を切り替える場合について説明したが、符号化率に関わらず、LDPC−CC符号化部2510が、すべての送信系列(パリティPnも含む)を生成し、符号化率R=1/2の場合には、当該パリティPnを出力しないようにしてもよい。このようにすることで、LDPC−CC符号化部(LDPC−CC符号化器)を符号化率R=1/2と符号化率R=1/3とに対応させることができる。
また、以上の説明では、BP復号部2760が、符号化率R=1/2以上の場合と、符号化率R=1/3の場合とに応じて、符号化系列の復号方法を切り替える場合について説明したが、符号化率に関わらず、BP復号部2760が、符号化率1/3のの検査行列を用いてBP復号し、制御信号が示す符号化率が1/3以外を示す場合には、得られたパリティPnに対する対数尤度比を0に置き替えるようにしてもよい。このようにすることで、BP復号部を共用化することができる。
(他の実施の形態5)
本実施の形態では、実施の形態8の変形例について詳しく説明する。以下では、符号化率R=1/2の時変LDPC−CCの構成方法について説明する。
符号化率1/2のとき、情報系列(データ)の多項式表現をX(D)、パリティの系列の多項式表現をP(D)とすると、パリティ検査多項式は以下のようにあらわされる。
式(107)において、a1、a2、・・・、anは0以上の整数(ただし、a1≠a2≠・・・≠an)とする。また、b1、b2、・・・、bmは1以上の整数(ただし、b1≠b2≠・・・≠bm)とする。また、c1、c2、・・・、cqは−1以下の整数(ただし、c1≠c2≠・・・≠cq)とする。このとき、P(D)は以下のようにあらわされる。
よって、パリティPは逐次的に求めることができる(実施の形態2、実施の形態8参照)。
次に、式(107)とは異なる符号化率1/2のパリティ検査多項式として、式(109)および式(110)を考える。
式(109)、式(110)において、A1、A2、・・・、ANは0以上の整数(ただし、A1≠A2≠・・・≠AN)とする。また、B1、B2、・・・、BMは1以上の整数(ただし、B1≠B2≠・・・≠BM)とする。また、C1、C2、・・・、CQは−1以下の整数(ただし、C1≠C2≠・・・≠CQ)とする。このとき、P(D)は以下のようにあらわされる。
時点2iのデータXとパリティPとをそれぞれX2i、P2iであらわし、時点2i+1のデータXとパリティPをそれぞれX2i+1、P2i+1であらわす(i:整数)。
このとき、時点2iのパリティP
2iは式(108)を用いて求め、時点2i+1のパリティP
2i+1は式(111)を用いて求める時変周期が2のLDPC−CC、または、時点2iのパリティP
2iは式(108)を用いて求め、時点2i+1のパリティP
2i+1を式(112)を用いて求める時変周期が2のLDPC−CCを考える。
このようなLDPC−CCでは、
・符号化器を簡単に構成することができ、かつ、パリティを逐次的に求めることができる。
・周期的にパンクチャビットを設定することができる。
・終端ビットの削減、終端時のパンクチャ時の受信品質の向上が見込める
という利点を備える。
次に、時変周期をmとするLDPC−CCを考える。時変周期2の場合と同様に、式(109)又は式(110)のいずれかであらわされる「検査式#1」と、式(109)または式(110)のいずれかであらわされる、「検査式#2」、「検査式#3」・・・「検査式#m」を用意する。時点mi+1のデータXとパリティPをそれぞれXmi+1、Pmi+1、時点mi+2のデータXとパリティPをそれぞれXmi+2、Pmi+2、・・・時点mi+mのデータXとパリティPをそれぞれXmi+m、Pmi+mとあらわす(i:整数)。
このとき、時点mi+1のパリティPmi+1を「検査式#1」でもとめ、時点mi+2のパリティPmi+2を「検査式#2」でもとめ、・・・、時点mi+mのパリティPmi+mを「検査式#m」で求めるLDPC−CCを考える。このようなLDPC−CC符号は、
・符号化器を簡単に構成することができ、かつ、パリティを逐次的に求めることができる。
・終端ビットの削減、終端時のパンクチャ時の受信品質の向上が見込める
という利点を備える。
以下、本実施の形態における検査行列の構成例を示す。
図30は、時変周期2のLDPC−CCの検査行列の構成例を示している。図30において、符号3001は、時点iのデータXi及びパリティPiに対応する部分を示している。同様に、符号3002は、時点i+1のデータXi+1及びパリティPi+1に対応する部分を示している。
図30における符号3003に対応するパリティ検査多項式(例えば、時点iにおけるパリティ検査多項式)は、以下のようにあらわすことができる。
式(113)において、a1、a2、・・・、anは−1及び0以外の整数(ただし、a1≠a2≠・・・≠an)とする。また、b1、b2、・・・、bmは1以上の整数(ただし、b1≠b2≠・・・≠bm)とする。なお、図30では、a1、a2、・・・、anは正の整数とする。このとき、P(D)は逐次的に求めることができる。
同様に、図30における符号3004のパリティ検査多項式(例えば、時点i+1におけるパリティ検査多項式)は以下のようにあらわすことができる。
式(114)において、A1、A2、・・・、ANは1及び0以外の整数(ただし、A1≠A2≠・・・≠AN)とする。また、B1、B2、・・・、BMは1以上の整数(ただし、B1≠B2≠・・・≠BM)とする。このとき、P(D)は逐次的に求めることができる。
つまり、時点2jの場合、パリティPは式(113)に基づいて求められ、時点2j+1の場合、パリティPは式(114)に基づいて求められる(jは整数)。図30に示す構成を採る時変周期2の時変LDPC−CCの場合、時点iにおけるパリティPiの信頼度が、時点i+1におけるデータXi+1に伝播し、その結果、時点i+1におけるデータXi+1が復号される。そして、時点i+1におけるパリティPi+1の信頼度が、時点iにおけるデータXiに伝播し、その結果、時点iにおけるデータXiが復号される。
実施の形態7では、同一時点のデータとパリティとが関連性を有し、データが復号されるのに対し、本実施の形態では、異なる時点のデータとパリティが関連性を有するパリティ検査式が存在することになる。そして、関連性を有するデータとパリティとの位置関係を、同一時点の場合を除いて考えると、図30に示す例では、時点iと時点i+1とにおけるデータXi+1とパリティPiとが関連性を有することから、時変周期2の時変LDPC−CCにおいて、時間的に最も近い位置関係にある。よって、復号の際、関連するデータとパリティとの時間的な位置関係を、考慮する必要性が低いという利点がある。このように、時変周期が2のLDPC−CCを、時点iと時点i+1とにおけるデータXi+1とパリティPiとが関連性を有するように構成し、時変周期2内で関係付けられるようにする。
時変周期2以外の時変LDPC−CCに対しても、同様の特徴をもたせることができる。すなわち、時変周期m内にデータとパリティとが関連性を有するようにLDPC−CCを構成することができる。以下、図31を用いて、時変周期7の場合について説明する。
図31は、時変周期7のLDPC−CCの検査行列の構成例を示している。図31において、符号3101は、時点iのデータXi及びパリティPiに対応する部分を示す。また、符号3102は、時点i+1のデータXi+1及びパリティPi+1に対応する部分を示す。また、符号3103は、時点i+2のデータXi+2及びパリティPi+2に対応する部分を示す。また、符号3104は、時点i+3のデータXi+3及びパリティPi+3に対応する部分を示す。また、符号3105は、時点i+4のデータXi+4及びパリティPi+4に対応する部分を示す。また、符号3106は、時点i+5のデータXi+5及びパリティPi+5に対応する部分を示す。また、符号3107は、時点i+6のデータXi+6及びパリティPi+6に対応する部分を示す。
図31に示す構成を採る時変周期7の時変LDPC−CCの場合、時点iにおけるパリティPiの信頼度(「1」が配置されている)が、時点i+6におけるデータXi+6に伝播し(パリティPiと同じ行に「1」が配置されている)、その結果、時点i+6におけるデータXi+6が復号される。
時点i+1におけるパリティPi+1の信頼度が、時点i+1におけるデータXi+1に伝播し、その結果、時点i+1におけるデータXi+1が復号される。
時点i+2におけるパリティPi+2の信頼度が、時点i+5におけるデータXi+5に伝播し、その結果、時点i+5におけるデータXi+5が復号される。
時点i+3におけるパリティPi+3の信頼度が、時点i+4におけるデータXi+4に伝播し、その結果、時点i+4におけるデータXi+4が復号される。
時点i+4におけるパリティPi+4の信頼度が、時点i+3におけるデータXi+3に伝播し、その結果、時点i+3におけるデータXi+3が復号される。
時点i+5におけるパリティPi+5の信頼度が、時点i+2におけるデータXi+2に伝播し、その結果、時点i+2におけるデータXi+2が復号される。
時点i+6におけるパリティPi+6の信頼度が、時点iにおけるデータXiに伝播し、その結果、時点iにおけるデータXiが復号される。
図31に示すように、時変周期が7のLDPC−CCを、時点iから時点i+6におけるデータとパリティとが関連性を有するように構成し、時変周期7内で関係付けられるようにする。
このように、パリティとデータとが、時変周期内で関係付けされるように、LDPC−CCを構成することにより、復号の際、データとパリティとの時間的な位置関係を考慮する必要性が低いという利点がある。
(他の実施の形態6)
本実施の形態では、実施の形態7で説明した符号化率1/2の時変LDPC−CCを作成する方法を拡張し、符号化率1/3の時変LDPC−CCを作成する方法について説明する。
時点2iのデータX、パリティP、パリティPnをそれぞれX
2i、P
2i、Pn
2iであらわし、時点2i+1のデータX、パリティP、パリティPnをそれぞれX
2i+1、P
2i+1、Pn
2i+1であらわす(i:整数)。ここで、データXの多項式をX(D)、パリティPの多項式をP(D)、パリティPnの多項式をPn(D)とし、以下のパリティ検査多項式を考える。
式(115)において、a1、a2、・・・、anは0以外の整数(ただし、a1≠a2≠・・・≠an)とする。また、b1、b2、・・・、bmは1以上の整数(ただし、b1≠b2≠・・・≠bm)とする。また、c1、c2、・・・、cqは1以上の整数(ただし、c1≠c2≠・・・≠cq)とする。そして、式(115)の関係式を用いて、時点2iのP(D)を求める。このとき、P(D)は逐次的に求めることができる。
次に、パリティ検査多項式として、式(116)を考える。
式(116)において、A1、A2、・・・、ANは0以外の整数(ただし、A1≠A2≠・・・≠AN)とする。また、B1、B2、・・・、BMは1以上の整数(ただし、B1≠B2≠・・・≠BM)とする。また、C1、C2、・・・、CQは1以上の整数(ただし、C1≠C2≠・・・≠Cq)とする。そして、式(116)の関係式を用いて、時点2iのPn(D)を求める。このとき、Pn(D)は逐次的に求めることができる。
次に、パリティ検査多項式として、式(117)を考える。
式(117)において、α1、α2、・・・、αωは0以外の整数(ただし、α1≠α2≠・・・≠αω)とする。また、β1、β2、・・・、βξは1以上の整数(ただし、β1≠β2≠・・・≠βξ)とする。また、γ1、γ2、・・・、γλは1以上の整数(ただし、γ1≠γ2≠・・・≠γλ)とする。そして、式(117)の関係式を用いて、時点2i+1のP(D)を求める。このとき、P(D)は逐次的に求めることができる。
次に、パリティ検査多項式として、式(118)を考える。
式(118)において、E1、E2、・・・、EΩは0以外の整数(ただし、E1≠E2≠・・・≠EΩ)とする。また、F1、F2、・・・、FZは1以上の整数(ただし、F1≠F2≠・・・≠FZ)とする。また、G1、G2、・・・、GΛは1以上の整数(ただし、G1≠G2≠・・・≠GΛ)とする。そして、式(118)の関係式を用いて、時点2i+1のPn(D)を求める。このとき、Pn(D)は逐次的に求めることができる。
以上のようにして、時変周期2のLDPC−CC符号を作成することにより、実施の形態7と同様に、周期的にパンクチャビットを選択する方式を採用した場合に、最良のパンクチャパターンを容易に選択することができるという利点がある。
なお、時変周期10以内であれば、周期的にパンクチャする方式を採用し、最良なパンクチャパターンを探索するのは容易である。
次に、時変周期をmとするLDPC−CCを考える。
時変周期mの場合、式(115)であらわされる異なるm個の検査式を用意し、当該m個の検査式を「検査式A#1、検査式A#2、・・・、検査式A#m」と名づける。また、式(116)であらわされる異なるm個の検査式を用意し、当該m個の検査多項式を「検査式B#1、検査式B#2、・・・、検査式B#m」と名づける。
そして、時点mi+1のデータX、パリティP、パリティPnをそれぞれXmi+1、Pmi+1、Pnmi+1、時点mi+2のデータX、パリティP、パリティPnをそれぞれXmi+2、Pmi+2、Pnmi+2、・・・時点mi+mのデータX、パリティP、パリティPnをそれぞれXmi+m、Pmi+m、Pnmi+mであらわす(i:整数)。
このとき、時点mi+1のパリティPmi+1は「検査式A#1」を用いて求め、パリティPnmi+1は「検査式B#1」を用いて求め、時点mi+2のパリティPmi+2は「検査式A#2」を用いて求めめ、パリティPnmi+2は「検査式B#2」を用いて求め、・・・、時点mi+mのパリティPmi+mは「検査式A#m」を用いて求め、パリティPnmi+mは「検査式B#m」を用いて求める時変周期mのLDPC−CCを考える。このようなLDPC−CC符号は、受信品質がよい符号であるとともに、パリティを逐次的に求めることができるという利点を備える。
なお、符号化率は1/3に限られず、符号化率1/3以下のLDPC−CC符号についても、同様に作成することができる。
(他の実施の形態7)
本実施の形態では、LDPC−CC符号化により得られた送信符号語系列に適するパンクチャを施す送信装置及びパンクチャ方法の一例を説明する。
図32は、本実施の形態において用いられる時不変LDPC−CC検査行列の構成を示す図である。図32は、図47と異なり、HTでなく、検査行列Hの構成を示している。送信符号語ベクトルをvで表すと、Hv=0の関係式が成立する。
本実施の形態におけるパンクチャ方法の説明にあたり、先ず、一般的なパンクチャ方法を、上記送信符号語系列vに適用した場合の課題について説明する。一般的なパンクチャ方法については、例えば、非特許文献12に記載されている。なお、以下では、LDPC−CCが、符号化率R=1/2、(177,131)の畳み込み符号を用いて構成される場合を例に説明する。
図33は、一般的なパンクチャ方法を説明するための図である。同図において、v1,t,v2,t(t=1,2,…)は、送信符号語系列vを示す。一般的なパンクチャ方法では、送信符号語系列vは、複数のブロックに分けられ、各ブロックに対し同一のパンクチャパターンが用いられて、送信符号語ビットが間引かれる。
図33は、送信符号語系列vが、6ビットごとにブロックに分けられ、すべてのブロックに対し、同一のパンクチャパターンが用いられて、一定の割合で送信符号語ビットが間引かれる様子を示している。同図において、丸印で囲まれたビットがパンクチャされるビット(送信しないビット)を示し、すべてのブロック1〜ブロック5に対し、パンクチャ後の符号化率が3/4となるように、v2、1,v2,3,v2,4,v2,6,v2,7,v2,9,v2,10,v2,12,v2,13,v2,15を選択し、パンクチャする(送信しないビットとする)。
次に、LDPC−CCを用いた符号化により得られた送信符号語系列に、図33に示すような一般的なパンクチャを施した場合の受信側(復号側)の影響を考える。なお、以下では、受信側(復号側)においてBP復号を用いる場合について検討する。BP復号では、LDPC−CCの検査行列に基づいて復号処理を行う。図34に、送信符号語系列vとLDPC−CC検査行列Hとの対応を示す。図34において、丸印で囲まれたビットは、パンクチャにより間引かれる送信符号語ビットである。この結果、検査行列Hにおいて、四角枠で囲まれた1に対応するビットが、送信符号語系列に含まれなくなる。この結果、BP復号を行う際、四角枠で囲まれた1に対応するビットに対しては、初期の対数尤度比が存在しないので、対数尤度比が0に設定されることになる。
BP復号では行演算と列演算とを反復して行う。したがって、初期の対数尤度比が存在しない(対数尤度比が0の)ビット(図34において四角枠で囲まれた1に対応するビット)が、同一行に2つ以上含まれると、当該行では、列演算により初期の対数尤度比が存在しない(対数尤度比が0の)ビットの対数尤度比が更新されるまで、当該行の行演算単独では、対数尤度比が更新されないことになる。すなわち、行演算単独では信頼度が伝搬されず、信頼度を伝搬させるためには、行演算と列演算とを反復する必要がある。したがって、このような行が多数存在すると、BP復号において反復処理数に制限があるような場合には、信頼度が伝搬されず、受信品質の劣化を招く原因となる。図34に示す例では、行3410は、行演算単独では信頼度が伝搬されない行、つまり、受信品質の劣化を招く原因となる行となる。
これに対し、本実施の形態におけるパンクチャ方法を用いる場合、行演算単独で信頼度が伝搬されない行数を削減することができる。本実施の形態では、受信側(復号側)における、送信符号語ビットの処理単位ごとに、第1のパンクチャパターンと、第1のパンクチャパターンに比べより多くのビットを間引く第2のパンクチャパターンとを用いて、送信符号語ビットをパンクチャする。以下、図35及び図36を用いて説明する。
図35は、本実施の形態におけるパンクチャ方法を説明するための図である。図33と同様に、v1,t,v2,t(t=1,2,…)は、送信符号語系列vを示す。なお、以下では、図33と同様に、1ブロックが6ビットから構成される場合について説明する。また、受信側(復号側)における送信符号語ビットの処理単位が、ブロック1〜ブロック5であるとする。図35に示す例では、先頭のブロック1に対しては、パンクチャを行わない第1のパンクチャパターンが用いられ、ブロック2〜ブロック5に対しては、パンクチャを行う第2のパンクチャパターンが用いられ、この結果、v2,1,v2,3,v2,4,v2,6,v2,7,v2,9,v2,10,v2,12,v2,13,v2,15がパンクチャされる様子が示されている。このように、本実施の形態では、符号化率が異なるパンクチャパターンを用いて、送信符号語ビットの処理単位内で、間引かれるビット数が少ない範囲を設けるようにする。
図36に、この場合の送信符号語系列vとLDPC−CC検査行列Hとの対応を示す。図36では、同一行に四角枠で囲まれた1を2つ以上含む行が3行発生しているものの、図34の場合に比べ、その行数が削減されたことがわかる。これは、ブロック1に対してパンクチャを施さないようにしたことによる。
このように、パンクチャを行わないブロックを設けることにより、BP復号時の受信品質の劣化を招く原因となる行数を削減することができる。この結果、行3610までの行では、初期に対数尤度が存在し、BP復号において、信頼度が確実に更新され、更新後の信頼度が、行3610に伝搬していくので、受信品質の劣化を抑えることができるようになる。このように、畳み込み符号(LDPC−CC)の検査行列の構造の特徴から、反復復号を複数回行うことにより、行演算単独で得られる行の信頼度が、順次、伝播し、パンクチャによる受信品質の劣化を抑えることができる。また、行演算単独では信頼度が伝搬されない行数が削減されるので、信頼度を伝搬させるために必要な反復回数を低減することができるようになる。
ところで、図35に示す例では、パンクチャされないブロックが設けられることにより、送信される送信符号語ビットは増加し、伝送速度が低下する。しかし、第1のパンクチャパターンが用いられるビット数Nと、第2のパンクチャパターンが用いられるビット数Mとの間に、N<<Mの関係が成り立つようにすれば、伝送速度の低下を抑えつつ、受信品質を向上することができる。図35は、N=6,M=24の例であり、追加送信符号語ビット数は2ビットと少ないのにもかかわらず、行演算単独では対数尤度を伝搬されない行数を6行から3行に減らすことができる。
以下、本実施の形態における送信装置の構成について説明する。図37は、本実施の形態における送信装置の要部構成を示すブロック図である。本実施の形態の説明にあたり、図25と同一構成部分には同一符号を付して説明を省略する。図37の送信装置3700は、図25の送信装置2500に対し、パンクチャ部2520に代え、パンクチャ部3710を備えて構成される。なお、パンクチャ部3710は、第1パンクチャ部3711、第2パンクチャ部3712、及び、切り替え部3713を備えて構成される。
パンクチャ部3710は、送信情報系列及びターミネーション系列からなる送信符号語系列に対しパンクチャを行い、パンクチャ後の送信符号語系列をインタリーブ部2530に出力する。
具体的には、パンクチャ部3710は、第1のパンクチャパターンと、第1のパンクチャパターンより多くのビットを間引く第2のパンクチャパターンとを用いて、送信符号語系列をパンクチャする。第1のパンクチャパターンと第2のパンクチャパターンとは、パンクチャするビットの割合が異なる。パンクチャ部3710は、例えば、図38に示すようなパンクチャパターンを用いて、送信符号語系列をパンクチャする。図38において、(N+M)ビットは、受信側(復号側)における処理単位である。
第1パンクチャ部3711は、第1のパンクチャパターンを用いて、送信符号語系列に対しパンクチャを行う。第2パンクチャ部3712は、第2のパンクチャパターンを用いて、送信符号語系列に対しパンクチャを行う。
図38のパンクチャパターンを用いる場合、第1パンクチャ部3711は、受信側(復号側)の処理単位の先頭からNビットの送信符号語系列に対してはパンクチャを行わず、第1パンクチャ部3711に入力される送信符号語系列を切り替え部3713に出力する。第2パンクチャ部3712は、(N+1)〜(N+M)ビットの送信符号語系列に対してパンクチャを行い、パンクチャ後の送信符号語系列を切り替え部3713に出力する。
なお、第1パンクチャ部3711及び第2パンクチャ部3712は、制御情報生成部1050からの制御情報に基づいて、送信符号語系列にパンクチャを施すか否か決定するようにしてもよい。切り替え部3713は、制御情報生成部(図示せぬ)からの制御情報に応じて、第1パンクチャ部3711から出力される送信符号語系列、又は、第2パンクチャ部3712から出力される送信符号語系列の一方をインタリーブ部2530に出力する。
以下、上述のように構成された送信装置3700の動作について主にパンクチャ部3710のパンクチャ処理を中心に説明する。なお、以下では、LDPC−CC符号化部2510が、符号化率R=1/2、(177,131)の畳み込み符号を用いて、LDPC−CC符号化を施す場合を例に説明する。
LDPC−CC符号化部2510において、送信情報系列ut(t=1,…,n)に対し、LDPC−CC符号化処理が施され、v=(v1,t,v2,t)が取得される。組織化符号の場合、v1,tは送信情報系列utであり、v2,tはパリティを示す。パリティv2,tは、送信情報系列v1,t及び図36の各行の検査式に基づいて求められる。
パンクチャ部3710によって、符号化率R=1/2の送信符号語系列vに対し、パンクチャ処理が施される。例えば、パンクチャ部3710によって、図35に示すパンクチャが用いられる場合、ブロック1に対しては、パンクチャが施されず、ブロック2〜ブロック5に対しては、所定の間隔で規則的にビットが間引かれる。つまり、ブロック2に対しては、v2,4,v2,6のビットが間引かれ、ブロック3に対しては、v2,7,v2,9のビットが間引かれ、ブロック4に対しては、v2,10,v2,12が間引かれ、ブロック5に対しては、v2,13,v2,15が間引かれる。このようにして、ブロック2〜ブロック5に対して、符号化率R=3/4の送信符号語系列が取得される。
パンクチャ後の送信符号語系列は、インタリーブ部2530、変調部2540を介して、受信側(復号側)に送信される。このとき、図35に示すパンクチャパターンが用いられる場合には、v2,4,v2,6,v2,7,v2,9,v2,10,v2,12,v2,13,v2,15は、送信されないことになる。
このように、図35に示すパンクチャパターンが用いられる場合には、所定の周期ごとに、パンクチャを行わないブロックが発生する。図35に示すように、ブロック1に対してはパンクチャを行わないようにすることにより、図33の一般的なパンクチャ方法を用いた場合には送信されなかったv2、1,v2,3が、送信されることになる。このようにすることで、BP復号を用いたとき行演算単独では信頼度が伝搬されない行は、図36の行3610に示される3行となる。図33と図35との比較から分かるように、送信ビットを2ビット追加することにより、行演算単独では信頼度が伝搬されない行数が6行から3行に削減される。この結果、対数尤度が初期に存在する行数が増加し、BP復号により、初期の信頼度が確実に更新されるようになり、さらに、この信頼度が、図36の行3610に伝搬するようになる。
以後、畳み込み符号(LDPC−CC)の検査行列の構造の特徴から、複数回反復復号を行うことで、検査行列の先頭に多く存在する信頼度が、順次、伝播するようになり、パンクチャによる受信品質の劣化を抑えることができる。
図35の例では、送信されることになった増加ビット数は2ビットと少ないので、伝送速度の低下は小さく、かつ、受信品質の劣化を抑えることができる。なお、このような効果が得られるのは、LDPC−CCが図43のように、検査行列において、1の存在する場所が平行四辺形の範囲に集中する型を採るという特徴によるものである。したがって、LDPC−BCの場合に適用しても、同様の効果を得ることができる可能性は低い。
このように、パンクチャしないブロックを設けることにより、BP復号時に悪影響を与える行数を削減することができる。このとき、伝送効率を考慮すると、パンクチャしないブロックを構成するビットMと、パンクチャの対象となるブロックを構成するビットNとの間に、N<<Mの関係が成りたつことが重要である。N<<Mとすることにより、伝送効率の劣化を抑えつつ、受信品質の劣化を抑圧することができる。
なお、第2のパンクチャパターンが適用されるブロック2〜ブロック5に対し、パンクチャ部3710は、ランダムにパンクチャするのでなく、所定の規則に従って、パンクチャするようにするとよい。ランダムにパンクチャする場合に比べ、所定の規則に従ってパンクチャする場合には、パンクチャ演算処理が簡易になる。
(他のパンクチャパターン)
パンクチャ部3710が用いるパンクチャパターンは図38に限られない。例えば、パンクチャ部3710が、図39に示すように、パンクチャ部3710は、第1のパンクチャパターンとして符号化率R1=2/3のパンクチャパターンを用い、第2のパンクチャパターンとして符号化率R2=5/6のパンクチャパターンを用いるようにしてもよい。
また、図40A,図40Bに示すように、n個のフレームを受信側(復号側)における処理単位として、パンクチャを施すようにしてもよい。図40Aに示すように、nフレーム(nは、1以上の整数)の先頭からNビットに対しては、パンクチャを行わない第1のパンクチャパターンを用い、(N+1)〜(N+M)ビットに対しては、パンクチャを行う第2のパンクチャパターンを用いるようにしてもよい。
また、図40Bに示すように、nフレームの先頭からNビットに対しては、符号化率R1=2/3の第1のパンクチャパターンを用い、(N+1)〜(N+M)ビットに対しては、符号化率R2=5/6の第2のパンクチャパターンを用いるようにしてもよい。これにより、nフレームの先頭からNビットにおいては、パンクチャするビット数を少なくすることができる。
また、図41A,図41Bに示すように、受信側(復号側)における処理単位の後部ほどパンクチャにより間引かれるビットが少なくなるようなパターンを用いるようにしてもよい。受信側(復号側)における処理単位の後部ほど、パンクチャにより間引かれるビット数が少なくなるようにすることにより、BP復号において、受信品質の向上が図れる。
これは、復号処理タイミングを考慮した場合、例えば、nフレームから成る受信データ系列の後部に、パンクチャにより間引かれるビット数が少なくなるようなパンクチャを施すようにすると、BP復号処理期間において、前方と後方の双方に、信頼度が伝搬される行が含まれるようになるので、効率的に、信頼度を伝搬させることができるようになるためである。
なお、図38の場合と同様に、第1のパンクチャパターンが用いられるビット数Nと、第2のパンクチャパターンが用いられるビット数Mとの間に、N<<Mの関係が成り立つようにすれば、伝送速度の低下を抑えつつ、受信品質を向上することができる。
また、図42Aに示すように、受信側(復号側)における処理単位であるn個のフレーム(nは、1以上の整数)の先頭からN1ビットに対しては、パンクチャを行わない第1のパンクチャパターンを用い、(N1+1)〜(N1+M)ビットに対しては、パンクチャを行う第2のパンクチャパターンを用い、(N1+M+1)〜(N1+M+N2)ビットに対しては、パンクチャを行わない第1のパンクチャパターンを用いるようにしてもよい。
また、図42Bに示すように、受信側(復号側)における処理単位であるn個のフレーム(nは、1以上の整数)の先頭からN1ビットに対しては符号化率R1=2/3の第1のパンクチャパターンを用い、(N1+1)〜(N1+M)ビットに対しては、符号化率R2=5/6の第2のパンクチャパターンを用い、(N1+M+1)〜(N1+M+N2)ビットに対しては、符号化率R1=2/3の第1のパンクチャパターンを用いるようにしてもよい。
パンクチャにより間引かれるビット数が少ない第1のパンクチャパターンが、受信側(復号側)における処理単位に1箇所用いられる場合に比べ(図40及び図41参照)、2箇所用いられる場合には(図42参照)、信頼度が高い検査行が増えるため、BP復号の際の収束速度が速く、少ない反復回数で復号結果を得ることができる。
なお、上記処理単位にパンクチャにより間引かれるビット数が少ない第1のパンクチャパターンが用いられる箇所は、2箇所に限られず、3箇所以上でもよい。
また、上記処理単位にパンクチャにより間引かれるビット数が少ない第1のパンクチャパターンが用いられる箇所が2箇所以上のときも、第1のパンクチャパターンが用いられるビット数の総数Nと、第2のパンクチャパターンが用いられるビット数の総数Mとの間に、N<<Mの関係が成り立つようにすれば、伝送速度の低下を抑えつつ、受信品質を向上することができる。
なお、図40、図41、及び図42には、nフレームに対し、第1のパンクチャパターン及び第2のパンクチャパターンを用いる場合について説明したが、nは、1以上の整数であればよく、1フレームの場合にも適用できる。
以下では、復号処理タイミングとの関係を考慮して、LDPC−CC符号化により得られた送信符号語系列に対し適したパンクチャパターンについて検討する。
図43は、復号処理タイミングを説明するための図である。図43において、受信データ系列は、それぞれ、nフレーム(例えば、n個のOFDM(Orthogonal Frequency Division Multiplexing)シンボル:OFDMシンボルとは、OFDM方式が、32サブキャリアで構成されており、各サブキャリアごとに変調信号を構成する場合、全キャリア(32サブキャリア)で構成されるシンボルをいう。)から構成される。この受信データ系列長は、受信側(復号側)における処理単位であり、当該nフレーム(又は、n個のOFDMシンボル)が、1つのまとまりとして、上位層のレイヤに受け渡される。一般的に、上位層のレイヤが次のnフレームのデータを取り込むまでにタイムラグが生じるため、図43のt3,t6,t9のタイミング、つまり、nフレームの最後部を受信したタイミングを、BP復号を行う期間の最後とするのが現実的である。
LDPC−CCは、畳み込み符号の性質を有するため、t2のタイミングから、BP復号により推定されたデータが有効なデータ(正しい可能性が高いデータ)とするためには、t2のタイミングより前にBP復号を開始する必要がある。例えば、図43に示す例では、t2〜t5の間にBP復号により得られた推定データを有効なデータとするために、t1〜t6の間、BP復号を行う必要がある。同様に、t5〜t8の間に得られた推定データを有効なデータとするために、t4〜t9の間、BP復号を行う必要がある。
このような復号処理タイミングを考慮した場合、例えば、nフレームから成る受信データ系列の後部に、パンクチャにより間引かれるビット数が少なくなるようなパンクチャを施すようにする、と、BP復号処理期間において、前方と後方の双方に、信頼度が伝搬される行が含まれるようになるので、効率的に、信頼度を伝搬させることができるようになる。
以上のように、本実施の形態によれば、パンクチャ部3710は、送信符号語ビットの処理単位ごとに、第1のパンクチャパターンと、第1のパンクチャパターンに比べより多くのビットを間引く第2のパンクチャパターンとを用いて、送信符号語ビットをパンクチャするようにした。
送信符号語系列に対し、一定の割合でパンクチャを施すのでなく、パンクチャ後の符号化率が異なる第1及び第2のパンクチャパターンを用いることにより、BP復号による復号特性の劣化を抑えることができるようになる。
パンクチャを行う限り、受信品質の劣化の要因となる行が発生してしまうものの、本実施の形態におけるパンクチャ方法のように、伝送速度の低下を抑圧しつつ、受信品質の劣化を抑える方法は、パフォーマンスのよいシステムを構築する上で非常に重要となる。
なお、第1及び第2のパンクチャパターンは、各々、同一の複数のサブパターンから構成されるようにしてもよい。すなわち、図35に示すように、ブロック2〜ブロック5それぞれに対し、同一のサブパンクチャパターンを用いるようにして、規則的に送信符号語ビットを間引くようにしてもよい。これにより、パンクチャ演算処理をより簡易することができる。
また、符号化率が小さい第1のパンクチャパターンは、nフレームの最後部に必ずしも配置する必要はなく、図43から分かるように、t1〜t3,t4〜t6,t7〜t9の間に設けるようにすればよい。また、t1〜t3,t4〜t6,t7〜t9の期間は、BP復号処理期間と、有効データが得られる期間との関係によって特定されるため、BP復号処理期間が変わる場合には、第1のパンクチャパターンを配置するのに適する位置も変動する。
また、以上の説明では、一例として、畳み込み符号に対しBP復号を行う場合のパンクチャ方法について説明したが、これに限ったものではなく、本発明のパンクチャ方法は、非特許文献5〜非特許文献7、及び非特許文献14で記述されているような、時不変LDPC−CC、時変LDPC−CCに対しても、同様に実施することができる。
また、本実施の形態におけるパンクチャ方法を、本発明の各実施の形態及び他の実施の形態において説明した時不変LDPC−CC、時変LDPC−CCに対して用いることができ、受信品質の劣化を抑圧する効果を得る。
(畳み込み符号に基づく時不変・時変LDPC−CC)
以下、畳み込み符号に基づく時不変・時変LDPC−CCの概要を述べる。
符号化率R=1/2,生成行列G=[1 G1(D)/G0(D)]の組織的畳み込み符号を考える。このとき、G1はフィードフォワード多項式,G0はフィードバック多項式をあらわしている。情報系列の多項式表現をX(D)、パリティ系列の多項式表現をP(D)とするとパリティ検査多項式は以下のようにあらわされる。
ここでは、式(119)を満たす式(120)のパリティ検査多項式を考える。
式(120)において、ai(i=1,2,…,r)は0以外の整数であり,bj(j=1,2,…,s)は1以上の整数である。式(120)のパリティ検査多項式に基づく検査行列で定義される符号をここでは時不変LDPC−CCと呼ぶ。
式(120)に基づく異なるパリティ検査多項式をm個用意する(mは2以上の整数)。そのパリティ検査多項式を以下のようにあらわす。
このとき、i=0,1,・・・,m−1である。そして、時点jにおけるデータおよびパリティをX
j,P
jであらわし、u
j=(X
j,P
j)とする。このとき、時点jのパリティP
jを式(122)から求める。
式(122)のパリティ検査多項式に基づく検査行列で定義される符号をここでは時変LDPC−CCと呼ぶ。このとき、式(121)のパリティ検査多項式で定義される時不変LDPC−CCおよび式(122)のパリティ検査多項式で定義される時変LDPC−CCは逐次的にパリティをレジスタおよび排他的論理和で簡単に求めることができるという特徴をもつことになる。
復号部では、時不変LDPC−CCでは式(121)、時変LDPC−CCでは式(122)から検査行列Hを作成し、ベクトルu=(u
0,u
1,・・・,u
i,・・・)とすると、以下の関係式が成立する。
そして、式(123)の関係式から、BP復号を行い、データ系列が得られる。
(付録)
ここでは、仕様書または提案書を作成した場合の記載例を示す。
1.
FEC(Forward Error Correction) Schemeとして、複数の符号化率に対応できる誤り訂正符号であるLDPC-CC(Low-Density Parity-Check Convolutional Code)を使用することを提案する。LDPC-CCは、低密度なパリティ検査行列によって定義される畳み込み符号であり、CTC(Convolutional Turbo Code)、LDPC-BC(Block Code)と同様、Shannon Limitに迫る訂正能力を持つ符号クラスである(非特許文献12及び非特許文献15)。
LDPC-CCは、CTCに対して以下の利点がある。
(1)符号器にインタリーバが不要
・シフトレジスタと加算器のみで符号器を構成可能
・情報系列の長さがインタリーバ長に制限されないため、任意の長さの情報系列の符号化が可能
(2)復号アルゴリズムにパラレル処理が可能であるSum-Product復号が使えるため、シリアル処理が必要なCTCの復号に比べて処理遅延を低減可能
また、IEEE802.11nなどで標準化されているLDPC-BCに比べて以下の利点がある。
(3)情報系列の長さが検査行列のブロック長に制限されないため、任意の長さの情報系列の符号化が可能
(4)メモリ長(拘束長)に比例した演算規模で符号化が実現できるため、情報系列長に比例した演算規模が必要なLDPC-BCに比べ、符号器の構成が簡易(メモリ長<情報系列長)
(5)LDPC-CC特有の検査行列の構造を利用した復号アルゴリズムを適用することにより、復号処理遅延を低減可能
2.
2−1.FEC Encoding
図44に誤り訂正符号方式(FEC Scheme)のブロック図を示す。
誤り訂正符号方式は、LDPC-CC Encoder、パンクチャ器(Puncture)から構成される。符号化するペイロードデータ長は、kビット、符号化後得られる符号語データ長はnビットである。
2−2.LDPC-CC Encoding
ペイロードデータは、LDPC-CCEncoderにより符号化される。
図45にLDPC-CC Encoderの構成を示す。LDPC-CC Encoderは、kビットのペイロードデータに対し、kビットのSystematic BitsおよびkビットのParity Bitsを出力する。LDPC-CC Encoderの符号化率Rは、1/2である。
LDPC Convolutional Encoding過程を以下に示す。
(1)kビットのInformation Bitsの入力は二つに分岐され、一つは、kビットのSystematic Bitsとして出力され、一つは、Constituent Encoderに入力される。
(2)Constituent Encoderは、kビットのInformation Bitsに対して符号化処理を行い、kビットのParity Bitsを出力する。
LDPC-CC Encoderは、{d1,p1}, {d2,p2}, {d3,p3}, …,{dk,pk} という順に、2ビットずつCode Bitsを出力する。
LDPC-CCは、式(124)で与えられるパリティ検査行列によって定義される。
検査行列Hは、k×2kの行列である。検査行列Hの各列は、d1,p1,d2,p2,…dt, pt, …,dk,pkという並びでSystematic Bits(d1、…、dk)とParity Bits(p1、…、pk)に対応する。また、Mは、LDPC-CCのメモリ長を表す。
検査行列Hの各行はパリティ検査多項式を表す。
hd (i)(t)(i=0,…,M)は、t番目のパリティ検査多項式におけるSystematic Bitの重み(1または0)を表し、hp (i)(t)(i=0,…,M)は、t番目のパリティ検査多項式におけるParity Bitの重み(1または0)を表す。
検査行列Hにおいて、hd (i)(t),hp (i)(t)以外の要素はすべて0である。式(1)に示されるように、LDPC-CCの検査行列Hは行列の対角項とその近辺にのみ1が立っている行列である。
FEC Schemeで用いる検査式を式(125)および式(126)に示す。
ただしn=0,1,2,…である。
また、式(125)および式(126)の多項式表現は次のようになる
ここで、X(D)は、Systematic Bits(d1,…,dk),P(D)はParity Bits(p1,…,pk)を表す。
本提案のLDPC-CC Encoderは、式(125)の多項式と式(126)の多項式の二つの多項式を時点ごとに切り替えて用いる、周期2、メモリ長421の時変LDPC-CC Encoderである。
LDPC-CC Encoderは、式(129)の演算を行う任意の構成を取る。
また、LDPC-CC Encoderの初期状態は全ゼロ状態である。すなわち、
である。
LDPC-CCは、同一の符号器構成で、任意の長さk のInformation Bitsの符号化をサポートする。また、LDPC-CCは、複数のメモリ長をサポートする。
3.Encoding Termination
符号化終了時のLDPC-CC Encoderの状態を一意にするため、ターミネーションが必要である。ターミネーションは、Zero-tailingにより行う。
Zero-tailingは、メモリ長Mビットの0で構成されるTail-bitをLDPC-CC Encodingすることで実現する。また、ターミネーションを行っているとき、Tail-bitは受信側で既知のビット列であるため、Systematic Bitsに含めて送信せず、Tail-bitを符号化した時に得られるMビットのParity Bitsだけを送信する。
4.Puncturing
パンクチャは、単一の符号器構成で1/2より高い符号化率の符号を得るため、LDPC-CC Encoderの出力から、いくつかのsystematic bits and/or parity bitsを間引く(discarding)処理である。Puncturingによりサポートする符号化率を表1に示す。サポートすべき符号化率は、 1/2、2/3、3/4であり、4/5、5/6はオプションである。
表2に各符号化率で使用するパンクチャパターンを示す。パンクチャパターンのd,pはそれぞれSystematic Bit,Parity Bitを表し、パターン中の値が0の時、そのビットをパンクチャする。LPuncは、パンクチャパターンの長さを表す。
パンクチャには、regular rotated puncturingを用いる。Systematic Bit,Parity BitそれぞれをLPuncビットごとに区切って、表1に示したパンクチャパターンに従って規則的にパンクチャを行う。符号化率3/4,4/5,5/6の場合は、Systematic Bitsもパンクチャするため、結果の符号は非組織符号となる。
5.
以上、FEC Schemeとして、LDPC-CCを使用することを提案した。
LDPC-CC Encoder構成及び、多項式、パンクチャパターンを示し、FEC Schemeとして使用できることを示した。
6.
6−1.An Example of LDPC-CC Encoder
LDPC-CCの符号化は、式(129)を実現する任意の符号器で実現できる。
LDPC-CC Encoderの一例として図46に示す構成が非特許文献12で示されている。
図46に示すように、LDPC-CC Encoderは、utを保持するM1個のシフトレジスタ、ptを保持するM2個のシフトレジスタ、検査行列Hの各列のhd (i)(t),hp (i)(t)の並びに従ったウェイトを出力するWeight Controller、mod2加算器から構成される。
このような構成を採ることで、LDPC-CC Encoderは、式(125)に従ったLDPC-CCの符号化処理を行う。図46に示すように、LDPC-CCの符号化器は、シフトレジスタと加算器、ウェイト乗算器のみで構成できる。
なお、本発明は上記すべての実施の形態に限定されず、種々変更して実施することが可能である。例えば、上記実施の形態では、無線通信装置として行う場合について説明しているが、これに限られるものではなく、電灯線通信装置で実現する場合においても適用可能である。
また、この通信方法をソフトウェアとして行うことも可能である。例えば、上記通信方法を実行するプログラムを予めROM(Read Only Memory)に格納しておき、そのプログラムをCPU(Central Processor Unit)によって動作させるようにしても良い。
また、上記通信方法を実行するプログラムをコンピュータで読み取り可能な記憶媒体に格納し、記憶媒体に格納されたプログラムをコンピュータのRAM(Random Access Memory)に記録して、コンピュータをそのプログラムにしたがって動作させるようにしても良い。
また、本発明は、無線通信に限らず、電灯線通信(PLC:Power Line Communication)、可視光通信、光通信においても有用であることは言うまでもない。