連続して複数の入力ビットを受取り、そこから第1の複数の出力シンボルを生成するように構成される第1コーダと、複数の入力ビットを連続して受け取るように構成されているインタリーバであって、インタリーバが行と列のマトリックス内に配列される複数のビット記憶装置位置を含み、線形合同シーケンス生成器がインタリーバの各行内でビットをシャッフルするためにシーケンスを擬似無作為に生成するように構成されているインタリーバと、インタリーバから連続して複数のインタリーブされたビットを受り取り、そこから第2の複数の出力シンボルを生成するように構成される第2コーダと、を備えるターボコーダ。ビットをシャッフルするためのシーケンスが、以下の等式に従って生成される線形合同シーケンス再帰を備えxn1=axncmodM、ここでは、nが時間インデックスを表し、xnが時間インデックスn、a、cでの列インデックスを表し、Mが整数であり、Mがシーケンスの期間を表し、以下の条件、icはMに対して相対的に素数であり、iia-1はpの倍数であり、この場合pはMを分割する任意の素数を表し、iiiMが4の倍数であるとき、a-1は4の倍数でなければならず、およびivx0は整数シード列インデックスである。が、満たされる、請求項1に記憶されるターボコーダ。a=1である、請求項2に記載されるターボコーダ。期間Mが2の累乗である、請求項2に記載されるターボコーダ。さらに、第1コーダと第2コーダにそれぞれ結合され、それぞれ、第1の複数の出力シンボルと第2の複数の出力シンボルをそこから受け取るように構成されているマルチプレクサを備える、請求項1に記載されるターボコーダ。インタリーバが、さらに、事前定義されたビット逆順アルゴリズムに従ってインタリーバの行をシャッフルするための少なくとも1つのモジュールを含む、請求項1に記載されるターボコーダ。ビットをシャッフルするためのシーケンスは、以下の等式に従って生成される線形合同シーケンス再起を備え、xn=aM/2-1xn1-cmodM、そこでは、nは時間インデックスを表し、xnは時間インデックスn、a、cでの列インデックスを表し、Mが整数であり、Mがシーケンスの期間を表し、以下の条件icがMに対して相対的に素数であり、iia-1がpの倍数であり、ここではpはMを分割する任意の素数を表し、iiiMが4の倍数であるとき、a-1は4の倍数でなければならずivx0が整数シード列インデックスである、が満たされる、請求項1に記載されるターボコーダ。a=1である、請求項7に記載されるターボコーダ。期間Mが2の累乗である、請求項7に記載されるターボコーダ。データ要素を連続して行ごとにビット記憶位置のマトリックスに書き込む工程と、線形合同シーケンス再帰に従って、ビット記憶位置のマトリックスの各行内にデータ要素を擬似無作為に再配列する工程と、ビット記憶位置のマトリックスから列ごとに連続してデータ要素を読み取る工程と、を備える、データ要素をインタリーブする方法。さらに、以下の等式に従って線形合同シーケンス再帰を生成する工程を備え、xn1=axncmodM、ここではnは時間インデックスを表し、xnはインデックスn、a、cで列インデックスを表し、Mは整数であり、Mがシーケンスの期間を表し、以下の条件icがMに対して相対的に素数であり、iia-1がpの倍数であり、この場合、pはMを分割する任意の素数でありiiiMが4の倍数であるとき、a-1は4の倍数でなければならず、およびivx0は整数シード列インデックスである、が満たされる、請求項10に記載される方法。a=1である、請求項11に記載される方法。期間Mが2の累乗である、請求項11に記載される方法。さらに、事前定義されたビット逆順アルゴリズムに従って、ビット記憶位置のマトリックスの行を配列し直す工程を備える、請求項10に記載される方法。さらに、以下の等式に従って線形合同シーケンス再帰を生成する工程を備え、xn=aM/2-1xn1-cmodM、ここでは、nが時間インデックスを表し、xnが時間インデックスn、a、cでの列インデックスを表し、Mが整数であり、Mがシーケンスの期間を表し、以下の条件icがMに対して相対的に素数であり、iia-1がpの倍数であり、pがMを分割する任意の素数を表し、iiiMが4の倍数であるとき、a-1が4の倍数でなければならず、ivx0が整数シード列インデックスである、請求項10に記載される方法。a=1である、請求項15に記載される方法。期間Mが2の累乗である、請求項15に記載される方法。データ要素を行ごとにビット記憶位置のマトリックスに連続して書き込むための手段と、線形合同シーケンス再帰に従って、ビット記憶位置のマトリックスの各行の中にデータ要素を擬似無作為に再配列するための手段と、ビット記憶位置のマトリックスから列ごとに順次データ要素を読み込むための手段と、を備える、インタリーバ。線形合同シーケンス再帰が、以下の等式に従って生成され、xn1=axncmodM、ここではnが時間インデックスを表し、xnが時間インデックスn、a、cでの列インデックスを表し、Mが整数であり、Mがシーケンスの期間を表し、以下の条件icがMに対して相対的に素数であり、iia-1がpの倍数であり、この場合pがMを分割する任意の素数を表し、iiiMが4の倍数であるとき、a-1が4の倍数でなければならず、ivx0が整数シード列インデックスであるが満たされる、請求項18に記載されるインタリーバ。a=1である、請求項19に記載されるインタリーバ。期間Mが2の累乗である、請求項19に記載されるインタリーバ。さらに、事前定義されたビット逆順アルゴリズムに従って、ビット記憶位置のマトリックスの行をシャッフルするための手段を備える、請求項18に記載されるインタリーバ。線形合同シーケンス再帰が、以下の等式に従って生成され、xn=aM/2-1xn1-cmodM、この場合、nが時間インデックスを表し、xnが時間インデックスn、a、cでの列インデックスを表し、Mが整数であり、Mがシーケンスの期間を表し、以下の条件icがMに対して相対的に素数であり、iia-1がpの倍数であり、この場合、pがMを分割する任意の素数を表し、iiiMが4の倍数であるときに、a-1が4の倍数でなければならず、ivx0が整数シード列インデックスである、が満たされる、請求項18に記載されるインタリーバ。a=1である、請求項23に記載されるインタリーバ。期間Mが2の累乗である、請求項23に記載されるインタリーバ。図1に示されるように、1つの実施形態に従って、並列連結ターボエンコーダ10またはターボコーダ10は、第1コーダと第2コーダ12、14、インタリーバ16、およびマルチプレクサ18を含む。第1コーダ12およびインタリーバ16は、典型的にはユーザ情報または制御データである、エンコーダ入力データ20を受け取るように構成される。第1コーダ12は、典型的には、元の入力ビット20のコピーである体系化されたシンボル22、およびパリティシンボル24を出力する。第2コーダ14は、インタリーバ16のインタリーブされた出力26を受け取り、パリティシンボル28の第2セットを出力するように構成される。第2コーダ14によって生成される、体系化されたシンボル図示されていないは抑制され、第1コーダと第2コーダ12、14の残りのそれぞれの出力22、24、28は、出力データストリーム30の中にマルチプレクサ18によって多重化される。追加コーダおよびインタリーバの組は、コーディング率を削減するために並列で追加されてよく、それによって機能強化された前進誤り訂正を提供する。代わりに、体系化されたシンボル22および/またはパリティシンボル24のいくつかは、コーディング率を高め、改善されたスペクトル効率を提供するためにパンクチュアされてよい。第1コーダおよび第2コーダ12、14は、ブロックコーダおよび畳み込みコーダを含む、技術で既知の多様な種別のコーダであってよい。例示的なブロックコーダおよび畳み込みコーダは、参照してここに組み込まれているBernardSklarのデジタル通信DigitalCommunications245-3801988年に説明されている。低制約長は、対応するデコーダ図示されていないの複雑度を削減するため、第1コーダおよび第2コーダ12、14は、有利なことに、例えばK=4などの相対的に小さい制約長Kの畳み込みコーダであり、それによって複雑度の削減を実現する。第1コーダおよび第2コーダ12、14は、有利なことに、技術で既知であるように再帰的な体系化された畳み込みRSCエンコーダでもある。インタリーバ16は、有利なことに、後述されるように2次元インタリーバである。典型的には、第1コーダと第2コーダ12、14は、受信されたビット20ごとに2個のパリティシンボルを出力し、コーダ12、14ごとにコーディング速度R=1/2を生じさせる。それにも関わらず、ターボコーダ10の総コーディング速度は、第2コーダ14からの体系的なビットがパンクチュアされるため、R=1/3である。図2に示されているように、1つの実施形態に従った2次元2-D線形合同シーケンスLCSインタリーバ100は、4つのルックアップテーブルLUT102、104、106、108、7つの2入力マルチプレクサMUX110、112、114、116、118、120、122、R入力MUX124、行カウンタ126、第1および第2ビット逆論理ブロック128、130、アドレス妥当性検査モジュール132、複数Rの列インデックス、または簡略さのために4つのレジスタとして図示されている行レジスタ134、136、138、140、列インデックスリセットにフラグを立てるためのレジスタ142、第1および第2kビット乗算器144、146、および4つのkビット加算器148、150、152、154を含む。LCS再帰生成器156は、破線封入により描かれている。インタリーバ100は、図1の並列連結ターボコーダ内で使用されてよいか、あるいは代わりにインタリーバ100は、当業者により理解されるように、インタリーバ100が外側構成要素コードおよび内側構成要素コードに配置されるシリアル連結ターボコーダで使用されてよい。インタリーバ100のサイズは、2m未満であるか2mに等しく、2m-1より大きいNである。列の数Cによって乗算される行の数Rは、2mに等しい。列の数Cは2kに等しい。つまりk=log2Cである。行の数R1は、2rに等しい。つまりr=log2Rである。アドレス妥当性検査モジュール132は、有利なことに、シフトレジスタおよび加算器として構成されている離散ゲート論理として実現されてよい。アドレス妥当性検査モジュール132は、X入力が、列数CおよびY入力行インデックスの積未満であるかどうかをチェックするために役立ち、シフトおよび追加機能を実行する。アドレス妥当性検査モジュール132は、アドレスが無効であるかどうか、つまりアドレスに廃棄されなければならない2の累乗を越えるビットが含まれているかどうかを示す。LCS再帰生成器156は、後述するように、4つのLUT102、104、106、108への入力で行番号を受信し、列インデックスアドレス妥当性検査モジュール132に対するZ入力を生成することによって、インタリーバ100の各行に含まれているビット値を擬似無作為に再配列する、あるいはシャッフルする役割を果す。当業者は、図1に示されているような並列連結ターボコーダ内で、データ要素の物理的な再配列が、第2エンコーダによってアドレス指定された読取りで擬似無作為に生成されたLCSを使用することの方を選んで有利に巧みに回避されてよい。第1ビット逆論理ブロックおよび第2ビット逆論理ブロック128、130は、後述されるように、および技術で既知であるように、事前に定義されたビット逆順規則に従ってインタリーバ100内の行を配列し直す、またはシャッフルする役割を果す。LUT102、104、106、108は、技術で既知である任意の記憶媒体として実現されてよい。第1LUT102は、係数cの値を記憶するために使用される。第2LUT104は、係数aの値を記憶するために使用される。第3LUT106は、係数bの累乗に取られる係数aの値を記憶するために使用される。第4LUT108は、x-1の値を記憶するために使用される。各LUT102、104、106、108のサイズはrxkビットである。インタリーバ100の総メモリ要件は、レジスタ134、136、138、140に関して4rxkビットにrxkレジスタビットを加えたものである。レジスタ142は、R-1に初期に設定される、行数を指定するビット値を受信する。各処理サイクルでは、レジスタ142は、初期にゼロに等しく設定されていない列番号を意味するビット値を出力する。レジスタ142は、それによって、行番号が行のすべてを循環するたびに列インデックスをリセットするために役立つ。各処理サイクルでは、入力MUX110が、RunBackwardsフラグがセットされるかどうかに応じて1または-1のどちらかの値を生成する。値は、値をNextRowで示されるビット値に加算する加算器148に提供される。結果として生じる合計は、行カウンタ126のデータ入力に提供される。1という値は、行カウンタ126の第2入力に提供される。行カウンタ126は、第2ビット逆論理ブロック130に提供されるレジスタ142内でR-1つぃて初期に記憶される行値を生成する。行値は、LUT102、104、106、108のそれぞれにも提供される。行値は、行値を1という値に追加する加算器150にも提供され、第1ビット逆論理ブロック128に結果として生じる合計を提供する。この結果として生じる合計は、MUX112の第1入力にも提供される。各処理サイクルで、第1ビット逆論理ブロック128は、MUX114の第1入力に値を提供する。第2ビット逆論理ブロック130は、行インデックス値をMUX114の第2入力に、およびアドレス妥当性検査モジュール132のY入力にも提供する。アドレス妥当性検査モジュール132はX入力で値Nを受け取る。アドレス妥当性検査モジュール132は、Z入力で記憶される係数に基づいた値を受け取る。LCSアドレス妥当性検査モジュール132は、CおよびY入力値の積を計算し、積をZ入力値に加算し、結果がX入力値Nより大きい、または等しいかどうかをチェックする。計算された値はNより大きいまたはNに等しい場合、アドレス妥当性検査モジュール132は1という値を出力する。それ以外の場合、出力の値は0である。出力値は、Addr_GT_Nと示されるフラグであり、1に設定されるとき、インタリーバのサイズが、2という低い方の累乗を超える過剰なビットが廃棄されなければならないように、2の連続する累乗の間であることを意味する。Addr_GT_N値は、MUX112、114、120および120へのセレクタ入力として提供される。MUX112は、Addr_GT_N値が1に設定される場合にその第1入力を選択する。MUX112から出力される選択された入力は、インタリーブされたNextRow値である。MUX114は、Addr_GT_N値が1に設定される場合に、その第1入力を選択する。MUX114から出力される選択された入力は、最終的な行インデックス値を表す。LCS再帰生成は、以下の通りに実行される。各処理サイクルを使用すると、係数cを表すkビット値は、第1LUT102からデータ経路k-ビット加算器152に送信される。値aは、第2LUT104からMUX116の第1入力に送信される。累乗bに取られるaを表す値は第3LUT106からMUX116の第2入力に送られる。MUX116はセレクタ入力時にRunBackwardsフラグを受け取る。RunBackwards値が1である場合、MUX116はその第2入力を選択し、選択された値であるkビット値を乗算器144に提供する。それ以外の場合、MUX116はその第1入力であるkビット値を乗算器114に提供する。値x-1は、第4LUT108からMUX118の第1入力に送信される。MUX118は、第2入力で、MUX124から出力されるK-ビット値を受け取る。MUX118は、セレクタインデックスで列インデックス値を受け取る。列インデックス値は、当初、ゼロに等しく設定されていない。列インデックス値が1である場合、MUX118はその第2入力を選択する。それ以外の場合、MUX118は、その第1入力を選択する。選択された入力値である、kビット値は、乗算器114に提供される。乗算器114から結果として生じる積は、kビット加算器152に提供される。有利なことに、データ経路kビット加算器152は、技術で既知であるように、プログラム可能な加算器/減算器である。インタリーバ100が逆方向へ実行しているとき、加算器152は値cを差し引く。kビット加算器152は、出力値に、アドレス妥当性検査モジュール132のZ入力への各処理サイクルを提供する。加算器152の出力は、MUX120の第1入力に、およびR-1番目の行レジスタ136、138、140を通して第1入力のそれぞれにも提供される。加算器152の出力も、MUX122の第1入力へのK-ビット入力値として提供される。MUX120は、kビット加算器154から第2入力値を受け取る。MUX120のセレクタ入力が1に設定されると、MUX120はその第1入力を選択する。それ以外の場合、MUX120はその第2入力を選択する。選択された入力が、ゼロ番目の行レジスタ134に提供される。それぞれの行レジスタ134、136、138、140は、MUX124のそれぞれの入力に出力値を提供する。さらに、ゼロ番目の行レジスタ134からの出力値は、乗算器146に提供される。MUX124は、セレクタ入力で行値行カウンタ126の出力を受け取る。MUX124によって選択される行レジスタ入力は、セレクタ入力での行値の値に依存する。このようにして、各行レジスタ134、136、138、140は、行値がそれぞれの行レジスタ番号に等しいときに更新され、ゼロ番目の行レジスタ134は、フラグAddr_GT_Nがゼロに等しいときにもイネーブルされる。R=0の場合のkビット初期入力値bは、乗算器146に提供される。乗算器146は、ゼロ番目の行レジスタ134から出力される値も受け取る。乗算器146は、2つの受信された値をともに乗算し、kビット加算器154に結果として生じる製品を提供する。データ経路kビット加算木154も、R=0の場合の初期入力値を受け取る。有利なことに、データ経路kビット加算器154は、技術で既知であるように、プログラム可能な加算器/減算器である。インタリーb100が逆方向へ実行しているとき、加算器154は初期値cを差し引く。加算器154は、2つの受け取られた値を合計するあるいは、プログラムされているように差し引く。結果として生じる合計であるkビット値は、MUX122の第2入力に提供される。そのセレクタ入力が1に設定される場合、MUX122はその第1入力を選択する。それ以外の場合、MUX122はその第2入力を選択する。MUX122は、最終的な列インデックス値として選択された入力を出力する。次のビット値のアドレスは、RとMUXから出力される最終的な行インデックス値の積であり、MUX144から出力される最終列インデックス値と合計される。ある実施形態においては、期間MのLCSは、以下のアイデンティティに従って、再帰的に生成され、xn1=axncmodM整数a、c、およびMが以下の3つの条件を満たす。つまり、1cはMに対して相対的に素数でなければならない。2a-1はpの倍数でなければならず、pはMを分割する任意の素数である。Mが4の倍数であるとき、a-1は4の倍数でなければならない。3x0は、任意の整数である場合があるシード値である。実現を簡略化するためには、有利なことに、Mは2の累乗であると選ばれてよい。このようにして、aは4p1の形式を取らなければならないが、cは任意の奇数として解釈できる。x0が初期条件を示すために前記で使用されるが、x-1が図2と関連して説明される実施形態で初期値を表すために使用されることに注意する必要がある。使用されているさまざまな数は重視されていない。ある実施形態に従った2-D、LCSインタリーバは、以下のように指定される。つまり、インタリーブサイズをK=2Nとし、インタリーバは、R行およびC列のある矩形のマトリックスとして指定され、そこではRおよびCの両方が2の累乗で示される。インタリーブされるデータは、マトリックスの中に行単位で書き込まれる。データの行は、最初に、従来のインタリーブ規則に従って入れ替えられるつまり、インタリーブされる。有利なことに、データの行は行インデックスに適用されるビット逆順序規則に従って、入れ替えられる。各行内では、列つまり、各列が行辺り1つのデータ要素を有するので、データ要素が、関連するLCSにより指定される規則に従って入れ替えられる。2つの別個の行と関連するLCSは有利なことに異なっているが、代替では同じであってよい。行のすべての入れ替えの後、データはインタリーブされたシーケンスを生じさせるために列単位で読み出される。当業者が理解するように、2N未満であり、2N-1より大きい長さのインタリーバは、2Nという長さのインタリーバから無効なアドレスを削除することによって生成することができる。ある実施形態では、2-D、LCSインタリーバは、以下の仕様を含む:インタリーバのサイズは32つまりN=5であり、データアレイは{d0、d1、d2、...d31}として定義される。インタリーバは4行および行あたり8つの要素のあるアレイとして編成される。データ要素は、以下のようにして行ごとに満たされる。バイナリ00、01、10、11の行インデックスは、有利なことに、逆にされるビットつまり、00、10、01、11であってよく、行は、その結果、以下を得るために入れ替えられる。ビット逆順は、事前に定められていたビット逆順アルゴリズムに従って、インタリーバの行をシャッフルするために役立つ。ビット逆順アルゴリズムの用途は、インタリーバの行の間で所望の時間分割を提供する。それにも関わらず、インタリーバの実現には、ビット逆順は必要ではない。特定の実施形態では、入れ替えLCSが以下の等式に従って生成される。x1n1=5x1n7mod8、ここでx10=3、x2n1=x2n5mod8、ここでx20=0、x3n1=5x3n3mod8、ここでx30=4、およびx4n1=x4n3mod8、ここでx40=3、入れ替えパターンは、4行それぞれで{3、6、5、0、7、2、1、4}、{0、5、2、7、4、1、6、3}、{4、7、6、1、0、3、2、5}および{7、2、5、0、3、6、1、4}により指定される。したがって、列の入れ替えの適用後、第1行は、以下のとおりになり、d3d6d5d0d7d2d1d4、第2行は以下の通りになり、d16d21d18d23d20d17d22d19、第3行は以下の通りになり、d12d15d14d9d8d11d10d13、そして、第4行は以下の通りになる。d31d26d29d24d27d30d25d28、列のすべてがそのそれぞれの行の中で入れ替えられた後に、インタリーブされたデータマトリックスは以下の形式を有する。インタリーブされたマトリックス内のデータは、列単位で読み出され、以下のインタリーブされたシーケンスを生じさせる:{d3、d6、d12、d31、d6、d21、d15、d26、d5、d18、d14、...d11、d30、d1、d22、d10、d25、d4、d19、d13、d28}長さ30のインタリーバが所望される場合、前述されたように生成されたインタリーバは、データ要素d30およびd31を削除し、以下のインタリーブされたシーケンスを作り出すことにより短縮することができる:{d3、d16、d12、d31、d6、d21、d15、d26、d5、d18、d14、...d11、d30、d1、d22、d10、d25、d4、d19、d13、d28}インタリーバ構築で利用されるLCSは、ターボ復号でのMAPデコーダとの最適なしようのために、所望されるように、順方向または逆方向のどちらかで生成できる。1つの実施形態では、逆シーケンス生成は、以下の等式によって示される。xn=aβxn1-cmodM、ここでは、β=MR-1前記等式で使用されるように項βは、図2の実施形態に関連して記述される係数bを表す。このようにして、LCSの生成には、各インタリーバが、3Rパラメータによって一意に定められ、この場合Rが行数であることが必要とされる。相対的に短いlog2Cxlog2C乗算器が必要とされる。モジュロ演算のため、ビット位置log2Cの上でビットを生成することは必要ない。Rレジスタの1つの集合が、R合同シーケンスの中間結果を保持するために必要とされる。行ごとにさまざまなパラメータx0、a、およびbがある場合、入れ替えシーケンスには多くの異なる可能性がある。特定のターボコードと使用するためにインタリーバパラメータを最適化するために検索を実行することが望ましい。図3では、1つの実施形態に従った構成体エンコーダ200が、CDMAデジタル無線通信システムで使用される特定のターボコードのために最適化される。エンコーダ200は、7個のモジュロ-2加算器、202、204、206、208、210、212、214および3つのビット位置216、218、220を含む。ビット位置216、218、220は、3ビットレジスタまたは代わりに3つの1ビットレジスタとして実現されてよい。モジュロ-2加算器202、204、206、208、210、212、214は、フィードバックタップの所望される集合を生じさせるために、正確な様式でビット位置216、218、220に結合される。このようにして、加算器202は入力ビットを受け取るように構成される。加算器202は、ビット位置216、および加算器204と206にも結合される。ビット位置216は、ビット位置218に、および加算器204と206に結合される。ビット位置218は、ビット位置220に、および加算器208と210に結合される。加算器210は、加算器202に結合される。加算器204は、加算器212に結合される。加算器206は、加算器208に結合される。加算器208は、加算器214に結合される。ビット位置220は、加算器210、214、および212に結合される。加算器212、214は、それぞれ第1シンボルおよび第2シンボルを出力するように構成される。エラー性能を、構成体デコーダ図示されていないでのエラーイベントの入力重量および出力重量により特徴付けることができることは技術で既知である。例えば、IEEE会報、情報理論IEEETrans.Info.Theory409-281996年3月の、S.BenedettoおよびG.Montorsiのターボコードの発表:並行連結コーディング方式に関するなんらかの結果SomeResultsonParallelConcantenatedCodingSchemeを参照すること。エラーイベントの入力重量とはビットエラーの数であるが、エラーイベントの出力重量はコードシンボルエラーの数である。入力重量1のエラーイベントは、明らかにすべてゼロの状態から分岐し、決して再マージしないだろう1がシフトレジスタ内で無限に循環し、途中ますます多くの出力重量を蓄積する。これは、エンコーダの再帰的な、つまりフィードバック部分のためである。この構造のため、高い信号対雑音比SNRでのターボコードの性能が、入力重量2で出力エラーイベントにより支配されることが示された。同上を参照のこと。ターボコードエラーフロアは、いわゆる実効自由距離漸近線を使用して正確に予測することができる。実効自由距離は、入力重量2のすべてのエラーイベントの最小出力重量である。長さで短い入力重量2つのエラーエベントは、典型的には、最小距離エラーイベンとを引き起こす。図3のエンコーダ200の場合、フィードバック多項式は1D2D3であり、すべての考えられる入力重量2エラーイベントは、形式Dk1D7jであり、その場合、j=1、2...およびkは範囲0...K-7jの範囲内での任意のシフトであるKはインタリーバサイズであると想定される。これは、当業者に理解されるように、構成体エンコーダ200の四目格子trellisを調べることによって、容易に検証することができる。図3の実施形態のインタリーバサイズがKで示されるが、図2のインタリーバサイズがNで示されることに注意する必要がある。当業者は、さまざまな文字が使用されるという事実が特に重要視されないことを理解するだろう。例えば、Dk1D7というエラーパターンにより、第1デコーダの中から最小距離エラーイベントが引き起こされると仮定する。ターボインタリーバは、2つのエラーDk、Dk7を2つの位置Dn、Dmの中にマップするだろう。|m-n|=7または7のなんらかの倍数である場合、第2デコーダからの低距離エラーイベントが考えられる。ターボインタリーバの根本的な目的とは、このようなマッピングが発生するのを防ぐことである。すなわち、インタリーバは、第1寸法での低重量エラーイベントを受けやすいビットの集合体を、第2方向で大量の出力重量を生じさせるビットの集合体にマッピングする必要がある。したがって、インタリーバの設計への所望のアプローチは、インデックスk、k7jに位置するビット組が、インデックスs、s7に位置するビット対にマッピングするのを防ごうとすることであり、特にjおよびtというさらに小さい値を強調する。このような入力エラーイベントは、以下の表1に一覧表示されている。イベントごとに、IS-95に規定されるように、速度1/2、1/3および1/4順方向リンクターボコードの適切な破壊パターンを使用して、第1構成体コードの出力パリティ重量が一覧表示される。指定されたインタリーバが、形式Dk11D7→Dk1D7の入力重量2→2を備える場合には、結果として生じるエラーイベントの複合出力重量は、速度1/2ターボコードの場合、233=8となるだろう。過去の計算では、体系化されたビット2の重量は、2つの構成体エンコーダ3と3からそれぞれのパリティ重量と合計される。同様に、インタリーバが形式Dk11D7→1D14の入力重量2→マッピングを備える場合には、結果として生じるエラーイベントの復号出力重量は、速度1/2ターボコードの場合236であるか、速度1/3ターボコードの場合、2610=18となるだろう。加えて、低構成体出力重量の入力重量4エラーイベントが、第2寸法での低出力重量の2つの入力重量2エラーイベントにマップしてよいことが考えられる。このようなマッピングは、4→{2、2}で示される。入力重量4の構成体エラーイベントには閉鎖形式の解決策はないが、以下の表には、構成体エンコーダ200の低出力重量エラーイベントのいくつかが含まれ、構成体エンコーダ200は、IS-95から引き出される無線によるインタフェースを使用するCDMAデジタル無線通信システム内での順方向リンクターボコード用の第1構成体エンコーダとして使用されている。例えば、インタリーバが形式Dk11D3D4D5→{Dk21D7Dk31D7}の入力重量4→{2、2}マッピングを備える場合には、結果として生じるエラーイベントの複合出力重量は、速度1/2ターボコードの場合、4233=12となるだろう。この複合エラーイベントは、複合出力重量11を有するマッピングDk11D7→Dk21D14のためのエラーイベントよりはるかに悪くない。したがって、主たる設計目標は、悪いマッピングの前述されたタイプが回避される、あるいは少なくとも最小限に抑えられるように、インタリーバのパラメータを最適化することである。理想的には、最低の複合出力重量を有する悪いマッピングは、回避する、および/または最小限に抑えるために最も重要なマッピングである。ある特定のサイズ例えば、1530ためにインタリーバを設計する上では、両方の種類のマッピングつまり、重量2→2および重量4→{2、2}を最小限に抑えるように、インタリーバパラメータを最適化することが可能である。このアプローチは、その特定のサイズに最適なインタリーバを生じさせる。2N-1パンクチュアしやすいインタリーバと称されるより大きい任意のサイズに堅牢にパンクチュアできるサイズ2Nというインタリーバを設計する上では、重量4→{2、2}マッピングの最適化は、達成するのがはるかに困難である可能性があることに注意する必要がある。検索は、図3の実施形態に従って2-DLCSインタリーバからサイズ2Nの破壊フレンドリなインタリーバを得るために実行された。以下の表3は、検索の初期結果を含む。インタリーバサイズごとに、使用される行数、使用される列数がx0、a、およびc係数がともに指定されている。実行の簡略さおよび効率のために、3分の2行がすべてのインタリーバに使用された。代替実施形態では、係数aは、1に等しく設定されてよく、2-D、LCSインタリーバからサイズ2Nのパンクチュアしやすいインタリーバを得るために、新規検索が実行される.順方向および逆方向のLCS再帰等式は、それぞれ以下まで簡略化する:xn1=xncmodM、およびxn=xn1-cmodM以下の表4は検索の初期結果を記載する。実行の簡略さおよび効率のため、すべてのインタリーバ用に32行が使用された。当業者は、表4に示されている結果から、すべてのLCS再帰中で1に等しい設定値aが、結果として生じるインタリーバの品質において何の不利も誘発しないことを理解するだろう。さらに、1に等しい設定値aの簡略化から達成される複雑度の利得はかなりである。例えば、図2の実施形態で説明されている第2LUTおよび第3LUTaおよbabという値を記憶するために使用されるLUTは、必要とされていない。図2の実施形態に説明されているkビットの乗算器も必要ではない。以下の表4から分かるように、初期状態x-1および追加定数cだけが、インタリーバの行ごとに指定される必要がある。より大きなサイズのインタリーバの係数は、それらが本出願の提出の時点では入手できなかったため、初期検索結果だけを指定する表には含まれていない。このようにして、新規の改善されたターボコードインタリーバが説明されてきた。当業者は、ここに開示されている実施形態がセルラー電話システムの文脈で説明されてきたが、本発明の特徴が、例えば、衛星通信システムなどを含む任意の形式の通信システムでの用途にも十分に等しく役立つことを理解するだろう。さらに、ここに説明されている実施形態が、データ通信または音声通信のどちらかを符号化するために必要とされてよいことも当業者によってさらに理解されるだろう。また、前記説明を通して参照されてよいデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップが、電圧、電流、電磁波、磁界または磁粉、光学フィールドまたは光学粒子、あるいはその任意の組み合わせにより有利に表されることも理解されるだろう。当業者は、さらに、ここに開示されている実施形態と関連して説明されている多様な例示的な論理ブロックおよびアルゴリズムの工程が、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、離散ゲートまたはトランジスタ論理、例えばレジスタとFIFOなどの離散ハードウェア構成要素、1セットのファームウェア命令を実行するプロセッサ、あるいは任意の従来のプログラム可能なソフトウェアモジュールおよびプロセッサで実現されるか、あるいは実行されてよいことを理解するだろう。プロセッサは、有利なことにマイクロプロセッサであってよいが、代替では、プロセッサは任意の従来のプロセッサ、制御装置、マイクロコントローラ、または状態機械であってよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、レジスタ、または技術で既知である書込み可能の記憶媒体の任意のその他の形式に常駐できるだろう。本発明の好ましい実施形態は、このようにして示され、説明されてきた。しかしながら、本発明の精神または範囲から逸脱することなく、多数の改変がここに開示されている実施形態に加えられてよいことは普通の技術の熟練者にとって明らかだろう。したがって、本発明は以下のクレームに従った場合を除き、制限されていない。