(57)【特許請求の範囲】
【請求項１】
ビット列の符号化方式であって、
第１のコーディングブロックビット数および第１のコード体系を選択することと、
前記ビット列から、複数の第１のビットブロックを生成すること、ここにおいて、前記複数の第１のビットブロックの各々が前記第１のコーディングブロックビット数のビットを含み、前記ビット列のうちで前記複数の第１のビットブロックに含まれない残りのビットの数が前記第１のコーディングブロックビット数よりも小さくなるように、前記複数の第１のビットブロックが生成される、と、
前記ビット列の前記残りのビットをグループ化して、前記第１のコーディングブロックビット数よりも少数のビットを含む一つの第２のビットブロックを生成することと、
前記第２のビットブロック用の第２のコード体系を選択することと、
前記第１のコード体系を用いて前記複数の第１のビットブロックを符号化するとともに前記第２のコード体系を用いて前記第２のビットブロックを符号化することとを含み、
前記第１のコード体系はプロダクトコードであることを特徴とする
ビット列の符号化方式。
【請求項２】
前記第２のコード体系は、前記第２のビットブロックのビットの数に基づいて選択されることを特徴とする
請求項１記載の符号化方式。
【請求項３】
前記第２のコード体系は、この第２のコード体系の入力ブロックサイズが、前記第２のビットブロックの前記ビットの数よりも大きくなるよう選択されることを特徴とする
請求項２記載の符号化方式。
【請求項４】
前記第２のコード体系は、複数の第２のコード体系のうちで、前記第２のビットブロックのビットの数よりも大きな最小の入力ブロックサイズを持つコード体系として選択されることを特徴とする
請求項３記載の符号化方式。
【請求項５】
前記第１のコーディングブロックビット数は、前記第１のコード体系の入力ブロックサイズに従って選択されることを特徴とする
請求項１〜４のいずれか一項記載の符号化方式。
【請求項６】
前記ビット列は、このビット列の送信のために符号化されて、前記第１のコード体系は、送信の最大許容ビットエラー率に基づいて選択されることを特徴とする
請求項１〜５のいずれか一項記載の符号化方式。
【請求項７】
前記最大許容ビットエラー率に基づいて、前記最大許容ビットエラー率に適合する複数のコード体系が選択され、前記第１のコード体系は、前記複数のコード体系の中で、少なくとも最大の符号化率か最大の符号化利得かを持ったコード体系として選択されることを特徴とする
請求項６記載の符号化方式。
【請求項８】
前記第１のコード体系はターボプロダクトコードであることを特徴とする
請求項７記載の符号化方式。
【請求項９】
前記第１のコード体系は、２つの拡張ハミングコードに基づくターボプロダクトコードであることを特徴とする
請求項８記載の符号化方式。
【請求項１０】
前記第２のコード体系はプロダクトコードであることを特徴とする
請求項１〜９のいずれか一項記載の符号化方式。
【請求項１１】
前記第２のコード体系はターボプロダクトコードであることを特徴とする
請求項１０記載の符号化方式。
【請求項１２】
前記第２のコード体系は、２つの拡張ハミングコードに基づくターボプロダクトコードであることを特徴とする
請求項１１記載の符号化方式。
【請求項１３】
さらに、符号化された第１のビットブロックおよび符号化された第２のビットブロックを送信することを含む
請求項１〜１２のいずれか一項記載の符号化方式。
【請求項１４】
前記符号化された複数の第１のビットブロックおよび前記符号化された第２のビットブロックは、ＯＦＤＭに従って送信されることを特徴とする
請求項１３記載の符号化方式。
【請求項１５】
さらに、符号化された複数の第１のビットブロックのデータおよび符号化された第２のビットブロックのデータを、変調シンボルへと写像することを含む
請求項１〜１４のいずれか一項記載の符号化方式。
【請求項１６】
さらに、前記符号化された複数の第１のビットブロックのデータおよび前記符号化された第２のビットブロックのデータを、ＯＦＤＭシンボルへと写像することを含む
請求項１５記載の符号化方式。
【請求項１７】
前記符号化された複数の第１のビットブロックのデータ量は、一つのＯＦＤＭシンボルへと写像されるデータの量とは異なっていることを特徴とする
請求項１６記載の符号化方式。
【請求項１８】
前記符号化された複数の第１のビットブロックのデータは、少なくとも２つのＯＦＤＭシンボルへと写像されることを特徴とする
請求項１７記載の符号化方式。
【請求項１９】
前記符号化された第２のビットブロックのデータ量は、一つのＯＦＤＭシンボルへと写像されるデータの量とは異なっていることを特徴とする
請求項１６〜１８のいずれか一項記載の符号化方式。
【請求項２０】
さらに、前記第２のコード体系への入力として適切となるよう、前記第２のビットブロックにビットのパディングを行うことを含む
請求項１〜１９のいずれか一項記載の符号化方式。
【請求項２１】
さらに、前記符号化された第２のビットブロックから、前記パディングビットの符号化から生じた少なくともいくつかの０であるビットを取り除くことを含む
請求項２０記載の符号化方式。
【請求項２２】
さらに、前記符号化された第２のビットブロックから、前記パディングビットの符号化から生じたすべての０であるビットを取り除くことを含む
請求項２１記載の符号化方式。
【請求項２３】
前記第１のコード体系と前記第２のコード体系とは、その入力データブロックのサイズおよび／または出力データブロックのサイズに関して、異なっていることを特徴とする
請求項１〜２２のいずれか一項記載の符号化方式。
【請求項２４】
第１のコーディングブロックビット数および第１のコード体系を選択するよう構成された第１の選択回路、と、
前記ビット列から、複数の第１のビットブロックと、一つの第２のビットブロックとを生成する細分回路、ここにおいて、前記複数の第１のビットブロックは、前記複数の第１のビットブロックの各々が前記第１のコーディングブロックビット数のビットを含み、前記ビット列のうちで前記複数の第１のビットブロックに含まれない残りのビットの数が前記第１のコーディングブロックビット数よりも小さくなるように生成され、前記第２のビットブロックは、前記ビット列の前記残りのビットをグループ化することにより、前記第１のコーディングブロックビット数よりも少数のビットを含むように生成される、と、
前記第２のビットブロック用の第２のコード体系を選択するよう構成された第２の選択回路と、
前記第１のコード体系を用いて前記複数の第１のビットブロックを符号化するとともに前記第２のコード体系を用いて前記第２のビットブロックを符号化するよう構成された処理回路とを備え、
前記第１のコード体系はプロダクトコードであることを特徴とする
ビット列を符号化する符号化回路。
【請求項２５】
コンピュータによって実行されたときに、このコンピュータに、ビット列を符号化する方法を行わせるコンピュータプログラムであって、この符号化方法は、
第１のコーディングブロックビット数および第１のコード体系を選択することと、
前記ビット列から、複数の第１のビットブロックを生成すること、ここにおいて、前記複数の第１のビットブロックの各々が前記第１のコーディングブロックビット数のビットを含み、前記ビット列のうちで前記複数の第１のビットブロックに含まれない残りのビットの数が前記第１のコーディングブロックビット数よりも小さくなるように、前記複数の第１のビットブロックが生成される、と、
前記ビット列の前記残りのビットをグループ化して、前記第１のコーディングブロックビット数よりも少数のビットを含む一つの第２のビットブロックを生成することと、
前記第２のビットブロック用の第２のコード体系を選択することと、
前記第１のコード体系を用いて前記複数の第１のビットブロックを符号化するとともに前記第２のコード体系を用いて前記第２のビットブロックを符号化することとを含み、
前記第１のコード体系はプロダクトコードであることを特徴とする
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に、ビット列の符号化（エンコーディング、encoding）方式および符号化回路に関する。
【背景技術】
【０００２】
例えば、ＯＦＤＭ（直交周波数分割多重方式、Orthogonal FrequencyDivision Multiplexing）とＴＰＣ（ターボプロダクトコード、ターボ符号、TurboProduct codes）が用いられるＩＥＥＥ８０２．１６−２００４による無線通信システムでは、ＴＰＣブロックのサイズは、ＯＦＤＭシンボルのサイズに一致するよう設計される。ＩＥＥＥ８０２．１６によって使用されるターボプロダクトコードのブロックの形式は、表１で与えられる。
【０００３】
【表１】
0005453268.tif 000002
【０００４】
このような通信システムでは、拡張ハミングコード（Extended HammingCode）とパリティ検査コード（Parity Check code）の２種類のコードが使用される。通常、パリティ検査コードは、拡張ハミングコードよりも符号化利得が小さい。
【０００５】
拡張ハミングコードとパリティ検査コードとを組み合わせることで、かなり高い符号化率を得ることができる。しかしこの場合には、拡張ハミングコードだけで定式化されたＴＰＣコードを使用する場合に比べて、符号化利得が低くなってしまう。
【０００６】
従来、長大な行および列の短縮（shortening）を用いて、一ブロックあたりのコード化されたビットの数を、一つのＯＦＤＭシンボルに一致させている。
【０００７】
一つのＯＦＤＭシンボルで送信可能なビットの数は、チャネル（伝送路）の状況（すなわち使用される通信チャネルの状態）によっておおよそ決まり、また使用されるＦＥＣ（前進型誤信号訂正、Forward Error correcting）コードの形式は、許容されるＢＥＲ（ビット誤り率、Bit Error Rate）によって決まる。高い処理能力を得るため、ＦＥＣコードは通常、ＢＥＲの性能を落とすことなく符号化率が高くなるように選択される。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のシステムでは、コードのサイズ（すなわちコードのブロック形式）がＯＦＤＭシンボルのサイズに一致しており、従って、高いＢＥＲの性能および高い符号化速度が得られるような選択可能なＦＥＣコードのサイズが、非常に制限されることとなっていた。
【課題を解決するための手段】
【０００９】
（発明の概要）
一実施形態では、ビット列の符号化方式は、第１のコーディングブロックビット数および第１のコード体系を選択することと、このビット列から、複数の第１のビットブロックを生成すること、ここにおいて、上記複数の第１のビットブロックの各々が第１のコーディングブロックビット数のビットを含み、前記ビット列のうちで前記複数の第１のビットブロックに含まれない残りのビットの数が前記第１のコーディングブロックビット数よりも小さくなるように、前記複数の第１のビットブロックが生成される、と、前記ビット列の前記残りのビットをグループ化して、上記第１のコーディングブロックビット数よりも少数のビットを含む一つの第２のビットブロックを生成することと、第１のコード体系とは異なる、第２のビットブロックに合った第２のコード体系を選択することと、第１のコード体系を用いて上記複数の第１のビットブロックを符号化するとともに第２のコード体系を用いて上記第２のビットブロックを符号化することとを含むよう、規定されている。
（図面の簡単な説明）
以下に、図面を参照して本発明の実施形態を説明する。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態によるフローダイヤグラムを示す図である。
【図２】本発明の一実施形態による符号化回路を示す図である。
【図３】本発明の一実施形態による送信機を示す図である。
【図４】本発明の一実施形態によるＯＦＤＭフレームを示す図である。
【図５】本発明の一実施形態による入力データブロックを示す図である。
【図６】本発明の一実施形態による出力コードブロックを示す図である。
【図７】本発明の一実施形態による短縮された出力コードブロックを示す図である。
【図８】本発明の一実施形態による短縮された出力コードブロックを示す図である。
【発明を実施するための形態】
【００１１】
（詳細な説明）
図１には、一実施形態によるビット列の符号化方式が示されている。
【００１２】
図１は、一実施形態によるフローダイヤグラム１００を示す。
【００１３】
１０１では、第１のコーディングブロックビット数および第１のコード体系が選択される。
【００１４】
１０２では、ビット列が、少なくとも一つの第１のビットブロックと、一つの第２のビットブロックとに細分される。ここで、上記少なくとも一つの第１のビットブロックの各々は、第１のコーディングブロックビット数のビットを含有するとともに、第２のビットブロックは、第１のコーディングブロックビット数よりも少数のビットを含有する。
【００１５】
１０３では、第１のコード体系とは異なる、第２のビットブロック用の第２のコード体系が選択される。
【００１６】
１０４では、第１のコード体系を用いて上記少なくとも一つの第１のビットブロックが符号化されるとともに、第２のコード体系を用いて第２のビットブロックが符号化される。
【００１７】
別の実施形態では、上述の符号化方式に従うコンピュータプログラムが与えられる。
【００１８】
また別の実施形態では、ビット列を符号化するための符号化回路が与えられる。これは図２に示されている。
【００１９】
図２は、一実施形態による符号化回路２００を示す。
【００２０】
符号化回路２００は、第１のコーディングブロックビット数および第１のコード体系を選択するよう構成された、第１の選択回路２０１を備える。
【００２１】
符号化回路２００はまた、上記ビット列を少なくとも一つの第１のビットブロックと一つの第２のビットブロックとに細分するよう構成された、細分回路２０２を備える。ここで、上記少なくとも一つの第１のビットブロックの各々は第１のコーディングブロックビット数のビットを含有するとともに、第２のビットブロックは第１のコーディングブロックビット数よりも少数のビットを含有する。
【００２２】
符号化回路２００の第２の選択回路２０３は、第１のコード体系とは異なる、第２のビットブロック用の第２のコード体系を選択するよう構成されている。
【００２３】
符号化回路２００はさらに、第１のコード体系を用いて上記少なくとも一つの第１のビットブロックを符号化するとともに第２のコード体系を用いて第２のビットブロックを符号化するよう構成された、処理回路２０４を備える。
【００２４】
符号化回路２００はまた、選択される可能性があるコード体系に関する情報（例えばプログラムコードやパラメータの値、ビットの組み合わせ規則など）をその内部に保存する、メモリを備えてもよい。
【００２５】
この実施形態に用いられるメモリは、例えばＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ、Dynamic Random Access Memory）などの揮発性メモリであってもよいし、例えばＰＲＯＭ（プログラマブルＲＯＭ、Programmable Read Only Memory）やＥＰＲＯＭ（消去可能ＰＲＯＭ、Erasable PROM）、ＥＥＰＲＯＭ（電気的消去可能ＰＲＯＭ、ElectricallyErasable PROM）、例えばフローティングゲートメモリやチャージトラップ型メモリなどのフラッシュメモリ、ＭＲＡＭ（磁気抵抗メモリ、Magnetoresistive Random Access Memory）、またはＰＣＲＡＭ（相変化メモリ、Phase Change Random Access Memory）などの不揮発性メモリであってもよい。
【００２６】
上記符号化回路は、例えば送信機の一部をなす。
【００２７】
換言すれば一実施形態では、例えばビット列の送信のために例えば前進型誤信号訂正（ＦＥＣ）で符号化されるこのビット列は、当該ビット列を一または複数のコード体系用の（複数の）入力データブロックへと細分することによって、符号化される。例えばこのビット列は、入力データブロックのビットサイズが最大となるように（すなわち、入力データブロックと関連していないビットの数が、一つの完全な入力データブロックとしては非常に少なくなるように）第１のコード体系用の所定サイズの複数の入力データブロックへと、細分される。残りのビットは、（場合によってはビットのパディング（padding）を伴って）グループ化されて、第２の入力データブロックを形成する。これにより、上記残りのビットが、多数のパディングビットが必要となるであろう第１のコード体系の入力データブロックとしては少なすぎる、という事実に起因する符号化率の低下を起こすことなく、第１のコード体系として大きなブロックビットサイズを選択する、すなわち第１のコーディングブロックビットサイズ数を大きくすることが可能となる。一実施形態では、第２のコード体系の入力データブロックが第１のコード体系の入力データブロックよりも小さくなるように第２のコード体系が選択され、従って、残りのビットに第１のコード体系を使う場合に比べて、必要なパディングビットの数が少なくなる。第２のコード体系は例えば、残りのすべてのビットが、第２のコード体系の一つの入力データブロックに適合するように選択される。
【００２８】
第１のビットブロックは例えば、符号化されて第１のコードブロックを生成する。第１のビットブロックは、例えば第１のコード体系の入力データブロックとみなされ、第１のコードブロックは、例えば第１のコード体系の出力データブロックとみなされる。同様に、第２のビットブロックは、例えば第２のコード体系の入力データブロックとみなされ、第２のビットブロックが符号化されてなる第２のコードブロックは、例えば第２のコード体系の出力データブロックとみなされる。コード体系の一つの入力データブロックは、例えば、各出力データブロックへとまとめて変換される複数のビットからなる、一つのブロックである。これは例えば、出力データブロックは、それぞれの入力データブロックのすべてのビットに依存する一方、異なる入力データブロックに対応する出力データブロック同士は互いに独立である、ということである。特に、ある出力データブロックは、その対応する入力データブロックのビットの値だけに依存する。
【００２９】
第１のコード体系と第２のコード体系とは、例えばその入力データブロックのサイズおよび／または出力データブロックのサイズに関して、異なっていてもよい。
【００３０】
一実施形態では、例えばＢＥＲの性能やデータ処理能力のような所望の品質要件に関し、コード体系の選択に関して高い柔軟性を可能とするデータの符号化方式が提供される。
【００３１】
一実施形態において、「回路」という言葉は、任意の種類の論理実行要素、例えばハードウェアやソフトフェア、ファームウェア、あるいはこれらのあらゆる組み合わせと解釈される。従って、一実施形態では、「回路」は、例えば配線で接続された論理回路であってもよいし、例えばマイクロプロセッサ（例えばＣＩＳＣ（複数命令セットコンピュータ、Complex Instruction Set Computer）プロセッサやＲＩＳＣ（縮小命令セット・コンピュータ、Reduced Instruction Set Computer）プロセッサ）などのプログラム可能な処理装置のような、プログラム可能な論理回路であってもよい。「回路」はまた、プロセッサによって実施または実行されるソフトフェア、すなわち、例えばＪａｖａ（登録商標）などの例えばバーチャルマシンコードを用いたコンピュータプログラムのような、例えば任意の種類のコンピュータプログラムなどであってもよい。以下に詳細に説明する、その他あらゆる種類の各機能の実施方法は、別の実施形態による「回路」であると解釈されるものである。
【００３２】
「ビット列の符号化方式」の場合に関して説明する各実施形態は、コンピュータプログラムや符号化回路の場合についても同様に有効である。
【００３３】
一実施形態において、第２のコード体系は、第２のビットブロックのビットの数に基づいて選択される。例えば、第２のコード体系は、この第２のコード体系の入力ブロックサイズが第２のビットブロックのビットの数よりも大きくなるよう選択される。この第２のコード体系は例えば、複数の第２のコード体系のうちで、第２のビットブロックのビットの数よりも大きな最小の入力ブロックサイズを持つコード体系として、選択される。
【００３４】
一実施形態において、第１のコーディングブロックビット数は、第１のコード体系の入力ブロックサイズに従って選択される。
【００３５】
一実施形態において、ビット列は、このビット列の送信のために符号化されて、第１のコード体系は送信の際の最大許容ビットエラー率に基づいて選択される。例えば、最大許容ビットエラー率に基づいて、この最大許容ビットエラー率に適合する複数のコード体系が選択されて、第１のコード体系が、これら複数のコード体系の中で最大の符号化率および／または最大の符号化利得を持つコード体系として選ばれる。
【００３６】
一実施形態において、第１のコード体系はプロダクトコードであり、例えばターボプロダクトコードである。例えば第１のコード体系は、２つの拡張ハミングコードに基づくターボプロダクトコードである。
【００３７】
一実施形態において、第２のコード体系はプロダクトコードであり、例えばターボプロダクトコードである。例えば第２のコード体系は、２つの拡張ハミングコードに基づくターボプロダクトコードである。別の実施形態では、第１のコード体系および／または第２のコード体系は、他のコード（互いに異なるコードであってもよい）、例えばパリティコードとハミングコードや、２つのパリティコードなどに基づいている。
【００３８】
一実施形態において、この方式はさらに、符号化された第１のビットブロックおよび符号化された第２のビットブロックを送信することを含む。例えば、符号化された第１のビットブロックおよび符号化された第２のビットブロックは、ＯＦＤＭに従って送信される。
【００３９】
一実施形態において、この方式はさらに、符号化された第１のビットブロックのデータおよび符号化された第２のビットブロックのデータを、変調シンボルへと写像（mapping）することを含む。この方式は例えば、さらに、符号化された第１のビットブロックのデータおよび符号化された第２のビットブロックのデータを、ＯＦＤＭシンボルへと写像することを含む。一実施形態では、一つの符号化された第１のビットブロックのデータ量は、一つのＯＦＤＭシンボルへと写像されるデータの量とは異なっている。符号化された第１のビットブロックのデータ量は、例えば符号化された第１のビットブロックのビットの数を意味する。つまり、この実施形態においては、符号化された第１のビットブロックを含むコードブロックのサイズは、ＯＦＤＭシンボルのサイズとは一致しない。
【００４０】
一実施形態において、一つの符号化された第１のビットブロックのデータは、少なくとも２つのＯＦＤＭシンボルへと写像される。
【００４１】
一実施形態において、一つの符号化された第２のビットブロックのデータ量は、一つのＯＦＤＭシンボルへと写像されるデータの量とは異なっている。
【００４２】
この方式はさらに、第２のコード体系への入力として適切となるよう、第２のビットブロックにビットのパディングを行うことを含んでもよい。
【００４３】
一実施形態において、この方式はさらに、上記符号化された第２のビットブロックから、パディングビットの符号化から生じた少なくともいくつかの０であるビットを取り除くことを含む。例えばこの方式はまた、上記符号化された第２のビットブロックから、パディングビットの符号化から生じたすべての０であるビットを取り除くことを含む。
【００４４】
図３は、一実施形態による送信機３００を示す。
【００４５】
この実施例では、送信機３００は、データソース３０１から供給されたデータを送信するためにＯＦＤＭ（直交周波数分割多重方式、Orthogonal Frequency Division Multiplexing）を用いる。
【００４６】
データソース３０１から供給されたデータは、データブロック３０２へとグループ化されて、このデータブロック３０２は符号化回路３０３へと供給される。符号化回路３０３は、そのコードブロック形式に従ってデータブロック３０２を符号化する。つまり符号化回路３０３は、一または複数のデータブロック３０２から、（以下で、一コードブロックあたりの（有用な）データビットの数とみなされる）特定の数のビットを含んだ一つの入力データブロックを使い、この入力データブロックから、（以下で、一コードブロックあたりのコード化されたビットの数とみなされる）特定の数のビットを含んだ一つの出力コードブロックを生成する。この例では、使用されるコード体系としてターボプロダクトコードを想定するので、出力コードブロックはこの例ではＴＰＣブロックとみなされる。
【００４７】
複数のＴＰＣブロック３０４が変調回路３０５へと供給されて、変調回路３０５は、これらＴＰＣブロック３０４のビットから一連のＯＦＤＭシンボル３０６を生成する。それぞれのＯＦＤＭシンボルは、そのＯＦＤＭ方式によって用いられる各副搬送波、例えば６４個または１２８個の副搬送波に合った、ある変調シンボル（例えばＱＡＭ６４（QAM：直交振幅変調、Quadratur Amplitude Modulation）やＰＳＫ（位相偏移変調、Phase Shift Keying）による変調シンボル）を含んでいる。一連のＯＦＤＭシンボル３０６はＯＦＤＭフレームへとグループ化されて、基本伝送フォーマットを形成する。
【００４８】
そして、ＯＦＤＭシンボル３０６はＩＦＦＴ回路３０７へと供給される。ここで、ＩＦＦＴ回路３０７は逆高速フーリエ変換を行うとともに、その出力を、例えばデジタル−アナログ変換回路とミキサと一または複数の送信アンテナとを備えてＩＦＦＴ回路３０７の出力を電波信号として送信する、送信回路３０８へと供給する。
【００４９】
なお、送信機３００に他の回路を設けてもよい。例えば、符号器（encoder）３０３と変調回路３０５との間に、ＴＰＣブロック３０４のビットを交互配置するインターリービング回路を設けてもよい。
【００５０】
この実施形態では、一つのＯＦＤＭ（シンボル）フレームは、等しい長さおよびサイズを持った「Ｑ」個のＯＦＤＭシンボルをちょうど含有する、一つのデータ構造を意味する。ＯＦＤＭフレームとＴＰＣブロックとの関係は、図４に示されている。
【００５１】
図４は、一実施形態によるＯＦＤＭフレーム４００を示す。
【００５２】
上述のように、ＯＦＤＭフレーム４００は複数のＯＦＤＭシンボル４０１を含む。これらＯＦＤＭシンボル４０１は、そこからＯＦＤＭシンボル４０１が生成される多数のＴＰＣブロック４０２に、対応している。すなわち、ＴＰＣブロック４０２のデータは、例えば使用される変調方式に従う配置写像（constellation mapping）を用いて、ＯＦＤＭシンボル４０１へと写像される。つまり、例えば、一番目のＯＦＤＭシンボル４０１は一番目のＴＰＣブロック４０２の最初のいくつかのビットから生成され、すなわちこれらのビットに従って各副搬送波用の変調シンボルが選択され、二番目のＯＦＤＭシンボル４０１は、一番目のＴＰＣブロック４０２の次のいくつかのビットから生成される、などとなっている。
【００５３】
一実施形態において、ＴＰＣブロック４０２のサイズは、ＯＦＤＭシンボル４０１のサイズとは一致しない。特に、最後のＯＦＤＭシンボル４０１が十分な数のビットを持つには、パディングビット４０３が必要となる場合もある。
【００５４】
一般に、一つのターボプロダクトコードは複数のコードに対応する（入力データブロックが行列形式で記述されている場合には、例えば、一つのコードが行に対応するとともにもう一方のコードが列に対応するとみなすことができる）。これら２つのコードは、ターボプロダクトコードの成分（component）ともみなされ、同じサイズであってもよいのと同様に同じ形式であってもよい。以下では、「コードのサイズ」とは、コードの入力データブロックのサイズおよび／または出力コードブロックのサイズを意味するものとして、用いられる。
【００５５】
ターボプロダクトコードの成分として可能な形式としては、例えばパリティコードやハミングコード、拡張ハミングコード、ＢＣＨ（Bose Chaudhuri Hocquenghem）コードなどがある。例えば、上記例のうちの任意の２つが、ＴＰＣ（ブロック）コードとして使用される。例えばＴＰＣコードの成分は、例えば所望のＢＥＲの性能や所望の符号化率、実装しやすさなどのパラメータに基づいて、選択されるようになっている。
【００５６】
表２に、異なるサイズで構成される２つのコードの、可能な組み合わせの例を示す。ここで、２つのコードは例えばすべて同じ形式であり、この例では拡張ハミングコードである。
【００５７】
【表２】
0005453268.tif 000003
【００５８】
よって、ターボプロダクトコードのサイズはＴＰＣ（ｎｘ，ｋｘ）（ｎｙ，ｋｙ）と与えられる。ここで、（ｎｘ，ｋｘ）は第１の成分のサイズを与え、（ｎｙ，ｋｙ）は第２の成分のサイズを与える。ここで、ｎｘとｎｙの積は、ターボプロダクトコードの各出力コードブロックのビットの数であり、ｋｘとｋｙの積は、ターボプロダクトコードの各入力データブロックのビットの数である。
【００５９】
表２には、短縮を行わない場合の、拡張ハミングコードを基としたＴＰＣブロックのサイズの範囲が記載されている。一実施形態において、（１２８，１２０）（１２８，１２０）よりも大きなサイズを持ったＴＰＣを用いてもよい。表２から、ターボプロダクトコードの符号率（符号化速度、code rate）は、サイズに伴って増加することがわかる。
【００６０】
従って一実施形態では、データブロック３０２を符号化するために、例えば複数の所定の許容されるターボプロダクトコードのうちで、少なくとも部分的には、最大のサイズを持ったＴＰＣが用いられる。
【００６１】
一実施形態において、基本となる方法は、ＯＦＤＭフレーム用のＴＰＣブロックのブロックサイズを、最大化することである。これにより、符号率および符号化利得を最大化することができる。一実施形態では、符号化は以下の手順に従って行われる。
i．「Ｐ」個のＴＰＣブロックが、一つのＯＦＤＭフレームの中にある（すなわち、図２に示すようなＯＦＤＭフレームに対応する）とする。ここで、「Ｐ」は「Ｑ」とは異なるとする。
ii．同じサイズを持つように、最初の「Ｐ−１」個のＴＰＣブロックが選択される。これらのブロックは、このＯＦＤＭフレームの主要ブロック（primary block）形式のブロックとみなされる。最後のＴＰＣブロックは、異なるサイズであってもよい。このブロックは、このＯＦＤＭフレームの代替ブロック（alternative block）形式のブロックとみなされる。
iii．所望のビット誤り率（ＢＥＲ）に基づいて、主要ブロック形式が選択される。
iv．代替ブロック形式のサイズは、主要ブロック形式のサイズ以下となるよう選択される。一般に、コードのエラー修正能力は、ブロックサイズが小さいほど高くなる。従って、全体として見たフレームのエラー修正能力は、代替ブロック形式によっては制限されない。
v．代替ブロック（すなわち代替ブロック形式のブロック）に、短縮を適用する（あるいは適用しなくてもよい）。
【００６２】
要するに、所望のビット誤り率に基づいて、特定のサイズのＴＰＣコードが選択される。このＴＰＣコードは、データブロック３０２を入力データブロックとして、これらデータブロック３０２のデータを符号化するのに用いられる。その結果は「Ｐ−１」個の出力コードブロックであって、これらは、この例においてＴＰＣブロックとみなされるものでもある。これら「Ｐ−１」個のＴＰＣブロックは、すべて同じサイズを持っている。これら「Ｐ−１」個のＴＰＣブロックに加えて、「Ｐ」番目のＴＰＣブロックが生成される。「Ｐ−１」個のＴＰＣブロックと「Ｐ」番目のＴＰＣブロックとで、一つのＯＦＤＭフレームの複数のＯＦＤＭシンボルへと写像されるビット列を形成する。主要ブロックサイズの「Ｐ」個のＴＰＣブロックが、一つのＯＦＤＭフレームへと写像されるのと全く同じ長さのビット列を形成する場合を除いて、「Ｐ」番目のＴＰＣブロックは、主要ブロック形式の「Ｐ−１」個のＴＰＣブロックよりも短くなっているはずである。従って、「Ｐ」番目のＴＰＣブロックを生成するＴＰＣコードは、主要ブロック形式の「Ｐ−１」個のＴＰＣブロックを生成するのに用いられるＴＰＣコードとは、異なるサイズを持っている。従って、そこから「Ｐ」番目のＴＰＣブロック（これは、代替ブロック形式のＴＰＣブロックとみなされるものでもある）が生成される入力データブロックのサイズは、そこから最初の「Ｐ−１」個のＴＰＣブロックが生成される入力データブロックよりも、小さくなっている。つまり、そこから「Ｐ」個のＴＰＣ出力コードブロックが生成される入力データブロック３０２からのデータは、第１のサイズの「Ｐ−１」個の入力データブロックと、第１のサイズよりも小さな第２のサイズの「Ｐ」番目の入力データブロックとに、分類されるということである。最初の「Ｐ−１」個の入力データブロックには、例えば第１のサイズのコードの、第１のコード体系が用いられ、「Ｐ」番目の入力データブロックには、例えば第１のサイズよりも小さな第２のサイズのコードの、第２のコード体系が用いられる。
【００６３】
以下では、一つの入力データブロック３０２が、一つのＯＦＤＭデータフレームを用いて送信されるのとちょうど同じ量の（有用な）データを含む場合を考える。また、このデータブロック３０２のサイズは、「Ｌ」ビットであるとする。
【００６４】
一実施形態において、主要ブロック形式は、例えば可能なブロック形式（換言すればＴＰＣサイズ）の一群から、必要なＢＥＲを兼ね備えた（すなわち要求されるＢＥＲに適合する）複数の主要ブロック形式のうちで最も高い符号化率を持つものが、選択される。主要ブロック（すなわち主要ブロック形式のＴＰＣブロック）の数Ｐpbは、以下のように算出される。
【００６５】
【数１】
0005453268.tif 000004
【００６６】
ここで
【００６７】
【数２】
0005453268.tif 000005
【００６８】
は床関数であり、Ｕpb＝ｋx・ｋyは、サイズがＴＰＣ（ｎx，ｋx）（ｎy，ｋy）であり主要ブロックを生成するのに用いられるコードの、コード化前のビットの数を表す。つまりＵpbは、（主要コードの形式とみなされる）主要ブロックを生成するのに用いられるターボプロダクトコードの、入力データブロックサイズである。
【００６９】
データブロックの残りのビットＢａｂ、すなわち、主要ブロックの生成に用いられる入力データブロックの一部ではないビットは、代替ブロックを生成するコード（これは代替コードとみなされる）の入力として用いられる。例えばＢａｂは、以下のように算出される。
【００７０】
【数３】
0005453268.tif 000006
【００７１】
一実施形態では、代替ブロック形式は以下の基準によって選択される。
vi．表３から、Ｂａｂを基に、代替ブロックとして最大のサイズを持つコード形式を選択する。このとき、上記ivも同時に適用されることに注意する。
【００７２】
【表３】
0005453268.tif 000007
【００７３】
表３は、可能な複数の代替コードの分析から導き出される。表３に記載された条件は、説明の為だけのものである。例えば固有の外部条件に起因するような、別の組み合わせも可能である。例えば、データブロックの長さが８の倍数であって、主要ブロックサイズがＴＰＣ（３２，３６）（３２，２６）の場合には、表３の左の列に記載された条件のうちで奇数の境界は用いられない。表３は、最大のサイズがＴＰＣ（６４，５７）（６４，５７）までの条件を示しているにすぎない。表３による選択方式を、より大きなＴＰＣサイズまで拡張してもよい。
【００７４】
例えば代替コードとして選択される可能性があるコード体系のために（また同様に、主要コードとして選択される可能性があるコード体系のために）、送信機３００のメモリ内に、これらのコード体系で用いられる処理情報が保存されてもよい。例えば、これら様々なコード体系を実行するための、プログラムコードが保存されてもよい。また、様々なコード体系のために、これら様々なコード体系のパラメータ値（例えば入力ブロックサイズなど）が保存されてもよい。一例として、コード体系ごとに、コード体系によってどのように入力データブロックのビットが組み合わされて対応する出力データブロックが生成されるかについての説明書き（specification）が保存されていてもよい。
【００７５】
一例として、Ｌ＝２８９６ビットとする。チャネルの状況のため、使用可能な中で最大の符号化率を持つＴＰＣがＴＰＣ（３２，２６）（３２，２６）である、と決められている場合を考える。つまり、主要コードはＴＰＣ（３２，２６）（３２，２６）で与えられるということである。またこの例では、主要コードが、２つの拡張ハミングコードの組み合わせに基づく所定サイズのＴＰＣであるとする。
【００７６】
[数１]から、Ｐｐｂ＝４である。
【００７７】
[数３]から、Ｂａｂ＝２８９６−４＊６７６＝１９２が得られる。
【００７８】
従ってこの例では、表３を基に、代替ブロックサイズはＴＰＣ（１６，１１）(３２，２６)と選択される。
【００７９】
一実施形態では、コードの符号率を最大化するために、短縮（またはパンクチュアリング（puncturing））を用いて、不必要であって符号率を減少させている任意のパッドされたビットを取り除く。
【００８０】
ブロックコードのために、行短縮、列短縮または両方の組み合わせを行ってもよい。データブロックサイズ「Ｌ」が既知でなく且つ予め固定されていない場合には、行短縮と列短縮の両方を用いると、実行の際に多少の困難が生じる。「Ｌ」の範囲が大きく可変である場合には、ＶＬＳＩ（超ＬＳＩ、Very Large Scale Integration）ロジックを用いてすべての可能な「Ｌ」に合った最適な行短縮および列短縮を決定することは、一般に自明ではない。
【００８１】
以下に、行短縮を用いた実施形態について説明する。下記の方法はまた、列短縮に用いてもよい。
【００８２】
主要ブロックが上述のように生成される場合には、主要ブロックには短縮は必要ではない。代替ブロックでは、望ましい短縮の量は、Ｂａｂに依存する。
【００８３】
Ｂａｂは、代替ブロックを生成するのに用いられるデータビットの数なので、代替ブロック（が、代替コードの入力データブロックとして必要なビットの全数を持つの）に必要なパディングビットの数は、
【００８４】
【数４】
0005453268.tif 000008
【００８５】
である。ここで、Ｕabは代替ブロックのコード化前のビットの数、すなわち代替コードの入力データブロックサイズである。
【００８６】
上述のＢａｂ＝１９２の例では、Ｂｐａｄ＝２８６−１９２＝９４である。
【００８７】
図５には、パディングビットとともにＴＰＣ（３２，２６）（１６，１１）に従ってコード化されることとなる、符号化前の入力データブロックが示されている。
【００８８】
図５は、一実施形態による入力データブロック５００を示す。
【００８９】
番号８，９，１０の行は、すべてパディングビット（３＊２６＝７８個のパディングビット）からなることがわかる。番号７の行の１６個の０と合わせて、これらで９４個のパディングビットを形成する。
【００９０】
図６は、一実施形態による出力コードブロック６００を示す。
【００９１】
この出力コードブロックは、図５に示す入力データブロック３００からＴＰＣ（３２，２６）（１６，１１）によって生成された、ＴＰＣブロックである。この例では、最後の３行（番号１３，１４，１５の行）はすべてのビットが０なので、短縮することができる（例えば、ＴＰＣブロックが変調回路３０５へと移動する前に除外される）。
【００９２】
すべてのビットが０というわけではない行番号１２については、例えば２つの選択肢がある。
【００９３】
選択肢１：行の中の０のビットを気にせず、行全体を送信する（すなわち、行全体をＯＦＤＭシンボルへと写像する）。これは、図７に示されている。
【００９４】
図７は、一実施形態による短縮された出力コードブロック７００を示す。
【００９５】
短縮された出力コードブロック７００では、０だけを含む最後の３行が取り除かれているが、行番号１２すなわち実際の有用なデータビットを含む最後の行の中の、パディングに起因する残りの０のビットは、取り除かれていない。
【００９６】
選択肢２：送信の前に、（パディングに起因する）０のビットを取り除く。これは、図８に示されている。
【００９７】
図８は、一実施形態による短縮された出力コードブロック８００を示す。
【００９８】
短縮された出力コードブロック８００では、０だけを含む最後の３行が取り除かれているとともに、行番号１２すなわち実際の有用なデータビットを含む最後の行の中の、パディングに起因する残りの０のビットも、取り除かれている。
【００９９】
選択肢１と選択肢２とは、実施の複雑さと符号化率との間のかね合いを基に選択される。データブロックのサイズ「Ｌ」が大きな場合には、有効なデータ（換言すれば有用なデータ）を有するＴＰＣの最後の行（上例では行１２）の０のビットは、符号化率には大きな影響は与えない。
【０１００】
短縮後のＴＰＣブロック内のビットの数は、まず最初にパッドされた行の数を以下のように決めることによって、算出できる。
【０１０１】
【数５】
0005453268.tif 000009
【０１０２】
ここで
【０１０３】
【数６】
0005453268.tif 000010
【０１０４】
は床関数であり、Ｂpadは[数４]で与えられ、またｋxは、ＴＰＣブロックの、一行あたりのコード化前のデータビットの数である。
【０１０５】
Ｌ＝２８９６およびＢｐａｄ＝９４である上述の例では、Ｎｐａｄ＝３である。
【０１０６】
短縮後のＴＰＣブロックあたりのコード化されたビットの数は、選択肢１では以下のように算出され、
【０１０７】
【数７】
0005453268.tif 000011
【０１０８】
また選択肢２では、
【０１０９】
【数８】
0005453268.tif 000012
【０１１０】
と算出される。ここで、サイズがＴＰＣ（ｎｘ，ｋｘ）（ｎｙ，ｋｙ）のＣａｂ＝ｎｘ・ｎｙは、代替ブロック内のコード化されたビットの数である。
【０１１１】
ＴＰＣブロックの符号化率は、以下のように算出される。
【０１１２】
【数９】
0005453268.tif 000013
【０１１３】
ここで
【０１１４】
【数１０】
0005453268.tif 000014
【０１１５】
は床関数であり、Ｃpb＝ｎx・ｎyは、サイズがＴＰＣ（ｎx，ｋx）（ｎy，ｋy）である主要ブロック内のコード化されたビットの数である。Ｃab＝ｋx・ｋyは、主要ブロックのコード化前のビットの数（すなわち、主要ブロックの入力データブロックのビットの数）である。Ｂpadは[数４]で、Ｃab#padは[数７]または[数８]で、それぞれ与えられる。
【０１１６】
このシステムの実際の符号化率を算出するため、コード化されたビットをＯＦＤＭシンボルへ写像することを考える。図２から、コード化されたビット（すなわち、複数のＴＰＣブロック４０２の中のビット）の総数（場合によっては短縮を行った後）は、一つのＯＦＤＭシンボルには適合しないことがわかる。従って、最後のＯＦＤＭシンボルに対してパディングビット４０３が用いられる。
【０１１７】
一つのＯＦＤＭシンボルフレームを用いて送信されるコード化されたビットの総数を、Ｃｔｏｔａｌとする。これは、
【０１１８】
【数１１】
0005453268.tif 000015
【０１１９】
と与えられる。一つのＯＦＤＭフレーム内のＯＦＤＭシンボルの数を決めるために、Ｎｃｂｐｓを、ＯＦＤＭシンボルあたりのコード化されたビットの数（number of coded bits per OFDM symbol）、すなわち、一つのＯＦＤＭシンボルを用いて送信されるコード化されたビットの数とする。この値は、例えば変調方式（ＱＡＭ６４，ＰＳＫなど）と使用される副搬送波の数によって決まる。よって、ＯＦＤＭフレームあたりのＯＦＤＭシンボルの数は、
【０１２０】
【数１２】
0005453268.tif 000016
【０１２１】
と与えられる。ここで
【０１２２】
【数１３】
0005453268.tif 000017
【０１２３】
は天井関数である。
【０１２４】
従って符号化率は、最後のＯＦＤＭシンボルに行われるパディングを考慮して、
【０１２５】
【数１４】
0005453268.tif 000018
【０１２６】
と与えられる。符号化率は、代替ブロックと、最後のＯＦＤＭシンボルのパディングビットの数に依存することがわかる。
【０１２７】
一実施形態では、高い符号率を安定して確保するために、一または複数の以下の指針に従う。
・長さが長くなるよう、データブロックの長さ「Ｌ」を選択する。
・最後のＯＦＤＭシンボルのバディングビットの数が最小となるよう、データブロックの長さ「Ｌ」を選択する。
・行短縮を適用する場合には、ＴＰＣブロックの行サイズを、行サイズと列サイズが同じでない場合にはＴＰＣの列サイズよりも小さくなるように選択する。列短縮を適用する場合には（例えば上記行短縮の場合と同様に）、ＴＰＣの列サイズを、列サイズと行サイズが同じでない場合には行サイズよりも小さくなるように選択する。
【０１２８】
一実施形態では、一つのＯＦＤＭベースのシステム用の複数のターボプロダクトコードの、定式化または設計の方式が与えられる。既存のシステムと比較して、良好な符号化利得とともにより高い符号化率を得ることができる。一実施形態では、この符号化は簡単に実行でき、またＴＰＣコードの選択においてより高い柔軟性をもたらすことができる。さらに、ＴＰＣコードを使った従来のＯＦＤＭベースのシステムに比べて、以下の利点がある。
・ＢＥＲの性能を落とすことなく、より高い符号化率が可能である。
・ＴＰＣに用いられる成分コードは、ＴＰＣブロックのサイズには限定されない。これ    は、単純なパリティコードの代わりに、例えば拡張ハミングコードなどのより強力な    コードが使える、ということことである。
・一つのフレーム内のデータブロック長の範囲を、より広くすることが可能である。
・ＴＰＣコードからは、ＯＦＤＭシンボルのサイズを制限するものはない。よって、Ｏ    ＦＤＭシンボルあたりのビットの数は、純粋にチャネルの状況によって決定されるこ    とになる。これによって、物理レイヤのフロントエンドの設計の柔軟性を、より高め    ることができる。
・ＴＰＣブロックの形式が限定されるので、この方式は実行が容易である。一実施形態    では、拡張ハミングコードだけが用いられる。また従来の方式に比べて、設計に必要    な「短縮」が、非常に単純である。
【０１２９】
本発明の実施形態は、３Ｇシステムや、有線ＬＡＮ通信システム、光通信システム、磁気記憶システムおよび、チャネルコードを含むあらゆる通信システムに使用可能である。例えば各実施形態は、３ＧＰＰ（第３世代移動体通信システムの標準規格、Third Generation Partnership Project）やＦＯＭＡ（Freedom of Mobile Access）、ＣＤＭＡ２０００（CDMA：符号分割多重アクセス方式、Code Division Multiple Access）による携帯通信システムに用いられてもよい。
【図１】
0005453268.tif 000019
【図２】
0005453268.tif 000020
【図３】
0005453268.tif 000021
【図４】
0005453268.tif 000022
【図５】
0005453268.tif 000023
【図６】
0005453268.tif 000024
【図７】
0005453268.tif 000025
【図８】
0005453268.tif 000026