A computer program product comprising a program with instructions for assigning acknowledgement, ACK, channels; wherein assigning the ACK channels comprises: dividing the ACK channels into N blocks, each downlink sub-frame of N downlink sub-frames corresponds to one block in a preset sequence, wherein the preset sequence is a sequence that a special sub-frame is placed at a last position, or the preset sequence is a sequence that the sub-frame with the maximum actual value of n is placed at a foremost position, wherein the N being a positive integer; dividing each block into max{ Mi} or Mi sub-blocks, the sub-blocks belonging to different blocks being interleaved, and sub-blocks which are from the different blocks and mapped to a same control channel element, CCE, set of different sub-frames are arranged sequentially according to the preset sequence; and assigning the ACK channels to the downlink sub-frames by mapping CCE sets with labels of {0, 1,..., N CCE,1 -1}, { N CCE,1, N CCE,1 +1,..., N CCE,2 -1},...,{ N CCE, max{ Mi} -1, N CCE,max{Mi}-1 +1,..., N CCE,max { Mi},-1} within each downlink sub-frame to the max{ Mi} sub-blocks of the block associated with downlink sub-frame of label i; or assigning the ACK channels to the downlink sub-frames by mapping CCE sets with labels of {0, 1,..., N CCE,1 -1}, { N CCE,1, N CCE,1 +1,..., N CCE,2 -1},..., { N CCE,Mi -1, N CCE,Mi -1 +1,..., N CCE, Mi -1} within each downlink sub-frame to the Mi sub-blocks of the block associated with downlink sub-frame of label i; wherein the Mi represents a maximum possible value of n for a downlink sub-frame with a label of i among N downlink sub-frames, the i=0, 1,..., N-1, the max{ Mi} represents a maximum value of Mi, the N CCE, max{ Mi} represents the number of CCEs in the downlink sub-frame when n is equal to max{ Mi}, the N CCE,Mi represents the number of CCEs in the downlink sub-frame when n is equal to Mi, the n is the number of symbols occupied by a physical downlink control channel, PDCCH. dividing the ACK channels into N blocks, each downlink sub-frame of N downlink sub-frames corresponds to one block in a preset sequence, wherein the preset sequence is a sequence that a special sub-frame is placed at a last position, or the preset sequence is a sequence that the sub-frame with the maximum actual value of n is placed at a foremost position, wherein the N being a positive integer; dividing each block into max{ Mi} or Mi sub-blocks, the sub-blocks belonging to different blocks being interleaved, and sub-blocks which are from the different blocks and mapped to a same control channel element, CCE, set of different sub-frames are arranged sequentially according to the preset sequence; and assigning the ACK channels to the downlink sub-frames by mapping CCE sets with labels of {0, 1,..., N CCE,1 -1}, { N CCE,1, N CCE,1 +1,..., N CCE,2 -1},...,{ N CCE, max{ Mi} -1, N CCE,max{Mi}-1 +1,..., N CCE,max { Mi},-1} within each downlink sub-frame to the max{ Mi} sub-blocks of the block associated with downlink sub-frame of label i; or assigning the ACK channels to the downlink sub-frames by mapping CCE sets with labels of {0, 1,..., N CCE,1 -1}, { N CCE,1, N CCE,1 +1,..., N CCE,2 -1},..., { N CCE,Mi -1, N CCE,Mi -1 +1,..., N CCE, Mi -1} within each downlink sub-frame to the Mi sub-blocks of the block associated with downlink sub-frame of label i; wherein the Mi represents a maximum possible value of n for a downlink sub-frame with a label of i among N downlink sub-frames, the i=0, 1,..., N-1, the max{ Mi} represents a maximum value of Mi, the N CCE, max{ Mi} represents the number of CCEs in the downlink sub-frame when n is equal to max{ Mi}, the N CCE,Mi represents the number of CCEs in the downlink sub-frame when n is equal to Mi, the n is the number of symbols occupied by a physical downlink control channel, PDCCH.