# Patent

## Title
Methods for opportunistic multi-user beamforming in collaborative MIMO-SDMA

## Abstract

A system and method for opportunistically designing collaborative beamforming vectors is disclosed for a wireless multiple input, multiple output (MIMO) space division multiple access (SDMA) communication system by sequentially designing beamforming vectors for ranked channels in order to exploit the instantaneous channel conditions to improve per user average SNR performance. Each subscriber station independently transmits information to a base station that allows the base station to determine beamforming vectors for each subscriber station by ranking the subscriber stations by channel strength. Using sequential nullspace methods, the ranked channel matrices are then used to select the channel matrix Hi for the best subscriber station, to design the wi, vi for the best subscriber station as the left and right singular vectors of the MIMO channel matrix Hi, to transform the remaining channels and to continue the process until beamforming vectors are designed for all channels.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is directed in general to field of information processing. In one aspect, the present invention relates to a system and method for beamforming for collaborative, space division multiple access systems with transmitter and receiver antenna arrays.
2. Description of the Related Art
The demand for wireless communication systems continues to expand. Wireless communication systems transmit and receive signals within a designated electromagnetic frequency spectrum. The capacity of the electromagnetic frequency spectrum is limited. Thus, the usage expansion of wireless communication systems continually introduces challenges to improve spectrum usage efficiency. Space division multiple access (SDMA) represents one approach to improving spectrum usage efficiency. SDMA has recently emerged as a popular technique for the next generation communication systems. SDMA based methods have been adopted in several current emerging standards such as IEEE 802.16 and the 3rd Generation Partnership Project (3GPP).
FIG. 1 depicts a wireless communication system 100 that employs SDMA. The communication system 100 is a multiple-input multiple-output (MIMO) system. In MIMO systems, transmitters and receivers are both equipped with multiple antennas. The wireless communication system 100 includes multiple base stations 102.1-102.p and multiple subscriber stations 104.1-104.r, where “p” and “r” are integers representing the number of base stations and subscriber stations, respectively, in a given geographic area. Base stations and subscriber stations can be both transmitters and receivers when both base stations and subscriber stations are equipped with a receiver and a transmitter. Base stations generally communicate with multiple subscriber stations. Subscriber stations communicate directly with a base station and indirectly, via the base station, with other subscriber stations. The number of base stations depends in part on the geographic area to be served by the wireless communication system 100. Subscriber systems can be virtually any type of wireless one-way or two-way communication device such as a cellular telephones, wireless equipped computer systems, and wireless personal digital assistants. The signals communicated between base stations and subscriber stations can include voice, data, electronic mail, video, and other data, voice, and video signals.
In an SDMA-MIMO wireless communication system, each base station 102 and subscriber station 104 includes an array of antennas for transmitting and receiving signals. In SDMA, different subscriber stations share the same time-frequency channel and the separation between them occurs in the spatial dimension. During transmission, the antenna array forms a beam or multiple beams by applying a set of weights to signals applied to each antenna in the antenna array. A different set of beam forming weights is applied to communications between the base station and each subscriber station with a goal of minimizing interference between the radio communication devices signals. In some transmission schemes, such as time division duplex (TDD), beam forming between the base station and subscriber stations allows the allocation of the same frequency channel and different time channel to subscriber stations during downlink and uplink. In other transmission schemes, such as frequency division duplex (FDD), beam forming between the base station and subscriber stations allows the allocation of the same time channel and different frequency channel to subscriber stations during downlink and uplink.
FIG. 2 depicts base station 202 and subscriber stations 204.1 through 204.m in an SDMA-MIMO wireless communication system. Base station 202 represents each of base stations 102.1 through 102.p, and subscriber stations 204.1 through 204.m represent any group of m subscriber stations. MIMO systems use beamforming to transmit a single data stream through multiple antennas, and the receiver combines the received signal from the multiple receive antennas to reconstruct the transmitted data. As described in greater detail below, “beamforming” processes a signal for transmission using weight vector wi and an array of antennas to direct the signal using interference properties, and at the receiver, the received signals detected by the array of antennas are processed using a combining vector vi.
Base station 202 has an array of N antennas 206, where N is an integer greater than or equal to m. The base station prepares a transmission signal, represented by the vector xi, for each signal si, where i ε{1, 2, . . . , m}. (Note: lower case bold variables indicate vectors and upper case BOLD variables indicate matrices). The transmission signal vector xi is determined in accordance with Equation [1]:

xi=wi·si  [1]

where wi, is the ith beamforming, N dimensional transmission weight vector (also referred to as a “transmit beamformer”), and each coefficient wj of weight vector wi represents a weight and phase shift on the jth transmit antenna 206, where j ε{1, 2, . . . , ki}, and ki represents the number of receiving antennas of the ith subscriber station 204.i. In addition, the term “si” is the data to be transmitted to the ith receiver. Each of the coefficients of weight vector wi may be a complex weight. Unless otherwise indicated, transmission beamforming vectors are referred to as “weight vectors,” and reception vectors are referred to as “combining vectors”.

The transmission signal vector xi is transmitted via a channel represented by a channel matrix Hi. The channel matrix Hi represents a channel gain between the transmitter antenna array 206 and the ith subscriber station antenna array 208.i. Thus, the channel matrix Hi can be represented by a N×ki matrix of complex coefficients, where N is the number of antennas at the base station antenna array 206 and ki is the number of antennas in the ith subscriber station antenna array 208.i. The value of ki can be unique for each subscriber station. As will be appreciated, the channel matrix Hi can instead be represented by a ki×N matrix of complex coefficients, in which case the matrix manipulation algorithms are adjusted accordingly so that, for example, the right singular vector calculation on a N×ki channel matrix becomes a left singular vector calculation on a ki×N channel matrix. The coefficients of the channel matrix Hi depend, at least in part, on the transmission characteristics of the medium, such as air, through which a signal is transmitted. A variety of methods may be used to determine the channel matrix Hi coefficients, such as transmitting a known pilot signal to a receiver so that the receiver, knowing the pilot signal, can estimate the coefficients of the channel matrix Hi using well-known pilot estimation techniques. Alternatively, the actual channel matrix Hi is known to the receiver and may also be known to the transmitter.
At the subscriber station 204.i, the transmitted signals are received on the ki receive antennas. The received signals for the ith subscriber station 204.i are represented by a ki×1 received signal vector yi in accordance with Equation [2]:




  
    
      
        
          y
          i
        
        =
        
          
            
              s
              i
            
            ⁢
            
              H
              i
              H
            
            ⁢
            
              w
              i
            
          
          +
          
            (
            
              
                
                  ∑
                  
                    n
                    =
                    1
                  
                  m
                
                ⁢
                
                  
                
                ⁢
                
                  
                    s
                    n
                  
                  ⁢
                  
                    H
                    i
                    H
                  
                  ⁢
                  
                    w
                    n
                  
                
              
              -
              
                
                  s
                  i
                
                ⁢
                
                  H
                  i
                  H
                
                ⁢
                
                  w
                  i
                
              
            
            )
          
        
      
    
    
      
        [
        2
        ]
      
    
  




where “si” is the data to be transmitted to the ith subscriber station 204.i, “sn” is the data transmitted to the nth subscriber station 204.n, “HiH” represents the complex conjugate of the channel matrix correlating the base station 202 and ith subscriber station 204.i, wi is the ith base station weight vector, and wn is the nth base station weight vector. The superscript “H” is used herein as a hermitian operator to represent a complex conjugate operator. The jth element of the received signal vector yi represents the signal received on the jth antenna of subscriber station 204.i, j ε{1, 2, . . . , ki}. The first term on the right hand side of Equation [2] is the desired receive signal while the summation terms less the desired receive signal represent co-channel interference.

To obtain a data signal, zi, which is an estimate of the transmitted data si, the subscriber station 204.i combines the signals received on the k antennas using a combining vector vi in accordance with Equation [3]:

zi=ŝi=viHyi  [3].

