A method includes broadcasting, at a transmitter, messages comprising antenna configuration, antenna spacing and a number of antenna of the transmitter and reference signals; generating, at a receiver, a codebook comprising a plurality of antenna beams based on the broadcasted messages; receiving, at the receiver, the broadcasted reference signals; selecting, at the receiver, an antenna beam among the plurality of antenna beams within the codebook in dependence upon a predetermined performance criteria of a data communication system and in dependence upon the broadcasted reference signals; feedbacking to the transmitter, at the receiver, information comprising the antenna beam selected by the receiver; optimizing, at the transmitter, a beamforming process by utilizing the feedback information from the receiver; transmitting, at the transmitter, data signals by utilizing the optimized beamforming process; and receiving and processing, at the receiver, the data signals in dependence upon the selected antenna beams within the codebook.