(57)【要約】【課題】ＱＣ−ＬＤＰＣ等のブロック符号を用いる場合に、受信品質を向上させつつ、伝送量を低減させ、伝送効率の劣化を抑圧すること。【解決手段】ゼロ行列設定部１１０は、パリティ生成行列ｇの部分行列であって、要素が全て“０”から構成されるゼロ行列を設定する。配置部１２０は、ゼロ行列の列に入力ビットを配置し、ゼロ行列以外の列に“０”を配置する。符号化部１３０は、パリティ生成行列ｇを用いて符号化してパリティビットを取得する。パンクチャ部（データ削減部）１４０は、得られたパリティビットのうち、ゼロ行列の行に対応するパリティビットを、送信しないビットとしてパンクチャする。【選択図】図６
2010114862.tif 000002
【特許請求の範囲】
【請求項１】
情報ビットを入力し、前記情報ビットとＱＣ−ＬＤＰＣのパリティ生成行列との行列演算によりパリティビットを生成する符号化器であって、
前記情報ビットにゼロを挿入し、前記情報ビット及び前記ゼロと、前記パリティ生成行列との行列演算により前記パリティビットを生成し、
前記情報ビットを配置する位置と前記パリティ生成行列とに基づいて、前記パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力する、
符号化器。
【請求項２】
前記請求項１に記載の符号化器を具備し、
前記パリティビットのうち、前記値が常にゼロとなるパリティビット以外の前記パリティビットと、前記情報ビットとを送信する送信手段と、
を具備する送信装置。
【請求項３】
情報ビットを入力し、前記情報ビットとＱＣ−ＬＤＰＣのパリティ生成行列との行列演算によりパリティビットを生成する符号化方法であって、
前記情報ビットにゼロを挿入し、前記情報ビット及び前記ゼロと、前記パリティ生成行列との行列演算によりパリティビットを生成し、
前記情報ビットを配置する位置と前記パリティ生成行列とに基づいて、前記パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力する、
符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＱＣ−ＬＤＰＣ（Quasi Cyclic Low Density Parity Check）符号等のように、ゼロ行列を部分的かつ規則的に含むパリティ生成行列を用いて符号化系列を形成する符号化器、送信装置及び符号化方法に関する。
【背景技術】
【０００２】
近年、実現可能な回路規模で高い誤り訂正能力を発揮する誤り訂正符号として、低密度パリティ検査（ＬＤＰＣ：Low Density Parity Check）符号に注目が集まっている。ＬＤＰＣ符号は、低密度なパリティ検査行列Ｈで定義される誤り訂正符号である。なお、低密度とは、行列中に含まれる１の要素数が０の要素数に比べて大幅に少ないことである。ＬＤＰＣ符号は、検査行列Ｈの列数Ｎと等しいブロック長をもつブロック符号である。
【０００３】
ＬＤＰＣ符号は、その誤り訂正能力の高さと、実装の容易さとから、IEEE802.11nの高速無線ＬＡＮ（Local Area Network）システム、デジタル放送システムなどの誤り訂正符号化方式に採用されている。また、ホームネットワークでも、ＱＣ（Quasi Cyclic：擬似巡回）−ＬＤＰＣ符号の採用が検討されている。
【０００４】
ブロック符号では、ブロック符号長が長いほど、誤り訂正能力が向上するという特徴がある。例えば、ヘッダのように、制御情報等を送信するシンボルを確実に伝送したい場合には、ヘッダ長に比べ符号長が長いブロック符号を用いることで、ヘッダの受信品質を確保することができる。
【０００５】
また、誤り訂正符号は、情報を伝送するために用いる誤り訂正符号とヘッダを伝送するために用いる誤り訂正符号とを共通にした場合、回路規模の点で有利となる。なお、本願では、制御情報等を送信するシンボルを「ヘッダ」と呼び説明するが、制御情報等を送信するシンボルを、例えば、制御シンボル（制御チャネル又は制御信号）、プリアンブル、テイルシンボル、パイロットシンボル（パイロットチャネル又はパイロット信号）、トレーニングシンボル等と呼んでも良い。
【０００６】
このとき、図１に示すように、送信する必要がある情報ビット数（例えば、ヘッダ長）が、ブロック符号のブロック長に比べ短いような場合、ブロック長の残りの部分の情報ビットを“０”と仮定して、符号化を行い、パリティビットを生成する。
【０００７】
そして、実際に送信する符号化系列としては、例えば、図１に示すように、送信する必要がある情報ビット（例えば、ヘッダ）及びパリティビットのみを送信する。すなわち、“０”と仮定した情報ビットの部分は、実際には送信しないようにする。
【０００８】
一般に、制御情報等のヘッダは、画像等の情報を伝送するペイロードデータに比べビット数が少ない。しかし、図１に示すようにして、ヘッダ及びパリティビットを送信するようにすることで、ヘッダとペイロードデータとを同一のブロック符号を用いて符号化することが可能となる。更に、ヘッダは、ヘッダ長より長いブロック長のブロック符号により符号化されるため、ヘッダの受信品質を確保することができる。この結果、ヘッダを通信相手に確実に伝送することができるようになるので、上述の通信方法は、通信を確立させるために有効である。
【非特許文献１】「Rate-Compatible LDPC符号のレート推定法」、電子情報通信学会論文誌2006/12 Vol.J89 A N0.12 p.1177
【非特許文献２】M. P. C. Fossorier, “Quasi-cyclic low-density parity-check codes from circulant permutation matrices,” IEEE Trans. Inform. Theory, vol.50, no.8, pp.1788-1793, Nov. 2001.
【非特許文献３】L. Chen, J. Xu, I. Djurdjevic, and S. Lin, “Near-Shannon limit quasi-cyclic low-density parity-check codes,” IEEE Trans. Commun., vol.52, no.7, pp.1038-1042, July 2004.
【非特許文献４】IEEE Unapproved Draft Std P802.11n_D3.00, pp.274, Sep 2007
【非特許文献５】D. J. C. Mackay, “Good error-correcting codes based on very sparse matrices,” IEEE Trans. Inform. Theory, vol.45, no.2, pp399-431, March 1999.
【非特許文献６】M. P. C. Fossorier, M. Mihaljevic, and H. Imai, “Reduced complexity iterative decoding of low density parity check codes based on belief propagation,” IEEE Trans. Commun., vol.47, no.5, pp.673-680, May 1999.
【非特許文献７】J. Chen, A. Dholakia, E. Eleftheriou, M. P. C. Fossorier, and X.-Yu Hu, “Reduced-complexity decoding of LDPC codes,” IEEE Trans. Commun., vol.53., no.8, pp.1288-1299, Aug. 2005.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術は、ヘッダのようにブロック長に比べデータ長が短いデータに対し、符号化を行うと、受信品質を向上することができるものの、情報ビットを“０”と仮定して符号化して得られたパリティビットをも送信しなくてはならない。そのため、ヘッダ長とブロック長とが同等で、その長さが短い場合には、送信しなければならないパリティビット数が少なくて済む。これに対し、従来技術は、ヘッダ長よりブロック長が長い場合には、送信しなければならないパリティビット数が増え、データの伝送効率が劣化してしまうという課題がある。したがって、データ伝送効率が劣化する点を改善すると、データ伝送効率の向上と、受信品質の向上との両立を図ることができるという利点をもつことになる。
【００１０】
本発明はかかる点に鑑みてなされたものであり、例えば、ＱＣ−ＬＤＰＣ符号等のブロック符号を用いる場合に、受信品質を向上させつつ、伝送量を低減させ、伝送効率の劣化を抑圧することができる符号化器、送信装置及び符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の符号化器は、情報ビットを入力し、前記情報ビットとＱＣ−ＬＤＰＣのパリティ生成行列との行列演算によりパリティビットを生成する符号化器であって、前記情報ビットにゼロを挿入し、前記情報ビット及び前記ゼロと、前記パリティ生成行列との行列演算により前記パリティビットを生成し、前記情報ビットを配置する位置と前記パリティ生成行列とに基づいて、前記パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力する、構成を採る。
【００１２】
本発明の送信装置は、上記符号化器を具備し、前記パリティビットのうち、前記値が常にゼロとなるパリティビット以外の前記パリティビットと、前記情報ビットとを送信する送信手段と、を具備する構成を採る。
【００１３】
本発明の符号化方法は、情報ビットを入力し、前記情報ビットとＱＣ−ＬＤＰＣのパリティ生成行列との行列演算によりパリティビットを生成する符号化方法であって、前記情報ビットにゼロを挿入し、前記情報ビット及び前記ゼロと、前記パリティ生成行列との行列演算によりパリティビットを生成し、前記情報ビットを配置する位置と前記パリティ生成行列とに基づいて、前記パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力するようにした。
【発明の効果】
【００１４】
本発明の通信装置及び通信方法によれば、例えば、ＱＣ−ＬＤＰＣ符号等のブロック符号を用いる場合に、受信品質を向上させつつ、伝送量を低減させ、伝送効率の劣化を抑圧することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１６】
（実施の形態１）
図２は、本発明の通信装置に用いられる符号化器の入出力データを示す。図２の符号化器１００は、ＱＣ−ＬＤＰＣ（Quasi Cyclic Low Density Parity Check）符号を形成する。
【００１７】
図２において、情報系列ｕ＝（ｘ１，ｘ２，…，ｘｍ）は、符号化器１００の入力データであり、符号化系列ｓ＝（ｘ１，ｘ２，…，ｘｍ，ｐ１，ｐ２，…，ｐｎ）は、符号化器の出力データを示す。
【００１８】
式（１）は、ＱＣ−ＬＤＰＣ符号のパリティ検査行列Ｈを示す（非特許文献１、非特許文献２、非特許文献３参照）。
【数１】
2010114862.tif 000003
【００１９】
式（１）において、０≦ｊ≦Ｊ−１、０≦ｌ≦Ｌ−１であり、符号長Ｎ＝ｐ×Ｌ（ｐは自然数）のパリティ検査行列Ｈである。また、サブブロック行列Ｉ（ｐｊ，ｌ）は、ｑ行ｒ列（ｒ＝（ｑ＋ｐｊ，ｌ）ｍｏｄ  ｐ（０≦ｑ≦ｐ−１））が１であり、その他は“０”であるような巡回置換行列である。なお、ｐｊ，ｌは、乱数により“０”又は“１”に決定される。
【００２０】
図２の符号化器１００は、生成行列Ｇを用いて、符号化系列を生成する。ここで、生成行列Ｇは、パリティ検査行列Ｈと、式（２）の関係がある。
【数２】
2010114862.tif 000004
【００２１】
符号化系列ｓは、情報系列ｕ及び生成行列Ｇより、ｓＴ＝ＧｕＴと示すことができる。ＱＣ−ＬＤＰＣ符号は、組織符号であるので、生成行列Ｇは、式（３）のように示すことができる。
【数３】
2010114862.tif 000005
【００２２】
ここで、Ｉは、ｍ×ｍの単位行列である。また、行列ｇは、符号化系列ｓのうち、パリティ系列ｗのみを取り出し、ｗ＝（ｐ１，ｐ２，…，ｐｎ）と定義した場合に、パリティ系列ｗを求めるための行列（パリティ生成行列）である。パリティ生成系列ｗは、ｗＴ＝ｇｕＴを満たす。
【００２３】
図３は、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇの一例を示す。図３に示すＱＣ−ＬＤＰＣ符号は、非特許文献４のTable 20-14（LDPC parameters）に記載の符号化率（Coding rate(R)）=1/2，ＬＤＰＣ符号情報ブロック長（LDPC code information block length(bits)）=648，ＬＤＰＣ符号語ブロック長（LDPC codeword block length(bits)）=1296のＱＣ−ＬＤＰＣ符号である。
【００２４】
図３に示すパリティ生成行列ｇは、複数のサブブロック行列２０１，２０２，…，２１１，２１２，…から構成される。例えば、図３のサブブロック行列２０１において、（ｉ＋１）行目の各要素は、ｉ行目の各要素を１ビット（１列）右にシフトした値をとる（ｉは自然数）。同様に、図３のサブブロック行列２１１において、（ｉ＋１）行目の各要素は、ｉ行目の各要素を１ビット右にシフトした値をとる（ｉは自然数）。
【００２５】
また、図３のサブブロック行列２０２において、２行目の各要素は、１行目の各要素を１ビット右にシフトした値をとる。同様に、図３のサブブロック行列２１２において、２行目の各要素は、１行目の各要素を１ビット右にシフトした値をとる。
【００２６】
このように、サブブロック行列２０１，２０２，…，２１１，２１２は、巡回置換行列といえる。図３に示す例では、サブブロック行列２０１，２０２，…，２１１，２１２は、２７行２７列の行列である。
【００２７】
更に、パリティ生成行列ｇにおいて列が同一のサブブロック行列同士は、関連性を有している。例えば、サブブロック行列２０１と、サブブロック行列２０１と列が同一のサブブロック行列２１１とを比較すると、サブブロック行列２１１のｉ行目の要素は、サブブロック行列２０１の（ｉ＋１）行目の要素と２ビット目が異なるだけである（ｉは自然数）。
【００２８】
同様に、サブブロック行列２０２と、サブブロック行列２０２の列とが同一のサブブロック行列２１２とを比較すると、サブブロック行列２１２のｉ行目の要素は、サブブロック行列２０１の（ｉ＋１）行目の要素と同じである（ｉは自然数）。
【００２９】
なお、２７行２７列のサブブロック行列を縦に眺めた場合、例えば、サブブロック行列２０１とサブブロック行列２１１とを眺めた場合、上述したように、これらサブブロック行列は、関連性を有しているものの、必ずしも同一の行列であるとは限らない。
【００３０】
更に、パリティ生成行列ｇでは、要素“０”が連続して配置されるのが特徴的である。そのため、図３と同一のパリティ生成行列ｇを示す図４から分かるように、サブブロック行列２０２内に、行列を構成する要素が全て“０”の行列２２１を確保することができる。以下、行列を構成する要素が全て“０”の行列を、ゼロ行列と呼ぶ。
【００３１】
また、サブブロック行列２１２内には、ゼロ行列２２１と同じ列から始まり、ゼロ行列２２１と列数が同じ大きさのゼロ行列２２２を確保することができる。ゼロ行列２２１と同じ列から始まり、ゼロ行列２２１と列数が同じ大きさのゼロ行列は、図示せぬパリティ生成行列ｇ内に多数存在する。
【００３２】
このように、ＱＣ−ＬＤＰＣ符号のパリティ生成行列は、ゼロ行列を含み、かつ、パリティ生成行列の同じ列から始まるゼロ行列が、多数存在するのが特徴的である。
【００３３】
本発明者らは、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇのこの特徴に着目した。すなわち、ｍ行ｎ列のゼロ行列以外の列に情報ビットとして“０”を配置すると、生成されるｍ個のパリティビットが、全てゼロになることに着目した。更に、パリティ生成行列ｇにおいて列が同一のサブブロック行列同士は、要素の配列に関連性があり、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇには、同じ列から始まるゼロ行列が多数存在するため、ゼロ行列以外の列に情報ビットとして“０”を配置することにより、全てゼロになるパリティビットが多数生成されることに着目した。
【００３４】
つまり、送信する必要がある情報ビット数が、ブロック符号のブロック長に比べ短く、一部の情報ビットを“０”と仮定して符号化する場合に、送信する必要がある情報ビットをゼロ行列（ｍ行ｎ列）の列に配置し、仮想ビットとして“０”をゼロ行列（ｍ行ｎ列）以外に配置すると、値が“０”となるｍ個のパリティビットが生成される。これらのパリティビットは、送信する必要がある情報ビットに依存せず、必ず“０”となる。
【００３５】
したがって、受信側は、ゼロ行列の位置から、値が必ず“０”のｍ個のパリティビットの位置が分かるので、送信側からは、値が必ず“０”のｍ個のパリティビットが送信せずとも、受信側は全てのデータの復号することができる。また、受信側は、値が必ず“０”のｍ個のパリティビット分を送信装置が送信しないビットと設定することができる、つまり、冗長ビットとして削減することができる。
【００３６】
再度、図４を用いて詳細に説明する。図４のゼロ行列２２１に着目する。図４のゼロ行列２２１は、７行１２列の行列であり、ゼロ行列２２１の列に対応する情報ビットは、ｘ３６〜ｘ４７である。そこで、ｘ３６〜ｘ４７に、送信する必要のある情報ビットを配置し、ｘ３６〜ｘ４７以外に情報ビット“０”を配置して符号化を行うと、ｐ１〜ｐ７は、ｘ３６〜ｘ４７の値に関わらず、必ず“０”となる。
【００３７】
同様に、パリティ生成行列ｇにおける列の位置が、ゼロ行列２２１と同じであるゼロ行列２２２に着目すると、ｘ３６〜ｘ４７以外に情報ビット“０”を配置して符号化を行うと、ｐ２８〜ｐ３４は、ｘ３６〜ｘ４７の値に関わらず、必ず“０”となる。
【００３８】
したがって、パリティ生成行列ｇにより生成されたパリティビットｐ１〜ｐ５４のうち、ｐ１〜ｐ７及びｐ２８〜ｐ３４は、値が必ず“０”となる。このため、送信装置が、パリティ生成行列ｇにより生成された、これら値が必ず“０”となるパリティビットｐ１〜ｐ５４を送信しないようにすると、送信装置が送信する必要があるビットとしては、ｘ３６〜ｘ４７及びｐ８〜ｐ２７，ｐ３５〜ｐ５４のみとすることができる。なお、以上の説明では、一例として、ｐ１〜ｐ５４に着目して説明したが、ｐ５５以降についても同様に考えることで、送信装置が送信するパリティビットの数の削減を行うことができる。
【００３９】
図４のゼロ行列２２１は、７行１２列であるため、送信する必要がある情報ビットが１２ビット以下の場合には、ゼロ行列２２１の列に送信する必要がある情報ビットを配置すれば良い。
【００４０】
なお、送信する必要がある情報ビットが、１２ビットを超える場合には、例えば、図５に示すように、更にゼロ行列２３１，２３２…の列に送信する必要がある情報ビットを配置するようにすれば良い。ＱＣ−ＬＤＰＣ符号のパリティ生成行列の特徴として、“０”が連続して配置されているため、図５に示すように、パリティ生成行列ｇには、ゼロ行列２２１，２２２…以外にも、ゼロ行列２３１，２３２のようなゼロ行列が多数存在する。
【００４１】
ゼロ行列２３１，２３２は、７行７列の行列であり、ｘ７１〜ｘ７７に送信する必要がある情報ビットを配置した場合においても、ｐ１〜ｐ７及びｐ２８〜ｐ３４が全て“０”となる。そのため、送信装置は、ゼロ行列２２１，２２２を用いる場合と同様に、ｐ１〜ｐ７及びｐ２８〜ｐ３４を送信しなくても良い。
【００４２】
したがって、ゼロ行列２２１，２２２に加え、ゼロ行列２３１，２３２を利用する場合には、送信する必要がある情報ビットを、ｘ３６〜ｘ４７及びｘ７１〜ｘ７７に配置することができる。これにより、最大ビット数が、１９（＝１２＋７）ビットとなり、ゼロ行列２２１，２２２のみを利用する場合に比べ、送信する必要がある情報ビットとして配置可能な最大ビット数を増加することができる。
【００４３】
同様に、送信する必要がある情報ビット数が、１９ビットを超える場合には、他の部分行列に含まれるゼロ行列を利用すれば良い。図５には、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇの一部だけを示しており、ＱＣ−ＬＤＰＣのパリティ生成行列ｇには、２７行２７列の巡回置換行列が列方向に２４（＝６４８／２７）個存在するため、図示せぬ領域にもゼロ行列が多数含まれている。このため、送信装置は、ゼロ行列の部分において、上記と同様にゼロ行列を利用して、送信する必要がある情報ビットとして、配置することができる最大ビット数を増やすことができる。
【００４４】
このように、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇには、パリティ生成行列ｇの同じ列から始まり、列数が同一のゼロ行列が、複数存在することに着目し、本実施の形態では、ゼロ行列の列に送信する必要がある情報ビットを配置し、ゼロ行列以外の列に仮想ビットとして“０”を配置する。これにより、ゼロ行列の行数と同じ数だけ値が“０”となるパリティビットが生成されるようになる。
【００４５】
このとき、送信装置及び受信装置は、パリティ生成行列ｇに対するゼロ行列の位置を共有していれば、このゼロ行列の行に対応するパリティビットを実際に送信せずとも、受信側では“０”が送信されたとして復号処理を行うことにより、パリティ生成行列ｇにより符号化された符号化データを復号することができる。このため、送信装置は、送信する必要があるパリティビット数を低減し、伝送効率を向上させることができる。
【００４６】
なお、ゼロ行列は、１行１列であっても良い。すなわち、同一行に１行１列のゼロ行列が複数あり、この複数のゼロ行列と同一列の要素がゼロの行があれば、同一列において要素がゼロとなる行数分だけ、常に“０”となるパリティビットが生成されることになる。
【００４７】
すなわち、送信装置は、情報ビットにゼロを挿入し、情報ビット及びゼロと、ＱＣ−ＬＤＰＣ符号のパリティ生成行列との行列演算によりパリティビットを生成する場合において、情報ビットを配置する位置とパリティ生成行列とに基づいて、パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力し、削除後のパリティ系列を送信するようにすることで、送信する必要があるパリティビット数を低減し、伝送効率を向上させることができる。
【００４８】
なお、送信装置は、パリティ生成行列ｇの同じ列から始まり、列数が同一のゼロ行列（１行１列のゼロ行列も含む）のうち、行数が最も多い行列を、設定するゼロ行列とし、設定したゼロ行列の列以外に“０”を配置することにより、値が“０”となるパリティビットを、設定したゼロ行列の行数分だけ生成するようになる。
【００４９】
したがって、送信装置は、値が”０”となるパリティビットを送信しないビットとしてパンクチャすることにより、伝送効率を向上させることができる。このとき、送信装置は、パリティ生成行列ｇの同じ列から始まり、列数が同一のゼロ行列のうち、パリティ生成行列ｇにより多く含まれるような部分行列をゼロ行列として設定することにより、パリティビットをより削減することができる。
【００５０】
なお、このとき、送信装置は、送信する必要がある情報ビットとして、配置することができる最大ビット数を、ゼロ行列の列数とする。例えば、送信装置は、ゼロ行列として、ゼロ行列２２１，２２２，…が設定された場合、送信する必要がある情報ビットを配置することができる最大ビット数は１２ビットとなる。
【００５１】
また、送信装置は、ゼロ行列として、ゼロ行列２２１，２２２に加え、ゼロ行列２３１，２３２が設定される場合には、送信する必要がある情報ビットを配置することができる最大ビット数は１９ビットとなる。逆に言えば、送信装置は、送信する必要がある情報ビットのデータ長（ビット数）に応じて、ゼロ行列を設定するようすれば良い。なお、上述したように、ゼロ行列は、１行１列でも良く、また、連続していなくても良い。
【００５２】
図６には、上述のようなパリティ生成行列ｇを用いて符号化を行う符号化器の構成例を示す。図６の符号化器１００は、ゼロ行列設定部１１０、配置部１２０、符号化部１３０及びパンクチャ部（データ削減部）１４０を有する。以下では、ヘッダ等のように、データ長が一定の情報系列が、符号化器１００に入力される場合を例に説明する。
【００５３】
ゼロ行列設定部１１０は、ＱＣ−ＬＤＰＣのパリティ生成行列ｇの部分行列であって、要素が全て“０”から構成されるゼロ行列を設定する。ゼロ行列の設定方法は、情報系列のデータ長がヘッダ等のように一意に決まっている場合、列数がヘッダ長以上のゼロ行列を設定する。なお、以下では、図４のゼロ行列２２１，２２２，…が、ゼロ行列として設定された場合を例に説明する。ゼロ行列設定部１１０は、パリティ生成行列ｇにおけるゼロ行列の位置の情報を、配置部１２０及びパンクチャ部（データ削減部）１４０に出力する。
【００５４】
配置部１２０は、ヘッダ等の情報系列を入力し、ゼロ行列設定部１１０から通知されるゼロ行列の位置の情報に基づいて、ゼロ行列の列に情報ビット（入力ビット）を配置し、ゼロ行列以外の列に仮想ビットとして“０”を配置する。
【００５５】
例えば、ゼロ行列設定部１１０からゼロ行列２２１，２２２の位置が通知された場合、配置部１２０は、ゼロ行列２２１の列ｘ３６〜ｘ４７に、情報ビット（入力ビット）を配置し、ｘ３６〜ｘ４７以外に、“０”を配置する。配置部１２０は、配置後のビットを符号化部１３０に出力する。
【００５６】
符号化部１３０は、パリティ生成行列ｇを用いて、配置部１２０から出力されるビットを符号化して符号化系列（情報ビット及びパリティビット）を取得する。符号化部１３０は、符号化系列をパンクチャ部（データ削減部）１４０に出力する。
【００５７】
パンクチャ部（データ削減部）１４０は、ゼロ行列設定部１１０から通知されるゼロ行列２２１，２２２の位置の情報に基づいて、符号化系列から、ｘ３６〜ｘ４７以外に配置された“０”を送信しないビットとしてパンクチャ（削除）する。
【００５８】
また、パンクチャ部（データ削減部）１４０は、ゼロ行列設定部１１０から通知されるゼロ行列２２１，２２２の位置の情報に基づいて、符号化系列から、ゼロ行列２２１，２２２の行に対応するパリティビットｐ１〜ｐ７，ｐ２８〜ｐ３４，…を送信しないビットとしてパンクチャ（削除）する。
【００５９】
パンクチャ部（データ削減部）１４０は、符号化系列から送信しないビットとしてパンクチャ（削除）したビット以外の符号化系列を、送信する必要があるビットとして出力する。
【００６０】
図７は、上述した符号化器から送信された信号を復号する復号化器の構成例を示す。
【００６１】
復号化器３００は、固定対数尤度比挿入部３１０及びＢＰ（Belief Propagation）復号部３２０を有している。
【００６２】
固定対数尤度比挿入部３１０は、図示せぬ対数尤度比算出部により算出される受信対数尤度比、及び、ゼロ行列の位置に関する情報を示す制御信号を入力し、ゼロ行列の位置に応じて、受信対数尤度比に既知の対数尤度比を挿入する。
【００６３】
例えば、符号化側で、ゼロ行列２２１，２２２，…が用いられた場合、固定対数尤度比挿入部３１０には、ｘ３６〜ｘ４７及びｐ８〜ｐ２７，ｐ３５〜…に対応する受信対数尤度比ＬＬＲｘ３６〜ＬＬＲｘ４７，ＬＬＲｐ８〜ＬＬＲｐ２７，ＬＬＲｐ３５〜…が入力される。そこで、固定対数尤度比挿入部３１０は、ｘ１〜ｘ３５，ｘ４８，…に対応する受信対数尤度比ＬＬＲｘ１〜ＬＬＲｘ３５，ＬＬＲｘ４８…，ＬＬＲｐ１〜ＬＬＲｐ７，ＬＬＲｐ２８〜ＬＬＲｐ３４を挿入する。
【００６４】
具体的には、符号化側で、ゼロ行列２２１，２２２，…が用いられた場合、ｘ１〜ｘ３５，ｘ４８，…、ｐ１〜ｐ７，ｐ２８〜ｐ３４，…として“０”が送信されていることに相当するので、固定対数尤度比挿入部３１０は、既知ビット“０”に対応する固定の対数尤度比を、ｘ１〜ｘ３５，ｘ４８…の対数尤度比ＬＬＲｘ１〜ＬＬＲｘ３５，ＬＬＲｘ４８…，ＬＬＲｐ１〜ＬＬＲｐ７，ＬＬＲｐ２８〜ＬＬＲｐ３４…として挿入する。図７において、点線の丸で囲まれた受信対数尤度比は、固定対数尤度比挿入部３１０によって挿入された受信対数尤度比を示す。
【００６５】
固定対数尤度比挿入部３１０は、挿入後の対数尤度比をＢＰ復号部３２０に出力する。
【００６６】
ＢＰ復号部３２０は、例えば、非特許文献５から非特許文献７に記載されたsum-product復号、min-sum復号、Normalized BP復号、offset BP復号などを用いて、復号する。
【００６７】
以下には、上述のように構成された符号化器を有する通信装置＃１の構成、及び、上述のように構成された復号化器を有し、通信装置＃１から送信された信号を受信する通信装置＃２の構成について説明する。
【００６８】
図８には、通信装置＃１が送信する変調信号のフレーム構成例を示す。制御情報シンボルは、通信相手（通信装置＃２）に、変調方式、使用している誤り訂正符号、符号化率、送信方法、データ長等の制御情報を伝送するためのシンボルである。情報シンボルは、ＱＣ−ＬＤＰＣ符号化により得られた情報ビット及びパリティビットを伝送するためのシンボルである。
【００６９】
図９には、通信装置＃１の構成例を示す。図９の通信装置４００において、符号化部４１０は、情報系列を入力し、符号化系列をインタリーバ４２０に出力する。符号化部４１０は、図６の符号化器１００によって構成されている。
【００７０】
インタリーバ４２０は、符号化系列を入力し、インタリーブを行うことでインタリーブ後のデータを得る。なお、符号の種類によっては、インタリーバ４２０を設けなくても良い。
【００７１】
マッピング部４３０は、インタリーブ後のデータを入力し、ＱＰＳＫ（Quadrature Phase Shift Keying）、１６ＱＡＭ（Quadrature Amplitude Modulation）等の変調を行うことでベースバンド信号を得る。
【００７２】
送信部４４０は、ベースバンド信号を入力し、直交変調、周波数変換等の所定の信号処理を施すことで変調信号を得、変調信号を送信する。
【００７３】
図１０は、通信装置＃２の構成例を示す。図１０の通信装置５００において、受信部５１０は、受信信号を入力し、周波数変換等の所定の無線処理を施すことでベースバンド信号を得る。受信部５１０は、ベースバンド信号を、制御情報検出部５２０及び対数尤度比算出部５３０に出力する。
【００７４】
制御情報検出部５２０は、ベースバンド信号からゼロ行列に関する情報、インタリーブパターンの情報、符号化率に関する情報等を検出する。そして、制御情報検出部５２０は、インタリーブパターンの情報をデインタリーバ５４０に出力し、ゼロ行列に関する情報及び符号化率に関する情報を復号化部５５０に出力する。
【００７５】
対数尤度比算出部５３０は、ベースバンド信号を入力し、例えば非特許文献５に示されている方法を用いることで対数尤度比を算出し、ビットごとの対数尤度比を得る。対数尤度比算出部５３０は、ビットごとの対数尤度比をデインタリーバ５４０に出力する。
【００７６】
デインタリーバ５４０は、ビットごとの対数尤度比を入力し、インタリーバ４２０に対応するデインタリーブの処理を施すことでデインタリーブ後の対数尤度比を得る。なお、復号化部５５０は、ＢＰ復号を行う場合に、デインタリーバ５４０を設けなくても、デインタリーブを考慮した検査行列を用意することで、復号することが可能である。
【００７７】
復号化部５５０は、図７の復号化器３００によって構成されている。復号化部５５０は、デインタリーブ後の対数尤度比を入力し、符号化部４１０に対応する復号を行うことで受信データを得る。
【００７８】
以上のように、本実施の形態では、ゼロ行列設定部１１０は、パリティ生成行列ｇの部分行列であって、要素が全て“０”のゼロ行列を設定する。配置部１２０は、ゼロ行列の列に入力ビットを配置し、ゼロ行列以外の列に“０”を配置する。符号化部１３０は、パリティ生成行列ｇを用いて符号化してパリティビットを取得する。パンクチャ部（データ削減部）１４０は、ゼロ行列設定部１１０から通知されるゼロ行列の位置の情報に基づいて、ゼロ行列以外の列に配置された“０”を送信しないビットとしてパンクチャ（削除）し、更に、得られたパリティビットのうち、ゼロ行列の行に対応するパリティビットを、送信しないビットとしてパンクチャ（削除）する。
【００７９】
これにより、符号化器１００は、情報ビットを入力し、情報ビットとパリティ生成行列との行列演算によりパリティビットを生成する場合において、パリティ生成行列のうち、要素が全てゼロの部分行列の列に対応する位置に情報ビットを配置し、要素が全てゼロの部分行列以外の列に対応する位置にゼロを配置し、配置後の情報ビット及びゼロと、パリティ生成行列との行列演算をする。これにより、符号化器１００は、パリティ系列を生成し、パリティ系列のうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力する。
【００８０】
換言すると、符号化器１００は、情報ビットにゼロを挿入し、情報ビット及びゼロと、ＱＣ−ＬＤＰＣのパリティ生成行列との行列演算によりパリティビットを生成し、ゼロを挿入する位置及びパリティ生成行列とに基づいて、パリティビットのうち、値が常にゼロとなるパリティビットを削除し、削除後のパリティ系列を出力する。
【００８１】
したがって、符号化器１００を有する送信装置４００において、送信部４４０が、入力ビットと、パリティビットのうち、ゼロ行列の行に対応する前記パリティビット以外と、を送信することにより、ゼロ行列の行に対応するパリティビットを受信側に送信せずとも、受信側では、ゼロ行列の行に対応するパリティビットの対数尤度比として既知の固定の対数尤度比を挿入して、復号を行うことができるため、送信するパリティビット数を低減し、伝送効率を向上させることができる。
【００８２】
なお、送信する必要がある情報ビットは、制御情報等を含むヘッダに限られず、ペイロードデータ（情報伝送用のシンボル）等であっても良い。要するに、送信する必要がある情報ビットの数が、ＱＣ−ＬＤＰＣ符号に含まれるゼロ行列の列数に比べ小さければ、本発明を適用することができる。送信する必要がある情報ビットがヘッダであり、ヘッダ長が固定の場合には、ゼロ行列設定部１１０は、ヘッダ長に応じて予め最適なゼロ行列を設定しておくことができる。
【００８３】
一方、送信する必要がある情報ビットが、ペイロードデータの場合には、コンテンツ情報等の大きさによりデータ長が変動する。本発明は、送信する必要がある情報ビットのデータ長が、例えば、ペイロードデータのように変動する場合においても適用することができる。以下の実施の形態２では、送信する必要がある情報ビットのデータ長が変動する場合について説明する。
【００８４】
（実施の形態２）
本実施の形態では、送信する必要がある情報ビットのデータ長が変動する場合に、本発明を適用した場合の形態について説明する。
【００８５】
図１１は、ＱＣ−ＬＤＰＣ符号を用いた場合の１ブロックの構成例を示す。ＱＣ−ＬＤＰＣ符号は、ブロック符号であり、図１１に示すように、１ブロックは、情報ビットとパリティビットとから構成される。ここで、１ブロック内の情報ビットのビット数がＭビットであるとする。
【００８６】
図１２は、本実施の形態に係る符号化器の構成例を示す。なお、図１２の本実施の形態に係る符号化器において、図６と共通する構成部分には、図６と同一の符号を付して説明を省略する。図１２の符号化器１００ａは、図６の符号化器１００に対し、ゼロ行列設定部１１０及び配置部１２０に代えて、ゼロ行列設定部１１０ａ及び配置部１２０ａを有している。以下では、Ｎビットの情報系列が符号化器１００ａに入力される場合を例に説明する。
【００８７】
ゼロ行列設定部１１０ａは、情報系列として入力される情報ビット（入力ビット）のデータ長Ｎに応じて、ゼロ行列を設定する。具体的には、ゼロ行列設定部１１０ａは、先ず、情報ビット（入力ビット）のデータ長Ｎをカウントする。そして、ゼロ行列設定部１１０ａは、データ長ＮをＱＣ−ＬＤＰＣ符号の１ブロックあたりの情報ビット長Ｍで除算し、商β及び余りαを算出する。
【００８８】
配置部１２０ａは、除算の結果、Ｎ＝ｋＭ（ｋは整数）が成立する場合、図１３に示すように、ｋ個の全てのブロックの情報ビットの領域に、情報系列として入力される情報ビット（入力ビット）を配置する必要がある。すなわち、ｋ個のブロックでは、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇの全ての列に各情報ビット（入力ビット）を配置する必要がある。そのため、Ｎ＝ｋＭ（ｋは自然数）が成立する場合は、ゼロ行列設定部１１０ａは、ゼロ行列を設定せず、パリティ生成行列ｇの全ての列に情報ビット（入力ビット）を配置するよう配置部１２０ａに指示信号を出力する。
【００８９】
配置部１２０ａは、除算の結果、Ｎ≠ｋＭ＝βＭ＋α（ｋは整数、α及びβは自然数）が成立する場合、図１３に示すように、β個のブロックの情報ビットの領域には、情報ビット（入力ビット）を配置し、１個のブロック（特殊ブロック）の情報ビットの領域には、αビットの情報ビット（入力ビット）を配置する必要がある。すなわち、配置部１２０ａは、β個のブロックでは、ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇの全ての列に各情報ビットを配置し、特殊ブロックでは、実施の形態１で述べたように、ゼロ行列の列に情報ビット（入力ビット）を配置するようにする必要がある。
【００９０】
そのため、Ｎ≠ｋＭ＝βＭ＋α（ｋ、α及びβは自然数）が成立する場合には、ゼロ行列設定部１１０ａは、特殊ブロックで送信する必要がある情報ビット（入力ビット）のデータ長αに応じて、ゼロ行列を設定する。このとき、ゼロ行列設定部１１０ａは、データ長αの値に応じて、設定するゼロ行列を切り替える。具体的には、ゼロ行列設定部１１０ａは、余りαと所定の閾値との比較結果に応じて、設定するゼロ行列を切り替える。上述したように、符号化器１００ａは、ゼロ行列によって、送信する必要がある情報ビットとして配置できるビット数の最大値が変動する。
【００９１】
なお、図１３では、特殊ブロックを時間的に最後に配置しているが、配置位置はこれに限ったものではない。
【００９２】
以下、図１４を用いて、データ長に応じてゼロ行列を設定する動作について説明する。図１４は、ゼロ行列設定部１１０ａが、２つの閾値をａ１、ａ２を有し、データ長αと２つの閾値との比較結果に応じて、ゼロ行列を切り替える場合の例である。送信しないビットとしてパンクチャできる（削減できる）パリティビット数は、ゼロ行列の行数と同じであるため、ゼロ行列を切り替えることは、換言すると、送信するパリティビットの削減方法を切り替えることになる。
【００９３】
０＜α≦ａ１の場合、ゼロ行列＃１（削減方法＃１）により、送信するパリティビットを削減する。例えば、０＜α≦ａ１（＝１２）の場合、ゼロ行列設定部１１０ａは、ゼロ行列２２１，２２２…をゼロ行列として設定する。
【００９４】
そして、α＝１０の場合、配置部１２０ａは、１０ビットの情報に“０”を２ビット加え、１２ビットにする。そして、配置部１２０ａは、この１２ビットを、ｘ３６〜ｘ４７に割り当て、ｘ１〜ｘ３５，ｘ４８〜に“０”を割り当てる。この結果、符号化部１３０により得られるパリティビットのうち、パリティビットｐ１〜ｐ７，ｐ２８〜ｐ３４，…は、ｘ３６〜ｘ４７の値によらず常に“０”となる。
【００９５】
したがって、パンクチャ部（データ削減部）１４０が、常に“０”となるパリティビットｐ１〜ｐ７，ｐ２８〜ｐ３４を送信しないビットとしてパンクチャすることにより、復号特性を劣化させることなく、伝送効率を向上させることができる。
【００９６】
また、ｘ３６〜ｘ４７以外のビット（ｘ１〜ｘ３５，ｘ４８〜）には、既知ビット“０”が割り当てられているので、パンクチャ部（データ削減部）１４０は、これらｘ３６〜ｘ４７以外のビットもパンクチャする（送信しないビットと設定する）。加えて、α＝１０の場合には、パンクチャ部（データ削減部）１４０が、ｘ３６〜ｘ４７に割り当てられた２ビットの“０”を送信しないビットとしてパンクチャする（送信しないビットと設定する）。これにより、伝送効率を更に向上させることができる。
【００９７】
例えば、配置部１２０ａが、ｘ４６，ｘ４７に“０”を割り当てた場合に、パンクチャ部（データ削減部）１４０が、ｘ４６，ｘ４７をパンクチャすることにより、送信系列は、ｘ３６〜ｘ４５、パリティｐ８〜ｐ２７，ｐ３５〜ｐ５４，…となり、伝送効率を更に向上させることができる。
【００９８】
ａ１＜α≦ａ２の場合、ゼロ行列＃２（削減方法＃２）により、送信するパリティビットを削減する。例えば、ａ１＝１２，ａ２＝１９の場合、ゼロ行列設定部１１０ａは、ゼロ行列２２１，２２２，…に加え、ゼロ行列２３１，２３２，…を、ゼロ行列として設定する。
【００９９】
そして、α＝１５の場合、配置部１２０ａは、１５ビットの情報に“０”を４ビット加え、１９ビットにする。そして、配置部１２０ａは、この１９ビットを、ｘ３６〜ｘ４７及びｘ７１〜ｘ７７に割り当て、ｘ１〜ｘ３５，ｘ４８〜ｘ７１，ｘ７８〜に“０”を割り当てる。この結果、符号化部１３０により得られるパリティビットのうち、パリティビットｐ１〜ｐ７，ｐ２８〜ｐ３４，…は、ｘ３６〜ｘ４７の値によらず常に“０”となる。
【０１００】
したがって、パンクチャ部（データ削減部）１４０は、常に“０”となるパリティビットｐ１〜ｐ７，ｐ２８〜ｐ３４を送信しないビットとしてパンクチャすることにより、復号特性を劣化させることなく、伝送効率を向上させることができる。
【０１０１】
また、ｘ３６〜ｘ４７，ｘ７１〜ｘ７７以外のビット（ｘ１〜ｘ３５，ｘ４８〜ｘ７１，ｘ７８〜）には既知ビット“０”が割り当てられているので、パンクチャ部（データ削減部）１４０は、これらｘ３６〜ｘ４７，ｘ７１〜ｘ７７以外のビットをパンクチャする（送信しないビット）と設定する。加えて、α＝１５の場合には、パンクチャ部（データ削減部）１４０が、ｘ３６〜ｘ４７，ｘ７１〜ｘ７７のいずれかに割り当てられた４ビットの“０”を送信しないビットとしてパンクチャする（送信しないビットと設定する）。
【０１０２】
これにより、送信装置は、伝送効率を更に向上させることができる。例えば、配置部１２０ａが、ｘ７４〜ｘ７７に“０”を割り当てた場合に、パンクチャ部（データ削減部）１４０が、ｘ７４〜ｘ７７をパンクチャすることにより、送信系列は、ｘ３６〜ｘ４５、ｘ７１〜ｘ７３、ｐ８〜ｐ２７，ｐ３５〜ｐ５４，…となり、送信装置は、伝送効率を更に向上させることができる。
【０１０３】
なお、図１４に示す例では、ａ２＜α≦Ｍ−１の場合、ゼロ行列を設定せず、パリティビットの削減は行わないようにした。すなわち、情報ビット（入力ビット）のデータ長Ｎをブロック長Ｍで除算した余りαが所定の閾値以上の場合には、α個の情報ビット（入力ビット）、及び、仮想ビットとして（Ｍ−α）個の“０”を、パリティ生成行列ｇの列に配置するようにする。
【０１０４】
このようにして、ゼロ行列設定部１１０ａは、特殊ブロックで送信する必要がある情報ビット（入力ビット）のデータ長αに応じて、ゼロ行列を設定する。そして、ゼロ行列設定部１１０ａは、パリティ生成行列ｇにおけるゼロ行列の位置の情報を配置部１２０ａ及びパンクチャ部（データ削減部）１４０に通知する。
【０１０５】
なお、ゼロ行列設定部１１０ａは、ａ２＜α≦Ｍ−１の場合、ゼロ行列を設定せず、パリティビットの削減は行わないようにした。そのため、そのため、ａ２＜α≦Ｍ−１の場合、ゼロ行列設定部１１０ａは、パリティビットをパンクチャしないようパンクチャ部（データ削減部）１４０に通知する。
【０１０６】
以上のように、本実施の形態では、ゼロ行列設定部１１０ａは、パリティ生成行列ｇの部分行列であって、要素が全て“０”のゼロ行列を、情報ビット（入力ビット）のデータ長Ｎに応じて設定するようにした。このようにすることで、送信装置は、送信する必要があるパリティビット数を低減しつつ、情報ビット（入力ビット）を確実に送信することができる。
【０１０７】
なお、図１４には、余りαの値に応じて、３つのいずれかに場合分けをする例を示したが、場合分け数は３つに限られない。例えば、ゼロ行列設定部１１０ａが、閾値を更に有し、Ｚ個に場合分けするようにしても良い。
【０１０８】
また、本実施の形態を実現するにあたり、復号化器を具備する受信装置が、余りαの値を知っている必要がある。これを実現する簡単な方法としては、符号化器を具備する送信装置が、送信するデータのビット数の情報を、最初に受信装置に通知すれば良い。なおこのとき、受信装置は、αを求めるための演算部を具備する必要がある。
【０１０９】
（実施の形態３）
本実施の形態では、ＱＣ−ＬＤＰＣ符号におけるパンクチャ方法について説明する。
【０１１０】
図１５は、本実施の形態に係る符号化器の構成例を示す。図１５の符号化器６００は、符号化部６１０、パンクチャパターン設定部６２０及びパンクチャ部（データ削減部）６３０を有している。
【０１１１】
符号化部６１０は、ＱＣ−ＬＤＰＣのパリティ生成行列ｇを用いて、情報系列に符号化を行う。
【０１１２】
パンクチャパターン設定部６２０は、ＱＣ−ＬＤＰＣ符号の検査行列Ｈが、サブブロック行列を基本単位として構成されていることを利用して、パンクチャパターンを探索し、設定する。パンクチャパターンの探索方法については、後述する。パンクチャパターン設定部６２０は、設定したパンクチャパターンの情報を、パンクチャ部（データ削減部）６３０に出力する。
【０１１３】
パンクチャ部（データ削減部）６３０は、パンクチャパターン設定部６２０から通知されるパンクチャパターンに従って、符号化部６１０から出力される符号化系列のうち、送信しないビットとして情報ビット又はパリティビットをパンクチャする（送信しないビットと設定する）。
【０１１４】
次に、パンクチャパターン設定部６２０が設定するパンクチャパターンの探索方法について説明する。パンクチャパターンは、ＱＣ−ＬＤＰＣ符号の検査行列Ｈが、サブブロック行列を基本単位として構成されていることを利用して、パンクチャパターンを探索する。
【０１１５】
パンクチャパターン設定部６２０は、パンクチャパターンを探索する際、先ず、パンクチャパターンの周期を決定する。例えば、２０ビットから送信しないビット（パンクチャビット）をＫビット選択する場合、パンクチャパターンの周期は、２０ビットとなる。なおこのとき、パンクチャパターンの周期の２０ビット内に含まれる送信しないビット（パンクチャビット）の数は、Ｋ個とし、常に一定とする。
【０１１６】
本発明では、パンクチャパターンの周期を、ＱＣ−ＬＤＰＣ符号の検査行列の基本単位であるサブブロック行列Ｉ（ｐｊ，ｌ）（ｑ行ｒ列（ｒ＝（ｑ＋ｐｊ，ｌ）ｍｏｄ  ｐ（０≦ｑ≦ｐ−１）が１であり、その他は“０”であるような巡回置換行列）の列数Ｌの整数倍、又は、列数Ｌの約数とする（式（１）参照）。
【０１１７】
例えば、図３に示すＱＣ−ＬＤＰＣ符号の検査行列におけるサブブロック行列は、２７行２７列（Ｌ＝２７）の行列であるので、２７の整数倍、又は、２７の約数をパンクチャパターンの周期と設定し、送信しないビット（パンクチャビット）Ｋ個を設定することを提案する。
【０１１８】
一般に、ブロック符号では、ブロック長が長いほど良好な受信特性が得られる。しかし、ブロック長が長い場合には、ブロック長単位で、最良のパンクチャパターンを探索することは困難である。そのため、ブロック長が長い場合には、ランダムにパンクチャビットを選択する方式の採用が考えられる。しかし、この場合には、パンクチャ時の受信品質が大きく劣化する可能性がある。
【０１１９】
これに対し、パンクチャパターン設定部６２０が、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列が規則的であることに着目し、サブブロック行列の列数の整数倍、又は、列数の約数ごとに、パンクチャパターンを探索する場合には、比較的短い時間で特性が良好となるパンクチャパターンを確実に見つけ出すことができる。
【０１２０】
パンクチャパターンの具体的な探索方法としては、例えば、所定のＳＮＲ（Signal-to-Noise power ratio：信号電力対雑音電力比）を設定し、パンクチャパターンごとに誤り率を求め、誤り率が低くなるパンクチャパターンを求めれば良い。
【０１２１】
送信装置は、このようにして探索されたパンクチャパターンを用いて、符号化系列をパンクチャすることにより、良好な受信品質を維持しつつ、伝送効率を向上させることができる。すなわち、図１５の構成で重要な点は、パンクチャ部（データ削減部）６３０は、符号化系列をＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数の整数倍、又は、列数の約数を単位として、パンクチャを行っている点である。
【０１２２】
一例として、パンクチャ部（データ削減部）６３０が、パンクチャパターンの周期をサブブロック行列の列数Ｌとし、サブブロック行列の列数Ｌごとに、送信しないビット（パンクチャビット）の数をＫ個と一定とする場合について説明する。この場合、パンクチャ部（データ削減部）６３０は、パンクチャパターンを、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数の整数倍ごとに切り替える。
【０１２３】
パンクチャパターンの切り替え方法について、図１６Ａ〜図１６Ｃを用いて具体的に説明する。
【０１２４】
図１６Ａは、図３の検査行列Ｈに対し、サブブロック行列の列数（列数の１倍）ごとにパンクチャパターンを切り替える様子を示している。図３の検査行列Ｈは、２７列のサブブロック行列から構成されるため、パンクチャ部（データ削減部）６３０は、ｘ１〜ｘ２７に対しては、パンクチャパターン＃０を用いて送信しないビット（パンクチャビット）をＫ個選択する。また、パンクチャ部（データ削減部）６３０は、ｘ２８〜ｘ５４に対してはパンクチャパターン＃１を用いて、送信しないビット（パンクチャビット）をＫ個選択する。また、パンクチャ部（データ削減部）６３０は、ｐ６２２〜ｐ６４８に対しては、パンクチャパターン＃２３を用いて、送信しないビット（パンクチャビット）をＫ個選択する。
【０１２５】
図１６Ｂは、図３の検査行列Ｈに対し、サブブロック行列の列数の２倍ごとにパンクチャパターンを切り替える様子を示している。図３の検査行列Ｈは、２７列のサブブロック行列から構成されるため、パンクチャ部（データ削減部）６３０は、ｘ１〜ｘ２７，ｘ２８〜ｘ５４に対しては、パンクチャパターン＃０を用いて送信しないビット（パンクチャビット）をＫ個選択する。
【０１２６】
また、パンクチャ部（データ削減部）６３０は、ｘ５５〜ｘ８１，ｘ８２〜ｘ１０８に対してはパンクチャパターン＃１を用いて、送信しないビット（パンクチャビット）をＫ個選択する。また、パンクチャ部（データ削減部）６３０は、ｘ１０９〜ｘ１３５，ｘ１３６〜ｘ１６２に対しては、パンクチャパターン＃２を用いて、送信しないビット（パンクチャビット）をＫ個選択する。
【０１２７】
図１６Ｃは、図３の検査行列Ｈに対し、サブブロック行列の列数の約数９列を基本周期として、９列ごとにパンクチャパターンを切り替える様子を示している。具体的には、パンクチャ部（データ削減部）６３０は、ｘ１〜ｘ９に対しては、パンクチャパターン＃０を用いて送信しないビット（パンクチャビット）をＫ個選択する。
【０１２８】
パンクチャ部（データ削減部）６３０は、ｘ１０〜ｘ１８に対しては、パンクチャパターン＃１を用いて送信しないビット（パンクチャビット）をＫ個選択する。パンクチャ部（データ削減部）６３０は、ｘ１９〜ｘ２７に対しては、パンクチャパターン＃２を用いて送信しないビット（パンクチャビット）をＫ個選択する。
【０１２９】
同様に、パンクチャ部（データ削減部）６３０は、ｘ２８〜ｘ３６に対しては、パンクチャパターン＃３を用いて送信しないビット（パンクチャビット）をＫ個選択する。パンクチャ部（データ削減部）６３０は、ｘ３７〜ｘ４５に対しては、パンクチャパターン＃４を用いて送信しないビット（パンクチャビット）をＫ個選択する。パンクチャ部（データ削減部）６３０は、ｘ４６〜ｘ５４に対しては、パンクチャパターン＃５を用いて送信しないビット（パンクチャビット）をＫ個選択する。
【０１３０】
同様に、パンクチャ部（データ削減部）６３０は、ｘ６２２〜ｘ６３０に対しては、パンクチャパターン＃６９を用いて送信しないビット（パンクチャビット）をＫ個選択する。パンクチャ部（データ削減部）６３０は、ｘ６３１〜ｘ６３９に対しては、パンクチャパターン＃７０を用いて送信しないビット（パンクチャビット）をＫ個選択する。パンクチャ部（データ削減部）６３０は、ｘ６４０〜ｘ６４８に対しては、パンクチャパターン＃７１を用いて送信しないビット（パンクチャビット）をＫ個選択する。
【０１３１】
なお、パンクチャ部（データ削減部）６３０は、パンクチャパターン＃０〜＃２から構成されるパンクチャパターン＃Ｓ０を定義し、ｘ１〜ｘ２７に、パンクチャパターン＃Ｓ０を用いて送信しないビット（パンクチャビット）を３Ｋ個選択するようにしても良い。同様に、パンクチャ部（データ削減部）６３０は、パンクチャパターン＃３〜＃５から構成されるパンクチャパターン＃Ｓ１を定義し、ｘ２８〜ｘ５４に、パンクチャパターン＃Ｓ１を用いて送信しないビット（パンクチャビット）を３Ｋ個選択するようにしても良い。
【０１３２】
同様に、パンクチャ部（データ削減部）６３０は、パンクチャパターン＃６９〜＃７１から構成されるパンクチャパターン＃Ｓ２３を定義し、ｘ６２２〜ｘ６４８に、パンクチャパターン＃Ｓ２３を用いて送信しないビット（パンクチャビット）を３Ｋ個選択するようにしても良い。
【０１３３】
すなわち、サブブロック行列の列数の約数を基本周期としてパンクチャをすることは、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数を単位（周期）としてパンクチャすることと等価になる。
【０１３４】
以上のように、本実施の形態では、パンクチャパターン設定部６２０は、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数の整数倍、又は、列数の約数ごとにパンクチャパターンを探索し、パンクチャ部（データ削減部）６３０は、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数ごとに、パンクチャパターンを切り替える。これにより、良好な受信品質が得られるパンクチャパターンを、比較的短い時間で確実に探索することができ、良好な受信品質を維持しつつ、伝送効率を向上させることができる。
【０１３５】
なお、以上の説明では、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数ごとに、パンクチャパターンを切り替える場合を例に説明したが、パンクチャパターンを必ずしも切り替える必要はない。
【０１３６】
例えば、図１６Ａは、「パンクチャパターン＃０」、「パンクチャパターン＃１」、・・・「パンクチャパターン＃２３」が同一のパンクチャパターンであっても良い。また、図１６Ｂは、「パンクチャパターン＃０」、「パンクチャパターン＃１」、「パンクチャパターン＃２」、・・・が同一のパンクチャパターンであっても良い。
【０１３７】
また、図１６Ｃは、「パンクチャパターン＃０」、「パンクチャパターン＃１」、・・・「パンクチャパターン＃７１」が同一のパンクチャパターンであっても良い。要するに、パンクチャパターンの単位は、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数となっていれば良い。
【０１３８】
（実施の形態４）
本実施の形態では、実施の形態１及び実施の形態２において説明した符号化方法を、制御情報に利用する場合の符号化方法の例を説明する。
【０１３９】
一例として、以下では、Coding rate(R)=1/2，LDPC code information block length(bits)=168，LDPC codeword block length(bits)=336のＱＣ−ＬＤＰＣ符号を用い、２００ビットの制御情報を符号化する場合について説明する。
【０１４０】
図１７は、２００ビットの制御情報を１６８ビットと３２ビットとに分割し、１６８ビットをブロック＃１に配置し、３２ビットをブロック＃２に配置する場合を示している。図１７において、ブロック＃２には、ブロック長１６８ビットに対し、制御情報が３２ビットしか配置されない。
【０１４１】
以下、ブロック＃２のように、送信する必要があるビットが、ブロック長より短いブロックは、実施の形態２において説明した特殊ブロックである。そのため、実施の形態２と同様に、ブロック＃２では、情報ビットとして“０”が仮想ビットとして配置され、符号化される。この結果、ブロック＃１とブロック＃２とでは、受信品質にばらつきが発生し、結局、２００ビットの制御情報の受信品質は、受信品質が悪いブロックに依存してしまう。
【０１４２】
そこで、本実施の形態では、図１８に示すように、２００ビットの制御情報を、２つのブロック＃１，＃２にできるだけ均等に配置し、各ブロックに対し実施の形態１で述べた符号化を行う。具体的には、制御情報が２００ビットの場合、ブロック＃１及びブロック＃２の双方に、１００ビットずつ制御情報を配置する。
【０１４３】
これにより、ブロック＃１及びブロック＃２が共に、特殊ブロックになるため、ブロック＃１及びブロック＃２の双方で、情報ビットとして“０”が仮想ビットとして配置されて、実施の形態１における符号化方法により符号化される。これにより、ブロック＃１とブロック＃２との受信品質が均等になり、通信相手に的確に伝送できるようになる。
【０１４４】
なお、制御情報が２０１ビットの場合には、ブロック＃１には制御情報を１０１ビット配置し、ブロック＃２には制御情報を１００ビット配置するようにする。この場合、ブロック＃１における制御情報のビットの数とブロック＃２における制御情報のビットの数との差は、高々１ビットである。このように、送信装置は、２つのブロックに、送信する必要がある情報をできるだけ均等に配置することにより、各ブロック間の受信品質を均等にすることができるので、制御情報を通信相手に確実に伝送することができるようになる。
【０１４５】
以上のように、本実施の形態では、制御情報を複数のブロックにできるだけ均等に配置するようにした。これにより、送信装置は、配置後の各ブロックに対し、実施の形態１において説明した符号化方法を適用することにより、制御情報等の通信確立に必要な情報を確実に通信相手に伝送することができる。
【０１４６】
なお、本実施の形態における特殊ブロックの生成方法は、実施の形態２で説明した特殊ブロックの生成方法と同様である。つまり、送信装置は、送信する必要のない情報ビット及びパリティビットの双方を送信しないビットと設定（パンクチャビットと設定）することになる。
【０１４７】
（実施の形態５）
本実施の形態では、ＱＣ−ＬＤＰＣ符号の一例を示すとともに、当該ＱＣ−ＬＤＰＣ符号に最適なパンクチャパターンについて説明する。
【０１４８】
ＱＣ−ＬＤＰＣ符号の検査行列Ｈは、式（４）のように定義する。
【数４】
2010114862.tif 000006
【０１４９】
式（４）の検査行列Ｈは、ｍ行ｎ列の行列である。ここで、ｎは、符号長であり、ｍは、パリティビット数である。従って、システマティックビット数ｋは、ｋ＝ｎ−ｍとなる。また、式（４）において、Ｐi,jは、ｚ行ｚ列の巡回置換行列又はｚ行ｚ列のゼロ行列である。
【０１５０】
ここで、式（４）の検査行列Ｈは、ｎｂ行ｍｂ列の行列Ｈｂにより展開する。なお、ｍ＝ｚ×ｍｂ、ｎ＝ｚ×ｎｂの関係が成り立つ。また、行列Ｈｂの各要素は、Ｐi,jにおいて要素が“１”の場合、“１”とし、Ｐi,jにおいて要素が“０”の場合、“０”とする。
【０１５１】
ここで、Ｐi,jは、巡回置換行列として、ｚ行ｚ列の単位行列、又は、ｚ行ｚ列の単位行列を巡回シフトした行列の集合である。巡回置換行列は、単位行列、又は、単位行列を巡回シフトした行列の集合であるので、行列Ｈｂを、行列Ｈｂと大きさが同一の行列Ｈｂｍに分解すると、行列Ｈｂｍは、ゼロ行列、又は、単位行列を巡回シフトした行列で示される。
【０１５２】
なお、以降、行列Ｈｂｍにおいて、ゼロ行列は“−１”と標記する。また、単位行列は“０”と標記する。また、単位行列の巡回置換行列は、その巡回シフト量ｐ（ｉ，ｊ）（＞０）を用いて“ｐ（ｉ，ｊ）”と標記する。このようにコンパクトに標記された行列Ｈｂｍの集合として、行列Ｈｂを表現することができる。
【０１５３】
ところで、行列Ｈｂは、式（５）に示すように、２つのサブ行列Ｈｂ１，Ｈｂ２に分けられる。サブ行列Ｈｂ１は、情報ビットに関連する部分行列であり、サブ行列Ｈｂ２は、パリティビットに関連する部分行列である。
【数５】
2010114862.tif 000007
【０１５４】
サブ行列Ｈｂ２は、式（６）に示すように、更に、ベクトルｈｂとサブ行列Ｈ’ｂ２に分けられる。
【数６】
2010114862.tif 000008
【０１５５】
式（６）において、サブ行列Ｈ’ｂ２は、ｉ行ｊ列（ｉ＝ｊ及びｉ＝ｊ＋１）の部分が“１”であり、他の部分は“０”の行列である。サブ行列Ｈ’ｂ２において、“１”と標記される部分は、単位行列のシフト量が０であることを示す。つまり、サブ行列Ｈ’ｂ２は、行列Ｈｂに展開される際、ｚ行ｚ列の単位行列によって置き換えられる。
【０１５６】
また、ベクトルｈｂの一番上（ｈｂ（０））と一番下（ｈｂ（ｍｂ−１））とには、同じ巡回シフト量が割り当てられるとする。
【０１５７】
以下では、式（７）により定義される行列Ｈｂを考える。式（７）により定義される検査行列Ｈは、各符号化率における最大符号長に対応することができる。
【数７】
2010114862.tif 000009
【０１５８】
式（７）において、ｐ（ｆ，ｉ，ｊ）は、単位行列の巡回シフト量を示し、ｆは、各符号化率に対応する符号長のインデックスを示す。また、ｚｆは、展開ファクタと呼ばれ、ｚｆ＝ｋ／ｎの関係がある。
【０１５９】
式（７）に基づく符号化率１／２（＝ｋ／ｎ）の行列Ｈｂを、式（８）に示す。
【数８】
2010114862.tif 000010
【０１６０】
式（８）において、“０”は、単位行列を示す。また、“−１”は、ゼロ行列を示す。また、たとえば、１行２列目の“９４”は、単位行列を９４だけサイクリックシフトした行列を示す。同様に、４行１列目の“６１”は、単位行列を６１だけサイクリックシフトした行列を示す。
【０１６１】
また、式（７）に基づく符号化率５／６（＝ｋ／ｎ）の行列Ｈｂを、式（９）に示す。
【数９】
2010114862.tif 000011
【０１６２】
以上、符号化率１／２及び５／６のＱＣ−ＬＤＰＣの行列Ｈｂの一例を示した。以下、これらＱＣ−ＬＤＰＣの行列Ｈｂに適用可能なパンクチャパターンについて説明する。
【０１６３】
図１９Ａには、式（８）に示した符号化率１／２のＱＣ−ＬＤＰＣの行列Ｈｂを示す。図１９Ａに示されるように、符号化率１／２の行列Ｈｂは、情報ビットに関連する部分行列Ｈｂ１が１２行であるため、パリティビットに関連する部分行列Ｈｂ２は１２列となる。
【０１６４】
図１９Ａのパリティビットに関連する部分行列Ｈｂ２は、１行１列目及び１２行１列目を除き、“−１”，“０”で構成されており、規則的な配列となっている。上述したように、“−１”は、ゼロ行列を示し、“０”は、単位行列を示す。また、１行１列目及び１２行１列目の“７”は、単位行列を７だけサイクリックシフトした巡回置換行列である。
【０１６５】
このとき、パリティビットに関連する部分行列Ｈｂ２の列において、単位行列、ゼロ行列により構成される部分は、同一のパンクチャパターンを用いるようにしても、受信品質に与える影響が低い。そのため、単位行列、ゼロ行列により構成される部分については、同一のパンクチャパターン＃Ａを用いても、良好な受信特性を得ることができる（図１９Ａ参照）。なお、単位行列、ゼロ行列により構成される部分に該当しない列については、異なるパンクチャパターンと設定するものとする。ただし、一部又は全てのパンクチャパターンが同一のパンクチャパターンとなっていても良い。
【０１６６】
更に、符号化系列は、実施の形態３で述べたパンクチャ方法と組み合わせることも可能である。つまり、符号化系列は、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数の整数倍、又は、列数の約数を単位として、パンクチャを行うと更に効果的である。図１９Ｂ、図１９Ｃでは、パリティビットに関連する部分行列Ｈｂ２に対し、ＱＣ−ＬＤＰＣ符号の検査行列Ｈを構成するサブブロック行列の列数の整数倍、又は、列数の約数を単位として、パンクチャを行う場合の例を示している。
【０１６７】
図１９Ｂには、式（８）に示した符号化率１／２のＱＣ−ＬＤＰＣの行列Ｈｂ及びパンクチャパターンの別の適用例について示す。図１９Ｂは、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍（２倍）に、パンクチャパンターンの周期を設定した場合の例である。なお、図１９Ｂは、単位行列、ゼロ行列により構成される部分には、同一のパンクチャパターン＃Ｂを用いるようにした例である。
【０１６８】
また、図１９Ｃには、式（８）に示した符号化率１／２のＱＣ−ＬＤＰＣの行列Ｈｂ及びパンクチャパターンの別の適用例について示す。図１９Ｃは、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の１／２ごとにパンクチャパンターンを生成した場合の例である。なお、図１９Ｃは、単位行列、ゼロ行列により構成される部分には、同一のパンクチャパターンを用いるようにした例である。
【０１６９】
具体的には、図１９Ｃは、１００行１００列のサブブロック行列から構成される検査行列Ｈに対し、サブブロック行列の列数の１／２である約数５０列を基本周期として、５０列ごとにパンクチャパターンを切り替える様子を示している。
【０１７０】
具体的には、パンクチャ部（データ削減部）６３０は、ｐ１００〜ｐ１４９に対しては、パンクチャパターン＃１を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ１５０〜ｐ１９９に対しては、パンクチャパターン＃２を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ２００〜ｐ２４９に対しては、パンクチャパターン＃３を用いて送信しないビット（パンクチャビット）を選択する。
【０１７１】
パンクチャ部（データ削減部）６３０は、ｐ２５０〜ｐ２９９に対しては、パンクチャパターン＃４を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ１１００〜ｐ１１４９に対しては、パンクチャパターン＃２１を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ１１５０〜ｐ１１９９に対しては、パンクチャパターン＃２２を用いて送信しないビット（パンクチャビット）を選択する。
【０１７２】
図２０Ａは、式（９）に示した符号化率５／６のＱＣ−ＬＤＰＣの行列Ｈｂを示す。図２０Ａに示されるように、符号化率５／６の検査行列Ｈｂは、情報ビットに関連する部分行列Ｈｂ１が４行であるため、パリティビットに関連する部分行列Ｈｂ２は４列となる。
【０１７３】
図２０Ａのパリティビットに関連する部分行列Ｈｂ２は、１行１列目及び４行１列目を除き、“−１”，“０”で構成されており、規則的な配列となっている。また、１行１列目及び４行１列目の“８０”は、単位行列を８０だけサイクリックシフトした巡回置換行列である。
【０１７４】
このように、符号化率５／６の場合にも、パリティビットに関連する部分行列Ｈｂ２の列において、単位行列、ゼロ行列により構成される部分は、同一のパンクチャパターンを用いるようにしても、受信品質に与える影響が低い。そのため、単位行列、ゼロ行列により構成される部分の列については、同一のパンクチャパターン＃Ａを用いても、受信装置は、良好な受信特性を得ることができる（図２０Ａ参照）。なお、単位行列、ゼロ行列により構成される部分に該当しない列については、異なるパンクチャパターンと設定するものとするが、一部が同一のパンクチャパターンとなっていても良い。
【０１７５】
図２０Ｂには、式（９）に示した符号化率５／６のＱＣ−ＬＤＰＣの行列Ｈｂ及びパンクチャパターンの別の適用例について示す。図２０Ｂは、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍（３倍）に、パンクチャパンターンの周期を設定した場合の例である。
【０１７６】
また、図２０Ｃには、式（９）に示した符号化率５／６のＱＣ−ＬＤＰＣの行列Ｈｂ及びパンクチャパターンの別の適用例について示す。図２０Ｃは、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の１／２ごとにパンクチャパンターンを生成した場合の例である。なお、図２０Ｂと同様に、図２０Ｃは、単位行列、ゼロ行列により構成される部分には、同一のパンクチャパターンを用いるようにした例である。
【０１７７】
具体的には、図２０Ｃは、１００行１００列のサブブロック行列から構成される検査行列Ｈに対し、サブブロック行列の列数の1／２である約数５０列を基本周期として、５０列ごとにパンクチャパターンを切り替える様子を示している。
【０１７８】
具体的には、パンクチャ部（データ削減部）６３０は、ｐ１００〜ｐ１４９に対しては、パンクチャパターン＃１を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ１５０〜ｐ１９９に対しては、パンクチャパターン＃２を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ２００〜ｐ２４９に対しては、パンクチャパターン＃３を用いて送信しないビット（パンクチャビット）を選択する。
【０１７９】
パンクチャ部（データ削減部）６３０は、ｐ２５０〜ｐ２９９に対しては、パンクチャパターン＃４を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ３００〜ｐ３４９に対しては、パンクチャパターン＃５を用いて送信しないビット（パンクチャビット）を選択する。パンクチャ部（データ削減部）６３０は、ｐ３５０〜ｐ３９９に対しては、パンクチャパターン＃６を用いて送信しないビット（パンクチャビット）を選択する。
【０１８０】
このように、パリティビットに関連する部分行列Ｈｂ２の列において、単位行列、ゼロ行列により構成される部分は、同一のパンクチャパターンを設定し、単位行列、ゼロ行列により構成される部分に該当しない列については、異なるパンクチャパターンと設定する。
【０１８１】
なお、単位行列、ゼロ行列により構成される部分に該当しない列は、例えば、実施の形態３で述べたように、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数ごとに、パンクチャパターンを切り替えるようにしても良い。
【０１８２】
また、単位行列、ゼロ行列により構成される部分に該当しない列は、パンクチャパターンのパターン長が、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数ごとである同一のパンクチャパターンを適用するようにしても良い。
【０１８３】
（実施の形態６）
実施の形態５で説明したＱＣ−ＬＤＰＣ符号を用い、かつ、実施の形態４で説明したＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数を単位として、パンクチャを行っていて、全てにおいて、同一のパンクチャパターンを用いたときの例を示す。
【０１８４】
実施の形態６は、符号化率１／２の式（８）の検査行列をもつＱＣ―ＬＤＰＣ符号からパンクチャにより、符号化率約０．６５を実現するためのパンクチャパターンについて説明する。ただし、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数３５０、列数３５０とする。したがって、ＱＣ−ＬＤＰＣ符号のInformation block length(bits)は4200となり、LDPC codeword block length(bits)は8400となる。
【０１８５】
このとき、ＬＤＰＣ符号のcodewordを以下のようにあらわす。
v=[x0, x1, ・・・, x4198, x4199, p0, p1, ・・・, p4198, p4199]
=[s0, s1, s2, ・・・, s8397, s8398, s8399]
=[v0, v1, v2, ・・・, v167]
ただし、vはcodeword、xは情報、pはパリティを意味する。
【０１８６】
なお、v0，v1，・・・，vi・・・，v167は以下のようにあらわされる。
v0=[s0, s1, ・・・, s48, s49]、
v1=[s50, s51, ・・・, s98, s99]、・・・、
vi=[s50*i, s50*i+1, ・・・, s50*i+48, s50*i+49]、・・・、
v167=[s8350, s8351, ・・・, s8398, s8399]
【０１８７】
本発明者らは、パンクチャパターンを探索した結果、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の約数である５０をパンクチャパターンの周期とすると良好な受信品質を与えることを確認した。
【０１８８】
良好な受信品質を与えるパンクチャリングパターンは以下のとおりである。
(1, 8, 19, 20, 25, 28, 29, 31, 38, 40, 41)
【０１８９】
別の表現として、パンクチャテーブルwは、
w=[1011111101 1111111110 0111101100 1011111101 0011111111]
であらわされる。
【０１９０】
このとき、wに含まれる0が送信しないビットを意味する。つまり、パンクチャテーブルwは、viに対して、図２１に示すように送信しないビットを決定する。したがって、vi=[s50*i, s50*i+1, ・・・, s50*i+48, s50*i+49]に対して、送信しないビットを除いた、送信するデータビットvi’は、
vi’=[s50*i, s50*i+2, s50*i+3, s50*i+4, s50*i+5, s50*i+6, s50*i+7, s50*i+9,s50*i+10, s50*i+11, s50*i+12, s50*i+13, s50*i+14, s50*i+15, s50*i+16, s50*i+17, s50*i+18, s50*i+21, s50*i+22, s50*i+23, s50*i+24, s50*i+26, s50*i+27, s50*i+30, s50*i+32, s50*i+33, s50*i+34, s50*i+35, s50*i+36, s50*i+37, s50*i+39, s50*i+42, s50*i+43, s50*i+44, s50*i+45, s50*i+46, s50*i+47, s50*i+48, s50*i+49]とあらわされる。
【０１９１】
符号化率５／６の式（９）の検査行列をもつＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率約０．９５を実現するためのパンクチャパターンについて説明する。ただし、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数２１０、列数２１０とする。したがって、ＱＣ−ＬＤＰＣ符号において、Information block length(bits)は4200となり、LDPC codeword block length(bits)は5040となる。
【０１９２】
このとき、ＬＤＰＣ符号のcodewordを以下のようにあらわす。
v=[x0, x1, ・・・, x4198, x4199, p0, p1, ・・・, p838, p839]
=[s0, s1, s2, ・・・, s5037, s5038, s5039]
=[v0, v1, v2, ・・・, v79]
ただし、vはcodeword、xは情報、pはパリティを意味する。
【０１９３】
なお、v0，v1，・・・，vi・・・，v79は以下のようにあらわされる。
v0=[s0, s1, ・・・, s61, s62]、
v1=[s63, s64, ・・・, s124, s125]、・・・、
vi=[s63*i, s63*i+1, ・・・, s63*i+61, s63*i+62]、・・・、
v79=[s4977, s4978, ・・・, s5038, s5039]。
【０１９４】
本発明者らは、パンクチャパターンを探索した結果、６３をパンクチャパターンの周期とすると良好な受信品質を与えることを確認した。
【０１９５】
良好な受信品質を与えるパンクチャリングパターンは以下のとおりである。
(3, 18, 20, 27, 39, 50, 60)
【０１９６】
別の表現として、パンクチャテーブルwは
w=[1110111111 1111111101 0111111011 1111111110 1111111111 0111111111 011]
であらわされる。
【０１９７】
このとき、wに含まれる0が送信しないビットを意味する。つまり、パンクチャテーブルwは、viに対して、図２２に示すように送信しないビットを決定する。したがって、vi=[s63*i, s63*i+1, ・・・, s63*i+61, s63*i+62]に対して送信しないビットを除いた、送信するデータビットvi’は、
vi’= [s63*i, s63*i+1, 63*i+2, s63*i+4,  s63*i+5, s63*i+6,  s63*i+7,  s63*i+8, 63*i+9, s63*i+10, s63*i+11, s63*i+12, s63*i+13, s63*i+14, s63*i+15, s63*i+16, s63*i+17, s63*i+19, s63*i+21, s63*i+22, s63*i+23, s63*i+24, s63*i+25, s63*i+26, s63*i+28, s63*i+29, s63*i+30, s63*i+31, s63*i+32, s63*i+33, s63*i+34, s63*i+35, s63*i+36, s63*i+37, s63*i+38, s63*i+40, s63*i+41, s63*i+42, s63*i+43, s63*i+44, s63*i+45, s63*i+46, s63*i+47, s63*i+48, s63*i+49, s63*i+51, s63*i+52, s63*i+53, s63*i+54, s63*i+55, s63*i+56, s63*i+57, s63*i+58, s63*i+59, s63*i+61, s63*i+62]とあらわされる。
【０１９８】
このとき、パンクチャパターンの周期を２０〜９０程度とすると、受信時のデータ品質が良好となる。なお、パンクチャパターンの周期とは、パンクチャパターンの最小周期をいう。例えば、パンクチャテーブルw1=[001]のパンクチャパターンの周期は３である。又、パンクチャテーブルw2=[001001]は、周期６の構成であるが、２つのパンクチャテーブルw1=[001]から構成され、パンクチャテーブルw1のパンクチャパターンの周期は３であるため、パンクチャテーブルw2のパンクチャパターンの（最小）周期は、パンクチャテーブルw1と同様に３である。すなわち、パンクチャパターンの周期とは、パンクチャパターンを構成するパターンのうち、最小パターンのパターン長をいう。また、パンクチャテーブルw3=[010]は、w1をサイクリックシフトしたものと同一となるが、上記のw, vi, vi’の関係を考慮すると、w3とw1は異なるパンクチャパターンということができる。すなわち、パンクチャテーブルwxとパンクチャテーブルwyがあったとき、たとえwxをサイクリックシフト（ただし、０ビットサイクリックシフトを除く）してwyと同一となってもwxとwyは異なるパンクチャパターンである。
【０１９９】
パンクチャパターンの周期が長すぎると、送信しないビット（パンクチャピット）の配置にランダム性が発生し、バイナリ消失チャネルにおいて、ランダムエラーが発生したモデルに近づくため、受信時のデータ品質は悪くなる。一方、パンクチャパターンの周期が短すぎると、送信しないビット（パンクチャピット）の配置が片寄るため、適切なパンクチャパターンとなる可能性が低くなり、受信時のデータ品質は悪くなる。このため、パンクチャパターンの周期を２０〜９０程度とすることが重要となる。
【０２００】
また、パンクチャパターンの周期を２０〜９０程度とした際、パンクチャテーブルwに0が３つ以上含まれるようにすると、受信時のデータ品質は良好となる（受信（復号）時に良好なデータ品質を得ることができるパンクチャパターンを生成できる可能性が高くなる）。パンクチャテーブルwに0が３つ以上含まれると、送信しないビット（パンクチャピット）の配置に規則性がなくなりランダム性が増すため、受信時のデータ品質が良好となる。
【０２０１】
更に、パンクチャパターンの周期を２０〜９０程度とし、かつ、パンクチャテーブルwに0が３つ以上含まれるようにし、かつ、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列の列数の整数倍、又は、列数の約数をパンクチャパターンの周期とすると、受信（復号）時に良好なデータ品質を得ることができるパンクチャパターンを生成できる可能性が高くなる。
【０２０２】
上記以外におけるパンクチャパターンは以下のとおりである。
ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数８０、列数８０とし、符号化率１／２の式（８）の検査行列をもつＱＣ―ＬＤＰＣ符号（Information block length(bits)=960, LDPC codeword block length(bits)=1920）からパンクチャにより、符号化率約０．６５、０．７５を実現するためのパンクチャパターンは以下のとおりである。
符号化率約０．６５の場合：w=[1111110110 0100111111]
符号化率約０．７５の場合：w=[1100111111 1101111110 0111110001 1110000111]
【０２０３】
ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数４８、列数４８とし、符号化率５／６の式（９）の検査行列をもつＱＣ―ＬＤＰＣ符号（Information block length(bits)=960, LDPC codeword block length(bits)=1152）から、パンクチャにより、符号化率約０．９５を実現するためのパンクチャパターンは以下のとおりである。
w= [1111111110 1111111111 0111101111 1111001111 11101111]
【０２０４】
ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数１８０、列数１８０とし、符号化率１／２の式（８）の検査行列をもつＱＣ―ＬＤＰＣ符号（Information block length(bits)=2160, LDPC codeword block length(bits)=4320）からパンクチャにより、符号化率約０．６５、０．７５を実現するためのパンクチャパターンは以下のとおりである。
符号化率約０．６５の場合：w=[1011111100 0011111101 1111100111 011111]
符号化率約０．７５の場合：w=[1111110100 0001101001 1111111110]
【０２０５】
ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズは、行数１０８、列数１０８とし、符号化率５／６の式（９）の検査行列をもつＱＣ―ＬＤＰＣ符号Information block length(bits)=2160, LDPC codeword block length(bits)=2592）から、パンクチャにより、符号化率約０．９５を実現するためのパンクチャパターンは以下のとおりである。
w= [1011111111 1111011111 1110111]
【０２０６】
（実施の形態７）
実施の形態５では、パリティ検査行列Ｈｂにおいて、単位行列及びゼロ行列により構成されるサブ行列Ｈ’ｂ２（式（６）参照）とサブ行列Ｈ’ｂ２以外のサブ行列（以下「Ｈ’ｂ１（＝Ｈｂ１＋ｈｂ）」と標記する。式（５）及び（６）参照）とで、異なるパンクチャパターンを用いる場合について説明した。その一例として、実施の形態５では、図１９Ａ〜図１９Ｃ、図２０Ａ〜図２０Ｃに示すように、単位行列及びゼロ行列により構成されるサブ行列Ｈ’ｂ２に、サブブロック行列の列数の整数倍、又は、列数の約数を単位として、同一のパンクチャパターンを用いる場合について説明した。
【０２０７】
本実施の形態では、実施の形態５と同様に、パリティ検査行列Ｈｂにおいて、単位行列及びゼロ行列により構成されるサブ行列Ｈ’ｂ２とサブ行列Ｈ’ｂ１とで、異なるパンクチャパターンを用いる場合について説明する。具体的には、図２０Ｂに対応する図２３に示すように、サブ行列Ｈ’ｂ１には、サブ行列Ｈ’ｂ１の列数をパンクチャ周期とするパンクチャパターン＃ｐ１を用い、サブ行列Ｈ’ｂ２には、サブ行列Ｈ’ｂ２の列数をパンクチャパターン周期とするパンクチャパターン＃ｐ２を用いて、符号化率２０／２１を実現する場合について説明する。
【０２０８】
以下では、一例として、符号化率５／６の式（９）の検査行列をもつＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率２０／２１を実現するためのパンクチャパターンについて説明する。
【０２０９】
図２４の検査行列Ｈｂは、式（９）に示した符号化率５／６のＱＣ−ＬＤＰＣの検査行列Ｈｂである。式（９）の検査行列Ｈｂは、４行２４列のサブブロック行列から構成される。なお、以下では、ＱＣ−ＬＤＰＣ符号の検査行列を構成するサブブロック行列のサイズが、行数４８、列数４８とする。したがって、ＱＣ−ＬＤＰＣ符号において、Information block length(bits)は960となり、LDPC codeword block length(bits)は1152となる。
【０２１０】
このとき、ＬＤＰＣ符号のcodewordを以下のようにあらわす。
v=[x0, x1, ・・・, x958, x959, p0, p1, ・・・, p190, p191]
=[s0, s1, s2, ・・・, s1149, s1150, s1151]
=[v0, v1, v2, ・・・, v24]
ただし、vはcodeword、xは情報、pはパリティを意味する。
【０２１１】
なお、v0，v1，・・・，vi・・・，v23は以下のようにあらわされる。
v0=[s0, s1, ・・・, s46, s47]、
v1=[s48, s48, ・・・, s94, s95]、・・・、
vi=[s48*i, s48*i+1, ・・・, s48*i+46, s48*i+47]、・・・、
v23=[s1104, s1105, ・・・, s1150, s1151]。
【０２１２】
図２４において、＃０は、ｘ０，ｘ１，…，ｘ４７に対応する部分行列を示し、＃１は、ｘ４８，ｘ４９，…，ｘ９５に対応する部分行列を示す。また、＃２１は、ｐ４８，ｐ４９，…，ｐ９５に対応する部分行列を示し、＃２２は、ｐ９６，ｐ９７，…，ｐ１４３に対応する部分行列を示し、＃２３は、ｐ１４４，ｐ１４５，…，ｐ１９１に対応する部分行列を示す。
【０２１３】
図２４において、サブ行列Ｈ’ｂ１は、＃０〜２０により構成され、サブ行列Ｈ’ｂ２は、＃２１，＃２２，＃２３により構成される。＃２１，＃２２，＃２３は、単位行列（“０”）及びゼロ行列（“−１”）により構成される。このように、式（９）に示すＱＣ−ＬＤＰＣ符号の検査行列Ｈｂは、単位行列及びゼロ行列で構成されるサブ行列Ｈ’ｂ２を含んでいる。
【０２１４】
本実施の形態では、サブ行列Ｈ’ｂ２及びＢＰ復号の特徴を考慮して好適なパンクチャパターンを以下のようにして決定する。
【０２１５】
ＢＰ復号では、行演算と列演算とを反復して各ビットの対数尤度比を得る。
【０２１６】
ＢＰ復号の行演算では、対数尤度比が更新される。このとき、送信されなかった（パンクチャ）ビットは、復号時には、消失ビットとして扱われることになり、消失ビットに対しては、初期の対数尤度比が存在しないため、対数尤度比が０に設定される。初期の対数尤度比が存在しない消失ビットが、同一行に２つ以上含まれると、当該行では、列演算により消失ビットの対数尤度比が更新されるまで、行演算単独では対数尤度比が更新されない。そのため、消失ビットは同一行において２ビット未満であるのが好ましい。
【０２１７】
ＢＰ復号の列演算では、外部値が更新される。消失ビットの外部値は、同一列の自身を除く“１”の対数尤度比の加算結果により更新される。したがって、列重みが大きい場合には、消失ビットの外部値は、同一列の自身を除く複数の“１”の対数尤度比の加算結果により更新されるので、外部値における対数尤度比の絶対値は大きくなり、これにより、対数尤度比が収束しやすい。一方、列重みが小さい場合には、加算される対数尤度比の数が少ないため、外部値における対数尤度比の絶対値は大きくなりづらく、これにより、対数尤度比が収束しにくいという性質をもつことになる。
【０２１８】
特に、列重みが２の場合には、検査行列における列重み２に相当する２つの“１”において、外部値が単に交換されるだけとなるため、対数尤度比の絶対値は大きくなりづらく、反復処理を何度行っても信頼度が伝播されず、受信品質の劣化を招く原因となる。したがって、外部値の大きさを適切に更新するためには、消失ビットの列重みが３以上であるのが好ましい。
【０２１９】
このように、ＢＰ復号の特徴を考慮すると、行演算の観点からは、１）同一行において消失ビットが２ビット未満となるのが好ましく、また、列演算の観点からは、２）消失ビットの列重みが３以上であるのが好ましい。
【０２２０】
本実施の形態では、上記１）及び２）を考慮してパンクチャパターンを設定する。なお、以下では、サブブロック行列の列数を単位として符号化系列をパンクチャする場合を例に説明する。
【０２２１】
式（９）のパリティ検査行列Ｈｂを、サブブロック行列を１単位として表現したとき、サブ行列Ｈ’ｂ２では、ｊ列のｉ行及び（ｉ＋１）行には単位行列（“０”）が配置され、ｊ列のｉ行及び（ｉ＋１）行以外の行にはゼロ行列（“−１”）が配置され、かつ、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行には単位行列（“０”）が配置され、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行以外の行にはゼロ行列（“−１”）が配置されるという関係が、ｊ＝ｑ，ｑ＋１，ｑ＋２，・・・，ｑ＋ｓ−１，ｑ＋ｓ（ただし、ｓは１以上の整数）で成立する。
【０２２２】
具体的には、図２４から分かるように、２２列の１行及び２行には単位行列（“０”）が配置され、２２列の１行及び２行以外の行（３行及び４行）にはゼロ行列（“−１”）が配置され、かつ、２３列の２行及び３行には単位行列（“０”）が配置され、２３列の２行及び３行以外の行（１行及び４行）にはゼロ行列（“−１”）が配置され、かつ、２４列の３行及び４行には単位行列（“０”）が配置され、２４列の３行及び４行以外の行（１行及び２行）にはゼロ行列（“−１”）が配置される。そのため、図２４のサブ行列Ｈ’ｂ２に四角枠で囲まれた部分に示すように、単位行列（“０”）が同一行に隣接して配置される。
【０２２３】
単位行列は、行列の対角要素のみが“１”であり、他の要素は“０”である。そのため、単位行列の列に対応するビットを送信しないビット（パンクチャビット）とすると、消失ビットは単位行列の各行に１ビットずつのみとなる。しかし、単位行列が、同一行に隣接して配置された場合に、単位行列を含む列に対応するビットを送信しないビット（パンクチャビット）とすると、各行において消失ビットが２ビットとなる。
【０２２４】
具体的には、図２４における２２列、２３列の２行目の単位行列（“０”）のように、単位行列が、同一行に隣接して配置される場合に、これら２つの単位行列を含む列に対応するビットを送信しないビット（パンクチャビット）とすると、２２列の２行目の単位行列（“０”）の各行では消失ビットが１ビットであり、２３列の２行目の単位行列（“０”）の各行では消失ビットが１ビットであり、各単位行列ごとでみると消失ビットは各行に１ビットとなるが、これら単位行列は同一行に隣接して配置されるため、単位行列が配置される同一行でみると、消失ビットは２ビットとなる。
【０２２５】
上記１）で説明したように、消失ビットは２ビット未満であるのが望ましい。したがって、２ビット消失を回避するために、単位行列が同一行に隣接して配置されていない＃２１及び＃２３の列に対応するビットを送信しないビット（パンクチャビット）とするようなパンクチャパターンを用いることとする。すなわち、＃２１の列に対応するビットを送信しないビット（パンクチャビット）とする場合、１サブブロック行列の列数以上離れた＃２３の列に対応するビットを送信しないビット（パンクチャビット）とする。このように、サブブロック行列の列数を単位として符号化系列をパンクチャする場合に、パンクチャする間隔を、１単位（１サブブロック行列の列数）以上とすることにより、単位行列又はゼロ行列から構成されるサブ行列Ｈ’ｂ２において、パンクチャにより消失するビットが、各行１ビットのみとなり、２ビット消失を回避することができるため、受信品質の劣化を回避することができる。
【０２２６】
一方、＃２１及び＃２２の列に対応するビット、又は、＃２２及び＃２３の列に対応するビットを送信しないビット（パンクチャビット）とするようなパンクチャパターンを用いる場合には、同一行に隣接する単位行列の列に対応するビットが送信しないビット（パンクチャビット）とされるため、２ビット消失が起こり、受信特性が劣化してしまう。
【０２２７】
更に、上記２）を考慮すると、パリティ検査行列Ｈｂのうち、サブ行列Ｈ’ｂ１では、列重みが３以上であるため、サブ行列Ｈ’ｂ１の列に対応するビットを送信しないビット（パンクチャビット）とすることにより、列演算により外部値の対数尤度比の絶対値が大きくなるように更新され、消失ビットの対数尤度比が収束する可能性が高くなり、受信特性が改善される。
【０２２８】
図２５には、＃２１，＃２３に加えて、＃４の列に対応するビットが送信しないビット（パンクチャビット）とされる例が示されている。＃４には、＃２３において単位行列（“０”）が配置される行に、ゼロ行列（“−１”）が配置されているため、＃４，＃２１，＃２３の列に対応するビットを送信しないビット（パンクチャビット）とした場合に、当該行の消失ビットが１ビットに維持されるので、受信品質の劣化を抑えることができる。
【０２２９】
なお、＃４，＃２１，＃２３の列に対応するビットを送信しないビット（パンクチャビット）とした場合のパンクチャテーブル（パンクチャパターン）ｗは、式（１０）のようにあらわされる。
【数１０】
2010114862.tif 000012
式（１０）において、パンクチャテーブルｗに含まれる０は、送信しないビット（パンクチャビット）を意味する。すなわち、図２５に示す例では、＃４，＃２１，＃２３の列に対応するビット、すなわち、ｘ１９２，ｘ１９３，…，ｘ２３８，ｘ２３９、ｐ４８，ｐ４９，…，ｐ９４，ｐ９５、ｐ１４４，ｐ１４５，…，ｐ１９０，ｐ１９１がパンクチャされる。
【０２３０】
以上のように、本実施の形態では、パリティ検査行列Ｈｂを、サブブロック行列を１単位として表現したとき、ｊ列のｉ行及び（ｉ＋１）行には単位行列（“０”）が配置され、ｊ列のｉ行及び（ｉ＋１）行以外の行にはゼロ行列（“−１”）が配置され、かつ、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行には単位行列（“０”）が配置され、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行以外の行にはゼロ行列（“−１”）が配置されるという関係が、ｊ＝ｑ，ｑ＋１，ｑ＋２，・・・，ｑ＋ｓ−１，ｑ＋ｓ（ただし、ｓは１以上の整数）で成立するサブ行列Ｈ’ｂ２に対し、サブブロック行列の列数を単位として送信しないビット（パンクチャビット）を選択する場合に、１単位（サブブロック行列の列数）以上間隔をあけて送信しないビット（パンクチャビット）とするようにした。
【０２３１】
更に、パリティ検査行列Ｈｂのうち、上記サブ行列Ｈ’ｂ２以外のサブ行列Ｈ’ｂ１において、列重みが３以上の列に対応するビットを送信しないビット（パンクチャビット）とすることにより、列演算における外部値の対数尤度比の絶対値が大きくなるよう更新が行われるようになるため、受信品質の劣化を抑えることができるようになる。
【０２３２】
なお、列重みが３以上の列に対応するビットを送信しないビット（パンクチャビット）とする場合、サブ行列Ｈ’ｂ２において、＃２１及び＃２３の列に対応するビットが送信しないビット（パンクチャビット）とされる場合には、例えば、＃４のように、＃２１又は＃２３に含まれる単位行列のいずれかの行に配置されるゼロ行列の列に対応するビットを送信しないビット（パンクチャビット）とする。このようにして、＃４，＃２１，＃２３の列に対応するビットを送信しないビット（パンクチャビット）とした場合、＃４においてゼロ行列が配置される行の消失ビットを１ビットに抑えることができるため、受信品質の劣化を抑えることができる。
【０２３３】
以上、符号化率５／６の式（９）の検査行列をもつＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率２０／２１を実現するための好適なパンクチャパターンについて説明した。また、別の例として、符号化率５／６の式（９）の検査行列をもち、サブブロック行列２１６×２１６、つまり、Information size= 4320ビットのＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率２０／２１を実現するための好適なパンクチャテーブル（パンクチャパターン）ｗは、例えば、式（１１−１）〜式（１１−３）のようにあらわされる。
【数１１】
2010114862.tif 000013
【０２３４】
なお、以上の説明では、サブブロック行列の列数を単位として符号化系列をパンクチャする場合について説明したが、１単位（サブブロック行列の列数）以上間隔を開けて、サブブロック行列の列数を単位として送信しないビット（パンクチャビット）の候補を設定し、この候補から、送信しないビット（パンクチャビット）を決定するようにしても良い。この場合において、送信しないビット（パンクチャビット）の候補は、サブブロック行列の列数を単位として設定し、かつ、上述したように、同一行に隣接する単位行列を含まない列に対応するビットとする。
【０２３５】
例えば、図２６に示すように、＃４，＃２１及び＃２３の列に対応するビットを送信しないビット（パンクチャビット）の候補とし、＃４，＃２１及び＃２３の列に対応するｘ１９２，ｘ１９３，…，ｘ２３８，ｘ２３９、ｐ４８，ｐ４９，…，ｐ９４，ｐ９５、ｐ１４４，ｐ１４５，…，ｐ１９０，ｐ１９１のうち、点線の丸で囲まれた一部のビットを送信しないビット（パンクチャビット）に決定するようにしてもよい。
【０２３６】
この方法を用いて、符号化率５／６の式（９）の検査行列をもち、サブブロック行列４８×４８、つまり、Information size= 960ビットのＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率１６／１８を実現するための好適なパンクチャテーブル（パンクチャパターン）ｗは、式（１２）のようにあらわされる。
【数１２】
2010114862.tif 000014
【０２３７】
また、別の例として、符号化率５／６の式（９）の検査行列をもち、サブブロック行列２１６×２１６、つまり、Information size= 4320ビットのＱＣ―ＬＤＰＣ符号から、パンクチャにより、符号化率１６／１８を実現するための好適なパンクチャテーブル（パンクチャパターン）ｗは、式（１３）のようにあらわされる。
【数１３】
2010114862.tif 000015
【０２３８】
これらの場合においても、各行に消失ビットが２ビット発生するのを回避することができるので、良好な受信品質を得ることができるとともに、パンクチャ後の符号化率を柔軟に設定することができる。
【０２３９】
また、以上の説明では、ＬＤＰＣ符号のcodeword vを、v=[x0, x1, ・・・, x958, x959, p0, p1, ・・・, p190, p191]とあらわし説明したが、情報系列及びパリティ系列の並び順は、これに限られず（例えば、v=[p0, p1, ・・・, p190, p191, x0, x1, ・・・, x958, x959]であってもよく、情報とパリティの並び順は一意には決定しない。）、Ｈｂｖ＝０の対応関係、換言すると、パリティ検査行列Ｈｂに対応するパンクチャパターンとcodeword vとの対応関係から、送信しないビット（パリティビット）を決定すれば良い。
【０２４０】
例えば、＃４，＃２１，＃２３の列に対応するビットを送信しないビット（パンクチャビット）とする場合に、codeword vが、v=[p144, p145,・・・, p190, p191, x0, x1, ・・・, x958, x959, p0, p1,・・・, p46, p47]とあらわされる場合には、ｘ１４４，ｘ１４５，…，ｘ１９０，ｘ１９１、ｐ０，ｐ１，…，ｐ４６，ｐ４７、ｐ９６，ｐ９７，…，ｐ１４２，ｐ１４３を送信しないビット（パンクチャビット）とすれば良い。
【０２４１】
上述の例では、サブ行列Ｈ’ｂ２には、ｊ列のｉ行及び（ｉ＋１）行には単位行列（“０”）が配置され、ｊ列のｉ行及び（ｉ＋１）行以外の行にはゼロ行列（“−１”）が配置され、かつ、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行には単位行列（“０”）が配置され、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行以外の行にはゼロ行列（“−１”）が配置されるという関係が、ｊ＝ｑ，ｑ＋１，ｑ＋２，・・・，ｑ＋ｓ−１，ｑ＋ｓ（ただし、ｓは１以上の整数）で成立し、単位行列が同一行に隣接して配置される場合について説明したが、単位行列に代えて、単位行列の巡回シフト行列が同一行に隣接して配置される場合に対しても、上述のパンクチャパターンの生成方法を用いて、好適なパンクチャパターンを得ることができる。ただし、サブ行列Ｈ’ｂ２に、単位行列の巡回シフト行列が同一行に隣接して配置される場合には、符号化器の構成が複雑になる可能性がある。
【０２４２】
なお、式（８）の符号化率１／２のＱＣ−ＬＤＰＣ符号に対しても、同様の方法により、好適なパンクチャパターンを設定することができる。図２７を用いて、符号化率１／２の場合について説明する。
【０２４３】
符号化率５／６の場合と同様に、式（８）の符号化率１／２のＱＣ−ＬＤＰＣ符号のパリティ検査行列Ｈｂに対し、サブ行列Ｈ’ｂ１には、サブ行列Ｈ’ｂ１の列数をパンクチャ周期とするパンクチャパターン＃ｐ１を用い、サブ行列Ｈ’ｂ２には、サブ行列Ｈ’ｂ２の列数をパンクチャパターン周期とするパンクチャパターン＃ｐ２を用いる。
【０２４４】
図２７は、式（８）の符号化率１／２のＱＣ−ＬＤＰＣ符号のパリティ検査行列Ｈｂである。式（８）の検査行列Ｈｂは、１２行２４列のサブブロック行列から構成される。図２７において、サブ行列Ｈ’ｂ２は、単位行列及びゼロ行列により構成され、サブ行列Ｈ’ｂ１は、サブ行列Ｈ’ｂ２以外である。
【０２４５】
また、図２７において、＃０〜＃２３は、各列に対応する部分行列を示し、サブ行列Ｈ’ｂ１は、＃０〜＃１２により構成され、サブ行列Ｈ’ｂ２は、＃１３〜＃２３により構成される。＃１３〜＃２３は、単位行列（“０”）及びゼロ行列（“−１”）により構成される。このように、式（８）に示すＱＣ−ＬＤＰＣ符号の検査行列Ｈｂは、単位行列及びゼロ行列で構成されるサブ行列Ｈ’ｂ２を含んでいる。
【０２４６】
以下では、サブブロック行列の列数を単位として符号化系列をパンクチャする場合を例に説明する。
【０２４７】
式（８）のパリティ検査行列Ｈｂを、サブブロック行列を１単位として表現したとき、サブ行列Ｈ’ｂ２では、ｊ列のｉ行及び（ｉ＋１）行には単位行列（“０”）が配置され、ｊ列のｉ行及び（ｉ＋１）行以外の行にはゼロ行列（“−１”）が配置され、かつ、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行には単位行列（“０”）が配置され、（ｊ＋１）列の（ｉ＋１）行及び（ｉ＋２）行以外の行にはゼロ行列（“−１”）が配置されるという関係が、ｊ＝ｑ，ｑ＋１，ｑ＋２，・・・，ｑ＋ｓ−１，ｑ＋ｓ（ただし、ｓは１以上の整数）で成立する。
【０２４８】
具体的には、図２７から分かるように、１４列の１行及び２行には単位行列（“０”）が配置され、１４列の１行及び２行以外の行（３〜１２行）にはゼロ行列（“−１”）が配置され、かつ、１５列の２行及び３行には単位行列（“０”）が配置され、１５列の２行及び３行以外の行（１行，４〜１２行）にはゼロ行列（“−１”）が配置され、かつ、・・・、２４列の１１行及び１２行には単位行列（“０”）が配置され、２４列の１１行及び１２行以外の行（１〜１０行）にはゼロ行列（“−１”）が配置される。そのため、図２７のサブ行列Ｈ’ｂ２に四角枠で囲まれた部分に示すように、単位行列（“０”）が同一行に隣接して配置される。
【０２４９】
符号化率１／２の場合も符号化率５／６の場合と同様に、同一行に単位行列が隣接して配置されていない列に対応するビットを送信しないビット（パンクチャビット）とするようパンクチャパターンを設定する。例えば、サブブロック行列の列数を単位として符号化系列をパンクチャし、＃２０の列に対応するビットを送信しないビット（パンクチャビット）とする場合、１サブブロック行列の列数以上離れた＃１５及び＃２３の列に対応するビットを送信しないビット（パンクチャビット）とする。このように、サブブロック行列の列数を単位として符号化系列をパンクチャする場合に、パンクチャする間隔を、１単位（１サブブロック行列の列数）以上とする。これにより、単位行列又はゼロ行列から構成されるサブ行列Ｈ’ｂ２において、パンクチャにより消失するビットが、各行１ビットのみとなり、２ビット消失を回避することができ、受信品質の劣化を回避することができる。
【０２５０】
また、例えば、＃１５，＃２０の列に対応するビットを送信しないビット（パンクチャビット）としても良い。＃１５と＃２０とは、１単位以上離れている。また、＃２０，＃２３の列に対応するビットを送信しないビット（パンクチャビット）としても良い。＃２０と＃２３とは、１単位以上離れている。
【０２５１】
なお、＃１５，＃２０，＃２３の列に対応するビットの全てを送信しないビット（パンクチャビット）としなくても良く、＃１５，＃２０，＃２３の列に対応するビットを送信しないビット（パンクチャビット）の候補とし、符号化率に応じて、この候補から送信しないビット（パンクチャビット）を決定するようにしても良い。このようにすることで、各行の消失ビットを１ビットに抑え良好な受信品質を得ることができるとともに、パンクチャ後の符号化率を柔軟に設定することができる。
【０２５２】
また、更に、パリティ検査行列Ｈｂのうち、サブ行列Ｈ’ｂ１では、列重みが３以上であるため、サブ行列Ｈ’ｂ１の列に対応するビットを送信しないビット（パンクチャビット）とすることにより、列演算により外部値の大きさが適切に更新され、消失ビットの対数尤度比が適切に得られるようになり、受信特性が改善される。
【０２５３】
図２７には、サブ行列Ｈ’ｂ１において、＃１０の列に対応するビットが送信しないビット（パンクチャビット）とされる例が示されている。＃１０には、＃１５，＃２０，＃２３において単位行列（“０”）が配置される行に、ゼロ行列（“−１”）が配置されているため、＃１０，＃１５，＃２０，＃２３の列に対応するビットを送信しないビット（パンクチャビット）とした場合に、当該行の消失ビットが１ビットに維持され、受信品質の劣化を抑えることができると可能性が高い。
【０２５４】
なお、以上の説明では、サブブロック行列の列数を単位として、サブ行列Ｈ’ｂ１から１サブブロック行列を選択し、サブ行列Ｈ’ｂ２から複数のサブブロック行列を選択し、選択したサブブロック行列の列に対応するビットを送信しないビット（パンクチャビット）又は送信しないビット（パンクチャビット）の候補とする場合について説明したが、各サブ行列からの選択数は、これに限られず、サブ行列Ｈ’ｂ１から複数のサブブロック行列を選択するようにしても良い。
【０２５５】
本発明は、ＱＣ−ＬＤＰＣ符号のように、検査行列、生成行列に規則性があるような場合に有効である。
【０２５６】
本発明は上記全ての実施の形態に限定されず、種々変更して実施することが可能である。例えば、上記実施の形態では、主に、符号化器で実現する場合について説明しているが、これに限られるものではなく、電灯線通信装置で実現する場合においても適用可能である。
【０２５７】
また、この符号化方法は、ソフトウェアとして行うことも可能である。例えば、上記符号化方法を実行するプログラムは、予めＲＯＭ（Read Only Memory）に格納しておき、そのプログラムをＣＰＵ（Central Processor Unit）によって動作させるようにしても良い。
【０２５８】
また、上記符号化方法を実行するプログラムをコンピュータで読み取り可能な記憶媒体に格納し、記憶媒体に格納されたプログラムをコンピュータのＲＡＭ（Random Access Memory）に記録して、コンピュータをそのプログラムにしたがって動作させるようにしても良い。
【０２５９】
また、本発明は、無線通信に限らず、電灯線通信（ＰＬＣ：Power Line Communication）、可視光通信、光通信においても有用であることは言うまでもない。
【産業上の利用可能性】
【０２６０】
本発明は、例えば、ＱＣ−ＬＤＰＣ符号等のブロック符号を用いる場合に、受信品質を向上させつつ、伝送量を低減させ、伝送効率の劣化を抑圧することができ、ＱＣ−ＬＤＰＣ等のように、ゼロ行列を部分的に含むパリティ生成行列を用いて符号化系列を形成する符号化器、送信装置及び符号化方法として有用である。
【図面の簡単な説明】
【０２６１】
【図１】ブロック符号のブロック構成例及び実際に送信する符号化系列を示す図
【図２】本発明の実施の形態１にかかる通信装置に用いられる符号化器の入出力データを示す図
【図３】ＱＣ−ＬＤＰＣ符号のパリティ生成行列ｇの一例を示す図
【図４】ゼロ行列の一例を示す図
【図５】ゼロ行列の別の一例を示す図
【図６】実施の形態１に係る符号化器の構成例を示す図
【図７】実施の形態１に係る復号化器の構成例を示す図
【図８】通信装置＃１が送信する変調信号のフレーム構成例を示す図
【図９】実施の形態１に係る符号化器を有する通信装置＃１の構成例を示す図
【図１０】実施の形態１に係る復号化器を有する通信装置＃２の構成例を示す図
【図１１】ＱＣ−ＬＤＰＣ符号の１ブロックの構成例を示す図
【図１２】本発明の実施の形態２に係る符号化器の構成例を示す図
【図１３】情報ビットの配置例を示す図
【図１４】データ長αと送信するパリティビットの削減方法との対応を示す図
【図１５】本発明の実施の形態３に係る符号化器の構成例を示す図
【図１６Ａ】パンクチャパターンの切り替え方法を説明するための図
【図１６Ｂ】パンクチャパターンの切り替え方法を説明するための別の図
【図１６Ｃ】パンクチャパターンの切り替え方法を説明するための別の図
【図１７】制御情報の配置例を示す図
【図１８】本発明の実施の形態４における制御情報の配置例を示す図
【図１９Ａ】本発明の実施の形態５におけるパンクチャパターンの適用例を示す図
【図１９Ｂ】実施の形態５におけるパンクチャパターンの別の適用例を示す図
【図１９Ｃ】実施の形態５におけるパンクチャパターンの別の適用例を示す図
【図２０Ａ】実施の形態５におけるパンクチャパターンの別の適用例を示す図
【図２０Ｂ】実施の形態５におけるパンクチャパターンの別の適用例を示す図
【図２０Ｃ】実施の形態５におけるパンクチャパターンの別の適用例を示す図
【図２１】本発明の実施の形態６におけるパンクチャパターンの適用例を示す図
【図２２】実施の形態６におけるパンクチャパターンの別の適用例を示す図
【図２３】本発明の実施の形態７におけるパンクチャパターンを説明するための図
【図２４】符号化率５／６のＱＣ−ＬＤＰＣ符号の検査行列Ｈｂを示す図
【図２５】実施の形態７におけるパンクチャパターンの一例を示す図
【図２６】実施の形態７におけるパンクチャパターンの別の一例を示す図
【図２７】符号化率１／２のＱＣ−ＬＤＰＣ符号の検査行列Ｈｂ及びパンクチャパターンの一例を示す図
【符号の説明】
【０２６２】
１００，１００ａ，６００  符号化器
１１０，１１０ａ  ゼロ行列設定部
１２０，１２０ａ  配置部
１３０，６１０  符号化部
１４０，６３０  パンクチャ部（データ削減部）
３００  復号化器
３１０  固定対数尤度比挿入部
３２０  ＢＰ復号部
４００，５００  通信装置
４１０  符号化部
４２０  インタリーバ
４３０  マッピング部
４４０  送信部
５１０  受信部
５２０  制御情報検出部
５３０  対数尤度比算出部
５４０  デインタリーバ
５５０  復号化部
６２０  パンクチャパターン設定部
【図１】
2010114862.tif 000016
【図２】
2010114862.tif 000017
【図３】
2010114862.tif 000018
【図４】
2010114862.tif 000019
【図５】
2010114862.tif 000020
【図６】
2010114862.tif 000021
【図７】
2010114862.tif 000022
【図８】
2010114862.tif 000023
【図９】
2010114862.tif 000024
【図１０】
2010114862.tif 000025
【図１１】
2010114862.tif 000026
【図１２】
2010114862.tif 000027
【図１３】
2010114862.tif 000028
【図１４】
2010114862.tif 000029
【図１５】
2010114862.tif 000030
【図１６Ａ】
2010114862.tif 000031
【図１６Ｂ】
2010114862.tif 000032
【図１６Ｃ】
2010114862.tif 000033
【図１７】
2010114862.tif 000034
【図１８】
2010114862.tif 000035
【図１９Ａ】
2010114862.tif 000036
【図１９Ｂ】
2010114862.tif 000037
【図１９Ｃ】
2010114862.tif 000038
【図２０Ａ】
2010114862.tif 000039
【図２０Ｂ】
2010114862.tif 000040
【図２０Ｃ】
2010114862.tif 000041
【図２１】
2010114862.tif 000042
【図２２】
2010114862.tif 000043
【図２３】
2010114862.tif 000044
【図２４】
2010114862.tif 000045
【図２５】
2010114862.tif 000046
【図２６】
2010114862.tif 000047
【図２７】
2010114862.tif 000048