(57)【要約】  本発明の少なくとも１つの面は、並列した第１および第２要素符号器(202,206)と、低フレーム誤り率を達成するために、第１要素符号器へ入力されるバイナリデータの置換された版を第２要素符号器に入力するように結合されたインターリーバ(204)とを備えたターボ符号器(104)を提供することである。前記インターリーバは、入力ブロックに入力されたバイナリデータを解析し、置換ベクトルを決定し、そして、予め定められた１組の置換方程式にしたがって入力ブロックにおけるバイナリデータの順序を再配置するように構成されている。情報ブロックにおける再配置されたバイナリデータは、それから、送信される冗長データの距離スペクトルを改善するために第２要素符号器に渡される。
2009512353.tif 000002
【特許請求の範囲】
【請求項１】
バイナリデータストリームを受信し、そして、１以上のシンボルの第１の出力を形成するように前記バイナリデータストリームを処理するように構成された第１要素符号器と、
複数の予め定められた置換方程式にしたがって前記バイナリデータの順序を再配置するように構成されたターボインターリーバと、
前記ターボインターリーバと通信するように結合された第２要素符号器であって、前記再配置されたバイナリデータを受信し、前記再配置されたバイナリデータを、１以上のシンボルの第２の出力を形成するように処理する前記第２要素符号器と、
を具備するターボ符号器。
【請求項２】
前記第１および第２の出力を受信し、前記第１の出力および第２の出力における１以上のシンボルを搬送信号にマップするように、前記第１および第２要素符号器と通信するように結合された、シンボルマッパーを、さらに具備する請求項１に記載のターボ符号器。
【請求項３】
前記ターボインターリーバは、さらに、値πi(j)を持つ k1 x k2  置換行列を形成するように構成され、ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、さらに、k1 x k2 = Nturbo であり、Nturboは、バイナリデータのブロック長に対応する整数であり、そこにおいて、前記予め定められた置換方程式が前記置換行列値 πi(j)を定義し、さらに、
前記置換行列を、前記再配置されたバイナリデータの順序を定義している置換ベクトルに変換するように、構成されている請求項１に記載のターボ符号器。
【請求項４】
前記複数の予め定められた置換方程式は、次のように定義されている請求項３に記載のターボ符号器。
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、p1, p2, p3, p4およびc1, c2, c3, c4は素数である。
【請求項５】
前記ブロック長 Nturbo = 512 ビットであり、 k1 = 8, k2 = 64, { p1, p2, p3, p4} = {11, 19, 31, 37}, および { c1, c2, c3, c4} = {5, 11, 19, 31} である請求項４に記載のターボ符号器。
【請求項６】
前記ブロック長 Nturbo = 1024 ビットであり、k1 = 8, k2 = 128, { p1, p2, p3, p4} = {11, 19, 31, 37}, および { c1, c2, c3, c4} = {5, 11, 19, 31}である請求項４に記載のターボ符号器。
【請求項７】
前記ブロック長 Nturbo = 2048 ビットであり、 k1 = 8, k2 = 256, { p1, p2, p3, p4} = {13, 23, 31, 37}, および { c1, c2, c3, c4} = {7, 13, 23, 31}である請求項４に記載のターボ符号器。
【請求項８】
前記ブロック長 Nturbo = 3072 ビットであり、 k1 = 8, k2 = 384, { p1, p2, p3, p4}  = {31, 41, 67, 79}, および { c1, c2, c3, c4} = {13, 23, 29, 41}である請求項４に記載のターボ符号器。
【請求項９】
前記情報ブロック長Nturbo = 4096 ビットであり、k1 = 8, k2 = 512, { p1, p2, p3, p4}  = {31, 47, 67, 83}, および { c1, c2, c3, c4} = {13, 23, 31, 47}である請求項４に記載のターボ符号器。
【請求項１０】
第１要素符号器へバイナリデータストリームを供給することと、
第２要素符号器に結合されたターボインターリーバに前記バイナリデータストリームを供給することと、
値π(s)、ここで 1 ≦ s ≦ Nturbo であり、かつNturbo はバイナリデータのブロック長に対応する整数である、を持つ置換ベクトルを生成するように、そして、前記置換ベクトルの値π(s)にしたがって前記バイナリデータの順序を再配置するように構成された前記ターボインターリーバと、
前記再配置されたバイナリデータを前記第２要素符号器に供給すること、
を具備するバイナリ情報を符号化する方法。
【請求項１１】
前記第１要素符号器において１以上のシンボルを含む第１の出力を生成するように前記バイナリデータストリームを処理することと、
前記第２要素符号器において１以上のシンボルを含む第２の出力を生成するように前記再配置されたバイナリデータを処理することと、
前記第１の出力と前記第２の出力を搬送信号にマッピングすることを、さらに具備する請求項１０に記載の方法。
【請求項１２】
前記第１要素符号器および前記第２要素符号器は、再帰的組織畳み込み符号器である、請求項１０に記載の方法
【請求項１３】
前記ターボインターリーバは、さらに、値πi(j)を持つ k1 x k2 置換行列、ここで 1 ≦ i ≦ k1 かつ、 0 ≦ j ≦ k2-1 であり、そして k1 x k2 = Nturbo である、を生成するように、そして前記置換行列を前記置換ベクトルに変換するように構成されている、請求項１０に記載の方法。
【請求項１４】
前記置換行列から前記置換ベクトルへの変換は、前記置換行列における全ての値が前記置換ベクトルに読み込まれるまで、二つの隣接する行から一度に一つの列について、左から右へ、かつ上から下まで値を取得することによる、請求項１３に記載の方法。
【請求項１５】
１以上のシンボルの第１の出力を形成するようにバイナリデータストリームを符号化するための第１の手段と、
複数の予め定められた置換方程式にしたがって前記バイナリデータの順序をインターリーブするための手段と、
１以上のシンボルの第２の出力を形成するように前記インターリーブされたバイナリデータを符号化するための第２の手段と、
を具備するターボ符号器。
【請求項１６】
前記第１および第２の出力を搬送信号にマッピングする手段を、さらに具備する請求項１に記載のターボ符号器。
【請求項１７】
バイナリデータストリームを受信するための入力インターフェースと、
前記入力インターフェースに通信できるように結合されたデータサンプラーであって、前記バイナリデータストリームをサンプルおよび分割して入力ブロックに入れるように構成された前記データサンプラーと、
前記入力ブロックにおいて、複数の予め定められた置換方程式にしたがって前記バイナリデータの順序を再配置し、そして前記再配置したバイナリデータを持つ出力ブロックを提供するように、前記データサンプラーに通信できるように結合された処理ユニットと、
を具備するインターリーバ。
【請求項１８】
前記処理ユニットは、さらに、値πi(j)を持つk1 x k2 置換行列を生成し、ここで、 1 ≦ i ≦ k1 かつ 0 ≦ j ≦ k2-1 および k1 x k2 = Nturbo であり、Nturboは、バイナリデータのブロック長に対応する整数であり、そこにおいて前記複数の予め定められた置換方程式は前記置換行列値πi(j)を定義し、かつ
前記置換行列を、再配置されたバイナリデータの順序を定義している置換ベクトルに変換する、請求項１７に記載のインターリーバ。
【請求項１９】
前記複数の予め定められた置換方程式は、次のように定義されている請求項１７に記載のインターリーバ。
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、p1, p2, p3, p4およびc1, c2, c3, c4は素数である。
【請求項２０】
バイナリデータストリームを受信するための入力と、
前記バイナリデータストリームを入力ブロックに分割し、入力ブロックにおける前記バイナリデータの順序を予め定められた置換値にしたがって再配置し、そして前記再配置されたバイナリデータを持つ出力ブロックを提供するように構成された回路と、
を具備するプロセッサ。
【請求項２１】
前記回路は、値πi(j)を持つ、k1 x k2 置換行列を生成し、ここで、 1 ≦ i ≦ k1 かつ 0 ≦ j ≦ k2-1 そして、k1 x k2 = Nturbo であり、Nturbo は入力ブロック長に対応する整数であり、かつ、複数の予め定められた置換方程式は、前記置換行例の値πi(j)を定義し、前記置換行列を、前記再配置されたバイナリデータの順序を定義する置換ベクトルに変換するように構成されており、そこにおいて、前記複数の予め定められた置換値 πi(j)は、次の式に基づいて計算される、請求項２０に記載のプロセッサ。
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、p1, p2, p3, p4およびc1, c2, c3, c4は素数である。
【請求項２２】
第１の信号を受信するための入力インターフェースと、
前記第１の信号における第２の組のシンボルのインターリーブされた版であるところの、前記第１の信号における第１の組のシンボル、ここで前記第１の組のシンボルは予め定められた１組の置換方程式にしたがってブロックインターリーブされたものである、を見分けることにより前記第１の信号を復号するように構成された処理ユニットと、
を具備する復号器。
【請求項２３】
前記予め定められた置換方程式は、次の式によって定義されている、請求項２２に記載の復号器。
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、p1, p2, p3, p4およびc1, c2, c3, c4は素数である。
【請求項２４】
第１の信号を受信するための手段と、
前記第１の信号における第２の組のシンボルのインターリーブされた版であるところの、前記第１の信号における第１の組のシンボル、ここで前記第１の組のシンボルは予め定められた１組の置換方程式にしたがってブロックインターリーブされたものである、を見分けることにより前記第１の信号を処理するように構成された手段と、
を具備する復号器。
【請求項２５】
バイナリデータストリームを符号化するための１以上の命令であって、その命令がプロセッサにより実行されるときには、前記プロセッサに、
第１の出力を生成するために第１の符号化機能により受信したバイナリデータストリームを符号化することと、
値π(s)、ここで 1 ≦ s ≦ Nturbo であり、Nturbo はバイナリデータのブロック長に対応する整数である、を持つ置換ベクトルを生成することと、
前記置換ベクトルの値π(s)にしたがって前記バイナリデータストリームの順序を再配置することと、
第２の出力を生成するために、第２の符号化機能により前記再配置されたバイナリデータストリームを符号化することと、
をさせる命令を持つ機械可読媒体。
【請求項２６】
前記第１の出力と前記第２の出力とを搬送信号にマップすることを、さらに具備する請求項２５に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
少なくとも一つの特徴は、ディジタル通信システムに関係しており、そして、より具体的には、低フレーム誤り率を有する改善されたターボ符号器に関係している。
【背景技術】
【０００２】
通信システムは、伝送誤りを最小化しつつ、転送される情報量を増加させるために数多くの技術を使用している。これらの通信システムにおいては、一般に、情報は、フレームと呼ばれるビットのブロックまたはバイナリビットのシーケンスで表現されている。
【０００３】
バイナリ情報は、信号波形として変調され、そして通信チャンネルの向こう側へ送信される。通信チャンネルは、送信信号を劣化させる干渉および雑音をもたらす傾向にある。
【０００４】
受信機において、受信された情報は、劣化しているかもしれない、そして、送信されたバイナリ情報の推定である。ビット誤りまたはフレーム誤りの数は、通信チャンネルにおけるノイズと干渉の総量に依存している。
【０００５】
伝送チャンネルの劣化という影響に対処するために、誤り訂正符号化が、ディジタル通信システムにおいて、ディジタル情報を雑音と干渉から保護し、そして、ビット／フレーム誤りの数を減少させるために、しばしば使用される。一般に、チャンネル符号化は、送信情報ストリームに冗長ビットを選択的に導入することによって達成される。これらの追加ビットは、受信されたデータストリームにおけるビット誤りの検出と訂正を可能にし、それによって、より信頼性のある伝送を実現する。一つの課題は、ハードウエアおよび／またはソフトウエアにより、十分単純にかつ十分速く実現される誤り訂正符号化スキームによって、低フレーム誤り率ということになる、低ビット誤り率を達成することである。
【０００６】
通信理論において良く知られた一つの原理は、十分に大きなブロック長ｎのランダムに選択された符号は、シャノンのチャンネル容量限界に近づくことが可能であることである。そのようなコードの最尤（maximum-likelihood）（ＭＬ）復号化は、復号化が物理的に実現できない程度まで、ｎと共に指数関数的に増大する。したがって、もう一つの課題は、大きな等価ブロック長を有し、それでもなお、実際的な復号化が可能である構造を持っている誤り訂正符号を開発することである。
【０００７】
誤り訂正符号の一つのタイプは、ターボ符号として良く知られている並列連接符号であり、シャノン限界に近い誤り訂正能力を持つことが知られている。 ターボ符号化の基礎は、チャンネルを通って送信されるデータに冗長性を導入することである。冗長なデータは、受信データから元のデータを再生するのに役に立つ。
【０００８】
ターボ符号の一実施例は、ランダムインターリーバによって分離されている二つの要素符号器または成分畳み込み符号の並列連接を備える。“ランダム”の見かけを提供する擬似ランダムインターリーバにより、ある程度、ターボ符号は、シャノンのチャンネル容量の１ｄＢ以内の伝送性能を達成することができる。しかしながら、このようなインターリーバの設計における問題は、ランダムの見かけを持ち、それによって送信された冗長データにおける距離スペクトルを改善する、バイナリデータを再配置するスキームを決定することである。
【発明の開示】
【発明の概要】
【０００９】
本発明の一つの特徴は、低フレーム誤り率を持つターボ符号を提供することである。一実施例においては、並列連接符号器とブロックインターリーバを持つターボ符号器は、送信された冗長データの距離スペクトルを改善するために入力ビットまたはシンボルの順序を再配置するように構成される。
【００１０】
他の実施例は、（１）バイナリデータストリームを受信し、そして、１以上のシンボルの第１の出力を形成するようにバイナリデータストリームを処理するように構成された第１要素符号器と、（２）複数の予め定められた置換方程式（permutation equation）にしたがってバイナリデータの順序を再配置するように構成されたターボインターリーバと、（３）ターボインターリーバと通信するように結合され、再配置されたバイナリデータを受信し、その再配置されたバイナリデータを１以上のシンボルの第２の出力を形成するように処理する第２要素符号器と、から成るターボ符号器を備える。ターボ符号器は、さらに、第１および第２の出力を受信し、その第１の出力および第２の出力における１以上のシンボルを搬送信号にマップするように、第１および第２要素符号器と通信するように結合された、シンボルマッパーを含み得る。ターボインターリーバは、さらに（１）値πi(j)を持つk1 x k2  置換行列（permutation matrix）を形成するように構成され、ここで、1 ≦ i ≦ k1 および 0 ≦ j ≦ k2-1 であり、さらに、k1 x k2 = Nturbo であり、Nturboは、バイナリデータのブロック長に対応する整数であり、そこにおいて、予め定められた置換方程式は置換行列値 πi(j)を定義し、さらに（２）置換行列を、再配置されたバイナリデータの順序を定義している置換ベクトルに変換するように、構成されてもよい。
【００１１】
一つの例においては、k1 x k2の置換行列における置換値πi(j)は、次の置換方程式で定義される:
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
ここで、p1, p2, p3, p4、およびc1, c2, c3, c4は、素数の係数である。以下のブロック長 Nturbo に関する種々の実施例において、これら置換方程式のパラメータは、  
Nturbo = 512 ビット, k1 = 8, k2 = 64, {p1, p2, p3, p4} = {11, 19, 31, 37}, および {c1, c2, c3, c4} = {5, 11, 19, 31};
Nturbo = 1024 ビット, k1 = 8, k2 = 128, {p1, p2, p3, p4} = {11, 19, 31, 37}, および {c1, c2, c3, c4} = {5, 11, 19, 31};
Nturbo = 2048 ビット, k1 = 8, k2 = 256, {p1, p2, p3, p4} = {13, 23, 31, 37}, および {c1, c2, c3, c4} = {7, 13, 23, 31};
Nturbo = 3072 ビット, k1 = 8, k2 = 384, {p1, p2, p3, p4}  = {31, 41, 67, 79}, および {c1, c2, c3, c4} = {13, 23, 29, 41}; そして
Nturbo = 4096 ビット, k1 = 8, k2 = 512, {p1, p2, p3, p4}  = {31, 47, 67, 83}, および {c1, c2, c3, c4} = {13, 23, 31, 47}.
である。
【００１２】
さらに他の例は、（１）バイナリデータストリームを受信するための入力インターフェースと、（２）前記入力インターフェースに通信できるように結合されたデータサンプラーであって、前記バイナリデータストリームをサンプルおよび分割して入力ブロックに入れるように構成されたデータサンプラーと、（３）入力ブロックにおいて、複数の予め定められた置換方程式にしたがってバイナリデータの順序を再配置し、そして再配置したバイナリデータを持つ出力ブロックを提供するように、データサンプラーに通信できるように結合された処理ユニット、から成るインターリーバを備える。
【００１３】
一実施例は、（１）第１要素符号器へバイナリデータストリームを供給することと、
（２）第２要素符号器に結合されたターボインターリーバにバイナリデータストリームを供給することと、（３）（ａ）値π(s)、ここで 1 ≦ s ≦ Nturbo であり、かつ Nturbo はバイナリデータのブロック長に対応する整数である、を持つ置換ベクトルを生成するように、そして（ｂ）置換ベクトルの値π(s)にしたがってバイナリデータの順序を再配置するように構成されたターボインターリーバと、（４）再配置されたバイナリデータを第２要素符号器に供給すること、とから成るバイナリ情報を符号化する方法を提供する。前記方法は、さらに、（５）第１要素符号器において１以上のシンボルを含む第１の出力を生成するようにバイナリデータを処理することと、（６）第２要素符号器において１以上のシンボルを含む第２の出力を生成するように再配置されたバイナリデータを処理することと、（７）第１の出力と第２の出力を搬送信号になるように変調すること
を含んでもよい。
【００１４】
第１要素符号器および第２要素符号器は、再帰的組織畳み込み符号器（recursive systematic convolutional encoders）であってもよい。ターボインターリーバは、さらに、（１）値πi(j)を持つ k1 x k2 置換行列、ここで 1 ≦ i ≦ k1 かつ、 0 ≦ j ≦ k2-1 であり、そして k1 x k2 = Nturbo である、を生成するように、そして（２）置換行列を置換ベクトルに変換するように構成されてもよい。
【００１５】
一例において、置換行列を置換ベクトルに変換することは、置換行列における全ての値が置換ベクトルに読み込まれるまで、二つの隣接する行から一度に一つの列について、左から右へ、かつ上から下へ値を取得することにより達成される。
【００１６】
一つの実施例においては、（１）バイナリデータストリームを受信するための入力と、（２）（ａ）バイナリデータストリームを解析して入力ブロックに入れ、（ｂ）入力ブロックにおけるバイナリデータの順序を予め定められた置換値にしたがって再配置し、そして（ｃ）再配置されたバイナリデータを持つ出力ブロックを提供するように構成された回路と、から成るプロセッサを備える。
【００１７】
他の実施例は、（ａ）第１の信号を受信するための入力インターフェースと、（ｂ）第１の信号における第２の組のシンボルのインターリーブされた版であるところの、第１の信号における第１の組のシンボル、ここで第１の組のシンボルは予め定められた１組の置換方程式にしたがってブロックインターリーブされたものである、を見分けることにより第１の信号を復号するように構成された処理ユニットと、から成る復号器を備える。
【００１８】
さらに他の実施例は、バイナリデータストリームを符号化するための１以上の命令であって、その命令がプロセッサにより実行されるときには、プロセッサに、（ａ）第１の出力を生成するために第１の符号機能により受信したバイナリデータストリームを符号化することと、（ｂ）値π(s)、ここで 1 ≦ s ≦ Nturbo であり、Nturbo はバイナリデータのブロック長に対応する整数である、を持つ置換ベクトルを生成することと、（ｃ）置換ベクトルの値π(s)にしたがってバイナリデータストリームの順序を再配置することと、（ｄ）第２の出力を生成するために、第２の符号機能により再配置されたバイナリデータストリームを符号化することと、（ｅ）第１の出力と第２の出力とを搬送信号にマップすること、をさせる命令を持つ機械可読媒体を提供する。
【詳細な説明】
【００１９】
以下の説明においては、具体的な細部が、実施例の完全理解のために与えられる。
【００２０】
しかし、実施例は、これらの具体的な細部がなくても実践され得ることが、当業者によって理解されるであろう。例えば、不必要な細部により実施例を不明瞭にしないために、回路はブロック図で示されるかもしれない。他の例では、良く知られた回路、構造、および技術は、実施例を不明瞭にしないように詳細に示されるかもしれない。 
また、実施例は、フローチャート、フロー図、構造図、またはブロック図として描かれたプロセスとして説明されるかもしれないことが注意される。フローチャートは、動作をシーケンシャルプロセスとして説明するけれども、多くの動作は、並列にまたは同時に実行され得る。加えて、動作の順序は再配列されるかもしれない。プロセスはその動作が完了したときに終結される。プロセスは、方法、関数、手順、サブルーチン、サブプログラム等に該当するかもしれない。プロセスが関数に該当するときは、その終結は、呼び出し関数またはメイン関数への、関数のリターンに該当する。
【００２１】
さらに、記憶媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および／または、情報を格納しておくための機械可読な他の媒体を含む、データを保存するための１以上の装置を表し得る。
【００２２】
“機械可読媒体（machine readable medium）”という用語は、可搬または固定の記憶装置、光学記憶装置、無線チャンネル、および、命令および／またはデータを記憶し、包含し、または運搬することが可能な種々の他の媒体を含んでいる、しかし、これに限定されない。
【００２３】
さらに、実施例は、ハードウエア、ソフトウエア、ファームウエア、ミドルウエア、マイクロコード、または、これらの任意の組み合わせにより実現されでもよい。ソフトウエア、ファームウエア、ミドルウエア、またはマイクロコードにより実現されるときは、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または他の記憶装置などの機械可読媒体に格納され得る。プロセッサは、必要なタスクを実行することができる。コードセグメントは、手続き、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウエアパッケージ、クラス、または、命令、データ構造、あるいはプログラム・ステートメントの任意の組み合わせを、意味しているかもしれない。コードセグメントは、情報、データ、引数、パラメータ、またはメモリの内容を渡し、および／または受け取ることにより、他のコードセグメントまたはハードウエア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリの共有、メッセージの受け渡し、トークンパッシング、ネットワーク伝送等の任意の適当な手段を介して、渡され、転送され、または送信される。
【００２４】
本発明の一つの特徴は、低フレーム誤り率を持つターボ符号を提供することである。
【００２５】
一実施例において、並列連接符号器およびブロックインターリーバを有するターボ符号器は、送信された冗長データの距離スペクトルを改善するために入力ビットまたはシンボルの順序を再配置するように構成されている。
【００２６】
図１は、ターボ符号器が実装され得るディジタル通信システムを示している。データソース１０２は、符号器１０４にディジタル形式のデータを供給する。符号器１０４は、一つの実施例にしたがってターボ符号を実現するターボインターリーバを含んでいる。符号化されたデータは、それから、伝送チャンネル（例、有線および／または無線のチャンネル）を超えて受信機へ送信される。受信機は、受信データに適用するターボ復号器１０６を含んでいる。復号されたデータは、それから、その送信先１０８に供給される。
【００２７】
図２は、ターボ符号器の一実施例のブロック図を示す。ターボ符号器は、第１要素符号器２０２および第２要素符号器２０６を含んでいる。バイナリデータストリーム２１０(n1, n2, n3 ... nL) は、第１要素符号器２０２およびターボインターリーバ２０４の両方に送られる。バイナリデータストリーム２１０(n1, n2, n3 ... nL) は、入力ブロックの中へサンプルされ、および／または分割され得る。ターボインターリーバ２０４は、バイナリデータストリームをブロックまたはフレームとして処理することができる。受信された全てのＮデータビットは、Nturboの長さを持つブロックと考慮される。特定のブロック長 Nturbo について、ターボ符号インターリーバ２０４は、予め定められた置換方程式にしたがって、バイナリデータストリームn1, n2, n3 ... Nturboを再配置する。再配置され、またはインターリーブされたバイナリストリームビットは、それから、第２要素符号器２０６へ送られる。第１要素符号器２０２および第２要素符号器２０６からのビットは、それから、並列の符号器２０２および２０６からの冗長なビットまたはシンボルをマップまたは変調して搬送信号とするところの、ビット・ツー・シグナル／シンボルのマッパー２０８内へとサンプルされる。第２要素符号器２０６からの出力ビットの順序を再配置することによって、搬送信号の冗長ビットの距離スペクトルは増加され、それによってビットまたはフレーム誤り率を減少させる。
【００２８】
種々の実施例において、並列要素符号器２０２および２０６の一つまた両方は、再帰的組織畳み込み符号器または他の公知のタイプの符号器であってもよい。ターボ符号器１０４のさらなる他の例においては、二つ以上の並列連接符号器および一つ以上のインターリーバが使用されてもよい。
【００２９】
図３は、ターボ符号器におけるバイナリ情報の符号化の方法を示す。バイナリデータストリームは、第１要素符号器に供給される ３０２。バイナリデータストリームは、１以上のシンボルの第１の出力を生成するために第１要素符号器において処理される ３０４。バイナリデータストリームは、第２要素復号器に結合されたターボインターリーバにも供給される  ３０６。ターボインターリーバは、（ａ）値π(s)を持つ置換ベクトルを生成するように、ここで 1 ≦ s ≦ Nturbo であり、Nturbo はバイナリデータのブロック長に対応する整数である ３０８、および（ｂ）置換ベクトルの値π(s)にしたがってバイナリデータの順序を再配置するように ３１０、および（ｃ）再配置されたバイナリデータを第２要素符号器に供給するように ３１２、構成され得る。再配置されたバイナリデータは、第２要素符号器において１以上の第２の出力を生成するように処理される ３１４。第１の出力および第２の出力は、搬送信号にマップされる ３１６。ターボインターリーバは、さらに（ａ）値πi(j)を持つk1 x k2 置換行列を生成するように、ここで、 1 ≦ i ≦ k1 かつ  0 ≦ j ≦ k2-1 かつ k1 x k2 = Nturbo である、３１８、および（ｂ）置換行列を置換ベクトル変換するように ３２０、構成されてもよい。
【００３０】
図４は、インターリーバの一実施例のブロック図を示す。インターリーバ４０２は、バイナリデータストリームを受信する入力インターフェース４０４、入力インターフェース４０４に通信可能に結合されているデータサンプラー４０８、およびデータサンプラー４０８に通信可能に結合されている処理ユニット４１０を含んでいる。データサンプラー４０８は、バイナリデータをサンプルおよび分割して入力ブロックに入れるように構成されている。順番に、処理ユニット４１０は、複数の予め定められた置換方程式にしたがって、入力ブロックにおけるバイナリデータの順序を再配置し、そして再配置したバイナリデータを持つ出力ブロックを提供するように、データサンプラー４０８に通信可能に結合される。処理ユニット４１０は、値πi(j)を持つ k1 x k2 置換行列を生成することができる。ここで、 1 ≦ i ≦ k1 かつ 0 ≦ j ≦ k2-1、 および k1 x k2 = Nturbo であり、ここで、Nturboは、バイナリデータのブロック長に対応する整数である。複数の予め定められた置換方程式は、値πi(j)の置換行例を定義することができる。処理ユニット４１０は、置換行列を、再配置されたバイナリデータの順序を定義する置換ベクトルに変換する。
【００３１】
図５は、符号化プロセッサの一実施例のブロック図を示す。符号化プロセッサ５０２は、バイナリデータストリーム５０６を受信する入力インターフェース５０４および処理回路５０８を含む。処理回路５０８は、バイナリデータストリーム５０６を入力ブロックに分割し、予め定められた置換値にしたがって入力ブロックのバイナリデータの順序を再配置し、そして、再配置したバイナリデータを持つ出力ブロックを提供するように構成され得る。処理回路は、値πi(j)を持つ、k1 x k2 置換行列を生成することができる。ここで、 1 ≦ i ≦ k1 かつ 0 ≦ j ≦ k2-1 そして、k1 x k2 = Nturbo であり、Nturbo は入力ブロック長に対応する整数である。複数の予め定められた置換方程式は、置換行例の値πi(j)を定義する。処理ユニット５０８は、置換行列を、再配置されたバイナリデータの順序を定義する置換ベクトルに変換する。
【００３２】
図６は、復号器の一実施例のブロック図を示す。復号器６０２は、第１の信号６０６を受信するための入力インターフェース６０４および第１の信号６０６を処理するための処理ユニット６０８を含む。処理ユニット６０８は、第１の組のシンボルが予め定められた１組の置換方程式にしたがってブロックインターリーブされたものであり、第１の信号６０６における第２の組のシンボルのインターリーブされた版であるところの、第１の信号６０６における第１の組のシンボルを見分けることにより第１の信号６０６を復号するように構成され得る。
【００３３】
図１、２、４、５および／または６に示された１以上のコンポーネントおよび機能は、本発明から逸脱することなしに、再配列および／または結合されて単一のコンポーネントにされ、または、いくつかのコンポーネントで実現されてもよい。また、付加的な要素またはコンポーネントが、本発明から逸脱することなしに、加えられてもよい。
【００３４】
図７は、ターボ符号の一実施例にしたがって、インターリーバを動作させる方法を示す。受信されたバイナリデータストリームn1, n2, n3 ... nLは、Nturboビット長のデータブロックとして配置される ７０２。各データブロックは、それから、k1 x k2 置換行列として再配置される ７０４。ここで、k1 は、前記行列における行の数を表し、k2 は、列の数を表す。前記行列の各行 i （ここで、 1 ≦ i ≦ k1 )については、置換の数πi(j) が各列 j （ここで 0 ≦ j ≦ k2-1 ）について計算される ７０６。k1 x k2 行列における置換の数πi(j)は、読み出され、または変換されて置換ベクトルπ(s) （ 1 ≦ s ≦ Nturbo ）になる ７０８。一実施例によるものであることに注意すべきであるが、置換の数πi(j) は、事前に計算され、保存され、そして、それらがデータストリームに適用されるときには、引き出されようにしてもよい。つまり、置換の数πi(j) が、データストリームが処理されると同時に決定されることは必要ではない。
【００３５】
図８は、ターボインターリーバの種々の情報ブロック長 Nturbo について、置換パラメータ k1 および k2 の値を示す。つまり、ブロック長 512, 1024, 2048, 3072, および 4096 について、列 k2 の数は、それぞれ、64, 128, 256, 384, および 512 であるが、行 k1 の数は、8 が選択され得る。
【００３６】
各行i （ここで 1 ≦ i ≦ k1 ）の置換の数πi(j)については、各列ｊ（ここで 0 ≦ j ≦ k2-1 ）について計算される。一実施例は、置換行列の８つの行の各々について、以下の置換方程式を提供する。
【００３７】
1st row: π1(j) = k1* [(p2 * j) mod k2] + 4
2nd row: π2(j) = k1* [(p2 * j + c2) mod k2] + 3
3rd row: π3(j) = k1* [(p1 * j) mod k2] +2
4th row: π4(j) = k1* [(p1 * j + c1) mod k2] +1
5th row: π5(j) = k1* [(p4 * j) mod k2] + 8
6th row: π6(j) = k1* [(p4 * j + c4) mod k2] + 7
7th row: π7(j) = k1* [(p3 * j) mod k2] + 6
8th row: π8(j) = k1* [(p3 * j + c3) mod k2] + 5 
図９は、ターボインターリーバの特定の情報ブロック長について、パラメータp1, p2, p3, p4, および c1, c2, c3, c4の典型的なセットを示す表である。特別な置換方程式（上記の）、パラメータk1 および k2（図８）、および、素数p1, p2, p3, p4, および c1, c2, c3, c4 の値と組み合わせ(図９）は、最適な距離スペクトル、および改善されたターボ符号の性能を提供するように経験的に決定された。置換πi(j) を使用して、入力ビットまたはシンボル（例、n1, n2, n3 ... nL）の順序およびシーケンスは、インターリーバにより、再配置される。このことは、第２要素符号器２０６が、第１要素符号器２０２とは異なった順序またはシーケンスで、入力ビットまたはシンボル（例、n1, n2, n3 ... nL）を受信することを保証する。
【００３８】
置換の数πi(j)（1 ≦ i ≦ k1 、 0 ≦ j ≦ k2-1 ）は、k1 x k2 行列において再編成される。図１０は、置換の数が、行 k1 と列 k2 のそれぞれにしたがい、k1 x k2 行列１０００において、どのように編成されるのかの一例を示す。
【００３９】
図１０に示されている置換の数πi(j)は、置換ベクトルπ(s)（ 1 ≦ s ≦ Nturbo ）に読み出される。図１１は、置換ベクトルを形成するために置換の数１０００が読み出される典型的な順序を示す。この例によれば、行列１１００における置換の数πi(j)が、破線で示されたシーケンスで読み出され、ベクトルπ(s)（ 1 ≦ s ≦ Nturbo ）になる。位置１１０２における置換の数で始まり、置換の数は、二つの行１１０４および１１０６から、左から右へ取られ、それから次の二つの行１１０８および１１１０において、左から右へ、そして、最後の置換の数１１１２まで同様に続く。他の実施例において、置換の数が行列からベクトルへと読み出されるシーケンスは、異なっていてもよい。
【００４０】
図１２は、ターボ符号器１２００の一実施例において、典型的なインターリーバによって、入力ビットの順序がどのように再配置されるのかを示している。置換ベクトルπ(s) （1 ≦ s ≦ Nturbo)は、ターボインターリーバによって出力されたｓ番目のビットが、ターボインターリーバへ入力された入力情報ブロックのπ(s)番目のビットであるごとくのものである。つまり、置換ベクトルは、ビットの再配置の順番を規定している。このように、ブロックインターリーバは、送信された冗長なデータの距離スペクトルを改善するために入力ビットの順序を再配置する。
【００４１】
ターボ符号化されたデータ信号を復号するために、受信機において逆の処理が実行され、搬送信号が分解され、そして、送信情報が抽出される。つまり、逆の置換ベクトルが決定され、そして受信機において適用され、元のビット・シーケンスが再び得られる。
【００４２】
図１３は、従来の高データ速度（HDR）のターボ符号と比較して、前記ターボコード（New Code)の性能を示すグラフである。この例は、ターボ復号器において８回の復号繰り返しによる１０２４ビット／フレームの伝送を示す。レート（rate）１／３のＱＰＳＫの伝送に関して、改善されたターボ符号の線１３０２は、同一の信号対雑音比（Ｅｂ／ＮＯ）における、従来のターボ符号の線１３０４よりも低いフレーム誤り率（ＦＥＲ）を示している。例えば、改善されたターボ符号の線１３０２は、同一の信号対雑音比１．４ｄＢにおいて、約２x１０-4のＦＥＲを持つ従来のターボ符号の線１３０４では達成することができない５x１０-7というＦＥＲを示す。同様に、レート２／３のＱＰＳＫの伝送に関して、同一の信号対雑音比３ｄＢにおいて、従来のターボ符号の線１３０８が２ｘ１０-4のＦＥＲを持つのに対して、改善されたターボ符号の線１３０６は、３ｘ１０-6というＦＥＲを示す。レート１／２の８ＰＳＫの伝送に関して、同一の信号対雑音比３．８ｄＢにおいて、従来のターボ符号の線１３１２が４ｘ１０-5のＦＥＲを持つのに対して、改善されたターボ符号の線１３１０は、４ｘ１０-7というＦＥＲを示す。同様に、レート１／３の１６ＱＡＭの伝送に関して、同一の信号対雑音比４．６ｄＢにおいて、従来のターボ符号線の１３１６が２ｘ１０-5のＦＥＲを持つのに対して、改善されたターボ符号の線１３１４は、１ｘ１０-6というＦＥＲを示す。このように、本発明の改善されたターボ符号は、従来技術よりもはるかに低い誤りフロアを提供する。これは、低フレーム誤り率を必要とする応用のための実際的なターボ符号化の体系を提供する。
【００４３】
上述の実施例は、単なる例にすぎないものであり、かつ本発明を制限するものと解釈されないことに注意すべきである。実施例の記述は、実例を説明することを意図するものであり、特許請求の範囲の及ぶ範囲を制限することを意図していない。そういうものとして、本教示は他のタイプの装置に容易に適用可能であり、そして、多数の、選択肢、修正形態、および変形形態は当業者にとって明らかであろう。
【図面の簡単な説明】
【００４４】
【図１】ターボ符号器を具備したディジタル通信システムを示す。
【図２】ターボ符号器の一実施例のブロック図を示す。
【図３】ターボ符号器におけるバイナリ情報の符号化方法を示す。
【図４】ターボ符号の一実施例にしたがってインターリーバを動作させる方法を示す。
【図５】符号化プロセッサの一実施例についてブロック図を示す。
【図６】復号器の一実施例についてブロック図を示す。
【図７】ターボ符号の一実施例にしたがってインターリーバを動作させる方法を示す。
【図８】典型的なターボインターリーバの種々の情報ブロック長 Nturbo について、置換パラメータk1およびk2の値を示す。
【図９】ターボインターリーバの特定の情報ブロック長について、パラメータp1, p2, p3, p4, および c1, c2, c3, c4の典型的なセットを示す表である。
【図１０】ターボインターリーバにおいて、置換の数πi(j) が、どのようにk1 x k2行列において準備されるのかの一例を示す。
【図１１】置換ベクトルを形成するために置換の数が読み出される典型的な順序を示す。
【図１２】ターボ符号器の一実施例において、典型的なインターリーバによって、入力ビットの順序がどのように再配置されるのかを示す。
【図１３】従来の高データ速度(high data rate)（ＨＤＲ）のターボ符号と比較して、本発明のターボ符号の性能を示すグラフである。
【符号の説明】
【００４５】
１０２・・・データソース、１０４・・・符号器、１０６・・・復号器、１０８・・・送信先、２０２・・・第１要素符号器、２０４・・・インターリーバ、２０６・・・第２要素符号器、２０８・・・マッパー、２１０・・・バイナリデータストリーム
【図１】
2009512353.tif 000003
【図２】
2009512353.tif 000004
【図３】
2009512353.tif 000005
【図４】
2009512353.tif 000006
【図５】
2009512353.tif 000007
【図６】
2009512353.tif 000008
【図７】
2009512353.tif 000009
【図８】
2009512353.tif 000010
【図９】
2009512353.tif 000011
【図１０】
2009512353.tif 000012
【図１１】
2009512353.tif 000013
【図１２】
2009512353.tif 000014
【図１３】
2009512353.tif 000015
【国際調査報告】
2009512353.tif 000016
2009512353.tif 000017
2009512353.tif 000018