Enhanced channel interleaving for optimized data throughput
10972210 · 2021-04-06
Assignee
Inventors
Cpc classification
H04L1/005
ELECTRICITY
H04L5/0048
ELECTRICITY
H04L1/0083
ELECTRICITY
International classification
Abstract
In a transmission scheme wherein multi-slot packet transmissions to a remote station can be terminated by an acknowledgment signal from the remote station, code symbols can be efficiently packed over the multi-slot packet so that the remote station can easily decode the data payload of the multi-slot packet by decoding only a portion of the multi-slot packet. Hence, the remote station can signal for the early termination of the multi-slot packet transmission, which thereby increases the data throughput of the system.
Claims
1. A method for wireless communication comprising: inputting a plurality of data bits into an encoder; generating a plurality of encoded sequences by the encoder based at least in part on the plurality of data bits; forming a plurality of blocks based at least in part on the plurality of encoded sequences; permuting symbols in a first block of the plurality of blocks; permuting symbols in at least one other block of the plurality of blocks in a manner different from the symbols in the first block; and generating a plurality of permuted blocks based at least in part on the permuting symbols in the first block and the permuting symbols in the at least one other block.
2. The method of claim 1, further comprising: reading out the plurality of permuted blocks in a column by column manner to generate an interleaved output symbol sequence; and modulating the interleaved output symbol sequence in accordance with a modulation scheme.
3. The method of claim 2, further comprising: transmitting at least a portion of the interleaved output symbol sequence during a first slot of a plurality of slots.
4. The method of claim 2, wherein the modulation scheme comprises a bit mapping in which a most significant bit communicated by a modulation symbol is more resilient to errors in a quadrature channel than any other bit communicated by the modulation symbol.
5. The method of claim 1, wherein the permuting symbols in a first code block of the plurality of code blocks comprises reordering one or more columns of symbols in the first code block.
6. The method of claim 1, wherein the permuting symbols in a first code block of the plurality of code blocks comprises performing an end-around shifting operation to one or more columns of symbols in the first code block.
7. The method of claim 6, wherein the permuting symbols in at least one other code block of the plurality of blocks in a manner different from the symbols in the first block comprises performing an end-around shifting operation to one or more columns of symbols in the at least one other block using a shifting value different from a shifting value used for performing the end-around shifting operation to the one or more columns of symbols in the first block.
8. The method of claim 1, wherein the permuting symbols in a first code block of the plurality of code blocks comprises swapping at least one symbol in the first block with at least one symbol in the at least one other block.
9. The method of claim 8, wherein a position of the at least one symbol in the at least one other block with which the at least one symbol in the first block is to be swapped is based at least in part on a modulation scheme.
10. The method of claim 1, wherein the encoder is a turbo encoder.
11. The method of claim 1, wherein the plurality of encoded sequences comprises at least three encoded sequences.
12. An apparatus for wireless communication, comprising: a processor; memory in communication with the processor; and instructions stored in the memory and operable, when executed by the processor, to cause the apparatus to: input a plurality of data bits into an encoder; generate a plurality of encoded sequences by the encoder based at least in part on the plurality of data bits; form a plurality of blocks based at least in part on the plurality of encoded sequences; permute symbols in a first block of the plurality of blocks; permute symbols in at least one other block of the plurality of blocks in a manner different from the symbols in the first block; and generate a plurality of permuted blocks based at least in part on a permutation of symbols in the first block and a permutation of symbols in the at least one other block.
13. The apparatus of claim 12, wherein the instructions are executable by the processor to: read out the plurality of permuted blocks in a column by column manner to generate an interleaved output symbol sequence; and modulate the interleaved output symbol sequence in accordance with a modulation scheme.
14. The apparatus of claim 13, wherein the instructions are executable by the processor to: transmit at least a portion of the interleaved output symbol sequence during a first slot of a plurality of slots.
15. The apparatus of claim 13, wherein the modulation scheme comprises a bit mapping in which a most significant bit communicated by a modulation symbol is more resilient to errors in a quadrature channel than any other bit communicated by the modulation symbol.
16. The apparatus of claim 12, wherein the instructions executable by the processor to cause the apparatus to permute symbols in a first code block of the plurality of code blocks comprise instructions executable by the processor to cause the apparatus to: reorder one or more columns of symbols in the first code block.
17. The apparatus of claim 12, wherein the instructions executable by the processor to cause the apparatus to permute symbols in a first code block of the plurality of code blocks comprise instructions executable by the processor to cause the apparatus to: perform an end-around shifting operation to one or more columns of symbols in the first code block.
18. The apparatus of claim 17, wherein the instructions executable by the processor to cause the apparatus to permute symbols in at least one other code block of the plurality of blocks in a manner different from the symbols in the first block comprise instructions executable by the processor to cause the apparatus to: perform an end-around shifting operation to one or more columns of symbols in the at least one other block using a shifting value different from a shifting value used for performing the end-around shifting operation to the one or more columns of symbols in the first block.
19. The apparatus of claim 12, wherein the instructions executable by the processor to cause the apparatus to permute symbols in a first code block of the plurality of code blocks comprise instructions executable by the processor to cause the apparatus to: swap at least one symbol in the first block with at least one symbol in the at least one other block.
20. A non-transitory computer-readable medium storing code for wireless communication, the code comprising instructions executable by a processor to: input a plurality of data bits into an encoder; generate a plurality of encoded sequences by the encoder based at least in part on the plurality of data bits; form a plurality of blocks based at least in part on the plurality of encoded sequences; permute symbols in a first block of the plurality of blocks; permute symbols in at least one other block of the plurality of blocks in a manner different from the symbols in the first block; and generate a plurality of permuted blocks based at least in part on a permutation of symbols in the first block and a permutation of symbols in the at least one other block.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DETAILED DESCRIPTION
(11) As illustrated in
(12) In one embodiment the wireless communication network 10 is a packet data services network. The mobile stations 12A-12D may be any of a number of different types of wireless communication device such as a portable phone, a cellular telephone that is connected to a laptop computer running IP-based, Web-browser applications, a cellular telephone with associated hands-free car kits, a personal data assistant (PDA) running IP-based, Web-browser applications, a wireless communication module incorporated into a portable computer, or a fixed location communication module such as might be found in a wireless local loop or meter reading system. In the most general embodiment, mobile stations may be any type of communication unit.
(13) The mobile stations 12A-12D may be configured to perform one or more wireless packet data protocols such as described in, for example, the EIA/TIA/IS-707 standard. In a particular embodiment, the mobile stations 12A-12D generate IP packets destined for the IP network 24 and encapsulate the IP packets into frames using a point-to-point protocol (PPP).
(14) In one embodiment the IP network 24 is coupled to the PDSN 20, the PDSN 20 is coupled to the MSC 18, the MSC 18 is coupled to the BSC 16 and the PSTN 22, and the BSC 16 is coupled to the base stations 14A-14C via wirelines configured for transmission of voice and/or data packets in accordance with any of several known protocols including, e.g., E1, T1, Asynchronous Transfer Mode (ATM), IP, Frame Relay, HDSL, ADSL, or xDSL. In an alternate embodiment, the BSC 16 is coupled directly to the PDSN 20, and the MSC 18 is not coupled to the PDSN 20. In another embodiment of the invention, the mobile stations 12A-12D communicate with the base stations 14A-14C over an RF interface defined in the 3.sup.rd Generation Partnership Project 2 “3GPP2,” “Physical Layer Standard for cdma2000 Spread Spectrum Systems,” 3GPP2 Document No. C.P0002-A, TIA PN-4694, to be published as TIA/EIA/IS-2000-2-A, (Draft, edit version 30) (Nov. 19, 1999), which is fully incorporated herein by reference.
(15) During typical operation of the wireless communication network 10, the base stations 14A-14C receive and demodulate sets of reverse-link signals from various mobile stations 12A-12D engaged in telephone calls, Web browsing, or other data communications. Each reverse-link signal received by a given base station 14A-14C is processed within that base station 14A-14C. Each base station 14A-14C may communicate with a plurality of mobile stations 12A-12D by modulating and transmitting sets of forward-link signals to the mobile stations 12A-12D. For example, as shown in
(16) If the transmission is a conventional telephone call, the BSC 16 will route the received data to the MSC 18, which provides additional routing services for interface with the PSTN 22. If the transmission is a packet-based transmission such as a data call destined for the IP network 24, the MSC 18 will route the data packets to the PDSN 20, which will send the packets to the IP network 24. Alternatively, the BSC 16 will route the packets directly to the PDSN 20, which sends the packets to the IP network 24.
(17) In some exemplary CDMA systems, packets carrying data traffic are divided into subpackets, which occupy “slots” of a transmission channel. For illustrative ease only, the nomenclature of a High Data Rate (HDR) system is used herein. Such use is not intended to limit the implementation of the invention to HDR systems. Embodiments can be implemented in other CDMA systems, such as, e.g. cdma2000, without affecting the scope of the embodiments described herein.
(18) In an HDR system, slot sizes have been designated as 1.66 ms, but it should be understood that slot sizes might vary in the embodiments described herein without affecting the scope of the embodiments. For example, the slot size in cdma2000 systems is 1.25 ms in duration. In addition, data traffic can be transmitted in message frames, which can be 5 ms, 10 ms, 20 ms, 40 ms or 80 ms in duration in IS-95 systems. The terms “slots” and “frames” are terms used with respect to different data channels within the same or between different CDMA systems. A CDMA system comprises a multitude of channels on the forward and reverse links, wherein some channels are structured differently from others. Hence, the terminology to describe some channels will differ in accordance with channel structure. For illustrative purposes only, the term “slots” will be used hereafter to describe the packaging of signals propagated over the air.
(19) Redundant representations of the data payload are packed into frames, or subpackets, which can then be soft-combined at the receiver. Redundancy refers to the substantially similar information carried by each subpacket. Redundant representations may be generated either through repetition or through additional coding. The process of soft-combining allows the recovery of corrupted bits. Through the process of soft combining, wherein one corrupted subpacket is combined with another corrupted subpacket, the transmission of repetitious and redundant subpackets can allow a system to transmit data at a minimum transmission rate. The transmission of repetitious and redundant subpackets is especially desirable in the presence of fading. Rayleigh fading, which is a form of multipath interference, occurs when multiple copies of the same signal arrive at the receiver at different phases, potentially causing destructive interference. Substantial multipath interference with very small delay spread can occur to produce flat fading over the entire signal bandwidth. If the remote station is traveling in a rapidly changing environment, deep fades could occur at times when subpackets are scheduled for retransmission. When such a circumstance occurs, the base station requires additional transmission power to transmit the subpacket.
(20) For example, if a scheduler unit within a base station receives a data packet for transmission to a remote station, the data payload is redundantly packed into a plurality of subpackets, which are sequentially transmitted to a remote station. When transmitting the subpackets, the scheduler unit may decide to transmit the subpackets either periodically or in a channel sensitive manner.
(21) The forward link from the base station to a remote station operating within the range of the base station can comprise a plurality of channels. Some of the channels of the forward link can include, but are not limited to a pilot channel, synchronization channel, paging channel, quick paging channel, broadcast channel, power control channel, assignment channel, control channel, dedicated control channel, medium access control (MAC) channel, fundamental channel, supplemental channel, supplemental code channel, and packet data channel. The reverse link from a remote station to a base station also comprises a plurality of channels. Each channel carries different types of information to the target destination. Typically, voice traffic is carried on fundamental channels, and data traffic is carried on supplemental channels or packet data channels. Supplemental channels are usually dedicated channels, while packet data channels usually carry signals that are designated for different parties in a time-multiplexed manner. Alternatively, packet data channels are also described as shared supplemental channels. For the purposes of describing the embodiments herein, the supplemental channels and the packet data channels are generically referred to as data traffic channels.
(22) Supplemental channels and packet data channels can improve the average transmission rate of the system by allowing the transmission of unexpected data messages to a target station. Since the data payload can be redundantly packed on these channels, a multi-slot transmission scheduled on the forward link can be terminated early if the remote station can determine that the data payload is recoverable from the subpackets that have already been received. As described above, the data payload that is carried in each slot has undergone various encoding steps wherein the encoded bits are re-ordered into a channel-tolerant format. Hence, in order to accomplish data recovery, the decoder of the remote station must operate on the entire contents of each slot of the multi-slot transmission. However, operation of the decoder after each slot is a power-intensive process that can inordinately drain the battery power of the remote station.
(23) The embodiments described herein will reduce the power drain due to the operation of the decoder by allowing the decoder to operate on partial transmissions of data packets. In addition to reducing the power drain, the embodiments allow a minimum transmission rate to be maintained.
(24) Determining Data Transmission Rates on the Forward Link
(25) In an HDR system, the rates at which the subpackets are to be transmitted from a base station to a remote station are determined by a rate control algorithm performed by the remote station and a scheduling algorithm at the base station. This method to modify the data transmission rate is referred to as an Automatic Repeat Request (ARQ) procedure. It should be noted that the system throughput is determined by the rate at which data payload is actually received, which differs from the bit rate of the transmitted subpackets.
(26) The rate control algorithm is implemented by the remote station in order to determine which base station in the active set can provide the best throughput and to determine the maximum data rate at which the remote station can receive packets with sufficient reliability. The active set is the set of base stations that are currently in communication with the remote station. In a typical CDMA or non-CDMA wireless system, a base station transmits a known signal, referred to as a “pilot,” at well-defined, periodic intervals. The remote station typically monitors the pilot signal of each base station maintained in the active set, and determines the signal-to-noise-and-interference ratio (SINR) of each pilot signal. Based on past SINR information, the remote station predicts a future value of the SINR for each base station, wherein the future value of the SINR will be associated with the next packet duration. The remote station then picks the base station that is likely to have the most favorable SINR over a period of the near future, and estimates the best data rate at which the remote station can receive the next data packet from this base station. The remote station then transmits a data rate control message (DRC) carrying this data rate information to the base station. It is understood that the best data rate information carried by the DRC is the data rate at which the remote station requests the next data packet to be transmitted. In an HDR system, the DRC messages are transmitted on a MAC channel of the reverse link waveform.
(27) The scheduling algorithm is implemented at the base station to determine which remote station will be the recipient of the next packet. The scheduling algorithm takes into account the need to maximize base station throughput, the need to maintain fairness between all remote stations operating within the range of the base station, and the need to accommodate the data transmission rates requested by various remote stations. As discussed below, the fast ARQ procedure determines the actual data transmission rate at which each data packet is received, as opposed to the data transmission rate initially determined by the rate control algorithm.
(28) A scheduling unit in the base station monitors the arrival of DRCs from all remote stations that are operating within its range, and uses the DRC information in the scheduling algorithm to determine which remote station will be the next data packet recipient, in accordance with an optimal forward link throughput level. It should be noted that an optimal forward link throughput takes into consideration the maintenance of acceptable link performances for all remote stations operating within the range of the base station. The scheduling unit reassembles the data packet into subpackets with the appropriate bit rate, and generates a transmission schedule for the subpackets on designated slots.
(29) In an HDR system, the forward link data rates vary from 38.4 kbps to 2.456 Mbps. The duration of each packet transmission in number of slots as well as other modulation parameters are described in Table 1.
(30) TABLE-US-00001 TABLE 1 Forward Link Modulation Parameters Data Rate Number of Bits per (kbps) Slots Packet Code Rate Modulation 38.4 16 1024 1/5 QPSK 76.8 8 1024 1/5 QPSK 153.6 4 1024 1/5 QPSK 307.2 2 1024 1/5 QPSK 614.4 1 1024 1/3 QPSK 307.2 4 2048 1/3 QPSK 614.4 2 2048 1/3 QPSK 1228.8 1 2048 2/3 QPSK 921.6 2 3072 1/3 8-PSK 1843.2 1 3072 2/3 8-PSK 1228.8 2 4096 1/3 16-QAM 2457.6 1 4096 2/3 16-QAM
(31) In an HDR system, code symbols that are transmitted in subpackets at lower data rates are code-extensions or repetitions of the code symbols that are transmitted at certain higher rates. In many cases, the code symbols transmitted in a given subpacket are shifted repetitions of the code symbols transmitted in the earlier slots of the packet. The lower data rates require a lower SINR for a given low probability of packet error. Hence, if the remote station determines that channel conditions are not favorable, the remote station will transmit a DRC message requesting a low data rate packet, which comprises multiple subpackets. The base station will then transmit multi-slot packets in accordance with parameters stored in the scheduling unit, an example of which is presented in Table 1.
(32) As the subpackets are transmitted, the remote station may determine that the data packet can be decoded from only a portion of the subpackets scheduled for transmission. Using the fast ARQ procedure, the remote station instructs the base station to stop the transmission of the remaining subpackets, thereby increasing the effective data transmission rate of the system. However, in order to cause the early termination of the scheduled subpacket transmissions, the remote station may have to run the decoder over every slot carrying a subpacket, which requires the consumption of a large amount of power.
(33) It should be noted that the ARQ procedure has the potential to significantly increase the forward link throughput of the underlying wireless communication system. As discussed above, when the remote station transmits a DRC message to the base station, the requested data transmission rate is determined using the rate control algorithm, which uses past SINR values to predict the SINR value of the near future. However, due to fading conditions that arises due to environmental factors and the mobility of the remote station, the prediction of the SINR for the near future is not reliable. In addition, the SINR of the forward link traffic signal may be very different from the SINR of the pilot signal due to interference from adjacent base stations. It is possible that some of the neighboring base stations may have been idle during the sampling period for the SINR prediction calculations. As a result, the remote station may not always predict the SINR with great accuracy. Therefore, the rate control algorithm provides a lower bound estimate for the actual SINR during the next packet duration with high probability, and determines the maximum data transmission rate that can be sustained if the actual SINR is equal to this lower bound estimate. In other words, the rate control algorithm provides a conservative measure of the data transmission rate at which the next packet can be received. The ARQ procedure refines this estimate, based on the quality of the data received during the initial stages of the packet transmission. Hence, it is important for the remote station to inform the base station as soon as the remote station has enough information to decode a data packet, so that early termination of transmissions can occur, which enhances the data transmission rate of the data packet.
(34) Transmissions of the subpackets to the remote station are sent in a staggered pattern so that transmission gaps occur between the subpackets. In one embodiment, the subpackets are transmitted periodically at every 4.sup.th slot. The delay between subpackets provides an opportunity for the target remote station to decode the subpacket before the arrival of the next subpacket. If the remote station is able to decode the subpacket before the arrival of the next subpacket and to verify the Cyclic Redundancy Check (CRC) bits of the decoded result before the arrival of the next subpacket, the remote station can transmit an acknowledgment signal, hereinafter referred to as a FAST_ACK (acknowledgement) signal, to the base station. If the base station can demodulate and interpret the FAST_ACK signal sufficiently in advance of the next scheduled subpacket transmission, the base station need not send the remaining scheduled subpacket transmissions. The base station may then transmit a new data packet to the same remote station or to another remote station during the slot period that had been designated for the cancelled subpackets. It should be noted that the FAST_ACK signal herein described is separate and distinct from the ACK messages that are exchanged between the higher layer protocols, such as the Radio Link Protocol (RLP) and the Transmission Control Protocol (TCP).
(35) Since the ARQ procedure allows a fast rate adaptation to channel conditions, the ARQ procedure allows for the implementation of a system wherein the initial data transmission can be performed at a high data rate and ramped down as needed. In contrast, a system without ARQ would be forced to operate at a lower data rate, in order to provide a sufficient link budget margin to account for channel variations during packet transmissions.
(36) Reducing Power Consumption by Reducing Decoder Operation
(37) In one embodiment, the remote station can reduce the power consumption of the decoder by operating the decoder in accordance with statistical properties of the channel. The remote station determines the average SINR of the pilot signal corresponding to the arrival times of received subpackets. It should be noted that the average traffic channel SINR may be higher than the average SINR of the pilot channel, due to the inactivity of neighboring base stations during the packet transmission, and that the average pilot channel SINR is subject to measurement noise, which also introduces uncertainty in the average traffic channel SINR. The remote station compares the average SINR to an entry in a lookup table. For each data rate, the lookup table associates a number of subpackets (i.e., transmission slots) to a required packet SINR level, the required packet SINR level being a threshold value for which packet information can be obtained at a low error rate from a minimum number of subpackets. The entries in this lookup table may be base on simulation or controlled testing of the remote station demodulator performance under various channel conditions.
(38) If the average SINR is considerably lower than the corresponding required packet SINR level in the look-up table, then the remote station refrains from decoding the received subpackets and waits for the next subpacket arrival. The remote station continues the process of making average SINR calculations of the pilot signals.
(39) If the average SINR is lower than the corresponding required packet SINR level in the look-up table, but remains within a tolerance value, and if the actual SINR over the data period is significantly higher than the average pilot channel SINR, then the remote station may decode the received subpackets. The remote station operates the decoder for a small number of iterations. If the decoding is successful, then the remote station transmits a FAST_ACK signal to the base station.
(40) If the average SINR is larger than the required packet SINR level in the look-up table by a second tolerance value, then the remote station operates the decoder for a small number of iterations. It should be observed that if the traffic channel has a favorable SINR level, then the transmitted subpackets could likely be decoded with a small number of iterations.
(41) If the average SINR is in the close vicinity of the required packet SINR level in the look-up table, then the remote station operates the decoder for a large number of iterations. In an embodiment described below, a dynamic stopping criterion is presented to limit the number of iterations of the decoder.
(42) In the embodiment described above, positive, real-valued parameters Δ.sub.1≥Δ.sub.2≥0, and Δ.sub.3≥0 can be set, and non-negative integer-valued parameters 0≤N.sub.1≤N.sub.2≥N.sub.3≥0 can be set. Let S denote the average SINR measured over the first few received subpackets, and let T denote the required packet SINR threshold from the look-up table, for the given (initial) data rate, over the given number of subpackets. If S<T−Δ.sub.1, then the mobile does not attempt to decode the packet with currently available data. If T−Δ.sub.1≤S<T−Δ.sub.2, then the mobile attempts to decode the packet with a maximum of N.sub.1 iterations. If T−Δ.sub.2≤S<T+Δ.sub.3, then the mobile attempts to decode the packet with a maximum of N.sub.2 iterations. If S≥T+Δ.sub.3, then the mobile attempts to decode the packet with a maximum of N.sub.3 iterations. In all cases, a dynamic stopping rule is implemented, which prevents the decoder from running too many iterations after the packet has been successfully decoded.
(43) Turbo decoding is an iterative procedure, wherein a symbol is decoded after a specified number of iterations. A dynamic stopping rule can be designed to avoid running iterations after the symbol is successfully decoded, while retaining the ability to use a large number of decoding iterations only for badly degraded code symbols.
(44) In one embodiment, a dynamic stopping rule is implemented to produce significant power savings while maintaining a high data transmission rate. A minimum number of iterations N.sub.min and a maximum number of iterations N.sub.max are set at the remote station. N.sub.min iterations are run. The CRC bits of the decoded payload are determined and compared to the CRC bits of the decoded packet. If the two sets of CRC bits are equal, then the CRC bits are deemed valid and the decoder is run for a successive iteration to determine if a subsequent payload has valid CRC bits. If the two sets of CRC bits are not equal, then the CRC bits are deemed invalid and another iteration is run. If the CRC bits from two successive iterations are both deemed valid, then the decoding is deemed successful and terminated. If the number of iterations reaches N.sub.max, the decoding is terminated.
(45) Transmitting Interleaved Symbols that Minimize Decoder Operations
(46) In another embodiment to reduce decoder operations, which can be used in conjunction with the dynamic stopping rule and the channel sensitive method described above or can be implemented independently from the dynamic stopping rule and channel sensitive method described above, the subpackets can be transmitted in a manner that allows the decoder to determine the payload of the partial slot transmissions quickly, while still providing protection from burst errors.
(47) A channel interleaver can be configured in accordance with this embodiment to permute the bits of an encoded symbol and provide incremental redundancy. In this embodiment, a permutation of the bits is designed so that the systematic bits are sent during a partial transmission of the multi-slot packet. The decoder may be able to determine the data payload from the arrival of only a portion of the subpackets. If the payload cannot be decoded, then the remote station transmits a negative acknowledgment (NAK) on the ARQ channel. The base station receives the NAK and transmits a subsequent subpacket, containing additional parity bits. If the remote station cannot decode the subpackets with the already received systematic bits and the newly received parity bits, then another NAK is transmitted. The base station receives the second NAK and transmits another subpacket, which includes additional parity bits. As further NAKs are received during the ARQ procedure, subsequent subpackets transmitted by the base station contain more parity bits.
(48) In other words, the channel interleaver permutes the systematic bits and the parity bits in a manner such that the systematic bits are loaded at the front of a packet and the parity bits are loaded at the rear of the packet. For transmission purposes, the packet is divided up into portions, and each portion is transmitted sequentially, as needed by the remote station. Hence, if additional information is needed to decode the data payload, only the additional parity bits are transmitted, rather than retransmitting the entire encoder output.
(49) This process of loading systematic bits at the beginning of the scheduled packet transmission may appear to defeat the purpose of a channel interleaver, but the embodiment described herein can be implemented to provide resilience to burst errors while still allowing the decoder to operate on only a partial transmission of the packet. In most implementations of power-efficient, wireless communication systems using turbo codes, the output of the turbo encoder is scrambled either before or after channel interleaving so that data is randomized prior to modulation. The random scrambling of the turbo encoder output limits the peak-to-average ratio of the envelope of the modulated waveform.
(50)
(51) In one embodiment, the first and second constituent encoders 210, 230 are recursive, convolutional encoders, each configured in accordance with the transfer function:
G(D)=[1,n.sub.0(D)/d(D),n.sub.1(D)/d(D)],
wherein d(D)=1+D.sup.2+D.sup.3, n.sub.0(D)=1+D+D.sup.3, and n.sub.1(D)=1+D+D.sup.2+D.sup.3. Using the first and second constituent encoders 210, 230, the turbo encoder 200 generates a plurality of encoded data output symbols and a plurality of encoded tail output symbols, wherein the plurality of encoded data output symbols are subsequently punctured by the symbol generation element 240 and the plurality of encoded tail output symbols are subsequently both punctured and repeated by the symbol generation element 240.
(52) Initially, the states of the first constituent encoder 210 and the second constituent encoder 230 are set to zero. Let N.sub.turbo be the number of data bits input into the turbo encoder 200, after a 6-bit Physical Layer packet tail field is discarded. The first constituent encoder 210 is clocked once for each of the N.sub.turbo bits with the switch 250 in the up position. The second constituent encoder 230 is also clocked once for each of the N.sub.turbo bits with the switch 250 in the up position. The resultant encoded data symbols are input sequentially into symbol generation element 240, in the order X, Y.sub.0, Y.sub.1, X′, Y′.sub.0, and Y′.sub.1, with the X output first. The sequence X, Y.sub.0, Y.sub.1, X′, Y′.sub.0, Y′.sub.1 is then punctured by the symbol generation element 240, in the manner specified below in Table 2.
(53) TABLE-US-00002 TABLE 2 Puncturing Patterns for Encoded Data Symbols. (For each rate, the puncturing table is read from top to bottom.) Output Code Rate 1/3 Code Rate 1/5 X 1 1 Y.sub.0 1 1 Y.sub.1 0 1 X′ 0 0 Y′.sub.0 1 1 Y′.sub.1 0 1
(54) In Table 2, “0” indicates that the symbol will be deleted, and “1” indicates that the symbol will be passed. In this embodiment, symbol repetition is not used in generating the encoded data output symbols.
(55) After the packet data bits have been encoded into data symbols, the turbo encoder 200 generates tail output symbols. The tail output symbols are generated by clocking each of the constituent encoders for half of the duration of the total tail bit periods while the other constituent encoder is left unclocked. For example, in the embodiment wherein the rate of the turbo encoder is R, and the number of tail output symbols desired is 6/R, then the first 3/R tail output symbols are generated when the first constituent encoder 210 is clocked three times with the switch 250 in the down position and the second constituent encoder 230 is not clocked. Hence, no output is generated by the constituent encoder 230 during this period. The resultant encoded tail output symbols undergo puncturing and symbol repetition at symbol generation element 240. The last 3/R tail output symbols are generated when the second constituent encoder 230 is clocked three times with the switch 250 in the down position while the first constituent encoder 210 is not clocked. The resultant encoded tail output symbols undergo puncturing and symbol repetition at symbol generation element 240.
(56) The outputs of the first and second constituent encoders 210, 230 are input into symbol generation element 240 in the sequence X, Y.sub.0, Y.sub.1, X′, Y′.sub.0, and Y′.sub.1, with the X output first. Sequence X, Y.sub.0, Y.sub.1, X′, Y′.sub.0, and Y′.sub.1 of the encoded tail output symbols are punctured in accordance with Table 3 below. In Table 3, “0” indicates that the symbol will deleted, and “1” indicates that the symbol passes.
(57) TABLE-US-00003 TABLE 3 Puncturing Patterns for Tail Bit Periods. Output Code Rate 1/3 Code Rate 1/5 X 111 000 111 000 Y.sub.0 111 000 111 000 Y.sub.1 000 000 111 000 X′ 000 111 000 111 Y′.sub.0 000 111 000 111 Y′.sub.1 000 000 000 111
(For rate R=⅓ turbo codes, the puncturing table is read first from top to bottom, repeating X and X′, and then from left to right. For rate R=⅕ turbo codes, the puncturing table is read first from top to bottom, repeating X, X′, Y.sub.1 and Y′.sub.1, and then from left to right.)
(58) For rate R=⅕, the tail output code symbols for each of the first three tail bit periods can be punctured and repeated to form the sequence XXY.sub.0Y.sub.1Y.sub.1. The tail output code symbols for each of the last three tail bit periods are punctured and repeated to form the sequence X′X′Y′.sub.0Y′.sub.1Y′.sub.1. For rate R=⅓, the tail output code symbols of the first three tail bit periods are punctured and repeated to form the sequence XXY.sub.0. The tail output code symbols of the last three tail bit periods are punctured and repeated to form the sequence X′X′Y′.sub.0.
(59)
(60) Various implementations of a channel interleaving element 320 can be used to realize the embodiments described below. For example, a channel interleaving element can be produced using at least one memory element and a processor. Alternatively, a lookup table of READ addresses or WRITE addresses may be used permute an array of input symbols to generate an array of interleaved symbols. In another alternative, a state machine can be used to generate a sequence of addresses defining the permutation of input symbols. Other implementations are known to those of skill in the art, and will not be described herein. The choice of implementation will not affect the scope of the embodiments below.
(61) The output of the channel interleaving element 320 is separated into in-phase (I) and quadrature phase (Q) sequences by modulation element 330. Modulation element 330 is configured to perform Quadrature Phase Shift Keying (QPSK), 8-ary Phase Shift Keying (PSK), and 16-ary Quadrature Shift Keying (QSK) modulation upon the interleaved symbols, wherein the choice of modulation scheme is determined based on the data transmission rate of the packet. An example of the choice of the modulation schemes based on data transmission rates is presented in Table 1. The output of the modulation element 330 undergoes further processing, in accordance with the type of CDMA system in which the embodiments are implemented. The additional processing steps will not be described herein since these processing steps are not directly relevant to the understanding of the scope of the embodiments. Descriptions of the specific processing steps can be found in the aforementioned CDMA documents.
(62) In one embodiment, the output of a turbo encoder operating at rate ⅕ can be reordered by the method described in
(63) In an embodiment wherein the turbo encoder is operating at rate ⅓, the demultiplexing can be completed using three sequences, denoted U, V.sub.0, and V′.sub.0. In this case, the rearrangement of the order of V.sub.0, and V′.sub.0 results in an equivalent interleaver from the viewpoint of error performance, since the requirement that the first and last sequences remain at the first position and last position has not been violated.
(64) In the embodiment wherein the turbo encoder operates at rate=⅕, the channel interleaver will be configured to permute code symbols in three separate bit-reversal interleaver blocks with the first block comprising the sequence of U symbols, the second block comprising the sequence of V.sub.0 and V′.sub.0 symbols, and the third block comprising the sequence of V.sub.1 and V′.sub.1 symbols. In the embodiment wherein the turbo encoder operates at rate=⅓, the channel interleaver will be configured to permute code symbols in two separate blocks, with the first block comprising the sequence of U sequences and the second block comprising the sequence of V.sub.0 and V′.sub.0 symbols. For the sake of illustrative ease, the embodiment for rate R=⅓ will not be described hereinafter because the embodiment for rate R=⅓ operates in the same manner as the embodiment for rate R=⅕, which is described in detail below in
(65) In the embodiment wherein a scrambling element is used upon the output symbols of the turbo encoder before channel interleaving occurs, the above embodiment can still be implemented upon a block of scrambled U symbols, a block of scrambled V.sub.0 and V′.sub.0 symbols, and a block of the scrambled V.sub.1 and V′.sub.1 symbols.
(66)
(67) At step 502, the symbols of each column of input block U are end-around shifted downward by j mod(K), the symbols of each column of input block V.sub.0/V′.sub.0 are end-around shifted downward by └j/4┘ mod (K), and the symbols of each column of input block V.sub.1/V′1 are also end-around shifted downward by └j/4┘ mod (K). The floor operator └ ┘ is used to denote the highest integer value less than or equal to the value within the floor operator.
(68) At step 504, the columns are reordered so that column j is moved to column BRO(j), wherein BRO(j) indicates the bit-reversed value of j. For example, for M=512, BRO(6)=192.
(69) At step 506, the entire array of symbols is read out column-wise, starting from the left-most column, and read from top to bottom.
(70) Using this method, the interleaver output sequence for a turbo encoder at rate=⅕ will be the interleaved U symbols followed by the interleaved V.sub.0/V′.sub.0 symbols and then the interleaved V.sub.1/V′.sub.1 symbols. At rate=⅓, the interleaver output sequence will be the interleaved U symbols followed by the interleaved V.sub.0/V′.sub.0 symbols. Various values for parameters K and M are presented in Table 2.
(71) TABLE-US-00004 TABLE 2 Channel Interleaver Parameters Physical U Block V.sub.0/V′.sub.0 and V.sub.1/V′.sub.1 Block Layer Interleaver Parameters Interleaver Parameters Packet Size K M K M 1,024 2 512 2 1,024 2,048 2 1,024 2 2,048 3,072 3 1,024 3 2,048 4,096 4 1,024 4 2,048
(72) Higher rate codes may be generated simply by discarding or truncating the last few outputs of the interleaver. This procedure provides results that approximate optimal or near optimal turbo codes operating at rate ⅘, ⅔, ½, ⅓, ¼, and ⅕, with the appropriate puncture patterns, as shown in Table 3.
(73) TABLE-US-00005 TABLE 3 Puncture Patterns for the three Rate 2/3 codes Symbol X Y.sub.0 X Y.sub.0 Order X Y.sub.0 Y.sub.0′ Y.sub.1 Y.sub.1′ X Y.sub.0 Y.sub.0′ Y.sub.1 Y.sub.1′ Y.sub.0′ Y.sub.1 Y.sub.1′ Y.sub.0′ Y.sub.1 Y.sub.1′ Rate 4/5 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 Rate 4/5 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 (cont'd) Rate 2/3 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 Rate 1/2 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 Rate 1/3 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 Rate 1/5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(74) In another embodiment, the channel interleaver can be configured to increase performance for higher order modulation schemes. As shown in Table 1, an HDR system can accommodate variable transmission rates of data by utilizing different modulation schemes. In one embodiment, an interleaving pattern is designed to enhance the performance of 8-ary Phase Shift Keying (PSK) modulation and 16-ary Quadrature Amplitude Modulation (QAM).
(75)
(76) At step 602, the columns are reordered so that column j is moved to column BRO(j), wherein BRO(j) indicates the bit-reversed value of j. For example, for M=512, BRO(6)=192.
(77) At step 604, a block swap takes place in accordance with the type of modulation scheme that is to follow the channel interleaver. In an embodiment wherein the 8-PSK modulation scheme will be used in an HDR system,
(78) At step 606, the entire array of symbols is read out by columns, starting from the left-most column, and read from top to bottom.
(79) The results from this embodiment optimize the placement of turbo encoder output into the modulation symbols in the multi-slot packet transmission. This embodiment exploits properties of the 8-PSK and the 16-QAM modulation schemes, namely, various bits of the modulation symbols have different levels of protection and the various bits are distributed uniformly in the modulation pattern.
(80) In one embodiment, an 8-PSK modulation scheme is used to modulate the signal.
(81) TABLE-US-00006 TABLE 4 8-PSK Modulation Interleaved Symbols s.sub.2 s.sub.1 s.sub.0 Modulation Symbols x(3k + 2) x(3k + 1) x(3k) m.sub.1(k) m.sub.Q(k) 0 0 0 C S 0 0 1 S C 0 1 1 -S C 0 1 0 -C S 1 1 0 -C -S 1 1 1 -S -C 1 0 1 S -C 1 0 0 C -S (Note: C = cos(π/8) and S = sin(π/8))
(82) From the symbol mapping in
(83) In another embodiment, a 16-QAM is used to modulate the signal.
(84) TABLE-US-00007 TABLE 5 16-QAM Modulation, where A = 1/√10 Interleaved Symbols S.sub.3 s.sub.2 s.sub.1 s.sub.0 Modulation Symbols x(4k + 3) x(4k + 2) x(4k + 1) x(4k) M.sub.Q(k) M.sub.1(k) 0 0 0 0 3A 3A 0 0 0 1 3A A 0 0 1 1 3A -A 0 0 1 0 3A -3A 0 1 0 0 A 3A 0 1 0 1 A A 0 1 1 1 A -A 0 1 1 0 A -3A 1 1 0 0 -A 3A 1 1 0 1 -A A 1 1 1 1 -A -A 1 1 1 0 -A -3A 1 0 0 0 -3A 3A 1 0 0 1 -3A A 1 0 1 1 -3A -A 1 0 1 0 -3A -3A
(85) If the number of required modulation symbols is more than the number provided in the above embodiments, then the complete sequence of input modulation symbols can be repeated as many full-sequence times as possible followed by a partial transmission of a sequence. If a partial transmission is needed, the first portion of the input modulation symbol sequence can be used. Similarly, if the number of required modulation symbols is less than the number provided, only the first portion of the input modulation symbol sequence can be used.
(86) Table 6 provides an example of sequence repetition and puncturing parameters that can be used with the above embodiments. The number of modulation symbols that the modulator can provide per physical layer packet and the number of modulation symbols needed for that data portion of the allocated slots are presented.
(87) TABLE-US-00008 TABLE 6 Sequence Repetition and Symbol Puncturing Parameters # of # of # of Mod. Data # of # of Mod. Sym. Mod. Sym. # of Full Sym. in Last Repeat Rate (kbps) Slots Bits Provided Needed Sequence Tx Partial Tx Code Rate Factor 38.4 16 1024 2560 24576 9 1536 1/5 9.6 7.8 8 1024 2560 12288 4 2048 1/5 4.8 153.6 4 1024 2560 6144 2 1024 1/5 2.4 307.2 2 1024 2560 3072 1 512 1/5 1.2 614.4 1 1024 1536 1536 1 0 1/3 1 307.2 4 2048 3072 6272 2 128 1/3 2.04 614.4 2 2048 3072 3136 1 64 1/3 1.02 1228.8 1 2048 3072 1536 0 1536 2/3 1 921.6 2 3072 3072 3136 1 64 1/3 1.02 1843.2 1 3072 3072 1536 0 1536 2/3 1 1228.8 2 4096 3072 3136 1 64 1/3 1.02 2457.6 1 4096 3072 1536 0 1536 2/3 1
(88) Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
(89) Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
(90) The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
(91) The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
(92) The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.