A communication system 100 employs turbo encoding having a turbo
interleaver 106 that interleaves input data 101 efficiently with little
use of system resources. The turbo interleaver 106 reads address locations
of the data bits into an interleaver matrix array 206 row by row and
interleaves the address locations by bit reversal of the row indexes with
accompanying permutation of the corresponding address locations in the
rows of the matrix 206, bit reversal of the column indexes with
accompanying permutation of the corresponding address locations in the
columns of the matrix 206 and shifting the address locations within each
row a predetermined number of column locations based on the particular row
number.