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. <EOS>