Adaptive Modulation, Channel Coding and MIMO Schemes for Practical OFDM Systems