(57)【要約】【課題】復号処理の遅延を防ぐこと。消費電力の増大を防ぐこと。【解決手段】ノード数Ｎ（Ｎは整数）の情報フレームの全てのノード位置でＡＣＳ演算を所定回数（例えば１回）行う。その所定回数目のＡＣＳ演算により得られた、情報フレームの最後尾ノードのパスメトリック値を情報フレームの先頭ノードのパスメトリック値に設定して、再び情報フレームの先頭ノードからＬノード目（Ｌは整数、Ｌ＜Ｎ）の中間ノードまでの各ノード位置でＡＣＳ演算を行う。所定回数目のＡＣＳ演算の結果に基づいて最後尾ノードから中間ノードまでのトレースバックを行い、最後のＡＣＳ演算の結果に基づいて中間ノードから先頭ノードまでのトレースバックを行う。【選択図】図１
2010130271.tif 000002
【特許請求の範囲】
【請求項１】
情報フレームの各ノード位置に対して直前のノード位置からの遷移確率の高いパスを選択する演算を行う演算部と、
前記演算部に、情報フレームの全てのノード位置で前記演算を所定回数行わせ、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードの値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置でさらに前記演算を行わせる制御部と、
を備えることを特徴とする復号器。
【請求項２】
前記演算部の結果に基づいてトレースバックを行うトレースバック部、をさらに備え、
前記制御部は、前記トレースバック部に、前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行わせ、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行わせることを特徴とする請求項１に記載の復号器。
【請求項３】
前記制御部は、前記演算部が前記演算を行う際のノード数をカウントする第１カウンタを備え、
前記第１カウンタの上限値は、前記先頭ノードから前記最後尾ノードまでのノード数に対応する第１の値と、前記先頭ノードから前記中間ノードに対応する第２の値とで、切り替え可能になっていることを特徴とする請求項１に記載の復号器。
【請求項４】
前記制御部は、前記演算部が全てのノード位置で前記演算を行った回数をカウントする第２カウンタを備え、
前記第２カウンタは、前記第１カウンタの上限値を、前記第２カウンタの値が前記所定回数に対応する値以下であるときに前記第１の値とし、前記第２カウンタの値が前記所定回数を超える値であるときに前記第２の値に切り替えることを特徴とする請求項３に記載の復号器。
【請求項５】
情報フレームの全てのノード位置で直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う第１ステップと、
前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードに関する値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置で前記演算を行う第２ステップと、
を含むことを特徴とする復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、復号器および復号方法に関する。
【背景技術】
【０００２】
従来、ターボ符号化されたデータ系列を繰り返し復号するターボ復号装置として、次のような構成の装置が知られている。例えば、排他的論理和は、要素復号器（１）、要素復号器（２）の事後値と事前値のサインビット（正負の符号）をそれぞれ比較し、レジスタ（１）、レジスタ（２）、減算器、絶対値演算器により、復号の前後における事前値と事後値のサインビットの不一致数と前回繰り返し復号時の不一致数との差分値の絶対値を算出する。閾値判定部は、差分値の絶対値と所定の繰り返し終了判定閾値とを閾値判定して、論理積は、閾値判定部における閾値判定結果に基づいて繰り返し復号の終了判定を行う（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００７−８１６４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の復号器では、情報フレームに対して演算を繰り返し行うため、演算量が情報フレームの長さに対して繰り返し回数の整数倍となる。そのため、情報フレームが長いと演算量が膨大となり、復号処理の遅延や消費電力の増大を招くという問題点がある。
【０００５】
復号処理の遅延を防ぐことができる復号器および復号方法を提供することを目的とする。消費電力の増大を防ぐことができる復号器および復号方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この復号器および復号方法は、情報フレームの全てのノード位置で、直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う。その所定回数目の演算により得られた、情報フレームの最後尾ノードに関する値を情報フレームの先頭ノードの値に設定して、その先頭ノードから情報フレームの中間ノードまでの各ノード位置でさらに同様の演算を行う。
【０００７】
この復号器および復号方法によれば、最後の演算では、情報フレームの先頭ノードから中間ノードまで演算すればよいので、情報フレームの全てのノードに対して演算を繰り返す場合に比べて、演算量が減る。
【発明の効果】
【０００８】
この復号器および復号方法によれば、復号処理の遅延を防ぐことができる。また、消費電力の増大を防ぐことができる。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この復号器および復号方法の好適な実施の形態を詳細に説明する。
【００１０】
図１は、実施の形態にかかる復号器による復号処理を示す説明図である。図１に示すように、ノード数Ｎ（Ｎは整数）の情報フレームの全てのノード位置で、直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数、図示例では１回、行う。その所定回数目の演算により得られた、情報フレームの最後尾ノードに関する値を情報フレームの先頭ノードに関する値に設定して、再び情報フレームに対して演算を行う。最後の演算では、情報フレームの先頭ノードからＬノード目（Ｌは整数、Ｌ＜Ｎ）の中間ノードまでの各ノード位置で演算を行う。そして、所定回数目の演算の結果に基づいて最後尾ノードから中間ノードまでのトレースバックを行い、最後の演算の結果に基づいて中間ノードから先頭ノードまでのトレースバックを行う。ここでは、簡単のため、前記所定回数を１回とする。従って、以下の説明では、１回目の演算が所定回数目の演算に該当し、２回目の演算が最後の演算に該当する。なお、所定回数が２回以上でも同様である。演算としては、例えばＡＣＳ（Ａｄｄ  Ｃｏｍｐａｒｅ  Ｓｅｌｅｃｔ）演算が含まれる。情報フレームの最後尾ノードに関する値や、情報フレームの先頭ノードに関する値としては、例えばパスメトリック値が含まれる。
【００１１】
（受信機の説明）
図２は、実施の形態にかかる受信機の構成を示す説明図である。図２に示すように、受信機１は、無線部２、ＦＦＴ（離散フーリエ変換）部３、サブキャリアデマッパ部４、復調部５および復号部６を備えている。無線部２は、アンテナ７で受信した受信信号の搬送波周波数での処理を行い、ダウンコンバート後のベースバンド信号を得る。ＦＦＴ部３は、ベースバンド信号からガードインターバル部（ＧＩ）を除去した信号に対して高速フーリエ変換を行い、ベースバンド信号を周波数領域のサブキャリア信号に変換する。サブキャリアデマッパ部４は、サブキャリア信号に多重されている複数の物理チャネルを個々の物理チャネルに分離する。復調部５は、物理チャネルの受信信号を検波して尤度信号を得る。復号部６は、尤度信号を復号して受信データを得る。
【００１２】
（復号部の説明）
図３は、実施の形態にかかる復号部の構成を示す説明図である。図３に示すように、復号部６は、デインターリーブ部１１、レートデマッチング部１２、ビタビ復号器１３およびＣＲＣ検査部１４を備えている。デインターリーブ部１１は、送信機において送信時のインターリーブによって入れ替えられたビットの並びを元に戻す。レートデマッチング部１２は、送信機において送信時のレートマッチングによって間引き処理されたビットや繰り返し処理されたビットを処理して元のビットサイズに戻す。ビタビ復号器１３は、畳み込み符号の復号を行う。ＣＲＣ検査部１４は、復号後のデータに対して巡回冗長検査を行って復号結果が正しいか否かを検査し、ＣＲＣビットを除去して受信データを出力する。
【００１３】
（ビタビ復号器の説明）
図４は、実施の形態にかかるビタビ復号器の構成を示す説明図である。図４に示すように、ビタビ復号器１３は、入力データバッファ２１、ブランチメトリック演算部２２、パスメトリックメモリ２３、ＡＣＳ演算部２４、パスメモリ２５、最尤判定部２６、トレースバック部２７、ＴＢＣＣ条件検査部２８および制御部２９を備えている。入力データバッファ２１は、１情報フレーム分の入力データを保持する。ブランチメトリック演算部２２は、入力データから各状態の遷移確率を表すブランチメトリック値を求める。ここで、状態とは、送信側の畳み込み符号器の遅延素子の状態を、畳み込み符号器の入力側から順に表したものである（図５参照）。パスメトリックメモリ２３は、前ノードのパスメトリック値と現在のノードのパスメトリック値を保持する。パスメトリック値は、ブランチメトリック値の累積値である。パスメトリックメモリ２３は、２バンク構成のメモリで構成されている。一方のバンクが前ノードのパスメトリック値の読み出しに用いられているときに、他方のバンクは現在のノードのパスメトリック値の書き込みに用いられる。
【００１４】
ＡＣＳ演算部２４は、ブランチメトリック値および前ノードのパスメトリック値に基づいて現在のノードのパスメトリック値を求める。そして、ＡＣＳ演算部２４は、現在のノードのパスメトリック値に基づいて、各状態について２つの前ノードからのパスのうち、どちらかの生き残りパスを選択する。パスメモリ２５は、ＡＣＳ演算部２４により選択された生き残りパスの値（０または１）を保持する。最尤判定部２６は、トレースバック開始位置において、パスメトリック値の中から最大尤度の状態を検索する。トレースバック部２７は、パスメモリに保持された生き残りパスを逆順に辿ってデコード結果を求める。
【００１５】
ＴＢＣＣ条件検査部２８は、トレースバックの開始状態とトレースバックの終了状態とが一致するか否かを判定して、ＴＢＣＣ条件を満たすか否かを検査する。ＴＢＣＣ条件とは、トレースバックの開始状態と終了状態とが一致するというテイルビッティングコンボリューションコード（Ｔａｉｌ  ｂｉｔｉｎｇ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｃｏｄｅ）の束縛条件のことである。制御部２９は、ＡＣＳ演算部２４に対して処理中のノード番号および状態番号を管理して、入力データバッファ２１やパスメトリックメモリ２３やパスメモリ２５などのアドレス制御やその他の制御を行う。また、制御部２９は、最尤判定部２６の判定結果に基づいてトレースバック開始状態を指示する。また、制御部２９は、ＴＢＣＣ条件検査部２８の検査結果に基づいてデコードが完了したことを判定する。
【００１６】
次に、制御部２９およびトレースバック部２７について詳細に説明する。ここでは、簡単のため、送信機において図５に示す畳み込み符号器により畳み込み符号化された情報を受信機側で復号する場合を例にする。
【００１７】
図５は、畳み込み符号器の構成を示す説明図である。図５に示すように、畳み込み符号器１００は、６個の遅延素子（Ｄ）を有し、その拘束長Ｋ（Ｋは整数）は７である。従って、情報フレームの各ノードには、６個の遅延素子（Ｄ）の状態に応じた６４（＝２6）通りの状態がある。また、この畳み込み符号器１００の符号化率は１／３である。図５において、左側が情報ビットの入力側であり、右側が出力側である。なお、畳み込み符号器の拘束長および符号化率は、これらの値に限らない。
【００１８】
（制御部の説明）
図６は、実施の形態にかかる制御部の構成を示す説明図である。図６に示すように、制御部２９は、セレクタ３１、第２カウンタである繰り返しカウンタ３２、第１カウンタであるノードアップカウンタ３３、状態カウンタ３４、タイミングカウンタ３５、比較部３６、入力バッファアドレス演算部３７、パスメトリックアドレス演算部３８およびデコーダ３９を備えている。
【００１９】
タイミングカウンタ３５は、メトリック演算時やＡＣＳ演算時に所定のタイミングを生成する。タイミングカウンタ３５は、デコード開始時の初期化信号の入力によって初期値に設定され、イネーブル信号の入力によってカウントアップする。タイミングカウンタ３５の上限値は、生成するタイミングの数に応じて設定される。図６に示す例では、タイミングカウンタ３５は、その上限値が例えば３に設定される４進カウンタである。デコーダ３９は、タイミングカウンタ３５の出力値をデコードし、パスメトリックメモリ読み出し１タイミング、パスメトリックメモリ読み出し２タイミング、パスメトリックメモリ・パスメモリ書き込みタイミングおよび状態カウンタ３４のカウントタイミングを生成する。
【００２０】
状態カウンタ３４は、あるノードタイミングに対する状態数分の演算の繰り返しを制御する。状態カウンタ３４は、初期化信号の入力によって初期値に設定され、デコーダ３９から出力されるイネーブル信号の入力によってカウントアップする。状態カウンタ３４は、その上限値ｓ＿ｍａｘが［２(K-1)−１］に設定される２(K-1)進カウンタである（Ｋ：畳み込み符号器の拘束長）。図５に示す畳み込み符号器１００の場合、Ｋ＝７であるので、状態カウンタ３４は、その上限値ｓ＿ｍａｘが６３（２進数の表記では１１１１１１）に設定される６４進カウンタである。状態カウンタ３４から出力される演算指定信号は、ＡＣＳ演算部２４においてＡＣＳ演算を行う際の演算すべき状態の指定に用いられる。状態カウンタ３４のキャリーアウト信号は、ノードアップカウンタ３３のカウントタイミングに用いられる。
【００２１】
ノードアップカウンタ３３は、ノードタイミングの繰り返しを制御する。ノードアップカウンタ３３は、初期化信号の入力によって初期値に設定され、状態カウンタ３４のキャリーアウト信号がイネーブル信号として入力することによってカウントアップする。ノードアップカウンタ３３は、その上限値がセレクタ３１の出力値によって設定されるＮ進カウンタである（Ｎ：情報フレームのノード数）。ノードアップカウンタ３３のキャリーアウト信号は、繰り返しカウンタ３２のカウントタイミングに用いられる。
【００２２】
繰り返しカウンタ３２は、ＡＣＳ演算の繰り返しを制御する。繰り返しカウンタ３２は、初期化信号の入力によって初期値に設定され、ノードアップカウンタ３３のキャリーアウト信号がイネーブル信号として入力することによってカウントアップする。繰り返しカウンタ３２は、その上限値が［ｉ＿ｍａｘ−１］に設定されるｉ＿ｍａｘ進カウンタである（ｉ＿ｍａｘ：ＡＣＳ演算の繰り返し回数の最大値、ｉは２以上の整数）。ＡＣＳ演算を２回行う場合、ｉ＿ｍａｘは２である。繰り返しカウンタ３２のキャリーアウト信号は、ＡＣＳ演算の完了を示す完了信号として用いられる。
【００２３】
比較部３６は、［ｉ＿ｍａｘ−１］と繰り返しカウンタ３２の出力値とを比較し、両者が一致するときに一致信号を出力し、一致しないときに不一致信号を出力する。セレクタ３１は、比較部３６から不一致信号が出力されるときに、ノードアップカウンタ３３に上限値として［Ｎ−１］を設定し、比較部３６から一致信号が出力されるときに、ノードアップカウンタ３３に上限値として［Ｌ−１］を設定する。つまり、所定回数目までは、情報フレームの全ノード（ノード数Ｎ）についてＡＣＳ演算を行い、所定回数目の次の回では、情報フレームの先頭ノードから中間のＬノード目までについてＡＣＳ演算を行う。ＡＣＳ演算の繰り返し回数の最大値ｉ＿ｍａｘが２であるときには、１回目のＡＣＳ演算では、情報フレームの全ノードを演算の対象とし、２回目のＡＣＳ演算では、途中のノード（Ｌノード目）までを演算の対象とする。
【００２４】
パスメトリックアドレス演算部３８は、状態カウンタ３４の出力値およびノードアップカウンタ３３の出力の例えば最下位ビット（ＬＳＢ：Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）に基づいて、パスメトリックメモリ２３に対する読み出し１アドレス、読み出し２アドレスおよび書き込みアドレス、並びにパスメモリ２５に対する書き込みアドレスを生成する。例えば、状態カウンタ３４の出力値を２進数の表記でｓ５ｓ４ｓ３ｓ２ｓ１ｓ０とし、ノードアップカウンタ３３の出力値の最下位ビットの値を２進数の表記でｎ０とする。ｎ０、ｓ０、ｓ１、ｓ２、ｓ３、ｓ４およびｓ５の値は、０または１である。この場合、パスメトリックアドレス演算部３８は、２進数の表記で、０側の状態の読み出し１アドレスとしてｎ０ｓ４ｓ３ｓ２ｓ１ｓ００を生成し、１側の状態の読み出し２アドレスとしてｎ０ｓ４ｓ３ｓ２ｓ１ｓ０１を生成し、書き込みアドレスとして／ｎ０ｓ５ｓ４ｓ３ｓ２ｓ１ｓ０を生成する。ここで、／ｎ０は、ｎ０を反転した値である。これらのアドレスの最上位ビット（ｎ０、／ｎ０）は、パスメトリックメモリ２３のバンクを切り替える信号として用いられる。
【００２５】
ｎ０の値は、ノードアップカウンタ３３がカウントアップするたびに０と１とで切り替わるので、パスメトリックメモリ２３において、読み出しのバンクと書き込みのバンクが交互に入れ替わることになる。つまり、あるノードタイミングで一方のバンク（バンクＡとする）から前ノードの０側および１側の各状態のパスメトリック値が読み出され、他方のバンク（バンクＢとする）に現在のノードのパスメトリック値が書き込まれると、次のノードタイミングでバンクＢから前ノードの０側および１側の各状態のパスメトリック値が読み出され、バンクＡに現在のノードのパスメトリック値が書き込まれる。
【００２６】
入力バッファアドレス演算部３７は、ノードアップカウンタ３３の出力値に基づいて、入力データバッファ２１に対する読み出しアドレスを生成する。例えば、ノードタイミングｍ（ｍは整数、０≦ｍ≦Ｎ−１）の入力データのアドレスがｍである場合には、入力バッファアドレス演算部３７は、ノードアップカウンタ３３の出力値をそのまま入力データバッファ２１に対する読み出しアドレスとして出力する。
【００２７】
図７および図８は、実施の形態にかかる制御部の動作タイミングを示す説明図である。図７および図８において、ｔ＿ｏｕｔはタイミングカウンタ３５の出力値である。ｓ＿ｅｎおよびｓ＿ｏｕｔは、それぞれ、状態カウンタ３４のイネーブル信号および出力値である。ｎ＿ｅｎおよびｎ＿ｏｕｔは、それぞれ、ノードアップカウンタ３３のイネーブル信号および出力値である。ｉ＿ｅｎおよびｉ＿ｏｕｔは、それぞれ、繰り返しカウンタ３２のイネーブル信号および出力値である。
【００２８】
例えば、図７に示すように、パスメトリックメモリ読み出し１タイミングおよびパスメトリックメモリ読み出し２タイミングで、それぞれ、パスメトリックメモリ２３の一方のバンクから前のノードの０側および１側の各状態のパスメトリック値が読み出される。そして、ＡＣＳ演算部２４において、読み出された各パスメトリック値に、それぞれ、対応するブランチメトリック値が加算され、生き残りパスが選択される。その生き残りパスのパスメトリック値は、パスメトリックメモリ書き込みタイミングでパスメトリックメモリ２３の他方のバンクに書き込まれる。また、パスメモリ書き込みタイミングでパスメモリ２５に生き残りパスが書き込まれる。タイミングカウンタ３５が上限値に達し、キャリーアウトが発生すると、状態カウンタ３４がカウントアップし、状態が遷移する。現在のノードタイミングにおいて全ての状態に対する生き残りパスとそのパスメトリック値がメモリに書き込まれると、状態カウンタ３４が上限値に達してキャリーアウトが発生する。それによって、ノードアップカウンタ３３がカウントアップし、次のノードへ遷移する。このような動作が繰り返される。
【００２９】
図８に示すように、ノードアップカウンタ３３が上限値に達し、キャリーアウトが発生すると、繰り返しカウンタ３２がカウントアップし、先頭ノードからＡＣＳ演算の繰り返しが始まる。繰り返しカウンタ３２が上限値（図示例では、１）のときには、ＡＣＳ演算は先頭ノードから途中のＬノード目までのノードについて図７に示す動作を行う。繰り返しカウンタ３２が上限値に達し、キャリーアウトが発生すると、完了信号が出力される。
【００３０】
（トレースバック部およびＴＢＣＣ条件検査部の説明）
図９は、実施の形態にかかるトレースバック部およびＴＢＣＣ条件検査部の構成を示す説明図である。図９に示すように、トレースバック部２７は、セレクタ４１、ノードダウンカウンタ４２、状態レジスタ４３、パスメモリアドレス演算部４４、前状態演算部４５およびデコード結果アドレス演算部４６を備えている。ＴＢＣＣ条件検査部２８は、比較部５１およびレジスタ５２を備えている。
【００３１】
ノードダウンカウンタ４２は、トレースバック時に、ノードタイミングを逆から辿る際のノードタイミングの繰り返しを制御する。ノードダウンカウンタ４２は、カウントダウンの初期値として［Ｎ−１］が設定され、初期化信号の入力によってカウントダウンを開始するＮ進カウンタである。ノードダウンカウンタ４２は、カウンタ値がゼロになると、ゼロ信号をＴＢＣＣ条件検査部２８へ出力する。セレクタ４１は、初期化信号の入力時に、状態指定データにより指定されるトレースバック開始状態を選択し、それ以外のときに前状態演算部４５の出力データを選択する。状態レジスタ４３は、セレクタ４１から出力されるデータを保持する。パスメモリアドレス演算部４４は、ノードダウンカウンタ４２の出力値と状態レジスタ４３の格納データに基づいて、パスメモリ２５に対する読み出しアドレスを生成する。
【００３２】
前状態演算部４５は、パスメモリ２５から読み出されたデータおよび状態レジスタ４３の格納データ（現在の状態を表すデータ）に基づいて、前の状態を演算する。前状態演算部４５により求められた前の状態を表すデータは、セレクタ４１を介して状態レジスタ４３に現在の状態を表すデータとして格納される。また、前状態演算部４５で前の状態を演算する際に、デコード結果が１ビット分求まるので、これを図示省略するデコード結果メモリに格納する。デコード結果アドレス演算部４６は、ノードダウンカウンタ４２の出力値に基づいて、デコード結果メモリに対する書き込みアドレスを生成する。
【００３３】
比較部５１は、状態指定データ（トレースバック開始状態を表すデータ）と前状態演算部４５の出力データ（前の状態を表すデータ）とを比較し、両者が一致するときに一致信号を出力し、一致しないときに不一致信号を出力する。レジスタ５２は、ノードダウンカウンタ４２からゼロ信号が入力すると、比較部５１から出力される一致信号または不一致信号を保持し、ＴＢＣＣ条件検査の結果を表す検査結果信号として出力する。ノードダウンカウンタ４２の値は、トレースバックが最後尾ノードから始まって先頭ノードに到達したときにゼロになる。従って、レジスタ５２は、トレースバックの開始状態とトレースバックの終了状態とを比較部５１で比較した結果を出力することになる。
【００３４】
図１０は、実施の形態にかかるトレースバック部の動作タイミングを示す説明図である。図１０において、ｎ＿ｏｕｔはノードアップカウンタ３３の出力値であり、ｓ＿ｒｅｇ＿ｏｕｔは状態レジスタ４３の出力値である。簡単のため、図１０に示す例では、情報フレームのノード数Ｎを１００とし、トレースバック開始状態の状態指定データを０１０１０１とする。また、パスメモリ２５からの読み出しデータは一例である。実際には、ＡＣＳ演算部２４により選択された生き残りパスの値が読み出される。また、パスメモリ２５に対する読み出しアドレスは、ノードダウンカウンタ４２の出力値と状態レジスタ４３の出力値を連結したものになっている。
【００３５】
ノードダウンカウンタ４２は、９９（２進数の表記で１１０００１１）から０（２進数の表記で０００００００）までカウントダウンする。状態レジスタ４３に保持されている現在の状態をｓ５ｓ４ｓ３ｓ２ｓ１ｓ０とし、パスメモリ２５からの読み出しデータをｐ（ｐは０または１）とすると、前状態演算部４５により、前の状態はｓ４ｓ３ｓ２ｓ１ｓ０ｐとなる。そして、現在の状態の最上位ビットのｓ５は、デコード結果としてデコード結果メモリに書き込まれる。その際、デコード結果メモリに対する書き込みアドレスがノードダウンカウンタ４２の出力値であるので、ノードダウンカウンタ４２のカウントダウンに伴って、ノードタイミングの後ろから順にデコード結果が書き込まれることになる。
【００３６】
（復号処理手順の説明）
図１１および図１２は、実施の形態にかかる復号処理の手順を示す説明図である。復号処理が開始されると、まず、初期化して、情報フレームの先頭ノードにおける各状態のパスメトリック値を全て０とする（ステップＳ１）。次いで、ＡＣＳ演算の繰り返し回数ｉを０に設定し、ｉが［ｉ＿ｍａｘ−１］以上であるか否かを判断する（ステップＳ２）。この繰り返し回数ｉは、繰り返しカウンタ３２の値である。最初は、ｉ（＝０）が［ｉ＿ｍａｘ−１］よりも小さいので（ステップＳ２：Ｎｏ）、ノード数の最大値ｎ＿ｍａｘをＮに設定し、情報フレームの全ノードをＡＣＳ演算の対象とする（ステップＳ３）。次いで、ノード位置ｎを０に設定し、入力データバッファ２１から入力データＤ（０）を読み出す（ステップＳ４）。ノード位置ｎは、ノードアップカウンタ３３の値である。Ｄ（０）は、ノード位置０、すなわち先頭ノードの入力データである。
【００３７】
次いで、状態ｓを０（畳み込み符号器の拘束長Ｋ＝７の場合は２進数の表記で００００００）に設定しブランチメトリック値を求め、ＡＣＳ演算を行う。状態ｓは、状態カウンタ３４の値である。状態０についてＡＣＳ演算が終了したら、状態ｓが上限値（畳み込み符号器の拘束長Ｋ＝７の場合は２進数の表記で１１１１１１）となるまで状態ｓをカウントアップしながらＡＣＳ演算を行う。状態ｓが上限値となり、ノード位置０について全ての状態のＡＣＳ演算が終了したら、ノード位置ｎが上限値となるまでノード位置ｎをカウントアップしながら、各ノード位置ｎの全ての状態ｓについてＡＣＳ演算を行う（ステップＳ５）。
【００３８】
ノード位置ｎが上限値となり、全てのノード位置ｎで全ての状態のＡＣＳ演算が終了したら、トレースバックを行う。トレースバックでは、最後尾ノード（ノード位置ｎ＝Ｎ−１）での各状態ｓのパスメトリック値のうち、最大の尤度となる状態ｓからトレースバックを開始し、最後尾ノードから先頭ノードへ向かってパスメモリの状態を逆に辿っていく。トレースバックが終了したら、トレースバックの終了点、すなわち先頭ノード（ノード位置ｎ＝０）の状態ｓが、トレースバックの開始点、すなわち最後尾ノード（ノード位置ｎ＝Ｎ−１）の状態ｓと同じであるというテイルビッティングコンボリューションコードの束縛条件を満たすか否かを判定する（ステップＳ６）。テイルビッティングコンボリューションコードの束縛条件を満たす場合（ステップＳ６：Ｙｅｓ）、正解パスの探索が完了したとする。そして、トレースバックを行い（ステップＳ９）、正解パスに対応する入力データの列を復号結果として、一連の復号処理を終了する。
【００３９】
一方、ステップＳ６で、テイルビッティングコンボリューションコードの束縛条件を満たさない場合（ステップＳ６：Ｎｏ）、繰り返し回数ｉが上限値となるまで繰り返し回数ｉをカウントアップしながら、ステップＳ２〜ステップＳ６を繰り返す。繰り返し回数ｉをカウントアップしてステップＳ２〜ステップＳ６を繰り返すだびに、その直前の最後尾ノードのパスメトリック値を先頭ノードのパスメトリック値に設定する。また、繰り返し回数ｉが１であるときに求められたブランチメトリック値が用いられる。繰り返し回数ｉが［ｉ＿ｍａｘ−１］よりも小さいときには、全ノードをＡＣＳ演算の対象とするが（ステップＳ３）、繰り返し回数ｉが［ｉ＿ｍａｘ−１］に達したら（ステップＳ２：Ｙｅｓ）、ノード数の最大値ｎ＿ｍａｘをＬに設定する（ステップＳ７）。それによって、ステップＳ５のＡＣＳ演算は、先頭ノードから途中のＬノード目までのノードが対象となる。
【００４０】
ステップＳ２〜ステップＳ６を繰り返している間にテイルビッティングコンボリューションコードの束縛条件を満たせば（ステップＳ６：Ｙｅｓ）、トレースバックを行って（ステップＳ９）、一連の復号処理を終了する。テイルビッティングコンボリューションコードの束縛条件を満たす前に、繰り返し回数ｉが上限値であるときの演算が終了した場合には、その束縛条件を満たすパスのうちで最後尾ノードのパスメトリック値が最も大きいパス、すなわち最尤のパスを探索する（ステップＳ８）。そして、その最尤のパスを正解パスとし、トレースバックを行い（ステップＳ９）、正解パスに対応する入力データの列を復号結果として、一連の復号処理を終了する。
【００４１】
（演算量のシミュレーション結果の説明）
次に、繰り返し回数ｉが［ｉ＿ｍａｘ−１］に達したときのＡＣＳ演算の対象を、先頭ノードからＬノード目までの中間ノードとした場合の演算量のシミュレーション結果について説明する。ただし、ＡＣＳ演算の繰り返し回数ｉの最大値ｉ＿ｍａｘを２とし、情報フレームのノード数Ｎを１００とし、送信側の畳み込み符号器の拘束長を７とし、符号化率を１／３とし、ＱＰＳＫ変調を行うとする。また、干渉波はガウス雑音のみであるとする。
【００４２】
図１３は、比較対象の復号器による復号処理を示す説明図である。図１３に示すように、比較対象の場合の復号器では、２回目の繰り返し時のＡＣＳ演算の対象が先頭ノードから最後尾ノードまでとなっている。
【００４３】
図１４は、実施の形態にかかる復号器のブロックエラーレート特性のシミュレーション結果を示す説明図である。図１４において、縦軸はブロックエラーレートであり、横軸はＳ／Ｎ比である。Ｌ＝１００の特性は、図１３の比較対象のものである。図１４に示すように、Ｌが１０以上であれば、Ｌが１００であるときと同じオーダーの特性が得られることがわかる。また、Ｌが１５以上であれば、Ｌが１００であるときと同程度の特性が得られることがわかる。さらに、Ｌが２０以上であれば、Ｌが１００であるときと殆ど同じ特性が得られることがわかる。Ｌを２０とした場合、合計で１２０ノード分のＡＣＳ演算を行えばよい。それに対して、全ノードでＡＣＳ演算を繰り返す場合には、合計で２００ノード分のＡＣＳ演算を行うことになる。従って、Ｎを１００とし、Ｌを２０とする場合には、ＡＣＳ演算の演算量を４０％削減することができる。
【００４４】
以上説明したように、本実施の形態によれば、ＡＣＳ演算の演算量が減るので、復号処理の遅延を防ぐことができる。また、消費電力の増大を防ぐことができる。また、本実施の形態にかかる復号器には、例えばＬＴＥ受信機に用いられる復号器が含まれる。ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）は、Ｗ−ＣＤＭＡ（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式による第３世代携帯電話（３Ｇ）を拡張した通信方式の一つであり、標準化団体である３ＧＰＰ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ）において標準化が進められている。
【００４５】
なお、受信機１、復号部６、ビタビ復号器１３、制御部２９、トレースバック部２７およびＴＢＣＣ条件検査部２８は、上述した構成に限らず、種々変更可能である。また、上述した復号器の一部または全部の構成を、ＣＰＵと、該ＣＰＵに図１１および図１２に示す手順で処理を行わせるプログラムとで構成し、ＣＰＵがそのプログラムを実行することにより、実施の形態にかかる復号器を実現するようにしてもよい。
【００４６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００４７】
（付記１）情報フレームの各ノード位置に対して直前のノード位置からの遷移確率の高いパスを選択する演算を行う演算部と、前記演算部に、情報フレームの全てのノード位置で前記演算を所定回数行わせ、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードの値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置でさらに前記演算を行わせる制御部と、を備えることを特徴とする復号器。
【００４８】
（付記２）前記演算部の結果に基づいてトレースバックを行うトレースバック部、をさらに備え、前記制御部は、前記トレースバック部に、前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行わせ、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行わせることを特徴とする付記１に記載の復号器。
【００４９】
（付記３）前記制御部は、前記演算部が前記演算を行う際のノード数をカウントする第１カウンタを備え、前記第１カウンタの上限値は、前記先頭ノードから前記最後尾ノードまでのノード数に対応する第１の値と、前記先頭ノードから前記中間ノードに対応する第２の値とで、切り替え可能になっていることを特徴とする付記１に記載の復号器。
【００５０】
（付記４）前記制御部は、前記演算部が全てのノード位置で前記演算を行った回数をカウントする第２カウンタを備え、前記第２カウンタは、前記第１カウンタの上限値を、前記第２カウンタの値が前記所定回数に対応する値以下であるときに前記第１の値とし、前記第２カウンタの値が前記所定回数を超える値であるときに前記第２の値に切り替えることを特徴とする付記３に記載の復号器。
【００５１】
（付記５）情報フレームの全てのノード位置で直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う第１ステップと、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードに関する値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置で前記演算を行う第２ステップと、を含むことを特徴とする復号方法。
【００５２】
（付記６）前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行い、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行う第３ステップ、をさらに含むことを特徴とする付記５に記載の復号方法。
【図面の簡単な説明】
【００５３】
【図１】実施の形態にかかる復号器による復号処理を示す説明図である。
【図２】実施の形態にかかる受信機の構成を示す説明図である。
【図３】実施の形態にかかる復号部の構成を示す説明図である。
【図４】実施の形態にかかるビタビ復号器の構成を示す説明図である。
【図５】畳み込み符号器の構成を示す説明図である。
【図６】実施の形態にかかる制御部の構成を示す説明図である。
【図７】実施の形態にかかる制御部の動作タイミングを示す説明図である。
【図８】実施の形態にかかる制御部の動作タイミングを示す説明図である。
【図９】実施の形態にかかるトレースバック部およびＴＢＣＣ条件検査部の構成を示す説明図である。
【図１０】実施の形態にかかるトレースバック部の動作タイミングを示す説明図である。
【図１１】実施の形態にかかる復号処理の手順を示す説明図である。
【図１２】実施の形態にかかる復号処理の手順を示す説明図である。
【図１３】比較対象の復号器による復号処理を示す説明図である。
【図１４】実施の形態にかかる復号器のブロックエラーレート特性のシミュレーション結果を示す説明図である。
【符号の説明】
【００５４】
１３  復号器
２４  演算部
２７  トレースバック部
２９  制御部
３２  第２カウンタ
３３  第１カウンタ
【図１】
2010130271.tif 000003
【図２】
2010130271.tif 000004
【図３】
2010130271.tif 000005
【図４】
2010130271.tif 000006
【図５】
2010130271.tif 000007
【図６】
2010130271.tif 000008
【図７】
2010130271.tif 000009
【図８】
2010130271.tif 000010
【図９】
2010130271.tif 000011
【図１０】
2010130271.tif 000012
【図１１】
2010130271.tif 000013
【図１２】
2010130271.tif 000014
【図１３】
2010130271.tif 000015
【図１４】
2010130271.tif 000016