(57)【要約】【課題】良好な復号特性を取得する畳み込み符号用の復号化装置、符号化装置、復号化方法、及び、符号化方法を提供すること。【解決手段】復号部３００は、畳み込み符号の第１のパリティ検査多項式によって定義される第１のパリティ検査行要素と、第１の検査多項式と等価である畳み込み符号の第２のパリティ検査多項式によって定義される第２のパリティ行要素と、を用いて形成される拡張されたパリティ検査行列を用いて、符号化側で畳み込み符号により生成された符号語系列に対し、Sum-Product復号を行う。【選択図】図５
2009118418.tif 000002
【特許請求の範囲】
【請求項１】
ＢＰ（Belief Propagation）復号を行う復号化装置であって、
畳み込み符号の第１の検査多項式によって定義される第１の行要素と、前記第１の検査多項式と等価である前記畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成されるパリティ検査行列を記憶する記憶手段と、
符号化側で前記畳み込み符号により生成された符号語系列に対し、前記パリティ検査行列を用いてＢＰ復号を施す復号手段と、
を具備する復号化装置。
【請求項２】
前記畳み込み符号により生成されるパリティ系列長がＩＮの場合、前記パリティ検査行列は、ＩＮ行の前記第１の行要素と、ＩＮ行より少ない行数の前記第２の行要素から構成される
請求項１に記載の復号化装置。
【請求項３】
前記第１の検査多項式の拘束長が、前記第２の検査多項式の拘束長と異なる
請求項１に記載の復号化装置。
【請求項４】
前記第２の行要素は、前記パリティ検査行列上で、互いに間隔ＴＡずつ離れて配置されており、
前記間隔ＴＡは、前記第１の検査多項式の拘束長より短い
請求項１に記載の復号化装置。
【請求項５】
前記第２の行要素は、前記パリティ検査行列上で、互いに間隔ＴＡずつ離れて配置されており、
前記間隔ＴＡは、符号化側で用いられるパンクチャパターン長の整数分の１である
請求項１に記載の復号化装置。
【請求項６】
復号側でＢＰ（Belief Propagation）復号を用いて復号される符号語系列を生成する符号化装置であって、
畳み込み符号により符号語系列を生成する畳み込み符号化手段と、
復号側のＢＰ復号で用いられるパリティ検査行列のパターンに基づいたパンクチャパターンを用いて、前記符号語系列に対しパンクチャを施すパンクチャ手段と、
を具備する符号化装置。
【請求項７】
前記パリティ検査行列は、前記畳み込み符号の第１の検査多項式によって定義される第１の行要素と、前記第１の検査多項式と等価である前記畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成される行列である
請求項６に記載の符号化装置。
【請求項８】
前記第２の検査多項式は、前記第１の検査多項式に含まれる次数と、前記第２の検査多項式に含まれる次数とができるだけ重複しない
請求項７に記載の符号化装置。
【請求項９】
前記パンクチャパターンは、前記パリティ検査行列上で「１」が立っているビットをできるだけ削除しないパターンである
請求項６に記載の符号化装置。
【請求項１０】
ＢＰ（Belief Propagation）復号を行う復号化方法であって、
畳み込み符号の第１の検査多項式によって定義される第１の行要素と、前記第１の検査多項式と等価である前記畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成されるパリティ検査行列を用いて、符号化側で前記畳み込み符号により生成された符号語系列に対し、ＢＰ復号を施す復号化方法。
【請求項１１】
復号側でＢＰ（Belief Propagation復号を用いて復号される符号語系列を生成する符号方法であって、
畳み込み符号により符号語系列を生成し、
復号側のＢＰ復号で用いられるパリティ検査行列のパターンに基づいたパンクチャパターンを用いてパンクチャを施す符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込み符号用の復号化装置、符号化装置、復号化方法、及び、符号化方法に関する。
【背景技術】
【０００２】
誤り訂正符号のひとつに、畳み込み符号（Convolutional Code）がある。畳み込み符号は、符号化器を容易に実装できる（符号化器がｍｏｄ２加算器とシフトレジスタだけで構成できる）という特徴と、任意の情報系列長に対して符号化が可能であるという特徴を有している。現在の通信システムの多くは、送信情報を可変長のパケットやフレーム毎にまとめて通信を行うため、用いる誤り訂正符号の符号長が可変であることが望ましく、畳み込み符号の特徴と合致する。このことから畳み込み符号は、ＩＥＥＥ８０２．１１無線ＬＡＮシステムや、ＧＳＭ携帯電話、衛星通信など多数の通信システムの誤り訂正符号化方式に採用されている。また近年では、畳み込み符号を並列又は縦列に連接して用いることで性能を高めるターボ符号（Turbo Code）と呼ばれる手法が盛んに研究されている。ターボ符号は第三世代移動通信システムなどに採用されている。
【０００３】
畳み込み符号は、符号化器の拘束長Ｋが大きいほど、符号語間の最小自由距離が拡大するため、高い誤り訂正能力を得ることができる（非特許文献１参照）。
【０００４】
畳み込み符号を復号するアルゴリズムとしては、最尤（ＭＬ（Maximum Likelihood））系列推定を行うビタビアルゴリズム（Viterbi Algorithm）や、最大事後確率（ＭＡＰ（Maximum A Posteriori probability））推定を行うＢＣＪＲ（Bahl-Cocke-Jeinek-Raviv）アルゴリズムが広く用いられている。畳み込み符号では、ＭＬ系列推定やＭＡＰ推定による軟判定復号を適用することにより、高い誤り訂正能力を得られることが知られている。
【０００５】
ところで、ビタビアルゴリズムやＢＣＪＲアルゴリズムは、符号化器の構成によって定義されるトレリス線図を利用して復号を行う。これらのアルゴリズムを用いた復号には、トレリス線図の状態数に比例した計算量とメモリが必要となる。トレリス線図の状態数は、状態数２Ｋ−１個（Ｋ：符号化器の拘束長）となるため、これらのアルゴリズムでは、拘束長Ｋが増加すると、計算量が指数的に増大してしまう。したがって、拘束長が長い畳み込み符号の軟判定復号部は、実装が困難となる。
【０００６】
加えて、トレリス線図を利用するビタビアルゴリズムやＢＣＪＲアルゴリズムは、トレリス線図上で時間方向の逐次計算が必要となるため、ハードウェア上での並列処理を用いた復号の高速化に適さない。
【０００７】
ＢＣＪＲアルゴリズムを簡易化して計算量を削減する方式として、ＳＯＶＡ（Soft-Output Viterbi Algorithm）やＭａｘ−Ｌｏｇ  ＭＡＰアルゴリズムなどがある。しかし、これらもトレリス線図を利用した復号であるため、ビタビアルゴリズムやＢＣＪＲアルゴリズムと同様に、状態数に比例した計算量が必要となるという特徴と、逐次計算が必要となる特徴を有している（非特許文献２参照）。
【０００８】
そこで、畳み込み符号の復号アルゴリズムに、Sum-Productアルゴリズム（ＳＰＡ）による復号（Sum-Product復号）を適用することが検討されている（非特許文献３,４参照）。Sum-Productアルゴリズムは、ＢＰ（Belief-Propagation）アルゴリズムとも呼ばれる。
【０００９】
Sum-Productアルゴリズムは、低密度パリティ検査（ＬＤＰＣ：Low-Density Parity Check）符号に代表される、低密度な（行列中に含まれる１の要素数が０の要素数に比べて大幅に少ない）パリティ検査行列Ｈで定義される誤り訂正符号に対して、復号を行うアルゴリズムである。符号化に用いた符号化器の構成に対応するパリティ検査行列を定義することで、畳み込み符号の復号にSum-Productアルゴリズムを用いることができる。
【００１０】
Sum-Productアルゴリズムの計算量は、主としてパリティ検査行列の大きさと、検査行列のうち１の立っている要素の数（重み）に支配される。畳み込み符号のパリティ検査行列において、行数は、パリティ系列長に対応し、列数は、符号系列長に対応し、畳み込み符号のパリティ検査行列の大きさは、拘束長Ｋとは関係しない。符号化器の拘束長Ｋを長くすると、パリティ検査多項式の項が増えることに対応してパリティ検査行列を構成する行要素のうち１の立っている要素の数（行重み）が増える。しかし、行重みの増加に対する計算量の増加は線形であるので、拘束長Ｋの増加に対するSum-Productアルゴリズムの計算量への影響は、ビタビやＢＣＪＲアルゴリズムよりもはるかに小さいといえる。
【００１１】
加えてSum-Productアルゴリズムでは、検査行列の行処理／列処理は、行／列ごとに独立に行ってよい。このためハードウェア上での並列処理を用いた復号処理の高速化に適し、第４世代移動通信システムなど次世代の通信システムで要求される高スループット伝送への対応が容易である。
【００１２】
Sum-Product復号をもとに、近似や計算手順の工夫によって計算量削減や復号特性の向上を図った方式として、min-sum復号、offset BP復号、Normalized BP復号、shuffled BP復号などが検討されている（非特許文献５〜７）。
【非特許文献１】J. G. Proakis, "Digital Communications, 4th Edition," McGraw-Hill New York, 2001
【非特許文献２】P. Robertson, E. Villebrun, P. Hoeher, “A comparison of optimal and sub-optimal MAP decoding algorithmsoperating in the log domain,” Communications, 1995. ICC 95 Seattle
【非特許文献３】R.J. McEliece, D.J.C. MacKay, J.F. Cheng, “Turbo Decoding as an Instance of Pearl’s “Belief Propagation” Algorithm, ” Selected Areas in Communications, IEEE Journal on, 1998
【非特許文献４】G. Colavolpe, “Design and performance of turbo Gallager codes,” Communications, IEEE Transactions on, 2004
【非特許文献５】R. D. Gallager, “Low-Density Parity-Check Codes," Cambridge, MA: MIT Press, 1963.
【非特許文献６】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.
【非特許文献８】小川裕一、“ターボ符号のSum-Product復号”、長岡技術科学大学修士論文, 2007.
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、Sum-Productアルゴリズムによる復号では、拘束長Ｋが大きいほどＢＣＪＲアルゴリズムに対して復号特性が劣化してしまうことが経験的に知られている。
【００１４】
本発明はかかる点に鑑みてなされたものであり、良好な復号特性を取得する畳み込み符号用の復号化装置、符号化装置、復号化方法、及び、符号化方法を提供する。
【課題を解決するための手段】
【００１５】
本発明の復号化装置は、ＢＰ（Belief Propagation）復号を行う復号化装置であって、畳み込み符号の第１の検査多項式によって定義される第１の行要素と、前記第１の検査多項式と等価である前記畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成されるパリティ検査行列を記憶する記憶手段と、符号化側で前記畳み込み符号により生成された符号語系列に対し、前記パリティ検査行列を用いてＢＰ復号を施す復号手段と、を具備する構成を採る。
【００１６】
本発明の符号化装置は、復号側でＢＰ（Belief Propagation）復号を用いて復号される符号語系列を生成する符号化装置であって、畳み込み符号により符号語系列を生成する畳み込み符号化手段と、復号側のＢＰ復号で用いられるパリティ検査行列のパターンに基づいたパンクチャパターンを用いて、前記符号語系列に対しパンクチャを施すパンクチャ手段と、を具備する構成を採る。
【００１７】
本発明の復号化方法は、ＢＰ（Belief Propagation）復号を行う復号化方法であって、畳み込み符号の第１の検査多項式によって定義される第１の行要素と、前記第１の検査多項式と等価である前記畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成されるパリティ検査行列を用いて、符号化側で前記畳み込み符号により生成された符号語系列に対し、ＢＰ復号を施すようにした。
【００１８】
本発明の符号化方法は、復号側でＢＰ（Belief Propagation）復号を用いて復号される符号語系列を生成する符号方法であって、畳み込み符号により符号語系列を生成し、復号側のＢＰ復号で用いられるパリティ検査行列のパターンに基づいたパンクチャパターンを用いてパンクチャを施すようにした。
【発明の効果】
【００１９】
本発明によれば、良好な復号特性を取得する畳み込み符号用の復号化装置、符号化装置、復号化方法、及び、符号化方法を実現できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２１】
（実施の形態１）
本実施の形態では、畳み込み符号のSum-Product復号における復号特性を改善するために、復号に用いるパリティ検査行列を拡張する方法と、当該方法によって拡張されたパリティ検査行列を用いて復号処理を行う復号部について、図面を用いて説明する。
【００２２】
本発明のパリティ検査行列の説明に先立って、まず、一般的な畳み込み符号のパリティ検査行列と、パリティ検査行列を用いたSum-Product復号について説明する。なお、以下では、拘束長Ｋ＝３，符号化率Ｒ＝１／２（＝ｂ／ｃ）の（７，５）8畳み込み符号を例に説明する。なお、（７，５）8は８進数により表されている。
【００２３】
（符号化方法）
図１に、符号化率Ｒ＝１／２の（７，５）8畳み込み符号の符号化器の構成を示す。図１において、符号化器１００は、シフトレジスタ１１０−１，１１０−２、排他的論理和（ｍｏｄ２加算）１２０−１〜１２０−３を備えて構成される。図１に示すように、（７，５）8畳み込み符号の符号化器１００は、データ入力ｘｉに対し、データ出力とパリティ出力として、ｘｉ及びｐｉを出力する。
【００２４】
図１の符号化器１００は、式（１）の生成多項式表現を用いて表現することができる。
【数１】
2009118418.tif 000003
【００２５】
式（１）において、Ｇ１（Ｄ）は、フィードフォワード多項式、Ｇ０（Ｄ）は、フィードバック多項式を表している。情報系列（データ系列）の多項式表現をＸ（Ｄ）、パリティ系列の多項式表現をＰ（Ｄ）とすると、パリティ検査多項式は、式（２）で表される。
【数２】
2009118418.tif 000004
【００２６】
図１の符号化器１００では、Ｇ１（Ｄ）＝Ｄ２＋１，Ｇ０（Ｄ）＝Ｄ２＋Ｄ＋１であるので、式（１），式（２）は、それぞれ、式（３），式（４）となる。なお、Ｄｍ（ｍ＝１，２，…，Ｌ、Ｌ：任意）は、遅延演算子である。
【数３】
2009118418.tif 000005
【数４】
2009118418.tif 000006
【００２７】
ここで、時点ｉの情報ビットをｘｉと表し、パリティビットをｐｉと表し、送信系列ｗｉ＝（ｘｉ，ｐｉ）とすると、式（４）のパリティ検査多項式からｘｉ，ｐｉは、式（５）を満たす。
【数５】
2009118418.tif 000007
【００２８】
ここで、送信符号語ベクトルｗを、ｗ＝（ｘ１，ｐ１，ｘ２，ｐ２，…，ｘｉ，ｐｉ，…，ｘＩ，ｐＩ）と定義する。ただし１≦ｉ≦ＩＮ（ＩＮ：情報系列長）である。このとき、式（４）のパリティ検査多項式に基づく標準的な（従来の）パリティ検査行列Ｈは、式（５）の関係を用いて、図２に示すように表すことができる。このパリティ検査行列Ｈについて、関係式（６）が成立する。
【数６】
2009118418.tif 000008
【００２９】
式（４）のパリティ検査多項式に基づくパリティ検査行列Ｈについて、再度図２を用いてより詳細な説明を行う。式（６）から分かるように、パリティ検査行列Ｈの列数は、送信符号語系列長に等しい。また、パリティ検査行列Ｈの行数は、パリティ系列長に等しい。
【００３０】
検査行列Ｈのｉ行目の行ベクトル（パリティ検査行ベクトル）をｃ１，ｉとすると、ｃ１，ｉｗＴ＝０は、時点ｉを基準として式（４）のパリティ検査多項式と等価である。このように、図２のパリティ検査行列の要素は、時点ｉに対応する１つのパリティ検査行ベクトルｃ１，ｉをｉ行目の行要素として、この行要素が１行目からＩＮ行目まで配置された構成となっている。
【００３１】
パリティ検査多項式が、一般式（７）で表されたとする。
【数７】
2009118418.tif 000009
ここで、ｇｘ，ｍ及びｇｐ，ｍは、パリティ検査行ベクトルの要素であり、１又は０である。一般式（７）に対応するパリティ検査行列を図３に示す。
【００３２】
図２に示すパリティ検査行列では、ｃ１，ｉの要素のうち、（ｘｉ−２，ｐｉ−２，ｘｉ−１，ｐｉ−１，ｘｉ，ｐｉ）に対応する領域２１０の範囲に、０又は１の要素が立っており、領域２１０以外の要素は、全て０となっている。領域２１０の６つの要素は、左から順にｘｉ−２，ｐｉ−２，ｘｉ−１，ｐｉ−１，ｘｉ，ｐｉに対応し、そのうち、ｘｉ−２，ｘｉ及びｐｉ−２，ｐｉ−１，ｐｉに対応する要素に１が立っており、式（４）の各項に対応している。
【００３３】
検査行列Ｈの全体は、行列の左下および右上の要素がゼロであり、図２に示した領域２１０と同じ１と０の要素からなる領域が、検査行列Ｈの対角線上に平行四辺形に配置されている。
【００３４】
（復号化方法）
復号部では、図２に示すパリティ検査行列Ｈに基づいて、Sum-Product復号（ＢＰ復号）、Sum-Product復号を近似したmin-sum復号、offset BP復号、Normalized BP復号、shuffled BP復号などを用いることで、復号を行うことができる。
【００３５】
以下では、復号側での復号アルゴリズムの一例として、Sum-Product復号アルゴリズムについて説明する。
【００３６】
以下の説明では、２元（Ｍ×Ｎ）行列Ｈ＝｛Ｈｍｎ｝を、復号対象であるパリティ検査行列とする。集合［１，Ｎ］＝｛１，２，・・・，Ｎ｝の部分集合Ａ（ｍ），Ｂ（ｎ）を次式のように定義する。
【数８】
2009118418.tif 000010
【数９】
2009118418.tif 000011
なお、Ａ（ｍ）は検査行列Ｈのｍ行目において“１”である列インデックスの集合を意味し、Ｂ（ｎ）は検査行列Ｈのｎ行目において“１”である行インデックスの集合を意味する。
【００３７】
・Ｓｔｅｐ  Ａ・１（初期化）：
Ｈｍｎ＝１を満たす全ての組（ｍ，ｎ）に対して、事前値対数比β（０）ｍｎ＝λｎと設定する。λｎは、ビット毎の対数尤度である。また、ループ変数（反復回数）ｌｓｕｍ＝１と設定し、ループ最大回数をｌｓｕｍ，ｍａｘと設定する。
【００３８】
・Ｓｔｅｐ  Ａ・２（行処理）：
ｍ＝１，２，・・・，Ｍの順にＨｍｎ＝１を満たす全ての組（ｍ，ｎ）に対して、次の更新式を用いて外部値対数比α（ｉ）ｍｎを更新する。なお、ｉは、反復回数である。
【数１０】
2009118418.tif 000012
【数１１】
2009118418.tif 000013
【数１２】
2009118418.tif 000014
なお、ｆ（ｘ）はＧａｌｌａｇｅｒのｆ関数である。
【００３９】
・Ｓｔｅｐ  Ａ・３（列処理）：
ｎ＝１，２，・・・，Ｎの順にＨｍｎ＝１を満たす全ての組（ｍ，ｎ）に対して、次の更新式を用いて外部値対数比β（ｉ）ｍｎを更新する。
【数１３】
2009118418.tif 000015
【００４０】
・Ｓｔｅｐ  Ａ・４（対数尤度比の計算）：
ｎ∈［１，Ｎ］について、対数尤度比Ｌ（ｉ）ｎを次式のように求める。
【数１４】
2009118418.tif 000016
【００４１】
・Ｓｔｅｐ  Ａ・５（反復回数のカウント）：
もしｌｓｕｍ＜ｌｓｕｍ，ｍａｘならばｌｓｕｍをインクリメントして、ｓｔｅｐ  Ａ・２に戻る。一方、ｌｓｕｍ＝ｌｓｕｍ，ｍａｘの場合、式（１５）に示すように、符号語ｗを推定し、Sum-Product復号を終了する。
【数１５】
2009118418.tif 000017
【００４２】
図４は、復号部にSum-Product復号を用いた場合の構成の一例を示す図である。図４の復号部３００において、対数尤度比記憶部３０３は、対数尤度比信号３０１、タイミング信号３０２を入力とし、タイミング信号３０２に基づいてデータ区間の対数尤度比を記憶する。そして、対数尤度比記憶部３０３は、記憶した対数尤度比を信号３０４として行処理演算部３０５に出力する。
【００４３】
行処理演算部３０５は、対数尤度比信号３０４、列処理後の信号３１２を入力とし、検査行列Ｈに「１」が存在する位置において、上述のＳｔｅｐ  Ａ・２（行処理）の演算を行う。復号部は反復復号を行っているので、行処理演算部３０５は、１回目の復号時には、対数尤度比信号３０４を用いて行処理を行い（上述のＳｔｅｐ  Ａ・１の処理に相当する）、２回目の復号時には、列処理後の信号３１２を用いて行処理を行う。そして、行処理演算部３０５は、行処理後の信号３０６を行処理後データ記憶部３０７に出力する。
【００４４】
行処理後データ記憶部３０７は、行処理後の信号３０６を入力とし、すべての行処理後の値（信号）を記憶する。そして、行処理後データ記憶部３０７は、行処理後の信号３０８を列処理演算部３０９及び対数尤度比演算部３１５に出力する。
【００４５】
列処理演算部３０９は、行処理後の信号３０８及び制御信号３１４を入力とし、制御信号３１４から最後の反復演算でないことを確認し、検査行列Ｈに「１」が存在する位置において、上述のＳｔｅｐ  Ａ・３（列処理）の演算を行う。そして、列処理演算部３０９は、列処理後の信号３１０を列処理後データ記憶部３１１に出力する。
【００４６】
列処理後データ記憶部３１１は、列処理後の信号３１０を入力とし、すべての列処理後の値（信号）を記憶する。そして、列処理後データ記憶部３１１は、列処理後の信号３１２を行処理演算部３０５に出力する。
【００４７】
制御部３１３は、タイミング信号３０２を入力とし、反復回数をカウントし、反復回数を制御信号３１４として列処理演算部３０９及び対数尤度比演算部３１５に出力する。
【００４８】
対数尤度比演算部３１５は、行処理後の信号３０８、制御信号３１４を入力とし、制御信号３１４に基づいて最後の反復演算であると判断した場合、検査行列Ｈに「１」が存在する位置に対して、Ｓｔｅｐ  Ａ・４（対数尤度比の計算）の演算を施し、対数尤度比信号３１６を得る。そして、対数尤度比演算部３１５は、対数尤度比信号３１６を判定部３１７に出力する。
【００４９】
判定部３１７は、対数尤度比信号３１６を入力とし、符号語を推定し、推定ビット３１８を出力する。
【００５０】
検査行列記憶部３１９は、Sum-Product復号に用いるパリティ検査行列を格納しており、検査行列Ｈに「１」が存在する位置を行処理演算部３０５及び列処理演算部３０９に出力する。
【００５１】
以上、標準的な（従来の）畳み込み符号のパリティ検査行列と、パリティ検査行列を用いたSum-Product復号のアルゴリズム及び復号部について説明した。以下、本発明のパリティ検査行列と、当該パリティ検査行列を用いた復号部について説明する。
【００５２】
（パリティ検査行列）
先ず、本発明の骨子であるパリティ検査行列の生成方法について説明する。図２に示すパリティ検査行列は、１つのパリティ検査多項式だけを基にして構成されていた。これに対し、本実施の形態のパリティ検査行列は、複数のパリティ検査多項式を基にして行を拡張した構成となっている点が特徴である。
【００５３】
・Ｓｔｅｐ  Ｂ・１：
先ず、基の畳み込み符号のパリティ検査多項式（４）を変形し、式（４）と等価な別のパリティ検査多項式を作成する。等価な別のパリティ検査多項式の作成方法については、非特許文献８などに記載されている。
【００５４】
・Ｓｔｅｐ  Ｂ・２：
基のパリティ検査多項式（４）と、Ｓｔｅｐ  Ｂ・１において生成された式（４）と等価な別のパリティ検査多項式の中から、パリティ検査行列の生成に用いるパリティ検査多項式として、ｋ（ｋ≧２）個のパリティ検査多項式を選択する。
【００５５】
選択の基準として、次の＜１＞，＜２＞，＜３＞に従うと良い復号特性が得られる。
【００５６】
基準＜１＞：
Ｓｔｅｐ  Ｂ・１において生成された式（４）と等価なパリティ検査多項式のうち、各等価なパリティ検査多項式だけを用いて、図２，図３に示すように、行列の左下および右上の要素はゼロであり、検査行列Ｈの対角線上に、パリティ検査多項式の各項が平行四辺形に配置されたパリティ検査行列を生成し、当該パリティ検査行列を用いてＢＰ復号を行った場合に、優れた誤り率特性が得られる検査多項式を選択する。経験的には、パリティ検査行列にできる限り長さが４のループ（「ループ４」，「４−ｌｏｏｐ」，「ＦＣ（Four Cycle）」ともいう）が含まれないようにすると特性が良くなることが知られている。
【００５７】
基準＜２＞：
パリティ検査多項式の拘束長νが大きい検査多項式と小さい検査多項式とを組み合わせて選択する。なお、パリティ検査多項式が式（１６）で与えられたとき、パリティ検査多項式の拘束長νは、式（１７）で表される。
【数１６】
2009118418.tif 000018
【数１７】
2009118418.tif 000019
【００５８】
基準＜３＞：
互いに疎な関係にあるパリティ検査多項式の組を選択する。すなわち、各パリティ検査多項式に含まれる項の次数が、できるだけ重複しないようなパリティ検査多項式の組を選択する。これにより、ＢＰ復号において経験的に特性劣化の原因になるとされている長さが４のループができるだけ生成されないようにすることができる。
【００５９】
・Ｓｔｅｐ  Ｂ・３：
Ｓｔｅｐ  Ｂ・２で選択したパリティ検査多項式のうち１つ（以下「第１のパリティ検査多項式」と呼ぶ）を用いて、図２，図３に示すように、従来と同様にパリティ検査行列を作成する（「第１のパリティ検査行列」と呼ぶ）。具体的には、第１のパリティ検査多項式に対応する０又は１の要素からなる領域を、検査行列の対角線上に平行四辺形に配置したパリティ検査行列を作成する。
【００６０】
・Ｓｔｅｐ  Ｂ・４：
Ｓｔｅｐ  Ｂ・３で作成した第１のパリティ検査多項式とは別のパリティ検査多項式（「第２のパリティ検査多項式」と呼ぶ）を基に、パリティ検査行ベクトルを作成する（「第２のパリティ検査行ベクトル」と呼ぶ）。なお、第２のパリティ検査行ベクトルの具体的な作成方法については、後に具体例を示しながら説明する。作成した第２のパリティ検査行ベクトルを、第１のパリティ検査行列に追加することによって、拡張されたパリティ検査行列を作成する。
【００６１】
なお、別のパリティ検査多項式（第３、第４のパリティ検査多項式）を基に作成したパリティ検査行ベクトルを、第２のパリティ検査行が追加されたパリティ検査行列にさらに追加することで、拡張したパリティ検査行列を作成しても良い。
【００６２】
以上のＳｔｅｐ  Ｂ・１〜Ｓｔｅｐ  Ｂ・４によって、本実施の形態で用いる拡張されたパリティ検査行列を作成することができる。以下、（７，５）8畳み込み符号を用いてＳｔｅｐ  Ｂ・１〜Ｓｔｅｐ  Ｂ・４について、具体例を用いて補足説明する。
【００６３】
・Ｓｔｅｐ  Ｂ・１の例
基のパリティ検査多項式（４）を変形することで、生成多項式（１）と等価な別のパリティ検査多項式を作成する。式（４）と等価な別のパリティ検査多項式として、式（１８），（１９）などの検査多項式がある。
【数１８】
2009118418.tif 000020
【数１９】
2009118418.tif 000021
これらはいずれも式（１）の生成多項式によって定義される符号のパリティ検査多項式（４）と等価となっている。
【００６４】
・Ｓｔｅｐ  Ｂ・２の例
２つのパリティ検査多項式（４），（１８）の組を、パリティ検査行列の生成に用いる多項式として選択する。
【００６５】
・Ｓｔｅｐ  Ｂ・３の例
パリティ検査多項式（４）を第１のパリティ検査多項式に用いて第１のパリティ検査行列を作成する。第１のパリティ検査行列は、図２に示した検査行列Ｈと同様である。
【００６６】
・Ｓｔｅｐ  Ｂ・４の例
パリティ検査多項式（１８）を第２のパリティ検査多項式として選択する。パリティ検査多項式（１８）に基づいて第２のパリティ検査行ベクトルを作成し、図２のパリティ検査行列に追加する。
【００６７】
以上の手順によって作成された、本実施の形態におけるパリティ検査行列の例を図５に示す。図５は、図２のパリティ検査行列に、式（１８）に基づく第２のパリティ検査行ベクトルｃ２，iを追加して得られた、拡張されたパリティ検査行列を示している。第２のパリティ検査ベクトルｃ２，iは、ｐｉ−４，ｘｉ−４からｐｉ，ｘｉに対応する領域４１０に式（１８）の各項に対応した１又は０の要素を持ち、それ以外の領域の要素は全て０となっている。
【００６８】
第１のパリティ検査多項式を用いて、取り得る時点ｉの範囲（１≦ｉ≦ＩＮ）に対応して計ＩＮ行のパリティ検査行列を作成することができる。なお、第２のパリティ検査行ベクトルは、任意の時点ｉについて追加可能であり、第２のパリティ検査行ベクトルを追加する時点ｉについては後述する。
【００６９】
図５に示す検査行列は、時点２に、第２のパリティ検査行ベクトルを追加した例である。また、本実施の形態のパリティ検査行列の別の例として、式（１９）に基づく第３のパリティ検査行ｃ３，ｊを図５のパリティ検査行列に追加して拡張されたパリティ検査行列を、図６に示す。このように、複数のパリティ検査多項式に基づくパリティ検査行を用いて、パリティ検査行列を拡張することができる。
【００７０】
以下、Ｓｔｅｐ  Ｂ・１〜Ｓｔｅｐ  Ｂ・４に従って拡張されたパリティ検査行列Ｈに基づいてSum-Product復号（ＢＰ復号）などを行うことにより、従来のパリティ検査行列Ｈに基づいてSum-Product復号を行った場合よりも優れた復号特性を得ることができる点について、タナーグラフを用いて本発明の効果を説明する。
【００７１】
図７は、図２及び図５に示したパリティ検査行列Ｈのタナーグラフの一部を示す図である。図７Ａは、図２に示した従来のパリティ検査行列のタナーグラフの一部を示しており、図７Ｂは、図５に示した本発明のパリティ検査行列のタナーグラフの一部を示している。
【００７２】
Sum-Product復号の１回の処理（Ｓｔｅｐ  Ａ・２〜Ｓｔｅｐ  Ａ・５）では、まずＳｔｅｐ  Ａ・２（行処理）で変数ノードの対数尤度比を用いてチェックノードの対数尤度比が更新され、次にＳｔｅｐ  Ａ・３（列処理）でチェックノードの対数尤度比を用いて変数ノードの対数尤度比が更新される。これをタナーグラフ上で表現すると、まず行処理によって各変数ノードから接続されているチェックノードに信頼性情報が伝播し、次に各チェックノードから接続されている変数ノードに信頼性情報が伝播するということになる。
【００７３】
図７Ａのタナーグラフのうち、変数ノードｘｉに注目する。変数ノードｘｉにはチェックノードｃ１，i，ｃ１，i＋２が接続されている。よって、Sum-Product復号の１回の処理では、チェックノードｃ１，i，ｃ１，i＋２を介して接続されている変数ノードの組{ｐｉ−２，ｘｉ−２，ｐｉ−１，ｐｉ，ｘｉ｝,｛ｐｉ，ｘｉ，ｐｉ＋１，ｐｉ＋２，ｘｉ＋２｝の持つ信頼性情報が、変数ノードｘｉへと伝播する。
【００７４】
これに対して図７Ｂのタナーグラフでは、変数ノードｘｉに新たなチェックノードｃ２，iが接続されている。チェックノードｃ２，iは、図５のパリティ検査行列に追加されたパリティ検査行ベクトルｃ２，iに対応するものである。チェックノードｃ２，iは、変数ノードの組｛ｐｉ−４，ｘｉ−４，ｐｉ−３，ｐｉ−１，ｐｉ，ｘｉ｝と接続されており、ｃ１，i，ｃ１，i＋２とは異なるビットの組み合わせから信頼性情報を変数ノードｘｉへと伝播できることがわかる。
【００７５】
このように新たなチェックノードを追加することによって、１回のSum-Product復号で変数ノードｘｉへと伝搬される信頼性情報の要素数を増やすことができる。新たに追加されたチェックノードの信頼性情報は、従来からのチェックノードとは異なる変数ノードの組から伝搬された信頼性情報であるので、このように、第２のパリティ検査行列が追加され拡張されたパリティ検査行列を用いてSum-Product復号を行うことにより、符号化ゲインによって復号特性を向上することができる。
【００７６】
さらに、第１のパリティ検査行ｃ１，iに対応するパリティ検査多項式（４）の次数は２であり、第２のパリティ検査行ｃ２，iに対応するパリティ検査多項式（１８）の次数は４というように、次数が異なるパリティ検査多項式を組み合わせることによって、信頼性を伝播させるビットの時刻の範囲をｃ１，iとｃ２，iとで異ならせることができ、より高い符号化ゲインを得ることができる。
【００７７】
（第２のパリティ検査行ベクトルを追加する時点ｉの選択方法）
上述したように、第１のパリティ検査多項式を用いて、取り得る時点ｉの範囲（１≦ｉ≦ＩＮ）に対応して、計ＩＮ行の第１のパリティ検査行列を作成することができる。また、第２のパリティ検査行ベクトルは、任意の時点ｉについて追加可能である。
【００７８】
第２のパリティ検査行ベクトルを時点ｉの範囲（１≦ｉ≦ＩＮ）で追加することにより、１回のSum-Product復号で変数ノードｘｉへと伝搬される信頼性情報の要素数が増え、符号化ゲインを得ることができる。したがって、第２のパリティ検査行ベクトルを追加する時点によっても、どの変数ノードに信頼性情報が伝搬されるか変わってくるため、第２のパリティ検査行ベクトルを追加する時点ｉの選択方法も重要な要素となる。そこで、以下では、第２のパリティ検査行ベクトルを追加する時点ｉの選択方法について説明する。なお、この選択方法は第３、第４以降のパリティ検査行を追加する場合においても同様である。
【００７９】
上述したように、第２のパリティ検査行ベクトルは、任意の時点ｉに追加することができる。すなわち、各時点ごとに第２のパリティ検査行を追加していくことにより、最大でＩ行の第２のパリティ検査行ベクトルを、第１のパリティ検査行列に対して追加することができる。
【００８０】
パリティ検査行列の行数が増えることによって、復号部３００の行処理演算部３０５及び列処理演算部３０９の計算量が増加し、又、行処理後データ記憶部３０７に必要なメモリのサイズが増大することとなるものの、計算量及びメモリサイズの増加はたかだか追加する行数に比例する程度であり、Sum-Product復号の計算量の増加分は並列処理が可能なので、復号の高速化への妨げとはならない。
【００８１】
しかし、パリティ検査行列の行数を増やすことにより、Sum-Product復号の復号特性を劣化させる要因となる長さ４のループが形成されやすくなってしまう。そのため、第２のパリティ検査行の数を多くすることにより、復号特性が必ずしも改善される訳でなく、追加する第２のパリティ検査行の数が所定数を超えると、第２のパリティ検査行をさらに追加しても、復号特性の改善は相対的に小さくなってしまう。したがって、各時点ごとに第２のパリティ検査行を追加して、ＩＮ行の第２のパリティ検査行ベクトルを追加しても、必ずしも復号特性が改善されない場合がある。
【００８２】
そこで、以下では、第２のパリティ検査行を追加する時点ｉについて、図８を用いながら補足説明する。
【００８３】
図８は、本実施の形態におけるパリティ検査行列を示す図である。なお、図８において、図５と同一の部分については同一の符号を付している。図８のパリティ検査行列は、第２のパリティ検査行が、一定の間隔ＴＡ、時点ＴＡおきに追加された例である。なお、ＴＡ＝１とすれば、全ての時刻ｉについて第２のパリティ検査行が追加されることとなる。図８のパリティ検査行列では、時刻ｉに対してｐｉ，ｘｉの２列が対応するので、第２のパリティ検査行はパリティ検査多項式（１８）に対応する領域４１０を２ＴＡ列ずつずらして平行四辺形に配置した形になっている。このように一定の間隔ＴＡごとにパリティ検査行を追加する場合、任意の符号長に対するパリティ検査行列の設計が容易となる。また、１が立っている要素の平行四辺形様の配置が符号語の途中で変化しないため、非特許文献５〜７などに示されている計算手法の工夫の適用が容易となる。
【００８４】
次に、第２のパリティ検査行を追加する時点の間隔ＴＡの決定方法について説明する。間隔ＴＡは、以下の基準に従って決定すると良い。
【００８５】
基準《１》：第２のパリティ検査多項式の拘束長をｖ２とすると、ＴＡ≦ｖ２となるようにする。このようにすることで、Sum-Product復号を少なくとも２回行うことによって、第１のパリティ検査行において１が立っている任意のあるビットから、第２のパリティ検査行において１が立っている別のビットへと確率を伝播することができるようになり、高い符号化ゲインが得られるようになる。
【００８６】
基準《２》：追加された複数の第２のパリティ検査行によって、長さが４のループができるだけできないようにする。長さ４のループは、Sum-Product復号において復号特性劣化の要因となるので、第２のパリティ検査行が追加されたパリティ検査行列に含まれる長さ４のループ数が少ないほど、復号特性の劣化を抑えることができる。
【００８７】
基準《３》：符号語にパンクチャド符号化を適用する場合は、間隔ＴＡがパンクチャパターンの長さの整数分の１になるようにする。なお、パンクチャド符号化の適用については、実施の形態２において詳細に説明する。
【００８８】
このようにして、復号特性の劣化要因を回避しつつ、第２のパリティ検査多項式を追加する時点ｉを決定することにより、拡張されたパリティ検査行列を用いてＢＰ復号を行うことにより、復号特性が確実に改善されるようになる。
【００８９】
本実施の形態に係る復号部の構成は、図４に示した復号部３００と同様であるため、説明を省略する。検査行列記憶部３１９に記憶しておくパリティ検査行列を、本実施の形態で説明したパリティ検査行列に置き換えることによって、復号特性の良い復号部を構成することができる。
【００９０】
以上のように、本実施の形態によれば、畳み込み符号の第１のパリティ検査多項式によって定義される第１のパリティ検査行要素と、第１の検査多項式と等価である畳み込み符号の第２のパリティ検査多項式によって定義される第２のパリティ行要素と、を用いて形成される拡張されたパリティ検査行列を用いて、符号化側で畳み込み符号により生成された符号語系列に対し、Sum-Product復号を行う。このように、拡張されたパリティ検査行列を用いてSum-Product復号をすることにより、Sum-Productアルゴリズムの１回の計算処理において、より多くの異なるビットの組み合わせの間で信頼度伝搬が行われるようになり、この結果、復号特性を向上することができる。
【００９１】
なお、本発明は、種々のＢＰ復号に広く適用できる。すなわち、本発明のＢＰ復号とは、例えば非特許文献５〜７に記載されているような、ＢＰ復号を近似したmin-sum復号、offset ＢＰ復号、Normalized ＢＰ復号等も含むものである。これは、以下に説明する実施の形態においても同様である。
【００９２】
（実施の形態２）
畳み込み符号を無線通信システムに適用する際、符号化器の構成を変えずに符号化率を可変にするために、畳み込み符号にパンクチャド符号化を組み合わせたパンクチャド畳み込み符号を用いることが一般的である。本実施の形態では、パンクチャド畳み込み符号を適用した無線通信システムにおいて、実施の形態１で説明した復号部を無線受信装置に用いるための、好適なパンクチャド符号化器の構成について説明する。
【００９３】
図９に、本実施の形態に係るパンクチャド符号化器を備えた送信装置の構成を示す。図９の送信装置６００は、畳み込み符号化部６１０、パンクチャ部６２０、インタリーブ部６３０、変調部６４０、制御情報生成部６６０、無線送信部６５０、及び送信アンテナ６７０を備えて構成される。なお、本実施の形態に係るパンクチャド符号化器は、畳み込み符号化部６１０及びパンクチャ部６２０により構成される。
【００９４】
畳み込み符号化部６１０は、送信情報系列に対し畳み込み符号化処理を行い、得られた送信符号語系列をパンクチャ部６２０に出力する。
【００９５】
パンクチャ部６２０は、送信符号語系列から所定のパンクチャパターンに従ってビットのパンクチャ（ビットの消去）を行い、パンクチャ後の送信符号語系列をインタリーブ部６３０に出力する。なお、パンクチャパターンについては後述する。
【００９６】
インタリーブ部６３０は、パンクチャ後の送信符号語系列に対して、系列の順序の並び替え処理（インタリーブ）を行い、インタリーブ後の送信符号語系列を変調部６４０に出力する。
【００９７】
変調部６４０は、インタリーブ後の送信符号語系列を、ＰＳＫ（Phase Shift Keying），ＱＡＭ（Quadrature Amplitude Modulation）などの変調方式で変調し、送信変調シンボル系列を無線送信部６５０に出力する。
【００９８】
制御情報生成部６６０は、送信装置と受信装置との間で信号を受信するために必要な制御情報を生成し、変調部６４０に出力する。制御情報には、パンクチャ部６２０で用いたパンクチャパターンを示す情報が含まれる。その他の制御情報の例として、変調方式や送信情報系列長、時間・周波数同期のためのプリアンブル信号などがある。
【００９９】
無線送信部６５０は、送信変調シンボル系列に対して、Ｄ／Ａ（Digital to Analog）変換、周波数変換、ＲＦ（Radio Frequency）フィルタ処理などの無線変調処理を行い、送信ＲＦ信号を生成する。
【０１００】
送信アンテナ６７０は、送信ＲＦ信号を送信する。
【０１０１】
図１０に、本実施の形態に係る受信装置の構成を示す。受信装置７００は、受信アンテナ７１０、無線受信部７２０、復調部７３０、デインタリーブ部７４０、デパンクチャ部７５０、制御情報検出部７６０、及び復号部７７０を備えて構成される。
【０１０２】
受信アンテナ７１０は、送信装置６００から送信された送信ＲＦ信号を受信し、無線受信部７２０に出力する。
【０１０３】
無線受信部７２０は、ＲＦフィルタ処理、周波数変換、Ａ／Ｄ（Analog to Digital）変換などの無線復調処理を行う。その後、Ｉチャネル、Ｑチャネルそれぞれの受信ベースバンド信号を検出する。無線受信部７２０は、受信ベースバンド信号を復調部７３０に出力する。
【０１０４】
また、無線受信部７２０は、ベースバンド信号に含まれる既知信号を利用して、送信装置６００と受信装置７００との間の無線伝搬路におけるチャネル変動を推定する。無線受信部７２０は、推定したチャネル変動を制御情報検出部７６０に出力する。
【０１０５】
復調部７３０は、ベースバンド信号から、送信されたインタリーブ後の各符号語ビットの対数尤度比を求め、求めた対数尤度比をデインタリーブ部７４０に出力する。
【０１０６】
デインタリーブ部７４０は、対数尤度比の系列の順序を、送信装置６００でのインタリーブ部６３０で行った並び替え処理の逆の処理を用いて並び替える。デインタリーブ部７４０は、デインタリーブ後の受信対数尤度比系列をデパンクチャ部７５０に出力する。
【０１０７】
デパンクチャ部７５０は、送信装置６００のパンクチャ部６２０でパンクチャされたビットの対数尤度比を０として、パンクチャ部６２０の動作と逆に受信対数尤度比系列に追加する。デパンクチャ部７５０は、デパンクチャされた受信対数尤度比系列を復号部７７０に出力する。
【０１０８】
復号部７７０は、デパンクチャされた受信対数尤度比系列に対して、実施の形態１と同様に、図３に示すような拡張されたパリティ検査行列を用いてSum-Product復号を行い、復号結果の硬判定値を復号部７７０の符号結果として出力する。
【０１０９】
（パンクチャパターンの設計方法）
次に、パンクチャ方法について、図１１、図１２、及び図１３を用いて詳しく説明する。なお、本実施の形態では、実施の形態１において説明した拡張されたパリティ検査行列を復号に用いることを前提とした、パンクチャビット（消去ビット）の設計方法について説明する。
【０１１０】
図１１に、パンクチャ部６２０におけるパンクチャ処理の例を示す。本実施の形態では、一定の長さのブロック（以下「パンクチャブロック」という）単位でパンクチャによって消去するビットの配置パターン（パンクチャパターン）を定義する。なお、パンクチャパターンは、送信装置６００と受信装置７００との間の通信で使用する符号化率の数だけ用意する必要がある。図１１には、パンクチャパターンＺをＺ＝（１，０，１，０，１，１）と定義した際のパンクチャの様子を示している。図１１のパンクチャパターンＺのブロックの長さＬｐは、Ｌｐ＝３であり、パンクチャ部６２０は、パンクチャパターンＺのブロック内の０に相当する位置のビットを消去する。
【０１１１】
本実施の形態では、復号部７７０において用いられるパリティ検査行列に基づいて、パンクチャパターンを設計する。以下、パンクチャパターンの設計手順について説明する。
【０１１２】
・Ｓｔｅｐ  Ｃ・１：
パンクチャパターンの長さ（「パンクチャブロックの長さ」ともいう）Ｌｐを決定する。パンクチャパターンの長さＬｐは、パリティ検査行列の生成に用いた第１のパリティ検査多項式の拘束長ｖ１の整数倍とする。パンクチャパターンの長さＬｐが短いほど、パンクチャ部・デパンクチャ部の構成が簡易で済む。そのため、サポートする必要のある符号化率のうち、最大の符号化率を満たすパンクチャパターンの長さの中で、最も小さい長さを、パンクチャブロックの長さＬｐとする。
【０１１３】
一例として、図１２に示すパリティ検査行列に基づいて、パンクチャパターンを設計する場合について説明する。図１２のパリティ検査行列は、図５のパリティ検査行列の行を入れ替えた行列であり、図５のパリティ検査行列と等価な行列である。具体的には、図１２のパリティ検査行列は、第１のパリティ検査行ベクトルの３行おきに、第２のパリティ検査行ベクトルが挿入された場合の例である。また、第２のパリティ検査行ベクトルは、間隔ＴＡ＝３おきに追加されている場合の例である。
【０１１４】
図１２に示す例では、第１のパリティ検査多項式の拘束長ｖ１は、ｖ１＝３である。そこで、パンクチャパターンの長さＬｐを、Ｌｐ＝３とする。図１２のパリティ検査行列の列をパンクチャブロック単位で区切り、区切られた領域に注目すると、パンクチャブロックごとに同じ形の領域８１０，８２０，８３０が行シフトした形で並んでいることがわかる。このとき、行シフト数は、パンクチャパターンの長さＬｐとした場合に、パンクチャパターンの長さＬｐに対応した検査行数に等しい。図１２に示す例では、行シフト数は、時点（ｉ−２）から時点ｉまでの第１のパリティ検査行ベクトルｃ１，ｉ−２，ｃ１，ｉ−１，ｃ１，ｉの３行と、第２のパリティ検査行ベクトルｃ２，ｊの１行の合計４行となる。時点（ｉ−２）から時点ｉまでの間隔が、パンクチャパターンＬｐに一致する。
【０１１５】
図１２に示すように、パリティ検査行列において、同じ形の領域８１０，８２０，８３０が行シフトした形で並んでいるのは、第２のパリティ検査行ベクトルを追加する時点の間隔ＴＡが、パンクチャパターンの長さＬｐの整数分の１（１／１）となっているからである。ところで、パンクチャパターンの長さＬｐは、第１のパリティ検査多項式の拘束長ｖ１の整数倍とするので、同じ形の領域８１０，８２０，８３０が行シフトした形で並ぶのは、第２のパリティ検査行ベクトルを追加する時点の間隔ＴＡが、第１のパリティ検査多項式の拘束長ｖ１の整数分の１となっていることによる。
【０１１６】
このように、パリティ検査行列の設計においては、第２のパリティ検査行ベクトルを追加する時点の間隔ＴＡを、パンクチャパターンの長さＬｐの整数分の１とすることによって、パリティ検査行列からパンクチャブロックに対応する列要素を切り出した場合に、切り出されたいずれの領域も、同じ形の１又は０の要素を行方向にシフトした部分行列が得られるようになる。したがって、パリティ検査行列の１つのパンクチャブロックに対応する部分行列だけに着目して特性が良好となるパンクチャパターンを設計すれば、任意の符号長のパリティ検査行列に対して特性の良好なパンクチャパターンとすることができるようになる。
【０１１７】
・Ｓｔｅｐ  Ｃ・２：
パリティ検査行列から、パンクチャパターンを決定するための部分行列を切り出す。具体的には、まず、パリティ検査行列を、列方向にパンクチャブロック単位で区切る。また、パリティ検査行列を、行方向に、パンクチャパターンの長さＬｐに対応する単位で区切る。このようにして、パリティ検査行列を格子状に区切る。区切られた格子うち、各列に１の要素を１つ以上含む格子に着目し、当該格子で区切られた格子ブロックを選択する。そして、選択した格子ブロックと同じ行に１の要素を１つ以上含む格子ブロックが全て含まれるように、部分行列を切り出す。
【０１１８】
図１２に示す例では、区切られた格子のうち、各列に１の要素を１つ以上含む格子ブロック８２１，８２２に着目し選択し、当該格子ブロック８２１，８２２と同じ行に１の要素を１つ以上含む格子ブロック８４０，８５０が含まれるように枠８６０で示した部分行列を、パンクチャパターンを決定するための部分行列として用いる。この部分行列を用いてパンクチャパターンを決定する。
【０１１９】
・Ｓｔｅｐ  Ｃ・３：
Ｓｔｅｐ  Ｃ・２で切り出した部分行列を用いて、取り得るパンクチャパターン毎に、各行で全てのビットの信頼性を使って計算できるようになるまでに何回のSum-Product復号処理が必要になるかを評価する。そして、必要なSum-Product復号処理回数が最も少ないパンクチャパターンを、最適なパンクチャパターンとして選択する。必要なSum-Product復号処理回数が等しいパンクチャパターンが複数ある場合は、行ごとの必要な処理回数の平均値が最も小さいパターンを選択する。Sum-Product復号処理を何回繰り返しても信頼性を計算できない情報ビットが存在する場合、そのパンクチャパターンは不適である。なお、情報ビットだけを復号すれば良く、パリティビットを復号する必要がない場合には、信頼性を計算できないパリティビットが存在しても構わない。
【０１２０】
図１３を用いてパンクチャパターンの決定方法について具体的に説明する。図１３は、Ｓｔｅｐ  Ｃ・２で、図１２の検査行列から切り出した部分行列８６０に対して、符号化率６／５に対するパンクチャパターンとして、［１］Ｚ＝（１，０，１，１，１，１），［２］Ｚ＝（１，１，１，０，１，１），［３］Ｚ＝（１，１，１，１，１，０）の３通りのパンクチャパターンを適用した場合に、どの列要素の信頼性情報が受信装置で受信されなくなるかを示したものである。図１３において、斜線で示された列は、パンクチャされるビット列を示している。なお、図１３は、パンクチャパターンＺが、パンクチャブロックの中からパリティビットを１ビット除去（パンクチャ）する場合の例であり、図１３Ａ，図１３Ｂ，図１３Ｃは、それぞれ、パンクチャパターンＺが［１］，［２］，［３］の場合を示す。
【０１２１】
［１］の４行目に注目すると、この行ではパンクチャによって信頼性情報が受信されないビット（パンクチャパターンＺにおいて１が立っている箇所）は、全て要素が０となっている。４行目で１が立っているビットは、すべて送信側でパンクチャされずに送信されたビット（パンクチャパターンＺにおいて０が立っている箇所）であるので、信頼性情報が受信されており、Sum-Product復号における対数尤度比の初期値β（０）ｍｎとして０以外の値が得られている。すなわち［１］の４行目では、Sum-Product復号の１回目の行処理を開始する時点で、パリティ検査行において１が立っている全てのビットについての信頼性情報α（１）ｍｎを０以外の値で更新することができる。
【０１２２】
また、［１］の１行目に注目すると、１が立っているビットのうち１つだけがパンクチャされている。すなわち、Sum-Product復号の１回目の行処理を開始する時点ではパンクチャビットの信頼性情報は得られておらず、初期値β（０）ｍｎに０が設定されている。よって１行目の１回目の行処理では、パンクチャビット以外で１が立っているビットの信頼性情報α（１）ｍｎは全て０となってしまう。ただし、信頼性情報が得られていないパンクチャビットはこの行で１つだけであるので、このパンクチャビットの信頼性情報α（１）ｍｎは、０ではない他のビットの信頼性情報α（１）ｍｎを用いて０以外の値で更新することができる。
【０１２３】
よって、［１］の行列全体では、全ての列について少なくとも１つ、０以外の値をとる信頼性情報α（１）ｍｎを要素に含むことになるため、１回目の列処理を行うことで、全てのβ（１）ｍｎを０以外の値で更新することができる。これにより、２回目の行処理では、１行目においても全てのビットについて信頼性情報α（１）ｍｎを０以外の値で更新することができる。
【０１２４】
なお、図１３Ａにおいて、Ｊは、各行においてパンクチャパターンにより除去される要素数を示しており、４行目ではＪ＝０であり、パリティ検査行において１が立っている全てのビットについての信頼性情報α（１）ｍｎを０以外の値で更新することができることを意味している。また、１行目ではＪ＝１であり、１行目の１回目の行処理で、信頼性情報が得られないパンクチャビットが、１行目で１つあることを意味する。
【０１２５】
これに対し、図１３Ｂに示すように、パンクチャパターンＺとして［２］を用いた場合には、各行において、パンクチャパターンにより除去される要素数Ｊが、Ｊ＝１又はＪ＝２であり、図１３Ａに比し値が大きい。同様に、図１３Ｃに示すように、パンクチャパターンＺとして［３］を用いた場合にも、各行において、パンクチャパターンにより除去される要素数Ｊは、Ｊ＝１又はＪ＝２であり、図１３Ａに比し値が大きい。
【０１２６】
したがって、パンクチャパターンＺとして［２］や［３］のパターンを用いた場合には、行列全体では、２回目の列処理を行うことで、全てのβ（２）ｍｎを０以外の値で更新することができることになる。
【０１２７】
このように、取り得る全てのパンクチャパターンの候補に対し、パリティ検査行列上の１がパンクチャされる数（要素数Ｊ）をカウントし、このカウント数が小さいパンクチャパターンを選択するようにすることで、各行のビットの信頼性情報を得るために必要なSum-Product復号の処理回数が最も小さいパンクチャパターンを選択することができる。上述した例では、［１］のパンクチャパターンが最適なパターンとなる。
【０１２８】
因みに、［１］のパンクチャパターンにおいて、Ｊ＝０となっている行（４行目及び８行目）は、実施の形態１で説明した第２のパリティ検査行ベクトル（ｃ２，ｊ及びｃ２，ｊ＋３）に相当する。すなわち、第２のパリティ検査行ベクトルを追加したことにより、少ないSum-Product復号処理回数で全てのビットの信頼性情報を更新することを可能とする特性改善効果が得られる。
【０１２９】
つまり、第１のパリティ検査式と等価な検査式に基づく第２のパリティ検査式を追加することにより、他のビットの信頼性情報を用いることができるようになるので、符号化側で送信符号語をパンクチャした場合においても、パンクチャによる影響を分散することができ、特性改善効果を得ることができる。
【０１３０】
以上のようにして求めたパンクチャパターンを、パンクチャ部６２０のパンクチャパターンに用いることで、本実施の形態の受信装置７００では、少ないSum-Product復号処理回数で高い復号特性を得られるようになる。
【０１３１】
以上のように、本実施の形態によれば、畳み込み符号化部６１０は、畳み込み符号を用いて誤り訂正符号化を施し送信符号語系列を取得し、パンクチャ部６２０は、復号側のＢＰ復号で用いられるパリティ検査行列のパターンに基づいたパンクチャパターンを用いて、畳み込み符号化部６１０によって取得された送信符号語系列に対しパンクチャを施すようにした。
【０１３２】
畳み込み符号の第１の検査多項式によって定義される第１の行要素と、第１の検査多項式と等価である畳み込み符号の第２の検査多項式によって定義される第２の行要素と、を用いて形成されるパリティ検査行列のパターンに基づいたパンクチャパターンを用いることで、復号側では、パンクチャによって消去されたビットの信頼性情報を他のビットの信頼性情報を用いて求めることができるようになり、少ないSum-Product復号処理回数で復号できる。また、第１のパリティ検査行において１が立っている任意のあるビットから、第２のパリティ検査行において１が立っている別のビットへと確率を伝播することができるようになるので、高い復号特性が得られるようになる。
【０１３３】
また、パンクチャパターンを、パリティ検査行列上の「１」をできるだけ削除しないパターンから選択ようにすることで、ＢＰ復号時に必要な符号語の尤度を得るための繰り返し処理回数を最小限に抑えることができる。
【０１３４】
なお、本実施の形態に係る送信装置６００及び受信装置７００が適用される通信システムにおいて、通信システムが複数のパンクチャパターンを備え、パンクチャパターンが切り替えられるような場合に、複数種類のパリティ検査行をパリティ検査行列に追加しておき、どのパンクチャパターンが用いられた場合でも、少なくとも１種類の行では、当該行において１が立っているビットのうちパンクチャビットとなるビットが１つ以下になるようなパターンをパンクチャパターンとすることで、どのパンクチャパターンを用いた場合においても、良好な復号特性が得られるようになる。
【０１３５】
すなわち、全ての情報ビットについて、該情報ビットに１が立っている行の集合の中に、１が立っているビットであってパンクチャされているビットが高々１ビットである行が、少なくとも１行存在するようなパンクチャパターンであれば、良好な復号特性が得られる。
【０１３６】
ここで、パリティ検査行列の作成に用いるパリティ検査多項式が、拘束長が長いものばかりであった場合、パンクチャド符号化を適用した際、検査行１行において、１が立っているビットが２つ以上パンクチャされてしまう可能性が高くなってしまう。よって、拘束長が長いパリティ検査多項式と、拘束長が短いパリティ検査多項式とを組み合わせて用いることが好適である。このようにすることで、拘束長が短いパリティ検査行を用いてパンクチャビットを含めた全ビットの信頼性情報を０以外の値で更新し、全ビットの信頼性情報が０以外の値となった以降は、拘束長が長いパリティ検査行によって高い符号化ゲインを得て良好な復号特性を得ることができる。
【０１３７】
また、パンクチャブロック内でパンクチャによって消去されるビットは、１ビットに限らず、複数ビットパンクチャするようにしてもよい。
【０１３８】
本発明は、上記実施の形態に限定されず、種々変更して実施することが可能である。例えば、上記実施の形態では、送信装置又は受信装置として行う場合について説明しているが、これに限られるものではなく、この符号化方法又は復号化方法をソフトウェアとして行うことも可能である。
【産業上の利用可能性】
【０１３９】
本発明に係る復号化装置、符号化装置、復号化方法、及び、符号化方法は、畳み込み符号を適用した通信システムにおける復号化装置、符号化装置、復号化方法、及び、符号化方法として有用である。
【図面の簡単な説明】
【０１４０】
【図１】符号化率Ｒ＝１／２の（７，５）8畳み込み符号の符号化器の構成を示すブロック図
【図２】パリティ検査行列の一例を示す図
【図３】パリティ検査行列の一般例を示す図
【図４】Sum-Product復号を行う復号部の構成の一例を示すブロック図
【図５】本実施の形態１におけるパリティ検査行列の一例を示す図
【図６】実施の形態１におけるパリティ検査行列の別の例を示す図
【図７】従来及び実施の形態１におけるタナーグラフの一例を示す図
【図８】第２のパリティ検査行を追加する時点ｉの説明に供する図
【図９】本実施の形態２に係る送信装置の構成を示すブロック図
【図１０】実施の形態２に係る受信装置の構成を示すブロック図
【図１１】実施の形態２に係るパンクチャ部のパンクチャ処理の説明に供する図
【図１２】実施の形態２におけるパリティ検査行列の一例を示す図
【図１３】パンクチャパターンの決定方法の説明に供する図
【符号の説明】
【０１４１】
３００，７７０  復号部
３０３  対数尤度比記憶部
３０５  行処理演算部
３０７  行処理後データ記憶部
３０９  列処理演算部
３１１  列処理後データ記憶部
３１３  制御部
３１５  対数尤度比演算部
３１７  判定部
３１９  検査行列記憶部
６００  送信装置
６１０  畳み込み符号化部
６２０  パンクチャ部
６３０  インタリーブ部
６４０  変調部
６５０  無線送信部
６６０  制御情報生成部
６７０  送信アンテナ
７００  受信装置
７１０  受信アンテナ
７２０  無線受信部
７３０  復調部
７４０  デインタリーブ部
７５０  デパンクチャ部
７６０  制御情報検出部
【図１】
2009118418.tif 000022
【図２】
2009118418.tif 000023
【図３】
2009118418.tif 000024
【図４】
2009118418.tif 000025
【図５】
2009118418.tif 000026
【図６】
2009118418.tif 000027
【図７】
2009118418.tif 000028
【図８】
2009118418.tif 000029
【図９】
2009118418.tif 000030
【図１０】
2009118418.tif 000031
【図１１】
2009118418.tif 000032
【図１２】
2009118418.tif 000033
【図１３】
2009118418.tif 000034