Patent Publication Number: US-8111779-B2

Title: Data transmission in wireless communication system

Description:
BACKGROUND OF THE DISCLOSURE 
     Description of the Related Art 
     In a wireless communication system, a data stream to be transmitted is generally modulated and encoded and then transmitted as signals in a form of radio frequencies or infrared beams. At the receiving end, the transmitted signals are received, amplified, demodulated, and then decoded to restore the original data format. Objectives of various coding technique include, without limitation, minimizing the data transmission time and maintaining signal synchronization at both ends to ensure reliable data transmission. There are existing approaches that attempt to advance reliability and data rate of signals transmitted in a wireless communication system, many of these approaches are faced with decoding complexity or coding gain issues. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings. 
         FIG. 1  illustrates one configuration of a multiple input and multiple output (MIMO) system  100  which has four transmit antennas and two receive antennas; 
         FIG. 2(   a ) is a regular quadrature amplitude modulation (QAM) constellation diagram  200 ; 
         FIG. 2(   b ) is a rotated QAM constellation diagram  210 ; 
         FIG. 3  is a flow chart  300  illustrating an example of method steps of encoding a data stream to be transmitted in a MIMO system; 
         FIG. 4  is a block diagram  400  illustrating the software modules of a computer program executed by a processor; and 
         FIG. 5  is a block diagram illustrating a computer program product  500  for transmitting data in a wireless communication system, all arranged in accordance with embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure. 
     This disclosure is drawn, inter alia, to methods, apparatus, computer programs, and systems related to data transmission in a wireless network. 
     In this disclosure, “coding gain” refers to the measure in the difference between the signal to noise ratio (SNR) levels between the uncoded system and coded system required to reach the same bit error rate (BER) levels when used with the error correcting code (ECC). A “symbol” refers to a representation of data stream to be transmitted in a wireless communication system, where the representation is in a form of a complex number. 
     In this disclosure, a wireless communication system can be a multiple input and multiple output (MIMO) system. A MIMO system includes a transmitter with multiple transmit antennas and a receiver with multiple receive antennas. A data stream to be transmitted in a MIMO system is modulated and encoded at the transmitter to form a signal. The signal is then transmitted from the different transmit antennas of the transmitter to the receive antennas of the receiver in different time slots. 
       FIG. 1  illustrates one configuration of a MIMO system  100  which has four transmit antennas and two receive antennas, arranged in accordance with the embodiments of the present disclosure. The MIMO system  100  includes a transmitter  101  and a receiver  113 . The transmitter  101  includes a plurality of transmit antennas (e.g., a first transmit antenna  103 , a second transmit antenna  104 , a third transmit antenna  105 , and a fourth transmit antenna  106 ), a modulator  107 , an encoding module  109 , and a transmission module  111 . The receiver  113  includes a plurality of receive antennas (e.g., a first receive antenna  115  and a second receive antenna  117 ), a decoding module  119 , and a demodulator  121 . Channels  119  are formed between pairs of a transmit antenna and a receive antenna. For example, signals transmitted from the first transmit antenna  103  is transmitted in one of the channels  119  and received by the first receive antenna  115 . 
     The modulator  107  modulates a data stream to be transmitted with a carrier wave. One modulation scheme is the quadrature amplitude modulation (QAM). In QAM, the data stream to be transmitted is modulated with at least two carrier waves, and the amplitudes of the two carrier waves are out of phase with each other by 90 degrees. The modulated data stream is represented as symbols, and the symbols can be mapped onto a constellation diagram, which is a two-dimensional scatter diagram in the complex plane. 
     The encoding module  109  is configured to follow an encoding scheme to encode the symbols and generates a matrix based on the symbols. In some implementations, rows of the matrix correspond to different time slots, and columns of the matrix correspond to the different transmit antennas of the transmitter  101 . Alternatively, rows of the matrix correspond to the different transmit antennas of the transmitter  101 , and columns of the matrix correspond to different time slots. Therefore, each element of the matrix represents what symbol is transmitted from a particular transmit antenna and when the symbol is transmitted. The transmission module  111  controls the first transmit antenna  103 , the second transmit antenna  104 , the third transmit antenna  105 , and the fourth transmit antenna  106  to transmit specific symbols in particular time slots based on the matrix generated by the encoding module  109 . Symbols transmitted from the first transmit antenna  103 , the second transmit antenna  104 , the third transmit antenna  105 , and the fourth transmit antenna  106  are received by the first receive antenna  115  and the second receive antenna  117  of the receiver  113 . The received symbols are then decoded by the decoding module  119  and demodulated by the demodulator  121  to convert the encoded symbols back to the original format of the data stream transmitted from the transmitter  101 . 
     In some implementations, the encoding module  109  can encode the data stream using the QAM scheme. The encoding module  109  can be configured to support a rotation scheme, a selection scheme, an interleaving scheme, a weighting scheme, and a matrix generation scheme.  FIG. 2(   a ) is a regular 16-QAM constellation diagram  200 . Each point (e.g., r 1  to r 16 ) refers to a symbol. The horizontal axis  201 ′ represents the real axis, and the vertical axis  203 ′ represents the imaginary axis. The real parts between certain symbols shown in  FIG. 2(   a ) are the same. Similarly, the imaginary parts between certain symbols shown in  FIG. 2(   a ) are also the same 
     In an example embodiment, the constellation diagram  200  is rotated so that the following conditions are met: (1) the real part of any symbol is not equal to the real part of any other symbols on the constellation diagram; and (2) the imaginary part of any symbol is not equal to the imaginary part of any other symbols on the constellation diagram. The rotating scheme rotates the constellation diagram  200  with an angle θ g   
             (       e.g.,     ⁢           ⁢     1   2     ⁢     tan     -   1       ⁢   2     )         
to form a new constellation diagram  210  as illustrated in  FIG. 2(   b ).
 
     The selection scheme then is configured to make eight selections from the constellation diagram  210 . Each selection of a symbol is independent from the other selections. In some implementations, a symbol on the constellation diagram  210  (e.g., c 6 ) may be repeatedly selected. For example, the same c 6  may be selected eight times. In some other implementations, the eight distinct symbols (e.g., c 5  to c 12 ) may be selected as shown in  FIG. 2(   b ). Regardless of which symbols are selected from the constellation diagram  210 , the selected symbols also referred to as s 1 , s 2 , s 3 , s 4 , s 5 , s 6 , s 7 , and s 8 , and satisfy the relationship, s 1 =s iI +js iQ , where s iI  and s iQ  are the real (in-phase) and imaginary (quadrature-phase) components of S i , respectively, and j represents √{square root over (−1)}. In addition, the constellation diagram  210  is a θ radians rotated version of the constellation  200 ; therefore, c i =e jθ r i , i=1, 2, . . . 16, and c iI =cos(θ)r iI −sin(θ)r iQ  and c iQ =sin(θ)r iI +cos(θ)r iQ . 
     The interleaving scheme generates a new symbol based on the real part of the first symbol and the imaginary part of the second symbol. For example, using the symbols above, a new symbol S 1  is formed based on a combination of the real part of symbol s 1  (s 1I ) and the imaginary part of symbol s 3  (js 3Q ), and a new symbol S 2  is formed based on a combination of the additive inverse of the real part of symbol s 2  (−s 2I ) and the imaginary part of symbol s 4 ). An additive inverse of a number n is a number (−n) that, when added to n, yields zero. In some implementations, the interleaving scheme generates sixteen new complex symbols S 1 , S 2 , S 3 , S 4 , S 5 , S 6 , S 7 , S 8 , S 9 , S 10 , S 11 , S 12 , S 13 , S 14 , S 15 , and S 16  based on the eight selected symbols in the following manner:
 
 S   1   =s   1I   +js   3Q ;
 
 S   2   =s   2I   +js   4Q ;
 
 S   3   =s   5I   +js   7Q ;
 
 S   4   =−s   6I   +js   8Q ;
 
 S   5   =s   2I   +js   4Q ;
 
 S   6   =s   1I   −js   3Q ;
 
 S   7   =s   6I   +js   8Q ;
 
 S   8   =s   5I   −js   7Q ;
 
 S   9   =s   7I   +js   5Q ;
 
 S   10   =−s   8I   +js   6Q ;
 
 S   11   =s   3I   +js   1Q ;
 
 S   12   =−s   4I   +js   2Q ;
 
 S   13   =s   8I   +js   6Q ;
 
 S   14   =s   7I   −js   5Q ;
 
 S   15   =s   4I   +js   2Q ;
 
 S   16   =s   3I   −js   1Q .
 
Thus, each interleaved symbol comprises information of two symbols from the set of symbols selected by the selection scheme.
 
     With S 1 , S 2 , S 3 , S 4 , S 5 , S 6 , S 7 , S 8 , S 9 , S 10 , S 11 , S 12 , S 13 , S 14 , S 15 , and S 16 , the matrix generation scheme generates a first matrix (matrix (1)) as shown below: 
                   [           S   1           S   2           S   3           S   4               S   5           S   6           S   7           S   8               S   9           S   10           S   11           S   12               S   13           S   14           S   15           S   16           ]           (   1   )               
As set forth above, the matrix (1) can be used to indicate what symbol is transmitted from a particular transmit antenna and when the symbol is transmitted. Because such a matrix includes antenna and time slot information, this type of matrix is also called space-time block code (STBC) matrix. With the example STBC matrix, the transmission module  111  is able to configure the first transmit antenna  103  to transmit S 1  in the first time slot, transmit S 5  in the second time slot, transmit S 9  in the third time slot, and transmit S 13  in the fourth time slot. Similarly, the second transmit antenna  104  is configured to transmit S 2  in the first time slot, transmit S 6  in the second time slot, transmit S 10  in the third time slot, and transmit S 14  in the fourth time slot. The third transmit antenna  105  is configured to transmit S 3  in the first time slot, transmit S 7  in the second time slot, transmit S 11  in the third time slot, and transmit S 15  in the fourth time slot. The fourth transmit antenna  106  is configured to transmit S 4  in the first time slot, transmit S 8  in the second time slot, transmit S 12  in the third time slot, and transmit S 16  in the fourth time slot.
 
     In accordance with embodiments of the present disclosure, the weighting scheme can weight selected elements in the matrix (1) to enhance the coding gain of the STBC. In some implementations, the weighting scheme applies weights (e.g., e jθ  or cos(θ)+j sin(θ) is in a range from zero to around π/2) to S 3 , S 4 , S 7 , S 8 , S 9 , S 10 , S 13 , and S 14 . In some implementations, θ is π/4 as this enhances the coding gain when the constellation diagram is formed based on signals modulated by QAM, and the matrix generation scheme generates a second STBC matrix (matrix (2)) as follows: 
                   [           S   1           S   2             ⅇ     j   ⁢           ⁢     π   /   4         ⁢     S   3               ⅇ     jπ   /   4       ⁢     S   4                 S   5           S   6             ⅇ     jπ   /   4       ⁢     S   7               ⅇ     j   ⁢           ⁢     π   /   4         ⁢     S   8                   ⅇ     jπ   /   4       ⁢     S   9               ⅇ     jπ   /   4       ⁢     S   10             S   11           S   12                 ⅇ     j   ⁢           ⁢     π   /   4         ⁢     S   13               ⅇ     jπ   /   4       ⁢     S   14             S   15           S   16           ]           (   2   )               
