Patent Publication Number: US-8982850-B2

Title: Cyclic shift delays in multi-user packets with resolvable very high throughput long training fields (VHTLTFS)

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This is a continuation of U.S. patent Ser. No. 13/177,236, filed on Jul. 6, 2011, which claims the benefit of U.S. Provisional Application No. 61/362,246, filed on Jul. 7, 2010. The entire disclosures of the above applications are incorporated herein by reference. 
    
    
     FIELD 
     The present disclosure relates generally to wireless communication systems and more particularly to applying cyclic shift delays (CSDs) in multi-user packets with resolvable very high throughput long training fields (VHTLTFs). 
     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 the work 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. 
     Referring now to  FIG. 1 , a multi-user (MU) multiple-input multiple-output (MIMO) wireless communication system  100  is shown. The system  100  includes a base station (BS)  102  and multiple client stations STA 1   104 - 1 , . . . , and STAn  104 - n  (collectively STAs  104 ), where n is an integer greater than 1. The BS  102  and the STAs  104  each can have a plurality of antennas. For example, the BS  102  can have four antennas, and each of the STAs  104  can have two antennas. The BS  102  transmits data to the STAs  104  in streams. For example, the BS  102  may modulate the data using orthogonal frequency-division multiplexing (OFDM) according to one or more standards set forth by the Institute of Electrical and Electronics Engineers. 
     SUMMARY 
     A system including a training field generator module, a stream generator module, and a cyclic shift delay module. The training field generator module generates training fields to be transmitted in a packet to client stations. The stream generator module generates streams to be transmitted in the packet. First streams (i) are designated for a first client station and (ii) include the training fields. Second streams (i) are designated for a second client station and (ii) include the training fields. The cyclic shift delay module applies cyclic shift delay values to the streams. First cyclic shift delay values are respectively applied to the first streams. Second cyclic shift delay values are respectively applied to the second streams. At least one of the second cyclic shift delay values is equal to one of the first cyclic shift delay values. Alternatively, the second values are different than the first values. 
     Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. The detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein: 
         FIG. 1  is a functional block diagram of a multi-user (MU) multiple-input multiple-output (MIMO) wireless communication system; 
         FIG. 2  depicts a format of a very high throughput (VHT) multi-user (MU) packet transmitted from a base station (BS) to multiple client stations (STAs) in a MIMO downlink transmission according to the present disclosure; and 
         FIG. 3A  is a functional block diagram of a transmitter of a base station (BS) according to the present disclosure; 
         FIG. 3B  depicts a table showing a number of very high throughput long training fields (VHTLTFs) required for different number of space-time streams in a multi-user (MU) packet according to the present disclosure; 
         FIG. 3C  depicts a table showing cyclic shift delay values for very high throughput (VHT) portion of a multi-user (MU) packet according to the present disclosure; 
         FIG. 4  is a functional block diagram of a transmitter of a base station (BS) according to the present disclosure; 
         FIG. 5  is a functional block diagram of a receiver of a client station (STA) according to the present disclosure; 
         FIG. 6  is a flowchart of a method for applying cyclic shift delay values to space-time streams in a multi-user (MU) packet transmitted from a base station (BS) to a plurality of client stations (STAs) according to the present disclosure; and 
         FIG. 7  is a flowchart of a method for suppressing interference at a client station according to the present disclosure. 
     
    
    
     DESCRIPTION 
       FIG. 2  illustrates a format of a very high throughput (VHT) multi-user (MU) packet  200  according to one implementation of the present disclosure. The packet  200  is transmitted from a base station (BS) to multiple client stations (STAs) in a multi-user (MU) multiple-input multiple-output (MIMO) downlink transmission. The packet  200  is called a VHT physical layer convergence procedure (PLCP) protocol data unit (PPDU). The VHT PPDU  200  includes a VHT preamble and data (payload). The VHT preamble includes a plurality of preamble fields used by the STAs to estimate channel as explained below in detail. 
     The preamble fields include a non high throughput (non-HT) short training field (L-STF), a non-HT long training field (L-LTF), a non-HT signal field (L-SIG), a VHT signal field A (VHT-SIG-A), a VHT short training field (VHT-STF), a plurality of VHT long training fields (VHT-LTFs), and a VHT signal field B (VHT-SIG-B). VHT-SIG-A, VHT-STF, VHT-LTFs, and VHT-SIG-B are transmitted only in VHT packets. The number of VHT-LTFs (N VHTLTF ) can be 1, 2, 4, 6, or 8 and is determined by the total number of space-time streams across all users being transmitted in a frame. 
     In multi-user (MU) MIMO downlink transmissions, streams of data transmitted from a base station (BS) to multiple client stations (STAs) should be spatially separated to avoid multi-user interference at the STAs. For example, the BS can spatially separate the streams based on channel state information (CSI) feedback received from the STAs. The CSI feedback, however, can be imperfect due to factors including non-idealities at the STAs, finite capacity of feedback channel, channel aging, and so on. Streams transmitted based on imperfect CSI feedback can cause interference at one or more STAs. 
     Some STAs can have more receive antennas than the number of streams received by the STAs. The STAs can use the additional receive antennas to suppress interference. To suppress interference, however, the STAs need to know the entire channel across the streams of all the users. To allow the STAs to acquire knowledge of the entire channel, the BS can transmit multiple very high throughput long training fields (VHTLTFs) to train the total number of streams transmitted on the downlink. The VHTLTFs that allow a STA to estimate channel of signals designated for the STA as well as channel of interference signals at the STA are called resolvable VHTLTFs. In contrast, LTFs that train only the streams that are designated for the STA are called unresolvable LTFs. Multi-user (MU) packets can include either resolvable or unresolvable VHTLTFs. 
     For example, consider a base station (BS) having four transmit antennas transmitting a downlink packet to four STAs each having two receive antennas, where each user receives a single stream of data. When unresolvable LTFs are used, the BS spatially separates the LTFs of the four users and transmits one VHTLTF per user. Instead, when resolvable LTFs are used, the BS transmits four LTFs per user (i.e., per STA). The four LTFs received by each STA allow each STA to estimate the channel across all the four streams and suppress interference caused by streams designated for other STAs using the second receive antenna. 
     The present disclosure relates to reducing interference by applying different cyclic shift delays (CSDs) to different space-time streams transmitted by the base station (BS) in MIMO downlink transmissions. Specifically, different CSDs are applied to different space-time streams before spatially mapping the space-time streams at the BS. The CSDs applied to the space-time streams in this manner can mitigate unintentional beamforming when similar signals are transmitted in different space-time streams by the BS. The cyclic shift delay applied during transmission of VHT portion of the VHT preamble of a frame is also applied during transmission of data portion (i.e., payload) of the frame. Accordingly, STAs that receive the frame can use the channel estimate generated based on the VHT preamble of the frame to correctly demodulate and decode the data (i.e., payload) in the frame. The present disclosure is intended for resolvable VHTLTFs. 
     According to the present disclosure, single user (SU) packets transmitted by a base station (BS) can support up to 8 space-time streams, and multi-user (MU) downlink packets can support up to 4 or 8 space-time streams per user with up to 8 space-time streams across all users, where the limit of 8 space-time streams is according to the 802.11ac standard set forth by the Institute of Electrical and Electronic Engineers. In MU downlink packets, different CSD values can be applied to the space-time streams, where the actual values of the CSDs can depend on the number of space-time streams. The present disclosure, however, is transparent to the actual values of the CSDs. That is, the present disclosure applies the CSDs to the space-time streams without regard to the actual values of the CSDs. Specifically, the present disclosure provides two different approaches for applying CSDs to the space-time streams in multi-user (MU) packets with resolvable VHTLTFs. 
     According to a first approach, CSD values are reset when moving from one user to another. In other words, the same CSD values are applied to streams of each user as if there is only a single user. For example, suppose there are two users (STA 1  and STA 2 ), and four streams (S 1 , S 2 , S 3 , and S 4 ), where each user has two streams each. For the user STA 1 , a CSD value CSD 1  is applied to stream S 1 , and a CSD value CSD 2  is applied to stream S 2 . Subsequently, for the user STA 2 , the CSD values are reset, and the same CSD values CSD 1  and CSD 2 , which were applied to streams S 1  and S 2 , are respectively applied to streams S 3  and S 4 . 
     In general, suppose the base station (BS) transmits N sts   u1  streams to STA 1  and N sts   u2  streams to STA 2 , where N sts   u1  and N sts   u2  denote number of streams for user  1  (STA 1 ) and user  2  (STA 2 ), respectively, and where N sts   u1  and N sts   u2  are integers greater than or equal to 1. For STA 1 , CSD values (CSD( 0 ), CSD( 1 ), . . . , and CSD(N sts   u1 −1)) are applied to the N sts   u1  streams. Subsequently, the CSD values are reset for every user in a VHTLTF sequence. For example, for STA 2 , the CSD values restart from CSD( 0 ), and CSD values (CSD( 0 ), CSD( 1 ), . . . , and CSD(N sts   u2 −1)) are applied to the N sts   u2  streams. 
     Mathematically, consider a two-user multi-user (MU) packet. The resolvable VHTLTFs on the k th  subcarrier can be expressed as 
               VHTLTF   k     =       [       L     k   ,   1       ,     L     k   ,   2       ,   …   ⁢           ,     L     k   ,     N   LTF           ]     =           [       Q     k   ,   1       ,     Q     k   ,   2         ]     ⁡     [           D     k   ,   1           0           0         D     k   ,   2             ]       ⁡     [           P     1   *                 P     2   *             ]       ⁢     s     (   k   )                 
