(57)【特許請求の範囲】
【請求項１】
ターボ符号の受信系列を並列数の個数に分割して格納するターボ符号格納手段と、
上記ターボ符号格納手段により格納されたターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段と、
上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する並列数分の復号手段とを備えたターボ符号復号装置において、
上記系列生成手段は、
上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とするターボ符号復号装置。
【請求項２】
ターボ符号の情報長に応じて、順方向処理と逆方向処理を実施する復号手段の並列数を決定し、上記並列数分の復号手段を制御する制御手段を設けたことを特徴とする請求項１記載のターボ符号復号装置。
【請求項３】
ターボ符号の情報長に応じて、復号手段における順方向処理と逆方向処理の繰り返し回数を制御する制御手段を設けたことを特徴とする請求項１記載のターボ符号復号装置。
【請求項４】
複数の復号手段が順方向処理と逆方向処理を同時に実施する機能を有することを特徴とする請求項１から請求項３のうちのいずれか１項記載のターボ符号復号装置。
【請求項５】
復号手段は、順方向処理と逆方向処理を同時に実施する場合、順方向処理又は逆方向処理のいずれか一方の開始を１ステップ先行又は１ステップ遅延させることを特徴とする請求項４記載のターボ符号復号装置。
【請求項６】
系列生成手段は、「３ＧＰＰ  ＴＳ３６．２１２」の規格に規定されているターボ符号のインタリーブ系列及び非インタリーブ系列を生成することを特徴とする請求項１から請求項５のうちのいずれか１項記載のターボ符号復号装置。
【請求項７】
系列生成手段は、ターボ符号のインタリーバとしてＱＰＰ方式を採用していることを特徴とする請求項１から請求項５のうちのいずれか１項記載のターボ符号復号装置。
【請求項８】
系列生成手段がターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成ステップと、
複数の復号手段が上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する復号ステップとを備えたターボ符号復号方法において、
上記系列生成ステップは、
メモリインタフェースが、ターボ符号の受信系列を並列数の個数に分割してターボ符号格納手段に格納する格納ステップと、
情報選択制御手段が、メモリ選択初期テーブルに予め保持されている、上記ターボ符号格納手段の並び順を決定するためのパラメータと、インタリーブアドレス生成テーブルに予め保持されている、インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御ステップと、
上記メモリインタフェースが、上記情報選択制御ステップで決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するインタリーブ系列生成ステップとから成ることを特徴とするターボ符号復号方法。
【請求項９】
情報源をターボ符号化してターボ符号を生成し、上記ターボ符号を変調して変調波を送信する送信装置と、上記送信装置から送信された変調波を受信し、上記変調波からターボ符号を復調する受信装置とからなる通信システムにおいて、上記受信装置が、復調後のターボ符号を格納する並列数分のターボ符号格納手段と、上記ターボ符号格納手段により格納されたターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段と、上記系列生成手段により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を並列に復号する並列数分の複数の復号手段とを備えたターボ符号復号装置を実装し、
上記ターボ符号復号装置の上記系列生成手段は、
上記ターボ符号格納手段の並び順を決定するためのパラメータを保持するメモリ選択初期テーブルと、
インタリーブ系列を生成する多項式におけるターボ符号の情報長に応じた係数を予め保持するインタリーブアドレス生成テーブルと、
上記メモリ選択初期テーブルに保持されたパラメータと上記インタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定する情報選択制御手段と、
上記情報選択制御手段により決定された上記並び順で上記ターボ符号格納手段の上記アドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するメモリインタフェースとを備えたことを特徴とする通信システム。
【請求項１０】
送信装置が移動体端末であり、受信装置が基地局であることを特徴とする請求項９記載の通信システム。
【請求項１１】
情報選択制御手段は、インタリーブアドレス生成テーブルに保持された係数を用いてターボ符号格納手段の並び順を決定するためのパラメータを求め、該パラメータと該係数とを用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定することを特徴とする請求項１記載のターボ符号復号装置。
【請求項１２】
並列数Ｍ分のターボ符号格納手段は、情報長Ｎの情報系列及び検査系列のデータをそれぞれ、先頭から順にＮ／Ｍワード毎に、当該各ターボ符号格納手段のアドレス０からアドレスＮ／Ｍ−１に格納し、
情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現され、係数ｆｘがｔに依存しない値の場合に、インタリーブアドレス生成テーブルに保持された情報長Ｎに応じた係数ｆｘを用いて、１つのターボ符号格納手段を基準に上記各ターボ符号格納手段の並び順を決定することを特徴とする請求項１１記載のターボ符号復号装置。
π（ｔ＋ｋ×Ｎ／Ｍ）＝π（ｔ）＋ｋ×ｆｘ×（Ｎ／Ｍ）  ｍｏｄ  Ｎ
ここで、ｔ＝０，１，・・・，Ｎ／Ｍ−１、ｋ＝０，１，・・・，Ｍ−１である。
【請求項１３】
ターボ符号のインタリーバとしてＱＰＰ方式を採用し、並列数を２又は４としたとき、
情報選択制御手段は、インタリーブ系列を生成する多項式が下記式で表現される場合に、インタリーブアドレス生成テーブルに保持された情報長Ｎに応じた係数ｆ１を用いて、１つのターボ符号格納手段を基準に並列数２分又は並列数４分のターボ符号格納手段の並び順を決定することを特徴とする請求項１２記載のターボ符号復号装置。
π（ｔ）＝ｆ１×ｔ＋ｆ２×ｔ×ｔ  ｍｏｄ  Ｎ
ここで、ｔ＝０，１，・・・，Ｎ−１、ｆ１は奇数の定数、ｆ２は偶数の定数である。
【請求項１４】
情報選択制御ステップでは、情報選択制御手段が、インタリーブアドレス生成テーブルに予め保持されている係数を用いてターボ符号格納手段の並び順を決定するためのパラメータを求め、該パラメータと該係数とを用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、上記ターボ符号格納手段の並び順とアドレスを決定することを特徴とする請求項８記載のターボ符号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタル情報処理における誤り訂正技術に係り、特に、ターボ符号を復号するターボ符号復号装置、ターボ符号復号方法及び通信システムに関するものである。
【背景技術】
【０００２】
ターボ符号の復号は、非インタリーブ系列とインタリーブ系列に対して、ＢＣＪＲ（Ｂａｈｌ  Ｃｏｃｋｅ  Ｊｅｉｎｅｋ  Ｒａｖｉｖ）アルゴリズムと呼ばれるトレリス線図の順方向処理と逆方向処理によってパスメトリック値の算出を繰り返すことにより行われる。
理想的な復号方法として、ＭＡＰ（ｍａｘｉｍｕｍ  ａ  ｐｏｓｔｅｒｉｏｒｉ  ｐｒｏｂａｂｉｌｉｔｙ）復号法があり、Ｌｏｇ−ＭＡＰ復号法、Ｍａｘ−Ｌｏｇ−ＭＡＰ復号法なども広く知られている（例えば、非特許文献１を参照）。
【０００３】
ターボ符号を用いて高速ディジタル通信を実施する場合、ターボ符号の復号処理を高速化して、処理の遅延量を小さくする必要がある。
ターボ符号の復号処理を高速化するために、ターボ符号の復号処理を並列化する場合、実装の複雑さが内部インタリーバの構成に依存する。
例えば、「３ＧＰＰ  ＴＳ３６．２１２」の規格で規定されているＱＰＰ（Ｑｕａｄｒａｔｉｃ  Ｐｏｌｙｎｏｍｉａｌ  Ｐｅｒｍｕｔａｔｉｏｎ）は（例えば、非特許文献２を参照）は、復号処理の並列化に適している内部インタリーバである（例えば、非特許文献３を参照）。
【０００４】
例えば、非特許文献４には、ターボ符号の復号処理を並列化して行う方法が開示されている。
即ち、非特許文献４には、ＢＣＪＲアルゴリズムを並列数に分割して同時に処理する旨が記載されており、並列数に分割して同時に処理する際、分割の切れ目となるパスメトリック値を保存し、繰り返し処理の次回の演算で、そのパスメトリック値を用いることで、復号性能の劣化を招くことなく、復号することができるようにしている。
【０００５】
また、上記の復号方法との組み合わせ方式として、スライディング・ウィンドウ方式が知られている（例えば、非特許文献５を参照）。
スライディング・ウィンドウ方式もＢＣＪＲアルゴリズムを分割して、パスメトリック値を算出することで、メモリ量を削減することができる方法である。
その際、分割の切れ目において、処理の度にトレリスを遡ってＢＣＪＲアルゴリズムを始めることで、復号性能の劣化を招くことなく、復号することができる。
トレリスを遡る期間は、「マージン幅」や「トレーニング幅」などと呼ばれる。以下、この明細書では、トレリスを遡る期間を「マージン幅」と称するものとする。
【０００６】
【非特許文献１】萩原春生、「ターボ符号の基礎」、トリケップス、p.37-46、１９９９年１０月７日
【非特許文献２】J.Sun、O.Y.Takeshita、「Interleavers for turbo codes using permutation polynomials over integer rings」、IEEE Trans. Inform. Theory, vol.51, p.101-119、２００５年３月
【非特許文献３】M.K.Cheng、B.E.Moision、J.Hamkins、M.A.Nakashima、「An interleaver implementation for the serially concatenated pulse-position modulation decoder」、IEEE Symposium on Circuits and Systems, Greece, May 2１-24, 2006
【非特許文献４】越智 俊輔、渋谷 智治、坂庭 好一、山田 功、「MAPアルゴリズムの並列処理によるTurbo-Codeの高速復号法」、信学技法 IT97-57, pp.１-6, 1998
【非特許文献５】S.Benedetto、D.Divsalar、G.Montorsi、F.Pollara、「Algorithm for continuous decoding of turbo codes」、Electronics Letters Volume 32, Issue 4, 15 Feb 1996, p.314-315
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のターボ符号復号装置は以上のように構成されているので、ターボ符号のインタリーバとしてＱＰＰ方式が採用される場合、複雑な乗算と剰余計算ではなく、加減算と比較処理を実施するだけでインタリーブ系列を生成することができる（非特許文献２）。しかし、この場合、インタリーブ系列を先頭から順番に生成することができるため、順方向処理の際にはインタリーブ系列の生成と同時に復号を行うことができるが、逆方向処理の際にはインタリーブ系列をメモリに格納して、そのインタリーブ系列を読み出しながら処理する必要がある。このため、インタリーブ系列を格納するメモリが必要となり、メモリ量が大きくなる課題があった。
【０００８】
ターボ符号の復号処理速度は、復号繰り返し回数や並列数に依存し、スライディング・ウィンドウ方式が使用される場合にはマージンなどに依存する。繰り返し回数を減らせば、復号処理の高速化を図ることができるが、復号性能の劣化を招いてしまう課題があった。また、並列数を高次にしても、復号処理の高速化を図ることができるが、メモリ量の増大を招いてしまう課題があった。
また、スライディング・ウィンドウ方式を用いてメモリ削減を行う場合、特にターボ符号が短いと、マージン幅による処理量の増加の影響が大きく、処理速度が低下する課題があった。
【０００９】
この発明は上記のような課題を解決するためになされたもので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるターボ符号復号装置、ターボ符号復号方法及び通信システムを得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係るターボ符号復号装置は、メモリ選択初期テーブルに保持されたパラメータとインタリーブアドレス生成テーブルに保持された係数を用いて加減算処理と比較計算処理を実施して、順方向処理と逆方向処理の、ターボ符号格納手段の並び順とアドレスを決定し、情報選択制御手段により決定された並び順でターボ符号格納手段のアドレスに格納された各データを読み出して、順方向処理と逆方向処理のインタリーブ系列を生成するものである。
【発明の効果】
【００１１】
この発明によれば、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成する系列生成手段が、ターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施して順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果がある。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図１はこの発明の実施の形態１によるターボ符号復号装置を示す構成図であり、図において、情報メモリ１は要素復号器７の並列数Ｐと同じ個数だけ設置され、例えば、「３ＧＰＰ  ＴＳ３６．２１２」の規格に規定されているターボ符号の情報系列（システマティック系列）に相当する受信信号を格納する。
パリティ１メモリ２は要素復号器７の並列数Ｐと同じ個数だけ設置され、ターボ符号のパリティ１系列に相当する受信信号を格納する。
パリティ２メモリ３は要素復号器７の並列数Ｐと同じ個数だけ設置され、ターボ符号のパリティ２系列に相当する受信信号を格納する。
外部情報メモリ４は要素復号器７の並列数Ｐと同じ個数だけ設置され、要素復号器７から出力される外部情報系列を格納する。
情報メモリ１、パリティ１メモリ２及びパリティ２メモリ３は、トレリス終端にテイル・ビットが付加されたターボ符号の場合、テイル・ビットの受信信号を格納する。
なお、情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４からターボ符号格納手段が構成されている。
【００１３】
メモリインタフェース５は情報メモリ１、パリティ１メモリ２及びパリティ２メモリ３に格納されている受信信号のうち、制御部６が指示するインタリーブ位置から受信信号を読み出して、ターボ符号のインタリーブ系列及び非インタリーブ系列を生成し、制御部６が指示する要素復号器７に対してターボ符号のインタリーブ系列及び非インタリーブ系列を出力し、また、要素復号器７から出力される外部情報系列を外部情報メモリ４に出力する処理を実施する。
制御部６はインタリーブ位置をメモリインタフェース５に指示するとともに、要素復号器７における順方向処理と逆方向処理を制御するものであり、制御部６はメモリインタフェース５がターボ符号のインタリーブ系列を生成する際、加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求める。
なお、メモリインタフェース５及び制御部６から系列生成手段が構成されている。
【００１４】
要素復号器７はＰ個並列に設置されており、制御部６の指示の下、メモリインタフェース５により生成されたインタリーブ系列及び非インタリーブ系列に対する順方向処理と逆方向処理を繰り返し実施して、ターボ符号を復号するとともに、外部情報系列を算出する処理を実施する。なお、要素復号器７は復号手段を構成している。
【００１５】
図１の例では、ターボ符号復号装置の構成要素であるメモリインタフェース５、制御部６及び要素復号器７がそれぞれ専用のハードウェア（例えば、ＭＰＵが実装されている半導体集積回路基板）から構成されているものを想定しているが、ターボ符号復号装置がコンピュータで構成される場合、メモリインタフェース５、制御部６及び要素復号器７の処理内容を記述しているプログラムをコンピュータのメモリに格納し、コンピュータのＣＰＵが当該メモリに格納されているプログラムを実行するようにしてもよい。
図２はこの発明の実施の形態１によるターボ符号復号装置の処理内容を示すフローチャートである。
【００１６】
次に動作について説明する。
例えば、ターボ符号の内部インタリーバとして、整数環上の２次多項式であるＱＰＰ方式を採用している図示せぬ送信装置が、例えば、パケットデータなどの情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
通信路では、伝播環境に応じて雑音が変調波に付加され、雑音が付加されている変調波が図示せぬ受信装置で受信される。
【００１７】
受信装置は、送信装置から送信された変調波を受信すると、その変調波に対する同期検波や復調処理などを実施して、ターボ符号の情報系列（システマティック系列）に相当する受信信号、ターボ符号のパリティ１系列に相当する受信信号及びターボ符号のパリティ２系列に相当する受信信号を算出する。
受信装置には図１のターボ符号復号装置が内蔵されており、ターボ符号復号装置がターボ符号を復号する。
以下、ターボ符号復号装置の処理内容を具体的に説明する。
【００１８】
ここでは、情報系列の情報長がＫ、要素復号器７の並列数がＰであるとする。
この場合、Ｐ個の要素復号器７により並列に処理される並列化単位の長さがＷ＝Ｋ／Ｐとなり、アドレス数もＫ／Ｐとなる。
また、１ワードは、受信信号のビット数ｎに等しいｎビットとなる。
【００１９】
ターボ符号復号装置におけるＰ個の情報メモリ１には、ターボ符号の情報系列に相当する受信信号がそれぞれ格納される。ただし、情報系列の先頭から＃１〜＃Ｐの順番で情報メモリ１に格納される。
また、ターボ符号復号装置におけるＰ個のパリティ１メモリ２には、ターボ符号のパリティ１系列に相当する受信信号がそれぞれ格納され、Ｐ個のパリティ２メモリ３には、ターボ符号のパリティ２系列に相当する受信信号がそれぞれ格納される。
ただし、パリティ１系列の先頭から＃１〜＃Ｐの順番でパリティ１メモリ２に格納され、パリティ２系列の先頭から＃１〜＃Ｐの順番でパリティ２メモリ３に格納される。
【００２０】
制御部６は、メモリインタフェース５が情報メモリ１、パリティ１メモリ２及びパリティ２メモリ３から読み出す受信信号を制御するとともに、メモリインタフェース５が外部情報メモリ４から読み出す外部情報と、外部情報メモリ４に書き込む外部情報（例えば、要素復号器７による復号結果が“１”又は“０”である確率を示す情報）とを制御する。
ただし、メモリインタフェース５が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じメモリであって、読み出す外部情報と同じアドレスになるように制御する。
【００２１】
なお、詳細は後述するが、情報メモリ１及び外部情報メモリ４からの読み出しは、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスとなり、非インタリーブ時のアクセスでは、順序通りとなる。
また、パリティ１メモリ２及びパリティ２メモリ３からの読み出しは、常に順序通りとなり、非インタリーブの復号時には、パリティ１メモリ２からパリティ１系列に相当する受信信号が読み出されて要素復号器７に出力される。また、インタリーブの復号時には、パリティ２メモリ３からパリティ２系列に相当する受信信号が読み出されて要素復号器７に出力される。
制御部６からは、読み出すメモリ番号Ｂ（ｔ）と読み出すアドレスＡ（ｔ）を示す制御信号がメモリインタフェース５に出力される。
【００２２】
ここで、制御部６がメモリインタフェース５に出力するメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）について具体的に説明する。
まず、メモリインタフェース５が生成するＱＰＰインタリーバのｔ番目のインタリーブ系列π（ｔ）は、下記のように表される。
π（ｔ）＝（ｆ１×ｔ＋ｆ２×ｔ×ｔ）  ｍｏｄ  Ｋ            （１）
ただし、ｆ１，ｆ２は所定の定数である。
このとき、Ｐ個の要素復号器７が並列処理する場合、ｉ番目の処理でｊ番目の要素復号器７に渡すデータとしてアクセスするメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）は、下記のように表される。
Ｂ（ｔ）＝π（ｉ＋Ｗ×ｊ）／Ｗ                              （２）
Ａ（ｔ）＝π（ｉ＋Ｗ×ｊ）  ｍｏｄ  Ｗ                      （３）
ただし、ここでは説明の簡単化のため、ＰはＫの約数としている。
【００２３】
したがって、制御部６が式（１）〜式（３）を計算すれば、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を求めることができるが、式（１）〜式（３）の計算では、乗算とｍｏｄ（剰余）計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態１では、下記に示すように、制御部６が加減算処理と比較計算処理を実施するだけで、順方向処理と逆方向処理のインタリーブ位置を求めるようにしている。
アクセスするメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を計算するに際して、補助パラメータとしてβ（ｔ），α（ｔ）を用意する。
【００２４】
ただし、以下のパラメータβ（０），α（０），γ，δは、計算量が大きいので，予めメモリに格納しておくものとする。
β（０）＝ｃｅｉｌ（（ｆ１＋ｆ２）ｍｏｄ  Ｋ）／Ｗ）
α（０）＝（ｆ１＋ｆ２）  ｍｏｄ  Ｗ
γ＝ｃｅｉｌ（２×ｆ２／Ｗ）
δ＝（２×ｆ２  ｍｏｄ  Ｗ）
ただし、ｃｅｉｌ（引数）は、カッコ内の引数から次に大きい整数を返す関数である。
なお、パラメータβ（０），α（０），γ，δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
【００２５】
順方向処理のインタリーブ位置を示すメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）は、以下に示すように、順方向の逐次的な操作で求めることができる。
［Ｂ（ｔ）の更新］    Ｉｆ  （Ａ（ｔ）＋α（ｔ）≧Ｗ）
Ｃ＝１
Ｅｌｓｅ
Ｃ＝０
Ｂ（ｔ＋１）＝Ｂ（ｔ）＋β（ｔ）＋Ｃ
Ｉｆ  （Ｂ（ｔ＋１）≧Ｐ）
Ｂ（ｔ＋１）＝Ｂ（ｔ＋１）−Ｐ
［β（ｔ）の更新］    Ｉｆ  （α（ｔ）＋δ≧Ｗ）
Ｃ＝１
Ｅｌｓｅ
Ｃ＝０
β（ｔ＋１）＝β（ｔ）＋γ＋Ｃ
Ｉｆ  （β（ｔ＋１）≧Ｐ）
β（ｔ＋１）＝β（ｔ＋１）−Ｐ
［Ａ（ｔ）の更新］    Ａ（ｔ＋１）＝Ａ（ｔ）＋α（ｔ）
Ｉｆ  （Ａ（ｔ＋１）≧Ｗ）
Ａ（ｔ＋１）＝Ａ（ｔ＋１）−Ｗ
［α（ｔ）の更新］    α（ｔ＋１）＝α（ｔ）＋δ
Ｉｆ  （α（ｔ＋１）≧Ｗ）
α（ｔ＋１）＝α（ｔ＋１）−Ｗ
（４）
【００２６】
メモリインタフェース５は、制御部６から出力されるメモリ番号Ｂ（ｔ）が示す情報メモリ１に格納されている受信信号のうち、制御部６から出力されるアドレスＡ（ｔ）が示すインタリーブ位置から１ワード分の受信信号を読み出すことで、順方向のインタリーブ系列π（ｔ）を生成することができる。
なお、情報長Ｋを並列数Ｐで等分割して、＃１〜＃Ｐの要素復号器７が並列処理を実施する場合、＃１〜＃Ｐの要素復号器７における並列処理の始点は、それぞれＱＰＰインタリーバの先頭０，Ｗ，２Ｗ，・・・，（Ｐ−１）×Ｗとなる。
したがって、制御部６は、逐次計算式における並列処理の初期値となるパラメータとして、Ｂ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ），α（０），γ，δを保持している。
【００２７】
メモリインタフェース５は、順方向のインタリーブ系列π（ｔ）を生成して、そのインタリーブ系列π（ｔ）を要素復号器７に与える場合、パリティ２メモリ３からターボ符号のパリティ２系列に相当する受信信号を読み出して、その受信信号を要素復号器７に与えるが、＃１のパリティ２メモリ３に格納されている受信信号は＃１の要素復号器７に与え、＃２のパリティ２メモリ３に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐのパリティ２メモリ３に格納されている受信信号は＃Ｐの要素復号器７に与える。
このとき、＃１〜＃Ｐのパリティ２メモリ３の初期位置から順番に受信信号を読み出すが、＃１〜＃Ｐのパリティ２メモリ３から受信信号を読み出す毎に、読み出しアドレス（最初は、初期位置のアドレス＝＃１〜＃Ｐのパリティ２メモリ３に格納されているＷ個の受信信号のうち、先頭に格納されている受信信号を示すアドレス）を１ずつインクリメントするようにする。
【００２８】
制御部６は、上記の通り、順方向処理のインタリーブ位置を求める際には式（４）を計算するが、メモリインタフェース５が順方向処理の非インタリーブ系列を生成して、その非インタリーブ系列を＃１〜＃Ｐの要素復号器７に与える場合、＃１〜＃Ｐの情報メモリ１の初期位置から順番に１ワード分の受信信号を読み出すようにする。
このとき、＃１〜＃Ｐの情報メモリ１から受信信号を読み出す毎に、読み出しアドレス（最初は、初期位置のアドレス＝＃１〜＃Ｐの情報メモリ１に格納されているＷ個の受信信号のうち、先頭に格納されている受信信号を示すアドレス）を１ずつインクリメントするようにする。
なお、＃１の情報メモリ１に格納されている受信信号は＃１の要素復号器７に与え、＃２の情報メモリ１に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐの情報メモリ１に格納されている受信信号は＃Ｐの要素復号器７に与える。
【００２９】
メモリインタフェース５は、順方向の非インタリーブ系列を生成して、その非インタリーブ系列を要素復号器７に与える場合、パリティ１メモリ２からターボ符号のパリティ１系列に相当する受信信号を読み出して、その受信信号を要素復号器７に与えるが、＃１のパリティ１メモリ２に格納されている受信信号は＃１の要素復号器７に与え、＃２のパリティ１メモリ２に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐのパリティ１メモリ２に格納されている受信信号は＃Ｐの要素復号器７に与える。
このとき、＃１〜＃Ｐのパリティ１メモリ２の初期位置から順番に受信信号を読み出すが、＃１〜＃Ｐのパリティ１メモリ２から受信信号を読み出す毎に、読み出しアドレス（最初は、初期位置のアドレス＝＃１〜＃Ｐのパリティ１メモリ２に格納されているＷ個の受信信号のうち、先頭に格納されている受信信号を示すアドレス）を１ずつインクリメントするようにする。
【００３０】
次に、逆方向処理のインタリーブ位置を示すメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）は、以下に示すように、逆方向の逐次的な操作で求めることができる。
［α（ｔ）の更新］    Ｉｆ  （α（ｔ）≧δ）
α（ｔ−１）＝α（ｔ）−δ
Ｅｌｓｅ
α（ｔ−１）＝α（ｔ）＋Ｗ−δ
［Ａ（ｔ）の更新］    Ｉｆ  （Ａ（ｔ）≧α（ｔ−１））
Ａ（ｔ−１）＝Ａ（ｔ）−α（ｔ−１）
Ｅｌｓｅ
Ａ（ｔ−１）＝Ａ（ｔ）＋Ｗ−α（ｔ−１）
［β（ｔ）の更新］    Ｉｆ  （α（ｔ）＋δ≧Ｗ）
Ｃ＝１
Ｅｌｓｅ
Ｃ＝０
Ｉｆ  （β（ｔ）≧γ＋Ｃ）
β（ｔ−１）＝β（ｔ）−γ−Ｃ
Ｅｌｓｅ
β（ｔ−１）＝β（ｔ＋１）＋Ｐ−γ−Ｃ
［Ｂ（ｔ）の更新］    Ｉｆ  （Ａ（ｔ）＋α（ｔ）≧Ｗ）
Ｃ＝１
Ｅｌｓｅ
Ｃ＝０
Ｉｆ  （Ｂ（ｔ）≧β（ｔ−１）＋Ｃ）
Ｂ（ｔ−１）＝Ｂ（ｔ）−β（ｔ−１）−Ｃ
Ｅｌｓｅ
Ｂ（ｔ−１）＝Ｂ（ｔ）＋Ｐ−β（ｔ−１）−Ｃ
（５）
【００３１】
メモリインタフェース５は、制御部６から出力されるメモリ番号Ｂ（ｔ）が示す情報メモリ１に格納されている受信信号のうち、制御部６から出力されるアドレスＡ（ｔ）が示すインタリーブ位置から１ワード分の受信信号を読み出すことで、逆方向のインタリーブ系列π（ｔ）を生成することができる。
なお、情報長Ｋを並列数Ｐで等分割して、＃１〜＃Ｐの要素復号器７が並列処理を実施する場合、＃１〜＃Ｐの要素復号器７における並列処理の始点は、それぞれＱＰＰインタリーバの（Ｐ−１）×Ｗ，・・・，２Ｗ，１Ｗ，先頭０となる。
したがって、制御部６は、逐次計算式における並列処理の初期値となるパラメータとして、Ｂ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ），α（０），γ，δを保持している。
【００３２】
メモリインタフェース５は、逆方向のインタリーブ系列π（ｔ）を生成して、そのインタリーブ系列π（ｔ）を要素復号器７に与える場合、パリティ２メモリ３からターボ符号のパリティ２系列に相当する受信信号を読み出して、その受信信号を要素復号器７に与えるが、＃１のパリティ２メモリ３に格納されている受信信号は＃１の要素復号器７に与え、＃２のパリティ２メモリ３に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐのパリティ２メモリ３に格納されている受信信号は＃Ｐの要素復号器７に与える。
このとき、＃１〜＃Ｐのパリティ２メモリ３の最終位置から順番に受信信号を読み出すが、＃１〜＃Ｐのパリティ２メモリ３から受信信号を読み出す毎に、読み出しアドレス（最初は、最終位置のアドレス＝＃１〜＃Ｐのパリティ２メモリ３に格納されているＷ個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス）を１ずつデクリメントするようにする。
【００３３】
制御部６は、上記の通り、逆方向処理のインタリーブ位置を求める際には式（５）を計算するが、メモリインタフェース５が逆方向処理の非インタリーブ系列を生成して、その非インタリーブ系列を＃１〜＃Ｐの要素復号器７に与える場合、＃１〜＃Ｐの情報メモリ１の最終位置から順番に１ワード分の受信信号を読み出すようにする。
このとき、＃１〜＃Ｐの情報メモリ１から受信信号を読み出す毎に、読み出しアドレス（最初は、最終位置のアドレス＝＃１〜＃Ｐの情報メモリ１に格納されているＷ個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス）を１ずつデクリメントするようにする。
なお、＃１の情報メモリ１に格納されている受信信号は＃１の要素復号器７に与え、＃２の情報メモリ１に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐの情報メモリ１に格納されている受信信号は＃Ｐの要素復号器７に与える。
【００３４】
メモリインタフェース５は、順方向の非インタリーブ系列を生成して、その非インタリーブ系列を要素復号器７に与える場合、パリティ１メモリ２からターボ符号のパリティ１系列に相当する受信信号を読み出して、その受信信号を要素復号器７に与えるが、＃１のパリティ１メモリ２に格納されている受信信号は＃１の要素復号器７に与え、＃２のパリティ１メモリ２に格納されている受信信号は＃２の要素復号器７に与え、また、＃Ｐのパリティ１メモリ２に格納されている受信信号は＃Ｐの要素復号器７に与える。
このとき、＃１〜＃Ｐのパリティ１メモリ２の最終位置から順番に受信信号を読み出すが、＃１〜＃Ｐのパリティ１メモリ２から受信信号を読み出す毎に、読み出しアドレス（最初は、最終位置のアドレス＝＃１〜＃Ｐのパリティ１メモリ２に格納されているＷ個の受信信号のうち、最後尾に格納されている受信信号を示すアドレス）を１ずつデクリメントするようにする。
【００３５】
メモリインタフェース５がインタリーブ系列及び非インタリーブ系列を生成する際の制御部６の動作は、上記の通りである。
以下、図２を参照しながら、制御部６がメモリインタフェース５を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器７がターボ符号を復号する処理を説明する。
なお、図２では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
【００３６】
まず、制御部６は、要素復号器７のメモリに格納されているパスメトリック値を初期化する。
次に、制御部６は、インタリーブ系列π（ｔ）の生成に係るパラメータとして、情報長固有のパラメータ（α（０）、γ、δ）と、並列処理を行う際の先頭位置を示すパラメータ（Ｂ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ）とを設定する。
なお、図２では並列処理を明確にするため、並列数をＰとして、順方向処理と逆方向処理を＃１〜＃Ｐで表している。
【００３７】
また、制御部６は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器７におけるパスメトリック計算の初期化を行う。
なお、図２では、要素復号器７により算出されたパスメトリック値を“端パスメトリック値”と記述しており、特に、パスメトリック値の格納と読み出しを明確にするため、非インタリーブ順方向の場合をＦ１、非インタリーブ逆方向の場合をＢ１、インタリーブ順方向の場合をＦ２、インタリーブ逆方向の場合をＢ２で表記している。これらのパスメトリック値は新しい値の算出時に上書きする。
【００３８】
繰り返し１回目では、制御部６は、非インタリーブ系列の順方向処理を行うため、＃１〜＃Ｐの要素復号器７に与える順方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ１メモリ２から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号を受けると、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、非インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｆ１として内部のメモリに格納する。受信信号に対する順方向処理、復号結果やパスメトリック値を算出する方法は、公知の技術であり、例えば、非特許文献１に開示されている。
なお、＃１〜＃Ｐの要素復号器７における順方向処理では、Ｗステップを要する。
【００３９】
次に、制御部６は、繰り返し１回目における非インタリーブ系列の逆方向処理を行うため、＃１〜＃Ｐの要素復号器７に与える逆方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ１メモリ２から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号を受けると、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｂ１として内部のメモリに格納する。
また、＃１〜＃Ｐの要素復号器７は、非インタリーブ逆方向のパスメトリック値を用いて、外部情報（例えば、要素復号器７による復号結果が“１”又は“０”である確率を示す情報）を算出し、その外部情報を＃１〜＃Ｐの外部情報メモリ４に格納する。受信信号に対する逆方向処理や外部情報を算出する方法は、公知の技術であり、例えば、非特許文献１に開示されている。
なお、＃１〜＃Ｐの要素復号器７における逆方向処理では、Ｗステップを要する。
【００４０】
次に、制御部６は、繰り返し１回目におけるインタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を受けると、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ２メモリ３から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｆ２として内部のメモリに格納する。
【００４１】
次に、制御部６は、繰り返し１回目におけるインタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を受けると、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ２メモリ３から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｂ２として内部のメモリに格納する。
また、＃１〜＃Ｐの要素復号器７は、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を＃１〜＃Ｐの外部情報メモリ４に格納する（外部情報メモリ４に格納されている外部情報の上に、新たに算出した外部情報を上書きする）。
【００４２】
繰り返し２回目では、制御部６は、非インタリーブ系列の順方向処理を行うため、＃１〜＃Ｐの要素復号器７に与える順方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ１メモリ２から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｆ１（繰り返し１回目における非インタリーブ系列の順方向処理で算出された端パスメトリック値Ｆ１）を読み出して、その端パスメトリック値Ｆ１を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｆ１として、内部のメモリに格納されている端パスメトリック値Ｆ１を更新する（内部のメモリに格納されている端パスメトリック値Ｆ１の上に、新たに算出したパスメトリック値を上書きする）。
【００４３】
次に、制御部６は、繰り返し２回目における非インタリーブ系列の逆方向処理を行うため、＃１〜＃Ｐの要素復号器７に与える逆方向の非インタリーブ系列の位置を示すアドレスとメモリ番号をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスとメモリ番号を受けると、そのアドレスとメモリ番号にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ１メモリ２から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｂ１（繰り返し１回目における非インタリーブ系列の逆方向処理で算出された端パスメトリック値Ｂ１）を読み出し、その端パスメトリック値Ｂ１を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｂ１として、内部のメモリに格納されている端パスメトリック値Ｂ１を更新する。
また、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を＃１〜＃Ｐの外部情報メモリ４に格納する。
【００４４】
次に、制御部６は、繰り返し２回目におけるインタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を受けると、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ２メモリ３から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｆ２（繰り返し１回目におけるインタリーブ系列の順方向処理で算出された端パスメトリック値Ｆ２）を読み出し、その端パスメトリック値Ｆ２を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｆ２として、内部のメモリに格納されている端パスメトリック値Ｆ２を更新する。
【００４５】
次に、制御部６は、繰り返し２回目におけるインタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を受けると、そのメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）にしたがって、＃１〜＃Ｐの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与えるとともに、パリティ２メモリ３から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｐの要素復号器７に与える。
また、＃１〜＃Ｐの外部情報メモリ４から外部情報をそれぞれ読み出して、各外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｂ２（繰り返し１回目におけるインタリーブ系列の逆方向処理で算出された端パスメトリック値Ｂ２）を読み出し、その端パスメトリック値Ｂ２を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｂ２として、内部のメモリに格納されている端パスメトリック値Ｂ２を更新する。
また、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を＃１〜＃Ｐの外部情報メモリ４に格納する。
【００４６】
以降、繰り返し２回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
＃１〜＃Ｐの要素復号器７は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
【００４７】
以上で明らかなように、この実施の形態１によれば、メモリインタフェース５がターボ符号のインタリーブ系列を生成する際、制御部６が加減算処理と比較計算処理を実施するだけで順方向処理と逆方向処理のインタリーブ位置を求めるように構成したので、インタリーブ系列を格納するメモリを実装することなく、ターボ符号の復号処理を並列化することができるようになり、実装するメモリ量を削減することができる効果を奏する。
即ち、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。
【００４８】
なお、この実施の形態１では、要素復号器７が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器７が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さＷが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を１ステップ先行又は１ステップ遅延させるようにする。
【００４９】
即ち、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さＷが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を１ステップ先行又は１ステップ遅延させるようにする。
その理由は、並列化単位の長さＷが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を１ステップ先行、もしくは、１ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
【００５０】
実施の形態２．
上記実施の形態１では、情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４をＰ個ずつ実装しているものを示したが、図３に示すように、情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４を１個ずつ実装するようにしてもよい。
この場合、復号処理を並列化する際のデータの読み書きは、アクセスするアドレスと読み出したデータの並べ替えを制御することで可能となる。
例えば、並列数をＰとすると、アドレス数はＫ／Ｐ、１ワードは受信信号のビット数ｎのＰ倍であるｎ×Ｐビットとなり、読み出したｎ×Ｐビットをｎビットずつ区切って並べ替えるようにする。
【００５１】
制御部６は、メモリインタフェース５が情報メモリ１、パリティ１メモリ２及びパリティ２メモリ３から読み出す受信信号を制御するとともに、メモリインタフェース５が外部情報メモリ４から読み出す外部情報と、外部情報メモリ４に書き込む外部情報とを制御する。ただし、メモリインタフェース５が外部情報を書き込む際には、その外部情報の書き込み先が、読み出す外部情報と同じアドレスになるように制御する。
また、制御部６は、メモリインタフェース５が読み出した受信信号であるデータの並べ替えパターンを制御する。
【００５２】
以下、制御部６におけるデータの並べ替えパターンの制御について説明する。
ここでは、メモリインタフェース５がアクセスするアドレスをＡ（ｔ）、データの並べ替え順を示すパラメータをＢ（ｔ）として、補助パラメータβ（ｔ），α（ｔ）を用意する。
ただし、以下のパラメータβ（０），α（０），γ，δは、計算量が大きいので，予めメモリに格納しておくものとする。
β（０）＝ｃｅｉｌ（（ｆ１＋ｆ２）ｍｏｄ  Ｋ）／Ｗ）
α（０）＝（ｆ１＋ｆ２）  ｍｏｄ  Ｗ
γ＝ｃｅｉｌ（２×ｆ２／Ｗ）
δ＝（２×ｆ２  ｍｏｄ  Ｗ）
なお、パラメータβ（０），α（０），γ，δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
【００５３】
情報長Ｋを並列数Ｐで等分割して、＃１〜＃Ｐの要素復号器７が並列処理を実施する場合、＃１〜＃Ｐの要素復号器７における並列処理の始点は、それぞれＱＰＰインタリーバの先頭０，Ｗ，２Ｗ，・・・，（Ｐ−１）×Ｗとなる。
したがって、制御部６は、逐次計算式における並列処理の初期値となるパラメータとして、Ｂ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ），α（０），γ，δを保持している。
【００５４】
Ｂ（ｔ）とＡ（ｔ）は、順方向のインタリーブ時の逐次的な操作では、上記の式（４）を用いて求めることができ、逆方向のインタリーブ時の逐次的な操作では、上記の式（５）を用いて求めることができる。上記実施の形態１では、上記の式（４）、式（５）におけるＢ（ｔ）がメモリ番号を表しているが、この実施の形態２では、式（４）、式（５）におけるＢ（ｔ）がデータの並べ替え順を表しているものとする。
非インタリーブ時のアドレスについては、上記実施の形態１と同様に、初期位置又は最終位置から１ずつアドレスを変化させればよい。
【００５５】
情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４は、１ワードがｎ×Ｐビットで構成されており、図４は読み出したｎ×ＰビットをＰ個の要素復号器７に受け渡すために並べ替える手順を示している。
情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４を１個ずつ実装する場合において、データ番号ｉに対してＰでの剰余（ｉ  ｍｏｄ  Ｐ）が等しい値を同じアドレスに格納して並列処理するとすれば、インタリーブ時においても、同じ組み合わせを同時に処理することになる。
ただし、データを受け渡す要素復号器７については変わるので、データの並べ替えが必要となる。図４では、上記の式（４）、式（５）から得られるＢ（ｔ）を用いて、データの並べ替えを実施している。
【００５６】
以下、図２を参照しながら、制御部６がメモリインタフェース５を制御することにより、インタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器７がターボ符号を復号する処理を説明する。
なお、図２では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
【００５７】
まず、制御部６は、要素復号器７のメモリに格納されているパスメトリック値を初期化する。
次に、制御部６は、インタリーブ系列π（ｔ）の生成に係るパラメータとして、情報長固有のパラメータ（α（０）、γ、δ）と、並列処理を行う際の先頭位置を示すパラメータ（Ｂ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ）とを設定する。
なお、図２では並列処理を明確にするため、並列数をＰとして、順方向処理と逆方向処理を＃１〜＃Ｐで表している。
また、制御部６は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器７におけるパスメトリック計算の初期化を行う。
【００５８】
繰り返し１回目では、制御部６は、非インタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、並べ替え順パラメータＢ（ｔ）を算出し、その並べ替え順パラメータＢ（ｔ）と、順方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスと並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスにしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。また、パリティ１メモリ２から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号を受けると、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、非インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｆ１として内部のメモリに格納する。
なお、＃１〜＃Ｐの要素復号器７における順方向処理では、Ｗステップを要する。
【００５９】
次に、制御部６は、繰り返し１回目における非インタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、並べ替え順パラメータＢ（ｔ）を算出し、その並べ替え順パラメータＢ（ｔ）と、逆方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスと並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスにしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。また、パリティ１メモリ２から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号を受けると、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｂ１として内部のメモリに格納する。
また、＃１〜＃Ｐの要素復号器７は、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ４に格納する。
なお、＃１〜＃Ｐの要素復号器７における逆方向処理では、Ｗステップを要する。
【００６０】
次に、制御部６は、繰り返し１回目におけるインタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、アドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を算出し、そのアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスＡ（ｔ）にしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ２メモリ３から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｆ２として内部のメモリに格納する。
【００６１】
次に、制御部６は、繰り返し１回目におけるインタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、アドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を算出し、そのアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスＡ（ｔ）にしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ２メモリ３から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出し、そのパスメトリック値を端パスメトリック値Ｂ２として内部のメモリに格納する。
また、＃１〜＃Ｐの要素復号器７は、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ４に格納する（外部情報メモリ４に格納されている外部情報の上に、新たに算出した外部情報を上書きする）。
【００６２】
繰り返し２回目では、制御部６は、非インタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、並べ替え順パラメータＢ（ｔ）を算出し、その並べ替え順パラメータＢ（ｔ）と、順方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスと並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスにしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ１メモリ２から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｆ１（繰り返し１回目における非インタリーブ系列の順方向処理で算出された端パスメトリック値Ｆ１）を読み出して、その端パスメトリック値Ｆ１を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｆ１として、内部のメモリに格納されている端パスメトリック値Ｆ１を更新する（内部のメモリに格納されている端パスメトリック値Ｆ１の上に、新たに算出したパスメトリック値を上書きする）。
【００６３】
次に、制御部６は、繰り返し２回目における非インタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、並べ替え順パラメータＢ（ｔ）を算出し、その並べ替え順パラメータＢ（ｔ）と、逆方向の非インタリーブ系列の位置を示すアドレスとをメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスと並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスにしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ１メモリ２から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｂ１（繰り返し１回目における非インタリーブ系列の逆方向処理で算出された端パスメトリック値Ｂ１）を読み出し、その端パスメトリック値Ｂ１を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、非インタリーブ逆方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｂ１として、内部のメモリに格納されている端パスメトリック値Ｂ１を更新する。
また、非インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を外部情報メモリ４に格納する。
【００６４】
次に、制御部６は、繰り返し２回目におけるインタリーブ系列の順方向処理を行うため、上記の式（４）を用いて、アドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を算出し、そのアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスＡ（ｔ）にしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ２メモリ３から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｆ２（繰り返し１回目におけるインタリーブ系列の順方向処理で算出された端パスメトリック値Ｆ２）を読み出し、その端パスメトリック値Ｆ２を順方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する順方向処理を実施して、復号結果を算出するとともに、インタリーブ順方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｆ２として、内部のメモリに格納されている端パスメトリック値Ｆ２を更新する。
【００６５】
次に、制御部６は、繰り返し２回目におけるインタリーブ系列の逆方向処理を行うため、上記の式（５）を用いて、アドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を算出し、そのアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、制御部６からアドレスＡ（ｔ）と並べ替え順パラメータＢ（ｔ）を受けると、そのアドレスＡ（ｔ）にしたがって情報メモリ１から受信信号を読み出し、その並べ替え順パラメータＢ（ｔ）にしたがって、その受信信号の並び替えを実施し、並び替え後の受信信号を＃１〜＃Ｐの要素復号器７に出力する。
また、パリティ２メモリ３から受信信号を読み出して、その受信信号を＃１〜＃Ｐの要素復号器７に与え、外部情報メモリ４から外部情報を読み出して、その外部情報を＃１〜＃Ｐの要素復号器７に与える。
＃１〜＃Ｐの要素復号器７は、メモリインタフェース５から受信信号と外部情報を受けると、内部のメモリに格納されている端パスメトリック値Ｂ２（繰り返し１回目におけるインタリーブ系列の逆方向処理で算出された端パスメトリック値Ｂ２）を読み出し、その端パスメトリック値Ｂ２を逆方向処理の初期値として設定する。
そして、その外部情報を用いて、その受信信号に対する逆方向処理を実施して、復号結果を算出するとともに、インタリーブ逆方向のパスメトリック値を算出する。
＃１〜＃Ｐの要素復号器７は、そのパスメトリック値を端パスメトリック値Ｂ２として、内部のメモリに格納されている端パスメトリック値Ｂ２を更新する。
また、インタリーブ逆方向のパスメトリック値を用いて外部情報を算出し、その外部情報を＃１〜＃Ｐの外部情報メモリ４に格納する。
【００６６】
以降、繰り返し２回目と同様にして、非インタリーブの順方向処理及び逆方向処理と、インタリーブの順方向処理及び逆方向処理とを所定回数だけ繰り返し実施する。
＃１〜＃Ｐの要素復号器７は、所定回数だけ繰り返し実施すると、最後に算出した復号結果を出力する。
【００６７】
以上で明らかなように、この実施の形態２によれば、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる効果を奏する。
【００６８】
なお、この実施の形態２では、要素復号器７が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器７が順方向処理と逆方向処理を同時に実施するようにしてもよい。
ただし、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、並列化単位の長さＷが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を１ステップ先行又は１ステップ遅延させるようにする。
【００６９】
即ち、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、順方向処理は単位の先頭からパスメトリック値を保存しながら処理を進め、逆方向処理は単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
ただし、並列化単位の長さＷが奇数であれば、順方向処理又は逆方向処理のいずれか一方の開始を１ステップ先行又は１ステップ遅延させるようにする。
その理由は、並列化単位の長さＷが奇数である場合、トレリスが交差する位置が同じになるため、いずれのパスメトリック値も保存されていない位置が生じてしまって、外部情報を算出することができないからである。
いずれかの開始を１ステップ先行、もしくは、１ステップ遅延させることで、どのような場合にも処理のタイミングに矛盾なく外部情報を算出することができる。
【００７０】
実施の形態３．
図５はこの発明の実施の形態３によるターボ符号復号装置を示す構成図であり、図において、並列化ターボ復号器１０は図１又は図３に相当するターボ符号復号装置である。
復号方式制御部１１はターボ符号の情報長Ｋに応じて、要素復号器７の並列数Ｐを決定し、その並列数分の要素復号器７を制御するとともに、ターボ符号の情報長Ｋに応じて、要素復号器７における順方向処理と逆方向処理の繰り返し回数Ｉとマージン幅Ｍを制御する。なお、復号方式制御部１１は制御手段を構成している。
図７はこの発明の実施の形態３によるターボ符号復号装置の処理内容を示すフローチャートである。
【００７１】
次に動作について説明する。
ターボ符号の復号処理の高速化を図る場合、動作クロックを上げる方法や、要素復号器７の並列数Ｐを多くするなどの方法が考えられる。
しかし、動作クロックを上げる方法を用いる場合、例えば、消費電力やデバイスのコストなどが大きくなる。
そこで、この実施の形態３では、要素復号器７の並列数Ｐを多くする方法を採用し、システムが要求する処理速度に適する復号方式を情報長Ｋに応じて選択することで、実装上有効な範囲の動作クロックに設定するようにする。
【００７２】
例えば、ターボ符号の復号方式として、スライディング・ウィンドウ方式を採用する場合、情報長Ｋが短いと、マージン幅Ｍが情報長Ｋに近い幅となり、スループット（ｂｉｔｓ／ｓｅｃ：単位時間内に復号するビット数）が著しく低下する。
ターボ符号の復号処理では、順方向処理と逆方向処理でそれぞれＷステップが必要であり、非インタリーブとインタリーブの復号繰り返し回数Ｉを考慮すると、（Ｗ＋Ｗ）×２×Ｉステップが必要である。ただし、ここでは説明の簡単化のためテイル・ビットの処理を考慮していない。
順方向処理と逆方向処理におけるマージン幅Ｍを考慮すると、必要なステップ数は、（Ｗ＋Ｍ＋Ｗ＋Ｍ）×２×Ｉステップとなり、Ｗが小さい場合にはマージン幅Ｍの与える影響が大きい。
【００７３】
図６は情報長Ｋと復号繰り返し回数Ｉの違いによる復号性能の比較シミュレーションの結果を示すグラフ図である。
図６において、横軸は情報長Ｋ、縦軸はブロック誤り率ＢＬＥＲ（Ｂｌｏｃｋ  Ｅｒｒｏｒ  Ｒａｔｅ）が１％に達するＥｂ／Ｎ０［ｄＢ］を示している。
ターボ符号は、「３ＧＰＰ  ＴＳ３６２１２」の規格で規定されているターボ符号を用いており、符号長は３Ｋ＋１２である。
シミュレーション条件として、加法的白色ガウス通信路、ＢＰＳＫ変調を仮定しており、ターボ符号の復号には「Ｍａｘ  Ｌｏｇ  ＭＡＰ復号法」を用いている。
繰り返し回数Ｉが多いほど復号性能が高く、情報長Ｋが大きくなるほど性能差が大きくなる。繰り返しを行うターボ符号の復号は、正しい結果に収束するまでに要する繰り返し回数が情報長Ｋに依存する。情報長Ｋが短い場合、情報長Ｋが長い場合と比べて少ない繰り返し回数で収束する。
【００７４】
上記の通り、ターボ符号の復号は、情報長Ｋに依存して特徴が大きく変化する。
この実施の形態３では、通信システムで要求される処理速度を満たして、高い復号性能が得られるように、情報長Ｋに応じて要素復号器７の並列数Ｐ、マージン幅Ｍ、復号繰り返し回数Ｉを制御する。
例えば、図６のグラフにおいて、ターボ符号を用いた通信性能として、繰り返し回数８回に対して０．５ｄＢ程度の劣化まで許容できるとすれば、情報長Ｋが１００ビット未満では繰り返し回数を２回、情報長Ｋが１０００ビット未満では繰り返し回数を３回、情報長Ｋが１０００ビット以上では繰り返し回数を４回とすることで、繰り返し回数Ｉを必要回数に抑えることができる。
【００７５】
以下、図７を参照して、ターボ符号復号装置の処理内容を説明する。
この実施の形態３では、予め、通信システムが要求する処理速度を満たすよう設定されている要素復号器７の並列数Ｐとマージン幅Ｍがテーブル化されており、そのテーブルが復号方式制御部１１に保持されている。
復号方式制御部１１は、情報長Ｋを入力すると（ステップＳＴ１）、保持しているテーブルから要素復号器７の並列数Ｐとマージン幅Ｍを読み出して、その並列数Ｐとマージン幅Ｍを設定する（ステップＳＴ２，ＳＴ３）。ただし、並列数Ｐとマージン幅Ｍは、実装されている回路の持つ最大値以下の値に設定される。
【００７６】
次に、復号方式制御部１１は、復号繰り返し回数Ｉを設定する。復号繰り返し回数Ｉはステップ数と動作クロックからシステム要求を満たす最大値に設定される。
なお、復号繰り返し回数Ｉは、システムが要求する復号性能を満たすまで繰り返し回数を減らして、処理速度を向上させるようにしてもよい。
復号方式制御部１１は、復号方式制御部１１による設定内容でターボ復号を実施し（ステップＳＴ５，ＳＴ６）、その復号結果を出力する（ステップＳＴ７）。
【００７７】
以上で明らかなように、この実施の形態３によれば、ターボ符号の情報長Ｋに応じて、要素復号器７の並列数Ｐ、順方向処理と逆方向処理の繰り返し回数Ｉ及びマージン幅Ｍを制御するように構成したので、通信システムの持つ全ての情報長Ｋに対して、通信システムが要求する処理速度を満たすことが可能になる。
復号回路の動作時間は復号繰り返し回数Ｉに比例するため、通信システムが要求する復号性能に応じて繰り返し回数Ｉを制御することで消費電力の低減効果を高めることができる。また、実装上で有効な範囲の動作クロックでシステム要求を満たすため、開発コストを抑えることができる。
【００７８】
実施の形態４．
図８はこの発明の実施の形態４による通信システムを示す構成図であり、通信システムは送信装置２０と受信装置３０から構成されている。
図において、送信装置２０は内部インタリーバにＱＰＰを用いているターボ符号化器２１を実装しており、ターボ符号化器２１を使用して、情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
受信装置３０は図１、図３又は図５のターボ符号復号装置３１を実装しており、送信装置２０から送信された変調波を受信し、その変調波からターボ符号を復調すると、そのターボ符号復号装置３１を使用して、そのターボ符号を復号する。
なお、送信装置２０と受信装置３０の通信路は、無線でも有線でもよく、ターボ符号を利用するディジタル通信システムの全てに適用することができる。
図９はこの発明の実施の形態４による通信システムの処理内容を示すフローチャートである。
【００７９】
次に動作について説明する。
送信装置２０は、例えば、データ通信対象のパケットデータである情報源を入力すると（ステップＳＴ１１）、実装しているターボ符号化器２１を使用して、その情報源をターボ符号化して、ターボ符号（ターボ符号化系列）を生成する（ステップＳＴ１２）。
送信装置２０は、ターボ符号を生成すると、そのターボ符号を変調して変調波を送信する（ステップＳＴ１３）。
通信路では、伝播環境に応じて変調波に雑音が付加される。
【００８０】
受信装置３０は、送信装置２０から送信された変調波を受信し（ステップＳＴ１４）、その変調波に対する同期検波処理や復調処理を実施することにより、ターボ符号を復調する。
受信装置３０は、ターボ符号を復調すると、図１、図３又は図５のターボ符号復号装置を使用して、そのターボ符号を復号し（ステップＳＴ１５）、その復号結果を例えば再生装置に出力する。
これにより、再生装置により復号結果の再生処理が実施されて（ステップＳＴ１６）、情報源の再生が行われる。
【００８１】
この実施の形態４によれば、受信装置３０が図１、図３又は図５のターボ符号復号装置３１を実装しているので、通信システムが情報長Ｋに対して安定した通信速度を保つことができ、受信装置３０の消費電力や回路規模を抑えることができる効果を奏する。
【００８２】
実施の形態５．
図１０はこの発明の実施の形態５による通信システムを示す構成図であり、通信システムは図８の送信装置２０に相当する移動体端末４０と、図８の受信装置３０に相当する基地局５０とから構成されている。
図において、移動体端末４０は「３ＧＰＰ  ＴＳ３６．２１２」の規格で規定されたターボ符号化器４１を実装しており、そのターボ符号化器４１を使用して、情報源をターボ符号化してターボ符号を生成し、そのターボ符号を変調して変調波を送信する。
なお、移動体端末４０では、基地局５０に送信するデータのうち、ターボ符号を利用するチャネル（例えば、Ｕｐｌｉｎｋ  Ｓｈａｒｅｄ  Ｃｈａｎｎｅｌ）に割り当てられたデータ系列をターボ符号化し、そのターボ符号を生成して送信する。
基地局５０は図１、図３又は図５のターボ符号復号装置５１を実装しており、移動体端末４０から送信された変調波を受信し、その変調波からターボ符号を復調すると、そのターボ符号復号装置５１を使用して、そのターボ符号を復号する。
【００８３】
この実施の形態５の場合も、基地局５０が図１、図３又は図５のターボ符号復号装置５１を実装しているので、上記実施の形態４と同様に、通信システムが情報長Ｋに対して安定した通信速度を保つことができ、基地局５０の消費電力や回路規模を抑えることができる効果を奏する。
【００８４】
なお、上記実施の形態１〜５では、無線通信を実施する際に、ターボ符号復号装置がターボ符号を復号するものについて示したが、これに限るものではなく、一般的なディジタル情報処理を実施する際に、ターボ符号復号装置がターボ符号を復号するようにしてもよい。
【００８５】
実施の形態６．
上記実施の形態１〜５では、復号処理を並列化する際、メモリインタフェース５がアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）とを制御部６が逐次的に計算していた。図１１は、上記実施の形態１〜５に係るターボ符号復号装置を示す構成図であり、特に制御部６の内部構成を詳細に示すものである。上記実施の形態１〜５では制御部６として記載しているが（図１及び図３）、この制御部（系列生成手段）６は、アドレスＡ（ｔ）を計算するためのインタリーブアドレス生成テーブル６１及びアドレス生成部６２と、メモリ番号Ｂ（ｔ）を計算するための情報選択制御部６３及びメモリ選択初期テーブル６５と、これら各部の動作を制御するための動作制御部６４とからなる。
【００８６】
例えば上記実施の形態１の復号処理を実現する場合、インタリーブアドレス生成テーブル６１は、インタリーブを決定するための２次多項式（１）における情報長固有の係数ｆ１，ｆ２を保持している。インタリーブアドレス生成テーブル６１はまた、アドレスＡ（ｔ）の逐次計算に必要な、情報長固有のパラメータα（０），δを保持している。インタリーブ時、アドレス生成部６２は、インタリーブアドレス生成テーブル６１が保持する情報長Ｋに応じた係数及びパラメータを用いて、式（４）又は式（５）を計算してアドレスＡ（ｔ）を求める。
メモリ選択初期テーブル６５は、メモリ番号Ｂ（ｔ）の逐次計算式における並列処理の初期値となるパラメータＢ（０），Ｂ（Ｗ），Ｂ（２Ｗ），・・・，Ｂ（（Ｐ−１）×Ｗ），β（０），β（Ｗ），β（２Ｗ），・・・，β（（Ｐ−１）×Ｗ），γを保持している。情報選択制御部６３は、メモリ選択初期テーブル６５が保持するパラメータを用いて、式（４）又は式（５）を計算してメモリ番号Ｂ（ｔ）を求める。そして、メモリインタフェース５がメモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）にしたがってインタリーブ系列を生成して要素復号器（復号手段）７へ渡す。メモリインタフェース５はまた、要素復号器７から出力される外部情報系列を外部情報メモリ４に出力する処理を実施する。
動作制御部６４は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器７におけるパスメトリック計算の初期化を行う。ただし、上記実施の形態３においては、動作制御部６４は復号方式制御部１１に相当する。
【００８７】
この構成の場合、制御部６がメモリ選択初期テーブル６５を備え、情報選択制御部６３がメモリ選択初期テーブル６５のパラメータを用いてメモリ番号Ｂ（ｔ）を逐次的に計算している。この構成では、パラメータを格納するためのメモリに相当するメモリ選択初期テーブル６５が必要であった。
そこで、この実施の形態６では、制御部６の情報選択制御部（情報選択制御手段）６６が、メモリ選択初期テーブル６５のパラメータに代えて、インタリーブアドレス生成テーブル６１の値を用いてメモリ番号Ｂ（ｔ）を求めるようにする。
【００８８】
図１２は、この発明の実施の形態６によるターボ符号復号装置を示す構成図であり、図１，３及び１１と同一又は相当の部分については同一の符号を付す。ここでは、情報系列の情報長がＮ、要素復号器７の並列数がＭであるとする。
この場合、Ｍ個の要素復号器７により並列に処理される並列化単位の長さがＷ＝Ｎ／Ｍとなり、アドレス数もＮ／Ｍとなる。
【００８９】
図１３は、情報メモリ１のメモリ構成及びインタリーブ時のメモリアクセス方法を模式的に示す説明図である。図１３では一例として情報長Ｎを３２、並列数Ｍを４とした構成を示す。この場合にはターボ符号復号装置に要素復号器７が４個実装され、情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４もそれぞれ４個ずつ実装される。メモリインタフェース５は、受信情報系列、パリティ１系列、パリティ２系列及び外部情報系列を、情報メモリ１、パリティ１メモリ２、パリティ２メモリ３及び外部情報メモリ４のアドレス０から順にアドレスＮ／Ｍ−１までに格納する。
インタリーブ時には、情報メモリ１と、情報メモリ１に書き込まれたデータが受け渡される要素復号器７とで対応関係が変わるので、データの並べ替えが必要となる。図１３では、後述する式（１０）から得られるメモリ番号Ｂ（ｔ）を用いて、データの並べ替えを実施している。
【００９０】
並列段数Ｍにおいて、ｔ番目に情報メモリ１に格納されたデータのインタリーブアドレスをπ（ｔ）とすると、下記式（６）を満たすようなインタリーバのとき、要素復号器７で同時に復号処理するデータの組み合わせが非インタリーブ時とインタリーブ時で同一となるため、１つのメモリの１つのアドレスに同時処理する複数のデータを１ワードとして格納しておき、読み書きすることが可能となる。
π（ｔ＋ｋ×Ｎ／Ｍ）＝π（ｔ）＋ｋ×ｆｘ×Ｎ／Ｍ  ｍｏｄ  Ｎ  （６）
ここで、ｔ＝０，１，・・・，Ｎ／Ｍ−１、ｋ＝０，１，・・・，Ｍ−１である。
このとき、Ｍ個の要素復号器７が並列処理する場合にアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）とアドレス（ｔ）は、下記のように表される。
Ｂ（ｔ）＝ｃｅｉｌ（π（ｔ）／Ｗ）                            （７）
Ａ（ｔ）＝π（ｔ）  ｍｏｄ  Ｗ                                （８）
ここで、ｔ＝０，１，・・・，Ｗ−１であり、Ｗ＝Ｎ／Ｍとし、ＭはＮの約数としている。
【００９１】
したがって、制御部６のアドレス生成部６２と情報選択制御部６６が式（６）〜（８）を計算すれば、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を求めることができるが、式（６）〜（８）の計算では、乗算とｍｏｄ（剰余）計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態６では、制御部６が上記実施の形態１〜５と同様にアドレスＡ（ｔ）を簡易な計算で逐次的に算出するとともに、メモリ番号Ｂ（ｔ）もアドレス算出のためのパラメータを用いて算出するようにしている。
【００９２】
制御部６は、図１２に示すように、インタリーブアドレス生成テーブル６１、アドレス生成部６２、情報選択制御部６６及び動作制御部６４から構成されている。これらインタリーブアドレス生成テーブル６１、アドレス生成部６２及び動作制御部６４は、図１１に示す各部と同一である。
なお、図１１のインタリーブアドレス生成テーブル６１は情報長Ｋに応じた係数ｆ１，ｆ２を保持するものであるが、この実施の形態におけるインタリーブアドレス生成テーブル６１は情報長Ｎに応じた係数ｆｘを保持するものとする。
【００９３】
情報選択制御部６６は、インタリーブアドレス生成テーブル６１の係数ｆｘを用いて、＃１〜＃Ｍのうちのいずれか１つのメモリ番号を基に残りのメモリ番号（ターボ符号格納手段の並び順）を逐次的な操作により求め、メモリインタフェース５へ出力する。
この実施の形態において、インタリーブアドレスは下記式（９）により表現されるため、メモリインタフェース５がアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）は、以下に示すように、情報選択制御部６６において順方向の逐次的な操作で求めることができる。
π（ｔ＋Ｗ）＝π（ｔ）＋ｆｘ×Ｗ                              （９）
Ｂ（ｔ）＝Ａ＋（ｋ−１）×ｆｘ  ｍｏｄ  Ｍ                    （１０）
ここで、Ａは基準に用いる１つのメモリ番号Ｂ（ｔ）であり、このメモリ番号Ｂ（ｔ）の情報メモリ１に格納されたデータが最初の処理で＃１の要素復号器７に渡される。ただし、基準となるメモリ番号Ａは任意の値であって、＃１〜＃Ｍのうちのいずれであってもよく、従来のように式（７）を計算して求めればよい。
例えば、＃１の要素復号器７が＃Ａ（Ａ＝１，２，・・・，Ｍ）の情報メモリ１からデータを受ける場合には、＃２の要素復号器７は＃（Ａ＋ｆｘ）（ｍｏｄ  Ｍ）の情報メモリ１からデータを受けることとなる。以下、同様に、＃ｋの要素復号器７は＃（Ａ＋（ｋ−１）×ｆｘ）（ｍｏｄ  Ｍ）の情報メモリ１からデータを受ける。
【００９４】
情報選択制御部６６は、上記のとおり、順方向処理のインタリーブ系列を求める際には式（１０）を計算するが、順方向処理と同様にインタリーブアドレス生成テーブル６１のｆｘを用いて、１つのメモリ番号に基づき、逆方向処理における残りのメモリ番号Ｂ（ｔ）も求めることができる。
【００９５】
図１４は、実施の形態６によるターボ符号復号装置の処理内容を示すフローチャートである。アドレス生成部６２（制御部６）がアドレスＡ（ｔ）を算出する方法は上記実施の形態１〜５と同様であるので以下では説明を省略している。なお、図１４では並列処理を明確にするため、並列数をＭとして、順方向処理と逆方向処理を＃１〜＃Ｍで表している。
【００９６】
まず、動作制御部６４は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器７のメモリに格納されているパスメトリック値を初期化する。また、動作制御部６４は、インタリーブ系列π（ｔ）の生成に係るパラメータとして、情報長固有のパラメータ（α（０）、δ）をインタリーブアドレス生成テーブル６１に設定する。
【００９７】
情報メモリ１からの読み出しは、非インタリーブ時のアクセスでは、順序通りのアクセスである。即ち非インタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部６２は＃１〜＃Ｍの要素復号器７に与える順方向又は逆方向の非インタリーブ系列の位置を示すアドレスを、情報選択制御部６６はメモリ番号を、それぞれメモリインタフェース５に出力する。
メモリインタフェース５は、アドレス生成部６２からアドレスを、情報選択制御部６６からメモリ番号を受け取ると、そのアドレスとメモリ番号にしたがって、＃１〜＃Ｍの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｍの要素復号器７に与える。
他方、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスである。即ちインタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部６２は式（４）又は式（５）のＡ（ｔ）及びα（ｔ）に関する計算式を用いて、アドレスＡ（ｔ）を算出し、そのアドレスＡ（ｔ）をメモリインタフェース５に出力する。また、情報選択制御部６６は式（１０）を用いて、メモリ番号Ｂ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、アドレス生成部６２からアドレスＡ（ｔ）を、情報選択制御部６６からメモリ番号Ｂ（ｔ）を受け取ると、そのアドレスＡ（ｔ）とメモリ番号Ｂ（ｔ）にしたがって、＃１〜＃Ｍの情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｍ要素復号器７に与える。
【００９８】
また、パリティ１メモリ２及びパリティ２メモリ３からの読み出しは、上記実施の形態１〜５と同様に、インタリーブ時及び非インタリーブ時ともに常に順序通りとなる。即ち、非インタリーブの復号時には、メモリインタフェース５が＃１〜＃Ｍのパリティ１メモリ２からパリティ１系列に相当する受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｍの要素復号器７に与える。
他方、インタリーブの復号時には、メモリインタフェース５が＃１〜＃Ｍのパリティ２メモリ３からパリティ２系列に相当する受信信号をそれぞれ読み出して、各受信信号を＃１〜＃Ｍの要素復号器７に与える。
なお、＃１〜＃Ｍの要素復号器７がターボ符号を復号する処理は上記実施の形態１〜５と同様であるので説明を省略する。
【００９９】
なお、図１４では、非インタリーブ、インタリーブ、非インタリーブ、インタリーブ、・・・、非インタリーブ、インタリーブの順番で繰り返し復号を行う例を示しているが、非インタリーブとインタリーブは逆の順序でもよい。また、順方向、逆方向、順方向、逆方向の順番で処理しているが、順方向と逆方向は逆の順序でもよい。
【０１００】
以上で明らかなように、この実施の形態６によれば、制御部６は、ターボ符号の情報長Ｎに応じた係数ｆｘを予め保持しているインタリーブアドレス生成テーブル６１と、インタリーブアドレス生成テーブル６１に保持された係数ｆｘを用いて、並列数Ｍ分の情報メモリ１に格納された各データのアドレスを決定するアドレス生成部６２と、インタリーブアドレス生成テーブル６１に保持された係数ｆｘを用いて、情報メモリ１の並び順を決定する情報選択制御部６６と、情報メモリ１に格納されたデータを情報選択制御部６６により決定された並び順で読み出し、かつ、アドレス生成部６２により決定されたアドレスから読み出してインタリーブ系列を生成するメモリインタフェース５とを備えるように構成した。そのため、上記実施の形態１〜５と同様に、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる。
また、情報選択制御部６６がインタリーブアドレス生成テーブル６１に格納された情報を用いてメモリ番号を生成するようにしたため、上記実施の形態１〜５のメモリ選択初期テーブル６５に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
【０１０１】
なお、この実施の形態６では、要素復号器７が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器７が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
【０１０２】
実施の形態７．
上記実施の形態６では、一般的な多項式により生成されるインタリーブ系列を用いるターボ符号復号装置を示したが、図１２に示すターボ符号復号装置において、一般的な多項式に代えて２次多項式であるＱＰＰ方式を採用し、並列段数Ｍを４段あるいは２段にしてもよい。以下では、並列段数Ｍを４段にした構成について説明する。
この場合、情報長をＮとすると、ＱＰＰインタリーバのｔ番目のインタリーブ系列π（ｔ）は、下記式（１１）のようになる。
π（ｔ）＝ｆ１×ｔ＋ｆ２×ｔ×ｔ  ｍｏｄ  Ｎ                （１１）
ただし、ｆ１は奇数の定数、ｆ２は偶数の定数である。
このとき、４個の要素復号器７が並列処理する場合にアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）とアドレス（ｔ）は、下記のように表される。
Ｂ（ｔ）＝ｃｅｉｌ（π（ｔ）／Ｗ）                            （１２）
Ａ（ｔ）＝π（ｔ）  ｍｏｄ  Ｗ                                （１３）
ここで、ｔ＝０，１，・・・，Ｗ−１であり、Ｗ＝Ｎ／Ｍとし、ＭはＮの約数としている。
【０１０３】
したがって、制御部６のアドレス生成部６２と情報選択制御部６６が式（１１）〜（１３）を計算すれば、メモリ番号Ｂ（ｔ）とアドレスＡ（ｔ）を求めることができるが、式（１１）〜（１３）の計算では、乗算とｍｏｄ（剰余）計算が必要となり、実装するには複雑性が高いものとなる。
そこで、この実施の形態７では、上記実施の形態１〜６と同様にメモリ番号Ｂ（ｔ）及びアドレスＡ（ｔ）を逐次的に算出するようにしている。アクセスするアドレスＡ（ｔ）を計算するに際して、補助パラメータとしてα（ｔ）を用意する。
【０１０４】
ただし、以下のパラメータα（０），δは、計算量が大きいので、予めインタリーブアドレス生成テーブル６１に格納しておくものとする。
α（０）＝ｆ１＋ｆ２  ｍｏｄ  Ｗ
δ＝２×ｆ２  ｍｏｄ  Ｗ
なお、パラメータα（０），δを計算して、その計算値を保持しておく分には、大きなメモリ量を必要としない。
【０１０５】
メモリインタフェース５がアクセスする情報メモリ１のアドレスＡ（ｔ）は、以下に示すように、アドレス生成部６２において順方向の逐次的な操作で求めることができる。
［α（ｔ）の更新］    α（ｔ＋１）＝α（ｔ）＋δ
Ｉｆ  （α（ｔ＋１）≧Ｗ）
α（ｔ＋１）＝α（ｔ＋１）−Ｗ
［Ａ（ｔ）の更新］    Ａ（ｔ＋１）＝Ａ（ｔ）＋α（ｔ）
Ｉｆ  （Ａ（ｔ＋１）≧Ｗ）
Ａ（ｔ＋１）＝Ａ（ｔ＋１）−Ｗ
（１４）
アドレス生成部６２は、インタリーブ時には上記式（１４）を計算してアドレスＡ（ｔ）を求め、非インタリーブ時には初期位置から１ずつアドレスＡ（ｔ）を変化させればよい。
【０１０６】
また、メモリインタフェース５がアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）は、以下に示すように、情報選択制御部６６において順方向の逐次的な操作で求めることができる。
Ｂ（ｔ）＝Ａ＋（ｋ−１）×ｆ１  ｍｏｄ  Ｍ                    （１５）
ここで、Ａは基準に用いる１つのメモリ番号Ｂ（ｔ）であり、このメモリ番号Ｂ（ｔ）の情報メモリ１に格納されたデータが最初の処理で＃１の要素復号器７に渡される。ただし、基準となるメモリ番号Ａは任意の値であって、＃１〜＃４のうちのいずれであってもよく、従来のように式（１２）を計算すればよい。
例えば、＃１の要素復号器７が＃Ａ（Ａ＝１，２，・・・，Ｍ）の情報メモリ１からデータを受ける場合には、＃２の要素復号器７は＃（Ａ＋ｆ１）（ｍｏｄ  Ｍ）の情報メモリ１からデータを受けることとなる。以下、同様に、＃３の要素復号器７は＃（Ａ＋２×ｆ１）（ｍｏｄ  Ｍ）の情報メモリ１から、＃４の要素復号器７は＃（Ａ＋３×ｆ１）（ｍｏｄ  Ｍ）の情報メモリ１から、それぞれデータを受ける。
この実施の形態では、並列段数Ｍを４段とした並列処理が行われる。この場合には、係数ｆ１の値を４で除した剰余が奇数となり、１の場合と３の場合が存在する。剰余１，３それぞれの場合に要素復号器７がメモリインタフェース５を介してアクセスするメモリ番号Ｂ（ｔ）のパターンを図１５に示す。図１５は、並列処理を行う＃１〜＃４の要素復号器７と、要素復号器７にデータを受け渡す＃１〜＃４の情報メモリ１との対応関係を表している。
【０１０７】
また、メモリインタフェース５がアクセスする情報メモリ１のアドレスＡ（ｔ）は、以下に示すように、アドレス生成部６２において逆方向の逐次的な操作で求めることができる。
［α（ｔ）の更新］    Ｉｆ  （α（ｔ）≧δ）
α（ｔ−１）＝α（ｔ）−δ
Ｅｌｓｅ
α（ｔ−１）＝α（ｔ）＋Ｗ−δ
［Ａ（ｔ）の更新］    Ｉｆ  （Ａ（ｔ）≧α（ｔ−１））
Ａ（ｔ−１）＝Ａ（ｔ）−α（ｔ−１）
Ｅｌｓｅ
Ａ（ｔ−１）＝Ａ（ｔ）＋Ｗ−α（ｔ−１）
（１６）
アドレス生成部６２は、インタリーブ時には上記式（１６）を計算してアドレスＡ（ｔ）を求め、非インタリーブ時には初期位置から１ずつアドレスＡ（ｔ）を変化させればよい。
【０１０８】
また、メモリインタフェース５がアクセスする情報メモリ１のメモリ番号Ｂ（ｔ）も、順方向の逐次的な操作と同様に情報選択制御部６６がインタリーブアドレス生成テーブル６１のｆ１を用いて、１つのメモリ番号に基づいて逆方向の逐次的な操作で求めることができる。
【０１０９】
以下、図１４を援用しながら、制御部６がメモリインタフェース５を制御することによりインタリーブ系列と非インタリーブ系列を順番に生成させて、要素復号器７がターボ符号を復号する処理を説明する。
【０１１０】
まず、動作制御部６４は、順方向処理と逆方向処理の繰り返し回数とメモリアクセスの初期設定を行うとともに、要素復号器７のメモリに格納されているパスメトリック値を初期化する。また、動作制御部６４は、インタリーブ系列π（ｔ）の生成に係るパラメータとして、情報長固有のパラメータ（α（０）、δ）をインタリーブアドレス生成テーブル６１に設定する。
【０１１１】
情報メモリ１からの読み出しは、非インタリーブ時のアクセスでは、順序通りのアクセスである。即ち非インタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部６２は＃１〜＃４の要素復号器７に与える順方向又は逆方向の非インタリーブ系列の位置を示すアドレスを、情報選択制御部６６はメモリ番号を、それぞれメモリインタフェース５に出力する。
メモリインタフェース５は、アドレス生成部６２からアドレスを、情報選択制御部６６からメモリ番号を受け取ると、そのアドレスとメモリ番号にしたがって、＃１〜＃４の情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃４の要素復号器７に与える。
他方、インタリーブ時のアクセスでは、インタリーブ系列に従うランダムアクセスである。即ちインタリーブ系列の順方向処理又は逆方向処理を行うため、アドレス生成部６２は式（１４）又は式（１６）を用いて、アドレスＡ（ｔ）を算出し、そのアドレスＡ（ｔ）をメモリインタフェース５に出力する。また、情報選択制御部６６は式（１５）を用いてメモリ番号Ｂ（ｔ）を算出し、そのメモリ番号Ｂ（ｔ）をメモリインタフェース５に出力する。
メモリインタフェース５は、アドレス生成部６２からアドレスＡ（ｔ）を、情報選択制御部６６からメモリ番号Ｂ（ｔ）を受け取ると、そのアドレスＡ（ｔ）とメモリ番号Ｂ（ｔ）にしたがって、＃１〜＃４の情報メモリ１から受信信号をそれぞれ読み出して、各受信信号を＃１〜＃４の要素復号器７に与える。
【０１１２】
また、パリティ１メモリ２及びパリティ２メモリ３からの読み出しは、インタリーブ時及び非インタリーブ時ともに常に順序通りとなる。即ち、非インタリーブの復号時には、メモリインタフェース５が＃１〜＃４のパリティ１メモリ２からパリティ１系列に相当する受信信号をそれぞれ読み出して、各受信信号を＃１〜＃４の要素復号器７に与える。
他方、インタリーブの復号時には、メモリインタフェース５が＃１〜＃４のパリティ２メモリ３からパリティ２系列に相当する受信信号をそれぞれ読み出して、各受信信号を＃１〜＃４の要素復号器７に与える。
なお、＃１〜＃４の要素復号器７がターボ符号を復号する処理は上記実施の形態１〜５と同様であるので説明を省略する。
【０１１３】
以上で明らかなように、この実施の形態７によれば、ターボ符号復号装置は、ターボ符号のインタリーバとしてＱＰＰ方式を採用し、並列数を２又は４とし、情報選択制御部６６はインタリーブアドレス生成テーブル６１に保持された情報長Ｎに応じた係数ｆ１を用いて、１つの情報メモリ１のメモリ番号を基準に情報メモリ１の並び順を決定するように構成した。そのため、上記実施の形態１〜６と同様に、インタリーブ系列に依存するメモリアクセスを簡易な計算で逐次的に得ることができるため、インタリーブ系列を保持するためのメモリが不要になり、メモリ量や回路規模を小さく抑えることができる。
また、情報選択制御部６６がインタリーブアドレス生成テーブル６１に格納された情報を用いてメモリ番号を生成するようにしたため、ＱＰＰ方式を用いるターボ符号復号装置においても上記実施の形態１〜５のメモリ選択初期テーブル６５に相当するメモリが不要になり、メモリ量や回路規模をさらに小さく抑えることができる効果を奏する。
【０１１４】
なお、この実施の形態７では、要素復号器７が順方向処理と逆方向処理を順番に実施するものについて示したが、要素復号器７が順方向処理と逆方向処理を同時に実施するようにしてもよい。
即ち、要素復号器７が順方向処理と逆方向処理を同時に実施する場合、順方向処理は並列化単位の最初からパスメトリック値を保存しながら処理を進め、逆方向処理は並列化単位の末尾からパスメトリック値を保存しながら処理を進める。
両方向から進んだトレリスが交差した先は、互いのパスメトリック値を読み出すことができるので、外部情報を算出することができる。
【０１１５】
また、上記実施の形態６及び７によるターボ符号復号装置を、上記実施の形態３による並列化ターボ復号器１０（図５）に適用してもよく、または上記実施の形態４による受信装置３０に（図８）に実装してもよく、更には上記実施の形態５による基地局５０（図１０）に実装してもよい。このような構成とした場合であっても、上述した効果を奏する。
【図面の簡単な説明】
【０１１６】
【図１】この発明の実施の形態１によるターボ符号復号装置を示す構成図である。
【図２】この発明の実施の形態１によるターボ符号復号装置の処理内容を示すフローチャートである。
【図３】この発明の実施の形態２によるターボ符号復号装置を示す構成図である。
【図４】読み出したｎ×ＰビットをＰ個の要素復号器７に受け渡すために並べ替える手順を示す説明図である。
【図５】この発明の実施の形態３によるターボ符号復号装置を示す構成図である。
【図６】情報長Ｋと復号繰り返し回数Ｉの違いによる復号性能の比較シミュレーションの結果を示すグラフ図である。
【図７】この発明の実施の形態３によるターボ符号復号装置の処理内容を示すフローチャートである。
【図８】この発明の実施の形態４による通信システムを示す構成図である。
【図９】この発明の実施の形態４による通信システムの処理内容を示すフローチャートである。
【図１０】この発明の実施の形態５による通信システムを示す構成図である。
【図１１】この発明の実施の形態１〜５に係るターボ符号復号装置を示す構成図であり、特に制御部を詳細に示すものである。
【図１２】この発明の実施の形態６によるターボ符号復号装置を示す構成図である。
【図１３】この発明の実施の形態６によるターボ符号復号装置の情報メモリ１のメモリ構成及びインタリーブ時のメモリアクセス方法を模式的に示す説明図である。
【図１４】この発明の実施の形態６によるターボ符号復号装置の処理内容を示すフローチャートである。
【図１５】この発明の実施の形態７によるターボ符号復号装置においてメモリインタフェース５がアクセスするメモリ番号のパターンを示す。
【符号の説明】
【０１１７】
１  情報メモリ（ターボ符号格納手段）、２  パリティ１メモリ（ターボ符号格納手段）、３  パリティ２メモリ（ターボ符号格納手段）、４  外部情報メモリ（ターボ符号格納手段）、５  メモリインタフェース（系列生成手段）、６  制御部（系列生成手段）、７  要素復号器（復号手段）、１０  並列化ターボ復号器、１１  復号方式制御部（制御手段）、２０  送信装置、２１  ターボ符号化器、３０  受信装置、３１  ターボ符号復号装置、４０  移動体端末、４１  ターボ符号化器、５０  基地局、５１  ターボ符号復号装置、６１  インタリーブアドレス生成テーブル、６２  アドレス生成部、６３，６６  情報選択制御部、６４  動作制御部、６５  メモリ選択初期テーブル。
【図１】
0004874312.tif 000002
【図２】
0004874312.tif 000003
【図３】
0004874312.tif 000004
【図４】
0004874312.tif 000005
【図５】
0004874312.tif 000006
【図６】
0004874312.tif 000007
【図７】
0004874312.tif 000008
【図８】
0004874312.tif 000009
【図９】
0004874312.tif 000010
【図１０】
0004874312.tif 000011
【図１１】
0004874312.tif 000012
【図１２】
0004874312.tif 000013
【図１３】
0004874312.tif 000014
【図１４】
0004874312.tif 000015
【図１５】
0004874312.tif 000016