In the context of the foregoing, MIMO-SDMA communication methods can be classified into two major categories: (1) collaborative and (2) non-collaborative. Collaborative MIMO-SDMA methods entail all schemes where the weighting vectors wi and combining vectors vi of base station 202 and subscriber station 204.i are designed together in a collaborative fashion. In collaborative MIMO-SDMA, each subscriber stations feeds back the downlink MIMO channel matrix to the base station, and the base station uses the knowledge of MIMO channels to all the subscriber stations 204.1-m to jointly design the weighting and combining vectors for the base station 202 and each subscriber station 204.1-m. The combining vectors are then conveyed to each subscriber station, and the communication proceeds with the base station simultaneously transmitting m data packets to each subscriber using their respective transmit weight vectors while each receiver decodes their respective packet using their respective receive weight vector. In contrast, non-collaborative systems employ a sequential design approach so that, for example, the base station 202 (or the subscriber stations 204) designs its weighting vector (or combining vector) first, and then the knowledge of the designed vectors is used to design the remaining set of vectors.
The signal throughput capacity of collaborative SDMA systems is conventionally greater than the capacity of non-collaborative systems since collaborative systems benefit from the joint knowledge of the channels Hi, i ε{1, 2, . . . , m}, to all the subscriber stations 204.1-m, while a combining vector for one subscriber station 204.i in the non-collaborative systems is determined independently of the other subscriber stations 204. While the joint knowledge of the channel conditions is typically collected at the base station 202 through feedback from each subscriber station 204i, collaborative SDMA systems typically use this channel condition information to design the weight and combining vectors with the goal of reducing interference between receiving stations. On the other hand, the performance of collaborative systems can be impaired by the overhead associated with the feedback of channel estimate information and the feed forward of combining vector information, in contrast with non-collaborative system which have lower overhead requirements. Thus, conventional approaches result in the design of weight and combining vectors which do not maximize the average signal-to-noise ratio (SNR) for a receiver station that is allowed for a given channel condition. In addition, conventional approaches do not provide flexibility in terms of trading off computational requirements or the size of control information exchanged with performance. Moreover, conventional approaches require significant control information to be fed back and fed forward, thereby impairing system performance.
Accordingly, there is a need for an improved methodology for designing optimal beamforming weight vectors and combining vectors in a collaborative system. There is also a need for a collaborative MIMO-SDMA system which jointly designs the weight and combining vectors to improve the per user average SNR performance. In addition, there is a need for a family of signal processing algorithms for selecting transmit and receive array vectors for MIMO-SDMA which overcomes the problems in the art, such as outlined above. Further limitations and disadvantages of conventional processes and technologies will become apparent to one of skill in the art after reviewing the remainder of the present application with reference to the drawings and detailed description which follow.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention may be understood, and its numerous objects, features and advantages obtained, when the following detailed description of a preferred embodiment is considered in conjunction with the following drawings, in which:
FIG. 1 (labeled prior art) depicts a wireless communication system that employs SDMA.
FIG. 2 (labeled prior art) depicts abase station and subscriber stations in an SDMA-MIMO wireless communication system.
FIG. 3 depicts a wireless communication system with abase station and subscriber stations.
FIG. 4 depicts an embodiment of the wireless communication system in FIG. 3.
FIG. 5 depicts a collaborative SDMA-MIMO downlink communication process.
FIG. 6 depicts a simulated comparison of the wireless system in FIG. 4 and non-collaborative systems.
FIG. 7 depicts a simulated comparison of the wireless system in FIG. 4 and conventional systems in the presence of statistical interference.



