JP4191485B2 - ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ - Google Patents

ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ Download PDF

Info

Publication number
JP4191485B2
JP4191485B2 JP2002568515A JP2002568515A JP4191485B2 JP 4191485 B2 JP4191485 B2 JP 4191485B2 JP 2002568515 A JP2002568515 A JP 2002568515A JP 2002568515 A JP2002568515 A JP 2002568515A JP 4191485 B2 JP4191485 B2 JP 4191485B2
Authority
JP
Japan
Prior art keywords
interleaver
row
input
address
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002568515A
Other languages
English (en)
Other versions
JP2005505947A (ja
JP2005505947A5 (ja
Inventor
ハルター、スティーブン・ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2005505947A publication Critical patent/JP2005505947A/ja
Publication of JP2005505947A5 publication Critical patent/JP2005505947A5/ja
Application granted granted Critical
Publication of JP4191485B2 publication Critical patent/JP4191485B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は一般的に通信システムに関し、より詳細にはデジタル通信システムにおけるターボ符号化スキームのために使用されるインターリーバに関する。
デジタルデータの送信はもともと干渉を生じる傾向がある。この干渉により送信データに誤りが生じるおそれがある。誤り検出スキームは送信データに誤りが生じたか否かをできるだけ高い信頼性をもって決定するよう提案してきた。データをパケットで送信したり、各パケットに例えば16ビットの長さの巡回冗長検査(CRC)フィールドを追加することなどが一般的である。これはパケットのデータのチェックサムを搬送する。受信機がデータを受信すると、受信機は受信データ上の同一のチェックサムを計算して、計算結果がCRCフィールド内のチェックサムと同一かどうかを確認する。
送信データがオンラインで使用されていないときは、誤りが検出されたときに誤りのあるデータを再送信するよう要求することが可能である。しかしながら、例えば電話回線、セルラ電話機、遠隔画像システムなどのオンラインで送信が行われているときに再送信を要求することはできない。
畳み込みコードを採用することにより、送信中に誤りが生じているおそれのあるときでもデジタルデータの受信機が送信データを正しく決定することができる。畳み込みコードは送信データに冗長をもたらし、送信データをパケットにパックする。このパケットでは、各ビットの値はシーケンス内の初期ビットに依存している。したがって、誤りが生じたときでも、受信データ内の可能性のあるシーケンスをトラッキングし戻すことによって受信機はオリジナルデータを推測することができる。
送信チャネルの性能をさらに向上させるために、符号化スキームの中にはインターリーバを含むものもある。インターリーバは符号化中にパケット内のビットの順序を並べ替える。したがって、干渉により送信中にいくつかの近接するビットが破壊されたとき、干渉の影響はオリジナルパケット全体にわたって広がり、デコーディング処理によってより容易に克服することができる。他の改良点としては、多重コンポーネントコードがある。これは、パケットを1回以上並列または直列でエンコードする。例えば、少なくとも2つの畳み込み符号器を並列で使用する誤り訂正方法を採用することが技術的に知られている。このような並列エンコーディングは一般的にターボ符号化と呼ばれる。
多重コンポーネントコードについては、最適デコーディングは非常に複雑なタスクであることが多く、オンラインデコーディングには通常用いられないような長い時間を必要とすることもある。反復デコーディング技術はこの課題を克服するよう開発されてきた。受信ビットがゼロまたは1かどうかを即座に決定するのではなく、受信機が各ビットにビットが1である可能性を示すマルチレベルスケール上の値を割り当てる。ログ見込み比(LLR)可能性と呼ばれる一般的なスケールは例えば{-32,31}のような範囲の整数で各ビットを表す。値31は送信ビットが非常に高い可能性でゼロであったことを示す。値-32は送信ビットが非常に高い可能性で1であったことを示す。値ゼロは論理ビットの値が決定不能であることを示す。
マルチレベルスケール上で表されたデータは“ソフトデータ”と呼ばれる。反復デコーディングは通常ソフトイン/ソフトアウトである。すなわち、デコーディング処理はビット値の可能性に対応する一連の入力を受信し、コードの制約を考慮して出力訂正された可能性として提供する。一般的に、反復デコーディングを行うデコーダは以前の反復からのソフトデータを使用して受信機が読み出すソフトデータをデコードする。多重コンポーネントコードの反復デコーディング中に、デコーダはあるコードのデコーディングによる結果を利用して、第2のコードのデコーディングを向上させる。ターボ符号化の際に並列符号器が用いられるとき、2つの対応デコーダがこの目的のため並列に使用されるのも効果的である。このような反復デコーディングは、ソフトデータが送信データを詳細に表すと考えられるまで複数回反復するよう行われる。(例えば、上述のスケール上では0から31の間で)1により近いことを示す可能性を持つビットには、バイナリゼロが割り当てられ、残りのビットにはバイナリ1が割り当てられる。
“ターボ符号化”はフォワード誤り訂正(FEC)の分野における重要な向上を意味する。ターボ符号化には多くの変形があるが、ターボ符号化の多くのタイプは、反復デコーディングの使用を組み合わせたインターリービングステップとは異なる多重エンコーディングステップを用いる。この組み合わせによって、通信システムにおける雑音許容差に関して以前利用できなかった性能が提供される。すなわち、ターボ符号化により、既存のフォワード誤り訂正技術を用いて以前受け付けることのできなかった雑音電力スペクトル密度(Eb/N0)毎のビット当たりのエネルギーレベルでの通信が可能となる。
多くの通信システムはフォワード誤り訂正技術を使用するので、ターボ符号化の使用による恩恵を受けるだろう。例えばターボコードはワイヤレス衛星リンクの性能を向上させることができる。衛星の限定されたダウンリンク送信電力は低いEb/N0レベルで動作可能な受信機システムを必要とする。
例えば、デジタルセルラおよびPCS電話機システムのようなデジタルワイヤレス遠隔通信システムもまたフォワード誤り訂正を利用する。例えば、米国電気通信工業会は、無線インターフェース標準規格TIA/EIA暫定標準規格95およびIS−95Bのような派生の標準規格(以下、集合的にIS−95と参照)を普及させてきた。これらの標準規格は、畳み込みエンコーディングを用いてシステム容量を増加させるための符号化利得を提供するデジタルワイヤレス通信システムを定めている。実質的にIS−95標準規格の使用にしたがって無線周波数(RF)信号を処理するシステムおよび方法は米国特許第5,103,459号で説明されており、この特許は本発明の譲受人に譲り受けられ、参照によりここに取り込まれる。
通信産業では符号化利得の恒常的な改良が現在も取り組まれている。従来的なデジタルワイヤレス通信システムにおいて、合同ランダムシーケンスを用いてターボ符号化用のシリアルインターリーバが効果的に実現されてもよい。統一的なランダムシーケンスが線形合同帰納アルゴリズムを使用することにより生成されてもよいことが技術的に知られている。2D. Kunuth The Art of Computer Programming(1969年)(線形合同帰納による擬似ランダム数の発生を説明している)等を参照のこと。二次元インターリーバ(すなわちロウとカラムを有する矩形のデータアレイとして構成されたインターリーバ)を採用する並列ターボエンコーダは、一次元インターリーバ(すなわち、データが単一の線形アレイで構成されているインターリーバ)を持つ並列ターボエンコーダよりも符号化利得の点で一般的に優れているということも知られている。
ターボ利得の性能をさらに高めることが効果的である。さらに、ターボエンコーダは畳み込み符号器よりも構成が非常に複雑なので、より複雑でないターボエンコーダの構成を提供するのが望ましい。したがって、多重線形合同シーケンスを利用したより複雑でない二次元インターリーバが必要である。
セルラ遠隔通信システムは1つ以上の基地局と通信する移動電話機のような複数の移動トランシーバにより特徴付けられる。各トランシーバには送信機と受信機とが含まれる。
一般的なトランシーバでは、アンテナによりアナログ無線周波数(RF)信号が受信され、RFセクションにより中間周波数(IF)にダウンコンバートされる。信号処理回路は雑音フィルタリングを行い、信号の大きさをアナログ自動利得制御(AGC)回路により調整する。その後IFセクションは信号をベースバンドに混合してアナログ信号をデジタル信号に変換する。このデジタル信号は、その後出力音声またはデータへのさらなる信号処理のためにベースバンドプロセッサに入力される。
同様に、送信機はデジタル入力をベースバンドプロセッサから受信して、その入力をアナログ信号に変換する。この信号はその後フィルタされてIFステージにより中間周波数にアップコンバートされる。送信信号の利得は調整されIF信号は無線送信の準備のためにRFに変換される。
送信機と受信機のリンクはチャネルである。基地局と関連移動局との間のチャネルの情報搬送容量を増やすための1つの方法は信号対干渉比(SIR)を大きくすることである。SIRは受信された情報ビット毎のエネルギーと受信信号の干渉密度との比で表されることが多い。システム容量を増やすため、移動局と基地局における受信機はより小さな信号対干渉比(SIR)で効果的に動作しなければならない。あるいはチャネルのSIRが大きくならなければならない。SIRを大きくするため、送信信号の電力を増加させることが多い。これにはコストがかかり、他の移動機器に対する干渉が増大する。したがって多くのアプリケーションにとって非実用的である。代わりに、要求されるSIRを小さくするために特別な符号化方式が採用されることが多い。
通信信号に対する符号化には、信号に対して冗長情報を追加することが含まれる。雑音の多い環境で送信された通信信号に冗長を厳密に追加することにより、雑音の多いチャネルによりもたらされる誤りが望ましいレベルに低減される。Shannonが1948年に示したように、通信信号の情報レートがチャネル容量よりも少ない場合、情報レートを低減することなく望ましい雑音のレベルを得ることができる。冗長が雑音の多い環境で採用されない場合、誤りのない性能を獲得するのは難しいか、不可能である。
通信システムで情報の送信時に生じる雑音及び干渉に関連した誤りを制御するために、多くのエンコーディングおよびデコーディングシステムが設計されている。符号化は高い信頼性を持つ現代型デジタル通信システムの設計において重要な検討事項である。
ローリーフェージングされた信号環境および他のユーザからの同一チャネルの干渉が一般的な符号分割多元接続(CDMA)ワイヤレス通信システムにおいて、雑音が多くフェージングされた環境で効率的に動作する機能は特に重要である。受信信号におけるドップラー周波数シフトによるローリーフェージングの結果は移動局の移動が原因である。CDMA通信システムが複数のシステムユーザを保持しているときに同一チャネルの干渉が生じ、各追加ユーザは同一チャネルの干渉の大きな一因となっている。同一チャネルの干渉は一般的に相加白色ガウス雑音(AWGN)のような他の形式のチャネル雑音よりも大きい。
ローリーフェージングされた信号環境において、送信された通信信号の電力レベルはローリー分布にしたがって変動する。電力は一般的に10dBから50dBのダイナミックレンジにわたって変動する。変動の継続時間は移動局の速度の関数である。すなわち、セルラ電話機、移動局に割り当てられた周波数チャネル、および最大信号環境の関数である。移動機器の速度が速まるにつれて変動継続時間は短くなり、より短いバースト誤りが導かれる。移動機器の速度が減少するにつれて変動継続時間は長くなり、より長いバースト誤りが導かれる。
雑音が多くローリーフェージングされた環境においてワイヤレス通信システムの性能を向上させるために、信号符号器の次にインターリーバが採用されることが多い。インターリーバは、所定のコードワードの個々のビットが互いに異なり、別々の時間で送信されるように、符号器からのコードワード出力を拡散する。結果として所定のコードの個々のビットには独立したフェージングがなされ、ここでバースト誤りにより影響を受けるビットは異なるコードワードに属している。受信機では、受信信号サンプルはデコーディングの前にデインターリーブされる。したがって、データをオリジナル誤り訂正コードでリカバできるように、バースト誤りの影響はメッセージを介して拡散する。対角、畳み込み、インターブロック、およびブロックインターリーバなど、異なるタイプのインターリーバがある。
ターボコードは2つ以上の連続したコードと直列または並列接続され、1つ以上のコードインターリーバにより分けられている。誤り制御を向上させ、要求されるSIRを小さくするために、ターボエンコーダおよびデコーダが採用されることが多い。ターボコードは比較的効率的な反復アルゴリズムでデコードされ、Shannonの限定に近づく信号対雑音比(SNRで)低い誤りレートを達成することが多い。ターボコードの不可欠な要素として、コードインターリーバおよびデインターリーバがそれぞれコード符号器およびデコーダのコンポーネント間におかれていなければならない。ターボコードの性能はコードインターリーバの長さと構造に左右される。良好なターボコードの性能はかつて擬似ランダム構造を有するインターリーバを用いて達成されていた。
D.Rowitch他により1998年12月4日に出願され、線形合同シーケンスを用いたターボコードインターリーバと題された、米国特許出願番号第09/205,511号(代理人整理番号QCPA720)の教示は、参照によりここに取り込まれている。この特許出願は特に効果的なインターリーバの設計を開示し、主張している。Rowitch他のインターリーバはパーソナルコンピュータ上で実行するシミュレーションに基づいて数々の利点を提供している。
それでもなお、ハードウェア(すなわち、セルラ電話機)においてインターリーバの効率を向上させる必要性がある。
したがって、Rowitch他の教示がセルラ電話機で使用可能な集積回路すなわちチップに取り込まれるよう、ハードウェアにおいてRowitch他の教示を効率的に実現するシステムまたは方法に関する技術的な必要性がある。
上述の技術的な必要性は本発明のインターリーバによって対処される。本発明のインターリーバには、入力アドレスを受信し、これに応答して第1のクロック周期中に第1の一連のインターリーブアドレスを計算する第1の計算ユニットが含まれる。入力アドレスを受信し、これに応答して前記第1のクロック周期中に第2の一連のインターリーブアドレスを計算する第2の計算ユニットも含まれる。本発明のインターリーバには、第1または第2の一連のインターリーブアドレスのいずれが無効であるかを決定し、これに応答して信号を生成する比較器がさらに含まれる。比較器の出力はスイッチに制御信号を提供する。このスイッチは第1または第2の一連のインターリーブアドレスを、第1のクロック周期に対する出力インターリーブアドレスとして選択する。
例示的な実施形態において、第1および第2の計算ユニットは、以下の式を実現する。
A=bitrev(row)2c+{(col+1)c(i)}modC
ここでAはインターリーブアドレスであり、‘row’は5つのLSBであり、‘col’は入力線形アドレスのc個のMSBであり、Cはカラム数であり、c(i)は、”i”を現在のロウの数とするルックアップテーブルの出力である。
本発明のインターリーバは方向制御信号を受けて入力アドレスのフォワード方向またはリバース方向に移動するよう設計されている。入力アドレスに対してアドレスオフセットを提供する機構も含まれる。図で示されるアドレスオフセット記憶装置86は、カウンタ84を読み込む機能とともにインターリーバがインターリーバシーケンスの任意の望ましい地点で開始できるようにする。Rowitch他により特許されたアルゴリズムによれば、インターリーバは開始から終了まで実行される必要があるとされている。このアルゴリズムにはシーケンスのランダムな地点で開始する特定の方法は存しない。インターリーバシーケンスにおいて望ましい地点に関するアドレスオフセットを予め記憶することによって、インターリーバシーケンスはその望ましい地点で開始し、フォワードまたはバックワード方向のいずれかで実行することができる。
本発明のインターリーバはCDMA2000標準規格で利用されるLCSターボインターリーバアルゴリズムの固有の構成を提供する。
図1で示される1つの実施形態にしたがうと、並列接続されたターボエンコーダ10、すなわちターボエンコーダ10には、第1および第2の符号器12、14、インターリーバ16、およびマルチプレクサ18が含まれる。第1の符号器12とインターリーバ16は、符号器入力データ20を受け取るよう構成されている。このデータ20は一般的にユーザ情報か制御データである。第1の符号器12はシステマティックシンボル22とパリティシンボル24を出力する。このシステマティックシンボル22は、一般的にオリジナル入力ビット20のコピーである。第2の符号器14はインターリーバ16のインターリーブ出力26を受け取って第2の組のパリティシンボル28を出力するよう構成されている。第2の符号器14により生成されたシステマティックシンボル(示されていない)が除去され、第1および第2の符号器12、14の残りの各出力22、24、28がマルチプレクサ18によって、出力データストリーム30に多重化される。
符号化レートを下げるために追加の符号器およびインターリーバ対が並列に追加されてもよく、これにより強化されたフォワードリンク誤り訂正が提供される。代替的に、システマティックシンボル22および/またはパリティシンボル24のいくつかがパンクチャされてもよくこれにより符号化レートを高め、かつ向上したスペクトル効率を提供する。
第1および第2の符号器12,14は技術的に知られたさまざまなタイプの符号器であってもよく、例えばブロック符号器や畳み込み符号器などがある。例示的なブロック符号器および畳み込み符号器はBernard Sklar著,デジタル通信の245-380頁(1988年)で説明されており、参照によりここに取り込まれる。第1および第2の符号器12,14は例えばK=4のような比較的小さな拘束長Kを持つ畳み込み符号器であるのが有効であり、これにより複雑さが緩和されている。というのも、低い拘束長により対応するデコーダ(示されていない)の複雑さが緩和されるからである。第1および第2の符号器12,14には技術的に知られた帰納システマティック畳み込み(RSC)符号器も有効である。インターリーバ16は以下で説明するような二次元インターリーバが有効である。
一般的に、第1および第2の符号器12,14は受信した各ビット20毎に2つのパリティシンボル24,28を出力し、各符号器12,14について符号化レートR=1/2を生成する。にもかかわらず、ターボエンコーダ10用のトータル符号化レートはR=1/3となる。なぜなら、第2の符号器14からのシステマティックビットがパンクチャされるからである。
図2に示すように、1つの実施形態にしたがった2次元(2−D)線形合同シーケンス(LCS)インターリーバ100には、4つのルックアップテーブル(LUT)102,104,106,108と、7つの2入力マルチプレクサ(MUX)110,112,114,116,118,120,122と、R入力MUX124、ロウカウンタ126、第1および第2のビット反転論理ブロック128,130と、アドレス確認モジュール132、複数(R個)のカラムインデックスまたはロウレジスタ134,136,138、140(簡単にするために4つのレジスタだけが示されている)と、カラムインデックスリセットにフラグを立てるレジスタ142と、第1および第2のkビット乗算器144,146と、4つのkビット加算器148,150,152,154とが含まれる。LCS帰納発生器156は破線の囲みにより示されている。インターリーバ100は図1の並列ターボエンコーダで利用されてよい。あるいは代替的に、インターリーバ100は直列ターボエンコーダで利用されてもよく、この場合インターリーバ100は、当業者にとって理解されるように外部および内部の成分のコードが配置される。
インターリーバ100の大きさはNであり、Nは2mより小さいかこれと等しく、2m-1よりも大きい。ロウ数Rはカラム数Cによって乗算され、2mに等しい。カラム数Cは2kと等しい。すなわち、k=log2Cである。ロウ数Rは2rと等しい。すなわちr=log2Rである。
アドレス確認モジュール132は、シフトレジスタおよび加算器として構成される個別のゲート論理として効果的に構成されてもよい。アドレス確認モジュール132は、X入力がカラム数CとY入力(ロウインデックス)との積にZ入力(カラムインデックス)を加算したものよりも小さいかどうかをチェックするよう機能し、例えばシフトおよび加算機能を実行する。アドレス確認モジュール132はアドレスが無効かどうか、すなわちアドレスが2の累乗を超えるビット(このビットは切り捨てられなければならない)を含む(すなわち、インターリーバサイズが連続する2の累乗の間にある)か否かを示すフラグを生成するように機能する。
LCS帰納発生器156は、4つのLUT102,104、106、108に対するロウ数の値を入力で受け取り、カラムインデックス(アドレス確認モジュール132へのZ入力)を生成することによって、ビット値を擬似ランダムに並べ替え、またはシャッフルするよう機能する。このビット値は以下で説明するようにインターリーバ100の各ロウに含まれている。当業者であれば、図1に示すような並列ターボエンコーダにおいて、第2の符号器により読み出されアドレス付けされた、擬似ランダムに生成されたLCSの利用のためにデータ成分の物理的な並べ替えが効果的に回避される。第1および第2のビット反転論理ブロック128、130は、以下で説明されるような技術的に知られている予め定められたビット反転規則にしたがってインターリーバ100内のロウを並べ替え、あるいはシャッフルするよう機能する。
LUT102、104、106、108は、技術的に知られたいかなる記憶媒体として構成されてもよい。第1のLUT102は係数cの値を記憶するために利用される。第2のLUT104は係数aの値を記憶するために利用される。第3のLUT106は係数bの累乗をとった係数aの値を記憶するために利用される。第4のLUT108はx(-1)の値を記憶するために利用される。各LUT102、104、106、108のサイズはr×kビットである。インターリーバ100の全体のメモリ要求は、4r×kビットにレジスタ134、136、138、140のr×kレジスタビットを加えたものとなる。
レジスタ142はロウ数を特定するビット値を受け取る。このロウ数は初期値R−1と設定されている。各処理周期で、レジスタ142はカラム数を特定するビット値を出力する。このカラム値は初期値がゼロ以外の値に設定されている。したがってレジスタ142はロウ数の周期がすべてのロウを通じてカラムインデックスをリセットするよう機能する。
各処理周期で、入力MUX110は、逆行フラグが設定されているか否かにしたがって、1か−1のいずれかの値を生成する。この値は加算器148に提供され、この加算器148は次のロウと示されたビット値にこの値を加算する。結果として得られた和はロウカウンタ126のデータ入力に提供される。値1はロウカウンタ126の第2の入力に提供される。ロウカウンタ126はロウの値(当初はレジスタ142にR−1として記憶されている)を生成する。このロウの値は第2のビット反転論理ブロック130に提供される。ロウの値はLUT102、104、106、108のそれぞれにも提供される。ロウの値は加算器150にも提供される。この加算器150はロウの値を値1に加算し、結果として得られた和を第1のビット反転論理ブロック128に提供する。この結果として得られた和はMUX112の第1の入力にも提供される。
各処理周期で、第1のビット反転論理ブロック128は値をMUX114の第1の入力に提供する。第2のビット反転論理ブロック130はロウインデックス値をMUX114の第2の入力に提供し、さらにアドレス確認モジュール132のY入力にも提供する。アドレス確認モジュール132は値NをX入力で受け取る。アドレス確認モジュール132はZ入力で記憶された係数に基づいて値を受け取る。LCSアドレス確認モジュール132はCとY入力値との積を計算し、その積をZ入力値に加算し、その結果がX入力の値Nよりも大きいか、あるいはこれと等しいかどうかをチェックする。計算された値がNより大きいかあるいはこれと等しい場合、アドレス確認モジュール132は値1を出力する。これ以外の場合では、その出力の値は0である。出力値はAddr_GT_Nで示されるフラグであり、1に設定されるときインターリーバサイズが連続する2の累乗間にあり、これにより小さい方の2の累乗を超えるビットが切り捨てられることを示す。
Addr_GT_N値はMUX112、114、120および122へセレクタ入力として提供される。Addr_GT_N値が1に設定されている場合、MUX112は自身の第1の入力を選択する。MUX112から出力されたこの選択された入力はインターリーブされた次のロウの値である。Addr_GT_N値が1に設定されている場合、MUX114は自身の第1の入力を選択する。MUX114から出力された選択された入力は最終ロウインデックス値を示す。
LCS帰納発生器は以下のように動作する。各処理周期で、係数cを示すkビット値は第1のLUT102からデータパスkビット加算器152へ送信される。値aは第2のLUT104からMUX116の第1の入力へ送信される。累乗bをとったaを示す値は第3のLUT106からMUX116の第2の入力へ送信される。MUX116はセレクタ入力で逆行フラグを受け取る。逆行値が1の場合、MUX116は自身の第2の入力を選択し、選択された値であるkビット値を乗算器144へ提供する。それ以外の場合には、MUX116は自身の第1の入力kビット値を乗算器144に提供する。値x(-1)は第4のLUT108からMUX118の第1の入力へ送信される。MUX118はMUX124から出力されたkビットの値を第2の出力で受け取る。MUX118はセレクタインデックスでカラムインデックス値を受け取る。カラムインデックス値はゼロ以外の初期値に設定されている。カラムインデックス値が1の場合、MUX118は自身の第2の入力を選択する。それ以外の場合には、MUX118は自身の第1の入力を選択する。選択された入力値、kビット値は乗算器144に提供される。乗算器144から結果として得られた積はkビット加算器152に提供される。データパスkビット加算器152は技術的に知られたプログラマブル加算器/減算器であるのが好ましい。インターリーバ100が逆行するとき、加算器152は値cを減算する。
kビット加算器152は各処理周期でアドレス確認モジュール132のZ入力に出力値を提供する。加算器152の出力はMUX120の第1の入力にも提供され、さらに第1から第(R−1)番目のロウレジスタ136、138、140のそれぞれにも提供される。加算器152の出力はkビット入力値としてMUX122の第1の入力にも提供される。
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のときの初期入力値cを受受け取る。データパスkビット加算器154は技術的に知られるプログラマブル加算器/減算器であるのが好ましい。インターリーバ100が逆行するとき、加算器154は初期値cを減算する。加算器154は受け取った2つの値を加算(またはプログラムによっては減算)する。得られた和であるkビット値はMUX122の第2の入力に提供される。
セレクタ入力が1に設定されている場合、MUX122は自身の第1の入力を選択する。それ以外の場合、MUX122は自身の第2の入力を選択する。MUX122は選択された入力を最終カラムインデックス値として出力する。次のビット値に対するアドレスは、Rと、MUX122から出力された最終ロウインデックス値との積であり、これにMUX114から出力された最終カラムインデックス値が加算される。
1つの実施形態では、周期Mを持つLCSは以下の恒等式にしたがって帰納的に生成される。
x(n+1)=(ax(n)+c)modM
ここで整数a,c,およびMは以下の条件を満たす。(1)cはMと互いに素でなければならない。(2)a-1はpの倍数でなければならず、ここでpはMの約数である任意の素数である。Mが4の倍数のとき、a-1は4の倍数でなければならない。(3)x(0)は任意の整数であるシード値である。構成を簡単にするために、Mは2の累乗として選ばれても有効である。したがって、aは4p+1の形でなければならないが、cは任意の奇数をとってもよい。上述のようにx(0)が初期条件を示すために用いられる一方で、x(-1)は図2に関して説明された実施形態における初期条件を示すために用いられることに留意すべきである。異なる数が用いられても有意性はない。
1つの実施形態にしたがった二次元のLCSインターリーバは以下のように示される。インターリービングサイズをK=2Nとすると、インターリーバはR個のロウとC個のカラムを有する矩形行列として示される。ここでRおよびCはともに2の累乗により与えられる。インターリーブされるデータはロウ×ロウのマトリクスに記述される。まず、データのロウが任意の従来的なインターリービング規則にしたがって置換(すなわち、インターリーブ)される。データのロウはロウインデックスに適用されるビット反転規則にしたがって置換されるのが好ましい。各ロウ内で、カラム(すなわち、データ成分。各カラムがロウ毎に1つのデータ成分を持つ)は関連LCSにより示される規則にしたがって置換される。2つの個別のロウに関連するLCSは異なっているのが効果的だが、代替的には同一であってもよい。すべてのロウの置換の後、データはカラム×カラム方式で読み出され、インターリーブされたシーケンスを生成する。当業者が理解するように、長さ2Nのインターリーバから無効なアドレスを削除することによって2Nより短く2N-1より長い長さを持つインターリーバが生成可能である。
1つの実施形態において、二次元のLCDインターリーバには、以下の基準値が含まれる。インターリーバサイズは32(すなわち、N=5)であり、データアレイは{d(0), d(1), d(2), ……d(31)}として定義される。インターリーバは4本のロウとロウ毎に8つの成分を持つ配列として構成される。データ成分は以下の方法でロウ×ロウに並べられる。
Figure 0004191485
バイナリのロウインデックス(00, 01, 10, 11)はビット反転なのが効果的であり(すなわち、00, 10, 01, 11)、ロウは以下の行列を得るために置換される。
Figure 0004191485
ビット反転により、インターリーバのロウは予め定められたビット反転アルゴリズムにしたがってシャッフルされる。ビット反転アルゴリズムの適用により、インターリーバのロウ間で望ましい時間分割が提供される。とはいえ、ビット反転はインターリーバの構成にとって必ずしも必要ではない。
特定の実施形態では、置換LCSは以下の式にしたがって生成される。
Figure 0004191485
置換パターンは、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のロウは以下のようになる。
(d(3) d(6) d(5) d(0) d(7) d(2) d(1) d(4))
第2のロウは以下のようになる。
(d(16) d(21) d(18) d(23) d(20) d(17) d(22) d(19))
第3のロウは以下のようになる。
(d(12) d(15) d(14) d(9) d(8) d(11) d(10) d(13))
さらに、第4のロウは以下のようになる。
(d(31) d(26) d(29) d(24) d(27) d(30) d(25) d(28))
すべてのカラムが各ロウ内で置換された後、インターリーブデータ行列は以下の形式を有する。
Figure 0004191485
インターリーブ行列内のデータはカラム×カラムで読み出され、以下のインターリーブシーケンスを生成する。{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)}。長さ30のインターリーバが望ましい場合、上述のように生成されたインターリーバはデータ成分d(30)とd(31)とを削除することによって短くすることができ、以下のインターリーブシーケンスが生成される。
Figure 0004191485
インターリーバの構成において採用されたLCSは、ターボデコーディングにおいてMAPデコーダを最適に使用するために、望ましくはフォワードまたはバックワードのいずれかで生成されてもよい。1つの実施形態では、逆シーケンス生成は以下の式で与えられる。
x(n) = (aβx(n+1)-c)modM
ここで、β=(M/2)-1
上記の式で用いられた項βが、図2の実施形態と関連して説明された係数bを示すことに留意すべきである。
このように、LCSの生成は各インターリーバが3Rパラメータによって一意的に定義されるよう要求している。ここでRはロウの数である。比較的短いlog2(C)×log2(C)乗算器が必要とされる。モジュロ演算により、ビット位置log2(C)より上のビットを生成する必要がない。R合同シーケンスの中間結果を得るために1組のRレジスタが必要とされる。
各ロウに関する異なるパラメータx(0), 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のシンボルを出力するよう構成されている。
誤り性能が成分デコーダ(示されていない)における誤り事象の入力および出力の重みにより特徴付けられうることは技術的に知られている。S.Benedetto & G. MontosiのUnveiling Turbo Codes: Some Results on Parallel Concatenated Coding Schemes, 42 IEEE Trans. Info. Theory 409-28 (1996年3月)等を参照のこと。誤り事象の入力重みはビット誤りの数であるが、誤り事象の出力重みはコードシンボル誤りの数である。入力重み1の誤り事象は明らか全ゼロ状態から発散し、再び合成されることはない(この重み1は、シフトレジスタ内でエンドレスに周期し、この方法によってより多くの出力重みが累算される)。これは符号器の一部の帰納あるいはフィードバックによるものである。この構成により、ターボコードの性能が入力重み2を持つ出力誤り事象によって高い信号対雑音比(SNR)で優位に立つことが示される。上述の文献を参照のこと。ターボコード誤りフロアはいわゆる影響を受けない距離漸近線を用いて正確に予測される。影響を受けない距離とは、入力重み2のすべての誤り事象の最小出力重みである。長さの短い入力重み2の誤り事象は、一般的に最小距離の誤り事象を生じさせる。図3の符号器200に関して、フィードバック多項式は1+D2+D3であり、すべての可能性のある入力重み2の誤り事象はDk(1+D7j)の式からなる。ここでj=1,2,Kであり、kは範囲0,K,k-7j(Kはインターリーバサイズと仮定される)における任意のシフトである。これは当業者が理解するように成分符号器200の格子を調べることによって容易に確認することができる。
図3の実施形態に関するインターリーバサイズはKで示され、図2の実施形態に関するインターリーバサイズはNで示されることに留意すべきである。当業者は異なる記号が使われていることに特に有意性はないことを理解しうる。
例えば、誤りパターンDk(1+D7)が第1のデコーダから最小距離の誤り事象を生じさせるとする。ターボインターリーバは2つの誤り(Dk,Dk+7)を2つの位置(Dn,Dm)にマッピングする。|m-n|=7あるいは7の倍数の場合には、第2のデコーダの小さな距離の誤り事象が生じやすい。ターボインターリーバの基本的な目的はそのようなマッピングが生じるのを避ける点にある。すなわち、インターリーバは、第1の次元における低い重みの誤り事象となりやすいビットの集積を、第2の次元において大きな量の出力重みを発生させるビットの集積に効果的にマッピングすべきである。したがって、インターリーバを設計する望ましい方法は、より小さな値jおよびtへの特定の強調により、指数(k, k+7j)に位置するビット対が指数(s, s+7t)に位置するビット対にマッピングされるのを避けようとすることである。そのような入力の誤り事象は以下の表1でリストアップされている。各事象について、第1の成分コードの出力パリティ重みが、IS−95で特定されるレート1/2、1/3、および1/4フォワードリンクターボコードのための適切なパンクチャパターンを用いてリストされる。
Figure 0004191485
所定のインターリーバがDk1(1+D7)→Dk2(1+D7)の形式の入力重みの2→2マッピングを含むとき、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードで2+3+3=8となる。前述の計算で、システマティックビットの重み(2)には2つの成分符号器(3と3)からのそれぞれのパリティ重みが加算される。同様に、インターリーバがDk1(1+D7)→Dk2(1+D14)の形式の入力重みの2→2マッピングを含むとき、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードについて2+3+6=11、またはレート1/3のターボコードについて2+6+10=18となる。
さらに、小さな成分出力重みの入力重み4の誤り事象を、第2の次元で小さな出力重みの2つの入力重み2の誤り事象にマッピングすることも可能である。このようなマッピングは4→{2,2}と示される。入力重み4の成分誤り事象について近接した形の解法はないが、以下の表には成分符号器200について小さな出力重みの誤り事象のいくつかが含まれている。この成分符号器200は、IS−95から導き出された無線インターフェースを利用するCDMAデジタルワイヤレス通信システムのフォワードリンクターボコードのための第1の成分符号器として使用されている。
Figure 0004191485
例えば、インターリーバがDk1(1+D3+D4+D5)→{Dk2(1+D7)Dk3(1+D7)}の形式の入力重みの4→{2,2}マッピングを含む場合、結果として得られる誤り事象の合成出力重みはレート1/2のターボコードについて4+2+3+3=12となる。この合成誤り事象は、合成出力重み11を持つマッピングDk1(1+D7)→Dk2(1+D14)による誤り事象よりそれほど不良ではない。したがって、主な設計の目標は上述のタイプの不良マッピングを避けるか少なくとも最小限にとどめるために、インターリーバのパラメータを最適化する点にある。理想的には、不良マッピングを避けるおよび/または最小にするために最も重要なことは、最も小さい合成出力重みを持つ不良マッピングを避けるおよび/または最小化することである。特定のサイズ(例えば1530)のためのインターリーバの設計においては、両方のタイプのマッピングを最小にする(すなわち、重み2→2および重み4→{2,2})ためにインターリーバパラメータを最適化することができる。この方法により、特定のサイズのために最適なインターリーバが生成される。2N-1より大きい任意のサイズへ間違いなくパンクチャ可能なサイズ2Nの最適なインターリーバ(“パンクチャ性”インターリーバとして参照される)の設計において、重み4→{2,2}マッピングのための最適化はより達成されにくい点が注目されなければならない。
図3の実施形態にしたがった2DのLCSインターリーバから、サイズ2Nのパンクチャ性インターリーバを得るための検索が行われる。以下の表3には検索の初期の結果が含まれる。各インターリーバのサイズに関して、使用されるロウの数および使用されるカラムの数は係数x(0)、a、およびcにしたがって示される。構成を簡単かつ効果的にするために、すべてのインターリーバについて32本のロウを使用した。
Figure 0004191485
Figure 0004191485
代替実施形態では、2DのLCSインターリーバから2Nのパンクチャ性インターリーバを得るための新しい検索が実行されることにより、係数aを1に等しく設定してもよい。フォワードおよびリバースのLCS帰納方程式はそれぞれ以下のように簡単化される。
x(n+1)=(x(n)+c)modM
および
x(n)=(x(n+1)-c)modM
以下の表4には、検索の初期の結果が含まれる。構成を簡単かつ効果的にするために、すべてのインターリーバについて32本のロウを使用した。当業者であれば図4に示す結果から、すべてのLCS帰納においてaを1と等しく設定しても結果として得られるインターリーバの品質に不都合は生じないことを理解するだろう。さらに、aを1と等しく設定するという簡単化によって得られる複雑利得も重要である。例えば、図2の実施形態で示された第2および第3のLUT(aおよびabの値を記憶するために使用されるLUT)は必要とされない。図2の実施形態で示されたkビット乗算器も必要ではない。以下の表4から分かるように、初期条件x(-1)および付加定数cのみがインターリーバの各ロウに特定されなければならない。より大きなサイズのインターリーバに関する係数は表には含まれていない。本発明の出願時までには利用できなかったので、この表は初期の検索結果しか示していない。
Figure 0004191485
1つの実施形態にしたがうと、入来ビットのシリアルストリームが2つの符号器に送られる。一方へは変化せず送られ、他方へはインターリーバを介して送られる。2つの符号器の出力で、パリティシンボルはデータレートより高いコードレートに基づいて、同一の因子で別の出力シリアルストリームに互いに多重化される。両方の符号器がコードレート_にあった場合、すなわち入力するすべてのシンボルであった場合、2つのシンボルが出力され、出力のレートは入力のレートの3倍になる。なぜなら各符号器が出ていく情報システムを加えた1つの超過パリティシンボルをもたらすからである。各符号器から出力された情報シンボルは同一なので、1つのシンボルが落とされる。
図4はターボエンコーダ310を示す最上位のブロック図である。この符号器310には、本発明の教示にしたがって構成された2つの成分畳み込み符号器320および340と、インターリーバ360とが含まれる。(当業者であれば、本発明を実行するために符号器が同一のものである必要はないことを理解するだろう。)各成分符号器320および340には、第1の排他的論理和(XOR)ゲート322が含まれる。XORゲート322は各符号器320および340について入力端子を備えている。XORゲート322はいくつかの同一の2:1XORゲートのうちの第1のものである。このXORゲートは単一の1ビット加算器として各符号器内に構成されている。第1のXOR322の出力は第1の1ビットシフトレジスタ324に入力され、第2および第3のXOR326および328にそれぞれ転送して与えられる。第1の1ビットシフトレジスタ324は、各符号器内部に構成されたいくつかの同一の1ビットシフトレジスタのうちの1つである。
第2および第3のXOR326および328に対する第2の入力は、第1のシフトレジスタ324の出力によって提供される。第1のシフトレジスタ324の出力は第2のシフトレジスタ330にも提供される。第3のXORゲート328および第2のシフトレジスタ330は、第1および第2の入力を第4のXORゲート334に提供する。第2のシフトレジスタ330は、第3のシフトレジスタ332と第5のXORゲート336にも出力する。第2のXORゲート326および第3のシフトレジスタ332は、第1および第2の入力を第6のXORゲート338に提供する。第4のXORゲート334および第3のシフトレジスタ332は第1および第2の入力を第7のXORゲート342に提供する。
当業者は、この例で符号器320および340が、K=4レートの15octalおよび17octalのフィードフォワード生成多項式を備えた1/3畳み込み符号器であることを理解するだろう。フィードバック生成多項式は13octalである。この例で、ターボデコーダのコード多項式は1998年の終わりに初めてリリースされたCDMA2000標準規格の多項式に有線接続されている。開示された実施形態はコード多項式や符号器のタイプとは無関係である。
動作において、xkとして示される情報ビットの入力ストリームは第1の符号器320の第1のXORゲート322により受け取られ、さらにインターリーバ360により受け取られる。インターリーバ360は以下でより詳細に説明される方法で入力ストリームを置換し、第2の符号器340の第1のXORゲート322に入力を提供する。情報ビットxkの入力ストリームは符号器を通って直接与えられ、第1の符号器320に対してはパリティビットy0,0 kおよびy0,1 kとともに、第2の符号器340に対してはy1,0 kおよびy1,1 kとともに、出力として提供される。(当業者は、入力ストリームxkが変化することなしに渡される限りで符号器320が’システマティック’符号器であることを理解するだろう。)これらの5つの出力信号はシリアルストリームに多重化され、送信機(示されていない)内の次の素子に渡される。
図5は、図4のインターリーバをより詳細に示す簡単化されたブロック図である。図4の符号器320と340の入力が互いに置換されているので、誤り検出は一方の符号器(例えば320)の出力が置換され、他方の符号器(340)の入力ストリームと一致するよう要求する。同様に、第2の符号器(340)の出力は第1の符号器(320)の入力ストリームに一致させるためにデインターリーブされなければならない。
模擬インターリーバの実装で懸念される問題は、データアドレスがインターリービング処理の際にシャッフルされる一方で、適切なインターリーバアドレスを生成するという要求を満たさなければならないという点にある。これらの機能はインターリーバ360によって実現され、インターリービング処理の際に適切なアドレスを抽出する。
本発明の教示にしたがうと、インターリーバ360は線形アドレスシーケンスを置換されたアドレスシーケンスにマッピングする。置換されたアドレスは、ビット反転ブロックインターリーバと類似した手法で生成されるが、ブロックの所定のロウにおけるアドレスが線形合同シーケンス(LCS)を使用してさらに置換される点では異なる。アドレスのインターリーブシーケンスを生成するために、R×C行列は最上位ロウから始まるアドレスの線形シーケンスで、左から右へ満たされる。ロウの数はR=32=25であり、行列におけるカラムの数はC=2cである。この特定のインターリーバにおいてロウの数は32で固定され、したがってRは25に等しい。‘C’はカラムの数に等しい。例えばインターリーバの配置の数が128の場合、カラムは4つでロウは32本であり、Cは4に等しい。各ロウ内のアドレスはロウ指定LCSにしたがってシャッフルされる。次に、各ロウ内のアドレスはロウインデックスに適用されるビット反転規則にしたがってシャッフルされる。最後に、最左のカラムから始まり、トップからボトムへ流れ、右に向かって処理されるカラムにより、アドレスが行列から読み出される。各ロウに適用されるLCSは以下の式からなる。
xi(n+1)= xi(n)+c(i) [1]
ここで、iはロウインデックスであり、c(i)は奇数の定数モジュロCである。cdma2000ターボインターリーバ360に関して、各ロウ上の初期条件はxi(0)=c(i)によって与えられる。これにより、上記式が前出の値の記憶を要求することなく計算される。すなわち、
xi(n)=c(i)(n+1) [2]
このように線形アドレスシーケンス:0, …, K−1において任意のアドレス(A)が与えられると、対応インターリーブアドレスは以下のように計算される。
A=bitrev(row)2c+{(col+1)c(i)}modC [3]
ここでAはインターリーブアドレスであり、‘row’は少なくとも5つの有意なビット(LSB)であり、‘col’は入力線形アドレスのc個の最も有意なビット(MSB)であり、Cはカラムの数であり、c(i)は“i”が現在のロウ数であるときのルックアップテーブルの出力である。係数c(i)はルックアップテーブル(LUT)として構成される。インターリーバ360には、Cの各支持値に対して別々のルックアップテーブルが含まれる。2k-1<K<=2kとなるサイズKのインターリーバに対するインターリーブシーケンスを生成するために、C=2k-5に対応してc(i)LUTが選択され、アドレスは式3によって生成される。K−1より大きいいずれのアドレスも切り捨てられる。インターリーバがロウの代わりにカラムによって“読み出される”ので、2つ以上の連続した不良アドレスとなることはありえない。線形アレイにおいて、値はロウによって読み出されてもよい。すなわち、ロウ2が開始する前にロウ1のすべてが読み出されてもよい。本発明のインターリーバはカラムによって読み出される。これは、ロウの表示をインターリーブアドレスの上側部分におくことにより、インターリーバ方程式で示される。インターリーバサイズ512, …, 1024, …, 32768に関するルックアップテーブルはcdma2000標準規格で構成されてもよい。
LCSインターリーバは2の累乗でないインターリーバ長についてパンクチャされる。インターリーバにランダムアクセスするために、アクセス地点より先にパンクチャの量も知られていなければならず、インターリーバの機能にロードされ得なければならない。高いデコーディングレートを得るために、クロック周期毎に1つの有効なインターリーバアドレスを生成するのが望ましい。上述のように、[式3]のインターリーバアルゴリズムは連続する2つの無効アドレスを生成することはない。本発明はこの属性の利点を利用する。図5で示すように、インターリーバ360は2つの計算ユニット362および364により構成されている。この2つの計算ユニットのそれぞれは、式3を実現するように設計されている。各計算ユニット362および364には、ビット反転ユニット366,370および、係数ルックアップテーブル368および372がそれぞれ含まれる。データ計算パスは上述のCDMA2000標準規格にしたがって構成されている。すなわち、各計算ユニットは上述の式3のアルゴリズムを実現するよう構成されている。
第1の計算ユニット362は現在のインターリーブアドレスを計算する一方で、第2の計算ユニット364は次のインターリーブアドレスを計算する。したがって、インターリーバ360はクロック周期毎に常に有効なインターリーブアドレスを生成することができる。
第1の計算ユニット362の出力で、値がn+m<Nの場合(ここでnはカラムアドレス、mはロウアドレス、およびNはインターリーバの長さ)、不良アドレスは“Bad Addr”信号を出力するしきい値検出器374により検出される。しきい値検出器374が出力するBad Addr信号は、インターリーバ選択マルチプレクサ376を制御する。Bad Addr信号に応答して、マルチプレクサ376は第1の計算ユニット362の出力、または第2の計算ユニット364の出力をインターリーバ360の出力として選択する。
生成された各無効アドレスもアドレスオフセットカウンタ384を増分する。アドレスオフセットカウンタ384は外部制御装置382とアドレスオフセットレジスタ386とともにアドレスオフセット回路380内に含まれ、ランダムアクセスメモリ(RAM)により実現されてもよい。アドレスオフセット回路380は入力線形アドレスを操作して、第1の加算器378を介してパンクチャされたアドレスを処理する。ランダムアクセスのサポートは、読み取り可能なアドレスオフセットカウンタ384の使用により達成される。アドレスオフセットレジスタ386をインターリーバアレイ内のランダムアクセス線形アドレスより前にパンクチャの数と等しく設定することにより、インターリーバ360はアドレスのアレイの任意の位置から開始できる。
ターボデコーダは一般的に成分デコーダに対してログMAPデコーダを使用する方法で実装される。ログMAPデコーダはコードの格子を通じてフォワードおよびリバース反復を要求する。通常、その後ターボインターリーバがリバースおよびフォワードの両方向に動作するよう要求する。フォワード方向は、線形アドレス0から最大要求アドレスへのインターリーバの動作として定義される。これに対して、リバース方向は、最も高い線形アドレスから線形アドレス0へのインターリーバの実行として定義される。ログMAPベースのターボデコーダをフォワードインターリーバ動作のみを要求する方法で構成することもできるが、これは追加のテンポラリ記憶装置の点で非常にコストがかかると思われる。ログMAPデコーダに対する状態距離メモリ記憶要求を減らすために、スライディングウィンドウを利用するログMAPデコーダが構成されることが多い。スライディングウィンドウの利用は、逆行することができるだけでなくインターリーバアレイにランダムアクセスすることもできるインターリーバにより容易になる。このため、本発明のインターリーバ360はフォワード方向だけでなくリバース方向でも実行できるように設計されている。
リバース方向で実行するために、インターリーバアルゴリズムは変化しないままであるが、2つの計算ユニットへの入力は変化する。計算ユニットは、input_address+address_offsetとinput_address+address_offset+1上で動作する代わりに、input_address+address_offsetとinput_address+address_offset-1上でそれぞれ動作する。これは、以下でより詳細に説明される図6のデコーダ400により供給されるフォワード・リバース信号の命令の下における第2の加算器388と第2のマルチプレクサ390により実現される。この信号はデコーダの制御論理から生じる。すなわち、デコーダは現在行われている動作の性質を考慮して、フォワードまたはリバースのいずれの方向でインターリーバを動作すべきかを決定する。
さらに、現在のパンクチャカウント(すなわち、アドレスオフセット)を維持するために、アドレスオフセットカウンタ384は制御装置382によりフォワード方向のアップカウンタとしてではなくダウンカウンタとして機能するよう操作される。
端的に言えば、本発明の教示はCDMA2000標準規格で利用されるLCSターボインターリーバアルゴリズムの固有の構成を提供する。ターボインターリーバの構成はCDMA2000インターリーバアルゴリズムの複雑な特徴の利点を有し、強力な設計を提供する。
図6は本発明の教示を取り込んだターボデコーダの例示的な構成のブロック図である。ターボデコーダ400は、インターリーバとデインターリーバが本発明の教示にしたがって構成される点を除き、従来的な設計からなる。ターボデコーダ400は符号器によって(一般的にチャネルを介して)出力された5つの信号を受け取り、フィードバックによる反復処理を実現する。これにより、第1のソフト入力ソフト出力(SISO)デコーダ410は非インターリーブパリティビットとともにデータストリームを受け取り、インターリーバ420へ出力する。
図6において、X0…XK-1は情報シンボルベクトルであり、y0 0…y0 K-1は第1の符号器320からのパリティシンボルベクトルであり、y1 0…y1 K-1は図4のターボエンコーダ310の第2の符号器340からのパリティシンボルベクトルである。さらに、Z0…ZK-1は各SISOデコーダからの仮定された情報ベクトルであり、L0…LK-1はログ見込み比ベクトルであり、最後にu0…uK-1はデコードされたデータビットベクトルである。
ローカルインターリーバ420の出力とともに受け取られたインターリーブ信号は、第1のデインターリーバ440および第2のデインターリーバ460への出力とともに硬判定ユニット450を介して第2のSISOデコーダ430へ出力される。ローカルインターリーバ420、デインターリーバ440およびデインターリーバ460はターボエンコーダ310で使用されるインターリーバ360と同一の方法で構成される。
ターボデコーダ400は1回に1つの符号器(320または340)の出力をデコードする。SISOデコーダ410および430は誤りの重み付けを互いに受け渡し、硬判定ビットのデコーディングが必要とされる仮定された表示を次のデコーダに提供する。つまり、各ステップが次のデコーダにさらなる重み付けを提供することで実行されたデコーディング処理をサポートするという処理が反復される。このように各デコーダ410および430の動作は次のデコーディングステップに影響を及ぼす。
硬判定ユニット450はソフト出力シンボルをハード出力ビットに変換するよう機能する。これは当業者により理解され、技術的に一般的な比較器により実現することができる。硬判定ユニット450の出力はデインターリーブされて、デコーダ400のデコードされたデータビットベクトルの出力を提供する。
以上のように、新規で改良されたターボコードインターリーバが説明された。当業者であれば、ここに開示された実施形態がセルラ電話機システムを背景として説明されたが、本発明の特徴は、衛星通信システムなどを含む任意の形式の通信システムのアプリケーションにも同様に向けられていることを理解するだろう。ここに説明された実施形態がデータまたは音声通信のいずれかを符号化するために用いられてもよいことが当業者によってさらに理解されるだろう。上述の説明を通じて参照可能なデータ、指令、命令、情報、信号、ビット、シンボル、およびチップが、電圧、電流、電磁波、電界または磁粒子、光学領域または光粒子、あるいはこれらの任意の組み合わせによって効果的に表されてもよいことがさらに理解されるだろう。
当業者は、ここに開示された実施形態とともに説明されたさまざまな例示的な論理ブロックおよびアルゴリズムステップが、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、個別のゲートまたはトランジスタ論理、レジスタやFIFOのような個別のハードウェアコンポーネント、1組のファームウェア指令を実行するプロセッサ、あるいは任意の従来的なプログラマブルソフトウェアモジュールおよびプロセッサにより構成あるいは実行されてもよいことを理解するだろう。このプロセッサはマイクロプロセッサであるのが効果的だが、代わりに任意の従来的なプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシンであってもよい。ソフトウェアモジュールはRAMメモリ、フラッシュメモリ、レジスタ、あるいは技術的に知られた他の任意の形式の書き込み可能記憶媒体内に存在していてもよい。
以上のように、特定のアプリケーション用の特定の実施形態を参照して本発明が説明された。本発明の教示にアクセスする当業者であれば、本発明の範囲内の追加的な修正、応用および実施形態を認識するだろう。したがって、本発明の範囲内のそのような任意かつすべての応用、修正、および実施形態をカバーすることが付属の特許請求の範囲により意図される。
図1は、並列ターボエンコーダを示すブロック図である。 図2は、図1の並列ターボエンコーダで使用可能なインターリーバを示すブロック図である。 図3は、図2のインターリーバと接続して使用可能な成分符号器を示すブロック図である。 図4は、本発明の教示にしたがって構成された2つの畳み込み成分符号器と1つのインターリーバとを備えたターボエンコーダを示す最上位ブロック図である。 図5は、図4のインターリーバを詳細に示す簡単化されたブロック図である。 図6は、ここで開示された実施形態の教示を具体化するターボデコーダの例示的な構成を示すブロック図である。

Claims (4)

  1. 入力アドレスに応答して第1のクロック周期中に第1の一連のインターリーブアドレスを計算する第1の手段と、
    前記入力アドレスに応答して前記第1のクロック周期中に第2の一連のインターリーブアドレスを計算する第2の手段と、
    前記第1または前記第2の一連のインターリーブアドレスが無効であるかを決定し、この決定に応答して信号を生成する第3の手段と、
    前記信号に応答して、前記第1または前記第2の一連のインターリーブアドレスを、前記第1のクロック周期に対する出力インターリーブアドレスとして選択する第4の手段とを具備し、
    前記第1の手段は、以下の式を実現する手段を含み、
    A=bitrev(row)2c+{(col+1)c(i)}modC
    ここでAは前記第1の一連のインターリーブアドレスであり、
    bitrevは5個の最下位ビットを有するロウ内のビットの順序を逆にする関数であり、
    colは前記入力アドレスのc個の最上位ビットであり、
    modはある数が別の数で除算されるときの余りを返す関数であり、Cはカラムの数であり、
    c(i)はルックアップテーブルの出力であり、i”は現在のロウの数であるインターリーバ。
  2. 前記第2の手段は、以下の式を実現する手段を含み、
    A=bitrev(row)2c+{(col+1)c(i)}modC
    ここでAは前記第2の一連のインターリーブアドレスであり、
    bitrevは5個の最下位ビットを有するロウ内のビットの順序を逆にする関数であり、
    colは前記入力アドレスのc個の最上位ビットであり、
    modはある数が別の数で除算されるときの余りを返す関数であり、Cはカラムの数であり、
    c(i)はルックアップテーブルの出力であり、i”は現在のロウの数である請求項記載のインターリーバ。
  3. 入力アドレスに応答して第1のクロック周期中に第1の一連のインターリーブアドレスを計算する第1の手段と、
    前記入力アドレスに応答して前記第1のクロック周期中に第2の一連のインターリーブアドレスを計算する第2の手段と、
    前記第1または前記第2の一連のインターリーブアドレスが無効であるかを決定し、この決定に応答して信号を生成する第3の手段と、
    前記信号に応答して、前記第1または前記第2の一連のインターリーブアドレスを、前記第1のクロック周期に対する出力インターリーブアドレスとして選択する第4の手段と、
    方向制御信号に応答して前記入力アドレスに対してフォワード方向またはリバース方向に移動するように前記インターリーバを制御する第5の手段と、
    前記入力アドレスに対するアドレスオフセットを提供する第6の手段とを具備し、
    前記第1の手段は、以下の式を実現する手段を含み、
    A=bitrev(row)2c+{(col+1)c(i)}modC
    ここでAは前記第1の一連のインターリーブアドレスであり、
    bitrevは5個の最下位ビットを有するロウ内のビットの順序を逆にする関数であり、
    colは前記入力アドレスのc個の最上位ビットであり、
    modはある数が別の数で除算されるときの余りを返す関数であり、Cはカラムの数であり、
    c(i)はルックアップテーブルの出力であり、i”は現在のロウの数であるインターリーバ。
  4. 前記第2の手段は、以下の式を実現する手段を含み、
    A=bitrev(row)2c+{(col+1)c(i)}modC
    ここでAは前記第2の一連のインターリーブアドレスであり、
    bitrevは5個の最下位ビットを有するロウ内のビットの順序を逆にする関数であり、
    colは前記入力アドレスのc個の最上位ビットであり、
    modはある数が別の数で除算されるときの余りを返す関数であり、Cはカラムの数であり、
    c(i)はルックアップテーブルの出力であり、i”は現在のロウの数である請求項記載のインターリーバ。
JP2002568515A 2001-02-23 2002-02-22 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ Expired - Fee Related JP4191485B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/792,483 US6871303B2 (en) 1998-12-04 2001-02-23 Random-access multi-directional CDMA2000 turbo code interleaver
PCT/US2002/005404 WO2002069506A2 (en) 2001-02-23 2002-02-22 Random-access multi-directional cdma2000 turbo code interleaver

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008101874A Division JP5133760B2 (ja) 2001-02-23 2008-04-09 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ

Publications (3)

Publication Number Publication Date
JP2005505947A JP2005505947A (ja) 2005-02-24
JP2005505947A5 JP2005505947A5 (ja) 2005-12-22
JP4191485B2 true JP4191485B2 (ja) 2008-12-03

Family

ID=25157032

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2002568515A Expired - Fee Related JP4191485B2 (ja) 2001-02-23 2002-02-22 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
JP2008101874A Expired - Fee Related JP5133760B2 (ja) 2001-02-23 2008-04-09 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
JP2012054883A Pending JP2012157030A (ja) 2001-02-23 2012-03-12 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2008101874A Expired - Fee Related JP5133760B2 (ja) 2001-02-23 2008-04-09 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
JP2012054883A Pending JP2012157030A (ja) 2001-02-23 2012-03-12 ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ

Country Status (9)

Country Link
US (3) US6871303B2 (ja)
EP (1) EP1374418A2 (ja)
JP (3) JP4191485B2 (ja)
KR (2) KR20100023962A (ja)
CN (2) CN1937473A (ja)
BR (1) BR0207522A (ja)
HK (1) HK1063245A1 (ja)
TW (1) TW584862B (ja)
WO (1) WO2002069506A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012157030A (ja) * 2001-02-23 2012-08-16 Qualcomm Inc ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999530B2 (en) * 2000-08-22 2006-02-14 Texas Instruments Incorporated Using SISO decoder feedback to produce symbol probabilities for use in wireless communications that utilize turbo coding and transmit diversity
US6938224B2 (en) * 2001-02-21 2005-08-30 Lucent Technologies Inc. Method for modeling noise emitted by digital circuits
WO2002067435A1 (en) * 2001-02-23 2002-08-29 Koninklijke Philips Electronics N.V. Turbo decoder system comprising parallel decoders
GB2373149B (en) * 2001-03-06 2004-07-07 Ubinetics Ltd Coding
JP4127757B2 (ja) * 2001-08-21 2008-07-30 株式会社エヌ・ティ・ティ・ドコモ 無線通信システム、通信端末装置、及びバースト信号送信方法
RU2261529C2 (ru) * 2002-02-06 2005-09-27 Самсунг Электроникс Ко.,Лтд Перемежитель и способ перемежения в системе связи
US7082168B2 (en) * 2002-05-21 2006-07-25 Coffey John T Methods and apparatus for self-inverting turbo code interleaving with high separation and dispersion
KR100516586B1 (ko) * 2002-12-10 2005-09-22 삼성전자주식회사 부호 분할 다중 접속 이동 통신 시스템의 오류 정정 장치및 방법
DE10306302A1 (de) * 2003-02-14 2004-08-26 Infineon Technologies Ag Verfahren und Schaltung zur Adressgenerierung von Pseudo-Zufalls-Interleavern oder -Deinterleavern
WO2005027451A1 (en) * 2003-09-12 2005-03-24 Ems Technologies Canada, Ltd. Joint synchronizer and decoder
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
ATE400089T1 (de) * 2003-12-22 2008-07-15 Koninkl Philips Electronics Nv Siso-decoder mit subblockverarbeitung und auf subblock basierendem stoppkriterium
JP4850720B2 (ja) * 2004-02-03 2012-01-11 ネクステスト システムズ コーポレイション メモリデバイスのテストおよびプログラミングの方法並びにそのシステム
JP4408755B2 (ja) * 2004-06-28 2010-02-03 Necエレクトロニクス株式会社 デインタリーブ装置、移動通信端末及びデインタリーブ方法
KR100853497B1 (ko) * 2004-08-25 2008-08-21 삼성전자주식회사 터보 인터리빙 장치 및 그의 출력주소 발생 방법
EP1657845A3 (en) * 2004-11-10 2012-03-07 Alcatel Lucent Dynamic retransmission mode selector
US7542410B2 (en) 2004-12-06 2009-06-02 Intel Corporation Interleaver and associated methods
US7543197B2 (en) * 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
WO2006104104A1 (ja) * 2005-03-29 2006-10-05 Matsushita Electric Industrial Co., Ltd. Mimo送信装置、mimo受信装置、および再送方法
US7613243B2 (en) 2005-04-12 2009-11-03 Samsung Electronics Co., Ltd. Interleaver and parser for OFDM MIMO systems
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders
US7360147B2 (en) * 2005-05-18 2008-04-15 Seagate Technology Llc Second stage SOVA detector
US7395461B2 (en) 2005-05-18 2008-07-01 Seagate Technology Llc Low complexity pseudo-random interleaver
US7502982B2 (en) * 2005-05-18 2009-03-10 Seagate Technology Llc Iterative detector with ECC in channel domain
US7512863B2 (en) * 2005-10-12 2009-03-31 Qualcomm Corporation Turbo code interleaver for low frame error rate
US7729438B2 (en) * 2005-12-01 2010-06-01 Samsung Electronics Co., Ltd. Interleaver design for IEEE 802.11n standard
US7756004B2 (en) 2005-12-20 2010-07-13 Samsung Electronics Co., Ltd. Interleaver design with column swap and bit circulation for multiple convolutional encoder MIMO OFDM system
US7859987B2 (en) 2005-12-20 2010-12-28 Samsung Electronic Co., Ltd. Interleaver for IEEE 802.11n standard
US7660232B2 (en) 2005-12-20 2010-02-09 Samsung Electronics Co., Ltd. Interleaver design with column skip for IEEE 802.11n standard
US7729447B2 (en) * 2005-12-22 2010-06-01 Samsung Electronics Co., Ltd. Interleaver design with multiple encoders for more than two transmit antennas in high throughput WLAN communication systems
US8082479B2 (en) 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US7979781B2 (en) * 2006-11-10 2011-07-12 Samsung Electronics Co., Ltd. Method and system for performing Viterbi decoding using a reduced trellis memory
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US8024644B2 (en) * 2006-11-14 2011-09-20 Via Telecom Co., Ltd. Communication signal decoding
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8386877B2 (en) * 2007-09-12 2013-02-26 Nec Corporation Communication system, transmitter, error correcting code retransmitting method, and communication program
KR101531416B1 (ko) 2007-09-13 2015-06-24 옵티스 셀룰러 테크놀로지, 엘엘씨 상향링크 신호 전송 방법
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8751769B2 (en) * 2007-12-21 2014-06-10 Qualcomm Incorporated Efficient address generation for pruned interleavers and de-interleavers
KR100943908B1 (ko) 2008-02-19 2010-02-24 엘지전자 주식회사 Pdcch를 통한 제어 정보 송수신 방법
US20090245423A1 (en) * 2008-03-28 2009-10-01 Qualcomm Incorporated De-Interlever That Simultaneously Generates Multiple Reorder Indices
US8200733B1 (en) * 2008-04-15 2012-06-12 Freescale Semiconductor, Inc. Device having interleaving capabilities and a method for applying an interleaving function
US8281211B2 (en) * 2008-05-15 2012-10-02 Nokia Corporation System and method for relay coding
EP2139120B1 (de) 2008-06-23 2019-01-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
DE102008029623A1 (de) 2008-06-23 2009-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
US7667628B2 (en) * 2008-06-23 2010-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Interleaver for scrambling and information word
US8219782B2 (en) * 2008-09-18 2012-07-10 Xilinx, Inc. Address generation
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
CN101964692B (zh) * 2009-07-21 2014-05-28 中兴通讯股份有限公司 一种基于lte的turbo编码方法及系统
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8365051B2 (en) * 2010-05-04 2013-01-29 Intel Corporation Device, system and method of decoding wireless transmissions
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US9106265B2 (en) * 2011-11-04 2015-08-11 Silicon Laboratories Inc. Receive data flow path using a single FEC decoder
US9264754B2 (en) 2011-11-04 2016-02-16 Silicon Laboratories Inc. Packet synchronization receiver
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9425826B2 (en) * 2012-11-02 2016-08-23 Blackberry Limited Interleaver employing quotient-remainder reordering
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9124477B2 (en) * 2013-08-28 2015-09-01 Broadcom Corporation Frequency interleave within communication systems
EP3001585B1 (en) * 2014-09-29 2017-07-12 Alcatel Lucent Optical coherent receiver with forward error correction and parallel decoding
US20170262367A1 (en) * 2016-03-11 2017-09-14 Qualcomm Incorporated Multi-rank collision reduction in a hybrid parallel-serial memory system
CN106301393B (zh) * 2016-07-22 2019-09-06 西安空间无线电技术研究所 一种基于Turbo编码的交织地址快速计算方法
TWI589125B (zh) * 2016-08-26 2017-06-21 國立交通大學 渦輪編碼的數位資料之去穿刺方法與裝置及渦輪解碼器系統
CN106899312B (zh) * 2017-02-15 2020-03-20 深圳思凯微电子有限公司 交织编解码方法及交织器
CN111099038B (zh) * 2019-12-19 2021-06-01 武汉航空仪表有限责任公司 一种直升机主桨叶方位角检测装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
JP3077944B2 (ja) 1990-11-28 2000-08-21 シャープ株式会社 信号再生装置
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
US5241563A (en) 1992-08-10 1993-08-31 General Instrument Corporation Method and apparatus for communicating interleaved data
JPH06216882A (ja) * 1993-01-19 1994-08-05 Matsushita Electric Ind Co Ltd 誤り訂正送信装置及び受信装置
US5633881A (en) * 1993-02-22 1997-05-27 Qualcomm Incorporated Trellis encoder and decoder based upon punctured rate 1/2 convolutional codes
US5668820A (en) 1995-01-23 1997-09-16 Ericsson Inc. Digital communication system having a punctured convolutional coding system and method
DK2302805T3 (da) 1995-02-01 2012-10-15 Sony Corp Flerkanalstransmission med interleaving gennem adressering af RAM-hukommelse på stedet
WO1997007451A2 (en) 1995-08-16 1997-02-27 Microunity Systems Engineering, Inc. Method and system for implementing data manipulation operations
JPH09101878A (ja) 1995-10-03 1997-04-15 Mitsubishi Electric Corp 乱数発生回路
US6205190B1 (en) 1996-04-29 2001-03-20 Qualcomm Inc. System and method for reducing interference generated by a CDMA communications device
US5949796A (en) * 1996-06-19 1999-09-07 Kumar; Derek D. In-band on-channel digital broadcasting method and system
JPH1065654A (ja) 1996-08-19 1998-03-06 Oki Electric Ind Co Ltd データ伝送誤り低減方法及びその装置
US5983384A (en) 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
JPH10308676A (ja) 1997-05-09 1998-11-17 Toshiba Corp インターリーブ装置およびデインターリーブ装置
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US5978365A (en) * 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
US6625234B1 (en) * 1998-12-10 2003-09-23 Nortel Networks Limited Efficient implementations of proposed turbo code interleavers for third generation code division multiple access
KR100346170B1 (ko) 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
KR100350459B1 (ko) 1998-12-26 2002-12-26 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
JP3746426B2 (ja) * 1999-02-26 2006-02-15 富士通株式会社 ターボ復号装置
JP3593647B2 (ja) * 1999-03-19 2004-11-24 富士通株式会社 マルチステージ・インタリーブ・パターン生成器
US6314534B1 (en) * 1999-03-31 2001-11-06 Qualcomm Incorporated Generalized address generation for bit reversed random interleaving
KR100480286B1 (ko) * 1999-04-02 2005-04-06 삼성전자주식회사 터보 인터리빙 어드레스 발생 장치 및 방법
CN1345485A (zh) * 1999-04-06 2002-04-17 三星电子株式会社 二维交织设备及方法
KR100526512B1 (ko) * 1999-05-20 2005-11-08 삼성전자주식회사 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
JP3246484B2 (ja) * 1999-07-07 2002-01-15 日本電気株式会社 ターボデコーダ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012157030A (ja) * 2001-02-23 2012-08-16 Qualcomm Inc ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ

Also Published As

Publication number Publication date
BR0207522A (pt) 2005-07-19
WO2002069506A3 (en) 2003-04-03
US20100064197A1 (en) 2010-03-11
US20050028065A1 (en) 2005-02-03
TW584862B (en) 2004-04-21
EP1374418A2 (en) 2004-01-02
JP5133760B2 (ja) 2013-01-30
WO2002069506A2 (en) 2002-09-06
HK1063245A1 (en) 2004-12-17
US7523377B2 (en) 2009-04-21
US6871303B2 (en) 2005-03-22
JP2008187738A (ja) 2008-08-14
JP2005505947A (ja) 2005-02-24
KR20030077644A (ko) 2003-10-01
CN1937473A (zh) 2007-03-28
KR100963384B1 (ko) 2010-06-14
US8484532B2 (en) 2013-07-09
CN1502168A (zh) 2004-06-02
KR20100023962A (ko) 2010-03-04
US20020046371A1 (en) 2002-04-18
CN1286276C (zh) 2006-11-22
JP2012157030A (ja) 2012-08-16

Similar Documents

Publication Publication Date Title
JP4191485B2 (ja) ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
KR100711326B1 (ko) 선형 합동 시퀀스들을 이용한 터보 코드 인터리버
JP3610329B2 (ja) 大最小距離を用いたターボ符号化方法及びそれを実現するシステム
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
JP5129216B2 (ja) マップ・デコーダのためのメモリ・アーキテクチャ
MXPA01010239A (es) Sistema y metodo que emplean un decodificador modular para decodificar codigos turbo y similares al turbo en una red de comunicaciones.
US20090315742A1 (en) Interleaver for scrambling and information word
US20090077431A1 (en) Devices and methods for bit-level coding and decoding of turbo codes
JP3540224B2 (ja) ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
JP2001028548A (ja) 誤り訂正符号化装置及び方法、誤り訂正復号装置及び方法、情報処理装置、無線通信装置、並びに記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080918

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110926

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120926

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130926

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees