An apparatus, comprising: a non-transitory memory storing instructions; at least one wireless transceiver; and one or more processors in communication with the non-transitory memory and the at least one wireless transceiver, wherein the one or more processors execute the instructions to: collect channel statistics; send one or more reference signals to a wireless device via at least one channel; receive quantized channel state information, corresponding to the at least one channel, that is sent by the wireless device based on the one or more reference signals; generate a plurality of channel instances based on the channel statistics; identify, for each of the channel instances, a quantized channel state information via an index from a codebook including a plurality of pre-coding vectors; determine a decision region for each of the plurality of pre-coding vectors, utilizing the index; generate a conditional channel covariance matrix for each decision region; pre-code data, utilizing the conditional channel covariance matrix corresponding to the received quantized channel state information; and transmit the pre-coded data to the wireless device utilizing the at least one wireless transceiver. a non-transitory memory storing instructions; at least one wireless transceiver; and one or more processors in communication with the non-transitory memory and the at least one wireless transceiver, wherein the one or more processors execute the instructions to: collect channel statistics; send one or more reference signals to a wireless device via at least one channel; receive quantized channel state information, corresponding to the at least one channel, that is sent by the wireless device based on the one or more reference signals; generate a plurality of channel instances based on the channel statistics; identify, for each of the channel instances, a quantized channel state information via an index from a codebook including a plurality of pre-coding vectors; determine a decision region for each of the plurality of pre-coding vectors, utilizing the index; generate a conditional channel covariance matrix for each decision region; pre-code data, utilizing the conditional channel covariance matrix corresponding to the received quantized channel state information; and transmit the pre-coded data to the wireless device utilizing the at least one wireless transceiver. collect channel statistics; send one or more reference signals to a wireless device via at least one channel; receive quantized channel state information, corresponding to the at least one channel, that is sent by the wireless device based on the one or more reference signals; generate a plurality of channel instances based on the channel statistics; identify, for each of the channel instances, a quantized channel state information via an index from a codebook including a plurality of pre-coding vectors; determine a decision region for each of the plurality of pre-coding vectors, utilizing the index; generate a conditional channel covariance matrix for each decision region; pre-code data, utilizing the conditional channel covariance matrix corresponding to the received quantized channel state information; and transmit the pre-coded data to the wireless device utilizing the at least one wireless transceiver.