It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the drawings have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements for purposes of promoting and improving clarity and understanding. Further, where considered appropriate, reference numerals have been repeated among the drawings to represent corresponding or analogous elements.
DETAILED DESCRIPTION
A wireless MIMO-SDMA methodology and system are described for jointly designing beamforming weighting and combining vectors that exploit instantaneous channel information in an opportunistic manner to produce signals having a higher per user average signal-to-noise ratio (SNR) or signal-to-interference-plus-noise ratio (SINR). Using the assembled MIMO channel information (e.g., channel matrix Hi) for all the subscriber stations, the base station uses a collaborative framework to design the subscriber station receive combining vector vi and the base station transmit weighting vector wi so as to exploit the instantaneous channel conditions to improve per user average SNR performance. In at least one embodiment, the base station jointly designs the beamforming vectors (v1, . . . , vm; w1, . . . , wm) for the “best” subscriber station first (e.g., the subscriber station with the channel matrix having the largest left singular value), and then for the next “best” subscriber station, and so on. With this approach, the opportunistically designed beamforming vectors exploit the fact that each subscriber station moves among strong and weak channel conditions, resulting in a net improvement in system performance. A first design algorithm (which may be referred to as the full nullspace method) may be used when the number of subscriber stations “m” is less than or equal to the number of antennas “ki” at each subscriber station. In other words, m≦mini=1, 2, . . . m ki. In an example embodiment, the first design algorithm ranks the assembled MIMO channel information based on the computed singular values of the Hi, λi pair (where λi is the maximal eigenvalue of the matrix Hi) and uses the ranking to select a subscriber station k. Next, the weighting and combining beamformers wk, vk for subscriber station k are designed as the left and right singular vectors of the MIMO channel matrix Hk corresponding to its largest singular value. In particular, the weighting vector wk for the selected subscriber station k is derived from or is generated to be substantially equivalent to a left singular vector corresponding to the maximum singular value of the channel matrix between the base station and the selected subscriber station k (e.g., wk=LSVmax(Hk)), while the combining vector vk for the selected subscriber station k is derived from or is generated to be substantially equivalent to a right singular vector corresponding to the maximum singular value of the channel matrix between the base station and the selected subscriber station k (e.g., vk=RSVmax(Hk)). The beamformers to the rest of the subscriber stations are developed to be in the nullspace corresponding to the beamformers wk, vk to subscriber station k by projecting the channels to each of the remaining subscriber stations onto the nullspace of subscriber station k. The same process as above is repeated for the remaining subscriber stations until vectors have been computed for all subscriber stations.
In other embodiments, the base station jointly designs the vectors (v1, . . . , vm; w1, . . . , wm) using a second design algorithm (which may be referred to as the nullspace-subspace method) if the number of subscriber stations “m” is greater than the number of antennas “k” at each subscriber station. In other words, one or more of the subscriber stations has fewer than m antennas. In an example embodiment, the second design algorithm ranks the assembled MIMO channel information based on the computed singular values of the Hi, λi pair (where λi is the maximal eigenvalue of the (remaining) matrix Hi) and uses the λi values to rank and divide the λi values into two sets, the primary set P and the secondary set S. For each subscriber station k in the secondary set S (which corresponds to the lowest ranked λi values), the combining vector vk for the selected subscriber station k is derived from or is generated to be substantially equivalent to a right singular vector corresponding to the maximum singular value of the channel matrix between the base station and the selected subscriber station k (e.g., vk=RSVmax(Hk)). The computed combining vector vk is used to compute the transformed channels for the subscriber stations in the primary set P (which corresponds to the highest ranked λi values). This may accomplished by projecting the channels of all users in the primary set P onto the null space corresponding to the combining vectors of subscriber stations in the secondary set S. Next, the first design algorithm (described above) is used to compute the vectors wi, vi for subscriber stations in the primary set P. And after transforming the secondary channels, the weighting vector wk for each subscriber station k in the secondary set S (which corresponds to the lowest ranked λi values) is computed.
Various illustrative embodiments of the present invention will now be described in detail with reference to the accompanying figures. While various details are set forth in the following description, it will be appreciated that the present invention may be practiced without these specific details, and that numerous implementation-specific decisions may be made to the invention described herein to achieve the device designer's specific goals, such as compliance with process technology or design-related constraints, which will vary from one implementation to another. While such a development effort might be complex and time-consuming, it would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. For example, selected aspects are shown in block diagram form, rather than in detail, in order to avoid limiting or obscuring the present invention. In addition, some portions of the detailed descriptions provided herein are presented in terms of algorithms or operations on data within a computer memory. Such descriptions and representations are used by those skilled in the art to describe and convey the substance of their work to others skilled in the art. Various illustrative embodiments of the present invention will now be described in detail below with reference to the figures.
FIG. 3 depicts a wireless communication system 300 with a base station 302 and m subscriber stations 304.1 through 304.m. The wireless communication system 300 is a collaborative MIMO-SDMA system. Thus, each base station 302 includes an array of multiple antennas for communicating with the subscriber stations 304.1 through 304.m, and each subscriber station includes respective antenna arrays for communicating with the base station 302. The number of antennas in the antenna arrays is station dependent. During transmission, the base station 302 may include at least as many antennas as the number of subscriber stations, though there could be more subscribers in the system, such as in situations where the base station only transmits to a number of subscribers that is less than or equal to its antennas at any given time. In accordance with various illustrative embodiments of the collaborative wireless communication system 300, the base station 302 includes a vector design module 310 which is used to jointly design the vectors for each subscriber station (v1, . . . , vm; w1, . . . , wm) to make best use of the existing channel conditions for individual subscriber stations. In addition, each station may include a codebook (such as a base station codebook 312 or subscriber station 306.i) for use in efficiently transferring information in either the feedback and feedforward channel, as described herein below.
In operation, each subscriber station 302.1-m determines its MIMO channel matrix Hi—which specifies the transmission channel gain between a transmitter and an ith receiver—and transmits channel-related information to the base station 302. For example, in a MIMO implementation, each subscriber station 304.1-m determines its MIMO channel matrix Hi—which specifies the transmission channel gain between a transmitter and an ith receiver—such as by using pilot estimation or sounding techniques to determine or estimate the coefficients of the channel matrix Hi. Rather than feeding back the entire vector or matrix representation of the transmission channel (which would require a large number of bits), the channel matrix information may be compressed or quantized by using a codebook (e.g., 306.1) at the subscriber station (e.g., 304.1). The codebook (e.g. 306.1) at the subscriber station (e.g. 304.1) may be used to store an indexed set of possible matrices Hi so that, instead of transmitting the complete matrix information Hi, the subscriber station 304.1 retrieves the corresponding index from the codebook 306.1 and feeds back the index to the base station 302 over a low rate feedback channel which uses the index to access the corresponding matrix Hi information from the base station codebook 312. Alternatively, the base station 302 can estimate the channel matrix Hi for each subscriber station 302.1-m, such as by using estimation mechanisms, such as sounding. In other embodiments, the channel matrices used for transmitting and receiving are different (e.g. HiT and HiR, from the ith subscriber station's perspective), such as in a frequency division duplex (FDD) system. With the assembled or estimated MIMO channel matrix information Hi from all subscriber stations, the base station 302 uses the vector design module 310 to jointly design the combining vector vi and weighting wi for each subscriber station 302.1-m. In at least one embodiment, the collaborative determination of the weighting vector wi and combining vector vi for each subscriber station 304i exploits the instantaneous channel conditions by ranking the MIMO channel matrix information H1-Hm to increase the average SNR for each user. Once determined, the vectors vi are fed forward to the respective subscriber stations. The feed forward channels can also use the codebooks to efficiently convey control information, thereby reducing overhead for the system. For example, the codebook 312 at the transmitter/base station may be used to store an indexed set of possible vectors vi so that, instead of transmitting the complete vector information vi, the transmitter 302 retrieves the corresponding index from the codebook 312 and feeds forward the index to the receiver (e.g., 304.1) which uses the index to access the corresponding vector vi information from the receiver codebook (e.g., 306.1).
FIG. 4 depicts an embodiment of the wireless communication system 300 in more detail. The wireless communication system 400 includes a base station 402 with an antenna array 406 of N antennas. The wireless communication system 400 also includes m different subscriber stations 404.1 through 404.m, each with an antenna array 408.1 through 408.m. The number of antennas in each subscriber station antenna array can vary between subscriber stations. The MIMO channel from the base station 402 to the ith subscriber station 404.i is denoted by Hi, i ε{1, 2, . . . , m}. The channel matrix Hi is an N×ki matrix of complex entries representing the complex coefficients of the transmission channel between each transmit-receive antenna pair, where N represents the number of base station 402 antennas, and ki represents the number of antennas of the ith subscriber station. In operation, a data signal s1 presented at the base station 402 for transmission to the subscriber station 404.1 is transformed into a transmission signal, represented by the vector x1 in accordance with equation x1=w1·s1. At the receiver subscriber station 404.1, the received signal for user 1 is y1=s1*w1HH1, where H1 is the MIMO channel matrix of dimension N×m, y1 is the k×1 receive vector at the antenna array 408.1 of the subscriber station 404.1; and k is the number of receive antennas at the subscriber station 404.1. To determine z1 (the estimate for s1), the receiver subscriber station 404.1 computes z1=v1Hy1, where v1 is the combining vector for the subscriber station 404.1.
A collaborative SDMA-MIMO communication process between base station 402 and subscriber stations 404.1 through 404.m can be conceptually separated into an uplink process and a downlink process. In a downlink process, the base station 402 is the transmitter, N equals the number of antennas used for transmitting on the base station 402, and ki represents the number of antennas of the ith subscriber station 404.i used to receive the transmitted signal. In an uplink process, the subscriber station 404.i is the transmitter, and the base station 402 is the receiver. In an example downlink process, each subscriber station 404.i determines its channel matrix information Hi and provides it through feedback to the base station 402. Alternatively, the base station 402 may estimate the channel matrix information for each subscriber station 404.1 to 404.m. With the assembled channel matrix information from each subscriber, the vector design module 410 jointly determines, for each subscriber station 404i, a beamforming weighting vector wi (for weighting the signal transmitted by the N antennas of the base station 402) and a combining vector vi (for combining the signals received by each of the ki antennas of subscriber station 404.i). In at least one embodiment, base station 402 and each of subscriber stations 404.1-404.m include a processor, software executed by the processor, and other hardware that allow the processes used for communication and any other functions performed by base station 402 and each of subscriber stations 404.1-404.m. As will be appreciated, the uplink channel and the downlink channel may be the same or different depending upon the choice of communication scheme. For example, the uplink and downlink channels are the same for time division duplex (TDD) communication schemes and different for frequency division duplex (FDD) schemes.
FIG. 5 depicts a collaborative SDMA-MIMO downlink communication process 500 that represents one embodiment of a downlink communication process between base station 402 and subscriber stations 404.1 through 404.m. Referring to FIGS. 4 and 5, in operation 502, the base station 402 collects estimated channel matrices Ĥi through Ĥm from each subscriber station 404.1-404.m. With FDD systems, this may be accomplished by transmitting a pilot signal from the base station 402 to the subscriber stations 404.1-404.m, each of which uses a pilot-based channel estimation technique to respectively estimate channel matrices Ĥ1 through Ĥm, where the “^” symbol indicates an estimated value. Pilot-based channel estimation techniques are well-known in the art. The estimated channel matrix information Hi from each subscriber station 404.i is then fed back to the base station 402. As will be appreciated, the base station 402 may instead use other channel estimation techniques (such as sounding mechanisms) to estimate the respective estimated channel matrices Hi. For example, with TDD systems where the transmit and receive channels are reciprocal, each of the subscriber stations 404.1-404.m may transmit a pilot signal to the base station 402, which uses a pilot-based channel estimation technique to respectively estimate channel matrices Ĥ1 through Ĥm, where the “^” symbol indicates an estimated value.
In operation 504, the assembled channel matrix information Hi for the subscriber stations 404.1-m are ranked or sorted for subsequent processing on the basis of the instantaneous channel conditions to determine the weighting and combining vectors (at step 506). In accordance with a first illustrative embodiment which may be used when the number of subscriber stations m is less than or equal to the number of antennas ki at each subscriber station 404.i, the MIMO channel matrices Hi are ranked to identify the top-ranked subscriber station 404.k (step 504). While any desired channel ranking technique may be used, the MIMO channel matrices Hi may be ranked on the basis of the highest singular values for all the channel matrices Hi (e.g., λi=SLmax(Hi)) to identify the top-ranked subscriber station 404.k. Other equivalent techniques may also be used to select the top-ranked subscriber station 404.k, such as by ranking the channel matrices Hi on the basis of the maximal eigenvalue so that the top-ranked subscriber station 404.k (or SS404.k) is




  
    
      SS
      
        404.
        ⁢
        k
      
    
    =
    
      
        arg
      
      ⁢
      
        
          max
          
            i
            ∈
            U
          
        
        ⁢
        
          
            ev
            max
          
          ⁡
          
            (
            
              
                H
                i
                H
              
              ⁢
              
                H
                i
              
            
            )
          
        
      
    
  
  ,
  
    
      where
      ⁢
      
        
      
      ⁢
      U
    
    =
    
      
        {
        
          1
          ,
          2
          ,
          3
          ,
          ...
          ⁢
          
            
          
          ,
          m
        
        }
      
      .
    
  




At step 506, the weighting vector wk for the top-ranked subscriber station 404.k may be computed to correspond to the maximal left singular vector corresponding to the maximal eigenvalue of the estimated channel matrix Hk while the combining vector vk for the top-ranked subscriber station 404.k may be computed to correspond to the right singular vector corresponding to the maximal eigenvalue of the estimated channel matrix Hk. Once processed, the top-ranked subscriber station 404.k is removed from the pool of subscriber stations, at which point transformed channel matrix values Hi are computed for the remaining subscriber stations in the pool of subscriber stations, and the process is repeated to rank and process the remaining subscriber stations. For example, the channels to the remaining subscriber stations may be transformed or updated by projecting the remaining channels onto the nullspace of the top-ranked subscriber station 404.k, followed by ranking the transformed channels to select the next-best subscriber station 404.j using the equation




  
    SS
    
      404.
      ⁢
      j
    
  
  =
  
    
      
        arg
        ⁢
        
          
        
        ⁢
        max
      
      
        i
        ∈
        E
      
    
    ⁢
    
      
    
    ⁢
    
      
        SL
        max
      
      ⁡
      
        (
        
          
            T
            t
          
          ⁢
          
            T
            t
            H
          
          ⁢
          
            H
            i
          
          ⁢
          
            T
            r
          
          ⁢
          
            T
            r
            H
          
        
        )
      
    
  




where E is the set of all users except user 404.k, and Tt and Tr are the nullspaces corresponding to HkHwk and Hkvk, respectively. For the selected “next best” subscriber station 404.j, the weighting and combining vectors wj, vj as the left and right singular vectors, respectively, of the transformed MIMO channel matrix Hj, and so on. In this way, the processing at step 506 is repeated to select the next “best” subscriber station until all the subscriber stations are processed and the beamformers to all subscriber stations are designed.

An illustrative example of the ranking and processing steps 504, 506 that may be used if the number m of subscriber stations 404.1-m is less than or equal to the number of antennas ki at each subscriber stations 404.i is set forth in the full nullspace method below:












> U = {1,2,3,...,m}; S = { };


> for n = 1:m


  > Compute highest singular values of all Hi, λi = SLmax(Hi) for all i ε


    U-S where SLmax (.) is the maximal eigenvalue of matrix (.)


  > Choose user k = arg maxi λi, and pick wk = LSVmax(Hk) and vk =


    RSVmax(Hk), where LSVmax (.) and RSVmax (.) are maximal left


    and right singular vectors corresponding to λk.


  > Add k to S.


  > Compute transformed channels for users i ε U-S : Hi =


    TtTtHHiTrTrH, where Tt = null({Hk vk}) and Tr = null({HkH wk})


    where k ε S


> end.









As will be appreciated, other approaches may be used at steps 504, 506 to rank and process the assembled channel matrix information Hi for purposes of designing array vectors that will exploit the instantaneous channel conditions. For example, another example of a full nullspace methodology is depicted with the pseudo-code given below:















  
    Step
    ⁢
    
      
    
    ⁢
    1
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Initialize
    ⁢
    
      :
    
  




  
    
      U
      =
      
        {
        
          1
          ,
          2
          ,
          ...
          ⁢
          
            
          
          ,
          m
        
        }
      
    
    ,
    
      S
      =
      
        {
        
          
        
        }
      
    
    ,
    
      E
      =
      U
    
  




  
    
      
        X
        t
      
      =
      
        [
        
          
        
        ]
      
    
    ,
    
      
        X
        r
      
      =
      
        [
        
          
        
        ]
      
    
  




  
    
      
        
          H
          ~
        
        i
      
      =
      
        H
        i
      
    
    ,
    
      ∀
      
        i
        ∈
        U
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    2
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Select
    ⁢
    
      
    
    ⁢
    best
    ⁢
    
      
    
    ⁢
    subscriber
    ⁢
    
      
    
    ⁢
    station
    ⁢
    
      
    
    ⁢
    
      u
      ~
    
    ⁢
    
      :
    
  




  
    
      u
      ~
    
    =
    
      
        
          arg
          ⁢
          
            
          
          ⁢
          max
        
        
          i
          ∈
          E
        
      
      ⁢
      
        
      
      ⁢
      
        
          SL
          max
        
        ⁡
        
          (
          
            
              H
              ~
            
            i
          
          )
        
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    3
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Design
    ⁢
    
      
    
    ⁢
    transmit
    ⁢
    
      
    
    ⁢
    and
    ⁢
    
      
    
    ⁢
    receive
    ⁢
    
      
    
    ⁢
    beamformers
    ⁢
    
      
    
    ⁢
    for
    ⁢
    
      
    
    ⁢
    best
    ⁢
    
      
    
    ⁢
    subscriber
  




  
    station
    ⁢
    
      :
    
  




  
    
      w
      
        u
        ~
      
    
    =
    
      
        LSV
        max
      
      ⁡
      
        (
        
          
            H
            ~
          
          
            u
            ~
          
        
        )
      
    
  




  
    
      v
      
        u
        ~
      
    
    =
    
      
        RSV
        max
      
      ⁡
      
        (
        
          
            H
            ~
          
          
            u
            ~
          
        
        )
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    4
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Update
  




  
    
      S
      =
      
        S
        ⋃
        
          {
          
            u
            ~
          
          }
        
      
    
    ,
    
      E
      =
      
        U
        ⁢
        \
        ⁢
        S
      
    
  




  
    
      X
      t
    
    =
    
      [
      
        
          X
          t
        
        ⁢
        
          H
          
            u
            ~
          
        
        ⁢
        
          v
          
            u
            ~
          
        
      
      ]
    
  




  
    
      X
      r
    
    =
    
      [
      
        
          X
          r
        
        ⁢
        
          H
          
            u
            ~
          
        
        ⁢
        
          w
          
            u
            ~
          
        
      
      ]
    
  




  
    
      
        T
        t
      
      =
      
        null
        ⁡
        
          (
          
            X
            r
          
          )
        
      
    
    ,
    
      
        T
        r
      
      =
      
        null
        ⁡
        
          (
          
            X
            t
          
          )
        
      
    
  




  
    
      
        
          H
          ~
        
        i
      
      =
      
        
          T
          t
        
        ⁢
        
          T
          t
          H
        
        ⁢
        
          H
          i
        
        ⁢
        
          T
          r
        
        ⁢
        
          T
          r
          H
        
      
    
    ,
    
      ∀
      
        i
        ∈
        E
      
    
  




  
    
      
        Step
        ⁢
        
          
        
        ⁢
        5
        ⁢
        
          :
        
        ⁢
        
          
        
        ⁢
        If
        ⁢
        
          
        
        ⁢
        
          
          S
          
        
      
      =
      m
    
    ,
    
      exit
      ;
      otherwise
    
    ,
    
      go
      ⁢
      
        
      
      ⁢
      to
      ⁢
      
        
      
      ⁢
      Step
      ⁢
      
        
      
      ⁢
      2.
    
  












In accordance with various alternative embodiments of the invention, a nullspace-subspace methodology may be used at steps 504 and 506 to rank the channel matrices and design the corresponding beamforming vectors when the number of subscriber stations m is greater than the number of antennas ki at each subscriber station 404i. This methodology may be applied when one or more of the m substations have k receive antennas, where k<m. With this methodology, the MIMO channel matrices Hi are ranked and divided into two sets, S and P. Where {tilde over (k)} is the minimum receive antenna count (e.g., {tilde over (k)}=miniεU ki), the primary set P contains the {tilde over (k)} subscriber stations having the highest {tilde over (k)}-ranked channel matrices, while the secondary set S contains the m-{tilde over (k)} remaining subscriber stations having the lowest ranked channel matrices. Once the subscriber stations are divided into the S and P sets, the combining vectors vs for the subscriber stations corresponding to the secondary set S are designed to the right singular vectors of their respective channel matrices (e.g., vs=RSVmax(Hs), ∀s εS). Next, the channels of all subscriber stations in the primary set P are transformed by projecting these channels onto the null-space corresponding to the combining vectors vs in the secondary set S. Next, the array vectors wp, vp for the primary set P are computed based on the ranking of the channel matrices in the primary set P using the full nullspace method substantially as described above. Finally, the weighting vectors ws for the secondary set S are computed after computing the transformation of the channel matrices in the secondary set S, such as by using a linearly constrained minimum variance algorithm.
An illustrative example of the nullspace-subspace method for ranking and processing steps 504, 506 when the number m of subscriber stations 404.1-m is greater than to the number of antennas ki at each subscriber stations 404.i is set forth below:












> U = {1, 2, 3,..., m}


> Compute highest singular values of all Hi, λi = SLmax(Hi) for all i ε U


where SLmax (.) is the maximal eigenvalue of matrix (.)


> Let λ1 ≦ λ2 ≦ λ3 ≦ ... ≦ λm


> S = {λ1, λ2,..., λm−ki} and P = {λm−ki+1, λm-ki+2,..., λm}


> vk = RSVmax(Hk) for all k ε S and T1 = null({Hkvk; for all k ε S})


> Set Hi = T1T1HHi for all i ε P


> Use full nullspace method for computing vi and wi for all i ε P


> T2 = null({Hi vi for all i ε P })


> For all k ε S


  > Set Hk = T2T2HHk and X = [H1v1 , H2v2 , Hm−kivm−ki ] for all k ε S


  > wk = X[XHX]−1ek where ek is a vector of all zeros except for 1 at


  the kth position


> end.









As will be appreciated, other approaches may be used at steps 504, 506 for implementing a nullspace-subspace methodology to rank and process the assembled channel matrix information Hi corresponding to the subscriber station users u1, u2, . . . um. An example of another approach for the nullspace-subspace methodology is depicted with the pseudo-code given below:















  
    Step
    ⁢
    
      
    
    ⁢
    1
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Initialize
    ⁢
    
      :
    
  




  
    
      U
      =
      
        {
        
          1
          ,
          2
          ,
          ...
          ⁢
          
            
          
          ,
          m
        
        }
      
    
    ,
    
      
        k
        ~
      
      =
      
        
          min
          
            i
            ∈
            U
          
        
        ⁢
        
          
        
        ⁢
        
          k
          i
        
      
    
  




  
    
      Step
      ⁢
      
        
      
      ⁢
      2
      ⁢
      
        :
      
      ⁢
      
        
      
      ⁢
      Rank
      ⁢
      
        
      
      ⁢
      users
      ⁢
      
        
      
      ⁢
      
        u
        1
      
    
    ,
    
      u
      2
    
    ,
    
      ...
      ⁢
      
        
      
      ⁢
      
        u
        m
      
      ⁢
      
        :
      
    
  




  
    
      
        SL
        max
      
      ⁡
      
        (
        
          H
          
            u
            1
          
        
        )
      
    
    ≥
    
      
        SL
        max
      
      ⁡
      
        (
        
          H
          
            u
            2
          
        
        )
      
    
    ≥
    ⋯
    ≥
    
      
        SL
        max
      
      ⁡
      
        (
        
          H
          
            u
            m
          
        
        )
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    3
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Form
    ⁢
    
      
    
    ⁢
    primary
    ⁢
    
      
    
    ⁢
    and
    ⁢
    
      
    
    ⁢
    secondary
    ⁢
    
      
    
    ⁢
    groups
    ⁢
    
      :
    
  




  
    
      P
      =
      
        {
        
          
            u
            1
          
          ,
          
            u
            2
          
          ,
          ...
          ⁢
          
            
          
          ,
          
            u
            
              k
              ~
            
          
        
        }
      
    
    ,
    
      S
      =
      
        {
        
          
            u
            
              
                k
                ~
              
              +
              1
            
          
          ,
          
            u
            
              
                k
                ~
              
              +
              2
            
          
          ,
          ...
          ⁢
          
            
          
          ,
          
            u
            m
          
        
        }
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    4
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Design
    ⁢
    
      
    
    ⁢
    receive
    ⁢
    
      
    
    ⁢
    beamformers
    ⁢
    
      
    
    ⁢
    for
    ⁢
    
      
    
    ⁢
    S
    ⁢
    
      :
    
  




  
    
      
        v
        i
      
      =
      
        
          RSV
          max
        
        ⁡
        
          (
          
            H
            i
          
          )
        
      
    
    ,
    
      ∀
      
        i
        ∈
        S
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    5
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Transform
    ⁢
    
      
    
    ⁢
    primary
    ⁢
    
      
    
    ⁢
    channels
    ⁢
    
      :
    
  




  
    
      T
      1
    
    =
    
      null
      ⁡
      
        (
        
          {
          
            
              H
              i
            
            ⁢
            
              
                v
                i
              
              :
              
                ∀
                
                  i
                  ∈
                  S
                
              
            
          
          }
        
        )
      
    
  




  
    
      
        
          H
          ~
        
        j
      
      =
      
        
          T
          1
        
        ⁢
        
          T
          1
          H
        
        ⁢
        
          H
          j
        
      
    
    ,
    
      ∀
      
        j
        ∈
        P
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    6
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Designs
    ⁢
    
      
    
    ⁢
    beamformers
    ⁢
    
      
    
    ⁢
    for
    ⁢
    
      
    
    ⁢
    P
    ⁢
    
      :
    
  




  
    
      Using
      ⁢
      
        
      
      ⁢
      
        
          H
          ~
        
        j
      
      ⁢
      
        
      
      ⁢
      design
      ⁢
      
        
      
      ⁢
      
        w
        j
      
      ⁢
      
        
      
      ⁢
      and
      ⁢
      
        
      
      ⁢
      
        v
        j
      
      ⁢
      
        
      
      ⁢
      for
      ⁢
      
        
      
      ⁢
      all
      ⁢
      
        
      
      ⁢
      j
    
    ∈
    
      
        P
        .
        
          

        
        ⁢
        Step
      
      ⁢
      
        
      
      ⁢
      7
      ⁢
      
        :
      
      ⁢
      
        
      
      ⁢
      Transform
      ⁢
      
        
      
      ⁢
      secondary
      ⁢
      
        
      
      ⁢
      channels
      ⁢
      
        :
      
    
  




  
    
      T
      2
    
    =
    
      null
      ⁡
      
        (
        
          {
          
            
              H
              j
            
            ⁢
            
              
                v
                j
              
              :
              
                ∀
                
                  j
                  ∈
                  P
                
              
            
          
          }
        
        )
      
    
  




  
    
      
        
          H
          ~
        
        i
      
      =
      
        
          T
          2
        
        ⁢
        
          T
          2
          H
        
        ⁢
        
          H
          i
        
      
    
    ,
    
      ∀
      
        i
        ∈
        S
      
    
  




  
    Step
    ⁢
    
      
    
    ⁢
    8
    ⁢
    
      :
    
    ⁢
    
      
    
    ⁢
    Design
    ⁢
    
      
    
    ⁢
    transmit
    ⁢
    
      
    
    ⁢
    beamformers
    ⁢
    
      
    
    ⁢
    for
    ⁢
    
      
    
    ⁢
    S
    ⁢
    
      :
    
  




  
    X
    =
    
      [
      
        
          
            H
            ~
          
          
            u
            
              
                k
                ~
              
              +
              1
            
          
        
        ⁢
        
          v
          
            u
            
              
                k
                ~
              
              +
              1
            
          
        
        ⁢
        
          
            H
            ~
          
          
            u
            
              
                k
                ~
              
              +
              1
            
          
        
        ⁢
        
          v
          
            u
            
              
                k
                ~
              
              +
              2
            
          
        
        ⁢
        ⋯
        ⁢
        
          
        
        ⁢
        
          
            H
            ~
          
          
            u
            m
          
        
        ⁢
        
          v
          
            u
            m
          
        
      
      ]
    
  




  
    
      w
      i
    
    =
    
      
        {
        
          
            X
            ⁡
            
              [
              
                
                  X
                  H
                
                ⁢
                X
              
              ]
            
          
          
            -
            1
          
        
        }
      
      i
    
  




  
    
      where
      ⁢
      
        
      
      ⁢
      
        
          {
          Y
          }
        
        i
      
      ⁢
      
        
      
      ⁢
      refers
      ⁢
      
        
      
      ⁢
      to
      ⁢
      
        
      
      ⁢
      the
      ⁢
      
        
      
      ⁢
      
        i
        th
      
      ⁢
      
        
      
      ⁢
      column
      ⁢
      
        
      
      ⁢
      of
      ⁢
      
        
      
      ⁢
      matrix
      ⁢
      
        
      
      ⁢
      
        Y
        .
      
    
    ⁢
    
      
    
  












As described herein, the base station vector design module computes the vectors (v1, . . . , vm; w1, . . . , wm) by ranking the channel matrix information Hi to opportunistically exploit channel conditions to different users in order to best make use of the existing channel conditions to different users. A variety of design algorithms may be used to design opportunistic beamforming vectors using sequential nullspace methods (SNSM) that provide performance benefits with minimal computational complexity. The SNSM algorithms are based on sequential design of transmit-receive beamformers. Among the scheduled subscriber stations, beamformers for the best subscriber station are designed first, ensuring full beamforming gain to the best subscriber station. Beamformers to the second “best” subscriber station are then designed within the null-space of the first subscriber station, and so on. These algorithms include a full nullspace (FN) method and a nullspace-subspace (NS) method.
In operation 508, once the weight vector wi and a complementary combining vector vi are determined, the base station 402 transmits the combining vector vi information to the subscriber station 404.i that allows the subscriber station 404.i receive and combine signals intended for the subscriber station 404.i. In addition or at a later time, the base station 402 transmits up to m different signals to the m subscriber stations 404.1-404.m on the same time-frequency channel at operation 510. The modulated data to be transmitted to subscriber station 404.i is denoted by si. Each of the m signals si through sm are transmitted through all the N antennas 406 at base station 402 using unique complex antenna weights w1 through wm, respectively. In at least one embodiment, the actual signal transmitted on each base station 402 antenna is a superposition of vectors x1 through xm, where xi=siwi and i ε{1, 2, . . . , m}.
In operation 512, the subscriber station 404.1 having k1 antennas in antenna array 406.1 receives signal vector y1. In at least one embodiment, for subscribers station 404.1, signal vector y1 is defined by Equation [4]:




  
    
      
        
          y
          1
        
        =
        
          
            
              s
              1
            
            ⁢
            
              
                H
                ^
              
              1
              H
            
            ⁢
            
              w
              1
            
          
          +
          
            
              ∑
              
                i
                =
                2
              
              m
            
            ⁢
            
              
            
            ⁢
            
              
                s
                i
              
              ⁢
              
                
                  H
                  ^
                
                1
                H
              
              ⁢
              
                w
                i
              
            
          
          +
          n
        
      
    
    
      
        [
        4
        ]
      
    
  




where “s1” is the data to be transmitted to subscriber station 404.1, “Ĥ1H” represents the complex conjugate of the estimated channel matrix Ĥ1, wi is the ith beamforming, N dimensional weighting vector, and the vector n represents external noise interference for i ε{1, 2, . . . , m}. The superscript “H” is used herein to represent a complex conjugate operator. The jth element of the received signal vector yi represents the signal received on the jth antenna of subscriber station 404.i, j ε{1, 2, . . . , k}. Equation [4] can be used for all yi by letting the first term on the right hand side of Equation [4] be the desired receive signal while the summation terms represent co-channel interference. The subscriber station 404.i then weights and sums the receive signal vector yi using the combining vector vi (determined jointly with the weighting vector wi by base station 402) to determine the desired output data signal zi, which is an estimate of the transmitted data signal si, in accordance with Equation [5]:

zi=ŝi=viHyi  [5]

While the description provided herein is with reference to a downlink system, it will be appreciated that the described algorithms can be extended to apply to the uplink communication process too.
FIG. 6 depicts a simulated comparison 600 between an example non-collaborative process and a wireless communication system 400 using collaborative SDMA-MIMO communication process 500 where the number of subscriber station antennas is equal to maximum number of users and the full nullspace design methodology has been used to design the vector array. For the simulation, the number of base station transmit antennas N=4, and, for each subscriber station, the number of receive antennas k=4. The results are shown for a variable number of subscriber stations “m” on the x-axis. The curve 602 depicts the SNR achieved using a collaborative SDMA-MIMO communication process 500. The curve 604 depicts the SNR achieved using an example non-collaborative scheme. The curve 602 depicts a 2-3 dB gain in SNR over the non-collaborative scheme when transmitting to multiple subscriber stations.
FIG. 7 depicts a simulated comparison 700 between an example conventional non-collaborative process and a wireless communication system 400 using collaborative SDMA-MIMO communication process 500 where the number of subscriber station antennas is greater than the maximum number of users and the nullspace-subspace design methodology has been used to design the vector array. For the simulation, the number of base station transmit antennas N=6, and, for each subscriber station, the number of receive antennas k=2. The results are shown for a variable number of subscriber stations “m” on the x-axis. The curve 702 depicts the SNR achieved using a collaborative SDMA-MIMO communication process 500. The curve 704 depicts the SNR achieved using an example non-collaborative scheme. The curve 702 depicts a 1-2 dB gain in SNR over the conventional non-collaborative scheme when transmitting to multiple subscriber stations.
By now it should be appreciated that there has been provided a method and system for designing beamforming vectors for a collaborative space division multiple access system. In operation, a base station, using a vector design module or processor, assembles m channel matrices for m subscriber stations. In various embodiments, the channel matrices may be assembled by receiving over a feedback channel the estimated channel matrix H or an index representative of an estimated channel matrix H for a channel between the base station and a first subscriber station, where the index is used at the base station to access the estimated channel matrix H from a codebook for use in jointly design the beamforming vectors w and v. Once the m channel matrices are assembled, they are ranked by left singular value to select a top-ranked channel matrix H from the m channel matrices having the largest left singular value. Starting with the top-ranked channel matrix H, the base station jointly designs beamforming vectors w and v as left and right singular vectors, respectively, of the top-ranked channel matrix H. For example, the weighting vector w may be computed as the left singular vector corresponding to a maximal singular value of channel matrix H and the combining vector v may be computed as the right singular vector corresponding to a maximal singular value of channel matrix H. When beamforming vectors w and v for a selected channel matrix/subscriber station are computed, any non-selected channel matrices are transformed into a nullspace of the beamforming vectors w and v. The transformation may be implemented by computing transformed channel matrices for any non-selected channel matrices Hi such that Hi=TtTtHHiTrTrH, where Tt=null({H v}) and Tr=null({HH w}). After selecting a next highest ranked channel matrix as the top-ranked channel matrix, the foregoing steps are repeated until beamforming vectors for all m channel matrices are designed. If any subscriber station has a receive antenna array with k antennas, where k<m, the process of jointly designing beamforming vectors starts by dividing the m channel matrices into a P set and an S set, where the P set contains k of the highest ranked subscriber stations and the S set contains all remaining subscriber stations. Next, the combining vectors vs for the S set are designed and the channel matrix information for the P set is transformed. Next, the weighting vectors wp and combining vectors vp for the P set are designed and the channel matrix information for the S set is transformed. Lastly, the weighting vectors ws for the S set are designed. Once the beamforming vectors w and v are designed for all subscriber stations, each beamforming vector v is transmitted to the corresponding subscriber station for use as a combining vector, though the beamforming vector v may also be used as a weighting vector. In addition, a weighting beamforming vector w may also be fed forward for use in uplink transmissions to the base station. This may be done by feeding forward the entire weighting or combining beamforming vector. Codebooks at the subscriber and base stations may also be used to send an index to the subscriber station that identifies a weighting or combining beamforming vector in the codebook, as described herein. Alternatively, the base station can feed forward an index representing the weighting/combining beamforming vector by extracting an ordered set of possible combining beamforming vectors for a given subscriber station from the channel matrix Ĥi for that subscriber station, and then transmitting an index identifying which of the set of possible weighting/combining beamforming vectors from the channel matrix Ĥi should be used as a weighting/combining vector at the corresponding subscriber station.
In another form, a base station is provided which has antennas for transmitting signals to m subscriber stations over m channels represented by a corresponding m channel matrices (H1, . . . , Hm), respectively. The channel matrix information associated with each channel is collected at the base station, either directly as channel matrices or using codebooks to efficiently feed back channel estimate information by storing an indexed plurality of channel matrices, such that the base station receives over a feedback channel an index representative of an estimated channel matrix Hi for a channel between the base station and subscriber station i, where the index is used at the base station to access the estimated channel matrix Hi from a codebook for use in jointly design the beamformers w and v. The base station includes a module for jointly designing a pair of combining and weighting beamformers for each subscriber station in a set of unprocessed subscriber stations, where each subscriber station is ranked by left singular value of the channel matrix associated with subscriber station. The module may be implemented as a processor which is configured to select from the set of unprocessed subscriber stations a top-ranked subscriber station having an associated channel matrix Hi, and then jointly design a pair of combining and weighting beamformers (vi, wi) for the top-ranked subscriber station by computing left and right singular vectors, respectively, of the channel matrix Hi associated with the top-ranked subscriber station. After removing the top-ranked subscriber station from the set of unprocessed subscriber stations, transformed channel matrices are computed for all remaining subscriber stations in the set of unprocessed subscriber stations by projecting each channel matrix for the remaining subscriber stations onto a nullspace of the combining and weighting beamformers (vi, wi). In situations where the number of subscriber stations exceeds the minimum receive antenna count k at any of the subscriber stations, the module may be configured to rank and divide the m subscriber stations into a P set (containing the k highest ranked subscriber stations) and an S set (containing the remaining subscriber stations). Once the subscriber stations are divided, the combining beamformers vs for the S set are designed (e.g., by computing, for each subscriber station in the S set, a right singular vector corresponding to a maximum singular value of a channel matrix between the base station and the subscriber station) and the channel matrix information for the P set is transformed, at which point the weighting beamformers wp and combining beamformers vp for the P set are designed from the ranked channel matrices for the subscriber stations in the P set and the channel matrices for the S set are transformed before the weighting beamformers ws for the S set are designed (e.g., by using a linearly constrained minimum variance process). The foregoing process is repeated until beamformers for all m channel matrices are designed, at which point the weighting or combining beamformers are transmitted to the corresponding subscriber stations. The weighting or combining vectors may then be fed forward to each subscriber station, either directly as matrix information or by using information representative of the vector, such as a codebook index corresponding to the vector that is used to access the vector from a codebook at the subscriber station. When the base station and subscriber station have shared access to channel matrix information Ĥi, each designed combining beamformer (e.g., vi) may be fed forward to its corresponding subscriber station (e.g., subscriber station i) by extracting an ordered set of possible combining vectors vi from the channel matrix Ĥi for a given subscriber station i, and then generating at the base station an index to identify which of the ordered set is the designed combining beamformer, and then feeding forward the index to the subscriber station i, which uses the index to access the combining beamforming vi from the channel matrix Ĥi for use as a combining beamformer vi at subscriber station i. A similar process may be used to feed forward the weighting beamformer to the subscriber station for use in uplink transmissions to the base station.
In yet another form, a wireless communication method and system are provided which use beamforming in a collaborative, multiple input, multiple output (MIMO) space division multiple access (SDMA) system. As disclosed, the methodology and system rank m subscriber stations by left singular value of a channel matrix associated with each subscriber station. Once the m subscriber stations are ranked, weighting beamformers w and combining beamformers v are designed for each of the subscriber stations by sequentially selecting, in descending order of rank, each subscriber station and computing therefore left and right singular vectors, respectively, from a channel matrix associated with the selected subscriber station, where any channel matrices associated with any non-selected subscriber stations are transformed onto a nullspace of the designed weighting beamformers w and combining beamformers v.
The methods and systems for providing opportunistic multi-user beamforming in a collaborative SDMA-MIMO system as shown and described herein may be implemented in hardware or in software stored on a computer-readable medium and executed as a computer program on a general purpose or special purpose computer to perform certain tasks. For a hardware implementation, the elements used to perform various signal processing steps at the base station (e.g., assembling and ranking channel matrix information, computing beamformer pairs, and so on) and/or at the subscriber station(s) (e.g., recovering the transmitted signals, demodulating and decoding the recovered signals, extracting or accessing beamformer information, and so on) may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof. In addition or in the alternative, a software implementation may be used, whereby some or all of the signal processing steps at each of the base station and/or subscriber station(s) may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. It will be appreciated that the separation of functionality into modules is for illustrative purposes, and alternative embodiments may merge the functionality of multiple software modules into a single module or may impose an alternate decomposition of functionality of modules. In any software implementation, the software code may be executed by a processor or controller, with the code and any underlying or processed data being stored in any machine-readable or computer-readable storage medium, such as an on-board or external memory unit.
Although the described exemplary embodiments disclosed herein are directed to various collaborative MIMO-SDMA communication systems and methods for using same, the present invention is not necessarily limited to the example embodiments illustrate herein. For example, various embodiments of the collaborative MIMO-SDMA system and design methodology disclosed herein may be implemented in connection with various proprietary or wireless communication standards, such as IEEE 802.16e, 3GPP-LTE, DVB and other multi-user MIMO systems. Thus, the particular embodiments disclosed above are illustrative only and should not be taken as limitations upon the present invention, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Accordingly, the foregoing description is not intended to limit the invention to the particular form set forth, but on the contrary, is intended to cover such alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims so that those skilled in the art should understand that they can make various changes, substitutions and alterations without departing from the spirit and scope of the invention in its broadest form.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

## Claims

1. A method performed by an apparatus, the apparatus comprising at least one of the group comprising hardware and a processor executing software for designing beamforming vectors for a collaborative space division multiple access system, comprising:
(a) assembling at a base station m channel matrices for m subscriber stations;
(b) ranking the m channel matrices by left singular value to select a top-ranked channel matrix H from the m channel matrices;
(c) jointly designing weighting and combining beamforming vectors w and v for the top-ranked channel matrix H as left and right singular vectors, respectively, of the top-ranked channel matrix H;
(d) transforming any non-selected channel matrices into a nullspace of the beamforming vectors w and v;
(e) selecting a next highest ranked channel matrix as the top-ranked channel matrix; and
(f) repeating steps (c), (d) and (e) until beamforming vectors for all m channel matrices are designed.

2. The method of claim 1, where the weighting beamforming vector w is computed as a left singular vector corresponding to a maximal singular value of channel matrix H and the combining beamforming vector v is computed as a right singular vector corresponding to a maximal singular value of channel matrix H.

3. The method of claim 1, where the transforming step comprises computing transformed channel matrices for any non-selected channel matrices Hi such that Hi=TTTTHHITRTRH, where Tt=null({H v}) and Tr=null({HH W}).

4. The method of claim 1 further comprising transmitting each combining beamforming vector v or an index representative thereof to a corresponding subscriber station for use as a combining vector v.

5. The method of claim 1 where the step of jointly designing weighting and combining beamforming vectors comprises:
dividing the m channel matrices into a P set and an S set, if any subscriber station has a receive antenna array with k antennas, where k<m, where the P set contains k of the highest ranked subscriber stations and the S set contains all remaining subscriber stations;
designing combining vectors vs for the S set;
transforming channel matrix information for the P set;
designing weighting vectors wp and combining vectors vp for the P set;
transforming channel matrix information for the S set; and
designing weighting vectors ws for the S set.

6. The method of claim 5, where the step of designing combining vectors vs for the S set comprises computing, for each subscriber station in the S set, a right singular vector corresponding to a maximum singular value of a channel matrix between the base station and the subscriber station.

7. The method of claim 6, where the step of transforming channel matrix information for the P set comprises projecting the channels matrices of subscriber stations in the P set onto a null space corresponding to the combining vectors vs for subscriber stations in the S set.

8. The method of claim 7, where the step of designing weighting vectors wp and combining vectors vp for subscriber stations in the P set comprises:
ranking channel matrices for the subscriber stations in the P set by left singular value to identify a highest ranked channel matrix,
computing a weighting vector w as the left singular vector of the highest ranked channel matrix;
computing a combining vector v as the right singular vector of the highest ranked channel matrix;
removing the highest ranked channel matrix from the channel matrices for the subscriber stations in the P; and
transforming any remaining channel matrices for the subscriber stations in the P set before computing any additional weighting and combining vectors for subscriber stations in the P set.

9. The method of claim 8, where the step of designing weighting vectors ws for the S set comprises using a linearly constrained minimum variance process after transforming channel matrix information for the S set by projecting the channels of the subscriber stations in the S set onto a null space corresponding to the combining vectors vp for subscriber stations in the P set.

10. The method of claim 1, further comprising transmitting over a feed forward channel an index representative of a combining vector vi to a corresponding subscriber station i, where the index is used to retrieve the combining vector vi from a predefined codebook at the corresponding subscriber station i.

11. The method of claim 1, further comprising receiving over a feedback channel an index representative of an estimated channel matrix H for a channel between the base station and a first subscriber station, where the index is used at the base station to access the estimated channel matrix H from a codebook for use in jointly designing the weighting and combining beamforming vectors w and v.

12. A base station comprising:
a plurality of antennas for transmitting one or more signals to m subscriber stations over m channels represented by a corresponding m channel matrices (H1, . . . , Hm), respectively; and
a module for jointly designing combining and weighting beamformers for each subscriber station in a set of unprocessed subscriber stations, where each subscriber station is ranked by left singular value of the channel matrix associated with subscriber station, where the module is configured to:
select from the set of unprocessed subscriber stations a top-ranked subscriber station having an associated channel matrix Hi;
jointly design a pair of combining and weighting beamformers (vi, wi) for the top-ranked subscriber station by computing left and right singular vectors, respectively, of the channel matrix Hi associated with the top-ranked subscriber station;
remove the top-ranked subscriber station from the set of unprocessed subscriber stations; and
compute transformed channel matrices for all remaining subscriber stations in the set of unprocessed subscriber stations by projecting each channel matrix for the remaining subscriber stations onto a nullspace of the combining and weighting beamformers (vi, wi).

13. The base station of claim 12, where the module is further configured to feed forward to a subscriber station i a combining beamformer vi or information representative thereof by forwarding an index representing which of an ordered set of possible combining beamformers extracted from the channel matrix for the subscriber station i is the combining beamformer vi, where the combining beamformer vi is used as a combining or weighting beamformer.

14. The base station of claim 12, further comprising a first codebook for storing an indexed plurality of channel matrices, such that the base station receives over a feedback channel an index representative of an estimated channel matrix Hi for a channel between the base station and subscriber station i, where the index is used at the base station to access the estimated channel matrix Hi from the first codebook for use in jointly designing the combining and weighting beamformers w and v.

15. The base station of claim 12, where the module is further configured to receive an estimated channel matrix Hi from a subscriber station i for use in jointly designing the combining and weighting beamformers w and v.

16. The base station of claim 12, where each channel matrix for the remaining subscriber stations is projected onto a nullspace by computing transformed channel matrices for any non-selected channel matrices Hi such that Hi=TTTTHHITRTRH, where Tt=null({H v}) and Tr=null({HH w}).

17. The base station of claim 12, where the module is further configured to:
divide the m subscriber stations into a P set and an S set, if any subscriber station has a receive antenna array with k antennas, where k<m, where the P set contains k of the highest ranked subscriber stations and the S set contains all remaining subscriber stations;
design combining beamformers vs for the S set;
transform channel matrix information for the P set;
design weighting beamformers wp and combining beamformers vp for the P set;
transform channel matrix information for the S set; and
design weighting beamformers ws for the S set.

18. The base station of claim 17, where the module is configured to design combining beamformers vs for the S set by computing, for each subscriber station in the S set, a right singular vector corresponding to a maximum singular value of a channel matrix between the base station and the subscriber station.

19. The base station of claim 18, where the module is configured to transform channel matrix information for the P set by projecting the channels of the subscriber stations in the P set onto the null space corresponding to the combining beamformers vs for subscriber stations in the S set.

20. The base station of claim 19, where the module is configured to design weighting beamformers wp and combining beamformers vp for subscriber stations in the P set by repeating, until all weighting beamformers wp and combining beamformers vp for subscriber stations in the P set have been computed, the following steps:
ranking channel matrices for the subscriber stations in the P set by left singular value to identify a highest ranked channel matrix,
computing a weighting beamformer w as the left singular vector of the highest ranked channel matrix;
computing a combining beamformer v as the right singular vector of the highest ranked channel matrix;
removing the highest ranked channel matrix from the channel matrices for the subscriber stations in the P; and
transforming any remaining channel matrices for the subscriber stations in the P set.

21. The base station of claim 20, where the module is configured to design weighting beamformers ws for the S set by using a linearly constrained minimum variance process after transforming channel matrix information for the S set by projecting the channels of the subscriber stations in the S set onto the null space corresponding to the combining beamformers vp for subscriber stations in the P set.

22. The base station of claim 12 used in a collaborative, multiple input, multiple output (MIMO) space division multiple access (SDMA) system comprising one or more subscriber stations, each of which feeds back an estimated channel matrix information Hi or information representative thereof to the base station for use in jointly designing combining and weighting beamformers.

23. The base station of claim 22, where the base station feeds forward to each subscriber station a corresponding combining or weighting beamformer or an index representative thereof, where the corresponding combining or weighting beamformer has been designed for said subscriber station.

24. A wireless communication method using beamforming for a collaborative, multiple input, multiple output (MIMO) space division multiple access (SDMA) system, the method comprising:
ranking m subscriber stations by left singular value of a channel matrix associated with each subscriber station; and
designing weighting beamformers w and combining beamformers v for each of the ranked m subscriber stations by sequentially selecting, in descending order of rank, each subscriber station and computing therefore left and right singular vectors, respectively, from a channel matrix associated with the selected subscriber station, where any channel matrices associated with any non-selected subscriber stations are transformed onto a nullspace of the designed weighting beamformers w and combining beamformers v.