Method and apparatus for user distribution to sub-bands in multiple access communications systems
11323970 · 2022-05-03
Assignee
- INSTITUT MINES-TELECOM (PALAISEAU, FR)
- UNIVERSITE LIBANAISE (Beirut, LB)
- UNIVERSITE SAINT-ESPRIT DE KASLIK (Jounieh, LB)
Inventors
- Marie-Rita Hojeij (Mont Liban, LB)
- Charbel Abdel Nour (Brest, FR)
- Joumana Farah (Mont Liban, LB)
- Catherine Douillard (Brest, FR)
Cpc classification
H04L5/003
ELECTRICITY
H04W72/0453
ELECTRICITY
H04L5/0071
ELECTRICITY
H04J99/00
ELECTRICITY
International classification
H04W52/34
ELECTRICITY
Abstract
A system and method for assigning users to a particular sub band in a given time slot in a NOMA system, where whichever pair of users corresponds to the smallest “candidate pair user throughput deviation value”, reflecting the aggregate of the respective difference between the average throughput across all users (K) and the known throughput of each of the two users under consideration (k.sub.1k.sub.2), and each user attributed to a sub-band other than the selected sub-band. User pairs for consideration may consider all possible pairs, or may be limited to candidate pairs satisfying together, or comprising one or both users who satisfy a criterion such as channel gain, distance to a target, throughput or a combination of some or all of these factors. The power allocated to each sub-band may be attributed by a waterfilling algorithm.
Claims
1. A system for assigning users from a set of candidate users to one of a plurality of sub-bands (s) in a current time slot (t) in a multiple access communications system, comprising: an assignment processor adapted to select a plurality of candidate pairs of the users, each candidate pair comprising a respective first user (k.sub.1) and a respective candidate second user (k.sub.2), for consideration with respect to a selected sub-band, a power calculator adapted to perform a provisional power allocation to each sub-band with regard to each candidate pair, a throughput calculator adapted to determine a respective candidate pair user throughput deviation value reflecting an aggregate of a respective difference between an average throughput across the set of candidate users and a known throughput of the first user (k.sub.1), a known throughput of the candidate second user (k.sub.2), and a known throughput of each user attributed to a sub-band other than the selected sub-band, the assignment processor being further adapted to assign to the sub-band whichever candidate pair of users corresponds to the smallest respective candidate pair user throughput deviation value.
2. A method of selection of a first user (k.sub.1) and a second user (k.sub.2) among a set of candidate users for attribution to one of a plurality of sub-bands (s) in a current time slot (t) in a multiple access communications system based, comprising the steps of: selecting a candidate pair of users comprising a said first user (k.sub.1) and a respective candidate second user (k.sub.2), for consideration with respect to a selected sub-band, performing a provisional power allocation to each sub-band, determining a candidate pair user throughput deviation value reflecting an aggregate of a respective difference between an average throughput across the set of candidate users and a known throughput of the first user (k.sub.1), a known throughput of the candidate second user (k.sub.2), and a known throughput of each user attributed to a sub-band other than the selected sub-band, repeating the steps of selecting a candidate pair of users, performing a provisional power allocation, determining a candidate pair user throughput deviation value for a plurality of further candidate pair of users, and assigning to the selected sub-band whichever candidate pair of users corresponds to the smallest respective candidate pair user throughput deviation value.
3. The method of claim 2, wherein the power allocated to each sub-band in said provisional power allocation is attributed by a waterfilling algorithm such that the power allocated to each sub-band has regard to the channel gain of each user in each respective candidate pair, and the channel gain of any user already assigned to any sub-band in the current time slot.
4. The method of claim 2, wherein the known throughput for each user takes account of the projected throughput for that respective user for the current time slot, in addition to the average throughput during an historical time window for that respective user.
5. The method of claim 2, wherein the step of determining a candidate pair user throughput deviation value comprises the additional steps of: calculating a known throughput of each user in the candidate pair, and any user already assigned to any sub-band in the current time slot, calculating an average total throughput as an average of the respective known throughput calculated for each user in the set of candidate users, calculating a user throughput deviation value for each user in the candidate pair, and any user already assigned to any sub-band in the current time slot, the user throughput deviation value corresponding to the difference between the respective known throughput for that user and the average total throughput value, and combining the respective user throughput deviation values for each user in the candidate pair, and any user already assigned to any sub-band in the current time slot to obtain the candidate pair user throughput deviation value.
6. The method of claim 2, wherein the steps of selecting a candidate pair of users, performing a provisional power allocation, and determining a candidate pair user throughput deviation value, are repeated until every possible candidate pair of users has been considered.
7. The method of claim 2, wherein the steps of selecting a candidate pair of users, performing a provisional power allocation, and determining a candidate pair user throughput deviation value, are repeated until every possible candidate pair of users comprising a first candidate user satisfying a specified criterion has been considered.
8. The method of claim 7, wherein said specified criterion is based on one or more of channel gain, distance to a target or throughput.
9. The method of claim 2, wherein the steps of selecting a candidate pair of users, performing a provisional power allocation, determining a candidate pair user throughput deviation value for a plurality of further candidate pairs of users, and assigning to the sub-band whichever of the candidate pairs of users corresponds to the smallest respective candidate pair user throughput deviation value are repeated for each sub-band, until one or more users are attributed to each sub-band.
10. The method of claim 9, wherein the step of selecting a candidate pair of users, performing a provisional power allocation, determining a candidate pair user throughput deviation value for a plurality of further candidate pairs of users, and assigning to the sub-band whichever of the candidate pairs of users corresponds to the smallest respective candidate pair user throughput deviation value for each sub-band, until one or more users are attributed to each sub-band are repeated for successive said time slots.
11. An apparatus adapted to implement the steps of claim 2.
12. A computer program adapted to implement the steps of claim 2.
13. A computer readable medium incorporating the computer program of claim 12.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other advantages of the present invention will now be described with reference to the accompanying drawings, for illustration purposes only, in which:
(2)
(3)
(4)
DETAILED DESCRIPTION
(5) Generally, there are provided a system and method for assigning users to a particular sub-band in a given time slot in a in multiple access communications system such as Non-Orthogonal Multiple Access (NOMA), where whichever pair of users corresponds to the smallest “candidate pair user throughput deviation value”, reflecting the aggregate of the respective difference between the average throughput across all users (K) and the known throughput of each of the two users under consideration (k.sub.1k.sub.2), and each user attributed to a sub-band other than said selected sub-band. User pairs for consideration may consider all possible pairs, or may be limited to candidate pairs satisfying together, or comprising one or both users who satisfy a criterion such as channel gain, distance to a target, throughput or a combination of some or all of these factors. A number of possible implementations of this general approach are set out below by way of illustrations and non-limiting example. While the following examples focus on implementations in the context of NOMA, it will be appreciated that other multiple access communications systems may be envisaged using the same approach.
(6)
(7) As shown in
(8) Sub-bands may be considered in any convenient sequence. For example, they may be considered in a random order, in order of the sub-band which has the highest channel gain for a selected user, or otherwise.
(9) The method starts at step 100 before proceeding to step 110 at which a candidate pair of users is selected comprising a first user (k.sub.1) and a candidate second user (k.sub.2), for consideration with respect to the selected sub-band.
(10) The users to be considered at this step may be selected according to a variety of bases. In certain embodiments, the method may comprise a further step of sorting all users in order of priority according to a criterion prior to the step of assigning. On this basis, at step 110, the users selected may be the users having the highest priority, excluding any user who has already been assigned to an initial sub-band to a selected sub-band in a time slot t.
(11) As such, a priority list may be used at the beginning of the allocation process for the selection of the 1.sup.st user on each sub-band. This priority list is built to have all users granted a sub-band (and some throughput) at least once at the beginning of the allocation process. At the 1.sup.st time slot, the priority list may be created: all the K users are sorted in the Base Station (BS). The users are removed from this priority list as soon as they are selected in step 150 as described below). At subsequent time slots, if the list is not empty, only the remaining users are sorted again (update of the priority list). The resulting priority list is used while at least one user has not been assigned any sub-band during the assignment process.
(12) In certain further embodiments, this sorting of users in order of priority may comprise sorting the users in order of best channel gain measured for the current time slot for each user across all sub-bands, where the user accorded the highest priority is the user having the lowest best channel gain.
(13) The lowest best channel gain (“lowest best h”) sorting advantageously provides good performance (in terms of cell-edge user throughput and total cell throughput)—Users may be sorted at the base station based on the channel gain experience by users on available sub-bands, h.sub.s,k being the channel gain of user k on sub-band s. This may be expressed in the following manner: for each user k, select that user's highest channel gain h.sub.s.sub.
(14) In certain embodiments, the user may be selected at random. This may comprise the further step of sorting all users in order of priority according to a random sorting, which may be performed at a lower processing overhead that other sorting approaches.
(15) The method next proceeds to step 120 at which a provisional power allocation is performed to each sub-band.
(16) Power may be distributed equally amongst sub-bands, although there are many alternative approaches of allocation of power to sub-bands (such as waterfilling), and amongst users (for example FPA—Fixed power allocation, FTPA—fractional transmit power allocation or Full Search Power Allocation) within a sub-band, all of which are compatible with and encompassed in the present disclosure.
(17) The achievable throughputs for users k.sub.1 and k.sub.2 are functions of the power allocated to each user as defined in equation (1) above.
(18) Similarly, the total available transmission power may be distributed between sub-bands by a variety of mechanisms. One example is based on an equal distribution of power. Alternatively, according to certain alternative embodiments, provisional power allocation may be carried out during the pairing process. This provides an opportunity to attempt to identify an optimal power distribution between the users.
(19) In certain embodiments, a provisional iterative waterfilling method may be applied to obtain the provisional distribution to be computed using the same iterative waterfilling method, with the total power amount Pmax to be distributed among all the S sub-bands.
(20) Conventional waterfilling requires an overall optimization over all the users and all the sub-bands and is therefore not compatible with the sequential approach of the present disclosure.
(21) Using a specific formulation, waterfilling can be applied in a sequential fashion: users are selected sequentially, but final power allocation is only performed at the end of the process, once all the users have been chosen. The throughputs can only be computed at the end of the user selections process.
(22) A variant of this waterfilling process can be applied with the assumption that the power assigned to the s first sub-bands (1≤s≤S) is equal to s×Pmax/S where
(23) the s.sup.th sub-band is the sub-band selected for consideration,
(24) S is the total number of available sub-bands, and
(25) Pmax is the total power amount to be distributed among all the S sub-bands.
(26) On this basis, Pmax/S is assigned to a first sub-band and no further inter-sub-band calculation is required for this sub-band. In successive iterations, the inter-sub-band power allocation for the s.sup.th sub-band assigned in the time slot (s>1) s×Pmax/S is provisionally assigned across the s first sub-bands. In these later iterations, where there are more than one sub-bands to consider, this power is redistributed among all the s sub-bands using the iterative waterfilling procedure as described in more detail below.
(27) Initially, a sub-band attenuation value for candidate set of users is obtained, proportional to the reciprocal of the square of gain of the selected channel, corresponding for each combination to the highest of the channel gain value associated with the users in that candidate set.
(28) Optionally, the sub-band attenuation value may be equal to the total transmission bandwidth multiplied by the Noise power, divided by the square of the selected channel gain value multiplied by the total number of the sub-bands, or
(29)
where N.sub.0 is the noise power (equal for all sub-bands) and h.sub.s,k* is the channel gain of the user k* showing the highest channel gain in a given combination of users on the sub-band currently under consideration, s designates a particular sub-band under consideration, and S is the total number of sub-bands.
(30) The provisional power assignment may then be calculated for the sub-band under consideration. This is calculated using a waterfilling algorithm across the selected sub-band and every sub-band selected previously, using a floor for each sub-band defined by the respective sub-band attenuation value.
(31) A waterfilling algorithm may be seen as implicitly ensuring that the total power assigned across the carrier under consideration and all other sub-bands to which users have been assigned, is equal to a pro-rata proportion of the total power budget, assuming an equal share of power for each sub-band for the total power budget equal to s×Pmax/S as discussed above, and such that, for each sub-band considered thus far, the sum of the power provisionally assigned to that sub-band and the sub-band attenuation value of that sub-band is a constant.
(32) Specifically, the waterline level is predicted based on the previous level (as determined for the sub-bands allocated so far) and the channel gain of the considered users scheduled on the current sub-band s.
(33) Maximizing the achieved throughput through an optimal sharing a pro-rata proportion of the total transmit power s×Pmax/S among s sub-bands may then be achieved if:
(34)
where P.sub.j denotes the amount of power allocated to sub-band j, W.sub.s is the waterline at allocation stage s, and h.sub.j,k*.sub.
(35) During the allocation process, a pro-rata proportion of the total transmit power s×Pmax/S is distributed, at each allocation stage s, among allocated sub-bands based on (5), resulting in:
(36)
which can be re-written as:
(37)
(38) When allocating power to the next sub-band, denoted by s+1, since a proportional amount of total power is re-distributed by the scheduler, the waterline is updated only if
(39)
otherwise it will keep its old value and w.sub.s+1=W.sub.s. When the waterline is updated, a pro rata proportion of the total transmit power (s+1)Pmax/S is distributed at stage s+1 as follows:
(40)
(41) Hence, using equation (7) and equation (8), the following equality holds:
(42)
(43) Then, the waterline at stage s+1 can be formulated as:
(44)
(45) Therefore, at each s.sup.th step of the scheduling process, for every candidate user set U, the waterline level is derived from
(46)
where k*.sub.s,U is the user showing the highest channel gain among scheduled users in the set U, over sub-band s. Once the waterline level at the actual stages is determined, power may then be provisionally assigned for each candidate set U as P.sub.s,U using:
(47)
(48)
(49) In certain implementations, a sub-band attenuation value may be used as an indicator of the channel gain for the candidate set of users is obtained. This sub-band attenuation value may be proportional to the reciprocal of the square of gain of the selected channel, corresponding for each combination to the highest of the channel gain value associated with the users in that candidate set.
(50) As such, in certain variants, a waterfilling algorithm performed at step 120 may comprise determining a sub-band attenuation value proportional to the reciprocal of the square of the channel gain value of the user having the highest channel gain assigned to that sub-band, and distributing the provisional partial power budget using a floor for each sub-band defined by the respective sub-band attenuation value.
(51) As shown in
(52) The sub-band attenuation values of each of the sub-bands (the current sub-band sub-band3, and the two preceding sub-bands, sub-bands1 and sub-band 2) are illustrated arranged next to each other in order of magnitude, with the sub-band having the lowest sub-band attenuation value on the left, and the sub-band having the highest sub-band attenuation value on the right.
(53) As such, in
(54) Thus, as shown on
(55) As mentioned above, while providing a method of assigning power to sub-bands, the foregoing is silent as to the manner in which users are assigned to those sub-bands, or how power is distributed amongst users within each sub-band. A number of possible approaches to these questions are now presented by way of example.
(56) Accordingly, the power allocated to each sub-band at step 120 may be attributed by a waterfilling algorithm such that the power allocated to each sub-band has regard to the channel gain of each user in the candidate pair, and the channel gain of any user already assigned to any sub-band in the current time slot.
(57) It will be appreciated that the achievable throughput for k.sub.1 and k.sub.2 depends on the intra-sub-band and inter sub-band power allocation strategy.
(58) On this basis, only the subset S.sub.2 of users k.sub.2 need be retained such that the cumulated achievable throughput of k.sub.1 and k.sub.2 on sub-band s is greater than the throughput of k.sub.1 alone (that is, the OMA situation). If no user k.sub.2 can satisfy this condition (S.sub.2=Ø), the method may simply adopt OMA, where user k.sub.1 occupies the currently selected sub-band s.
(59) The method of
(60) The throughput deviation value may be expressed as:
(61)
(62) This might also be formulated in terms of the sum across all users, although in practice the results will be the same, since the result only varies as a function of the terms whose value depends on the candidate users under consideration, where: U.sub.s is the subset of users comprising each user attributed to a sub-band other than the selected sub-band s and the pair of candidate users for attribution to the selected sub-band s, R.sub.k,tot(t) is the known throughput of user k in a past window of length t.sub.c. In certain embodiments, the known throughput may be assumed to be equal to the average throughput of the user k, T.sub.k(t).
(63) In an optional variant, the known throughput of a user k, R.sub.k,tot(t), may optionally take account of the projected throughput for the user k, R.sub.k(t), and the average throughput T.sub.k(t) during the assessment time window t.sub.c. The projected throughput is, for the current time slot, the sum of the achievable throughputs for the user on each sub-band to which the user has been attributed. That is to say:
(64)
(65) If user k has not been assigned any sub-band in the current allocation time slot t,
(66)
(67) And
(68)
is the average value of R.sub.k,tot(t), computed over all the users.
(69) Accordingly, the known throughput for each user may take account of the projected throughput for that respective user for the current time slot in addition to the average throughput during an historical time window for that respective user.
(70) The minimization of the metric in equation (13) tends to favour the pair of user (k.sub.1, k.sub.2) that makes the known throughput of every user as close as possible to the average throughput of all users. In a case where user k.sub.1 was preselected on the basis of some other criterion, the minimization of the metric in equation (13) tends to favour user k.sub.2, that makes the known throughput of every user as close as possible to the average throughput of all users. Perfect fairness is obtained when the metric is equal to zero. In equation (13), the pair of candidate users under consideration (k.sub.1, k.sub.2) does not explicitly appear in the expressions of the numerator or of the denominator but it actually has an impact on the values of the historical throughput values R.sub.k,tot(t) and on AVG(t) via the projected throughputs, R.sub.k(t).
(71) Illustrating examples: In case of equal power allocation: only the historical throughput values of the candidate pair of users under consideration R.sub.k.sub.
(72) By way of example, in implementation of these considerations, the step 130 of determining a candidate pair user throughput deviation value may comprise the further steps of: calculating a known throughput of each user in said candidate pair, and any user already assigned to any sub-band in the current time slot, calculating an average total throughput as an average of the respective known throughput calculated for each of the users (K), calculating a user throughput deviation value for each user in the candidate pair, and any user already assigned to any sub-band in the current time slot, the user throughput deviation value corresponding to the difference between the respective known throughput for that user and the average total throughput value, and combining the respective user throughput deviation values for each user in the candidate pair, and any user already assigned to any sub-band in the current time slot to obtain the candidate pair user throughput deviation value.
(73) At step 140, the method determines whether all user pairs have been considered, and in a case where user pairs remain to be considered, reverts to step 110, so as to repeat the steps of selecting a candidate pair of users, performing a provisional power allocation, and determining a candidate pair user throughput deviation value for a plurality of further candidate pair of users. Otherwise, where no user pairs remain to be considered, the method proceeds to step 150, at which whichever candidate pair of users corresponds to the smallest respective candidate pair user throughput deviation value is assigned to the sub-band under consideration.
(74) The steps of the method of
(75)
in a case where S.sub.2 is the set of candidate pairs of users (both users are selected jointly), or otherwise, it becomes that:
(76)
in a case where user k.sub.1 was preselected on the basis of some other criterion and where S.sub.2 is the set of candidate second users.
(77) Minimizing this metric means having the average throughput AVG(t) among all the users as high as possible and having a historical throughput for each user as close as possible to AVG(t).
(78) The steps of selecting a candidate pair of users, performing a provisional power allocation, and determining a candidate pair user throughput deviation value, may be repeated until every possible candidate pair of users has been considered. Alternatively, the steps of selecting a candidate pair of users, performing a provisional power allocation, and determining a candidate pair user throughput deviation value, may be repeated until every possible candidate pair of users comprising a first candidate user satisfying a specified criterion has been considered. By way example, the specified criterion may be based on one or more of channel gain, distance to a target or throughput.
(79) Optionally, the second user for consideration with a selected first user may be selected from a subset of users having a complementary channel gain to a selected first user.
(80) A complementary channel gain is a channel gain, such that assigning a user having that channel gain to the selected sub-band together with the corresponding first user, would indicate a total sub-band throughput greater than the sub-band throughput achievable by assigning all available power as indicated by the provisional power allocation for the corresponding candidate pair of users for the respective sub-band to the first user.
(81) In certain embodiments, a complementary second user may be a candidate second user which exhibits a large difference in channel gain with respect to the first user k.sub.1, taking advantage of the fact that the total throughput in NOMA systems increases with the difference in channel gains of paired users. In certain embodiments, a complementary second user may be a candidate second user whose channel gain differs from that of the first user k.sub.1, taking advantage of the fact that the total throughput in NOMA systems increases with the difference in channel gains of paired users.
(82) Different mechanisms for identifying such complementary users may be envisaged. In a first, “brute force” implementation, the channel gain values may be computed for all the users k.sub.2 (excluding the already selected first user k.sub.1) for the sub-band s for which the second respective user is to be assigned, and for every candidate second user k.sub.2, computing the achievable throughput for k.sub.1 and k.sub.2 on s.
(83) The method as illustrated in
(84) The disclosed method may in some embodiments comprise an additional step of assigning a final power allocation to each user of each sub-band. This may be performed for example, for each sub-band, once all user allocations are complete for that sub-band in the current time slot. The final power allocation may be performed by a final iteration of the waterfilling method as described above.
(85) The steps of selecting a candidate pair of users, performing a provisional power allocation, determining a candidate pair user throughput deviation value for a plurality of further candidate pair of users, and assigning to the sub-band whichever candidate pair of users corresponds to the smallest respective candidate pair user throughput deviation value may be repeated for each sub-band, until one or more users are attributed to each sub-band. The steps of selecting a candidate pair of users, performing a provisional power allocation, determining a candidate pair user throughput deviation value for a plurality of further candidate pair of users, and assigning to the sub-band whichever candidate pair of users may correspond to the smallest respective candidate pair user throughput deviation value for each sub-band, until one or more users are attributed to each sub-band, may be repeated for successive time slots.
(86)
(87) The power calculator 303 is adapted to perform a provisional power allocation to each sub-band with regard to each candidate pair.
(88) The throughput calculator 304 is adapted to determine a respective candidate pair user throughput deviation value reflecting the aggregate of the respective difference between the average throughput across the set of candidate users (K) and the known throughput of each of the first user (k.sub.1), the candidate second user (k.sub.2) as obtained from throughput registry 312, and each user attributed to a sub-band other than the selected sub-band.
(89) The assignment calculator is further adapted to assign to the sub-band whichever candidate pair of users corresponds to the smallest respective candidate pair user throughput deviation value. As shown such assignments are registered in an assignment registry 322.
(90) The system 300 may be adapted to iteratively process users for each sub-band, until all sub-bands in the current time slot have been attributed. By the same token, the system 300 may sequentially process subsequent time slots.
(91) It will be appreciated that alternative functional groupings may be envisaged, implementing equivalent operations. In particular, the storage of throughput values, user assignments and intermediate calculations may be stored in any convenience storage structure. Similarly, the functions of the Assignment processor, power calculator and Throughput calculator may be distributed between any number of functional units, which may be more or less in number that the three units described, and regardless of their number, may be distributed on any convenient basis. Still further, the functions may be implemented in one or more functional unit, sub divisions of each of which may correspond to any arbitrary grouping of functions ascribed to the three functional units described above.
(92) It will be appreciated that the system of
(93) By way of example, the system of
(94) The disclosed methods and/or functional groupings may take form of an entirely hardware embodiment (e.g. FPGA), an entirely software embodiment (for example to control a system according to the invention) or an embodiment containing both hardware and software elements. Software embodiments include but are not limited to firmware, resident software, microcode, etc. The invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or an instruction execution system. A computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
(95) Accordingly, there are provided a system and method for assigning users to a particular sub-band in a given time slot in a in multiple access communications system such as Non-Orthogonal Multiple Access (NOMA), where whichever pair of users corresponds to the smallest “candidate pair user throughput deviation value”, reflecting the aggregate of the respective difference between the average throughput across all users (K) and the known throughput of each of the two users under consideration (k.sub.1k.sub.2), and each user attributed to a sub-band other than said selected sub-band. User pairs for consideration may consider all possible pairs, or may be limited to candidate pairs satisfying together, or comprising one or both users who satisfy a criterion such as channel gain, distance to a target, throughput or a combination of some or all of these factors. The power allocated to each sub-band may be attributed by a waterfilling algorithm.
(96) These methods and processes may be implemented by means of computer-application programs or services, application-programming interface (API), library, and/or other computer-program product, or any combination of such entities.
(97) It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
(98) The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.