Interleaver Design for Serially Concatenated Convolutional Codes: Theory and Application