A method for feeding back channel state information for Multiple Input Multiple Output (MIMO) transmission scheme, performed by a terminal, the method comprising: determining a pre-coding matrix in a second codebook, and determining a sub-codebook associated with the pre-coding matrix as a third codebook, wherein the second codebook is a set of elements, the elements are pre-coding matrixes, and each of the pre-coding matrixes has an associated sub-codebook; calculating channel state information according to the determined pre-coding matrix and the third codebook, transmitting information about the determined pre-coding matrix and the channel state information to a base station; and receiving data from the base station, wherein the data is preprocessed at the base station by using a part or all of the precoding matrixes in another third codebook over resources allocated for the terminal before transmission of the data and wherein said another third codebook is determined at the base station according to the information related to the precoding matrix and the channel state information; and the method characterized in that when the third codebook comprises a plurality of pre-coding matrixes having different quantities of columns, then determining a second rank indicator and returning the second rank indicator to the base station when transmitting the information about the channel state information, wherein: the second rank indicator is determined according to a channel from the base station to the terminal; or the second rank indicator is determined by: for each possible quantity of columns of the pre-coding matrixes in the third codebook, calculating a transmission capacity according to the quantity of columns in the third codebook on an assumption that data to be transmitted is preprocessed by using a pre-coding matrix having the quantity of columns in the third codebook; and selecting a quantity of columns with a highest transmission capacity as the second rank indicator determining a pre-coding matrix in a second codebook, and determining a sub-codebook associated with the pre-coding matrix as a third codebook, wherein the second codebook is a set of elements, the elements are pre-coding matrixes, and each of the pre-coding matrixes has an associated sub-codebook; calculating channel state information according to the determined pre-coding matrix and the third codebook, transmitting information about the determined pre-coding matrix and the channel state information to a base station; and receiving data from the base station, wherein the data is preprocessed at the base station by using a part or all of the precoding matrixes in another third codebook over resources allocated for the terminal before transmission of the data and wherein said another third codebook is determined at the base station according to the information related to the precoding matrix and the channel state information; and the method characterized in that when the third codebook comprises a plurality of pre-coding matrixes having different quantities of columns, then determining a second rank indicator and returning the second rank indicator to the base station when transmitting the information about the channel state information, wherein: the second rank indicator is determined according to a channel from the base station to the terminal; or the second rank indicator is determined by: for each possible quantity of columns of the pre-coding matrixes in the third codebook, calculating a transmission capacity according to the quantity of columns in the third codebook on an assumption that data to be transmitted is preprocessed by using a pre-coding matrix having the quantity of columns in the third codebook; and selecting a quantity of columns with a highest transmission capacity as the second rank indicator the second rank indicator is determined according to a channel from the base station to the terminal; or the second rank indicator is determined by: for each possible quantity of columns of the pre-coding matrixes in the third codebook, calculating a transmission capacity according to the quantity of columns in the third codebook on an assumption that data to be transmitted is preprocessed by using a pre-coding matrix having the quantity of columns in the third codebook; and selecting a quantity of columns with a highest transmission capacity as the second rank indicator