A method for wirelessly transmitting data and control information using a plurality of transmission layers, comprising: determining a number of bits in one or more user data codewords to be transmitted during a subframe; calculating, for each of M control signals to be transmitted during the subframe, a value Q', based at least in part, on: the number of bits in the one or more user data codewords, and an estimated number of user data vector symbols onto which the one or more user data codewords will be mapped, wherein the estimate of the number of user data vector symbols for a particular one of the M control signals depends, at least in part, on a number of control vector symbols to be allocated to one or more others of the M control signals, wherein calculating the value Q' for each of the M control signals comprises calculating a value Q' m for an m -th control signal such that: Q m ′ = f m P, Q ^ data,0 Q ′,..., Q ^ data, N CW − 1 Q ′, β offset, m, O m, wherein P = └ P 0,...,P N CW -1 ┘with P k being a number of bits in a payload of a k -th codeword of user data to be transmitted, N CW is a number of codewords of user data to be transmitted, Q ' is a vector that includes the values Q' associated with the M control signals, Q̂ data,k is an estimate of a number of vector symbols allocated to the k -th codeword of user data and is dependent on the value Q' associated with one or more of the M control signals, β offset,m is an offset associated with the m -th control signal, and O m is a number of bits in one or more control codewords to be transmitted for the m -th control signal, wherein Q ′ = Q 0 ′,..., Q M − 1 ′ T; determining a number of control vector symbols onto which to map each of the M control signals based on a respective value Q' calculated for that control signal; mapping each of the M control signals to the calculated number of control vector symbols for that control signal; and transmitting the user data vector symbols and the control vector symbols over a plurality of transmission layers during the subframe. determining a number of bits in one or more user data codewords to be transmitted during a subframe; calculating, for each of M control signals to be transmitted during the subframe, a value Q', based at least in part, on: the number of bits in the one or more user data codewords, and an estimated number of user data vector symbols onto which the one or more user data codewords will be mapped, wherein the estimate of the number of user data vector symbols for a particular one of the M control signals depends, at least in part, on a number of control vector symbols to be allocated to one or more others of the M control signals, wherein calculating the value Q' for each of the M control signals comprises calculating a value Q' m for an m -th control signal such that: Q m ′ = f m P, Q ^ data,0 Q ′,..., Q ^ data, N CW − 1 Q ′, β offset, m, O m, wherein P = └ P 0,...,P N CW -1 ┘with P k being a number of bits in a payload of a k -th codeword of user data to be transmitted, N CW is a number of codewords of user data to be transmitted, Q ' is a vector that includes the values Q' associated with the M control signals, Q̂ data,k is an estimate of a number of vector symbols allocated to the k -th codeword of user data and is dependent on the value Q' associated with one or more of the M control signals, β offset,m is an offset associated with the m -th control signal, and O m is a number of bits in one or more control codewords to be transmitted for the m -th control signal, wherein Q ′ = Q 0 ′,..., Q M − 1 ′ T; determining a number of control vector symbols onto which to map each of the M control signals based on a respective value Q' calculated for that control signal; mapping each of the M control signals to the calculated number of control vector symbols for that control signal; and transmitting the user data vector symbols and the control vector symbols over a plurality of transmission layers during the subframe.