1. A method for processing communication signals, the method comprising: quantizing channel state information in a multiple-input multiple-output (MIMO) pre-coding system onto a codebook, which comprises one or more unitary matrices, using a cost function; and iteratively updating said codebook based on at least said channel state information.