(57)【要約】  ＭＡＰ式復号化アルゴリズムのトレリス線図におけるバタフライのブランチメトリックを計算する方法であって、上記方法は、上記バタフライにおける遷移に対して、初期化されたブランチメトリックを提供することと、上記バタフライのインデックスと、上記トレリス線図に関連した演算を行う符号化装置のタップ位置を表す１つ又は複数の多項式とから導出した制御信号に従って、上記遷移に対応したデータ値のグループにより上記ブランチメトリックをインクリメントすることとを含む。上記グループは組織ビット値及びパリティビット値を含む。
2008532402.tif 000002
【特許請求の範囲】
【請求項１】
ＭＡＰ式復号化アルゴリズムのトレリス線図におけるバタフライのブランチメトリックを計算する方法であって、上記方法は、
上記バタフライにおける遷移に対して、初期化されたブランチメトリックを提供することと、
上記バタフライのインデックスと、上記トレリス線図に関連した演算を行う符号化装置のタップ位置を表す１つ又は複数の多項式とから導出した制御信号に従って、上記遷移に対応したデータ値のグループにより上記ブランチメトリックをインクリメントすることとを含み、
上記グループは組織ビット値及びパリティビット値を含む方法。
【請求項２】
上記グループは事前情報値を含む請求項１記載の方法。
【請求項３】
上記タップ位置を表わすフォワード多項式及びフィードバック多項式を含み、上記フォワード多項式及び上記フィードバック多項式は上記制御信号の導出に使用される請求項１又は２記載の方法。
【請求項４】
トレリス線図における状態メトリックを計算する方法であって、上記トレリス線図における少なくとも１つのバタフライのそれぞれに対して、請求項１、２又は３記載の種類の方法を用いて上記バタフライに対するブランチメトリックを計算することを含む第１の状態メトリック更新処理により、上記トレリス線図における第１の方向の第１の状態メトリックを計算することを含む方法。
【請求項５】
上記第１の状態メトリック更新処理は、少なくとも１つのバタフライに対する開始状態及び終了状態を、対応する１つ又は複数のバタフライインデックスから再生成することをさらに含む請求項４記載の方法。
【請求項６】
上記トレリス線図における少なくとも１つのバタフライのそれぞれに対して、請求項１、２又は３記載の種類の方法を用いて上記バタフライに対するブランチメトリックを計算することを含む第２の状態メトリック更新処理により、上記トレリス線図における、上記第１の方向とは反対の第２の方向の第２の状態メトリックを計算することをさらに含む請求項４又は５記載の方法。
【請求項７】
上記第２の状態メトリック更新処理は、少なくとも１つのバタフライに対する開始状態及び終了状態を、対応する１つ又は複数のバタフライインデックスから再生成することをさらに含む請求項６記載の方法。
【請求項８】
上記第２の状態メトリック更新処理は、少なくとも１つのバタフライのそれぞれに対して、
上記バタフライのブランチメトリックを上記バタフライの開始状態の第２の状態メトリックと合成して、上記バタフライの終了状態の第２の状態メトリックのための候補メトリックを生成することと、
上記バタフライの終了状態の第２の状態メトリックとなる候補メトリックを選択することとを含み、
上記方法は、少なくとも１つのトレリスステージのそれぞれに対して、上記ステージに対する対数尤度比を生成する際の１つのステップとして、上記ステージの候補メトリックを上記ステージの第１の状態メトリックと合成することをさらに含む請求項６又は７記載の方法。
【請求項９】
請求項１乃至８のいずれかに記載の方法をデータ処理装置に実行させるプログラム。
【請求項１０】
ＭＡＰ式復号化アルゴリズムのトレリス線図におけるバタフライのブランチメトリックを計算する装置であって、上記装置は、
上記バタフライでの遷移に対して、初期化されたブランチメトリックを提供する手段と、
上記バタフライのインデックスと、上記トレリス線図に関連した演算を行う符号化装置のタップ位置を表す１つ又は複数の多項式とから導出した制御信号に従って、上記遷移に対応したデータ値のグループにより上記ブランチメトリックをインクリメントする手段とを備え、
上記グループは組織ビット値及びパリティビット値を含む装置。
【請求項１１】
上記グループは事前情報値を含む請求項１０記載の装置。
【請求項１２】
上記タップ位置を表わすフォワード多項式及びフィードバック多項式を含み、上記フォワード多項式及び上記フィードバック多項式は上記制御信号の導出に使用される請求項１０又は１１記載の装置。
【請求項１３】
トレリス線図における状態メトリックを計算する装置であって、
上記トレリス線図における第１の方向の第１の状態メトリックを計算する手段と、
上記第１の状態メトリックを計算する手段のためのブランチメトリックを計算する請求項１０、１１又は１２のいずれかに記載の装置とを備えた装置。
【請求項１４】
上記第１の状態メトリックを計算する手段は、少なくとも１つのバタフライに対する開始状態及び終了状態を、対応する１つ又は複数のバタフライインデックスから再生成するように構成されている請求項１３記載の装置。
【請求項１５】
上記トレリス線図における、上記第１の方向とは反対の第２の方向の第２の状態メトリックを計算する手段と、
上記第２の状態メトリックを計算する手段のためのブランチメトリックを計算する請求項１０、１１又は１２のいずれかに記載の装置とをさらに備えた請求項１３又は１４記載の装置。
【請求項１６】
上記第２の状態メトリック更新計算手段は、少なくとも１つのバタフライに対する開始状態及び終了状態を、対応する１つ又は複数のバタフライインデックスから再生成するように構成されている請求項１５記載の装置。
【請求項１７】
上記第２の状態メトリックを計算する手段は、
少なくとも１つのバタフライのそれぞれに対して、上記バタフライのブランチメトリックを上記バタフライの開始状態の第２の状態メトリックと合成して上記バタフライの終了状態の第２の状態メトリックのための候補メトリックを生成し、上記バタフライの終了状態の第２の状態メトリックとなる候補メトリックを選択し、
上記装置は、少なくとも１つのトレリスステージのそれぞれに対して、上記ステージに対する対数尤度比を生成する際の１つのステップとして、上記ステージの候補メトリックを上記ステージの第１の状態メトリックと合成する手段をさらに含む請求項１５又は１６記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復元される信号を表すトレリス線図に関連付けられたメトリック計算を行うための装置及び方法に関する。
【背景技術】
【０００２】
デジタル通信システムにおいては、前方誤り訂正（ＦＥＣ）符号化を利用して伝送リンクの信頼性を改善することができる。ターボ符号化方式（非特許文献１）は、ＦＥＣ符号のファミリーに属し、現在、多数の通信システムに使用されている。例えば、３ＧＰＰの規格では、受信機による送信情報の復元を容易化するためにターボ符号が活用されている。
【０００３】
ターボ符号は、２つ（又はそれよりも多く）の要素符号が並列に（又は直列に）連結されて構成される（３ＧＰＰ規格で定義されているターボ符号を示した図１を参照）。これらの要素符号は再帰的組織畳み込み符号である。３ＧＰＰのターボ符号の場合、要素符号は符号化率が１／２であり、拘束長が４である。符号化するビット系列は、第１の要素符号へはそのままわたされるが、第２の要素符号の入力ではインターリーブされる。テールビットに対しては、どちらの要素符号とも送信終了時にゼロ状態になるように特別な動作モードが用いられる。この動作モードは、図１に破線で示されている。
【０００４】
許容される複雑さでターボ符号を復号化するには、通常、反復的な復号化アルゴリズムが選択される。図２は、そのような反復的アプローチを示している。要素符号は、２つの軟入力・軟出力（Soft-Input, Soft-Output：ＳＩＳＯ）復号化器１０及び１２を用いて別々に復号化される。ＳＩＳＯ復号化器１０による第１要素符号の復号化を用いて得られた情報がＳＩＳＯ復号化器１２へわたされ、同様に、ＳＩＳＯ復号化器１２による第２要素符号の復号化から導出された情報が、ＳＩＳＯ復号化器１０によって行われる復号化処理を支援するために用いられる。
【０００５】
復号化に係る１回目の反復では、組織ビット（systematic bits）に対応する軟判定と第１パリティビットに対応する軟判定とをＳＩＳＯ復号化器１０が使用して第１の要素符号の復号化を行う。この時点では、事前情報（a priori information）は用いられない。復号化に係る１回目の反復においては通常、利用できる事前情報がないからである。ＳＩＳＯ復号化器１０は、送信されたビットの対数尤度比（Log Likelihood Ratio：ＬＬＲ）を出力する。ＬＬＲは、０又は１がどの程度送信されているらしいかを示し、ＳＩＳＯ復号化器１２によって行われる復号化に役立てられる。しかしながら、ＬＬＲはそのまま使用することはできず、ＳＩＳＯ復号化器１２への入力に適したフォーマットになるように処理される必要がある。まず、１４において、ＬＬＲから事前情報を減算しなければならない。ただし、復号化に係る１回目の反復では、利用できる事前情報が存在しないことに注意する必要がある。ＬＬＲと事前情報との間におけるこの差分によって形成される量は外部情報と呼ばれ、これは、送信されたビットに関してＳＩＳＯ復号化器１０が生成した情報に対応する。さらに１６において、これらの外部値をインターリーブする必要があり、それにより送信機において符号化するビット系列に適用したインターリーブ処理を再現する。ＳＩＳＯ復号化器１２によって行われる復号化では、組織ビットに対応する軟判定及び第２パリティビットに対応する軟判定とともに、ＳＩＳＯ復号化器１０が生成した外部情報を使用する。ＳＩＳＯ復号化器１２の出力では、送信されたビット系列に対して新しいＬＬＲ系列が生成される。これらのＬＬＲを使用して、ＳＩＳＯ復号化器１２が生成する外部情報が計算される。デインターリーブ処理（de-interleaving）の後に、この外部情報は、ＳＩＳＯ復号化器１０により、復号化に係る次の反復において事前情報として利用することができる。ＳＩＳＯ復号化器１０及び１２によって生成されるＬＬＲが次第に改善されるよう、以上の復号化処理が所定回数にわたって反復される。これらの改善されたＬＬＲは他のＳＩＳＯ復号化ステージに供給され、復号化アリゴリズム全体は、送信されたビット系列のＭＡＰ解に近い推定値に収束する。復号化に係るＮＴＣＩｔｅｒａｔｉｏｎｓ回の反復の終了時に、ＬＬＲの符号に従って送信ビットの推定値の極性が設定される。
【０００６】
ＳＩＳＯ復号化器１０及び１２において使用されるアルゴリズムの選択ははなはだ重要である。それによって、受信機の復号化性能と複雑さが左右されるからである。Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズム（非特許文献２）は、性能と複雑さのバランスが取れたアルゴリズムとして利用できるものの１つである。ＳＩＳＯ復号化器１０及び１２がＭａｘ−Ｌｏｇ−ＭＡＰアルゴリズムを使用した場合を以下に説明する。
【０００７】
図３は、Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムに基づくＳＩＳＯ復号化器１０における様々な処理ステージを示している。各処理ステージにおける様々な入出力情報のサンプルも示されている。
【０００８】
図４は、ＳＩＳＯ復号化器１２における様々な処理ステージを示す。ＳＩＳＯ復号化器１２における処理ステージのほとんどは、ＳＩＳＯ復号化器１０における処理ステージと同一であることが分かる。ＳＩＳＯ復号化器１０と１２の違いは、第２パリティサンプルの処理にインターリーブ処理／デインターリーブ処理が必要となるという点だけである。
【０００９】
図３及び図４から分かるように、図示されている処理は、「前方処理（forward processing）」及び「後方処理（backward processing）」と表示された２つの主要なフェーズに分けることができる。前方処理フェーズの結果は後方処理フェーズの間に検索され、ＬＬＲを導出するために組み合わされる。前方及び後方の計算フェーズにはいずれも、「バタフライ更新（butterflies update）」ステージが含まれていることも図から分かる。
【００１０】
図３及び図４では、受信機の複雑さを出来るだけ低く抑えるため、各種算術的計算はいずれも、固定小数点表現の各種数値を使用して行われる。使用する各種数値のワードサイズが図３及び図４に記載されている。例えば、各事前情報サンプルは、Ｂａｐｐ個のビットを用いて格納される。同様に、各組織サンプル及び各パリティサンプルはＢｓｄ個のビットを用いて格納される。
【００１１】
ＬＬＲを計算するためには、前方処理の「バタフライ更新」ステージ中に計算されたパスメトリック（path metric）が、後方処理の実行中に生成されたパスメトリックと合成される。従って、前方処理の実行中に生成されたパスメトリックは、後方処理ステージで使用されるまで、バッファに格納しておく必要がある。受信機の実装上の複雑さを出来るだけ低く抑えるためには、このバッファのサイズを最小化することが非常に重要である。前方処理の実行中に計算したパスメトリックを格納するために必要なメモリビット数は、（１）復号化されるビット数（符号ブロックサイズとも呼ぶ）、（２）要素符号を表すトレリス線図における状態数、及び（３）各パスメトリックを正確に表すために必要なビット数に対して線形に増大する。トレリス線図における状態数は、送信機によって導入された符号の構造で規定されるので、それを変更して受信機のメモリ要件を低減することはできない。メモリ要件に対する符号ブロックサイズの影響を低下させるには、受信信号系列全体に対してではなく所定のウィンドウに対して演算を行う復号化技術を利用することができる（非特許文献３）。最後に、パスメトリック計算結果を正確に表現するために必要となるビット数は、出来るだけ小さく抑える必要がある。
【００１２】
次に、ＳＩＳＯ復号化器１０の動作を詳細に説明する。当然ながらパリティサンプルのインターリーブ処理を考慮する必要があるものの、ＳＩＳＯ復号化器１２もほぼ同様に動作することは明らかであろう。
【００１３】
送信機側において、各情報ビットｘｋが符号化されてパリティサンプルｚｋが生成され、ｚｋがｘｋとともに出力される。図１及び図５に、ビットｚｋがどのように生成されるかを示す。図５における複数のトレリス状態は、図１に示した符号化器内の複数のメモリ構成要素の状態に対応する（この場合、最新のメモリ構成要素の内容が、図５の２進形式で表した状態インデックスのＬＳＢに対応する）。符号化のあと、Ｎ組のサンプル｛ｘｋ，ｚｋ｝ｋ∈｛１，…，Ｎ｝＝Ｒ１Ｎが送信される（Ｎは符号ブロックの長さである）。
【００１４】
受信機側においては、最初に、送信された符号化サンプルの推定値
【数１】
2008532402.tif 000003
が生成される。ターボ復号化アーキテクチャは、送信されたビットのＬＬＲを生成することを目的としている。Ｋ番目のビットの尤度比は、次のように表すことができる。
【００１５】
【数２】
2008532402.tif 000004
【００１６】
提案するターボ復号化アーキテクチャでは、尤度比の対数値をスケーリングした以下の推定値を生成する。
【００１７】
【数３】
2008532402.tif 000005
【００１８】
パラメータＬｃの値は伝送リンクの品質とともに変化するが、その受信コードブロック全体にわたっては一定であると仮定することができる。
【００１９】
送信されたビットのＬＬＲの推定値は、図３及び図４に示した処理ステージを所定回数にわたって反復することによって生成される。各ステージでの復号化処理は、送信されているビットの事前情報ＬａｋＩを更新することによって改善される。事前情報は次式で与えられる。
【００２０】
【数４】
2008532402.tif 000006
【００２１】
ここで、Ｉは反復数である。
【００２２】
次に、図３及び図４に示した各処理ステージで実行される各種の計算について述べる。
【００２３】
情報ビットｘｋに対応するトレリス線図の各状態に対して、Ｍ個の前方パスメトリック（forward path metric）
【数５】
2008532402.tif 000007
を、受信サンプル
【数６】
2008532402.tif 000008
と、情報ビットｘｋ−１に関連付けられたパスメトリックとを用いて次式により計算する。
【００２４】
【数７】
2008532402.tif 000009
【００２５】
Ｂ（ｊ，ｍ）は、入力ｊに対応する前ブランチ上で状態ｍから時間的に遡ったトレリス状態を表し、ｃＪ，Ｂ（ｊ，ｍ）は、状態Ｂ（ｊ，ｍ）から状態ｍへの遷移に対応するパリティビットを表している。
【００２６】
上式から、受信サンプルをｋの昇順で処理することにより、符号ブロック全体（又は、ウィンドウ処理技術を使用している場合はウィンドウ）について、個々のパスメトリックを生成できることがわかる。また、図５から、各状態ごとに処理を独立に行う必要がないことも分かる。トレリス線図全体にわたり、２つの終了状態（時間ｋ＋１における状態）が、常に同じく２つの開始状態（時間ｋにおける状態）に関連付けられている。従って、２状態対２状態の結びつきを利用して処理が行われる。この処理を前方「バタフライ更新」と呼ぶのはそのためである。
【００２７】
後方計算と組み合わせて各ＬＬＲを生成できるように、各状態と、符号ブロック内のすべての情報ビット（又は、ウィンドウ処理技術を採用している場合はウィンドウ）とについての各メトリックを格納しておく必要がある。
【００２８】
後方「バタフライ更新」計算は、前方「バタフライ更新」ステージで行われる計算とほとんど同様である。情報ビットｘｋに対応するトレリス線図の各状態に対して、Ｍ個の後方パスメトリック（backward path metrics）
【数８】
2008532402.tif 000010
を、受信サンプル
【数９】
2008532402.tif 000011
と、情報ビットｘｋ＋１に関連付けられたパスメトリックとを用いて次式から計算する。
【００２９】
【数１０】
2008532402.tif 000012
【００３０】
Ｆ（ｊ，ｍ）は、入力ｊに対応するブランチ上で状態ｍから時間の経過方向に移動したトレリス状態を表し、ｃｊ，Ｆ（ｊ，ｍ）は、状態Ｆ（ｊ，ｍ）から状態ｍへの遷移に関連付けられたパリティビットを表している。
【００３１】
後方パスメトリックの生成において生じるいくつかの中間値は、前方計算値と後方計算値とを合成してＬＬＲを生成するときに利用できるよう保持される。これらの中間値
【数１１】
2008532402.tif 000013
は、次式によって計算される。
【００３２】
【数１２】
2008532402.tif 000014
【００３３】
【数１３】
2008532402.tif 000015
は、情報ビットｊに関してトレリス状態ｍで終了する場合の後方メトリックを表す。
【００３４】
後方「バタフライ更新」計算は、これらの中間変数を使用して次式により簡潔に表すことができる。
【００３５】
【数１４】
2008532402.tif 000016
【００３６】
各情報ビットｘｋごとに、その時点の後方「バタフライ更新」計算結果が、格納されている前方パスメトリックと合成され、これにより次式でＬＬＲを計算することができる。
【００３７】
【数１５】
2008532402.tif 000017
【００３８】
復号化に係る次の反復で使用される情報ビットｘｋのための事前情報は、ＬＬＲと組織サンプルと現時点の事前情報とを用いて、次式により計算される。
【００３９】
【数１６】
2008532402.tif 000018
【００４０】
なお、復号化に係る最後の反復処理においては、この計算を実行する必要はない。ＬＬＲをそのまま使用して送信ビットの判定を行うことができる。
【００４１】
【非特許文献１】C. Berrou, A. Glavieux and P. Thitimajshima, Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes, ICC 1993, Geneva, Switzerland, pp. 1064-1070, May 1993。
【非特許文献２】W. Koch and A. Baier, Optimum and sub-optimum detection of coded data disturbed by time-varying intersymbol interference, GLOBECOM 90, pp. 1679-1684, Dec. 1990。
【非特許文献３】Performance analysis of Turbo decoder for 3GPP standard using the sliding window algorithm, M. Marandian, J. Fridman, Z. Zvonar, M. Salehi, PIMRC 2001。
【発明の開示】
【発明が解決しようとする課題】
【００４２】
本発明の目的は、復元される信号を表すトレリス線図に関連付けられたメトリック計算を行うための装置及び方法を提供することにある。
【課題を解決するための手段】
【００４３】
本発明の１つの態様によれば、ＭＡＰ式復号化アルゴリズムのトレリス線図におけるバタフライのブランチメトリックを計算する方法であって、上記方法は、
上記バタフライにおける遷移に対して、初期化されたブランチメトリックを提供することと、
上記バタフライのインデックスと、上記トレリス線図に関連した演算を行う符号化装置のタップ位置を表す１つ又は複数の多項式とから導出した制御信号に従って、上記遷移に対応したデータ値のグループにより上記ブランチメトリックをインクリメントすることとを含み、
上記グループは組織ビット値及びパリティビット値を含む方法が提供される。
【００４４】
本発明はまた、ＭＡＰ式復号化アルゴリズムのトレリス線図におけるバタフライのブランチメトリックを計算する装置であって、上記装置は、
上記バタフライでの遷移に対して、初期化されたブランチメトリックを提供する手段と、
上記バタフライのインデックスと、上記トレリス線図に関連した演算を行う符号化装置のタップ位置を表す１つ又は複数の多項式とから導出した制御信号に従って、上記遷移に対応したデータ値のグループにより上記ブランチメトリックをインクリメントする手段とを備え、
上記グループは組織ビット値及びパリティビット値を含む装置である。
【００４５】
本発明はまた、トレリス線図における状態メトリックを更新する方法及び装置に関する。
【００４６】
本提案の発明の適用分野は、Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムを使用したターボ復号化アーキテクチャに限定されない。本発明は、ＭＡＰアルゴリズムあるいはＭＡＰアルゴリズム派生のアルゴリズムに基づくいかなるターボ復号化アーキテクチャを使用した受信機にも使用することができる。
【００４７】
本提案の発明は、ウィンドウ処理技術を使用するターボ復号化受信機と、ウィンドウ処理技術を使用しないターボ復号化受信機とのいずれにも使用することができる。
【００４８】
本発明は、ハードウエア、プロセッサ上のソフトウエア、あるいはそれらの組み合わせのいずれによって実現してもよい。
【発明を実施するための最良の形態】
【００４９】
次に、本発明の特定の実施形態について添付図面を参照しながら説明するが、これらは一例として述べるに過ぎない。
【００５０】
本提案の発明の一部を構成する種々の方法について、３ＧＰＰ規格に規定されたターボ符号に関して説明する。ただし、本提案の技術は、任意のターボ符号に適用することができる（例えば、要素符号の数は２に限定されず、拘束長も４に限定されない）。
【００５１】
以下、図１のターボ復号化器のＳＩＳＯ復号化器１０に係る前方パスメトリック
【数１７】
2008532402.tif 000019
と、後方パスメトリック
【数１８】
2008532402.tif 000020
と、ＬＬＲの計算に関する本発明の一実施形態について説明する。ターボ符号化器の要素符号化器間で行われるインターリーブを考慮に入れて若干の変更を加えれば、以下の説明はＳＩＳＯ復号化器１２の動作にもあてはまるということは明らかであろう。
【００５２】
図１の要素符号化器のいずれかに関連する、図５に示す後述のトレリス線図の構造について、いくつかの点を観察することができる。図５に示す４つのバタフライには、上から順番に０乃至３の番号を付与することができる。このバタフライの番号付けは、バタフライインデックスと呼ばれることが多い。例えば、第３のバタフライは、バタフライインデックス２を有し、これは２進表記では１０になる。この２進数の前に１又は０を付けると、バタフライの開始状態が生成される。一方、この２進数の後に１又は０を付けると、バタフライの終了状態が生成される。いま、ｂがバタフライインデックスを表すものとする。この場合、図５から分かるように、各バタフライｂに対して、一対の開始状態
【数１９】
2008532402.tif 000021
は、一対の終了状態｛（ｂ×２），（ｂ×２）＋１｝に繋がっている。このことを理由として、処理は、２状態からなる複数の対にグループ化することができる。
【００５３】
ある所定のバタフライにおけるある所定の繋がりと、別のバタフライにおける同じ繋がりとは、情報ビット値とパリティビット値の同じ対を送信することには関わりがないということに注意しておくことが重要である。図５において、遷移によって送信されるパリティビットが、その遷移上のボックス内に示されている。さらに、破線で示されている遷移は、その遷移が情報ビット０の送信に対応していることを表し、実線で示されている遷移は、その遷移が情報ビット１の送信に対応していることを表している。例えば、最初の２つのバタフライ（すなわち、ｂ＝０又は１）において、開始状態ｂから終了状態ｂ×２への繋がりは、情報ビット０に関連付けられている。一方、トレリス線図における最後の２つのバタフライにおいては、同じ状態の繋がりが情報ビット１に関連付けられている。状態遷移がトレリス線図全体にわたって同じ情報ビットに関連付けられていないという事実は、再帰的コードに特有のことであり（非再帰的畳み込み符号は同一のバタフライを有する）、バタフライ処理の実装を複雑にしている。
【００５４】
図５からは、符号化されたサンプルのパリティについての情報がコード構造によって与えられているということも分かる。ある所定の終了状態に対して、その状態に至る遷移のパリティビットは常に異なるものである。同様に、ある所定の開始状態に対して、その状態から移行する遷移のパリティビットは常に異なるものである。
【００５５】
図５の各バタフライにおいて上側水平遷移と関連付けられた情報ビットχは、図１の要素符号化器の構成によって決定される。従って、情報ビットχは次式を満足するものとなる。
Ｂ（χ，２ｂ）＝ｂ
ここで、ｂは当該バタフライのバタフライインデックス値である。
【００５６】
すると、前方メトリック計算を次のように表すことができる。
【００５７】
【数２０】
2008532402.tif 000022
【００５８】
従って、前方メトリック計算においては関数Ｂを計算する必要がなくなる。
【００５９】
次いで、各バタフライ内における対称性を利用して、各バタフライの他の終了状態に対する計算を以下のように行うことができる。
【００６０】
【数２１】
2008532402.tif 000023
【００６１】
例えば、バタフライｂ＝０について、式
【数２２】
2008532402.tif 000024
においてはχ＝０かつｃχ，０＝０であり、式
【数２３】
2008532402.tif 000025
においてはχ＝１かつｃχ，０＝１である。
【００６２】
同様にして、次式を用いる。
【００６３】
【数２４】
2008532402.tif 000026
【数２５】
2008532402.tif 000027
【００６４】
ここで、このときのχは次式を満足する。
Ｆ（χ，ｂ）＝２ｂ
【００６５】
上式
【数２６】
2008532402.tif 000028
は、関数Ｆとは独立であることが明らかであろう。
【数２７】
2008532402.tif 000029
【数２８】
2008532402.tif 000030
【数２９】
2008532402.tif 000031
【数３０】
2008532402.tif 000032
に対して上に示された数式の構造における共通性を、以下に図６乃至図９を参照して説明するように、復号化器１０の実装に利用することができる。
【００６６】
図６は、前方「バタフライ更新」計算がどのように実行されるのかを示す。図３及び図４と同様、図６には、様々な入出力のワードサイズがビット単位で示されている。さらに、２進ワードが、ビットの位が左から右へ増大するように示されている。例えば、バタフライインデックスのビットｂ０は、ビットｂ１より位が大きい。
【００６７】
図６は、単一のバタフライに対して前方メトリックがどのように更新されるのかを示している。他のバタフライそれぞれに対しては図６に示す動作が単に繰り返されるということが理解されよう。現時点で処理中のバタフライのバタフライインデックス１８が検索される。このバタフライインデックス１８は２つのビットｂ１とｂ０を含み、後者のビットが最上位ビットである。図５におけるバタフライ０の場合、ｂ０，ｂ１は００である。そのバタフライの開始状態は、ステップ２０において、１を、又は代替として０を、バタフライインデックスの最上位端に付加することにより再生成される。こうして、生成された開始状態は、全体が２２で指し示されているように、０，ｂ０，ｂ１と、１，ｂ０，ｂ１とである。同様に、バタフライの終了状態は、演算２６において、０を、又は代替として１を、バタフライインデックス１８の最下位端に付加することにより、当該バタフライインデックス１８から再生成される。こうして、生成された終了状態は、全体が２４で指し示されているように、ｂ０，ｂ１，０と、ｂ０，ｂ１，１とである。バタフライインデックス１８から再生成された開始状態は、その後、修正のためにメモリから前方パスメトリックを検索するために使用され、終了状態は、修正されたパスメトリックをメモリの正しい位置に書き戻すために使用される。上記各開始状態と関連付けられたパスメトリックは、ｍ×Ｂｐｍビットの単一メモリ要素に格納される。Ｂｐｍビットをそれぞれ有するｍ個のワードを使用するのでなく、パスメトリックのすべてを１ワードに格納することによって、必要なメモリアクセス数が低減される。いったんパスメトリックワード３０が検索されると、バタフライインデックス１８から再生成された開始状態２４を用いて、パスメトリックワード３０からそのバタフライの上側開始状態３２及び下側開始状態３４を抽出する。バタフライインデックスが０である場合は、パスメトリック３２は状態０のパスメトリックであり、パスメトリック３４は状態４のパスメトリックである。パスメトリック３２及び３４と算術的に合成された値の生成について次に説明する。
【００６８】
現時点で処理中のバタフライに対する開始状態及び終了状態を特定することに加え、バタフライインデックス１８はまた、演算４０においてフィードバック多項式３６と合成され、演算４２においてフォワード多項式３８と合成される。フィードバック多項式３６は、その時点で復号化中のターボ符号化方式の要素符号化器におけるフィードバックタップの位置を表わしている。同様に、フォワード多項式は、要素符号化器におけるフィードフォワードタップの位置を表している。図１の要素符号化器は同一の構造を有しており、単一のフォワード多項式３８及び単一のフィードバック多項式３６は、両方の符号化器を表わしている。これらの多項式内において、各ビットは、隣接する遅延要素Ｄ間のタップ位置に対応している（すなわち、上記多項式によって表わされる接続は、遅延要素Ｄのライン端部における接続を包含するのではない）。ここで、１はアクティブなタップを示し、０は非アクティブなタップを示している。従って、図１に示す各符号化器のための順方向及び逆方向の多項式は、それぞれ、１０及び０１である。
【００６９】
演算４０及び４２において、バタフライインデックスは、フィードバック及びフォワード多項式３６及び３８のそれぞれと、ビット単位のＸＯＲ演算で合成される。演算４０で生成されるワードｒ０，ｒ１のビットに対して、次いで、互いにＸＯＲ演算を行うことによりビットｉ０を生成する。同様に、演算４２で生成されるワードｆ０，ｆ１のビットに対して、互いにＸＯＲ演算を行うことによりビットｉ１を生成する。ビットｉ０及びｉ１は処理４４の制御入力として使用される。
【００７０】
処理４４は、値
【数３１】
2008532402.tif 000033
と、値
【数３２】
2008532402.tif 000034
とをデータ入力とする。前者の値は長さＢｓｄ個のビットを有し、後者は長さＢａｐｐ＋１個のビットを有する。処理４４は、パスメトリック３２及び３４と合成されるブランチメトリック値を割り当てる。処理４４において、初期ステップとして、２つのパラメータＢＭ［０］及びＢＭ［１］の両方を０に設定する。次に、ＢＭ［ｉ０］が値
【数３３】
2008532402.tif 000035
だけインクリメントされる。最後に、パラメータＢＭ［ｉ１］が値
【数３４】
2008532402.tif 000036
だけインクリメントされる。処理４４で生成されるパラメータＢＭ［０］及びＢＭ［１］の値は、ここで、検索された前方パスメトリック３２及び３４と合成されるブランチメトリックを表している。サンプル
【数３５】
2008532402.tif 000037
と事前情報との合計を格納するのに必要なビット数が、パリティサンプル
【数３６】
2008532402.tif 000038
に使用されるビット数より大きいか、又は等しいとき（すなわち、Ｂａｐｐ＞Ｂｓｄ）、ブランチメトリックをＢａｐｐ＋２ビットの長さにすることができる。
【００７１】
処理４４によって生成されたブランチメトリックＢＭ［０］は、検索されたパスメトリック３２及び３４と、それぞれ処理４６及び４８において合成される。同様に、処理４４で生成されたブランチメトリックＢＭ［１］は、検索されたパスメトリック３２及び３４と、それぞれ演算５０及び５２において合成される。本質的には、演算４６乃至５２の各々において同じ処理が行われる。それらの処理の各々において、検索された１つのパスメトリックが１つのブランチメトリックに加算され、その結果のビット長はＢｐｍビットに制約され、これは、加算結果がＢｐｍビットで到達可能な最大値を超える場合には飽和させられる。演算５４は、その後、処理４６及び５２で生成された値の最大値を選択し、演算５６は処理４８及び５０で生成された値の最大値を選択する。演算５４で選択された値は、処理中のバタフライの上側終了状態のパスメトリック５８であり、演算５６で選択された値は、処理中のバタフライの下側終了状態のパスメトリック６０である。例えば、バタフライインデックスが１である場合、パスメトリック５８はトレリス線図の状態２に属し、パスメトリック６０は状態３に属する。パスメトリック５８及び６０は、時間インデックスｋ＋１に対するパスメトリックワード６２において、計算された終了状態２４で指示された正しい地点に書き込まれる。時間インデックスｋに対するすべてのバタフライが処理されると、パスメトリックワード６２はメモリに書き戻される。パスメトリックワード３０と同様、パスメトリックワード６２はビット長がＢｐｍ×ｍであり、時間インデックスｋ＋１でのトレリス線図の各状態に対するすべての前方パスメトリックを連結構成で含んでいる。
【００７２】
図７は、前方パスメトリックに加えて後方パラメータを計算するために、図６に示した構成をどのように適応させることができるのかを示している。図７において、図６から引き継がれている要素は同じ参照番号を維持している。
【００７３】
図７において、バタフライインデックス１８から再生成される状態の対２２及び２４は、後方パスメトリックの計算中には、単に、その時点のバタフライの終了状態及び開始状態をそれぞれ表すために使用される。他の場合において、前方メトリックの計算を実行するためには、状態の対２２は現時点のバタフライの開始状態として取り扱われ、状態の対２４は終了状態として取り扱われる。なお、図７に示されている構成を使用して後方メトリックを計算する場合、ワード３０は時間インデックスｋ＋１からの各後方パスメトリックを表し、ワード６２は時間インデックスｋに対する各後方パスメトリックを表し、メトリック３２及び３４は現時点の後方パスメトリックバタフライの上側及び下側開始状態メトリックであり、メトリック５８及び６０はそのバタフライの上側及び下側終了状態メトリックである。さらに、演算４６乃至５２の出力は、先に示した次式に使用されるγ値を表すことが分かるであろう。
【００７４】
【数３７】
2008532402.tif 000039
【００７５】
従って、演算４６、５２、５０及び４８の出力は、
【数３８】
2008532402.tif 000040
乃至
【数３９】
2008532402.tif 000041
と表記されている。
【００７６】
図８は、図７に示す前方及び後方メトリック計算の構成を、どのようにしてＬＬＲの計算に使用することができるかを示している。ＬＬＲ生成処理における最初のステップとして、図７の構成を使用して、現時点のコードブロックにおけるすべてのトレリスステージ（trellis stage）に対する各前方パスメトリックを生成し、メモリに格納する。次いで、図７に示す構成によりコードブロックを再処理して各後方パスメトリックを生成する。トレリス線図の所定のステージでの所定のバタフライの各終了状態に対する各後方パスメトリックを生成する処理においては、４つの値
【数４０】
2008532402.tif 000042
乃至
【数４１】
2008532402.tif 000043
が生成される。これらのγ値は、ＬＬＲ生成のために、現時点の後方メトリック計算のバタフライの各終了状態の前方メトリックと合成される必要がある。前述の通り、上記ＬＬＲは次式で与えられる。
【００７７】
【数４２】
2008532402.tif 000044
【００７８】
上記γ値は実行中にＬＬＲを生成させるために使用することができ、かつトレリス線図のステージｋの各後方パスメトリックを生成するにはトレリス線図のステージｋ＋１の各後方パスメトリックが必要となるだけなので、各後方パスメトリックの長期的格納のために備える必要はない。ある所定のステージの各後方パスメトリックは、次のステージの各後方パスメトリックの計算を完了するに十分な期間だけ保持されていればよい。こうして、図７において、パスメトリックワード６２は、完了時に、パスメトリックワード３０を検索して読み出してきたメモリロケーションに書き戻すことができる。
【００７９】
図８において、図６及び７から引き継がれる要素は、同じ参照番号が維持されている。図８において、後方メトリック計算においてトレリス線図の所定のステージの所定のバタフライに対する値
【数４３】
2008532402.tif 000045
乃至
【数４４】
2008532402.tif 000046
を生成するための図７に示す処理が、６４で示されている。処理６４は、トレリス線図の各ステージで処理される各バタフライのための新たな値の集合
【数４５】
2008532402.tif 000047
乃至
【数４６】
2008532402.tif 000048
を出力する。
【００８０】
現時点で処理中の後方メトリックバタフライの終了状態のトレリスステージに対するＬＬＲを計算するために、そのステージに対して以前に計算された前方パスメトリックワード６６が検索される。演算６８において、前方パスメトリックワード６６から２つの前方パスメトリック７０及び７２が検索される。パスメトリック７０及び７２はそれぞれ、現時点で処理６４の対象になっている後方パスメトリックバタフライの上側終了状態と下側終了状態の各前方パスメトリックである。演算６８は、処理６４が現時点のバタフライのバタフライインデックスから生成する（図７を参照）状態の対２２を用いて、メトリック７０及び７２を選択する。
【００８１】
前方パスメトリック７０は演算７４及び７６において用いられ、前方パスメトリック７２は演算７８及び８０において用いられる。本質的には、演算７４乃至８０のそれぞれは同一であり、前方パスメトリック７０及び７２の一方に値
【数４７】
2008532402.tif 000049
乃至
【数４８】
2008532402.tif 000050
のうちの１つを加算することを含んでいる。演算７４乃至８０の各々において、加算処理の結果は、前方パスメトリック７０及び７２に使用されるものと等しいワード長、すなわちＢｐｍビットに制約される。演算７４乃至８０のいずれかにおいて生成された結果が許容Ｂｐｍビットを超えている場合、その結果は、Ｂｐｍビットで利用可能な最大の結果まで飽和した状態になる。
【００８２】
演算７４乃至８０への値
【数４９】
2008532402.tif 000051
乃至
【数５０】
2008532402.tif 000052
の割り当ては、スイッチ演算８２により制御される。スイッチ演算８２は、バタフライインデックス１８の現時点での値とフィードバック多項式３６（図６又は図７を参照）とから処理６４で生成される信号ｉ０により制御される。信号ビットｉ０が値０を有する場合は、値
【数５１】
2008532402.tif 000053
乃至
【数５２】
2008532402.tif 000054
が演算７４，７６，８０及び７８にそれぞれ供給される。一方、信号ビットｉ０が値１を有する場合は、値
【数５３】
2008532402.tif 000055
乃至
【数５４】
2008532402.tif 000056
が演算７４，７６，７８及び８０にそれぞれ供給される。処理６４による所定のトレリスステージの処理の間に、演算７４乃至８０のそれぞれが、４つの結果、すなわち各バタフライに対して１つの結果を生成する。演算８４は、演算７４及び７８により生成されたＭ個の値の最大値を識別し、演算８６は、演算７６及び８０により生成されたＭ個の値の最大値を識別する。最後に、演算８８において、演算８４及び８６によって識別された２つの最大値の差分を計算して、現時点のトレリスステージに対するＬＬＲ値を得る。
【００８３】
図９は、復号化処理の次の反復Ｉ＋１において使用すべき事前情報をＬＬＲを用いてどのように更新することができるかを示している。図９に示すように、組織サンプル
【数５５】
2008532402.tif 000057
と現時点の事前情報
【数５６】
2008532402.tif 000058
との和から、現時点のトレリスステージに対するＬＬＲを減算する。その減算処理の結果には次に非線形スケーリングが実行されて、次の反復のための事前情報
【数５７】
2008532402.tif 000059
が生成される。
【００８４】
上記実施形態は、主に演算及び処理の観点から説明した。しかしながら、これらの演算及び処理は、例えばＡＳＩＣなどの専用のハードウェア、あるいは適切なソフトウェアを搭載した汎用データプロセッサなどによって実施できることが理解されよう。図１０は、前者の例を示し、携帯電話機９０を示している。電話機９０のアンテナ９２で受信された信号には、ＲＦ部９４で周波数逓降、増幅、及びアナログ／ディジタル変換が施される。その信号はまた、例えばイコライザやＲＡＫＥ受信機などの形を採ることのできるマルチパス補償ユニット９６により処理される。ＦＥＣ部９８は、図６乃至図９を参照して説明した演算及び処理を実行するように構成されたＡＳＩＣを備えて構成され、上記信号に対して動作してターボ復号化を行う。ＦＥＣ部９８の出力は、その後、電話機内での別の場所での適切な使用、例えば、ユーザに提示するためのオーディオ信号又はビデオ信号の再構成に供される。図１０は簡単な概観を示しているに過ぎず、例えば、例示の文脈において、図６乃至図９の処理法の設定という単一の目的のためには電話機９０の動作の多くの詳細は不要であるので、簡単化のためそのような情報は省略されているということは当業者には明らかであろう。
【図面の簡単な説明】
【００８５】
【図１】３ＧＰＰ規格のターボ符号化機構を示す図である。
【図２】反復的なターボ復号化アルゴリズムの構成要素を示す図である。
【図３】図１の第１要素符号を復号化する復号化ステージを示す図である。
【図４】図１の第２要素符号を復号化する復号化ステージを示す図である。
【図５】３ＧＰＰで規定されたターボ符号に係る送信情報ビットと符号化ビットとの関係を示す図である。
【図６】本発明の一実施形態に係るターボ復号化器における前方「バタフライ更新」処理を実行中に行われる計算を示す図である。
【図７】本発明の一実施形態に係るターボ復号化器における前方及び後方「バタフライ更新」処理の両方を実行中に行われる計算を示す図である。
【図８】本発明の一実施形態に係るターボ復号化器においてＬＬＲ値を求めるために実行される計算を示す図である。
【図９】本発明の一実施形態に係るターボ復号化器においてＬＬＲ値から事前情報を計算するために実行される計算を示す図である。
【図１０】本発明の一実施形態に係る携帯電話機９０を示すブロック図である。
【図１】
2008532402.tif 000060
【図２】
2008532402.tif 000061
【図３】
2008532402.tif 000062
【図４】
2008532402.tif 000063
【図５】
2008532402.tif 000064
【図６】
2008532402.tif 000065
【図７】
2008532402.tif 000066
【図８】
2008532402.tif 000067
【図９】
2008532402.tif 000068
【図１０】
2008532402.tif 000069
【国際調査報告】
2008532402.tif 000070
2008532402.tif 000071
2008532402.tif 000072
2008532402.tif 000073