where L k, 1  is VHTLTF for k th  subcarrier for user  1  (STA 1 ), L k, 2  is VHTLTF for the k th  subcarrier for user  2  (STA 2 ), and so on. N LTF  is the number of LTFs required to train the streams of all the users. Q k,1  and Q k, 2  are elements of a spatial mapping matrix Q corresponding to the k th  subcarrier for user  1  (STA 1 ) and user  2  (STA 2 ), respectively. D k,1  and D k, 2  are diagonal phase shift matrices corresponding to the CSD effect at the k th  subcarrier for user  1  and user  2 , respectively. D k,1  is a CSD matrix with diagonal entries that depend on (CSD( 0 ), CSD( 1 ), . . . , and CSD(N sts   u1 ). D k, 2  is a CSD matrix with diagonal entries that depend on (CSD( 0 ), CSD( 1 ), . . . , and CSD(N sts   u2 ). The diagonal entries are a function of the CSD(n) and the tone index k. P 1*  and P 2*  denote first and second rows of a VHTLTF mapping matrix (P matrix).
 
     According to a second approach, the users (i.e., the STAs) are ordered in a predetermined manner by the base station (BS), where the order is communicated to the STAs, and the CSDs are applied to all the streams as if all the streams belong to a single user. That is, the CSD values are not reset across users. For example, suppose there are two users (STA 1  and STA 2 ), and four streams (S 1 , S 2 , S 3 , and S 4 ). For the user STA 1 , a CSD value CSD 1  is applied to stream S 1 , and a CSD value CSD 2  is applied to stream S 2 . Subsequently, for the user STA 2 , a CSD value CSD 3  is applied to stream S 3 , and a CSD value CSD 4  is applied to stream S 4 . 
     Mathematically, considering the same example in the first approach, the VHTLTFs on the k th  subcarrier can be expressed as 
               VHTLTF   k     =       [       L     k   ,   1       ,     L     k   ,   2       ,   …   ⁢           ,     L     k   ,     N   LTF           ]     =       [       Q     k   ,   1       ,     Q     k   ,   2         ]     ⁢       D   k     ⁡     [           P     1   *                 P     2   *             ]       ⁢     s     (   k   )                 
where D k  is a CSD matrix with diagonal entries that depend on (CSD( 0 ), CSD( 1 ), . . . , and CSD(N sts   u1 +N sts   u2 )). The diagonal entries are a function of the CSD(n) and the tone index k. In other words, in the second approach, the CSD values are applied assuming a single user with extended number of streams.
 
     Referring now to  FIGS. 3A-3C , transmission of VHT long training fields (VHTLTFs) and application of cyclic shift delays (CSDs) according to the present disclosure are described in further detail. In  FIG. 3A , a base station  300  includes a transmitter module  301  that generates VHTLTFs and applies CSDs according to the present disclosure. The transmitter module  301  includes a CSD module  302 , a mapping module  304 , and a plurality of inverse fast Fourier transform (IFFT) modules  306 - 1 , . . . ,  306 - n  (collectively IFFT modules  306 ), where n is an integer greater than 1. 
     The CSD module  302  applies CSDs to the space-time streams according to the first approach or the second approach described above. The mapping module  304  applies a spatial mapping matrix [Q k ] Nsts  to the outputs of the CSD module  302 . The IFFT modules  306  apply inverse fast Fourier transform to the outputs of the mapping module  304 . The outputs of the IFFT modules  306  are transmitted via transmit antennas of the base station  300 . 
     The VHTLTFs are used by the STAs to estimate the MIMO channel. The base station  300  provides training for the space-time streams (inputs of the mapping module  304 ) used to transmit a packet. All VHT transmissions have a preamble that includes a single section of VHTLTFs, where data tones of each VHTLTF are multiplied by entries belonging to a matrix P to allow channel estimation at the STA, and where pilot tones of each VHTLTF are multiplied by entries of a matrix R. For example, the multiplication shown in  FIG. 3A  can be mathematically expressed as follows. 
               A   VHTLTF   k     =     {                       R   VHTLTF     ,           ⁢       if   ⁢           ⁢   k     ∈     K   Pilot         ⁢                         P   VHTLTF     ,           ⁢   otherwise           ⁢     
     [     R   VHTLTF     ]       m   ,   n       =       [     P   VHTLTF     ]       1   ,   n         ,       where   ⁢           ⁢   1     ≤   m     ,     n   ≤       N   VHTLTF     .                 
The multiplication of the pilot tones in the VHTLTF symbol by the R matrix instead of the P matrix allows STAs to track phase and frequency offset during MIMO channel estimation using the VHTLTF.
 
     The number of resolvable VHTLTF symbols (N VHTLTF ) is a function of the total number of space-time streams across all users, N STS,total . For example, in  FIG. 3B , a table of number of VHTLTFs required for different number of space-time streams in a multi-user (MU) packet is shown. Accordingly, a single section of VHTLTFs can include one, two, four, six or eight VHTLTFs necessary for demodulation of the VHT data portion of the PPDU or for channel estimation. 
     In  FIG. 3C , a table of cyclic shift delay values for the VHT portion of a multi-user (MU) packet is shown. Throughout the VHT portion of the VHT format preamble, the cyclic shift delay is applied to prevent beamforming when similar signals are transmitted in different space-time streams. The same cyclic shift delay is applied to these streams during transmission of the data portion (i.e., payload) of the frame. The cyclic shift delay value T CS,VHT (n) for the portion of the MU packet following VHT-SIG-A for space-time stream n out of N STS,total  total space-time streams is shown in  FIG. 3C . For example, in a MU packet, using the second approach, the cyclic shift delay values are applied continuously (i.e., without resetting when moving from one user to another) across the space-time streams as shown in  FIG. 3C . 
     Referring now to  FIG. 4 , the base station  300  according to the present disclosure is shown in further detail. Specifically, the transmitter module  301  further includes a VHTLTF generator module  307 , a VHT data streams generator module  308 , and a transmit module  310 . The VHTLTF generator module  307  generates a plurality of resolvable VHTLTFs to be transmitted in a multi-user (MU) packet to a plurality of client stations. For example only, suppose that the base station  300  transmits data to two client stations: a first client station and a second client station. Each of the client stations receives all of the resolvable VHTLTFs in the space-time streams that are designated for each client station. Receiving all of the resolvable VHTLTFs allows each client station to obtain knowledge of channel across all the space-time streams and to suppress interference based on the knowledge. The total number of resolvable VHTLTFs is a function of the total number of space-time streams transmitted in the MU packet. For example only, the total number of resolvable VHTLTFs transmitted to each client station is equal to the total number of space-time streams transmitted to all client stations in the MU packet. 
     The VHT data streams generator module  308  generates a plurality of space-time streams to be transmitted in the MU packet to the client stations. The VHT data streams generator module  308  generates the space-time streams based on the resolvable VHTLTFs and the data (i.e., payload) to be transmitted to the client stations. For example only, a first set of space-time streams can be designated for transmission to the first client station and can include the plurality of resolvable VHTLTFs. For example only, a second set of space-time streams can be designated for transmission to the second client station and can include the plurality of resolvable VHTLTFs. 
     The CSD module  302  applies a plurality of cyclic shift delay values to the plurality of space-time streams. For example only, first values from the plurality of cyclic shift delay values are respectively applied to the first space-time streams designated for the first client station. For example only, second values from the plurality of cyclic shift delay values are respectively applied to the second space-time streams designated for the second client station. The cyclic shift delay module applies the cyclic shift delay values to the space-time streams transparently (i.e., irrespective of the actual values of the cyclic shift delay values). 
     When the first approach for applying the CSD values is used, at least one of the second values is equal to one of the first values since the second values are obtained by resetting the CSD values to the first values as explained above. When the second approach for applying the CSD values is used, the second values are different than the first values since the CSD values are not reset when moving from one client station to another as explained above. 
     The mapping module  304  spatially maps the plurality of space-time streams by applying a Q matrix to the space-time streams. The mapping module  304  spatially maps the plurality of space-time streams after the CSD module  302  applies the cyclic shift delay values to the plurality of space-time streams. The transmit module  310  transmits a MU packet comprising the space-time streams spatially separated by the CSDs to the client stations via a plurality of transmit antennas. 
     The MU packet includes a data portion that includes data (i.e., payload) to be transmitted to the client stations and a preamble portion that includes the plurality of resolvable VHTLTFs. The CSD module  302  applies the cyclic shift delay values to the data portion consistently with the cyclic shift delay values applied to the preamble portion. 
     Referring now to  FIG. 5 , a client station  350  according to the present disclosure is shown. The client station  350  includes a receiver module  352 . The receiver module  352  includes a receive module  354 , a channel estimation module  356 , an interference canceller module  358 , and a processing module  360 . The receive module  354  receives the MU packet transmitted by the base station  300  via a plurality of receive antennas. 
     Based on the plurality of resolvable VHTLTFs received in the first space-time streams designated for the client station  350 , the channel estimation module  356  generates a first channel estimate for the first space-time streams designated for the client station  350 . Additionally, based on the plurality of resolvable VHTLTFs received in the first space-time streams, the channel estimation module  356  generates a second channel estimate for the second space-time streams that are not designated for the client station  350 . Thus, the client station  350  obtains knowledge of channel across all the space-time streams. 
     Based on the knowledge of channel across all the space-time streams, the interference canceller module  358  suppresses interference caused by the space-time streams that are received by the receive module  354  and that are not designated for the client station  350 . The processing module  360  processes the first space-time streams that are designated for the client station  350  based on the channel estimate for the first space-time streams. 
     Referring now to  FIG. 6 , a method  400  for applying cyclic shift delay values to space-time VHT data streams in a multi-user (MU) packet transmitted in a downlink transmission is shown. Control begins at  402 . At  404 , control generates resolvable VHTLTFs to be transmitted in a multi-user (MU) packet to a plurality of client stations (e.g., two client stations: a first client station and a second client station). At  406 , control generates a plurality of space-time VHT data streams to be transmitted in the MU packet to the client stations based on the resolvable VHTLTFs and the data (i.e., payload) to be transmitted to the client stations. For example only, a first set of space-time VHT data streams can be designated for transmission to the first client station and can include the plurality of resolvable VHTLTFs. For example only, a second set of space-time VHT data streams can be designated for transmission to the second client station and can include the plurality of resolvable VHTLTFs. 
     At  408 , control applies a plurality of cyclic shift delay values to the plurality of space-time VHT data streams. For example only, first values from the plurality of cyclic shift delay values are respectively applied to the first space-time VHT data streams designated for the first client station. For example only, second values from the plurality of cyclic shift delay values are respectively applied to the second space-time VHT data streams designated for the second client station. Control applies the cyclic shift delay values to the space-time VHT data streams transparently (i.e., without regard to the actual values of the cyclic shift delay values). 
     Further, at  408 , when the first approach for applying the CSD values is used, control selects at least one of the second values equal to one of the first values since control obtains the second values by resetting the CSD values to the first values as explained above. When the second approach for applying the CSD values is used, control selects the second values that are different than the first values since control does not reset the CSD values when moving from one client station to another as explained above. The MU packet includes a data portion that includes data (i.e., payload) to be transmitted to the client stations and a preamble portion that includes the plurality of resolvable VHTLTFs. In either approach, control applies the cyclic shift delay values to the data portion consistently with the cyclic shift delay values applied to the VHTLTFs. 
     At  410 , control spatially maps the plurality of space-time VHT data streams by applying a Q matrix to the space-time VHT data streams after the cyclic shift delay values are applied to the plurality of space-time VHT data streams. Control transmits a MU packet comprising the space-time VHT data streams spatially separated by the CSDs to the client stations via a plurality of transmit antennas. Control ends at  412 . 
     Referring now to  FIG. 7 , a method  500  for suppressing interference at a client station according to the present disclosure is shown. Control begins at  502 . At  504 , control receives a multi-user (MU) packet. The client station receives all of the resolvable VHTLTFs in first space-time streams that are designated for the client station, which allows the client station to obtain knowledge of channel across all the space-time streams and to suppress interference based on the knowledge. 
     At  506 , based on the plurality of resolvable VHTLTFs received in the first space-time streams that are designated for the client station, control generates a first channel estimate for the first space-time streams that are designated for the client station. Additionally, based on the plurality of resolvable VHTLTFs received in the first space-time streams, control generates a second channel estimate for the second space-time streams that are not designated for the client station. Thus, the client station obtains knowledge of channel across all the space-time streams. 
     At  508 , based on the knowledge of channel across all the space-time streams, control suppresses interference caused by the space-time streams that are received by the client station and that are not designated for the client station. At  510 , control processes the first space-time streams that are designated for the client station based on the channel estimate for the first space-time streams, and control ends at  512 . 
     The description herein is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical OR. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure. 
     As used herein, the term module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC); an electronic circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor (shared, dedicated, or group) that executes code; other suitable components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip. The term module may include memory (shared, dedicated, or group) that stores code executed by the processor. 
     The term code, as used above, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories. 
     The apparatuses and methods described herein may be implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on a non-transitory tangible computer readable medium. The computer programs may also include stored data. Non-limiting examples of the non-transitory tangible computer readable medium are nonvolatile memory, magnetic storage, and optical storage. 
     The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims.