# Patent

## Title
Sub-band feedback for beamforming on downlink multiple user MIMO configurations

## Abstract

A method in a communication network includes an access point, using a multiple input multiple output antenna configuration, sending out a sounding packet to a plurality of client stations. The client stations determine a channel estimation of the sounding packet, but only a channel estimation of a portion of the entire sounding packet to avoid processing the entire packet. The resulting partial estimation is sent to the access point for using in transmit beamforming. In other examples, the client station sends a reverse link sounding packet over a portion a channel having a bandwidth less than the sounding packet, and from this the access point determines partial channel estimations and transmit beamforming conditions.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
The present disclosure claims the benefit of the U.S. Provisional Patent Application No. 61/372,378, filed on Aug. 10, 2010, the entire disclosure of which is incorporated herein by reference.


FIELD OF THE DISCLOSURE
The present disclosure relates generally to communication networks and, more particularly, to beamforming on wireless networks capable of communicating with multiple users simultaneously.
BACKGROUND
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Wireless local area network (WLAN) technology has evolved rapidly over the past decade. Development of WLAN standards such as the Institute for Electrical and Electronics Engineers (IEEE) 802.11a, 802.11b, 802.11g, and 802.11n Standards has improved single-user peak data throughput. For example, the IEEE 802.11b Standard specifies a single-user peak throughput of 11 megabits per second (Mbps), the IEEE 802.11a and 802.11g Standards specify a single-user peak throughput of 54 Mbps, and the IEEE 802.11n Standard specifies a single-user peak throughput of 600 Mbps. Work has begun on a new standard, IEEE 802.11ac that will be operated in the 5 GHz bands overlapping with legacy IEEE 802.11a/n systems and with promises of throughputs exceeding 6.9 Gbps. Unlike the other standards, the IEEE 802.11ac Standard will allow simultaneous communication from an access point to multiple different client stations.
WLANs typically operate in either a unicast mode or a multicast mode. In the unicast mode, an access point (AP) transmits information to one user station at a time. In the multicast mode, the same information is transmitted to a group of client stations concurrently. With IEEE 802.ac Standard, the multicast mode is able to transmit to multiple client stations at a time.
Antennas and, accordingly, associated effective wireless channels are highly directional at frequencies near or above 60 GHz. When multiple antennas are available at a transmitter, a receiver, or both, it is therefore important to apply efficient beam patterns using the antennas to better exploit spatial selectivity of the corresponding wireless channel. Generally speaking, beamforming is a signal processing technique for using multiple transmit antennas to produce an output that combines constructively at one or more receive antennas, e.g. by producing an antenna gain pattern having one or more high gain lobes or beams (as compared to the gain obtained by an omni-directional antenna) at the receive antennas, with reduced gain in other directions. If the gain pattern for multiple transmit antennas, for example, is configured to produce a high gain lobe in the direction of a receiver, better transmission reliability can be obtained over that obtained with an omni-directional transmission.
Beamforming requires knowledge of the downstream channel between the access point and each client device. Generally, for protocols like IEEE 802.11a/b/g/n, this means that the access point will receive feedback signals indicative of the downstream channel. However, with IEEE 802.11ac, and protocols that allow for simultaneous communications with multiple client stations, the size (bandwidth) of the downstream channel can be large enough that feedback signals indicative of the entire downstream channel are difficult to produce. A high demand is placed on hardware of the responding client devices called upon to provide feedback on the entire downstream channel.
SUMMARY
In an embodiment, a method in a communication network, the method includes (i) sending, from an access point, a sounding packet to a client device over a wireless downlink communication channel, the sounding packet having a packet bandwidth and comprising a plurality of subchannels: (ii) receiving, at the client device, the sounding packet and identifying a subchannel block of the sounding packet, wherein the subchannel block has a subchannel block bandwidth that is smaller than the packet bandwidth; (iii) performing a channel estimation on the subchannel block to determine a partial channel estimation of the downlink communication channel; and (iv) communicating the partial channel estimation of the downlink communication channel to the access point.
In another embodiment, an apparatus include a channel estimation unit configured to, receive a sounding packet from a access point, the sounding packet having a packet bandwidth and comprising a plurality of subchannels, identify a subchannel block within the sounding packet, where the subchannel block has a subchannel block bandwidth that is smaller than the packet bandwidth, perform channel estimation on the subchannel block to determine a partial channel estimation of a downlink communication channel, and communicate the partial channel estimation of the downlink communication channel to the access point.
In another embodiment, an access point apparatus including a plurality of antennas for simultaneous communication on a plurality of downlink channels; a steering vector controller configured to receive, from a client device, a partial channel estimation of the one of the downlink channels between the access point and the client device, and wherein the steering vector controller is configured to identify a steering matrix for use in communicating on the downlink channel between the access point and the client device; and spatial steering unit configured to apply the identified steering matrix to information carrying packet data prior to the access point further communicating with the client device over the one of the downlink channels.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 a block diagram of an example wireless local area network (WLAN) in which an access point (AP) utilizes downlink (DL) Spatial-Division Multiple Access (SDMA) steering techniques in accordance with an embodiment of the present disclosure;
FIG. 2 is a block diagram of a DL SDMA controller at an access point and working in conjunction with a channel estimation unit at a client station, according to an embodiment;
FIG. 3 is a block diagram of a DL SDMA controller that is used in an AP that implements steering techniques of the present disclosure, according to an embodiment;
FIG. 4 is a timing diagram of a channel description feedback multiple client station example;
FIG. 5 is a timing diagram of a channel description feedback single client station example:
FIG. 6 is a diagram of data portions from three different IEEE 802.11ac signals, having packet bandwidths 20 MHz, 40 MHz, and 80 MHz, respectively;
FIG. 7 is a diagram of data portions from two different IEEE 802.11ac signals, having packet bandwidths of 160 MHz but in a contiguous and non-contiguous formation;
FIG. 8 illustrates an example method for performing a partial channel estimation and feedback in either an explicit beamforming or implicit beamforming configuration, according to an embodiment;
FIG. 9 illustrates an example method for performing a partial channel estimation and feedback in either an explicit beamforming or implicit beamforming configuration, according to another embodiment; and
FIG. 10 is a diagram of data portions of an IEEE 802.11ac signal having an 80 MHz packet bandwidth and showing all combinations of subchannel blocks as may be identified by the method of FIG. 9.



DETAILED DESCRIPTION
In embodiments described below, a wireless network device such as an access point (AP) of a wireless local area network (WLAN) transmits independent data streams to multiple client stations simultaneously via an antenna array. To reduce interference at a receiving station due to transmissions from the AP to one or more other stations, the AP supports transmit beamforming, in which the AP develops respective transmit (Tx) beamsteering (hereinafter, “steering”) vectors for downlink transmissions to each station. In an embodiment, the AP develops a Tx steering vector for a certain client station using only a description of the wireless communication channel between the AP and the station. In some other embodiments, the AP develops the Tx steering vector for a client station by also considering a description of at least one other wireless communication channel between the AP and another station.
To perform this transmit beamforming, the AP relies upon knowledge of the downlink channel between the AP and each client station. This downlink channel knowledge is obtained either through explicit beamforming, where the client device receives a sounding packet from the AP, develops steering vectors for the downlink channel, and transmits those steering vectors hack to the AP, or through implicit beamforming, in which the client device sounds the reverse link of the downlink channel and the AP determines the steering vectors based on that sounding. In either case, the AP uses such downlink information as “channel descriptions” from which the AP will apply steering vectors for transmit beamforming.
Explicit beamforming typically uses one of three types of feedback channel descriptions. With channel state information (CSI) feedback, the client station estimates the downlink channel from a sounding packet from the AP and feeds back the estimated channel gains. With uncompressed steering matrix feedback, the client station, based on the channel estimate from a sounding packet from the AP, determines the steering matrix that is to be used at the AP. The client station then feeds back this steering matrix, without compression. With compressed steering matrix feedback, a similar process occurs, but the steering matrix is fed back in a compressed form.
For the IEEE 802.11ac Standard, the AP is to support multiple user MIMO configurations, as discussed further in regards to FIGS. 1 and 2, in which the AP is able to use the downlink transmission to simultaneously transmit distinct signals to multiple intended client stations. For such MU-MIMO operation, all downlink channels may have the same bandwidth. Further, each client station may have knowledge of the number of streams (within each downlink channel) being transmitted to the other client stations, as well as the modulation and coding scheme (MCS) values used at the AP for those other client stations. In this way, there need not be any coordination or collaboration between the client stations; instead, the transmit beamforming of the AP is used to simultaneously communicate with the different client stations and to do so in a way that attempts to minimize interference between the signals received at each client station.
FIG. 1 is a block diagram of an example wireless local area network (WLAN) 10, according to an embodiment. An AP 14 includes a host processor 15 coupled to a network interface 16. The network interface 16 includes a medium access control (MAC) unit 18 and a physical layer (PHY) unit 20. The PHY unit 20 includes NT transceivers 21, and the transceivers are coupled to NT antennas 24. Although three transceivers 21 and three antennas 24 are illustrated in FIG. 1 (i.e., NT=3), the AP 14 can include different numbers (e.g. NT=2, 4, 5, 6, 7, 8, etc.) of transceivers 21 and antennas 24 in other embodiments. The PHY unit 20 also includes a downlink (DL) Spatial-Division Multiple Access (SDMA) controller 19 that implements one or several of the techniques for developing steering vectors described herein.
The WLAN 10 includes K client stations 25, each station 25-i equipped with Ni antennas. Although three client stations 25 are illustrated in FIG. 1 (i.e., K=3), the WLAN 10 can include different numbers (e.g., K=2, 4, 5, 6, etc.) of client stations 25 in various scenarios and embodiments. Two or more of the client stations 25 are configured to receive corresponding data streams having been simultaneously transmitted from the AP 14.
A client station 25-1 includes a host processor 26 coupled to a network interface 27. The network interface 27 includes a MAC unit 28 and a PHY unit 29. The PHY unit 29 includes N1 transceivers 30, and the N1 transceivers 30 are coupled to N1 antennas 34. Although three transceivers 30 and three antennas 34 are illustrated in FIG. 1 (i.e., N1=3), the client station 25-1 can include different numbers of transceivers 30 and antennas 34 (e.g., N1=1, 2, 4, 5, etc.) in other embodiments. The PHY unit 27 may include, in some embodiments, a channel estimation controller 40 that implements portions of the techniques for developing steering vectors described herein. The client stations 25-2 and 25-3 have a structure that is the same as or generally similar to the client station 25-1. In an embodiment, each of the client stations 25-2 and 25-3 is structured like the client station 25-1 but has only two transceivers and two antennas (i.e., N2=N3=2). In other embodiments, the client stations 25-2, and 25-3 can include different numbers of antennas (e.g., 1, 3, 4, 5, 6, 7, 8, etc.). Although, only an example implementation, in the IEEE 802.11ac Standard, it is believed that the AP will have up to 8 antennas and support simultaneously communication with up to 4 stations.
In the illustrated embodiment, the AP 14 is configured to transmit multiple spatial streams simultaneously to the client stations 25-1, 25-2, and 25-3, so that each of client stations 25-i receives data via Li spatial streams. For example, the client station 25-1 receives data via three (i.e., L1=3) spatial streams. Although in this example L1=N1, a client station 25-i in general can utilize fewer spatial streams than the number of antennas with which the client station 25-i is equipped. Further, when space-time coding is employed, the multiple spatial streams are sometimes referred to as space-time streams. If the number of space-time streams is less than the number of transmit chains, spatial mapping is employed, in some embodiments.
In an embodiment, the AP 14 communicates with the client station 25-1 over a multiple input, multiple output (MIMO) channel defined, at the one end, by the array including the antennas 24-1, 24-2, and 24-3 and, at the other end, by the array including the antennas 34-1, 34-2, and 34-3. For this example, the MIMO channel can be described by a three-by-three channel matrix H1 that specifies, in each element, a channel gain parameter for a stream defined by the corresponding transmit antenna and a receive antenna and a channel phase between the corresponding pairs of antennas. Similarly, the AP communicates with the clients 25-2 and 25-3 via MIMO channels described by matrices H2 and H3, respectively. In at least some embodiments, the dimensionality of a matrix Hi describing a MIMO channel between the AP 14 and a client station 25-i is Ni×NT.
For protocols like IEEE 802.11n, which support transmit beamforming in an optional mode, or protocols like IEEE 802.11ac, which support transmit beamforming to multiple users simultaneously, the AP 14 will steer the downlink channel, described by the channel descriptor, Hi, to an intended receiver station using the one or more spatial streams (Li), where such steering improves the signal-to-noise ratio at the intended station.
With respect to FIG. 1, to develop the steering matrices for each station, the system can be modeled as though the AP 14 is transmitting a symbol to a client station 254 as a transmit symbol vector xi of dimensionality Li×1, and the client station 254 receives a signal that can be represented as a vector yi of dimensionality Ni×1.
Therefore, in an embodiment, communication is modeled as though the AP 14 would apply a respective steering vector Wi of dimensionality NT×Li to a transmit symbol vector xi for transmitting the signal via the corresponding channel Hi. Thus, when the AP 14 simultaneously transmits data to stations 25-1, 25-2, . . . 25-K, the signal received at the client station 25-i can be expressed as




  
    
      
        
          y
          i
        
        =
        
          
            
              
                H
                i
              
              ⁢
              
                W
                i
              
              ⁢
              
                x
                i
              
            
            
              }
              intended
            
          
          +
          
            
              
                H
                i
              
              ⁢
              
                
                  ∑
                  
                    k
                    ≠
                    i
                  
                
                ⁢
                
                  
                    W
                    k
                  
                  ⁢
                  
                    x
                    k
                  
                
              
            
            
              }
              interference
            
          
          +
          
            
              n
              i
            
            
              }
              noise
            
          
        
      
    
    
      
        (
        
          Eq
          .
          
            
          
          ⁢
          1
        
        )
      
    
  




