A method of receiving an incremental redundancy "hereafter referred to as IR" transmission in a wireless multiple-input multiple-output "hereafter referred to as MIMO" communication system, comprising: estimating a MIMO channel, selecting a rate for data transmission on the MMO channel based on the MIMO channel estimate, and providing a selected rate to a transmitter for data transmission on a MIMO channel between a plurality of transmit antennas and a plurality of receive antennas; obtaining a detected symbol block for a data packet at a receiver, the detected symbol block being an estimate of a first symbol block in a plurality of symbol blocks generated by the transmitter for the data packet, each symbol block in the plurality of symbol blocks including different coded information for the data packet, wherein the plurality of symbol blocks are generated by the transmitter by partitioning the data packet, and wherein the first symbol block is transmitted from the plurality of transmit antennas at the transmitter and is received by the plurality of receive antennas at the receiver, wherein the obtaining the detected symbol block further comprises: obtaining a received symbol block for the first symbol block from the plurality of receive antennas at the receiver, wherein the obtaining the received symbol block comprises obtaining the received symbol block from the plurality of receive antennas and a plurality of subbands; re-assembling all detected symbol blocks obtained by the receiver for the data packet; decoding the re-assembled detected symbol blocks to obtain a decoded packet; determining whether the decoded packet is correct or in error; and repeating the obtaining, re-assembling, decoding, and determining for a next symbol block in the plurality of symbol blocks of the data packet if the decoded packet is in error. estimating a MIMO channel, selecting a rate for data transmission on the MMO channel based on the MIMO channel estimate, and providing a selected rate to a transmitter for data transmission on a MIMO channel between a plurality of transmit antennas and a plurality of receive antennas; obtaining a detected symbol block for a data packet at a receiver, the detected symbol block being an estimate of a first symbol block in a plurality of symbol blocks generated by the transmitter for the data packet, each symbol block in the plurality of symbol blocks including different coded information for the data packet, wherein the plurality of symbol blocks are generated by the transmitter by partitioning the data packet, and wherein the first symbol block is transmitted from the plurality of transmit antennas at the transmitter and is received by the plurality of receive antennas at the receiver, wherein the obtaining the detected symbol block further comprises: obtaining a received symbol block for the first symbol block from the plurality of receive antennas at the receiver, wherein the obtaining the received symbol block comprises obtaining the received symbol block from the plurality of receive antennas and a plurality of subbands; re-assembling all detected symbol blocks obtained by the receiver for the data packet; decoding the re-assembled detected symbol blocks to obtain a decoded packet; determining whether the decoded packet is correct or in error; and repeating the obtaining, re-assembling, decoding, and determining for a next symbol block in the plurality of symbol blocks of the data packet if the decoded packet is in error. obtaining a received symbol block for the first symbol block from the plurality of receive antennas at the receiver, wherein the obtaining the received symbol block comprises obtaining the received symbol block from the plurality of receive antennas and a plurality of subbands; re-assembling all detected symbol blocks obtained by the receiver for the data packet; decoding the re-assembled detected symbol blocks to obtain a decoded packet; determining whether the decoded packet is correct or in error; and repeating the obtaining, re-assembling, decoding, and determining for a next symbol block in the plurality of symbol blocks of the data packet if the decoded packet is in error.