Performance analysis and formulation of turbo codes on Additive White Gaussian Noise (AWGN) and Rayleigh fading channels