interleaver design

linear coprime interleavers.
------------------------------------------------
[ recursion version ]
f(0) = 0
f(i) = mod(a * f(i-1) + b, N), i=1,2,...,N-1
[ parallel version ]
if a = 1,
  f(i) = mod(b * i, N), i=0,1,...,N-1
else
  f(i) = mod( ((1-a^i) * b) / (1-a), N), i=0,2,...,N-1
end

when a=1 and b is chosen to be the closest integer, which is relatively prime to N, to the Golden section of N, it's Golden prime interleaver


where:
0 < a < N, a-1 be a multiple of p, for every prime p dividing N; a-1 be a multiple of 4, if N is a multiple of 4.

 0 <= b < N, and b is relatively prime to N;

Welch-Costas Interleaver (costa array)
------------------------------------------------
[ recursion version ]
f(0) = 0
f(i) = mod(a*f(i-1), N+1);
[ parallel version ]
f(i) = mod(a^i, N+1) - 1, i = 0,1,...,N-1

where,
N is a prime number minus 1;
a is a primitive element in GF(N+1)


Ref:
J. Costas, A study of a class of detection waveforms having nearly ideal range. Doppler ambiguity properties, Proc. IEEE 72 (8) (1984) 996–1009.
C. Heegard, and S. B. Wicker., Turbo Coding. Boston: Kluwer Academic Publishers, 1999. pp:54-55.


Takeshita-Costello Interleaver
--------------------------------------------------
c(i) = ( a * i * (i+1) / 2 ) mod N,    i = 0,1,...,N-1
f(c(i)) = c( (i+1) mod N ),             i = 0,1,...,N-1

where  N should be 2^m, a should be an odd number less than N


Ref:
O. Y. Takeshita, and D. J. Costello, D.J., Jr., New deterministic interleaver designs for turbo codes IEEE Trans. Inf. Theory, vol.46, no.6, pp:1988-2006, Sept. 2000

原文地址:https://www.cnblogs.com/chest/p/12559606.html