As illustrated by Eq. 1, the received signal would include an intended component, an interference component due to signals intended for other client stations, and a noise component (expressed as a vector ni of dimensionality Ni×1). Eq. 1 also can be written as




  
    
      
        
          
            
              
                
                  y
                  i
                
                =
                
                ⁢
                
                  
                    
                      
                        H
                        i
                      
                      ⁢
                      
                        W
                        i
                      
                      ⁢
                      
                        x
                        i
                      
                    
                    +
                    
                      
                        H
                        i
                      
                      ⁢
                      
                        
                          ∑
                          
                            k
                            ≠
                            i
                          
                        
                        ⁢
                        
                          
                            W
                            k
                          
                          ⁢
                          
                            x
                            k
                          
                        
                      
                    
                    +
                    
                      n
                      i
                    
                  
                  =
                  
                  ⁢
                  
                    
                      
                        
                          
                            H
                            i
                          
                          ⁡
                          
                            [
                            
                              
                                
                                  
                                    W
                                    1
                                  
                                
                                
                                  
                                    W
                                    2
                                  
                                
                                
                                  ...
                                
                                
                                  
                                    W
                                    K
                                  
                                
                              
                            
                            ]
                          
                        
                        ⁡
                        
                          [
                          
                            
                              
                                
                                  x
                                  1
                                
                              
                            
                            
                              
                                
                                  x
                                  2
                                
                              
                            
                            
                              
                                ⋮
                              
                            
                            
                              
                                
                                  x
                                  K
                                
                              
                            
                          
                          ]
                        
                      
                      +
                      
                        n
                        i
                      
                    
                    =
                  
                
              
            
          
          
            
              
                
                  =
                  
                  ⁢
                  
                    
                      
                        H
                        i
                      
                      ⁢
                      Wx
                    
                    +
                    
                      n
                      i
                    
                  
                
                ,
                
                  i
                  =
                  
                    1
                    ⁢
                    
                      
                    
                    ⁢
                    ...
                    ⁢
                    
                      
                    
                    ⁢
                    K
                  
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        where
        ⁢
        
          

        
        ⁢
        
          
            W
            =
            
              [
              
                
                  
                    
                      W
                      1
                    
                  
                  
                    
                      W
                      2
                    
                  
                  
                    ...
                  
                  
                    
                      W
                      K
                    
                  
                
              
              ]
            
          
          ,
          
            x
            =
            
              [
              
                
                  
                    
                      x
                      1
                    
                  
                
                
                  
                    
                      x
                      2
                    
                  
                
                
                  
                    ⋮
                  
                
                
                  
                    
                      x
                      k
                    
                  
                
              
              ]
            
          
        
      
    
    
      
        (
        
          Eq
          .
          
            
          
          ⁢
          2
        
        )
      
    
  




