JP4331371B2 - 無線応用のためのフレキシブルなビタビ・デコーダ - Google Patents
無線応用のためのフレキシブルなビタビ・デコーダ Download PDFInfo
- Publication number
- JP4331371B2 JP4331371B2 JP2000057869A JP2000057869A JP4331371B2 JP 4331371 B2 JP4331371 B2 JP 4331371B2 JP 2000057869 A JP2000057869 A JP 2000057869A JP 2000057869 A JP2000057869 A JP 2000057869A JP 4331371 B2 JP4331371 B2 JP 4331371B2
- Authority
- JP
- Japan
- Prior art keywords
- acs
- state
- traceback
- stage
- metric
- 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
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、一般的には、ビタビ・デコーディング・システムに関し、詳細には、無線およびその他のタイプの通信応用のためのコンボルーション・コードについての(ビタビ・アルゴリズムに基づく)フレキシブルで高速かつ低電力のデコーディングを提供するシステムおよび方法に関する。
【0002】
【従来の技術】
最近の社会は、無線通信の劇的な増大を目にしている。無線技術(例えば、衛星,マイクロ波)は、セルラおよび他の通信に対する必要性が絶えず増大するようなシステムを提供している。増大しかつ信頼性のある通信能力に対する要求を満足するために、よりフレキシブルでパワーがあり効率的なシステムが必要である。特に、増大する無線通信に対する社会のニーズを満たすため、順方向エラー訂正(forward error correction)システムを改善しなければならない。
【0003】
順方向エラー訂正システムは、今日の通信システムの多くにおいては必要なコンポーネントである。これらシステムは、一般には、無線データの送信および受信の間に発生することのあるエラーを実質的に訂正することによって通信システムに対しロバスト性を付加するものである。このことは、電力および/または帯域幅が制限されたシステムに対しては特に当てはまる。しばしば、そのような順方向エラー訂正システムでは、コンボルーション・コーディングが鍵となる部分となる。一般に、コンボルーション・コーディング・システムは、冗長データを無線データ送信に導入し、それによって、送信内に発生するランダム・エラーが訂正される高い可能性をもつようにする。その結果、デコーディング・システム(例えば、ビタビ・デコーダ)を適所に設けることによって、その送信データを受信したときにコンボルーション・コーディングされたデータをデコードし、それにより、実際のデータ送信を再構成できるようにしなければならない。
【0004】
従来技術の図1を参照すると、無線通信システム10は、従来の無線システムに提示されたある特定の問題を示している。送信機20は、通信信号24を衛星システム30に向けている。衛星システム30は、通信信号24を受信したとき、通信信号24aを地上の基地局32に向け、ここで、その信号を意図された宛先に対して処理する。通信信号24および通信信号24aの送信中においてはいつでも、ノイズ34が伝送の一部分を破壊して(エラーを生じさせ)、これにより、基地局32において適正でない信号受信を生じさせるおそれがある。エラー訂正システムが設けられていないならば、その信号は、基地局32において適正に受信されるためには、おそらくその再送信を行わなければならなくなる。このため、非効率およびコスト上昇が生じるおそれが高い。
【0005】
図2は、ノイズの存在に拘わらず送信信号が適正に通信される確率を増大させるためにコンボルーション・エンコーディングおよびビタビ・デコーディングを用いている従来技術のエラー訂正システム40を示している。入力データ42(例えば、オーディオ,ビデオ,コンピュータのデータ)は、コンボルーション・エンコーダ44に入力される。エンコードされたデータは、1シーケンスのデータ・ビット46(エンコード符号とも呼ぶ)として提供され、これは、実際のデータと冗長的に付加されたデータとからなり、通信リンク48を介して送信する。通信リンク48はノイズをそのデータ送信に導入することがあり、したがって、送信データ・ビット46は、それらの宛先に達するときまでに破壊されることがある。各受信(破壊されている可能性のある)データ・ビット46aは、ビタビ・デコーダ50によって処理されてデコード出力データ52を提供する。(1967年にアンドリュー・ビタビによって最初に提案されたビタビ・アルゴリズムに基づく)ビタビ・デコーダ50は、ノイズが送信(コンボルーション処理された)データ46のいくつかに影響を与えたとしても元々送信された入力データ42を高い確率で判定することができるデコーディング・システムを提供する。一般には、入力データ42は、コンボルーション処理されたエンコード・データ46aから得た入力データ42に対する最尤シーケンスを計算することによって、判定することができる。
【0006】
コンボルーション・エンコーディングは、入力データ・ビット42をエンコーダを介して1つ以上の前の入力ビット42とコンボルーション処理(冗長的に加算)することによって、実行される。コンボルーション・レート1/2で抑制長9のコンボルーション・エンコーダ44の一例が、従来技術の図3に示されている。入力ビット42は、種々の位置において出力X0〜X8を供給するシフトレジスタ44aのような一連の遅延素子60に入力される。これら出力X0〜X8は、XOR関数62a,62bによって組み合わされて、エンコード符号セットG0,G1を発生する。XOR関数62a,62bに接続(タップ)された出力X0〜X8は、所与の入力データ・シーケンス42に対してG0およびG1の出力コード・シーケンスを決定する。この入力−出力関係は、エンコーダ出力G0,G1に対しコード多項式で記述することができる。例えば、図3に示したエンコーダ44に対しては、コード多項式は次の通りに与えられる。
【0007】
G0=X0+X1+X3+X6+X8=1+X1+X3+X6+X8
G1=X0+X2+X3+X7+X8=1+X2+X3+X7+X8
注)TMS320C54xファミリのビタビ・デコーディング技術,1996年,テキサス・インスツルメンツ・アプリケーション・レポートSPRA071は、コンボルーション・エンコーダおよびそのコード多項式に関する更なる詳細を示しており、また、この言及により本文に援用される。
【0008】
図示のように、図3のエンコーダ44は、すべての入力ビット42に対してエンコード符号セットG0,G1を発生する。このようにして、エンコーダは、1/2のレート(1入力/2出力)を有する。抑制長(K)は、遅延素子60の数の関数である、エンコーダによって用いられる組合せの全スパンを表す。抑制長K=9は、2(9-1)=256のエンコーダ状態(第9ビットが入力ビット)があることを意味する。これら状態は、状態S0(2進数“00000000”)から状態S255(2進数“11111111”)で表される。
【0009】
コンボルーション・エンコード・データは、ビタビ・アルゴリズムに従ってデコードすることができる。ビタビ・アルゴリズムの基本は、過去の入力データ42に対する所与のデータ状態の依存性に基づいて1つの所与の状態から次の状態への可能なエンコーダ44出力状態遷移についての知識を用いる(例えば、エンコーダを模擬する)ことによって、コンボルーション・エンコード・データをデコードすることである。許容可能な状態遷移は、代表的には、入力データ42のエンコーディング・プロセスに基づいて受信データ・シーケンスに対する可能な状態経路を提供するトレリス図(コンボルーション状態図に類似)で表される。トレリス構造は、上述のコンボルーション・エンコーダ44の構造全体およびコード多項式コンフィギュレーションによって決まる。ビタビ・アルゴリズムは、送信エンコーダ44出力シーケンスをデコーダにおける受信データ・シーケンスと一致させる最高の確率をもつものにその経路を限定することによって、トレリスを通る状態経路の数を最小にする方法を提供する。
【0010】
図4は、トレリス66の一部分の例示であり、基本的なビタビ・アルゴリズム・バタフライ計算を示している。現在状態ノード68a,68bから次状態ノード68c,68dへの4つの可能なエンコーダ遷移70a〜70dが示されている。図示のように、2つの遷移経路(ブランチ)は、各現在状態ノード68a,68bから各次状態ノード68c,68dへと存在する。ビタビ・アルゴリズムは、2つの可能な遷移経路のうちの最も可能性のあるものが判定されたのちに“生存者”経路の一部分として選択されるプロセスを提供する。例えば、ブランチ70a,70bは、次状態ノード68cへの2つの可能な遷移経路を提供する。同様に、ブランチ70c,70dは、次状態ノード68dへの2つの可能な遷移経路を提供する。遷移経路70a〜70dは、入力ビット42によって指示されるようにコンボルーション・エンコーダ44によって発生される次の最尤状態への可能な方向を提供する。一旦(複数のバタフライ・ステージを通して)1つのシーケンスの生存者経路が判定されると、コンボルーション・エンコーダ44への最も可能性のあるデータ入力シーケンス42を再構成することができ、これにより、コンボルーション・エンコーディング・データがデコードされる。
【0011】
デコーダ動作は、一般には、ブランチ・メトリック計算と、加算/比較/選択(ACS)処理と、トレースバック処理とを含む。ブランチ・メトリック計算は、現在状態から次状態への所与の遷移経路が正しいことの可能性の尺度を提供する。ブランチ・メトリック計算では、受信データ値、代表的には入力信号の電圧または電流の大きさを表す8ビットまたは16ビットのデジタル値が処理されて、現在状態から次状態への状態遷移から生ずる、受信データ値とノイズによって破壊されていないすべての可能な実際のデータ値との間のユークリッド距離または等価距離(更なる詳細については上記TIの文献を参照)を判定する。
【0012】
このため、抑制長Kをもつレート1/Rのコンボルーション・デコーダからのデータ信号をデコードすることは、このデコーダに入力された各エンコード符号に対し全部で2Rブランチ・メトリック値を判定する必要がある。記述したように、2Rブランチ・メトリック値の組は、1つの特定の受信入力符号に対する完全なブランチ・メトリック組として定められる。
【0013】
次のデコーダ・ステップでは、すべての可能な状態遷移に対する先に計算されたブランチ・メトリック値が処理され、次状態への経路の各々に対する“累積距離”を判定する。実現例に依存して最小または最大の距離(すなわち、最大の確率)をもつ経路が、生存者経路として選択される。これは、加算/比較/選択またはACS処理として知られている。ACS処理は、2つの基本処理に分解できる。加算処理すなわち経路メトリック計算と、比較/選択処理とである。経路メトリック加算処理は、受信データ入力シーケンスに対するブランチ・メトリック値をもつ(ビタビ処理の開始時にユーザが初期化し、状態から状態へと前方に運ばれる)現在状態値の累積である。比較/選択処理は、加算処理からの2つの値を計算し比較して、その最小値(または、実現例に依存して最大値)を判定し、1つ以上の“トレースバック・ビット”を記憶してその選択され生存者経路を指示する。
【0014】
最後のデコーディング・ステップは、トレースバック処理である。このステップは、最初の2つのステップによって判定されたように、状態遷移のトレリスを通る最尤経路をトレースし、トレリスを通る最も可能性のある経路を再構成して、エンコーダ44に入力された元データを抽出する。
【0015】
【発明が解決しようとする課題】
従来は、デジタル信号プロセッサ(DSP)を用いることにより、種々のビタビ・デコーディング応用を取り扱っている。多くのDSPは、ビタビ・デコーディング・アルゴリズムのために特に設計された特別の命令を有している。例えば、今日のセルラ電話応用の多くはDSP解決法を含む。しかし、上述のコード(K=9)のようなコードを高いデータ・レート(384kbits/sec〜2Mbits/sec)とともに用いると、高い計算レートが一般に必要とされる。これは、毎秒当たり49×106から256×106のビタビACS処理を必要とすることがある。これらの計算処理は、例えば多数のボイス/データ・チャンネルがセルラ基地局のDSPによって処理される場合には、その何倍にも増大する。このため、ビタビ・デコーディングは、DSPの計算帯域幅の大部分を消費することがある。この結果、増大する計算要求を満たすために、より高い性能のシステムが必要である。
【0016】
従来のデコーディング・システムが直面する別の問題は、種々の形態のコンボルーション・コードをデコードする必要性である。多くのデコーディング・システムは、ある特定のタイプのコンボルーション・コードを処理するようにハードワイヤ接続されているかハード・コード化されている。例えば、上述の抑制長Kは、1つのエンコーディング・システムから次のエンコーディング・システムへと変化することがある(例えば、K=9,8,7,6,5など)。また、上記のコード多項式は、たとえ抑制長が変化しないままであったとしても、システムからシステムへと変化することがある。ハードワイヤ接続されたまたはハード・コード化されたデコーディング・システムは、これらの異なるエンコーディング要求に応えるためには、再設計する必要がある。種々の他のパラメータも、エンコーディング/デコーディング・プロセスにおいて変化させる必要が生ずることがある。したがって、デコーディング・システムが種々の形態のエンコード・データの処理において高度のフレキシビリティを提供することが望ましい。
【0017】
従来のデコーディング・システムが直面するさらに別の問題は、増大された電力要求である。データがより高いレートでデコードされるにつれて、デコーディング・システムの計算要求は、しばしば、デコーダ(例えば、DSP,処理システム)の電力要求を増大させる。多くの従来のシステムは、デコーディング処理中に広範なレジスタおよびメモリ・アクセスを必要とする。これは、一般に、デコーダで消費される電力を増大させ、また、デコーダ性能(例えば、速度,信頼性)を一般に低下させる。
【0018】
したがって、従来のデコーディング・システムに関連した上述の問題に鑑み、増大されたデコーディング性能および低い電力要求で高度のフレキシビリティを提供するビタビ・デコーディング・システムおよび方法を有することが望ましい。
【0019】
【課題を解決するための手段】
本発明は、プログラマブルDSPシステム内で動作することができ、また、フレキシビリティ,低電力および高データ・スループット・レートを提供する、無線または他のタイプの応用のためのビタビ・デコーダ用のVLSIアーキテクチャに向けられたものである。このアーキテクチャは、セルラ基地局およびモバイル・ハンドセットを含む多数の応用領域のためのコスト効果のある解決法を提供することを意図されている。
【0020】
本デコーダは、好ましくは、レート1/nで抑制長K=9(256状態)以下の複数の共通の線形コンボルーション・コードに対して動作し、K=9の場合には2.5Mbpsの実質的に高いスループット・レートが可能である。特に、高データ・スループット・レートは、いくつかのトレリス・ステージに渡って同時に動作するカスケード形ACSシステムによって達成される。さらに、カスケード形ACSは、ACS処理の間に部分プレトレースバック処理を多数のトレリス・ステージに渡って実行する。これは、デコードされた出力ビットを検索する最終のトレースバック処理の複雑さを減少させることによって、また、これに関連したメモリ・アクセスの数を実質的に減少させることによって、システム・スループットを増大させる。
【0021】
この高いデータ・スループット・レートは、デコーダが次世代セルラ基地局用の実質的に数百のボイス・チャンネルを取り扱うことができるようにする。これは、システムが必要とするDSPプロセッサの数を大いに減少させ、純粋なDSPベース・システムのシステム・コストを低下させるのに有望である。これらのタイプのデータ・レートおよびコードは、衛星通信からセルラ電話までの種々の無線用途において広範囲に用いられる。
【0022】
特定のエンコーディング用途間およびビタビ・デコーディング問題の正確な構造に関するいくつかのデコーディング用途内には変動があるため、デコーディング・アーキテクチャにおけるフレキシビリティを提供する。特に、上記のカスケード形ACSシステムは、K=9に対してトレリスの多数のステージに渡って動作することによって、可変抑制長コードに対して動作するように構成することができる。これは、状態メトリック・メモリとともにサブトレリス・アーキテクチャに対して動作することによって達成される。K<9の場合に対しては、特定のACSステージは選択的にバイパスされる。
【0023】
本発明は、高度のフレキシビリティを組み込むことにより、デコーダを多くの変動する状況において用いることができるようにする。デコーダのフレキシビリティは、可変の抑制長と、ユーザ供給の多項式コード係数と、コード・レートと、収束距離およびフレーム構造のようなトレースバック・セッティングとを含む。
【0024】
本発明のデコーダとDSPとの間の高データ・レート転送を可能にするようにメモリ・マッピングされるDSPインターフェースが設けられている。これは、DSPの処理負担を大きく低減し、よりパワフルなシステム全体を提供する。デコーダ内には、かなりのバッファ処理も提供される。本発明は、実行完了,入力バッファ・ローおよび送受ブロック転送完了のような種々のトリガ信号を含むインテリジェントなデータ転送および同期機構もサポートする。
【0025】
さらに、本発明は、高データ・レートで動作し、高エネルギー効率(すなわち、低電力)であるように設計されている。低電力動作は、レジスタ動作およびメモリ・アクセスを最小限にすることによって、また、デコーディング・プロセスの特定の態様を並列にかつストリームライン化することによって達成する。例えば、上述したACS処理は、ACS処理の間、プレトレースバック処理を実行する。さらに、トレリスの多数のステージに渡り同時に動作することによって、メモリ・アクセスが減少される。
以上の目的およびそれに関係する目的を達成するために、本発明は、以下に詳述する特徴を有する。以下の記述および添付の図面は、本発明のある一定の実施形態を詳細に示すものである。しかし、これら実施形態は代表的なものであるが、本発明の原理を用いる種々の方法のうちのいくつかに過ぎない。本発明の以下の詳細な説明を図面とともに考慮することにより、本発明の他の目的,利点および新規な特徴が明らかとなる。
【0026】
【実施の形態】
次に、本発明について、図面を参照して説明する。なお、図面では、同じ要素を参照するために、同じ参照符号を使用する。
本発明によれば、ビタビ・デコーダ110(図6)は、カスケード形ACS122(図7)を介して複数のトレリス・ステージ(図5)を同時にデコードする。これは、実質上、メモリ・アクセス・サイクルを低減し、それによって、電力要求を低下させ、かつ、システム・スループットを増大させる。カスケード形ACS処理の間、トレリスの部分的トレースバックは、固有のレジスタ交換アーキテクチャ(図8)を介してACS動作の間に同時に生じる。これもまた、電力要求を低下させ、かつ、システム・スループットを増大させる。更に、可変の抑制長コードは、カスケード形ACS122内に実装されたバイパス・システムを介して解決することができ、また、種々のエンコーディング構造をデコードするために複数のユーザ供給コード多項式を用いることができる(図9)。これは、デコーダ110にかなりの度合いのフレキシビリティを提供する。
【0027】
最初に図5を参照すると、トレリス図が、本発明の一実施形態に従って示されている。トレリスは、16の状態(K=5)を有する一個のシフトレジスタ・コードからのコンボルーション・エンコーダに対応している。この16状態は、状態インデックス0〜15(例えば、100a,100b,100c)によって表されており、状態インデックス0〜15は、コラムC1〜C5に示されており、特定の時点(例えば、1つのエンコーダ状態から次のエンコーダ状態への遷移)に対応する。コラム間の遷移は、ステージ(例えば、ステージ1,ステージ2など)とも呼ばれることがある。各ステージは、先行状態(左)から現在または次の状態(右)への左から右への入力−出力ビット・マッピングを提供し、また、1組のブランチ(例えば、102a,102b)は、ステージ間の可能なビット遷移を表している。この入力−出力(ステージからステージ)ビット・マッピングは、エンコーダ・コンフィギュレーションを記述するとともにユーザによって供給される1組のコード多項式によって提供されている。
【0028】
状態インデックスは、先行ステージからの累積状態メトリック(後で詳述)を保持するメモリ・ロケーションへのポインタとして生成される。各コラム内の各状態インデックスはこの図の右の次のステージ内の2つの他の定められた状態インデックスに遷移すること(出力を与えること)ができるだけであることに注意されたい。同様に、1つのコラムの右の1つのコラム内の各状態インデックスは、左にある定められた状態インデックスから2つの入力を受けるだけである。例えば、コラムC1内の状態8は、コラムC2,C3,C4などの各々内の状態0または状態1に遷移できるだけである。同様に、任意のコラム内の状態12は、コラムC1,C2,C3など内の状態6または状態14からの入力を受けることができるだけである。
【0029】
以下で詳細に説明するように、エンコーダへの原入力データを最終的に判定するトレリス中の1つの可能な経路は、本発明では、各状態に入る各1組のブランチに対してACS(加算/比較/選択)動作を実行することによって、判定される。1組のブランチ・メトリック(以下で詳述)は、先行ステージからの累積状態メトリック(最初は、コラムC1内の累積状態メトリックは、所望の所定の値(例えば、0の値または非常に大きな数)にリセットされることができる)に加算される(ACSの加算部分)。次に、どのブランチが次のステージに対して最も低い累積状態メトリックまたは好ましくは最も高い累積状態メトリックを発生するかに基づいて、各ACS動作から1つのブランチを選択する(ACSの比較および選択部分)。ACS動作を介して多数のステージを解決した後、選択されたブランチが、1つの全体経路に収束し始めることになる。選択されたブランチから各ステージを通る1つの経路をトレースバックすることによって(以下で詳述)、デコードされたデータを判定することができる。
【0030】
図6には、本発明によるビタビ・デコーディング・システム110のトップ・レベルの概略ブロック図が示されており、これは、一般に、2つの主要なユニットすなわち状態メトリック更新ユニット120とトレースバック・ユニット130とから成っている。状態メトリック更新ユニット120は、カスケード形ACS122と、状態メトリック・メモリ126と、トレースバック・ユニット130からブランチ・メトリック134を受信するとともにブランチ・メトリック134をACS122と同期させるブランチ・メトリック選択ユニット138とを備えている。
【0031】
カスケード形ACS122は、状態メトリック・メモリ126とともに、デコーディング・プロセスが時間で前方に進むにつれて、トレリス内の各ステージに対して、1組の累積状態メトリック(SM)125(経路メトリックとも呼ぶ)を判定する。カスケード形ACS122は、1組の入来ブランチ・メトリック134により加算,減算および比較を実行し、経路判断値124を決定する新たな状態メトリックを選択する。これは、各状態におけるメトリックを評価して、2つの入来ブランチのどちらが所望の特定のアルゴリズム実現に依存して最も小さなまたは好ましくは最も大きな次の状態メトリック125を提供するかを判定することによって、達成される。その評価は、ブランチが出た状態インデックスによってアドレスされる状態メトリック・メモリ126にブランチ・メトリック134を加算することによって、ACS122によって実行される。以下に詳細に説明するように、(好ましくは、周辺DSP140によって決定された)ブランチ・メトリック134は、デコーダへのコンボルーション処理された入力データから取得されるとともに代表的には受信側(入力)ソフト判断と既知の変調点との間の距離尺度である数の複数の組(トレリス・ステージ当たり1つの組)である。しかしながら、他の形態のブランチ・メトリック・データも用いることができ、このようなデータ形態は、本発明の範囲内に入ると考えるものである。
【0032】
好ましくは、SRAMメモリ126は、継続的に読み出され更新され書き戻されるその組の状態メトリック125を格納する。経路判断値124は、カスケード形ACS122によってトレースバック・ユニット130およびこれに関連のメモリ132に供給され、ここで、経路判断値124は、以下で詳述するように、デコードされたデータのトレースバック判定に用いられる。
【0033】
アドレス/制御ブロック136は、トレリスを通るデータを監督し、状態メトリック・メモリ126用のメモリ・アドレス指定を提供する。以下で詳述するアドレス/制御ブロック136は、ユーザ供給の抑制長に基づく状態インデックス生成を担当する。アドレス/制御ブロック136は、ブランチ・メトリック選択ユニット138で受信されたブランチ・メトリック134をACS122と同期させることも担当する。
【0034】
トレースバック・ユニット130は、本発明による他の一次ユニットであり、多数の機能を果たす。トレースバック・ユニット130は、カスケード形ACS122から受けた経路判断124を格納し、それからトレースバックを実行する。トレースバックのプロセスは、出力(デコードされた)ビットを作成し、そのデコードされた出力および入来ブランチ・メトリック134に対する記憶を提供する。トレースバック・ユニット130は、好ましくは、そのようなデータを格納する1つ以上のメモリ132を備えている。
【0035】
デコーディング・システム110の固有の特徴は、デコーディング・システム110とシステム110がサポートを提供する好ましくはDSP140との間でのデコーディング・プロセス全体の分割にある。ブランチ・メトリック計算のすべては、好ましくは、システム110の外部、好ましくはDSP140において実行される。同様に、デパンクチャ(depuncture)操作も、DSP140によって実行されるようにできる(例えば、ヌルまたは他の補償値を入力ストリームに挿入)。これは、これら機能(例えば、ブランチ・メトリック計算,デパンクチャなど)に対するより一層のユーザ制御を提供する。
【0036】
デコーダ・システム110は、動作がフレキシブルである。つまり、5から9の抑制長に対して動作することができ、4つのトレリス・ステージ上の256状態まで同時に処理することができる。システム110は、ユーザ供給コード係数の任意の組をもつレート1/2およびレート1/3の場合を処理する。また、このビット・レートは可変とすることができる(例えば、デコーダは、ビット・レートに拘わらず、固定サイズの受信データ・フレームを検出することによって、動作するようにできる)。システム110は、データの尾部(特定の状態を強制するために挿入された入力ビット)が状態ゼロへの復帰を強制したりシステムが強制状態のない継続的なデコード・モードでランするフレーム化入力データを処理する。1つのフレームの開始時に状態メトリックを有効にプリセットするためのある種のオプションも利用可能である。例えば、ユーザは、状態ゼロの初期メトリックを最も大きい値にセットするとともにその他のすべての状態を最も小さな値にセットして、そのフレームの開始時にすべてのトレースバック経路を状態ゼロに復帰することを強制したい場合がある。トレースバック・プロセスが出力ビットを発生する前に利用する収束距離(convergence distance)も、調節可能なパラメータであり、ユーザによって供給される。
【0037】
DSPインターフェース回路144は、デコーダ・システム110に対するメモリ・マッピング・インターフェースを提供する。DSPインターフェース144は、入来ブランチ・メトリックおよび出立(outgoing)デコード・ビットのブロック・データ転送を利用して動作する(バス146として示す)。これら転送は、DMA(または、その他)の周辺DSPサポートを用いて実行され得る。このため、バスが効率的に利用され、最小の相互作用がDSP140から必要とされる。
【0038】
次に、図7を参照すると、カスケード形ACS122のより詳細なブロック図を本発明に従って示されている。ACSユニット122は、(図6の状態メトリック・メモリ126からの)1組の状態メトリック125を、(集合的に134と符号された、トレースバック・メモリ132から受信される)対応する1組のブランチ・メトリック134a〜134dと一緒に処理する。これは、時間で前方にステージからステージへ累積状態メトリックとして図5に示したトレリス中を運ばれるその組の状態メトリック125を処理することによって、実現される。ACSステージ150b〜156bに対応するトレリスの各ステージでは、累積状態メトリックが、現ステージのブランチ・メトリック・データ134を利用して更新される。状態メトリック更新は、先行のトレリス状態からの2つの可能なトレリス・ブランチから最適ブランチ(識別された経路判断)を判定することによって、達成される。1つのACS処理はトレリス・ステージ当たり1つのコラム内の各ノードに対して提供されることに注意されたい。例えば、図5では、16個のACS処理がコラムC2,C3,C4,C5に対して提供され、したがって、各コラムは、図7のACSステージ150b,152b,154b,156b当たり16個のACS処理を含む。
【0039】
最適ブランチとは、最も小さいまたは好ましくは最も大きい次の状態メトリックを生ずるブランチ(識別された経路)を指し、これは、トレリス・ブランチが出てきたトレリス状態の累積状態メトリック125にブランチ・メトリック134を加算することによって、定められる。各トレリス・ブランチは、1組の可能な出力ビットに対応し、また、ブランチ・メトリックは、出力ビットから受信入力データへの距離測定値に対応している。その出力ビットは、好ましくは、送信される衛星点(constellation point)にマップされ、また、ブランチ・メトリックは、受信データと衛星点との間のユークリッド距離である。ブランチ・メトリック計算は、当該分野においてはよく知られており、これに関する更なる説明については、簡略のため省略する。
【0040】
ACSプロセスが実行されるとき、トレリスの各ステージでの各状態に対する選択されたブランチ(例えば、経路判断)が記録される。このため、各状態への最適経路(例えば、識別された経路)は、既知となる。次に、デコーダ・システム110の出力が、以上から選択されたブランチに沿って逆方向にトレリスを横切ることによって、判定される。ある一定の距離(収束距離として知られている)の後、他のトレリス状態からの識別された経路はすべて、単一の経路に収束していく可能性が高い。この収束した時点で、有効なデコード出力ビットが、以下で詳述するトレースバック・プロセスから得られる。
【0041】
図7に示すように、本発明のACSユニット122は、カスケードを形成し、ブロック間に遅延レジスタ160a〜160fおよびクロス・スイッチ162〜164のグルーピングを有する4つのACSブロック150b〜156bから成っている。各ACSブロックは、トレリスの1つのステージに対し、複数の基数(radix)2またはバタフライの加算/比較/選択処理を実行する。ACSカスケード122は、トレリスの4つのステージに対し、基数16・ACS処理を実行する。基数Nは、処理を行う対象のサブトレリスのサイズを指す。Nは、状態の数を指し、2の累乗としなければならない。以下に詳細に説明するように、図5に示したトレリスは、K=9に対しステージ当たり256までの多数の状態に、図5に示したトレリスを多数状態に対するサブトレリスとして用いることにより、適用することができる。基本カスケード構造処理については、さらに、“高速ビタビ・デコーディング用のアルゴリズムおよびアーキテクチャ(“Algorithms and Architectures for high speed Viterbi decoding”, Ph. D. Dissertation, Dept. of Electrical Engineering. Stanford University, 1993, by Peter Black)”を参照することができ、これはその全体を本言及により本文に含めるものとする。
【0042】
基数16のACSは、16状態トレリスに対し処理を行い、トレリスの4つのステージの1つの前方ステップに対し新たな状態メトリックを計算する。このカスケード実現は、各中間ステージ(ACSブロック150b〜156b内の基数2のACSユニット当たり2つの状態)に対し状態メトリックを計算して、累積された状態メトリックを受け渡すことによって、これを達成し、その際、次のカスケード・ステージへの適当な再順序付け(reorder)をする(現ステージの出力を次のステージの正しい入力にルーティングする)。ACSブロック150b〜156b間のレジスタ160a〜160fおよびクロス・スイッチ162〜166は、特定のトレリス・ステージによって定められる再順序付けを実行する。クロス・スイッチは、トレリスのどの部分に対して処理を行おうとしているかに依存して、データをそのまま通したり、そのデータを2つのバス(バスAおよびバスBとして示す)上で交換する。クロス・スイッチ・セッティングは、デコーダ110の動作中に設定レートで変化することがある。
【0043】
256状態を有するコンボルーション・コードに対する処理に関して、トレリスは、サイズ16の16個のサブトレリスのインターリーブからなると考えることができる。このため、これらサブトレリスは、シーケンシャルな形式でカスケードACSデータ経路122に1つまた1つと供給される。各サブトレリスの正しいノードは、SMメモリ126から読み出され、ACSデータ経路122に供給され、次に、その結果がSMメモリ126に記憶し戻される。すべての抑制長の場合(K=9から5)に対しては、“インプレース・スケジューリング(in-place scheduling)”が用いられ、したがって、状態メトリックの1つのみのコピーが格納される。「インプレース・スケジューリング」は、ACS計算が完了した後に、先行の状態メトリックを新たな状態メトリック結果によって上書きすることを指す。
【0044】
「インプレース・スケジューリング」が行われるトレリスをサブトレリスに分割する方法は、2つのフェーズ、すなわち、フェーズAとフェーズBとを有し、これらは、トレリス中を前方に移動するときに繰り返される。例えば、図5の16個の状態トレリスは、2つのステージに対し、サイズ4のサブトレリスに分割することができる。フェーズAは、ステージ1とステージ2とをカバーし、ここで、サブトレリスは織り交ぜられている。フェーズBは、ステージ3とステージ4とをカバーし、ここで、サブトレリスは、分離され、各1つが別のものの上に現れる。これは、メモリ・アドレスおよび状態インデックスを発生するための2つの区別できるフェーズをもたらす。
【0045】
一時にトレリスのたった1つのステージにしか処理を行うことができないより伝統的なアプローチと比べ、本発明の基数16のカスケード・アプローチは、よりエネルギー効率がよい。伝統的なアプローチは、ステージ当たり1回すべての状態メトリックの読出しおよび書込みを必要とするのに対し、本発明はこれを4ステージ当たり1回に減少する。したがって、メモリI/Oトランザクションが大きな電力を消費するため、電力の節約ができる。
【0046】
より効率的なトレースバック処理(後述)を提供するために、長さ4の部分トレースバック(partial traceback)を実現する新規な方法が、カスケードACS処理中に実施される。プレトレースバックは、部分トレースバックが経路判断情報を後のトレースバック完了のため格納する前に各トレリス状態に対して実行されることを意味する。本発明によれば、プレトレースバックを実施するのに用いられるシステムは、固有レジスタ交換(図8の170a,170b)と、ACSブロック150b〜156b間に位置する再順序付けハードウェア160a〜160f,162,163,164の拡張との組合せである。
【0047】
図8には、本発明によるプレトレースバック・システムが示されている。再順序付け構造のACSデータ経路の一部分であるレジスタ166は、(n)としてより広くして、累積するプレトレースバック経路をこれらが保持できるようにしている。レジスタ166はまた、先行のステージからの10ビットの累積状態メトリック値を提供する。ここで、どのトレリスもこの時点では解決(ACS経路判定)されていないため、図7のステージ150bの前ではnは0ビットに等しいことに留意すべきである。ステージ152bでは、1つのステージが判定(経路選択)されているため、nは1ビットに等しく、また、ステージ154bではn=2ビット、ステージ156bではn=3ビットである。各ACSブロック168a,168bの後(ACSブロックの上半部168aが上バタフライ・ノードに対する経路を判定し、ACSブロックの下半部168bが下バタフライ・ノードに対する経路を判定する)、追加の1ビットがACS処理の結果として次のステージに供給される。
【0048】
この追加ビットは、ACS処理の結果として先行ステージからどの経路が選択されていたかを示す。ビット172a,172bは、ACSブロック168a,168bから追加ビットとして供給されて、現ステージからの選択経路に添付すべき先行ステージから前方(前送(forwarding))に運ばれてきた選択経路174a〜174dを(マルチプレクサ170a,170bを介して)選択する。先行ステージからの選択されたプレトレースバック・ビット(マルチプレクサ170a,170bの出力)に現ステージからのこれら追加ビットを添付する機能は、参照符号176a,176bで示されている。次に、次のステージへのレジスタ経路は、n+1として表されて、次の連続するステージに送り出される部分プレトレースバック・ビットの累積を示す。
【0049】
部分プレトレースバックに対して上述したレジスタ交換は、カスケード形ACS122と組み合わさって、メモリ・アクセスおよび電力消費を低減するための独特のデコーディング・アーキテクチャを提供する。本発明のカスケード形ACSと関連するレジスタ交換は、トレリスの4つのステージに対する経路を判定した後にトレースバック・メモリ(後述)を更新する。これは、メモリ・アクセスを4の係数で減少させる。これは、電力消費を実質的に減少させ、また、デコーダ110の性能を実質的に増大させる。
【0050】
また、カスケード形ACS構造122は、9未満の抑制長のコード(256状態よりも少ない)を判定するのにも用いられる。種々の抑制長コンボルーション・エンコーダで動作するフレキシビリティを提供するこの特徴を実現する実施形態は、2つある。
【0051】
好ましい実施形態は、インプレース・スケジュールの方法(過去の状態メトリック判定を現ステージからの状態メトリック判定で継続的に上書きする)におけるのと同じように、トレリスのジオメトリと調和した状態に留まる。図5に示したトレリスのジオメトリは、メモリ長(K−1)に等しい距離の後に繰り返す。抑制長コードは、2つのフェーズに分割され、これは、対称的なものではないようにできるが、それら2つのフェーズの長さ(ステージの数)の和が常にメモリ長と等しくなるようにする。特に、K=8で128状態に対しては、基数16のフェーズI計算は、トレリスの4ステージで判定され、基数8のフェーズII計算は、トレリスの3ステージで判定される。同様に、K=7に対しては、フェーズIは基数16の4つのステージで計算され、フェーズIIは基数4の2つのステージで判定される。K=6に対しては、フェーズIは基数16の4つのステージで計算され、フェーズIIは基数2の1つのステージで判定される。K=5に対しては、フェーズIは基数16の4つのステージで計算され、フェーズIIは不必要である。
【0052】
例えば基数8で3ステージ状況に対してカスケードACS構造を動作させるには、第1のACSステージ150bはバイパスされ、また、メトリックは、データ経路回路160a,160b,162を流れ、第2のACSブロック152b中に効果的に供給される。同様に、基数4で2ステージの動作に関しては、データは、第3のACSブロック154bに効果的に供給される。基数2動作に関しては、データは、最後のACSブロック156bに効果的に供給される。バイパス機構は、ACSブロック内で用いることができ、累積状態メトリック・データをACSブロック中をデジタル的にルーティングするとともにどのような計算変更も受けずにハードウェアを再順序付けするための任意の周知のスイッチング・システム(例えば、バイパス用に選択されたマルチプレクサ)とすることができる。代替の実施形態では、ACSブロックとデータ経路とは、計算のために必要な第1のACSブロックの前に完全にバイパスされることもできる。例えば基数8の場合は、図7に示した回路150b,160a,160b,162をバイパスすることが必要となる。
【0053】
好ましい実施形態の利点は、状態インデックスまたはメモリ・アドレスを発生することが比較的直線的となることである。理解されるべきであるが、各抑制長の場合に対し必要な順序付けは、より一般的な順序付けアルゴリズムの場合として表現することもできる。例えば、固有のアドレス発生器は、この実施形態に対し設計することができる。代替の実施形態は、K>4と仮定したとき、トレリスの4ステージに渡って基数16動作を常に実行することにより動作する。しかし、アドレス発生は、より複雑となる。
【0054】
カスケード・データ経路内の各ACSブロック150b〜156bは、すべての状態が処理されるまで、単一のトレリス・ステージに対して動作する。これは、所与の1つのステージに対するブランチ・メトリックの組134が関連のACSブロックで使用するために状態メトリック更新ユニット120に供給されることを意味する。しかし、ACSブロックの各バタフライ動作は現データ組から特定のブランチ・メトリックを必要とし、また、特定のブランチ・メトリックは判定され選択されるべきである。このブランチ・メトリック選択は、トレリス状態インデックスとユーザ供給コード多項式とに依存する。
【0055】
本発明の好ましい実施形態は、適当なブランチ・メトリックをACSブロック150b〜156bに供給する等しいサイズで実質的に同一構造の2つの等価なハードウェア・ブロックを提供する。一方のブランチ・メトリック(BM)選択ユニット138は最初の2つのACSブロック150b,152bに作用し、また、他方のBM選択ユニット138は最後の2つのACSブロック154b,156bに作用する。
【0056】
図9は、1つのそのようなブランチ・メトリック選択ユニット138の一般的な構造を示している。各BM選択ユニット138は、トレリスに対する状態インデックスを提供する状態インデックス発生器202と、ブランチ・メトリック・インデックス・ブロック204とを含む。理解されるべきであるが、状態インデックス発生器202は、図6に示したアドレス/制御ブロック136の一部分と考えることもできる。ブランチ・メトリック・インデックス・ブロック204は、第1の組のBMインデックス206と第2の組のBMインデックス208とを各ACSブロック210,212に対し1つずつ発生する。第2組のインデックス208は、これらのインデックスをBM選択マルチプレクサ216aに(ACS計算に同期された)正確な時間で到達させる遅延レジスタのチェーン214を通して供給される。遅延214は、ACSカスケード210,212と上記関連の再順序付けハードウェアとを通る遅延に従う。
【0057】
BM選択マルチプレクサ216a,216bは、ブランチ・メトリック・インデックス・ロジック204からのインデックスを利用し、ブランチ・メトリック保持レジスタ218a,218bから、ACSステージに対するブランチ・メトリックの組から正しいBMを選択する。インデックスの1つのビット220a,220bも、ACSブロック210,212に供給され、特定のブランチ・メトリックの符号を示す。結果として、ブランチ・メトリックの半分のみが格納され転送される。理解されるべきであるが、ブランチ・メトリックをもっと格納することを必要とする他のコンボルーション・コーディング手法も用いることができ、したがって、これも本発明では考慮に入れられている。
【0058】
状態インデックス発生器(残りの1/2ブランチ・メトリック選択ユニットからの図示しない1つの発生器)は、ACSカスケード・データ経路中に供給されるトレリス状態に対する状態インデックスのシーケンスを表す同じシーケンスを生成する。第2の状態インデックス発生器(不図示)は、第1の状態インデックス発生器202に対して相対的に遅延された開始を提供して、カスケード・ステージ3,4との適正な時間整合を保証する。BMインデックス・ブロック204は、各状態インデックスをコード多項式とともに(コンボルーション・エンコーダが出力ビットを発生するのと同様の方法で)用いることにより、各ブランチ・メトリック・インデックスを発生する。
【0059】
理解されるべきであるが、状態シーケンス順序は、各ACSカスケード・ステージで異なっており、したがって、カスケード・ステージ2,3,4で追加の動作が行われなければならない。事実上、各ACSステージに対する正しい状態インデックスは、入来するインデックスから得られる。入来インデックスは、第1のカスケード・ステージ・シーケンスとして発生されるが、トレリスのジオメトリに続くカスケード構造の再順序付けに起因して所要のインデックスに直接関係している。このため、所要の次のステージのインデックスは、新たな空のスロットを満たす0および1の適当な添付を伴う入来インデックスのシフトによって得ることができる(状態メトリック・コラム・アドレス)。0および1の適当な組は、状態とトレリス内の状態インデックス位置との間の既知のトレリス接続により定まる。カウンティング機構222を用いることにより、添付ビットを提供し、いつ任意の特定のカスケード・ステージに対し異なった組のインデックスを利用するかを判定することができる。例えば、カスケード・ステージ2に対しては1ビットを添付し、ステージ3に対しては2ビットを添付し、ステージ4に対しては3ビットを添付する。
【0060】
本発明の状態インデックス発生をさらに例示するため、図5のトレリスに戻って参照して、ステージ1のものからのステージ2に対する状態インデックスをさらに詳細に説明する。トレリスのバタフライ構造のプロパティに関係して、バタフライ当たりたった1つの状態インデックスしか必要とされない。また、1つのインデックスまたはノードをある特定のステージに関して参照するとき、そのインデックスまたはノードはそのステージの左側を参照している、ということに注意されたい。
【0061】
コラムC1の下側バタフライ・インデックスは、最初は、8つのインデックスのシーケンスすなわち8,9,10,11,12,13,14,15を発生するステージ1に対し発生される。バタフライの正確な順序でステージ2に対する状態インデックスを発生することは、コラムC2のトップから始まるステージ2の最初の4つのバタフライを観察する。ここで、コラムC2のこれらのインデックスの各々のトップ・ノードは、ステージ1の最初の4つのバタフライのものであるステージ1の下側のノードに接続する。詳細には、インデックス8,9,10,11をもつバタフライである。これらインデックスを直接操作することにより、ステージ2に対する最初の4つのインデックスを以下の通り発生する。すなわち、それらのインデックスを4ビットの番号として解釈し、各インデックスを左にシフトし、その最上位ビットを落とし、最下位ビットを“0”とする。これは、これらノードのいずれかにありかつ入力ビットに対し“0”が与えられたときに、コンボルーション・エンコーダのアクションを模倣する。その結果生じる4つのインデックスは、コラムC2の0,2,4,6である。したがって、ステージ2の最初の4つのバタフライに対するインデックスがトップ・ノードに対して発生される。
【0062】
次に、図5のステージ2の最後の4つのバタフライを参照すると、ボトム・ノードは、ステージ1の最後の4つのバタフライのボトム・ノードに接続している。このため、ステージ1からのインデックス12,13,14,15は左にシフトされ、その最上位ビットが落とされ、その最下位ビットが“1”にセットされる。これは、コンボルーション・エンコーダを模倣しかつ入力ビットが“1”に等しいとみなすことにより、コラムC2のインデックス9,11,13,15を発生する。同じプロセスは、ステージ3およびステージ4に対し繰り返すことができる。添付ビット(上記の最下位ビット)は、セットされたパターンに続くことを示すことができる。詳細には、トップからボトムまでのカウンティング・パターンである。上記の例では、そのパターンは、4つの連続したバタフライの各々に対して、“0”そして次に“1”である。次のステージに対しては、このパターンは、2つの連続したバタフライの各々に対して、“00”,“01”,“10”,“11”となる。
【0063】
ブランチ・メトリック状態インデックスを発生することは、例えば図3に示したコンボルーション・エンコーダ44の所与の状態に対して1つの組の出力ビットを発生することと類似している。しかし、各ブランチ・メトリック・インデックスに対しては、バタフライの上側または下側の状態インデックスのいずれかに加えて、仮定の入力ビットに対する何らかの選択が必要となる。入力ビットは、状態インデックスがトップ・バタフライ・ノードに対するときは“0”に、反対の場合には“1”に単純にセットすることもできる。また、上記の説明から分かるように、“0”が次のステージのトップ・ノードに達するために添付され、“1”が次のステージのボトム・ノードに達するために添付されるため、入力ビットは先行ステージのインデックスから生成された状態インデックスの最下位ビットと同じである。
【0064】
図4に戻って参照すると、ノード68aが“0”の最上位ビットを有するインデックスであり、ノード68cが“0”の最下位ビットを有するインデックスである場合、ブランチ70a,70bは“0”の入力ビットで横断することができ、ブランチ70c,70dは“1”の入力ビットで横断することができる。さらに、周知のように、ブランチ70aからの出力ビットは、ブランチ70dのものと同じになる。このプロパティを上で利用することにより、仮定の入力ビットが各ケースで水平ブランチを選択するようにセットされていることを条件に、バタフライのトップ・インデックス68aまたはボトム・インデックス68bのいずれかが各ブランチ・メトリック・インデックスを発生するのに利用できるようにする。
【0065】
再び図9を参照すると、上述の状態シーケンス順序付け動作を実施するようにできる種々の実施形態がある。好ましい実施形態では、任意のコード多項式が設けられ、この場合、コード多項式レジスタ224a〜224cは多項式を保持することができる。ビット毎に、各多項式は、上からの得られた状態インデックスと論理的にAND演算し、この結果のビットを互いに排他的論理和演算して1ビットの各ブランチ・メトリック・インデックスを形成する(コンボルーション・エンコーディングに類似)。代替的には、ある一定の数の異なったコードのみを実現する場合、ハードウェアは、それらコードに対し専用に設けることもできる。これは、状態インデックス,カウンティング・インデックスおよび固定コード多項式に関して、各ブランチ・メトリック・インデックス(ビット毎)に対する各コード多項式に関して論理式を書き出すことにより行うことができる。このとき、ロジック合成を用いることにより、コンパクトな表現を生成することができる。いずれの場合でも、同じ1つのハードウェアが、不要な上位のアドレス・ビットを論理的にカットオフ(例えば、シフト操作、ローテーション)することにより、異なった抑制長のコードを取り扱うことができる。理解されるべきであるが、コード多項式の数はコード・レートに依存して変化するようにできる。図9に示した実施形態は、1/2および1/3のコード・レートに対して動作する。さらに理解されるべきであるが、ここで開示する本発明は複数の他のコード・レート(例えば、1/4,1/5など)にも適用することができる。
【0066】
また、単一の状態インデックス発生器202を用いて、4つのすべてのブランチ・メトリック・インデックスを計算する1つのブランチ・メトリック・インデックス・ブロックに供給することもでき、各インデックスは必要な遅延チェーンを介して各ブランチ・メトリック選択マルチプレクサに送られる。また、各ACSブロック用の発生器を適当な遅延開始時間でもって用い、これにより、遅延レジスタを取り除くようにすることができる。
【0067】
図6に戻って参照して、トレースバック・ユニット130について詳細に説明する。トレースバック・ユニット130の主な機能は、上述のACS処理中にトレースバック・メモリ132に格納された部分プレトレースバック判断に対してトレースバック処理を実行することである。トレースバック・ユニット130はまた、デコードされた出力データを累積し格納する機能を実行し、DSP140から状態メトリック更新ユニット120へのそれらのルート上のブランチ・メトリックに対するバッファ記憶として作用する。
【0068】
トレースバック処理は、各新たなデータ・アイテムが構成するのに役立つ経路に続く経路判断データを通して後方に横断することから成っている。一旦トレースバック・プロセスの十分なステップが達成されると(収束距離)、デコードされた出力ビットを累積でき、これは同じデータから得たものである。基本のトレースバック処理は周知である。トレースバック・ユニット130の中心部は、経路判断がメモリ132に格納されるような方法で命じられるビタビ・アルゴリズムの直接実現として構成される。本発明のトレースバック処理は、それが種々の抑制長コードに対してかつ種々の長さのプレトレースバックで動作する点で、独特のものである。また、トレースバック・ユニット130は、判断記憶,トレースバック,デコードされた出力の記憶およびブランチ・メトリックの記憶を同時に提供する。この種々の記憶に必要なものは、1つ以上のメモリ回路によって提供することができる。
【0069】
例えば最も普通の状況である長さ4のプレトレースバックでのトレースバック処理に関しては、以下で詳述する32ビット・ワードをトレースバック・メモリ132から読み出し、状態インデックス・シフトレジスタ(不図示)の下位ビット(最下位)を用いて32ビット・ワードから4ビットを選択する。4ビットは、これらアイテムが既に後方にトレースされているために、次の状態インデックスに必要でかつ直ちにその一部分となる次のプレトレースバック・アイテムである。この状態インデックスのMSBの一部分は、可変循環カウントと一緒に利用することにより、メモリ・アドレスを形成する。
【0070】
4未満のプレトレースバック長またはこれより小さな抑制長のコードでトレースバックを実行するとき、ハードウェアは、メモリ・ワードから必要な長さのみを選択するように構成される。状態インデックス・レジスタからのビットの数および位置も、それに応じて調節される。このようにして、多数のコードがイネーブルされる。
【0071】
一旦収束長(生存経路距離)がトレースバック・プロセスで通過されると、デコードされた出力ビットは累積され得る。デコードされた出力ビットは、状態インデックスに供給されるメモリ・ワードの選択された部分から直接来る。これらのビットは、プレトレースバック長と同じサイズのグループで来て、32ビットのレジスタに累積され、必要に応じてトレースバック・メモリ132に格納される。
【0072】
SM更新ユニット120から到来するプレトレースバック判断ビットも、トレースバック・メモリ132に書き込まれる前に、32ビットのレジスタに累積される。この情報は、レジスタ内およびメモリ132でシーケンシャルに配列され、これにより、構成された状態インデックスの諸部分を上述の情報へのポインタとして利用できるようにする。
【0073】
トレースバック・ユニット130は、トレースバック・メモリ132に関するI/O動作およびバッファ管理のすべてを制御する。デコードされた出力の記憶,ブランチ・メトリックの記憶および判断データの記憶はすべて、循環バッファを必要とする。
【0074】
図10を参照すると、トレースバック・ユニット130のより詳細な回路ブロック図が示されている。特に、図10は、どのようにしてトレースバック・ユニットが図6に示したカスケード形ACS122から受け取った判断データ124(すなわち、部分トレースバック・データ)を格納するかについて示している。I/Oメモリ132aは、デコードされた出力ワード300を格納し、出力ワード300aを図6に示した外部DSP140に供給するために含めている。I/Oメモリ132aも、DSP140からの入来ブランチ・メトリック・ワード310を格納し、適当なブランチ・メトリック・ワード134を状態メトリック・ユニット120に供給する。トレースバック・ユニット130も、以下に詳述するように、トレースバック処理を実行し、そのすべてを十分に制御し、アドレス生成およびFIFO管理を提供する。
【0075】
図10には、トレースバック・ユニット130の動作用の複数のマルチプレクサが示されている。これらの内のいくつかは、図示された入力ビット・ベクトルの1つを出力として選択するだけである標準のマルチプレクサである。しかし、他のマルチプレクサは、一般化されたマルチプレクサである。これらは、複雑な記述を有し、マルチプレクサへの制御ビットに依存する入力のカスタム選択に続くことによって、入力から出力を選択する。すなわち、これらマルチプレクサは、すべての入力ベクトルを互いにグループ化された各ビットとしてみなすようにでき、任意の順序でこれらのビットの任意のものを選択された出力ビットして選択することができる。これらは、VHDLプロセス内の制御ビットに依存するビット選択用の特定の定義を提供することによって、構築される。これは、次に、通常は伝統的なマルチプレクサの層状の構造に合成される。
【0076】
トレースバック・メモリ・マルチプレクサ312は、標準のマルチプレクサであり、トレースバック・メモリ132に提示するために判断記憶アドレス314またはトレースバック・アドレス316のいずれかを選択する。判断マルチプレクサ318は、一般化されたマルチプレクサであり、判断318a,318bの8ビットが32ビット・レジスタ320内の非オーバーラップ位置内に置かれるように判断入力ベクトルおよびいくつかのフィードバック・ビットを選択する。この結果、それらのベクトルは、レジスタ320内に到着順でスタックされ、32ビットすなわち4つのベクトル組が到着した後にメモリ132に格納される。I/Oメモリ・データ・マルチプレクサ322は、標準のマルチプレクサであり、I/Oメモリ132aにおける格納のために出力ワード300またはブランチ・メトリック・ワード310を選択する。
【0077】
トレースバック・マルチプレクサ324は、標準のマルチプレクサであり、32ビットの入力ベクトル324aをすべて線形順序で各々4ビットから成る8つのベクトルとしてみなす。マルチプレクサ324は、4ビット・ベクトルの1つ(ワードで先に記憶された318aまたは318b)を出力324bとして選択する。4ビット324bの各々は、部分プレトレースバック経路セグメントである(すなわち、先に記憶された4ビット判断の1つであるが、時には、たった1ビット,2ビットまたは3ビットが上述のバイパス操作のために無効とされることがある)。その後、4ビット部分プレトレースバック判断324bは、標準のマルチプレクサ326a,326b,326cを介してルーティングされる。
【0078】
一般化マルチプレクサ328は、トレースバック・ワードの正しい部分を選択するために次のサイクルで使用するため、6入力ビット328a,328bから正しい3ビットを選択する。これらの6入力ビット328a,328bは、トレースバック・プロセスにおける現在の状態インデックスの一部分を表している。マルチプレクサ328の選択は、コンボルーション・コードの抑制長と、トレリスのどれ程多くのステージが処理されているかということとに依存する。
【0079】
一般化マルチプレクサ330は、現在の状態インデックス330aまたは330bの8ビットから選択し、デコードされた出力ビットとなる1組の4ビットを選択する。しかし、時には、抑制長に依存して有効となる3ビット,2ビットまたは1ビットのみがある。
【0080】
一般化マルチプレクサ332は、デコードされた出力ビット336を累積レジスタ338中に効果的にスタックする。32の有効ビットが累積レジスタ338に格納されると、それらはI/Oメモリ132aに一般化マルチプレクサ340を介して送られる。マルチプレクサ340は、累積レジスタ338の35ビットからの有効なデコードされた出力ビットである正しい32ビットを選択する。この選択は、抑制長とトレリス・ステージの数とに依存する。
【0081】
一般化トレースバック・アドレス・マルチプレクサ342は、次のトレースバック・ワード324a用のトレースバック・アドレス342dの下位部分を形成する。マルチプレクサ342は、3つの異なったベクトル342a,342b,342cからの9ビットの入力から正しいアドレス・ビットを選択する。再び、この選択は、抑制長とステージの数とに依存する。完全なトレースバック・アドレスは、矢印線342a,342eとして示されているトレースバック・ポインタ342fの上位ビット342eと下位アドレス・ビット342dを連結することによって構築される。ポインタ324fは、トレースバック・コントローラ334内のカウンタ(不図示)から来て、トレースバックを実現するためにトレースバック・メモリ132中での後方移動を提供する。トレースバック・ポインタ・ビット342aの内の一部分も、種々の抑制長コードに対して、必要に応じて、マルチプレクサ342を介して下位アドレス・ビット342dを形成するのに使用され得る。
【0082】
トレースバック・コントローラ334は、トレースバック・ユニット130を制御するためのすべてのロジックを含み、先に説明した処理を制御するためにまたアドレス発生およびメモリ・データ管理を制御するために必要なものである多くのカウンタ,レジスタおよびマルチプレクサを備えている。
【0083】
図11を参照すると、本発明によるビタビ・デコーディング・システム用の方法が示されている。ステップ400では、複数のACS処理が、上述のようにカスケード形ACSユニット122を介して複数のACSステージを通して実行される(例えば図7参照)。ステップ410に進むと、経路判断が、ステップ400のACS処理の結果としてACS122の1つのステージに入るすべてのブランチに対して判定される(例えば図7および図8参照)。ステップ420に進み、経路判断が、ACSのデータ経路を広くすることによりACS処理中に累積される(例えば、経路判断ビットをACSデータ経路に添付する。例えば図8参照)。
【0084】
ステップ430では、累積された経路判断が、続くACSステージに送られる(例えば図8参照)。これは、例えば、続くACSステージの識別された経路判断に基づいてその累積された経路判断を続くACSステージにルーティングすることによって、行うことができる(例えば、続くステージの経路判断ビットは、先行ステージからの累積された経路をマルチプレクサ回路を介して選択する)。この累積された経路判断は、次に、マルチプレクサ回路を介して続くACSステージの経路判断と組み合わされる(例えば図8参照)。
【0085】
ステップ440では、複数のACSステージに渡る1組の累積経路判断が、トレースバック・メモリに供給される。例えば、累積経路判断は、続くACSステージの経路判断に添付される。添付された経路判断は、次に、広くされたACSデータ経路に記憶される(例えば図8参照)。ステップ440を完了した後、このプロセスはステップ400に戻り、これにより、デコーディング処理がさらに実行されるようにできる。
【0086】
以上、本発明について一定の好ましい実施形態または実施形態で図示し記述したが、この明細書および添付図面を読み理解すれば、等価な変更および修正が当業者にはできることが明らかである。特に、上述のコンポーネント(アセンブリ,デバイス,回路など)によって実行される種々の機能に関しては、そのようなコンポーネントを記述するのに使用された用語(「手段」に対する言及も含む)は、本発明の図示された例示の実施形態における機能を実行する開示された構造に構造上等価でないとしても、そうでないと指示しない限り、記述されたコンポーネントの特定の機能を実行する任意のコンポーネントに対応するもの(すなわち、等価の機能)であることを意図している。また、本発明の特定の特徴についていくつかの実施形態の1つのみで開示したが、このような特徴は、希望に応じて他の実施形態の1つ以上の他の特徴並びに任意の所与のまたは特定の応用に対する利点と組み合わせることもできる。
【図面の簡単な説明】
【図1】従来技術の無線通信システムのブロック図である。
【図2】従来技術のコンボルーション・エンコーダおよびビタビ・デコーダのブロック図である。
【図3】従来技術のコンボルーション・エンコーダの概略ブロック図である。
【図4】現在の状態ノードから次の状態ノードへの可能なエンコーダ遷移を示す従来技術のビタビ・アルゴリズムのバタフライ構造である。
【図5】本発明によるビタビ・デコーディングに対する4ステージで16状態のトレリス図である。
【図6】本発明によるビタビ・デコーダの概略ブロック図である。
【図7】本発明によるビタビ・デコーダに対するカスケード形ACSユニットの概略ブロック図である。
【図8】本発明によるビタビ・デコーダに対するACSユニットのより詳細な概略ブロック図である。
【図9】本発明によるビタビ・デコーダに対するブランチ・メトリック選択ユニットの概略ブロック図である。
【図10】本発明によるトレースバック・ユニットの概略ブロック図である。
【図11】本発明によるビタビ・デコーディングに対する方法を示すフローチャート図である。
【符号の説明】
110 ビタビ・デコーダ
120 状態メトリック更新ユニット
122 カスケード形ACS
124 経路判断値
125 累積状態メトリック(SM)
126 状態メトリック・メモリ
130 トレースバック・ユニット
132 トレースバック・メモリ
134 ブランチ・メトリック
136 アドレス/制御ブロック
138 ブランチ・メトリック選択ユニット
Claims (14)
- デコーダ・システムであって、
状態メトリック・メモリとカスケード形加算/比較/選択(ACS)ユニットとを含む状態メトリック更新ユニットであって、
前記カスケード形ACSユニットが、前記状態メトリック・メモリとともに複数のACS処理を実行する複数の直列結合されたACSステージを含み、
1つのACSステージが、複数の経路判断を識別し、該識別された経路判断をそれに結合された次のACSステージに伝えるように動作可能である、
状態メトリック更新ユニットと、
トレースバック・ユニットであって、これに関連したトレースバック・メモリに1組の累積経路判断を格納し、該1組の累積経路判断に対してトレースバックを実行する、トレースバック・ユニットと、
を具備し、
前記ACSステージおよび前記次のACSステージに関連した前記経路判断が、前記トレースバック・メモリに書き込まれる前に前記ACS処理中に1組として累積され、これにより、前記トレースバック・メモリに対するアクセスを最小限にする、
デコーダ・システム。 - 前記識別された経路判断が、該識別された経路判断をACS処理中に前記ACSステージから前記次のACSステージに送ることによって、1組として累積される、請求項1記載のデコーダ・システム。
- 前記状態メトリック更新ユニットが、ACS処理中に、1組のブランチ・メトリック値を選択して1組の状態メトリック値と同期させるよう動作可能なブランチ・メトリック選択ユニットをさらに含む、請求項1記載のデコーダ・システム。
- 複数のACSステージに関して前記1組のブランチ・メトリックを同期させる遅延回路をさらに含む、請求項3記載のブランチ・メトリック選択ユニット。
- 前記カスケード形ACSユニットのステージに対する状態メトリック値を識別する状態メトリック・メモリ・アドレス指定とブランチ・メトリック選択用の状態インデックスとを提供する状態インデックス発生器をさらに含む、請求項3記載のブランチ・メトリック選択ユニット。
- ユーザ供給コード多項式を格納し、複数のコンボルーション・コードに対してフレキシブルな処理をイネーブルする1組のコード多項式レジスタをさらに含む、請求項3記載のブランチ・メトリック選択ユニット。
- 前記ユーザ供給コード多項式を受けるブランチ・メトリック・インデックス・ロジック回路であって、該ブランチ・メトリック・インデックス・ロジックが、状態インデックスと状態カウンタとを受けて、多数のACSステージに対するブランチ・メトリック・インデックスを発生し、正しいブランチ・メトリックを選択する、ブランチ・メトリック・インデックス・ロジック回路をさらに含む、請求項6記載のブランチ・メトリック選択ユニット。
- 前記状態メトリック更新ユニットと前記トレースバック・ユニットとの両方に動作上結合されたDSPインターフェース回路をさらに含み、該DSPインターフェース回路が、DSPからの前記ブランチ・メトリックを前記トレースバック・ユニットに伝え、デコードされた出力ビットを前記トレースバック・ユニットから前記DSPに送る、
請求項1記載のデコーディング・システム。 - 前記DSPが、ブランチ・メトリック計算およびデパンクチャを実行し、これにより、前記デコーディング・システムのフレキシブルな動作を容易にする、請求項8記載のデコーディング・システム。
- トレースバック処理が、複数の抑制長コードに対して実行される、請求項1記載のトレースバック・ユニット。
- ビタビ・デコーディングの方法であって、
加算/比較/選択(ACS)処理を複数のACSステージに渡って実行するステップと、
前記ACS処理中に経路判断を判定するステップと、
前記ACS処理に基づいて前記経路判断を累積するステップと、
前記累積された経路判断を前記複数のACSステージの続くACSステージに送るステップと、
前記累積された経路判断を1組としてトレースバック・メモリに供給してトレースバック・メモリ・アクセスを減少させるステップと、
を具備する、方法。 - 前記経路判断を累積するステップが、前記ACS処理に基づいて経路判断の受けるACSデータ経路を広げるステップを含む、請求項11記載の方法。
- 前記累積された経路判断を送るステップが、
現在のACSステージの識別された経路判断に基づいて続くACSステージの前記累積された経路判断をルーティングするステップと、
前記識別され累積された経路判断を前記続くACSステージの前記経路判断と組み合わせるステップと、をさらに含む、
請求項11記載の方法。 - 前記累積された経路判断を1組としてトレースバック・メモリに供給するステップが、前記累積された経路判断を前記続くACSステージに関連した1組の経路判断に添付するステップをさらに含む、請求項11記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11776399P | 1999-01-29 | 1999-01-29 | |
US117763 | 1999-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001028550A JP2001028550A (ja) | 2001-01-30 |
JP4331371B2 true JP4331371B2 (ja) | 2009-09-16 |
Family
ID=22374675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000057869A Expired - Fee Related JP4331371B2 (ja) | 1999-01-29 | 2000-01-27 | 無線応用のためのフレキシブルなビタビ・デコーダ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4331371B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10010238C2 (de) | 2000-03-02 | 2003-12-18 | Infineon Technologies Ag | Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer |
US20070266303A1 (en) * | 2006-04-27 | 2007-11-15 | Qualcomm Incorporated | Viterbi decoding apparatus and techniques |
JP2010206570A (ja) * | 2009-03-04 | 2010-09-16 | Sony Corp | 復号装置、復号方法 |
-
2000
- 2000-01-27 JP JP2000057869A patent/JP4331371B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001028550A (ja) | 2001-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6901118B2 (en) | Enhanced viterbi decoder for wireless applications | |
US6690750B1 (en) | Flexible Viterbi decoder for wireless applications | |
US7127664B2 (en) | Reconfigurable architecture for decoding telecommunications signals | |
US7139968B2 (en) | Processing unit and processing method | |
AU762877B2 (en) | Component decoder and method thereof in mobile communication system | |
EP1204211B1 (en) | Butterfly processor for telecommunications | |
JP2000031836A (ja) | 畳込み復号装置 | |
TWI313107B (en) | Unified viterbi/turbo decoder for mobile communication systems | |
EP1204212B1 (en) | Method and apparatus for path metric processing in telecommunications systems | |
US7234100B1 (en) | Decoder for trellis-based channel encoding | |
Chadha et al. | A reconfigurable Viterbi decoder architecture | |
EP1111798A1 (en) | Digital signal processor | |
WO2009042031A1 (en) | Programmable compute unit with internal register and bit fifo for executing viterbi code | |
JP4331371B2 (ja) | 無線応用のためのフレキシブルなビタビ・デコーダ | |
US7035356B1 (en) | Efficient method for traceback decoding of trellis (Viterbi) codes | |
EP1024604A2 (en) | Flexible viterbi decoder for wireless applications | |
KR100387089B1 (ko) | 브랜치 메트릭 계산 처리에서 감소된 비트수를 갖는비터비 디코더 | |
EP1417768B1 (en) | High performance turbo and viterbi channel decoding in digital signal processors | |
US20050138535A1 (en) | Method and system for branch metric calculation in a viterbi decoder | |
JP2002534902A (ja) | 復号装置におけるエム・エル状態選択装置及び方法 | |
US20050071735A1 (en) | Methods and systems for Viterbi decoding | |
JP3231647B2 (ja) | ビタビ復号器 | |
Jamal et al. | Design and FPGA Implementation of Low Power Punctured Soft Decision Viterbi Decoder | |
JP2003234656A (ja) | 演算処理装置 | |
JP2003204271A (ja) | ディジタル信号処理プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070126 |
|
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: 20090519 |
|
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: 20090618 |
|
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: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |