(57)【要約】復号されるコードセグメント中のビットに対するスケール情報が知られていないときにターボデコーダの性能を改善するための技術である。そのコードセグメントに対していくつかの仮説が形成され、各仮説は、コードセグメントを復号するために使用される１以上のパラメータのセットに対する１以上の値の特定のセットに対応している。ＭＡＰ復号方式に対して、これらのパラメータは、復号する前にビットをスケールするために使用されるスケーリング係数のシーケンスに対するもの、および、またはＭＡＰ復号に対する（たとえば、ｍｉｎ*）関数を評価するために使用されるスケールに対するものであることができる。コードセグメントはＭＡＰ復号方式に基づいて、および各仮説にしたがって復号される。各仮説に対する復号された結果の品質は、１以上の性能測定基準に基づいて決定される。最良の仮説に対する復号されたビットは、ターボデコーダ出力として供給される。
2005521269.tif 000002
【特許請求の範囲】
【請求項１】
コードセグメントに対する複数の仮説を形成し、それらの各仮説がコードセグメントを復号するために使用される１以上のパラメータのセットに対する１以上の値の特定のセットに対応しており、
各仮説にしたがってコードセグメントを復号し、
各仮説に対する復号された結果に対する１以上の性能計量を評価し、
１以上の評価された性能計量に基づいた最良の復号された結果を有する特定の仮説を決定し、
その最良の復号された結果を有する仮説に対して復号されたビットのシーケンスに与えるステップを含んでいるターボ符号化されたコードセグメントの復号方法。
【請求項２】
復号は各仮説に対して特定の反復数で行われ、特定の反復数の終了後、各仮説に対して１以上の性能計量が評価される請求項１記載の方法。
【請求項３】
特定の反復数は、コードセグメントを完全に復号するために必要とされる回数よりも少ない請求項２記載の方法。
【請求項４】
復号は最大経験的(a posteriori)（ＭＡＰ）復号方式に基づいて行われる請求項１記載の方法。
【請求項５】
ＭＡＰ復号方式はコードセグメントを復号する関数を使用し、１以上のパラメータのセットはその関数に対する少なくとも１つのパラメータを含んでいる請求項４記載の方法。
【請求項６】
関数はｍｉｎ*関数である請求項５記載の方法。
【請求項７】
関数は、その関数パラメータに対する異なった値に対応したルックアップテーブルのセットにより部分的に構成されている請求項５記載の方法。
【請求項８】
１以上のパラメータのセットは、コードセグメントに対して受取られたビットをスケールして復号されるべきビットを得るために使用されるスケーリング係数のシーケンスに対するパラメータを含んでいる請求項１記載の方法。
【請求項９】
複数の仮説は、スケーリング係数の複数のシーケンスに対応している請求項８記載の方法。
【請求項１０】
１以上のパラメータのセットは、関数を評価するために使用されたスケールに対するパラメータを含んでいる請求項５記載の方法。
【請求項１１】
複数の仮説は、複数のスケール値に対応している請求項１０記載の方法。
【請求項１２】
１以上のパラメータのセットはさらに、コードセグメントを復号する関数を評価するために使用されるスケールに対するパラメータを含んでおり、複数の仮説はスケーリング係数のシーケンスとスケール値の複数の組合せに対応している請求項８記載の方法。
【請求項１３】
１以上の性能計量はＣＲＣチェックを含んでいる請求項１記載の方法。
【請求項１４】
１以上の性能計量は相関計量を含んでいる請求項１記載の方法。
【請求項１５】
１以上の性能計量は再度符号化された相関計量を含んでいる請求項１記載の方法。
【請求項１６】
１以上の性能計量は復号されたビットの最小または平均のログ尤度比（ＬＬＲ）を含んでいる請求項１記載の方法。
【請求項１７】
コードセグメントに対する複数の仮説を形成し、各仮説がコードセグメントを復号するために使用される１以上のパラメータのセットに対する１以上の値の特定のセットに対応しており、
最大経験的（ＭＡＰ）復号方式に基づいて、各仮説にしたがってコードセグメントを復号し、
各仮説に対する復号された結果に対する１以上の性能計量を評価し、
１以上の評価された性能計量に基づいた最良の復号された結果を有する特定の仮説を決定し、
その最良の復号された結果を有する仮説に対して復号されたビットのシーケンスに与えるステップを含んでおり、
１以上のパラメータのセットは、ＭＡＰ復号方式を実施するために使用されたｍｉｎ*関数用のスケールに対するパラメータを含んでいるターボ符号化されたコードセグメントの復号方法。
【請求項１８】
特定の復号方式に基づいて、特定の仮説にしたがってコードセグメントに対するビットを受取って復号し、仮説に対する復号された結果を提供するように構成された構成デコーダと、
仮説に対する復号された結果に対して１以上の性能計量を評価するように構成された性能計量計算装置とを具備しており、
コードセグメントに対して複数の仮説が形成され、各仮説がコードセグメントを復号するために使用される１以上のパラメータのセットに対する１以上の値の特定のセットに対応し、構成デコーダおよび性能計量計算装置はコードセグメントに関して各仮説に対して動作するターボデコーダ。
【請求項１９】
構成デコーダは最大経験的（ＭＡＰ）デコーダである請求項１８記載のターボデコーダ。
【請求項２０】
さらに、ＭＡＰデコーダに対して関数を構成するように構成された複数のルックアップテーブルを備え、各ルックアップテーブルは関数に対する特定のスケール値に対応しており、
複数の仮説は、コードセグメントを復号するために使用される複数のスケール値に対応している請求項１９記載のターボデコーダ。
【請求項２１】
複数のルックアップテーブルは、ＭＡＰデコーダに対してｍｉｎ*関数を構成するように構成されている請求項２０記載のターボデコーダ。
【請求項２２】
復号されるビットは、受取られたビットをスケーリング係数のシーケンスでスケールすることにより得られ、複数の仮説はスケーリング係数の複数のシーケンスに対応している請求項１８記載のターボデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信に関する。とくに、本発明は、改善された性能を提供する方法で知られていないスケール情報によりコードセグメントをターボ復号する技術に関する。
【背景技術】
【０００２】
無線通信システムは、音声、パケットデータ等の種々のタイプの通信を提供するように広範囲にわたって配置されている。これらのシステムは、符号分割多元アクセス（ＣＤＡＭ）、時分割多元アクセス（ＴＤＭＡ）、あるいは別のある多元アクセス技術に基づいていることができる。ＣＤＡＭシステムは、他のタイプのシステムにまさるシステム容量の増加を含む利点を提供する。
【０００３】
ＣＤＭＡシステムは、ＩＳ−９５、Ｗ−ＣＤＭＡ、ｃｄｍａ２０００およびその他のような１以上のＣＤＭＡ規格をサポートするように設計されている。各規格は典型的に、順方向および逆方向リンクでの送信の前のデータ処理を規定している。たとえば、音声および、またはパケットデータは特定のデータレートでコード化され、規定されたフレームフォーマットにフォーマット化され、特定の処理方式にしたがって処理される（たとえば、エラー補正および、または検出のために符号化され、インターリーブされる等）ことができる。
【０００４】
多くの新しいＣＤＭＡ規格は、並列連結コンボリューショナルエンコーダ（ターボエンコーダと呼ばれることが多い）を使用し、それはコードセグメント（たとえば、データパケット）を送信前に符号化するために選択されてもよい。このターボエンコーダは並列に、コードインターリーバと組合せられて動作される２つの構成エンコーダを使用する。このコードインターリーバは、規定されたインターリーブ方式にしたがってコードセグメント中の情報ビットをシャッフルする（すなわち、インターリーブする）。１つの構成エンコーダはコードセグメント中の情報ビットを符号化し、パリティビットの第１のシーケンスを生成し、他方の構成エンコーダはシャッフルされた情報ビットを符号化し、パリティビットの第２のシーケンスを生成する。情報ビットならびに第１および第２のシーケンスの一部または全てのパリティビットが送信される。
【０００５】
相補的な（および計算量が膨大な）ターボ復号は受信装置において行われる。各ターボ符号化されたセグメントに対して、受信された（ソフト値）ビットは典型的にスケールされ、量子化され、バッファに記憶される。その後、第１の構成エンコーダに対する情報およびパリティビットはバッファから検索され、第１の構成デコーダによって第１の構成コードに基づいて復号され、情報ビットに対する検出された値における信頼度の調節を示す“エキストリンシック(extrinsic)”情報を提供する。その後、第１の構成デコーダからのエキストリンシック情報を含む中間的な結果は、送信装置において使用されたコードインターリーブに一致するインターリーブされた順序で記憶装置に記憶される。
【０００６】
その後、この中間的な結果と第２の構成エンコーダからのパリティビットは、それらの各ソースから検索され、第２の構成デコーダによって第２の構成コードに基づいて復号され、情報ビットに対する検出された値における信頼度の別の調節を示すエキストリンシック情報を提供する。その後、第２の構成デコーダからのエキストリンシック情報を含む中間的な結果は、送信装置において使用されたコードインターリーブとは相補的なデインターリーブされた順序で記憶装置に記憶される。中間的な結果は、第１の構成デコーダの次の反復によって使用される。第１および第２の構成デコーダによる復号が何回か繰返され、最終的な復号された結果が得られる。
【０００７】
各構成デコーダは、コードセグメントのビットエラーの最小化を試みる最大経験的(a posteriori)（ＭＡＰ）デコーダとして構成されてもよい。ＭＡＰデコーダにより復号される各情報ビットに対して、エキストリンシック情報を得るために多量の計算が行われる。あるデコーダ構成に対しては、計算の正確さは、ＭＡＰデコーダに供給された入力ビット（すなわち、サンプル）の“スケール”の知識に依存する。このスケール情報には、ＭＡＰデコーダに供給されたサンプルの分散および振幅が含まれていてもよい。入力ビットのスケールの知識なしに、あるいはその間違った仮定により復号が行われた場合、復号性能は低下する可能性が高い。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、改善された性能を提供するように知られていないスケール情報によりコードセグメントを復号することのできるターボデコーダが必要とされている。
【課題を解決するための手段】
【０００９】
本発明の特徴は、改善された復号結果を提供するようにコードセグメントをターボ復号する技術を提供する。いくつかのターボ復号方式（一般に使用されている最大経験的（ＭＡＰ）復号方式）に対して、復号の性能は、復号されるビットに対するスケール情報を知っていることに依存する。このようなスケール情報は、復号されるべきビットの分散および振幅に関するものであってもよく、ＭＡＰ復号に対する特定の関数を正確に評価するために必要とされる可能性がある。間違ったスケール情報がコードセグメントを復号するために使用された場合、ＭＡＰ復号の性能は、関数が正確に評価されないために低下する可能性がある。
【００１０】
本発明の特徴は、受取られたビットに対するスケール情報が知られていないときに、ターボデコーダの性能を改善するための技術を提供する。一般に、復号される所定のコードセグメントに対していくつかの仮説が形成され、各仮説ｈは、そのコードセグメントを復号するために使用される１以上のパラメータのセットに対する１以上の値の特定のセットに対応している。ＭＡＰ復号方式に対して、これらのパラメータは、（１）コードセグメントで受取られたビットをスケールして復号されるべきビットを得るために使用されるスケーリング係数のシーケンスに対するもの、および、または（２）コードセグメントを復号するための（たとえば、ｍｉｎ*関数）関数を評価するために使用されるスケールに対するものであることができる。
【００１１】
コードセグメントはＭＡＰ復号方式に基づいて、および各仮説にしたがって復号される。したがって、各仮説に対する復号された結果の品質は、１以上の性能測定基準（たとえば、ＣＲＣチェック、相関計量、再度符号化された相関計量等）に基づいて決定される。全ての仮説に対する復号された結果の品質が比較され、性能測定基準によって決定される復号された“最良の”結果を提供する仮説に対する復号されたビットが、そのコードセグメントに対するターボデコーダ出力として供給される。
【００１２】
以下、本発明の種々のアスペクト、実施形態および特徴を説明する。  
【発明を実施するための最良の形態】
【００１３】
本発明の特徴性質および利点は、以下の詳細な説明および添付図面からさらに明らかになるであろう。なお、図面において一貫した対応的な識別をするために同じ参照符号が使用されている。  
図１は、本発明の実施形態の種々のアスペクトを実施することのできる通信システム100の簡単なブロック図である。１実施形態において、通信システム100は、ｃｄｍａ２０００、Ｗ−ＣＤＭＡ、ＩＳ−８５６および、またはある別のＣＤＭＡ規格に従ったＣＤＭＡシステムである。送信装置110において、データは典型的にブロックでデータソース112から送信（ＴＸ）データプロセッサ114に送られ、このＴＸデータプロセッサ114がデータをフォーマット化し、コード化して処理し、１以上のアナログ信号を生成する。その後、アナログ信号は送信機（ＴＭＴＲ）116に供給され、このＴＭＴＲ116が信号を（直交）変調し、濾波し、増幅し、上方変換して変調された信号を生成する。その後、この変調された信号は、１以上のアンテナ118（図１には１個のみ示されている）を介して１以上の受信装置に送信される。
【００１４】
受信装置150において、送信された信号は１以上のアンテナ152（再び、１個のみ示されている）によって受信され、受信機（ＲＣＶ）154に供給される。受信機154内において、受信された信号は増幅され、濾波され、下方変換され、（直交）復調されてデジタル化され、サンプルを生成する。その後、サンプルは受信（ＲＸ）データプロセッサ156によって処理されて復号され、送信されたデータを再生する。受信装置150における処理および復号は、送信装置110で行われた処理およびコード化と相補的な方法で行われる。再生されたデータはデータシンク158に供給される。
【００１５】
上述された信号処理は１つの方向における音声、ビデオ、パケットデータ、メッセージングおよびその他のタイプの通信の送信をサポートする。両方向通信システムは両方向データ送信をサポートする。しかしながら、図１においては、簡明化のために別の方向に対する信号処理は示されていない。
【００１６】
図２は、Ｗ−ＣＤＭＡ規格により規定された並列連結コンボリューショナルエンコーダ200（ターボエンコーダとも呼ばれている）の概略図である。ターボエンコーダ200は、図１におけるＴＸデータプロセッサ114内でチャンネルコード化を行うために使用されることができる。ターボエンコーダ200は１対の構成エンコーダ212aおよび212b、コードインターリーバ214ならびに、パンクチュアラおよびマルチプレクサ216を含んでいる。コードインターリーバ214は、特定のインターリーブ方式（たとえば、実施されているその規格により定められた）にしたがってコードセグメント（たとえば、データパケット）中の情報ビットを受取ってインターリーブする。
【００１７】
各構成エンコーダ212は線形順序またはインターリーブされた情報ビットを受取り、受取られた情報ビットを規定された構成コードで符号化し、パリティビットのシーケンスを提供する。パンクチュアラおよびマルチプレクサ216は情報ビットおよびパリティビットを両方の構成エンコーダ212aおよび212bから受取り、所望の数のビットを得るためにゼロまたは多くのパリティビットをパンクチャし（すなわち、削除し）、パンクチャされていない情報およびパリティビットをコード化されたビットのシーケンスに多重化する。パンクチャされる代りに、ゼロまたは多くのコード化されたビットが繰返されてもよい。しかしながら、簡明化のために、パンクチュアラおよびマルチプレクサ216は一般原理を損なわずに必要に応じてパンクチャおよび、または反復を行うことができる。
【００１８】
図２に示されている実施形態において、各構成エンコーダ212には、３個の直列接続された遅延素子222と、４個のモジュロ２（２を法とする）加算器224と、およびスイッチ226とが含まれている。最初に、遅延素子222の状態はゼロに設定されており、スイッチ226は上方の位置である。その後、コードセグメント中の各情報ビットに対して、加算器224aは情報ビットｘと加算器224dからの出力ビットのモジュロ２加算を行い、その結果を遅延素子222aに供給する。加算器224bおよび224cは加算器224aならびに遅延素子222aおよび222cからビットのモジュロ２加算を受取ってパリティビットｙを供給する。加算器224dは、遅延素子222bおよび222cからのビットのモジュロ２加算を行なう。
【００１９】
コードセグメント中のＮBの情報ビット全てが符号化された後、スイッチ226は下方の位置に移動され、３つのゼロ（“０”）のテールビットは構成エンコーダ212aに供給される。その後、構成エンコーダ212aは３つのテールビットを符号化し、６つのテールパリティビットを供給する。
【００２０】
ＮBの情報ビットの各セグメントに対して、構成エンコーダ212aはＮBのパリティビットおよび最初の６つのテールパリティビットｙ1を供給し、構成エンコーダ212bはＮBのパリティビットおよび最後の６つのテールパリティビットｙ2を供給する。各セグメントに対して、パンクチュアラおよびマルチプレクサ216はＮBの情報ビットｘと、ＮB＋６のパリティビットｙ1とをエンコーダ212aから受取り、ＮB＋６のパリティビットｙ2をエンコーダ212bから受取る。パンクチュアラおよびマルチプレクサ216はいくつかのパリティビットをパンクチャ（すなわち、削除）して必要とされる数のコード化されたビットを提供することができ、このコード化されたビットにはパンクチャされていない情報およびパリティビットが含まれる。
【００２１】
ターボエンコーダ200によって供給された情報およびパリティビットのシーケンス（またはベクトル）Ｘは次のように表されてもよい：
【数１】
2005521269.tif 000003
【００２２】
再び、これらのビットの全てまたはサブセットは送信装置110から受信装置150に送信されることができる。
【００２３】
送信されるべき各ビットに対して、ビットがゼロ（“０”）である場合は値Ａが送信され、ビットが“１”である場合には値−Ａが送信される。送信された各ビットはチャンネル雑音、送信装置および受信装置の両方におけるそのビットに関するアナログおよびデジタル信号処理、ならびにその他の現象によって歪を与えられる。受信装置において受取られたビットのシーケンスは、次のように表されてもよい：
Ｖ＝｛ｖ1ｖ2ｖ3・・・ｖ3N｝，              式（１）
ここでＶは、テールビットに対応したものおよびＮ＝ＮB＋４を含む受取られたビットのシーケンス全体である。シーケンスＶ中の受取られた各ビットｖkは次のように表される：
【数２】
2005521269.tif 000004
【００２４】
ここで、
Ｚ＝｛ｚ1ｚ2ｚ3・・・ｚ3N｝は、静的シナリオ中にノーマルユニット（ｎｏｒｍａｌ  ｕｎｉｔ）を有する独立して等しく分散された（ｉｉｄ）ランダムな変数のベクトルであり、
Ａkは受取られたビットに対する振幅であり、典型的にＡに等しく、
σkは受取られたビットに対するランダムな変数ｚkの、チャンネル雑音による標準偏差であり、ｋ＝１，２，・・・３Ｎに対してσk＝σとして近似されることができる。
【００２５】
同じビットに対応したシンボルの適切な累算後のフェーディング条件下あるいは反復条件下においては、受信された信号振幅は送信された信号振幅と異なる可能性がある。
【００２６】
図３は、受信装置におけるＲＸデータプロセッサ156内の処理の一部を象徴的に示すブロック図である。受信された信号は最初に受信機154によって調整され、デジタル化され、デジタル的に処理されて（たとえば、濾波され、デスプレッドされ、デカバーされる等）、受信された各ビットｖkに対する“ソフト”値を提供する。受信されたビットｖkに対するソフト値は、デジタル信号処理後の分解能の多くの（たとえば、１６）ビットを有していてもよい。多くのデコーダ構成に対して、受信された各ビットに対してこの分解能の多くのビットを記憶することは実際的ではなく、あるいは必要ない。とくに、ビットのコードセグメント全体はターボ復号のために記憶される必要があるため、復号されるコードセグメント中の各ビットに対する分解能の多数のビットを記憶するために非常に大型の記憶装置が必要とされる。
【００２７】
記憶要求を減少させるために、受取られたビットＶ＝｛ｖ1ｖ2ｖ3・・・ｖ3N｝は、乗算装置312を介してスケーリング係数のシーケンスＳ＝｛ｓ1ｓ2ｓ3・・・ｓ3N｝によって有効にスケールされる。受信された各ビットｖkに対して１つのスケーリング係数が与えられてもよく、このスケーリングはシーケンスＶに対してエレメント単位で行われてもよい。その後、スケールされたビットは量子化装置314により量子化され、デコーダ入力ビットＵ＝｛ｕ1ｕ2ｕ3・・・ｕ3N｝を提供する。したがって、ターボデコーダへの入力ビットｕkは受信されたビットｖkのスケールされて量子化された変形であり、減少された分解能（たとえば、４，５，６またはある別の数のビットの）を有する。
【００２８】
スケーリング係数ｓkは、受信されたビットｖk中の情報が十分に表わされると共に量子化された出力ｕk中の適切な範囲内にあるように選択される。スケーリング係数が大き過ぎた場合、スケールされたビットのクリッピングが量子化期間中に発生し、その結果生じたクリッピング雑音が復号性能を低下させる可能性が高い。また、スケーリング係数が小さ過ぎた場合、スケールされたビットの信号振幅は量子化雑音に関して小さくなり、復号性能もまた低下する。
【００２９】
特定のコード化されたビットに対して多くのビット（すなわち、コード化されたビットに対して反復されたビット）が受信された場合、これらの反復されたビットに対して受信装置で相補的な処理が行われる。コードビットに対応した反復されたビットは最初に、平均を超えた分散がこのコードビットに対する全てのシンボルに対して一定になるようにスケールされ、その後、スケールされたビットは、そのコードビットに対して１つのシンボルを得るために共に加算される。コード化されたビットが送信装置においてパンクチャされた場合、ゼロ（“０”）のソフトシンボル（すなわち、消去）がパンクチャされたビットの代りに挿入されるので、優先度はａ＋１（ビット“０”）にもａ−１（ビット“１”）にも与えられない。
【００３０】
ターボデコーダ316は入力ビットｕkおよびその入力ビットのスケールに関する追加情報を受取る。その後、ターボデコーダ316は、スケール情報を使用して入力ビットｕkを復号し、復号されたビットの候補シーケンスを提供する。ポストプロセッサ318はさらに復号されたビットを処理して、復号された結果の品質を示すことができる。たとえば、ポストプロセッサ318は、ＣＲＣビットが送信されたコードセグメント中に含まれている場合には、復号された結果のＣＲＣチェックを行なうことができる。その復号された結果に対しては、以下に説明するように別の性能計量もまた評価され、復号性能の別の表示を提供することができる。
【００３１】
図４は、ターボデコーダ316に対する特定の設計のブロック図である。この設計において、ターボデコーダ316は２個の構成デコーダ410aおよび410bと、コードインターリーバ412と、コードデインターリーバ414と、および検出器416とを含んでいる。各構成デコーダ410は典型的に、コードシーケンスのビットエラーの最小化を試みるソフト入力／ソフト出力（ＳＩＳＯ）最大経験的（ＭＡＰ）デコーダとして構成される。しかしながら、ソフト出力ヴィタビ（Viterbi）アルゴリズム（ＳＯＶＡ）を実施するデコーダのような別のタイプのデコーダもまた使用されることができる。
【００３２】
ＭＡＰデコーダは典型的に入力ビットｕkのログ尤度比（ＬＬＲ）で動作し、この入力ビットｕkは量子化された情報およびパリティビットを含み、次のように表されることができる：
【数３】
2005521269.tif 000005
【００３３】
時間ｋにおける入力ビットｘkのＬＬＲは次のように計算されることができる：
ＬＬＲ（ｘk）＝ｌｏｇ［Ｐｒ（ｘk＝１｜Ｕ）／Ｐｒ（ｘk＝０｜Ｕ）］            式（３）
入力ビットｘkのＬＬＲは、１（“１”）であるビットの確率に対するその受信されたシーケンスＵを与えられたゼロ（“０”）であるビットの確率の比の対数である。各入力ビットに対するこの確率Ｐｒ（ｘk＝０｜Ｕ）およびＰｒ（ｘk＝１｜Ｕ）は、復号されたコードセグメントとして受信されたそのビットおよびそのビットシーケンスに対するソフト値に基づいている。消去（すなわち、パンクチャされたビット）に対するＬＬＲは、ゼロまたは１であるビットにおける等しい信頼度を示している（すなわち、ＬＬＲ＝０）。
【００３４】
図４に示されている実施形態において、加算装置408aはＬＬＲ（ＡＰＰ0）、
【数４】
2005521269.tif 000006
【００３５】
および、デインターリーバ414からのエキストリンシック情報を受取って加算し、デコーダ410aにアプリオリ確率（ＡＰＰ）を供給する。ＬＬＲ（ＡＰＰ0）は、情報ビットの基礎をなす仮定から得られたログ尤度比である。コードセグメント中の各情報ビットがゼロ（“０”）または“１”のいずれかであることの可能性が同じとするならば、ＬＬＲ（ＡＰＰ0）はコードセグメント中の全てのビットに対してゼロに等しく、ＬＬＲ（ＡＰＰ0）に関連した部分はどれでも無視される。デインターリーバ414からのエキストリンシック情報は、最初の復号反復に対してはゼロに設定される。
【数５】
2005521269.tif 000007
【００３６】
は受取られた情報ビット：
【数６】
2005521269.tif 000008
【００３７】
のログ尤度比である。
【００３８】
デコーダ410aは加算装置408aからＡＰＰを受取ると共に、第１の構成エンコーダから受取られたパリティビット： 
【数７】
2005521269.tif 000009
【００３９】
のＬＬＲである
【数８】
2005521269.tif 000010
【００４０】
を受取る。
【数９】
2005521269.tif 000011
【００４１】
には、パンクチャされた（すなわち、送信されていない）パリティビットがあれば、それに対する消去が含まれる。その後、デコーダ410aはＭＡＰアルゴリズムに基づいてＡＰＰおよび
【数１０】
2005521269.tif 000012
【００４２】
を復号して経験的確率を生成する。その後、ＡＰＰが加算装置408bにより経験的確率から減算されてエキストリンシック情報ｅk1を提供し、このエキストリンシック情報はパリティビット：
【数１１】
2005521269.tif 000013
【００４３】
の影響を受けた情報ビット：
【数１２】
2005521269.tif 000014
【００４４】
に対する値の信頼度の補正／調節を示す。
【００４５】
加算装置408bからのエキストリンシック情報ｅk1は、情報ビットＬＬＲ、
【数１３】
2005521269.tif 000015
【００４６】
と加算され、中間結果（次のデコーダに対するＡＰＰである）はコードインターリーバ412に記憶される。コードインターリーバ412はターボエンコーダで使用された同じコードインターリーブ方式を実施する（たとえば、同じ方式が図２のコードインターリーバ214に対して使用される）。
【００４７】
デコーダ410bはインターリーバ412からのインターリーブされたＡＰＰと、第２の構成エンコーダから受取られたパリティビット：
【数１４】
2005521269.tif 000016
【００４８】
のＬＬＲである
【数１５】
2005521269.tif 000017
【００４９】
とを受取る。その後、デコーダ410bはＭＡＰアルゴリズムにしたがってＡＰＰおよび
【数１６】
2005521269.tif 000018
【００５０】
を復号して経験的確率を生成する。その後、ＡＰＰが加算装置408dにより経験的確率から減算されてエキストリンシック情報ｅk2を提供し、このエキストリンシック情報は、受信されたパリティビット：
【数１７】
2005521269.tif 000019
【００５１】
の影響を受けた情報ビット：
【数１８】
2005521269.tif 000020
【００５２】
に対する値の信頼度のさらに別の補正／調節を示す。このエキストリンシック情報ｅk2はデコーダ410bからの中間結果を含んでおり、この中間結果はコードのデインターリーバ414に記憶される。デインターリーバ414は、インターリーバ412に対して使用されたインターリーブ方式と相補的なデインターリーブ方式を実行する。
【００５３】
情報ビットＬＬＲの復号は、多数回（たとえば、１２，１６，２０または、おそらく、それより多くの回数）繰返される。各反復により、情報ビットの検出された値に対して高い信頼度が得られる。最終的なＬＬＲは、全ての復号反復が終了した後に検出器418に与えられ、それによって受信された情報ビットに対するハード決定値（すなわち、“０”または“１”）がそれらのＬＬＲに基づいて提供される。
【００５４】
各ＭＡＰデコーダ410は次のように表されることができる尤度比λkの計算を行なう：
λk＝Ｐｒ（ｘk＝１｜Ｕ）／Ｐｒ（ｘk＝０｜Ｕ）            式（４）
ここでｘkは、時間ｋにおけるエンコーダへの知られていない（および検出されることとなる）入力ビットであり、Ｕはデコーダに入力されたシンボルのシーケンス（すなわち、受信された情報およびスケーリングおよび量子化後のパリティビット）である。尤度比λkは、受信されたシーケンスＵを与えられた０であるビットｘkの尤度に対する受信されたシーケンスＵを与えられた１であるビットｘkの尤度を表す。
【００５５】
尤度比λkはまた次のように表されることができる：
【数１９】
2005521269.tif 000021
【００５６】
ここで、αkmはトレリス（trellis）状態ｍに対する時間ｋにおける順方向の状態計量（すなわち、時間ｋにおけるトレリス状態がｍであると仮定したときの時間ｋまでに受取られたベクトルの確率）を表し、
βk+1f(ｉ,m)はトレリス状態ｍに対する時間ｋにおける逆方向の状態計量（すなわち、時間ｋにおける次のトレリス状態がｆ（ｉ，ｍ）であると仮定したときの時間ｋからそのトレリスの終りまでに受取られたベクトルの確率）を表し、ここでｆ（ｉ，ｍ）は入力ｉおよび現在の状態ｍを与えられた次の状態を表し、
δkｉ,mは状態ｍおよび入力ｉに対する時間ｋにおけるブランチ計量である。
【００５７】
式（５）における２つの加算は全てのエンコーダ状態に対して行われる。
【００５８】
図５のＡおよびＢは、順方向および逆方向状態計量計算をそれぞれグラフで表している。順方向状態計量は以下のように反復的に計算されることができる：
【数２０】
2005521269.tif 000022
【００５９】
ここで、ｂ（ｉ，ｍ）は、入力ｉに対応したブランチが状態ｍに移行した前の時間インデックスｋ−１における状態である。逆方向状態計量もまた以下のように反復的に計算されることができる：
【数２１】
2005521269.tif 000023
【００６０】
上記の式（５）乃至（７）によって示されているように、ＭＡＰアルゴリズムは、ハードウェアでは容易に行われないいくつかの乗算を行う。しかしながら、このアルゴリズムは、その項の対数（または負の対数）を取ることによってログドメインに変換されることができる。ログドメインにおいては、２つの項の乗算は比較的簡単な加算に変換され、それはｍｉｎ*関数によって行われることができる。このｍｉｎ*関数は、次のように表されることができる：
ｍｉｎ*（ａ，ｂ）＝−ｌｎ（ｅ-a＋ｅ-b）＝ｍｉｎ（ａ，ｂ）＋ｐ（ｇ）            式（８）
ここで、ｐ（ｇ）は補正項であり、次のように表されることができる：
ｐ（ｇ）＝−ｌｎ（１＋ｅ-g）
ここで、ｇ＝−｜ａ−ｂ｜である。
【００６１】
ログドメインにおいて、上述された項は、次のように定義されることができる：
Ｌk＝−ｌｎ（λk）  
Ａkm＝−ｌｎ（αkm）                        式（９）
Ｂkm＝−ｌｎ（βkm）
Ｄkｉ,m＝−ｌｎ（δkｉ,m）
それ故、ＭＡＰアルゴリズムに対する計算は次のように表されることができる：
【数２２】
2005521269.tif 000024
【００６２】
ここで、ｃn,ｉ,mは、入力ビットｉおよび状態ｍを仮定したときのパリティビットｎに対するパリティ仮説である。式（１３）において、２つのｍｉｎ*関数はそれぞれ、式（５）における加算と同様に、全ての可能な状態ｍに対して動作する。
【００６３】
ＭＡＰアルゴリズムに対する上記の式の導出は、技術的によく知られている。このような導出は、この明細書にでは参考文献とされているSteven S. Pietrobon氏による論文（“Implementation and Performance of a Turbo/Map Decoder,”International Journal of Satellite Communications,Vol.16,1988,pp.23-46,）に記載されている。
【００６４】
ｍｉｎ*関数は、この関数に与えられた入力ａおよびｂのスケール情報に依存する。式（２）に示されている受取られたビットｖkのシーケンスに対して、スケールされたビットは次のように表されることができる：
【数２３】
2005521269.tif 000025
【００６５】
スケールされたビットの平均に対する分散比は次のように表されることができる：
【数２４】
2005521269.tif 000026
【００６６】
ここで、ｗkは、ＭＡＰデコーダへの入力ビットｕkの“スケール”を表す。スケーリング係数ｓkは典型的に、スケールされた全てのビットｕkに対する品質ｓkσk2／Ａkがほぼ等しくなるように（すなわち、所定のコードセグメントに対してｗk＝ｗ）、コードセグメント中の受取られた各ビットｖkに対して選択される。適切なスケーリング係数を評価する（あるいは予め測定する）ために種々の技術が使用されることができる。これらの技術はＭＡＰデコーダに関連したものであってもよいし、あるいは
ターボデコーダの前の復号計量の組合せのある別の粗雑な形式であってもよい。
【００６７】
受取られたビットｖkの分散σk2および振幅Ａkが知られている場合、スケーリング係数ｓkは、量子化されたビットｕk（ｍｉｎ*関数への入力ａおよびｂとして使用された）が絶対値でそれらの平均の２倍の分散を有する、すなわち、ｓkσk2／Ａk＝２となるように、σk2、Ａkおよび量子化分解能の関数として選択されることができる。この場合、ｍｉｎ*関数に対する関数ｐ（ｇ）は簡単に次のように表されることができる：
Ｐ（ｇ）＝−ｌｎ（１＋ｅ-g）                    式（１４ａ）
しかしながら、スケーリング係数ｓkがｓkσk2／Ａk≠２となるようなものである場合、関数ｐ（ｇ）は次のようなさらに一般化された形で表されることができる：
Ｐ（ｇ，ｗ）＝−０．５ｗ・ｌｎ（１＋ｅ-g/(0.5w)）                    式（１４ｂ）
式（１４ｂ）から認められるように、スケール情報はｍｉｎ*関数に対する関数ｐ（ｇ，ｗ）を正確に評価することが必要とされる。
【００６８】
あるＭＡＰデコーダ構成においては、式（１４ｂ）に示されている関数ｐ（ｇ，ｗ）は、ｍｉｎ*関数の評価を促進することのできるルックアップテーブルにより実施される。１組のルックアップテーブルが１組のスケール値ｗに対して設けられてもよい。たとえば、ｗ＝０，３，６，９および１２の５つの値に対して５つのルックアップテーブルが設けられることができる。スケールに対する値ｗ（σk2、Ａkに対する評価された、あるいは知られている値と、量子化後のビットの数とに基づいて決定されてもよい）に応じて、関数ｐ（ｇ，ｗ）を評価するために適切なルックアップテーブルが使用される。たとえば、ｗ＝１２に対するルックアップテーブルは、入力ビットｕkが６ビットに適切にスケールされて量子化されたときの使用のために設計され、ｗ＝６に対するルックアップテーブルは、入力ビットｕkが５ビットに適切にスケールされて量子化されたときの使用のために設計され、ｗ＝３に対するルックアップテーブルは、入力ビットｕkが４ビットに適切にスケールされて量子化されたときの使用のために設計されてもよい。
【００６９】
多くの例において、受取られたビットの分散σk2および振幅Ａkは知られない。その代り、これらの量は、たとえば、データ送信に対して使用されるビットレート等の種々のシステムパラメータに基づいて評価されてもよい。その後、スケールｗに対する所望の値が得られるように、このシステムパラメータ（および、必らずしもそれに限らないが、スケーリングまたは雑音）に基づいてスケーリング係数ｓkが選択される。しかしながら、受取られたビットに対する実際のスケーリングが１以上の理由（フェーディング、電力制御、セル構成等のような）のために所望のスケーリングから逸れた場合には、関数ｐ（ｇ，ｗ）を評価するために間違ったルックアップテーブル（すなわち、間違ったスケール値）が使用されるために、ＭＡＰデコーダの性能は低下する。
【００７０】
本発明の特徴は、受取られたビットに対するスケール情報が知られていないときにターボデコーダの性能を改善する技術を提供することである。一般に、復号される所定のコードセグメント（たとえば、データパケット）に対して、いくつかの仮説が形成される。各仮説ｈは、スケーリング係数の仮説を設けられたシーケンスＳhおよび仮説を設けられたスケールｗhに対応している。その後、コードセグメントは、形成された各仮説にしたがって復号され、各仮説に対する復号された結果が１以上の性能計量に基づいて評価される。全ての仮説に対する性能が比較され、性能計量により決定された“最良の”復号された結果を提供した特定の仮説がコードセグメントに対して使用される。ここに記載されている技術を使用することにより、利用可能な復号性能は理論上の限界に近づくことがシミュレーションにより示されており、ここで、理論上の限界は、たとえば、ルックアップテーブルが生成されるスケールｗに対する量子化された値等により制限されてもよい。たとえば、ｗ＝０，３，６，９および１２のスケール値に対して５つのルックアップテーブルが設けられた場合、復号性能はスケールｗに対するこれらの量子化された値によって制限されてもよい。
【００７１】
図６は、本発明の特徴にしたがってコードセグメントをターボ復号するプロセスのフロー図である。最初に、ステップ612においてコードセグメントに対するいくつかの仮説が形成され、各仮説ｈはスケーリング係数の特定のシーケンスＳhおよび特定のスケール選択ｗhに対応している。形成される仮説の特定の数は、たとえば、コードセグメントを復号するために利用可能な時間の量、σk2およびＡkの最初の評価における信頼度等の種々の考慮事項に依存する。
【００７２】
その後、ステップ614において、評価されていない仮設が評価のために選択される。評価の最初の部分において、ステップ616でコードセグメントがその選択された仮説（すなわち、特定のＳhおよびｗh）にしたがってターボ復号される。これは、復号されたビットの候補シーケンスを提供するために受取られたビットをスケーリング係数のシーケンスＳhでスケールし、そのスケールされたビットを分解能の必要とされる数のビット（たとえば、σk2、ＡkおよびＳhによって決定される）に量子化し、その量子化されたビットをスケール選択ｗhで復号する（たとえば、ｗhの特定の値に対するルックアップテーブルを使用して）ことを必然的に伴なってもよい。その後、ステップ618において、１以上の性能計量を使用してその仮説に対する復号された結果の品質が決定され、これについて以下説明する。
【００７３】
その後、ステップ620において、現在の仮説に基づいたコードセグメントに対する復号された結果がこれまでの最良のものであるか否かが決定される。この仮説がこれまでの最良である場合、ステップ622において、性能計量は後で比較されるために記憶される。仮説値（たとえば、スケーリング係数シーケンスＳhおよびスケールｗh）、復号された結果のような別の情報もまた記憶されてもよい。その後、プロセスはステップ624に進む。そうではなく、現在の仮説が最良のものではない場合、プロセスは単にステップ620からステップ624に進む。
【００７４】
ステップ624において、全ての仮説が評価された否かが決定される。答えがノーならば、プロセスはステップ614に戻り、別の評価されていない仮説が評価のために選択される。そうでなく、全ての仮説が評価されている場合、プロセスはステップ626に進み、最良の仮説に対する復号された結果が提供される。その後、プロセスは終了する。
【００７５】
図６に示されている復号方式は、受取られたビットに対するスケーリング情報が知られていないときに使用されることのできる一般的な形態を表している。多くの実際の構成においては、評価されることのできる仮説の数は、種々の考慮事項によって制限される可能性がある。たとえば、コードセグメントを復号するために利用可能な時間期間が制限され、そのために評価されることのできる仮説の数が制限される可能性がある。ｍｉｎ*関数が１組のルックアップテーブルにより評価された場合、スケールｗに対する可能な値もまた制限される。たとえば、ｗ＝０，３，６，９および１２に対して５つのルックアップテーブルが設けられることができるが、その場合スケールｗはこれら５つの値に制限される。図６に示されている復号方式への種々の変化が本発明の技術的範囲内で考えられる。これら復号方式のいくつかを以下に説明する。
【００７６】
図７は、本発明の別の実施形態によるターボ復号方式のフロー図である。この復号方式は、スケーリング係数の同じシーケンスＳおよび異なったスケール選択ｗによりいくつかの仮説を評価する。最初に、ステップ710において、ある基準（たとえば、σk2およびＡkに対する評価された値、コードセグメントのデータレート等）に基づいて、スケーリング係数の特定のシーケンスＳが選択される。その後、コードセグメント中の受取られたビットｖkは選択されたスケーリング係数にしたがってスケールされ、所望の数のビット（たとえば、評価されたσk2およびＡkおよび選択されたＳに基づいて決定される）に量子化されて入力ビットｕkを形成し、これは後に記憶装置中に記憶される。ステップ712では、評価のために１組のスケール値ｗhもまた選択される。これらのスケール値は、種々の基準（たとえば、σk2およびＡkに対する評価された値、選択されたＳ、復号するために利用可能な時間期間等）に基づいて選択されてもよい。たとえば、全てのルックアップテーブルに対するスケール値（たとえば、ｗh＝０，３，６，９および１２）が評価のために選択されてもよい。
【００７７】
その後、ステップ714において、評価されていないスケール値ｗhが評価のために選択される。次に、ステップ716において、コードセグメントがその選択された仮説（すなわち、特定のスケール値ｗh）にしたがってターボ復号される。これは、復号されたビットの候補シーケンスを提供するためにそのコードセグメントに対する入力ビットｕkを記憶装置から検索し、そのビットをスケール選択ｗhで復号する（たとえば、ｗhに対するルックアップテーブルを使用して）ことを必然的に伴なってもよい。その後、ステップ718において、復号された結果の品質は１以上の性能計量に基づいて決定される。ステップ720、722、724および726における残りの処理は、図６のステップ620、622、624および626に対するものにそれぞれ類似している。
【００７８】
このようにして、図７に示されている復号方式は、特定のシーケンスＳおよび１組のスケール選択ｗhに基づいてコードセグメントを復号し、性能計量により決定された最良のスケール選択に対応した復号された結果を提供する。
【００７９】
別のターボ復号方式では、コードセグメントは、特定のスケール選択ｗおよびスケーリング係数の異なったシーケンスＳhにより形成されたいくつかの仮説にしたがって復号される。たとえば、スケーリング係数のシーケンスＳhはＳ0、２Ｓ0、Ｓ0／２等として選択されてもよい。最初に、コードセグメント中の受取られたビットｖkが記憶装置に記憶される。評価される各仮説に対して、入力ビットｕkを得るためにコードセグメント中の受取られたビットｖkが記憶装置から検索され、評価されている仮説に対してスケーリング係数のシーケンスＳhにしたがってスケールされて、所望の数のビットに量子化される。
【００８０】
その後、スケールｗにしたがって入力ビットｕkがターボ復号され、復号されたビットの候補セグメントを生成する。再び、復号された結果の品質は１以上の性能計量に基づいて決定される。スケーリング係数の別のシーケンスＳhに対する別の仮説もまた同様に評価される。その後、性能計量により決定された最良のシーケンスＳhに対応した復号された結果は、ターボデコーダ出力として供給される。
【００８１】
上記のターボ復号方式に対しては、ターボデコーダに対する入力ビットｕkを得るために、受取られたビットｖkに関して異なったスケーリングが行われる。受取られた各ビットｖkは分解の多くのビット（たとえば、１６ビット）を有している可能性があるので、受取られたビットのコードシーケンス全体を記憶する記憶要求が大きくなる可能性がある。
【００８２】
記憶要求を減少させるために、受取られたビットｖkは連続してスケールされ、量子化されて評価され、最大スケーリング係数のシーケンスによりスタートしてもよい。たとえば、選択されたシーケンスがＳ0、２Ｓ0およびＳ0／２である場合、受取られたビットｖは最初に２Ｓ0によってスケールされ、その最初の仮説に対して記憶されることができる。次の仮説に対して、その記憶されたビットが検索され、０．５倍に再びスケールされ（Ｓ0を得るために）、量子化されて評価される。そして第３の仮説に対しては、記憶されたビットが検索され、さらに０．５倍に再びスケールされ（Ｓ0／２を得るために）、量子化されて評価される。このようにして、記憶要求は最大スケーリング係数に対して必要とされる記憶サイズに減少される。しかしながら、連続したスケーリングおよび量子化は典型的に量子化雑音の量を増加させ、復号性能を低下させる可能性がある。
【００８３】
さらに別のターボ復号方式において、コードセグメントは、スケーリング係数の特定のシーケンスＳおよび種々のスケール値ｗhにより形成されたいくつかの仮説にしたがって復号される。最初に、コードセグメント中の受取られたビットｖkがスケールされて量子化され、入力ビットｕkとして記憶装置に記憶される。評価される各仮説に対して、コードセグメント中の入力ビットｕkが記憶装置から検索され、スケール値ｗhにしたがってその仮説に対して再び評価される。
【００８４】
しかしながら、この復号方式に対して、各仮説に対して実行される反復数が少ない。たとえば、コードセグメントを完全に復号するために通常必要とされる可能性のある１５，１７または１９の代りに、３，５またはある別の数の反復が各仮説に対して行われてもよい。各仮説に対する少ない反復数は、所定量の時間に対して多くの仮説が評価されることを可能にする。各仮説に対して、復号結果の品質は、１以上の性能計量に基づいて評価される。したがって、コードセグメントを完全に復号するために最良の性能による仮説が使用され、これはその後ターボデコーダ出力として供給される。
【００８５】
ここに記載されているターボ復号方式の種々の変形もまた実施されてもよく、それは本発明の技術的範囲内にある。一般に、任意の数の仮説が評価されてもよく、各仮説はパラメータ（たとえば、スケーリング係数のシーケンスおよび、またはスケール）の任意のセットに対する値の任意の特定のセットを含んでいる。さらに、各仮説は種々の方法で（たとえば、部分的または完全な復号で）評価されてもよい。
【００８６】
性能計量
上述したように、復号された結果の品質を決定するために種々の性能計量が使用されることができる。これらの計量には、（１）ＣＲＣチェック、（２）候補シーケンス中の復号されたビットに対する最小または平均ＬＬＲ、（３）復号されたセグメントが宣言されたときに完了される反復の数、（４）相関計量、（５）再度符号化されたエネルギ、および（６）再度符号化されたビットエラーレート（ＢＥＲ）が含まれる。以下、これらの計量を説明する。
【００８７】
コードセグメントは、復号された結果をチェックするために使用されることのできるＣＲＣビットを含んでいる可能性がある。ＣＲＣチェックがパスした場合、コードセグメントがエラー無しに復号されている可能性が高い。多くの仮説に対する多くの候補シーケンスがＣＲＣチェックにパスした場合には、そのシーケンスの１つが選択されることができる（たとえば、任意に、ある基準または別のある計量により）。
【００８８】
候補シーケンス（最終的な反復後の）中の復号されたビット間の最小または平均ＬＬＲが性能計量として使用されてもよい。いくつかの適用において、受取られたコードシーケンス中の情報ビットの任意の１つにエラーがある場合、コードシーケンスは許容不可能と考えられる可能性がある。また、別のいくつかの適用においては、コードシーケンス中の少数の情報ビットに対するエラーは許容可能である可能性がある。したがって、適用の要求に応じて、最悪のＬＬＲ（すなわち、最小の大きさを有するＬＬＲ）またはいくつかの悪いＬＬＲが、復号されたセグメントの品質の表示として使用されてもよい。いくつかの悪いＬＬＲの平均はまた性能計量として使用されてもよい。
【００８９】
ターボ復号は典型的に、復号されたセグメントを宣言する前に第１および第２の構成デコーダにより多数回（たとえば、１２，１６，２０またはおそらくそれ以上の回数）反復される。構成デコーダによる各反復により、受取られた情報ビットの信頼度は増加し、漸近的に最終的な値に到達する。ターボデコーダは、コードセグメント中のビットに対するＬＬＲが特定のしきい値を超えた場合に復号を終了するために復号プロセス中にチェックを使用してもよい。その代り、ターボデコーダは組込まれたエラー検出機能（たとえば、ＣＲＣチェック）を使用して、復号が成功して許容最大反復数に達する前に終了することができるか否かを決定してもよい。これらの場合において、コードセグメントを復号するために行われる反復の数は性能計量として使用されることができる。
【００９０】
補正計量は、受取られた情報ビット：
【数２５】
2005521269.tif 000027
【００９１】
（スケーリングおよび量子化前または後のいずれの）と候補シーケンス中の復号されたビットｂkの内積を行うことによって得られることができる。この内積は、受取られた情報ビットシーケンスにより要素単位で（すなわち、ビット単位で）候補シーケンスを乗算し、その乗算の結果得られた積を累算することにより行われることができる。累算された最終的な値は、２つのシーケンス間の相関を表す。この内積は、次のように表されることができる：
【数２６】
2005521269.tif 000028
【００９２】
相関計量Ｍeに対する高い値は、受取られたビットと復号されたビットとの間における高度の相関を示す。反対に、相関計量に対する低い値は、復号されたビット中のエラーおよび、または受取られたビットに対する低い値を示す。したがって、相関計量に対する高い値は、高品質の復号結果に対応する。
【００９３】
受取られたおよび復号されたビットのパワー間の相関もまた計算されることができる。この場合、各受取られた情報ビットおよび各復号されたビットが最初に二乗される。その後、二乗された復号されたビットおよび二乗された受取られた情報ビットのベクトルに関して内積が行われる。
【００９４】
再度符号化された相関計量に対しては、復号されたセグメント中の復号されたビットｂkが最初に同じターボエンコーダによって再度符号化され、再度符号化されたビットｒkを得るために送信装置において使用された同じパンクチャ方式によりパンクチャされる。その後、この再度符号化されたビットｒkは、受取られたビットｕkまたはｖkと相関される。しかしながら、その相関は、相関計量に対する場合のように受取られた情報に対してだけでなく、受取られた情報およびパリティビットの全てに対して行われる。再度符号化された相関計量に対する内積は、次のように表されることができる：
【数２７】
2005521269.tif 000029
【００９５】
上述された相関計量と同様に、再度符号化された相関計量Ｍreに対する高い値は、高品質の復号結果に対応する。再度符号化された相関計量は相関計量より正確であることもある。これは、受取られた情報およびパリティビットの全て（情報ビットだけでなく）が計量によって評価されるためである。
【００９６】
再度符号化されたビットエラーレートは、候補シーケンスを再度符号化して再度符号化されたビットをビット単位で受取られた情報およびパリティビット（ハード決定または２進値に変換されている）と比較することによって得られることができる。比較中に、再度符号化されたビットと受取られたビットとの間のエラーがカウントされる。その後、再度符号化されたＢＥＲは、比較された合計ビット数で除算されたビットエラーの数として決定される。再度符号化されたＢＥＲに対する低い値は、高品質の復号結果を表すものである。
【００９７】
上記の性能計量のいくつかは、本出願人にその権利が譲渡された米国特許第 6,175,590号明細書（“METHOD AND APPARATU FOR DETERMINING THE RATE OF DATA IN A VARIABLE RATE COMMUNICATION SYSTEM,”2001年1月16日出願）にさらに詳細に記載されている。別の性能計量もまた本発明の技術的範囲内で使用されることができる。また、性能計量の任意の組合せが復号された結果の品質決定に使用されることができる。
【００９８】
図８は、本発明の１実施形態によるターボデコーダ800のブロック図である。ターボデコーダ800は図３および４のターボデコーダ316の１つの特定の構成である。この実施形態においては、ターボデコーダ800はローカルメモリ／結合装置808と、ＭＡＰデコーダ810と、検出装置812と、ルックアップテーブル814と、性能計量計算装置816と、記憶装置820と、およびアドレス発生装置830とを備えている。再び図４を参照とすると、２つの構成デコーダ410aおよび410bは直列に動作され、一方のデコーダからのエキストリンシック情報が他方のデコーダへの入力として供給される。２つの構成デコーダは直列に動作されるので、両構成デコーダを構成するために使用されるデコーダは１つ（物理的デコーダ）だけでよい。
【００９９】
スケーラ／量子化装置806は受信ビットｖkを受取って、スケーリング係数のシーケンスＳでスケールし、そのスケールされたビットを量子化し、量子化されたビットｕkをローカルメモリ／結合装置808に供給する。受取られたビットは、それがターボデコーダ800に供給される前に別の装置(たとえば、チャンネルインターリーバ)によって送信装置でパンクチャされていた場合には、デパンクチャ(de-puncture)されてもよい。デパンクチャは、コードセグメント中のパンクチャされた各ビットに対して消去を実施することにより行われ、この消去はビットがゼロまたは１である可能性が同じであることを示す。あるいは、同じビットに対応した受取られたシンボルは、そのビットが反復されていたならば、適切なやり方で組合せられてもよい。
【０１００】
行われている特定の復号反復（すなわち、第１または第２の構成エンコーダに対する復号）に応じて、情報およびパリティビットの適切なシーケンスがローカルメモリ／結合装置808に供給される。前の復号反復から得られたＡＰＰもまたＡＰＰ記憶装置820からローカルメモリ／結合装置808に供給される。１実施形態において、ローカルメモリ／結合装置808は、（１）情報ビット：
【数２８】
2005521269.tif 000030
【０１０１】
を受取って、これらのビットに対するＬＬＲ：
【数２９】
2005521269.tif 000031
【０１０２】
を計算し、（２）ステップ（１）において計算された
【数３０】
2005521269.tif 000032
【０１０３】
を対応したエキストリンシック情報と組合せてＡＰＰを生成し、（３）パリティビット：
【数３１】
2005521269.tif 000033
【０１０４】
を受取って、これらのビットに対するＬＬＲ：
【数３２】
2005521269.tif 000034
【０１０５】
を計算するように設計される。
【０１０６】
１実施形態において、ローカルメモリ／結合装置808は、たとえば、情報およびパリティビット分の４つのウインドウを一時的に記憶するスライディングウインドウアーキテクチャ（ＳＷＡ）を使用して構成される。情報およびパリティビットの３つのウインドウがＭＡＰデコーダ810内の３状態計量計算装置により動作されているが、第４のウインドウが情報ビットに対する値および記憶装置820からのＡＰＰにより更新される。１実施形態において、各ウインドウは３２のサイズを有している。
【０１０７】
すなわち、各ウインドウは、
【数３３】
2005521269.tif 000035
【０１０８】
を有している。別のウインドウ長および、または異なった数のウインドウも本発明の技術的範囲内で使用されることができる。
【０１０９】
１実施形態において、ＭＡＰデコーダ810は、ログＭＡＰアルゴリズムを実行するＳＩＳＯデコーダを構成する。ＭＡＰベースの復号アルゴリズム（たとえば、共に技術的に知られているｍａｘログＭＡＰアルゴリズムまたはｍａｘ*ログＭＡＰアルゴリズム）もまた使用されてもよい。１実施形態において、ＭＡＰアルゴリズムを実施するために、ＭＡＰデコーダ810は、１個の順方向状態計量計算装置および２個の逆方向状態計量計算装置とを備えている。各順方向（または逆方向）状態計量計算装置は、（１）前の（または将来の）時間インスタンスにおける状態の確率と、および（２）前の（または将来の）状態と現在時間の状態との間の通路の確率とに基づいて、所定の時間インスタンスｋにおけるトレリス中の２K+1状態のそれぞれの確率の対数を計算し、ここでＫは構成エンコーダの制約長である。その後、これらの順方向および逆方向の状態計量は、情報ビットに対する経験的確率を計算するために使用される。順方向および逆方向の状態計量計算は上記に説明されている。
【０１１０】
ルックアップテーブル814は、順方向および逆方向の状態計量ならびにブランチ計量を上述したように計算するために使用されたｍｉｎ*関数を促進するために使用されてもよい。異なったスケール値ｗに対して複数のルックアップテーブルが設けられてもよく、または使用される特定のルックアップテーブルがスケール選択（制御装置840によって提供されてもよい）によって決定されてもよい。
【０１１１】
性能計量計算装置816は、復号結果の品質を決定するために使用されるある候補シーケンスに対する１以上の性能計量を計算するために使用されてもよい。性能計量計算装置816は、ＣＲＣチェックを行い、および、または最小または平均ＬＬＲ、相関計量、再度符号化されたエネルギ、再度符号化されたＢＥＲ、ある別の計量、あるいはその任意の組合せを決定することができる。
【０１１２】
記憶装置820は復号反復からのＡＰＰを記憶し、このＡＰＰはその後次の復号反復のために使用される。ＡＰＰは、アドレス発生装置830によって与えられた書込みおよび読取りアドレスにより指図された記憶装置820内の適切な位置に記憶され、この位置から検索される。アドレスは、送信装置においてコードセグメントを符号化するために使用されたインターリーブ方式にしたがってＡＰＰが適切にインターリーブされ、デインターリーブされるように生成される。
【０１１３】
制御装置840は、ターボデコーダ800の動作を指図することができる。制御装置840はあるコードセグメントに対していくつかの仮説を公式化し、そのコードセグメントに対して使用されるスケーリング係数およびスケール値を示す制御信号を供給することができる。制御装置840はさらに、仮説に対して計算された性能計量に対する値を受取り、仮説の１つを最良の仮説として選択することができる。その後、ターボデコーダ800から最良の仮説に対する復号されたビットが供給される。
【０１１４】
以上、異なったスケール値ｗに対してｍｉｎ*関数を構成するために１組のルックアップテーブルを使用するターボデコーダ設計に対して、復号技術の種々の特徴を説明してきた。しかしながら、これらの復号技術はルックアップテーブルの使用に制限されず、ｍｉｎ*関数は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せを含む別の手段を使用して評価されることができる。
【０１１５】
ここに記載されている復号技術は、スケール情報が知られていないときにコードセグメントをターボ復号するために有効に使用されることができる。これらの技術は、ｃｄｍａ２０００、Ｗ−ＣＤＭＡ、ＩＳ−８５６およびその他のようなターボ復号を使用する任意の通信システムに対して使用されてもよい。これらの技術はまた逆方向リンク（すなわち、アップリンク）だけでなく、順方向リンク（すなわち、ダウンリンク）でも使用されることができる。
【０１１６】
スケーリング係数およびスケール値に加えて、別のパラメータがターボ復号のために調節されることができる（たとえば、反復回数、ウインドウサイズ、およびおそらくその他）。また、ここに記載されている技術はターボデコーダ以外の別のタイプのデコーダに適応されることができる。たとえば、スケーリング概念は、ヴィタビデコーダはｗから独立しているために変数（スケーリング係数Ｓ）が１つしか存在しないことは別として、ヴィタビデコーダに適用されることができる。
【０１１７】
この明細書に記載されているターボデコーダは、ハードウェア、ソフトウェア、ファームウェアまたはその組合せで構成されることができる。ハードウェア設計に対して、ターボデコーダはデジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、プロセッサ、マイクロプロセッサ、制御装置、マイクロ制御装置、フィールドプログラム可能なゲートアレイ（ＦＰＧＡ）、プログラム可能な論理装置、別の電子装置またはその組合せ内に構成されることができる。また、ソフトウェアまたはファームウェア設計に対しては、ターボデコーダは、プロセッサ（たとえば、図８中の制御装置840等）により実行されるコードにより構成されることができる。記憶装置およびルックアップテーブルはまた、たとえば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、フレッシュメモリ他等の、種々のメモリ技術により構成されることができる。ターボデコーダおよび記憶装置の種々の構造および構成が本発明の技術的範囲内で可能である。
【０１１８】
好ましい実施形態の上記の説明は、当業者が本発明を形成し、あるいは使用することを可能にするために示されている。これらの実施形態に対する種々の修正は、当業者に容易に明らかになり、ここに定められている一般原理は発明力を要することなく別の実施形態に適応されることができる。したがって、本発明はこの明細書に示されている実施形態に制限されるものではなく、ここに開示されている原理および新しい特徴に一致した広い技術範囲を与えられている。
【図面の簡単な説明】
【０１１９】
【図１】本発明の種々の特徴および実施形態を実施することのできる通信システムの簡単なブロック図。
【図２】Ｗ−ＣＤＭＡ規格により規定されたターボエンコーダの概略図。
【図３】受信装置におけるＲＸデータプロセッサ内の処理の一部を象徴的に示すブロック図。
【図４】ターボデコーダの設計のブロック図。
【図５】ＭＡＰデコーダに対する順方向および逆方向状態計量計算をそれぞれグラフィックで表す概略図。
【図６】本発明の実施形態によるターボ復号方式に対するフロー図。
【図７】本発明の実施形態によるターボ復号方式に対するフロー図。
【図８】本発明の実施形態によるターボデコーダのブロック図。
【図１】
2005521269.tif 000036
【図２】
2005521269.tif 000037
【図３】
2005521269.tif 000038
【図４】
2005521269.tif 000039
【図５】
2005521269.tif 000040
【図６】
2005521269.tif 000041
【図７】
2005521269.tif 000042
【図８】
2005521269.tif 000043
【国際調査報告】
2005521269.tif 000044
2005521269.tif 000045
2005521269.tif 000046