A transmitter, comprising: an antenna array (202, 304) having a plurality of antennas for a wireless communication with one or more receivers; and a precoder connected to the antenna array (202, 304), the precoder to apply a set of beamforming weights to the antenna array (202, 304), the set of beamforming weights selected from a codebook to form by the antenna array (202, 304) one or more transmit/receive beams or nulls pointing in selected directions; wherein the codebook includes a plurality of sets of beamforming weights for a plurality of directions, wherein the beamforming weights in the codebook are based on a first antenna array response matrix, the first antenna array response matrix defined by a second antenna array response matrix and one or more transformation matrices, wherein the first antenna array response matrix contains, for a plurality of directions, first array response vectors of the antenna array (202, 304), the second antenna array response matrix contains, for one or more of the plurality of directions, second array response vectors of the antenna array (202, 304), the second array response vectors determined using a model of the antenna array (202, 304), and the one or more transformation matrices describing one or more characteristics of the antenna array (202, 304), wherein the one or more transformation matrices are based on the second antenna array response matrix and a measured antenna array response matrix containing, for some or all of the plurality of directions, measured array response vectors determined from a measurement of the antenna array (202, 304), and wherein the codebook is obtained from a first codebook modified using the one or more transformation matrices, the first codebook defined using the second antenna array response matrix. an antenna array (202, 304) having a plurality of antennas for a wireless communication with one or more receivers; and a precoder connected to the antenna array (202, 304), the precoder to apply a set of beamforming weights to the antenna array (202, 304), the set of beamforming weights selected from a codebook to form by the antenna array (202, 304) one or more transmit/receive beams or nulls pointing in selected directions; wherein the codebook includes a plurality of sets of beamforming weights for a plurality of directions, wherein the beamforming weights in the codebook are based on a first antenna array response matrix, the first antenna array response matrix defined by a second antenna array response matrix and one or more transformation matrices, wherein the first antenna array response matrix contains, for a plurality of directions, first array response vectors of the antenna array (202, 304), the second antenna array response matrix contains, for one or more of the plurality of directions, second array response vectors of the antenna array (202, 304), the second array response vectors determined using a model of the antenna array (202, 304), and the one or more transformation matrices describing one or more characteristics of the antenna array (202, 304), wherein the one or more transformation matrices are based on the second antenna array response matrix and a measured antenna array response matrix containing, for some or all of the plurality of directions, measured array response vectors determined from a measurement of the antenna array (202, 304), and wherein the codebook is obtained from a first codebook modified using the one or more transformation matrices, the first codebook defined using the second antenna array response matrix.