With the example STBC matrix, the transmission module  111  is able to configure the first transmit antenna  103  to transmit S 1  in the first time slot, transmit S 5  in the second time slot, transmit e jπ/4 S 9  in the third time slot, and transmit e jπ/4 S 13  in the fourth time slot. In addition, the second transmit antenna  104  is configured to transmit S 2  in the first time slot, transmit S 6  in the second time slot, transmit e jπ/4 S 10  in the third time slot and, transmit e jπ/4 S 14  in the fourth time slot. The third transmit antenna  105  is configured to transmit e jπ/4 S 3  in the first time slot, transmit e jπ/4 S 7  in the second time slot, transmit S 11  in the third time slot, and transmit S 15  in the fourth time slot. The fourth transmit antenna  106  is configured to transmit e jπ/4 S 4  in the first time slot, transmit e jπ/4 S 8  in the second time slot, transmit S 12  in the third time slot, and transmit S 16  in the fourth time slot.
 
     The transmitted symbols are decoded and demodulated at the receiver  113 . The decoding method can include any technical feasible decoding method, which includes, without limitation, maximum-likelihood decoding and sphere decoding. The demodulating method can be predetermined based on the modulation scheme adapted by the modulator  107  in the transmitter  101 . The coded symbols are transmitted “full-rate.” In a system having Nt transmit antennas and Nr receive antennas, the full-rate transmission refers to a code that transmits a number of complex symbols per channel use. The number of complex symbols transmitted per channel use is the minimum value selected from a group consisting of Nt and Nr. In some implementations, when maximum-likelihood (ML) decoding technique is used, the decoding complexity of the signals encoded according to the matrix (2) is M 5  for all complex constellations, where M refers to the constellation size. The system transmitting such encoded signals has a lower decoding complexity than the system transmitting signals encoded by some known codes, such as the DjABBA code and the code proposed by Biglieri, Hong and Viterbo (BHV code). The ML decoding complexity of the signals encoded according to the DjABBA code and the BHV code is M 7  and M 6 , respectively. A system transmitting signals encoded according to the matrix (2) offers a lower ML decoding complexity than a system transmitting signals encoded based on the DjABBA code. In some implementations, the system also provides a lower ML decoding complexity than a BHV encoded system, particularly for a BHV encoded system associated with non-square QAM constellations. In addition, in some implementations, a system transmitting signals encoded based on the matrix (2) offers a higher coding gain than a DjABBA encoded system and a BHV encoded system, particularly for those DjABBA encoded systems and those BHV encoded systems associated with square QAM constellations, such as 4-QAM and 16-QAM. 
       FIG. 3  is a flow chart  300  illustrating an example of method steps of encoding a data stream to be transmitted in a MIMO system. In operation  301 , a modulated data stream is represented as symbols in complex numbers and mapped onto a two-dimensional scatter diagram in the complex plane. As set forth above, such a scatter diagram can be a constellation diagram. 
     In some implementations, when the MIMO system includes four transmit antennas and two receive antennas, in operation  303 , symbols are independently selected from the constellation diagram. In some implementations, the independently selected symbols may correspond to the same symbol on the constellation diagram  210 . In some other implementations, the independently selected symbols may correspond to distinct symbols on the constellation diagram  210 . 
     In operation  305 , a first complex symbol set is generated based on two selected symbols (e.g., S 1  and S 3 ), and a second complex symbol set is generated based on another two selected symbols (e.g., S 2  and S 4 ) in operation  307 . In operation  309 , a third complex symbol set is generated based on another two selected symbols (e.g., S 5  and S 7 ), and a fourth complex symbol set is generated based on the other two selected symbols (e.g., S 6  and S 8 ) in operation  311 . In some implementations, the first complex symbol set may include four complex symbols that result from interleaving the two selected symbols in a manner as set forth above. Similarly, for any one or a plurality of the second complex symbol set, the third complex symbol set, and the fourth complex symbol set, the complex symbol set may also include four complex symbols that result from interleaving the two selected symbols for the complex symbol set. 
     In operation  313 , the complex symbols of the third complex symbol set are weighted, and the complex symbols of the fourth complex symbol set are weighted in operation  315 . In some implementations, the weight applied can be e jθ , where θ is in a range from zero to around π/2. In some implementations, θ is π/4. 
     In operation  317 , the four complex symbols of the first complex symbol set are transmitted by different transmit antennas in different time slots. In operation  319 , the four symbols of the second complex symbol set are transmitted by different transmit antennas in different time slots. 
     In operation  321 , the weighted symbols of the third complex symbol set are transmitted by different transmit antennas in different time slots. In operation  323 , the weighted symbols of the fourth complex symbol set are transmitted by different transmit antennas in different time slots. 
     In some implementations, the first complex symbol set includes four complex symbols (e.g., S 1 , S 6 , S 11 , and S 16 ), and the second complex symbol set includes another four complex symbols (e.g., S 2 , S 5 , S 12 , and S 15 ). The weighted third complex symbol set includes four weighted complex symbols (e.g., e jπ/4 S 3 , e jπ/4 S 8 , e jπ/4 S 9 , and e jπ/4 S 14 ). The weighted fourth complex symbol set includes another four weighted complex symbols (e.g., e jπ/4 S 4 , e jπ/4 S 7 , e jπ/4 S 10 , and e jπ/4 S 13 ) 
     With the example complex symbols, weighted complex symbols, complex symbol sets, and weighted complex symbol sets, according to the example STBC matrix (matrix (2)), the first transmit antenna is configured to transmit a first complex symbol (e.g., S 1 ) selected from the first complex symbol set in the first time slot, transmit a second complex symbol (e.g., S 5 ) selected from the second complex symbol set in the second time slot, transmit a first weighted complex symbol (e.g., e π/4 S 9 ) selected from the weighted third complex symbol set in the third time slot, and transmit a second weighted complex symbol (e.g., e jπ/4 S 13 ) selected from the weighted fourth complex symbol set in the fourth time slot. 
     The second transmit antenna is configured to transmit a third complex symbol (e.g., S 2 ) selected from the second complex symbol set in the first time slot, transmit a fourth complex symbol (e.g., S 6 ) selected from the first complex symbol set in the second time slot, transmit a third weighted complex symbol (e.g., e jπ/4 S 10 ) selected from the weighted fourth complex symbol set in the third time slot, and transmit a fourth weighted complex symbol (e.g., e jπ/4 S 14 ) selected from the weighted third complex symbol set in the fourth time slot. 
     The third transmit antenna is configured to transmit a fifth weighted complex symbol (e.g., e jπ/4 S 3 ) selected from the weighted third complex symbol set in the first time slot, transmit a sixth weighted complex symbol (e.g., e jπ/4 S 7 ) selected from the weighted fourth complex symbol set in the second time slot, transmit a fifth complex symbol (e.g., S 11 ) selected from the first complex symbol set in the third time slot, and transmit a sixth complex symbol (e.g., S 15 ) selected from the second complex symbol set in the fourth time slot. 
     The fourth transmit antenna is configured to transmit a seventh weighted complex symbol (e.g., e jπ/4 S 4 ) selected from the weighted fourth complex symbol set in the first time slot, transmit a eighth weighted complex symbol (e.g., e jπ/4 S 8 ) selected from the weighted third complex symbol set in the second time slot, transmit a seventh complex symbol (e.g., S 12 ) selected from the second complex symbol set in the third time slot, and transmit a sixth complex symbol (e.g., S 16 ) selected from the first complex symbol set in the fourth time slot. 
       FIG. 4  is a block diagram illustrating the software modules of a computer program executed by a processor, arranged in accordance with embodiments of the present disclosure. The computer program includes a conversion module  430 , selection module  440 , an interleaving module  450 , a matrix generation module  460 , and a weighting module  470 . In some implementations, the instructions for the modules described above are stored in memory  420  and are executed by a processor  410 . The conversion module  430  converts a data stream  411  into a symbol set. The selection module  440  selects symbols from the converted symbol set. The interleaving module  450  interleaves two selected symbols to generate a new symbol in a manner as set forth above and generates a plurality of such new symbols. The matrix generation module  460  generates a matrix based on the plurality of new symbols. The weighting module  470  applies weights to a plurality of elements of the generated matrix. 
       FIG. 5  is a block diagram illustrating a computer program product  500  for transmitting data in a wireless communication system, arranged in accordance with embodiments of the present disclosure. Computer program product  500  includes one or more sets of instructions  502  for executing the methods for transmitting data in a wireless communication system. For illustration only, the instructions  502  reflect the method described above and illustrated in  FIG. 3 . Computer program product  500  may be transmitted in a signal bearing medium  504  or another similar communication medium  506 . Computer program product  500  may be recorded in a computer readable medium  508  or another similar recordable medium  510 . 
     There is little distinction left between hardware and software implementations of aspects of systems; the use of hardware or software is generally (but not always, in that in certain contexts the choice between hardware and software can become significant) a design choice representing cost vs. efficiency tradeoffs. There are various vehicles by which processes and/or systems and/or other technologies described herein can be effected (e.g., hardware, software, and/or firmware), and that the preferred vehicle will vary with the context in which the processes and/or systems and/or other technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware. 
     The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of skill in the art in light of this disclosure. In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). 
     Those skilled in the art will recognize that it is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use engineering practices to integrate such described devices and/or processes into data processing systems. That is, at least a portion of the devices and/or processes described herein can be integrated into a data processing system via a reasonable amount of experimentation. Those having skill in the art will recognize that a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities). A typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems. 
     The herein described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected”, or “operably coupled”, to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable”, to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components. 
     With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity. 
     It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to disclosures containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should typically be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.” 
     While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.