(57)【要約】【課題】インターリーバの効率を向上させる。【解決手段】インターリーバ３６０には、入力アドレスを受信し、これに応答して第１のクロック周期中に第１の一連のインターリーブアドレスを計算する第１の計算ユニットが含まれる。第２の計算ユニットは、入力アドレスを受信し、これに応答して前記第１のクロック周期中に第２の一連のインターリーブアドレスを計算するために含まれる。インターリーバ３６０には、第１または第２の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を発生させる比較器がさらに含まれる。比較器の出力はスイッチに制御信号を提供する。このスイッチは第１または第２の一連のインターリーブアドレスを、第１のクロック周期用の出力インターリーブアドレスとして選択する。【選択図】図４
2005505947.tif 000002
【特許請求の範囲】
【請求項１】
入力アドレスを受信し、これに応答して第１のクロック周期中に第１の一連のインターリーブアドレスを計算する第１の手段と、
入力アドレスを受信し、これに応答して前記第１のクロック周期中に第２の一連のインターリーブアドレスを計算する第２の手段と、
前記第１または前記第２の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を生成する第３の手段と、
前記信号に応答して、前記第１または前記第２の一連のインターリーブアドレスを、前記第１のクロック周期に対する出力インターリーブアドレスとして選択する第４の手段とを具備するインターリーバ。
【請求項２】
前記第１の手段は、以下の式を実現する手段を含み、
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は５つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Ｃはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である、請求項１記載の発明。
【請求項３】
前記第２の手段は、以下の式を実現する手段を含み、
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は５つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Ｃはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である、請求項２記載の発明。
【請求項４】
前記第３の手段はしきい値検出器である請求項１記載の発明。
【請求項５】
前記しきい値検出器は比較器を含む請求項４記載の発明。
【請求項６】
前記第４の手段はマルチプレクサである請求項１記載の発明。
【請求項７】
前記第１の手段の出力は前記マルチプレクサに第１の入力を提供し、前記第２の手段の出力は前記マルチプレクサに第２の出力を提供し、前記第３の手段の出力は前記マルチプレクサに対する制御入力を提供する請求項６記載の発明。
【請求項８】
前記インターリーバが、方向制御信号に応答して前記入力アドレスをフォワード方向またはリバース方向に移動させるのを制御する第５の手段をさらに含む請求項１記載の発明。
【請求項９】
前記入力アドレスに対してアドレスオフセットを提供する手段をさらに含む請求項１記載の発明。
【請求項１０】
入力アドレスを受信し、これに応答して第１のクロック周期中に第１の一連のインターリーブアドレスを計算する第１の手段と、
入力アドレスを受信し、これに応答して前記第１のクロック周期中に第２の一連のインターリーブアドレスを計算する第２の手段と、
前記第１または前記第２の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を生成する第４の手段と、
前記信号に応答して、前記第１または前記第２の一連のインターリーブアドレスを、前記第１のクロック周期に対する出力インターリーブアドレスとして選択する第４の手段と、
前記インターリーバが、方向制御信号に応答して前記入力アドレスをフォワード方向またはリバース方向に移動させるのを制御する第５の手段と、
前記入力アドレスに対してアドレスオフセットを提供する第６の手段とを具備するインターリーバ。
【請求項１１】
前記第１の手段は、以下の式を実現する手段を含み、
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は５つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Ｃはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である、請求項１０記載の発明。
【請求項１２】
前記第２の手段は、以下の式を実現する手段を含み、
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は５つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Ｃはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である、請求項１１記載の発明。
【請求項１３】
前記第３の手段はしきい値検出器である請求項１０記載の発明。
【請求項１４】
前記しきい値検出器は比較器を含む請求項１３記載の発明。
【請求項１５】
前記第４の手段はマルチプレクサである請求項１０記載の発明。
【請求項１６】
前記第１の手段の出力は前記マルチプレクサに第１の入力を提供し、前記第２の手段の出力は前記マルチプレクサに第２の出力を提供し、前記第３の手段の出力は前記マルチプレクサに対する制御入力を提供する請求項１５記載の発明。
【請求項１７】
入力アドレスを受信し、これに応答して第１のクロック周期中に第１の一連のインターリーブアドレスを計算し、
入力アドレスを受信し、これに応答して前記第１のクロック周期中に第２の一連のインターリーブアドレスを計算し、
前記第１または前記第２の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を生成し、
前記信号に応答して、前記第１または前記第２の一連のインターリーブアドレスを、前記第１のクロック周期に対する出力インターリーブアドレスとして選択するステップを含むインターリーブまたはデインターリーブ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に通信システムに関し、より詳細にはデジタル通信システムにおけるターボ符号化スキームのために使用されるインターリーバに関する。
【背景技術】
【０００２】
デジタルデータの送信はもともと干渉を生じる傾向がある。この干渉により送信データに誤りが生じるおそれがある。誤り検出スキームは送信データに誤りが生じたか否かをできるだけ高い信頼性をもって決定するよう提案してきた。データをパケットで送信したり、各パケットに例えば１６ビットの長さの巡回冗長検査（ＣＲＣ）フィールドを追加することなどが一般的である。これはパケットのデータのチェックサムを搬送する。受信機がデータを受信すると、受信機は受信データ上の同一のチェックサムを計算して、計算結果がＣＲＣフィールド内のチェックサムと同一かどうかを確認する。
【０００３】
送信データがオンラインで使用されていないときは、誤りが検出されたときに誤りのあるデータを再送信するよう要求することが可能である。しかしながら、例えば電話回線、セルラ電話機、遠隔画像システムなどのオンラインで送信が行われているときに再送信を要求することはできない。
【０００４】
畳み込みコードを採用することにより、送信中に誤りが生じているおそれのあるときでもデジタルデータの受信機が送信データを正しく決定することができる。畳み込みコードは送信データに冗長をもたらし、送信データをパケットにパックする。このパケットでは、各ビットの値はシーケンス内の初期ビットに依存している。したがって、誤りが生じたときでも、受信データ内の可能性のあるシーケンスをトラッキングし戻すことによって受信機はオリジナルデータを推測することができる。
【０００５】
送信チャネルの性能をさらに向上させるために、符号化スキームの中にはインターリーバを含むものもある。インターリーバは符号化中にパケット内のビットの順序を並べ替える。したがって、干渉により送信中にいくつかの近接するビットが破壊されたとき、干渉の影響はオリジナルパケット全体にわたって広がり、デコーディング処理によってより容易に克服することができる。他の改良点としては、多重コンポーネントコードがある。これは、パケットを１回以上並列または直列でエンコードする。例えば、少なくとも２つの畳み込み符号器を並列で使用する誤り訂正方法を採用することが技術的に知られている。このような並列エンコーディングは一般的にターボ符号化と呼ばれる。
【０００６】
多重コンポーネントコードについては、最適デコーディングは非常に複雑なタスクであることが多く、オンラインデコーディングには通常用いられないような長い時間を必要とすることもある。反復デコーディング技術はこの課題を克服するよう開発されてきた。受信ビットがゼロまたは１かどうかを即座に決定するのではなく、受信機が各ビットにビットが１である可能性を示すマルチレベルスケール上の値を割り当てる。ログ見込み比（ＬＬＲ）可能性と呼ばれる一般的なスケールは例えば{-32,31}のような範囲の整数で各ビットを表す。値31は送信ビットが非常に高い可能性でゼロであったことを示す。値-32は送信ビットが非常に高い可能性で１であったことを示す。値ゼロは論理ビットの値が決定不能であることを示す。
【０００７】
マルチレベルスケール上で表されたデータは“ソフトデータ”と呼ばれる。反復デコーディングは通常ソフトイン／ソフトアウトである。すなわち、デコーディング処理はビット値の可能性に対応する一連の入力を受信し、コードの制約を考慮して出力訂正された可能性として提供する。一般的に、反復デコーディングを行うデコーダは以前の反復からのソフトデータを使用して受信機が読み出すソフトデータをデコードする。多重コンポーネントコードの反復デコーディング中に、デコーダはあるコードのデコーディングによる結果を利用して、第２のコードのデコーディングを向上させる。ターボ符号化の際に並列符号器が用いられるとき、２つの対応デコーダがこの目的のため並列に使用されるのも効果的である。このような反復デコーディングは、ソフトデータが送信データを詳細に表すと考えられるまで複数回反復するよう行われる。（例えば、上述のスケール上では０から３１の間で）１により近いことを示す可能性を持つビットには、バイナリゼロが割り当てられ、残りのビットにはバイナリ１が割り当てられる。
【０００８】
“ターボ符号化”はフォワード誤り訂正（ＦＥＣ）の分野における重要な向上を意味する。ターボ符号化には多くの変形があるが、ターボ符号化の多くのタイプは、反復デコーディングの使用を組み合わせたインターリービングステップとは異なる多重エンコーディングステップを用いる。この組み合わせによって、通信システムにおける雑音許容差に関して以前利用できなかった性能が提供される。すなわち、ターボ符号化により、既存のフォワード誤り訂正技術を用いて以前受け付けることのできなかった雑音電力スペクトル密度（Eb/N0）毎のビット当たりのエネルギーレベルでの通信が可能となる。
【０００９】
多くの通信システムはフォワード誤り訂正技術を使用するので、ターボ符号化の使用による恩恵を受けるだろう。例えばターボコードはワイヤレス衛星リンクの性能を向上させることができる。衛星の限定されたダウンリンク送信電力は低いEb/N0レベルで動作可能な受信機システムを必要とする。
【００１０】
例えば、デジタルセルラおよびＰＣＳ電話機システムのようなデジタルワイヤレス遠隔通信システムもまたフォワード誤り訂正を利用する。例えば、米国電気通信工業会は、無線インターフェース標準規格ＴＩＡ／ＥＩＡ暫定標準規格９５およびＩＳ−９５Ｂのような派生の標準規格（以下、集合的にＩＳ−９５と参照）を普及させてきた。これらの標準規格は、畳み込みエンコーディングを用いてシステム容量を増加させるための符号化利得を提供するデジタルワイヤレス通信システムを定めている。実質的にＩＳ−９５標準規格の使用にしたがって無線周波数（ＲＦ）信号を処理するシステムおよび方法は米国特許第5,103,459号で説明されており、この特許は本発明の譲受人に譲り受けられ、参照によりここに取り込まれる。
【００１１】
通信産業では符号化利得の恒常的な改良が現在も取り組まれている。従来的なデジタルワイヤレス通信システムにおいて、合同ランダムシーケンスを用いてターボ符号化用のシリアルインターリーバが効果的に実現されてもよい。統一的なランダムシーケンスが線形合同帰納アルゴリズムを使用することにより生成されてもよいことが技術的に知られている。2D. Kunuth The Art of Computer Programming(1969年)（線形合同帰納による擬似ランダム数の発生を説明している）等を参照のこと。二次元インターリーバ（すなわちロウとカラムを有する矩形のデータアレイとして構成されたインターリーバ）を採用する並列ターボエンコーダは、一次元インターリーバ（すなわち、データが単一の線形アレイで構成されているインターリーバ）を持つ並列ターボエンコーダよりも符号化利得の点で一般的に優れているということも知られている。
【００１２】
ターボ利得の性能をさらに高めることが効果的である。さらに、ターボエンコーダは畳み込み符号器よりも構成が非常に複雑なので、より複雑でないターボエンコーダの構成を提供するのが望ましい。したがって、多重線形合同シーケンスを利用したより複雑でない二次元インターリーバが必要である。
【００１３】
セルラ遠隔通信システムは１つ以上の基地局と通信する移動電話機のような複数の移動トランシーバにより特徴付けられる。各トランシーバには送信機と受信機とが含まれる。
【００１４】
一般的なトランシーバでは、アンテナによりアナログ無線周波数（ＲＦ）信号が受信され、ＲＦセクションにより中間周波数（ＩＦ）にダウンコンバートされる。信号処理回路は雑音フィルタリングを行い、信号の大きさをアナログ自動利得制御（ＡＧＣ）回路により調整する。その後ＩＦセクションは信号をベースバンドに混合してアナログ信号をデジタル信号に変換する。このデジタル信号は、その後出力音声またはデータへのさらなる信号処理のためにベースバンドプロセッサに入力される。
【００１５】
同様に、送信機はデジタル入力をベースバンドプロセッサから受信して、その入力をアナログ信号に変換する。この信号はその後フィルタされてＩＦステージにより中間周波数にアップコンバートされる。送信信号の利得は調整されＩＦ信号は無線送信の準備のためにＲＦに変換される。
【００１６】
送信機と受信機のリンクはチャネルである。基地局と関連移動局との間のチャネルの情報搬送容量を増やすための１つの方法は信号対干渉比（ＳＩＲ）を大きくすることである。ＳＩＲは受信された情報ビット毎のエネルギーと受信信号の干渉密度との比で表されることが多い。システム容量を増やすため、移動局と基地局における受信機はより小さな信号対干渉比（ＳＩＲ）で効果的に動作しなければならない。あるいはチャネルのＳＩＲが大きくならなければならない。ＳＩＲを大きくするため、送信信号の電力を増加させることが多い。これにはコストがかかり、他の移動機器に対する干渉が増大する。したがって多くのアプリケーションにとって非実用的である。代わりに、要求されるＳＩＲを小さくするために特別な符号化方式が採用されることが多い。
【００１７】
通信信号に対する符号化には、信号に対して冗長情報を追加することが含まれる。雑音の多い環境で送信された通信信号に冗長を厳密に追加することにより、雑音の多いチャネルによりもたらされる誤りが望ましいレベルに低減される。Shannonが1948年に示したように、通信信号の情報レートがチャネル容量よりも少ない場合、情報レートを低減することなく望ましい雑音のレベルを得ることができる。冗長が雑音の多い環境で採用されない場合、誤りのない性能を獲得するのは難しいか、不可能である。
【００１８】
通信システムで情報の送信時に生じる雑音及び干渉に関連した誤りを制御するために、多くのエンコーディングおよびデコーディングシステムが設計されている。符号化は高い信頼性を持つ現代型デジタル通信システムの設計において重要な検討事項である。
【００１９】
ローリーフェージングされた信号環境および他のユーザからの同一チャネルの干渉が一般的な符号分割多元接続（ＣＤＭＡ）ワイヤレス通信システムにおいて、雑音が多くフェージングされた環境で効率的に動作する機能は特に重要である。受信信号におけるドップラー周波数シフトによるローリーフェージングの結果は移動局の移動が原因である。ＣＤＭＡ通信システムが複数のシステムユーザを保持しているときに同一チャネルの干渉が生じ、各追加ユーザは同一チャネルの干渉の大きな一因となっている。同一チャネルの干渉は一般的に相加白色ガウス雑音（ＡＷＧＮ）のような他の形式のチャネル雑音よりも大きい。
【００２０】
ローリーフェージングされた信号環境において、送信された通信信号の電力レベルはローリー分布にしたがって変動する。電力は一般的に10dBから50dBのダイナミックレンジにわたって変動する。変動の継続時間は移動局の速度の関数である。すなわち、セルラ電話機、移動局に割り当てられた周波数チャネル、および最大信号環境の関数である。移動機器の速度が速まるにつれて変動継続時間は短くなり、より短いバースト誤りが導かれる。移動機器の速度が減少するにつれて変動継続時間は長くなり、より長いバースト誤りが導かれる。
【００２１】
雑音が多くローリーフェージングされた環境においてワイヤレス通信システムの性能を向上させるために、信号符号器の次にインターリーバが採用されることが多い。インターリーバは、所定のコードワードの個々のビットが互いに異なり、別々の時間で送信されるように、符号器からのコードワード出力を拡散する。結果として所定のコードの個々のビットには独立したフェージングがなされ、ここでバースト誤りにより影響を受けるビットは異なるコードワードに属している。受信機では、受信信号サンプルはデコーディングの前にデインターリーブされる。したがって、データをオリジナル誤り訂正コードでリカバできるように、バースト誤りの影響はメッセージを介して拡散する。対角、畳み込み、インターブロック、およびブロックインターリーバなど、異なるタイプのインターリーバがある。
【００２２】
ターボコードは２つ以上の連続したコードと直列または並列接続され、１つ以上のコードインターリーバにより分けられている。誤り制御を向上させ、要求されるＳＩＲを小さくするために、ターボエンコーダおよびデコーダが採用されることが多い。ターボコードは比較的効率的な反復アルゴリズムでデコードされ、Shannonの限定に近づく信号対雑音比（ＳＮＲで）低い誤りレートを達成することが多い。ターボコードの不可欠な要素として、コードインターリーバおよびデインターリーバがそれぞれコード符号器およびデコーダのコンポーネント間におかれていなければならない。ターボコードの性能はコードインターリーバの長さと構造に左右される。良好なターボコードの性能はかつて擬似ランダム構造を有するインターリーバを用いて達成されていた。
【００２３】
D.Rowitch他により1998年12月4日に出願され、線形合同シーケンスを用いたターボコードインターリーバと題された、米国特許出願番号第09/205,511号（代理人整理番号ＱＣＰＡ７２０）の教示は、参照によりここに取り込まれている。この特許出願は特に効果的なインターリーバの設計を開示し、主張している。Rowitch他のインターリーバはパーソナルコンピュータ上で実行するシミュレーションに基づいて数々の利点を提供している。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
それでもなお、ハードウェア（すなわち、セルラ電話機）においてインターリーバの効率を向上させる必要性がある。
【００２５】
したがって、Rowitch他の教示がセルラ電話機で使用可能な集積回路すなわちチップに取り込まれるよう、ハードウェアにおいてRowitch他の教示を効率的に実現するシステムまたは方法に関する技術的な必要性がある。
【課題を解決するための手段】
【００２６】
上述の技術的な必要性は本発明のインターリーバによって対処される。本発明のインターリーバには、入力アドレスを受信し、これに応答して第１のクロック周期中に第１の一連のインターリーブアドレスを計算する第１の計算ユニットが含まれる。入力アドレスを受信し、これに応答して前記第１のクロック周期中に第２の一連のインターリーブアドレスを計算する第２の計算ユニットも含まれる。本発明のインターリーバには、第１または第２の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を生成する比較器がさらに含まれる。比較器の出力はスイッチに制御信号を提供する。このスイッチは第１または第２の一連のインターリーブアドレスを、第１のクロック周期に対する出力インターリーブアドレスとして選択する。
【００２７】
例示的な実施形態において、第１および第２の計算ユニットは、以下の式を実現する。
【００２８】
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は５つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Ｃはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である。
【００２９】
本発明のインターリーバは方向制御信号を受けて入力アドレスのフォワード方向またはリバース方向に移動するよう設計されている。入力アドレスに対してアドレスオフセットを提供する機構も含まれる。図で示されるアドレスオフセット記憶装置８６は、カウンタ８４を読み込む機能とともにインターリーバがインターリーバシーケンスの任意の望ましい地点で開始できるようにする。Rowitch他により特許されたアルゴリズムによれば、インターリーバは開始から終了まで実行される必要があるとされている。このアルゴリズムにはシーケンスのランダムな地点で開始する特定の方法は存しない。インターリーバシーケンスにおいて望ましい地点に関するアドレスオフセットを予め記憶することによって、インターリーバシーケンスはその望ましい地点で開始し、フォワードまたはバックワード方向のいずれかで実行することができる。
【００３０】
本発明のインターリーバはＣＤＭＡ２０００標準規格で利用されるＬＣＳターボインターリーバアルゴリズムの固有の構成を提供する。
【発明を実施するための最良の形態】
【００３１】
図１で示される１つの実施形態にしたがうと、並列接続されたターボエンコーダ１０、すなわちターボエンコーダ１０には、第１および第２の符号器１２、１４、インターリーバ１６、およびマルチプレクサ１８が含まれる。第１の符号器１２とインターリーバ１６は、符号器入力データ２０を受け取るよう構成されている。このデータ２０は一般的にユーザ情報か制御データである。第１の符号器１２はシステマティックシンボル２２とパリティシンボル２４を出力する。このシステマティックシンボル２２は、一般的にオリジナル入力ビット２０のコピーである。第２の符号器１４はインターリーバ１６のインターリーブ出力２６を受け取って第２の組のパリティシンボル２８を出力するよう構成されている。第２の符号器１４により生成されたシステマティックシンボル（示されていない）が除去され、第１および第２の符号器１２、１４の残りの各出力２２、２４、２８がマルチプレクサ１８によって、出力データストリーム３０に多重化される。
【００３２】
符号化レートを下げるために追加の符号器およびインターリーバ対が並列に追加されてもよく、これにより強化されたフォワードリンク誤り訂正が提供される。代替的に、システマティックシンボル２２および／またはパリティシンボル２４のいくつかがパンクチャされてもよくこれにより符号化レートを高め、かつ向上したスペクトル効率を提供する。
【００３３】
第１および第２の符号器１２，１４は技術的に知られたさまざまなタイプの符号器であってもよく、例えばブロック符号器や畳み込み符号器などがある。例示的なブロック符号器および畳み込み符号器はBernard Sklar著,デジタル通信の245-380頁(1988年)で説明されており、参照によりここに取り込まれる。第１および第２の符号器１２，１４は例えばＫ＝４のような比較的小さな拘束長Ｋを持つ畳み込み符号器であるのが有効であり、これにより複雑さが緩和されている。というのも、低い拘束長により対応するデコーダ（示されていない）の複雑さが緩和されるからである。第１および第２の符号器１２，１４には技術的に知られた帰納システマティック畳み込み（ＲＳＣ）符号器も有効である。インターリーバ１６は以下で説明するような二次元インターリーバが有効である。
【００３４】
一般的に、第１および第２の符号器１２，１４は受信した各ビット２０毎に２つのパリティシンボル２４，２８を出力し、各符号器１２，１４について符号化レートＲ＝１／２を生成する。にもかかわらず、ターボエンコーダ１０用のトータル符号化レートはＲ=1/3となる。なぜなら、第２の符号器１４からのシステマティックビットがパンクチャされるからである。
【００３５】
図２に示すように、１つの実施形態にしたがった２次元（２−Ｄ）線形合同シーケンス（ＬＣＳ）インターリーバ１００には、４つのルックアップテーブル（ＬＵＴ）１０２，１０４，１０６，１０８と、７つの２入力マルチプレクサ（ＭＵＸ）１１０，１１２，１１４，１１６，１１８，１２０，１２２と、Ｒ入力ＭＵＸ１２４、ロウカウンタ１２６、第１および第２のビット反転論理ブロック１２８，１３０と、アドレス確認モジュール１３２、複数（Ｒ個）のカラムインデックスまたはロウレジスタ１３４，１３６，１３８、１４０（簡単にするために４つのレジスタだけが示されている）と、カラムインデックスリセットにフラグを立てるレジスタ１４２と、第１および第２のｋビット乗算器１４４，１４６と、４つのｋビット加算器１４８，１５０，１５２，１５４とが含まれる。ＬＣＳ帰納発生器１５６は破線の囲みにより示されている。インターリーバ１００は図１の並列ターボエンコーダで利用されてよい。あるいは代替的に、インターリーバ１００は直列ターボエンコーダで利用されてもよく、この場合インターリーバ１００は、当業者にとって理解されるように外部および内部の成分のコードが配置される。
【００３６】
インターリーバ１００の大きさはＮであり、Ｎは２mより小さいかこれと等しく、２m-1よりも大きい。ロウ数Ｒはカラム数Ｃによって乗算され、２mに等しい。カラム数Ｃは２kと等しい。すなわち、ｋ=log2Cである。ロウ数Ｒは２rと等しい。すなわちr=log2Rである。
【００３７】
アドレス確認モジュール１３２は、シフトレジスタおよび加算器として構成される個別のゲート論理として効果的に構成されてもよい。アドレス確認モジュール１３２は、Ｘ入力がカラム数ＣとＹ入力（ロウインデックス）との積にＺ入力（カラムインデックス）を加算したものよりも小さいかどうかをチェックするよう機能し、例えばシフトおよび加算機能を実行する。アドレス確認モジュール１３２はアドレスが無効かどうか、すなわちアドレスが２の累乗を超えるビット（このビットは切り捨てられなければならない）を含む（すなわち、インターリーバサイズが連続する２の累乗の間にある）か否かを示すフラグを生成するように機能する。
【００３８】
ＬＣＳ帰納発生器１５６は、４つのＬＵＴ１０２，１０４、１０６、１０８に対するロウ数の値を入力で受け取り、カラムインデックス（アドレス確認モジュール１３２へのＺ入力）を生成することによって、ビット値を擬似ランダムに並べ替え、またはシャッフルするよう機能する。このビット値は以下で説明するようにインターリーバ１００の各ロウに含まれている。当業者であれば、図１に示すような並列ターボエンコーダにおいて、第２の符号器により読み出されアドレス付けされた、擬似ランダムに生成されたＬＣＳの利用のためにデータ成分の物理的な並べ替えが効果的に回避される。第１および第２のビット反転論理ブロック１２８、１３０は、以下で説明されるような技術的に知られている予め定められたビット反転規則にしたがってインターリーバ１００内のロウを並べ替え、あるいはシャッフルするよう機能する。
【００３９】
ＬＵＴ１０２、１０４、１０６、１０８は、技術的に知られたいかなる記憶媒体として構成されてもよい。第１のＬＵＴ１０２は係数ｃの値を記憶するために利用される。第２のＬＵＴ１０４は係数aの値を記憶するために利用される。第３のＬＵＴ１０６は係数ｂの累乗をとった係数aの値を記憶するために利用される。第４のＬＵＴ１０８はx(-1)の値を記憶するために利用される。各ＬＵＴ１０２、１０４、１０６、１０８のサイズはr×kビットである。インターリーバ１００の全体のメモリ要求は、4r×kビットにレジスタ１３４、１３６、１３８、１４０のr×kレジスタビットを加えたものとなる。
【００４０】
レジスタ１４２はロウ数を特定するビット値を受け取る。このロウ数は初期値Ｒ−１と設定されている。各処理周期で、レジスタ１４２はカラム数を特定するビット値を出力する。このカラム値は初期値がゼロ以外の値に設定されている。したがってレジスタ１４２はロウ数の周期がすべてのロウを通じてカラムインデックスをリセットするよう機能する。
【００４１】
各処理周期で、入力ＭＵＸ１１０は、逆行フラグが設定されているか否かにしたがって、１か−１のいずれかの値を生成する。この値は加算器１４８に提供され、この加算器１４８は次のロウと示されたビット値にこの値を加算する。結果として得られた和はロウカウンタ１２６のデータ入力に提供される。値１はロウカウンタ１２６の第２の入力に提供される。ロウカウンタ１２６はロウの値（当初はレジスタ１４２にＲ−１として記憶されている）を生成する。このロウの値は第２のビット反転論理ブロック１３０に提供される。ロウの値はＬＵＴ１０２、１０４、１０６、１０８のそれぞれにも提供される。ロウの値は加算器１５０にも提供される。この加算器１５０はロウの値を値１に加算し、結果として得られた和を第１のビット反転論理ブロック１２８に提供する。この結果として得られた和はＭＵＸ１１２の第１の入力にも提供される。
【００４２】
各処理周期で、第１のビット反転論理ブロック１２８は値をＭＵＸ１１４の第１の入力に提供する。第２のビット反転論理ブロック１３０はロウインデックス値をＭＵＸ１１４の第２の入力に提供し、さらにアドレス確認モジュール１３２のＹ入力にも提供する。アドレス確認モジュール１３２は値ＮをＸ入力で受け取る。アドレス確認モジュール１３２はＺ入力で記憶された係数に基づいて値を受け取る。ＬＣＳアドレス確認モジュール１３２はＣとＹ入力値との積を計算し、その積をＺ入力値に加算し、その結果がＸ入力の値Ｎよりも大きいか、あるいはこれと等しいかどうかをチェックする。計算された値がＮより大きいかあるいはこれと等しい場合、アドレス確認モジュール１３２は値１を出力する。これ以外の場合では、その出力の値は０である。出力値はAddr_GT_Nで示されるフラグであり、１に設定されるときインターリーバサイズが連続する２の累乗間にあり、これにより小さい方の２の累乗を超えるビットが切り捨てられることを示す。
【００４３】
Addr_GT_N値はＭＵＸ１１２、１１４、１２０および１２２へセレクタ入力として提供される。Addr_GT_N値が１に設定されている場合、ＭＵＸ１１２は自身の第１の入力を選択する。ＭＵＸ１１２から出力されたこの選択された入力はインターリーブされた次のロウの値である。Addr_GT_N値が１に設定されている場合、ＭＵＸ１１４は自身の第１の入力を選択する。ＭＵＸ１１４から出力された選択された入力は最終ロウインデックス値を示す。
【００４４】
ＬＣＳ帰納発生器は以下のように動作する。各処理周期で、係数ｃを示すｋビット値は第１のＬＵＴ１０２からデータパスｋビット加算器１５２へ送信される。値ａは第２のＬＵＴ１０４からＭＵＸ１１６の第１の入力へ送信される。累乗ｂをとったaを示す値は第３のＬＵＴ１０６からＭＵＸ１１６の第２の入力へ送信される。ＭＵＸ１１６はセレクタ入力で逆行フラグを受け取る。逆行値が１の場合、ＭＵＸ１１６は自身の第２の入力を選択し、選択された値であるｋビット値を乗算器１４４へ提供する。それ以外の場合には、ＭＵＸ１１６は自身の第１の入力ｋビット値を乗算器１４４に提供する。値x(-1)は第４のＬＵＴ１０８からＭＵＸ１１８の第１の入力へ送信される。ＭＵＸ１１８はＭＵＸ１２４から出力されたｋビットの値を第２の出力で受け取る。ＭＵＸ１１８はセレクタインデックスでカラムインデックス値を受け取る。カラムインデックス値はゼロ以外の初期値に設定されている。カラムインデックス値が１の場合、ＭＵＸ１１８は自身の第２の入力を選択する。それ以外の場合には、ＭＵＸ１１８は自身の第１の入力を選択する。選択された入力値、ｋビット値は乗算器１４４に提供される。乗算器１４４から結果として得られた積はｋビット加算器１５２に提供される。データパスｋビット加算器１５２は技術的に知られたプログラマブル加算器／減算器であるのが好ましい。インターリーバ１００が逆行するとき、加算器１５２は値ｃを減算する。
【００４５】
ｋビット加算器１５２は各処理周期でアドレス確認モジュール１３２のＺ入力に出力値を提供する。加算器１５２の出力はＭＵＸ１２０の第１の入力にも提供され、さらに第１から第（Ｒ−１）番目のロウレジスタ１３６、１３８、１４０のそれぞれにも提供される。加算器１５２の出力はｋビット入力値としてＭＵＸ１２２の第１の入力にも提供される。
【００４６】
ＭＵＸ１２０はｋビット加算器１５４から第２の入力値を受け取る。ＭＵＸ１２０のセレクタ入力が１に設定されている場合、ＭＵＸ１２０は自身の第１の入力を選択する。それ以外の場合には、ＭＵＸ１２０は自身の第２の入力を選択する。選択された入力は、ゼロ番目のロウレジスタ１３４に提供される。各ロウレジスタ１３４、１３６、１３８、１４０は、出力値をＭＵＸ１２４のそれぞれの入力に提供する。さらに、ゼロ番目のロウレジスタ１３４の出力値は乗算器１４６に提供される。ＭＵＸ１２４はロウの値（ロウカウンタ１２６の出力）をセレクタ入力で受け取る。ＭＵＸ１２４により選択されたロウレジスタ入力はセレクタ入力のロウ値の値に依存している。したがって、各ロウレジスタ１３４、１３６、１３８、１４０はロウ値がそれぞれのロウレジスタ数と等しいときに更新され、ゼロ番目のロウレジスタ１３４はフラグAddr_GT_Nがゼロに等しいときにもイネーブルである。
【００４７】
Ｒ＝０のときのｋビットの初期入力値ｂが乗算器１４６に提供される。乗算器１４６もゼロ番目のロウレジスタ１３４から出力された値を受け取る。乗算器１４６は受け取った２つの値を乗算し、得られた積をｋビット加算器１５４に提供する。データパスｋビット加算器１５４もまたＲ＝０のときの初期入力値ｃを受受け取る。データパスｋビット加算器１５４は技術的に知られるプログラマブル加算器／減算器であるのが好ましい。インターリーバ１００が逆行するとき、加算器１５４は初期値ｃを減算する。加算器１５４は受け取った２つの値を加算（またはプログラムによっては減算）する。得られた和であるｋビット値はＭＵＸ１２２の第２の入力に提供される。
【００４８】
セレクタ入力が１に設定されている場合、ＭＵＸ１２２は自身の第１の入力を選択する。それ以外の場合、ＭＵＸ１２２は自身の第２の入力を選択する。ＭＵＸ１２２は選択された入力を最終カラムインデックス値として出力する。次のビット値に対するアドレスは、Ｒと、ＭＵＸ１２２から出力された最終ロウインデックス値との積であり、これにＭＵＸ１１４から出力された最終カラムインデックス値が加算される。
【００４９】
１つの実施形態では、周期Ｍを持つＬＣＳは以下の恒等式にしたがって帰納的に生成される。
【００５０】
x(n+1)=(ax(n)+c)modM
ここで整数ａ，ｃ，およびＭは以下の条件を満たす。（１）ｃはＭと互いに素でなければならない。（２）a-1はｐの倍数でなければならず、ここでｐはＭの約数である任意の素数である。Ｍが４の倍数のとき、a-1は４の倍数でなければならない。（３）x(0)は任意の整数であるシード値である。構成を簡単にするために、Ｍは２の累乗として選ばれても有効である。したがって、aは4p+1の形でなければならないが、ｃは任意の奇数をとってもよい。上述のようにx(0)が初期条件を示すために用いられる一方で、x(-1)は図２に関して説明された実施形態における初期条件を示すために用いられることに留意すべきである。異なる数が用いられても有意性はない。
【００５１】
１つの実施形態にしたがった二次元のＬＣＳインターリーバは以下のように示される。インターリービングサイズをＫ=2Nとすると、インターリーバはＲ個のロウとＣ個のカラムを有する矩形行列として示される。ここでＲおよびＣはともに２の累乗により与えられる。インターリーブされるデータはロウ×ロウのマトリクスに記述される。まず、データのロウが任意の従来的なインターリービング規則にしたがって置換（すなわち、インターリーブ）される。データのロウはロウインデックスに適用されるビット反転規則にしたがって置換されるのが好ましい。各ロウ内で、カラム（すなわち、データ成分。各カラムがロウ毎に１つのデータ成分を持つ）は関連ＬＣＳにより示される規則にしたがって置換される。２つの個別のロウに関連するＬＣＳは異なっているのが効果的だが、代替的には同一であってもよい。すべてのロウの置換の後、データはカラム×カラム方式で読み出され、インターリーブされたシーケンスを生成する。当業者が理解するように、長さ２Nのインターリーバから無効なアドレスを削除することによって２Nより短く２N-1より長い長さを持つインターリーバが生成可能である。
【００５２】
１つの実施形態において、二次元のＬＣＤインターリーバには、以下の基準値が含まれる。インターリーバサイズは３２（すなわち、Ｎ＝５）であり、データアレイは{d(0), d(1), d(2), ……d(31)}として定義される。インターリーバは４本のロウとロウ毎に８つの成分を持つ配列として構成される。データ成分は以下の方法でロウ×ロウに並べられる。
【数１】
2005505947.tif 000003
【００５３】
バイナリのロウインデックス（00, 01, 10, 11）はビット反転なのが効果的であり（すなわち、00, 10, 01, 11）、ロウは以下の行列を得るために置換される。
【数２】
2005505947.tif 000004
【００５４】
ビット反転により、インターリーバのロウは予め定められたビット反転アルゴリズムにしたがってシャッフルされる。ビット反転アルゴリズムの適用により、インターリーバのロウ間で望ましい時間分割が提供される。とはいえ、ビット反転はインターリーバの構成にとって必ずしも必要ではない。
【００５５】
特定の実施形態では、置換ＬＣＳは以下の式にしたがって生成される。
【数３】
2005505947.tif 000005
【００５６】
置換パターンは、４本のロウについてそれぞれ{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}によって与えられる。したがって、カラムの置換を適用した後、第１のロウは以下のようになる。
【００５７】
(d(3) d(6) d(5) d(0) d(7) d(2) d(1) d(4))
第２のロウは以下のようになる。
【００５８】
(d(16) d(21) d(18) d(23) d(20) d(17) d(22) d(19))
第３のロウは以下のようになる。
【００５９】
(d(12) d(15) d(14) d(9) d(8) d(11) d(10) d(13))
さらに、第４のロウは以下のようになる。
【００６０】
(d(31) d(26) d(29) d(24) d(27) d(30) d(25) d(28))
すべてのカラムが各ロウ内で置換された後、インターリーブデータ行列は以下の形式を有する。
【数４】
2005505947.tif 000006
【００６１】
インターリーブ行列内のデータはカラム×カラムで読み出され、以下のインターリーブシーケンスを生成する。{d(3), d(16), d(12), d(31), d(6), d(21), d(15), d(26), d(5), d(18), d(14),…, d(11), d(30), d(1), d(22), d(10), d(25), d(4), d(19), d(13), d(28)}。長さ３０のインターリーバが望ましい場合、上述のように生成されたインターリーバはデータ成分d(30)とd(31)とを削除することによって短くすることができ、以下のインターリーブシーケンスが生成される。
【数５】
2005505947.tif 000007
【００６２】
インターリーバの構成において採用されたＬＣＳは、ターボデコーディングにおいてＭＡＰデコーダを最適に使用するために、望ましくはフォワードまたはバックワードのいずれかで生成されてもよい。１つの実施形態では、逆シーケンス生成は以下の式で与えられる。
【００６３】
x(n) = (aβx(n+1)-c)modM
ここで、β=(Ｍ/2)-1
上記の式で用いられた項βが、図２の実施形態と関連して説明された係数ｂを示すことに留意すべきである。
【００６４】
このように、ＬＣＳの生成は各インターリーバが３Ｒパラメータによって一意的に定義されるよう要求している。ここでＲはロウの数である。比較的短いlog2(Ｃ)×log2(Ｃ)乗算器が必要とされる。モジュロ演算により、ビット位置log2(Ｃ)より上のビットを生成する必要がない。Ｒ合同シーケンスの中間結果を得るために１組のＲレジスタが必要とされる。
【００６５】
各ロウに関する異なるパラメータx(0), aおよびｂについて、置換シーケンスに関して多くの異なる可能性がある。検索を実行して特定のターボコードで使用するためのインターリーバパラメータを最適化することが望ましい。
【００６６】
図３では、１つの実施形態にしたがった成分符号器２００がＣＤＭＡデジタルワイヤレス通信システムで使用される特定のターボコードのために最適化される。符号器２００には７つのモジュロ２加算器２０２、２０４、２０６、２０８、２１０、２１２、２１４と、３つのビット位置２１６、２１８、２２０とが含まれる。ビット位置２１６，２１８、２２０は３ビットレジスタとして構成されていてもよいし、代替的に３つの１ビットレジスタで構成されていてもよい。モジュロ２加算器２０２，２０４、２０６、２０８、２１０、２１２、２１４は正確にビット位置２１６，２１８，２２０と接続され、これにより望ましい組のフィードバックタップが生成される。したがって、加算器２０２は入力ビットを受け取るよう構成されている。加算器２０２はビット位置２１６にも接続され、加算器２０４と２０６にも接続している。ビット位置２１６はビット位置２１８に接続され、加算器２０４と２０６にも接続している。ビット位置２１８はビット位置２２０に接続され、加算器２０８と２１０にも接続している。加算器２１０は加算器２０２に接続している。加算器２０４は加算器２１２に接続している。加算器２０６は加算器２０８に接続している。加算器２０８は加算器２１４に接続している。ビット位置２２０は加算器２１０、２１４、および２１２に接続している。加算器２１２、２１４はそれぞれ第１および第２のシンボルを出力するよう構成されている。
【００６７】
誤り性能が成分デコーダ（示されていない）における誤り事象の入力および出力の重みにより特徴付けられうることは技術的に知られている。S.Benedetto & G. MontosiのUnveiling Turbo Codes: Some Results on Parallel Concatenated Coding Schemes, 42 IEEE Trans. Info. Theory 409-28 (1996年３月)等を参照のこと。誤り事象の入力重みはビット誤りの数であるが、誤り事象の出力重みはコードシンボル誤りの数である。入力重み１の誤り事象は明らか全ゼロ状態から発散し、再び合成されることはない（この重み１は、シフトレジスタ内でエンドレスに周期し、この方法によってより多くの出力重みが累算される）。これは符号器の一部の帰納あるいはフィードバックによるものである。この構成により、ターボコードの性能が入力重み２を持つ出力誤り事象によって高い信号対雑音比（ＳＮＲ）で優位に立つことが示される。上述の文献を参照のこと。ターボコード誤りフロアはいわゆる影響を受けない距離漸近線を用いて正確に予測される。影響を受けない距離とは、入力重み２のすべての誤り事象の最小出力重みである。長さの短い入力重み２の誤り事象は、一般的に最小距離の誤り事象を生じさせる。図３の符号器２００に関して、フィードバック多項式は1+D2+D3であり、すべての可能性のある入力重み２の誤り事象はDk(1+D7j)の式からなる。ここでj=1,2,Ｋであり、ｋは範囲0,Ｋ,k-7j（Ｋはインターリーバサイズと仮定される）における任意のシフトである。これは当業者が理解するように成分符号器２００の格子を調べることによって容易に確認することができる。
【００６８】
図３の実施形態に関するインターリーバサイズはＫで示され、図２の実施形態に関するインターリーバサイズはＮで示されることに留意すべきである。当業者は異なる記号が使われていることに特に有意性はないことを理解しうる。
【００６９】
例えば、誤りパターンDk(1+D7)が第１のデコーダから最小距離の誤り事象を生じさせるとする。ターボインターリーバは２つの誤り（Dk,Dk+7）を２つの位置（Dn,Dm）にマッピングする。｜m-n｜＝７あるいは７の倍数の場合には、第２のデコーダの小さな距離の誤り事象が生じやすい。ターボインターリーバの基本的な目的はそのようなマッピングが生じるのを避ける点にある。すなわち、インターリーバは、第１の次元における低い重みの誤り事象となりやすいビットの集積を、第２の次元において大きな量の出力重みを発生させるビットの集積に効果的にマッピングすべきである。したがって、インターリーバを設計する望ましい方法は、より小さな値jおよびtへの特定の強調により、指数(ｋ, ｋ+7j)に位置するビット対が指数(s, s+7t)に位置するビット対にマッピングされるのを避けようとすることである。そのような入力の誤り事象は以下の表１でリストアップされている。各事象について、第１の成分コードの出力パリティ重みが、ＩＳ−９５で特定されるレート１／２、１／３、および１／４フォワードリンクターボコードのための適切なパンクチャパターンを用いてリストされる。
【表１】
2005505947.tif 000008
【００７０】
所定のインターリーバがDk1(1+D7)→Dk2(1+D7)の形式の入力重みの２→２マッピングを含むとき、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードで2+3+3=8となる。前述の計算で、システマティックビットの重み（２）には２つの成分符号器（３と３）からのそれぞれのパリティ重みが加算される。同様に、インターリーバがDk1(1+D7)→Dk2(1+D14)の形式の入力重みの２→２マッピングを含むとき、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードについて2+3+6=11、またはレート1/3のターボコードについて2+6+10=18となる。
【００７１】
さらに、小さな成分出力重みの入力重み４の誤り事象を、第２の次元で小さな出力重みの２つの入力重み２の誤り事象にマッピングすることも可能である。このようなマッピングは4→{2,2}と示される。入力重み４の成分誤り事象について近接した形の解法はないが、以下の表には成分符号器２００について小さな出力重みの誤り事象のいくつかが含まれている。この成分符号器２００は、ＩＳ−９５から導き出された無線インターフェースを利用するＣＤＭＡデジタルワイヤレス通信システムのフォワードリンクターボコードのための第１の成分符号器として使用されている。
【表２】
2005505947.tif 000009
【００７２】
例えば、インターリーバがDk1(1+D3+D4+D5)→{Dk2(1+D7)Dk3(1+D7)}の形式の入力重みの4→{2,2}マッピングを含む場合、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードについて4+2+3+3=12となる。この合成誤り事象は、合成出力重み１１を持つマッピングDk1(1+D7)→Dk2(1+D14)による誤り事象よりそれほど不良ではない。したがって、主な設計の目標は上述のタイプの不良マッピングを避けるか少なくとも最小限にとどめるために、インターリーバのパラメータを最適化する点にある。理想的には、不良マッピングを避けるおよび／または最小にするために最も重要なことは、最も小さい合成出力重みを持つ不良マッピングを避けるおよび／または最小化することである。特定のサイズ（例えば1530）のためのインターリーバの設計においては、両方のタイプのマッピングを最小にする（すなわち、重み２→２および重み４→{2,2}）ためにインターリーバパラメータを最適化することができる。この方法により、特定のサイズのために最適なインターリーバが生成される。２N-1より大きい任意のサイズへ間違いなくパンクチャ可能なサイズ２Nの最適なインターリーバ（“パンクチャ性”インターリーバとして参照される）の設計において、重み4→{2,2}マッピングのための最適化はより達成されにくい点が注目されなければならない。
【００７３】
図３の実施形態にしたがった２ＤのＬＣＳインターリーバから、サイズ２Nのパンクチャ性インターリーバを得るための検索が行われる。以下の表３には検索の初期の結果が含まれる。各インターリーバのサイズに関して、使用されるロウの数および使用されるカラムの数は係数x(0)、a、およびｃにしたがって示される。構成を簡単かつ効果的にするために、すべてのインターリーバについて３２本のロウを使用した。
【表３】
2005505947.tif 000010
【表４】
2005505947.tif 000011
【００７４】
代替実施形態では、２ＤのＬＣＳインターリーバから２Nのパンクチャ性インターリーバを得るための新しい検索が実行されることにより、係数aを１に等しく設定してもよい。フォワードおよびリバースのＬＣＳ帰納方程式はそれぞれ以下のように簡単化される。
【００７５】
x(n+1)=(x(n)+c)modM
および
x(n)=(x(n+1)-c)modM
以下の表４には、検索の初期の結果が含まれる。構成を簡単かつ効果的にするために、すべてのインターリーバについて３２本のロウを使用した。当業者であれば図４に示す結果から、すべてのＬＣＳ帰納においてaを１と等しく設定しても結果として得られるインターリーバの品質に不都合は生じないことを理解するだろう。さらに、aを１と等しく設定するという簡単化によって得られる複雑利得も重要である。例えば、図２の実施形態で示された第２および第３のＬＵＴ（aおよびabの値を記憶するために使用されるＬＵＴ）は必要とされない。図２の実施形態で示されたｋビット乗算器も必要ではない。以下の表４から分かるように、初期条件x(-1)および付加定数ｃのみがインターリーバの各ロウに特定されなければならない。より大きなサイズのインターリーバに関する係数は表には含まれていない。本発明の出願時までには利用できなかったので、この表は初期の検索結果しか示していない。
【表５】
2005505947.tif 000012
【００７６】
１つの実施形態にしたがうと、入来ビットのシリアルストリームが２つの符号器に送られる。一方へは変化せず送られ、他方へはインターリーバを介して送られる。２つの符号器の出力で、パリティシンボルはデータレートより高いコードレートに基づいて、同一の因子で別の出力シリアルストリームに互いに多重化される。両方の符号器がコードレート＿にあった場合、すなわち入力するすべてのシンボルであった場合、２つのシンボルが出力され、出力のレートは入力のレートの３倍になる。なぜなら各符号器が出ていく情報システムを加えた１つの超過パリティシンボルをもたらすからである。各符号器から出力された情報シンボルは同一なので、１つのシンボルが落とされる。
【００７７】
図４はターボエンコーダ３１０を示す最上位のブロック図である。この符号器３１０には、本発明の教示にしたがって構成された２つの成分畳み込み符号器３２０および３４０と、インターリーバ３６０とが含まれる。（当業者であれば、本発明を実行するために符号器が同一のものである必要はないことを理解するだろう。）各成分符号器３２０および３４０には、第１の排他的論理和（ＸＯＲ）ゲート３２２が含まれる。ＸＯＲゲート３２２は各符号器３２０および３４０について入力端子を備えている。ＸＯＲゲート３２２はいくつかの同一の２：１ＸＯＲゲートのうちの第１のものである。このＸＯＲゲートは単一の１ビット加算器として各符号器内に構成されている。第１のＸＯＲ３２２の出力は第１の１ビットシフトレジスタ３２４に入力され、第２および第３のＸＯＲ３２６および３２８にそれぞれ転送して与えられる。第１の１ビットシフトレジスタ３２４は、各符号器内部に構成されたいくつかの同一の１ビットシフトレジスタのうちの１つである。
【００７８】
第２および第３のＸＯＲ３２６および３２８に対する第２の入力は、第１のシフトレジスタ３２４の出力によって提供される。第１のシフトレジスタ３２４の出力は第２のシフトレジスタ３３０にも提供される。第３のＸＯＲゲート３２８および第２のシフトレジスタ３３０は、第１および第２の入力を第４のＸＯＲゲート３３４に提供する。第２のシフトレジスタ３３０は、第３のシフトレジスタ３３２と第５のＸＯＲゲート３３６にも出力する。第２のＸＯＲゲート３２６および第３のシフトレジスタ３３２は、第１および第２の入力を第６のＸＯＲゲート３３８に提供する。第４のＸＯＲゲート３３４および第３のシフトレジスタ３３２は第１および第２の入力を第７のＸＯＲゲート３４２に提供する。
【００７９】
当業者は、この例で符号器３２０および３４０が、K=4レートの15octalおよび17octalのフィードフォワード生成多項式を備えた1/3畳み込み符号器であることを理解するだろう。フィードバック生成多項式は13octalである。この例で、ターボデコーダのコード多項式は1998年の終わりに初めてリリースされたＣＤＭＡ２０００標準規格の多項式に有線接続されている。開示された実施形態はコード多項式や符号器のタイプとは無関係である。
【００８０】
動作において、ｘkとして示される情報ビットの入力ストリームは第１の符号器３２０の第１のＸＯＲゲート３２２により受け取られ、さらにインターリーバ３６０により受け取られる。インターリーバ３６０は以下でより詳細に説明される方法で入力ストリームを置換し、第２の符号器３４０の第１のＸＯＲゲート３２２に入力を提供する。情報ビットｘkの入力ストリームは符号器を通って直接与えられ、第１の符号器３２０に対してはパリティビットｙ0,0kおよびｙ0,1kとともに、第２の符号器３４０に対してはｙ1,0kおよびｙ1,1kとともに、出力として提供される。（当業者は、入力ストリームxkが変化することなしに渡される限りで符号器３２０が’システマティック’符号器であることを理解するだろう。）これらの５つの出力信号はシリアルストリームに多重化され、送信機（示されていない）内の次の素子に渡される。
【００８１】
図５は、図４のインターリーバをより詳細に示す簡単化されたブロック図である。図４の符号器３２０と３４０の入力が互いに置換されているので、誤り検出は一方の符号器（例えば３２０）の出力が置換され、他方の符号器（３４０）の入力ストリームと一致するよう要求する。同様に、第２の符号器（３４０）の出力は第１の符号器（３２０）の入力ストリームに一致させるためにデインターリーブされなければならない。
【００８２】
模擬インターリーバの実装で懸念される問題は、データアドレスがインターリービング処理の際にシャッフルされる一方で、適切なインターリーバアドレスを生成するという要求を満たさなければならないという点にある。これらの機能はインターリーバ３６０によって実現され、インターリービング処理の際に適切なアドレスを抽出する。
【００８３】
本発明の教示にしたがうと、インターリーバ３６０は線形アドレスシーケンスを置換されたアドレスシーケンスにマッピングする。置換されたアドレスは、ビット反転ブロックインターリーバと類似した手法で生成されるが、ブロックの所定のロウにおけるアドレスが線形合同シーケンス（ＬＣＳ）を使用してさらに置換される点では異なる。アドレスのインターリーブシーケンスを生成するために、Ｒ×Ｃ行列は最上位ロウから始まるアドレスの線形シーケンスで、左から右へ満たされる。ロウの数はＲ＝３２＝２5であり、行列におけるカラムの数はＣ＝２cである。この特定のインターリーバにおいてロウの数は３２で固定され、したがってＲは２5に等しい。‘Ｃ’はカラムの数に等しい。例えばインターリーバの配置の数が１２８の場合、カラムは４つでロウは３２本であり、Ｃは４に等しい。各ロウ内のアドレスはロウ指定ＬＣＳにしたがってシャッフルされる。次に、各ロウ内のアドレスはロウインデックスに適用されるビット反転規則にしたがってシャッフルされる。最後に、最左のカラムから始まり、トップからボトムへ流れ、右に向かって処理されるカラムにより、アドレスが行列から読み出される。各ロウに適用されるＬＣＳは以下の式からなる。
【００８４】
xi(n+1)= xi(n)+c(i)                        ［１］
ここで、ｉはロウインデックスであり、c(i)は奇数の定数モジュロＣである。ｃｄｍａ２０００ターボインターリーバ３６０に関して、各ロウ上の初期条件はxi(0)=c(i)によって与えられる。これにより、上記式が前出の値の記憶を要求することなく計算される。すなわち、
xi(n)=c(i)(n+1)                            ［２］
このように線形アドレスシーケンス：0, …, Ｋ−１において任意のアドレス（Ａ）が与えられると、対応インターリーブアドレスは以下のように計算される。
【００８５】
A=bitrev(row)2c+{(col+1)c(i)}modC          ［３］
ここでＡはインターリーブアドレスであり、‘row’は少なくとも５つの有意なビット（ＬＳＢ）であり、‘col’は入力線形アドレスのｃ個の最も有意なビット（MSB）であり、Ｃはカラムの数であり、c(i)は“ｉ”が現在のロウ数であるときのルックアップテーブルの出力である。係数c(i)はルックアップテーブル（ＬＵＴ）として構成される。インターリーバ３６０には、Ｃの各支持値に対して別々のルックアップテーブルが含まれる。2k-1<Ｋ<=2kとなるサイズＫのインターリーバに対するインターリーブシーケンスを生成するために、Ｃ＝２k-5に対応してc(i)ＬＵＴが選択され、アドレスは式３によって生成される。Ｋ−１より大きいいずれのアドレスも切り捨てられる。インターリーバがロウの代わりにカラムによって“読み出される”ので、２つ以上の連続した不良アドレスとなることはありえない。線形アレイにおいて、値はロウによって読み出されてもよい。すなわち、ロウ２が開始する前にロウ１のすべてが読み出されてもよい。本発明のインターリーバはカラムによって読み出される。これは、ロウの表示をインターリーブアドレスの上側部分におくことにより、インターリーバ方程式で示される。インターリーバサイズ512, …, 1024, …, 32768に関するルックアップテーブルはｃｄｍａ２０００標準規格で構成されてもよい。
【００８６】
ＬＣＳインターリーバは２の累乗でないインターリーバ長についてパンクチャされる。インターリーバにランダムアクセスするために、アクセス地点より先にパンクチャの量も知られていなければならず、インターリーバの機能にロードされ得なければならない。高いデコーディングレートを得るために、クロック周期毎に１つの有効なインターリーバアドレスを生成するのが望ましい。上述のように、［式３］のインターリーバアルゴリズムは連続する２つの無効アドレスを生成することはない。本発明はこの属性の利点を利用する。図５で示すように、インターリーバ３６０は２つの計算ユニット３６２および３６４により構成されている。この２つの計算ユニットのそれぞれは、式３を実現するように設計されている。各計算ユニット３６２および３６４には、ビット反転ユニット３６６，３７０および、係数ルックアップテーブル３６８および３７２がそれぞれ含まれる。データ計算パスは上述のＣＤＭＡ２０００標準規格にしたがって構成されている。すなわち、各計算ユニットは上述の式３のアルゴリズムを実現するよう構成されている。
【００８７】
第１の計算ユニット３６２は現在のインターリーブアドレスを計算する一方で、第２の計算ユニット３６４は次のインターリーブアドレスを計算する。したがって、インターリーバ３６０はクロック周期毎に常に有効なインターリーブアドレスを生成することができる。
【００８８】
第１の計算ユニット３６２の出力で、値がｎ＋ｍ<Ｎの場合（ここでｎはカラムアドレス、ｍはロウアドレス、およびＮはインターリーバの長さ）、不良アドレスは“Bad Addr”信号を出力するしきい値検出器３７４により検出される。しきい値検出器３７４が出力するBad Addr信号は、インターリーバ選択マルチプレクサ３７６を制御する。Bad Addr信号に応答して、マルチプレクサ３７６は第１の計算ユニット３６２の出力、または第２の計算ユニット３６４の出力をインターリーバ３６０の出力として選択する。
【００８９】
生成された各無効アドレスもアドレスオフセットカウンタ３８４を増分する。アドレスオフセットカウンタ３８４は外部制御装置３８２とアドレスオフセットレジスタ３８６とともにアドレスオフセット回路３８０内に含まれ、ランダムアクセスメモリ（ＲＡＭ）により実現されてもよい。アドレスオフセット回路３８０は入力線形アドレスを操作して、第１の加算器３７８を介してパンクチャされたアドレスを処理する。ランダムアクセスのサポートは、読み取り可能なアドレスオフセットカウンタ３８４の使用により達成される。アドレスオフセットレジスタ３８６をインターリーバアレイ内のランダムアクセス線形アドレスより前にパンクチャの数と等しく設定することにより、インターリーバ３６０はアドレスのアレイの任意の位置から開始できる。
【００９０】
ターボデコーダは一般的に成分デコーダに対してログＭＡＰデコーダを使用する方法で実装される。ログＭＡＰデコーダはコードの格子を通じてフォワードおよびリバース反復を要求する。通常、その後ターボインターリーバがリバースおよびフォワードの両方向に動作するよう要求する。フォワード方向は、線形アドレス０から最大要求アドレスへのインターリーバの動作として定義される。これに対して、リバース方向は、最も高い線形アドレスから線形アドレス０へのインターリーバの実行として定義される。ログＭＡＰベースのターボデコーダをフォワードインターリーバ動作のみを要求する方法で構成することもできるが、これは追加のテンポラリ記憶装置の点で非常にコストがかかると思われる。ログＭＡＰデコーダに対する状態距離メモリ記憶要求を減らすために、スライディングウィンドウを利用するログＭＡＰデコーダが構成されることが多い。スライディングウィンドウの利用は、逆行することができるだけでなくインターリーバアレイにランダムアクセスすることもできるインターリーバにより容易になる。このため、本発明のインターリーバ３６０はフォワード方向だけでなくリバース方向でも実行できるように設計されている。
【００９１】
リバース方向で実行するために、インターリーバアルゴリズムは変化しないままであるが、２つの計算ユニットへの入力は変化する。計算ユニットは、input_address+address_offsetとinput_address+address_offset+1上で動作する代わりに、input_address+address_offsetとinput_address+address_offset-1上でそれぞれ動作する。これは、以下でより詳細に説明される図６のデコーダ４００により供給されるフォワード・リバース信号の命令の下における第２の加算器３８８と第２のマルチプレクサ３９０により実現される。この信号はデコーダの制御論理から生じる。すなわち、デコーダは現在行われている動作の性質を考慮して、フォワードまたはリバースのいずれの方向でインターリーバを動作すべきかを決定する。
【００９２】
さらに、現在のパンクチャカウント（すなわち、アドレスオフセット）を維持するために、アドレスオフセットカウンタ３８４は制御装置３８２によりフォワード方向のアップカウンタとしてではなくダウンカウンタとして機能するよう操作される。
【００９３】
端的に言えば、本発明の教示はＣＤＭＡ２０００標準規格で利用されるＬＣＳターボインターリーバアルゴリズムの固有の構成を提供する。ターボインターリーバの構成はＣＤＭＡ２０００インターリーバアルゴリズムの複雑な特徴の利点を有し、強力な設計を提供する。
【００９４】
図６は本発明の教示を取り込んだターボデコーダの例示的な構成のブロック図である。ターボデコーダ４００は、インターリーバとデインターリーバが本発明の教示にしたがって構成される点を除き、従来的な設計からなる。ターボデコーダ４００は符号器によって（一般的にチャネルを介して）出力された５つの信号を受け取り、フィードバックによる反復処理を実現する。これにより、第１のソフト入力ソフト出力（ＳＩＳＯ）デコーダ４１０は非インターリーブパリティビットとともにデータストリームを受け取り、インターリーバ４２０へ出力する。
【００９５】
図６において、X0…XK-1は情報シンボルベクトルであり、y00…y0K-1は第１の符号器３２０からのパリティシンボルベクトルであり、y10…y1K-1は図４のターボエンコーダ３１０の第２の符号器３４０からのパリティシンボルベクトルである。さらに、Z0…ZK-1は各ＳＩＳＯデコーダからの仮定された情報ベクトルであり、L0…LK-1はログ見込み比ベクトルであり、最後にu0…uK-1はデコードされたデータビットベクトルである。
【００９６】
ローカルインターリーバ４２０の出力とともに受け取られたインターリーブ信号は、第１のデインターリーバ４４０および第２のデインターリーバ４６０への出力とともに硬判定ユニット４５０を介して第２のＳＩＳＯデコーダ４３０へ出力される。ローカルインターリーバ４２０、デインターリーバ４４０およびデインターリーバ４６０はターボエンコーダ３１０で使用されるインターリーバ３６０と同一の方法で構成される。
【００９７】
ターボデコーダ４００は１回に１つの符号器（３２０または３４０）の出力をデコードする。ＳＩＳＯデコーダ４１０および４３０は誤りの重み付けを互いに受け渡し、硬判定ビットのデコーディングが必要とされる仮定された表示を次のデコーダに提供する。つまり、各ステップが次のデコーダにさらなる重み付けを提供することで実行されたデコーディング処理をサポートするという処理が反復される。このように各デコーダ４１０および４３０の動作は次のデコーディングステップに影響を及ぼす。
【００９８】
硬判定ユニット４５０はソフト出力シンボルをハード出力ビットに変換するよう機能する。これは当業者により理解され、技術的に一般的な比較器により実現することができる。硬判定ユニット４５０の出力はデインターリーブされて、デコーダ４００のデコードされたデータビットベクトルの出力を提供する。
【００９９】
以上のように、新規で改良されたターボコードインターリーバが説明された。当業者であれば、ここに開示された実施形態がセルラ電話機システムを背景として説明されたが、本発明の特徴は、衛星通信システムなどを含む任意の形式の通信システムのアプリケーションにも同様に向けられていることを理解するだろう。ここに説明された実施形態がデータまたは音声通信のいずれかを符号化するために用いられてもよいことが当業者によってさらに理解されるだろう。上述の説明を通じて参照可能なデータ、指令、命令、情報、信号、ビット、シンボル、およびチップが、電圧、電流、電磁波、電界または磁粒子、光学領域または光粒子、あるいはこれらの任意の組み合わせによって効果的に表されてもよいことがさらに理解されるだろう。
【０１００】
当業者は、ここに開示された実施形態とともに説明されたさまざまな例示的な論理ブロックおよびアルゴリズムステップが、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、個別のゲートまたはトランジスタ論理、レジスタやＦＩＦＯのような個別のハードウェアコンポーネント、１組のファームウェア指令を実行するプロセッサ、あるいは任意の従来的なプログラマブルソフトウェアモジュールおよびプロセッサにより構成あるいは実行されてもよいことを理解するだろう。このプロセッサはマイクロプロセッサであるのが効果的だが、代わりに任意の従来的なプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシンであってもよい。ソフトウェアモジュールはＲＡＭメモリ、フラッシュメモリ、レジスタ、あるいは技術的に知られた他の任意の形式の書き込み可能記憶媒体内に存在していてもよい。
【０１０１】
以上のように、特定のアプリケーション用の特定の実施形態を参照して本発明が説明された。本発明の教示にアクセスする当業者であれば、本発明の範囲内の追加的な修正、応用および実施形態を認識するだろう。したがって、本発明の範囲内のそのような任意かつすべての応用、修正、および実施形態をカバーすることが付属の特許請求の範囲により意図される。
【図面の簡単な説明】
【０１０２】
【図１】図１は、並列ターボエンコーダを示すブロック図である。
【図２】図２は、図１の並列ターボエンコーダで使用可能なインターリーバを示すブロック図である。
【図３】図３は、図２のインターリーバと接続して使用可能な成分符号器を示すブロック図である。
【図４】図４は、本発明の教示にしたがって構成された２つの畳み込み成分符号器と１つのインターリーバとを備えたターボエンコーダを示す最上位ブロック図である。
【図５】図５は、図４のインターリーバを詳細に示す簡単化されたブロック図である。
【図６】図６は、ここで開示された実施形態の教示を具体化するターボデコーダの例示的な構成を示すブロック図である。
【図１】
2005505947.tif 000013
【図２】
2005505947.tif 000014
【図３】
2005505947.tif 000015
【図４】
2005505947.tif 000016
【図５】
2005505947.tif 000017
【図６】
2005505947.tif 000018
【国際公開パンフレット】
2005505947.tif 000019
2005505947.tif 000020
2005505947.tif 000021
2005505947.tif 000022
2005505947.tif 000023
2005505947.tif 000024
2005505947.tif 000025
2005505947.tif 000026
2005505947.tif 000027
2005505947.tif 000028
2005505947.tif 000029
2005505947.tif 000030
2005505947.tif 000031
2005505947.tif 000032
2005505947.tif 000033
2005505947.tif 000034
2005505947.tif 000035
2005505947.tif 000036
2005505947.tif 000037
2005505947.tif 000038
2005505947.tif 000039
2005505947.tif 000040
2005505947.tif 000041
2005505947.tif 000042
2005505947.tif 000043
2005505947.tif 000044
2005505947.tif 000045
2005505947.tif 000046
2005505947.tif 000047
2005505947.tif 000048
2005505947.tif 000049
2005505947.tif 000050
2005505947.tif 000051
2005505947.tif 000052
2005505947.tif 000053
2005505947.tif 000054
2005505947.tif 000055
2005505947.tif 000056
2005505947.tif 000057
2005505947.tif 000058
【国際公開パンフレット（コレクトバージョン）】
2005505947.tif 000059
【国際調査報告】
2005505947.tif 000060
2005505947.tif 000061