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 法を使用します。Welch-Costas 法では、'welch-costas'
,alph)num+1
は素数でなければなりません。alph
は、1 と num
との間の整数で、有限体 GF(num+1
) の原始元を表します。これは、GF(num+1
) の非ゼロの各要素を、alph
の整数乗として表現できることを意味します。
例
アルゴリズム
Takeshita-Costello インターリーバーでは、1 ~
num
までの整数n
に対するn
番目の要素がmod(k*(n-1)*n/2, num)
である長さ-num
の循環ベクトルを使用します。この関数は循環ベクトルの各要素に対して昇順で次の要素に 1 を加えて並べた置換ベクトルを生成します。インターリーバーの実際の置換テーブルは、置換ベクトルの要素を左にh
だけシフトした結果です (この関数は数とインデックスの剰余num
をすべて計算します)。Welch-Costas インターリーバーでは、整数
K
をmod(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 より前に導入