Further, the signals y1, y2, . . . yK can be “stacked” together to define an aggregate receive vector y:




  
    
      
        
          y
          =
          
          ⁢
          
            
              [
              
                
                  
                    
                      y
                      1
                    
                  
                
                
                  
                    
                      y
                      2
                    
                  
                
                
                  
                    ⋮
                  
                
                
                  
                    
                      y
                      k
                    
                  
                
              
              ]
            
            =
            
            ⁢
            
              
                
                  
                    H
                    T
                  
                  ⁢
                  
                    W
                    ⁡
                    
                      [
                      
                        
                          
                            
                              x
                              1
                            
                          
                        
                        
                          
                            
                              x
                              2
                            
                          
                        
                        
                          
                            ⋮
                          
                        
                        
                          
                            
                              x
                              K
                            
                          
                        
                      
                      ]
                    
                  
                
                +
                
                  [
                  
                    
                      
                        
                          n
                          1
                        
                      
                    
                    
                      
                        
                          n
                          2
                        
                      
                    
                    
                      
                        ⋮
                      
                    
                    
                      
                        
                          n
                          K
                        
                      
                    
                  
                  ]
                
              
              =
              
              ⁢
              
                
                  
                    H
                    W
                  
                  ⁢
                  x
                
                +
                n
              
            
          
        
        ⁢
        
          

        
        ⁢
        where
        ⁢
        
          

        
        ⁢
        
          
            
              H
              T
            
            =
            
              [
              
                
                  
                    
                      H
                      1
                    
                  
                
                
                  
                    
                      H
                      2
                    
                  
                
                
                  
                    ⋮
                  
                
                
                  
                    
                      H
                      K
                    
                  
                
              
              ]
            
          
          ,
          
            
              H
              W
            
            =
            
              [
              
                
                  
                    
                      
                        H
                        1
                      
                      ⁢
                      
                        W
                        1
                      
                    
                  
                  
                    
                      
                        H
                        1
                      
                      ⁢
                      
                        W
                        2
                      
                    
                  
                  
                    ...
                  
                  
                    
                      
                        H
                        1
                      
                      ⁢
                      
                        W
                        K
                      
                    
                  
                
                
                  
                    
                      
                        H
                        2
                      
                      ⁢
                      
                        W
                        1
                      
                    
                  
                  
                    
                      
                        H
                        2
                      
                      ⁢
                      
                        W
                        2
                      
                    
                  
                  
                    ...
                  
                  
                    
                      
                        H
                        2
                      
                      ⁢
                      
                        W
                        K
                      
                    
                  
                
                
                  
                    ⋮
                  
                  
                    ⋮
                  
                  
                    ⋮
                  
                  
                    ⋮
                  
                
                
                  
                    
                      
                        H
                        K
                      
                      ⁢
                      
                        W
                        1
                      
                    
                  
                  
                    
                      
                        H
                        K
                      
                      ⁢
                      
                        W
                        2
                      
                    
                  
                  
                    ...
                  
                  
                    
                      
                        H
                        K
                      
                      ⁢
                      
                        W
                        K
                      
                    
                  
                
              
              ]
            
          
          ,
          
            
              and
              ⁢
              
                
              
              ⁢
              n
            
            =
            
              
                [
                
                  
                    
                      
                        n
                        1
                      
                    
                  
                  
                    
                      
                        n
                        2
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        n
                        K
                      
                    
                  
                
                ]
              
              .
            
          
        
      
    
    
      
        (
        
          Eq
          .
          
            
          
          ⁢
          3
        
        )
      
    
  




In an implicit beamforming example, the DL SDMA controller 19 may develop the aggregate steering matrix W (that includes the individual vectors W1, W2, . . . WK) so as to achieve a configuration optimal for the overall group of K client stations 25, i.e., with a reduction in the interference between the AP and each station, based on simultaneous communications with the other stations. For example, the DL SDMA controller 19 may use channel information (“channel descriptions”) to reduce interference for some or all of the users by optimizing any suitable metric.
In an explicit beamforming example, these techniques may be partially or wholly implemented at one or more of the client stations 25-i, i.e., in the channel estimation controller 40. For example, the channel estimation controller 40 at the client stations may determine the steering matrix W for the downlink channel between the access point and the respective client station.
Example implementations are discussed below.
Referring to FIG. 2, an SDMA controller 50 illustrates operation of the DL SDMA controller 19 in an explicit beamforming configuration, where the channel information is determined at a client station. Generally, a steering vector controller 60 receives channel descriptions from a channel estimation unit 62 and provides resulting steering vectors Wi, W2, . . . WK to a spatial steering unit 64, which applies a respective steering vector Wi to each transmit symbol vector xi. In the explicit beamforming example of FIG. 2, the channel estimation unit 62 is at the client station, e.g., at the channel estimation controller 40 of the client station 25-1.
In operation, to perform transmit beamforming to each of the client stations 25-i, a digital filtering and RF module 66 receives a sounding packet signal from the spatial steering unit 64. That sounding packet is transmitted either to multiple client stations or to a single client station. In response, and as discussed further below, the channel estimation unit 62 develops a partial channel estimation, i.e., a channel description, for the physical downlink channel between the AP 14 and the respective client station 25-i. In some embodiments, the channel description includes channel gain parameters (which may be complex numbers) for various streams defined by transmit and receive antennas. In some such examples, the channel description is represented in a matrix format, either uncompressed or compressed. While in some embodiments, the channel estimation unit 62 performs measurement of one or several parameters associated with the physical channel to develop CSI or another metric that is sent back to the AP 14 and then used by the steering vector controller 60 to determine steering vectors Wi, W2, . . . WK. In general, the channel estimation unit 62 can implement any suitable technique for developing channel descriptions. For example, when calculating steering vectors/matrix for a multiple-user (MU) communication, a zero-forcing (ZF) technique, a minimum mean square error (MMSE) technique, a leakage suppression (LS) technique, or a block nullification (BN) technique may be used. In embodiments where the AP 14 is only communicating with a single client station, a single-user beamforming (SU-BF) technique may be used.
FIG. 3 illustrates a similar configuration (labeled 50′) to that of FIG. 2—and therefore like reference numerals are used—except used for implicit beamforming, in which the channel estimation unit 62′ is implemented at the AP 14. In an embodiment, in response to receipt of a downlink signal, each station 25-i sends an reverse channel sounding packet to the AP 14, which sounding packets are received at the channel estimation unit 62′. For example, immediately upon receipt of the sounding packet, the client station 25-i will determine the bandwidth of the sounding packet and send a reverse channel sounding packet having a smaller bandwidth, and corresponding to subchannels of the initial sounding packet. The channel estimation unit 62′ receives that reverse channel sounding packet and performs partial channel estimation of the downlink channel. The channel estimation unit 62′ communicates that estimation with the steering vector controller 60 directly; and the controller 60 determines the steering vectors for each client station and communicates those to the spatial steering unit 64. Thus, in an example implicit beamforming embodiment, the channel estimation unit 62′ at the AP 14 estimates the downlink channel based on the received uplink sounding packets from the stations 25-i, and without a feedback signal.
In either explicit beamforming or implicit beamforming, for the present embodiments, the channel description or reverse-link sounding packet, respectively, spans only over a portion of the entire downlink channel.
FIG. 4 illustrates an example timing diagram of a channel description feedback for transmit beamforming a downlink channel to multiple users. The AP 14 transmits, to all client stations, a null data pack (NDP) sounding packet 100 containing a header frame having an NDP announcement frame 102 and a very high throughput (VHT) null data packet control frame (VHT-NDP) 104, spaced apart by a short interframe space (SIFS).
In response to receiving the NDP sounding packet 100, the client station 25-i, in particular channel estimation unit 62, in an explicit beamforming example, examines a portion of the received NDP sounding packet 100 and determines a channel description for that examined portion. Specifically, in some embodiments, the channel estimation unit 62 determines a CSI feedback over the examined portion of the NDP sounding packet 100, while in other examples, the unit 62 determines an uncompressed or compressed steering matrix feedback over the portion.
The client station 25-i then transmits, after a SIFS period, the partial channel estimation feedback frame 106 to the AP 14. The AP 14 receives the partial channel estimation feedback frame 106 and determines an immediate response (IR) request frame 108 which is sent to indicate to the next client station to provide its partial channel estimation feedback frame 110, which is then sent to the original client device 25-i, after a SIFS period. The process repeats with the next IR request frame 112, until all client devices have responded.
FIG. 5 illustrates an example timing diagram of a channel description feedback for transmit beamforming a downlink channel to a single user (SU-BF). The AP 14 transmits a null data pack (NDP) sounding packet 200 containing an NDP announcement frame 202 and a VHT-NDP frame 204, spaced by a SIFS period. In response, the client station examines a portion of the NDP sounding packet to determine the partial channel estimation (CSI feedback, compressed steering matrix, or uncompressed steering matrix), which the client station sends back as the partial channel estimation frame 206.
Packet bandwidths in an IEEE 802.11ac frame, which can vary depending on the AP and the client station, and are formed at 20, 40, 80, or 160 MHz, where the 160 MHz bandwidth packet can be contiguous or non-contiguous.
FIG. 6 illustrates examples of data packets, e.g., the VHT-NDP frames 104 and 204, of a 20 MHz, 40 MHz, and 80 MHz size. A 20 MHz data packet 300 is formed of a 20 MHz wide control channel, or primary channel. Each of the 40 MHz data packet 302 and the 80 MHz data packet 304 also include a 20 MHz control channel 306 and 308, respectively. The data packet 302 further includes a 20 MHz subband extension channel 310; and the data packet 304 further includes three 20 MHz subband extension channels 312, 314, and 316. While the control channels 302, 306, and 308 are illustrated as located at the same least significant bit (LSB) locations for each of the data packets 300, 302, and 304, in other examples, the data packets may be in other locations. In any of the different bandwidths, a 20 MHz control channel subband will be present.
FIG. 7 illustrates a 160 MHz contiguous data packet 400 containing a 20 MHz control channel 402 and contiguous extension channels 404-416. FIG. 7 also illustrates a similar, but non-contiguous 160 MHz data packet 450, having a first 80 MHz packet 452, containing the control channel 454, and a second 80 MHz packet 456 spaced from the first packer 452.
The higher bandwidth of these IEEE 802.11ac data packets and the desire to provide an immediate channel estimation feedback, i.e., within the SIFS period, along with the larger number of transmit antennas used for MU-MIMO communications, means that full channel estimation is difficult. Therefore, as discussed above, the client station feedbacks on only a portion of the received NDP sounding packet, more specifically over a subchannel block of the full data packet bandwidth. This partial channel estimation occurs whether the feedback is a CSI estimation or a compressed or uncompressed steering matrix. The partial channel estimation may be based on the control channel, in some examples, or based on any sub-channel in other examples.
FIG. 8 illustrates an example method 500 for performing a sub-channel channel estimation and feedback on a control channel of an IEEE 802.11ac data packet. At a block 502, the AP 14 transmits a NDP sounding packet to each of the client stations 25-i on the network. At a block 504, a client station receives the NDP sounding packet and identifies a subchannel block which contains the control channel. Each client station, at a block 506, determines a channel estimation of that subchannel block, by determining a CSI or a compressed or uncompressed steering matrix of that portion. The client station then sends a partial channel estimation feedback signal to the AP 14 at a block 508.
To implement the block 504, and in reference to FIGS. 6 and 7, for the 20 MHz data packet 300, the block 504 identifies the full channel for channel estimation. For the 40 MHz data packet 302, the block 504 identifies the 20 MHz control channel 306, so that the client station does not provide channel estimation based on the extension channel 310. For the 80 MHz data packet 304, in some examples, the block 504 identifies a LSB 40 MHz subchannel block 350, which contains the control channel 306 and provides this portion to the block 506 for channel estimation. For the contiguous 160 MHz data packet 400, in some examples, the block 504 identifies a 40 MHz subchannel block 420 for channel estimation. In other examples, the block 504 identifies a larger 80 MHz subchannel block 422 for channel estimation. The block 504 may perform the same function for the non-contiguous 160 MHz data packet 450, identifying a 40 MHz subchannel block 452 or an 80 MHz subchannel block 456. While example subchannels are described, the process 500 is not limited to performing channel estimation on these subchannels. Rather any subchannel block of the full data packet may be identified and estimated, where in the illustrated example, that portion also includes the control channel.
The channel estimation feedback, from block 508 includes a control frame identifying the width of subchannel block used for determining the partial channel estimation. In some examples, the feedback includes a MIMO Control Field that indicates the total bandwidth of the partial channel estimation, 20, 40, or 80 MHz. From this Control Field, the AP 14 can determine which portion of any data packet to the client station is to receive the steering matrix, because the bandwidth is determined starting with the location of the control channel. For example, a MIMO Ctrl Field would have an extended Bandwidth Subfield that is 2 bits long, indicating one of 20, 40, 80, or 160 MHz as the bandwidth of the channel estimation. In the example of 160 MHz, the channel estimation has been performed on the entire NDP sounding packet.
At a block 510 of the process 500, the AP 14 receives the partial channel estimation and, at a block 512, determines the steering matrices for the transmitting client station. For example, for an explicit beamforming partial channel estimation, the steering vector controller 60 stores an uncompressed steering matrix from the client station or uncompresses (expands) and then stores the uncompressed steering matrix. If a CSI feedback is transmitted as the partial channel estimation, then the steering vector controller 60 determines the steering matrix based on the CSI feedback. In an implicit beamforming, the block 512 receives the partial reverse link sounding packet to the channel estimation unit 62′ at the AP 14; and the channel estimation unit 62′ determines the channel estimation which is provided to the steering vector controller 60′ which then determines the steering matrix for the transmitting client station.
At a block 514, steering vector controller 60 sets the steering matrix policy for the AP 14. When the AP 14 is to transmit to a particular client station over a partial data packet corresponding to the subchannel block identified by block 504, steering vector controller 60 applies the steering matrix identified in the partial channel estimation or derived from the partial channel description. For the illustrated example, the partial steering matrix is therefore applied when the AP 14 is transmit a partial data packet containing a control channel and extensions that correspond to the original subchannel block.
If the AP 14 is to send a data packet having a bandwidth larger than the original subchannel block, including the full bandwidth of the data packet, then at the block 514, the spatial steering unit 64 will apply the steering matrix determined from the partial channel estimation to only a portion of the data packet, in particular the LSB portion of the data packet corresponding to the original subchannel block. For example, for the contiguous 160 MHz data packet 400, with the original subchannel block 420, if the AP 14 is transmitting to a client station on only the first 40 MHz of the data packet, then the spatial steering unit 64 is to apply the steering matrix from the partial channel estimation to the entire data packet (because the first 40 MHz also correspond to the subchannel block 420). If, however, the data packet is larger than 40 MHz, for example 80 MHz (corresponding to block 422) or 160 MHz (corresponding to the entire data packet 400), then the spatial steering unit 64 applies the steering matrix from block 512 to only the LSB 40 MHz portion 422 and the remaining extension sub-channels are broadcast without application of steering matrices or application of a default steering matrixes stored on the AP 14. For another example, if the data packet's bandwidth is larger than the bandwidth of the steering matrices, the AP may choose not to apply the steering matrices across all the packet bandwidth. When there is only one client being involved, then the process in FIG. 8 represents the sub-band beamforming for the case of SU-TxBF.
FIG. 9 illustrates another example method 600 for performing a sub-channel channel estimation and feedback on a control channel of an IEEE 802.11ac data packet. At a block 602, the AP 14 transmits a NDP sounding packet to each of the client stations 25-i on the network. At a block 604, a client station receives the NDP sounding packet and identifies any subchannel block thereof. That is, unlike the process 500, the process 600 can perform partial channel estimation on any portion of data packet. FIG. 10, for example, illustrates an 80 MHz data packet 700. The block 604 may identify any of three different 40 MHz subchannel blocks 702, 704, and 706. In some examples, the block 604 is configured to only identify the LSB subchannel block 702 or the upper significant bit (USB) subchannel block 704, and not the intermediate subchannel block 706.
The client station, at a block 606, then determines a channel estimation of that subchannel block, by determining a CSI or a compressed or uncompressed steering matrix of that portion. The client station then sends a channel estimation feedback signal to the AP 14 at a block 608.
For the process 600, the channel estimation feedback signal is to include a control frame that indicates which of all possible combinations of subchannels was used for the partial channel estimation. In some examples, the control frame is an MIMO Control Field of the channel estimation feedback that has a bit length long enough to identify each combination of subchannels, i.e., greater than 2 bits in length. In some examples, an 8 bit control field is used, representing each of the up to eight 20 MHz subchannels.
At a block 610, the AP 14 receives the partial channel estimation and, at a block 612, determines the steering matrices for the transmitting client station, both in a similar manner to that of FIG. 5. The steering matrix policy setting of block 614, however, is different from that of block 514. For the block 614, the steering vector controller 60 sets a steering matrix policy whereby whenever the transmitted signal on the downstream channel either fully or partially corresponds to the original subchannel block of the NDP sounding packet, the AP 14 will apply the steering matrix determined from the partial channel estimation. That is, even if the data packet to be transmitted is larger than the original subchannel block, if that data packet includes, at least partially, the original subchannel block, the steering matrix is applied. The block 614 will apply the steering matrix if the data packet exactly matches the subchannel block. Further, if the entire data packet is to be used, the block 614 determines that the spatial steering unit 64 is to apply the steering matrix over that portion of the data packet corresponding to the original subchannel block. For another example, if the data packet's bandwidth is larger than the bandwidth of the steering matrices, the AP may choose not to apply the steering matrices across all the packet bandwidth. When there is only one client being involved, then the process in FIG. 9 also represents the sub-band beamforming for the case of SU-TxBF.
At least some of the various blocks, operations, and techniques described above may be implemented utilizing hardware, a processor executing firmware instructions, a processor executing software instructions, or any combination thereof. When implemented utilizing a processor executing software or firmware instructions, the software or firmware instructions may be stored in any computer readable memory such as on a magnetic disk, an optical disk, or other storage medium, in a RAM or ROM or flash memory, processor, hard disk drive, optical disk drive, tape drive, etc. Likewise, the software or firmware instructions may be delivered to a user or a system via any known or desired delivery method including, for example, on a computer readable disk or other transportable computer storage mechanism or via communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared and other wireless media. Thus, the software or firmware instructions may be delivered to a user or a system via a communication channel such as a telephone line, a DSL line, a cable television line, a fiber optics line, a wireless communication channel, the Internet, etc. (which are viewed as being the same as or interchangeable with providing such software via a transportable storage medium). The software or firmware instructions may include machine readable instructions that, when executed by the processor, cause the processor to perform various acts.
When implemented in hardware, the hardware may comprise one or more of discrete components, an integrated circuit, an application-specific integrated circuit (ASIC), etc.
While the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, changes, additions and/or deletions may be made to the disclosed embodiments without departing from the scope of the invention. For example, one or more operations in methods discussed above may be performed in a different order (or concurrently) and still achieve desirable results.

