In a communication system, error control techniques are used to protect a signal against impairment during transmission over a channel. As part of such error control techniques, a codeword is produced for every information block. In order to match an over-the-air transmission rate, the codeword is resized via a rate matching algorithm before being sent over the physical channel. The rate matching algorithm provides a desired number of bits to be sent over the channel via puncturing or repetition of the codeword. The rate matching algorithm is important in that it can significantly impact the system performance and implementation efficiency.
If the system uses forward error correction (FEC) only, then only one transmission is needed for a given information block, and the rate matching algorithm only provides one version of the codeword. If the system uses Hybrid Automatic Repeat reQuest (HARQ) operation, then multiple transmissions may be needed for a given information block, and the rate matching algorithm may be required to provide different versions of the codeword (e.g., for incremental redundancy HARQ). HARQ degenerates to FEC if only one transmission is used for an information block.
One way to perform the rate matching function is to define puncturing/repetition patterns for every information block size and code rate the system may encounter. However, this method is inflexible. Moreover, it becomes impractical if the system involves thousands of information block size and code rate combinations, such as in a 3GPP communication system.
Another way to perform rate matching is to define a rule that steps through the codeword bits one by one and determines if a codeword bit should be punctured (removed) or repeated. Such a method has the benefit of flexibility and is defined in 3GPP Rel-99. However such a method suffers from implementation inefficiency. Further, there is no way to guarantee that the transmissions associated with a given information block do not overlap (i.e., orthogonal) for IR HARQ. Thus the system performance may suffer.
Alternatively, a circular buffer based rate matching algorithm may be designed to provide good performance with low implementation complexity. In this method, the codeword bits are rearranged to form a circular buffer. If Ndesired coded bits are needed for transmission, a length-Ndesired block of consecutive bits are taken from the circular buffer (wrapped around to the beginning if last bit of the circular buffer is reached). Therefore, puncturing and repetition can be achieved using a single method. The circular-buffering technique has advantages in flexibility, performance, and ease of implementation.
To realize the different codeword versions in a HARQ operation, a parameter such as redundancy version (RV) can be used as an input to the circular buffer based rate matching algorithm. The redundancy versions may define starting positions within the circular buffer for selecting the slice of the codeword for transmission.
In the prior art, the allowable starting positions of the RVs are evenly distributed over the circular buffer containing the sequence of codeword bits after rearrangement, which makes it difficult to implement each transmission of HARQ. Therefore, a need exists for a method and apparatus for assigning redundancy versions to a circular buffer within a communication system that improves the efficiency of the circular buffer based rate matching algorithm.