(57)【特許請求の範囲】
【請求項１】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、有限体上で定義される射影代数曲線の自己同型写像である有理式に従って並べ替えパターンを算出する第３の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の段階とを有し、前記第４の段階は、並べ替えパターンを算出する前記第３の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項２】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、有限体上で定義される射影直線の射影分数変換式に従って並べ替えパターンを算出する第３の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の段階とを有し、前記第４の段階は、並べ替えパターンを算出する前記第３の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項３】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、有限体上で定義される楕円曲線の自己同型写像である有理式に従って並べ替えパターンを算出する第３の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の段階とを有し、前記第４の段階は、並べ替えパターンを算出する前記第３の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項４】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の段階と、有限体上で定義される射影代数曲線の自己同型写像である有理式に従って各行内で成分を並べ替える第４の段階と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第６の段階とを有し、前記第６の段階は、並べ替えパターンを算出する前記第５の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項５】
前記第３の段階の行列への書き込み、前記第４の段階の有理式に従う並べ替え、および前記第５の段階の行列からの読み出しは、前記３段階の合成変換である式に従って１つの段階で処理することを特徴とする請求項４に記載のインターリーブ方法。
【請求項６】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の段階と、有限体上で定義される射影直線の射影分数変換式に従って各行内で成分を並べ替える第４の段階と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第６の段階とを有し、前記第６の段階は、並べ替えパターンを算出する前記第５の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項７】
前記第３の段階の行列への書き込み、前記第４の段階の射影分数変換式に従う並べ替え、および前記第５の段階の行列からの読み出しは、前記３段階の合成変換である式に従って１つの段階で処理することを特徴とする請求項６に記載のインターリーブ方法。
【請求項８】
入力データ列を格納する第１の段階と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の段階と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の段階と、有限体上で定義される楕円曲線の自己同型写像である有理式に従って各行内で成分を並べ替える第４の段階と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の段階と、並べ替えパターンに従って格納データ列を並べ替えて出力する第６の段階とを有し、前記第６の段階は、並べ替えパターンを算出する前記第５の段階で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ方法。
【請求項９】
前記第３の段階の行列への書き込み、前記第４の段階の有理式に従う並べ替え、および前記第５の段階の行列からの読み出しは、前記３段階の合成変換である式に従って１つの段階で処理することを特徴とする請求項８に記載のインターリーブ方法。
【請求項１０】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、有限体上で定義される射影代数曲線の自己同型写像である有理式に従って並べ替えパターンを算出する第３の手段と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の手段とを有し、前記第４の手段は、並べ替えパターンを算出する前記第３の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１１】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、有限体上で定義される射影直線の射影分数変換式に従って並べ替えパターンを算出する第３の手段と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の手段とを有し、前記第４の手段は、並べ替えパターンを算出する前記第３の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１２】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、有限体上で定義される楕円曲線の自己同型写像である有理式に従って並べ替えパターンを算出する第３の手段と、並べ替えパターンに従って格納データ列を並べ替えて出力する第４の手段とを有し、前記第４の手段は、並べ替えパターンを算出する前記第３の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１３】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の手段と、有限体上で定義される射影代数曲線の自己同型写像である有理式に従って各行内で成分を並べ替える第４の手段と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の手段と、並べ替えパターンを参照して格納データ列を並べ替えて出力する第６の手段とを有し、前記第６の手段は、並べ替えパターンを算出する前記第５の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１４】
前記第３の手段の行列への書き込み、前記第４の手段の有理式に従う並べ替え、および前記第５の手段の行列からの読み出しの３手段の合成変換である式に従って、１つの手段で処理することを特徴とする請求項１３記載のインターリーブ装置。
【請求項１５】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の手段と、有限体上で定義される射影直線の射影分数変換式に従って各行内で成分を並べ替える第４の手段と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の手段と、並べ替えパターンを参照して格納データ列を並べ替えて出力する第６の手段とを有し、前記第６の手段は、並べ替えパターンを算出する前記第５の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１６】
前記第３の手段の行列への書き込み、前記第４の手段の射影分数変換式従う並べ替え、および前記第５の手段の行列からの読み出しの３手段の合成変換である式に従って、１つの手段で処理することを特徴とする請求項１５に記載のインターリーブ装置。
【請求項１７】
入力データ列を格納する第１の手段と、入力データ列の長さＬを元に演算のパラメータの値を決定する第２の手段と、Ｌ個の整数をＭ×Ｎ行列に行方向に書き込む第３の手段と、有限体上で定義される楕円曲線の自己同型写像である有理式に従って各行内で成分を並べ替える第４の手段と、行列の第１行ベクトルから第Ｍ行ベクトルまでを並べ替えた後で行列の成分を列方向に読み出して並べ替えパターンを算出する第５の手段と、並べ替えパターンを参照して格納データ列を並べ替えて出力する第６の手段とを有し、前記第６の手段は、並べ替えパターンを算出する前記第５の手段で、パターンの一部の算出の度に、算出値をアドレスとするデータを格納データ列から読み出して出力することを特徴とするインターリーブ装置。
【請求項１８】
前記第３の手段の行列への書き込み、前記第４の手段の有理式従う並べ替え、および前記第５の手段の行列からの読み出しの３手段の合成変換である式に従って、１つの手段で処理することを特徴とする請求項１７に記載のインターリーブ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ターボ符号化・復号技術の要素技術であるインターリーブ方法、インターリーブ装置に関し、特に可変なインターリーブ長に応じてリアルタイムにインターリーブパターンを算出するインターリーブ方法またはインターリーブ装置に関する。
【０００２】
【従来の技術】
近年、ターボ符号化・復号方式と呼ばれる誤り訂正符号化・復号方式の研究が行われている。ターボ符号化・復号方式の長所は、処理演算量・装置規模が実装可能な範囲内にあるにもかかわらず、低い送信電力でのデータ誤り訂正率が、従来の誤り訂正符号化・復号方式より格段に良いことである。
【０００３】
このため、２００１年度運用開始予定の移動体通信の標準化団体であるサード・ジェネレーション・パートナーシップ・プロジェクト（3rd Generation Partnership Project、略して「３ＧＰＰ」）のデータ伝送誤り訂正符号化・復号方式として使用されることが決定している。
【０００４】
ターボ符号化・復号方式について参考とされる文献には、例えば１９９３年の「ＩＣＣ‘９３」会議の報告書の第１０６４ページから第１０７０ページに掲載された、ターボ符号化・復号方式の発明者であるＣ．Ｂｅｒｒｏｕ， Ａ．ＧｌａｖｉｅｕｘおよびＰ．Ｔｈｉｔｉｍａｊｓｈｉｍａらによる「シャノン限界近傍誤り訂正符号化および復号：ターボ符号（１）（Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes(1)）」と題する論文が挙げられる。
【０００５】
それによればターボ符号化・復号方式の代表的な構成は、再帰的組織的畳み込み符号（Recursive Systematic Convolutional codes）化回路を、インターリーブ回路と呼ばれる回路を介して複数個並列（または直列）に配した符号器、そして事後確率比軟出力回路を、インターリーブ回路を介して複数個並列（または直列）に配した復号器からなるものである。
【０００６】
ここで、インターリーブとは、ターボ符号化・復号方式においては、有限長デジタルデータ列のデータ順を並べ替える処理のことである。ターボ符号化・復号方式が上記の長所を発揮するためには、インターリーブを行うことが必須であることはよく知られている。インターリーブのアルゴリズムまたはインターリーブ回路は、インターリーバとも呼ばれる。インターリーブを施すデータ列の長さはインターリーブ長、またインターリーバによってデータ順を並べ替える置換パターンはインターリーブパターンと呼ばれる。
【０００７】
インターリーバはアルゴリズムの観点からは、インターリーブ長をＬとするとき、Ｉ＝０，１，２，３，…，Ｌ−１について、０以上Ｌ−１以下の各値を１回ずつとる整数列ｆ（Ｉ）の算出を主要演算とするアルゴリズムで、インターリーブ後に第Ｉ番に配置されるデータが、インターリーブ前に第ｆ（Ｉ）番にあるデータとする規則の下に、データ順を並べ替える。
【０００８】
ターボ符号化・復号方式の実装が検討されるシステムの中には、ターボ符号化行程および復号行程で、データ列の入力の度にインターリーブ長が変わりうるものがある。そのようなシステムでは、ターボ符号化処理および復号処理でリアルタイムにインターリーブパターンを生成する必要がある。このタイプのシステムでターボ符号化行程・復号行程での遅延を発生させないために、インターリーバの設計方式を慎重に検討しなければならない。また、インターリーブパターン生成の巧拙がターボ符号化・復号方式の低い送信電力でのデータ復号誤り率に影響を及ぼすことが知られており、この点でもインターリーバの設計方式の検討が重要である。
【０００９】
従来のインターリーバのうち、可変なインターリーブ長に応じてリアルタイムにインターリーブパターンを生成する方式について概観する。この方式は、以下に説明する２タイプに分けられる。
【００１０】
従来のインターリーバの第１のタイプは、処理演算量・メモリ量を小さく抑えられるタイプである。例えば１９９６年１１月にアイ・イー・イー・イー・トランザクションズ・オン・インフォーメーション・セオリー第４２巻第６号（IEEE TRANSACTIONS ON INFORMATION THEORY VOL.42,NO.6）の１６９８ページから１７０９ページに説明が掲載された、Ｌ．Ｃ．Ｐｅｒｅｚ， Ｊ．ＳｅｇｈｅｒｓおよびＤ．Ｊ．Ｃｏｓｔｅｌｌｏ．Ｊｒ．らによる「ターボ符号の距離スペクトル的解釈（A Distance Spectrum Interpretation of Turbo Codes）」と題する論文に記載されているブロックインターリーバのように、単純な式で整数列ｆ（Ｉ）を算出することを特徴とするタイプである。第１のタイプのインターリーバのアルゴリズムは以下のとおりである。つまり、
【００１１】
Ｉ％ＭでＩをＭで割った余りを，［Ｉ／Ｍ］でＩをＭで割った商を、それぞれ表すとき、ブロックインターリーバがｆ（Ｉ）を算出するアルゴリズムは次の式である。
［アルゴリズム１］
「入力インターリーブ長Ｌに応じ、パラメータＭ，Ｎの値をＭ×Ｎ＞＝Ｌを満たす整数に取る。
整数列ｆ（Ｉ），Ｉ＝０，１，２，・・・，Ｍ×Ｎ−１，を次の式で定義する。
ｆ（Ｉ）＝Ｎ×（Ｉ％Ｍ）＋［Ｉ／Ｍ］」
ただし、Ｍ×ＮがＬより大きいときは、整数列ｆ（Ｉ）の各値のうちＬ以上のものを間引いて、改めて整数列ｆ（Ｉ）とするものとする。整数列ｆ（Ｉ）の一部を間引く操作はプルーニングと呼ばれる。以降で整数列ｆ（Ｉ）を生成した際、各値のうちＬ以上のものがあれば必ずプルーニングを施して、改めて整数列ｆ（Ｉ）とするものとする。
【００１２】
この［アルゴリズム１］について、後の比較のため上述の説明とは異なる次のような別説明を行う。
［アルゴリズム１の別説明］
「第１ステップ：入力インターリーブ長Ｌに応じ、パラメータＭ，Ｎの値をＭ×Ｎ＞＝Ｌを満たす整数に取り、Ｍ×Ｎ行列を作る。その成分の定め方は、０からＭ×Ｎ−１までの整数を順に、第１行第１列から行方向に第Ｍ行第Ｎ列まで書き込んで定めるものとする。
【００１３】
第２ステップ：行列の各成分を第１行第１列から列方向に、第Ｍ行第Ｎ列まで読み出す。第Ｉ番に読み出す整数をｆ（Ｉ）として整数列ｆ（Ｉ）を定義する。」
【００１４】
この［アルゴリズム１］に示されるように、従来のインターリーバの第１のタイプは、整数列ｆ（Ｉ）を生成するアルゴリズムが単純な式であり、装置化した際の処理演算量・必要メモリ量が小さいことを特徴とし、これらの特徴のため実装が容易であるという長所を有する。
【００１５】
従来のインターリーバの第２のタイプは、低い電力でのデータ復号誤り率を第１のタイプのインターリーバより低減できるタイプである。例えば２０００年１２月１９日に特開２０００−３５３９６５号として公開された、須田、渋谷らの「インターリービング方法、インターリービング装置、ターボ符号化方法およびターボ符号化装置」と題する特許公報に示されるように、ブロックインターリーバの［アルゴリズム１の別説明］に、各行内の成分をランダムに並べ替えるアルゴリズムを組み入れて、整数列ｆ（Ｉ）を算出することを特徴とするタイプである。
【００１６】
この第２のタイプのインターリーバは、各行に対応する素数を用いて各行内の成分をランダムに並び替えるアルゴリズムを組み入れており、多くの素数とその性質を用いているため、素数インターリーバと呼ばれている。ブロックインターリーバに各行内の成分をランダムに並べ替えるアルゴリズムを組み入れることで、低い送信電力でのデータ復号誤り率を第１のタイプのインターリーバより低減できることは、現在よく知られたことである。
【００１７】
素数インターリーバのｆ（Ｉ）を算出するアルゴリズムの概要は次のように説明される。
［アルゴリズム２］
「第１ステップ：入力インターリーブ長Ｌに応じ、パラメータＭ，Ｐの値をＭ×Ｐ＞＝Ｌを満たす整数、特にＰは素数に取り、Ｍ×Ｐ行列を作る。その成分の定め方は、０からＭ×Ｐ−１までの整数を順番に、第１行第１列から行方向に第Ｍ行第Ｎ列まで書き込んで定めるものとする。
第２ステップ：各行に対応するＭ個の素数Ｑ＿１，…，Ｑ＿Ｍを適当に定め、各行の内部、例えば第Ｊ行の内部で、素数Ｐと素数Ｑ＿Ｊを用いて、行内ランダム並べ替え演算を行う。
第３ステップ：Ｍ個の行ベクトルの適当な並べ替え演算を行う。
第４ステップ：行列の各成分を、第１行第１列から列方向に、第Ｍ行第Ｐ列まで読み出す。第Ｉ番に読み出す整数をｆ（Ｉ）として整数列ｆ（Ｉ）を定義する。」
この［アルゴリズム２］に示されるように、従来のインターリーバの第２のタイプは、整数列ｆ（Ｉ）を生成するアルゴリズムが単純な式ではなく、処理演算量・必要メモリ量が第１のタイプより増大するという短所を持つ。しかし例えばデータ復号誤り率で１０のマイナス６乗というデータ伝送品質を達成するにあたり、第２のタイプのインターリーバは第１のタイプのインターリーバより１デシベル以上低い電力で達成することができるという長所を持つ。
【００１８】
【発明が解決しようとする課題】
前述した従来の技術においては、第１のタイプのインターリーバを使用したターボ符号化・復号方式では、データ伝送品質が第２のタイプのインターリーバより劣り、第２のタイプのインターリーバを使用したターボ符号化・復号方式では、処理演算量・必要メモリ量が第１のタイプのインターリーバより多いという点で問題がある。
【００１９】
実際、第２のタイプである素数インターリーバは、３ＧＰＰでの使用が決定されているものの、デジタル・シグナル・プロセッサを用いて実装した場合、通信システムにおける一連のデータ処理の中でインターリーブ装置での処理遅延が生じるという問題を引き起こしている。処理演算量を削減するために、演算に要する数値を数表としてメモリ等に予め保持しておく方法により処理速度を上げる対策が考えられる。しかしそのメモリ量は実装の際に困難が生じかねない量である。
【００２０】
（目的）
本発明の目的は、可変なインターリーブ長に対応してリアルタイムにインターリーブパターンを生成することが可能なインターリーバに関し、処理演算量・必要メモリ量が第１のタイプよりも増大しすぎず第２のタイプよりも少なく、しかも、データ復号誤り率で１０のマイナス５乗またはマイナス６乗を達成する送信電力が第２のタイプのインターリーバと同程度としうるインターリーブ方法及びインターリーブ装置を提供することにある。
【００２１】
【課題を解決するための手段】
本発明のインターリーバは、インターリーブ後に第Ｉ番に配置されるデータがインターリーブ前に第ｆ（Ｉ）番にあるデータとし、整数列ｆ（Ｉ）を算出するアルゴリズムとして、有限体上で定義される射影（projection）代数曲線の自己同型（automorphism）の写像（mapping）を用いた方式である。
【００２２】
Ｆを体（field）とし、Ｆ上で定義される射影代数曲線ＣのＦ−有理点の集合からそれ自身への全単射（bijection）φであって、写像後の座標が写像前の座標の有理式であるものを考える。この全単射φは、ＣのＦ上で定義される自己同型の写像（「自己同型写像」という。）と呼ばれる。
【００２３】
特にＦが有限体のときＦ−有理点は必ず有限個であり、それらの有理点に適当に順序を付けるとき、Ｆ上で定義される自己同型写像φは、その有理点の順序をランダムに並べ替えることができるという特徴を持つ。この自己同型写像φを用いて整数列ｆ（Ｉ）を算出するアルゴリズムのインターリーバにより、上記の課題を解決し目的を達成することが可能となる。
【００２４】
【発明の実施の形態】
本発明のインターリーブ方法及びインターリーブ装置の実施の形態を説明する。インターリーブ後に第Ｉ番になるデータのインターリーブ前の位置ｆ（Ｉ）を１個ずつ算出して、インターリーブ後のデータを１個ずつ出力する実施の形態について以下説明する。
【００２５】
この実施の形態に対して、インターリーブパターンである整数列ｆ（Ｉ）全体を算出して記憶装置に保持した後、データ列全体をインターリーブして出力するという実施の形態も当然ありうるが、前者は本発明のより具体化した特徴の１つであるので、前記実施の形態について説明する。
【００２６】
（第１の実施の形態）
本発明の第１の実施の形態について図を参照して詳細に説明する。初めに、本実施の形態の構成を説明する。
【００２７】
図１を参照すると、第１の実施の形態は、データ列格納装置１と、インターリーブパターン演算装置２と、データ出力制御装置３とを含む。それぞれの装置の構成及び機能は以下のとおりである。
【００２８】
データ列格納装置１は、インターリーブすべきデータ列を格納する。
インターリーブパターン演算装置２は、パラメータ値探索部２１と、パラメータ値表記録部２２と、自己同型写像演算部２３と、プルーニング部２４とから構成される。
パラメータ値探索部２１は、格納データ列のインターリーブ長情報からインターリーブ長Ｌを読み出し、自己同型写像の演算（「自己同型写像演算」という。）に必要なパラメータ値をパラメータ値表記録部２２から探索、選択する。
パラメータ値表記録部２２は、自己同型写像演算に必要なパラメータ値の表を記録しておく。例えば、インターリーブ長とパラメータ値との関係を表として記録する。
自己同型写像演算部２３は、インターリーブ長Ｌとパラメータ値を元に、整数変数Ｉの入力値について、有限体上で定義される射影代数曲線の自己同型写像である有理式に従って整数値ｆ（Ｉ）を算出する。そのアルゴリズムを次に説明する。
【００２９】
［アルゴリズム３］
「入力インターリーブ長Ｌに応じ、パラメータである有限体Ｆ、Ｆ−有理点の個数ＭがＬ以上である射影代数曲線Ｃ、ＣのＦ上で定義される自己同型写像φを取る。Ｆ−有理点をＰ＿０，Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）とする。
整数列ｆ（Ｉ），Ｉ＝０，１，２，・・・，Ｍ−１、を次の式で定義する。
【００３０】
φ（Ｐ＿Ｉ）＝Ｐ＿Ｊのとき、ｆ（Ｉ）＝Ｊ」
【００３１】
第１の実施の形態の構成の説明に戻る。
プルーニング部２４は、整数値ｆ（Ｉ）の値がＬ−１以下か否かを判定する。
データ出力制御装置３は、整数値ｆ（Ｉ）を元に、格納データ列の第ｆ（Ｉ）データを読み出して出力する。
【００３２】
次に、図１および図２を参照して第１の実施の形態の動作について詳細に説明する。
【００３３】
データ列格納装置１は、入力されたデータ列を格納する（図２のステップＡ１）。パラメータ値探索部２１は、格納データ列からインターリーブ情報を読み出し、インターリーブ長Ｌを読み出す（ステップＡ２）。インターリーブ長Ｌとパラメータ値表記録部２２の表を対比することで、［アルゴリズム３］の演算に用いるパラメータ値を探索して決定する（ステップＡ３、Ａ４）。パラメータ値を決定した後、その値をインターリーブ長Ｌと共に自己同型写像演算部２３に渡す。そして自己同型写像演算部２３での整数変数Ｉに初期値Ｉ＝０をセットする（ステップＡ５）。
【００３４】
自己同型写像演算部２３は、受け取ったインターリーブ長Ｌとパラメータ値を元に、初期値Ｉ＝０について［アルゴリズム３］に従って整数値ｆ（０）を算出する。そして値ｆ（０）をプルーニング部２４に渡す。
【００３５】
プルーニング部２４では、値ｆ（０）が、Ｌ−１以下であるか否かによって、次の２つの場合に分けて処理する（ステップＡ７）。
【００３６】
値ｆ（０）がＬ以上の場合（ステップＡ７のｙｅｓ）、値ｆ（０）はインターリーブパターンには必要がないので、自己同型写像演算部２３で、整数値Ｉ＝０に１を加算してＩ＝１として（ステップＡ１１）、再び［アルゴリズム３］の演算を行う（ステップＡ６）。
【００３７】
値ｆ（Ｉ）の値がＬ−１以下の場合（ステップＡ７のｎｏ）、値ｆ（０）をデータ出力制御装置３に渡し、格納データ列の第ｆ（０）データを出力する（ステップＡ８）。その後、データをＬ個出力し終えたか否かを検査し（ステップＡ９）、出力し終えたならば全てのインターリーブパターンを出力したことから、インターリーブ処理を終了する。出力し終えていないならば自己同型写像演算部２３に次の出力を要求する（ステップＡ１０）。
【００３８】
データ出力制御装置３からの出力要求に応じて、自己同型写像演算部２３で、整数値Ｉ＝０に１を加算してＩ＝１として（ステップＡ１１）、再び［アルゴリズム３］の演算を行う（ステップＡ６）。
【００３９】
Ｉ＝１以降もＩの値を１ずつ増して、Ｉ＝Ｐまでこの処理を行い、インターリーブ後のデータを全て出力して、データ列のインターリーブ出力を完了する。
【００４０】
（第２の実施の形態）
次に、本発明のインターリーブ方法及びインターリーブ装置の第２の実施の形態について図を参照して詳細に説明する。初めに第２の実施の形態の構成を説明する。
【００４１】
図４を参照すると、第２の実施の形態は、データ列格納装置１と、インターリーブパターン演算装置２と、データ出力制御装置３とを含む。第２の実施の形態の構成が第１の実施の形態の構成と異なる点は、インターリーブパターン演算装置２の構成だけであるから、インターリーブパターン演算装置２の構成及び動作を中心に説明する。
【００４２】
インターリーブパターン演算装置２は、パラメータ値探索部２１と、パラメータ値表記録部２２と、ＢＡ変換演算部２５と、プルーニング部２４とから構成される。ここで、ＢＡ変換演算部２５は、ブロックインターリーバのアルゴリズムである［アルゴリズム１］に、第１の実施の形態の自己同型写像によるアルゴリズムである［アルゴリズム３］を組み入れたアルゴリズム（後述する［アルゴリズム４］）に従って整数列ｆ（Ｉ）を算出する機能を有する。以下このアルゴリズムによる演算をＢＡ変換演算（Block-interleavingに、Automorphism（自己同型写像）を組み入れたアルゴリズムによる変換演算の意）と呼ぶ。
【００４３】
パラメータ値探索部２１は、格納データ列のインターリーブ情報からインターリーブ長Ｌを読み出し、ＢＡ変換演算に必要なパラメータ値をパラメータ値表記録部２２から探索、選択する。
【００４４】
パラメータ値表記録部２２は、ＢＡ変換演算に必要なパラメータ値の表を記録しておく。記録手段としてリードオンリーメモリ（ＲＯＭ）を使用し、パラメータ値の表を保持しておくと、インターリーブ演算の処理速度の向上に最適である。
【００４５】
ＢＡ変換演算部２５は、受け取ったインターリーブ長Ｌとパラメータ値を元に、整数変数Ｉの入力値についてＢＡ変換演算のアルゴリズムに従って整数値ｆ（Ｉ）を算出する。［アルゴリズム１］に［アルゴリズム３］を組み入れたアルゴリズムを［アルゴリズム４］として次に説明する。
［アルゴリズム４］
「入力インターリーブ長Ｌに応じ、パラメータＭ，Ｎの値を、Ｍ×Ｎ＞＝Ｌを満たす整数に取る。パラメータである有限体Ｆ、Ｆ−有理点の個数ＭがＬ以上である射影代数曲線Ｃ、ＣのＦ上で定義される自己同型写像の族φ＿Ｊ，Ｊ＝０，１，２，・・・，Ｍ−１を取る。Ｆ−有理点をＰ＿０，Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）とする。またσ（Ｊ）を、Ｊ＝０，１，２，・・・，Ｍ−１の並べ替え関数とする。
整数列ｆ（Ｉ），Ｉ＝０，１，２，・・・，Ｍ×Ｎ−１、を次の式で定義する。
ｆ（Ｉ）＝Ｎ×σ（Ｉ％Ｍ）＋（φ＿σ（Ｉ％Ｍ））（［Ｉ／Ｍ］）
ただし、Ｉ％Ｍは整数Ｉを整数Ｍで割った余りを、［Ｉ／Ｍ］はＩをＭで割った商を、それぞれ表す。」
【００４６】
このアルゴリズムは式で記述できており、データ出力制御装置３がＩ番目の出力をインターリーブパターン演算装置２に要求すると、整数列ｆ（Ｉ）全体の算出を待たずに整数値ｆ（Ｉ）を出力でき、インターリーブ後の第Ｉデータの出力が可能であるという、従来のインターリーバの第２のタイプにない長所を有する。
【００４７】
次に、図４および図５を参照して第２の実施の形態の動作について詳細に説明する。第２の実施の形態の動作が第１の実施の形態の動作と異なる点は、図５におけるステップＢ１，Ｂ２，Ｂ３だけであるから、これらとその周辺だけを説明する。
【００４８】
パラメータ値探索部２１は、格納データ列からインターリーブ情報を読み出し、インターリーブ長Ｌを読み出す（ステップＡ２）。インターリーブ長Ｌとパラメータ値表記録部２２の表を対比することで、［アルゴリズム４］の演算に用いるパラメータ値を探索して決定する（ステップＢ１、Ｂ２）。パラメータ値を決定した後、その値をインターリーブ長Ｌと共にＢＡ変換演算部２５に渡す。
【００４９】
ＢＡ変換演算部２５は、受け取ったインターリーブ長Ｌとパラメータ値を元に、Ｉ＝０からＩ＝Ｍ×Ｎ−１までについて、データ出力制御装置３からの出力要求に応じて、［アルゴリズム４］に従って整数列ｆ（Ｉ）を算出する（ステップＢ３）。
【００５０】
ＢＡ変換演算部２５における初期値Ｉ＝０から整数変数Ｉを１ずつ増やして行う整数列ｆ（Ｉ）の算出、プルーニング部２４でのインターリーブパターンとしての要不要判断、及びデータ出力制御装置３での算出したｆ（Ｉ）に基づく格納データ列からのデータの選択、出力の各動作は第１の実施の形態における前述の動作と同様である。
【００５１】
【実施例】
（第１の実施例）
本発明の第１の実施例について図を参照して説明する。本実施例は、本発明の第１の実施の形態に対応する。本実施例は、［アルゴリズム３］の射影代数曲線として、射影直線を採用したものである。このとき［アルゴリズム３］の自己同型写像は、射影分数変換と呼ばれる写像に限定されるのはよく知られている。
【００５２】
また射影直線が定義されている体は任意の有限体でよいが、ここでは最も演算量が少ない例を説明するため、Ｐを素数として、射影直線が定義されている体はモジュロＰの有限体（すなわち標数Ｐの有限素体）とする。以上の条件下で［アルゴリズム３］の射影代数曲線として射影直線を採用したアルゴリズムを［アルゴリズム３−１］として次に説明する。
［アルゴリズム３−１］
「入力インターリーブ長Ｌに応じ、パラメータＰの値を、Ｐ＋１＞＝Ｌを満たす最小の素数に取る。パラメータ（Ａ，Ｂ，Ｃ）の値を、ＢがＰで割り切れない整数組に取る。
整数列ｆ（Ｉ），Ｉ＝０，１，２，・・・，Ｐ、を次の式で定義する。
（１）Ｉ＝０，１，２，３，…，Ｐ−１については、
（イ）Ｉ＋ＡがＰで割り切れるときは、  ｆ（Ｉ）＝Ｐ，
（ロ）Ｉ＋ＡがＰで割り切れないときは、ｆ（Ｉ）＝（Ｂ／（Ｉ＋Ａ））＋Ｃ，ただし加減乗除は、モジュロＰの有限体の四則演算，
（２）Ｉ＝Ｐについては、              ｆ（Ｐ）＝ＣモジュロＰ」
【００５３】
図１のパラメータ値表記録部２２には、インターリーブ長Ｌの可変範囲に応じて［アルゴリズム３−１］の演算に必要なパラメータ値（Ｐ，Ａ，Ｂ，Ｃ）の表を記録しておく。以下に、記録しておくべきパラメータの値の決定の一方法を説明する。
【００５４】
ターボ符号化においては、インターリーブ前のデータ列の最終データおよびその近辺のデータが、インターリーブ後に前の方に位置するようにインターリーブすることが、インターリーバによるデータ復号誤り率の低減のために必要である。そこで、パラメータＡをパラメータＢ，Ｃに従属させることでこの要求を達成する次の条件を追加する。
［アルゴリズム３−１−１］
「Ｐに応じてパラメータ（Ｂ，Ｃ）の値を、Ｌ−１−ＣがＰで割り切れない整数値組に取る。
（イ）Ｐ＋１＝Ｌのときは、Ａ＝０とし、
（ロ）Ｐ＋１＞Ｌのときは、Ａ＝（Ｂ／（Ｌ−１−Ｃ））モジュロＰとする。」
【００５５】
この条件の追加により、インターリーブ前の最終データはインターリーブ後に最前データとなり、データ復号誤り率の低減に寄与する。更にこの条件の追加により独立パラメータが１つ減り、記録しておくべきパラメータの値は（Ｐ，Ｂ，Ｃ）となる。
【００５６】
Ｐに対応するＢ，Ｃの決定の一方法を次に説明する。
（１）Ｃを適当な値、例えばＢ＝１，Ｃ＝１に固定して、ハミング重み２の入力ビット列に対応する符号語のハミング重みの分布を調査する。次にＣを変えずＢを変えて、ハミング重み分布を調査する。こうしてＣの値を変えずＢの値を１からＰ−１までＰ−１通りに変化させ、ハミング重み分布を調査し、最小ハミング重みが大きく、かつ、ハミング重みの小さい符号語の個数が少ないＢ，Ｃの値を、１組選出する。
（２）（１）で選出したＢの値を変えずＣの値を１からＰ−１までＰ−１通りに変化させ、ハミング重み分布を調査し、最小ハミング重みが大きく、かつ、ハミング重みの小さい符号語の個数が少ないＢ，Ｃの値を１組、選出する。
【００５７】
ＰにこのＢ，Ｃの値を対応させ、パラメータ値組（Ｐ，Ｂ，Ｃ）をパラメータ値表記録部２３に記録しておく。
【００５８】
次に、第１の実施例のインターリーバの構成および動作を説明する。
【００５９】
本実施例は、データ列格納装置としてランダムアクセスメモリ（ＲＡＭ）を備え、パラメータ値探索部、射影分数変換演算部、プルーニング部およびデータ出力制御装置としてデジタル・シグナル・プロセッサ（ＤＳＰ）または中央演算処理装置（ＣＰＵ）を備え、パラメータ値記録部としてリードオンリーメモリ（ＲＯＭ）を備える。
【００６０】
図３（ａ）は、インターリーブ長ＬがＬ＝２０の場合の、本発明の第１の実施の形態によるインターリーブの様子を示す図である。入力データ列はここでは長さ２０のビット列「１０１１１  ０１０００  １００１１  ０１０１１」とする。データ列格納装置に格納されたビット列のインターリーブ長Ｌは、ビット長２０に等しいとする。Ｌ＝２０をＤＳＰまたはＣＰＵのレジスターに渡した後、ＤＳＰまたはＣＰＵの演算によりＲＯＭの素数表を探索し、Ｌ＝２０に対応する素数Ｐ＝１９を選出する。次いでＰ＝１９に対応するパラメータ値組（Ｂ，Ｃ）＝（１０，６）をＲＯＭから選出する。パラメータ値組（Ｐ，Ｂ，Ｃ）＝（１９，１０，６）および値Ｌ＝２０を元に、整数変数Ｉ＝０について［アルゴリズム３］の射影分数変換演算をＤＳＰまたはＣＰＵが行い、ｆ（０）＝１９を算出する。そしてＲＡＭに格納してあったビットのうち第ｆ（０）すなわち第１９ビットをＤＳＰまたはＣＰＵが出力する。次にＩ＝１について射影分数変換演算をＤＳＰまたはＣＰＵが行い、ｆ（１）＝１６を算出し、ＲＡＭに格納してあったビットのうち第ｆ（１）すなわち第１６ビットをＤＳＰまたはＣＰＵが出力する。この演算をＩ＝１９まで行い、図３（ａ）の通り、ビット列「１１０１１  １１０１０  ０１１１０  ０００１０」を出力し終えてインターリーブ処理を完了する。
【００６１】
次に、第１の実施例のインターリーバの性能について説明する。
図３（ｂ）は、インターリーブ長Ｌが１６０，３２０，４８０，６４０である場合に、上記の方法で探索し決定したパラメータ値組（Ｐ，Ｂ，Ｃ）の表である。
【００６２】
図３（ｃ）は、インターリーブ長Ｌ＝６４０のとき、ブロックインターリーバ、素数インターリーバおよび（Ｐ，Ｂ，Ｃ）＝（６４１，４５２，１２５）の本発明の第１の実施の形態のインターリーバのそれぞれを、ターボ符号化・復号方式に組み込んだ場合の、信号対ノイズの電力比（ＳＮ比）とビット復号誤り率（ＢＥＲ）の関係をシミュレーション調査し、グラフにしたものである。
【００６３】
図３（ｃ）において、ＢＩＬ６４０のグラフはブロックインターリーバの、ＰＩＬ６４０のグラフは素数インターリーバの、ＰＦＩＬ６４０のグラフは本発明の第１の実施の形態のインターリーバの、それぞれＳＮ比−ＢＥＲ特性を示す。
【００６４】
グラフを参照すると、ビット復号誤り率が１０のマイナス５乗までは、本発明の第１の実施の形態によるインターリーバはブロックインターリーバよりも優れ、素数インターリーバと同等の性能であることが読み取れる。
【００６５】
（第２の実施例）
次に、本発明の第２の実施例について図を参照して説明する。第２の実施例は、本発明の第２の実施の形態に対応する。第２の実施例は、［アルゴリズム４］の射影代数曲線として、射影直線を採用したものである。このとき［アルゴリズム４］の自己同型写像は、射影分数変換と呼ばれる写像に限定されるのはよく知られている。また射影直線が定義されている体は任意の有限体でよいが、ここでは最も演算量が少ない例を説明するため、Ｐを素数として射影直線がモジュロＰの有限体上で定義されているとする。以上の条件下で、［アルゴリズム４］の射影代数曲線として射影直線を採用したアルゴリズムを［アルゴリズム４−１］として次に説明する。
［アルゴリズム４−１］
「入力インターリーブ長Ｌに応じ、パラメータＭ，Ｐの値を、Ｍ×（Ｐ＋１）＞＝Ｌを満たす整数、特にＰは素数に取って固定する。σ（Ｊ）を、Ｊ＝０，１，２，・・・，Ｍ−１の並べ替え関数とする。Ａ（Ｊ），Ｂ（Ｊ），Ｃ（Ｊ）を、Ｊ＝０，１，２，・・・，Ｍ−１に対し、整数値を取る関数とする。ただしＢ（Ｊ）のとる値は全て、Ｐで割り切れないとする。
整数列ｆ（Ｉ），  Ｉ＝０，１，２，・・・，Ｍ×（Ｐ＋１）−１、を次の式で定義する。
ｆ（Ｉ）＝（Ｐ＋１）×σ（Ｉ％Ｍ）＋Ｂ（σ（Ｉ％Ｍ））／（［Ｉ／Ｍ］＋Ａ（σ（Ｉ％Ｍ）））＋Ｃ（σ（Ｉ％Ｍ））
ただし、Ｉ％Ｍは整数Ｉを整数Ｍで割った余りを、［Ｉ／Ｍ］はＩをＭで割った商を、その他の加減乗除はモジュロＰの有限体の四則演算を、それぞれ表す。」
【００６６】
図４に示すパラメータ値表記録部２２には、インターリーブ長Ｌの可変範囲に応じて［アルゴリズム４−１］の演算に必要なパラメータの値（Ｍ，Ｐ）の表を記録しておく。記録しておくべきパラメータの値の決定、および関数σ（Ｊ），Ａ（Ｊ），Ｂ（Ｊ），Ｃ（Ｊ）の定義を、一方法として次のようにする。
（１）Ｍは、２×Ｌ＾（１／３）以下の最大の整数とする。
（２）σ（Ｊ）は、σ（Ｊ）＝Ｍ−１−Ｊ，Ｊ＝０，１，２，・・・，Ｍ−１，とする。
（３）Ａ（Ｊ）は、Ａ（Ｊ）＝Ｍ−１−Ｊ，Ｊ＝０，１，２，・・・，Ｍ−１，とする。
（４）Ｂ（Ｊ）は、Ｂ（Ｊ）＝Ｊ＋１，Ｊ＝０，１，２，・・・，Ｍ−１，とする。
（５）Ｃ（Ｊ）は、Ｃ（Ｊ）＝Ｍ−１−Ｊ，Ｊ＝０，１，２，・・・，Ｍ−１，とする。
【００６７】
この関数の定義の下で［アルゴリズム４−１］は次の式になる。
［アルゴリズム４−１−１］
「ｆ（Ｉ）＝（Ｐ＋１）×（Ｍ−１−（Ｉ％Ｍ））＋（（Ｍ−（Ｉ％Ｍ））／（［Ｉ／Ｍ］＋（Ｉ％Ｍ）））＋（Ｉ％Ｍ）」
【００６８】
第２の実施例のインターリーバの構成および動作は、第１の実施例のインターリーバと同様である。
次に、第２の実施例のインターリーバの性能について説明する。
【００６９】
図６は、インターリーブ長Ｌ＝６４０のとき、ブロックインターリーバ、素数インターリーバ、第１の実施例の［アルゴリズム３−１］で（Ｐ，Ｂ，Ｃ）＝（６４１，４５２，１２５）としたインターリーバ、および第２の実施例の［アルゴリズム４−１−１］のインターリーバのそれぞれを、ターボ符号化・復号方式に組み込んだ場合の、ＳＮ比とＢＥＲの関係をシミュレーション調査しグラフにしたものである。
【００７０】
図６において、ＢＩＬ６４０のグラフはブロックインターリーバの、ＰＩＬ６４０のグラフは素数インターリーバの、ＰＦＩＬ６４０のグラフは第１の実施例のインターリーバの、ＢＰＦＩＬ６４０のグラフは第２の実施例のインターリーバのＳＮ比−ＢＥＲ特性を示す。
【００７１】
グラフを参照すると、ビット復号誤り率が１０のマイナス６乗までは、本発明の第２の実施例によるインターリーバはブロックインターリーバよりも優れ、素数インターリーバと同等の性能であることが読み取れる。
【００７２】
またビット復号誤り率が１０のマイナス５乗より低い領域では、本発明の第２の実施例によるインターリーバは本発明の第１の実施例によるインターリーバよりも優れていることが読み取れる。
【００７３】
（第３の実施例）
次に、本発明の第３の実施例について説明する。第３の実施例は、本発明の第１の実施の形態に対応する。第３の実施例は、［アルゴリズム３］の射影代数曲線として、楕円曲線を採用したものである。
【００７４】
Ｆを体とし、ＣをＦ上で定義される楕円曲線とするとき、ＣのＦ−有理点の集合Ｅは、Ｆ上の有理式で記述できる加法を持つ群構造を有するのはよく知られたことである。Ｅから或る点Ｑを取り、Ｅの任意の点Ｘに対し点（Ｘ＋Ｑ）を対応させる写像は、ＣのＦ上で定義される自己同型写像であり、Ｑ−ｔｒａｎｓｌａｔｉｏｎと呼ばれている。これをτ＿Ｑと書くことにする。特にＦが有限体のときＥは必ず有限集合であり、有限個の有理点とＱ−ｔｒａｎｓｌａｔｉｏｎを用いてインターリーバのアルゴリズムを構成できる。［アルゴリズム３］の射影代数曲線として楕円曲線を採用したアルゴリズムを［アルゴリズム３−２］として次に説明する。
［アルゴリズム３−２］
「入力インターリーブ長Ｌに応じ、パラメータである有限体Ｆ、Ｆ−有理点の個数ＭがＬ以上である楕円曲線Ｃ、Ｆ−有理点の一つＱ、ＣのＱ−ｔｒａｎｓｌａｔｉｏｎτ＿Ｑを取る。Ｆ−有理点をＯ，Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）とする。ただしＯは楕円曲線Ｃの加法群の零元で、無限遠点である。楕円曲線の（Ｘ，Ｙ）−アフィン平面内部分の表示を、
（＊）Ｙ＾２＋Ａ＿１・Ｘ・Ｙ＋Ａ＿３・Ｙ＝Ｘ＾３＋Ａ＿２・Ｘ＾２＋Ａ＿４・Ｘ＋Ａ＿６
とする。
ここで、Ａ＿１，Ａ＿２，Ａ＿３，Ａ＿４，Ａ＿６はＦの元である。点Ｑの座標を（Ｘ＿Ｑ，Ｙ＿Ｑ）、点Ｐ＿Ｉの座標を（Ｘ＿Ｉ，Ｙ＿Ｉ）とする。点Ｐ＿Ｉのτ＿Ｑによる像Ｐ＿Ｊ＝τ＿Ｑ（Ｐ＿Ｉ）＝Ｐ＿Ｉ＋Ｑは、Ｐ＿Ｊの座標を（Ｘ＿Ｊ，Ｙ＿Ｊ）とするとき、次の有理式に従って定まる。
（１）Ｘ＿Ｉ＝Ｘ＿ＱかつＹ＿Ｉ＋Ｙ＿Ｑ＋Ａ＿１・Ｘ＿Ｑ＋Ａ＿３＝０のとき、
Ｐ＿Ｊ＝Ｏ，
（２−１）Ｘ＿Ｉ＝Ｘ＿ＱかつＹ＿Ｉ＋Ｙ＿Ｑ＋Ａ＿１・Ｘ＿Ｑ＋Ａ＿３！＝０のときは、
λ＝（３・Ｘ＿Ｉ＾２＋２・Ａ＿Ｑ・Ｘ＿Ｉ＋Ａ＿４−Ａ＿１・Ｙ＿Ｉ）／（２・Ｙ＿Ｉ＋Ａ＿１・Ｘ＿Ｉ＋Ａ＿３），
ν＝（−Ｘ＿Ｉ＾３＋Ａ＿４・Ｘ＿Ｉ＋２・Ａ＿６−Ａ＿３・Ｙ＿Ｉ）／（２・Ｙ＿Ｉ＋Ａ＿１・Ｘ＿Ｉ＋Ａ＿３）
とおき、
（２−２）Ｘ＿Ｉ！＝Ｘ＿Ｑのときは、
λ＝（Ｙ＿Ｑ−Ｙ＿Ｉ）／（Ｘ＿Ｑ−Ｘ＿Ｉ），
ν＝（Ｙ＿Ｉ・Ｘ＿Ｑ−Ｙ＿Ｑ・Ｘ＿Ｉ）／（Ｘ＿Ｑ−Ｘ＿Ｉ）
とおき、
Ｘ＿Ｊ＝λ＾２＋Ａ＿１・λ−Ａ＿２−Ｘ＿Ｉ−Ｘ＿Ｑ，
Ｙ＿Ｊ＝−（λ＋Ａ＿１）・Ｘ＿Ｊ−ν−Ａ＿３
整数列ｆ（Ｉ），Ｉ＝０，１，２，・・・，Ｍ−１、を次の式で定義する。
τ＿Ｑ（Ｐ＿Ｉ）＝Ｐ＿Ｊのとき、ｆ（Ｉ）＝Ｊ
ただし、加減乗除は、有限体Ｆの四則演算を表す。」
【００７５】
第３の実施例のインターリーバの構成および動作は、第１の実施例のインターリーバと同様である。［アルゴリズム３−２］に必要なパラメータ値のうち、楕円曲線ＣのＦ−有理点Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）の見つけ方、順序の付け方、および整数列ｆ（Ｉ）の定義の仕方について、一方法を説明する。（０）アフィン平面Ｆ×Ｆの点に順序付けを行い、Ｒ＿１，Ｒ＿２，・・・，Ｒ＿Ｎとする。例えば、Ｆの標数をＰとするときＦの元にＰ進数を１対１に対応させることができるが、Ｐ進数としての大小関係によってＦの元に順序付けを行い、辞書式順序によってＦ×Ｆに順序付けを行う。
（１）パラメータＩ，Ｋの初期値をＩ＝Ｋ＝１とする。
（２）Ｒ＿Ｋの座標が楕円曲線Ｃの方程式（＊）を満たすかどうか検査する。
（３）（３−１）満たしていれば点Ｒ＿Ｋを点Ｐ＿Ｉとし、Ｉ，Ｋの値を１だけ増す。
（３−２）満たしていなければＫの値を１だけ増す。
（４）（２）、（３−１）、（３−２）を繰り返し、Ｉの値がＭ−１となったら終了する。
（５）点Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）の座標をメモリに保持しておく。
（６）［アルゴリズム３−２］に従って点Ｐ＿Ｉのτ＿Ｑによる像の点の座標を算出し、Ｐ＿１，Ｐ＿２，・・・，Ｐ＿（Ｍ−１）の座標と比較して、像の点がＰ＿Ｊであったらｆ（Ｉ）＝Ｊとする。
【００７６】
【発明の効果】
本発明のインターリーバは、整数列ｆ（Ｉ）を生成するアルゴリズムに、［アルゴリズム３］［アルゴリズム４］のような有限体上で定義される射影代数曲線の自己同型写像を組み込んだものである。
【００７７】
本発明の第１の効果は、整数列ｆ（Ｉ）を生成するアルゴリズムとして、パラメータを組み込んだアルゴリズムとすることにより、可変なインターリーブ長に対応してリアルタイムにインターリーブパターンを生成することを可能とする点にある。
【００７８】
第２の効果は、アルゴリズムが単純な式で記述できるため、実装の際の処理演算量・メモリ量を小規模に抑えられる点にある。
【００７９】
第３の効果は、アルゴリズムが有限個の点をランダムに並び替えるアルゴリズムであるため、実装の際の処理演算量・メモリ量を小規模に抑えられるにもかかわらず、データ復号誤り率で１０のマイナス５乗あるいはマイナス６乗のデータ伝送品質を達成するのに必要な送信電力において優れている点にある。
【００８０】
第４の効果は、アルゴリズムが単純な式で記述できるため、インターリーバのデータ出力制御装置がＩ番目の出力を演算部に要求すると、整数列ｆ（Ｉ）全体の算出が完了せずとも整数値ｆ（Ｉ）を出力でき、インターリーブ後の第Ｉデータの出力が可能である点にある。
【００８１】
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示す流れ図である。
【図３】本発明の第１の実施例を示す図である。
【図４】本発明の第２の実施の形態の構成を示すブロック図である。
【図５】本発明の第２の実施の形態の動作を示す流れ図である。
【図６】本発明の第２の実施例を示す図である。
【符号の説明】
１  データ列格納装置
２  インターリーブパターン演算装置
３  データ出力制御装置
２１  パラメータ値探索部
２２  パラメータ値表記録部
２３  自己同型写像演算部
２４  プルーニング部
２５  ＢＡ変換演算部
【図１】
0004507443.tif 000002
【図２】
0004507443.tif 000003
【図３】
0004507443.tif 000004
【図４】
0004507443.tif 000005
【図５】
0004507443.tif 000006
【図６】
0004507443.tif 000007