ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

algintrlv

代数的に求めた置換テーブルを使用したシンボルの並べ替え

構文

intrlvd = algintrlv(data,num,'takeshita-costello',k,h)
intrlvd = algintrlv(data,num,'welch-costas',alph)

説明

intrlvd = algintrlv(data,num,'takeshita-costello',k,h) は、置換テーブルを使用して data の要素を再配列します。この置換テーブルは、Takeshita-Costello 法で代数的に求めたものです。num は、data がベクトルの場合には data の要素数であり、data が複数の列をもつ行列の場合には data の行数です。Takeshita-Costello 法では、num は 2 のべき乗でなければなりません。乗法係数 k は、num 未満の奇数の整数でなければなりません。また、巡回シフト h は、num 未満の非負の整数でなければなりません。data が複数の行と列をもつ行列である場合、この関数は列を個別に処理します。

intrlvd = algintrlv(data,num,'welch-costas',alph) は、Welch-Costas 法を使用します。Welch-Costas 法では、num+1 は素数でなければなりません。alph は、1 と num との間の整数で、有限体 GF(num+1) の原始元を表します。これは、GF(num+1) の非ゼロの各要素を、alph の整数乗として表現できることを意味します。

この例では代数インターリーブの Welch-Costas 法の使用方法について説明します。

  1. インターリーブするデータと num を定義します。

    num = 10; % Integer such that num+1 is prime
    ncols = 3; % Number of columns of data to interleave
    data = randi([0 num-1], num, ncols); % Random data to interleave
  2. 有限体 GF(num+1) の原始多項式を求めます。関数 gfprimfd は、各原始多項式を昇べきの順で係数を格納する行として表します。

    pr = gfprimfd(1,'all',num+1) % Primitive polynomials of GF(num+1)
    pr =
    
         3     1
         4     1
         5     1
         9     1
    
  3. 出力から、pr に列は 2 列で 2 列目は 1 だけで構成されていることがわかります。言い換えると、各原始多項式は最高次の係数が 1 に等しい多項式です。こうなるのは、num+1 が素数だからです。したがって、各原始多項式の根である原始元を求めるには、多項式の根を求めればよく、具体的には、num+1 から pr の最初の列を減算します。

    primel = (num+1)-pr(:,1) % Primitive elements of GF(num+1)
    primel =
    
         8
         7
         6
         2
    
  4. 次に、alphprimel の要素の 1 つとして定義し、関数 algintrlv を使用します。

    alph = primel(1); % Choose one primitive element.
    intrlvd = algintrlv(data,num,'Welch-Costas',alph); % Interleave.

詳細

すべて折りたたむ

アルゴリズム

  • Takeshita-Costello インターリーバーでは、1 ~ num までの整数 n に対する n 番目の要素が mod(k*(n-1)*n/2, num) である長さ-num の循環ベクトルを使用します。この関数は循環ベクトルの各要素に対して昇順で次の要素に 1 を加えて並べた置換ベクトルを生成します。インターリーバーの実際の置換テーブルは、置換ベクトルの要素を左に h だけシフトした結果です (この関数は数とインデックスの剰余 num をすべて計算します)。

  • Welch-Costas インターリーバーでは、整数 Kmod(AK,num+1)-1 にマッピングする置換を使用します。

参照

[1] Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.

[2] Takeshita, O. Y., and D. J. Costello, Jr., “New Classes Of Algebraic Interleavers for Turbo-Codes,” Proc. 1998 IEEE International Symposium on Information Theory, Boston, Aug. 16–21, 1998. p. 419.

R2006a より前に導入

この情報は役に立ちましたか?