JP3550369B2 - Viterbiデコーダにおけるパス・メトリックの記憶方法 - Google Patents
Viterbiデコーダにおけるパス・メトリックの記憶方法 Download PDFInfo
- Publication number
- JP3550369B2 JP3550369B2 JP2001058766A JP2001058766A JP3550369B2 JP 3550369 B2 JP3550369 B2 JP 3550369B2 JP 2001058766 A JP2001058766 A JP 2001058766A JP 2001058766 A JP2001058766 A JP 2001058766A JP 3550369 B2 JP3550369 B2 JP 3550369B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- butterfly
- states
- path
- time step
- 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000010586 diagram Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 description 6
- 241000255777 Lepidoptera Species 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000007476 Maximum Likelihood Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Description
【0001】
本発明は、請求項1の前段部分に係る、Viterbiデコーダにおけるパス・メトリック(path metrics)を記憶する方法に関する。前記方法は、特に、チャンネル・コード化された移動式無線信号を復号するための移動式無線受信機におけるViterbiデコーダに使用することができる。
【0002】
公知のデジタル移動式無線受信機の大部分に、Viterbiデコーダが使用されている。Viterbiデコーダは、いわゆる最尤復号器であり、これは、チャンネル・コード化された、特に畳み込み符号化された移動式無線信号を復号するのに使用されるのが通常である。送信機におけるチャンネル・コーディングの間、送信の信頼性を高めるべく、送信されるべき信号に冗長な情報が付加される。しかしながら、移動式無線信号の送信の間に、当該信号にノイズが重畳する。従って、受信機の役割は、生じ得る全ての送信シーケンスから、実際の送信シーケンスに対する最尤度に一致する送信シーケンスを検出するべく、受信シーケンスを使用することにある。この役割は、Viterbiデコーダによって果たされる。
【0003】
チャンネル・コーディングの間に使用されるコーディングの内容は、対応する格子図(trellis diagram)によって説明することができる。いわゆるメトリックを計算することにより、Viterbiデコーダは、該デコーダのそれぞれの構成に依存して、最大の又は最小のパス・メトリックを有する格子図のパスを決定する。次に、この格子図のパスを使用して、復号されたシーケンスが決定され、出力される。
【0004】
以下に、Viterbiデコーディングの原理について、簡潔に且つ詳細に説明する。
【0005】
図4は、一例として、瞬間t〜t+3において、その都度4つの異なる状態を有する格子図を示している。前記瞬間t〜t+3は、例えば、「00」、「10」、「01」及び「11」のビット状態に相当する。各シンボル・シーケンスは、格子図における対応するパスに割り当てられている。この場合、パスは、一時的に連続する2つの状態間における一連の枝からなる。この場合、各枝は、一時的に連続する2つの状態間における状態遷移を象徴する。前記一時的に連続する2つの状態は、例えば、上位の枝が、バイナリ値「0」を有する受信シンボルに相当する状態から先行し、下位の枝が、バイナリ値「1」を有する受信シンボルに相当する同じ状態から後続する。枝メトリック(BM)λtが割り当てられている、これらの状態遷移の各々は、送信シンボルに相当する。枝メトリックλtは、以下のように定義される。
λt=|y’t−rt 2|
ここで、rtは瞬間tにおける受信シンボルに相当し、y’tは瞬間tにおけるその関数として期待される送信シンボルに相当する。
【0006】
さらに、格子図を通じて瞬間又は時間ステップtまで、各パスにパス・メトリックγtが割り当てられている。
【0007】
図4に示された格子図は、特に、いわゆる「バタフライ」構造を有する格子図である。これは、格子図の時間ステップt+1が、先行する時間ステップtの2つの状態にその都度割り当てられることを意味する。それらの枝は、その都度、時間ステップt+1の最初に述べた状態に通じ、その都度、異なる状態から後続する枝の2つの枝メトリックは、同一である。したがって、例えば、図4に示され、パス・メトリックγt (1)、γt (3)、γt+1 (2)及びγt+1 (3)が割り当てられた状態は、この種の「バタフライ」構造を形成する。パス・メトリックγt (1)を有する状態から、パス・メトリックγt+1 (2)を有する状態への枝に対する枝メトリックは、パス・メトリックγt (3)を有する状態から、パス・メトリックγt+1 (3)を有する状態への枝の枝メトリックλt (3)に相当する。一方、パス・メトリックγt (1)を有する状態から、パス・メトリックγt+1 (3)を有する状態への枝の枝メトリックは、パス・メトリックγt (3)を有する状態から、パス・メトリックγt+1 (2)を有する状態への枝の枝メトリックλt (1)に相当する。この場合、γt (s)は通常、時間ステップtにおける状態sに割り当てられたパス・メトリックを示す一方、λt (s)は瞬間tにおける信号sに相当する状態遷移の枝メトリックを示す。
【0008】
Viterbiデコーダは、次に、最良のパス・メトリックを有するパスを決定するべく、格子図に相当するアルゴリズムを使用しなければならない。一般に、これは、定義からして、最小のパス・メトリックを有するパスである。
【0009】
特定の状態に通じるパスの各パス・メトリックは、一時的に先行する状態のパス・メトリックと、この先行する状態から特定の状態に通じる枝の枝メトリックとからなる。この結果は、格子図の生じ得るパス及びパス・メトリックの全てが必ずしも決定され、評価される必要がないということである。その代わりに、格子図の各状態及び各時間ステップに対して、その都度、その瞬間までに最も良好なパス・メトリックを有するパスが決定される。「生存パス」として示される前記パス及びそのパス・メトリックは、記憶される必要がある。この状態に通じる他の全てのパスは、無視することができる。従って、各時間ステップの間、異なる状態の数に相当する、多くのこのような生存パスが存在する。
【0010】
上述した説明により、パス・メトリックγt+1 (s)の計算が、枝を介して状態sに接続されている先行する時間ステップtのパス・メトリックに依存することは明らかである。従って、パス・メトリックの計算は、Viterbiデコーダにおける所謂「アッド・コンペア・セレクト」ユニット(ACSユニット)によって実行される再帰アルゴリズムによって実現可能である。
【0011】
図5は、Viterbiデコーダの典型的な構成を示す。
【0012】
メモリ又はレジスタ3を有するACSユニット2に加え、枝メトリック・ユニット1及び生存メモリユニット4が設けられている。枝メトリック・ユニットの役割は、受信シンボルと、格子図において対応する状態を生じさせるシンボルとの差異の尺度である枝メトリックλt (s)を計算することである。枝メトリック・ユニット1によって計算される枝メトリックは、最適なパス(生存パス)を決定するために、ACSユニット2に供給される。また、生存メモリユニット4は、これらの生存パスを記憶する。これにより、最終的なデコーディングは、最良のパス・メトリックを有する生存パスを使用することにより実行され得る。このパスに割り当てられたシンボルシーケンスは、実際に送信されるシーケンスに対する最尤度に一致する。
【0013】
ACSユニット2は、複数のプロセッサ・エレメントを備え、一般的に、格子図の各状態が、個々のプロセッサ・エレメントによって評価される。個々のプロセッサ・エレメントの役割は、格子図の状態に通じる2つの互いに競合するパス(いわゆる「競合パス」)から、最良の、すなわち最小のパス・メトリックを有するパスを選択することにある。この状態に通じる生存パスとして記憶される値及びそのパス・メトリックが次に更新される。
【0014】
図4に示す格子図から明らかなように、瞬間t+1における各状態sは、上位の枝及び下位の枝を介して、対応する先行状態に接続されている。結果的に、この状態sに相当する生存パスを決定するべく、上位の枝を介して状態sに通じるパスのパス・メトリックは、下位の枝を介して状態sに通じるパスのパス・メトリックと比較されなければならない。すなわち、各プロセッサ・エレメントの役割は、パス・メトリックγt+1 (s)を有する生存パスを決定するべく、パス・メトリックγt (u)を有する先行する「上位の」状態、及び枝メトリックλt (u)を有する「上位の」枝を介して通じ、そのパス・メトリックがγt (u)+λt (u)の和に相当するパスと、パス・メトリックγt (l)を有する「下位の」状態、及び枝メトリックλt (l)を有する「下位の」枝を介して通じ、そのパス・メトリックがγt (l)+λt (l)の和に相当するパスとのいずれかを選択することにある。
【0015】
時間ステップtにおける状態sに対して計算される各結果γt (s)は、一時的に後続する状態に対するパス・メトリックの計算の基礎になる。これには、図5に示すメモリ3を介するACSユニット2のフィードバックが必要である。計算されたパス・メトリックは、メモリ3にバッファされる。
【0016】
メモリ3の構成は、各格子図の構成に従って構築されなければならない。各シンボル周期の間、格子図の状態の数に相当する多くのパス・メトリックが、メモリ3から読み出され、メモリ3に書き込まれる必要がある。格子図の各バタフライに対して、2つの状態が同時に処理されるため、2つの開始パス・メトリックがメモリ3から読み出され、そこから計算される2つのパス・メトリックがメモリ3に書き込まれる必要がある。
【0017】
しかしながら、これは、パス・メトリックが読み出される前に上書きされてはならないという問題を引き起こす。
【0018】
これをより明確にするべく、図6は、8つの状態を有する更なる格子図を示す。前記格子図は、既に述べたバタフライ構造を有する。例示のバタフライは、破線で示されており、開始の状態St番号1及び5と、目的の状態St+1番号2及び3とを備えている。結果的に、目的の状態番号2及び3のパス・メトリックの計算のためには、開始の状態番号1及び5のパス・メトリックが最初に読み出されなければならない。
【0019】
読み出し操作及び書き込み操作の間のこの競合する状況は、文献において「ピンポン」の実行としても知られているメモリ3の構成につながった。メモリ3は、2つのメモリバンクに細分され、一方は専ら読み出し操作に、他方は専ら書き込み操作に提供される。
【0020】
この技術を用いることにより、好ましくない衝突を確実に回避することができるものの、それでもなおメモリ3は、両方のメモリバンクの各々が全ての状態St及びSt+1のパス・メトリックを記憶し得る必要があるため、本質的に必要なサイズの2倍のサイズを有しなければならない。
【0021】
パス・メトリックの記憶に関連した更なる問題は、パス・メトリックのメモリ上へのマッピング、すなわち、個々のパス・メトリックの異なるメモリアドレスへの割り当てである。従来技術によれば、読み書き操作の間の衝突を確実に回避するべく、このマッピングは、異なるメモリ領域がパス・メトリックの読み書き操作に使用されるように選択されなければならない。
【0022】
本発明は、より低いメモリの必要条件で実現することができ、書き込み/読み出しの衝突を確実に回避する、Viterbiデコーダにおけるパス・メトリックを記憶する方法を提案するという目的に基づくものである。
【0023】
この目的は、本発明に係る請求項1の特徴を有する方法によって達成される。従属項は、本発明の有利で好適な実施形態を特徴づけるものである。
【0024】
本発明を用いることにより、Viterbiデコーダにおけるパス・メトリックを記憶する方法が提供される。該方法は、時間可変の格子図の原理に基づくものであり、バタフライ構造及び対応するACSユニットを有する格子図に特に好適である。
【0025】
本発明に係る方法は、たった一つのメモリしか必要とせず、パス・メトリックが同じメモリ領域から読み出され、記憶されることを可能にする。すなわち、2つの開始パス・メトリックに基づき計算される、対応する目的状態のパス・メトリックは、予め2つの開始パス・メトリックが読み出された同じメモリアドレス下に記憶される。メモリのサイズは、格子のそれぞれ選択された平行度(parallelism)の程度に依存せず、単に異なる格子状態の数の結果(product)及びメモリワード当たりのビット数に相当する必要があるに過ぎない。特に、複数のプロセッサ・エレメントに対するパス・メトリックが結合された形態で記憶されるように意図されている場合であっても、たった一つのメモリしか必要でない。
【0026】
書き込み/読み出しの衝突は、確実に回避される。
【0027】
本発明は、2つのパス・メトリックに対して、たった一つのメモリアドレスしか必要としないため、Viterbiデコーディングに使用されるチップについて、最小量の領域及び消費電力しか必要としない。本発明は、例えば、SDSLのようなフィードフォワード・コード及びフィードバック・コードの双方に好適であり、プログラム可能なViterbiデコーダの使用を可能にし、対応するパス・メトリックが各バタフライに対して単純な方法でプログラムされることが可能になる。
【0028】
本発明について、添付した図面を参照した好適な例示の実施形態を使用し、以下により詳細に説明する。
【0029】
本発明の詳細を特に議論する前に、本発明を説明するために後に使用する専門用語について以下に簡単に示す。
【0030】
格子コーダがMtメモリワードの合計メモリサイズを有すると仮定すれば、NTS=2MTを有する格子コードが得られる。ここで、NTSは、対応する格子図における異なる状態の数を示す。コードレート1/2を有するフィードフォワード・コードのインパルス応答の長さは、MT+1である。格子図における状態遷移は、前述したように、各コード化されたビットBに依存し、瞬間t+1における状態St+1は、以下の関係に従い、先行する状態Stに起因して生じる。
【0031】
S(t)=(2・Sl)mod(NTS+B)
【0032】
格子図が、既に述べ、図6に一例として示したバタフライ構造を有する場合、各バタフライには2つの開始状態及び2つの目的状態が割り当てられる。その都度格子の幾何を参照することにより、インデックス(u)(「上位」に対して)によって示される上位の状態と、インデックス(l)(「下位」に対して)によって示される下位の状態とを区別することが可能である。図6に破線で示したバタフライの場合、例えば、St (u)=1、St (l)=5、St+1 (u)=2及びSt+1 (l)=3が当てはまる。ここで、St (u)及びSt (l)は対応するバタフライの開始状態を示し、St+1 (u)及びSt+1 (l)は目的状態を示す。
【0033】
図6から推測できるように、バタフライの下位の開始状態St (l)及び目的状態St+1 (u)及びSt+1 (l)は、上位の開始状態St (u)に依存し、以下の関係が当てはまる。
【0034】
0≦St (u)≦NTS/2−1
【0035】
Sl (l)=Sl (u)+NTS/2
【0036】
S(t) (u)=(2・Sl (u))mod(NTS+0)
【0037】
St+1 (l)=(2・Sl (u))mod(NTS+1)=(2・Sl (l))mod(NTS+1)
【0038】
NTS=8及びSt (u)=1として上記式を評価すれば、図6における破線で示したバタフライに対して、正しい値St (l)=5、St+1 (u)=2及びSt+1 (l)=3が結果として得られる。
【0039】
本発明は、目的状態に対して計算されるバタフライのパス・メトリックを、同じメモリアドレス下で記憶するという思想に基づくものである。前記メモリアドレスからは、対応する開始パス・メトリックが読み出され、それによって、メモリ3におけるパス・メトリックの好ましくない上書きを回避することが可能になる。この尺度は、格子構造の時間に依存する変動をもたらし、結果として生じる格子表現もまた「時間変動格子」(TVT)として表すことができる。
【0040】
図6に示す格子構造のTVTは、図3に示されている。図3から明らかなように、個々のバタフライの状態遷移は図6に示す状態遷移に相当するにもかかわらず、各時間ステップ又は各反復につれて、状態のシーケンスは、以下のように並べ替えられる。つまり、バタフライの各目的状態が、水平の枝によって、同じバタフライの対応する開始状態に接続されるように並べ替えられる。図3において、個々の反復に対して、2つのバタフライがそれぞれ点線及び一点鎖線によって示されている。前記バタフライは、それぞれ、開始状態番号2及び番号6、並びに番号3及び番号7と、それぞれ、目的状態番号4及び番号5、並びに番号6及び番号7とを備えている。従って、時間に依存する格子構造の並べ替えの原理は、特にこれらのバタフライを使用することにより理解され得る。
【0041】
図3に示す格子の各線は、メモリ3のメモリアドレスに相当するため、例えば、状態番号2、番号4、番号1及び番号2に対するパス・メトリックは、連続して一つの且つ同一のメモリアドレス(図3に示す格子図における第3の線)に書き込まれる。Mtの反復の後(図示の例では、Mt=3の反復の後)、元の状態シーケンスが再び得られる。
【0042】
前述したTVTのアプローチは、メモリ3におけるパス・メトリックの好ましくない上書きを防止する。しかしながら、バタフライ構造に基づくパス・メトリックの計算をACSユニット2によって可能にするべく、2つのパス・メトリックを同時に読み書きしなければならず、メモリも同様に細分しなければならないという問題が残っている。しかしながら、TVTアプローチにとって、これは実行できないことを示すことができる。
【0043】
従って、バタフライ構造を十分に機能させるアプローチを与えるには、TVTアプローチを更に開発しなければならない。前記バタフライ構造を十分に機能させるアプローチは、以下に図1及び図2を参照して説明するように、「バタフライ指向時間可変格子(butterfly oriented time varying trellis)」(BFTVT)として表すことができる。
【0044】
前述したTVTアプローチに本質的に関連した問題は、ACSユニット2によって計算される、バタフライの目的状態のパス・メトリックが、更なるバタフライに対する開始パス・メトリックを同時に構成しないということである。これらの事実を明確にするため、バタフライの開始及び目的パス・メトリック対は、それぞれ以下の形式[St (u)、St (l)]及び[St+1 (u)、St+1 (l)]で表される。結果的に、図3に示す格子の個々のバタフライに対して(反復1)、以下の状態遷移に帰着する。
【0045】
[0、4]→[0、1]
[1、5]→[2、3]
[2、6]→[4、5]
[3、7]→[6、7]
【0046】
例えば、開始状態[0、4]を有するバタフライの目的状態[0、1]は、反復2の共通のバタフライに対する開始状態を同時に構成しないことは明らかである。従って、各バタフライの開始及び目的パス・メトリックを共通のメモリワードの形態で記憶することは意味をなさない。
【0047】
しかしながら、一方、例えば、開始状態[0、4]及び[2、6]を有する2つのバタフライの目的状態[0、1]及び[4、5]は、開始状態[0、4]及び[1、5]を有する格子図における後続するバタフライに対して、開始状態として同時に利用し得るということが明らかである。目的状態に対して決定されるパス・メトリックが同様に並び替えられた場合、バタフライ対の目的状態のパス・メトリックが他の2つのバタフライに対する開始パス・メトリックとして同時に利用できるように、全ての2MT−1バタフライは対に結合することができるということが理解できる。
【0048】
このアプローチを図1に示す。メモリ3の各メモリワードのワード幅は、従来技術と比較して2倍であるため、メモリワード当たり少なくとも2つのパス・メトリックの対において、2つのバタフライの目的状態の結果又はパス・メトリックを記憶することが可能になる。特に、メモリのサイズは、使用するプロセッサ・エレメントの数に依存せず、単に書き込み/読み出し操作の数が変化するのみである。
【0049】
図1において、各円は、S(u)/S(l)の形式における対応するバタフライの2つの開始状態又はその開始パス・メトリックに相当する。個々のバタフライを対に結合することにより、図1に示す上位のバタフライ格子構造が生成される。図1に示す格子は、対に結合された元のバタフライの目的状態のパス・メトリックが、後続するバタフライに対する開始パス・メトリックとして使用できることを意味する。このように、図1は、例えば、破線によって示された上位のバタフライが、前述したように、開始状態[0、4]及び[2、6]、並びに目的状態[0、1]及び[4、5]をそれぞれ有する元のバタフライを結合し、結果として得られる目的状態を[0、4]及び[1、5]の対に並び替えることを示している。これにより、これらの並び替えられた目的状態の対は、後続するバタフライに対する開始状態として同時に機能し得る(図6のバタフライ構造を参照すれば、開始状態[0、4]及び[1、5]がそれぞれバタフライに割り当てられていることが明らかである)。
【0050】
さらに、このようにして得られた上位の格子構造は、TVT構造の形式である図3に類似した構成である。結果的に、図1に示す格子の各線は、メモリ3のメモリアドレスに相当する。従って、例えば、図示された格子の第2の線に関し、状態対[1、5]、[2、6]及び再び[1、5]のパス・メトリックが、一つで且つ同じメモリアドレス下に連続して記憶される。
【0051】
図1から推測できるように、格子の寸法は、個々のバタフライを二つ一組にした組み合わせにより、図3と比較して2MT−1状態に削減される。従って、元の状態シーケンスが回復する前に必要な反復の数もまた同様に、図3と比較して値1に削減される。この結果、メモリ3に対するアドレス・ジェネレーションに関するアドレッシングの複雑さもまた同様に削減される。
【0052】
バタフライの全ての状態は、当該バタフライの上位の開始状態S(u)から引き出され得ることを前述した。図1に示すパス・メトリック対に対する各好適なメモリアドレスは、カウンタを使用することにより、このように比較的簡単な方法で決定することができる。この場合、前記カウンタの読み値Cは、[0...NTS/2−1]の間で変化し、関数fS(u)(C)を用い、それに依存する方法で、瞬間的なカウンタ読み値Cにそれぞれ相当するバタフライ対の上位の状態S(u)が決定される。次に、アドレッシング関数faddr(S(u)、I)を用い、決定された上位の状態S(u)及び現在の各反復番号Iに依存する方法で、好適なメモリアドレスが決定される。複数のプロセッサ・エレメントのパス・メトリックが結合される場合、カウンタのカウンタ読み値は、
【式1】
の間で変化しなければならない。ここで、NPEはプロセッサ・エレメントの数に相当し、ld(X)は式log2(X)に相当する。
【0053】
関数関数fS(u)(C)は非線形である。この関数は、図2に示すように、単純なビット・マッピングの形態で実現可能である。図2において、MSBは最も重要なビットを示し、LSBは最も重要でないビットを示す。
【0054】
アドレッシング関数faddr(S(u)、I)は、フィードフォワード格子コーダの特性に基づき、以下の関係によって説明することができる。
【式2】
この場合、ADDRは、各パス・メトリック対に対するS(u)、Mt及びIの関数として決定されるメモリアドレスを示し、ここにIε[0...Mt−1]である。このアドレッシング関数は、生じ得るオーバフローを考慮に入れることなく、単に表された第1及び第2の期間の(MT−1)ビットに相当するに過ぎないため、容易に実施することが可能である。表された式内の全ての乗算は、単純なビット・シフティング操作によって実現することが可能である。
【0055】
本発明が複数のプロセッサ・エレメントに適用される場合、アドレッシング関数faddr(S(u)、I)は、以下の関係で説明することができる。
【式3】
本発明について、フィードフォワード・コード、例えばSDSLコードの使用に関して上記のように説明した。しかしながら、本発明は、フィードバック・コードに同様にして適用可能である。フィードバック・コードに対するViterbiデコーダの格子構造は、フィードフォワード・コードに対するものと著しく異なるが、それでもなお、フィードバック・コードの場合も、格子バタフライは、対応する目的状態のパス・メトリックが、格子図における2つの後続するバタフライに対して開始パス・メトリックを同時に構成するように、対に結合され得る。フィードフォワード・コードと対照的に、元の状態シーケンスが格子図において再び発生する前に必要である反復の数は、値MTに直接的には依存しない。フィードバック・コードに対しても、フィードフォワード・コードに対して上述した手順に類似した方法で、fS(u)(C)及びfaddr(S(u)、I)に相当する表現が決定され得る。しかしながら、この時点で、その派生は省かれる。
【図面の簡単な説明】
【図1】図1は、8つの状態を備えた格子に基づくSDSL・Viterbiデコーダに対して、本発明の基礎となる原理を説明する図である。
【図2】図2は、カウンタの読み値に依存する方法で、本発明の好適な実施形態に関し、且つ、個々のパス・メトリックをACSユニットのメモリの異なるメモリアドレス上にマッピングするのに重要な状態を決定するのに使用可能な関数を説明する図である。
【図3】図3は、本発明に係る方法が開発されて後続する方法を説明する図である。
【図4】図4は、バタフライ構造及び4つの状態を有する格子図の例を示す。
【図5】図5は、Viterbiデコーダの一般的構成を示す。
【図6】図6は、従来技術に関連する問題を説明するためのバタフライ構造を有する格子図である。
本発明は、請求項1の前段部分に係る、Viterbiデコーダにおけるパス・メトリック(path metrics)を記憶する方法に関する。前記方法は、特に、チャンネル・コード化された移動式無線信号を復号するための移動式無線受信機におけるViterbiデコーダに使用することができる。
【0002】
公知のデジタル移動式無線受信機の大部分に、Viterbiデコーダが使用されている。Viterbiデコーダは、いわゆる最尤復号器であり、これは、チャンネル・コード化された、特に畳み込み符号化された移動式無線信号を復号するのに使用されるのが通常である。送信機におけるチャンネル・コーディングの間、送信の信頼性を高めるべく、送信されるべき信号に冗長な情報が付加される。しかしながら、移動式無線信号の送信の間に、当該信号にノイズが重畳する。従って、受信機の役割は、生じ得る全ての送信シーケンスから、実際の送信シーケンスに対する最尤度に一致する送信シーケンスを検出するべく、受信シーケンスを使用することにある。この役割は、Viterbiデコーダによって果たされる。
【0003】
チャンネル・コーディングの間に使用されるコーディングの内容は、対応する格子図(trellis diagram)によって説明することができる。いわゆるメトリックを計算することにより、Viterbiデコーダは、該デコーダのそれぞれの構成に依存して、最大の又は最小のパス・メトリックを有する格子図のパスを決定する。次に、この格子図のパスを使用して、復号されたシーケンスが決定され、出力される。
【0004】
以下に、Viterbiデコーディングの原理について、簡潔に且つ詳細に説明する。
【0005】
図4は、一例として、瞬間t〜t+3において、その都度4つの異なる状態を有する格子図を示している。前記瞬間t〜t+3は、例えば、「00」、「10」、「01」及び「11」のビット状態に相当する。各シンボル・シーケンスは、格子図における対応するパスに割り当てられている。この場合、パスは、一時的に連続する2つの状態間における一連の枝からなる。この場合、各枝は、一時的に連続する2つの状態間における状態遷移を象徴する。前記一時的に連続する2つの状態は、例えば、上位の枝が、バイナリ値「0」を有する受信シンボルに相当する状態から先行し、下位の枝が、バイナリ値「1」を有する受信シンボルに相当する同じ状態から後続する。枝メトリック(BM)λtが割り当てられている、これらの状態遷移の各々は、送信シンボルに相当する。枝メトリックλtは、以下のように定義される。
λt=|y’t−rt 2|
ここで、rtは瞬間tにおける受信シンボルに相当し、y’tは瞬間tにおけるその関数として期待される送信シンボルに相当する。
【0006】
さらに、格子図を通じて瞬間又は時間ステップtまで、各パスにパス・メトリックγtが割り当てられている。
【0007】
図4に示された格子図は、特に、いわゆる「バタフライ」構造を有する格子図である。これは、格子図の時間ステップt+1が、先行する時間ステップtの2つの状態にその都度割り当てられることを意味する。それらの枝は、その都度、時間ステップt+1の最初に述べた状態に通じ、その都度、異なる状態から後続する枝の2つの枝メトリックは、同一である。したがって、例えば、図4に示され、パス・メトリックγt (1)、γt (3)、γt+1 (2)及びγt+1 (3)が割り当てられた状態は、この種の「バタフライ」構造を形成する。パス・メトリックγt (1)を有する状態から、パス・メトリックγt+1 (2)を有する状態への枝に対する枝メトリックは、パス・メトリックγt (3)を有する状態から、パス・メトリックγt+1 (3)を有する状態への枝の枝メトリックλt (3)に相当する。一方、パス・メトリックγt (1)を有する状態から、パス・メトリックγt+1 (3)を有する状態への枝の枝メトリックは、パス・メトリックγt (3)を有する状態から、パス・メトリックγt+1 (2)を有する状態への枝の枝メトリックλt (1)に相当する。この場合、γt (s)は通常、時間ステップtにおける状態sに割り当てられたパス・メトリックを示す一方、λt (s)は瞬間tにおける信号sに相当する状態遷移の枝メトリックを示す。
【0008】
Viterbiデコーダは、次に、最良のパス・メトリックを有するパスを決定するべく、格子図に相当するアルゴリズムを使用しなければならない。一般に、これは、定義からして、最小のパス・メトリックを有するパスである。
【0009】
特定の状態に通じるパスの各パス・メトリックは、一時的に先行する状態のパス・メトリックと、この先行する状態から特定の状態に通じる枝の枝メトリックとからなる。この結果は、格子図の生じ得るパス及びパス・メトリックの全てが必ずしも決定され、評価される必要がないということである。その代わりに、格子図の各状態及び各時間ステップに対して、その都度、その瞬間までに最も良好なパス・メトリックを有するパスが決定される。「生存パス」として示される前記パス及びそのパス・メトリックは、記憶される必要がある。この状態に通じる他の全てのパスは、無視することができる。従って、各時間ステップの間、異なる状態の数に相当する、多くのこのような生存パスが存在する。
【0010】
上述した説明により、パス・メトリックγt+1 (s)の計算が、枝を介して状態sに接続されている先行する時間ステップtのパス・メトリックに依存することは明らかである。従って、パス・メトリックの計算は、Viterbiデコーダにおける所謂「アッド・コンペア・セレクト」ユニット(ACSユニット)によって実行される再帰アルゴリズムによって実現可能である。
【0011】
図5は、Viterbiデコーダの典型的な構成を示す。
【0012】
メモリ又はレジスタ3を有するACSユニット2に加え、枝メトリック・ユニット1及び生存メモリユニット4が設けられている。枝メトリック・ユニットの役割は、受信シンボルと、格子図において対応する状態を生じさせるシンボルとの差異の尺度である枝メトリックλt (s)を計算することである。枝メトリック・ユニット1によって計算される枝メトリックは、最適なパス(生存パス)を決定するために、ACSユニット2に供給される。また、生存メモリユニット4は、これらの生存パスを記憶する。これにより、最終的なデコーディングは、最良のパス・メトリックを有する生存パスを使用することにより実行され得る。このパスに割り当てられたシンボルシーケンスは、実際に送信されるシーケンスに対する最尤度に一致する。
【0013】
ACSユニット2は、複数のプロセッサ・エレメントを備え、一般的に、格子図の各状態が、個々のプロセッサ・エレメントによって評価される。個々のプロセッサ・エレメントの役割は、格子図の状態に通じる2つの互いに競合するパス(いわゆる「競合パス」)から、最良の、すなわち最小のパス・メトリックを有するパスを選択することにある。この状態に通じる生存パスとして記憶される値及びそのパス・メトリックが次に更新される。
【0014】
図4に示す格子図から明らかなように、瞬間t+1における各状態sは、上位の枝及び下位の枝を介して、対応する先行状態に接続されている。結果的に、この状態sに相当する生存パスを決定するべく、上位の枝を介して状態sに通じるパスのパス・メトリックは、下位の枝を介して状態sに通じるパスのパス・メトリックと比較されなければならない。すなわち、各プロセッサ・エレメントの役割は、パス・メトリックγt+1 (s)を有する生存パスを決定するべく、パス・メトリックγt (u)を有する先行する「上位の」状態、及び枝メトリックλt (u)を有する「上位の」枝を介して通じ、そのパス・メトリックがγt (u)+λt (u)の和に相当するパスと、パス・メトリックγt (l)を有する「下位の」状態、及び枝メトリックλt (l)を有する「下位の」枝を介して通じ、そのパス・メトリックがγt (l)+λt (l)の和に相当するパスとのいずれかを選択することにある。
【0015】
時間ステップtにおける状態sに対して計算される各結果γt (s)は、一時的に後続する状態に対するパス・メトリックの計算の基礎になる。これには、図5に示すメモリ3を介するACSユニット2のフィードバックが必要である。計算されたパス・メトリックは、メモリ3にバッファされる。
【0016】
メモリ3の構成は、各格子図の構成に従って構築されなければならない。各シンボル周期の間、格子図の状態の数に相当する多くのパス・メトリックが、メモリ3から読み出され、メモリ3に書き込まれる必要がある。格子図の各バタフライに対して、2つの状態が同時に処理されるため、2つの開始パス・メトリックがメモリ3から読み出され、そこから計算される2つのパス・メトリックがメモリ3に書き込まれる必要がある。
【0017】
しかしながら、これは、パス・メトリックが読み出される前に上書きされてはならないという問題を引き起こす。
【0018】
これをより明確にするべく、図6は、8つの状態を有する更なる格子図を示す。前記格子図は、既に述べたバタフライ構造を有する。例示のバタフライは、破線で示されており、開始の状態St番号1及び5と、目的の状態St+1番号2及び3とを備えている。結果的に、目的の状態番号2及び3のパス・メトリックの計算のためには、開始の状態番号1及び5のパス・メトリックが最初に読み出されなければならない。
【0019】
読み出し操作及び書き込み操作の間のこの競合する状況は、文献において「ピンポン」の実行としても知られているメモリ3の構成につながった。メモリ3は、2つのメモリバンクに細分され、一方は専ら読み出し操作に、他方は専ら書き込み操作に提供される。
【0020】
この技術を用いることにより、好ましくない衝突を確実に回避することができるものの、それでもなおメモリ3は、両方のメモリバンクの各々が全ての状態St及びSt+1のパス・メトリックを記憶し得る必要があるため、本質的に必要なサイズの2倍のサイズを有しなければならない。
【0021】
パス・メトリックの記憶に関連した更なる問題は、パス・メトリックのメモリ上へのマッピング、すなわち、個々のパス・メトリックの異なるメモリアドレスへの割り当てである。従来技術によれば、読み書き操作の間の衝突を確実に回避するべく、このマッピングは、異なるメモリ領域がパス・メトリックの読み書き操作に使用されるように選択されなければならない。
【0022】
本発明は、より低いメモリの必要条件で実現することができ、書き込み/読み出しの衝突を確実に回避する、Viterbiデコーダにおけるパス・メトリックを記憶する方法を提案するという目的に基づくものである。
【0023】
この目的は、本発明に係る請求項1の特徴を有する方法によって達成される。従属項は、本発明の有利で好適な実施形態を特徴づけるものである。
【0024】
本発明を用いることにより、Viterbiデコーダにおけるパス・メトリックを記憶する方法が提供される。該方法は、時間可変の格子図の原理に基づくものであり、バタフライ構造及び対応するACSユニットを有する格子図に特に好適である。
【0025】
本発明に係る方法は、たった一つのメモリしか必要とせず、パス・メトリックが同じメモリ領域から読み出され、記憶されることを可能にする。すなわち、2つの開始パス・メトリックに基づき計算される、対応する目的状態のパス・メトリックは、予め2つの開始パス・メトリックが読み出された同じメモリアドレス下に記憶される。メモリのサイズは、格子のそれぞれ選択された平行度(parallelism)の程度に依存せず、単に異なる格子状態の数の結果(product)及びメモリワード当たりのビット数に相当する必要があるに過ぎない。特に、複数のプロセッサ・エレメントに対するパス・メトリックが結合された形態で記憶されるように意図されている場合であっても、たった一つのメモリしか必要でない。
【0026】
書き込み/読み出しの衝突は、確実に回避される。
【0027】
本発明は、2つのパス・メトリックに対して、たった一つのメモリアドレスしか必要としないため、Viterbiデコーディングに使用されるチップについて、最小量の領域及び消費電力しか必要としない。本発明は、例えば、SDSLのようなフィードフォワード・コード及びフィードバック・コードの双方に好適であり、プログラム可能なViterbiデコーダの使用を可能にし、対応するパス・メトリックが各バタフライに対して単純な方法でプログラムされることが可能になる。
【0028】
本発明について、添付した図面を参照した好適な例示の実施形態を使用し、以下により詳細に説明する。
【0029】
本発明の詳細を特に議論する前に、本発明を説明するために後に使用する専門用語について以下に簡単に示す。
【0030】
格子コーダがMtメモリワードの合計メモリサイズを有すると仮定すれば、NTS=2MTを有する格子コードが得られる。ここで、NTSは、対応する格子図における異なる状態の数を示す。コードレート1/2を有するフィードフォワード・コードのインパルス応答の長さは、MT+1である。格子図における状態遷移は、前述したように、各コード化されたビットBに依存し、瞬間t+1における状態St+1は、以下の関係に従い、先行する状態Stに起因して生じる。
【0031】
S(t)=(2・Sl)mod(NTS+B)
【0032】
格子図が、既に述べ、図6に一例として示したバタフライ構造を有する場合、各バタフライには2つの開始状態及び2つの目的状態が割り当てられる。その都度格子の幾何を参照することにより、インデックス(u)(「上位」に対して)によって示される上位の状態と、インデックス(l)(「下位」に対して)によって示される下位の状態とを区別することが可能である。図6に破線で示したバタフライの場合、例えば、St (u)=1、St (l)=5、St+1 (u)=2及びSt+1 (l)=3が当てはまる。ここで、St (u)及びSt (l)は対応するバタフライの開始状態を示し、St+1 (u)及びSt+1 (l)は目的状態を示す。
【0033】
図6から推測できるように、バタフライの下位の開始状態St (l)及び目的状態St+1 (u)及びSt+1 (l)は、上位の開始状態St (u)に依存し、以下の関係が当てはまる。
【0034】
0≦St (u)≦NTS/2−1
【0035】
Sl (l)=Sl (u)+NTS/2
【0036】
S(t) (u)=(2・Sl (u))mod(NTS+0)
【0037】
St+1 (l)=(2・Sl (u))mod(NTS+1)=(2・Sl (l))mod(NTS+1)
【0038】
NTS=8及びSt (u)=1として上記式を評価すれば、図6における破線で示したバタフライに対して、正しい値St (l)=5、St+1 (u)=2及びSt+1 (l)=3が結果として得られる。
【0039】
本発明は、目的状態に対して計算されるバタフライのパス・メトリックを、同じメモリアドレス下で記憶するという思想に基づくものである。前記メモリアドレスからは、対応する開始パス・メトリックが読み出され、それによって、メモリ3におけるパス・メトリックの好ましくない上書きを回避することが可能になる。この尺度は、格子構造の時間に依存する変動をもたらし、結果として生じる格子表現もまた「時間変動格子」(TVT)として表すことができる。
【0040】
図6に示す格子構造のTVTは、図3に示されている。図3から明らかなように、個々のバタフライの状態遷移は図6に示す状態遷移に相当するにもかかわらず、各時間ステップ又は各反復につれて、状態のシーケンスは、以下のように並べ替えられる。つまり、バタフライの各目的状態が、水平の枝によって、同じバタフライの対応する開始状態に接続されるように並べ替えられる。図3において、個々の反復に対して、2つのバタフライがそれぞれ点線及び一点鎖線によって示されている。前記バタフライは、それぞれ、開始状態番号2及び番号6、並びに番号3及び番号7と、それぞれ、目的状態番号4及び番号5、並びに番号6及び番号7とを備えている。従って、時間に依存する格子構造の並べ替えの原理は、特にこれらのバタフライを使用することにより理解され得る。
【0041】
図3に示す格子の各線は、メモリ3のメモリアドレスに相当するため、例えば、状態番号2、番号4、番号1及び番号2に対するパス・メトリックは、連続して一つの且つ同一のメモリアドレス(図3に示す格子図における第3の線)に書き込まれる。Mtの反復の後(図示の例では、Mt=3の反復の後)、元の状態シーケンスが再び得られる。
【0042】
前述したTVTのアプローチは、メモリ3におけるパス・メトリックの好ましくない上書きを防止する。しかしながら、バタフライ構造に基づくパス・メトリックの計算をACSユニット2によって可能にするべく、2つのパス・メトリックを同時に読み書きしなければならず、メモリも同様に細分しなければならないという問題が残っている。しかしながら、TVTアプローチにとって、これは実行できないことを示すことができる。
【0043】
従って、バタフライ構造を十分に機能させるアプローチを与えるには、TVTアプローチを更に開発しなければならない。前記バタフライ構造を十分に機能させるアプローチは、以下に図1及び図2を参照して説明するように、「バタフライ指向時間可変格子(butterfly oriented time varying trellis)」(BFTVT)として表すことができる。
【0044】
前述したTVTアプローチに本質的に関連した問題は、ACSユニット2によって計算される、バタフライの目的状態のパス・メトリックが、更なるバタフライに対する開始パス・メトリックを同時に構成しないということである。これらの事実を明確にするため、バタフライの開始及び目的パス・メトリック対は、それぞれ以下の形式[St (u)、St (l)]及び[St+1 (u)、St+1 (l)]で表される。結果的に、図3に示す格子の個々のバタフライに対して(反復1)、以下の状態遷移に帰着する。
【0045】
[0、4]→[0、1]
[1、5]→[2、3]
[2、6]→[4、5]
[3、7]→[6、7]
【0046】
例えば、開始状態[0、4]を有するバタフライの目的状態[0、1]は、反復2の共通のバタフライに対する開始状態を同時に構成しないことは明らかである。従って、各バタフライの開始及び目的パス・メトリックを共通のメモリワードの形態で記憶することは意味をなさない。
【0047】
しかしながら、一方、例えば、開始状態[0、4]及び[2、6]を有する2つのバタフライの目的状態[0、1]及び[4、5]は、開始状態[0、4]及び[1、5]を有する格子図における後続するバタフライに対して、開始状態として同時に利用し得るということが明らかである。目的状態に対して決定されるパス・メトリックが同様に並び替えられた場合、バタフライ対の目的状態のパス・メトリックが他の2つのバタフライに対する開始パス・メトリックとして同時に利用できるように、全ての2MT−1バタフライは対に結合することができるということが理解できる。
【0048】
このアプローチを図1に示す。メモリ3の各メモリワードのワード幅は、従来技術と比較して2倍であるため、メモリワード当たり少なくとも2つのパス・メトリックの対において、2つのバタフライの目的状態の結果又はパス・メトリックを記憶することが可能になる。特に、メモリのサイズは、使用するプロセッサ・エレメントの数に依存せず、単に書き込み/読み出し操作の数が変化するのみである。
【0049】
図1において、各円は、S(u)/S(l)の形式における対応するバタフライの2つの開始状態又はその開始パス・メトリックに相当する。個々のバタフライを対に結合することにより、図1に示す上位のバタフライ格子構造が生成される。図1に示す格子は、対に結合された元のバタフライの目的状態のパス・メトリックが、後続するバタフライに対する開始パス・メトリックとして使用できることを意味する。このように、図1は、例えば、破線によって示された上位のバタフライが、前述したように、開始状態[0、4]及び[2、6]、並びに目的状態[0、1]及び[4、5]をそれぞれ有する元のバタフライを結合し、結果として得られる目的状態を[0、4]及び[1、5]の対に並び替えることを示している。これにより、これらの並び替えられた目的状態の対は、後続するバタフライに対する開始状態として同時に機能し得る(図6のバタフライ構造を参照すれば、開始状態[0、4]及び[1、5]がそれぞれバタフライに割り当てられていることが明らかである)。
【0050】
さらに、このようにして得られた上位の格子構造は、TVT構造の形式である図3に類似した構成である。結果的に、図1に示す格子の各線は、メモリ3のメモリアドレスに相当する。従って、例えば、図示された格子の第2の線に関し、状態対[1、5]、[2、6]及び再び[1、5]のパス・メトリックが、一つで且つ同じメモリアドレス下に連続して記憶される。
【0051】
図1から推測できるように、格子の寸法は、個々のバタフライを二つ一組にした組み合わせにより、図3と比較して2MT−1状態に削減される。従って、元の状態シーケンスが回復する前に必要な反復の数もまた同様に、図3と比較して値1に削減される。この結果、メモリ3に対するアドレス・ジェネレーションに関するアドレッシングの複雑さもまた同様に削減される。
【0052】
バタフライの全ての状態は、当該バタフライの上位の開始状態S(u)から引き出され得ることを前述した。図1に示すパス・メトリック対に対する各好適なメモリアドレスは、カウンタを使用することにより、このように比較的簡単な方法で決定することができる。この場合、前記カウンタの読み値Cは、[0...NTS/2−1]の間で変化し、関数fS(u)(C)を用い、それに依存する方法で、瞬間的なカウンタ読み値Cにそれぞれ相当するバタフライ対の上位の状態S(u)が決定される。次に、アドレッシング関数faddr(S(u)、I)を用い、決定された上位の状態S(u)及び現在の各反復番号Iに依存する方法で、好適なメモリアドレスが決定される。複数のプロセッサ・エレメントのパス・メトリックが結合される場合、カウンタのカウンタ読み値は、
【式1】
の間で変化しなければならない。ここで、NPEはプロセッサ・エレメントの数に相当し、ld(X)は式log2(X)に相当する。
【0053】
関数関数fS(u)(C)は非線形である。この関数は、図2に示すように、単純なビット・マッピングの形態で実現可能である。図2において、MSBは最も重要なビットを示し、LSBは最も重要でないビットを示す。
【0054】
アドレッシング関数faddr(S(u)、I)は、フィードフォワード格子コーダの特性に基づき、以下の関係によって説明することができる。
【式2】
この場合、ADDRは、各パス・メトリック対に対するS(u)、Mt及びIの関数として決定されるメモリアドレスを示し、ここにIε[0...Mt−1]である。このアドレッシング関数は、生じ得るオーバフローを考慮に入れることなく、単に表された第1及び第2の期間の(MT−1)ビットに相当するに過ぎないため、容易に実施することが可能である。表された式内の全ての乗算は、単純なビット・シフティング操作によって実現することが可能である。
【0055】
本発明が複数のプロセッサ・エレメントに適用される場合、アドレッシング関数faddr(S(u)、I)は、以下の関係で説明することができる。
【式3】
本発明について、フィードフォワード・コード、例えばSDSLコードの使用に関して上記のように説明した。しかしながら、本発明は、フィードバック・コードに同様にして適用可能である。フィードバック・コードに対するViterbiデコーダの格子構造は、フィードフォワード・コードに対するものと著しく異なるが、それでもなお、フィードバック・コードの場合も、格子バタフライは、対応する目的状態のパス・メトリックが、格子図における2つの後続するバタフライに対して開始パス・メトリックを同時に構成するように、対に結合され得る。フィードフォワード・コードと対照的に、元の状態シーケンスが格子図において再び発生する前に必要である反復の数は、値MTに直接的には依存しない。フィードバック・コードに対しても、フィードフォワード・コードに対して上述した手順に類似した方法で、fS(u)(C)及びfaddr(S(u)、I)に相当する表現が決定され得る。しかしながら、この時点で、その派生は省かれる。
【図面の簡単な説明】
【図1】図1は、8つの状態を備えた格子に基づくSDSL・Viterbiデコーダに対して、本発明の基礎となる原理を説明する図である。
【図2】図2は、カウンタの読み値に依存する方法で、本発明の好適な実施形態に関し、且つ、個々のパス・メトリックをACSユニットのメモリの異なるメモリアドレス上にマッピングするのに重要な状態を決定するのに使用可能な関数を説明する図である。
【図3】図3は、本発明に係る方法が開発されて後続する方法を説明する図である。
【図4】図4は、バタフライ構造及び4つの状態を有する格子図の例を示す。
【図5】図5は、Viterbiデコーダの一般的構成を示す。
【図6】図6は、従来技術に関連する問題を説明するためのバタフライ構造を有する格子図である。
Claims (7)
- Viterbiデコーダにおけるパス・メトリックの記憶方法であって、
前記パス・メトリックは、Viterbiデコーダに割り当てられた格子図を使用して決定され、前記Viterbiデコーダにおいて、特定の時間ステップ(t+1)の2つの目的状態が、先行する時間ステップ(t)の2つの開始状態によって、バタフライ構造をその都度形成し、前記バタフライ構造により、特定の時間ステップ(t+1)の対応する2つの目的状態が、それぞれ状態遷移枝によって、先行する時間ステップ(t)の2つの開始状態に接続され、各時間ステップ(t+1)に対して、各目的状態のパス・メトリック(γt+1)が、それぞれ目的状態を有するバタフライ構造を形成し先行する時間ステップ(t)の開始状態のパス・メトリック(γt)の関数として決定され、この目的のため、対応する2つの開始状態のパス・メトリック(γt)がメモリ手段(3)から読み出され、時間ステップ(t+1)の各目的状態のパス・メトリック(γt+1)が、その関数として決定され、各目的状態のパス・メトリック(γt+1)がメモリ手段(3)に記憶され、
時間ステップ(t)の各バタフライ構造対に対して、格子図における2つのバタフライ構造の目的状態が、後続する時間ステップ(t+1)の2つのバタフライ構造に対する開始状態を同時に形成するように、各時間ステップ(t)の格子図のバタフライ構造が少なくとも対として結合され、
バタフライ構造対の2つのバタフライ構造の目的状態のパス・メトリックを決定した後、後続する時間ステップ(t+1)のバタフライ構造の開始状態を同時に形成する、このバタフライ構造対のそれら2つの目的状態のパス・メトリックが、共通のメモリワードの形態でその都度メモリ手段(3)に記憶されることを特徴とする方法。 - 同じバタフライ構造に属する時間ステップ(t)のそれら2つの開始状態のパス・メトリックが、共通のメモリワードの形態でその都度メモリ手段(3)に記憶され、
バタフライ構造対の2つのバタフライ構造の目的状態のパス・メトリックを決定した後、後続する時間ステップ(t+1)のバタフライ構造の開始状態を同時に形成する、このバタフライ構造対のそれら2つの目的状態のパス・メトリックが、これら2つの目的状態のうち1つでバタフライ構造を形成する2つの開始状態のパス・メトリックとして、同じアドレス下にその都度メモリ手段(3)に記憶されることを特徴とする請求項1に記載の方法。 - 各目的状態のパス・メトリック(γt+1)が、対応するバタフライ構造の2つの開始状態のパス・メトリック(γt)と、バタフライ構造の2つの状態遷移枝に割り当てられた枝メトリック(λt)の関数として決定されることを特徴とする請求項1又は2に記載の方法。
- 第1の開始状態を第1の目的状態に接続する状態遷移枝と、第2の開始状態を第2の目的状態に接続する状態遷移枝とに対する第1の枝メトリックが同一の大きさであり、第1の開始状態を第2の目的状態に接続する状態遷移枝と、第2の開始状態を第1の目的状態に接続する状態遷移枝とに対する第2の枝メトリックが同一の大きさであることを特徴とする請求項3に記載の方法。
- 前記方法は、フィードフォワード・コードを用いてコード化された信号を復号するために使用されることを特徴とする請求項1から4のいずれかに記載の方法。
- 前記方法は、SDSLコード化された信号を復号するために使用されることを特徴とする請求項5に記載の方法。
- 前記方法は、フィードバック・コードを用いてコード化された信号を復号するために使用されることを特徴とする請求項1から4のいずれかに記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10010238A DE10010238C2 (de) | 2000-03-02 | 2000-03-02 | Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer |
DE10010238.7 | 2000-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001313572A JP2001313572A (ja) | 2001-11-09 |
JP3550369B2 true JP3550369B2 (ja) | 2004-08-04 |
Family
ID=7633279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001058766A Expired - Fee Related JP3550369B2 (ja) | 2000-03-02 | 2001-03-02 | Viterbiデコーダにおけるパス・メトリックの記憶方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7062701B2 (ja) |
EP (1) | EP1130788A3 (ja) |
JP (1) | JP3550369B2 (ja) |
KR (1) | KR20010087298A (ja) |
CN (1) | CN1165193C (ja) |
DE (1) | DE10010238C2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757864B1 (en) | 2000-04-06 | 2004-06-29 | Qualcomm, Incorporated | Method and apparatus for efficiently reading and storing state metrics in memory for high-speed ACS viterbi decoder implementations |
US6848074B2 (en) | 2001-06-21 | 2005-01-25 | Arc International | Method and apparatus for implementing a single cycle operation in a data processing system |
US7450631B2 (en) * | 2001-10-26 | 2008-11-11 | Intel Corporation | Metric correction for multi user detection, for long codes DS-CDMA |
US6910177B2 (en) * | 2001-12-21 | 2005-06-21 | Texas Instruments Incorporated | Viterbi decoder using restructured trellis |
US20080109709A1 (en) * | 2003-08-19 | 2008-05-08 | Chao Cheng | Hardware-Efficient, Low-Latency Architectures for High Throughput Viterbi Decoders |
KR101127333B1 (ko) * | 2007-10-26 | 2012-03-29 | 콸콤 인코포레이티드 | 최적화된 비터비 디코더 및 gnss 수신기 |
JP5196567B2 (ja) * | 2008-12-02 | 2013-05-15 | 日本電気株式会社 | 演算装置、復号化装置およびメモリ制御方法ならびにプログラム |
WO2014041401A1 (en) * | 2012-09-14 | 2014-03-20 | Freescale Semiconductor, Inc. | Viterbi decoding device and method for decoding a signal produced by a convolutional encoder |
WO2016151868A1 (en) * | 2015-03-23 | 2016-09-29 | Nec Corporation | Information processing apparatus, information processing method, and program |
CN105610550B (zh) * | 2016-02-05 | 2016-11-30 | 南京飞腾电子科技有限公司 | 一种用于电力线载波通信的Viterbi译码方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979175A (en) | 1988-07-05 | 1990-12-18 | Motorola, Inc. | State metric memory arrangement for a viterbi decoder |
US5416787A (en) | 1991-07-30 | 1995-05-16 | Kabushiki Kaisha Toshiba | Method and apparatus for encoding and decoding convolutional codes |
US5327440A (en) * | 1991-10-15 | 1994-07-05 | International Business Machines Corporation | Viterbi trellis coding methods and apparatus for a direct access storage device |
US5539757A (en) | 1993-12-22 | 1996-07-23 | At&T Corp. | Error correction systems with modified Viterbi decoding |
JPH07336239A (ja) | 1994-06-07 | 1995-12-22 | Japan Radio Co Ltd | ビタビ復号器 |
US5619514A (en) | 1994-12-29 | 1997-04-08 | Lucent Technologies Inc. | In-place present state/next state registers |
US6148431A (en) | 1998-03-26 | 2000-11-14 | Lucent Technologies Inc. | Add compare select circuit and method implementing a viterbi algorithm |
WO2000008768A1 (en) * | 1998-08-04 | 2000-02-17 | Qualcomm Incorporated | Viterbi decoder with reduced size path metric memory |
JP4331371B2 (ja) | 1999-01-29 | 2009-09-16 | テキサス インスツルメンツ インコーポレイテツド | 無線応用のためのフレキシブルなビタビ・デコーダ |
EP1024604A3 (en) | 1999-01-29 | 2000-12-13 | Texas Instruments Incorporated | Flexible viterbi decoder for wireless applications |
US6438181B1 (en) * | 1999-05-28 | 2002-08-20 | Koninklijke Philips Electronics N.V. | Efficient metric memory configuration for a Viterbi decoder |
AU5032299A (en) * | 1999-07-06 | 2001-01-22 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Viterbi decoder |
JP2001058766A (ja) | 1999-08-19 | 2001-03-06 | Hitachi Building Systems Co Ltd | エレベータの映像装置 |
US6622283B1 (en) * | 2000-01-28 | 2003-09-16 | Nec Electronics, Inc. | Digital signal processor decoding of convolutionally encoded symbols |
-
2000
- 2000-03-02 DE DE10010238A patent/DE10010238C2/de not_active Expired - Fee Related
-
2001
- 2001-03-02 KR KR1020010010906A patent/KR20010087298A/ko not_active Application Discontinuation
- 2001-03-02 US US09/798,263 patent/US7062701B2/en not_active Expired - Fee Related
- 2001-03-02 CN CNB011093749A patent/CN1165193C/zh not_active Expired - Fee Related
- 2001-03-02 EP EP01105112A patent/EP1130788A3/de not_active Withdrawn
- 2001-03-02 JP JP2001058766A patent/JP3550369B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1165193C (zh) | 2004-09-01 |
DE10010238A1 (de) | 2001-09-27 |
KR20010087298A (ko) | 2001-09-15 |
US20010037486A1 (en) | 2001-11-01 |
JP2001313572A (ja) | 2001-11-09 |
DE10010238C2 (de) | 2003-12-18 |
CN1311620A (zh) | 2001-09-05 |
EP1130788A3 (de) | 2003-11-05 |
US7062701B2 (en) | 2006-06-13 |
EP1130788A2 (de) | 2001-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5537444A (en) | Extended list output and soft symbol output viterbi algorithms | |
US5802116A (en) | Soft decision Viterbi decoding with large constraint lengths | |
EP1102408B1 (en) | Viterbi decoder | |
US7765459B2 (en) | Viterbi decoder and viterbi decoding method | |
JP3550369B2 (ja) | Viterbiデコーダにおけるパス・メトリックの記憶方法 | |
KR100779782B1 (ko) | 비터비 디코더 용 고속 acs 유닛 | |
KR19990063226A (ko) | 비터비 디코딩 장치 및 비터비 디코딩 방법 | |
JP3281868B2 (ja) | ビタビ復号方法 | |
JP2007510337A (ja) | 移動通信システムのビタビ/ターボ統合デコーダ | |
US6272661B1 (en) | Minimum memory implementation of high speed viterbi decoder | |
JP2000068861A (ja) | ビタビデコ―ダおよびビタビデコ―ディング方法 | |
CN100499379C (zh) | 一种卷积码译码方法 | |
JP4580927B2 (ja) | ビタビ復号装置、およびビタビ復号方法 | |
US8489972B2 (en) | Decoding method and decoding device | |
WO2007021057A1 (en) | Viterbi decoder and method thereof | |
JPH09232971A (ja) | ビタビ復号方法及びビタビ復号回路 | |
JPH09238086A (ja) | ビタビデコーダの論理ブロック | |
KR100262303B1 (ko) | 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치 | |
US20020099998A1 (en) | Method and arrangement for decoding convolutionally encoded code word | |
JP4295871B2 (ja) | 誤り訂正復号器 | |
JP3235333B2 (ja) | ビタビ復号方法およびビタビ復号化装置 | |
JP3837913B2 (ja) | ビタビ復号器 | |
EP2361458A1 (en) | Decoding method and decoding device | |
JP2002198827A (ja) | 最尤復号方法及び最尤復号器 | |
Hu et al. | A Viterbi decoder memory management system using forward traceback and all-path traceback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040423 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040706 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040707 |
|
LAPS | Cancellation because of no payment of annual fees |