## Claims

1. A method in a communication network, the method comprising:
(i) receiving, at a client device, a sounding packet from an access point device over a wireless downlink communication channel having a plurality of 20 MHz-wide subchannels, the sounding packet having a packet bandwidth that spans the plurality of 20 MHz-wide subchannels;
(ii) at the client device, identifying a subchannel block of the sounding packet, wherein the subchannel block spans only a subset of the plurality of 20 MHz-wide subchannels, and the subchannel block has a subchannel block contiguous bandwidth that is a) at least 20 MHz and b) smaller than the packet bandwidth of the sounding packet;
(iii) performing a channel estimation (a) on the subchannel block, but (b) not on any other 20 MHz-wide subchannels of the plurality of 20 MHz-wide subchannels, to determine a partial channel estimation of the downlink communication channel; and
(iv) communicating, to the access point in a feedback frame, the partial channel estimation of the downlink communication channel so that the access point can determine a steering matrix from the partial channel estimation for application to only a portion, in frequency, of an information carrying data packet, transmitted by the access point, when the information carrying data packet has a bandwidth larger than the subchannel block, wherein the feedback frame includes an indication of a bandwidth of the subchannel block to which the partial channel estimation corresponds, wherein the portion of the information carrying data packet corresponds in frequency to the subchannel block.

