(57)【特許請求の範囲】
【請求項１】
ｍ個の数の組の逐次疑似乱数順列を発生する回路装置において、この回路装置が、
制御信号を発生する制御手段を具えて、前記制御信号のそれぞれが、s＋1個の整係数ｆi(i＝0,...,s)の各組を指定して、ｓは２以上の自然数であり、
前記回路装置がさらに、各サイクルが前記制御信号のそれぞれの制御下にある繰り返しサイクルで動作して、前記サイクル中に、次式：
0003773263.tif 000011
ここに、ｆiは前記制御信号のそれぞれによって指定される整係数であり、
αは、前記すべてのサイクルに共通の整数であり、かつｍのすべての素因数で整除され、そしてｍに対してｓに等しいポテンシーs（α）を有する；
に相当する前記逐次順列のそれぞれを計算する演算手段を具えていることを特徴とする回路装置。
【請求項２】
上記制御信号の少なくとも１つがs＋1個の整係数の組を指定して、結果的な順列が、前記逐次順列のうちの少なくとも２つの順列の合成に相当するようにしたことを特徴とする請求項１に記載の回路装置。
【請求項３】
ｍが４の倍数である場合に、αも４の倍数であることを特徴とする請求項１または２に記載の回路装置。
【請求項４】
前記ポテンシーｓが２であることを特徴とする請求項１、２、または３に記載の回路装置。
【請求項５】
ｆ0以外のすべての整係数ｆiの各組のうち少なくとも１つが互いに等しく、かつｍとの最大公約数が１であることを特徴とする請求項１〜４のいずれか１項に記載の回路装置。
【請求項６】
前記演算手段が前記各サイクル中に、逐次順列をなす数を、逐次的ステップｎ＝0,...,m-1で中間変数ｕ(i)(i＝0,...,s)から計算するように、前記演算手段を構成して、
前記各サイクルの最初に、前記ステップのうちの最初のステップで、中間変数ｕ(0)をｆ0に初期化して、
前記ステップのうちの最初のステップで、中間変数ｕ(i)(i＝1,...,p-1)をｕ(i)＝ｆiαi-1に初期化して、
前記逐次的ステップのうちの最初のステップ以外の各ステップで、前記各中間変数ｕ(i)のうちｕ(s)以外の値を、先行ステップにおける前記各中間変数のモジュロ和（ｕ(i)＋ｕ(i+1)mod ｍ）で置き換えて、
前記各逐次ステップｎ＝0,...,m-1における中間変数ｕ(0)の値を、前記逐次順列をなす数σ(n)として用いることを特徴とする請求項１〜５のいずれか１項に記載の回路装置。
【請求項７】
前記回路装置がｓ個の再帰ユニットを縦続したものを具えて、各再帰ユニットがそれぞれのメモリ素子及びモジュロ加算器を具えて、前記縦続における前端の再帰ユニットのモジュロ加算器が、前記前端の再帰ユニットのメモリ素子及びさらなるメモリ素子に結合した第１被加数入力を有し、前記前端の再帰ユニット以外の、特定の各再帰ユニットのそれぞれのモジュロ加算器が、前記特定の再帰ユニットのメモリ素子に結合した第１被加数入力と、前記縦続における前記特定の再帰ユニットの前の再帰ユニットのメモリ素子に結合した第２被加数入力とを有し、前記各再帰ユニットのそれぞれのモジュロ加算器の総和出力を、この再帰ユニットのそれぞれのメモリ素子の入力に結合して、前記演算手段が、前記各サイクルの最初に、前記縦続における最終の再帰ユニットのメモリユニットの内容をｆ0に初期化し、そして、前記縦続における前記最終の再帰ユニットに順次先行する再帰ユニットのメモリユニットの内容をそれぞれｆiαi-1(i＝1,...,s-1)に初期化して、他のメモリユニツトをｆsαs-1に初期化するように、前記演算手段を構成して、前記逐次的ステップｎ＝1,...,m毎に、前記各再帰ユニットのそれぞれのメモリ素子に、それぞれの前記モジュロ加算器の出力をロードして、最終の再帰ユニットのメモリユニットが、前記逐次的ステップにおいて乱数σ(n)を出力することを特徴とする請求項６に記載の回路装置。
【請求項８】
前記回路装置が、
−メモリを具えて、ｍ個の数の組からの各数が、前記メモリ中のそれぞれの位置を参照するアドレスに対応し、
−前記回路装置がさらに、各特定のサイクル中に、データ項目の組のそれぞれを前記メモリに書き込み、そして前記特定のサイクルの後続サイクルのうち直後のサイクル中に、前記データ項目の組のそれぞれを前記メモリから読み出す読み出し／書き込みユニットを具えて、前記データ項目の組のそれぞれを、前記特定のサイクル中に発生した順列に対応するアドレス順序で書き込んで、直後のサイクル中に発生した順列に対応するアドレス順序で読み出すことを特徴とする請求項１〜７のいずれか１項に記載の回路装置。
【請求項９】
前記特定のサイクル中に計算した順列の逆順列と、前記直後のサイクル中に計算した順列との合成が、前記特定のサイクルに依存することなく共通の順列に等しくなるように、整係数ｆiの組を選択することを特徴とする請求項８に記載の回路装置。
【請求項１０】
前記データ項目の組を、誤り防止符号の形で発生する符号器を具えていることを特徴とする請求項８または９に記載の回路装置。
【請求項１１】
前記データ項目に適用した誤り防止符号に従って、前記データ項目の組を、前記データ項目を読み出した順序で訂正する誤り訂正器を具えていることを特徴とする請求項８または９に記載の回路装置。
【請求項１２】
ｍ個の項目の組を処理する方法において、この方法が、
−前記組を受け取るステップを具えて、前記組内の各項目を、前記組内の第１順位番号と共に受け取り；
−前記方法がさらに、特定の項目の前記第１順位番号の第１関数に従って、前記各特定の項目に記憶媒体内のそれぞれの位置を割り当てるステップと；
−前記記憶媒体内の、前記各項目に割り当てたそれぞれの位置に、前記各特定の項目を記憶するステップと；
−記憶位置の第２関数に従って、前記各記憶位置に第２順位番号を割り当てるステップと；
−前記記憶媒体から前記項目を検索するステップと；
−特定の記憶位置から検索した前記特定の項目を、前記特定の位置の前記第２順位番号に従って処理するステップとを具えて、
前記第１関数及び前記第２関数を、それぞれ次式：
0003773263.tif 000012
ここに、ｎ1は前記順位番号であり、
ｎ2は、記憶位置の順序における前記記憶位置の位置番号であり、
ｆi及びｇi（i＝0,...,s）は、各々がs＋1個の整数から成るそれぞれの集合からの整係数であり、
αは、ｍのすべての素因数で整除される整数であり、かつｍに対してｓに等しいポテンシーを有する；
に従って計算することを特徴とする処理方法。
【請求項１３】
ｍが４の倍数である場合に、αが４の倍数であることを特徴とする請求項１２に記載の方法。
【請求項１４】
ポテンシーs（σ）が２であることを特徴とする請求項１２または１３に記載の方法。
【請求項１５】
f0以外のすべてのfiが互いに等しく、かつｍとの最大公約数が１であることを特徴とする請求項１２、１３、または１４に記載の方法。
【請求項１６】
前記各サイクル中に、逐次順列をなす数を、逐次的ステップｎ＝0,...,m-1で中間変数ｕ(i)(i＝0,...,s)から計算し、
前記各サイクルの最初に、前記ステップのうちの最初のステップで、中間変数ｕ(0)をf0に初期化して、
前記ステップのうちの最初のステップで、中間変数ｕ(i)(i＝1,...,p-1)をｕ(i)＝fiαi-1に初期化して、
前記逐次的ステップのうち最初のステップ以外の各ステップで、前記各中間変数ｕ(i)のうちｕ(s)以外の値を、先行ステップにおける前記各中間変数のモジュロ和（ｕ(i)＋ｕ(i+1)mod ｍ）で置き換えて、
前記各逐次ステップｎ＝0,...,m-1における中間変数ｕ(0)の値を、前記逐次順列をなす数σ(n)として用いる
ことを特徴とする請求項１２〜１５のいずれか１項に記載の方法。
【発明の詳細な説明】
本発明は、ｍ個の数の組の逐次疑似乱数順列を発生する回路装置に関するものである。
疑似乱数順列は種々の用途を有する。疑似乱数順列は、誤り（エラー）訂正符号と組み合わせて、符号からのシンボル（記号）を処理する順序を変更するインターリーブ目的で用いることができ、これにより、規則的（システマティック）な誤りに対して誤り防止プロセスをより強固にすることができる。疑似乱数順列は例えば、試験信号発生用の乱数発生器に用いることができる。
連続するいくつかの異なる疑似乱数順列を発生することが往々にして望まれ、これらの疑似乱数順列は、同じ基本疑似乱数順列の異なる合成である。
例えば、一組の項目を順序変更したい場合には、これらの項目を記憶媒体に、１つの記憶位置の順序で書き込んで、これらの項目を前とは異なる記憶位置の順序で、この記憶媒体から取り出す。連続する項目組を順序変更しなければならない際には、記憶空間を節約するためには、前の組の項目を取り出すことによって記憶位置が空く毎に、次の組の項目を記憶位置が空いた順に記憶していき、前の組を完全に読み込む前から次の組の項目を記憶することができる。各組を同じ疑似乱数順列によって順序変更しなければならない際には、このことは、連続する各組が、前の組の記憶位置の順序に適用した疑似乱数順列の合成でなければならない、ということを意味する。
この回路装置は、これらの逐次疑似乱数順列を発生しなければならない。しかし、必要な疑似乱数順列のすべてを発生するには、非常に複雑かつ時間のかかる演算を必要とする。発生が相当簡単な基本疑似乱数順列を用いる際でも、こうした基本疑似乱数順列の合成を発生することの必要性が意味するところは、疑似乱数順列が異なれば計算の複雑性が大幅に異なり、かつ計算時間及び／または必要なハードウェアが非常に高価になることがわかる、ということである。
本発明の目的は特に、同じ基本疑似乱数順列の合成である複数の疑似乱数順列を発生可能な回路装置を提供することにあり、この回路装置は、これらの疑似乱数順列の各々を、同じ一連の演算ステップを実行するのに用いる同じ演算回路で、発生することができ、そして必要な演算回路の構造が簡単である。
本発明の他の目的は、項目を処理する順序が、項目を受け取る順序を疑似乱数順列にした順序であるような、項目を処理する方法を提供することにあり、この順列は、項目を記憶して記憶媒体から検索することによって達成して、記憶媒体の必要量を低減する。
本発明による回路装置が、
−制御信号を発生する制御手段を具えて、各制御信号が"s＋1"個の整係数の組"fi"(i＝0,...,s）を指定して、ここに"ｓ"は２以上の自然数であり、
−この回路装置がさらに、各サイクルが前記制御信号のそれぞれの制御下にある繰り返しサイクルで動作して、前記各サイクル中に、次式に相当する逐次順列のそれぞれを計算する演算手段を具えている。
0003773263.tif 000002
ここに、fiは、前記制御信号のそれぞれによって指定した整係数であり、
αはすべての前記サイクルに共通の整数であり、αはすべてのｍの素因数で整除され、αは、ｍに対して"ｓ"に等しいポテンシーｓ（α）を有する。
数αのｍに対するポテンシーｓ（α）は、
αs０ mod ｍ
なる最小の自然数ｓであり、すなわちαのｓ乗がｍで整除される。
本発明は、本発明に従って発生した順列σ(n)が、数学的意味での「群」を形成する、という認識にもとづくものである。このことは、特定の基本疑似乱数順列の各々を、一組の整係数fiを指定することによって、こうした方法で計算すれば、これらの基本疑似乱数順列の合成のすべてを、そしてその逆順列さえも、単に各順列自身の異なる整係数の組fiを指定することによって、こうした方法で計算することができる、ということを意味する。
本発明はこの認識を用いたものであり、これは、所定の公式に対応する順列を計算し、かつ他の順列を計算するために再使用する演算手段を設けて、各計算は、係数fiの他の組に指定した制御下で行う。これにより、一連の順列、これらの順列の合成、及びこれらの順列の逆順列を、同じ演算手段で逐次計算することができる。
本発明による回路装置の好適例では、前記制御信号のうち少なくとも１つが、(s＋1)個の整係数の組を指定して、結果的な順列が、前記逐次順列のうちの少なくとも２つの順列の合成に相当する。
本発明による回路装置の好適例では、ポテンジーｓが２である。このようにして。前記演算手段の複雑性を最小にしつつ、疑似乱数順列を合理的に発生することができる。しかし、より良好な乱数特性について考慮すれば、例えば３またはそれ以上（４、５等の）より高いポテンシーが好適であり得る。
本発明による回路装置の好適例では、すべての整係数の組fiのうちf0以外の少なくとも１つが、互いに等しく、かつｍとの最大公約数が１である。これにより、特に選択し易い基本順列が提供される（f0は任意である）。（σ（σ(n)）、σ（σ（σ(n)））、等）のように自分自身を用いて、このように発生した順列の合成に相当するより多くの順列を得ることができ、あるいはこの順列の逆順列を得ることができる。このようにして得た順列は一般に、こうした単純な係数fiの組で指定することができない。従って、係数f'iで指定される他の順列でこれらの順列と等しくないものは、前記順列の組のうちの少なくとも１つと共に用いることができる。
本発明による回路装置の好適例では、前記演算手段が前記各サイクル中に、逐次順列をなす数を、逐次的ステップｎ＝0,...,m-1で中間変数ｕ(i)(i＝0,...,s)から計算するように、前記演算手段を構成して、中間変数ｕ(0)は、前記各サイクルの最初に、前記ステップのうちの最初のステップでｆ0に初期化して、中間変数ｕ(i)(i＝1,...,p-1)は、前記ステップのうちの最初のステップでｕ(i)＝ｆ(i)αi-1に初期化して、前記逐次的ステップのうち最初のステップ以外の各ステップにおいて、前記各中間変数ｕ(i)のうちｕ(s)以外の値を、先行ステップにおける中間変数の各モジュロ和（ｕ(i)＋ｕ(i+1)mod ｍ）で置き換えて、前記逐次的ステップｎ＝0,...,m-1における中間変数ｕ(0)の値を、前記逐次順列をなす数σ(n)として用いる。このようにして、逐次順列の値σ(n)の計算に乗算を必要とせずに、順列を計算することができる。乗算を実行する回路は複雑あるいは低速であるので、このことは、順列の計算をより簡単かつ高速にする。
本発明による回路装置のさらなる好適例は、ｓ個の再帰ユニットを縦続（カスケードに）したものを具えて、各再帰ユニットがそれぞれのメモリ素子及びモジュロ加算器を含み、前記縦続における前端の再帰ユニットのモジュロ加算器が、前記前端の再帰ユニットのメモリ素子及びさらなるメモリ素子に結合した第１被加数入力を有し、前記前端の再帰ユニット以外の、特定の各再帰ユニットのそれぞれのモジュロ加算器が、前記特定の再帰ユニットのメモリ素子に結合した第１被加数入力と、前記縦続における前記特定の再帰ユニットの前の再帰ユニットのメモリ素子に結合した第２被加数入力とを有し、各再帰ユニットのそれぞれのモジュロ加算器の総和出力を、当該再帰ユニットのそれぞれのメモリ素子の入力に結合して、前記演算手段が、前記各サイクルの最初に、前記縦続における最終の再帰ユニットのメモリユニット（素子）の内容をｆ0に初期化し、そして、前記縦続における前記最終の再帰ユニットに順次先行する再帰ユニットのメモリユニットの内容をそれぞれｆiαi-1(i＝1,...,s-1)に初期化して、他のメモリユニットをｆsαs-1に初期化するように、前記演算手段を構成して、前記逐次的ステップｎ＝1,...,m毎に、各再帰ユニットのそれぞれのメモリ素子にそれぞれの前記モジュロ加算器の出力をロードして、最終の再帰ユニットのメモリユニットが、前記逐次的ステップにおいて乱数σ(n)を出力する。
一組のデータ項目を１つの順序でメモリに書き込み、その後にこれらのデータをこのメモリから他の順序で読み出すことによって、本発明は一組のデータ項目の疑似乱数順列にとって特に有用になる。いくつかの組をこの方法で順序変更しなければならない際には、メモリ内で、１つの組からのデータ項目を読み込みながら、これらのデータ項目を新たな組のデータ項目で置き換える。この場合には、基本順列の合成を発生することによって、メモリに対するアドレスを毎回発生することが必要になる。前記演算手段はこの目的に非常に適している。従って、本発明による回路装置の好適例は、
−メモリを具えて、"ｍ"個の数の組からの数が、このメモリ中のそれぞれの位置を参照するアドレスに対応し、
−この回路装置がさらに、各特定のサイクル中に、データ項目のそれぞれの組を前記メモリに書き込み、そして前記特定のサイクルに後続するサイクルのうちの直後のサイクル中に、前記データ項目のそれぞれの組を前記メモリから読み出す読み出し／書き込みユニットを具えて、前記データ項目の各組は、特定サイクル中に発生した順列に対応するアドレス順序で書き込み、直後のサイクル中に発生した順列に対応するアドレス順序で読み出す。
本発明による回路装置の好適例では、前記特定のサイクル中に計算した順列の逆順列と、前記直後のサイクル中に計算した順列との合成が、前記特定のサイクルに依存することなく共通の順列に等しくなるように、整係数ｆiの組を選択する。このようにして、各組中のデータ項目を、同じ疑似乱数順列によって順序変更することができる。
データ項目の疑似乱数順列は、誤り防止符号と組み合わせて用いれば特に有用である。このことは、誤りに対して強固な方法で、データ項目を送信あるいは記憶して、その後に受信あるいは検索することを可能にする。
本発明はまた、ｍ個の項目の組を処理する方法を提供し、この方法が：
−前記組を受け取るステップを具えて、この組内の各項目は、この組内の第１順位番号と共に受け取り；
−この方法がさらに、特定の項目の前記第１順位番号の第１関数に従って、前記各特定の項目に記憶媒体内のそれぞれの位置を割り当てるステップと；
−記憶媒体内の、前記各特定の項目に割り当てたそれぞれの位置に、各特定の項目を記憶するステップと；
−記憶位置の第２関数に従って、各記憶位置に第２順位番号を割り当てるステップと；
−前記記憶媒体から項目を検索するステップと；
−特定の記憶位置から検索した特定の項目を、前記特定の位置の前記第２順位番号に従って処理するステップとを具えて、
前記第１関数及び前記第２関数は、それぞれ次式に従って計算する。
0003773263.tif 000003
ここに、
ｎ1は前記順位番号であり、
ｎ2は、記憶位置の順序における前記記憶位置の位置番号であり、
ｆi及びｇi(i＝0,...,s)は、各々がs+1個の整数から成るそれぞれの集合からの整係数であり、
αは、ｍのすべての素因数で整除される整数であり、かつｍに対して"ｓ"に等しいポテンシーを有する。
この方法によれば、記憶媒体を使用することによって、項目の順序を変更して、これらの項目は、記憶媒体内の項目の位置に従って取り扱う。異なる順列、これらの順列の合成、及びこれらの順列の逆順列は、同じαについての前記公式を共に満足する２つの異なる順列に従って、それぞれ記憶及び検索することによって容易に実現することができる。前記項目は例えばデータ項目とすることができるが、組織的に製造する影響を排除したい際には、製造中の製品のような他の物理的項目とすることもできる。例えば、１つの製造元からの製品を、利用可能な組立て拠点のうちの１つに組織的に組み合わせることを防止したいことがある。
以下、本発明及びその利点を、図面を参照して詳細に説明する。
図１に、本発明による回路装置用の順列ユニットを示す。この順列ユニットは入力１及び出力２を具えて、これらの双方が読み出し／書き込み手段３に結合されている。読み出し／書き込み手段３はメモリ５に結合されている。この順列ユニットはアドレス発生器７も具えて、これをメモリ５のアドレス入力に結合する。
この順列ユニットは、クロック（図示せず）の制御下で動作する。各クロックサイクル内に、読み出し／書き込み手段３はメモリ５から、即ちアドレス発生器７が当該サイクルに対して発生したアドレスを有する位置から、データ項目を読み出す。これに続いて、読み出し／書き込み手段３は、入力１で受け取った当該サイクルに対するデータ項目を、この位置に書き込む。
連続するクロックサイクル中に、メモリ５に対する他のアドレスについて、このことを繰り返す。このようにして、それぞれのデータ項目をメモリ５の各位置から逐次読み出して、出力２に供給する。これらのデータ項目がまとまって、出力２のデータ項目のブロックを構成する。さらに、前記入力で受け取ったブロック内の各データ項目を、メモリのそれぞれの位置に書き込む。
連続するブロックについてこのことを繰り返して、アドレス発生器７が前記メモリのすべてのアドレスを発生する。このようにして、各ブロックを逐次メモリに書き込んで、再びメモリから読み出す。前記アドレス発生器は、これらのアドレスをブロック毎に独自の順序で発生する。結果として、各ブロックのデータ項目を、書き込んだ順序とは異なる順序で読み出すことになる。
この順列ユニットは例えば、誤り防止符号を利用する伝送システム内のインターリーブ器あるいはデインターリーブ（インターリーブ解除）器として用いることができる。
図２に、こうした伝送システムを示す。このシステムは、符号器（エンコーダ）10、インターリーブ器12、変調器14、伝送チャンネル、復調器16、デインターリーブ器18、及び復号器（デコーダ）20を具えている。
動作中には、符号器10の入力にデータを供給する。前記符号器は、これらのデータを誤り訂正符号に符号化する。例えば畳み込み（コンボリューション）符号またはターボ符号のような、既知のすべての誤り訂正符号を、この目的に使用することができる。符号化したデータをブロックに分割して、各ブロックがシンボル（記号）の論理系列を含む。
復号器20は前記符号器に対応して、符号器10から復号器20への伝送中に生じたシンボル誤りを訂正する。誤り訂正符号は、論理系列にわたって分散して発生するシンボル誤りを適切に訂正できるようなものにする。バースト誤り、即ち論理系列内で、連続する多数のシンボルが正しくないような誤りは、容易に訂正しにくい。
変調器14は、同時に送信される多数の周波数チャンネルを有する信号を発生する。各ブロックのシンボルを多数のグループに再分割する。各グループは１つの周波数チャンネルに対応し、グループ内のシンボルの情報は、対応する周波数チャンネルで伝送する。このことは例えば、各グループのシンボルを数として解釈して、これらの数を一列に並べて、この列のＦＦＴ（高速フーリエ変換）を求めることによって実現することができる。これに続いて、このＦＦＴの結果を、例えば無線地上放送チャンネルのような伝送チャンネル経由で送信する。後続のブロックについても、ＦＦＴ及び送信を繰り返す。このことはＯＦＤＭ（直交周波数分割多重）技術に対応して行い、この技術自体は既知である。
復調器16は変調器14に対応する。この復調器は、種々の周波数チャンネルを同時に受信してシンボルの群を再構成して、各群はそれぞれの周波数チャンネルで送信される。ＯＦＤＭ技術によれば、このことは例えば、受信した信号の逆ＦＦＴを求めて、前記の数を再構成し、従ってこれらの数から群を再構成することによって実現することができる。インターリーブ器12は、論理系列内で互いに直接連続するシンボルがほとんど常に、異なる周波数チャンネルで変調されることを保証すべく動作する。これらの（中間周波数を有するチャンネルの意味での）チャンネルの間隔を０よりも大きくして、隣接するシンボルが非隣接のチャンネルに入るようにすることが好ましい。このことは、単一チャンネルあるいは隣接する多数のチャンネルの障害が、論理系列中にバースト誤りを発生させないことを保証する働きをする。
デインターリーブ器18はインターリーブ器12に対応し、インターリーブ器12と逆の動作を行って、（シンボル誤り以外の）論理系列を復号器20に供給する前に、順序に関して再構成する。
インターリーブ器12は、論理系列中で互いに隣接するシンボル対の各々を、多数のチャンネル分の距離だけ互いに離して位置付ける。これらの距離はそれぞれ異なる値を有して、これらの異なる距離がおよそ等頻度で発生することを保証する。結果として、システムは、周波数チャンネルの周期的システムにおける劣悪な受信に至る伝送チャンネルの障害に耐えることができる。（周期的システムとはここでは、劣悪な受信を、周波数の関数として、即ち同じチャンネル数の後に毎回反復するシステムを意味する。）
互いどうしが非常に近接したシンボル対であって、こうした対の両シンボルに同時に発生する誤りが、バースト誤り訂正の問題を生じさせ得るようなシンボル対も１つおきに、多数のチャンネル分の距離だけ互いに離して位置付ける。これらの距離もそれぞれ異なる値を有して、異なる距離がおよそ等頻度で発生することを保証することが好ましい。
伝送チャンネルの例を示す。本発明から逸脱することなく、他のチャンネル変調技術を用いることができる。
順列群Λα
アドレス発生器７によってブロック毎にメモリ５のアドレスを発生する各順序によって、各ブロックのデータ項目を順序変更する方法が決まる。本発明は、列(σ(0),σ(1),...,σ(m-1))内のアドレスσ(i)を利用する（ｍはブロック内のデータ項目数であり、σ(i)は、異なるｉについて互いに異なる。）。こうした列を順列と称し、参照記号σで表わす。本発明は、次式により定義される集合Λαの一部を形成する順列σを明示的に利用し、
0003773263.tif 000004
この式は次式の二項係数を有する。
0003773263.tif 000005
式中のαは、ｍのあらゆる素因数で整除され、またｍが４で整除される場合には４でも整除されるように選択する。例えばｍが100（素因数は2及び5）であれば、αは20の任意の倍数とすることができる。"ｓ"はαの「ポテンシー」であり、即ち、
αs=0  mod ｍ
なる最小の自然数である。
従って上記の例では、α＝20であれば、α2＝400がｍ＝100で整除されるので、ｓは２である。"ｍ"のすべての素因数を１回だけ含むαが、可能な最大ポテンシーｓを有する。このαのポテンシーは、ｍの素因数のうち最大の冪を有するものに等しい。例えば、ｍ＝45＝3*3*5、α＝15＝3*5であれば、素因数３が最大の冪(2)を有するので、ｍは最大ポテンシーｓ＝２を有する。従って、少なくとも２のポテンシーを有するαを得るためには、ｍが少なくとも１つの素数の２乗で整除されるべきであり：素数であるｍの値では２以上のポテンシーが不可能であり、異なる素数の積であるｍの値でも２以上のポテンシーが不可能である。従って、例えばポテンシー２を有するαが必要な場合には、ｍを1、2、3、5、6＝2*3、7、10＝2*5、等にすることはできない。４でも、ポテンシー２を有するαは不可能である。
従って、２以上のポテンシーを有するαの値を、余裕をもった選択を可能にするためには、ｍは適宜大きくすべきであり、多くの異なる素因数を含むべきである。有限のポテンシーを有するすべてのαの値は、基本的なαの値の整数倍である。この基本的なαの値は、ｍのずべての素因数の積であり、可能な最大ポテンシーを有する。
数ｆiは、集合Λαからの順列σ（ｉ）が０からｍ−１の数を通るように選定した自然数である。（例えば、すべてのｉ＞０についてｆi＝１であるか、あるいはｉ＞０かつｉがｍと互いに素であればｆiはｉと独立であり、これは、ｆiの最大公約数が１であることを意味し；ｆ0であれば、これは線形合同アルゴリズムから得ることが可能な順列に対応する。）
集合Λα内では、σ(n)の多項式は、列内の位置ｎに依存する。Λα内では、この多項式の次数は最大でもｓである。疑似乱数順列については、ｓが２次またはこれより高次であることが好ましい。乱数特性は、異なる順列を発生して最良のものを選定することによって最適にすることができる。
ここで、集合Λαの要素の積を次式のように定義し：積σ○πは、順列σ及びπの合成である。
（σ○π）(n)＝σ（π(n)）
集合Λαが、この積について（数学的な意味での）群を構成することは証明可能である。このことは、Λαが恒等順列（恒等置換）を含み（ｆ0＝０、ｆｌ＝１、他のすべてのｆi＝０）、Λαからの２つの順列の合成がΛαに属し、そしてΛαからの各順列について、その逆順列もΛαに属する、ということを意味する。（このことは、ｍが４で整除される場合にαが４で整除されないΛαについても成り立ち、またΛαを順列に限定しない場合にも成り立つ。）
積σ○πを記述する数ｆiの計算は原則として、代入の問題である。順列σ及びπは、それぞれ数ｇi及びｈiを用いて次式のように表すことができる。
0003773263.tif 000006
従ってこの積は、次式のように、π(n)をσについての式に代入することによって計算することができる。
0003773263.tif 000007
二項係数を算出することによって、σ○πについての陽関数表現が得られる。Λαの群特性は、自然数ｆiを用いて次式のように再構成する（書き直す）ことができることを保証する。
0003773263.tif 000008
これらの数は前記陽関数表現から、例えば差分を用いることによって計算することができる。ｎの関数π（例えば順列）の差分Δπ(n)は、Δπ(n)＝π(n+1)−π(n)によって定義される。これを、Λαからの順列に反復して適用すれば次式が得られ、
［Δiπ(n)］n=0＝ｈiαi-1
ここでもπ(0)＝ｈ0が成り立つ。同様にして、積σ○πについても、次式が成り立ち、
［Δi（σ○π）(n)］n=0＝ｆiαi-1
そしてσ○π(0)＝ｆ0である。これをσ○πについての陽関数表現に適用すると、数ｆiが得られる。従って、ｍ＝100及びα＝20である例では、σ(n)をｇ0＝ｇ1＝ｇ2＝１によって指定すれば、σ(0)＝1、σ(1)＝2、σ(2)＝23、...、σ(23)＝84となり、これより、σ（σ(0)）＝2,σ（σ(1)）＝23、及びσ（σ(0)）＝84となる。このことより、合成σ（σ(n)）はｆ0＝2、ｆ1＝21、ｆ2＝2によって指定される。同様に計算して、σ（σ（σ(n)））はｆ0＝23、ｆ1＝61、ｆ2＝3によって指定することができる。
順列σの逆順列πを記述する数ｈiは、例えば積σ○π＝ｅに対するｆiについての式からの解によって得られる。あるいはまた、σnが恒等順列となるまで（これが可能なことは群特性によって保証されている）、σn＝σσn-1を逐次のｎについて計算し、ここでσ1＝σであり；従ってσn-1がσの逆順列になる。
Λαからの順列は、数ｆiから出発する再帰的な発生器によって簡単に発生することができる。
図３に再帰的アドレス発生器を示し、これはαがポテンシーs＝２を有する場合について、Λαから順列を発生する。破線で示すように、このアドレス発生器は２つのセクション（区分）Ａ及びＢを具えている。セクションＡは、第１レジスタ20、第１加算器22、第１初期化器21、及び第１マルチプレクサ23を具えている。第１レジスタ20の出力が、アドレス発生器の出力を構成する。この出力を、第１加算器22の入力に結合する。第１加算器22の出力及び第１初期化器21を、第１マルチプレクサ23を介して第１レジスタ20の入力に結合する。
セクションＢは第２レジスタ24、第２加算器26、第２初期化器25、及び第２マルチプレクサー27を具えている。第２レジスタ24の出力を、第１加算器22のさらなる入力に結合し、第２加算器26の入力にも結合する。第２加算器26は、メモリ28からの入力信号も受信する。第２加算器26の出力及び第２初期化器25を、第２マルチプレクサー27を介して第２レジスタ24の入力に結合する。
図４に、モジュロ加算器の具体例を示す。加算器22及び加算器26はモジュロ加算器として構成する。図４には、２進（バイナリ）加算器22a、減算器22b、及びマルチプレクサ22cを示す。モジュロ加算器22の入力が、２進加算器22aの入力を構成する。２進加算器22aの出力を、減算器22b及びマルチプレクサ22cに結合する。減算器22bの出力は、マルチプレクサー22cにも結合する。減算器22bの借り出力を、マルチプレクサ22cの制御入力に結合する。マルチプレクサーの出力は、モジュロ加算器22の出力を構成する。
２進加算器22aは、動作中に入力信号の和を計算する。減算器22bは、この和から"ｍ"を減算する。減算結果が０未満であれば、マルチプレクサ22cは単にこの和を送信する。減算結果が０より大きければ、減算器は、この和の代わりにこの減算結果を送出する。
図３のアドレス発生器は、データ項目クロック（図示せず）と同期して動作し；このクロックは、データ項目を読み出し及び書き込む際に毎回、パルスを出力する。レジスタ20及び24の内容は、このパルスに応答して更新される。ブロック内のｎ番目のデータ項目を処理している時点での、レジスタ20及び24の内容をｕn及びｖnとすれば、次式が成り立つ。
ｕn+1＝ｕn＋ｖnmod ｍ
ｖn+1＝ｖn＋ｄ mod ｍ
ｎ＝０については、レジスタ20、24の内容を初期化器21、25によって初期化する。
そして、第１レジスタ20、第２レジスタ24をｆ0、ｆ1に初期化して、メモリが前記第２加算器にｆ2αを供給すると、前記アドレス発生器は次式の級数を発生する。
0003773263.tif 000009
より高いポテンシーの値αを利用する際には、セクションＢのような部分を複数、セクションＡとセクションＢとの間に縦続（カスケード）配置する。そして、セクションＡからＢまでの間に縦続するセクションの順に、（Ａ、Ｂも含めて）ｉ＝1,...,s-1と番号付けした、これらの種々の部分内のレジスタを、ｆiαi-1の値に初期化する。
Λαから順列を発生するために使用可能な他の差分技法は、次式で定義される変形した差分Δλを利用する。
Δλσ(n)＝σ(n+1)−（１＋αλ）σ(n)
Δλσ(n)についての式によってσ(n+1)を計算すべき場合には、乗算が必要になる。しかしλを適切に選定すれば、この計算に必要な再帰的セクションの数を限定することができる。
順列群Λαの応用
Λαの群特性は、順列を合成すると、結果的な順列は再び、Λαからの順列の簡単な形に書けることを保証する。本発明はこの要点を利用して、疑似乱数順列を演算するための簡単な順列ユニットを構成する。
第１の応用は、各ブロック上で同じ順列π(n)を演算することを意図した順列ユニットに関するものである。この順列ユニットは、所定のブロックのデータ項目を一連のアドレスσj(n)に従って（即ち前のブロックのデータ項目を読み出した順序で）書き込む。これに続いて、この順列ユニットは一連のアドレスσj+1(n)に従ってデータ項目を読み出す。そして、ｎ番目のデータ項目として書き込んだデータ項目は、π(n)番目のデータ項目として読み出さなければならない。このことは、σj+1(n)＝π（σj(n)）の場合であり、従ってσj+1＝π○σjの場合である。連続するブロックの順列に対しては、ｊを増加させる毎にこのことを繰り返す。Λαからの順列π及びσjを用いる際には、σj+1も常にΛαに属する。結果として、すべてのσjを簡単に発生することができる。この目的のためには、例えば図３に示すアドレス発生器か、あるいはまた、Λαからの順列の要素についての陽関数表現を利用することができる。
第２の応用は、連続するブロックに対して異なる順列πj(n)、πj+1(n)を演算することに関するものである。従ってσj+1(n)＝πj（σj(n)）が成り立つ。順列πj(n)、πj+1(n)を共に、同じΛαから選択した場合には、σjの列もΛαからの順列となり、簡単に発生することができる。
逆に、σj(j＝1,...)のすべてを１つの集合Λの要素として選択すれば、連続するブロックｊに対する順列πj及びその逆順列は、このΛの要素であることが保証されて、これらの順列は簡単に発生することができる。このことは例えば、データ項目"ｎ"を出力２から送信する毎に、各データ項目をどのように順序変更しているかを信号伝送することが必要な際に、即ちこのデータ項目を入力１で受信した際に、このデータ項目のブロックｊ内の位置πj-1(n)を信号伝送することが必要な際に、適用可能である。πj-1(n)がΛの要素であるということを利用すれば、連続するｎの値について、πj-1(n)の列が簡単に発生可能であることが保証される。
このことは、疑似乱数順列（αにおける最大冪に対する係数ｆiが０でない）と恒等順列（σ(n)＝0,1,...,m-1）とを、σjとして交互に用いる際にも当てはまる。（結果的な順列πjが疑似乱数になるためには、順列σjが少なくとも１つおきに疑似乱数である必要があり、すべてのσjが乱数である必要はない。）ｆiを適切に選択すれば、このことはブロック毎に、連続するアドレスをほぼ一様な差にして分布させるインターリーブになる。２つの異なる順列のみを使用することによって、インターリーブが簡単になる。
順列πj(n)及びπj+1(n)を異なる集合Λα及びΛα'から選択する際には、α''がαとα'との最大公約数をなす全体集合Λα''が得られ；従ってα''のポテンシーはΛα及びΛα'のポテンシーよりも大きくなる。そしてσjを書き込み及び読み出すのに必要な列はΛαに属し、従って簡単に発生することができる。
列σjを記述する数ｆi(j)は、順列の合成についての上記の陽関数表現を利用して計算することができる。しかし多くの場合には、これらの数は再帰的に計算可能であることが判明している。αのポテンシーｓが２であれば、次式が成り立つ。
ｆ0(t+1)＝ｆ0(t)＋cｆ1(t)＋［c(c-1)/2］αｆ2(t)
ｆ1(t+1)＝bｆ1(t)＋(bc＋b(b-1)/2)αｆ2(t)
αｆ2(t+1)＝αeｆ1(t)＋（bb＋α(α-1)/2）αｆ2t
ここに、ｆ0(0)＝ｃ、ｆ1(0)＝ｂ、ｆ2(0)＝ｅである。
（これらの式はすべてmodulo ｍである。）
本発明は、図１及び図２に示す回路装置に応用することができる。この回路装置は、一連のデータ項目のブロックを受け取って、これらのブロックを出力する順列ユニットを具えて、各ブロック内のデータ項目を順序変更した形にして出力する。ここでは、前記順列ユニットが、
−メモリと、
−前記データ項目を前記メモリに書き込んで、前記メモリから読み出す書き込み／読み出しユニットと、
−前記データ項目を前記メモリに書き込む位置、及び前記メモリから読み出す位置のそれぞれのアドレスのアドレス順序を発生するアドレス発生器とを具えて、
前記順列ユニットが、
−各ブロックからの前記データ項目を、前記メモリ上の位置の集合からそれぞれのアドレス順序で読み出して、
−前記各ブロックのうち最初のブロック以外のブロックからの前記データ項目を、直前のブロックのデータ項目を読み出したアドレス順序で、前記位置の集合内に書き込む。
この回路装置では、前記アドレス発生器を、ブロック毎にそれぞれのアドレス順序をを発生するように構成して、このアドレス順序では、各ｎに対するｎ番目のアドレスが、次式による数0...m-1の順列σ(n)に対応する。
0003773263.tif 000010
ここに、ｍはブロック内のデータ項目の数であり、
αはｍのすべての素因数で整除される整数であり、ポテンシーs（α）は２またはそれより大きく、
ｆi(i＝0,...,s)は、常に１つのブロックから他のブロックに変わる自然数である。ｍが４の倍数であれば、αが４の倍数であることが好ましい。また、前記アドレス発生器が、アドレス順序を発生する再帰ユニットと、ブロックに対するアドレス順序を発生する前に、前記再帰ユニットを初期化する初期化手段とを具えていることも好ましい。簡単な順列を得るためには、ポテンシーs（α）が２であり、ここでｆ0以外のすべてのｆiが等しく、かつｍとの最大公約数が１であることが好ましい。この回路装置の１つの応用では、順列ユニットの動作によって、ブロック毎にそれぞれの順列ができ、この順列は、書き込み時のアドレス順序を、関連するブロックの読み出し時のアドレス順序に関連付けて、ここでｆi(i＝0,...,s)は、すべてのブロックについてそれぞれの順列が同一になるように選定する。
本発明が集合Λαの群特性に由来することは明らかである。データ項目のブロックを毎回、この集合からの順列に従って順序変更すべき際には、こうした動作は、データ項目のブロックを毎回、この集合からの順列に従ったアドレス順序でメモリに書き込み、これに続いて、これらのデータ項目をメモリから、この集合からの異なる順列に従って読み出すことによって実行することができる。αのポテンシーが少なくとも２であれば、αの０でない冪のうち最大のものの係数ｆiが０でない際には、これらの順列が疑似乱数特性を有する。従ってアドレス発生の複雑性は常に同じままである。前記アドレス発生器は、例えば再帰的な回路によって実現することができる。このようにして疑似乱数順列を発生する最も簡単な方法は、ポテンシーが２のαを用いることである、というのは、順列を発生するために最少回数の計算が要求されるからである。しかし、ポテンシーが例えば３のようにより大きいαの値の使用がより好適なことがある、というのは、これにより、より良好な乱数特性を容易に実現し得るからである。このことは選択の問題であり：発生したアドレス順序を試験して、これらのアドレス順序が、関連する応用に要求される乱数特性を有するか否かを見極める。
本発明が、例として示した伝送システム、あるいはより一般的にはアドレス発生器に限定されるものではないことは明らかである。本発明は、基本的な疑似乱数順列を合成した疑似乱数順列をいくつか発生しなければならない利用分野のいずれにも適用できる。本発明は、これらのいくつかの順列をすべて、図３に示すような同一の基本的な発生器で発生するために用いることができ、これは、レジスタ23、27及びメモリ28を各特定の順列を指定する値に初期化することによって行う。もちろん、このことは適切にプログラムしたコンピュータを用いて達成することもでき、ここでは同じプログラムコードを用いて、係数ｆiの組によって指定される異なる順列を発生する。
本発明は、メモリに記憶するデータ項目に限定されるものでもない。順序変更の方法は、あらゆる物理的種類の項目の組に適用することができ、このことは、この組の項目を記憶媒体に記憶して、組内の項目を処理する順序を、この記憶媒体内の位置に従って決めることによって行う。記憶及び検索のそれぞれについて、同じ群Λαからの異なる順列を用いる。このことは、記憶媒体から前の組を完全に検索し終わる前に新たな組からの項目を記憶する際に、ますます複雑な順列を必要とせずに、この記憶媒体内の空間の節約を可能にする。前記組内の項目は、送信することによって処理するデータ項目とすることができるが、例えば製造中に処理を施す製造品とすることもできる。
【図面の簡単な説明】
図１は、順列ユニットを示す図である。
図２は、伝送システムを示す図である。
図３は、アドレス発生器を示す図である。
図４は、モジュロ加算器を示す図である。
【図１】
0003773263.tif 000013
【図２】
0003773263.tif 000014
【図３】
0003773263.tif 000015
【図４】
0003773263.tif 000016