A user equipment, UE, in a wireless communication system, the UE comprising: a transceiver; and at least one processor operable coupled to the transceiver, and configured to: receive, from a base station, configuration information for indicating codebook parameters that include a first number of antenna ports, N 1, for a first dimension, a second number of antenna ports, N 2, for a second dimension, a first oversampling factor, O 1, for the first dimension, a second oversampling factor, O 2, for the second dimension, and a codebook configuration; and determine a precoder codebook based on the codebook parameters; determine at least one precoding matrix indicator, PMI, indicating a precoder of the precoder codebook, wherein the at least one PMI includes a first codebook index (i 1,1), a second codebook index (i 1,2), and a third codebook index (i 2); and transmit, to the base station, channel state information, CSI, including the at least one PMI, characterized in that if the N 1 is greater than or equal to the N 2, the precoder comprises a first matrix in which a first vector is determined in accordance with a first variable and a second vector is determined in accordance with a second variable, the first variable is associated with the first codebook index (i 1,1) using a first function and the second variable is associated with the second codebook index (i 1,2) using a second function, and if the N 1 is smaller than the N 2, the precoder comprises a second matrix in which the first vector is determined in accordance with the second variable and the second vector is determined in accordance with the first variable, the first variable is associated with the second codebook index (i 1,2) using the first function and the second variable is associated with the first codebook index (i 1,1) using the second function, wherein the first vector is a discrete fourier transform, DFT, vector associated with a beam for the first dimension, the second vector is a DFT vector associated with a beam for the second dimension, and wherein the first matrix and the second matrix include the Kronecker product of the first vector and the second vector. a transceiver; and at least one processor operable coupled to the transceiver, and configured to: receive, from a base station, configuration information for indicating codebook parameters that include a first number of antenna ports, N 1, for a first dimension, a second number of antenna ports, N 2, for a second dimension, a first oversampling factor, O 1, for the first dimension, a second oversampling factor, O 2, for the second dimension, and a codebook configuration; and determine a precoder codebook based on the codebook parameters; determine at least one precoding matrix indicator, PMI, indicating a precoder of the precoder codebook, wherein the at least one PMI includes a first codebook index (i 1,1), a second codebook index (i 1,2), and a third codebook index (i 2); and transmit, to the base station, channel state information, CSI, including the at least one PMI, characterized in that receive, from a base station, configuration information for indicating codebook parameters that include a first number of antenna ports, N 1, for a first dimension, a second number of antenna ports, N 2, for a second dimension, a first oversampling factor, O 1, for the first dimension, a second oversampling factor, O 2, for the second dimension, and a codebook configuration; and determine a precoder codebook based on the codebook parameters; determine at least one precoding matrix indicator, PMI, indicating a precoder of the precoder codebook, wherein the at least one PMI includes a first codebook index (i 1,1), a second codebook index (i 1,2), and a third codebook index (i 2); and transmit, to the base station, channel state information, CSI, including the at least one PMI, characterized in that if the N 1 is greater than or equal to the N 2, the precoder comprises a first matrix in which a first vector is determined in accordance with a first variable and a second vector is determined in accordance with a second variable, the first variable is associated with the first codebook index (i 1,1) using a first function and the second variable is associated with the second codebook index (i 1,2) using a second function, and if the N 1 is smaller than the N 2, the precoder comprises a second matrix in which the first vector is determined in accordance with the second variable and the second vector is determined in accordance with the first variable, the first variable is associated with the second codebook index (i 1,2) using the first function and the second variable is associated with the first codebook index (i 1,1) using the second function, wherein the first vector is a discrete fourier transform, DFT, vector associated with a beam for the first dimension, the second vector is a DFT vector associated with a beam for the second dimension, and wherein the first matrix and the second matrix include the Kronecker product of the first vector and the second vector.