(57)【特許請求の範囲】
【請求項１】
Viterbiデコーダにおけるパス・メトリックの記憶方法であって、
前記パス・メトリックは、Viterbiデコーダに割り当てられた格子図を使用して決定され、前記Viterbiデコーダにおいて、特定の時間ステップ（ｔ＋１）の２つの目的状態が、先行する時間ステップ（ｔ）の２つの開始状態によって、バタフライ構造をその都度形成し、前記バタフライ構造により、特定の時間ステップ（ｔ＋１）の対応する２つの目的状態が、それぞれ状態遷移枝によって、先行する時間ステップ（ｔ）の２つの開始状態に接続され、各時間ステップ（ｔ＋１）に対して、各目的状態のパス・メトリック（γt+1）が、それぞれ目的状態を有するバタフライ構造を形成し先行する時間ステップ（ｔ）の開始状態のパス・メトリック（γt）の関数として決定され、この目的のため、対応する２つの開始状態のパス・メトリック（γt）がメモリ手段（３）から読み出され、時間ステップ（ｔ＋１）の各目的状態のパス・メトリック（γt+1）が、その関数として決定され、各目的状態のパス・メトリック（γt+1）がメモリ手段（３）に記憶され、
時間ステップ（ｔ）の各バタフライ構造対に対して、格子図における２つのバタフライ構造の目的状態が、後続する時間ステップ（ｔ＋１）の２つのバタフライ構造に対する開始状態を同時に形成するように、各時間ステップ（ｔ）の格子図のバタフライ構造が少なくとも対として結合され、
バタフライ構造対の２つのバタフライ構造の目的状態のパス・メトリックを決定した後、後続する時間ステップ（ｔ＋１）のバタフライ構造の開始状態を同時に形成する、このバタフライ構造対のそれら２つの目的状態のパス・メトリックが、共通のメモリワードの形態でその都度メモリ手段（３）に記憶されることを特徴とする方法。
【請求項２】
同じバタフライ構造に属する時間ステップ（ｔ）のそれら２つの開始状態のパス・メトリックが、共通のメモリワードの形態でその都度メモリ手段（３）に記憶され、
バタフライ構造対の２つのバタフライ構造の目的状態のパス・メトリックを決定した後、後続する時間ステップ（ｔ＋１）のバタフライ構造の開始状態を同時に形成する、このバタフライ構造対のそれら２つの目的状態のパス・メトリックが、これら２つの目的状態のうち１つでバタフライ構造を形成する２つの開始状態のパス・メトリックとして、同じアドレス下にその都度メモリ手段（３）に記憶されることを特徴とする請求項１に記載の方法。
【請求項３】
各目的状態のパス・メトリック（γｔ＋１）が、対応するバタフライ構造の２つの開始状態のパス・メトリック（γｔ）と、バタフライ構造の２つの状態遷移枝に割り当てられた枝メトリック（λｔ）の関数として決定されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
第１の開始状態を第１の目的状態に接続する状態遷移枝と、第２の開始状態を第２の目的状態に接続する状態遷移枝とに対する第１の枝メトリックが同一の大きさであり、第１の開始状態を第２の目的状態に接続する状態遷移枝と、第２の開始状態を第１の目的状態に接続する状態遷移枝とに対する第２の枝メトリックが同一の大きさであることを特徴とする請求項３に記載の方法。
【請求項５】
前記方法は、フィードフォワード・コードを用いてコード化された信号を復号するために使用されることを特徴とする請求項１から４のいずれかに記載の方法。
【請求項６】
前記方法は、ＳＤＳＬコード化された信号を復号するために使用されることを特徴とする請求項５に記載の方法。
【請求項７】
前記方法は、フィードバック・コードを用いてコード化された信号を復号するために使用されることを特徴とする請求項１から４のいずれかに記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、請求項１の前段部分に係る、Ｖｉｔｅｒｂｉデコーダにおけるパス・メトリック（ｐａｔｈ  ｍｅｔｒｉｃｓ）を記憶する方法に関する。前記方法は、特に、チャンネル・コード化された移動式無線信号を復号するための移動式無線受信機におけるＶｉｔｅｒｂｉデコーダに使用することができる。
【０００２】
公知のデジタル移動式無線受信機の大部分に、Ｖｉｔｅｒｂｉデコーダが使用されている。Ｖｉｔｅｒｂｉデコーダは、いわゆる最尤復号器であり、これは、チャンネル・コード化された、特に畳み込み符号化された移動式無線信号を復号するのに使用されるのが通常である。送信機におけるチャンネル・コーディングの間、送信の信頼性を高めるべく、送信されるべき信号に冗長な情報が付加される。しかしながら、移動式無線信号の送信の間に、当該信号にノイズが重畳する。従って、受信機の役割は、生じ得る全ての送信シーケンスから、実際の送信シーケンスに対する最尤度に一致する送信シーケンスを検出するべく、受信シーケンスを使用することにある。この役割は、Ｖｉｔｅｒｂｉデコーダによって果たされる。
【０００３】
チャンネル・コーディングの間に使用されるコーディングの内容は、対応する格子図（ｔｒｅｌｌｉｓ  ｄｉａｇｒａｍ）によって説明することができる。いわゆるメトリックを計算することにより、Ｖｉｔｅｒｂｉデコーダは、該デコーダのそれぞれの構成に依存して、最大の又は最小のパス・メトリックを有する格子図のパスを決定する。次に、この格子図のパスを使用して、復号されたシーケンスが決定され、出力される。
【０００４】
以下に、Ｖｉｔｅｒｂｉデコーディングの原理について、簡潔に且つ詳細に説明する。
【０００５】
図４は、一例として、瞬間ｔ〜ｔ＋３において、その都度４つの異なる状態を有する格子図を示している。前記瞬間ｔ〜ｔ＋３は、例えば、「００」、「１０」、「０１」及び「１１」のビット状態に相当する。各シンボル・シーケンスは、格子図における対応するパスに割り当てられている。この場合、パスは、一時的に連続する２つの状態間における一連の枝からなる。この場合、各枝は、一時的に連続する２つの状態間における状態遷移を象徴する。前記一時的に連続する２つの状態は、例えば、上位の枝が、バイナリ値「０」を有する受信シンボルに相当する状態から先行し、下位の枝が、バイナリ値「１」を有する受信シンボルに相当する同じ状態から後続する。枝メトリック（ＢＭ）λｔが割り当てられている、これらの状態遷移の各々は、送信シンボルに相当する。枝メトリックλｔは、以下のように定義される。
λｔ＝｜ｙ’ｔ−ｒｔ２｜
ここで、ｒｔは瞬間ｔにおける受信シンボルに相当し、ｙ’ｔは瞬間ｔにおけるその関数として期待される送信シンボルに相当する。
【０００６】
さらに、格子図を通じて瞬間又は時間ステップｔまで、各パスにパス・メトリックγｔが割り当てられている。
【０００７】
図４に示された格子図は、特に、いわゆる「バタフライ」構造を有する格子図である。これは、格子図の時間ステップｔ＋１が、先行する時間ステップｔの２つの状態にその都度割り当てられることを意味する。それらの枝は、その都度、時間ステップｔ＋１の最初に述べた状態に通じ、その都度、異なる状態から後続する枝の２つの枝メトリックは、同一である。したがって、例えば、図４に示され、パス・メトリックγｔ（１）、γｔ（３）、γｔ＋１（２）及びγｔ＋１（３）が割り当てられた状態は、この種の「バタフライ」構造を形成する。パス・メトリックγｔ（１）を有する状態から、パス・メトリックγｔ＋１（２）を有する状態への枝に対する枝メトリックは、パス・メトリックγｔ（３）を有する状態から、パス・メトリックγｔ＋１（３）を有する状態への枝の枝メトリックλｔ（３）に相当する。一方、パス・メトリックγｔ（１）を有する状態から、パス・メトリックγｔ＋１（３）を有する状態への枝の枝メトリックは、パス・メトリックγｔ（３）を有する状態から、パス・メトリックγｔ＋１（２）を有する状態への枝の枝メトリックλｔ（１）に相当する。この場合、γｔ（ｓ）は通常、時間ステップｔにおける状態ｓに割り当てられたパス・メトリックを示す一方、λｔ（ｓ）は瞬間ｔにおける信号ｓに相当する状態遷移の枝メトリックを示す。
【０００８】
Ｖｉｔｅｒｂｉデコーダは、次に、最良のパス・メトリックを有するパスを決定するべく、格子図に相当するアルゴリズムを使用しなければならない。一般に、これは、定義からして、最小のパス・メトリックを有するパスである。
【０００９】
特定の状態に通じるパスの各パス・メトリックは、一時的に先行する状態のパス・メトリックと、この先行する状態から特定の状態に通じる枝の枝メトリックとからなる。この結果は、格子図の生じ得るパス及びパス・メトリックの全てが必ずしも決定され、評価される必要がないということである。その代わりに、格子図の各状態及び各時間ステップに対して、その都度、その瞬間までに最も良好なパス・メトリックを有するパスが決定される。「生存パス」として示される前記パス及びそのパス・メトリックは、記憶される必要がある。この状態に通じる他の全てのパスは、無視することができる。従って、各時間ステップの間、異なる状態の数に相当する、多くのこのような生存パスが存在する。
【００１０】
上述した説明により、パス・メトリックγｔ＋１（ｓ）の計算が、枝を介して状態ｓに接続されている先行する時間ステップｔのパス・メトリックに依存することは明らかである。従って、パス・メトリックの計算は、Ｖｉｔｅｒｂｉデコーダにおける所謂「アッド・コンペア・セレクト」ユニット（ＡＣＳユニット）によって実行される再帰アルゴリズムによって実現可能である。
【００１１】
図５は、Ｖｉｔｅｒｂｉデコーダの典型的な構成を示す。
【００１２】
メモリ又はレジスタ３を有するＡＣＳユニット２に加え、枝メトリック・ユニット１及び生存メモリユニット４が設けられている。枝メトリック・ユニットの役割は、受信シンボルと、格子図において対応する状態を生じさせるシンボルとの差異の尺度である枝メトリックλｔ（ｓ）を計算することである。枝メトリック・ユニット１によって計算される枝メトリックは、最適なパス（生存パス）を決定するために、ＡＣＳユニット２に供給される。また、生存メモリユニット４は、これらの生存パスを記憶する。これにより、最終的なデコーディングは、最良のパス・メトリックを有する生存パスを使用することにより実行され得る。このパスに割り当てられたシンボルシーケンスは、実際に送信されるシーケンスに対する最尤度に一致する。
【００１３】
ＡＣＳユニット２は、複数のプロセッサ・エレメントを備え、一般的に、格子図の各状態が、個々のプロセッサ・エレメントによって評価される。個々のプロセッサ・エレメントの役割は、格子図の状態に通じる２つの互いに競合するパス（いわゆる「競合パス」）から、最良の、すなわち最小のパス・メトリックを有するパスを選択することにある。この状態に通じる生存パスとして記憶される値及びそのパス・メトリックが次に更新される。
【００１４】
図４に示す格子図から明らかなように、瞬間ｔ＋１における各状態ｓは、上位の枝及び下位の枝を介して、対応する先行状態に接続されている。結果的に、この状態ｓに相当する生存パスを決定するべく、上位の枝を介して状態ｓに通じるパスのパス・メトリックは、下位の枝を介して状態ｓに通じるパスのパス・メトリックと比較されなければならない。すなわち、各プロセッサ・エレメントの役割は、パス・メトリックγｔ＋１（ｓ）を有する生存パスを決定するべく、パス・メトリックγｔ（ｕ）を有する先行する「上位の」状態、及び枝メトリックλｔ（ｕ）を有する「上位の」枝を介して通じ、そのパス・メトリックがγｔ（ｕ）＋λｔ（ｕ）の和に相当するパスと、パス・メトリックγｔ（ｌ）を有する「下位の」状態、及び枝メトリックλｔ（ｌ）を有する「下位の」枝を介して通じ、そのパス・メトリックがγｔ（ｌ）＋λｔ（ｌ）の和に相当するパスとのいずれかを選択することにある。
【００１５】
時間ステップｔにおける状態ｓに対して計算される各結果γｔ（ｓ）は、一時的に後続する状態に対するパス・メトリックの計算の基礎になる。これには、図５に示すメモリ３を介するＡＣＳユニット２のフィードバックが必要である。計算されたパス・メトリックは、メモリ３にバッファされる。
【００１６】
メモリ３の構成は、各格子図の構成に従って構築されなければならない。各シンボル周期の間、格子図の状態の数に相当する多くのパス・メトリックが、メモリ３から読み出され、メモリ３に書き込まれる必要がある。格子図の各バタフライに対して、２つの状態が同時に処理されるため、２つの開始パス・メトリックがメモリ３から読み出され、そこから計算される２つのパス・メトリックがメモリ３に書き込まれる必要がある。
【００１７】
しかしながら、これは、パス・メトリックが読み出される前に上書きされてはならないという問題を引き起こす。
【００１８】
これをより明確にするべく、図６は、８つの状態を有する更なる格子図を示す。前記格子図は、既に述べたバタフライ構造を有する。例示のバタフライは、破線で示されており、開始の状態Ｓｔ番号１及び５と、目的の状態Ｓｔ＋１番号２及び３とを備えている。結果的に、目的の状態番号２及び３のパス・メトリックの計算のためには、開始の状態番号１及び５のパス・メトリックが最初に読み出されなければならない。
【００１９】
読み出し操作及び書き込み操作の間のこの競合する状況は、文献において「ピンポン」の実行としても知られているメモリ３の構成につながった。メモリ３は、２つのメモリバンクに細分され、一方は専ら読み出し操作に、他方は専ら書き込み操作に提供される。
【００２０】
この技術を用いることにより、好ましくない衝突を確実に回避することができるものの、それでもなおメモリ３は、両方のメモリバンクの各々が全ての状態Ｓｔ及びＳｔ＋１のパス・メトリックを記憶し得る必要があるため、本質的に必要なサイズの２倍のサイズを有しなければならない。
【００２１】
パス・メトリックの記憶に関連した更なる問題は、パス・メトリックのメモリ上へのマッピング、すなわち、個々のパス・メトリックの異なるメモリアドレスへの割り当てである。従来技術によれば、読み書き操作の間の衝突を確実に回避するべく、このマッピングは、異なるメモリ領域がパス・メトリックの読み書き操作に使用されるように選択されなければならない。
【００２２】
本発明は、より低いメモリの必要条件で実現することができ、書き込み／読み出しの衝突を確実に回避する、Ｖｉｔｅｒｂｉデコーダにおけるパス・メトリックを記憶する方法を提案するという目的に基づくものである。
【００２３】
この目的は、本発明に係る請求項１の特徴を有する方法によって達成される。従属項は、本発明の有利で好適な実施形態を特徴づけるものである。
【００２４】
本発明を用いることにより、Ｖｉｔｅｒｂｉデコーダにおけるパス・メトリックを記憶する方法が提供される。該方法は、時間可変の格子図の原理に基づくものであり、バタフライ構造及び対応するＡＣＳユニットを有する格子図に特に好適である。
【００２５】
本発明に係る方法は、たった一つのメモリしか必要とせず、パス・メトリックが同じメモリ領域から読み出され、記憶されることを可能にする。すなわち、２つの開始パス・メトリックに基づき計算される、対応する目的状態のパス・メトリックは、予め２つの開始パス・メトリックが読み出された同じメモリアドレス下に記憶される。メモリのサイズは、格子のそれぞれ選択された平行度（ｐａｒａｌｌｅｌｉｓｍ）の程度に依存せず、単に異なる格子状態の数の結果（ｐｒｏｄｕｃｔ）及びメモリワード当たりのビット数に相当する必要があるに過ぎない。特に、複数のプロセッサ・エレメントに対するパス・メトリックが結合された形態で記憶されるように意図されている場合であっても、たった一つのメモリしか必要でない。
【００２６】
書き込み／読み出しの衝突は、確実に回避される。
【００２７】
本発明は、２つのパス・メトリックに対して、たった一つのメモリアドレスしか必要としないため、Ｖｉｔｅｒｂｉデコーディングに使用されるチップについて、最小量の領域及び消費電力しか必要としない。本発明は、例えば、ＳＤＳＬのようなフィードフォワード・コード及びフィードバック・コードの双方に好適であり、プログラム可能なＶｉｔｅｒｂｉデコーダの使用を可能にし、対応するパス・メトリックが各バタフライに対して単純な方法でプログラムされることが可能になる。
【００２８】
本発明について、添付した図面を参照した好適な例示の実施形態を使用し、以下により詳細に説明する。
【００２９】
本発明の詳細を特に議論する前に、本発明を説明するために後に使用する専門用語について以下に簡単に示す。
【００３０】
格子コーダがＭｔメモリワードの合計メモリサイズを有すると仮定すれば、ＮＴＳ＝２ＭＴを有する格子コードが得られる。ここで、ＮＴＳは、対応する格子図における異なる状態の数を示す。コードレート１／２を有するフィードフォワード・コードのインパルス応答の長さは、ＭＴ＋１である。格子図における状態遷移は、前述したように、各コード化されたビットＢに依存し、瞬間ｔ＋１における状態Ｓｔ＋１は、以下の関係に従い、先行する状態Ｓｔに起因して生じる。
【００３１】
Ｓ（ｔ）＝（２・Ｓｌ）ｍｏｄ（ＮＴＳ＋Ｂ）
【００３２】
格子図が、既に述べ、図６に一例として示したバタフライ構造を有する場合、各バタフライには２つの開始状態及び２つの目的状態が割り当てられる。その都度格子の幾何を参照することにより、インデックス（ｕ）（「上位」に対して）によって示される上位の状態と、インデックス（ｌ）（「下位」に対して）によって示される下位の状態とを区別することが可能である。図６に破線で示したバタフライの場合、例えば、Ｓｔ（ｕ）＝１、Ｓｔ（ｌ）＝５、Ｓｔ＋１（ｕ）＝２及びＳｔ＋１（ｌ）＝３が当てはまる。ここで、Ｓｔ（ｕ）及びＳｔ（ｌ）は対応するバタフライの開始状態を示し、Ｓｔ＋１（ｕ）及びＳｔ＋１（ｌ）は目的状態を示す。
【００３３】
図６から推測できるように、バタフライの下位の開始状態Ｓｔ（ｌ）及び目的状態Ｓｔ＋１（ｕ）及びＳｔ＋１（ｌ）は、上位の開始状態Ｓｔ（ｕ）に依存し、以下の関係が当てはまる。
【００３４】
０≦Ｓｔ（ｕ）≦ＮＴＳ／２−１
【００３５】
Ｓｌ（ｌ）＝Ｓｌ（ｕ）＋ＮＴＳ／２
【００３６】
Ｓ（ｔ）（ｕ）＝（２・Ｓｌ（ｕ））ｍｏｄ（ＮＴＳ＋０）
【００３７】
Ｓｔ＋１（ｌ）＝（２・Ｓｌ（ｕ））ｍｏｄ（ＮＴＳ＋１）＝（２・Ｓｌ（ｌ））ｍｏｄ（ＮＴＳ＋１）
【００３８】
ＮＴＳ＝８及びＳｔ（ｕ）＝１として上記式を評価すれば、図６における破線で示したバタフライに対して、正しい値Ｓｔ（ｌ）＝５、Ｓｔ＋１（ｕ）＝２及びＳｔ＋１（ｌ）＝３が結果として得られる。
【００３９】
本発明は、目的状態に対して計算されるバタフライのパス・メトリックを、同じメモリアドレス下で記憶するという思想に基づくものである。前記メモリアドレスからは、対応する開始パス・メトリックが読み出され、それによって、メモリ３におけるパス・メトリックの好ましくない上書きを回避することが可能になる。この尺度は、格子構造の時間に依存する変動をもたらし、結果として生じる格子表現もまた「時間変動格子」（ＴＶＴ）として表すことができる。
【００４０】
図６に示す格子構造のＴＶＴは、図３に示されている。図３から明らかなように、個々のバタフライの状態遷移は図６に示す状態遷移に相当するにもかかわらず、各時間ステップ又は各反復につれて、状態のシーケンスは、以下のように並べ替えられる。つまり、バタフライの各目的状態が、水平の枝によって、同じバタフライの対応する開始状態に接続されるように並べ替えられる。図３において、個々の反復に対して、２つのバタフライがそれぞれ点線及び一点鎖線によって示されている。前記バタフライは、それぞれ、開始状態番号２及び番号６、並びに番号３及び番号７と、それぞれ、目的状態番号４及び番号５、並びに番号６及び番号７とを備えている。従って、時間に依存する格子構造の並べ替えの原理は、特にこれらのバタフライを使用することにより理解され得る。
【００４１】
図３に示す格子の各線は、メモリ３のメモリアドレスに相当するため、例えば、状態番号２、番号４、番号１及び番号２に対するパス・メトリックは、連続して一つの且つ同一のメモリアドレス（図３に示す格子図における第３の線）に書き込まれる。Ｍｔの反復の後（図示の例では、Ｍｔ＝３の反復の後）、元の状態シーケンスが再び得られる。
【００４２】
前述したＴＶＴのアプローチは、メモリ３におけるパス・メトリックの好ましくない上書きを防止する。しかしながら、バタフライ構造に基づくパス・メトリックの計算をＡＣＳユニット２によって可能にするべく、２つのパス・メトリックを同時に読み書きしなければならず、メモリも同様に細分しなければならないという問題が残っている。しかしながら、ＴＶＴアプローチにとって、これは実行できないことを示すことができる。
【００４３】
従って、バタフライ構造を十分に機能させるアプローチを与えるには、ＴＶＴアプローチを更に開発しなければならない。前記バタフライ構造を十分に機能させるアプローチは、以下に図１及び図２を参照して説明するように、「バタフライ指向時間可変格子（ｂｕｔｔｅｒｆｌｙ  ｏｒｉｅｎｔｅｄ  ｔｉｍｅ  ｖａｒｙｉｎｇ  ｔｒｅｌｌｉｓ）」（ＢＦＴＶＴ）として表すことができる。
【００４４】
前述したＴＶＴアプローチに本質的に関連した問題は、ＡＣＳユニット２によって計算される、バタフライの目的状態のパス・メトリックが、更なるバタフライに対する開始パス・メトリックを同時に構成しないということである。これらの事実を明確にするため、バタフライの開始及び目的パス・メトリック対は、それぞれ以下の形式［Ｓｔ（ｕ）、Ｓｔ（ｌ）］及び［Ｓｔ＋１（ｕ）、Ｓｔ＋１（ｌ）］で表される。結果的に、図３に示す格子の個々のバタフライに対して（反復１）、以下の状態遷移に帰着する。
【００４５】
［０、４］→［０、１］
［１、５］→［２、３］
［２、６］→［４、５］
［３、７］→［６、７］
【００４６】
例えば、開始状態［０、４］を有するバタフライの目的状態［０、１］は、反復２の共通のバタフライに対する開始状態を同時に構成しないことは明らかである。従って、各バタフライの開始及び目的パス・メトリックを共通のメモリワードの形態で記憶することは意味をなさない。
【００４７】
しかしながら、一方、例えば、開始状態［０、４］及び［２、６］を有する２つのバタフライの目的状態［０、１］及び［４、５］は、開始状態［０、４］及び［１、５］を有する格子図における後続するバタフライに対して、開始状態として同時に利用し得るということが明らかである。目的状態に対して決定されるパス・メトリックが同様に並び替えられた場合、バタフライ対の目的状態のパス・メトリックが他の２つのバタフライに対する開始パス・メトリックとして同時に利用できるように、全ての２ＭＴ−１バタフライは対に結合することができるということが理解できる。
【００４８】
このアプローチを図１に示す。メモリ３の各メモリワードのワード幅は、従来技術と比較して２倍であるため、メモリワード当たり少なくとも２つのパス・メトリックの対において、２つのバタフライの目的状態の結果又はパス・メトリックを記憶することが可能になる。特に、メモリのサイズは、使用するプロセッサ・エレメントの数に依存せず、単に書き込み／読み出し操作の数が変化するのみである。
【００４９】
図１において、各円は、Ｓ（ｕ）／Ｓ（ｌ）の形式における対応するバタフライの２つの開始状態又はその開始パス・メトリックに相当する。個々のバタフライを対に結合することにより、図１に示す上位のバタフライ格子構造が生成される。図１に示す格子は、対に結合された元のバタフライの目的状態のパス・メトリックが、後続するバタフライに対する開始パス・メトリックとして使用できることを意味する。このように、図１は、例えば、破線によって示された上位のバタフライが、前述したように、開始状態［０、４］及び［２、６］、並びに目的状態［０、１］及び［４、５］をそれぞれ有する元のバタフライを結合し、結果として得られる目的状態を［０、４］及び［１、５］の対に並び替えることを示している。これにより、これらの並び替えられた目的状態の対は、後続するバタフライに対する開始状態として同時に機能し得る（図６のバタフライ構造を参照すれば、開始状態［０、４］及び［１、５］がそれぞれバタフライに割り当てられていることが明らかである）。
【００５０】
さらに、このようにして得られた上位の格子構造は、ＴＶＴ構造の形式である図３に類似した構成である。結果的に、図１に示す格子の各線は、メモリ３のメモリアドレスに相当する。従って、例えば、図示された格子の第２の線に関し、状態対［１、５］、［２、６］及び再び［１、５］のパス・メトリックが、一つで且つ同じメモリアドレス下に連続して記憶される。
【００５１】
図１から推測できるように、格子の寸法は、個々のバタフライを二つ一組にした組み合わせにより、図３と比較して２ＭＴ−１状態に削減される。従って、元の状態シーケンスが回復する前に必要な反復の数もまた同様に、図３と比較して値１に削減される。この結果、メモリ３に対するアドレス・ジェネレーションに関するアドレッシングの複雑さもまた同様に削減される。
【００５２】
バタフライの全ての状態は、当該バタフライの上位の開始状態Ｓ（ｕ）から引き出され得ることを前述した。図１に示すパス・メトリック対に対する各好適なメモリアドレスは、カウンタを使用することにより、このように比較的簡単な方法で決定することができる。この場合、前記カウンタの読み値Ｃは、［０．．．ＮＴＳ／２−１］の間で変化し、関数ｆＳ（ｕ）（Ｃ）を用い、それに依存する方法で、瞬間的なカウンタ読み値Ｃにそれぞれ相当するバタフライ対の上位の状態Ｓ（ｕ）が決定される。次に、アドレッシング関数ｆａｄｄｒ（Ｓ（ｕ）、Ｉ）を用い、決定された上位の状態Ｓ（ｕ）及び現在の各反復番号Ｉに依存する方法で、好適なメモリアドレスが決定される。複数のプロセッサ・エレメントのパス・メトリックが結合される場合、カウンタのカウンタ読み値は、
【式１】
0003550369.tif 000002
の間で変化しなければならない。ここで、ＮＰＥはプロセッサ・エレメントの数に相当し、ｌｄ（Ｘ）は式ｌｏｇ２（Ｘ）に相当する。
【００５３】
関数関数ｆＳ（ｕ）（Ｃ）は非線形である。この関数は、図２に示すように、単純なビット・マッピングの形態で実現可能である。図２において、ＭＳＢは最も重要なビットを示し、ＬＳＢは最も重要でないビットを示す。
【００５４】
アドレッシング関数ｆａｄｄｒ（Ｓ（ｕ）、Ｉ）は、フィードフォワード格子コーダの特性に基づき、以下の関係によって説明することができる。
【式２】
0003550369.tif 000003
この場合、ＡＤＤＲは、各パス・メトリック対に対するＳ（ｕ）、Ｍｔ及びＩの関数として決定されるメモリアドレスを示し、ここにＩε［０．．．Ｍｔ−１］である。このアドレッシング関数は、生じ得るオーバフローを考慮に入れることなく、単に表された第１及び第２の期間の（ＭＴ−１）ビットに相当するに過ぎないため、容易に実施することが可能である。表された式内の全ての乗算は、単純なビット・シフティング操作によって実現することが可能である。
【００５５】
本発明が複数のプロセッサ・エレメントに適用される場合、アドレッシング関数ｆａｄｄｒ（Ｓ（ｕ）、Ｉ）は、以下の関係で説明することができる。
【式３】
0003550369.tif 000004
本発明について、フィードフォワード・コード、例えばＳＤＳＬコードの使用に関して上記のように説明した。しかしながら、本発明は、フィードバック・コードに同様にして適用可能である。フィードバック・コードに対するＶｉｔｅｒｂｉデコーダの格子構造は、フィードフォワード・コードに対するものと著しく異なるが、それでもなお、フィードバック・コードの場合も、格子バタフライは、対応する目的状態のパス・メトリックが、格子図における２つの後続するバタフライに対して開始パス・メトリックを同時に構成するように、対に結合され得る。フィードフォワード・コードと対照的に、元の状態シーケンスが格子図において再び発生する前に必要である反復の数は、値ＭＴに直接的には依存しない。フィードバック・コードに対しても、フィードフォワード・コードに対して上述した手順に類似した方法で、ｆＳ（ｕ）（Ｃ）及びｆａｄｄｒ（Ｓ（ｕ）、Ｉ）に相当する表現が決定され得る。しかしながら、この時点で、その派生は省かれる。
【図面の簡単な説明】
【図１】図１は、８つの状態を備えた格子に基づくＳＤＳＬ・Ｖｉｔｅｒｂｉデコーダに対して、本発明の基礎となる原理を説明する図である。
【図２】図２は、カウンタの読み値に依存する方法で、本発明の好適な実施形態に関し、且つ、個々のパス・メトリックをＡＣＳユニットのメモリの異なるメモリアドレス上にマッピングするのに重要な状態を決定するのに使用可能な関数を説明する図である。
【図３】図３は、本発明に係る方法が開発されて後続する方法を説明する図である。
【図４】図４は、バタフライ構造及び４つの状態を有する格子図の例を示す。
【図５】図５は、Ｖｉｔｅｒｂｉデコーダの一般的構成を示す。
【図６】図６は、従来技術に関連する問題を説明するためのバタフライ構造を有する格子図である。
【図１】
0003550369.tif 000005
【図２】
0003550369.tif 000006
【図３】
0003550369.tif 000007
【図４】
0003550369.tif 000008
【図５】
0003550369.tif 000009
【図６】
0003550369.tif 000010