1) Determine the maximum transmission times t max . Initialize t = 1. Generate a new **data** block. Perform PS encoding and LDPC encoding. 2) At the t-th transmission, obtain symbol-wise punctured bit sequence S qt pt according to (2). 3) Modulate S qt pt to QAM symbols. Then, the symbols are transmitted over a channel and received by a soft demodulator. 4) Perform inverse puncturing, which is detailed in Section III-B. 5) Perform LDPC decoding and PS decoding. 6) If the **data** block is successfully recovered or t reaches t max , return an ACK and end this transmission. If not, return a NACK to request a retransmission, let t = t + 1 and go back to step 2.