An interleaver receives incoming data frames of size N. The interleaver
indexes the elements of the frame with an N.sub.1.times.N.sub.2 index
array. The interleaver then effectively rearranges (permutes) the data by
permuting the rows of the index array. The interleaver employs the
equation I(j,k)=I(j,.alpha..sub.j k+.beta..sub.j)modP) to permute the
columns (indexed by k) of each row (indexed by j). P is at least equal to
N.sub.2, .beta..sub.j is a constant which may be different for each row,
and each .alpha..sub.j is a relative prime number relative to P. After
permuting, the interleaver outputs the data in a different order than
received (e.g., receives sequentially row by row, outputs sequentially
each column by column).
Un interleaver reçoit les armatures entrantes de données de la taille N. L'interleaver classe les éléments de l'armature avec une rangée de l'index N.sub.1.times.N.sub.2. L'interleaver réarrange alors efficacement (permute) les données en permutant les rangées de la rangée d'index. L'interleaver utilise l'équation I(j, le k)=I(j.alpha..sub.j k+.beta..sub.j)modP) pour permuter les colonnes (classées par k) de chaque rangée (classée par j). P est au moins égal à N.sub.2, le beta..sub.j est une constante qui peut être différente pour chaque rangée, et chaque alpha..sub.j est un nombre principal relatif à P relatif. Après la permutation, l'interleaver produit les données dans un ordre différent que reçu (par exemple, reçoit séquentiellement la rangée par rangée, sorties séquentiellement chaque colonne par la colonne).