(57)【要約】【課題】符号化速度を向上させる符号化方法を得る。【解決手段】符号化装置１００は、出力制御信号１０８に従って格納した入力データＤ１００を出力する入力データ格納部１０７と、入力データＤ１０１の入力数をカウントする入力データカウント部１０１と、入力数に応じて入力データＤ１００の出力先を制御する出力制御部１０２と、１ビットデータを保持する複数の１ビット格納部１０３-１〜１０３−（Ｎ−Ｋ）と、ＬＤＰＣ符号の生成行列の行ベクトルを保持する複数の行ベクトル格納部１０４−１〜１０４−Ｋと、行ベクトルと列ベクトルの乗算を行うベクトル乗算部１０５−１〜１０５−Ｋと、乗算により生成されたパリティを保持するパリティ格納部１０９と、入力データ系列およびパリティ系列からＬＤＰＣ符号語を生成して出力するＬＤＰＣ符号語系列生成部１０６とを含む。【選択図】図２
2008086008.tif 000002
【特許請求の範囲】
【請求項１】
ＬＤＰＣ符号化を行う符号化方法であって、
ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列の部分行列を供給する供給ステップと、
前記生成行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する線形演算ステップ、
を含む符号化方法。
【請求項２】
前記生成行列の部分行列が、単位行列のサイクリックシフトの和で表される、
請求項１に記載の符号化方法。
【請求項３】
前記線形演算ステップは、前記生成行列の部分行列の一部を巡回シフトし、巡回シフト後のベクトルと前記入力データとを乗算し、さらに、乗算後のベクトルを累積加算することによりパリティデータを得る、
請求項１に記載の符号化方法。
【請求項４】
前記供給ステップは、前記生成行列の部分行列の第１列目のベクトルを巡回シフトすることにより、前記生成行列の部分行列を順次供給する、
請求項１に記載の符号化方法。
【請求項５】
前記線形演算ステップは、前記生成行列の行ベクトルと、前記入力データから生成した入力ベクトルとの乗算結果からパリティデータを得る、
請求項１に記載の符号化方法。
【請求項６】
前記線形演算ステップは、前記生成行列の列ベクトルと前記入力データとの乗算を累積加算することでパリティデータを得る、
請求項１に記載の符号化方法。
【請求項７】
前記生成行列の部分行列の第１列目のベクトルは、インデクスを用いて特定されており、
前記供給ステップは、前記インデクスを用いて前記巡回シフトに用いる前記第１列目のベクトルを再生する、
請求項４に記載の符号化方法。
【請求項８】
前記供給ステップは、前記入力データが複数ビット系列の場合、前記生成行列の列ベクトルを複数ビット系列数だけ巡回シフトすることにより、前記生成行列の部分行列を順次供給する、
請求項１に記載の符号化方法。
【請求項９】
前記線形演算ステップは、前記入力データの末尾を示す制御信号の入力を受け、前記パリティデータを出力する、
請求項１に記載の符号化方法。
【請求項１０】
ＬＤＰＣ符号化を行う符号化装置であって、
ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列の部分行列の部分行列を供給する供給手段と、
前記生成行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する線形演算手段と、
を具備する符号化装置。
【請求項１１】
前記入力データを格納する第１の格納部と、
前記線形演算手段により取得されるパリティデータを格納する第２の格納部と、
格納される前記入力データと前記パリティデータとを並び替えるインタリーブ手段と、  をさらに具備する請求項１０に記載の符号化装置。
【請求項１２】
前記ＬＤＰＣ符号語をパンクチャするパンクチャ手段、
をさらに具備する請求項１０に記載の符号化装置。
【請求項１３】
ＬＤＰＣ符号化を行う符号化方法であって、
単位行列のサイクリックシフトを部分行列とするインタリーブパターン行列と、ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得されるインタリーブド行列を供給する供給ステップと、
前記インタリーブド行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する線形演算ステップ、
を含む符号化方法。
【請求項１４】
前記線形演算ステップは、前記インタリーブド行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する、
請求項１３に記載の符号化方法。
【請求項１５】
前記生成行列は、複数のＬＤＰＣ符号語を生成する行列であり、前記インタリーブパターン行列は、前記複数のＬＤＰＣ符号語の大きさに対応した行列である
請求項１４に記載の符号化方法。
【請求項１６】
単位行列のサイクリックシフトを部分行列とするインタリーブパターン行列と、ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得されるインタリーブド行列の部分行列を供給する供給手段と、
前記インタリーブド行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する線形演算手段と、
前記ＬＤＰＣ符号語を変調する変調手段と、
前記変調手段により得られた変調信号を送信する送信手段と、
を具備する符号化装置。
【請求項１７】
ＬＤＰＣ符号化を行う符号化方法であって、
単位行列のサイクリックシフトを部分行列とする空間マッピングパターン行列と、ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得される符号化・空間マッピング行列を供給する供給ステップと、
前記符号化・空間マッピング行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する線形演算ステップと、
を含む符号化方法。
【請求項１８】
前記線形演算ステップは、符号化・空間マッピング行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する、
請求項１７に記載の符号化方法。
【請求項１９】
単位行列のサイクリックシフトを部分行列とする空間マッピングパターン行列と、ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得される符号化・空間マッピング行列の部分行列を供給する供給手段と、
前記符号化・空間マッピング行列の部分行列と入力データとの線形演算により、ＬＤＰＣ符号語をストリームごとに取得する線形演算手段と、
前記ＬＤＰＣ符号語をストリームごとに変調する変調手段と、
前記変調手段により得られた変調信号をストリームごとに送信する送信手段と、
を具備する送信装置。
【請求項２０】
前記空間マッピングパターン行列は、同一ストリームにマッピングされるＬＤＰＣ符号語のブロックを、時間的に異なるＬＤＰＣ符号語のブロックとするパターンである
請求項１９に記載の送信装置。
【請求項２１】
入力データを空間マッピングすることにより複数のストリームに割り当てる空間マッピング手段と、
単位行列のサイクリックシフトを部分行列とするインタリーブパターン行列と部分行列が単位行列のサイクリックシフトの和となっているＬＤＰＣ符号語生成行列との行列演算により得られるインタリーブド生成行列の部分行列を供給する供給手段と、
前記インタリーブド生成行列の部分行列と、前記複数のストリームに割り当てられた前記入力データとの線形演算により、符号語をストリームごとに取得する符号化・インタリーブ手段と、
前記符号語をストリームごとに変調する変調手段と、
前記変調手段により得られた変調信号をストリームごとに送信する送信手段と、
を具備する送信装置。
【請求項２２】
前記ＬＤＰＣ符号語生成行列は、ストリームごとに異なるパターンである
請求項２１に記載の送信装置。
【請求項２３】
前記インタリーブパターン行列は、ストリームごとに異なるパターンである
請求項２１に記載の送信装置。
【請求項２４】
前記インタリーブパターン行列は、同一ストリームで送信されるＬＤＰＣ符号語のブロックが、時間的に異なるＬＤＰＣ符号語のブロックとなるようにするパターンである
請求項２１に記載の送信装置。
【請求項２５】
前記空間マッピング手段は、同一時刻に送信されるＬＤＰＣ符号語のブロックが、互いに異なるＬＤＰＣ符号語のブロックとなるように割り当てる
請求項２４に記載の送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化方法、符号化装置、及び送信装置に関し、特に、ＬＤＰＣ（Low Density Parity Check）符号の検査行列に準じて入力データのパリティビットを生成する符号化方法、符号化装置、及び送信装置に関する。
【背景技術】
【０００２】
近年、誤り訂正符号（Error Correction Code）として、パリティ検査行列で定義されるＬＤＰＣ符号が用いられている。ＬＤＰＣ符号は、非常に疎な検査行列、すなわち行列内の非零要素の数が非常に少ない検査行列により定義される線形符号である。従来、このような検査行列から直接符号化が行われている。
【０００３】
具体的には、従来の符号化においては、例えば図２６に示す検査行列からパリティビットを生成する際に、行列式を変形して演算数を減らして行っていた（例えば、非特許文献１）。
【０００４】
図２６のＬＤＰＣ検査行列は、ｑ行ｐ列の行列で、６個の部分行列Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｔを含んで構成されている。このうち、部分行列Ｔは、下三角行列を表す特殊な行列である。ここで、図２６の検査行列をＨで表すと、Ｈは、式（１）で表される。
【数１】
2008086008.tif 000003
【０００５】
このとき、入力ビット（入力データ）をｓ、部分行列Ｂ、Ｄにかかるパリティビットをｐ１、部分行列Ｔ、Ｅにかかるパリティビットをｐ２とすると、式（２）を得る。
【数２】
2008086008.tif 000004
【０００６】
そして、式（２）において、式（３）の行列を左からＨに乗算すると、式（４）の展開を経て、式（５）を得る。
【数３】
2008086008.tif 000005
【数４】
2008086008.tif 000006
【数５】
2008086008.tif 000007
【０００７】
ここで、式（５）において、（−ＥＴ−１Ｂ＋Ｄ）を式（６）のように定義すると、式（７）によりｐ１が求まる。
【数６】
2008086008.tif 000008
【数７】
2008086008.tif 000009
【０００８】
また、式（５）より、式（８）を得る。
【数８】
2008086008.tif 000010
【０００９】
式（８）の右辺のｐ１に、式（７）を代入すると、行列Ｔが下三角行列であるため、左辺のｐ２は、第１行から逐次演算することが可能となる。
【００１０】
このような演算は、ハードウェア上でも行われている（例えば、非特許文献２）。具体的には、従来のハードウェアは、式（７）のｐ１を求めるために、図２７に示すように、まずＡｓの行列演算を行う。次にＴ−１［Ａｓ］の演算結果を求めるために、Ｔｘ＝Ａｓを満たすｘを求める操作を行う。このとき、Ｔが下三角行列であることを利用し、ｘの第１行から逐次演算をすることでｘを求める。この操作をＦＳ(Forward Substitution)と呼ぶ。その後、−Ｅ［Ｔ−１Ａｓ］の行列演算を行う。
【００１１】
さらに、ハードウェアは、［−ＥＴ−１Ａｓ］＋［Ｃｓ］を計算し、ｐ１＝−φ−１［−ＥＴ−１Ａｓ＋Ｃｓ］を計算する。次に、ハードウェアは、式（８）のｐ２を求めるために、先ほど求めたｐ１からＢｐ１、Ａｓ＋Ｂｐ１を順次計算する。そして、ハードウェアは、Ｔｐ２＝−［Ａｓ＋Ｂｐ１］をＦＳすることでｐ２を求める。以上の操作により入力データからパリティビットを求めるハードウェアを実装している。
【非特許文献１】Thomas J. Richardson and Rudiger L. Urbanke, “Efficient Encoding of Low-Density Parity-Check Codes,” IEEE TRANSACTION INFORMATION THEORY, VOL. 47, NO.2, FEBURUARY 2001, pp638-656
【非特許文献２】Dong-U Lee and Wayne Luk, “A Flexible Hardware Encoder for Low-Density Parity-Check Codes,” Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM’04)
【非特許文献３】三瓶政一著、“ディジタルワイヤレス伝送技術”、ピアソンエデュケーション出版
【非特許文献４】松本渉、落合秀樹、“ＯＦＤＭ変調方式の応用”、トリケップス
【非特許文献５】Bertland M. Hochwald and Stephan ten Brink, “Achieving Near-Capacity on a Multiple Antenna Channel, “ IEEE Transaction on Communications, vol. 51, no. 3, March 2003
【非特許文献６】和田山正、“低密度パリティ検査符号とその復号法”、トリケップス
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献１及び非特許文献２に開示された方法においては、漸化式を解いてパリティビットを求めているため、並列処理を行うことが困難であり、その結果、符号化の計算速度を向上させることが困難であるという問題があった。
【００１３】
そこで、本発明は、上記問題を解決するためになされたものであり、符号化速度を向上させる符号化方法、符号化装置、及び送信装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明は、ＱＣ（Quasi Cyclic）擬似下三角行列の形態の検査行列から生成行列を生成するステップと、上記生成した生成行列の部分行列と入力データとを用いて線形演算を行うステップと、上記線形演算により、上記入力データのパリティビットを出力するステップと、を含む。
【００１５】
ＱＣ行列とは、行列を部分行列に分解したとき、それら部分行列が全て単位行列のサイクリックシフトまたは零行列となる行列のことを指す。また、疑似下三角行列とは、行列の右上に位置する部分行列が下三角行列になっているものを指す。ここで下三角とは行列の対角の右上に当たる部分が全て０で、対角および対角から左下に当たる部分には行列要素が存在する行列のことを指す。
【００１６】
上記のように構成すると、生成行列を構成する部分行列と入力データとの線形演算により、パリティビットを出力することが可能となる。
【発明の効果】
【００１７】
本発明によれば、従来技術のように逐次的にパリティを求める必要がなく、生成行列の部分行列と入力データとの線形演算からパリティを求めており、事前に求めたパリティを用いて新たに次のパリティを求めるという操作を行わなくてよい。よって線形演算を並列処理することが可能となり、符号化速度を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
まず、本発明の主な特徴点について説明する。本発明は、ＱＣ疑似下三角検査行列から求めたＬＤＰＣ符号の生成行列を構成する部分行列が、単位行列のサイクリックシフトのＧＦ（２）上の総和になることに着目して符号化を行う点に特徴がある。なお、ＧＦ（２）は、ガロア体を表す。ガロア体というのは、符号で用いる数体系の一種である。サイクリックシフトとは、行列の要素をローテーションすることに相当し、例えば、式（９）に示す行列は、単位行列を右に３サイクリックシフトしたものである。
【数９】
2008086008.tif 000011
【００１９】
例えば、生成行列が、式（１０）に示すような７×７の生成行列Ｇ７の場合、Ｇ７は、Ｇ７＝Ｉ７（１）＋Ｉ７（３）＋Ｉ７（６）のように、単位行列のサイクリックシフトＩ７（１），Ｉ７（３），Ｉ７（６）の和で表される。なお、Ｉ７は、７×７の単位行列を表し、その上付き（）内の数値は、サイクリックシフト量を表す。
【数１０】
2008086008.tif 000012
【００２０】
次に、本発明で用いる検査行列について説明する。
本発明で用いる検査行列は、ＱＣ（Quasi Cyclic）行列であり、かつ疑似下三角行列の行列である（以下、ＱＣ疑似下三角行列ともいう）。このような検査行列の概略例を図１に示す。
【００２１】
図１は、ＱＣ疑似下三角検査行列をＬ×Ｌの部分行列に分割した様子を表している。図１において、点線は分割を表している。また、図１において実斜線部分には要素「１」が存在し、それ以外には要素「０」が存在することを表している。図１の検査行列は、Ｌ×Ｌの部分行列からなるＫ×Ｎ（例えば、Ｋ＝４Ｌ、Ｎ＝８Ｌ）のＱＣ疑似下三角行列である。
【００２２】
検査行列Ｈの一例を式（１１）に示す。式（１１）中、「−」は零行列を表しており、数値は単位行列のサイクリックシフト量を表している。
【数１１】
2008086008.tif 000013
【００２３】
次に、ＱＣ疑似下三角行列の形態の検査行列から生成行列を求める。
ここで、図１の検査行列Ｈ（Ｋ×Ｎ）のうち、情報ビットにかかる部分行列をＨｓ（Ｋ×（Ｎ−Ｋ））、パリティビットにかかる部分行列をＨｐとすると、式（１２）の関係が成り立つ。なお、式（１２）において、ｓは情報ビット系列、ｐはパリティビット系列を表す。
【数１２】
2008086008.tif 000014
【００２４】
式（１２）は、ＧＦ（２）上で成立するので、式（１３−１），（１３−２）のように変形することができる。
【数１３】
2008086008.tif 000015
【００２５】
ここで、式（１３−２）をさらに展開して、式（１４）〜式（１６）を得る。
【数１４】
2008086008.tif 000016
【数１５】
2008086008.tif 000017
【数１６】
2008086008.tif 000018
【００２６】
式（１５）から、パリティビットは情報ビットから一意に求まることがわかる。なお、式（１６）のＧは、パリティビットの生成行列を表す。生成行列Ｇは、（Ｋ×（Ｎ−Ｋ））の行列である。このようにして、ＱＣ擬似下三角検査行列からパリティビットの生成行列を求めることができる。
【００２７】
そして、このようにして求めたパリティビットの生成行列を、Ｌ×Ｌの部分行列に分割する。例えば図１の疑似下三角検査行列から生成行列を求めた場合、生成行列は（Ｋ×（Ｎ−Ｋ））＝（４Ｌ×４Ｌ）となり、４行ブロック×４列ブロックに分割できる。ここでブロックとは、部分行列のことを表している。
【００２８】
このとき、ブロックは、Ｌ×Ｌの単位行列のサイクリックシフトのＧＦ（２）上の総和になっている。このことは後述の（証明例）において証明がなされている。
【００２９】
ここで、例えば、７×７の生成行列のブロックの一例は、式（１０）のようなものである。
【００３０】
生成行列と入力データとを乗算し、パリティビットを得る際に、上記ブロックが単位行列のサイクリックシフトのＧＦ（２）上の和で表せる性質を用いると、その乗算式は、ブロックの第１列目のベクトル（これをリファレンスベクトルと呼ぶこととする）と、そのベクトルを巡回シフトしたものとを用いて表すことが可能となる。
【００３１】
例えば、入力データをｓｔ（入力データ値：ｓ０,・・・,ｓ６、ｔ：時間）とすると、式（１０）のＧ７とｓｔとの乗算式は、式（１７）のように展開することができる。
【数１７】
2008086008.tif 000019
【００３２】
例えば、１ビット幅の入力データの場合、式（１７）から、Ｇ７ｓｔは、Ｇ７のリファレンスベクトル（式（１７）の［０１００１０１］Ｔ：Ｔは転置行列を表す）、そのベクトルの１ビット巡回シフト、論理積および排他的論理和を組み合わせて求めることができることがわかる。複数ビット幅が、例えば２ビット幅の入力データであれば、上記１ビット巡回シフトを２ビット巡回シフトとすればよい。すなわち、ブロックと入力データとの乗算Ｇ７ｓｔは、式（１７）に示すように、リファレンスベクトル、巡回シフト演算、論理積および排他的論理和のみで表すことができる。
【００３３】
（証明例）
次に、本発明で用いたＱＣ擬似下三角検査行列（単に、検査行列ともいう）から生成行列を求めると、そのブロックは、単位行列のサイクリックシフトをＧＦ（２）上で総和をとることの証明を行う。
【００３４】
検査行列Ｈにおいて、パリティビットにかかる部分行列Ｈｐを行方向にＭ、列方向にＭ、（Ｌ×Ｌ）の部分行列が並ぶように分割する（Ｋ＝ＭＬ）。このとき、Ｈｐは、式（１８）で表される。
【数１８】
2008086008.tif 000020
【００３５】
なお、式（１８）の検査行列Ｈｐの数値（要素）は、Ｌ×Ｌの単位行列のサイクリックシフト量を表す。また、「−」は零行列（Ｌ×Ｌ行列）を表す。さらに、ｓ０，ｓ１,…,ｓＭ−１は、Ｈｐの対角上および対角上の位置から一つサイクリックシフトした要素にある。また、式（１８）において、Ｍ行１列の要素には、ｍがある（ｓ０≠ｍ）。
【００３６】
又、式（１８）において、例えば、検査行列Ｈｐ内の数値ａは、Ｌ×Ｌの単位行列を右方向にａシフトし、そして、検査行列Ｈｐからはみ出た要素を左側に挿入した行列を表す。このときの行列式を式（１９）に示す。
【数１９】
2008086008.tif 000021
なお、ａが負数であるときは、左方向にサイクリックシフトを行うことを表す。
【００３７】
まず、Ｈｐの逆行列を求める。ここで、Ｈｐの逆行列をＡとおき、ＡをＨｐと同様、Ｌ×Ｌの部分行列に分割すると、式（２０）のように表すことができる。
【数２０】
2008086008.tif 000022
なお、式（２０）において、ＩＭはＭ×Ｍの単位行列を表す。
【００３８】
ここで、任意の行列と単位行列のサイクリックシフトとを乗算すると、その乗算結果は、任意行列のサイクリックシフトになるという性質がある。そこで、任意の行列をＢ、単位行列のサイクリックシフトをＩ（ｂ）とすると、ＢとＩ（ｂ）との乗算結果は、式（２１）のように表記することができる。
【数２１】
2008086008.tif 000023
【００３９】
次に、式（２１）に示した関係を利用して、式（２０）の左辺をＡのｋ段目の部分行列Ａｋ，１，Ａｋ，２，…，Ａｋ，Ｍに関して展開すると、式（２２）のようになる。
【数２２】
2008086008.tif 000024
【００４０】
なお、以下において、式（２２）のＡｋ，ｘは、Ａｘと表記する。Ａのｋ段目の部分行列の集合を観測しているため、ｋの値によって式（２２）の右辺にくる値が変わる。そこで、以下、ｋ値を場合分けして、逆行列を求める。
【００４１】
まず、ｋ＝１の場合について、逆行列を求める（式（２３−１）〜式（２３−Ｍ）参照）。
【数２３】
2008086008.tif 000025
【００４２】
ここで、式（２４）を式（２３−１）に代入すると、式（２５）のようになる。
【数２４】
2008086008.tif 000026
【数２５】
2008086008.tif 000027
【００４３】
次に、２≦ｋ≦Nの場合について、逆行列を求める（式（２６−１）〜式（２６−Ｍ）参照）。
【数２６】
2008086008.tif 000028
【００４４】
ここで、式（２７）、式（２８）を式（２６−１）、式（２６−ｋ）に代入すると、式（２９−１），（２９−２）のようになる。
【数２７】
2008086008.tif 000029
【数２８】
2008086008.tif 000030
【数２９】
2008086008.tif 000031
【００４５】
ここで、式（２９−１）より、式（３０）を得る。
【数３０】
2008086008.tif 000032
【００４６】
ここで、式（３０）を式（２９−１）に代入すると、式（３１）を得る。
【数３１】
2008086008.tif 000033
【００４７】
次に、Ｎ＜ｋ≦Ｍの場合について、逆行列を求める（式（３２−１）〜式（３２−Ｍ）参照）。
【数３２】
2008086008.tif 000034
【００４８】
ここで、式（３２−１）〜式（３２−（ｋ−１））から、式（３３−１）を得る。また、式（３２−（ｋ＋１））〜式（３２−Ｍ）から、式（３３−２）を得る。
【数３３】
2008086008.tif 000035
【００４９】
ここで、式（３３−１）、式（３３−２）を、式（３２−１）、式（３２−ｋ）にそれぞれ代入すると、式（３４−１）、式（３４−２）を得る。
【数３４】
2008086008.tif 000036
【００５０】
ここで、式（３４−２）から、式（３５）を得る。
【数３５】
2008086008.tif 000037
【００５１】
ここで、式（３５）を式（３４−１）に代入すると、式（３６−１）を得る。また、式（３６−１）を式（３４−２）に代入すると、式（３６−２）を得る。
【数３６】
2008086008.tif 000038
【００５２】
以上から、Ｈｐの逆行列の構成部分行列（Ｌ×Ｌ行列）は、全て単位行列のサイクリックシフトのＧＦ（２）上での足し算で表せることがわかる。
【００５３】
なお、式（１５）の生成行列Ｇは、検査行列Ｈのパリティビットにかかる部分行列Ｈｐの逆行列と、入力情報ビットにかかる部分行列Ｈｓとの乗算で表せる。このとき、Ｈｓを構成部分行列（Ｌ×Ｌ行列）に分割したとき、これらＬ×Ｌ行列が単位行列のサイクリックシフトのＧＦ（２）上の和で表すことができる場合、式（２１）の関係より、Ｇ行列の構成部分行列（Ｌ×Ｌ行列)も単位行列のサイクリックシフトのＧＦ（２）上での足し算で表すことができる。（証明終了）
【００５４】
また、式（１８）に示すＨｐの構成部分行列の列を入れ替えても、上記証明は、同様に成立する。さらに、式（１８）の一列目を行方向に入れ替えても、上記証明は成立する。
【００５５】
ここで、式（１８）の構成部分行列の列を入れ替えた場合の一例を式（３７）、式（３８）に示す。
【数３７】
2008086008.tif 000039
【数３８】
2008086008.tif 000040
【００５６】
以下、上記説明を踏まえ、本発明の実施の形態について図面を参照しながら説明する。
【００５７】
（実施の形態１）
図２は本発明の実施の形態１の符号化装置の構成例を示す図である。本実施の形態は、ＬＤＰＣ符号の生成行列の行ベクトルと、入力データ系列を列ベクトルとしたものとの乗算を行うことでＬＤＰＣ符号語を得る。本実施の形態は上記構成をとることで、一度にＬＤＰＣ符号のパリティを得ることができ、高速な符号化が行えることを特徴とする。
【００５８】
また、本実施の形態では入力データからパリティデータを生成する前に、一度入力データを符号化装置に格納する。これはＬＤＰＣ符号語を生成する際に、入力データの後ろに（または前に）パリティデータを並べて出力するためであり、ＬＤＰＣ符号を生成するタイミングを合わせるためである。
【００５９】
例えば、入力データが全て符号化装置に入力され、パリティデータが生成されるまでには、符号化装置によって決まる生成遅延量が存在する。ここで、入力データとパリティデータとを並べてＬＤＰＣ符号を生成し、タイミングを合わせて出力するために、符号化装置には入力データを格納する入力データ格納部が必要となる。
【００６０】
また、入力データとパリティデータとを並べて出力するには、入力データ格納部から、入力データを読み出すタイミングを生成する必要がある。例えば、符号化装置において、パリティデータが生成され、ＬＤＰＣ符号語系列生成部が、入力データの後ろに（または前に）パリティデータを並べて、ＬＤＰＣ符号系列に変換して出力することが可能となったときに、入力データ格納部から入力データを読み出すタイミングを生成し、入力データ格納部が、前記タイミングを用いて、入力データの読み出しを行う。
【００６１】
以上の操作により、ＬＤＰＣ符号を、まずは入力データ、次にパリティデータといった順序で出力することができる。なお、上記入力データ格納部は、図２における符号化装置１００の入力データ格納部１０７に相当し、上記入力データの読み出しタイミングは、出力制御信号１０８に相当する。これら入力データ格納部１０７および出力制御信号１０８は、以降の実施の形態でも同様の機能を有する。
【００６２】
以下、図面を用いて説明する。図２の符号化装置１００は、入力データカウント部（カウント部ともいう）１０１、出力制御部１０２、各１ビット格納部１０３−１〜１０３−（Ｎ−Ｋ）、各行ベクトル格納部１０４−１〜１０４−Ｋ、ベクトル乗算部１０５−１〜１０５−Ｋ、ＬＤＰＣ符号語系列生成部１０６、入力データ格納部１０７およびパリティ格納部１０９を有する。符号化装置１００において、各部１０１〜１０５をパリティ生成部と呼ぶ。また、パリティ生成部と各部１０６、１０９とを合わせてＬＤＰＣ符号語生成部（符号語生成部）と呼ぶ。
【００６３】
なお、本実施の形態においては、各１ビット格納部１０３−１〜１０３−（Ｎ−Ｋ）を１ビット格納部１０３、各行ベクトル格納部１０４−１〜１０４−Ｋを行ベクトル格納部１０４、各ベクトル乗算部１０５−１〜１０５−Ｋをベクトル乗算部１０５としても、それぞれ表す。
【００６４】
図２の符号化装置１００の各部の機能について概説する。入力データ格納部１０７は、入力データを格納し、出力制御信号１０８に従って格納した入力データを入力データカウント部１０１及び出力制御部１０２に出力する。入力データカウント部１０１は、入力データＤ１０１の符号化装置１００への入力数をカウントする機能を有する。出力制御部１０２は、入力データ数に応じて入力データの出力先を制御する機能を有する。１ビット格納部１０３は、１ビットデータを保持する機能を有する。行ベクトル格納部１０４は、符号化装置１００で生成するＬＤＰＣ符号の生成行列の行ベクトルを保持している。例えば、生成行列の第Ｘ（Ｘは自然数）行のベクトルであれば、そのベクトルは、行ベクトル格納部１０４−Ｘに格納されている。
【００６５】
ベクトル乗算部１０５は、行ベクトルと列ベクトルの乗算を行う機能を有する。具体的には、ベクトル乗算部１０５−Ｘは、第Ｘ行の生成行列の行ベクトルと入力データベクトルとの乗算を行う。パリティ格納部１０９は、符号化装置１００において生成されたパリティ系列を保持する機能を有する。ＬＤＰＣ符号語系列生成部１０６は、入力データ系列と、符号化装置１００で生成したパリティ系列からＬＤＰＣ符号語を生成し、出力する機能を有する。
【００６６】
次に、本実施の形態の符号化について詳述する。図２の符号化装置１００において、入力データ格納部１０７は入力データＤ１００を格納する。入力データ格納部１０７に格納したデータは出力制御信号１０８に従って入力データカウント部１０１及び出力制御部１０２に出力される。出力制御信号１０８は、符号化装置１００において入力データＤ１００からパリティデータを生成し、ＬＤＰＣ符号系列に変換して出力し終わる際に、入力データ格納部１０７に対して格納データ（入力データ格納部１０７内のデータ）を入力データカウント部１０１及び出力制御部１０２に出力するよう制御する信号である。このようにすることで、パリティデータが生成され出力される前に入力データＤ１００がＬＤＰＣ符号語生成部に入力されないよう制御することができる。
【００６７】
入力データカウント部１０１は、入力データＤ１０１の入力数をカウントし、出力する。
【００６８】
出力制御部１０２は、入力データカウント部１０１の出力、すなわちカウント数から入力データＤ１００の出力先を制御する。具体的には、例えば、入力数のカウント数が１の場合には、入力データＤ１００を１ビット格納部１０３−１に出力する。そして、カウント数が２の場合には、出力制御部１０２は、入力データＤ１００を１ビット格納部１０３−２に出力し、以下順々に入力データカウント数が（Ｎ−Ｋ）になるまで、上記の場合と同様に、入力データＤ１００を各１ビット格納部へ出力する。ここで（Ｎ−Ｋ）は、生成行列の列数に相当する。以上のように（Ｎ−Ｋ）ビットの入力データ系列を１ビット格納部に格納することで、入力データ系列を列ベクトルとして扱うことができる。
【００６９】
次に、行ベクトル格納部１０４は、入力データカウント部１０１の出力であるカウント数が（Ｎ−Ｋ）であるときに、保持している行ベクトルを出力する。ベクトル乗算部１０５は、行ベクトル格納部１０４から出力される行ベクトルと、１ビット格納部１０３−１〜１０３−（Ｎ−Ｋ）から出力される入力データ系列とを乗算したものをパリティ格納部１０９に出力する。ここで入力データ系列は（Ｎ−Ｋ）ビットあるため、入力データベクトルとして扱うことができる。このときの出力結果がパリティビットに相当する。
【００７０】
ＬＤＰＣ符号語系列生成部１０６は、１ビット格納部１０３−１〜１０３−（Ｎ−Ｋ）から出力されるデータを、１０３−１出力（１ビット格納部１０３−１からの出力を指す）、１０３−２出力、…、１０３−（Ｎ−Ｋ）出力といった順番に並べて出力する。またその後に、ＬＤＰＣ符号語系列生成部１０６は、ベクトル乗算部１０５−１〜１０５−Ｋから出力されるパリティビットを順番に並べて出力する。例えば、ベクトル乗算部１０５−１からの出力パリティビット、ベクトル乗算部１０５−２からの出力パリティビット、…、ベクトル乗算部１０５−Ｋからの出力パリティビットといった順番に並べて出力する。このように出力することで、ＬＤＰＣ符号語系列生成部１０６からの出力は、データビット、パリティビットの順に正しく並べられることができる。
【００７１】
以上より、本実施の形態ではＬＤＰＣ符号の生成行列の行ベクトルと、入力データ系列を列ベクトルとしたものとの乗算を行う構成をとることで、一度にＬＤＰＣ符号のパリティを得ることができ、高速な符号化が行える。
【００７２】
（実施の形態２）
図３は本発明の実施の形態２の符号化装置２００の構成例を示す図である。なお、実施の形態２において、実施の形態１と同一の部分は実施の形態１と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【００７３】
本実施の形態は、生成行列の列ベクトルと入力データとの乗算を行い、その結果を累積加算することでパリティを得る。本実施の形態では、生成行列と入力データとの乗算を、生成行列の列ベクトルを用いて行う。このため、乗算の際に入力データを保持し、入力データベクトルを生成する必要がない。以上のように、本実施の形態の符号化装置２００は、入力データの格納部が必要ないために回路規模を削減できること、および入力データが全て入力された時点でパリティが得られることから高速な符号化が行える点に特徴がある。
【００７４】
以下、本実施の形態について図面を用いて説明をする。
図３の符号化装置２００は、実施の形態１と異なり、列ベクトル格納部２０１−１〜２０１−（Ｎ−Ｋ）、ベクトル乗算部２０２およびベクトル累積加算部２０３を有する。なお、ベクトル乗算部２０２は、実施の形態１のベクトル乗算部１０５とは機能が異なるため、異なる符号を付した。本実施の形態において、各部１０１、２０１〜２０３をパリティ生成部と呼ぶ。また、パリティ生成部と各部１０６、１０９とを合わせてＬＤＰＣ符号語生成部と呼ぶ。
【００７５】
なお、本実施の形態においては、各列ベクトル格納部２０１−１〜２０１−（Ｎ−Ｋ）を列ベクトル格納部２０１としても表す。
【００７６】
次に、図３の符号化装置の各部の機能について、概説する。列ベクトル格納部２０１−１〜２０１−（Ｎ−Ｋ）は、ＬＤＰＣ符号を生成する生成行列の第１列から第（Ｎ−Ｋ）列までのベクトルを保持している。なお、本実施の形態で用いている生成行列は（Ｎ−Ｋ）列である。
【００７７】
ベクトル乗算部２０２は、入力データ１ビットと列ベクトルとの乗算を行う機能を有する。このとき、ベクトル乗算部２０２は、入力データが「１」なら入力列ベクトルをそのまま出力し、入力データが「０」なら零ベクトルを出力する構成を採ってもよい。ベクトル累積加算部２０３は、入力されるベクトルを累積加算していく機能を有する。
【００７８】
次に、本実施の形態について詳述する。入力データＤ１００は、実施の形態１と同様、入力データ格納部１０７に保持され、出力制御信号１０８に従って出力される。
【００７９】
列ベクトル格納部２０１−１〜２０１−（Ｎ−Ｋ）では、入力データカウント部１０１から入力される入力データカウント数に応じて、格納している生成行列の列ベクトルを出力する。例えば、カウント数が１であれば、第１列ベクトル格納部２０１−１が生成行列の第１列ベクトルを出力し、他の列ベクトル格納部は何も出力しない。カウント数がＸ（Ｘは自然数）であれば、第Ｘ列ベクトル格納部２０１−Ｘが生成行列の第Ｘ列ベクトルを出力し、他の列ベクトル格納部は何も出力しない。このようにカウント数に応じた生成行列の列ベクトルが出力される。
【００８０】
ベクトル乗算部２０２は、入力データ格納部１０７から出力される入力データと、列ベクトル格納部２０１−１〜２０１−（Ｎ−Ｋ）から入力データカウント数に応じて出力される生成行列の列ベクトルとを乗算し、その結果を出力する。列ベクトル格納部２０１から出力される生成行列の列ベクトルは、入力データカウント数に応じて出力されている。このため、入力データと列ベクトルとの乗算は、生成行列において対応する列ベクトルとのものになっている。
【００８１】
ベクトル累積加算部２０３は、入力データカウント部１０１から入力される入力データカウント数が０のときに累積加算されてきたベクトルをリセットする。入力データカウント数が０でないときは、ベクトル乗算部２０２から入力されるベクトルを累積加算する。
【００８２】
例えば、ベクトル乗算部２０２の出力が［０，１，１，０，０，１，０］Ｔ、累積加算されてきたベクトルが［１，１，１，０，０，１，０］Ｔのとき、累積加算ベクトルは［１，０，０，０，０，０，０］Ｔとなる。
【００８３】
また、ベクトル累積加算部２０３では、入力データカウント数が生成行列の列数となったときのベクトル乗算部２０２からの出力を累積加算したベクトルを出力する。このときの出力ベクトルがパリティデータとなっている。
【００８４】
パリティ格納部１０９では、実施の形態１と同様、ベクトル累積加算部２０３で生成されたパリティデータを保持する。また、ＬＤＰＣ符号語系列生成部１０６では、入力データと生成されたパリティデータを正しい順序に並べて出力する。そして、ＬＤＰＣ符号語系列生成部１０６は、入力データとパリティデータを出力し終えると入力データ格納部１０７に対して出力制御信号１０８を出力する。
【００８５】
以上の構成とすることで、入力データと生成行列との乗算の際に入力データを格納して入力データベクトルを生成する必要がなく、入力データの格納部が必要ないために回路規模を削減できる。また、入力データが全て入力された時点でパリティが得られることから高速な符号化が行える。
【００８６】
（実施の形態３）
図４は本発明の実施の形態３の符号化装置３００の構成例を示す図である。なお、実施の形態３において、実施の形態１と同一の部分は実施の形態１と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【００８７】
本実施の形態は、ＱＣ（Quasi Cyclic）擬似下三角検査行列から求まる生成行列と入力データとの乗算からパリティデータを得る。そして、ＬＤＰＣ符号化を行うのに生成行列のブロックのリファレンスベクトルを用いる。生成行列と入力データとの乗算は、生成行列のブロックのリファレンスベクトルを巡回シフトしたものと入力データとの乗算を行い、その結果を累積加算することでパリティデータを得る。以上のように構成することで、符号化装置３００においては、ＬＤＰＣ符号の生成行列を再生するための回路規模を削減できる。また、符号化装置３００は、求めたパリティを用いて新たにパリティを求める必要がなく、符号化のための処理が並列に行えるため高速な符号化が可能になる。
【００８８】
以下、本実施の形態について図面を用いて説明をする。
図４の符号化装置３００は、実施の形態１と異なり、行ブロックリファレンスベクトル格納部（行リファレンス格納部ともいう）３０１−１〜３０１−Ｂ、巡回シフト部３０２−１〜３０２−Ｂ、ベクトル乗算部３０３−１〜３０３−Ｂおよびベクトル累積加算部３０４−１〜３０４−Ｂを有する。本実施の形態においては、各部１０１、３０１〜３０４をパリティ生成部と呼ぶ。また、パリティ生成部と各部１０６、１０９とを合わせてＬＤＰＣ符号語生成部と呼ぶ。
【００８９】
なお、本実施の形態においては、各行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂを行ブロックリファレンスベクトル格納部３０１、巡回シフト部３０２−１〜３０２−Ｂを巡回シフト部３０２、ベクトル乗算部３０３−１〜３０３−Ｂをベクトル乗算部３０３、ベクトル累積加算部３０４−１〜３０４−Ｂをベクトル累積加算部３０４としても、それぞれ表す。
【００９０】
図４の符号化装置３００の各部の機能について概説する。行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂは、ＬＤＰＣ符号化を行うための生成行列の行ブロックのリファレンスベクトルが格納されている。本実施の形態で用いている生成行列はＱＣ（Quasi Cyclic）擬似下三角検査行列から求まる生成行列である。
【００９１】
ここで生成行列の行ブロックとは、生成行列をブロックに分割したときに行方向に並んでいるブロックのことを指す。例えば、生成行列Ｇを式（３９）のように３行ブロック×４列ブロックに分割したとき、生成行列の行ブロックをＧ１１、Ｇ１２、Ｇ１３、Ｇ１４を第１行ブロック、Ｇ２１、Ｇ２２、Ｇ２３、Ｇ２４を第２行ブロック、Ｇ３１、Ｇ３２、Ｇ３３、Ｇ３４を第３行ブロックのように表現することとする。
【数３９】
2008086008.tif 000041
【００９２】
例えば、第１行ブロックリファレンスベクトル格納部３０１−１には、Ｇ１１、Ｇ１２、Ｇ１３、Ｇ１４のそれぞれのリファレンスベクトルが格納されている。なお、本実施の形態における生成行列は、Ｂ行ブロック（Ｂ＝Ｋ／Ｌ）まであるものとする。
【００９３】
巡回シフト部３０２−１〜３０２−Ｂは、入力されるリファレンスベクトルを巡回シフトし、巡回シフト後のリファレンスベクトルをベクトル乗算部３０３−１〜３０３−Ｂに出力する。ベクトル乗算部３０３−１〜３０３−Ｂは、巡回シフト後のリファレンスベクトルと入力データベクトルとを乗算し、乗算後のベクトルをベクトル累積加算部３０４−１〜３０４−Ｂに出力する。ベクトル累積加算部３０４−１〜３０４−Ｂは、入力されるベクトルの累積加算を出力する。
【００９４】
次に、本実施の形態について詳述する。
図４の符号化装置３００においては、入力データＤ１００が入力され、生成されたパリティと入力データとを正しい順序にしてＬＤＰＣ符号語として出力する点では、実施の形態１、２と同様である。本実施の形態において、実施の形態１、２と異なるのは、入力データＤ１００と生成行列との乗算の処理方法である。
【００９５】
本実施の形態では、生成行列をブロックに分割したときに、行ブロックのリファレンスベクトルから生成行列を再生し、入力データとの乗算を行う。
【００９６】
行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂでは、入力データカウント部１０１から入力される入力データカウント数に応じて、出力するリファレンスベクトルを変更する。入力データ数が１のときは、生成行列の１列目ブロックのリファレンスベクトルを出力する。
【００９７】
例えば、式（３９）のＧの場合、第１行ブロックリファレンスベクトル格納部３０１−１は、Ｇ１１のリファレンスベクトルを出力し、第２行ブロックリファレンスベクトル格納部３０１−２は、Ｇ２１のリファレンスベクトルを出力する。ブロックの大きさをＬ×Ｌ行列であるとすると、以降入力データがＬビット入力されるごとに右列のブロックのリファレンスベクトルを出力するよう切り替える。
【００９８】
例えば、式（３９）のＧにおいて、入力データがＬビット入力されると、行ブロックリファレンスベクトル格納部３０１−１は現在出力中のＧ１１ブロックのリファレンスベクトルからＧ１２ブロックのリファレンスベクトルを出力するよう切り替える。以降Ｌビット入力されるごとにブロックを切り替えていき、最右列のブロックのリファレンスベクトルを出力中に入力データがＬビット入力されると最左列のブロックへと切り替える。
【００９９】
例えば、式（３９）のＧにおいて、第１行ブロックリファレンスベクトル格納部３０１−１がＧ１４ブロックのリファレンスベクトルを出力中に入力データがＬビット入力されるとＧ１１ブロックのリファレンスベクトルを出力するよう切り替える。
【０１００】
巡回シフト部３０２−１〜３０２−Ｂでは、入力データカウント部１０１から入力される入力データカウント数に応じて、行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂから入力されるリファレンスベクトルを巡回シフトする。
【０１０１】
例えば、入力データ数が１のときはリファレンスベクトルを０ビット巡回シフトして出力する。以降装置に入力データが１ビット入力されるごとに巡回シフトするビット数を１ずつ増やしていく。Ｌビット入力されると、行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂから出力されるリファレンスベクトルのブロックが切り替えられるので、巡回シフト量を再び０ビットにする。以降同様に装置に入力データが１ビット入力されるごとに巡回シフト量を１ビットずつ増やしていき、リファレンスベクトルのブロックが切り替わるごとに巡回シフト量を０ビットに戻す。このようにすることで、入力データに乗算されるベクトルが生成行列におけるベクトルと同じになる。
【０１０２】
ベクトル累積加算部３０４−１〜３０４−Ｂは、入力データカウント部１０１から入力される入力データカウント数が０のときに累積加算ベクトルをリセットし、以降はベクトル乗算部３０３−１〜３０３−Ｂから入力されるベクトルを累積加算していく。ベクトル累積加算部３０４−１〜３０４−Ｂは、生成行列の列数（Ｎ−Ｋ）に等しいビット数が入力された時点での累積加算ベクトルをパリティデータとしてパリティ格納部１０９に出力する。
【０１０３】
以上のように構成することで、生成行列を再生するための回路規模を削減でき、符号化のための処理が並列に行えるため高速な符号化が可能となる。
【０１０４】
（実施の形態４）
図５は本発明の実施の形態４の符号化装置４００の構成例を示す図である。なお、実施の形態４において、実施の形態１乃至３と同一の部分は実施の形態１乃至３と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１０５】
本実施の形態は、生成行列と入力データとの乗算を行い、パリティデータを生成することでＬＤＰＣ符号化を行う。本実施の形態において生成行列の行ブロックのリファレンスベクトルを用いることで生成行列を巡回シフト部３０２−１〜３０２−Ｂにおいて再生し、入力データとの乗算を行うというアプローチは実施の形態３と同様である。本実施の形態が実施の形態３と異なる点は、生成行列の行ブロックのリファレンスベクトルの生成方法である。
【０１０６】
実施の形態３では、各行ブロックリファレンスベクトル格納部３０１−１〜３０１−Ｂが生成行列の行ブロックのリファレンスベクトルを保持し、それを乗算に用いていた。これに対し、本実施の形態では、生成行列の行ブロックのリファレンスベクトルを生成するのにリファレンスベクトルのインデクスを自装置に保持し、それを用いてリファレンスベクトルの再生を行う。ここでリファレンスベクトルのインデクスとは、リファレンスベクトルにおいて「１」が存在する位置を示す値のことである。
【０１０７】
例えば、リファレンスベクトルが［０，１，０，０，１，０，１］Ｔであるとき、リファレンスベクトルのインデクスは［２，５，７］である。
【０１０８】
リファレンスベクトル長がＬで、リファレンスベクトル中に１が存在する個数をＮｒとすると式（４０）の関係式が成立するとき、本実施の形態の形式でリファレンスベクトルを生成した方が実施の形態３の形式でリファレンスベクトルを生成するより、符号化装置４００における格納部の大きさを小さくすることができる。
【数４０】
2008086008.tif 000042
【０１０９】
以上のように本実施の形態の符号化装置４００では、ＬＤＰＣ符号の生成行列を自装置において再生するための回路規模を削減し、符号化のための処理を並列に行うことで高速な符号化を可能とする。
【０１１０】
以下、本実施の形態について図面を用いて説明をする。
図５の符号化装置４００は、実施の形態１乃至３と異なり、行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂ、ベクトル生成部４０２−１〜４０２−Ｂを有する。本実施の形態においては、各部１０１、４０１、４０２、３０２〜３０４をパリティ生成部と呼ぶ。また、パリティ生成部と各部１０６、１０９とを合わせてＬＤＰＣ符号語生成部と呼ぶ。
【０１１１】
次に、図５の符号化装置４００の各部の機能について概説する。行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂは、ＬＤＰＣ符号化を行うための生成行列の行ブロックのリファレンスベクトルのインデクスが格納されている。本実施の形態で用いる生成行列はＱＣ（Quasi Cyclic）擬似下三角検査行列から求まる生成行列である。
【０１１２】
ベクトル生成部４０２−１〜４０２−Ｂでは、上記行ブロックリファレンスベクトルインデクス格納部より出力されたインデクスを用いてリファレンスベクトルの再生を行う。例えば、リファレンスベクトルのインデクスが［２，５，７］であるとき、ベクトル生成部において再生されるリファレンスベクトルは［０，１，０，０，１，０，１］Ｔとなる。
【０１１３】
以下、本実施の形態について詳述する。
本実施の形態で用いる符号化装置４００において、生成行列と入力データとの乗算処理に関しては実施の形態３と同様である。
【０１１４】
本実施の形態では、入力データが符号化装置４００に入力されると、その入力データは入力データ格納部１０７に保持される。入力データ格納部１０７に保持されたデータはＬＤＰＣ符号語系列生成部１０６から出力された出力制御信号１０８に応じて出力される。入力データカウント部１０１でカウントした入力データ数に応じて、行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂは、行ブロックのリファレンスベクトルのインデクスを出力する。
【０１１５】
例えば、第１行ブロックリファレンスベクトルインデクス格納部４０１−１であれば、生成行列の第１行ブロックのリファレンスベクトルのインデクスを保持している。以降同様に第Ｘ行ブロックリファレンスベクトルインデクス格納部４０１−Ｘであれば、生成行列の第Ｘ行ブロックのリファレンスベクトルのインデクスを保持している。
【０１１６】
行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂにおいて、入力データカウント数に応じてインデクスを出力するとは、例えば、入力データカウント数が１のときは生成行列の最左列のブロックのリファレンスベクトルのインデクスを出力する意である。
【０１１７】
ブロックをＬ×Ｌ行列であるとすると、以降、Ｌビット入力データが装置に入力されるごとに、行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂでは、出力するインデクスのブロックを右列ブロックのものへと切り替える。出力するインデクスのブロックが生成行列の最右列のブロックであるとき、さらに入力データが自装置にＬビット入力されると、行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂでは、出力するリファレンスベクトルのインデクスを再度最左列のブロックのものへと切り替える。
【０１１８】
ベクトル生成部４０２−１〜４０２−Ｂでは、行ブロックリファレンスベクトルインデクス格納部４０１−１〜４０１−Ｂより出力されたインデクスを用いてリファレンスベクトルを生成する。これ以降の入力データと生成行列の乗算に関しては実施の形態３の場合と同様である。
【０１１９】
以上のようにすることで、符号化装置４００の回路規模を削減し、高速な符号化を行うことができる。
【０１２０】
（実施の形態５）
実施の形態５における符号化装置は、ビット幅が１の入力データを入力する実施の形態１乃至４の場合と異なり、２以上のビット幅をもつ入力データを入力する場合のものである。但し、入力データのビット幅は、生成行列のブロックの列数（図１のＬ）の約数とする。なお、本実施の形態で例に挙げる生成行列は、実施の形態３および４と同じ生成行列を用いる。
【０１２１】
図６は本発明の実施の形態５における符号化装置７００の構成例を示す図である。なお、実施の形態５において、実施の形態１乃至４と同一の部分は実施の形態１乃至４と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１２２】
図６の入力データは、ビット幅が２であるため、第１のビットＳ１０１および第２のビットＳ１０２で構成されている。本実施の形態において、第１のビットＳ１０１は、入力データＤ１００の入力ビット系列の１番目のビットに該当し、第２のビットＳ１０２は、入力データＤ１００の入力ビット系列の２番目のビットに該当するものとする。なお、入力データＤ１００のビット数は、３以上として適用してもよい。
【０１２３】
本実施の形態では、図６の符号化装置７００における各部７０１−１〜７０１−Ｂ、７０２−１〜７０２−Ｂ、７０３Ａ−１〜７０３Ａ−Ｂ、７０３Ｂ−１〜７０３Ｂ−Ｂ、７０４Ａ−１〜７０４Ａ−Ｂ、７０４Ｂ−１〜７０４Ｂ−Ｂ、７０５−１〜７０５−Ｂが、入力データとブロックとの乗算処理部に相当する。
【０１２４】
なお、本実施の形態においては、各ベクトル生成部７０２−１〜７０２−Ｂをベクトル生成部７０２、巡回シフト部７０３Ａ−１〜７０３Ｂ−１を巡回シフト部７０３、ベクトル乗算部７０４Ａ−１〜７０４Ｂ−Ｂをベクトル乗算部７０４、ベクトル累積加算部７０５−１〜７０５−Ｂをベクトル累積加算部７０５としても、それぞれ表す。
【０１２５】
以下、本発明の実施の形態について図面を用いて説明する。
本実施の形態において、入力データを２ビット以上にすると、リファレンスベクトルは、個々のビットに対して異なるものとなる。例えば、本実施の形態の入力データＤ１００のビット系列をｓｔ＝［ｓ０（ｔ）  ｓ１（ｔ）］Ｔ、生成行列のブロックをＧＢとすると、ｓｔとＧＢとの乗算式は、式（４１）のようになる。
【数４１】
2008086008.tif 000043
【０１２６】
式（４１）において、ｔ＝０からｔ＝１に変化すると、ｓ０（１）と乗算するベクトルは、ｓ０（０）と乗算されるリファレンスベクトルを２ビット巡回シフトしたものになることがわかる。
【０１２７】
また、ｓ１（１）に乗算されるベクトルは、ｓ１（０）に乗算されるベクトルを２ビット巡回シフトしたものになることがわかる。さらに、式（４１）から、ｔ＝０におけるｓ１（０）と乗算されるベクトルはｓ０（０）と乗算されるリファレンスベクトルを１ビット巡回シフトすることで生成できることがわかる。
【０１２８】
そこで、本実施の形態においては、第１のビットＳ１０１に対する生成行列のブロックのリファレンスベクトル（ブロックの最左列ベクトル）をあらかじめ符号化装置に格納しておく。第２のビットＳ１０２に対するリファレンスベクトルはＳ１０１に対するリファレンスベクトルを１ビット巡回シフトして生成する。例えば上述のｔ＝０においてｓ０（０）と乗算されるリファレンスベクトルを符号化装置にあらかじめ格納しておき、ｓ１（０）に対するリファレンスベクトルはｓ０（０）のリファレンスベクトルを１ビット巡回シフトして生成する。
【０１２９】
そして、リファレンスベクトルを生成した以降（例えば、ｔ＝１以降）は生成したリファレンスベクトルを順次２ビット巡回シフトしたものと入力データとの乗算を行い、その出力ベクトルの累積和をとることで、生成行列と入力データとの乗算を行う。生成行列のブロックが切り替わったときは、上述ｔ＝０の場合と同様に、切り替わったブロックに対応するリファレンスベクトルを生成し、順次入力データとの乗算を行っていく。入力データと生成行列の最右列ベクトルとの乗算を行った時点でのベクトル累積和をパリティビットとし、入力データとパリティビットからＬＤＰＣ符号系列を生成することで、符号化を実現する。
【０１３０】
図６の符号化装置７００は、実施の形態１と異なり行ブロックリファレンスベクトル情報格納部７０１−１〜７０１−Ｂ、ベクトル生成部７０２−１〜７０２−Ｂ、２ビット巡回シフト部７０３Ａ−１〜７０３Ａ−Ｂ、７０３Ｂ−１〜７０３Ｂ−Ｂ、ベクトル乗算部７０４Ａ−１〜７０４Ａ−Ｂ、７０４Ｂ−１〜７０４Ｂ−Ｂおよびベクトル累積加算部７０５−１〜７０５−Ｂを有する。
【０１３１】
なお、本実施の形態においては、各部１０１、７０１−１〜７０１−Ｂ、７０２−１〜７０２−Ｂ、７０３Ａ−１〜７０３Ａ−Ｂ、７０３Ｂ−１〜７０３Ｂ−Ｂ、７０４Ａ−１〜７０４Ａ−Ｂ、７０４Ｂ−１〜７０４Ｂ−Ｂ、７０５−１〜７０５−Ｂをパリティ生成部と呼ぶ。また、パリティ生成部に１０９、１０６を組み合わせたものをＬＤＰＣ符号語生成部と呼ぶ。
【０１３２】
入力データカウント部１０１は、第１のビットＳ１０１および第２のビットＳ１０２の入力数を合わせたものをカウントし出力する。
【０１３３】
行ブロックリファレンスベクトル情報格納部７０１−１〜７０１−Ｂには、生成行列の行ブロックのリファレンスベクトル情報が格納されている。例えば、実施の形態３のようにリファレンスベクトルそのものが格納されていてもよいし、実施の形態４のようにインデクス情報が格納されていてもよい。行ブロックリファレンスベクトル情報格納部７０１−１〜７０１−Ｂにおいては、実施の形態３および４と同様、入力カウント数に応じてリファレンスベクトル情報を出力する。
【０１３４】
ベクトル生成部７０２は、行ブロックリファレンスベクトル情報格納部７０１から得たリファレンスベクトル情報により、ブロックのリファレンスベクトルを生成する。この際、リファレンスベクトル情報がリファレンスベクトルそのものの場合は、ベクトル生成部７０２は、そのリファレンスベクトルを出力する。他方、リファレンスベクトル情報がインデクス情報であれば、ベクトル生成部７０２は、インデクスに対応する部分に１の要素が存在するベクトルを生成すればよい。ベクトル生成部７０２は、上記リファレンスベクトルを、全て２ビット巡回シフト部のＡ（図６の符号Ａ参照）の方（Ａ系統ともいう）に出力する。
【０１３５】
ベクトル生成部７０２は、２ビット巡回シフト部のＢの方（Ｂ系統ともいう）へは、Ａ系統のビット巡回シフト部に出力するベクトルを１ビット巡回シフトしたものを出力する。
【０１３６】
２ビット巡回シフト部７０３では、入力データカウント部１０１から入力される入力データカウント数に応じて、ベクトル生成部７０２−１〜７０２−Ｂから入力されるリファレンスベクトルを巡回シフトする。
【０１３７】
例えば、入力データ数が１のときはリファレンスベクトルを０ビット巡回シフトして出力する。以降、装置に入力データが２ビット入力されるごとに巡回シフトするビット数を２ずつ増やしていく。Ｌビット入力されると、行ブロックリファレンスベクトル格納部から出力されるリファレンスベクトルのブロックが切り替えられているので、巡回シフト量を再び０ビットにする。以降、同様に装置に入力データが２ビット入力されるごとに巡回シフト量を２ビットずつ増やしていき、リファレンスベクトルのブロックが切り替わるごとに巡回シフト量を０ビットに戻す。このようにすることで、入力データに乗算されるベクトルが生成行列におけるベクトルと同じになる。
【０１３８】
なお、２ビット巡回シフトするのは、第１のビットＳ１０１と乗算を行うベクトルはリファレンスベクトルを順次２ビット巡回シフトしたものに相当するからである。例えば、式（２０）において、ｔ＝０からｔ＝１に変化すると、ｓ０（１）と乗算するベクトルは、ｓ０（０）に対するリファレンスベクトルを２ビット巡回シフトしたものに相当していることがわかる。
【０１３９】
ベクトル乗算部７０４Ａ−１〜７０４Ａ−Ｂ、７０４Ｂ−１〜７０４Ｂ−Ｂは、巡回シフト部７０３の出力値と、第１のビットＳ１０１、第２のビットＳ１０２とのベクトル乗算を演算して、乗算結果をベクトル累積加算部７０５−１〜７０５−Ｂに出力する。
【０１４０】
ベクトル累積加算部７０５−１〜７０５−Ｂは、入力データカウント部１０１の出力に応じてベクトル累積加算を制御する。入力データカウント数が０のときは、ベクトル累積加算部７０５は累積加算ベクトルをリセットする。入力データカウント数が０でないときは、ベクトル乗算部７０４からの出力を累積加算していく。
【０１４１】
ベクトル累積加算部７０５は、入力データカウント数より、入力データが全て入力され、すなわち自装置に（Ｎ−Ｋ）ビット入力された時点でのベクトル累積加算値をパリティとして出力する。
【０１４２】
以降、実施の形態３および４と同様、ＬＤＰＣ符号語系列生成部１０６は、入力データとパリティデータとを並べ替え、ＬＤＰＣ符号語を生成して出力する。
【０１４３】
このように、実施の形態５における符号化装置７００は、複数のビット数をもつ入力データに対しても、並列処理を行ってパリティビットを生成し、ＬＤＰＣ符号語を生成することができる。
【０１４４】
（実施の形態６）
一般には生成行列の列数（Ｎ−Ｋ）未満のビット列が入力データとして入力されると、生成行列の列数（Ｎ−Ｋ）に一致するように入力データのビット列の末尾に「０」を挿入するステップと挿入した「０」と生成行列との線形演算を行うステップとが必要となる。
【０１４５】
実施の形態６における符号化装置８００は、生成行列の列数（Ｎ−Ｋ）未満のビット列をもつ入力データが入力される場合に、入力データが全て自装置に入力された時点での生成行列との線形演算結果をパリティとして出力することで、上記「０」を挿入するステップと挿入した「０」と生成行列との線形演算を行うステップを省くことができることを特徴とする。以下、本実施の形態について図面を用いて説明する。
【０１４６】
図７は本発明の実施の形態６における符号化装置８００の構成例を示す図である。なお、実施の形態６において、実施の形態１乃至３と同一の部分は実施の形態１乃至３と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１４７】
図７の符号化装置８００は、実施の形態１乃至３とは異なり、入力データカウント部８０２、行ブロックリファレンスベクトル生成部８０１−１〜８０１−Ｂおよびベクトル累積加算部８０３−１〜８０３−Ｂを有する。入力データカウント部８０２は、符号化装置８００への入力データ数をカウントするとともに、全ての入力データが入力された時点で、そのことを示した制御信号をベクトル累積加算部８０３−１〜８０３−Ｂに出力する。
【０１４８】
行ブロックリファレンスベクトル生成部８０１は、図６の符号化装置７００の行ブロックリファレンスベクトル情報格納部７０１およびベクトル生成部７０２を合わせた機能を有しており、入力カウント数に応じてブロックのリファレンスベクトルを出力する。
【０１４９】
ベクトル累積加算部８０３は、入力データカウント部８０２の出力に応じて累積加算演算の処理を行う。ベクトル累積加算部８０３は、符号化装置８００への入力データ数が０のときは、累積加算ベクトルをリセットする。他方、ベクトル累積加算部８０３は、以降入力データ数が０でないときは、ベクトル乗算部３０３からの出力ベクトルを累積加算していく。このとき、ベクトル累積加算部８０３は、入力データカウント部８０２から、符号化装置８００への入力データが全て入力されたことを示す制御信号を得ると、累積加算を打ち切り、その時点での累積加算ベクトルをパリティデータとして出力する。以降のＬＤＰＣ符号語生成部の処理は実施の形態３および４と同様である。
【０１５０】
本実施の形態においては、生成行列の列数（Ｎ−Ｋ）に満たない入力データＤ１００の末尾に「０」を挿入して、一連の処理を行う必要がない。よって、パリティビットを出力するまでの遅延時間を少なくことができる。
【０１５１】
（実施の形態７）
実施の形態７における符号化装置は、複数の異なるモード（符号長、符号化率）でパリティ生成部を共用することに関する。ここでいうパリティ生成部とは、実施の形態１乃至６で述べたパリティ生成部のことである。
【０１５２】
例えば、２つの異なるモード（第１モード、第２モード）でパリティビットを生成する場合、生成行列のブロック数およびブロック長は、それぞれのモードに応じて異なることになる。ここで、ブロック長とはブロックの大きさを表しており、例えば２７×２７というように行列の大きさで定義できる。
【０１５３】
具体的には、例えば、第１モードとして符号長を６４８、符号化率を１／２、ブロック長を２７×２７のものを用いると、第１モードに対応する生成行列（式（１０）の検査行列から求めた生成行列）は、１２行ブロック×１２列ブロックで構成される。一方、第２モードとして符号長を１９４４、符号化率を３／４、ブロック長を８１×８１のものを用いると、第２モードに対応する生成行列は、６行ブロック×１８列ブロックで構成される。
【０１５４】
この場合、第１モードと第２モードとではブロック長が異なるためにパリティ生成部における巡回シフト部、ベクトル乗算部およびベクトル累積加算部では、各部の共用化を図ることはできないが、例えば第３モードとして、符号長６４８、符号化率３／４、ブロック長２７×２７のものを用いると、生成行列は６行ブロック×１８列ブロックで構成される。このとき第１モードと第３モードとでは、パリティ生成部における巡回シフト部、ベクトル乗算部およびベクトル累積加算部の共用化を図ることができる。ゆえに、本実施の形態は２つ以上の異なるモードが存在する場合に、各モードの生成行列のブロック長が等しいときには符号化装置の共用化を図れることを特徴とする。但し、本実施の形態では各モードにおける行ブロック数のうち、最大の行ブロック数を有するモードによって符号化装置の規模は支配される。例えば、第１モードは１２行ブロック×１２列ブロックで、第３モードは６行ブロック×１８列ブロックであるため、符号化装置としては、１２行ブロック分の巡回シフト部、ベクトル乗算部およびベクトル累積加算部が必要となる。
【０１５５】
図８は本発明の実施の形態７における符号化装置９００の構成例を示す図である。本実施の形態では同時に符号化を試みるモード数がＭの場合を例に説明する。なお、実施の形態７において、実施の形態１乃至６と同一の部分はそれらと同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１５６】
図８において、符号化装置９００は、実施の形態１乃至６と異なり、各モード行ブロックリファレンスベクトル生成部（モード行リファレンス生成部）９０１−１〜９０１−Ｍを有する。各モードブロックリファレンスベクトル生成部は、それぞれのモードに対応する生成行列の行ブロックのリファレンスベクトルを保持している。
【０１５７】
なお、本実施の形態においては、各モード行ブロックリファレンスベクトル生成部９０１−１〜９０１−Ｍをモード行ブロックリファレンスベクトル生成部９０１としても表す。
【０１５８】
各モード行ブロックリファレンスベクトル生成部９０１は、対応するモード情報Ｍ９００が入力された場合に、自身の保持するリファレンスベクトルを出力する。リファレンスベクトルの生成法に関しては実施の形態６と同様である。
【０１５９】
以降、巡回シフト部３０２、ベクトル乗算部３０３およびベクトル累積加算部８０３では、各モード行ブロックリファレンスベクトル生成部９０１−１〜９０１−Ｍから出力されている、符号化を行うモードのリファレンスベクトルを用いてパリティデータを生成する。パリティデータの生成に関しては実施の形態３乃至６と同様である。
【０１６０】
また、生成されたパリティデータはパリティ格納部１０９に保持され、ＬＤＰＣ符号語系列生成部１０６によって生成されたパリティと入力データとの並べ替えが行われ、符号化処理される。
【０１６１】
このように構成することにより、本実施の形態の符号化装置９００は、複数のモードで巡回シフト部、ベクトル乗算部およびベクトル累積加算部を共用することができる。以上より、複数モードが存在する通信システムにおける符号化装置の回路規模を削減することができる。
【０１６２】
（実施の形態８）
本実施の形態は、実施の形態１乃至７の符号化装置を用いて無線送信装置（無線装置）を構成する場合に関する。
【０１６３】
図９は本発明の実施の形態８の無線送信装置５００の構成例を示す図である。なお、実施の形態８において、実施の形態１と同一の部分は実施の形態１と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１６４】
本実施の形態は、実施の形態１乃至７で述べた符号化装置を用いて無線送信装置を構成するものである。つまり、無線送信装置は、パリティ生成部に入力データを入力する前に、入力データ格納部に入力データを保持する構成を利用する。さらに、無線送信装置は、パリティ生成部からの出力パリティをパリティ格納部で保持する構成を利用する。本実施の形態では、入力データ格納部およびパリティ格納部からの読み出しパターンを制御することで、無線送信におけるインタリーブ処理を行えることを特徴とする。
【０１６５】
ここでインタリーブ処理について説明する。インタリーブとは、無線信号が無線伝送路において受けるフェージング変動によって無線信号が歪み、受信装置において生じる無線信号のバースト誤り（情報データの連続した誤りの事を指す）をランダム化する技術のことである。
【０１６６】
インタリーブ処理を行うには、例えば図１０Ａに示すように、符号化後のビット系列（本実施の形態ではＬＤＰＣ符号化後のビット系列）を３×４の行列に格納する。その際の行列への書き込みでは、図１０Ａに示す書き込み（write）方向に順次、符号化後のビット系列を書き込んでいく。次に、読み出すときは、読み出し（read）方向に読み出していく。このようにすると、フェージングによって生じる誤りを受信装置でランダム化できる。
【０１６７】
例えば図１０Ｂに示すように、インタリーブ処理後のビット系列がフェージング伝送路を通ることで生じる歪みによって、受信装置において、ビット系列の一部（斜線部分）がバースト誤りを起こしていると仮定する。すると、受信した符号語系列は、送信装置と同様に、３×４の行列に書き込まれ、適宜読み出される。なお、書き込み方向、読み出し方向は、送信装置とは異なる。
【０１６８】
図１０Ｂにおいても、図１０Ａと同様に、write方向に書き込み、read方向に読み出しが行われると、不図示の受信装置において、符号化後ビット系列を正しい順序に並べなおすことができる。このとき、受信装置においては、バースト誤りを受けている部分が、ランダム化されていることがわかる。
【０１６９】
以上のように、インタリーブ処理を行うことで受信装置におけるバースト誤りをランダム化することができる。なお、インタリーブ技術のさらなる詳細については、例えば、非特許文献３などの参考文献に記載されている。
【０１７０】
以下、本実施の形態について図面を用いて説明をする。
図９の無線送信装置５００は、入力データ格納部１０７、パリティ生成部５０１、読み出し制御部５０２、パリティ格納部１０９、無線フレーム構成部５０３、変調部５０４、無線信号生成部５０５および無線信号送信部５０６を有する。
【０１７１】
次に、図９の無線送信装置５００の各部の機能について概説する。入力データ格納部１０７は、実施の形態１と同様、入力データの保持機能を有している。しかし、本実施の形態の入力データ格納部１０７は、さらに、読み出し制御部５０２からの制御信号に応じて読み出しを行う。
【０１７２】
パリティ生成部５０１では、実施の形態１乃至７のパリティ生成部と同様の機能を有している。すなわち、パリティ生成部５０１は、入力データＤ１００を入力すると、それに対応するパリティデータを出力する。
【０１７３】
パリティ格納部１０９は、実施の形態１と同様、パリティデータを保持する機能を有している。しかし、本実施の形態のパリティ格納部１０９は、さらに、読み出し制御部５０２からの制御信号に応じて読み出しを行う。
【０１７４】
読み出し制御部５０２では、入力データ格納部１０７に保持されている入力データを読み出す際に、インタリーブパターンに従って読み出しを行うよう制御信号を出力する。入力データの読み出しが終了すると、読み出し制御部５０２は、次はパリティデータの読み出しをインタリーブパターンに従って行うよう制御信号を出力する。
【０１７５】
無線フレーム構成部５０３では、無線フレームを構成するのに必要となるヘッダ情報などを符号化後ビット系列に対して付与する。変調部５０４では、無線フレームを、通信システムで用いる公知の変調方式によって変調する。
【０１７６】
無線信号生成部５０５では、変調された信号を通信システムで用いる無線伝送周波数帯へとアップコンバートする。無線信号送信部５０６では、上記アップコンバートされた信号を送信する。
【０１７７】
以下、本実施の形態について詳述する。
図９の無線送信装置５００において、入力データ格納部１０７は、入力データをＤ１００保持する。次に、読み出し制御部５０２は、入力データ格納部１０７に保持されている入力データを、無線送信装置５００に入力された順に、データ５０７として、パリティ生成部５０１側へ読み出すよう制御する。
【０１７８】
パリティ生成部５０１は、入力データ格納部１０７から読み出されたデータ５０７からパリティを生成し、パリティデータをパリティ格納部１０９へ出力する。
【０１７９】
パリティ生成部５０１は、入力データ系列に対応するパリティを生成し終えると、その旨を示す制御信号を読み出し制御部５０２へ出力する。このとき、読み出し制御部５０２は、入力データ格納部１０７から、無線送信装置５００で用いるインタリーブパターンに従って読み出しを行うよう制御信号を出力する。
【０１８０】
具体的には、読み出し制御部５０２では、図１１の読み出しパターンに示すように、入力データ格納部１０７に格納されているデータおよびパリティ格納部１０９に格納されているパリティデータをwrite方向に書き込んだテーブルを仮想的に用意する。
【０１８１】
このテーブルにおいて、読み出し制御部５０２は、read方向に読み出しを行うように制御信号を、入力データ格納部１０７およびパリティ格納部１０９に対して出力する。
【０１８２】
入力データ格納部１０７およびパリティ格納部１０９では、上記制御信号に応じて読み出しを行う。以上により、インタリーブ処理を行うことができる。
【０１８３】
無線フレーム構成部５０３は、入力データ格納部１０７およびパリティ格納部１０９から出力されたデータに対して、無線フレームに必要なヘッダ情報などを付与して出力する。
【０１８４】
変調部５０４は、無線フレーム構成部５０３への出力に対して、通信システムにおける公知の変調方式を用いて変調し出力する。
【０１８５】
無線信号生成部５０５は、上記変調された信号を、通信システムにおける無線周波数帯へとアップコンバートする。無線信号送信部５０６では、上記アップコンバートされた信号を送信する。以上の構成とすることで、無線送信におけるインタリーブ処理を行うことができる。
【０１８６】
（実施の形態９）
本実施の形態は、実施の形態１乃至７の符号化装置を用いた無線送信装置および無線受信装置（無線装置）を構成する場合に関する。
【０１８７】
図１２は本発明の実施の形態９の無線送信装置６００および無線受信装置６００Ａの構成例を示す図である。なお、実施の形態９において、実施の形態１乃至８と同一の部分は実施の形態１乃至８と同一の符号（用語を含む）を付し、重複説明を適宜省略する。
【０１８８】
本実施の形態の無線送信装置６００は、実施の形態１乃至７の符号化装置を用いて構成するものである。具体的には、無線送信装置６００は、生成した符号語の符号化率を変更するのにパンクチャ処理を行う。さらに、無線送信装置６００は、公知の通信システムに適応変調を用いる。
【０１８９】
ここでパンクチャ処理とは、符号語の出力を間引くことによって符号化率を変更する処理のことである。これは、図１３に例示している。例えば、図１３（ａ）に示すように、ＬＤＰＣ符号の符号化率が２／３の場合、符号語出力制御部６０１は、４ビットにつき１ビット間引いて、符号化率が２／３の符号語を生成して出力する。
【０１９０】
また、図１３（ｂ）に示すように、符号化率が３／４の符号語の場合は、３ビットにつき１ビット間引いて生成する。
【０１９１】
さらに、図１３（ｃ）に示すように、符号化率が５／６の符号語の場合は、５ビットにつき２ビット間引いて生成する。
【０１９２】
また、適応変調とは、受信装置における受信信号の情報信号対雑音電力比（ＳＮＲ：Signal to Noise Ratio）に応じて、送信装置で符号化率を変更する方式のことである。符号化率が一定でない通信システムの場合、一般的には、符号語を生成するのに符号化率に対応した生成行列が必要となる。しかし、本実施の形態の無線受信装置６００は、出力符号語をパンクチャ処理することで異なる符号化率の符号語を生成する点に特徴がある。
【０１９３】
以下、本実施の形態について図面を用いて説明をする。
図１２の無線送信装置６００は、実施の形態８と異なり、符号語出力制御部６０１を有する。そして、無線受信装置６００Ａは、無線送信装置６００に、無線受信部６０４、無線検波部６０２および信号電力推定部６０３をさらに有する。
【０１９４】
符号語出力制御部６０１は、ある符号化率（例えば１／２）で生成されたＬＤＰＣ符号語から生成したい符号化率となるよう送信データを選択して出力する。この処理は、上記パンクチャ処理に相当する。
【０１９５】
また、パンクチャ処理の一例として、１／２の符号化率の符号語から他の符号化率の符号語を生成する場合を挙げている。しかし、実際には、元となる符号語の符号化率は特に指定がない。その他の無線送信装置６００の構成は、実施の形態８の無線送信装置５００と同様である。
【０１９６】
次に、無線受信装置６００Ａの各部の機能について説明する。
無線受信装置６００Ａは、無線受信部６０４によって受信した無線信号を無線信号検波部６０２に出力する。無線信号検波部６０２では、無線受信部６０４からの受信信号（無線信号）を検波する。検波の方法は、本実施の形態では特定しないが、例えば同期検波などを用いて無線信号の検波を行う方法がある。
【０１９７】
検波後の出力は、信号電力推定部６０３において情報信号の電力および雑音電力を推定する。それにより、ＳＮＲの推定値を求め、次に送信される無線フレームの符号化率を受信装置６００Ａ（信号電力推定部６０３）において決定する。そして無線受信装置６００Ａの信号推定部６０３は、その符号化率を送信装置６００の符号語出力制御部６０１にフィードバックする。
【０１９８】
そうすると、無線送信装置６００では受信装置６００Ａからフィードバックされた符号化率となるように、符号語出力制御部６０１においてパンクチャ処理を行い、生成したい符号化率の符号語を生成する。
【０１９９】
以上のように構成することで、適応変調を用いる通信システムにおいても、無線送信装置６００に生成行列を１つのみ保持しておくことで多様な符号化率の符号語を生成することができる。
【０２００】
（実施の形態１０）
図１４に、本発明の実施の形態１０に係る無線送信装置の構成例を示す。図１４の無線送信装置１０００は、符号化及びインタリーブ部１０１０、変調部１０２０、及び無線部１０３０を備えて構成される。
【０２０１】
図１４の無線送信装置１０００において、情報ビットは、符号化及びインタリーブ部１０１０に入力される。符号化及びインタリーブ部１０１０は、情報ビットに対し、ＬＤＰＣ符号化及びインタリーブを施す。なお、ＬＤＰＣ符号化及びインタリーブの詳細については後述する。符号化及びインタリーブ部１０１０は、ＬＤＰＣ符号化及びインタリーブ後の符号ビットを変調部１０２０に出力する。
【０２０２】
変調部１０２０は、符号ビットを変調する。ここでの変調とは、例えばＱＰＳＫ（Quadrature Phase Shift Keying）変調方式や、１６ＱＡＭ（Quadrature Amplitude Modulation）変調方式などを表している。変調部１０２０は、変調後の変調信号を無線部１０３０に出力する。
【０２０３】
無線部１０３０は、入力された変調信号を用いて無線信号を生成する。ここでの無線信号とは、例えばＯＦＤＭ（Orthogonal Frequency Division Multiplexing）変調信号、あるいはシングルキャリア変調信号を無線周波数帯にアップコンバートした信号を表している。無線部１０３０が、入力された変調信号からＯＦＤＭ変調信号を生成するには、例えば、非特許文献４に示される方法を用いればよい。無線部１０３０は、生成した無線信号を無線伝搬路へ出力する。
【０２０４】
次に、符号化及びインタリーブ部１０１０におけるＬＤＰＣ符号化及びインタリーブについて数式を用いて説明する。インタリーブとは、実施の形態８に示したように、符号ビットの順序を入れ換える操作に相当している。このときのインタリーブパターンをΠとすると、情報ビットのＬＤＰＣ符号化、ＬＤＰＣ符号化後の符号ビットのインタリーブという一連の操作は、式（４２）により表すことができる。なお、式（４２）において、ｘはインタリーブ後の符号ビットを示し、ＧｌはＬＤＰＣ符号語を生成する生成行列を示し、ｓは入力情報ビットを示す。
【数４２】
2008086008.tif 000044
【０２０５】
式（４２）におけるＧｌは、ＬＤＰＣ符号語を生成する生成行列であり、単位行列Ｉとパリティ生成行列Ｇとにより構成される。Ｇｌを式（４３）に示す。ここで、Ｇは、式（１６）に示したパリティビットを生成するパリティ生成行列である。
【数４３】
2008086008.tif 000045
【０２０６】
式（４３）より、式（４２）におけるＧｌｓは、Ｇｌｓ＝［ＩＴ  ＧＴ］Ｔｓ＝［ｓＴ  ｐＴ］Ｔとなり、ＬＤＰＣ符号語を得ることができる。ＬＤＰＣ符号語は、インタリーブパターンΠに従ってインタリーブされる。具体的には、ＬＤＰＣ符号に対してインタリーブパターンΠを乗算することにより、インタリーブを実現することができる。ＬＤＰＣ符号語長が３の場合の例を、式（４４）に示す。
【数４４】
2008086008.tif 000046
【０２０７】
式（４４）において［ｃ０  ｃ１  ｃ２］ＴはＬＤＰＣ符号語を表しており、インタリーブパターンΠを乗算することによりＬＤＰＣ符号語がインタリーブされ、［ｃ２  ｃ０  ｃ１］Ｔが得られる。なお、インタリーブは、符号ビットの順番を入れ換える操作であるので、インタリーブパターンにおいて、一つの行には１つの“１”の要素しかないパターンとすることに注意する。
【０２０８】
このように、インタリーブは、ＬＤＰＣ符号語にインタリーブパターンを乗算することにより実現することができる。ここで、インタリーブパターンが単位行列のサイクリックシフト又は零行列により構成されているとする。即ち、インタリーブパターンの部分行列が単位行列のサイクリックシフト又は零行列であるとする。なお、このときのインタリーブパターンの部分行列の大きさとパリティ生成行列の部分行列の大きさは等しいものとする。このとき、実施例に示す式（２４）の関係から、インタリーブパターンとＬＤＰＣ符号語の生成行列との乗算により得られる行列（以下「インタリーブド行列」ともいう）もまた、単位行列のサイクリックシフトの和又は零行列により構成された形となる。よって式（４５）に示すように、インタリーブパターンとＬＤＰＣ符号語の生成行列との乗算により得られる行列を新たにＧＸとすると、ＬＤＰＣ符号化及びＬＤＰＣ符号語のインタリーブは、入力情報ビットｓとＧＸとの乗算のみによって表すことができる。
【数４５】
2008086008.tif 000047
【０２０９】
なお、式（４５）では、インタリーブパターンΠを生成行列Ｉと大きさが同じ行列Π１１と、生成行列Ｇと大きさが同じ行列Π２１と、行数が単位行列Ｉと同じ行数で列数が生成行列Ｇの行数と同じ行列Π１２と、行数及び列数がともに生成行列Ｇと同じ行数の行列Π２２とに分割して表記しており、Π１１〜Π２２は、サイクリックシフトである部分行列を含んで構成される（なお、これらΠ１１〜Π２２が必ずしも部分行列を示すわけではない）。
【０２１０】
このとき、本実施の形態における符号化及びインタリーブ部１０１０は、実施の形態１乃至７で用いた符号化装置と同様の構成をとることで実現できる。即ち、実施の形態１乃至７で用いた符号化装置と同様の構成をとるのみで、ＬＤＰＣ符号化及びＬＤＰＣ符号化後の符号ビットのインタリーブを実現することができ、無線送信装置の回路規模を削減することができる。
【０２１１】
なお、以上の説明では、一つのＬＤＰＣ符号語内でインタリーブが施される場合について説明した。したがって、ＬＤＰＣ符号の復号による誤り訂正の効果は、一つのＬＤＰＣ符号語に閉じられている。例えば、ＬＤＰＣ符号語の系列として、図１５Ａに示すように、符号語＃１、符号語＃２というように並んでいる場合を考える。このとき、符号語＃１の復号によって得られる誤り訂正の効果は、符号語＃１に対してのみ得られ、同様に符号語＃２の復号によって得られる誤り訂正の効果は、符号語＃２に対してのみ得られる。
【０２１２】
以下では、複数のＬＤＰＣ符号語に対してインタリーブを行う場合について説明する。例えば、符号語＃１と符号語＃２に対してインタリーブを行い、図１５Ｂに示すように符号語＃１と符号語＃２の系列を混在させる場合を考える。図１５Ｂにおけるブロックの大きさは、ＬＤＰＣ符号化及びインタリーブを行う行列ＧＸにおいて、単位行列のサイクリックシフトの和となる部分行列の大きさに等しいものとする。即ち、入力情報ビットｓと部分行列との乗算によって得られる符号ビットの単位を１ブロックとする。
【０２１３】
このとき、無線送信装置１０００によって送信された無線信号が無線伝搬路において、図１５Ｂに示すように、符号語＃１のブロック＃２と、符号語＃２のブロック＃６に相当する部分の無線信号がフェージングの影響を受け、信号電力が落ち込んだ場合であっても、フェージングの影響が符号語＃１、符号語＃２に分散されるので、ＬＤＰＣ符号の復号による誤り訂正の劣化の影響を分散させることができる。
【０２１４】
このように、複数のＬＤＰＣ符号語にわたってインタリーブを施すことはフェージングによる誤り訂正の劣化の影響を低減する技術として有効である。これは、変調部１０２０においてＯＦＤＭ変調により変調信号を生成している場合においても、各サブキャリア信号が受けるフェージングの影響を複数のＬＤＰＣ符号語に分散させることができ、フェージングによる誤り訂正の劣化を低減する技術として有効である。
【０２１５】
ここで、複数のＬＤＰＣ符号語の符号化及びインタリーブを行う行列は、式（４６）のように表すことができる。
【数４６】
2008086008.tif 000048
【０２１６】
式（４６）において、ＧＬは複数のＬＤＰＣ符号語を生成するための生成行列を表している。なお、式（４６）は、２つのＬＤＰＣ符号語に対してインタリーブを行う場合を示したものであり、Ｇ１が、１つ目のＬＤＰＣ符号のパリティビットを生成するパリティ生成行列を表し、Ｇ２が、２つ目のＬＤＰＣ符号のパリティビットを生成するパリティ生成行列を表している。３つ以上のＬＤＰＣ符号語に対してインタリーブを行うには、生成行列ＧＬを拡張し、ＬＤＰＣ符号語を生成する生成行列をさらに連結していけばよい。連結する生成行列は同じ行列であっても、異なる行列であってもよい。
【０２１７】
このように、ＬＤＰＣ符号を生成する生成行列を連結したものに対してインタリーブパターンΠを乗算することによって、複数のＬＤＰＣ符号にわたるインタリーブを実現することができる。インタリーブパターンの部分行列が単位行列のサイクリックシフト又は零行列となっていて、かつ、生成行列の部分行列が、単位行列のサイクリックシフトの和の形となっているものであれば、複数のＬＤＰＣ符号化、及び複数のＬＤＰＣ符号にわたるインタリーブを実現することができる。なお、インタリーブパターンにおいて、一つの行には１つの“１”の要素しかないパターンとすることに注意する。
【０２１８】
以下、複数のＬＤＰＣ符号化及び複数のＬＤＰＣ符号にわたるインタリーブ処理について、数式を用いて補足説明をする。
以下では、図１５に示すように、２つの符号語＃１，＃２、つまり、８つのブロック（ブロック＃１〜＃８）にわたって、ＬＤＰＣ符号化及びインタリーブ処理を施す場合を例に説明する。式（４６）のように、インタリーブパターンがＬＤＰＣ符号語を生成する生成行列に乗算された行列（インタリーブド行列）をＧＢとすると、８つのブロックにわたってＬＤＰＣ符号化及びインタリーブ処理を施す場合、ＧＢは式（４７）のように表すことができる。
【数４７】
2008086008.tif 000049
【０２１９】
式（４７）に表される部分行列ＧＢ１，ＧＢ２，…，ＧＢ８と入力情報ビットｓとが乗算され、ＬＤＰＣ符号語におけるブロックが生成される。ＧＢは、ＬＤＰＣ符号語を生成する生成行列に対し、インタリーブパターンが乗算された行列であるので、ＧＢに入力情報ビットｓを乗算することで得られる結果は、既にＬＤＰＣ符号語のブロックをインタリーブした系列が得られることとなる。即ち、図１５Ｂのようにブロックをインタリーブしたとすると、ＧＢ１・ｓがブロック＃１となり、ＧＢ２・ｓがブロック＃５となり，…，ＧＢ８・ｓがブロック＃８となる。
【０２２０】
このとき、図１に示すように、検査行列がＬ×Ｌの部分行列を一つの単位として、単位行列のサイクリックシフトのブロックから構成されている場合、生成行列も、Ｌ×Ｌの部分行列を一つの単位として、単位行列のサイクリックシフトの和の形から構成される。例えば、ＧＢ１，ＧＢ２，…，ＧＢ８が４つのＬ×Ｌ行列により構成されているとする。このとき、ＧＢは、図１６のようになる。
【０２２１】
図１６に示すように、ＧＢ１，ＧＢ２，…，ＧＢ８を構成するＬ×Ｌ行列は単位行列のサイクリックシフトの和の形となっている。本実施の形態は、Ｌ×Ｌの部分行列がサイクリックシフトの和の形なっている性質を利用し、ＬＤＰＣ符号化とインタリーブとを同時に行う構成を提供するものである。
【０２２２】
以下、複数のＬＤＰＣ符号化、複数のＬＤＰＣ符号にわたるインタリーブを実現する符号化及びインタリーブを行う符号化装置の構成例について説明する。図１７に、８つのブロックにわたってＬＤＰＣ符号化及びインタリーブを行う場合の符号化装置の構成例を示す。
【０２２３】
図１７の符号化装置１０１０は、ＧＢ１リファレンスベクトル格納部１０１１−１，ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８、ベクトル巡回シフト部１０１２−１，１０１２−２，…，１０１２−８は、ＧＢ１リファレンスベクトル格納部１０１１−１、ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８、ベクトル乗算部１０１３−１，１０１３−２，…，１０１３−８、ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８、及び、ＬＤＰＣ符号語系列生成部１０１５を備えて構成される。
【０２２４】
まず、符号化及びインタリーブ部１０１０に入力された情報ビットは、ＧＢ１リファレンスベクトル格納部１０１１−１，ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８に入力される。これらリファレンスベクトル格納部には、ＧＢ１，ＧＢ２，…，ＧＢ８を構成するＬ×Ｌの単位行列のサイクリックシフトの和である行列のリファレンスベクトル（例えば第一列ベクトル）が格納されている。ＧＢ１リファレンスベクトル格納部１０１１−１，ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８は、情報ビットが入力されると格納してあるリファレンスベクトルを出力する。ここで、単位行列のサイクリックシフトの和となるのはＬ×Ｌ行列ごとであるので、ＧＢ１リファレンスベクトル格納部１０１１−１，ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８は、情報ビットがＬビット入力されるごとに出力するリファレンスベクトルを切り替える。
【０２２５】
ベクトル巡回シフト部１０１２−１，１０１２−２，…，１０１２−８は、ＧＢ１リファレンスベクトル格納部１０１１−１、ＧＢ２リファレンスベクトル格納部１０１１−２，…，ＧＢ８リファレンスベクトル格納部１０１１−８から出力されたリファレンスベクトルを巡回シフトし、巡回シフト後のリファレンスベクトルをベクトル乗算部１０１３−１，１０１３−２，…，１０１３−８に出力する。このときの巡回シフトの方法は、図４に示す第一の巡回シフト部３０２−１，３０２−２，…，３０２−Ｂなどと同様である。これにより、情報ビットに乗算されるベクトルを生成することができる。
【０２２６】
ベクトル乗算部１０１３−１，１０１３−２，…，１０１３−８には、情報ビットと、ベクトル巡回シフト部１０１２−１，１０１２−２，…，１０１２−８からの出力とが入力される。ベクトル乗算部１０１３−１，１０１３−２，…，１０１３−８は、入力された情報ビットとベクトル巡回シフト部１０１２−１，１０１２−２，…，１０１２−８からの出力とを乗算し、乗算結果をベクトル累積加算部１０１４に出力する。
【０２２７】
ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８には、ベクトル乗算部１０１３−１，１０１３−２，…，１０１３−８からの出力が入力される。ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８は、入力されたベクトルを累積加算し、累積加算結果をＬＤＰＣ符号語系列生成部１０１５に出力する。このときの累積加算は、ベクトル累積加算部３０４における排他的論理和アキュムレートと同様である。
【０２２８】
ＬＤＰＣ符号語系列生成部１０１５には、情報ビットと、ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８からの出力とが入力される。ＬＤＰＣ符号語系列生成部１０１５は、情報ビットの入力数をカウントしており、ＬＤＰＣ符号語を生成する対象であるビット数の情報ビットが入力された時点での、ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８からの出力をＬＤＰＣ符号語として出力する。具体的には、ＧＢ１，ＧＢ２，…，ＧＢ８は４つのＬ×Ｌ行列で構成されているので、４×Ｌビットの情報ビットが入力された時点でのベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８からの出力をＬＤＰＣ符号語として出力する。４×Ｌビットの情報ビットが入力された時点での、ベクトル累積加算部１０１４−１，１０１４−２，…，１０１４−８からの出力は、４×Ｌビットの情報ビットとＧＢとの乗算結果となっているので、これによりＬＤＰＣ符号語のインタリーブ結果を得ることができる。
【０２２９】
本実施の形態における重要な点は以下の通りである。
符号ビットのインタリーブは、インタリーブパターンを符号ビットに乗算することによって実現できる。ＬＤＰＣ符号語を生成する生成行列の部分行列が、単位行列のサイクリックシフトの和であるものを用いるとする。このとき、単位行列のサイクリックシフトをインタリーブパターンの部分行列とすることが重要である。上述したように、インタリーブパターンでは、一つの行には１つの“１”の要素しかないので、単位行列のサイクリックシフトをインタリーブパターンの部分行列とすると、インタリーブパターンの部分行列は、単位行列のサイクリックシフト又は零行列により構成される。このとき、インタリーブパターンとＬＤＰＣ符号の生成行列との乗算により得られる行列の部分行列もまた、単位行列のサイクリックシフトの和となる。このため、ＬＤＰＣ符号化及び符号化後のビットのインタリーブを、実施の形態１乃至７において述べた符号化装置を用いて実現することができる。これにより、無線送信装置における回路規模を削減することができる。このように、単位行列のサイクリックシフトをインタリーブパターンの部分行列とすることが重要である。
【０２３０】
また、複数のＬＤＰＣ符号語にわたるインタリーブは、インタリーブパターンを、ＬＤＰＣ符号語を生成する生成行列を複数連結した行列に対して乗算することにより実現できる。インタリーブパターンの部分行列を単位行列のサイクリックシフト又は零行列となるようにすることで、前記のように実施の形態１乃至７で述べた符号化装置を用いることができる。複数のＬＤＰＣ符号にわたってインタリーブすることにより、フェージングによる信号電力の落ち込みを分散させることができ、ＬＤＰＣ符号の復号による誤り訂正の劣化を低減することができる。このように、複数のＬＤＰＣ符号にわたり、インタリーブを行う構成が重要である。
【０２３１】
このように、本実施の形態に係る符号化方法は、部分行列が単位行列のサイクリックシフトの和となっている行列を生成行列としてＬＤＰＣ符号語を取得する符号化方法において、単位行列のサイクリックシフトを部分行列とするインタリーブパターン行列を用いて前記ＬＤＰＣ符号語をインタリーブするインタリーブし、例えば、単位行列のサイクリックシフトを部分行列とするインタリーブパターン行列と、ＱＣ擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得されるインタリーブド行列の部分行列を供給し、インタリーブド行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する。
【０２３２】
（実施の形態１１）
図１８に本実施の形態に係るマルチアンテナ通信装置の構成を示す。なお、実施の形態１０と同様の構成については、同一の符号を付し、説明を省略する。図１８のマルチアンテナ通信装置１１００は、符号化及び空間マッピング部１１１０、変調部１０２０Ａ、１０２０Ｂ、及び無線部１０３０Ａ、１０３０Ｂを備えて構成される。図１８において、変調部１０２０Ａ及び無線部１０３０Ａは、ストリーム＃Ａを形成し、変調部１０２０Ｂ及び無線部１０３０Ｂは、ストリーム＃Ｂを形成する。情報ビットは、符号化及び空間マッピング部１１１０に入力される。
【０２３３】
符号化及び空間マッピング部１１１０は、情報ビットに対し、ＬＤＰＣ符号化及び空間マッピングを施す。ここでのＬＤＰＣ符号化及び空間マッピングについては後述する。符号化及び空間マッピング部１１１０は、ＬＤＰＣ符号化及び空間マッピングを施した符号ビットを変調部１０２０Ａ、１０２０Ｂに出力する。
【０２３４】
変調部１０２０Ａ、１０２０Ｂは、入力された符号ビットを変調し、無線部１０３０Ａ、１０３０Ｂに出力する。
【０２３５】
無線部１０３０Ａ、１０３０Ｂは、入力された変調信号を用いて無線信号を生成し、無線伝搬路へと出力する。
【０２３６】
次に、符号化及び空間マッピング部１１１０について説明する。符号化及び空間マッピング部１１１０は、ＬＤＰＣ符号化と符号化後の符号ビットの空間マッピングを一つの構成で実現するものである。ここで、空間マッピングとは、ＬＤＰＣ符号化後の符号ビットを送信するストリームを選択することに相当する。空間マッピングを表す行列（空間マッピングパターン）をΓとすると、ＬＤＰＣ符号化及び空間マッピングは式（４８）により表すことができる。
【数４８】
2008086008.tif 000050
【０２３７】
式（４８）における［ｙ１  ｙ２］Ｔのうち、ｙ１がストリーム＃Ａに割り当てられる符号ビットを表しており、ｙ２がストリーム＃Ｂに割り当てられる符号ビットを表している。このように、ＬＤＰＣ符号語に対してΓを乗算することにより、どのストリームにどの符号ビットを割り当てるか、という空間マッピングを実現することができる。ここで、空間マッピングΓとＬＤＰＣ符号語を生成する生成行列Ｇｌとの乗算結果を式（４９）に示す。
【数４９】
2008086008.tif 000051
【０２３８】
式（４９）に示すＧＹを入力情報ビットｓに乗算することで、ＬＤＰＣ符号化と空間マッピングを同時に行うことができる。このとき、単位行列のサイクリックシフトを空間マッピングパターンΓの部分行列とする。但し、空間マッピングは、符号ビットをストリームに割り当てる操作であるので、空間マッピングパターンΓの各行には１つの“１”の要素しか存在しないようにする。したがって、空間マッピングパターンΓの部分行列を単位行列のサイクリックシフト又は零行列により構成される。また、ＬＤＰＣ符号語を生成する生成行列Ｇｌの部分行列が、実施の形態１０と同様、単位行列のサイクリックシフトの和であるものを用いる。このときの空間マッピングを表す行列Γの部分行列の大きさと、生成行列Ｇｌの部分行列の大きさは等しいものを用いる。上記のような空間マッピングパターンΓを用いた場合、実施例に示す式（２４）の関係から式（４９）のＧＹの部分行列もまた、単位行列のサイクリックシフトの和となる。よって本実施の形態における符号化及び空間マッピング部１１１０は、実施の形態１乃至７で用いた符号化装置により構成することができる。即ち、実施の形態１乃至７で用いた符号化装置の構成のみで、ＬＤＰＣ符号化と空間マッピングを行うことができる。このことは、マルチアンテナ通信装置１１００の回路規模を削減する効果がある。
【０２３９】
さらに、ＬＤＰＣ符号化及び空間マッピングの設計について述べる。実施の形態１０でも述べたように、ＬＤＰＣ符号語を復号することによる誤り訂正の効果は一つのＬＤＰＣ符号語内に閉じられている。よって、無線伝搬路におけるフェージング変動のレベルの落ち込みにより発生する誤りを分散させるには、フェージング変動の影響を複数のＬＤＰＣ符号語に分散させる技術が効果的である。
【０２４０】
例えば図１９Ａ、図１９Ｂに示すように、２つのＬＤＰＣ符号語に空間マッピングを施し、同様のフェージング変動を受けるＬＤＰＣ符号語を複数の符号語に分散させる。但し、図１９Ａ、図１９Ｂにおけるブロックとは、ＬＤＰＣ符号化及び空間マッピングを行うための行列ＧＹにおいて、単位行列のサイクリックシフトの和となる部分行列に対応している。即ち、入力情報ビットと部分行列との乗算によって得られる符号ビット系列をブロックとして表記している。図１９Ｂに示すように、ストリーム＃Ｂのフェージング特性が、ある期間落ち込んでいる場合、フェージングの落ち込みの影響を受けるのは、ブロック＃４（符号語＃１）、ブロック＃８（符号語＃２）である。
【０２４１】
このとき、符号語＃１を復号するにあたって、フェージングの落ち込みの影響を受けたブロックはブロック＃４のみである。同様に、符号語＃２を復号するにあたって、フェージングの落ち込みの影響を受けたブロックはブロック＃８のみである。よってフェージングの落ち込みにより発生する信号レベルの低下は、複数のＬＤＰＣ符号語に分散されているので、ＬＤＰＣ符号の復号時の誤り訂正能力の劣化を低減することができる。
【０２４２】
上記のように、複数のＬＤＰＣ符号にわたって空間マッピングを行う空間マッピングパターンは、式（５０）に示すように表すことができる。
【数５０】
2008086008.tif 000052
【０２４３】
式（５０）に示すＧＬは、複数のＬＤＰＣ符号語を生成する生成行列を表しており、式（４６）に示したものと同様である。これに対し、空間マッピングを行うための行列Γを乗算することで、複数のＬＤＰＣ符号にわたって空間マッピングを行うことができる。このときの行列Γの部分行列を上述したように単位行列のサイクリックシフト又は零行列により構成することで、実施の形態１乃至７において用いた符号化装置を用いることができる。
【０２４４】
式（５０）には、２つのＬＤＰＣ符号語にわたって空間マッピングを行う例を示したが、３つ以上のＬＤＰＣ符号語にわたって空間マッピングを行うには、生成行列ＧＬを拡張し、ＬＤＰＣ符号語を生成する生成行列をさらに連結していけばよい。連結する生成行列は同じであっても、異なるものであってもよい。
【０２４５】
以下、符号化及び空間マッピング部１１１０の構成について述べる。以下では、図１９に示されるように２つの符号語がストリーム＃Ａ、＃Ｂに空間マッピングされる場合を例に説明する。本実施の形態では、符号化及び空間マッピング部１１１０において、符号化と空間マッピングを同時に行っている。即ち、符号化及び空間マッピング部１１１０からの出力が既に空間マッピングされたものとなっている。例えば、図１９におけるブロック＃１、＃２は、符号化及び空間マッピング部１１１０から出力された時点で既に変調部１０２０Ａ、１０２０Ｂにそれぞれ振り分けられており、同様にブロック＃５、＃６も符号化及び空間マッピング部１１１０から出力された時点で変調部１０２０Ａ、１０２０Ｂにそれぞれ振り分けられている。
【０２４６】
符号化及び空間マッピング部１１１０で用いる生成行列と空間マッピングパターンが、式（５０）に示すΓＧＬで表される場合を考える。このとき、ΓＧＬを式（５１）のように表現するとする。
【数５１】
2008086008.tif 000053
【０２４７】
上述したように、式（５１）におけるＧＳと情報ビットｓとを乗算した結果がＬＤＰＣ符号化後の系列を空間マッピングした結果となっている。例えば、式（５１）のように、ＧＳを２つの部分行列ＧＳ１、ＧＳ２に分割したとき、ＧＳ１に情報ビットｓを乗算した結果がストリーム＃Ａに空間マッピングされるＬＤＰＣ符号語のブロックとなるようにしておき、同様にＧＳ２に情報ビットｓが乗算された結果がストリーム＃Ｂに空間マッピングされるＬＤＰＣ符号語のブロックとなるようにしておく。このようにすることで、ＬＤＰＣ符号化と空間マッピングとを同時に行うことができ、空間マッピング用の回路を削減することができる。
【０２４８】
符号化及び空間マッピング部１１１０の構成例を図２０に示す。図２０の符号化及び空間マッピング部１１１０は、２つのストリームに空間マッピングする場合の構成例である。
【０２４９】
符号化及び空間マッピング部１１１０は、ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２、ベクトル巡回シフト部１０１２−１、１０１２−２、ベクトル乗算部１０１３−１、１０１３−２、乗算結果をベクトル累積加算部１０１４−１、１０１４−２、及びＬＤＰＣ符号語系列生成部１１１２−１、１１１２−２を備えて構成される。
【０２５０】
符号化及び空間マッピング部１１１０に入力された情報ビットは、ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２へと入力される。ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２には、それぞれ式（５１）におけるＧＳ１、ＧＳ２のリファレンスベクトルが格納されている。ＧＳ１、ＧＳ２は単位行列のサイクリックシフトの和である行列によって構成されている。
【０２５１】
例えばＧＳ１、ＧＳ２が図２１に示すように行方向に２つ、列方向に４つのＬ×Ｌ行列によって構成されているとする。このとき、ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２は、情報ビットが入力されると、まずは１列目に相当するＬ×Ｌ行列のリファレンスベクトルを出力する。このとき出力するリファレンスベクトルは、情報ビットに乗算されるベクトルを生成するために用いるものであるので、ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２は、情報ビットがＬビット入力されるごとに出力するリファレンスベクトルを２列目のＬ×Ｌ行列のリファレンスベクトル、３列目のＬ×Ｌ行列のリファレンスベクトル、と切り替えていく。
【０２５２】
ベクトル巡回シフト部１０１２−１、１０１２−２は、実施の形態１０と同様、ＧＳ１リファレンスベクトル格納部１１１１−１、ＧＳ２リファレンスベクトル格納部１１１１−２から出力されたリファレンスベクトルを順次巡回シフトしていき、情報ビットに乗算されるベクトルを生成し、生成したベクトルをベクトル乗算部１０１３−１、１０１３−２に出力する。
【０２５３】
ベクトル乗算部１０１３−１、１０１３−２は、ベクトル巡回シフト部１０１２−１、１０１２−２から出力されるベクトルと情報ビットとの乗算を行い、乗算結果をベクトル累積加算部１０１４−１、１０１４−２に出力する。
【０２５４】
ベクトル累積加算部１０１４−１、１０１４−２は、ベクトル乗算部１０１３−１、１０１３−２から出力されるベクトルを累積加算し、累積加算結果をＬＤＰＣ符号語系列生成部１１１２−１、１１１２−２に出力する。
【０２５５】
ＬＤＰＣ符号語系列生成部１１１２−１、１１１２−２は、情報ビットが全て入力された時点（この例では４×Ｌビットの情報ビットが入力された時点）で得られたベクトル累積加算部１０１４−１、１０１４−２からの出力ベクトルを空間マッピング後のＬＤＰＣ符号として出力する。ＬＤＰＣ符号語系列生成部１１１２−１からの出力が、ストリーム＃Ａで送信されるＬＤＰＣ符号語となっており、ＬＤＰＣ符号語系列生成部１１１２−２からの出力が、ストリーム＃Ｂで送信されるＬＤＰＣ符号語となっている。
【０２５６】
以上のように、空間マッピングパターンとＬＤＰＣ符号語を生成する生成行列とを予め乗算した行列を用いることで、空間マッピングを行う回路を用いずにＬＤＰＣ符号化と空間マッピングを同時に行うことができる。
【０２５７】
本実施の形態における重要な点は以下の通りである。
マルチアンテナ通信装置において、空間マッピングは行列の乗算により実現できる。このとき、単位行列のサイクリックシフトを空間マッピングを行うための行列の部分行列とすることが重要である。ＬＤＰＣ符号語を生成するための生成行列の部分行列が単位行列のサイクリックシフトの和となっている場合、空間マッピングを行うための行列と当該生成行列との乗算により得られる行列もまた、部分行列が単位行列のサイクリックシフトの和の形となっている。このとき、実施の形態１乃至７で用いた符号化装置を用いることで、ＬＤＰＣ符号化と空間マッピングとを同時に行うことができる。よって、マルチアンテナ通信装置の回路規模を削減する効果がある。
【０２５８】
また、フェージング変動のレベルの落ち込みによるＬＤＰＣ符号語の誤り訂正能力の劣化を低減するには、複数のＬＤＰＣ符号語にわたって空間マッピングを行うことが重要である。このとき、フェージング変動のレベルの落ち込みを分散させるには、図１９Ｂに示すように異なる符号語のブロックが時間的に並ぶ形にすることで、より高い分散効果が得られる。
【０２５９】
（実施の形態１２）
本実施の形態は、マルチアンテナ通信装置におけるＬＤＰＣ符号化及び符号化後の符号ビットのインタリーブに関わるものである。本実施の形態に係るマルチアンテナ通信装置の構成例を図２２に示す。なお、図２２において、図１８と同様の構成については同一の符号を付し、説明を省略する。
【０２６０】
図２２のマルチアンテナ通信装置１２００は、図１８のマルチアンテナ通信装置１１００の符号化及び空間マッピング部１１１０に代えて、空間マッピング部１２１０を備え、さらに符号化及びインタリーブ部１０１０Ａ、１０１０Ｂを追加した構成を採る。
【０２６１】
情報ビットは空間マッピング部１２１０に入力される。空間マッピング部１２１０は、入力された情報ビットをストリーム＃Ａ、＃Ｂに振り分ける。例えば、空間マッピング部１２１０は、ある時刻に入力された情報ビットをストリーム＃Ａに出力し、次の時刻に入力された情報ビットをストリーム＃Ｂに出力する。以降、空間マッピング部１２１０は同様に、入力される情報ビットをストリーム＃Ａ、＃Ｂに交互に出力すればよい。
【０２６２】
空間マッピングされた情報ビットは、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂに入力される。符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、入力された情報ビットをＬＤＰＣ符号化し、符号化後の符号ビットをインタリーブする。符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、インタリーブ後の符号ビットを変調部１０２０Ａ、１０２０Ｂに出力する。
【０２６３】
変調部１０２０Ａ、１０２０Ｂは、入力された符号ビットの変調を行い、変調信号を生成する。変調部１０２０Ａ、１０２０Ｂは、生成した変調信号を無線部１０３０Ａ、１０３０Ｂに出力する。
【０２６４】
無線部１０３０Ａ、１０３０Ｂは、入力された変調信号を用いて無線信号を生成し、無線伝搬路に無線信号を出力する。
【０２６５】
符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、実施の形態１０に示した符号化及びインタリーブ部１０１０と同様の構成を採っている。実施の形態１０に示したように、ＬＤＰＣ符号語を生成する生成行列の部分行列には、単位行列のサイクリックシフトの和となるものを用いる。また、単位行列のサイクリックシフトをインタリーブパターンの部分行列とする。これにより、上記２つの行列を乗算した結果、得られる行列（インタリーブド行列）もまた、部分行列が単位行列のサイクリックシフトを加算した形となる。よって、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、実施の形態１乃至７で述べた符号化装置の構成を採ることができる。これにより、マルチアンテナ通信装置１２００は、ＬＤＰＣ符号化及びＬＤＰＣ符号化後の符号ビットのインタリーブを一つの構成で実現することができる。
【０２６６】
本実施の形態の構成を採ることによる別なる効果について述べる。本実施の形態に示すように、マルチアンテナ通信装置１２００は、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂを有している。このとき、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂには、異なるＬＤＰＣ符号語を生成する生成行列、異なるインタリーブパターンを用いることができる。
【０２６７】
異なる生成行列、異なるインタリーブパターンを用いた場合のＢＩＣＭ（Bit Interleaved Coded Modulation）復号について説明する。まず、ＭＩＭＯ通信時におけるＢＩＣＭ復号は、非特許文献５に示される通りである。ＢＩＣＭ復号を行うマルチアンテナ通信装置の構成例を図２３に示す。図２３は、受信側の要部構成を示している。
【０２６８】
図２３のマルチアンテナ通信装置１３００は、無線部１３１０Ａ、１３１０Ｂ、復調部１３２０、デインタリーブ部１３３０Ａ、１３３０Ｂ、復号部１３４０Ａ、１３４０Ｂ、及びインタリーブ部１３５０Ａ、１３５０Ｂを備えて構成される。
【０２６９】
受信した空間多重信号は、無線部１３１０Ａ、１３１０Ｂに入力される。無線部１３１０Ａ、１３１０Ｂは、受信信号をダウンコンバートし、ダウンコンバート後の受信信号を復調部１３２０に出力する。
【０２７０】
復調部１３２０は、無線部１３１０Ａ、１３１０Ｂから出力された信号をＢＩＣＭ復号により復調する。ＢＩＣＭ復号では、受信信号にマッピングされたビットに対する対数事後確率比を用いて復調する。対数事後確率比の求め方は、非特許文献５にも記載されている。復調部１３２０は、受信信号にマッピングされたビットに対する対数事後確率比を、デインタリーブ部１３３０Ａ、１３３０Ｂに出力する。
【０２７１】
デインタリーブ部１３３０Ａ、１３３０Ｂは、入力された対数事後確率比をデインタリーブし、デインタリーブ後の対数事後確率比を、復号部１３４０Ａ、１３４０Ｂに出力する。ここでのデインタリーブは、マルチアンテナ通信装置１２００の符号化及びインタリーブ部１０１０Ａ、１０１０Ｂにおけるインタリーブにより入れ替わった符号ビットの順序を、元の順序に戻す操作に相当する。
【０２７２】
復号部１３４０Ａ、１３４０Ｂは、入力された対数事後確率比を用いてＬＤＰＣ符号の復号を行う。ここで、復号時に求めるのは、ＬＤＰＣ符号ビットに対する対数事後確率比である。復号部１３４０Ａ、１３４０Ｂは、ＬＤＰＣ符号の復号により求めた対数事後確率比をインタリーブ部１３５０Ａ、１３５０Ｂに出力する。
【０２７３】
インタリーブ部１３５０Ａ、１３５０Ｂは、入力された対数事後確率比をインタリーブし、インタリーブ後の対数事後確率比を復調部１３２０に出力する。
【０２７４】
復調部１３２０は、入力された対数事後確率比を用いて再度受信信号の復調を行う。復調部１３２０は、受信信号の復調により求めた対数事後確率比を、デインタリーブ部１３３０Ａ、１３３０Ｂに出力する。非特許文献５には、反復して復調と復号を行う手法が記載されている。
【０２７５】
復調部１３２０、復号部１３４０Ａ、１３４０Ｂは、予め定められた反復回数の復調と復号を行い、最終復号時に得られたＬＤＰＣ符号ビットの対数事後確率比を，硬判定部１３６０Ａ、１３６０Ｂに出力する。硬判定部１３６０Ａ、１３６０Ｂは、復号部１３４０Ａ、１３４０Ｂにより出力されたＬＤＰＣ符号ビットに対する対数事後確率比を用いて硬判定を行う。硬判定部１３６０Ａ、１３６０Ｂは、硬判定により得られた復号ビットを情報ビットとして出力する。これにより、マルチアンテナ通信装置１３００は、受信信号から情報ビットを得ることができる。
【０２７６】
ここで、ＢＩＣＭ復号において、ＬＤＰＣ符号語を生成する生成行列、及び符号語に対して行われるインタリーブのパターンが異なる場合のファクタグラフを図２４Ａ及び図２４Ｂに示す。ファクタグラフとは、関数ノードと変数ノードの間で情報のやり取りを行う様子をグラフ化したもので、非特許文献６において述べられている。
ＢＩＣＭ復号は、復調と復号とを行っており、図２４Ａ及び図２４Ｂのファクタグラフには復調処理を行うディテクションノード、復号処理を行うチェックノード、メッセージノードが示されている。なお、ＬＤＰＣ符号の復号にｓｕｍ−ｐｒｏｄｕｃｔ復号を用いた場合のチェックノード、メッセージノードの間での情報のやりとりについては、非特許文献６に記載されている。また、図２４Ａは、時間１におけるファクタグラフを表しており、図２４Ｂは時間２におけるファクタグラフを表している。
【０２７７】
図２４Ａ及び図２４Ｂに示すように、ファクタグラフには、ストリーム＃Ａにおいて送信されたＬＤＰＣ符号語＃１、ストリーム＃Ｂにおいて送信されたＬＤＰＣ符号語＃２のチェックノード、メッセージノード及びそれらをつなぐ枝が記載されている。図２４Ａ及び図２４Ｂにおいて、復号部１３４０ＡにおけるＬＤＰＣ符号の復号が、ＬＤＰＣ符号語＃１の復号に対応しており、復号部１３４０ＢにおけるＬＤＰＣ符号の復号が、ＬＤＰＣ符号語＃２の復号に対応している。
【０２７８】
ＬＤＰＣ符号の復号処理においては、チェックノード、メッセージノード間での情報のやり取りを行う。一方、ＢＩＣＭ復号における復調処理は、ディテクションノードにおいて行われる。復調においては、受信信号にマッピングされたビットに対する対数事後確率比を求めている。受信信号にマッピングされたビットは、ＬＤＰＣ符号語における符号ビットに対応させることができる。ファクタグラフにおいて、ＬＤＰＣ符号語における符号ビットは、メッセージノードに対応している。図２４Ａ及び図２４Ｂに示すファクタグラフには、ある時刻において復調されるビット（メッセージノード）とディテクションノードの間に枝が記載されている。図２４Ａ及び図２４Ｂのファクタグラフは、ディテクションノードがメッセージノードから得た情報を用いて復調を行い、復調により得た対数事後確率比をメッセージノードに渡す様子を記載したものである。また、マルチアンテナ通信装置１２００が、変調部１０２０Ａ、１０２０Ｂにおいて１６ＱＡＭ変調方式を用いた場合、受信信号にマッピングされているビットは４ビットであるので、図２４Ａ及び図２４Ｂにおけるファクタグラフのディテクションノードが対数事後確率比を渡すメッセージノードは４つとなる。このように、図２４Ａ及び図２４Ｂ、前記１６ＱＡＭ変調方式を用いた場合を例示している。
【０２７９】
本実施の形態では、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂが、異なる生成行列を用いているので、図２４Ａ及び図２４Ｂのファクタグラフにおいて、ＬＤＰＣ符号語＃１、ＬＤＰＣ符号語＃２のチェックノード、メッセージノードの間の枝（エッジ）の接続関係は異なる。また、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂにおいて、異なるインタリーブパターンを用いているので、ディテクションノードとＬＤＰＣ符号語＃１のメッセージノードとの枝の接続関係と、ディテクションノードとＬＤＰＣ符号語＃２のメッセージノードとの接続関係も異なっている。
【０２８０】
ＬＤＰＣ符号語＃１とＬＤＰＣ符号語＃２のチェックノードとメッセージノードの接続関係が異なっていることからもわかるように、ＬＤＰＣ符号語の復号によって得られる符号ビットの対数事後確率比の確からしさの分布は異なるものとなる。例えば、ｓｕｍ−ｐｒｏｄｕｃｔ復号を用いた復号では、チェックノードとメッセージノードとの間で情報のやりとりを行い、符号ビットに対する対数事後確率比を更新していく。チェックノードとメッセージノードの接続関係が異なる場合、対数事後確率比の更新が異なる情報の経路によって行われるため、符号ビットに対する対数事後確率比の分布は異なるものとなる。
【０２８１】
ＢＩＣＭ復号では、ＬＤＰＣ符号語の復号によって得られた符号ビットに対する対数事後確率比を用いて再度復調を行う。ＬＤＰＣ符号語＃１とＬＤＰＣ符号語＃２とは、異なるインタリーブパターンを用いてインタリーブされているので、ディテクションノードにおいてメッセージノードから得る対数事後確率比の分布はさらにランダム化されたものとなる。このように、ディテクションノードにおいて用いる対数事後確率比の分布はランダム化されているので、時間ダイバーシチ効果が生じ、復調の特性が向上する。
【０２８２】
以上より、マルチアンテナ通信システムにおいて、空間多重するストリームごとにＬＤＰＣ符号化に用いる生成行列を異なるものとし、また、ストリームごとにインタリーブパターンを異なるものとすることで、受信信号をＢＩＣＭ復号したときの特性を向上させることができる。
【０２８３】
このように、本実施の形態に係る符号化方法は、部分行列が単位行列のサイクリックシフトの和となっている行列を生成行列としてＬＤＰＣ符号語を取得する符号化方法において、単位行列のサイクリックシフトを部分行列とする空間マッピングパターン行列を用いてＬＤＰＣ符号語を空間マッピングし、例えば、単位行列のサイクリックシフトを部分行列とする空間マッピングパターン行列と、ＱＣ擬似下三角行列の形態の検査行列を用いて作成される生成行列との行列演算により取得される符号化・空間マッピング行列の部分行列を供給し、符号化・空間マッピング行列の部分行列と入力データとの線形演算によりＬＤＰＣ符号語を取得する。
【０２８４】
なお、実施の形態１０のように、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、複数の符号語に渡ってインタリーブを行ってもよい。この場合には、時間ダイバーシチ効果がさらに得られ、受信特性が向上する。
【０２８５】
（実施の形態１３）
実施の形態１１は、符号化と空間マッピングを同時に行う構成を提供するものであった。また、実施の形態１２のようにＬＤＰＣ符号語を空間マッピングすることで、フェージングの影響を複数の符号語に分散させ、時間ダイバーシチ効果を得るというものであった。本実施の形態は、時間ダイバーシチ効果に加え、空間ダイバーシチ効果を得る。
【０２８６】
本実施の形態におけるマルチアンテナ通信装置の構成は、実施の形態１１において述べた図１８のマルチアンテナ通信装置１１００と同様である。本実施の形態が、実施の形態１１と異なるのは、符号化及び空間マッピング部１１１０における空間マッピングの方法である。
【０２８７】
以下、本実施の形態における空間マッピングについて、図２５を用いて説明する。図２５Ａに示すように、２つのＬＤＰＣ符号、符号語＃１、符号語＃２がそれぞれブロック＃１、＃２、＃３、＃４、及びブロック＃５、＃６、＃７、＃８によって構成されている場合を例に説明する。
【０２８８】
符号化及び空間マッピング部１１１０は、図２５Ｂに示すように、ストリーム＃Ａ、＃Ｂには、同時刻に異なる符号語が空間マッピングされるように、ＬＤＰＣ符号語を空間マッピングする。
【０２８９】
また、符号化及び空間マッピング部１１１０は、同一ストリームにおけるブロックには、時間的に異なる符号語のブロックが空間マッピングされるようにする。例えば、図２５Ｂのストリーム＃Ａのように、ある時刻にはブロック＃１（符号語＃１）が空間マッピングされ、次の時刻にはブロック＃６（符号語＃２）が空間マッピングされるようにする。
【０２９０】
このように空間マッピングした場合、例えば、実施の形態１２のように受信信号をＢＩＣＭ復号することで、復調の特性を向上させることができる。これは、以下の原理に基づいている。
【０２９１】
符号語＃１と符号語＃２は、それぞれが独立にＬＤＰＣ復号される。即ち、誤り訂正の効果は、符号語＃１と＃２それぞれ独自に得られる。上述したように、受信信号をＢＩＣＭ復号するにあたって、復調を行う。このとき、同時刻にストリーム＃Ａ、＃Ｂに空間マッピングされているのは、異なる符号語である。例えば、ブロック＃１（符号語＃１）がストリーム＃Ａに空間マッピングされている場合、ストリーム＃Ｂに空間マッピングされているのはブロック＃５（符号語＃２）である。このとき、符号語＃１、＃２の誤り訂正の効果は、復調時にそれぞれ対となる符号語に反映されることになる。即ち、符号語＃１の復号により求めた符号ビットに対する対数事後確率比は、復調時には符号語＃１のブロック及び符号語＃２のブロックにマッピングされたビットの対数事後確率比を求めるのに使用される。同様に、符号語＃２の復号により求めた符号ビットに対する対数事後確率比は、復調時には符号語＃１のブロック及び符号語＃２のブロックにマッピングされたビットの対数事後確率比を求めるのに使用される。このように、同一時刻に異なる符号語を空間マッピングすることにより、空間ダイバーシチ効果を得ることができる。
【０２９２】
また、同一ストリームにおいては、時間的に異なる符号語のブロックが空間マッピングされるようにすることで、時間ダイバーシチ効果が得られる。これは、実施の形態１０、実施の形態１１に示したのと同じ原理による。即ち、フェージングによる受信電力の落ち込みは、複数の符号語に分散されるので、誤り訂正の効果がより大きくなる。
【０２９３】
以上、本実施の形態は、ＬＤＰＣ符号語の空間マッピングに関するものである。なお、実施の形態１２に示すマルチアンテナ通信装置１２００の構成を用いても、本実施の形態と同様のＬＤＰＣ符号語の空間マッピングを実現することができる。実施の形態に示す符号化及びインタリーブ部１０１０Ａ、１０１０Ｂは、入力される情報ビットと生成行列とを乗算することにより、符号化とインタリーブを同時に実現している。よって、ＬＤＰＣ符号語のブロックが図２５Ｂに示すように各ストリームに配置されるよう、符号化及びインタリーブ部１０１０Ａ、１０１０Ｂにおいて用いる生成行列を変更すればよい。
【産業上の利用可能性】
【０２９４】
本発明の符号化方法、符号化装置、及び送信装置は、例えば、無線通信システムにおいて、ＬＤＰＣ（Low Density Parity Check）符号の検査行列に準じて誤り訂正を行う符号化方法、符号化装置、及び送信装置などに有用である。
【図面の簡単な説明】
【０２９５】
【図１】本発明で用いる検査行列の概略例を示す図
【図２】本発明の実施の形態１における符号化装置の構成例を示す図
【図３】本発明の実施の形態２の符号化装置の構成例を示す図
【図４】本発明の実施の形態３の符号化装置の構成例を示す図
【図５】本発明の実施の形態４の符号化装置の構成例を示す図
【図６】本発明の実施の形態５の符号化装置の構成例を示す図
【図７】本発明の実施の形態６の符号化装置の構成例を示す図
【図８】本発明の実施の形態７の符号化装置の構成例を示す図
【図９】本発明の実施の形態８の無線送信装置の構成例を示す図
【図１０Ａ】インタリーブ処理例を示す説明図
【図１０Ｂ】他のインタリーブ処理例を示す説明図
【図１１】読み出し制御部における読み出しパターン例を示す図
【図１２】本発明の実施の形態９の無線送信装置および無線受信装置の構成例を示す図
【図１３】パンクチャ処理例を示す説明図
【図１４】本発明の実施の形態１０の無線送信装置の構成例を示す図
【図１５】インタリーブ処理例を示す説明図
【図１６】生成行列の概略例を示す図
【図１７】符号化及びインタリーブ部の構成例を示す図
【図１８】本発明の実施の形態１１のマルチアンテナ通信装置の構成例を示す図
【図１９】空間マッピング処理例を示す説明図
【図２０】符号化及び空間マッピング部の構成例を示す図
【図２１】生成行列の概略例を示す図
【図２２】本発明の実施の形態１２のマルチアンテナ通信装置（送信側）の構成例を示す図
【図２３】実施の形態１２のマルチアンテナ通信装置（受信側）の構成例を示す図
【図２４Ａ】生成行列及びインタリーブパターンが異なる場合の時間１でのファクタグラフを示す図
【図２４Ｂ】生成行列及びインタリーブパターンが異なる場合の時間２でのファクタグラフを示す図
【図２５】空間マッピング処理例を示す説明図
【図２６】従来例で用いた検査行列の一例を示す図
【図２７】従来例の符号化処理を示す図
【符号の説明】
【０２９６】
１００、２００、３００、７００、８００、９００  符号化装置
１０１、８０２  入力データカウント部
１０２  出力制御部
１０３−１〜１０３−（Ｎ−Ｋ）  １ビット格納部
１０４−１〜１０４−Ｋ  行ベクトル格納部
１０５−１〜１０５−Ｋ、２０２、３０３−１〜３０３−Ｂ、７０４Ａ−１〜７０４Ａ−Ｂ、７０４Ｂ−１〜７０４Ｂ−Ｂ  ベクトル乗算部
１０６  ＬＤＰＣ符号語系列生成部
１０７  入力データ格納部
１０９  パリティ格納部
２０１−１〜２０１−（Ｎ−Ｋ）  列ベクトル格納部
２０３、３０４−１〜３０４−Ｂ、７０５−１〜７０５−Ｂ、８０３−１〜８０３−Ｂ  ベクトル累積加算部
３０１−１〜３０１−Ｂ  行ブロックリファレンスベクトル格納部
３０２−１〜３０２−Ｂ、７０３Ａ−１〜７０３Ａ−Ｂ、７０３Ｂ−１〜７０３Ｂ−Ｂ  巡回シフト部
４０１−１〜４０１−Ｂ  行ブロックリファレンスベクトルインデクス格納部
４０２−１〜４０２−Ｂ、７０２−１〜７０２−Ｂ  ベクトル生成部
８０１−１〜８０１−Ｂ  行ブロックリファレンスベクトル生成部
９０１−１〜９０１−Ｍ  各モード行ブロックリファレンスベクトル生成部（モード行リファレンス生成部）
【図１】
2008086008.tif 000054
【図２】
2008086008.tif 000055
【図３】
2008086008.tif 000056
【図４】
2008086008.tif 000057
【図５】
2008086008.tif 000058
【図６】
2008086008.tif 000059
【図７】
2008086008.tif 000060
【図８】
2008086008.tif 000061
【図９】
2008086008.tif 000062
【図１０Ａ】
2008086008.tif 000063
【図１０Ｂ】
2008086008.tif 000064
【図１１】
2008086008.tif 000065
【図１２】
2008086008.tif 000066
【図１３】
2008086008.tif 000067
【図１４】
2008086008.tif 000068
【図１５】
2008086008.tif 000069
【図１６】
2008086008.tif 000070
【図１７】
2008086008.tif 000071
【図１８】
2008086008.tif 000072
【図１９】
2008086008.tif 000073
【図２０】
2008086008.tif 000074
【図２１】
2008086008.tif 000075
【図２２】
2008086008.tif 000076
【図２３】
2008086008.tif 000077
【図２４Ａ】
2008086008.tif 000078
【図２４Ｂ】
2008086008.tif 000079
【図２５】
2008086008.tif 000080
【図２６】
2008086008.tif 000081
【図２７】
2008086008.tif 000082