(57)【特許請求の範囲】
【請求項１】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく符号化方法であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成工程と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする符号化方法。
【請求項２】
前記置換シーケンスaij*はモジュロ (xn+1)のaij*(x)=ai*(xeij)に等しい多項式表現を有し、ここで、ｎは前記整数Mと前記整数N0との積であり、eijはnと素である素数であり、cijはaij*(x)をgij(x)で除したときの商であり、多項式gij(x)は、モジュロ(xN0−1)多項式gi(xeij)を含む長さN0の最小の巡回符号の生成多項式であることを特徴とする請求項１に記載の符号化方法。
【請求項３】
前記第１の生成工程において、前記指数eijの全ての値は前記インデックスｊと同じ値を有することを特徴とする請求項１に記載の符号化方法。
【請求項４】
前記第１の生成工程において、前記指数eijの全ての値は２の冪数に等しいことを特徴とする請求項２または３に記載の符号化方法。
【請求項５】
シーケンス{ai}を送出し、その一方他のシーケンスのデータのサブセットを送出することを特徴とする請求項１乃至４のいずれかに記載の符号化方法。
【請求項６】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく符号化装置であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成手段と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする符号化装置。
【請求項７】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく復号化方法であって、
除数多項式gij(x)を用いてＫ個のシンボルシーケンスの並列ターボ復号化を行う復号化工程と、
前記シーケンスaiの各々について、M1個の置換操作を行う置換工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記M1個の置換操作は、少なくとも２つは同一ではなく、各置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであることを特徴とする復号化方法。
【請求項８】
前記並列ターボ復号化の操作は、K×M1個の置換シーケンスaij*, (i = 1, ... ,K; j = 1, ... ,M1)を生成するという置換操作を有し、各シーケンスaij*はモジュロ (xn+1)のaij*(x)=ai*(xeij)に等しい多項式表現を有し、ここで、ｎは前記整数Mと前記整数N0との積であり、eijはnと素である素数であり、cijはaij*(x)をgij(x)で除したときの商であり、多項式gij(x)は、モジュロ(xN0−1)多項式gi(xeij)を含む長さN0の最小の巡回符号の生成多項式であり、少なくとも１つの置換シーケンスaij*は対応するaiとは異なることを特徴とする請求項７に記載の復号化方法。
【請求項９】
前記置換操作において、前記指数eijの全ての値は前記インデックスｊと同じ値を有することを特徴とする請求項８に記載の復号化方法。
【請求項１０】
前記置換操作において、前記指数eijの全ての値は２の冪数に等しいことを特徴とする請求項８または９に記載の復号化方法。
【請求項１１】
シーケンス{ai}を送出し、その一方他のシーケンスのデータのサブセットを送出することを特徴とする請求項７乃至１０のいずれかに記載の復号化方法。
【請求項１２】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく置換方法であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成工程と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする置換方法。
【請求項１３】
物理量を表す二値データからなり、除数多項式g(x)により割り切れる多項式a(x)により表現されるシーケンス{a}を、前記多項式g(x)により割り切れる多項式a*(x)により表現される置換シーケンス{a*}に置換する置換方法であって、
ある置換集合の少なくとも１つの置換処理を実行する置換工程を有し、
前記置換集合は、前記シーケンス{a}の二値データがN0列M行のテーブル内に配列されるように表現すると、長さN0で生成多項式g(x)を有するような二値巡回符号の自己同型写像において、前記テーブルのN0個の列の少なくとも２列を互いに置き換える置換処理と、１つの同じ列内の少なくとも２つのデータ項目を互いに置き換える置換処理とを含むことを特徴とする置換方法。
【請求項１４】
前記シーケンス{a}が、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを有することを特徴とする請求項１３に記載の置換方法。
【請求項１５】
前記置換工程が、前記置換処理により得られたシーケンスに対応する多項式を、前記生成多項式で割り切れる多項式に変換するように、前記テーブルの列を更に置き換えることを特徴とする請求項１３に記載の置換方法。
【請求項１６】
前記置換処理は、ｅがモジュロM・N0の２の冪乗であり、Mが奇数の場合に、
a*(x) = a(xe), modulo xM・N0−１
により実行されることを特徴とする請求項１３乃至１５のいずれかに記載の置換方法。
【請求項１７】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく復号化装置であって、
除数多項式gij(x)を用いてＫ個のシンボルシーケンスの並列ターボ復号化を行う復号化手段と、
前記シーケンスaiの各々について、M1個の置換操作を行う置換手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記M1個の置換操作は、少なくとも２つは同一ではなく、各置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであることを特徴とする復号化装置。
【請求項１８】
２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づくインターレーサであって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成手段と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とするインターレーサ。
【請求項１９】
物理量を表す二値データからなり、除数多項式g(x)により割り切れる多項式a(x)により表現されるシーケンス{a}を、前記多項式g(x)により割り切れる多項式a*(x)により表現される置換シーケンス{a*}に置換するインターレーサであって、
ある置換集合の少なくとも１つの置換処理を実行する置換手段を有し、
前記置換集合は、前記シーケンス{a}の二値データがN0列M行のテーブル内に配列されるように表現すると、長さN0で生成多項式g(x)を有するような二値巡回符号の自己同型写像において、前記テーブルのN0個の列の少なくとも２列を互いに置き換える置換処理と、１つの同じ列内の少なくとも２つのデータ項目を互いに置き換える置換処理とを含むことを特徴とするインターレーサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターレーサ、符号化装置、置換(permutation)方法、符号化法方、復号化装置、そして、それらを実現する方法及びシステムに関する。
【０００２】
【従来の技術】
本発明は、また、物理量を表すデータの符号化に、データを物理量を変調することのできるデータ形式で符号化に、データ変調信号の復号化に、物理量を表すデータの復号化に適用する。これらのデータは例えば、画像、音、コンピュータデータ、電気的量や記憶データを表すことができる。
【０００３】
本発明は、畳み込み符号(convolutional codes)の技術分野にその適応分野を見出す。後者が繰り返し復号化を実現するのに用いられるときは、その符号化器が置換装置を含むときにこの符号は大いに改良される。この場合に、その符号は通常ターボ符号(turbocodes)と呼ばれ、その対応する繰り返し符号化器はターボ符号化器(turbocoders)と呼ばれる。
【０００４】
この主題について、基準書として役立つ文献は、ICC 93（１９９３年）会議報告と共に発刊された「Near Shannon limit error-correcting coding and decoding: turbocodes」（C. BERROU, A. GLAVIEUX and P. THITIMAJSHIMA著、１０６４〜１０７０）、または、「Near Optimum error-correcting coding and decoding: turbocodes」（C. BERROU, and A. GLAVIEUX著、IEEE Transaction on Communication, Vol. COM-44, 1261-1271頁、１９９６年１０月）がある。
【０００５】
しかしながら、置換装置の定式化は完全にマスタしたとはとても言い難い。一般的に、この装置は、次々と行が書き込まれ次々と列が読み取られるような正方形または矩形のマトリクスを用いる。このような行列は通常非常に大型であり、例えば、２５６×２５６の大きさとなる。
【０００６】
"TDA Progress Report"（１９９５年８月１５日の第42122号）と共に、文献「非一様置換と一様置換とを用いたターボ符号用の重み分布」("Weight distributions for turbo-codes using random and nonrandom permutations")（ジェット推進研究所発行）における他の方法によると、 DOLINARと DIVSALARの両氏は、０からk-1までのk個の情報位置を番号付けすることにより、位置iに置かれた二値情報を位置e i + f（ここで、eとfは「よく選択」された値）に移動させる置換法を考察している。
【０００７】
この文献で、両氏は、ｋが２の羃乗であるような例のみを説明し、更に、そのターボ符号化器(3, 1)により生成された符号化シーケンスを生成するのに用いられる置換装置の選択と初等畳込符号化装置(elementary convolutional coders)(2,1)の選択とによる相互的な影響について考察していない。
【０００８】
対応するターボ符号を評価することは、同符号を異なる値のS/N比を有する伝送チャンネル上で使用することをシミュレートし、上記二値値についての所定の値の誤差確率が得られるような、S/N 比の最小値を計測する工程からなる。
【０００９】
しかしながら、計測ツールとしてシミュレーションを用いることはいくつかの問題に至る。
【００１０】
例えば、上述のk= 65536 (= 256×256)を有する置換装置が選ばれ、誤差確率を10-5に等しくなるように選んで、この装置を用いてターボ符号の能力をシュミレーションする。結果として、256×256のブロック当たりの上記二値値についての誤差平均値は１に近くなるようになる。しかし、二値情報項目の各々が同じ誤差確率を有するか否かは判らない。この誤差確率は、当該置換装置における「不運」(unlucky)な位置を有する二値値についてかなり高いものとなり、この確率は、より「幸運」(lucky)な位置に対してずっと小さなものとなる。
【００１１】
【発明が解決しようとする問題点】
この問題を解消する可能性ある方法は、置換装置と２つの畳込符号化器とを調和的且つ連合的に設計して、復号化後の上記二値値上における、その置換装置内の二値情報の位置の関数としての誤差レートの合理的な非均一性を保証することである。
【００１２】
もう１つの問題は、そのような置換装置を特定するための代数的ツールが無いことに関連する。全ての置換装置の集合を表す性能を有するような置換装置を選択するための手段を持つことは役立つものとなろう。
【００１３】
本発明は、主に、
【００１４】
0004124893.tif 000002
【００１５】
で表される二値シンボルシーケンス（以下、「情報シーケンス」と呼ぶ）であって、３つ組の二値シーケンス、
{v} = ({a}, {b}, {c})
により表される情報の伝送に関わるものである。ここで、上記{a}, {b}, {c}の各々は、それ自体でシーケンス{u}を表す。
本明細書の後半では、シーケンス{u}を表現するために、
【００１６】
0004124893.tif 000003
【００１７】
という形式が、以下の対応する多項式形式
u(x) = uox0 + u1x1 +_+ uk-1xk-1
とは無関係に用いられる。
【００１８】
これを実現するのに、いくつかの疑問が呈せられている。
【００１９】
I/  どのようにしてg(x), h1(x)やh2(x) を選択すればよいのか?
【００２０】
Il/   シーケンス{a*}を生成するシーケンス{a}の各項の順列をどのように選択するのか？提案されてきている、３例のインターレーサの例、シーケンス{a*}を形成するためのシーケンス{a}の項を置き換える演算器のインタレーサを以下に説明する。
【００２１】
A)  第１の例では、{a}の各項を矩形テーブル状に配置した後に、連続的に行毎に左から右に向かって、シーケンス{a*}が各項を連続する列毎にこのテーブル内に取り込み、そして、各列について、最上行から最下降列まで。たとえば、６つの項からなるシーケンスであって、２行×３列のテーブルを用いるときは、インタレーサはシーケンス{a} = (a0, a1,, a2, a3, a4, a5)をシーケンス{a*} = (a0, a3, a1, a4, a2, a5)に変換する。
【００２２】
B)   第２の例では、シーケンス{a*}の第ｉ項a*i (i = 0, 1, 2, ...)を、シーケンス{a}の項ajとなるように選択する。ここで、s，tを整数とするとj=s.i + tであるｊはシーケンス{a}の項の数でモジュロ計算される。例えば、シーケンス{a}の項の数が６で、s = 5，t = 3とすると、このインターレーサはシーケンス{a} = (a0, a1,, a2, a3, a4, a5)を{a*} = (a3, a2, a1, a0, a5, a4)に変換する。
【００２３】
C)  第３の例では、置き換えはランダムに選択される。
【００２４】
III/  b(x)を定義する除算が余りを持たないのをいかにして防ぐのか？
【００２５】
IV/  c(x)を定義する除算が余りを持つのをいかにして防ぐのか？
【００２６】
このうちの最後の２つの質問に答えることは、ターボコードに関する文献でしばしばいわれている問題、即ち、{b}と{c}を定義する初等畳込符号化装置(elementary convolutional coders)の「零回帰状態」("return to the zero state")についての問題に答えることに等しい。ターボ符号化器は、初等回帰符号化器(elementary recursive coders)を２つ有し、そのうちの第２のものはシーケンス{a}の置換{a*}を用いるので、情報シーケンスu(x)を表すa(x)とa*(x)の多項式は共にg(x)で割り切れることが保証されることが望ましい。a(x)についてこの可除性を保証することは単純である、何故ならu(x)からa(x)を構成することで十分であり、その一方で、u(x)をg(x)の次数に等しい数の穴埋めシンボルで補充するものであり、その唯一の機能はa(x)からb(x)を生成するのに役立つ除算で剰余がでないようにすることである。
【００２７】
他方、a*(x)のg(x)による可除性と、かように特定されたターボ符号に対して良好なエラー訂正性能とを保証するような、a(x)からa*(x)を求める置換を選択することは、困難である。
【００２８】
この問題は、u(x)を構成する異なるビットを復号化した後の誤差確率の不均衡を大きくする。
【００２９】
雑誌"Electronics Letters"のVol. 31の第１号（5 January 1995, Messrs. BARBULESCU and PIETROBON著）に見える論文では、インターレーサを、シーケンス{a}の各項を、多項式g(x)の次数に１だけ増やした数に等しい数のシーケンスを順に且つ循環的に並べることにより、描くことができること、そして、そのような場合には、上記のように形成されたシーケンスの各々の内部置換がシーケンスb(x)を定義する除算による剰余と、シーケンスc(x)を定義する除算による剰余とを等しくさせる元となると開示している。
【００３０】
しかし、その論文で述べられていることとは反対に、上記見解は多項式g(x)が
【００３１】
0004124893.tif 000004
【００３２】
の形式の時だけ正しい。
C. BERROU, S. EVANOとG. BATTAIL共著の論文"Turbo-block-codes"（本論文はInstitute of Technology of Lund (Sweden) (Department of Applied Electronics)によって開催されたセミナー "Turbo Coding"の報告と共に１９９６年８月に発行された）は、シーケンス{u}の各項を、正の最低次数がxn - 1（これはg(x)によって割り切れる）というタイプの多項式の次数N0の倍数に等しい数の列において巡回的に並べることにより、上記のように形成した上記列の各々の内的置換がシーケンス{b}を規定する除算の剰余とシーケンス{c}を規定する除算剰余との和がそれらのシーケンスの連鎖が{g}により割り切れるように零となることを意味する。
それ故に、この文献は、前述のものと同じように、インターレーサの選択肢を、シーケンス{a}の各項のサブ集合に内部置換することにより、それらに独立して働く特定の形態に限定することとなる。しかしながら、a(x)とa*(x)とが各々g(x)により割り切れることを保証するものではない。唯一保証されることは、２つのシーケンスの{a}と{a*}の端と端をつないでできた連鎖({a}, {a*})を表す多項式のg(x)で割り切れることである。
復号化器の性能にロスの可能性がでてくる、何故なら、復号化器は、符号化器が{b}の演算を終え{c}の演算を開始することをマークする時点で有する状態を知らされないからである。
【００３３】
上記論文のどれもインターレーサの効果的な選択を提案していない。
【００３４】
本発明は、上記従来技術の欠点を、シーケンス{c}の最後で零への回帰をシーケンス{b}が零に回帰する時に保証するインターレーサのファミリーを提案すると共に、上記の論文などに提案されたインターレーサよりも広い選択肢の幅を提案するものである。
【００３５】
【課題を解決するための手段】
本発明の目的を達成するために、例えば、本発明の符号化方法は以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく符号化方法であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成工程と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする。
【００４９】
上記において、シーケンス{a}の二値データがN0列×M行のテーブル内に分類されるという表記では、上記全ての置換から取り出した連続した置換が導入されてきた。この全ての置換とは、長さN0で生成多項式g(x)を有する二値巡回符号の自己同型写像（上記テーブルのN0列の少なくとも２つの列の互いの置換）や、同じ列内のデータにのみ働く置換であってそのデータの少なくとも２つを互いに置き換えるものである。
【００５０】
発明者たちは、これらの連続置換の全てが、そしてこれらだけが、g(x)による除算がゼロ剰余となるような多項式a(x)に対して、置換された多項式a*(x)が同じ性質を有することを保証するものであることを見出した。
【００５１】
gijの選択を支配する条件の研究として、F.J. MACWILLIAMSとMr N.J.A. SLOANEとの共著の "The theory of error-correcting codes" （North-Holland in 1977発行、その７版は１９９２年に発行）を参照するとよい。
【００５２】
本発明でなされている全ての選択は、上記２つの文献に開示されているインターレーサを含むものである。かくして、信号／ノイズの比率の関数としてのエラー率で表された性能は、ターボ符号化器やターボ逆符号化器の構成を複雑化することなく改良される。
【００５３】
本発明の目的を達成するために、例えば、本発明の符号化装置は以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく符号化装置であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成手段と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする。
【００５４】
本発明の目的を達成するために、例えば、本発明の復号化方法は以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく復号化方法であって、
除数多項式gij(x)を用いてＫ個のシンボルシーケンスの並列ターボ復号化を行う復号化工程と、
前記シーケンスaiの各々について、M1個の置換操作を行う置換工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記M1個の置換操作は、少なくとも２つは同一ではなく、各置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであることを特徴とする。
【００５５】
本発明の目的を達成するために、例えば、本発明の置換方法は以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく置換方法であって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成工程と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成工程とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする。
【００５６】
本発明の目的を達成するために、例えば、本発明の置換方法は以下の構成を備える。
即ち、物理量を表す二値データからなり、除数多項式g(x)により割り切れる多項式a(x)により表現されるシーケンス{a}を、前記多項式g(x)により割り切れる多項式a*(x)により表現される置換シーケンス{a*}に置換する置換方法であって、
ある置換集合の少なくとも１つの置換処理を実行する置換工程を有し、
前記置換集合は、前記シーケンス{a}の二値データがN0列M行のテーブル内に配列されるように表現すると、長さN0で生成多項式g(x)を有するような二値巡回符号の自己同型写像において、前記テーブルのN0個の列の少なくとも２列を互いに置き換える置換処理と、１つの同じ列内の少なくとも２つのデータ項目を互いに置き換える置換処理とを含むことを特徴とする。
【００５７】
本発明の目的を達成するために、例えば、本発明の復号化装置は以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づく復号化装置であって、
除数多項式gij(x)を用いてＫ個のシンボルシーケンスの並列ターボ復号化を行う復号化手段と、
前記シーケンスaiの各々について、M1個の置換操作を行う置換手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記M1個の置換操作は、少なくとも２つは同一ではなく、各置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであることを特徴とする。
【００５８】
本発明の目的を達成するために、例えば、本発明のインターレーサは以下の構成を備える。
即ち、２以上の整数M1と、物理量を表す二値データからなるＫ（Ｋは１以上）個のシーケンスai (i=1, ... ,K)とに基づくインターレーサであって、
K×M1個の置換シーケンスaij*, (i = 1,... ,K; j = 1, ... ,M1)を生成する第１の生成手段と、
多項式表記がΣfij(x) cij(x) (j=1, ... ,M1)に等しいM1個の冗長シーケンスを生成する第２の生成手段とを有し、
前記シーケンスaiの各々は、多項式xN0−1が多項式gi(x)の各々によって割り切れるような最小の整数N0と整数Ｍとの積に等しい個数の二値データを含み、多項式表記ai(x)が多項式gi(x)で割り切れるものであり、
前記置換シーケンスaij*の各々は、対応するシーケンスaiを置換することによって得られ、該置換は、各シーケンスaiの二値データをN0列M行のテーブルに行毎に書き込んだ表現における任意回数の基本置換の結果であり、
前記基本置換の各々は、前記テーブルのN0個の列に作用して、gi(x)を生成多項式とする長さN0の巡回符号を、gij(x)を生成多項式とする同等な巡回符号に変換する置換か、あるいは、前記テーブルのある列内のシンボルの置換かのいずれかであり、
前記置換シーケンスaij*は、多項式表記aij*(x)が多項式の積cij(x)gij(x)で表わすことができ、少なくとも１つの置換シーケンスaij*は対応するシーケンスaiとは異なるものであり、
前記多項式fij(x)の各々の次数は、同一のインデックスｉとｊを有するgij(x)の次数以下であることを特徴とする。
【００５９】
本発明の目的を達成するために、例えば、本発明のインターレーサは以下の構成を備える。
即ち、物理量を表す二値データからなり、除数多項式g(x)により割り切れる多項式a(x)により表現されるシーケンス{a}を、前記多項式g(x)により割り切れる多項式a*(x)により表現される置換シーケンス{a*}に置換するインターレーサであって、
ある置換集合の少なくとも１つの置換処理を実行する置換手段を有し、
前記置換集合は、前記シーケンス{a}の二値データがN0列M行のテーブル内に配列されるように表現すると、長さN0で生成多項式g(x)を有するような二値巡回符号の自己同型写像において、前記テーブルのN0個の列の少なくとも２列を互いに置き換える置換処理と、１つの同じ列内の少なくとも２つのデータ項目を互いに置き換える置換処理とを含むことを特徴とする。
【０１６６】
【発明を実施するための形態】
以下の説明では、上記第１の制御シーケンスは、本発明の範囲は一般的なケースにまで拡張するものの、インタレースしていない情報シーケンスから常に得ることができる。
【０１６７】
本発明の実施形態の以下の説明は２つに分割される。１つは単一シーケンスのシンボルが符号化される場合であり、２番目は２つのシーケンスのシンボルが同時に符号化される場合である。
【０１６８】
〈第１実施形態〉
続く説明では、用語「データ」とは、情報を表すシンボルと付加的もしくは冗長なシンボルの双方に与えられるものである。
【０１６９】
特定の実施形態の説明を行う前に、本実施形態の数学的な基礎を以下に与える。
【０１７０】
本発明では、g(x), h1(x) やh2(x)は前もって定められており、除算形式b(x) = a(x).h1(x)/g(x)とc(x) = a*(x).h2(x)/g(x)とでそれぞれ定義されたシーケンスbとcとは余りを有さないことが好ましいとされている。
【０１７１】
この目的に対して、
【０１７２】
0004124893.tif 000005
【０１７３】
をｍ次の多項式とすると、g(x)がxN0 - 1を除するような最小値N0を求めることができる。このような数が存在することが知られ、例えば、
g(x) = 1 +x +x3, N0= 7
【０１７４】
である。
任意の数Ｍを選び、M・N0に等しい長さのシーケンス{a}を選ぶ。この長さは、M・N0−｛g(x)の次数｝に等しいようなシーケンス{a}に組み込まれたシーケンス{u}の長さを決定する
【０１７５】
かくして、上記シーケンス{a}を形成する目的で、送信すべきｋ個の二値データにより形成されたシーケンス{u}に併置されて、多項式g(x)の次数に等しい付加的な複数の二値データがあり、この付加されたデータはa(x)のg(x)による除算において剰余が発生しないことを保証するものである。
【０１７６】
この実施形態で行われる除算は、a(x)の昇順の冪級数の係数に対するモジュロ２演算である。
【０１７７】
例示として、シーケンス{u}がシーケンス(1, 0, 0, 1, 0, 0)であり、シーケンス{g}がシーケンス(1, 1, 0, 1)であるならば、上記除算は下記のように記述される。
【０１７８】
【表１】
0004124893.tif 000006
かくして、シーケンス{u}= (1, 0, 0, 1, 0, 0)を、上記付加により形成されたシーケンス{a}= (1, 0, 0, 1, 0, 0, 0, 0, 1)（このシーケンスの第１の二値データは全てシーケンス{u}の二値データでである）で取り替えることにより、多項式a(x)がシーケンス{g} = (1, 1, 0, 1)に結びつけられた多項式g(x)により割り切れるか否か、結果的には、a(x)・h1(x)がg(x)により割り切れるか否かが、シーケンス{h1}が多項式h1(x)（この多項式はシーケンス{b}の定義を b(x) = a(x).h1(x)/g(x)により与える）に関連づけられようと関連づけられまいとに関わらず、保証される。
【０１７９】
シーケンスa*(x)（これは、置換後の、シーケンス{a}と同じ二値データを有するが異なる順序で並んでいる）を決定するために、その表現が次のように与えられるような１つのインターレーサが選択される。即ち、シーケンス{a}の二値データはN0列Ｍ行のテーブル内に配置されることとして、これらのデータに対して、ある置換集合の少なくとも１つの置換が行われる。この置換集合は、一方で、生成多項式g(x)（このg(x)は前記テーブルのN0列の少なくとも２つを互いに交換する）を有する、長さN0の二値巡回符号の自己同型写像 (automorphisms)を含み、他方で、全く同一列内のデータにのみ作用し前記のデータ項目のうちの少なくとも２つを互いに交換する置換と、この集合内の１つ以上のみの置換とを含む。
【０１８０】
これは、このように表現された置換のみが、g(x)による除算が剰余を生まないようないかなる多項式a(x)について、その置換された多項式a(x)が剰余を生まないようなg(x)による除算を有することを保証することを、本発明の発明者が発見したからである。
【０１８１】
引き続き、N0 = 7でg(x) = 1 + x + x3であるような例に対して次のようなものがあり得る。即ち：
【０１８２】
第１列の二値データの置換と、
【０１８３】
第３列の二値データの置換と、
【０１８４】
第２列の第４列による置換、第４列の第２列による置換、第５列の第６列による置換、第６列の第５列による置換。
【０１８５】
自己同型写像に関して、長さN0で生成多項式g(x)を有する二値巡回符号（即ち、g(x)の全ての倍数のモジュロ（xN0-1）演算）に名前Cgを与えるとすると、この符号の座標値の、あるワードから他のワードへと変換する置換が考慮される。このような性質を有する上記の座標置換集合はグループ構造を有し、Cg自己同型写像グループと呼ばれる。
【０１８６】
更なる情報として、"The theory of error-correcting codes"（F.J. MACWILLIAMS、N. J. A. SLOANE共著、North-Holland 1977年発行）を参照するとよい。
【０１８７】
これら全ての置換の中で、発明者は次のような置換を選択した。即ち、かかる置換とは、小さなファミリだけを有し、その構成要素の全てが最も効率的な置換を選択するようにテスト可能なものからなるという特徴を有する。
【０１８８】
上述したように、Mを奇数となるように選択し、 g(x)についても対応する数N0もまた奇数となるように選ぶ。２の冪級数をモジュロM・N0で記述すると、モジュロM・N0の所謂２の循環(cycle)が得られる。この循環では、いずれかの項eを選ぶと、次の置換が行われる。即ち、多項式{a}は循環後に多項式a*(x)を与える。ここで、 a*(x)はa*(x) = a(xe)と定義され、かくして、もし{a}=(a1, a2, ..., aM・N0-1)ならば、 a*の最初の二値データ項は、ｆをｅの逆数のモジュロM・N0とすると、a0となり、第２項はaf、第３項はa2fとなる。
【０１８９】
例えば、 g(x) = 1 + x + x3ムを、それ故にN0=7として、繰り返し、M=5と選ぶことにより、 M・N0 = 35が得られる。それで、この２の循環は[1, 2, 4, 8, 16, 32, 29, 23, 11, 22, 9, 18]と書くことができる。
【０１９０】
例えば、 e = 28 = 11とすると、fは16に等しくなり、シーケンスa*は二値データa0, a16, a32, a13, a29, a10等で始まる。
【０１９１】
上述した a*(x) = a(xe)（ここで、eはモジュロM・N0の２の循環内にあり、a(xe)はモジュロxM・N0-lに取られる）によって表すことのできる置換は、小さなファミリーを形成する。そのファミリーの全てのメンバーは、テストされて、最も効率的となるものが選ばれる。
【０１９２】
この選択論理は以下のようである。先ず次数ｍのg(x)が選ばれる。この選択により、N0が、g(x)が xM・N0-1を割り切ることができるように、最小の整数値とされるように決定される。次に、h1(x)とh2(x)とが任意の次数のものとして、好ましくは大きくともg(x)の次数ｍに等しいものとして選ばれる。何故なら、これら３つの多項式 g(x), h1(x), h2(x)の最高次数は復号化器の複雑さを決定する要素となるからである。それから、奇数Ｍが選択されて、モジュロM・N0の２の循環が計算される。この２の循環内の１つの要素ｅは、a(x)から、a*(x) = a(xe) modulo xM・N0-1-1を特定するように選ばれる。そして、このようにして定義されたインターレーサに関連づけられたターボ符号に対して色々なテスト操作がなされる。
【０１９３】
例えば、 g(x) = 1 + x + x3とする。この仮定は N0 = 7を前提とする。また、h1(x) = 1 + x + x2 + x3，h2(x) = 1 + x2 + x3，M = 21とすると、これからM・N0 =147 が導かれ、モジュロ１４７の２の循環、即ち、{1, 2, 4, 8, 32, 64, 128, 109, 71, 142, 137, 127, 107, 67, 134, 121, 95, 43, 86, 25, 50, 100, 53, 106, 65, 130, 113, 79, 11, 22, 44, 88, 29, 58, 116, 85, 23, 46, 92, 37, 74}を計算することが可能となる。
【０１９４】
重みがそれぞれ2, 3, 4, 5に等しいg(x)により割り切り可能な夫々の多項式a(x)を順次テストすることにより、e = 25という選択が「見込みがある」("promising")と結論できる。何故なら、重み２の多項式a(x)は重み２６以上の符号化シーケンス{v}= ({a}, {b}, {c})に対応し、重み３の多項式a(x)は重み２４以上の符号化シーケンス{v}= ({a}, {b}, {c})に対応し、重み４の多項式a(x)は重み２６以上の符号化シーケンス{v}= ({a}, {b}, {c})に対応し、重み５の多項式a(x)は重み３０以上の符号化シーケンス{v}= ({a}, {b}, {c})に対応するからである。
【０１９５】
このことは、最小距離が２４に等しいことを示しているように見える。この値は、上述のg(x)，h1(x)，h2(x)でもってN0 = 7，M = 21に対して本会時の方法に従えって得られる最良値である。
【０１９６】
もう１つの可能性ある選択は、N0 = 15を前提とするg(x) = 1 + x + x4である。そこで、h1(x) = 1 + x + x + x4，h2(x) = 1 + x3 + x4 、そしてM = 27を選ぶとする。これにより M・N0 = 405が導かれ、モジュロ４０５の２の循環、即ち、{1, 2, 4, 8,16, ..., 304, 203}（但し１０８個からなる）を得ることが可能となる。
【０１９７】
何度も除去することにより、e = 151，e = 362，e = 233が特に見込みがあると結論づけることができる。
【０１９８】
特に、発明者は、e = 151に対して、g(x)で割り切れて、2, 3, 4, 5, 6, 7に夫々等しい重みを持つ多項式a(x)をテストした。
【０１９９】
a(x)の重みをW(a(x))とすると、W({v})の対応する最小重みは次の表２に示される。
【０２００】
【表２】
0004124893.tif 000007
e = 362に対しては、同様にしてa(x)の重みをW(a(x))とすると、W({v})の対応する最小重みは次の表３に示される。
【０２０１】
【表３】
0004124893.tif 000008
本発明によれば、１において合同でなく(non-congruent )、modulo N0であるような数ｅを特に使うことができる。
【０２０２】
以下添付の図１乃至図３を参照しつつ本発明の好適な実施例を説明する。
【０２０３】
第１図は、ネットワークステーションもしくはコンピュータ符号化ステーション１０１の構成を示すブロック図である。本ステーションは、処理ボード（以下、カードと呼ぶ）１０１からなる、キーボード１１１とスクリーン１０９と外部情報源１１０と無線送信機１０６と共通に接続された入出力ポート１０３とを有する。
【０２０４】
処理カード１０１はアドレス／データバス１０２に一緒に接続された、  中央処理ユニット１００、  RAM１０４、  ROM１０５、  入出力ポート１０３とを有する。
【０２０５】
第１図に示された各要素はマイクロコンピュータ及び通信システム、更に一般的には情報処理システムの当業者によってよく知られたものである。これらの共通の要素はそれ故にここでは説明を省略する。しかしながら、次のことがいえる。即ち、
【０２０６】
情報源１１０は、例えば、インタフェース周辺装置、センサ、復調装置、外部メモリ若しくは他の情報処理システム（不図示）であって、特に、二進データからなるシーケンスの形態を有する音声、サービスメッセージ、またはマルチメディアデータを表す信号シーケンスを供給するのに適合化されたものである。  また、無線送信機１０６は、ケーブル無しチャネル上のパケット通信プロトコルを実装し、そのようなチャネル上にこれらパケットを送出する。
【０２０７】
本明細書で用いられる用語「レジスタ」は、メモリ１０４，１０５の各々において、低容量のメモリ領域（２，３の二進データ）と大容量のメモリ領域（プログラム全体を記憶できる程度の）の双方を意味する。
【０２０８】
RAM１０４は、メモリレジスタ内に、データ、変数、中間的な処理結果を記憶するもので、本明細書では、格納されるデータの名前と同じ名前を有するものとする。このRAM１９４は、特に、以下のものを格納する。即ち、
【０２０９】
レジスタ「主データ」("primary-data")：ここには、バス１０２に到着した順序で情報源１０１からの二進データが格納される。
【０２１０】
レジスタ「置換データ」("permuted-data")：ここには、バス１０２に到着した順序で、図２に関連して説明されるような置換二進データが格納される。
【０２１１】
レジスタ「N。データ」("N。-data")：ここは、レジスタ「二進データ」("binary data")内の二進データの数に対応する整数値を格納する。
【０２１２】
レジスタ「中間剰余」("intermediate-remainder") ：ここには、除算による中間的な余りを次々と格納する。
【０２１３】
レジスタ「最終剰余」("final-remainder") ：ここには、二進の補数データが格納される。
【０２１４】
レジスタ「{a}, {b}, {c}」：ここには、中央処理装置１００により決定された順序に従って、二次シーケンスの二進値が格納される。
【０２１５】
ROM１０５は、便宜上、格納するデータと同じ名前を有するレジスタ内にデータを格納するように適合されたもので、それらのレジスタは次のものを格納する。
【０２１６】
レジスタ"program"内の中央処理ユニット１００用の処理プログラム、
【０２１７】
レジスタ"{g}」内のシーケンス{g}、
【０２１８】
レジスタ"{h1}」内のシーケンス{g}、
【０２１９】
レジスタ"{h2}」内のシーケンス{h2}、
【０２２０】
レジスタ"N0」内のシーケンスN0、
【０２２１】
レジスタ"M」内の値M。そして、
【０２２２】
レジスタ""interlacer"（インターレーサ）内のそのインターレーサを定義するテーブル。
【０２２３】
中央処理ユニット１００は、図２に示されたフローチャートの制御手順を実行する。
【０２２４】
図１に示された符号化器の動作を説明する図２において、中央処理ユニット１００は、ステップ３００では、RAM１０４の上記レジスタを初期化するの初期化動作（N0データ="0"）を行い、ステップ３０１では、送信すべき二進データの受信を待ち、そのデータを受信し、RAM１０４内の"primary_data"に格納し、カウンタ"No_data"をインクリメントする。
【０２２５】
次に、ステップ３０２では、ユニット１００は、レジスタ"No_data"に格納された整数値が、積M・N0に等しいか否かを決定する。この積M・N0からg(x)の次数が減算される。MおよびN0そしてg(x)の次数ｍはROM１０５内に格納されている数値である。
【０２２６】
テスト３０２工程での結果がＮＯであるならば、ステップ３０１が繰り返される。テスト３０２の結果がＹＥＳならば、ステップ３０３で、前記二進データシーケンス（レジスタ"primary_data"領域に格納されているに関連づけられた多項式{u}の多項式g(x)による除算が実行される。この除算は、u(x)の最後の項（最高次の項）に至るまで、レジスタ"intermediate_remainder"を用いて行われる。この除算による剰余はメモリの"final_remainder"に格納される。この除算の結果は、レジスタ"final_remainder"に格納される。
【０２２７】
次に、ステップ３０４の処理では、レジスタ"final_remainder"内に格納された二進データがシーケンス{u}の最後で並べられてシーケンス{a}を形成する。例外として、多項式の最低次数に対応する二進データ項目は更に必ず"０"に等しい。このシーケンス{a}の二進データはレジスタ"{a}, {b}, {c}"に格納される。
【０２２８】
次に、ステップ３０５の処理では、ステップ３０３で行われた除算が終了されると共に、付加的データがステップ３０４の処理で付加される。そして、シーケンス{b}が終了してレジスタ{a}{b}{c}に格納される。
【０２２９】
それから、処理３０６において、シーケンス{a}の二進データがレジスタ"{a}, {b}, {c}"から次々と読み出される。その順序はROM１０５に格納されているテーブル"interlacer"によって記述されているものである。このよ、見出しから次々に得られるデータはメモリのレジスタ"permuted_data"（ROM１０４の）に格納される。
【０２３０】
次に、ステップ３０７の処理では、レジスタ"permuted_data"に格納されていた置換二値データに関連づけられた多項式a*(x)の多項式g(x)による除算が行われる。この除算はレジスタ"intermediate_remainder"を用いて行われる。この除算の結果はメモリのレジスタ"{a}, {b}, {c}"に格納されて、それはシーケンス{c}の二値データに一致する。
【０２３１】
ステップ３０８の処理において、シーケンス{b}と{c}とが、そのシーケンス{b}と{c}とに関連づけられたレジスタ"{a}, {b}, {c}"（RAM１０４に格納されている）に格納された多項式b(x)とc(x)と、多項式h1(x)と h2(x)との夫々の積を取ることによって決定される。
【０２３２】
本発明によると、メモリ要素が、h1(x)とh2(x)との積を行う前にg(x)による除算を行うことにより節約される。
【０２３３】
ステップ３０９の処理において、シーケンス{a}，{b}，{c}が、送信機１０６を用いて送出される。次に、メモリ１０４の前記レジスタが再度初期化されて、特に、カウンタ"No_data"が"０"にリセットされて、ステップ３０１が繰り返される。
【０２３４】
ここで、変形例として、ステップ３０９において、シーケンス{a}が全体として送出されるものの、１つの復習号のみ、例えばシーケンス{b}と{c}の各々の１つのデータ項目のみが送られるものが提案されてもよい。この変形例は、当業者ではpuncturingとして知られている。
【０２３５】
復号化については、多項式g(x), h1(x), h2(x)と、シーケンス{a}から置換されたシーケンス{a*}を供給するインターレーサとを知ることにより、当業者は何の困難もなく、復号化処理や誤差の補正に適合化された複合器を設計することは容易である。これは、上記のように考察されたインターレーサと、場合によっては対応する逆インターレーサ(deinterlacer)を用いることによって３つ組の({a}, {b}, {c})に影響する。
【０２３６】
この目的のために、当業者は以下のものを参照する。即ち、
【０２３７】
文献"Optimal decoding of linear codes for minimizing symbol error rate"（L.R. BAHL, J. COCKE, F. JELINEKとJ. RAVIVとの共著、IEEE 情報理論論文集、１９７４年３月）
【０２３８】
文献"Iterative decoding of binary block and convolutional codes"（J. HAGENAUER, E. OFFER とL. PAPKE共著、IEEE 情報理論論文集、１９９６年３月）
【０２３９】
文献"A viterbi algorithm with soft decision outputs and its applications"（J. HAGENAUER とP. HOEHERの共著、IEEE GLOBECOM会議報告、pages 1680-1686, in November 1989）
【０２４０】
論文"Iterative (turbo)decoding of systematic convolutional codes with the MAP and SOVA algorithms"（J. HAGENAUER, P. ROBERTSON とL. PAPKEの共著、定期刊行物Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21 - 29, １９９４年１０月）、
【０２４１】
文献"Turbo-block-codes"と、Lund Technology Instituteの応用電子工学科 (Sweden)によって開催されたセミナーの論文"Turbo Coding"（C. BERROU, S EVAN0とG. BATTAILの共著、１９９６年８月）。
【０２４２】
図３は、使用すべきインターレーサを特定するためのｅの値を決定する制御手順を示す。これらのステップは図１に示した符号化装置によって実行されるものであって、この場合には、レジスタ「N0」や「M」そして「インターレーサ」などはROM１０５よりも寧ろRAM１０４に内蔵されている。そして、"d"， "dmax"， "e"，"j"という４つのレジスタがRAM１０４に付加されている。
【０２４３】
ステップ５０１では、{g}に対応する次数ｍの所定の多項式を、
【０２４４】
0004124893.tif 000009
【０２４５】
と表すと、そのg(x)が多項式 xN0 - 1を割り切れるようにする最小の厳密な正の整数N0を求めることができる。このような数値が存在することが知られている。例えば、g(x) = 1 + x + x3に対してN0 = 7が存在する。この目的において、多項式xi - 1をg(x)で割ることが、g(x)の次数ｍに等しいｉの値から始めて、１ステップだけ連続的にｉを増加させて、除算の剰余がモジュロ２でゼロとなるまで行う。剰余がゼロの時に、ｉの値はレジスタN0に置かれる。この除算は昇順でxi-1の冪級数の係数にモジュロ２で行われることは思い出されるであろう。
それから、奇数Mをそれから選択して、積M・N0が、同じフレームで送られる二進データuiの数よりも小さくならないように選ばれ、操作502の間はg(x)の次数mに付加され、 M・N0に等しいシーケンス{a}の長さが、シーケンス{a}の組込まれるシーケンス{u}の長さ（即ち、いわば、その数の二進値の数である）を、M・N0引くg(x)の次数mに等しくなるように、決定するに等しい。
【０２４６】
それから、操作503乃至509の間は、中央処理装置100はｅに関連づけられた本インターレーサが考慮に入れられ冪か否かを決定する、そのことはシーケンス{v} = ({a}, {b}, {c}) 低い重みを有するような低重みのシーケンス{a}が存在しない。
【０２４７】
実施形態では、{a*}の決定は{a} = (a0, a1, ... )を{a*} = (a0, af, a2f, ...)で置き換えられる工程を含むことになろう、ここで、ｆの倍数がモジュロM・N0で計算される。ｆがモジュロM・N0で１以外の2のべき乗であるときは、本置換はまさに前述したものとなる。それは、実際、二進データをテーブルの各列内のみでの置換と、続いての、ｆがモジュロN0で１以外の2のべき乗であるときは、その列の少なくとも２つ同士の置換によって表現される。後者の置換は長さN0の二進巡回符号の、そして発生多項式g(x)との自己同型化写像である。ｆが１に等しくモジュロN0であるときは、列に関連するこの置換は自明(trivial)または同一化置換である。即ち、当該テーブル内の列の位置を保持する。
【０２４８】
この目的のために、本発明の特定の実施形態では、操作５０３の間には、中央処理装置１００は、モジュロM・N0の２の連続のべき乗を決定して、モジュロM・N0の２の巡回cycleと呼ばれるものを得る。この巡回は２のべき乗の１つがモジュロM・N0で１に等しくなった時点で終わる。この巡回の工数ｊはレジスタｊに記憶される。
【０２４９】
それから、操作５０４の間に、レジスタ"l"と"dmax"に記憶された中間値lとdmaxが夫々"1"と"0"とに初期化される。
【０２５０】
次に、操作５０５の間に、  レジスタ"l"の値は１だけ増加されて、前記２のモジュロM・N0の循環のＩ番目の値が取られる。
【０２５１】
それから、操作５０６の間に、この値が１のモジュロM・N0に等しくないならば、シーケンス{v} = ({a}, {b}, {c}) の重みが、低重みのシーケンス{a}に対して、置換がa*(x) = a(xe)により定義されて決定される。もし{a}=(a0, a1, a2, ..., aM・N0-1)であるならば、前述したように、a*の最初の二進値はa0であり、第２の値はafであり、第３の値はa2f, ...、_というようにして、インデックスがM・N0で計算される。
【０２５２】
この目的のために、２つのシーケンス間の距離はこれらシーケンスの一致する二進値の差分により構成されたシーケンスの重み（いわば、ゼロでない二進値の数）であるので、この処理はゼロシーケンスを有するシーケンスの差分の解析に限られ、多項式a(x)は昇順の重みにより列挙され、全く同じ三組({a}, {b}, {c})内のシーケンスの重みの和が計測され、与えられたeに対する最も小さな重みを探索し、そして、一度これら全ての最小の重みが２の巡回中のeについて、最高の重みに対応するeの値について決定される。
【０２５３】
テスト５０７において、その距離はそれからRAM１０４のレジスタ"d"に格納される。次に、テスト５０７の間に、レジスタ"d"に格納された値がレジスタ"dmax"に格納された値よりも大きいならば操作５０８において、レジスタ"dmax"の値は、値ｄを取るように変形され、考慮されている巡回ののｌ番目の要素の値はレジスタ"e"のメモリに格納される。
【０２５４】
操作５０８に続いて、或いはテスト５０７の結果が否定的ならば、ｌの値がｊよりも小さい限りは、テスト５０９とそ宇佐５０５が繰り返される。
【０２５５】
テーブル"インターレーサ"は次のように形成される。
【０２５６】
a*(x) = a(xe)とされ、もし{a}=(a0, a1, a2, ..., aM・N0-1)ならば、a*の最初の二進のデータ項目a0であり、２番目はafであり、三番目はa2fであり、 ...前述したように、インデックスがモジュロM・N0で計算される。
【０２５７】
変形例として、不図示ではあるが、三組({a}, {b}, {c})が次のように計算される。
【０２５８】
・a(x)とb(x) = a(x).h1(x)/g(x)とが上述のように定義され、
【０２５９】
・与えられた多項式g2(x)が、g2(x)がxN2＆＃151; 1を割り切れるような最小の整数N2が、g(x)がxN0＆＃151; 1を割り切れるような最小の整数N0に等しくなるように選ばれ、置換Ｐが、長さN0で生成多項式g(x)を有するような二進巡回符号中の符号語を長さN2で生成多項式g2(x)を有するような符号語に変換するようなものである。そのような置換は、Cgに等しい巡回符号を生成する多項式g2(x)についてのみ存在すると言うことを明記すべきである。この証明は当業者に良く知られており、上述のF.J. MACWILLIAMS and Mr N.J.A. SLOANE共著の文献の２３４頁を参照すべきである。。
【０２６０】
・本発明によると、シーケンス{a}（この{a}は多項式g(x)で割り切れるような多項式a(x)に関連づけられたものである）から、シーケンス{a**}（これは多項式g2(x)により割り切れる多項式a**(x)に関連づけられている）を生成するものであるこの置換は、a(x)から、上述したようなg(x)により割り切れる第１のシーケンスa*(x)（このシーケンスは将に今導入されＭ行N0列のテーブル（このテーブルはとりわけ{a}と次の{a*}を含みこれらの列を互いに置換させて{a**}を生成するものである）の列に作用する置換Ｐを伴うようなものである）を生成するようないかなる置換によっても生成される
【０２６１】
本発明の範囲は上述の実施形態に限定されるものではなく、当業者にとって自明な範囲の変形や改良を含むものである。
【０２６２】
特に、１つ以上のインタレーサを付加することにより１／４若しくは以下のスループットについての下りは、各インタレーサに関して、上述の原理を適用することによって実現される。これらの場合、パンクチュアリング(puncturing )符号のスループットを上げるために用いることができる。パンクチュアリングはチェックシンボルのみを送信することによって実現されることを留意すべきである。
【０２６３】
更に、本発明の目的である装置は、算術演算を実施するために、多項式乗算、多項式除算、インタレース関数、基本復号化関数、プロセッサを含まない専用回路等（にもかかわらず、かかるプロセッサは、これらのデバイスの動作を制御するのに用いることができる）を組み込むことにより効果的に実現される。これら専用回路は実際に、より高い情報の流量に到達するのに可能となる。
【０２６４】
本発明の第１実施形態によれば、パンクチュアリング無しでも、１／３に近いスループットに到達することを留意すべきである。何故なら、符号化すべきコードがn-mシンボルのシーケンスについてはｎ個のチェックシンボルからなる２つのシーケンスが存在するからである。
【０２６５】
＆＃9;〈第２実施形態〉
本発明の第２実施形態では、１／３以上のスループットが考慮され、パンクチュアリング無しで得られる。符号化すべきn-m個のシンボルからなる２シーケンスについて、ｎ個のチェックシンボル２つのシーケンスが例えば供給され、いわば、スループットは１／２に近づく。
【０２６６】
第２実施形態の説明を始める前に、本実施形態の数学的な基礎を以下に与える。.
【０２６７】
第１実施形態を導入するために、スループットが１・３に近いターボ符号化器と共に使われる１クラスの代数的インタレーサが提示された。これらのインターレーサの主な特徴は、情報多項式の与えられた多項式g(x)（この多項式は部分的には当該符号化器を特徴づける）による可除性を保存することである。結果として、符号化情報ビットあたりのエラーの確率はその情報シーケンス内におけるビット位置からよく独立している。他の特徴は、これらのインターレーサの代数的記述がそれらの列挙(enumeration)並びに個々の評価を可能にすることである。更に、この小さなセットのインターレーサは全インターレーサの性能を代表する。
【０２６８】
しかしながら、いろいろな状況下では、例えば、無線通信では、更によいスループットが必要である。
【０２６９】
第２実施例は特に、パンクチュアリング法を用いることなく、スループットが１／２以上もしくはそれに近いものに関するものである。
【０２７０】
IIa - "x to xe"タイプのインターレーサを有する高スループットのターボ符号化器
【０２７１】
次のシステマティックな畳込(convolutional)符号化器 K x (K+2)を以下に説明する。
【０２７２】
0004124893.tif 000010
【０２７３】
ここでは、hi, fiとgは遅延演算を表す中間ｘの二進係数を有する多項式である。
従来では、通信情報は、二進係数aijを有するK個のタプル{a} = (a1,_, aK)の多項式
【０２７４】
0004124893.tif 000011
【０２７５】
によって表される。情報は{v} = {a}Gで符号化される、ここで、{v}は(K+2)個のタプル個の不確定性(indeterminate)xのシーケンス：
0004124893.tif 000012
【０２７６】
である。
ここでは、「多項式」よりもむしろ「シーケンス」と記述されている点に留意されるべきである。なぜならば、上記和は必ずしもgの倍数である必要はなく、もしそうでないならば、ｇによる除算はシーケンスを不定で最終的には周期的なものとしてしまうからである。
【０２７７】
このタイプの符号化器の性能を改良するために、{v}の最後の成分
【０２７８】
0004124893.tif 000013
【０２７９】
は、
0004124893.tif 000014
【０２８０】
によって置き換えてもよい。ここで、ai* はシーケンスaiからその係数の置換によって得られたシーケンスを表す。各シーケンスaiをシーケンスai* に変換することを「インターレーシングする」("interlacing")と呼ぶ（例えば、C. BERROU and A. GLAVIEUX共著の"Near Optimum error-correcting coding and decoding : turbo-codes"(IEEE発行のTransactions on Communication, Volume COM-44, pages 1261 to 1271, in October 1996という論文を参照のこと）。
第４図は、この動作を実行する符号化器の構成を示す。同図では、入力におけるK個のシーケンスのシンボルについて、符号化器は出力に対して：
【０２８１】
・これらのKシーケンスの同一なシンボルと、
・情報シーケンスaiに関連づけられた多項式と所定の多項式hiとの積の和をとり、更に、この和を所定の多項式ｇにより除することによって形成されたチェックシンボルシーケンスと（符号化器４０１）と、
・まず、各情報シーケンスaiをインターレーサIi（インターレーサ４０２乃至４０５）によりインターレーシングしてシーケンスai*を供給し、それから、前記シーケンスai*に関連づけられた多項式と所定の多項式fiとの積の和をとり、そして、この和を所定の多項式ｇにより除することにより形成されたチェックシンボルシーケンスと（符号化器４０６）。
第１図のインターレーサIi（402 to 406）は、既に、各シーケンスai* はｉと異なるｊを有するシーケンスajのシンボルを含むことができるという第５図のインターレーサ２０１の制限となっている。
【０２８２】
本発明の一般的な性質によれば、各シーケンス{ai}の二進データがN0列×M行のテーブルに分類されるというような表記では、各インターレーサIiは：
【０２８３】
・長さN0で生成多項式g(x)（このg(x)は前記テーブルのN0個の列の少なくとも２つを互いに置換する）を有する二進循環符号の自己同型写像と、同じ列のみのデータに互いに働き、前記データの少なくとも２つを互いに置換する置換を含む置換集合中の少なくとも１つの置換を有し、
・前記集合外には置換は存在しないものである。
本発明の特定の特徴によれば、スループットK/(K+2)の符号化器（ここで、Kは任意の正の整数）に対して、K=1に関する前記第１実施形態に関連して説明されたタイプ"x to xe"のインターレーシングが適用される。
【０２８４】
K ≧ 2 （第２実施形態）のケースについて以下に説明する。
【０２８５】
多項式g(x)を、
【０２８６】
g(x) = 1 + g1x + g2x2 + _ + gm-1 xm-1 + xm
とする。
【０２８７】
N0を、g(x)がxN0 + 1を割り切れるような最小の整数とする。
【０２８８】
ｎをN0の奇数の倍数に等しい（n = M・N0）ものとする。
【０２８９】
すると、g(x)は多項式xn + 1の除数である。例えば、g(x) = 1 + x + x4であって、ｎは値15, 45, 75, _ , 225, _ , 405, _ の中から選ばれるとする。この可除性についての詳細な議論はW.W. PETERSON and E.J. WELDON共著の"Error-correcting codes"（MIT Press発行, Cambridge, Massachussets, 1972）に述べられている。_
【０２９０】
この情報は{u} = ({u1}, _ , {uK})によって表される。ここで、K個の要素{ui}の各々は、形式的な次数n-m-1であって二進係数を有する多項式{ui(x)}によって表される。各多項式{ui(x)}に対して、mビットの末項(termination)
【０２９１】
0004124893.tif 000015
【０２９２】
が付加されて、この付加により、多項式
0004124893.tif 000016
【０２９３】
がg(x)で割り切れるものとなる。
結果のK個のタプル{a} = ({a1}, _ , {aK})はそれで符号化されて、２つのチェックシーケンスを生成する。
【０２９４】
最初のシーケンスは、
【０２９５】
0004124893.tif 000017
【０２９６】
によって与えられ、それは多項式となる。何故なら、多項式がK個の多項式aiを割り切るからである。第２のシーケンスは
0004124893.tif 000018
【０２９７】
によって与えられ、ai(x)ai*(x)にインターレーシングすることは、
ai*(x) = ai(xe) modulo xn + 1   (2)
によって与えられる。ここで、ｅは、モジュロｎがとられた2の冪乗(e=2l)に等しい。このタイプの"x to xe"型置換はK = 1に関する前記第１の部分に提示されてものであり、aiがgで割り切れるときにai* のgによる可除性を保証する。
K = 2に関して、２，３の例をあげる。
【０２９８】
（１）で説明された形式の2 x 4ターボ符号化器で、
【０２９９】
g(x) = 1 + x + x3;
【０３００】
h1(x) = f2(x) = 1 + x2 + x3;
【０３０１】
h2(x) = f1(x) = 1 + x + x2 + x3
【０３０２】
n = 147
【０３０３】
のものが考慮される。
ｎを147として、各々が２の冪乗でモジュロ１４７の残余(residue)である４２個のｅがあるとする。ｅのこれらの各々の値に対して、対応するターボ符号が付加されたホワイトガウスノイズチャネル（当業者には、"Additive White Gaussian Noise"を意味する頭字語で"AWGN"として知られている）に対してビットEb当たりのエネルギとHz当たりのノイズの比N（  同じくノイズスペクトル密度）を異ならせてシュミレーションされた。
【０３０４】
信号／ノイズ比の関数としてのビット当たりのエラー率("BER")のカーブの対応値が、n=147, K=2, n=147, K=2 で値が異なる３つの値のｅ（e = 67 = 214, e = 32 = 25 , e = 71 = 29）に対して第６図に描かれている。最初の２つの値は４２個の取り得る値の中で"good"であることを示しており、最後のｅは２または３個の"less good"（良くはない）（例えば1, 2, 4, 109, 142 and 50）を示している。
【０３０５】
iをi = 1または2とし、ｎについてはより高い値として同じg(x), hi(x), fi(x)を用い同じシュミレーションを行うことができる。n = 413のケースとn = 917のケースが、モジュロｎで多数の異なる２の冪乗の値を提供するものであるという理由で選択された。n = 413に対しては、１７４個のそのような異なる値が存在し、n = 917については390個のそのような異なる値が存在する。
【０３０６】
発明者たちは、ｅの値を適正にとれば、本発明の実施化に際して誤差カーブ上には、復号化でのビット当たりの誤差確率10-5であるようなレベルがないことが観測された。モジュロxn+1でai*(x) = ai(xe)を生成するためには、ai(x)多項式のインターレーシングが、ｅを異なる値とするが常に２のｉ乗の形態（e = 2l）としてｉの各値に対して実行することができる。好ましくは、ｉの全ての値に対して同じインターレーサが用いられ、これにより、ｋ個タプルシンボルの同一性が保たれる。
【０３０７】
IIb：  K ≧ 2であるターボ符号化器の仕様
【０３０８】
次の3 x 5のターボ符号化器が一例として考慮される：
【０３０９】
0004124893.tif 000019
【０３１０】
ここで、ｇは二進値係数を有し自乗多項式では割り切れないようなこれ以上単純化できない(irreducible)多項式である。上記マトリクスGは３つ組情報{u} = ({u1}, {u2}, {u3})を：
0004124893.tif 000020
【０３１１】
のように符号化する。ここで、第１実施形態と同じように、aiはuiから得られ、ai*はaiから得られる。
そのような１つの符号の最小距離に影響する要素は、５個タプルのｖの零でない成分の最小数である。
【０３１２】
そのターボ符号のいかなる5個タプルv = (v1, _ , v5)も少なくとも３つの零でないシーケンスviを含むことを保証することができる。
【０３１３】
これを明らかにするために、ai* をあからさまにai(xe)（約されたモジュロxn + 1）と記し、モジュロｎのｅの逆数が"d"と表されて、即ち、ed = 1 (n)となり、ここで、"(n)"はモジュロｎを意味する。
【０３１４】
それから、モジュロ(xn+1)の式Σai(xe)fi(x) = 0は、モジュロ(xn+1)のΣai(x)fi(xd) = 0に同一であることを注意する。
【０３１５】
この結果は、ｅとｄとがｎと互いに素であり、そのために、n-1次以下のb(x)の各々に対して、モジュロ(xn+1)計算されたb(xe) とb(xd)が、単純に、b(x)の係数の置換により得られるという事実、そして、もしモジュロ(xn+1)の多項式a(xe)が[a(x)]＆＃80;
(e)と記されると、これが
【０３１６】
[a(x)f(x)]＆＃80;
(e) = [a(x)]＆＃80;
(e) [f(x)]＆＃80;
(e) modulo (xn+1)
を与えるという事実から得られることである。.
Ｇにより生成された符号内のいかなる零でないｖが、次の２つの条件を満たす場合には、常に少なくとも３つの零でない成分を含むということは、"MDS"（"Maximum Distance Separable（分離可能な最大距離）"を意味する）として知られている。
【０３１７】
その２条件とは：
【０３１８】
・多項式hiとfjのどれもモジュロxN0 + 1で零でないこと、ただしN0はg(x)がxN0 + 1を割り切れるような最小の整数で、多項式g(x)がいかなる自乗の多項式によっても割り切れないことからN0は奇数である、そして、
・異なるｉとｊについて次の形式の２×２の
0004124893.tif 000021
【０３１９】
のマトリクスがモジュロxN0 + 1で零である行列式を有すること。いる符号理論から帰結される。
同様な性質が、大きさ(dimension)が Kで長さがN1で、複数のM1 = N1 - K > 2という冗長性を有するターボ符号化器のいかなるものに対しても成り立つ。後者の例では、符号化器は、
【０３２０】
0004124893.tif 000022
【０３２１】
と類似する。そして、いかなる情報シーケンス{u} = ({u}1, _, {u}K)も、まず{a} = ({a1}, _, {a}K)として、符号化され、次に、
0004124893.tif 000023
として符号化される。
【０３２２】
djをモジュロｎのejの逆数、即ちdjej = 1(n)とする。Ｇにより得られた符号内の零でないｖの各々は、1 ≦ r ≦ N1-Kであるような整数ｒに対して、その最後のN1-K列から抽出されたところのＧのサブマトリクス(r x r)の各々がモジュロxN0+1の零でない行列式を有するならば、少なくともN1-K+1個の零でない要素を有する。ただし、hi,j(x)はhi,j(xdj)によって置き換えられる。
【０３２３】
ここで、冗長なターボ符号N1 - K > 2の復号化は既に考察されていたということに注意すべきである。例えば、D. DIVSALAR and F.POLLARA共著の"Multiple Turbocodes for Deep Space Communications"（TDA Progress Report 42-121, of
15 May 1995）を参照することができる。
【０３２４】
大きさがKで長さがN1で、タイプが"x to xe"のインターレーサを有するような良好なターボ符号を得るための良い候補を得る方法を以下に論じる。
【０３２５】
N1-Kである場合をまず考察する。
【０３２６】
N0 = 2m-1 ≧ N1であるようなm ≧ 2の次数ｍの、GF(2)について既約(irreducible)である多項式g(x)が選ばれることになり、そして、GF(2m)は、多項式のモジュロg(x)の余りの集合としてとられる。ｎもまたN0の奇数の倍数として選ばれる。そこで、２行N1列のマトリクスΓ
【０３２７】
0004124893.tif 000024
【０３２８】
を考察する。ここで、αi(i =1, _, N1)は、GF(2m)の異なる零でない要素であり、ｒとｓはモジュロN0鋸となる整数である。s = r +1という選択は例えば常に良い選択となる。これはマトリクスΓの元ではあらゆるものが非特異的であることを意味する。Γ(1,2)を上記Γの最初の２列からなる副行列とし、[Γ(1,2)]-1Γを：
0004124893.tif 000025
【０３２９】
と書き記し、ここで、ΛはGF(2m)の2 x Kのマトリクスである。モジュロｎの２のｅ乗の選ばれた値に対して、Λの第２列の各要素がそのｅ乗により置き換えられ、このマトリクスの転置行列はΔと表記される。Δの要素は不定数ｘのm-1次の多項式として解釈され、g(x)によってあるいは他の除数多項式xN0+1により割り切られ、結果のマトリクスをP(x)と呼ぶ。
最後に、大きさK x (K + 2)のマトリクスGが定義される：
【０３３０】
G = [IK P(x)]
【０３３１】
ここで、IKは大きさKの識別マトリクスである。
ｅの各値に対して、この符号化器Ｇはターボ符号化器として使うことができる。シュミレーションによれば、ｅの最適な値を選択することができる。
【０３３２】
N1 - K > 2の場合も同様に取り扱うことができる。この場合には、M1 = N1 - Kとして、マトリクスΓはタイプM1 x N1の：
【０３３３】
0004124893.tif 000026
【０３３４】
と構成することができる。Γ(1,M1)を、Γの第１のM列からなる副マトリクスとすると、[Γ(1,M1)]-1Γは [IM1Λ]Γとして書かれ、または、IM1は大きM1の識別マトリクスであり、Λは大きさM1 x KのGF(2m)上の副マトリクスである。 選ばれたet = 2itの各値に対して、ｔをt = 2, _, M1とすると、Λのt番目のラインはそのet乗によって置き換えられる。
このマトリクスの転置マトリクスはΔと表記され、Δの要素は不定数ｘのm-1次の多項式であると考えられ、それらはg(x)で割り切れ、大きさK x (N - K)の結果としてのマトリクスはP(x)と記される。
(M1-1)個のタプル(e2, _, eM1)の異なる値に対して得られた符号化器G = [IK P(x)]はシュミレーションにより解析され、最良のものが選ばれる。
【０３３５】
IIc ：第２実施形態の実施化
【０３３６】
第２実施形態の説明を、K = M1 = 2について、第７図と第８図を用いて説明する。
【０３３７】
第７図は、ネットワークのステーションまたはコンピュータ符号化ステーションの構成を示すブロック図である。このステーションは、処理カード７０１の入出力ポート７０３に接続されたとこれおの、キーボード７１１，スクリーン７０９，外部情報源７１０，通信送信機７０６とを有する。
【０３３８】
処理カード701は、共にアドレス／データバス702に接続された：
【０３３９】
・中央処理装置700、
【０３４０】
・RAM 704、
【０３４１】
・ROM 705、
【０３４２】
・入出力ポート703
【０３４３】
とを有している。
第７図に示されたこれらの要素はの各々は、マイコンや通信システム、更に一般的には情報処理システムについての当業者には良く知られている。それ故これらの要素の説明はここでは行わない。しかしながら次の点を考慮すべきである：
【０３４４】
・情報源７１０は例えばインタフェース周辺装置、センサ、デモジュレータ、外部メモリや他の情報処理システム（不図示）であり、そして、好ましくは、二進データのシーケンスであるところの、音声、サービスメッセージ、マルティメディアデータを供給するのに適合化されている。
【０３４５】
・無線送信機７０６は無線チャネル上でパケット通信プロトコルを実現して、そのようなチャネル上でパケットを送出するように適合化されている。
【０３４６】
明細書中で用いられる「レジスタ」という言葉は、メモリ７０４，７０５の各々において、低容量メモリ領域（２，３個の二進データ）と大容量のメモリ領域（全プログラムをきおくすることができる）の双方を意味する。.
【０３４７】
RAM７０４は、データや変数や中間データを格納するもので、それらは、明細書において、格納されるデータと同じ名前を有している。RAM704は：
【０３４８】
・レジスタ"primary_data"。そこには、バス７０２上で到着した順序で、情報源７１０からの二進データが格納される。これらは、２つのシーケンスの形式で、{u1}, {u2}が次に２つのシーケンス{a1}と {a2}を形成するために補充されるように格納される。
【０３４９】
・レジスタ"No_data"。これはレジスタ"binary_data"内のn-mの二進データの数に対応する整数を格納する。
【０３５０】
・レジスタ"permuted_data"。ここには、第８図の関連して説明したように、バス７０２上への送信順に従って置換された二進データが２つのシーケンス{a*1}と{a*2}の形式で格納される。
【０３５１】
・レジスタ"intermediate_remainder"。ここには、除算の中間的な余りが順に格納される。シーケンス{ui}から対応するシーケンス{ai}を構成するのに使われるレジスタである。
【０３５２】
・レジスタ"final_remainder" 。ここには、補数の二進データが２つにシーケンスの形式で格納される。
【０３５３】
・レジスタ"{a1}, {b1}, {c1}" と "{a2}, {b2}, {c2}"。ここには、制御由仁と００による決定順序に従って、シーケンスとなった二進データが格納される。
【０３５４】
ＲＯＭ705は、格納すべき情報と同じ名前を便宜上有するレジスタ内に以下の情報を格納する：
【０３５５】
・レジスタ"program"に格納されたＣＰＵ７００のオペレーティングプログラム、
【０３５６】
・レジスタ"{g}"内のシーケンス{g}、
【０３５７】
・レジスタ"degree"内にはg(x)の次数ｍ、
【０３５８】
・レジスタ"{h}"内にはシーケンス{h} = {h1} = {f2}、
【０３５９】
・レジスタ"{f}"内のシーケンス{f} = {f1} = {h2}、
【０３６０】
・レジスタ"N0"内の値N0、
【０３６１】
・レジスタ"N1"内の値N1、
【０３６２】
・レジスタ"M1"内の値 M1、
【０３６３】
・レジスタ"M"内の値M、
【０３６４】
・レジスタ"interlacer1"内において、シーケンスa1に作用する引用例を規定するテーブル、そして、
【０３６５】
・レジスタ"interlacer2"内において、シーケンスa2に作用する引用例を規定するテーブル。
【０３６６】
ここで考察されているインターレーサは、夫々、上述の"x to xe1"と"x to xe2"というタイプのものである。
【０３６７】
ＣＰＵ７００は第８図の制御手順を実行するように適合化されている。
【０３６８】
第７図に示された符号化器の機能を表す第８図において、RAM７０４の各種レジスタを初期化(No_data = "0")する初期化処理８００の後のステップ８０１において、ＣＰＵ７００は送信すべき二進データ項目の到着を待ち、到着したならばそれを受け取って、RAM７０４内"primary_data"におき、カウンタ"No_data"をカウントアップする。
【０３６９】
ここでは、２つのシーケンス{u}1と{u}2,を構成するために、ＣＰＵ７００は、情報源７１０からの主データprimary dataでもって、まずシーケンス{u}1 を構成し、それから、シーケンス{u}2を構成することに着目すべきである。
【０３７０】
次にテスト802において、ＣＰＵ７００は、レジスタ"No_data"に格納された整数が、積M・N0からg(x)の次数ｍを差し引いたものに等しいか否かを判断する。ここで、M, N0並びにg(x)の次数ｍはRAM705に格納される値である。
【０３７１】
テスト８０２の結果がＮＯであるならば、操作８０１が繰り返される。テスト８０２の結果がＹＥＳとなったとき、ステップ８０３で、レジスタ"primary_data"に格納されていた二進データシーケンス{u1} ,{u2}に関連づけられた多項式u1(x) とu2(x)とを、多項式g(x)で除することが、レジスタ"intermediate_remainder"を用いて、u1(x)と u2(x)の最後の項（最高次数の項）にまで、実行される。これら除算の余りは、レジスタ"final_remainder"に格納される。これらの除算の結果は、シーケンスの最初の要素、{b1} = {a1}/gと{b2} = {a2}/gとを供給する。
【０３７２】
次にステップ804で、レジスタ"final_remainder"に格納された二進データは夫々シーケンス{u}1 と{u}2 とに併置されてシーケンス{a1}と{a2}とを形成する。シーケンス{a1}と{a2}の二進データはメモリのレジスタ"{a1}, {b1}, {c1}"と"{a2}, {b2}, {c2}"とに格納される。
【０３７３】
次に、ステップ８０５で、ステップ８０３で行われた除算が継続されて、ステップ８０４で加算された加算データをもって、シーケンス{b1}と{b2}とがレジスタ"{a1}, {b1}, {c1}"と "{a2}, {b2}, {c2}"とに格納される。
【０３７４】
それから、ステップ８０６で:
【０３７５】
・シーケンス{a1}の二進データが、RAM７０５の"interlacer1"テーブルにより記述された順序に従って夫々連続的にレジスタ"{a1}, {b1}, {c1}"に読み込まれ、
【０３７６】
・シーケンス{a2}の二進データが、RAM７０５の"interlacer2"テーブルにより記述された順序に従って夫々連続的にレジスタ"{as}, {bs}, {cs}"に読み込まれる。
【０３７７】
これらの読取から連続的に得られたデータは夫々RAM７０４のレジスタ"permuted_data"のメモリに格納される。
【０３７８】
次に、ステップ８０７で、夫々がレジスタ"permuted_data"に格納されていた置換二進データシーケンスと関連づけられた多項式a1*(x)とa2*(x)をg(x)で除することが、レジスタ"intermediate_remainder"を用いて行われる。この除算の結果はレジスタ"{a1}, {b1}, {c1}" と"{a2}, {b2}, {c2}"に格納され、シーケンス{c1},{c2}の二進データに対応する。
【０３７９】
ステップ８０８で、所謂"check"もしくは "redundant" な２つのシーケンスが決定される。即ち、
【０３８０】
・シーケンス{b}sが、RAM７０４のレジスタ"{a1}, {b1}, {c1}"と"{a2}, {b2}, {c2}"に格納されたシーケンス{b1}と{b2}とに関連づけられた多項式と、多項式h(x)とf(x)との夫々の積を取ることにより決定される。
【０３８１】
・シーケンス{c}s が、RAM７０４のレジスタ"{a1}, {b1}, {c1}"と"{a2}, {b2}, {c2}"に格納されたシーケンス{c1}と{c2}とに関連づけられた多項式と、多項式f(x)とh(x)との夫々の積を取ることにより決定される。
【０３８２】
本発明に拠れば、メモリ要素がg(x)による除算をh(x)またはf(x)による乗算に先立って行うことにより節約される。
【０３８３】
ステップ８０９で、シーケンス{a1}, {a2}, {bs}と{cs}とが送信器７０６を用いて送られる。次に、メモリ７０４のレジスタがもう一度初期化される。特に、カウンタNo_dataは"０"にセットされて、ステップ８０１が再開される。
【０３８４】
ここで、変形例として、ステップ８０９で、シーケンス{a1}と{a2}とが全体として送られるが、一部だけが、例えば、{bs}と{cs}の内の１つのデータが送られてもよいことに注意すべきである。この変形例は当業者ではパンクチュアリング（puncturing）と呼ばれている。
【０３８５】
復号化に関して、多項式g(x), h(x), f(x)と、シーケンス{a1}と{a2}から夫々置換された{a*1}と{a*2}を生成するインターレーサG1とG2を知って、当業者は技術的障害もなく、復号化器をいかに製造するか、そして、４つ組の({a1}, {a2}, {bs}, {cs})に影響するその復号化とエラー訂正とに適合化させる方法を知る。エラー訂正は上記のインターレーサを、可能であるならば対応する逆インターレーサを用いる。
【０３８６】
第９図によれば、第４図乃至第８図に図示された復号化装置から送られたシーケンスを復号化するべく適合化された復号化装置は以下のものを具備する:
【０３８７】
・復号化器９０１。この復号化器９０１は符号化器４０１に対応し、送信シーケンスの期待値{v1}~{vK+1}を、Ｋ個の外部情報シーケンス{w'''1} ~ {w'''K}（後述）と共に受け取り、順序が後のＫ個の期待値シーケンス{w1} ~ {wK}を供給する。
【０３８８】
・K個のインターレーサ９０２。このK個のインターレーサ９０２はインターレーサ４０２乃至４０５に同一であり、夫々、{w1}乃至{wK}を受け取り、夫々{w'1}乃至{w'K}としてインターレースする。
【０３８９】
・第２の復号化器９０３。復号化器９０３は、シーケンス{w'1}乃至{w'K}と共にシーケンス{vK+2}を受信する符号化器４０６に対応し、Ｋ個の順序が後の期待値シーケンス{w'1}乃至{w'K}と期待値シーケンス{a'}とを供給する。
【０３９０】
・Ｋ個の逆インターレーサ９０４。これらはインターレーサ４０２乃至４０５の逆動作を行うものであり、シーケンス{w''1}乃至{w''K}を受けて、シーケンス{w'''1}乃至{w'''K}を供給する。
【０３９１】
所定回数の繰り返しに続いて、期待値シーケンス{a'}が考慮される（文献"Near Shannon limit error-correcting coding and decoding : turbocodes"を参照のこと）。
【０３９２】
本発明によれば、インターレーサとその各々を復号化するのに用いられる逆インターレーサとは、符号化するのに用いられるインターレーサ、好ましくは"x to xe"タイプのインターレーサと同じ特性を有する。好ましくは、復号化に関する符号化について、ｊの同じ値について、指数eijは等しい。また、好ましくは、復号化に関する符号化について、指数eij は全て２の冪乗である。
【０３９３】
さらに、復号化器９０１，９０３を初期化するに際して、符号化器４０１，４０６が初期状態と最終のゼロ状態とを有することが考慮される。
【０３９４】
復号化に関して、読者は以下の文献を参照することができる:
【０３９５】
・L.R. BAHL, J. COCKE, F. JELINEKとJ. RAVIV 共著の"Optimal decoding of linear codes for minimizing symbol error rate"（IEEE Transactions on Information Theory, in March 1974発行）の文献。
【０３９６】
・J. HAGENAUER, E. OFFERとL. PAPKE共著の"Iterative decoding of binary block and convolutional codes" （IEEE Transactions on Information Theory, in March 1996発行）の文献。
【０３９７】
・J. HAGENAUERとP. HOEHER共著の"A Viterbi algorithm with soft decision outputs and its applications" (IEEE GLOBECOM, pages 1680-1686, in November 1989発行）の文献。
【０３９８】
・J. HAGENAUER, P. ROBERTSONとL. PAPKE共著の"Iterative (turbo)decoding of systematic convolutional codes with the MAP and SOVA algorithms" (Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21 - 29, October 1994発行）の文献。
【０３９９】
・C. BERROU, S. EVANOとG. BATTAIL共著の"Turbo-block-codes"とpublished with the reports of the seminar "Turbo Coding" organised by the Institute of Technology of Lund (Sweden) (Department of Applied Electronics) in August 1996発行）の文献。
【図面の簡単な説明】
本発明は添付の図面を参照することによりよく理解することができる。その図面とは：
【図１】 第１実施形態による符号化器を具備する電子装置の構成を示す図。
【図２】 第１図示の第１実施形態による符号化器の動作を示すフローチャート。
【図３】 第１図示の装置に用いられるインターレーサの決定手順を説明するフローチャート。
【図４】 本発明の第２実施形態に係る符号化器の構成を示す図。
【図５】 符号化対象のいくつかのシンボルシーケンスに作用するインターレーサの一般形態を示す図。
【図６】 第２実施形態による方法及び装置の特定の例による性能カーブを示すグラフ図。
【図７】 第２実施形態の符号化器を有する電子装置の構成を示す図。
【図８】 第２実施形態に係る第７図に示された符号化器の動作手順を示すフローチャート。
【図９】 本発明が関連する復号化器の構成を示す図。
【図１】
0004124893.tif 000027
【図２】
0004124893.tif 000028
【図３】
0004124893.tif 000029
【図４】
0004124893.tif 000030
【図５】
0004124893.tif 000031
【図６】
0004124893.tif 000032
【図７】
0004124893.tif 000033
【図８】
0004124893.tif 000034
【図９】
0004124893.tif 000035