(57)【特許請求の範囲】
【請求項１】
予め決められたサイズを有するデータ・フレームの複数の部分をインターリーブする装置であって、
前記データ・フレームを受信して記憶する手段と、
前記データ・フレームを、前記複数の部分に分離する手段と、
ｉ(ｎ)＝αｎmod(Ｐ)に従って、前記複数の部分を並び替える手段であって、Ｐは、前記データ・フレームの前記予め決められたサイズより大きい素数であり、ｎは、１からＰ−１までの範囲にある整数であり、αは、Ｐの原始根であり、該Ｐ、ｎ、およびαにより、ｉ(ｎ)は、１と前記予め決められたサイズとの間にある一意の数とされる、手段と、
を備える、装置。
【請求項２】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項１に記載の装置。
【請求項３】
前記並び替える手段は、ＡＳＩＣ（特定用途向けＩＣ）を使用して達成される、
請求項１に記載の装置。
【請求項４】
前記並び替える手段は、マイクロプロセッサを使用して達成される、
請求項１に記載の装置。
【請求項５】
前記並び替える手段は、ソフトウェアを使用して達成される、
請求項１に記載の装置。
【請求項６】
さらに、
前記並び替える手段により並び替えられたシーケンスに従って、前記複数の部分をデインターリーブする手段を備える、
請求項１に記載の装置。
【請求項７】
さらに、
前記データ・フレームを受信して記憶する手段は、予め決められた行サイズを有する複数の行および予め決められた列サイズを有する複数の列によりインデックス付けされた前記データ・フレームを受信して記憶するよう構成されたメモリを含み、該予め決められた行サイズと該予め決められた列サイズの積は、該データ・フレームの前記予め決められたサイズに等しく、
前記分離する手段は、前記メモリに接続されたプロセッサを含んでおり、
該プロセッサは、前記データ・フレームを前記複数の部分に分離し、ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分が並び替えられたシーケンスを生成するよう構成されており、Ｐ１は、前記予め決められた行サイズより大きい素数であり、ｎ１は、１からＰ１−１までの範囲にある整数であり、α１は、Ｐ１の原始根であり、該Ｐ１、ｎ１およびα１により、ｉ１(ｎ１)は、１と前記予め決められた行サイズとの間にある一意の数とされ、
さらに、該プロセッサは、ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分が並び替えられたシーケンスを生成するよう構成されており、Ｐ２は、前記予め決められた列サイズより大きい素数であり、ｎ２は、１からＰ２−１までの範囲にある整数であり、α２は、Ｐ２の原始根であり、該Ｐ２、ｎ２およびα２により、ｉ２(ｎ２)は、１と前記予め決められた列サイズとの間にある一意の数とされ、
該プロセッサによる、前記複数の部分が並び替えられたシーケンスの生成により、前記データ・フレームの該複数の部分がインターリーブされる、
請求項１に記載の装置。
【請求項８】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項７に記載の装置。
【請求項９】
前記プロセッサは、ＡＳＩＣ（特定用途向けＩＣ）である、
請求項７に記載の装置。
【請求項１０】
さらに、前記並び替えられたシーケンスｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分をデインターリーブするデインターリーバを備える、
請求項７に記載の装置。
【請求項１１】
さらに、前記並び替えられたシーケンスｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分をデインターリーブするデインターリーバを備える、
請求項７に記載の装置。
【請求項１２】
前記データ・フレームを受信して記憶する手段は、該データ・フレームを受信して記憶するよう構成されたメモリを含み、
前記分離する手段は、前記メモリに接続されたプロセッサを含んでおり、該プロセッサは、前記データ・フレームを前記複数の部分に分離し、ｉ(ｎ)＝αｎmod(Ｐ)に従って、該複数の部分が並び替えられたシーケンスを生成し、
Ｐは、前記データ・フレームの前記予め決められたサイズより大きい素数であり、ｎは、１からＰ−１までの範囲にある整数であり、αは、Ｐの原始根であり、該Ｐ、ｎおよびαにより、ｉ(ｎ)は、１と前記予め決められたサイズとの間にある一意の数とされ、
該プロセッサによる該複数の部分が並び替えられたシーケンスの生成により、該データ・フレームの該複数の部分がインターリーブされる、
請求項１に記載の装置。
【請求項１３】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項１２に記載の装置。
【請求項１４】
前記プロセッサは、ＡＳＩＣ（特定用途向けＩＣ）である、
請求項１２に記載の装置。
【請求項１５】
さらに、
前記並び替えられたシーケンスに従って、前記複数の部分をデインターリーブするデインターリーバを備える、
請求項１２に記載の装置。
【請求項１６】
さらに、
予め決められた行サイズを有する複数の行および予め決められた列サイズを有する複数の列により前記データ・フレームをインデックス付けする手段であって、該予め決められた行サイズと該予め決められた列サイズの積は、該データ・フレームの前記予め決められたサイズに等しい、手段と、
ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分を並び替える手段であって、Ｐ１は、前記予め決められた行サイズより大きい素数であり、ｎ１は、１からＰ１−１までの範囲にある整数であり、α１は、Ｐ１の原始根であり、該Ｐ１、ｎ１およびα１により、ｉ１(ｎ１)は、１と前記予め決められた行サイズとの間にある一意の数とされる、第１の並び替える手段と、
ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分を並び替える手段であって、Ｐ２は、前記予め決められた列サイズより大きい素数であり、ｎ２は、１からＰ２−１までの範囲にある整数であり、α２は、Ｐ２の原始根であり、該Ｐ２、ｎ２およびα２により、ｉ２(ｎ２)は、１と前記予め決められた列サイズとの間にある一意の数とされる、第２の並び替える手段と、
を備える、請求項１に記載の装置。
【請求項１７】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項１６に記載の装置。
【請求項１８】
前記第１および第２の並び替える手段は、ＡＳＩＣ（特定用途向けＩＣ）を使用して達成される、
請求項１６に記載の装置。
【請求項１９】
前記第１および第２の並び替える手段は、マイクロプロセッサを使用して達成される、
請求項１６に記載の装置。
【請求項２０】
前記第１および第２の並び替える手段は、ソフトウェアを使用して達成される、
請求項１６に記載の装置。
【請求項２１】
さらに、
前記第１の並び替える手段により並び替えられたシーケンスｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分をデインターリーブするデインターリーバ手段を備える、
請求項１６に記載の装置。
【請求項２２】
さらに、前記第２の並び替える手段により並び替えられたシーケンスｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分をデインターリーブするデインターリーバ手段を備える、
請求項１６に記載の装置。
【請求項２３】
予め決められたサイズを有するデータ・フレームの複数の部分をインターリーブする方法であって、
前記データ・フレームを受信して記憶するステップと、
前記データ・フレームを前記複数の部分に分離するステップと、
ｉ（ｎ）＝αｎｍｏｄ（Ｐ）に従って、前記複数の部分を並び替えるステップであって、Ｐは、前記データ・フレームの予め決められたサイズより大きい素数であり、ｎは、１からＰ−１までの範囲にある整数であり、αは、Ｐの原始根であり、該Ｐ、ｎおよびαにより、ｉ（ｎ）は、１と前記データ・フレームの前記予め決められたサイズとの間にある一意の数とされる、ステップと、
を含む、方法。
【請求項２４】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項２３に記載の方法。
【請求項２５】
前記並び替えるステップは、ＡＳＩＣ（特定用途向けＩＣ）を使用して達成される、
請求項２３に記載の方法。
【請求項２６】
前記並び替えるステップは、マイクロプロセッサを使用して達成される、
請求項２３に記載の方法。
【請求項２７】
前記並び替えるステップは、ソフトウェアを使用して達成される、
請求項２３に記載の方法。
【請求項２８】
さらに、
予め決められた行サイズを有する複数の行および予め決められた列サイズを有する複数の列により前記データ・フレームをインデックス付けするステップであって、該予め決められた行サイズと該予め決められた列サイズの積は、該データ・フレームの予め決められたサイズに等しい、ステップと、
ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分を並び替えるステップであって、Ｐ１は、前記予め決められた行サイズより大きい素数であり、ｎ１は、１からＰ１−１までの範囲にある整数であり、α１は、Ｐ１の原始根であり、該Ｐ１、ｎ１、およびα１により、ｉ１(ｎ１)は、１と前記予め決められた行サイズとの間にある一意の数とされる、第１の並び替えステップと、
ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分を並び替えるステップであって、Ｐ２は、前記予め決められた列サイズより大きい素数であり、ｎ２は、１からＰ２−１までの範囲にある整数であり、α２は、Ｐ２の原始根であり、該Ｐ２、ｎ２、およびα２により、ｉ２(ｎ２)は、１と前記予め決められた列サイズとの間にある一意の数とされる、第２の並び替えステップと、を含み、
前記第１および第２の並び替えステップにより、前記データ・フレームの前記複数の部分がインターリーブされる、請求項２３に記載の方法。
【請求項２９】
前記複数の部分は、予め決められたサイズを有し、該予め決められたサイズは、少なくとも１ビットである、
請求項２８に記載の方法。
【請求項３０】
前記第１および第２の並び替えステップは、ＡＳＩＣ（特定用途向けＩＣ）を使用して達成される、
請求項２８に記載の方法。
【請求項３１】
前記第１および第２の並び替えステップは、マイクロプロセッサを使用して達成される、
請求項２８に記載の方法。
【請求項３２】
前記第１および第２の並び替えステップは、ソフトウェアを使用して達成される、
請求項２８に記載の方法。
【請求項３３】
さらに、前記第１の並び替えステップにより並び替えられたシーケンスｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って、前記複数の行によりインデックス付けされた前記複数の部分をデインターリーブするステップを含む、
請求項２８に記載の方法。
【請求項３４】
さらに、前記第２の並び替えステップにより並び替えられたシーケンスｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って、前記複数の列によりインデックス付けされた前記複数の部分をデインターリーブするステップを含む、
請求項２８に記載の方法。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、電子通信システムの分野に関し、より具体的には、符号変調を実行するインターリーバ（interleaver）に関する。
【０００２】
背景技術
符号化変調として知られる通信チャネルを符号化する技術が、モデムおよび無線通信システムのような電子通信システムのビット誤り率（ＢＥＲ）を改善するということが知られている。ターボ符号化変調は、ＡＷＧＮ（additive white Gaussian noise：加法的白色ガウス雑音）またはフェージングによって特徴づけられる「ランダム・エラー」のチャネルに対して、実用的で電力効率がよく、かつ帯域幅の効率がよい変調方法であることがわかっている。こうしたランダム・エラーのチャネルは、例えば、ＣＤＭＡ（符号分割多元接続）環境で見られる。
【０００３】
ターボ符号の重要な革新的な点は、第２の符号器への入力前に、元の受信データ・フレームまたは送信データ・フレームに対し並び替え（順序の入れ替え）を行うインターリーバが設けられることである。この並び替えは、その構造がよく知られているランダム化アルゴリズムを実行するプロセッサによって達成される。並び替えられたデータ・フレームを元のデータ・フレームと組み合わせると、ＡＷＧＮおよびフェージングのチャネルで低いビット誤り率が実現されるということがわかっている。インターリービング処理によって、データのダイバーシティ（diversity）が増大し、変調されたシンボルが送信中に歪んでも、復号器のエラー訂正アルゴリズムを使用すればエラーが回復可能なものになる。
【０００４】
従来のインターリーバは、送信されるべきシグナル・ポイント（signal point）を行列に収集すなわちフレーム化する。この行列は、一度に１行ずつ順番に充填される。予め定義された数のシグナル・ポイントがフレーム化された後、送信するために行列の列を順次に読み出すことにより、インターリーバは空になる。その結果、元のシグナル・ポイントの順番では互いに近くにあった、行列の同じ行のシグナル・ポイントが、該行列の行数と同じ数のシグナル・ポイント分だけ分離される。理想的には、相互に依存するシグナル・ポイントが、送信後に、チャネルのバースト・エラーの予想される長さを超えて分離されるように、列数および行数が選択される。しかし、これは実現可能でない場合がありうる。行数が増すにつれ、シグナル・ポイントのフレーム化による信号遅延も増大する。その結果、信号遅延を許容可能な限界内に保つために、あるシステム上の制約が、インターリーバのサイズに課される。一方、インターリーバのサイズに制約をつけると、時間的に多様（time-diverse）で相互に依存するシグナル・ポイントの分離が制限され、したがってインターリーバによって実現されるエラー・パフォーマンスの改善が制限される。
【０００５】
従来は２つのインターリービング方法がある。均一インターリービング（すなわち、規則的インターリービング・パターン（regular interleaving pattern））、および非均一インターリービング（すなわち、疑似不規則的インタリービング・パターン（pseudo-irregular interleaving pattern））である。均一インタリービングの場合、より高い重み付けの有限符号語（ＦＣ：finite code word）を、より低い重み付けの有限符号語から構築することができる。したがって、低い重み付けのＦＣの出力シーケンスにおけるある「繰り返しパターン」が、均一インターリービングのターボ符号器の出力ストリーム中に生じることがある。しかしながら、均一インターリービングは、２つの符号器の出力を十分には相関しないので、その結果得られるターボ符号の最小距離が、予想されるほどには増えない。
【０００６】
一方、非均一インターリービングは、データのより良好な「最大散乱（maximum scattering）」および「最大無秩序（maximum disorder）」を達成する。このことは、２つの畳み込み符号によって導入される冗長性が、ターボ符号器の出力シーケンス内でより均一に広がるということを意味する。最小距離は、均一インターリービングに比べて、より高い値にまで増大する。しかし、非均一インターリービングになお存在する問題は、どのようにして十分な「非均一性」を実現するかということである。というのも、インターリービングのアルゴリズムは、疑似不規則的パターンに基づくにすぎないからである。これに加え、実用的なアプリケーションについてこの手法を実現するための労力は適度なものであるべきである。さらに、従来のインターリーバは、符号器内でかなりの量のメモリを必要とする。従来のインターリービングの行列はまた、遅延補償を必要とし、そのためリアルタイム要件を伴うアプリケーションではその使用が制限される。
【０００７】
したがって、非均一性を改善することのできる、符号をインターリーブするシステムおよび方法が必要とされている。
【０００８】
また最小限の遅延補償しか要しない、符号をインターリーブするシステムおよび方法が必要とされている。
【０００９】
したがって、本発明の目的は、非均一性を改善することのできる、符号をインターリーブするシステムおよび方法を提供することである。
【００１０】
また、本発明の他の目的は、最小限の遅延補償のみを必要とする、符号をインターリーブするシステムおよび方法を提供することである。
【００１１】
発明の概要
本発明によれば、上記および他の目的は本発明によって実現されることができる。本発明は、予め決められたサイズを有し、複数の部分から構成されるデータ・フレームをインターリーブする。本発明の一実施形態は、データ・フレームを受信し記憶するよう構成されたメモリを備える。データ・フレームは、受信されると、それぞれが予め決められたサイズを有する複数の行、およびそれぞれが予め決められたサイズを有する複数の列によってインデックス付けされる。予め決められたサイズの行と予め決められたサイズの列の積は、データ・フレームの予め決められたサイズに等しい。
【００１２】
プロセッサは、メモリに接続され、データ・フレームを複数の部分に分離するのに使用される。プロセッサはまた、ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)に従って複数の行によりインデックス付けされた複数の部分が並び替えられたシーケンスを生成するのに使用される。式中、Ｐ１は、予め決められた行サイズより大きい素数であり、ｎ１は、１からＰ１−１までの範囲における整数であり、α１は、Ｐ１の原始根である。このアルゴリズムにより、ｉ１（ｎ１）を、１と予め決められた行サイズとの間にある一意の数とすることが可能になる。
【００１３】
プロセッサはまた、ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)に従って複数の列によりインデックス付けされた複数の部分が並び替えられたシーケンスを生成するよう構成される。式中、Ｐ２は、予め決められた列サイズより大きい素数であり、ｎ２は、１からＰ２−１までの範囲における整数であり、α２は、Ｐ２の原始根である。このアルゴリズムにより、ｉ２（ｎ２）を、１と予め決められた列サイズとの間の一意の数とすることが可能となる。その結果、インターリーブされたデータ・フレーム部分が得られる。
【００１４】
本発明は、以下の例示的な実施形態の詳細な説明は、図面を参照しつつ明確に理解されるであろう。
【００１５】
発明の詳細な説明
本発明は、符号をインターリーブするための装置および方法である。インターリーバは、それぞれがＮデータ・ビットの、入ってくるデータ・フレームを受け取り、第２の符号器で符号化する前に、それらを疑似ランダムな方式で並べ替える。本発明は、衛星通信システム、無線電話システム、モデム、およびコンピュータなどに使用することができる。
【００１６】
インターリーバは、明白な順序をもたらさない方法でビットを分類する。本発明は、データ・フレームが小さい（すなわち、Ｎが大体数千のオーダーである）場合でも、従来のインターリーバより良好に動作する。これは、従来のインターリーバより多様な「散乱（scattering）」を得ることにより達成される。図１は、標準的なターボ符号器を示す。この標準的なターボ符号器は、２つの符号器１０および２０と、インターリーバ３０とを備える。符号器１０および２０は並列接続されており、インターリーバ３０は、第２の符号器の前に配置されている。第１の符号器１０の出力は、低い重み付けの符号５０であり、第２の符号器２０の出力は、高い重み付けの符号６０である。これらの出力は、符号化のオーバーヘッドを減らすために、定期的に選択されたビットを削除する符号パンクチャリング機構のような装置に送られることができる。加えて、インターリーバの出力７０を直接パンクチャ機構に送ることもできるが、これは必ずしも必要ではない。さらに、本発明はまた、符号のインターリービングを必要とする他の非ターボ符号システムと共に使用されることができる。
【００１７】
本発明は、従来のターボ符号の性能を改善することのできるインターリーバの２つの実施形態を開示する。第１の実施形態をＧａｌｙａ（ガリヤ）インターリーバと呼び、第２の実施形態を周波数ホッピング（ＦＨ）インターリーバと呼ぶ。これらの実施形態はどちらも整数論に基いており、どちらも、ソフトウェアとしてもハードウェア（すなわち、ＡＳＩＣ（特定用途向けＩＣ）、ＰＬＡ（プログラマブル・ロジック・アレイ）または構造が周知の任意の他の適切な論理デバイス）としても実現することができる。
【００１８】
第１の実施形態であるＧａｌｙａインターリーバでは、情報ビット行列は、Ｎ１＊Ｎ２＝ＮとなるＮ１個の行とＮ２個の列を有する。さらに、それぞれがＮ１およびＮ２より大きい素数Ｐ１およびＰ２が存在する（すなわち、Ｐ１＞Ｎ１およびＰ２＞Ｎ２）。これらの素数は、それぞれ、Ｎ１およびＮ２より大きい素数のうち最小の素数であることが好ましいが、必ずしもそうである必要はない。これらの素数の原始根α１およびα２は、従来の方法を使用して求めることができる。上記のパラメータを用いると、Ｇａｌｙａインターリーバについてのビット・シーケンス生成は、次式で定義される。
【００１９】
【数１】
ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)
ただし、ｎ１＝１，２，．．．，Ｐ１−１かつｉ１(ｎ１)≦Ｎ１
ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)
ただし、ｎ２＝１，２，．．．，Ｐ２−１かつｉ２(ｎ２）≦Ｎ２
Ｎ＝２５６の場合、Ｎ１＝Ｎ２＝１６、Ｐ１＝Ｐ２＝１７、α１＝α２＝３となる。
【００２０】
図２ａおよび図２ｂは、ソフトウェアまたはハードウェアのいずれでも実現することのできる上記の実施形態を示す。上記の式は、並列に実行してもよいし、順番に実行してもよい。図２ａにおいて、ステップ２００では、ブロック長Ｎ１を表すパラメータを定義する。ビット・シーケンスを記憶する配列ｉ１(ｎ１)が、サイズＮ１を持つよう定義され、かつ初期化される（ステップ２１０）。次に、Ｎ１より大きい素数Ｐ１が定義される（ステップ２２０）。ステップ２３０において、α１と呼ばれるＰ１の原始根を定義する。カウンタｎ１が定義され、これは、値１に初期化される（ステップ２４０）。カウンタｎ１は、ループを１回通るたびにインクリメントされる（ステップ２７０）。ステップ２６０で示されるように、カウンタは、データ・フレームにおけるそれぞれのシンボルについて、ビット・シーケンスｉ１(ｎ１)を計算する（ステップ２５０）ループからいつ抜けるかを決定する。このループは、データ・フレーム全体が並び替えられた時に抜けるように調整されている。ループはまた、受信されたデータ・フレームまたは送信されたデータ・フレームの一部をインターリーブするように適合されることもできる。
【００２１】
図２ｂでは、ステップ４００において、ブロック長Ｎ２を表すパラメータを定義する。ビット・シーケンスを記憶するための配列が、サイズＮ２に持つよう定義され、初期化される（ステップ４１０）。次に、Ｎ２より大きい素数Ｐ２が定義される（ステップ４２０）。ステップ４３０において、α２と呼ばれるＰ２の原始根を定義する。カウンタｎ２が定義され、値１に初期化される（ステップ４４０）。カウンタｎ２は、ループを１回通るたびにインクリメントされる（ステップ４７０）。ステップ４６０に示されるように、カウンタは、データ・フレームにおけるそれぞれのシンボルについて、ビット・シーケンスｉ２(ｎ２)を計算する（ステップ４５０）ループからいつ抜けるかを決定する。このループは、データ・フレーム全体が並び替えられたときに抜けるように調整されている。このループはまた、受信されたデータ・フレームまたは送信されたデータ・フレームの一部をインターリーブするよう適合されることもできる。
【００２２】
第２の実施形態におけるＦＨ（周波数ホッピング）インターリーバは、ブロック長（すなわち、データ・フレームのサイズ）が長さＮであると想定する。さらに、Ｎより大きい素数Ｐが存在する。この素数は、Ｎより大きい素数のうち最小の素数であることが好ましいが、必ずしもそうである必要はない。ある素数が与えられると、従来の方法を用いて、原始根αを見つけることができる。例えば、Ｎ＝２５６である場合、Ｐ＝２５７で、α＝３となる。上記のパラメータを使うと、ＦＨインターリーバについてのビット・シーケンス生成は、次式で定義される。
【００２３】
【数２】
ｉ(ｎ)＝α＾(ｎ)mod(Ｐ)
ただし、ｎ＝１，２，．．．，Ｐ−１かつｉ(ｎ)≦Ｎ
【００２４】
図３は、ソフトウェアまたはハードウェアのいずれにおいても実現されることのできる上記の実施形態を示す。ステップ３００においては、ブロック長Ｎを表すパラメータを定義する。ビット・シーケンスを記憶するための配列が、サイズＮを持つよう定義され、初期化される（ステップ３１０）。次に、Ｎより大きな素数Ｐが定義される（ステップ３２０）。ステップ３３０では、αと呼ばれるＰの原始根を定義する。カウンタｎが定義され、値１に初期化される（ステップ３４０）。カウンタｎは、ループを１回通るたびにインクリメントされる（ステップ３７０）。ステップ３６０で示されるように、このカウンタは、データ・フレームにおけるそれぞれのシンボルについて、ビット・シーケンスｉ(ｎ)を計算する（ステップ３５０）ループをいつ抜けるかを決定する。このループは、データ・フレーム全体が並び替えられたときに抜けるように調整されている。このループは、受信されたデータ・フレームまたは送信されたデータ・フレームの一部をインターリーブするよう適合されることもできる。
【００２５】
配列ｉ(ｎ)、ｉ１(ｎ１)、ｉ２(ｎ２)について任意の初期値を使用することができ、かつこのことが本発明の範囲に含まれるということは、当業者には理解されよう。例えば、初期データは、０...、１...、２...、などでもよく、または、異なる初期データでテンプレートを作ることもできる。さらに、プログラミングにおいては、通常、異なる開始値のインデックスを使用する。したがって、ｎ、ｎ１、ｎ２は任意の整数であることができ、ループを抜ける条件ｎ≦Ｎ、ｎ１≦Ｎ１、ｎ２≦Ｎ２は、それに従って適合されることができる。このような場合も、本発明の範囲に含まれる。
【００２６】
開示されたインターリーバは、既存のターボ符号構造と互換性を有しており、現行の復号化アルゴリズムとも互換性を有している。これらのインターリーバは、システムの複雑さを増大させることなく、優れた性能を提供する。
【００２７】
さらに、デインターリーバ（de-interleaver）を使用して、インターリーブされたデータ・フレームを復号することができるということは、当業者には理解されよう。ターボ符号を復号化するのに使用されるデインターリーバの構成も、当業者には周知である。そのため、ここではデインターリーバについてこれ以上論じない。したがって、第１の実施形態に対応するデインターリーバは、並び替えられたシーケンスを用いて構築することができる。デインタリービングについては、次式が成り立つ。
【００２８】
【数３】
ｉ１(ｎ１)＝α１＾(ｎ１)mod(Ｐ１)
ただし、ｎ１＝１，２，．．．，Ｐ１−１、かつｉ１(ｎ１)≦Ｎ１
ｉ２(ｎ２)＝α２＾(ｎ２)mod(Ｐ２)
ただし、ｎ２＝１，２，．．．，Ｐ２−１、かつｉ２(ｎ２)≦Ｎ２
【００２９】
第２の実施形態に対応するデインターリーバも、並び替えられたシーケンスを用いて構築することができる。このデインタリービングについては、次式が成り立つ。
【００３０】
【数４】
ｉ(ｎ)＝α＾(ｎ)mod(Ｐ)
ただしｎ＝１，２，．．．，Ｐ−１、かつｉ（ｎ）≦Ｎ
【００３１】
このように、本発明が、これまでの説明によって明らかにされたように、前述した目的を効率よく達成することが分かるであろう。本発明は、特に、符号をインターリーブするシステムおよび方法を提供する。
【００３２】
上記の構造、および前述の動作シーケンスが、本発明の範囲から逸脱することなく変更されることができるということは理解されよう。したがって、前述の説明に含まれる、または図面に示されたすべての事項は、限定的ではなく例示的なものと解釈すべきである。
【００３３】
また特許請求の範囲は、本明細書で説明した本発明の包括的および特定の特徴をすべて、および本発明の範囲のすべてをカバーするよう意図されていることが理解されよう
【図面の簡単な説明】
【図１】通常のターボ符号器を示す図。
【図２ａ】本発明の一実施形態に従う、ターボ符号のための改良型インターリーバの動作を示するフローチャート。
【図２ｂ】本発明の一実施形態に従う、ターボ符号のための改良型インターリーバの動作を示すフローチャート。
【図３】本発明に他の実施形態に従う、ターボ符号のための改良型インターリーバの動作を示すフローチャート。
【図１】
0004309586.tif 000002
【図２ａ】
0004309586.tif 000003
【図２ｂ】
0004309586.tif 000004
【図３】
0004309586.tif 000005