2. The method of claim 1, wherein the sounding packet is a null data packet (NDP) sounding packet containing (i) an announcement frame and (ii) a very high throughput control frame.

3. The method of claim 1, wherein the (i)-(iv) are performed for each of a plurality of client stations.

4. The method of claim 1, wherein performing the channel estimation on the subchannel block comprises determining, at the client device, a compressed steering matrix from the subchannel block.

5. The method of claim 1, wherein performing the channel estimation on the subchannel block comprises determining, at the client device, an uncompressed steering matrix from the subchannel block.

6. The method of claim 1, wherein performing the channel estimation on the subchannel block comprises determining, at the client device, channel state information from the subchannel block.

7. The method of claim 1, wherein the sounding packet is an IEEE 802.11ac sounding packet.

8. The method of claim 7, wherein the packet bandwidth of the sounding packet is 40 MHz, 80 MHz, or 160 MHz.

9. The method of claim 1, wherein the plurality of 20 MHz-wide subchannels comprises a 20 MHz-wide control channel and at least one 20 MHz-wide extension channel, wherein identifying the subchannel block of the sounding packet comprises identifying a subchannel block that includes at least the 20 MHz-wide control channel.

10. The method of claim 1, wherein identifying the subchannel block of the sounding packet comprises identifying any combination of at least two contiguous 20 MHz-wide subchannels in the plurality of 20 MHz-wide subchannels as the subchannel block.

