This application is related to wireless communications.
Wireless technologies continue to evolve, mostly driven by the need for reliable higher data rates. One example of this evolution is the next generation of the Third Generation Partnership Project (3GPP) wireless standard known as Long Term Evolution (LTE). Although the current description discusses LTE in detail, the hardware, software, methods, and systems described herein could be used in other wireless settings such as in without limitation, High Speed Downlink Packet Access (HSDPA) systems or WiMaX IEEE 802.x standards.
Network coding allows a relay node (RN) to reduce the air interface utilization by one time slot because upon receipt of packets from two end nodes (ENs), the RN creates a single m-bit packet p that may be obtained as a bit-wise XOR of the received packets. RN then forwards p to both ENs, EN1 and EN2. EN1 recognizes p1 sent by EN1 and therefore, upon reception of p, EN1 bit-wise XORs p1 and p that results in p2 sent by EN2. EN2 obtains p1 from p2 and p in the same way. This approach to network coding provides air interface savings in relaying data but the above example ignores several issues that may arise during real-world transmission. Moreover, these issues are not adequately addressed in the art today.
First issue: Different packet sizes. The packets p1 and p2 that EN1 and EN2 transmit are often different sizes, thus the bit-wise XOR operation is not well defined in this case and may lose much of the efficiency apparent in the simple example above.
Second issue: Different transmission rates. EN1 and EN2 often transmit at different packet rates. For example, if EN1 is transmitting at a higher rate, not all of EN1's packet can be network coded—there are simply more of EN1's packets at the RN than EN2's packets. Depending on latency constraints, the scheduler may be able to cause same time transmission. There is a penalty because—especially during Below Rooftop (BRT) deployment—it must then give up some opportunistic gain. In this situation, if the number of bits is different, the gain from network coding diminishes. When relay is used herein, such a relay is preferentially (but not necessarily) part of network infrastructure. For such a relay, it is common to distinguish between a deployment below or above the roof top lines (abbreviated as BRT and ART respectively) since the wireless signal propagation differs significantly between the two cases.
Third issue: Buffer overuse. The transmitter discards a packet once it receives an acknowledgement of its reception by a receiver. For example, when EN1 sends p1 to RN, EN1 discards p1 either upon receiving an ACK from RN, or upon transmission (if the operation is unacknowledged). In order to perform decoding of network coding packets, however, transmitted packets p1 and p2 need to be kept in buffers by EN1 and E2. This introduces additional burden on the MAC that manages the buffer and also overly taxes resources with increased buffer size.
Fourth issue: Packet transmission times are not synchronized. Thus, a transmitter EN does not implicitly know which of its transmitted packets were combined into a network coded packet at the relay node RN. There needs to be a method for the RN to indicate to each EN that it network-encoded the EN's packet. This issue is related to the previous one because this packet must still be in the MAC buffer at the time that a network coded packet is received. Otherwise, network decoding will fail.
Fifth issue: Addressing of noisy channels and Hybrid Automatic Repeat reQuest (HARQ). For example, consider the case that a network-coded packet is not received by one of the intended ENs. The appropriate corrective action requires a different network coding operation at the RN as the EN that has received the packet no longer needs a re-transmission.
Sixth issue: While network coding is traditionally achieved using bit-wise XOR, in this case such an operation may be sub-optimal as it fails to take full advantage of the opportunities provided by operating in the Physical Layer of the communication system. Thus, a more sophisticated approach to network coding is desired.
Hence, what is needed is a method and related apparatus that addresses the obstacles and issues.
A method for network coding of packets between End Nodes (ENs) and a Relay Node (RN) in wireless communications can be performed at the RN. This method may include: receiving a new packet at the RN from one of the ENs; determining the source node of the new packet at the RN; providing a buffer for each EN; determining whether the buffer associated with an EN that is not the source of the new packet (non-source buffer) has the new packet buffered and based upon such determination, either: (1) storing the new packet in the EN buffer that is the source of the new packet on a condition that the non-source buffer is empty; or (2) network coding the new packet with an existing packet in the non-source buffer.
A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings wherein:
When referred to hereafter, the terminology “wireless transmit/receive unit (WTRU)” includes but is not limited to a user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a pager, a cellular telephone, a personal digital assistant (PDA), a computer, or any other type of device capable of operating in a wireless environment. When referred to hereafter, the terminology “base station” includes but is not limited to a Node-B, a site controller, an access point (AP), or any other type of interfacing device capable of operating in a wireless environment.
LTE's (as well as other wired and wireless standards) goals include higher spectral efficiencies, lower latency, and higher peak data rates as compared to previous generation of wireless standards.
In addition to the components that may be found in a typical WTRU, the WTRU 210 includes a processor 316 with an optional linked memory 322, at least one transceiver 314, an optional battery 320, and an antenna 318. The transceiver 314 is in communication with the processor 316 and the antenna 318 to facilitate the transmission and reception of wireless communications. In case a battery 320 is used in the WTRU 210, it powers the transceiver 314 and the processor 316.
In addition to the components that may be found in a typical eNB, the eNB 220 includes a processor 317 with an optional linked memory 315, transceivers 319, and antennas 321. The processors in the system is configured to perform a method of the MAC and PHY layer operations for network coding relays. The transceivers 319 are in communication with the processor 317 and antennas 321 to facilitate the transmission and reception of wireless communications. The eNB 220 is connected to the Mobility Management Entity/Serving GateWay (MME/S-GW) 230 which includes a processor 333 with an optional linked memory 334.
In certain wireless networks, nodes may relay information between other network nodes using network coding. One such simple setup includes 3 nodes as shown in
Consider an example using
1. Network Coding
This section discusses network coding packets of unequal length. There are two approaches described here: network coding before the channel coding (i.e. before the single network coded packet is channel-encoded) and network coding after the channel coding (i.e. two source packets are separately encoded and then the output is network coded).
The network coding may be used to combine the packets in one of the following ways.
(1) Zero-pad a shorter packet to the longer packet's length. Consider an example where p1 is a packet of l1 bits and p2 is a packet of l2 bits, where l1>l2. To combine packets p1 and p2, the packet p2 may be zero-padded to increase its length to l2 bits. The resulting combined packet p has a length 2l1 and can be XORed to extract p1 and p2 from p.
(2) Perform the summation in the ring of positive integers modulo some maximal value.
(3) Perform repetition of bits in the packet p2_with the shorter length to match the larger packet p1 and then XOR the resulting packets.
(4) Some or all of the above approaches can be used to combine more than two packets at a time.
With reference to
The XOR operation 401 may also be performed at any step from the output of the Turbo encoding 405 to the buffer 408. Since all transmitted packets in HSDPA are automatically stored in the buffer 408, it may be convenient to XOR the bits of the two missing packets which are stored in the IR buffer.
XORing packets p1 and p2 of different sizes into packet p may face performance challenges as packet sizes increases. The challenge may be alleviated partially using rate matching (puncturing and/or repetition). For example, puncturing is the process of removing some parity bits after encoding with an error-correction code. This has the same effect as encoding with an error-correction code with a higher rate, or less redundancy. With puncturing, however, the same decoder can be used regardless of how many bits have been punctured, thus puncturing considerably increases the flexibility of the system without significantly increasing its complexity. No matter what rate matching method is used, rate matching may be used to equalize the number of coded bits associated with two source packets of unequal length. But puncturing and repetition in excessive amounts (e.g. by a factor of two or more) may severely degrade link performance.
A. Network Coding the Coded Packets
Using modulations of high order to allow for equalization of packets of different length to overcome the problems described is provided here. This approach allows for “coarse” equalization—fine equalization is then accomplished by standard rate matching techniques. The coarse approach as described may equalize packets to within a factor of two. Moreover, the coarse equalization approach is designed to increase the effective Signal-to-Noise-Ratio (SNR) afforded to the lower-rate packet, thus maximizing the performance advantage that can be delivered to a link.
i. QPSK and BPSK
As an example, consider a requirement to network code two packets: p1 and p2, and suppose p2 contains m (coded- and rate-matched) bits, while p1 contains 2m bits. p1 may be modulated using the full quadrature phase shift keying (QPSK) modulation alphabet (or other suitable modulation code) as shown in
Assume these packets now need to be combined (network coded). The network coding combination scheme might be as follows: let si,1 be the ith modulation symbol for p1 and si,2 be the ith modulation symbol for p2. Then the output modulation symbol is given by
s
i=(si,1+si,2)mod 4 [1]
The general process as illustrated by the example is shown in
The following three observations can be made about the example. First, the output modulation scheme is fixed at QPSK—more specifically, it is fixed by design. Moreover, the output remains balanced, that is, each symbol occurs at the output with equal probability (assuming equiprobable bits at each input bit stream). Second, the receiver of packet p1 (which knows p2) cancels out p2 and benefits from simple QPSK modulation. Third, the receiver of packet p2 (which knows p1) cancels out p1 and benefits from simple BPSK modulation. In particular, this receiver enjoys a 3 dB channel SNR difference after the removal of contribution from p1.
This approach can be extended beyond just BPSK/QPSK to more general modulation schemes, while recognizing certain issues to arrive at a design that offers good performance.
First, the modulation scheme may to be fixed: The output may retain all the necessary symmetries in the complex plane to avoid I/Q imbalance, DC offset and other issues (in particular, circular symmetry around the origin and symmetry around the I and Q axis). While an equiprobable output is targeted, this may not always be possible and the symmetry maintenance requirement above is sufficient to ensure low impact on performance and operation of most systems.
Second, the receiver of the lower-rate packet should benefit from an SNR improvement roughly equal to the ratio of the rates between the higher rate and the lower rate packet.
The QPSK/BPSK example above achieves these two goals but a broader range of communication system designs are possible while achieving the design goals, and some of these designs are discussed herein.
ii. M-PSK
An M-PSK modulation scheme may be described as one whose alphabet consists of the following points in the complex plan
where M is a positive integer (where it is sufficient to consider M≧4).
In other words, M points are placed equidistantly around a unit circle in the complex (I/Q) plane. The fixed angle φ controls the angular rotation of the modulation. Modulation mapping is the process of mapping the bit stream into values 0, 1, . . . M−1. Let M1 and M2 be factors of M (i.e. M1 and M2 divide M). Then the following modulation alphabets define sub-modulation with index i and Mi value of M-PSK:
Start with the full alphabet as in [2].
Use only values
m=0, 1, . . . , Mi−1.
The operation of network coding at the modulation level is accomplished as follows: (1) Given integers m1ε{0, 1, . . . , M1−1} and m2ε{0, 1, . . . , M2−1}representing the desired modulation symbols for 2 streams to be network coded, (2) Compute
and map m into the M-PSK constellation according to [2].
Upon reception of a modulation symbol m, and with knowledge of m1, a receiver may recover m2. Moreover m2 may be mapped into a proper M2-PSK constellation thus retaining all the required symmetry properties. Similarly the receiver with knowledge of m2 may recover m1.
The output of the transmitter may be mapped into a PSK constellation with the number of symbols equal to the least common divisor of M1 and M2 (LCD(M1, M2)). Because, M≧LCD(M1, M2), this is either the M-PSK constellation or a proper sub-constellation of M-PSK.
To extend this to a more general set of rates between the two inputs, a similar process can be used for M-PSK case as follows:
(1) Label the full lattice with integer labels from the set {0, . . . , M−1}—which is the transmission alphabet for the full modulation. Each sub-modulation is has an alphabet {0, . . . , Mi−1}, (associated with sub-lattice i) such that Mi divides M. Make sure the full lattice is labeled such that each coset center has a label
m=0, 1, . . . , Mi−1.
(2) Network code as follows. Input stream i, take on values miε{0, 1, . . . , Mi−1}. The modulation code for any two streams (e.g. streams 1 and 2) is derived as follows:
The following properties are noted (1) the resulting modulation symbol is always a point in the mother lattice and the result is balanced. (2) Following network decoding, the modulation is always constrained to the sub-lattice and therefore carried the benefit of the improved minimum distance of that sub-lattice. For example receiver 1 upon observing m, can remove the contribution from m1. The remaining index is a
which is by definition a coset center in sub-lattice 2.
iii. PAM and QAM Constellations:
Higher order modulation (described as modulation on a lattice) insures that packets with unequal numbers of bits results in the same number of channel symbols by mapping larger packets into a higher order modulation alphabet (more bits per channel symbol) and smaller packets into lower modulation alphabets. Unfortunately, this approach attempts to use power scaling at the RN to adjust performance. This results in “unspecified” modulation at the relay that can cause transmitter problems (increase pear-to-average power ratio (PAPR)) as well as performance degradation at the receiver.
Unlike previously presented methods, there is a need for fixing the lattice from which the modulation alphabet for the RN is defined (as well as the alphabet itself) and network coded into this lattice.
One possible approach is to use nested lattices, which is a lattice that contains a sub-lattice that is self-similar to the “mother lattice”—i.e. it is just a scaled up version of the mother lattice. Modulation alphabets defined by restricting such sub-lattices will also contain self-similar sub-alphabets (provided the restriction is done properly). This is illustrated using a square lattice as shown in
With each sub-lattice point, a set of points in it' “neighborhood” can be associated—i.e. a coset of that sub-lattice. In
The network coding process proceeds as follows. Suppose first that the first stream requires the use of full modulation alphabet, while the second stream is lower rate and requires the use of a (restricted) sub-lattice. The process then proceed as follows:
(1) Separate the first stream into 2 bits streams—one of the same rate as the second stream.
(2) The two streams of the same rate (the sub-stream of the first stream and the second stream) are network coded. This may be done in several ways: A traditional bit-wise XOR or more generally any map which maps a pair of sub-lattice points to a new sub-lattice point and is invertible when one of the two original arguments is given.
(3) The output of the network coding of sub-streams selects a sub-lattice point, while the remaining portion of the first stream selects a point in the coset associated with that sub-lattice point.
This approach has certain properties. First the output is well-balanced—all points are equiprobable. Second, the receiver of the lower rate packets gains the SNR advantage associated with coding to a sub-lattice.
2. MAC Packet Buffering and Indexing
The issues of Medium Access Control (MAC) packet buffering and indexing are addressed with the goal of making sure that the information necessary for network decoding is available at the transmitter node and that this is done with the least possible increase in the node's complexity (processing and memory requirement) and lower interface overhead. For this, a type of network coding is used that does not require identical number of bits.
A. Method 1
The method can be modified so that only one buffer is kept and thus the step 102 from FIG. 7's method is eliminated (as well as the corresponding steps related to the second EN), which results in the modified flowchart of
The method shown in
Such an ability can be achieved through the modification of the method in
With this modification, two choices arise. When a packet arrives from EN1, the new packet can be either: (1) coded with some packet from EN2 and only buffer in the EN1 buffer if the EN2 buffer is empty (Method 1a), or (2) buffered automatically and then look over the packets in the EN1 and EN2 buffer and choose the best pair of EN1 and EN2 packets to network code (a packet may be matched as soon as it arrives, in which case it does not have to be buffered).
These approaches are described below in further detail.
i. Method 1a
This procedure is similar to the procedure described in
As with FIG. 8's modification of the method of
ii. Method 1b
Consider a method where both the EN buffers may contain packets. This is different from the methods of
Multi-packet buffers in Method 1a or Method 1b address the problem of mismatched packets size but may suffer from delays. A packet from an EN may be delayed by the RN for an unreasonably long time—which may have a negative impact both on system performance and the buffer size required at the RN and at the ENs. This problem is address through a further improvement described below.
iii. Method 1c
Now consider a condition that the EN's and/or RN's buffer size is limited, or there is a latency constraint on the RN. Faced with this limitation, the RN should send out the packets that have been stored for a predetermined longer time, either without XORing with another packet or XORing with a packet of an unmatched size. This alternative balances the bandwidth performance (or efficiency of network coding) and storage requirements.
The method is illustrated in
In case the RN's buffer size is limited, this process can be modified as follows by replacing the step 128a, 128b with a step that asks: “Does EN1 (or EN2) buffer have a packet C1 (or C2) older than the new packet or is EN1 (or EN2) buffer full?”
If the RN receives a packet from the ENi, it proceeds match it and code it or buffer it, as per Method 1a or 1b. If the incoming packet is matched (and network coded, as opposed to buffered), the matching procedure takes into account both the length of the packets (prefers packets of more similar lengths) and the duration of time that a packet has been kept (prefers to match with older packets). Various tradeoff methods may be used to rate packets. For example, the following formula provides a general framework for producing rated scores between 0 and 1, with 1 being better and giving preference to better length matched and older packets. Other frameworks may be used—as the formula is just one example for score computation.
score=av(f(length1,length2),g(buffered age)) [3]
where g(x) is a function that takes an integer value (packet age) and produces a value between 0 and 1, the closer to 1 the older the packet. For example: g(x)=1−exp(−x) is one such function.
Finally, av(x,y) is a functions that take two values between 0 and 1 and produces an averaged value, for example:
f(x,y) is a function that takes two positive integer values ix, and is a function that takes two positive integer values x,y (packet length) and produces a value between 0 and 1 which increases the closer the packets get in length.
Examples of such functions include:
and other similar functions
In a variation, if the RN did not receive a packet for a certain time length T_out (usually predefined by the network design and should depend on the allowed roundtrip time), then it proceeds to match and transmit the already buffered packets (starting with the oldest one) either with or without network coding, matching these by length where possible.
To extend the process described above to more than 2 EN's in the present context, the network coded packet must be a code of only two original packets (so that each receiving terminal does not know only one of the source packets coded into any network coded one). Thus, the RN must pair up the ENs into network coded pairs. Such pairing may be static (i.e. two ENs are paired with each other as a matter of link or RN configuration) or dynamic (on a packet-by-packet basis).
If the pairing is static the process as per
3. Operation of the EN
Having described the operation of RN, the operation of EN is now described in greater detail. The EN contains two MAC packet buffers (these are “logical” and can be implemented in any reasonable fashion). The first is a standard MAC packet buffer. This contains a queue of packets to be transmitted. Once a packet is transmitted and reception is acknowledged (if acknowledgement is used in the connection), the packet is removed from this buffer.
Typically, the transmitted packet is discarded. However, in the presence of network coding at the RN, the packet is placed into the network coding buffer. The buffer contains N packets and when a new packet needs to be placed in the buffer—and the buffer is full—the oldest is deleted (thus the buffer may be implemented as a First In First Out (FIFO)/queue). Other operations on the buffer as well as how its size (N) is determined are discussed below.
To properly understand the buffer operation and design, the base approach for RN is used. In the base approach for the RN, there were only two ENs, the RN buffers at most one (1) packet from each EN. If the transmission and reception processing of packets at the EN and RN were instantaneous, a single packet queue at the EN would suffice. Unfortunately, the packet processing is not instantaneous. Moreover, while in some systems it is specified what the “network coding” delay is, in other system this is unknown, except for some specified upper limit.
Therefore, the EN needs to buffer more than one packet. Moreover, while the RN buffers only 1 packet, the EN does not necessarily know which of its packets the RN actually used to create a network coded packet. In this case, there must be a method for RN to signal which packet is used. One way to accomplish this it to label each packet with an index modulo-N as it is transmitted and stored in the network coding queue of the EN. Because N is typically small, this requires minimal overhead (e.g. a 4-bit (register) can support N≦16 that suffices for most systems).
The network coding operation is shown in
When the RN combines two packets into a network coding packet 506, it includes the following information in the header of the network coded packet: (1) The address of the first destination EN and the NCI of that ENs packet that was coded; and (2) The address of the second destination EN and the NCI of that ENs packet that was coded. It does this at step 507 before transmission of the combined packet.
Finally, the EN, upon receiving a network coded packet p2 intended for it, looks up its own packet using the NCI and uses this for network decoding 508a, 508b. Upon successfully network decoding, the packet is removed from the buffer 510a, 510b.
This approach can be extended to a case of more than 2 ENs and the various operational modes where the RN requires more than one packet buffer. For example, suppose that the RN stores at most M packets from each EN. The value of M is determined based on the system parameters. Each EN then, needs to have N>M packet storage in its network coding buffer with N-M greater than the latency required for processing and transmission. The NCI is used as above. The operation does not depend on the total number of ENs in the system, except that this may impact the computation of M. The packet reception and decoding proceeds as above and when a packet in an ENs buffer has been used for network decoding, it is removed from the buffer.
Although features and elements are described above in particular combinations, each feature or element can be used alone without the other features and elements or in various combinations with or without other features and elements. The methods or flow charts provided herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable storage medium for execution by a general purpose computer or a processor. Examples of computer-readable storage mediums include a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
Suitable processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs); Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), and/or a state machine.
A processor in association with software may be used to implement a radio frequency transceiver for use in a wireless transmit receive unit (WTRU), user equipment (UE), terminal, base station, Mobility Management Entity (MME) or Evolved Packet Core (EPC), or any host computer. The WTRU may be used in conjunction with modules, implemented in hardware and/or software including a Software Defined Radio (SDR), and other components such as a camera, a video camera module, a videophone, a speakerphone, a vibration device, a speaker, a microphone, a television transceiver, a hands free headset, a keyboard, a Bluetooth® module, a frequency modulated (FM) radio unit, a Near Field Communication (NFC) Module, a liquid crystal display (LCD) display unit, an organic light-emitting diode (OLED) display unit, a digital music player, a media player, a video game player module, an Internet browser, and/or any Wireless Local Area Network (WLAN) or Ultra Wide Band (UWB) module.
This application claims the benefit of U.S. provisional application No. 61/153,998 filed Feb. 20, 2009, which is incorporated by reference as if fully set forth herein.
Number | Date | Country | |
---|---|---|---|
61153998 | Feb 2009 | US |