Multiple-input multiple-output systems can considerably increase wireless communication capacity by using multiple transmit and receive antennas. Multiple-input multiple-output channel capacity grows approximately linearly with the minimum number of transmit and receive antennas. Coding techniques designed for multiple antenna transmission are called space-time coding. These coding techniques introduce correlation between signals transmitted from various antennas at various time periods. There are several space-time coding techniques. They can be In this thesis, different coherent space-time coding techniques are introduced. It is assumed that individual channels between transmit and receive antennas can be modelled by independent Rayleigh, flat and slow fading processes. Considering the receiver which makes the best performance/complexity trade-off, the performance of space-time codes in terms of frame error rate is evaluated by simulations. The effects of increasing the number of transmit antennas on the code performance are also presented. A space repetition code for two transmit and one receive antenna based on one bit feedback from the receiver to the transmitter is proposed and it is shown that its performance is always better than Alamouti code, while preserving spectral efficiency. Also its encoding and decoding complexity is less than Alamouti code. Finally, the trade-off between performance, complexity and spectral efficiency of different space-time coding techniques are compared.