The present disclosure relates generally to communication networks and, more particularly, to configuration of transmission power spectral density (PSD) levels for communication lines with a crosstalk relationship.
Recently, a number of technologies have been introduced to provide high-speed transmission of multimedia data over existing communication lines, such as power wires, coaxial cables, and phone lines. One such technology is the “G.hn” standard developed by the Telecommunication Standardization Sector of the International Telecommunications Union (ITU-T). When multiple communication lines are near each other, for example, in a bundle of copper communication lines installed in a conduit, there is a potential for a crosstalk relationship between at least some of the communication lines. In some scenarios, crosstalk reduces a Signal to Noise Ratio (SNR) in affected communication lines and thereby reduces a maximum data rate which can be achieved in the affected communication lines. Existing solutions reduce the data rate in each line accordingly.
In an embodiment, a method implemented in a first communication device for allocating time slots of a shared schedule for a plurality of communication lines having a crosstalk relationship includes allocating, by the first communication device, a first integer number of allocated time slots of the shared schedule corresponding to a first time interval for first data to be transmitted by the first communication device via one of the plurality of communication lines during the first integer number of allocated time slots. The first integer number of allocated time slots are allocated according to respective priorities of the time slots of the shared schedule in a decreasing order. The method includes transmitting, by the first communication device, the first data via the first integer number of allocated time slots. The method includes allocating, by the first communication device, a second integer number of allocated time slots of the shared schedule corresponding to a second time interval for second data to be transmitted by the first communication device via the one of the plurality of communication lines during the second integer number of time slots based on an allocation increase threshold and an allocation decrease threshold. The second integer number is larger than the first integer number if the allocation increase threshold has been met, wherein i) the allocation increase threshold is based on utilization by the first communication device of a first time slot of the first integer number of allocated time slots, and ii) the first time slot has a lowest priority of the first integer number of allocated time slots. The second integer number is smaller than the first integer number if the allocation decrease threshold has been met, wherein i) the allocation decrease threshold is based on utilization by the first communication device of a second time slot of the first integer number of allocated time slots, and ii) the second time slot has a higher priority than the first time slot.
In another embodiment, a first communication device that allocates time slots of a shared schedule for a plurality of communication lines having a crosstalk relationship includes a network interface device having one or more integrated circuits. The one or more integrated circuits are configured to allocate a first integer number of allocated time slots of the shared schedule corresponding to a first time interval for first data to be transmitted by the first communication device via one of the plurality of communication lines during the first integer number of allocated time slots. The first integer number of allocated time slots are allocated according to respective priorities of the time slots of the shared schedule in a decreasing order. The one or more integrated circuits are configured to transmit the first data via the first integer number of allocated time slots. The one or more integrated circuits are configured to allocate a second integer number of allocated time slots of the shared schedule corresponding to a second time interval for second data to be transmitted by the first communication device via the one of the plurality of communication lines during the second integer number of time slots based on an allocation increase threshold and an allocation decrease threshold. The second integer number is larger than the first integer number if the allocation increase threshold has been met, wherein i) the allocation increase threshold is based on utilization by the first communication device of a first time slot of the first integer number of allocated time slots, and ii) the first time slot has a lowest priority of the first integer number of allocated time slots. The second integer number is smaller than the first integer number if the allocation decrease threshold has been met, wherein i) the allocation decrease threshold is based on utilization by the first communication device of a second time slot of the first integer number of allocated time slots, and ii) the second time slot has a higher priority than the first time slot.
In an embodiment, a method implemented in a first device of a plurality of devices for allocating time slots of a shared schedule for a plurality of communication lines having a crosstalk relationship includes receiving, at the first device and from other devices of the plurality of devices, a plurality of resource requests. Each of the plurality of resource requests is indicative of a requested data rate for a different one of the plurality of communication lines. Each of the plurality of communication lines is associated with a respective pair of devices within the plurality of devices. The method includes determining, by the first device, a set of channel coefficients that indicates the crosstalk relationship and a set of noise coefficients that indicates a background noise for receivers associated with the plurality of communication lines. The method also includes determining, by the first device, an allocation of time slots of the shared schedule within a first time interval for the plurality of communication lines based on the plurality of resource requests and the set of channel coefficients according to a branch and bound algorithm. The allocation of time slots indicates whether transmitters associated with the plurality of communication lines are allowed to transmit during the time slots of the shared schedule within the first time interval. The method includes causing, by the first device, the transmitters associated with the plurality of communication lines to operate using the determined allocation of time slots.
In another embodiment, a first communication device that allocates time slots of a shared schedule for a plurality of communication lines having a crosstalk relationship includes a network interface device having one or more integrated circuits. The one or more integrated circuits are configured to receive, from other devices of the plurality of devices, a plurality of resource requests. Each of the plurality of resource requests is indicative of a requested data rate for a different one of the plurality of communication lines. Each of the plurality of communication lines is associated with a respective pair of devices within the plurality of devices. The one or more integrated circuits are configured to determine a set of channel coefficients that indicates the crosstalk relationship and a set of noise coefficients that indicates a background noise for receivers associated with the plurality of communication lines. The one or more integrated circuits are configured to determine an allocation of time slots of the shared schedule within a first time interval for the plurality of communication lines based on the plurality of resource requests and the set of channel coefficients according to a branch and bound algorithm. The allocation of time slots indicates whether transmitters associated with the plurality of communication lines are allowed to transmit during the time slots of the shared schedule within the first time interval. The one or more integrated circuits are configured to cause the transmitters associated with the plurality of communication lines to operate using the determined allocation of time slots.
When multiple communication lines are near each other (for example, copper communication lines in a bundle installed in a common conduit), there is potential for crosstalk between them. This crosstalk reduces the Signal to Noise Ratio (SNR) in each communication line, and thus a transmission capacity or data rate achievable over each communication line is also reduced. As one example, in a G.hn communication system where only one communication line is currently active (i.e., transmitting data), that communication line achieves a data rate of 700 megabits per second (Mbps). However, when multiple communication lines in the same bundle are active in this example, the crosstalk between communication lines reduces the SNR and thus limits the data rate of each communication line to 400 Mbps. As a further example, a communication system having four communication lines might achieve 700 Mbps when only one communication line is active, 500 Mbps when two communication lines are active, 440 Mbps when three communication lines are active, and 400 Mbps when all four communication lines are active. This reduction in per-line performance is acceptable for as long as all lines use the achieved data rate. However, this results in inefficient use of resources if some or all of the lines do not have enough traffic.
In some embodiments and/or scenarios, a more efficient configuration of the communication lines is achieved by utilizing a shared schedule of time slots for the communication lines and allocating time slots for accessing the communication lines. In some embodiments, a number of allocated time slots is adjusted based on the utilization of currently allocated time slots. In an embodiment, for example, a communication device does not utilize time slots of the shared schedule unless needed, which increases the signal-to-noise ratio (SNR) of the other communication devices thus increasing an average data rate for the other communication devices.
In some embodiments, a “branch and bound” algorithm is used to find, for a given set of problem inputs (e.g., resource requests, channel coefficients that indicate crosstalk, etc.), a mathematically optimal solution. In an embodiment, performance metrics are computed for at least some allocations to indicate how “bad” a possible allocation is when trying to meet the requirements of requested data rates and then an allocation is chosen that minimizes the performance metric (e.g., a “least bad” allocation is selected). The allocation of time slots indicates whether transmitters associated with a plurality of communication lines are allowed to transmit during the time slots of the shared schedule. In an embodiment, a lower bound for a plurality of possible allocations is determined and the plurality of possible allocations is discarded if the lower bound is greater than an upper bound for the branch and bound algorithm.
For simplicity of explanation, the embodiments described herein refer to the communication device 110 as the distribution point 110 and the communication device 120 as the terminal device 120. In some embodiments, the distribution point 110 and terminal devices 120 communicate according to G.hn standards and protocols, as described in International Telecommunication Union Telecommunication (“ITU-T”) Recommendation G.9960 and G.9961. In other embodiments, the distribution point 110 and terminal devices 120 communicate according to another suitable communication protocol. The distribution point 110 provides a gateway or interface to another communication network 150, such as to a local area network, Wi-Fi network, WiMAX network, wide area network, the Internet, or other wired or wireless networks. The distribution point 110 may provide access to a fiber channel network, cable Internet network, or other high speed network. In some embodiments, the communication network 150 is a service provider network, wide area network (WAN), passive optical network (PON), gigabit Ethernet network, or other suitable network and the communication line 140 is an optical line, twisted pair line, coaxial line, or other communication line suitable for the communication network 150.
In an embodiment, the communication network 150 includes a processing device 160, for example, a communication device, a network server, distributed processing platform, cloud service, or other suitable computing platform. The processing device 160 includes one or more processors 164 and a memory 166 and is communicatively coupled with the distribution point 110. In some embodiments, the processing device 160 has a larger amount of memory and/or processing resources available than the distribution point 110, allowing the distribution point 110 to offload resource intensive tasks, for example, calculation of a performance metric and/or selection of an allocation, as described herein.
In various embodiments and/or scenarios, the distribution point 110 and terminal devices 120 are configured to operate using a shared schedule of time slots. In various embodiments, the shared schedule includes an integer number M time slots that are repeated over a plurality of time intervals (i.e., M time slots per time interval). The distribution point 110, the terminal devices 120, and/or the processing device 160 determine an allocation of time slots of the shared schedule. In some embodiments and/or scenarios, the allocation of time slots indicates whether the transceivers 112 or other transmitters associated with the plurality of communication lines are allowed to transmit during the time slots of the shared schedule for downlink communications. In other embodiments and/or scenarios, the allocation of time slots indicates whether the transceivers 122 or other transmitters associated with the plurality of communication lines are allowed to transmit during the time slots of the shared schedule for uplink communications. In still other embodiments, the allocation of time slots corresponds to both the transceivers 112 (for downstream communications) and the transceivers 122 (for upstream communications) between the distribution point 110 and the terminal devices 120. For clarity of explanation, portions of the present discussion generally refer to downstream communication between the transceivers 112 and transceivers 122.
In some embodiments and examples described herein, the plurality of second terminal devices 120 includes N terminal devices 120 and N communication lines 130, where N is an integer. Although four transceivers 112, four communication lines 130, and four terminal devices 120 are illustrated in
In various embodiments and/or scenarios, the distribution point 110 is configured to estimate the channel frequency response (CFR) between a transceiver 112 and corresponding transceiver 122. For example, in an embodiment, the distribution point 110 is configured according to the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) G.9960 Recommendation (also known as the G.hn specification), the G.9700 Recommendation (also known as the G.fast specification) or other suitable network standards. In this embodiment, the distribution point 110 manages the exchange of communication line probes, such as G.hn probes, between the transmitters 112 and receivers 122. For example, in an embodiment, the distribution point 110 broadcasts a probe schedule to each transmitter and receiver pair for the communication lines 130. The probe schedule indicates transmission times or other suitable information for scheduling the G.hn probes. The distribution point 110 sets the probe schedule such that the G.hn probes are periodically transmitted over each communication line 130 and that when each G.hn probe is transmitted, no other transceiver 112 is transmitting over the plurality of communication lines 130. In some embodiments, the probe schedule also indicates an orthogonal preamble to be used for the corresponding G.hn probe. In various embodiments, the distribution point 110 determines the CFR for each of the plurality of communication lines 130 during a channel estimation period or a system maintenance period. In an embodiment, for example, the distribution point 110 estimates the CFR of the channel from the transceiver 122 to the transceiver 112 and receives an estimate of the CFR of the channel from the transceiver 112 to the transceiver 122 from the terminal devices 120. In other words, the distribution point 110 estimates uplink CFRs and receives downlink CFRs that have been estimated by the terminal devices 120. In an embodiment, the distribution point 110 estimates or determines the CFR for at least some of the plurality of communication lines 130 at different times and periodically updates the channel coefficients Cijk as updated CFR values are estimated.
In various embodiments and/or scenarios, the shared schedule 200 is divided into bit allocation table (BAT) regions or segments. In an embodiment, the number of bits that can be suitably mapped to a tone for an OFDM symbol is variable based on the signal to noise ratio. In some scenarios, the signal to noise ratio changes during the shared schedule 200 and the number of bits mapped per tone is changed according to the signal to noise ratio. In various embodiments, the shared schedule 200 is divided into segments based on the changes in the number of bits mapped per tone. In an embodiment, the distribution point 110 selects the segments (e.g., start and stop times for the segments) to be substantially aligned with boundaries of the time slots 204. In other embodiments, the segments overlap one or more boundaries of the time slots 204. While the embodiments described herein generally refer to the allocation of the time slots 204, it will be understood that the time slots can be BAT segments, in other suitable embodiments.
Each time slot 204 of the shared schedule 200 has a duration tslot. In an embodiment, each time slot 204 has a same duration. In another embodiment, DS time slots have a first duration while US time slots have a second duration that is shorter than the first duration. In yet another embodiment, the distribution point 110 dynamically determines the duration of one or more time slots 204, for example, based on requested data rates, squared channel frequency response coefficients, bit allocation table values, or other suitable factors. In some embodiments and/or scenarios, the distribution point 110 or processing device 160 determines the first duration and the second duration, for example, based on requested data rates for the plurality of communication lines 130. In some embodiments, a DS time slot and a US time slot form a frame having duration tframe. In one such embodiment, each time slot 204 has a duration tslot of 5 milliseconds, each frame (e.g., a frame that includes time slot 204-1 and time slot 204-2) has a duration tframe of 10 milliseconds, and each superframe 206 has a duration tsuperframe of 40 milliseconds. In another embodiment, each frame has a duration tframe, but the distribution point 110 or processing device 160 selects a ratio between the first duration for the DS time slot and the second duration for the US time slot within the frame.
In some embodiments, each time slot 204 of the shared schedule 200 has a priority and an allocation includes time slots allocated according to the respective priorities in a decreasing order, in various embodiments. In an embodiment, the time slots 204 are arranged in time sequentially by priority in decreasing order. For example, time slot 204-1 has a highest priority while time slot 204-8 has a lowest priority. In another embodiment, each time slot 204 of the shared schedule 200 has a priority that corresponds to a time slot data rate (i.e., a data rate achievable during the time slot) with higher data rates corresponding to a higher priority. In still other embodiments, each time slot 204 of the shared schedule 200 has a same priority.
In an embodiment, the distribution point 110 is configured to obtain a squared channel frequency response coefficient (or other suitable frequency response metric) between each transceiver 112 and each transceiver 122 and an estimate of noise power (e.g., background noise) in each of the plurality of communication lines 130. In some embodiments, the distribution point 110 obtains the squared channel frequency response coefficient and the noise power during a training period at a start of operation of the communication system 100. In an embodiment, the distribution point 110 refreshes the squared channel frequency response coefficient and the noise power measurements (e.g., periodically at a predetermined time interval, upon the occurrence of an event, or other suitable trigger). In an embodiment, the distribution point 110 is configured to measure data traffic sent through each of the plurality of communication lines 130 during a traffic measurement interval.
Various equations are described herein and illustrated in
N: A number of active lines in the system 100.
M: A number of BAT regions or time slots 204 in the system 100.
K: A number of OFDM tones in the system 100.
: Set of active lines in the system 100, with ={1, 2, . . . , N}.
: A set time slots 204, with ={1, 2, . . . , M).
: A set of OFDM tones used in each line, with ={1, 2, . . . , K}
tj: A duration (in seconds) of the j-th time slot, with j∈.
T: A combined duration of all time slots, where T=Σj∈tj.
xij: An allocation with possible values {0, 1} that specifies whether the i-th communication line 130 is allowed to transmit during the j-th time slot, with i ∈ and j∈. In some embodiments, it is assumed that if xij=1, then the transmitter for line i will transmit for the whole duration of the j-th time slot, using dummy probes as needed.
pijk: A PSD level used by the transmitter of the i-th communication line, during the j-th time slot, at the k-th tone, with i ∈, j∈, and k∈.
Cijk: A squared channel response coefficient from the j-th transmitter to the i-th receiver at the k-th tone, with i, j∈, and k∈.
ηik: Thermal noise power at the i-th receiver, at the k-th tone, with i∈, k∈.
i: A set of interferers to communication line i, i.e., all lines of the plurality of communication lines 130 except for communication line i, i=−{i}, with i∈.
γijk: Signal to noise ratio at the i-th receiver, in the j-th time slot, at the k-th tone, i∈, j∈, k∈, computed as shown in equation 302 (
vij: time slot data rate (e.g., instantaneous channel capacity in bits per seconds) for the i-th communication line during the j-th time slot, computed as shown in equation 304 (
wi: allocated average data rate (e.g., average channel capacity in bits per seconds) for the i-th communication line across all time slots of the shared schedule, computed as shown in equation 306 (
ei: requested data rate (e.g., an estimated desired data rate in bits per second) for the i-th communication line, with i∈. In various embodiments, ei is estimated based on observed traffic or configured by a service provider of the communication system 100.
α: performance metric that corresponds to an overall performance of the communication system 100 at meeting the requested data rates ei. In an embodiment, a is computed as shown in equation 308 (
αn: a normalized version of the performance metric α, computed as shown in equation 312 (
The performance metric α is used to compare different allocations of time slots and determine how well each allocation meets the requested data rate e, in various embodiments. In an embodiment, the performance metric α is selected to be used in comparisons even in cases where some values of w(x, p) are greater than or equal to e while other values of w(x, p) are not greater than or equal to e. In an embodiment, the performance metric is a function α(x, p). The function α(x, p) provides a performance metric for comparison of various allocations, for example, how “bad” a possible allocation x is when trying to meet the requirements of the requested data rates e (i.e., lower values of the performance metric indicate a more desirable allocation).
In various embodiments, the communication system 100 is configured for both upstream and downstream data transmissions. Where applicable, instances of the variables described above are indicated as corresponding to upstream communications by adding u as a superscript, while those corresponding to downstream communications have a d as a superscript. For example, Cijkd is the squared channel response from the j-th transmitter to the i-th receiver, at the k-th tone, in the downstream direction, while Cijku is the corresponding variable for the upstream direction. In some embodiments, the number of time slots or BAT regions in the upstream direction Mu is different from the number of time slots in the downstream direction Md. In some embodiments, the duration of a time slot tju in the upstream direction need not be equal to the corresponding duration of a time slot tjd in the downstream direction.
In some embodiments, the combined duration T is based on some time slots Tu being used for upstream communications as shown in equation 402, while other time slots Td are used for downstream communications as shown in equation 404, where T=Tu+Td. The allocated average data rate in the upstream direction wiu is shown in equation 406, while the allocated average data rate in the downstream direction wid is shown in equation 408, in an embodiment. In this embodiment, the normalized performance metric αnu is shown in equation 410 and the normalized performance metric αnd is shown in equation 412. For simplicity of explanation, the superscript d or u is omitted. In some embodiments, the upstream and downstream variables are computed to be equal to each other. In other embodiments, for a given allocation of upstream and downstream time slots tju and tjd, the allocation is determined independently for each direction.
In current G.hn standard systems, a “flat PSD” is used, so that pijk={circumflex over (p)}k where {circumflex over (p)}k is defined by a regulatory PSD mask, and xij=1, ∀i∈, ∀j∈, as shown by matrix 502. In some embodiments, an allocation of time slots is selected for a time interval based on utilization of allocated time slots for a prior time interval. In an embodiment, the distribution point 110 performs a “left-to-right” allocation process to allocate time slots to the transceivers 112 and/or 122. In another embodiment, the terminal devices 120 perform the left-to-right allocation process independently for the corresponding communication line 130, for example, without using a centralized entity such as the distribution point 110.
The left-to-right allocation process utilizes a flat PSD for the transceivers 112 and 122 and, for each communication line 130, time slots having a lower index j are allocated before time slots with a higher index j, in an embodiment. For example, the time slots are selected as needed based on priority, where the time slots of the shared schedule 200 are arranged in time sequentially by priority in a decreasing order. The left-to-right allocation process iteratively adapts to changes in the requested data rate ei, so that if ei increases, then the number of allocated slots is increased for a subsequent time interval is increased, while if ei decreases, then the number of allocated slots is reduced for the subsequent time interval. Accordingly, the left-to-right allocation process will tend to result in an allocation in which most lines have xij=1 for low values of j, while most lines will have xij=0 for high values of j. As an example, matrix 504 shows a scenario where communication lines 1, 3, 5, and 6 (i.e., rows 1, 3, 5, and 6) have little traffic, while communication line 2 has moderate traffic, and line 4 has heavy traffic. For the example shown in matrix 504, communication line 4 would likely have a relatively low time slot data rate vij where j=1 due to the strong far end cross talk from its neighbor communication lines (i.e., the first column of matrix 504), while having a relatively high time slot data rate vij where j=3 or 4.
Mathematical computations for performing the left-to-right allocation process can be performed iteratively to determine xij. In various embodiments, a set of parameters σj+ and σj− are selected with j∈ such that σj+<tj and σj−<tj. The parameters σj+ and σj− are utilized to control a sensitivity to saturation conditions (e.g., utilization of allocated time slots) and how quickly the allocation process will increase or reduce the number of slots allocated to a communication line 130. In an embodiment, σj+ and σj− are equal to each other. In other embodiments, different values for σj+ and σj− are utilized, for example, such that σj+<σj−. In an embodiment, σj+ and σj− are both equal to 0.25*tj. In this embodiment, if the last quarter portion of the last allocated time slot is used (i.e., the lowest priority time slot of the allocated time slots for the communication line 130), an additional time slot is allocated for the next time interval in the shared schedule 200.
In some embodiments, an allocation increase threshold wihigh and an allocation decrease threshold wilow are used to determine the allocation. In an embodiment, after a suitable number of consecutive occurrences of the corresponding threshold being met (e.g., one, two three, or more occurrences), the distribution point 110 updates the allocation. As an example with the allocation shown in the matrix 504, an integer number qi is the number of non-zero elements in the i-th row of the matrix x, for example, a number of allocated time slots for the communication line i. For simplicity in notation, a variable h=qi and a variable g=qi−1. In this embodiment, the allocation increase threshold is shown in equation 506 and the allocation decrease threshold is shown in equation 508. In an embodiment, the distribution point 110 increments an increase counter liinc each time the allocation increase threshold wihigh is met and when the increase counter reaches an integer increase threshold Liinc, the additional time slot is allocated for the next time interval. In an embodiment, the distribution point 110 increments a decrease counter lidec each time the allocation decrease threshold wilow is met and when the decrease counter reaches an integer decrease threshold Lidec, a lower number of time slots are allocated for the next time interval.
At block 602, the increase counter liinc and decrease counter lidec are reset to zero for all values of i∈. In an embodiment, blocks 604, 606, 608, 610, and 612 are performed for each i∈.
At block 604, the requested data rate ei is determined.
At block 606, the average allocated data rate wi is determined.
At block 608, the allocation increase threshold wihigh and the allocation decrease threshold wilow are determined with h=qi and g=qi−1.
At block 610, the increase counter liinc is incremented if the allocation increase threshold is met and the decrease counter lidec is incremented if the allocation decrease threshold is met. If the allocation increase threshold is not met, then the increase counter liinc is set to zero. If the allocation decrease threshold is not met, then the decrease counter lidec is set to zero.
At block 612, the allocation of time slots is adjusted based on the increase counter and/or decrease counter. In an embodiment, if the increase counter liinc is equal to the increase threshold and qi<M, then qi′=qi+1 and the increase counter liinc is reset to zero, where qi′ is the number of allocated time slots for the subsequent time interval. In other words, if the allocated time slots are almost filled with data for several consecutive time intervals, then increase the number of allocated time slots, if possible. In an embodiment, if the decrease counter lidec is equal to the decrease threshold and qi>1, then qi′=qi−1 and the decrease counter lidec is reset to zero. In other words, if the allocated time slots are not filled with data for several consecutive time intervals, then decrease the number of allocated time slots, if possible.
At block 702, a first integer number qi of allocated time slots 204 of the shared schedule 200 corresponding to a first time interval 206 are allocated for first data to be transmitted by the communication device 120 via one of the plurality of communication lines 130 during the first integer number qi of allocated time slots 204. The first integer number qi of allocated time slots 204 are allocated according to respective priorities of the time slots 204 in a decreasing order. For example, the time slots 204 are arranged in time sequentially by priority in the decreasing order. In an embodiment, the shared schedule repeats for the plurality of communication lines over a plurality of time intervals that includes the first time interval and the second time interval. In an embodiment, the allocation increase threshold is different from the allocation decrease threshold.
At block 704, the first data is transmitted via the first integer number qi of allocated time slots 204.
At block 706, a second integer number qi′ of allocated time slots 204 of the shared schedule 200 corresponding to a second time interval 208 is allocated for second data to be transmitted by the first communication device via the one of the plurality of communication lines 130 during the second integer number qi′ of time slots 204 based on an allocation increase threshold and an allocation decrease threshold. The second integer number qi′ is larger than the first integer number qi if the allocation increase threshold has been met. The allocation increase threshold is based on utilization of a first time slot vih of the first integer number of allocated time slots, and the first time slot vih has a lowest priority of the first integer number of allocated time slots. The second integer number qi′ is smaller than the first integer number qi if the allocation decrease threshold has been met. The allocation decrease threshold is based on utilization of a second time slot vig of the first integer number of allocated time slots, and the second time slot vig has a higher priority than the first time slot.
In an embodiment, the second data is transmitted via a plurality of data units during the second time interval. The plurality of data units includes a first data unit and a second data unit and a transmission of a portion of the first data unit overlaps with a transmission of a portion of the second data unit, as described herein.
In some embodiments, OFDM symbols transmitted at the beginning of a time slot may use a more robust modulation and coding scheme (e.g., for signaling reasons) or be a preamble-type OFDM symbol. These symbols can generally support a higher level of interference than other OFDM symbols, such as data symbols modulated with higher order constellations. In an embodiment, a transmitter on a communication line 130 is allowed to overlap a transmission into the time slot that follows. In an embodiment, for example, a transceiver 112 transmits a data unit during allocated time slots qi and during a portion of time slot qi+1.
In some embodiments, the distribution point 110 omits the limitation that time slots 204 are arranged in time sequentially by priority in the decreasing order. In an embodiment, the allocation of time slots can be modeled as an optimization problem (P), as shown in equation 902 (
For determining an allocation for the optimization problem (P), a search set from a search space for a communication system with N lines and M time slots is the set {0,1}N×M, which has cardinality 2N×M. In various embodiments, the optimization problem (P) is solved based on an assumption that an upper bound E of the problem (P) is determinable. In other words, α(x*)≤∈, where x* is the value of x that minimizes α(x) in problem (P). An element of x with indices a, b (xab) with a∈, b∈, is utilized to divide the search set . In an embodiment, the search set is divided into two subsets: a first subset ′ where xab=1, and a second subset ″ where xab=0. In various embodiments, the optimization problem (P) is solved based on an assumption that a lower bound τ′ of the first subset ′ and a lower bound τ″ of the second subset ″ can be determined or estimated, as shown in equation 1002 and equation 1004 (
In an embodiment, the method to generate the subsets describes the subset ′ by using a pair (Δ,y) where ΔE {0,1}N×M and y∈{0,1}N×M. Each element Δij (i.e., the element at the i-th row and j-th column of Δ) indicates whether xij is unspecified in subset ′ or whether it has a specific value. If Δij=0, then xij is not specified and can be either 0 or 1. In other words, the ij-th component of x is “relaxed” or unconstrained. If Δij=0, then xij is specified and has a fixed value (either 0 or 1), given by the value of yij. The pair (Δ,y) thus includes a constraint matrix Δ and a value matrix y which describe the subset ′, as shown in equation 1006.
In an embodiment, the method to determine lower bounds on subsets is based on the average allocated data rate wi(x), shown in equation 1202 (
At block 1402, the upper bound E for the branch and bound algorithm is set to an initial value. In an embodiment, the upper bound ∈ is set to a high value, including a value that represents infinity.
At block 1404, an initial set of allocations 0 is generated, corresponding to a constraint matrix Δ0 and a value matrix y0 that are both all-zero matrices of dimensions N×M, and a problem set of allocations for the problem (P) is set to the initial set of allocations 0. In an embodiment, blocks 1406, 1408, 1410, 1412, 1414, and 1416 are performed while the problem set of allocations is not an empty set.
At block 1406, a selected subset is selected and removed from the problem set of allocations . For example, =˜{}. A constraint matrix Δ and a value matrix y describe the subset .
At block 1408, an unconstrained element within the constraint matrix Δ of the selected subset is identified. The unconstrained element is an element at indices a, b such that Δab=0. The indices a, b are selected using one of various methods. In an embodiment, the indices a, b are selected according to a first element Δab of the constraint matrix Δ having a value of zero, for example, using a lexicographic order or other suitable order. In another embodiment, the index a is selected for which the requested data rate ea is the highest value and for which some Δab=) exists. In other words, the unconstrained element corresponds to a highest requested data rate of a plurality of resource requests for the communication lines 130. In this embodiment, the index b is selected using a lexicographic order or other suitable order. In yet another embodiment, the index a is selected for which ei−wi(Δ) has a highest value and for which some Δab=0 exists. In this embodiment, the index b is selected using a lexicographic order or other suitable order.
At block 1410, a first constraint matrix Δ′ and a first value matrix y′ for a first subset ′ of the selected subset are determined and a second constraint matrix Δ″ and a second value matrix y″ for a second subset ″ of the selected subset are determined. For example, the selected subset is divided into two subsets: a first subset ′ where xab=1, and a second subset ″ where xab=0. The element Δab′, and the element Δab″ are set equal to 1, thus the first constraint matrix Δ′ differs from the selected constraint matrix Δ by an element Δab′ of the first constraint matrix Δ′ that corresponds to the identified unconstrained element Δab. In an embodiment, the second constraint matrix Δ″ is not used and instead, the first constraint matrix Δ′ is used to describe the first subset ′ and the second subset ″. The element yab′ is set equal to 1 and the element yab″ is set equal to 0, thus the second value matrix y″ differs from the first value matrix y′ by the element yab″ of the second value matrix y″ that corresponds to the identified unconstrained element Δab.
At block 1412, a first lower bound τ′ is determined for the first subset ′ and a second lower bound τ″ is determined for the second subset ″. In an embodiment, the first lower bound τ′ and second lower bound τ″ are determined according to the equations shown in
At block 1414, a selected allocation x is selected and the upper bound ∈ is updated if conditions on the first lower bound τ′ or second lower bound τ″ are met and conditions on the first constraint matrix Δ′ are met. In an embodiment, if the first lower bound τ′ is less than or equal to the upper bound E and the first constraint matrix Δ′ is equal to an all-ones matrix (i.e., τ′ ≤∈ and Δ′=1N×M), then the upper bound E is updated to be equal to the first lower bound τ′ and the selected allocation {tilde over (x)} is selected as the value matrix y′. In an embodiment, if the second lower bound τ″ is less than or equal to the upper bound ∈ and the second constraint matrix Δ″ is equal to an all-ones matrix (i.e., τ″≤∈ and Δ″=1N×M), then the upper bound ∈ is updated to be equal to the second lower bound τ″ and the selected allocation x is selected as the value matrix y″. In other words, the upper bound E is updated to be a lesser of the first lower bound τ′ and the second lower bound τ″ and the selected allocation z is updated to be the value matrix corresponding to the updated lower bound if i) the first constraint matrix Δ′ is an all-ones matrix, and ii) the lesser of the first lower bound τ′ and the second lower bound τ″ is less than the upper bound ∈.
At block 1416, the problem set of allocations is updated based on the first lower bound τ′ and the second lower bound τ″. In an embodiment, if the first lower bound τ′ is less than the upper bound ∈, then the first subset ′ is returned to the problem set of allocations . In other words, the first subset ′ is discarded from problem set of allocations if the first lower bound τ′ is greater than or equal to the upper bound E. In an embodiment, if the second lower bound τ″ is less than the upper bound ∈, then the second subset ″ is returned to the problem set of allocations . In other words, the second subset ″ is discarded from problem set of allocations if the second lower bound τ″ is greater than or equal to the upper bound ∈. If the upper bound has been updated during block 1416, then allocations having lower bounds that are greater than the updated upper bound are discarded from the problem set of allocations (i.e., ={∈: {hacek over (α)}()<∈}).
After performing block 1416, an allocation x* to the problem (P) is given by the selected allocation {tilde over (x)} with value ∈. In other words, x*={tilde over (x)} and α(x*)=∈. In various embodiments, the method 1400 determines an optimal solution x* within a finite number of iterations. In general, the number of iterations is related to the selection of the selected subset from the problem set of allocations and the identification of the unconstrained element Δab that is used to divide the selected subset into the first subset ′ and second subset ″.
During block 1406, the selected subset is selected according to one of various methods. In an embodiment, a first set entered into the problem set of allocations is chosen (i.e., choose oldest, or CO method). In another embodiment, a last set entered into the problem set of allocations is chosen (i.e., choose newest, or CN method). In yet another embodiment, a set having a lowest lower bound {hacek over (α)}() within the problem set of allocations is chosen (i.e., choose lowest, or CL method). In an embodiment, the smallest set (i.e., a most constrained set having a highest number of non-zero Δij and thus a smallest size) within the problem set of allocations is chosen (i.e., choose smallest, or CS method). In yet another embodiment, a combination of the lowest and smallest sets is chosen, in other words, a set having the lowest lower bound from those with the smallest size (i.e., choose lowest of smallest, or CLS method).
In some scenarios, the CLS method provides improved performance as compared to the other methods. In other words, the CLS method results in a determination of the allocation x* within a fewest number of iterations. A numerical example is now described, using an example system with N=3 communication lines, M=4 time slots, and K=1 carrier tone. A configuration 1502 of the example system and requested data rates 1504 are shown in
In some embodiments and/or scenarios, the determination of the lower bound τ′ and lower bound τ″ is performed more efficiently by re-using elements within the variables. The first subset ′ and second subset ″ differ by only one element: yab where a, b are the indices of the identified unconstrained element Δab of the constraint matrix. Accordingly, yij=yij′=yij″ for all values of j∈ such that j≠b. Using this equality, previously computed values of the time slot data rates ĉij can be re-used. In an embodiment, the distribution point 110 stores the computed values of the time slot data rates {circumflex over (v)}ij in a data structure (e.g., in the memory 116) and re-uses the values for subsequent calculations. Given that each computation of ŵi(′) uses an integer number M values of {circumflex over (v)}ij(′), the re-use of M−1 previously computed values provides savings of approximately (M−1)/M operations. For example, given M=4 time slots, the number of operations to compute ŵi(′) is reduced by 75%.
In some embodiments and/or scenarios, the performance metric α is improved by utilizing a normalized performance metric αn. In an embodiment, for example, the normalized performance metric αn is used in scenarios where there is a large difference between some elements of the requested data rates ∈. As an illustrative embodiment, an example system has requested data rates e=[500, 10]T (e.g., communication line 1 requests 500 bytes per second and communication line 2 requests 10 bytes per seconds). In this embodiment, two solutions xa and xb exist where w(xa)=[491, 2]T and w(xb)=[485, 8]T. Using the performance metric α as shown in equation 1702 (
While the embodiments described herein generally refer to the allocation of the time slots 204, it will be understood that the time slots can be BAT segments, in other suitable embodiments. In an embodiment, the combined duration T is equal to tframe. In this embodiment, each DS time slot or US time slot is divided into Md and Mu BAT segments, respectively. In this embodiment, both the left-to-right allocation process and the branch and bound algorithm can be utilized to determine an allocation of time slots. This embodiment generally provides lower latencies as compared to an embodiment where the combined duration T is equal to tsuperframe because each communication line 130 has a transmission opportunity within each frame 204; however, the duration tslot for both US and DS is selected so that the BAT segments are suitably large enough to avoid inefficiencies in overhead.
In another embodiment, the combined duration T is equal to tsuperframe. In this embodiment, each DS time slot or US time slot defines a BAT segment. In some scenarios, a communication line 130 may not be allowed to transmit during a given frame. The left-to-right allocation process is less preferable for this embodiment because the latency experienced by each communication line 130 depends upon the requested data rate ei, where lower throughputs are likely to experience higher latencies. However, the latency where T=superframe or T=tframe can be adjusted based on the values chosen for Tframe and Tsuperframe.
In various embodiments and/or scenarios, the distribution point 110 determines an optimal or near-optimal time slot duration and/or ratio of downstream to upstream traffic. As an example, the system 100 has downstream time slots tjd and upstream time slots tju. In some scenarios, the combined duration Td is greater than the combined duration Tu, with DS/US ratios of 7:3, 8:2, 9:1, or other suitable ratios. In some scenarios, it may be desirable to dynamically change the DS/US ratio to provide increased upstream capacity, for example, due to a sudden increase in upstream traffic while there is relatively low downstream traffic.
In an embodiment, the distribution point 110 adjusts the DS/US ratio by scaling a length of all the downstream time slots tjd by a first factor and scaling a length of all the upstream time slots tju by a second factor such that the overall combined length is maintained (i.e., T=Tu+Td). In this embodiment, the distribution point 110 changes the DS/US ratio for each of the plurality of communication lines 130 simultaneously and also updates start and stop times for each BAT segment.
A default DS/US ratio π0 is based on a default DS duration T0d, a default US duration T0u, and a default combined duration T0 (i.e., T0=T0d+T0u), as shown in equation 1802 (
The normalized performance metric αnd and αnu change with the new ratio n, as shown in sequence of equations 1902 (
In some embodiments, the affinity of αnd (x, π) and αnu(x, π) on n allows a definition of a “total metric” that can be utilized to optimize a joint solution (i.e., both upstream and downstream), for example, the total normalized performance metric αnt(π) as shown in equation 1906. Given that the total normalized performance metric αnt(π) is the point-wise maximum of two affine functions, it is convex in π. Accordingly, the optimal value that minimizes the total normalized performance metric αnt (π) is computed as the value of π for which αnd (x, π) is equal to αnu(x, π), as shown in the sequence of equations 2002. In other words, for a given set of upstream and downstream time slots, and for a given downstream/upstream ratio π0, the values of {xijd} and {xiju} that achieve the optimal values for αnd(x, π) and αnu(x, π) can be determined, and then the value of π can be determined using the sequence of equations 2002.
In an embodiment, the problem set of allocations is divided into an integer number G of subsets 1, 2, . . . G which are then distributed to multiple distributed processors (e.g., G instances of the processor 164). In an embodiment, each distributed processor performs calculations on a respective subset of allocations independently, but communicates an allocation x* and upper bound ∈ to a coordinator for the method 2100, as described herein. In an embodiment, an instance of the processor 164 acts as a coordinator for the distributed processors. In another embodiment, the distribution point 110 acts as the coordinator for the distributed processors.
At block 2102, the upper bound E for the branch and bound algorithm is set to an initial value. In an embodiment, the coordinator sets the upper bound ∈ to a high value, including a value that represents infinity.
At block 2104, an initial set of allocations 0 is generated, corresponding to a constraint matrix Δ0 and a value matrix y0 that are both all-zero matrices of dimensions N×M. In an embodiment, block 2102 is performed by the coordinator.
At block 2106, a problem set of allocations for the problem (P) is set to the initial set of allocations 0. In an embodiment, block 2102 is performed by the coordinator.
At block 2108, it is determined whether the problem set of allocations is an empty set. If the problem set of allocations is an empty set, then the optimal allocation x* is set to be equal to a selected allocation {tilde over (x)} at block 2110. If the problem set of allocations is not an empty set, then the process proceeds to block 2112. In an embodiment, block 2102 is performed by the coordinator.
At block 2112, the problem set of allocations is divided into an integer number G subsets, so that =1∪2∪3∪ . . . ∪G. In the illustrated embodiment, G is equal to three. In other embodiments, G is equal to 2, 4, 5, 10, or another suitable integer. In an embodiment, block 2102 is performed by the coordinator.
At block 2114, the integer number G of subsets are transmitted to a plurality of distributed processors. In an embodiment, block 2102 is performed by the coordinator, which transmits the subsets to distributed instances of the processors 164. In an embodiment, the plurality of distributed processors includes an integer number G of distributed processors.
At block 2116, each of the plurality of distributed processors performs the branch and bound algorithm. In an embodiment, for example, the processors 164 perform blocks 1406, 1408, 1410, 1412, 1414, and 1416 as described above with respect to
At block 2118, selected allocations {tilde over (x)} and corresponding upper bounds ∈ are received from the distributed processors. In some embodiments, the coordinator transmits a stop request to the distributed processors to cause the distributed processors to stop processing the subsets and to return any selected allocations {tilde over (x)} and upper bounds ∈.
At block 2120, a central selected allocation {tilde over (x)} and central upper bound ∈ are determined. In an embodiment, for example, the coordinator selects a central selected allocation {tilde over (x)} from those selected allocations {tilde over (x)} received from the distributed processors. In an embodiment, the central selected allocation {tilde over (x)} corresponds to a lowest value of the upper bounds ∈ received from the distributed processors.
At block 2122, the problem set of allocations is updated based on the central selected allocation {tilde over (x)} and central upper bound ∈. In an embodiment, for example, the coordinator returns the subsets G to the problem set of allocations (i.e., =1∪2∪3∪ . . . ∪G), as described above with respect to block 1416.
At block 2124, if the upper bound has been updated during block 2120, then allocations having lower bounds that are greater than the updated upper bound are discarded from the problem set of allocations (i.e., ={∈: {hacek over (α)}()<∈}). After block 2124, the coordinator returns to block 2108.
At block 2202, a plurality of resource requests are received from other devices of the plurality of devices. In an embodiment, each of the plurality of resource requests is indicative of a requested data rate ei for a different one of the plurality of communication lines 130.
At block 2204, a set of channel coefficients (e.g., Cijk) that indicates the crosstalk relationship and a set of noise coefficients (e.g., ηnk) that indicates a background noise for receivers associated with the plurality of communication lines 130 are determined.
At block 2206, an allocation of time slots of the shared schedule is determined within a first time interval (e.g., time interval 206) for the plurality of communication lines 130 based on the plurality of resource requests and the set of channel coefficients according to a branch and bound algorithm. The allocation of time slots indicates whether transmitters associated with the plurality of communication lines (e.g., transceivers 112 and/or transceivers 122) are allowed to transmit during the time slots of the shared schedule within the first time interval.
At block 2208, the transmitters associated with the plurality of communication lines are caused to operate using the determined allocation of time slots. In an embodiment, for example, the distribution point 110 sends the allocation of time slots (or a portion thereof) to the transceivers 112 and 122.
In an embodiment, each of the plurality of communication lines 130 has a respective allocated average data rate wi for the first time interval that is based on the set of channel coefficients Cijk and a number of transmitters allowed to transmit during each time slot 204 of the shared schedule 200 (e.g., where xij is equal to 1 for each time slot 204). In an embodiment, block 2206 includes selecting a selected allocation {tilde over (x)} of time slots 204 from a set of allocations based on respective performance metrics α for each of the set of allocations. Each of the respective performance metrics α is based on: i) the requested data rate ei for each of the plurality of resource requests, and ii) the allocated average data rate wi for the first time interval for each of the plurality of communication lines.
In an embodiment, selecting the selected allocation {tilde over (x)} of time slots from the set of allocations includes selecting the selected allocation {tilde over (x)} that minimizes the performance metric α. In this embodiment, a selected subset , which is selected from the set of allocations , is divided into a first subset ′ and a second subset ″. A first lower bound τ′ of the performance metric for allocations in the first subset ′ is determined. A second lower bound τ″ of the performance metric for allocations in the second subset ″ is determined. The first subset ′ is discarded from the set of allocations if the first lower bound τ′ is greater than or equal to an upper bound E for the branch and bound algorithm. The second subset ″ is discarded from the set of allocations if the second lower bound τ″ is greater than or equal to the upper bound ∈.
In an embodiment, the selected subset corresponds to a selected constraint matrix Δ and a selected value matrix y. An unconstrained element Δab within the selected constraint matrix Δ is identified. The first subset ′ corresponds to a first constraint matrix Δ′ and a first value matrix y′. The second subset ″ corresponds to the first constraint matrix Δ′ and a second value matrix y″. The first constraint matrix Δ′ differs from the selected constraint matrix Δ by an element of the first constraint matrix Δ′ that corresponds to the identified unconstrained element Δab. The second value matrix y″ differs from the first value matrix y′ by an element yab″ of the second value matrix y″ that corresponds to the identified unconstrained element Δab.
In an embodiment, the upper bound ∈ is updated to be a lesser of the first lower bound τ′ and the second lower bound τ″ if i) the first constraint matrix is an all-ones matrix, and ii) the lesser of the first lower bound τ′ and the second lower bound τ″ is less than the upper bound ∈. The selected allocation {tilde over (x)} of time slots is updated to be one of the first value matrix or the second value matrix that corresponds to the updated upper bound ∈. Allocations from the set of allocations that have lower bounds that are greater than the updated upper bound ∈ are discarded from the set of allocations .
In an embodiment, dividing the selected subset includes selecting the selected subset having a highest number of non-zero elements in the selected constraint matrix.
In an embodiment, identifying the unconstrained element within the selected constraint matrix includes identifying the unconstrained element corresponding to a highest requested data rate of the plurality of resource requests.
At least some of the various blocks, operations, and techniques described above may be implemented utilizing hardware, a processor executing firmware instructions, a processor executing software instructions, or any combination thereof. When implemented utilizing a processor executing software or firmware instructions, the software or firmware instructions may be stored in any computer readable memory such as on a magnetic disk, an optical disk, or other storage medium, in a RAM or ROM or flash memory, processor, hard disk drive, optical disk drive, tape drive, etc. The software or firmware instructions may include machine readable instructions that, when executed by one or more processors, cause the one or more processors to perform various acts.
When implemented in hardware, the hardware may comprise one or more of discrete components, an integrated circuit, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), etc.
While the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, changes, additions and/or deletions may be made to the disclosed embodiments without departing from the scope of the invention.
This application claims the benefit of U.S. Provisional Patent Application No. 62/114,799, entitled “TDMA-DSM: Time-Division Multiple-Access Dynamic Spectrum Management,” filed on Feb. 11, 2015, the disclosure of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
20110261674 | Maes et al. | Oct 2011 | A1 |
20120027060 | Singh et al. | Feb 2012 | A1 |
20130215951 | Nuzman | Aug 2013 | A1 |
20140348139 | Martinez | Nov 2014 | A1 |
20150124943 | Oksman et al. | May 2015 | A1 |
20150280892 | Verbin et al. | Oct 2015 | A1 |
20150304488 | Amde et al. | Oct 2015 | A1 |
20160072613 | Esserman | Mar 2016 | A1 |
20160073448 | Strobel et al. | Mar 2016 | A1 |
Number | Date | Country |
---|---|---|
WO-2012162576 | Nov 2012 | WO |
Entry |
---|
U.S. Appl. No. 14/863,042, entitled “Transmission Power Level Configuration for Crosstalk Relationship,” filed Sep. 23, 2015. |
ITU-T Recommendation G.9960, “Unified high-speed wireline-based home networking transceivers—System architecture and physical layer specification,” Int'l Telecommunication Union, pp. 1-160 (Dec. 2011). |
ITU-T Recommendation G.9960, Erratum 1 to Recommendation ITU-T G.9960, Int'l Telecommunication Union, 1 page (Jul. 2012). |
ITU-T Recommendation G.9960, Erratum 2 to Recommendation ITU-T G.9960, Int'l Telecommunication Union, 4 pages (Sep. 2012). |
ITU-T Recommendation G.9961, “Unified high-speed wire-line based home networking transceivers—Data link layer specification,” Int'l Telecommunication Union, pp. 1-220 (Jun. 2010). |
ITU-T Recommendation G.9961, Corrigendum 1, “Unified high-speed wire-line based home networking transceivers—Data link layer specification,” Int'l Telecommunication Union, pp. 1-158 (Dec. 2011). |
ITU-T Recommendation G.9961, Amendment 1, “Unified high-speed wire-line based home networking transceivers—Data link layer specification,” Int'l Telecommunication Union, pp. 1-80 (Sep. 2012). |
ITU-T Recommendation G.9961, Corrigendum 2, “Unified high-speed wire-line based home networking transceivers—Data link layer specification,” Int'l Telecommunication Union, pp. 1-122 (Jul. 2013). |
ITU-T Recommendation G.9961, Amendment 2, “Unified high-speed wire-line based home networking transceivers—Data link layer specification,” Int'l Telecommunication Union, pp. 1-44 (Apr. 2014). |
ITU-T Recommendation G.9963, “Unified high-speed wireline-based home networking transceivers—Multiple input-multiple output specification” Int'l Telecommunication Union, pp. 1-90 (Dec. 2011). |
Boyd et al., “Convex Optimization,” Cambridge University Press, pp. 1-728 (2004). |
Brown, “G.hn: Draft text for G.9960 (2010) corrigendum 1,” International Telecommunication Union, pp. 1-184 (Feb. 2011). |
Brown, “G.hn: Draft text for G.9961 (2010) corrigendum 1,” International Telecommunication Union, pp. 1-282 (Feb. 2011). |
Clausen, “Branch and Bound Algorithms—Principles and Examples,” Department of Computer Science, University of Copenhagen, pp. 1-30 (Mar. 12, 1999). |
Land et al., “An Automatic Method of Solving Discrete Programming Problems,” Econometrica, vol. 28, No. 3, pp. 497-520 (Jul. 1960). |
Lin et al., “Optimal and Near-Optimal Resource allocation Algorithms for OFDMA Networks,” IEEE Transactions on Wireless Communications, vol. 8, No. 8, pp. 4066-4077 (Aug. 2009). |
Number | Date | Country | |
---|---|---|---|
62114799 | Feb 2015 | US |