This description relates to wireless networks.
When data (e.g., packet data, which may be voice or user data) is communicated in a wireless telecommunications system, signal interference and/or noise may cause errors in such transmissions. The lower the ratio of the strength of a data signal (e.g., a modulated signal used to wirelessly communicate such data) to the strength of any noise and/or interference in a radio channel (i.e., a Signal to Noise and Interference Ratio (SNIR)), the more likely it is that errors will occur in a given transmission.
In order to detect and/or correct such errors in data transmissions, a set of data bits (e.g., user data bits or systematic bits, hereafter “systematic bits”) may be coded to generate parity bits (e.g., error detection bits, cyclic redundancy check bits) and/or error correction codes (e.g., forward error correction (FEC) codes) prior to transmission. The bits produced by such coding may be termed redundant bits, as they are encoded versions of the systematic bits (e.g., “useful” bits) and may be sent along with the systematic bits for use in error detection and/or correction. In some approaches, error detection bits (e.g., CRC bits) are, from an error correction coding point of view, treated as systematic bits (e.g., CRC bits in addition to the user data bits may be treated as systematic bits for purposes of forward error correction (FEC) coding).
Generally speaking, by increasing the number of redundant bits, the likelihood of being able to detect and correct any errors introduced to a given transmission also increases. However, increasing the number of redundant bits also increases the transmission overhead for systematic bits by reducing the coding rate. Coding rate is generally defined as a ratio of the number of useful bits to the number of total bits (i.e., the number of data bits plus the number of redundant bits). Therefore, there may be a tradeoff made between the number of redundant bits and the benefits of additional redundancy.
Also, when communicating data in a wireless communication system, the number of data bits (or data symbols) allocated for each transmission in a radio channel may be less than a total number of bits (or data symbols) of an encoded data block (i.e., the systematic bits plus the redundant coded bits) that is to be transmitted. Accordingly, in such a situation, only a fraction (subset) of the total number of bits of an encoded data block may be communicated in a single transmission opportunity. One such technique for transmitting an encoded data block in such a situation is the use of one or more (e.g., eight) Hybrid Automatic Repeat-Request (processes) per radio channel. In such embodiments, Multiple HARQ processes may be used to account for processing delays (e.g., coding delays) and propagation delays (e.g., transmission time) and to provide a constant stream of data in a given radio channel.
In such an approach (e.g., HARQ), various redundancy versions (RVs) of the encoded data block may be sent from a sending node to a receiving node. RVs may be different predefined subsets (punctures) of the entire bit field of an encoded data block. For instance, an RV=0 transmission may include all the systematic bits of an encoded data block and a subset of the redundant, coded bits (e.g., error detection bits and/or error correction codes). An RV=1 transmission may include only a subset of the redundant bits and an RV=2 transmission may include the systematic bits and a different subset of redundant bits than the RV=0 transmission.
Thus, in the above scenario, if multiple RVs are received and combined, a coding gain may be realized. Depending on the particular embodiment, such a coding gain may provide an effective 5 dB increase in the SNIR for such data transmissions. Accordingly, transmission energy in such embodiments may be reduced relative to embodiments where such coding gains are not realized.
In communication systems that implement HARQ functionality using RVs, a receiving node (e.g., mobile device) is informed of a RV of a given data transmission and is informed whether to combine information included in the data transmission with data that is already saved in an associated HARQ buffer, or if the HARQ buffer should be flushed before storing the data from the RV. In such approaches, data transmissions are combined or stored in the HARQ buffer based on a puncture matrix that corresponds with the RVs of the various data transmissions. The HARQ buffers are flushed based on whether a data transmission is associated with a new encoded data block (e.g., no previous RVs have been received). In such approaches, a New Data Indicator (NDI) may be used to indicate that a respective HARQ buffer should be flushed prior to storing a puncture included in an associated data transmission. Also, an RV indicator may be used to indicate which RV (puncture) is included in a given transmission.
Current approaches, however, have certain drawbacks. For instance, the NDI and RV indicator may be transmitted in a radio link control channel. Such control channels typically have very limited bandwidth. In certain embodiments, the RV indicator is signaled using multiple bits. Thus, reducing the number of bits used to signal RVs is desirable, so as to free up bandwidth in an associated control channel. In other approaches, sending nodes cannot retransmit an RV=0 transmission on their own initiative. The ability to retransmit an RV=0 transmission on a sending node's own initiative may be advantageous in situations where a negative acknowledgement was received (e.g., an uncorrectable error was introduced into a previous RV=0 transmission). Additionally, the ability to retransmit an RV=0 transmission on a sending node's own initiative may also be advantageous in situations where no acknowledgment (e.g., positive or negative) is received in response to an earlier RV=0 transmission.
In an example embodiment, a method for receiving an encoded data block in a wireless communication system may include receiving a data transmission including a subset of a plurality of bits of the encoded data block. The example method may also include receiving a first control signal indicating whether the received subset is a first received subset associated with the encoded data block or whether one or more subsets were previously received for the encoded data block. The example method may also further include receiving a second control signal, the second control signal having a first state and a second state.
In the example method, the first state of the second control signal may indicate that the received subset includes a first predefined subset of the plurality of bits of the encoded data block and the second state of the second control signal may indicate that the received subset includes one of a plurality of other predefined subsets of the plurality of bits of the encoded data block. In this example embodiment, determining which of the other predefined subsets is included in the received subset may be based on one or more system parameters of the wireless communication system. Further in this example, the state of the second control signal may be selectable between its first state and its second state on a data transmission by data transmission basis, regardless of whether or not one or more subsets of the encoded data block were previously received.
In another example embodiment, a method for transmitting an encoded data block in a wireless communication system may include transmitting a data transmission including a subset of a plurality of bits of the encoded data block. The example method may also include transmitting a first control signal indicating whether the transmitted subset is a first transmitted subset associated with the encoded data block or whether one or more subsets were previously transmitted for the encoded data block. The example method may still further include transmitting a second control signal, the second control signal having a first state and a second state.
In this example, the first state of the second control signal may indicate that the transmitted subset includes a first predefined subset of the plurality of bits of the encoded data block and the second state of the second control signal may indicate that the transmitted subset includes one of a plurality of other predefined subsets of the plurality of bits of the encoded data block. In this example, determining which of the other predefined subsets is included in the received subset may be based on one or more system parameters of the wireless communication system. Still further, in this example embodiment, the state of the second control signal may be selectable between its first state and its second state on a data transmission by data transmission basis, regardless of whether or not one or more subsets of the encoded data block were previously transmitted.
In yet another example embodiment, an apparatus includes a controller, a wireless transceiver operationally coupled with the controller, and a memory operationally coupled with the controller. In the example apparatus, the controller, wireless transceiver and memory may be collectively configured to receive a data transmission including a subset of a plurality of bits of the encoded data block. In this embodiment, the controller, wireless transceiver and memory may be collectively further configured to receive a first control signal indicating whether the received subset is a first received subset associated with the encoded data block or whether one or more subsets were previously received for the encoded data block. In this example apparatus, the controller, wireless transceiver and memory may be collectively also configured to receive a second control signal, the second control signal having a first state and a second state.
In this embodiment, the first state of the second control signal may indicate that the received subset includes a first predefined subset of the plurality of bits of the encoded data block and the second state of the second control signal may indicate that the received subset includes one of a plurality of other predefined subsets of the plurality of bits of the encoded data block. In the example apparatus, determining which of the other predefined subsets is included in the received subset may be based on one or more system parameters of the wireless communication system. Still further in the apparatus, the state of the second control signal may be selectable between its first state and its second state on a data transmission by data transmission basis regardless of whether or not one or more subsets of the encoded data block were previously received.
In still yet another example embodiment, an example apparatus may include a controller, a wireless transceiver operationally coupled with the controller, and a memory operationally coupled with the controller. In the example apparatus, the controller, wireless transceiver and memory may be collectively configured to transmit a data transmission including a subset of a plurality of bits of the encoded data block. The controller, wireless transceiver and memory may be collectively further configured to transmit a first control signal indicating whether the transmitted subset is a first transmitted subset associated with the encoded data block or whether one or more subsets were previously transmitted for the encoded data block. In this example, the controller, wireless transceiver and memory may be collectively also configured to transmit a second control signal, the second control signal having a first state and a second state.
In this example, the first state of the second control signal may indicate that the transmitted subset includes a first predefined subset of the plurality of bits of the encoded data block and the second state of the second control signal may indicate that the transmitted subset includes one of a plurality of other predefined subsets of the plurality of bits of the encoded data block. Still further in this example, determining which of the other predefined subsets is included in the received subset may be based on one or more system parameters of the wireless communication system. Also in the example apparatus, the state of the second control signal may be selectable between its first state and its second state on a data transmission by data transmission basis, regardless of whether or not one or more subsets of the encoded data block were previously transmitted.
The details of one or more example embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
In the wireless network 102, encoded data blocks may be transmitted between the AP 104 and the STAs 108 and 110. Such communication of encoded data blocks may be accomplished in the network 102 using Hybrid Automatic Repeat-Request (HARQ) processes, including signaling of a New Data Indicator (NDI) and a Redundancy Version (RV), such as illustrated by, for example, the various example embodiments described herein.
It will be appreciated that, in one example embodiment, an encoded data block may be communicated from the AP 104 to one of the STAs 108 and 110, while in another example embodiment, an encoded data block may be communicated from one of the STAs 108 and 110 to the AP 104. It will also be appreciated that the embodiments described herein are given only by way of example and numerous other arrangements may be possible.
The method 200, at block 210, includes receiving a data transmission including a subset of a plurality of bits of the encoded data block. In an example embodiment, the received subset may correspond with one of a plurality of redundancy versions (RVs) for the encoded data block. Example embodiments of such data transmissions corresponding with a plurality of example RVs are described in further detail below with respect to
The method 200 also includes, at block 220, receiving a first control signal, where the first control signal may indicate whether the received subset is a first received subset associated with the encoded data block, or whether one or more subsets were previously received for the encoded data block. In an example embodiment, the first control signal may be a New Data Indicator (NDI) signal, which may be a differentially coded single-bit signal that changes state for each new encoded data block to be transmitted. Further, in an example embodiment, the first control signal may have a predefined state for a first data transmission (e.g., a first data transmission of a newly started HARQ process).
The method 200, at block 230, may further include receiving a second control signal, where the second control signal may have a first state and a second state. In an example embodiment, the second control signal may be a single-bit RV0 signal. In such an approach, the RV0 signal being set to logic high may indicate that an associated data transmission includes an RV=0 puncture, such as is described in further detail below. Further, in such an approach, the RV0 signal being set to logic low may indicate that a device receiving an associated data transmission should determine a corresponding RV based on one or more system parameters, such as using the techniques described herein, for example. In an example embodiment, the NDI signal and the RV0 signal may operate in accordance with the Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN) standards/specifications.
In the method 200, the second control signal (e.g., RV0) is selectable between its first state and its second state on a data transmission by data transmission basis, regardless of whether or not one or more subsets of the encoded data block were previously received. For instance, a device that is sending an encoded data block may send, for example, an RV=0 data transmission (puncture) on its own initiative at any given transmission opportunity. Using such an approach may be advantageous in embodiments where there is a significant amount of noise or interference, as the sending node may resend the same set of bits (e.g., including the user data bits or systematic bits) using a less aggressive modulation technique (e.g., less bits per symbol) or, alternatively, using increased transmission energy.
The method 200, at block 240, may further include storing the received subset in a buffer, such as in a buffer associated with a corresponding HARQ process of which the data transmission is part of. Depending on the state of the first control signal (e.g., NDI) and the second control signal (e.g., RV0), different approaches for storing the received subset may be implemented.
For instance, in the event that the first control signal (NDI) indicates that the received subset is a first received subset of the encoded data block (e.g., the encoded data block is a new encoded data block), the method 200 may include, at block 242, clearing a buffer associated with a respective Hybrid Automatic Repeat-Request (HARQ) process for the data transmission; and storing the received subset in the buffer after it is cleared.
In the event the first control signal (NDI) indicates that one or more subsets of the encoded data block were previously received, the method 200 may include, at block 244, combining the received subset with any previously received subsets in a respective HARQ buffer associated with the data transmission. In an example embodiment, such combining may be accomplished using Chase combining.
The method 300 still further includes, at block 310, allocating a buffer (e.g., in a memory of a wireless device receiving the data transmission) for storing the received subset and any subsequently received subsets. In the method 300, the buffer may be allocated based on one or more of the transport block size, the number of data symbols, the modulation and coding scheme and the number of systematic bits.
In the method 300, the indication of the modulation and coding scheme at block 304 may include an indication that the data transmission is modulated in accordance with one of Quadrature Phase Shift Keying (QPSK), 16-Quadrature Amplitude Modulation (16-QAM) and 64-QAM. Further, the indication at block 304 may indicate that coding is done using cyclic redundancy check coding and Turbo coding, for example.
In the methods of
At block 410, the method 400 may include receiving, in response to the negative acknowledgment, a second subset of the plurality of bits of the encoded data block, the second subset may include a second predefined subset (e.g., another RV puncture). At block 510, the method 500 may include receiving, in response to the negative acknowledgment, a retransmission of the received subset (e.g., the RV=0 puncture), where the retransmission may be received using a different modulation scheme than the previous transmission. For instance, at block 510, the modulation scheme may be changed to reduce the number of bits per symbol in order to compensate for noise and/or interference in an associated radio channel.
In this particular embodiment, which is given by way of example for purposes of illustration, the DCI 600 includes an NDI signal 610, which may be a differentially coded single-bit signal, such as described above. The DCI 600 may also include an RV0 indicator. The RV0 indicator may be a single-bit signal that may operate in like fashion as previously described (i.e., indicates that an associated data transmission includes an RV=0 puncture when RV0 is logic high; and indicates that the receiving device should determine the RV of an associated data transmission based on one or more system parameters, such as using the techniques described herein, when RV0 is logic low. In another example embodiment, setting RV0 to logic low may indicate that RV=0.
The DCI 600 also includes a modulation and coding scheme field 630 that may be used to indicate a modulation scheme (e.g., QPSK, 16-QAM or 64-QAM) and a coding scheme (e.g., error correction coding) that are used for an associated data transmission. The example DCI 600 may also include an indication of a number of (data or channel) symbols 640 that are allocated to an associated radio channel. Based on the MCS 630 and the number of symbols 640, a receiving device for an associated data transmission may determine a transport block size and a puncture matrix corresponding with an encoded data block being transmitted.
The DCI 600 also includes a HARQ process indicator 650. The HARQ processor indicator 650 may be used to associate a given data transmission with an respective HARQ process of a radio channel, so that HARQ buffer flushing and/or data combination for each of the HARQ processes operating in an associated radio channel may be accurately carried out. It will be appreciated that the information included in the DCI 600 is shown by way of example. The information included in the DCI 600 may be communicated in other control messages or over other channels of a radio link, e.g., other than a control channel. In an example, embodiment, the information included in the DCI 600 may change. For uplink control information (UCI), the HARQ process number is typically not transmitted since synchronous HARQ operation may be assumed in uplink and the HARQ process number (or id) can be derived from a subframe number or a transport time interval count.
In an example embodiment, the buffer 700 may be used for receiving encoded data blocks of 900 bits, where the encoded data block includes 300 systematic bits 710 and 600 bits for error detection bits and/or error correction bits 720 (collectively “error correction bits 720”). In such an example, the code rate of such an encoded data block would be 1/3 (e.g., the encoded data block includes 300 user data bits and 900 total bits with the 600 redundant error correction bits 720). In an example embodiment, the error correction bits 720 may include cyclic redundancy check (CRC) bits and Forward Error Correction (FEC) codes. Depending on the particular embodiment, the FEC codes may be produced in accordance with a Turbo code. Turbo codes are known to those working in this area and will not be described in detail here.
In some embodiments, error detection bits (e.g., CRC bits) may be treated as systematic bits. Thus, in such an approach, the 300 systematic bits (710) may include, e.g., 276 user data bits and 24 CRC bits, for which 600 error correction (or parity, or redundancy) bits are generated using Turbo coding. In this situation, the Turbo code rate is 1/3.
For a radio link that is able to communicate 400 bits per transmission opportunity (e.g., a radio channel using 16-QAM with 100 data symbols allocated to the channel), an RV=0 data transmission (puncture) corresponding with the buffer 700 of
As shown in
Alternatively, if a data transmission is being communicated from the UE 820 to the E-NodeB 810, the first and second control signals may be communicated via a Physical Uplink Control Channel (PUCCH), 850 and the data transmission may be communicated via a Physical Uplink Shared Channel (PUSCH) 860. Alternatively, as in the E-UTRAN standards, the control signals (NDI and RV, as well as MCS and physical resource allocations or a number of symbols) may be communicated via a Physical Downlink Control Channel (PDCCH) (e.g., UCI 600 may be sent on PDCCH). In an example embodiment, the PDSCH, the PDCCH, the PUCCH and the PUSCH 860 are implemented in accordance with the E-UTRAN standards/specifications.
RV0=0, RV=[floor(TTIC/K) mod (X−1)]+1 Equation 1
In Equation 1, “floor” is a rounding operation towards negative infinity, TTIC is a count of a Transport Time Interval Counter, K is a number of active HARQ processes for an associated radio channel, and X is the number of redundancy versions used in the radio channel. In E-UTRAN, the TTIC counter may be expressed as a combination of a 10 ms timer that increments every 1 ms and rolls over after being incremented 10 times and a system frame number (SFN), which sequentially tracks transmitted frames. The SFN may increment each time the interval counter rolls over. Thus, the TTIC count may be calculated using Equation 2 below:
TTIC=(SFN*10)+Interval Count Equation 2
Alternatively, Interval Count may be replaced with SFN/index, where index has values 0, 1, . . . , 9)
For Equation 1 above, in the case where X=3 (three RVs), the RV values produced will vary between 1 and 2. In the case where X=4 (four RVs), the RV values produced will alternate through the sequence 1, 2 and 3.
In such an approach, in order for a transmitting node to transmit an RV=0 puncture, the transmitting node must set the RV0 parameter to logic high or one. By setting RV0 to a logic high, this indicates that the subset of bits of an encoded data block included in an associated data transmission are an RV=0 puncture of the encoded data block. In this situation, Equation 1 will not be applied to determine the RV, as the RV0 parameter indicates that the RV=0. Such an approach may be advantageous, as is discussed below with respect to
The method 1000, at block 1010, includes, transmitting a data transmission including a subset of a plurality of bits of the encoded data block. Such a transmission may be, for example, a RV=0, a RV=1 or a RV=2 data transmission (puncture), such as were previously described. Alternatively, other puncturing techniques may be applied, and the bits included in the transmitted subset may be determined by any appropriate puncturing technique.
The method 1000 further includes, at block 1020, transmitting a first control signal indicating whether the transmitted subset is a first transmitted subset associated with the encoded data block or whether one or more subsets were previously transmitted for the encoded data block. The first control signal of the method 1000 may take the form of a differentially coded NDI signal, such as described above.
The method 1000 may still further include, at block 1030, transmitting a second control signal, the second control signal having a first state and a second state. In the method 1000, the second control signal may be an RV0 control signal, as was discussed above. For instance, the first state (logic high) of the second control signal (RV0) may indicate that the transmitted subset includes a first predefined subset of the plurality of bits of the encoded data block (e.g., an RV=0 puncture). Further, the second state (logic low) of the second control signal (RV0) at block 1020 may indicate that the transmitted subset includes one of a plurality of other predefined subsets of the plurality of bits of the encoded data block (e.g., an RV=1 puncture, or an RV=2 puncture).
In the method 1000, when the second control signal (RV0) is in its second state (e.g., logic low), a RV for a corresponding data transmission may be determined based on one or more system parameters of the wireless communication system, such as discussed above with respect to
At block 1204, in response to the negative acknowledgment, the transmitting wireless node may transmit another subset of the plurality of bits of the encoded data block (e.g., another RV). After transmitting the other subset, the transmitting wireless device may wait for another acknowledgment message from the receiving wireless device. The probability of a positive acknowledgment may be increased as a result of a coding gain associated with transmitting the other RV subset the receiving device, where the other transmitted RV subset may be combined (e.g., Chase combined) with the previous transmission and any other previous transmissions already stored or combined in a corresponding HARQ buffer.
In this situation, at block 1304, the wireless device may transmit, in response to the lack of an acknowledgment, a retransmission of the previously transmitted RV=0 puncture. In the method 1300, at block 1304, the earlier transmitted set of data bits (RV=0) may be being retransmitted using a different modulation scheme than was used for the previous transmission. For example, the modulation scheme may be changed from 16-QAM (4 bits per symbol) to QPSK (2 bits per symbol). Such a change may allow the retransmission to be more tolerant of any noise and/or interference in an associated wireless network and/or radio channel. In this situation, because the wireless device is retransmitting an RV=0 puncture for a new encoded data block, the previous state of an associated NDI signal may be retained, as the receiving device is assumed to not have received the previous transmission and will still recognize the retransmission as being associated with a new encoded data block (e.g., New Data).
The apparatus 1400 may also include a controller (or processor) 1404 that is operationally coupled with the wireless transceiver 1402. The controller 1404 may carry out software, hardware and/or firmware instructions in the apparatus 1400. The apparatus 1400 may further include a memory 1406 that is operationally coupled with the controller 1404. The memory 1406 may store information related to the operation of the apparatus 1400, such as program instructions and HARQ buffers (e.g., puncture matrices), for example. As shown in
In the apparatus 1400, the wireless transceiver 1402, the controller 1404, the memory 1406 and the TTIC 1408 may be collectively configured to receive and/or communicate an encoded data block in accordance with the methods and approaches described above with respect to
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art.
This application claims priority based on U.S. Provisional Application No. 61/050,609, filed on May 5, 2008, entitled, “SIGNALING OF REDUNDANCY VERSION AND NEW DATA INDICATION,” the disclosure of which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61050609 | May 2008 | US |