11. The method of claim 1, further comprising:
determining, at the access point, the steering matrix from the partial channel estimation; and
applying, at the access point, the steering matrix in transmitting the information carrying data packet to the client device on the downlink channel.

12. The method of claim 11, wherein applying the steering matrix in transmitting the information carrying data packet comprises:
applying the steering matrix to the full information carrying data packet, when the information carrying data packet has a bandwidth that is the same as the packet bandwidth.

13. An apparatus comprising:
a transceiver configured to
receive a sounding packet from an access point, the sounding packet having a packet bandwidth that spans a downlink communication channel having a plurality of 20 MHz-wide subchannels;

a channel estimation circuit configured to
identify a subchannel block within the sounding packet, wherein the subchannel block spans only a subset of the plurality of 20 MHz-wide subchannels, and the subchannel block has a subchannel block contiguous bandwidth that is a) at least 20 MHz and b) smaller than the packet bandwidth of the sounding packet, and
perform channel estimation (i) on the subchannel block, but (ii) not on any other 20 MHz-wide subchannels of the plurality of 20 MHz-wide subchannels, to determine a partial channel estimation of a downlink communication channel;

wherein the transceiver is further configured to
communicate, to the access point in a feedback frame, the partial channel estimation of the downlink communication channel so that the access point can determine a steering matrix from the partial channel estimation for application to only a portion, in frequency, of an information carrying data packet when the information carrying data packet has a bandwidth larger than the subchannel block, wherein the feedback frame includes an indication of a bandwidth of the subchannel block to which the partial channel estimation corresponds, wherein the portion of the information carrying data packet corresponds in frequency to the subchannel block.

14. The apparatus of claim 13, wherein the channel estimation circuit is configured to perform the channel estimation on the subchannel block by determining a compressed steering matrix from the subchannel block.

15. The apparatus of claim 13, wherein the channel estimation circuit is configured to perform the channel estimation on the subchannel block by determining an uncompressed steering matrix from the subchannel block.

16. The apparatus of claim 13, wherein the channel estimation circuit is configured to perform the channel estimation on the subchannel block by determining channel state information from the subchannel block.

17. The apparatus of claim 13, wherein the plurality of 20 MHz-wide subchannels comprises a 20 MHz-wide control channel and at least one 20 MHz-wide extension channel, wherein the channel estimation circuit is configured to identify the subchannel block within the sounding packet by identifying a subchannel block that includes at least the 20 MHz-wide control channel.

18. The apparatus of claim 13, wherein the plurality of 20 MHz-wide subchannels comprises a 20 MHz-wide control channel and at least one 20 MHz-wide extension channel, wherein the channel estimation circuit is configured to identify the subchannel block within the sounding packet by identifying any combination of at least two contiguous 20 MHz-wide subchannels in the plurality of 20 MHz-wide subchannels as the subchannel block.

19. An access point apparatus comprising:
a plurality of antennas;
a network interface device configured to transmit, via the plurality of antennas, a sounding packet over a wireless downlink communication channel that comprises a plurality of 20 MHz-wide subchannels, wherein the network interface device includes
a steering vector controller configured to receive, from a client device, a feedback frame that includes a partial channel estimation of a subchannel block corresponding to the wireless downlink communication channel between (i) the access point and (ii) the client device, wherein
the partial channel estimation corresponds to only a subset of the plurality of 20 MHz-wide subchannels,
the feedback frame does not include channel estimation information for any other 20 MHz-wide subchannels in the wireless downlink communication channel,
the subchannel block corresponds to only the subset of the 20 MHz-wide subchannels and has a contiguous bandwidth of at least 20 MHz, and
the steering vector controller is configured to use the partial channel estimation to identify a steering matrix for use in communicating on the wireless downlink communication channel between (i) the access point and (ii) the client device, and

a spatial steering controller configured to apply the identified steering matrix to only a portion, in frequency, of an information carrying packet, wherein the portion, in frequency, of the information carrying packet corresponds, in frequency, to the subchannel block.

20. The access point apparatus of claim 19, wherein:
the plurality of 20 MHz-wide subchannels includes a 20 MHz-wide control channel; and
the subchannel block includes the 20 MHz-wide control channel.

21. The access point apparatus of claim 19, wherein the steering vector controller is configured to receive channel state information as the partial channel estimation and from the channel state information determine the steering matrix.

22. The access point apparatus of claim 19, wherein the steering vector controller is configured to receive a compressed steering matrix and/or an uncompressed steering matrix as the partial channel estimation to identifying the steering matrix.