(57)【特許請求の範囲】
【請求項１】
添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための方法であって、
前記複数のデータ符号Ｘｉ、複数のデータ符号Ｙｉ、および複数のデータ符号Ｗｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するステップであって、前記複数のデータ符号Ｙｉは前記通信システム内の送信機において、前記複数のデータ符号Ｘｉの第１の畳込みコーディングによって生成され、複数のデータ符号Ｚｉは前記送信機において前記複数のデータ符号Ｘｉ、あるいはＸｉ及びＹｉをインターリービングすることによって生成され、前記複数のデータ符号Ｗｉは前記複数のデータ符号Ｚｉの第２の畳込みコーディングによって生成される、ステップと、
データ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値を決定ノードへ送るステップであって、前記決定ノードへ送られるデータ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値には、前記第１および第２の畳込みコーディングにしたがって判断される推定値が含まれるステップと、
前記決定ノードに前記データ符号Ｘｉが現れるたびに新しい推定値を判断するステップと、
前記最初の推定値と、前記決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値とに基づいて、前記データ符号Ｘｉの新しい推定値を判断するステップとを含む方法。
【請求項２】
データ符号Ｘｉの前記最初の推定値と、前記決定ノードに少なくとも１回現われた前記データ符号Ｘｉの中のデータ符号Ｘｉの前記新しい推定値とに基づいて、データ符号Ｘｉの正規化された推定値を決定するステップと、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｘｉの前記正規化された推定値を、データ符号Ｘｉの前記推定値の少なくとも１つへ代入するステップとをさらに含む請求項１記載の方法。
【請求項３】
前記決定ノードに前記データ符号Ｙｉが現れるたびに新しい推定値を判断するステップと、
データ符号Ｙｉの前記最初の推定値と、前記決定ノードに少なくとも1回現れた前記データ符号Ｙｉの中のデータ符号Ｙｉの前記新しい推定値とに基づいて、データ符号Ｙｉの正規化された推定値を判断するステップと、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｙｉの前記正規化された推定値を、データ符号Ｙｉの前記推定値の少なくとも１つへ代入するステップとをさらに含む請求項１記載の方法。
【請求項４】
前記決定ノードに前記データ符号Ｗｉが現れるたびに新しい推定値を判断するステップと、
データ符号Ｗｉの前記最初の推定値と、前記決定ノードに少なくとも1回現れた前記データ符号Ｗｉの中のデータ符号Ｗｉの前記新しい推定値とに基づいて、データ符号Ｗｉの正規化された推定値を判断するステップと、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｗｉの前記正規化された推定値を、データ符号Ｗｉの前記推定値の少なくとも１つへ代入するステップとをさらに含む請求項１記載の方法。
【請求項５】
添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための装置であって、
前記複数のデータ符号Ｘｉ、複数のデータ符号Ｙｉ、および複数のデータ符号Ｗｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するための手段であって、前記複数のデータ符号Ｙｉは前記通信システム内の送信機において、前記複数のデータ符号Ｘｉの第１の畳込みコーディングによって生成され、複数のデータ符号Ｚｉは前記送信機において前記複数のデータ符号Ｘｉ、あるいはＸｉ及びＹｉをインターリービングすることによって生成され、前記複数のデータ符号Ｗｉは前記複数のデータ符号Ｚｉの第２の畳込みコーディングによって生成される、手段と、
データ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値を決定ノードへ送るための手段であって、前記決定ノードへ送られるデータ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値には、前記第１および第２の畳込みコーディングにしたがって判断される推定値が含まれる手段と、
前記決定ノードに前記データ符号Ｘｉが現れるたびに新しい推定値を判断するための手段と、
前記最初の推定値と、前記決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値とに基づいて、前記データ符号Ｘｉの新しい推定値を判断するための手段とを含む装置。
【請求項６】
データ符号Ｘｉの前記最初の推定値と、前記決定ノードに少なくとも１回現れた前記データ符号Ｘｉの中のデータ符号Ｘｉの前記新しい推定値とに基づいて、データ符号Ｘｉの正規化された推定値を判断するための手段と、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｘｉの前記正規化された推定値を、データ符号Ｘｉの前記推定値の少なくとも１つへ代入するための手段とをさらに含む請求項５記載の装置。
【請求項７】
前記決定ノードに前記データ符号Ｙｉが現れるたびに新しい推定値を判断するための手段と、
データ符号Ｙｉの前記最初の推定値と、前記決定ノードに少なくとも１回現れた前記データ符号Ｙｉの中のデータ符号Ｙｉの前記新しい推定値とに基づいて、データ符号Ｙｉの正規化された推定値を判断するための手段と、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｙｉの前記正規化された推定値を、データ符号Ｙｉの前記推定値の少なくとも１つへ代入するための手段とをさらに含む請求項５記載の装置。
【請求項８】
前記決定ノードに各前記データ符号Ｗｉが現れるたびに新しい推定値を判断するための手段と、
データ符号Ｗｉの前記最初の推定値と、前記決定ノードに少なくとも1回現れた前記データ符号Ｗｉの中のデータ符号Ｗｉの前記新しい推定値とに基づいて、データ符号Ｗｉの正規化された推定値を判断するための手段と、
データ符号Ｘｉ、Ｙｉ、およびＷｉの推定値の前記送信を繰返し、一方でデータ符号Ｗｉの前記正規化された推定値を、データ符号Ｗｉの前記推定値の少なくとも１つへ代入するための手段とをさらに含む請求項５記載の装置。
【請求項９】
添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための方法であって、
（ａ）前記複数のデータ符号Ｘｉから成る多数のデータ符号のデータ符号推定値を判断するステップと、
（ｂ）複数のデータ符号Ｙｉから成る多数のデータ符号のデータ符号推定値を判断するステップであって、前記複数のデータ符号Ｙｉが前記通信システム内の送信機において、前記複数のデータ符号Ｘｉの第１の畳込みコーディングによって生成されるステップと、
（ｃ）複数のデータ符号Ｗｉから成る多数のデータ符号のデータ符号推定値を判断するステップであって、複数のデータ符号Ｚｉは前記送信機において前記複数のデータ符号Ｘｉ、あるいはＸｉ及びＹｉをインターリービングすることによって生成され、前記複数のデータ符号Ｗｉは前記複数のデータ符号Ｚｉの第２の畳込みコーディングによって生成される、ステップと、
（ｄ）データ符号ＸｉおよびＹｉの前記推定値を第１の決定ノードへ送るステップであって、前記第１の決定ノードへ送られるデータ符号ＸｉおよびＹｉの前記推定値が式Ｆ１（Ｘｉ，Ｙｉ）内の変数の推定値を含み、前記式Ｆ１内の変数ＸｉおよびＹｉが前記第1の畳込みコーディングにしたがって判断されるステップと、
（ｅ）データ符号ＷｉおよびＺｉの前記推定値を第２の決定ノードへ送るステップであって、前記第２の決定ノードへ送られるデータ符号ＷｉおよびＺｉの前記推定値が式Ｆ２（Ｗｉ，Ｚｉ）内の変数の推定値を含み、前記式Ｆ２内の変数ＷｉおよびＺｉが前記第２の畳込みコーディングにしたがって判断され、前記変数Ｚｉの推定値が前記インターリービングにしたがって判断されるデータ符号Ｘｉ、またはＹｉ、またはＸｉおよびＹｉの前記推定値を含むステップと、
（ｆ）それぞれ前記第１および第２の決定ノードにおいて前記式Ｆ１およびＦ２をゼロに等しくする一方で、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびに新しい推定値を判断するステップと、
（ｇ）前記ステップ（ａ）において判断された前記推定値と、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値とに基づいて、前記データ符号Ｘｉの新しい推定値を判断するステップとを含む方法。
【請求項１０】
（ｈ）前記ステップ（ａ）において判断された前記推定値と、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｘｉの正規化された推定値を判断するステップと、
（ｉ）前記ステップ（ｄ）および（ｅ）を繰返し、一方でデータ符号Ｘｉの前記正規化された推定値を、データ符号Ｘｉの前記推定値の少なくとも1つに代入するステップとをさらに含む請求項９記載の方法。
【請求項１１】
（ｊ）それぞれ前記第１および第２の決定ノードにおいて前記式Ｆ１およびＦ２をゼロに等しくする一方で、前記第１および第２の決定ノードに前記データ符号Ｙｉが現れるたびに新しい推定値を判断するステップと、
（ｋ）前記ステップ（ｂ）において判断された前記推定値と、前記第１および第２の決定ノードに前記データ符号Ｙｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｙｉの正規化された推定値を判断するステップと、
（ｌ）前記ステップ（ｄ）および（ｅ）を繰返し、一方でデータ符号Ｙｉの前記正規化された推定値を、データ符号Ｙｉの前記推定値の少なくとも１つに代入するステップとをさらに含む請求項９記載の方法。
【請求項１２】
（ｍ）前記第２の決定ノードにおいて前記式Ｆ２をゼロに等しくする一方で、前記第２の決定ノードに前記データ符号Ｗｉが現れるたびごとに新しい推定値を判断するステップと、
（ｎ）前記ステップ（ｃ）において判断された前記推定値と、前記第２の決定ノードに前記データ符号Ｗｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｗｉの正規化された推定値を判断するステップと、
（ｏ）前記ステップ（ｄ）および（ｅ）を繰返し、一方でデータ符号Ｗｉの前記正規化された推定値を、データ符号Ｗｉの前記推定値の少なくとも１つに代入するステップとをさらに含む請求項９記載の方法。
【請求項１３】
添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための装置であって、
（ａ）前記複数のデータ符号Ｘｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するための手段と、
（ｂ）複数のデータ符号Ｙｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するための手段であって、前記複数のデータ符号Ｙｉが前記通信システム内の送信機において、前記複数のデータ符号Ｘｉの第１の畳込みコーディングによって生成される手段と、
（ｃ）複数のデータ符号Ｗｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するための手段であって、複数のデータ符号Ｚｉは前記送信機において前記複数のデータ符号Ｘｉ、あるいはＸｉ及びＹｉをインターリービングすることによって生成され、前記複数のデータ符号Ｗｉは前記複数のデータ符号Ｚｉの第２の畳込みコーディングによって生成される、手段と、
（ｄ）データ符号ＸｉおよびＹｉの前記推定値を第１の決定ノードへ送るための手段であって、前記第１の決定ノードへ送られるデータ符号ＸｉおよびＹｉの前記推定値が式Ｆ１（Ｘｉ，Ｙｉ）内の変数の推定値を含み、前記式Ｆ１内の変数ＸｉおよびＹｉが前記第1の畳込みコーディングにしたがって判断される手段と、
（ｅ）データ符号ＷｉおよびＺｉの前記推定値を第２の決定ノードへ送るための手段であって、前記第２の決定ノードへ送られるデータ符号ＷｉおよびＺｉの前記推定値が式Ｆ２（Ｗｉ，Ｚｉ）内の変数の推定値を含み、前記式Ｆ２内の変数ＷｉおよびＺｉが前記第２の畳込みコーディングにしたがって判断され、前記変数Ｚｉの推定値が前記インターリービングにしたがって判断されたデータ符号Ｘｉ、またはＹｉ、またはＸｉおよびＹｉの前記推定値を含む手段と、
（ｆ）それぞれ前記第１および第２の決定ノードにおいて前記式Ｆ１およびＦ２をゼロに等しくする一方で、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびに新しい推定値を判断するための手段と、
（ｇ）前記データ符号Ｘｉの前記最初の推定値と、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値とに基づいて、前記データ符号Ｘｉの新しい推定値を判断するための手段とを含む装置。
【請求項１４】
（ｈ）データ符号Ｘｉの前記最初の推定値と、前記第１および第２の決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｘｉの正規化された推定値を判断するための手段と、
（ｉ）データ符号Ｘｉの前記正規化された推定値を、データ符号Ｘｉの前記推定値の少なくとも1つに代入するための手段とをさらに含む請求項１３記載の装置。
【請求項１５】
（ｊ）それぞれ前記第１および第２の決定ノードにおいて前記式Ｆ１およびＦ２をゼロに等しくする一方で、前記第１および第２の決定ノードに前記データ符号Ｙｉが現れるたびに新しい推定値を判断するための手段と、
（ｋ）データ符号Ｙｉの前記最初の推定値と、前記第１および第２の決定ノードに前記データ符号Ｙｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｙｉの正規化された推定値を判断するための手段と、
（ｌ）データ符号Ｙｉの前記正規化された推定値を、データ符号Ｙｉの前記推定値の少なくとも１つに代入するための手段とをさらに含む請求項１３記載の装置。
【請求項１６】
（ｍ）前記第２の決定ノードにおいて前記式Ｆ２をゼロに等しくする一方で、前記第２の決定ノードに前記データ符号Ｗｉが現れるたびに新しい推定値を判断するための手段と、
（ｎ）データ符号Ｗｉの前記最初の推定値と、前記第２の決定ノードに前記データ符号Ｗｉが現れるたびごとの前記新しい推定値の少なくとも１つとに基づいて、データ符号Ｗｉの正規化された推定値を判断するための手段と、
（ｏ）データ符号Ｗｉの前記正規化された推定値を、データ符号Ｗｉの前記推定値の少なくとも１つに代入するための手段とをさらに含む請求項１３記載の装置。
【請求項１７】
添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための装置であって、
前記複数のデータ符号Ｘｉ、複数のデータ符号Ｙｉ、および複数のデータ符号Ｗｉから成る多数のデータ符号に対するデータ符号の最初の推定値を判断するためのプロセッサであって、前記複数のデータ符号Ｙｉは前記通信システム内の送信機において、前記複数のデータ符号Ｘｉの第１の畳込みコーディングによって生成され、複数のデータ符号Ｚｉは前記送信機において前記複数のデータ符号Ｘｉ、あるいはＸｉ及びＹｉをインターリービングすることによって生成され、前記複数のデータ符号Ｗｉは前記複数のデータ符号Ｚｉの第２の畳込みコーディングによって生成される、プロセッサと、
データ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値を決定ノードへ送るための制御装置であって、前記決定ノードへ送られるデータ符号Ｘｉ、Ｙｉ、およびＷｉの前記推定値が、前記第１および第２の畳込みコーディングにしたがって判断される推定値を含む制御装置と、
前記複数のデータ符号Ｘｉ、Ｙｉ、およびＷｉの推定値を記憶するためのメモリ素子とを含み、
前記プロセッサは、さらに、前記決定ノードに各前記データ符号Ｘｉが現れるたびに新しい推定値を判断し、前記最初の推定値と、前記決定ノードに前記データ符号Ｘｉが現れるたびごとの前記新しい推定値とに基づいて、前記データ符号Ｘｉの新しい推定値を判断する装置。
【発明の詳細な説明】
【０００１】
発明の背景
本発明は、概ね、通信システム、とくに符号分割多重アクセス（code division multiple access, CDMA）の通信システムに関する。本発明は、ＣＤＭＡの通信システムの受信機部分においてデータ符号をデコードするための効率的な方法および装置を提供する。
【０００２】
ＣＤＭＡシステムにおける通信は、異なるステージにおいてデータ符号をコード化およびデコード化することを含む。宛先ユーザへ送られるデータ符号は、無線リンクのような通信リンク上を送られる前に、ＣＤＭＡシステムの送信機部分においてコード化される。送信された信号を受信するとき、宛先ユーザはデータ符号をデコードして、情報を検索する。畳込みコードは、コード化処理に使用される非常に一般的なコードである。ユーザ間の効果的な通信を実現するために、データ符号は、コード化に加えて、インターリーブされる。宛先のユーザは、情報を受信するプロセスにおいて、受信したデータ符号をデコードして、デインターリーブ（de-interleave）して、情報を検索する。例えば、ＣＤＭＡシステムのような通信システムでは、他のユーザからのノイズ、フェージング、または干渉によってチャンネル妨害が発生するが、インターリビングと畳込みコーディングとを組み合わせると、このようなチャンネル妨害を処理する効果的な方法が得られる。
【０００３】
コード化とインターリービングとの組み合わせは、ターボコードとして一般的に知られていて、これはＣＤＭＡの通信システムの送信機で行なわれ、チャンネル妨害を処理するのに優れた結果が得られることが分かっている。コード化とインターリービングとの組み合わせには、直列連結コード（serial concatenated code, SCC）として一般的に知られているものもあり、これも優れた結果が得られることが分かっている。したがって、ＣＤＭＡシステムでは、ターボコードまたはＳＣＣの何れかが使用される。
【０００４】
一般的に、ターボコードおよび直列連結コードには、それぞれ少なくとも２つのコード化ブロックを含まれている。したがって、受信したデータ符号のデコードを試行する受信機では、２つのデコーディング処理を行なわなければならない。受信機において複数のデコーディング処理を行なうには、時間がかかり、ＣＤＭＡシステムの受信機部分に複雑さとコストを追加してしまう。
【０００５】
ターボコードと直列連結コードとの間は、幾つかの相違点がある。ターボコードでは並列コーディングを使用しているが、これに対して、直列連結コードでは直列コーディングが使用されている。このような相違から、ターボコードと直列連結コードの両者にデコーディング機能を与える試みが困難であることが分かる。
【０００６】
したがって、受信機が、コード化されたデータ符号を迅速で効率的にデコードするための、複雑さをできる限り緩和した方法および装置が必要である。
【０００７】
本発明の概要
本発明の種々の実施形態にしたがって、添字ｉが１ないし有限数のｋの値であるとして、複数のデータ符号Ｘｉの中のデータ符号Ｘｉをデコードするための方法および装置には、最初に、複数のデータ符号Ｘｉから成る多数のデータ符号において、データ符号推定値を判断することが含まれている。複数のデータ符号Ｙｉから成る多数のデータ符号において、データ符号推定値が判断される。複数のデータ符号Ｙｉは、通信システム内の送信機において、第１の畳込みコードにしたがって複数のデータ符号Ｘｉをコード化することによって生成される。複数のデータ符号Ｗｉから成る多数のデータ符号において、データ符号推定値が判断される。複数のデータ符号Ｗｉは、送信機において、直列連結コードの場合には複数のデータ符号ＹｉおよびＸｉを、ターボコードの場合には複数のデータ符号Ｘｉをインターリーブすることによって複数のデータ符号Ｚｉを生成することにより生成される。複数のデータ符号Ｚｉは第２の畳込みコードにしたがってコード化されて、複数のデータ符号Ｗｉを生成する。データ符号ＸｉおよびＹｉの推定値は第１の決定ノードへ送られる。第１の決定ノードへ送られたデータ符号ＸｉおよびＹｉの推定値には、式Ｆ１（Ｘｉ，Ｙｉ）内の変数の推定値が含まれる。式Ｆ１の変数ＸｉおよびＹｉは、第１の畳込みコードにしたがって判断される。データ符号ＷｉおよびＺｉの推定値は第２の決定ノードへ送られる。第２の決定ノードへ送られたデータ符号ＷｉおよびＺｉの推定値には、式Ｆ２（Ｗｉ，Ｚｉ）内の変数の推定値が含まれる。式Ｆ２内の変数ＷｉおよびＺｉは、第２の畳込みコードにしたがって判断される。変数Ｚｉの推定値には、インターリービングにしたがって判断されるデータ符号Ｘｉ、またはＹｉ、またはＸｉおよびＹｉの推定値が含まれる。それぞれ第１および第２の決定ノードでは式Ｆ１およびＦ２をゼロに等しくし、一方で第１および第２の決定ノードにデータ符号Ｘｉが現れるたびに、新しい推定値が判断される。データ符号Ｘｉの新しい推定値は、最初のステップにおいて判断された推定値と、第１および第２の決定ノードにデータ符号Ｘｉが現れるたびごとの新しい推定値とに基づいて判断される。
【０００８】
データ符号Ｘｉの新しい推定値は、データ符号Ｘｉの真値を確実に（confidently）維持している。データ符号Ｘｉの新しい推定値がデータ符号Ｘｉの真値を確実に維持するまで、プロセスは何度も繰り返される。信頼度を高めるのに２以上の反復が必要であるとき、本発明の実施形態では、最初のステップで判断した推定値と、第１および第２の決定ノードにデータ符号Ｘｉが現れるたびごとの新しい推定値の少なくとも１つとに基づいて、データ符号Ｘｉの正規化された推定値を判断することを含む。データ符号推定値を第１および第２の決定ノードへ送るステップを繰返す一方で、データ符号Ｘｉの正規化された推定値をデータ符号推定値の少なくとも１つに代入する。したがって本発明の実施形態では、遅延と複雑さをできる限り緩和して、複数のデータ符号Ｘｉの推定値を同時に並行して判断するための方法および装置を提供する。
【０００９】
好ましい実施形態の詳細な記述
本発明の種々の実施形態は、次の図を参照することによってより明らかになる。
【００１０】
図１を参照すると、畳込みエンコーダ100の一般的なブロック図が示されている。エンコーダ100は、コード化するためのデータ符号Ｘｉを入力101において入力する。コード化ブロック102では、伝達関数Ｆ（Ｄ）によって定義される畳込みコードにしたがって入力データ符号をコード化する。伝達関数Ｆ（Ｄ）は、畳コードの伝達関数にしたがっている。一般的に使用されている関数は、遅延ステップをＤで示し、排他的ＯＲ演算をプラス符号（＋）で示すと、次の式、すなわちＦ（Ｄ）＝（１＋Ｄ＋Ｄ＊＊２）／（１＋Ｄ）によって定義される。このような関数の実行は、関連する技術において普通の技能をもつ者によってよく知られている。コード化ブロック102は、データ符号Ｙｉを出力する。データ符号ＸｉおよびＹｉはデータ符号選択ブロック103へ送られる。データ選択ブロック103は、データ符号多重化およびパンクチャリング機能（puncturing function）（図示されていない）が含まれている。ブロック103は、全入力データ符号Ｘｉの２つのデータ符号を２分の１のコード化レートで出力する。他のコード化レートも可能である。結果として、エンコーダ100はデータ符号ＸｉおよびＹｉから構成されているコード化されたデータ符号を出力104から出力する。
【００１１】
図２を参照すると、従来の直列連結コード（ＳＣＣ）200の一般的なブロック図が示されている。ＳＣＣ200には、第１および第２のエンコーダブロック201、202が含まれている。エンコーダ201および202の間にはインターリーバブロック203が挿入されている。ＳＣＣ200はデータ符号Ｘｉをエンコーダ201の入力210に入力する。エンコーダ201は、コード化した後で、図１のエンコーダ100の場合に開示した処理にしたがって、データ符号ＸｉおよびＹｉを生成する。インターリーバ203はインターリービング処理のためにデータ符号ＸｉおよびＹｉを入力する。インターリーバ203におけるインターリービング処理は、既知のインターリーバ処理にしたがう。インターリービング処理には、入力データ符号を読み出し、それらをマッピング方式にしたがってデータ符号Ｚｉとして出力することが含まれる。このようなマッピング方式はランダムプロセスに基づいている。データ符号Ｚｉは、マッピング機能にしたがって順番に再配置されたデータ符号ＸｉおよびＹｉから構成されている。このようなインターリービング処理は、この技術において普通の技能をもつ者にはよく知られている。データ符号Ｚｉは、マッピング機能に依存して、幾つかの連続するデータ符号Ｚｉに対してデータ符号Ｘｉまたはデータ符号Ｙｉのみを含むことができる。エンコーダ202はデータ符号Ｚｉをコード化して、エンコーダ202において使用されているコード化機能にしたがって、データ符号Ｗｉを出力する。ＳＣＣ200はデータ符号ＺｉおよびＷｉを出力する。エンコーダ201および202において使用されるコード化機能は同じでも、または異なっていていもよい。
【００１２】
データ符号ＺｉおよびＷｉは、通信システム内の送信機から宛先のユーザへ送られる。データ符号ＺｉおよびＷｉの送信には、データ処理、適切な周波数へのアップ変換（up-conversion）、および信号増幅が含まれる。このような送信機は、この技術において普通の技能をもつ者にはよく知られている。送信、伝搬、および宛先のユーザによる受信の全プロセスは、チャンネル250としてまとめてモデル化した。チャンネルにおける送信信号の伝搬および受信には、主としてデータ符号ＷｉおよびＺｉへノイズおよび干渉を加えることが含まれ、ノイズを含んだＷｉおよびＺｉはＷｉｎおよびＺｉｎとして示されている。ノイズを加えるプロセスは、加算ブロック290においてまとめて示した。受信機内のデコーダは、データ符号ＷｉｎおよびＺｉｎを受信する。データ符号をデコードするために、受信信号に対して信号処理、周波数変換、および信号調整を行なう。このような機能は、この技術において普通の技能をもつ者にはよく知られている。本発明の種々の関連する実施形態の説明を簡単にするために、以下の記述では、受信機内のノイズを含むデータ符号に付した添字ｎを削除する。この技術において普通の技能をもつ者には、受信機において処理されるデータ符号が、添字ｎが付されていなくても、ノイズを含んでいることが分かるであろう。
【００１３】
図３を参照すると、データ符号ＷｉおよびＺｉをデコードして、データ符号Ｘｉの推定値を生成する従来のデコーダ300のブロック図が示されている。デコーディングプロセスは、ＳＣＣ200において使用されているコード化プロセスを逆にしたものである。デコーダ300には、送信機部分の第２のエンコーダブロック202において使用されるコード化機能にしたがってデータ符号ＷｉおよびＺｉをデコードするためのデコーダ301が含まれている。デコーダ301は、データ符号Ｚｉの推定値を出力350において生成する。データ符号Ｚｉの推定値は出力350からデインターリーバ（deinterleaver）302へ送られて、データ符号ＸｉおよびＹｉの推定値を生成する。デインターリーバ302は、インターリーバ203において使用されるインターリービング機能を逆にしたものにしたがって動作する。データ符号ＸｉおよびＹｉの推定値はデコーダ303へ送られて、データ符号Ｘｉの推定値を生成する。デコーダ303は、第1のエンコーダブロック201において使用されるコード化機能にしたがって動作する。
【００１４】
データ符号Ｘｉの推定値の精度に対する信頼度を高めるために、デコーダ303は、さらに、データ符号Ｙｉの推定値を生成して、データ符号ＸｉおよびＹｉの推定値をインターリーバ304へ送って、Ｚｉの推定値を生成する。インターリーバ304は、送信機部分内のインターリーバ203の動作にしたがって動作する。データ符号Ｚｉの推定値はインターリーバ304によって生成され、デコーダ301の入力311から入力される。デコーダ301ではデータ符号Ｚｉの推定値をデータ符号ＷｉおよびＺｉと共に使用して、出力350において各データ符号Ｚｉの推定値を生成する。出力350における各データ符号Ｚｉの新しい推定値は、毎回の反復後に生成される。データ符号Ｚｉの新しい推定値は、デインターリーバ302へ送られて、データ符号ＸｉおよびＹｉの新しい推定値を生成する。デコーダ303におけるプロセスは、データ符号ＸｉおよびＹｉの新しい推定値を使用して繰返されて、データ符号Ｘｉの新しい推定値を生成する。毎回の反復後のデータ符号Ｘｉの新しい推定値は、前の推定値よりも信頼度が高く、真値を維持している。このプロセスは、データ符号Ｘｉの推定値の信頼度が許容レベルに到達するまで繰返される。最高の信頼度をもつ推定値が選択され、データ符号Ｘｉの真値が維持される。
【００１５】
したがってデコーディングプロセスには長い時間がかかる。少なくとも２つのデコーディングステップ、すなわちデコーダ301および303にしたがって各データ符号が処理された後に、データ符号Ｘｉの推定値が生成される。さらに加えて、データ符号Ｘｉをデコーディングするプロセスには、データ符号の直列処理が含まれている。したがって、従来の方法にしたがうデータ符号Ｘｉのデコーディングは、高速のデコーディングプロセスを必要とする応用には非効率的である。このような応用には、ＣＤＭＡの通信システムにおける音声およびデータの無線通信が含まれる。このようなシステムは、ＴＩＡ／ＥＩＡ／ＩＳ−９５およびその後の発展形であるＴＩＡ／ＥＩＡ／ＩＳ−２０００として一般的に知られている通信の標準規格に記載されている。ＩＳ−９５およびＩＳ−２０００のシステムが記載されている発行物は、Mobile Base-station Compatibility Standardというタイトルで、公的に入手可能であり、ここでは参考文献として取り上げている。
【００１６】
送信されたデータ符号がターボコードを使用してコード化されるときは、同様の問題および困難が存在する。図４を参照すると、従来のターボコード400の一般的なブロック図が示されている。ターボコード400には、第１および第２のエンコーダブロック401、402とインターリーバブロック403とが含まれている。データ符号Ｘｉは、エンコーダ401の入力410からターボコード400に入力される。エンコーダ401はコード化後に、エンコーダ102において記載した処理にしたがって、データ符号Ｙｉを生成する。データ符号Ｘｉをインターリーバ403に入力してインターリービング処理を行なって、データ符号Ｚｉを生成する。インターリーバ403におけるインターリービング処理は、既知のインターリーバの動作にしたがう。データ符号Ｚｉは、マッピング機能にしたがって順番に再配置されたデータ符号Ｘｉから構成されている。エンコーダ402はデータ符号Ｚｉをコード化して、エンコーダ402において使用されるコード化機能にしたがってデータ符号Ｗｉを出力する。エンコーダ401および402において使用されるコード化機能は同じであっても、異なっていてもよい。
【００１７】
データ符号Ｘｉ、Ｙｉ、およびＷｉはパンクチャリングブロック（puncturing block）420へ送られる。パンクチャリングブロック420では、データ符号Ｘｉを入力410から、エンコーダ401によって生成されたデータ符号Ｙｉを入力411から、エンコーダ402によって生成されたデータ符号Ｗｉを入力412から受信する。パンクチャリングブロック420では、パンクチャリングパターンにしたがって、データ符号Ｘｉ、Ｙｉ、およびＷｉからデータ符号を選択する。選択されたデータ符号は、送信機部分を経由して、遠隔の受信者へ送られる。したがって、送られるデータ符号は、主としてデータ符号Ｘｉ、Ｙｉ、およびＷｉから構成されている。
【００１８】
データ符号Ｘｉ、Ｙｉ、およびＷｉの送信には、信号処理、適切な周波数へのアップコンバージョン、および信号増幅が含まれる。このような送信機は、この技術において普通の技能をもつ者によってよく知られている。送信、伝搬、および宛先のユーザによる受信の全プロセスは、チャンネル450としてまとめてモデル化した。プロセスには、主として、データ符号Ｘｉ、Ｙｉ、およびＷｉに対してノイズおよび干渉を加えることが含まれ、データ符号Ｘｉ、Ｙｉ、およびＷｉのノイズを含む形態はデータ符号Ｘｉｎ、Ｙｉｎ、およびＷｉｎとして示されている。ノイズを加えるプロセスは、加算ブロック490においてまとめて示した。受信機内のデコーダは、データ符号Ｘｉｎ、Ｙｉｎ、およびＷｉｎを受信する。データ符号をデコードするために、受信信号は信号処理、周波数変換、および信号調節を行なわれる。このような機能は、この技術において普通の技能をもつ者によく知られている。本発明の種々の関連する実施形態の説明を簡単にするために、受信機内のノイズを含むデータ符号に付された添字ｎは、削除される。この技術において普通の技能をもつ者には、受信機において処理されるデータ符号が、添字ｎが付されていなくても、ノイズを含むものであることが分かるであろう。
【００１９】
図５を参照すると、従来のデコーダ500のブロック図が示されており、デコーダ500はデータ符号Ｘｉ、Ｙｉ、およびＷｉをデコードして、データ符号Ｘｉの推定値を生成する。デコーディングプロセスは、エンコーダ400において使用されるコード化プロセスを逆にしたものである。データ符号Ｘｉ、Ｙｉ、およびＷｉはデータ符号選択ブロック520へ送られ、データ符号選択ブロック520ではデータ符号Ｘｉ、Ｙｉ、およびＷｉを選択して、入力542においてデコーダブロック501へルート設定するように動作する。データ符号Ｘｉはインターリーバ599の中を通って、データ符号Ｚｉを再生成する。データ符号ＺｉおよびＷｉは、入力540においてデコーダブロック502へ送られる。デコーダ501では、エンコーダブロック401において使用されているコード化機能にしたがって、データ符号ＸｉおよびＹｉをデコードする。デコーダ501は、出力550においてデータ符号Ｘｉの推定値を生成する。デコーダ502は、エンコーダブロック402において使用されるコード化機能にしたがって、データ符号ＺｉおよびＷｉをデコードする。デコーダ502は、出力560においてデータ符号Ｚｉの推定値を生成する。
【００２０】
推定値の信頼度を高め、データ符号Ｘｉの真値を維持するために、出力550におけるデータ符号Ｘｉの推定値はインターリーバ530へ送られて、デコーダ502の入力532においてデータ符号Ｚｉの推定値を生成する。デコーダ502は、入力532のデータ符号Ｚｉの推定値を、入力540のデータ符号の推定値と共に使用して、出力560のデータ符号Ｚｉの新しい推定値を生成する。出力560のデータ符号Ｚｉの推定値はデインターリーバ531へ送られ、ターボコード400におけるインターリーバ430のインターリービング処理のプロセスを逆にして、入力541のデータ符号Ｘｉの推定値を生成する。入力541のデータ符号Ｘｉの推定値は、入力542のデータ符号の推定値と共に使用されて、出力550のデータ符号Ｘｉの推定値を生成する。このプロセスは、データ符号Ｘｉの推定値の信頼度が許容レベルに到達するまで繰返される。
【００２１】
したがってターボのコード化された信号のデコーディングプロセスには長い時間がかかる。少なくとも２つのデコーディングステップ、すなわちデコーダ501および502によってデータ符号が処理された後で、高信頼度のデータ符号Ｘｉの推定値が生成される。さらに加えて、プロセスにはデータ符号の直列処理が含まれる。したがって、従来の方法にしたがうデータ符号Ｘｉのデコーディングは、高速のデコーディングプロセスを要求する応用には非効率的である。このような応用には、ＣＤＭＡの通信システムにおける音声およびデータの無線通信が含まれる。このようなシステムは、ＴＩＡ／ＥＩＡ／ＩＳ−９５およびその後の発展形であるＴＩＡ／ＥＩＡ／ＩＳ−２０００として一般的に知られている通信の標準規格に記載されている。ＩＳ−９５およびＩＳ−２０００が記載されている発行物は、Mobile Base-station Compatibility Standardというタイトルで、公的に入手可能である。
【００２２】
本発明の実施形態に取入れられている受信機は、本発明の種々の態様から多くの効果的な応用を得た。本発明の実施形態では、高速デコーディング処理を行なって、データ符号Ｘｉの正確な推定値を高い信頼度で判断する。本発明の実施形態の長所には、直列連結コードまたはターボコードにしたがってコード化されたデータ符号に対して、実施形態のデコーディング処理を行なうことが含まれる。
【００２３】
本発明の実施形態にしたがって、デコーディングプロセスは、データ符号Ｘｉ、Ｙｉ、およびＷｉに対する処理に制限される。データ符号がＳＣＣ200にしたがってコード化される場合は、データ符号Ｘｉ、エンコーダ201の出力におけるデータ符号Ｙｉ、およびエンコーダ202の出力におけるデータ符号Ｗｉが、デコーディング処理に使用される。データ符号がターボコード400にしたがってコード化される場合は、データ符号Ｘｉ、エンコーダ401の出力におけるデータ符号Ｙｉ、およびエンコーダ402の出力412におけるデータ符号Ｗｉがデコーディング動作に使用される。したがって、ＳＣＣ200およびターボコード400において同じデータ符号基準を使用して、本発明の種々の実施形態を説明する。
【００２４】
図６を参照すると、本発明の種々の実施形態にしたがうデコーディングプロセスには、有限数である“ｋ”個のデータ符号をもつデータブロックの処理が含まれている。最初に、複数のデータ符号Ｘｉから成る多数のデータ符号のデータ符号推定値が判断される。データ符号Ｘｉの各推定値は列601に示されている。データ符号Ｙｉの推定値は、複数のデータ符号Ｙｉから成る多数のデータ符号に対して判断される。データ符号Ｙｉの各推定値は列602に示されている。複数のデータ符号Ｙｉは、通信システム内の送信機において、第１の畳込みコードにしたがって複数のデータ符号Ｘｉをコード化することによって生成される。第１の畳込みコードは、ＳＣＣ200の場合にはエンコーダ201において使用され、ターボコード400の場合にはエンコーダ401において使用される。データ符号推定値は、複数のデータ符号Ｗｉの多数のデータ符号に対して判断される。データ符号Ｗｉの各推定値は、列603内に示されている。ＳＣＣ200の場合には複数のデータ符号ＹｉとＸｉが、ターボコード400の場合には複数のデータ符号Ｘｉがインターリーブされて、複数のデータ符号Ｚｉを生成する。複数のデータ符号Ｚｉは、複数の畳込みコードにしたがってコード化され、複数のデータ符号Ｗｉを生成する。第２の畳込みコードは、ＳＣＣ200の場合にはエンコーダ202において使用され、ターボコード400の場合にはエンコーダ402において使用される。
【００２５】
ガウスノイズ（Gaussian noise）の場合は、各データ符号の推定値は、ガウス確率プロセス（Gaussian probability process）によって判断される。例えば、データ符号Ｘｉの推定を判断するために、このプロセスでは、データ符号Ｘｉのノイズを含むものの測度が与えられているときは、データ符号Ｘｉの確率は“１”に等しい値をもつと判断する。確率プロセスに基づいてデータ符号の値を推定することは、この技術において普通の技能をもつ者にはよく知られている。このようにして、データ符号Ｘｉ、Ｙｉ、およびＷｉの最初の推定値が判断され、テーブル600に記憶され、テーブル600にはデータ符号Ｘｉ、Ｙｉ、およびＷｉが列601、602、および603にそれぞれ示されている。テーブル600内に含まれている情報はメモリデバイスに記憶できる。
【００２６】
図６および７には、第１の決定ノード610へ送るデータ符号ＸｉおよびＹｉの推定値が示されている。第１の決定ノード610へ送るデータ符号ＸｉおよびＹｉの推定値には、式Ｆ１（Ｘｉ，Ｙｉ）内の変数の推定値が含まれている。式Ｆ１内の変数は、第１の畳込みコードにしたがって判断される。例えば、第１の畳込みコードが、式Ｆ１（Ｄ）＝（１＋Ｄ＋Ｄ＊＊２）／（１＋Ｄ）によって定義される関係式によって定められるとき、Ｆ１（Ｘｉ，Ｙｉ）はＹｉ＋Ｙ（ｉ−１）＋Ｘｉ＋Ｘ（ｉ−１）＋Ｘ（ｉ−２）に等しい。例えば、“ｉ”が７に等しいときは、Ｆ１はＹ７＋Ｙ６＋Ｘ７＋Ｘ６＋Ｘ５に等しい。データ符号Ｙ７、Ｙ６、Ｘ７、Ｘ６、およびＸ５の推定値は、列601および602から検索できる。
【００２７】
図６および８を参照すると、データ符号ＷｉおよびＺｉの推定値が示されていて、これらは第２の決定ノード620へ送られる。第２の決定ノード620へ送られるデータ符号ＷｉおよびＺｉの推定値には、式Ｆ２（Ｗｉ，Ｚｉ）の変数の推定値が含まれている。式Ｆ２内の変数ＷｉおよびＺｉは、第２の畳込みコードにしたがって判断される。第１および第２の畳込みコードは同じであってもよい。変数Ｚｉの推定値には、データ符号Ｘｉ、またはＹｉ、あるいはＸｉおよびＹｉの推定値が含まれるが、これはＳＣＣ200の場合はインターリーバ203において、またターボコード400の場合はインターリーバ403において使用されるインターリービング機能にしたがって判断される。式Ｆ２において選択される変数には、列601、602、および603、または列601および603、または列602および603からとった変数が含まれる。
【００２８】
例示的に、例えばＦ２（Ｄ）＝（１＋Ｄ＋Ｄ＊＊２）／（１＋Ｄ）であるときは、Ｆ２（Ｚｉ，Ｗｉ）＝Ｗｉ＋Ｗ（ｉ−１）＋Ｚｉ＋Ｚ（ｉ−１）＋Ｚ（ｉ−２）である。ＳＣＣ200の場合には、インターリーバ203への入力にはデータ符号ＸｉおよびＹｉの両者が含まれているので、変数ＺｉにはＸｉ、またはＹｉ、あるいはＸｉおよびＹｉが含まれる。インターリービング機能に依存して、いくつかの連続するデータ符号に対するインターリーバの出力には、データ符号Ｘｉまたはデータ符号Ｙｉの何れかのみが含まれる。別のときには、出力は、幾つかの連続するデータ符号に対してデータ符号ＸｉおよびＹｉの両者が含まれる。したがって、変数Ｚｉの推定値には、列601および602からとったデータ符号Ｘｉ、またはＹｉ、あるいはＸｉおよびＹｉが含まれる。変数ＷｉおよびＷ（ｉ＋１）に対する推定値は列603からとられる。
【００２９】
ターボコード400の場合は、インターリーバ403への入力にはデータ符号Ｘｉのみが含まれるので、式Ｆ２に対して選択された変数には、列601および603からとった変数が含まれる。したがって、ターボコード400の場合には、式Ｆ２のために選択された変数には、それぞれ列601および603からとった変数ＸｉおよびＷｉが含まれる。
【００３０】
ＳＣＣまたはターボコードモードの何れかにおいてデータ符号をデコードする能力を与えるために、本発明の実施形態にしたがうデコーディングプロセスでは、列601、602、および603から変数を選択することができる。したがって、デコーディングプロセスでは、ＳＣＣまたはターボコードの何れかにしたがって送信機においてコード化されたデータ符号をデコードすることができる。
【００３１】
それぞれ第１および第２の決定ノード610および620では式Ｆ１およびＦ２をゼロに等しくし、一方で第１および第２の決定ノード610および620にデータ符号Ｘｉが現れるたびに、新しい推定値を判断する。例えば、ノード610では、式Ｆ１において“ｉ＝７”のときは、Ｙ７、Ｙ６、Ｘ７、Ｘ６、およびＸ５に対する推定値の確率は、それぞれＰ（Ｙ７）＝．８、Ｐ（Ｙ６）＝．７、Ｐ（Ｘ７）＝．５、Ｐ（Ｘ６）＝．２、Ｐ（Ｘ５）＝．６である。Ｘ７に対する新しい推定値は、データ符号Ｙ７、Ｙ６、Ｘ６、およびＸ５を含むデータ符号の組の推定値に基づいて計算される。したがって、式Ｆ１がゼロに等しい場合に、“１”に等しいＰ（Ｘ（ｉ＝７））の新しい推定値は、データ符号Ｙ７、Ｙ６、Ｘ６、およびＸ５の組において奇数の“１”をもつ確率に等しくなる。この場合は、４つのデータ符号があるので、１つまたは３つのデータ符号が“１”に等しい値をもつ可能性がある。したがって、データ符号Ｘ７の確率は次の式によって判断される：
P(X7)=P(Y7)＊(1-P(Y6))＊(1-P(X6))＊(1-P(X5))+(1-P(Y7))＊P(Y6)＊P(X6)*P(X5)+
P(Y6)＊(1-P(Y7))＊(1-P(X6))＊(1-P(X5))+(1-P(Y6))＊P(Y7)＊P(X6)*P(X5)+
P(X6)＊(1-P(Y7))＊(1-P(Y6))＊(1-P(X5))+(1-P(X6))＊P(Y7)＊P(Y6)*P(X5)+
P(X5)＊(1-P(Y7))＊(1-P(Y6))＊(1-P(X6))+(1-P(X5))＊P(Y7)＊P(Y6)*P(X6)。
列601内のＸｉの推定値が“１”の値をもつＸｉの推定値を表わすときは、例えばＰ（１−Ｘ６）の確率は、Ｘ６がゼロの値をもつ確率であることに注意すべきである。
【００３２】
式Ｆ２にＸ７が現れる回数は、各エンコーダのインターリーバ、すなわちインターリーバ403または203において使用されるインターリービング機能に依存する。記載したように、“ｉ”が所与の値であるとき、Ｆ２はデータ符号Ｘｉに関係する変数を含まなくてもよい。したがって、所与の値が“ｉ”であるとき、式Ｆ２にＸｉは現れても、現れなくてもよい。Ｘ７が現れているときは、この例では、現れているデータ符号Ｘｉの新しい推定値は、式Ｆ１に示した例と同様に判断される。
【００３３】
さらに加えて、列601、602、および603内の値は同時にノード610および620へ送られ、一方で異なる値の“ｉ”が処理されるので、２つ以上のＰ（Ｘｉ）の値をノード610および620へ送ることができる。これは、式Ｆ１において、所与の値が“ｉ”のときは、変数の値、Ｙｉ＋Ｙ（ｉ−１）＋Ｘｉ＋Ｘ（ｉ−１）＋Ｘ（ｉ−２）、“ｉ＋１”のときは、変数の値、Ｙ（ｉ＋１）＋Ｙ（ｉ）＋Ｘ（ｉ＋１）＋Ｘ（ｉ）＋Ｘ（ｉ−１）、“ｉ＋２”のときは、変数の値、Ｙ（ｉ＋２）＋Ｙ（ｉ＋１）＋Ｘ（ｉ＋２）＋Ｘ（ｉ＋１）＋Ｘ（ｉ）がノード610へ送られることを注意することによって明らかになる。したがって、本発明の実施形態はデータ符号の並行処理を含むので、この例では、Ｘｉの推定値がノード610に３回現れることは明らかである。関係式（１＋Ｄ＋Ｄ＊＊２）／（１＋Ｄ）によって定義されるコード化機能を使用することによって、Ｘｉの値が３つの連続する“ｉ”の値に関係することに注意すべきである。異なるコード化機能が使用されるとき、“ｉ”が所与の値であるときにＸｉが現れる回数は異なる。
【００３４】
データ符号Ｘｉの新しい推定値は、最初のステップにおいて判断された推定値に基づいて判断され、新しい推定値は、第１および第２の決定ノード610および620においてデータ符号Ｘｉが現われるたび生成される。図９を参照すると、例えば、データ符号Ｘｉがノード610に３回現れることに関係して生成される３つの推定値は、ノード900へ送られて、データ符号Ｘｉの新しい推定値が判断される。さらに加えて、コード化プロセスにおいて使用されるインターリーバ機能に依存して、データ符号Ｘｉの推定値は、コード化機能に関係するデータ符号Ｚｉの一部としてノード620へも送られる。したがって、Ｘｉの新しい推定値をノード620からノード900へ送って、ノード900においてＸｉの新しい推定値を判断することができる。データ符号Ｘｉの新しい推定値は、ノード610および620から送られるデータ符号Ｘｉの最初の推定値と全ての推定値との正規化された積である。例えば、Ｘｉが合計で“Ｌ”回現れるとき、ノード900はデータ符号Ｘｉの推定値を“Ｌ”回受信する。ノード900へ送られるデータ符号Ｘｉに対するＸｉの各推定値をＰで示すと、Ｘｉの新しい推定値は、
(P(0)P(1)P(2)P(3)…P(L-1)P(L))/[P(0)P(1)P(2)P(3)…P(L-1)P(L)+(1-P(0))(1-P(1))(1-P(2))(1-P(3))…(1-P(L-1))(1-P(L))]に等しい。Ｐ（０）は新しい推定値であり、他は、第１および第２の決定ノードに現れたデータ符号Ｘｉの新しい推定値であることに注意すべきである。
【００３５】
ノード900において判断されたデータ符号Ｘｉの新しい推定値には、データ符号Ｘｉの真値を確実に維持している。データ符号Ｘｉの新しい推定値がデータ符号Ｘｉの真値を確実に維持するまで、このプロセスは何度も繰返される。信頼度を高めるために２回以上の反復が必要であるとき、本発明の実施形態には、データ符号Ｘｉの正規化された推定値を、最初のステップで判断された推定値と、第１および第２の決定ノード610および620に現れたデータ符号Ｘｉの少なくとも1つの新しい推定値とに基づいて判断することが含まれる。データ符号Ｘｉの正規化された推定値を、第１および第２のノード610および620へ送られるデータ符号Ｘｉの推定値の少なくとも１つへ代入する一方で、データ符号を第１および第２のノード610および620へ送るステップが繰返される。データ符号Ｘｉの全ての推定値は、ノード610および620へ送ることを１回繰返すと、正規化された形になる。
【００３６】
正規化されたデータ符号Ｘｉの推定値を判断するために、データ符号Ｘｉの各推定値は、ノード610および620にデータ符号Ｘｉが表われるたびに判断され、Ｘｉの最初の推定値が使用される。例示的に、データ符号Ｘｉが、例えばノード610に３回現われ、ノード620には現れないと仮定する。現れたデータ符号Ｘｉに対して判断される推定値は、Ｘｉ１、Ｘｉ２、およびＸｉ３として分類される。３回現れる理由は、この例では、Ｘｉが３つのＦ１の式に関係しているからである。添字“ｉ”の次に示されている数字は、Ｘｉの値が使用されているＦ１の式を識別するためのものである。最初の値はＸｉ０に分類される。第１のＦ１の式に使用されるデータ符号Ｘｉの正規化値は、
(P(Xi0)*P(Xi2)*P(Xi3))/[(P(Xi1)*P(Xi2)*P(Xi3))+(1-P(Xi0))*(1-P(Xi2))*(1-P(Xi3))]に等しい。例えばノード610において、第２のＦ１の式に使用されるデータ符号Ｘｉの正規化値は、
(P(Xi0)*P(Xi1)*P(Xi3))/[(P(Xi1)*P(Xi2)*P(Xi3))+(1-P(Xi0))*(1-P(Xi1))*(1-P(Xi3))]に等しい。第３のＦ１の式に使用されるデータ符号Ｘｉの正規化値も同様のやり方で判断される。第３の式Ｆ１に使用されるデータ符号Ｘｉの正規化値は、
(P(Xi0)*P(Xi1)*P(Xi2))/[(P(Xi1)*P(Xi2)*P(Xi3))+(1-P(Xi0))*(1-P(Xi1))*(1-P(Xi2))]に等しい。
【００３７】
図１０および１１は、データ符号ＹｉおよびＷｉの新しい推定値と正規化値とを判断するプロセスを示しており、このプロセスは、データ符号Ｘｉの新しい値と正規化値とを判断するために記載したプロセスに類似している。式Ｆ１およびＦ２がゼロに設定されて、データ符号Ｘｉの新しい推定値を判断するとき、第１および第２の決定ノードに現れるデータ符号Ｙｉの新しい推定値も、プロセスを２回以上繰返したときに判断される。その結果、式Ｆ１およびＦ２がゼロに等しくされ、一方で次に推定値を判断するときに、データ符号Ｙｉの正規化された推定値も判断される。データ符号Ｙｉの正規化された推定値は、第１および第２の決定ノード610および620に現れたデータ符号Ｙｉの最初の推定値と新しい値の少なくとも1つとに基づいている。データ符号の推定値を第１および第２の決定ノード610および620へ送るステップを繰返す一方で、データ符号Ｙｉの正規化された推定値を、ノード1000からノード610および620へ送られるデータ符号Ｙｉの推定値の少なくとも１つへ代入する。ノード1000からノード610および620へ送られるデータ符号Ｙｉの推定値の全ては、１回繰返した後に、正規化された形を含んでいることが好ましい。
【００３８】
式Ｆ１およびＦ２をゼロに設定して、データ符号Ｘｉの新しい推定値を判断するときと同様に、データ符号Ｗｉにおいても、第１および第２の決定ノードに現れた各データ符号Ｗｉの新しい推定値は、プロセスを１回以上実行したときに判断される。したがって、式Ｆ１およびＦ２をゼロに等しくする一方で、次に推定値を判断するときは、データ符号Ｗｉの正規化された推定値も判断される。データ符号Ｗｉの正規化された推定値は、最初の推定値と、第２の決定ノード620に現れるたびに生成された各データ符号Ｗｉの新しい推定値の少なくとも１つとに基づいている。データ符号Ｗｉはノード620のみに現れることに注意すべきである。データ符号の推定値を第１および第２のノード610および620へ送るステップを繰返す一方で、データ符号Ｗｉの正規化された推定値を、ノード1100からノード620へデータ符号Ｗｉの推定値の少なくとも１つへ代入する。ノード1100からノード610および620へ送られるデータ符号Ｗｉの推定値の全ては、1回繰返した後に、正規化された推定値を含んでいることが好ましい。
【００３９】
データ符号Ｘｉの新しい推定値を判断することによってデコードするプロセスは、データ符号Ｘｉの真値を維持している推定値の信頼度が許容可能なレベルに上昇するまで、必要な回数だけ繰返される。本発明の種々の実施形態は、この技術において普通の技能をもつ者には一般的に知られている特定用途向け信号処理ハードウエアにおいて構成することができる。その代わりに、または組合せて、本発明の種々の実施形態は、この技術において普通の技能をもつ者には一般的に知られているマイクロプロセッサ環境において構成することができる。
【００４０】
本発明の実施形態の長所には、ＳＣＣまたはターボコードの何れかによって、送信機においてコード化されたデータ符号をデコードするための能力を与えることが含まれる。受信者は、コード化方法が分かると、テーブル600からのデータ符号の選択を再構成して、適切なデコーディングプロセスに適応する。さらに加えて、多数のデータ符号を処理する一方で、デコーディングプロセスを行なうので、多数のデータ符号Ｘｉは同時にデコードされる。各データ符号に対する処理および演算は非常に似ている。その結果、種々のステップを実行するために書込まれたソフトウエアルーチンは、ＳＣＣおよびターボコードの何れかのために最小の再構成で再使用される。最も一般的なマイクロプロセッサおよびディジタル信号プロセッサは、処理速度を犠牲にすることなく、並列処理動作を行なうことができる。したがって、本発明の実施形態では、高速で効率的にデータ符号のブロックをデコードすることができる。
【図面の簡単な説明】
【図１】  畳込みエンコーダの一般的なブロック図。
【図２】  直列連結コード（ＳＣＣ）にしたがってデータ符号をコード化する従来のエンコーダの一般的なブロック図。
【図３】  直列連結コードにしたがってコード化されたデータ符号をデコードするための畳込みデコーダのブロック図。
【図４】  ターボコードにしたがってデータ符号をコード化する畳込みエンコーダの一般的なブロック図。
【図５】  ターボコードにしたがってコード化されたデータ符号をデコードする畳込みデコーダのブロック図。
【図６】  有限数である“ｋ”のデータ符号をもつデータブロックに対してデコーディング処理をするための本発明の種々の実施形態にしたがうデコーディングプロセス。
【図７】  本発明の実施形態にしたがってデコーディングプロセスの一部として、データ符号ＸｉおよびＹｉの推定値を第１の決定ノードへ送ることを示す図。
【図８】  本発明の種々の実施形態にしたがってデコーディングプロセスの一部として、データ符号ＷｉおよびＺｉの推定値を第２の決定ノードへ送ることを示す図。
【図９】  データ符号Ｘｉに対する正規化値と新しい推定値とを判断するために、決定ノードに３回現れたことに関係するデータ符号Ｘｉの３つの推定値を送る例を示す図。
【図１０】  データ符号Ｘｉに対する新しい推定値と正規化値とを判断するプロセスと同様に、データ符号Ｙｉに対する推定値と正規化値とを判断するプロセスを示す図。
【図１１】    データ符号Ｘｉに対する新しい推定値と正規化値とを判断するプロセスと同様に、データ符号Ｗｉに対する推定値と正規化値とを判断するプロセスを示す図。
【図１】
0004842493.tif 000002
【図２】
0004842493.tif 000003
【図３】
0004842493.tif 000004
【図４】
0004842493.tif 000005
【図５】
0004842493.tif 000006
【図６】
0004842493.tif 000007
【図７】
0004842493.tif 000008
【図８】
0004842493.tif 000009
【図９】
0004842493.tif 000010
【図１０】
0004842493.tif 000011
【図１１】
0004842493.tif 000012