A method for reporting channel state information, wherein the method comprises: receiving a reference signal sent by a base station (S101); selecting, based on the reference signal, a precoding matrix from a codebook, wherein a precoding matrix W comprised in the codebook is a product of three matrices being W 1 , Z , and W 2 , that is, W = W 1 ZW 2 , wherein both W 1 and Z are block diagonal matrices, W 1 = diag { X 1 ,..., X N B }, Z = diag { Z 1 ,..., Z N B }, each of W 1 and Z comprises at least one block matrix, that is, a block matrix quantity is N B ≥ 1, and a k-th column of each block matrix Z i in the matrix Z has the following structure: z i , k = α i , k 2 + β i , k 2 − 1 2 α i , k e i , k T β i , k e jθ i , k e i , k T T wherein [ ] T represents matrix transposition; e i,k represents an n i x1 selection vector, wherein in the vector, the k th element is 1 and all other elements are 0, and n i is a half of a column quantity of a block matrix X i ; θ i,k is a phase shift, α i,k ≥ 0, and β i,k ≥ 0; the matrix W 2 is used for weighted combination of column vectors from matrix W 1 Z to form matix W ; and sending a precoding matrix indicator PMI to the base station, wherein the PMI corresponds to the selected precoding matrix, and is used by the base station to obtain the selected precoding matrix W according to the PMI (S103). receiving a reference signal sent by a base station (S101); selecting, based on the reference signal, a precoding matrix from a codebook, wherein a precoding matrix W comprised in the codebook is a product of three matrices being W 1 , Z , and W 2 , that is, W = W 1 ZW 2 , wherein both W 1 and Z are block diagonal matrices, W 1 = diag { X 1 ,..., X N B }, Z = diag { Z 1 ,..., Z N B }, each of W 1 and Z comprises at least one block matrix, that is, a block matrix quantity is N B ≥ 1, and a k-th column of each block matrix Z i in the matrix Z has the following structure: z i , k = α i , k 2 + β i , k 2 − 1 2 α i , k e i , k T β i , k e jθ i , k e i , k T T wherein [ ] T represents matrix transposition; e i,k represents an n i x1 selection vector, wherein in the vector, the k th element is 1 and all other elements are 0, and n i is a half of a column quantity of a block matrix X i ; θ i,k is a phase shift, α i,k ≥ 0, and β i,k ≥ 0; the matrix W 2 is used for weighted combination of column vectors from matrix W 1 Z to form matix W ; and sending a precoding matrix indicator PMI to the base station, wherein the PMI corresponds to the selected precoding matrix, and is used by the base station to obtain the selected precoding matrix W according to the PMI (S103). wherein [ ] T represents matrix transposition; e i,k represents an n i x1 selection vector, wherein in the vector, the k th element is 1 and all other elements are 0, and n i is a half of a column quantity of a block matrix X i ; θ i,k is a phase shift, α i,k ≥ 0, and β i,k ≥ 0; the matrix W 2 is used for weighted combination of column vectors from matrix W 1 Z to form matix W ; and sending a precoding matrix indicator PMI to the base station, wherein the PMI corresponds to the selected precoding matrix, and is used by the base station to obtain the selected precoding matrix W according to the PMI (S103). <EOS>