Hi,
In my opion, it is OK to say that interleaver is to "scramble" data in time domain. Maybe scrambler has some other meanings. I have to admit that I have a limited knowledge about this. However, many coding scholars do use "scramble" to discribe interleaver.
Now, let me share with u my understanding about interleaver. Interleaver is a critical component for turbo code design, whether in a parallel or serial concatenation form. The other key components are obviously the component encoders. Up to now, there are already many kinds of interleaver design methods, which can be roughly categorized into two classes.
1) The first is random methods, such as some psuedo-random interleavers. S interleaver is a random like interleaver, which could provide rather good performance.
2) The second class can be referred to as algebraic ones, such as block interleaver as mentioned by rmreddy and linear interleavers. As for linear interleaver we only need two parameters to specify an interleaver, i.e., the paramenters a and b in PI(i) = a * i + b, where i is the original time index and PI(i) is the index after the interleave operation. It is obivous that algrebraic interleaver is of intresting since they admit analytical designs and simple, practical hardware implementation. The main corcern of algebraic interleaver is its performance.
Recently, I learned that Takeshita devised an algebraic interleaver which performs very good. For more details, plz refer to his paper in IEEE Trans. IT 2005. The title is as follows.
Interleavers for Turbo Codes Using Permutation Polynomials Over Integer Rings
good luck!