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.