# Patent

## Title
Data encoding method and apparatus for flash-type signaling

## Abstract

Embodiments disclosed herein relate to preamble configuration in wireless communication systems (e.g., UHDR-DO type systems). Disclosed embodiments disclose receiving a plurality of information bits, generating a plurality of preamble codewords based on a determined a set of monitored MAC_IDs, correlating the information bits with each of the plurality of preamble codewords, determining if a maximum correlation value exceeds a threshold, and transmitting at least one of the preamble codewords if the threshold is exceeded.

## Background
REFERENCE TO CO-PENDING APPLICATIONS FOR PATENT
The present application for patent is related to the following U.S. patent applications:
Provisional Ser. No. 60/833,941, entitled “METHOD AND APPARATUS FOR PREAMBLE CONFIGURATION IN WIRELESS COMMUNICATION SYSTEMS,” filed Jul. 28, 2006, Provisional Ser. No. 60/841,361, entitled “DATA ENCODING METHOD AND APPARATUS FOR FLASH-TYPE SIGNALING” filed Aug. 30, 2006, Provisional Ser. No. 60/843,111, entitled “DATA ENCODING METHOD AND APPARATUS FOR FLASH-TYPE SIGNALING,” filed Sep. 9, 2006 and assigned to the assignee hereof, and expressly incorporated by reference herein.


BACKGROUND
1. Field
This disclosure relates generally to communication systems. More specifically, embodiments disclosed herein relate to data encoding for flash-type signaling in wireless communication systems.
2. Background
Wireless communication systems are widely deployed to provide various types of communication (e.g., voice, data, multimedia services, etc.) to multiple users. Such systems may be based on code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), or other multiple access techniques. A wireless communication system may be designed to implement one or more standards, such as IS-95, cdma2000, IS-856, W-CDMA, TD-SCDMA, and other standards.
Orthogonal frequency division multiplexing (OFDM) technology has attracted considerable attention in wireless communications, as a multi-tone modulation and multiple access technique to enhance the channel capacity and mitigate multiple access interference. As the demand for high-rate and multimedia data services rapidly grows, there lies a challenge to implement efficient and robust OFDM communication systems.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a wireless communication system;
FIG. 2 illustrates an example of a forward link slot structure;
FIG. 3 illustrates another example of a forward link slot structure;
FIG. 4 illustrates another example of a forward link slot structure;
FIG. 5 illustrates an example of preamble design;
FIG. 5a illustrates an example of block code design;
FIG. 5b illustrates another example of preamble design;
FIG. 5c illustrates another example of preamble design;
FIG. 5d illustrates another example of preamble design;
FIG. 6 illustrates an example of a modified preamble encoder architecture;
FIG. 7 illustrates an example of codewords of an extended Reed-Solomon code;
FIG. 8 illustrates an example of a map according to the present disclosure;
FIG. 9 illustrates an example of a lookup table according to the present disclosure;
FIG. 10 illustrates an example of a method according to the present disclosure at a transmitter;
FIG. 11 illustrates an example of another method according to the present disclosure at a transmitter;
FIG. 12 illustrates an example of yet another method according to the present disclosure at a transmitter;
FIG. 13 illustrates an example of a method according to the present disclosure at a receiver;
FIG. 14 illustrates an example of another method according to the present disclosure at a receiver;
FIG. 15 is a block diagram of a transmitter according to the present disclosure; and
FIG. 16 is a block diagram of a receiver according to the present disclosure.



DETAILED DESCRIPTION
Embodiments disclosed herein relate to preamble configuration in wireless communication systems.
FIG. 1 illustrates a wireless communication system 100 configured to support a number of users, in which various disclosed embodiments and aspects may be implemented, as further described below. By way of example, system 100 provides communication for a number of cells 102, including cells 102a-102g, with each cell being serviced by a corresponding Access Point (AP) 104 (such as APs 104a-104g). Each cell may be further divided into one or more sectors. Various Access Terminals (ATs) 106, including ATs 106a-106k, are dispersed throughout the system. Each AT 106 may communicate with one or more APs 104 on a forward link (FL) and/or a reverse link (RL) at a given moment, depending upon whether the AT is active and whether it is in soft handoff, for example.
In a high rate packet data (HRPD) system (e.g., as specified in “cdma2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-A, Version 2.0, July 2005; “cdma2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-B, Version 1.0, May 2006; and other related specifications, referred to herein as a “1xEV-DO” (or “DO”) type system), transmission on forward link is partitioned into a sequence of frames; each frame is further divided into time slots (e.g., 16 slots each with a duration of 1.667 msec); and each slot includes a plurality of time-division-multiplexed channels.
By way of example, FIG. 2 illustrates an embodiment of a forward link slot structure 200, such as employed in a 1xEV-DO type system. Time slot 200 is divided into two half-slots, with each half-slot having the following channel assignments: pilot channel 210, forward medium access control (MAC) channel 220, and forward traffic (or control) channel 230. Pilot channel 210 carries the pilot signal (also commonly termed as the pilot) used by an AT (such as AT in FIG. 1) for initial acquisition, phase recovery, timing recovery, radio combining, as well as estimating the channel conditions on forward link (e.g., by way of the signal-to-noise-and-interference (SINR) measurement). MAC channel 220 sets forth the procedures used to receive and transmit over the physical layer (which provides the channel structure, frequency, power output, modulation, encoding specifications for forward and reverse links). Traffic channel 230 may carry information or data (e.g., by way of physical layer packets). Traffic channel 230 may also be used to carry control messages, e.g., a preamble identifying the AT for which the subsequent transmission is intended or indicating a multi-user packet. Further, pilot channel 210, MAC channel 220, and traffic channel 230 are time-division-multiplexed within time slot 200.
In some wireless communication systems (e.g., ultra high data rate DO (UHDR-DO) type systems), OFDM may be employed as a multiple tone modulation and multiple access technique on the forward link, to enhance the channel capacity and mitigate multiple access interference. For example, traffic channel 230 in time slot 200 may comprise multiple OFDM tones. In flash-type signaling, a strong signal may be sent on a small subset of the available tones. This is superimposed on the normal usage of tones for data traffic. The superimposed tones may be decoded in a non-coherent fashion, in which case the tone position (in frequency and/or time) alone carry the signaling or acquisition information. Embodiments herein disclose methods to map signaling codewords to tone indices. The following properties are desirable for such mappings: A) large number of available codewords with the fewest number of occupied tones; B) good minimum distance, i.e. small number of common tone indices between any pair of codewords; C) good diversity, i.e. the utilized tones should be reasonably spread out across the spectrum for any given codeword; D) close to uniform weight distribution amongst the codewords so that transmit power may be efficiently managed; E) relatively easy systematic encoding and decoding.
FIG. 3 illustrates an embodiment of a forward link slot structure 300, which may be employed in a UHDR-DO type system. Time slot 300 is shown in two half-slots, each having pilot channel 310, MAC channel 320, and traffic channel 330 in a time-division-multiplexed format. Traffic channel 330 may comprise multiple OFDM tones. Furthermore, one or more OFDM tones may be selected to carry a preamble, such as illustrated by the shaded areas in FIG. 3. (For clarity and illustration, only one half-slot is shown explicitly with OFDM tones.) The preamble may be configured to identify the AT for which the subsequent transmission is intended (or indicate a multi-user packet), indicate the packet format associated with the subsequent transmission, etc.
In some embodiments, OFDM tones for the preamble (or “preamble tones”) may be placed in the first half of a time slot. Preamble tones may be divided into disjoint sets, each set containing a predetermined number of tones.
In some embodiments, the preamble may be divided into a plurality of streams, e.g., for OFDM tone selection and for tone modulation. In an embodiment, the preamble (e.g., having 10 bits) may be divided into a first stream having a number of most significant bits (MSBs) of the preamble information and a second stream having a number of least significant bits (LSBs) of the preamble information. The first stream may be used for tone set selection, and the second stream may be encoded using a particular error control coding scheme (e.g., bi-orthogonal code, pseudo random codebook, etc.). Discrete Fourier Transform (DFT) precoding (or other unitary transformations) may also be utilized in some applications. The two preamble streams may then be combined for OFDM tone mapping and modulation.
In some embodiments, the preamble may be adaptive to the channel condition, so as to ensure satisfactory reception at the receiver (e.g., an AT). In an embodiment, for example, the number of OFDM tones selected for a preamble may be adaptive to the channel's signal-to-interference-and-noise ratio (SINR). In other embodiments, the power for transmitting the preamble tones (e.g., a fixed number of ones) may be adaptive to the channel's SINR.
In some embodiments, the preamble may include a MAC ID and a rate adjustment field. For example, the preamble frame may include 10 bits, where 8 bits are allocated to the MAC ID and 2 bits to the rate adjustment field. In a UHDR-DO type system, the preamble is used in a current DO to indicate which AT(s) are scheduled on the FL. In one example, a UHDR-DO preamble frame has 10 bits, an 8 bit MAC_ID and a 2 bit compatible rate field, indicating the adjusted data rate related to DRC feedback. The 2 bit compatible rate field reduces the burden at an AT to perform multiple decodings and allow the AN to overwrite DRC feedback even when DRC value is high. The UHDR-DO preamble is embedded in OFDM symbols. In some embodiments, a half-slot of a forward link employed in a UHDR-DO type system may have a number of tiles available, each tile having a number of tones, and at least one tone per tile being used to transmit a preamble. In other words, the total number of available tones in a half slot may be divided into “M” tiles of size 2m, wherein the total number of tones is at least M*2m.
FIG. 4 illustrates an example of a forward link structure 300 having two half-slots, the first half slot has thirty-two tiles, numbered 0 through 31, and each tile has sixteen tones. Put differently, there are four OFDM symbols in the first half slot. In each OFDM symbol, 128 tones are available for preamble (after exclusion of all tones that may be used for pilot). The 128 tones may be split into eight groups or eight tiles, numbered 0 through 7 for instance. Thus, there are a total of thirty-two tiles in the first half slot, wherein each of the eight tiles contains sixteen almost contiguous tones. The total number of tones in the first half-slot is at least 32*24. In one example, one of the sixteen tones per tile may be used to transmit preamble information to an AT. In FIG. 4, pilot tones and skipped tones are not shown.
In some embodiments, error control coding such as a Reed Solomon coding may be used to determine the position location of a tone. For instance, k*m input bits may be represented as k GF(2m) symbols which are input to a (n, k) Reed Solomon code in GF(2m). The output of the Reed Solomon code is represented as s0, s1, . . . sn−1. Each output code symbol si with i=0, 1, . . . , n−1 is represented as pi in decimal format, where pi ranges from 0 to 2m−1. Here, pi gives the tone location in the i-th tile that may be used to transmit preamble information to an AT.
In an embodiment, the number of available resource blocks (time and/or frequency) may be grouped into diversity groups. In each group, there should be 2m tones for some m. For example, assume there are 1024 useable tones, in two consecutive time slots, with 512 tones in each slot. Then, from the 1024 tones, 16 diversity groups may be formed with 64 tones in each group. The 64 possible tone indices within each group may be mapped to the elements of GF(26). Across the 16 groups, an (n, k, d)=(16, k, 16−k+1) Reed-Solomon code is formed. Then, the input k*6 information bits are mapped to a 16 symbol codeword and each symbol in turn is mapped to one of the indices in the range [0 . . . 63]. The tone corresponding to that index is set within each group to form the transmitted signal. Further encoding such as BPSK, QPSK etc may be applied if coherent demodulation can be applied.
In some embodiments, some additional input bits may be encoded to generate M modulation symbols. The M modulation symbols are transmitted on the selected tones within each tile. For instance, where a preamble frame has 10 bits with 8 allocated to a MAC ID and 2 bits allocated to a rate adjustment field, the 8 MAC ID bits may be input to an error control code e.g. Reed Solomon code and used to determine the position location of each tone in each tile. The 2 bit rate adjustment field may be encoded and the encoded symbols are mapped to, and transmitted on the selected tones.
FIG. 5 illustrates an example of preamble design based on a GF (16) code. An 8 bit MAC_ID may be split into two 4 bit parts, wherein the first 4 most significant bits (MSBs) are represented as one GF(16) symbol, a.sub.0, and the 4 least significant bits (LSBs) are represented as one GF(16) symbol, a.sub.1. Here, a.sub.0 and a.sub.1 are input to an appropriate (32, 2) m-ary code 502. Alternatively, a.sub.0 and a.sub.1 may be input to a (16, 2) parity extended Reed-Solomon code in GF(16) and the output of the extended Reed-Solomon code may be repeated once to give 32symbols. As illustrated, the Reed-Solomon code with repetition outputs 32 GF(16) symbols, s.sub.0, s.sub.1, . . . s.sub.31. S.sub.i with i=0, 1, . . . , 31 is represented as p.sub.i in decimal format, where p.sub.i ranges from 0-15. P.sub.i gives the tone location in the i-th tile that may be used to carry preamble for the AT. In another aspect, the 8 bit MAC_ID may be scrambled by a time-varying pseudo noise (PN) sequence before it is input to the Reed-Solomon code. The PN sequence generation method is known to both the AP and AT, therefore both may generate the same PN sequence. Applying the PN sequence is equivalent to randomly permuting the MAC_ID allocation among ATs, thus preventing the static reoccurrence of codeword pairs with distances below average.
As illustrated in FIG. 5, a 2 bit compatible rate field is encoded via a (32, 2) block code 504. The encoded symbols are scrambled 508, BPSK modulated 506, and mapped 510 to the 32 tones output 512 from the Reed-Solomon code 502. In this example, one tone in each tile is used. An example of block code (32, 2) is illustrated further in FIG. 5a, where a simple (3, 2) parity check code 520 is employed. An example (3, 2) parity check code C is given below




  C
  =
  
    [
    
      
        
          0
        
        
          0
        
        
          1
        
        
          1
        
      
      
        
          0
        
        
          1
        
        
          0
        
        
          1
        
      
      
        
          0
        
        
          1
        
        
          1
        
        
          0
        
      
    
    ]
  




The output is repeated eleven times 522 and one of the output symbols, for example the last symbol, is punctured 524 to give 32 output symbols 526. An alternative to using a (32, 2) block code is pseudo-random and time varying the codebook from slot to slot. For example, a 35 bit AT specific PN sequence may be generated at the beginning of each slot. Bit n.about.(n+32) of the sequence may form the n-th codeword with n=0, 1, . . . , 31. The AT's PN scrambling generator may thus be used for pseudo random codebook generation.
FIG. 5b illustrates an example of overall preamble design implementing (32, 2) Reed-Solomon code 502 in GF(16) and block code (32, 2) 504 as described above. Gain for the preamble 514, pilot 528 and traffic 530 is individually configurable. This allows for optimum power allocation for pilot 528, preamble 514 and traffic 530, thus minimizing both the probability of missed preamble information and the probability of traffic decoding errors.
Another example of preamble design is illustrated in FIG. 5c. Here, an 8 bit MAC_ID is input to a first (16, 2) parity extended Reed-Solomon code 532. The same 8 bit MAC_ID is bit interleaved and/or scrambled 534 before being input to a second parity extended (16,2) Reed-Solomon code 536.
In examples discussed above, an 8 bit MAC_ID is used to select which tones are used to carry a preamble and a 2 bit compatible rate field is used to determine what sequence is transmitted on the selected tones. In alternate examples, all input bits may be used for tone selection. Decisions by the AT are based on the position of the tone as opposed to modulated information carried on the tone. For example, all 10 bits in the example above may be input to an error control code such as a Reed Solomon code 502 to determine the position location of tones. Symbols transmitted on the selected tones may be fixed or time-varying pseudo-random sequences representing information other than a 10 bit preamble frame. For example, symbols carried on the preamble tones may signal an “on” or “off” state of the preamble. FIG. 5d illustrates an example of preamble design wherein all input bits are used for tone selection. In FIG. 5d, the gain for the preamble 514, pilot 528 and traffic 530 is individually configurable.
In another example, tone locations in each tile may be selected pseudo-randomly using a pseudo random generator. The seed of the random generator may be a function of the AT's identifier (MAC_ID), cell site identifier (CELL_ID), and/or slot index. Random selection of tone location avoids collisions between AT's and different sectors. Fewer tones may be selected in this embodiment in order to minimize the tone collision probability. Tone collision probability as used herein refers to the relative frequency of the same tone being used in the preamble for two different ATs in the same sector or in neighbor sectors.
For any given number of tones used, the RS encoding ensures an optimum number of available codewords. The RS encoding has optimum minimum distance, and the distance is the same between any pair of codewords. As used herein, minimum distance refers to the minimum number of code symbols that are different between any pair of codewords. Also, good diversity is achieved because each group of tones will have one tone occupied, and the groups are spread out (in frequency and/or time). Every codeword has exactly n tones occupied, therefore every codeword requires the same transmit power. The receiver determines the maximum energy frequency bin in each diversity group and maps the maximum energy frequency bin to the raw received code symbols. There are known RS decoding algorithms that may be applied to the code symbols for error detection/correction. Alternatively, if the number of possible codewords for a given receiver is small, the receiver may determine all possible codewords and use a matched filter detector (for example, when a fixed MAC_ID is part of the signaling).
In some embodiments, improved cross-correlation of the preamble code is achieved, which results in reducing the expected false alarm rate. FIG. 6 illustrates an example of a modified preamble encoder architecture based on GF(32) code. The use of GF(32)-based codes enables the generation of the required length 32 codewords without any repetition. Also, the two constituent codes (for example MAC_ID and compatible rate) are unified in a single encoding scheme, therefore every preamble information bit will have the same level of error protection. The extended Reed Solomon code block 602 illustrated in FIG. 6 may be derived from a (31, 2) RS code with a single parity symbol extension, therefore creating a (32, 2) code. The underlying (31, 2) RS code is defined by its generating polynomial g(x), which may be written as:




  
    
      g
      ⁡
      
        (
        x
        )
      
    
    =
    
      
        ∏
        
          i
          =
          1
        
        29
      
      ⁢
      
        
      
      ⁢
      
        (
        
          x
          +
          
            α
            i
          
        
        )
      
    
  
  ,




where α is a primitive element in GF(32). In the illustration, α may be chosen to be a root of polynomial x5+x3+1. Every codeword polynomial s(x) generated by g(x) may be given as

s(x)=f(x)·g(x), where f(x)=a1x+a0, a0, a1εGF(32)

The coefficients {s0, s1, . . . , s30} of s(x) form the actual Reed Solomon codeword. The extended Reed Solomon code is obtained by appending an extra parity code symbol, s31, which is calculated as




  
    s
    31
  
  =
  
    
      ∑
      
        i
        =
        0
      
      30
    
    ⁢
    
      
    
    ⁢
    
      s
      i
    
  




Therefore, the extended Reed Solomon code is a (32, 2) code consisting of symbols that are elements of GF(32). FIG. 7 illustrates a few codewords of the extended Reed Solomon code. The table entries (except in the first row) show the exponents of the primitive element α 702 that correspond to the given finite field element. The symbol ‘*’ 704 corresponds to the zero element in GF(32). If there are 32 tones in each tile, such as in the example illustrated in FIG. 5d, then the mapping of each of the GF(32) elements to one of the 32 tones is straightforward. However, when there are only 16 tones in each tile, such as in the example illustrated in FIG. 7, then a mapping from the GF(32) elements to the 16 tone indices within the tile may be established. This is a 2-to-1map. In order to distinguish the two GF(32) elements mapped to the same tone, a BPSK ‘+1’ or ‘−1’ symbol may be assigned to each of them. The BPSK symbol may be modulated on the corresponding OFDM tone in the transmitted codeword.
FIG. 8 illustrates one example of a map of GF(32) elements to tone indices. The tone index values 802 illustrated in FIG. 8 range from 1 to 16. Each index value occurs exactly twice in the table, once with BPSK symbol 804 ‘+’ and once with BPSK symbol 804 ‘−’. As illustrated, the map establishes favorable cross-correlation among the preamble codewords because the cross-correlation between any pair of the resulting codewords is zero or negative. (As a reference, the GF(16)-based designs, such as shown in FIGS. 5b and 5c, have maximum cross-correlation of 1.) The non-positive pair-wise correlation corresponding to FIG. 8 allows for the arbitrary increase in preamble power without increasing the false alarm rate. Some loss of orthogonality may be expected due to frequency selectivity.
In an example, ten encoded information bits, 8 bit MAC_ID and 2 bit compatible rate indicator, are divided into two 5 bit blocks and a Reed-Solomon code with k=2, n=31 is employed. The code is extended by adding a 32nd symbol (parity), where




  
    s
    32
  
  =
  
    
      ∑
      
        j
        =
        0
      
      31
    
    ⁢
    
      
    
    ⁢
    
      s
      j
    
  




The available tones may be divided into 32 diversity groups, and each group contains 16 tones each. Trace-like mapping may be used from GF(32) symbols to the 16 tone indices. For any code symbol with exponent k 902 in GF(32), the tone index j 904 is obtained as .alpha..sup.j=.alpha..sup.k+.alpha..sup.16k. Two k's are mapped to the same j:k.sub.1.fwdarw.j and k.sub.2.fwdarw.j if .alpha..sup.k.sup.−.sup.1+1=.alpha..sup.k.sup.−.sup.2.k.sub.1 and k.sub.2 are mapped to the same tone and assigned a BPSK +/− symbol arbitrarily and may be stored in a 31 element lookup table as illustrated in FIG. 9. In FIG. 9, GF(32) generating polynomial is assumed, wherein g(x)=x.sup.5+x.sup.3+1, and notation k=32.fwdarw.0 in GF(32); k=1.fwdarw.1in GF(32).
Reed-Solomon encoding ensures that, between any two codewords, there is at most a single same sign tone collision. Mapping ensures that when there is a same sign collision, there is also an opposite sign collision. Thus, the cross-correlation is always zero or negative. A complete cross-correlation value distribution amongst all (1024*1023)/2 possible codeword pairs is as follows:

















X-Correlation Value
0
−32



Number of Codeword Pairs
523,264
512










In another aspect of the present disclosure, properties of mapping described above, are discussed herein. For example, there may be 22m−1 dimensions, where m is a prime, grouped into 2m equal sized ‘tiles’, each tile containing exactly 2m−1 dimensions. As an illustration, m=5. Thus, a codebook may be designed wherein:

    
    
        1. The codebook size is 22m i.e. 2m information bits can be encoded (in our example, 10 bits)
        2. The codewords have length 22m−1 
        3. The code symbols are three-valued: they can be 0, +1, or −1
        4. Each codeword has exactly one non-zero symbol in every tile
        5. The pair-wise correlation between any codeword pair is zero or less

In an embodiment, a (k=2, n=2m−1) Reed-Solomon code based on m-bit symbols is used. The codewords of this code may be written as

{c0, c1, c2, . . . , cn−1}where ciεGF(2m)

This may be referred to as “C”. Next, code C may be extended by adding a (n+1)th code symbol (parity) to every codeword, obtained as

    
    






  
    c
    n
  
  =
  
    
      ∑
      
        i
        =
        0
      
      
        n
        -
        1
      
    
    ⁢
    
      
    
    ⁢
    
      c
      i
    
  




The extended code may be referred to as Ce.

In this example, a one-to-one mapping may be defined, which maps the elements of GF(2m) to integer pairs (a,b), where aε{1, 2, . . . , 2m−1} and bε{+1,−1}. The purpose of this mapping is that each finite field element, and therefore each RS code symbol, is mapped to a particular tone within a tile and a BPSK symbol. The BPSK symbol is modulated onto the chosen tone in every tile to form the transmitted codeword. The unused tones are modulated with zero.
An arbitrary constant offset γεGF(2m) may be used. If two elements α,βεGF(2m) satisfy α+γ=β then map α to (a,b)=(a,1) and map β to (a,b)=(a,−1). In other words, element pairs that are constant offset γ apart are mapped to the same tone with opposite signs. The exact sign allocation or the exact tone allocation may be arbitrary. The distance properties of the codebook are invariant under permuting the tones or exchanging the sign, as long as the element pairing remains the same.
Any two non-identical codewords obtained with applying the above mapping to the extended RS code Ce has a maximum correlation of zero between them. Since the RS code already ensures that between any two codewords, there may be at most one tone collision with the same sign, it may be shown that in each of those collision cases there is also a tone collision with opposite signs between the same two codewords. Since the nature of the chosen mapping, and the fact that Ce is a linear code, it is sufficient to show that

    
    
        A) If a codeword in Ce, other than the all zero codeword, contains a code symbol equal to zero, then the same codeword should also contain at least one code symbol equal to γ.

If a codeword pair has a same sign tone collision then the sum of those two codewords, which is also a codeword in Ce, has a zero symbol in the corresponding position; and if a codeword pair has an opposite sign tone collision then the sum of those two codewords has a γ symbol in the corresponding position.

    
    


We can show something a little more general, which can be stated as follows:

    
    
        B) Any codeword in Ce consists of either
        
            a single element of GF(2m) repeated 2m times (call this Type I) or
            all elements of GF(2m). In this case, obviously each element of GF(2m) would occur exactly once in the given codeword (call this Type II)

If B) is true, then A) is also necessary true because of the following. Assume B) is true; then if a codeword is of Type I, then it is either the all zero codeword, or it has no zero elements, both of which cases are excepted from the conditions of A). On the other hand, if a codeword is of Type II, then it contains all elements of GF(2m), therefore it necessarily contains γ, so A) is satisfied.

It may be illustrated that B) is true by considering the properties of the underlying RS code C. The generating polynomial g(x) of C can be written as follows:

        
        
    
    






  
    g
    ⁡
    
      (
      x
      )
    
  
  =
  
    
      ∏
      
        i
        =
        1
      
      
        
          2
          m
        
        -
        3
      
    
    ⁢
    
      
    
    ⁢
    
      (
      
        x
        +
        
          α
          i
        
      
      )
    
  




where α is a chosen primitive element of GF(2m). Then every codeword c(x) can be given as

c(x)=f(x)·g(x) where f(x)=b1x+b0, b0,b1εGF(2m)

Here, b0 and b1 are the information symbols representing the 2m information bits. Consider polynomial h(x) defined as

h(x)=x+α−1=x+α2m−2 

and consider polynomial d(x) which is the product of the code polynomial c(x) and h(x).





  
    d
    ⁡
    
      (
      x
      )
    
  
  =
  
    
      
        c
        ⁡
        
          (
          x
          )
        
      
      ·
      
        h
        ⁡
        
          (
          x
          )
        
      
    
    =
    
      
        
          f
          ⁡
          
            (
            x
            )
          
        
        ·
        
          g
          ⁡
          
            (
            x
            )
          
        
        ·
        
          h
          ⁡
          
            (
            x
            )
          
        
      
      =
      
        
          
            f
            ⁡
            
              (
              x
              )
            
          
          ·
          
            
              ∏
              
                i
                =
                1
              
              
                
                  2
                  m
                
                -
                2
              
            
            ⁢
            
              
            
            ⁢
            
              (
              
                x
                +
                
                  α
                  i
                
              
              )
            
          
        
        =
        
          
            
              f
              ⁡
              
                (
                x
                )
              
            
            ·
            
              
                
                  x
                  
                    
                      2
                      m
                    
                    -
                    1
                  
                
                +
                1
              
              
                x
                +
                1
              
            
          
          =
          
            
              
                f
                ⁡
                
                  (
                  x
                  )
                
              
              ·
              
                
                  ∑
                  
                    i
                    =
                    0
                  
                  
                    
                      2
                      m
                    
                    -
                    2
                  
                
                ⁢
                
                  
                
                ⁢
                
                  x
                  i
                
              
            
            =
            
              
                (
                
                  
                    b
                    0
                  
                  +
                  
                    b
                    1
                  
                
                )
              
              ·
              
                
                  ∑
                  
                    i
                    =
                    0
                  
                  
                    
                      2
                      m
                    
                    -
                    2
                  
                
                ⁢
                
                  
                
                ⁢
                
                  x
                  i
                
              
            
          
        
      
    
  




Looking at d(x), either d(x)=0 (when b0=b1), or else d(x) is a degree 2m−2 polynomial with constant coefficients. In either case, if d(x)=c(x)·h(x), h(x) represents a simple linear recursion between the consecutive elements of c(x), which may be given as follows:

ci+α−1·cmod(i+1,2m−1)=b0+b1 

or written in a different form

cmod(i+1,2m−1=α·(ci+b0+b1)

Due to the first degree linear recursion, if cicj then ci+1=cj+1 and so on, so the consecutive elements of a given codeword in C should form cycles under the recursion. Any cycle length should divide the number of elements in the cyclic multiplicative subgroup of GF(2m), which number is 2m−1. Since m is prime, 2m−1 is also prime, therefore the only possibilities for the cycle length is 1 or 2m−1. This means that the code symbols in any code word of C are either all identical or they are all distinct. This means that B) is true for at least code C.

If a codeword in C is of Type I, then all its code symbols are identical, for instance,

λ=c0=c1= . . . =cn−1 

In this case, the extension symbol cn is given as





  
    c
    n
  
  =
  
    
      
        ∑
        
          i
          =
          0
        
        
          n
          -
          1
        
      
      ⁢
      
        
      
      ⁢
      
        c
        i
      
    
    =
    
      
        
          (
          
            
              2
              m
            
            -
            1
          
          )
        
        ·
        λ
      
      =
      λ
    
  




therefore the extended codeword is also of Type I.

On the other hand, if a codeword in C is of Type II, then it contains all elements of GF(2m), except one. This may be referred to as missing element δ. The sum of all elements in GF(2m) is zero




  
    δ
    +
    
      
        ∑
        
          i
          =
          0
        
        
          n
          -
          1
        
      
      ⁢
      
        
      
      ⁢
      
        c
        i
      
    
  
  =
  0




and by the definition of the parity symbol





  
    c
    n
  
  =
  
    
      
        
          ∑
          
            i
            =
            0
          
          
            n
            -
            1
          
        
        ⁢
        
          
        
        ⁢
        
          
            c
            i
          
          ⁢
          
            
          
          ⟶
          
            
          
          ⁢
          
            c
            n
          
        
      
      +
      
        
          ∑
          
            i
            =
            0
          
          
            n
            -
            1
          
        
        ⁢
        
          
        
        ⁢
        
          c
          i
        
      
    
    =
    0
  




Therefore cn=δ, so the extended codeword includes the missing element and then the extended codeword is also Type II. B) is also true for the extended code Ce. The mapping discussed above ensures zero or negative correlation between the preamble codewords.

Embodiments disclosed herein provide some examples of preamble configuration in wireless communication systems. There are other embodiments and implementations. Various disclosed embodiments may be implemented in an AP (or an AN), an AT, and other communication devices. The disclosed examples provide various design components to achieve optimal performance. For instance, OFDM tones for different ATs preambles are almost orthogonal. Reed-Solomon code based tone selection may be implemented to maximize orthogonality between ATs' preambles. OFDM tones used for preamble may be spread across the whole bandwidth to ensure full frequency diversity. Adaptive resource allocation is also achieved, for instance, preamble gain may be adjusted based on DRC feedback (channel conditions). Robust performance is also achieved in that the proposed design is insensitive to channel environment (Doppler, delay profile, etc.) Disclosed embodiments also provide for simple implementation at the transmitter and receiver.
At the transmitter, a scheduler first determines the information bits to be included in the preamble. Depending on the chosen encoding scheme, the information bits may be divided into groups and the encoding of each group is carried out. Then the resulting code symbols are combined to generate the preamble. Finally, the preamble is superimposed on the traffic channel by substituting the traffic symbols at the tones in which the preamble symbol power is not zero. This is illustrated in processes 1000, 1100 and 1200 in FIGS. 10, 11 and 12. In FIG. 10 for instance, information bits are determined in 1002. The information bits are grouped into at least two groups in 1004 and encoding is carried out one each group. In 1006, a preamble tone location is determined based on one of the two groups. For instance, the preamble tone location may be determined based on an 8 bit MAC_ID as illustrated in FIG. 5b. A preamble value to map to the preamble tone location is determined in 1008, based on a second group. The second group of information bits may comprise a 2 bit compatible rate indicator as illustrated in FIG. 5b. Tone mapping is performed in 1010.
In FIG. 11, after the information bits to be included in the preamble are determined in 1102, the preamble tone location is determined based on all the information bits. In this scenario for instance, it may be determined tens bits are to be included in the preamble. All ten bits will be used to determine the tone location. Symbols carried on the preamble tones may not explicitly indicate a ten bit preamble frame. Returning to FIG. 11, tone mapping is performed at 1006. Symbols carried on the preamble tones may be some fixed or time-varying sequence to signal information other than a ten bit preamble frame. For instance, the symbols carried on the preamble may indicate an on or off state of the preamble. In FIG. 12, after the information bits to be included in the preamble are determined in 1202, the preamble as well as the tone location is determined based on all the bits. Tone mapping is performed in 1206.
In the receiver, the AT may first determine the set of all possible preamble code words directed to it and then correlate the received signal with each of those possible preamble codewords. The correlation can be carried out in the frequency domain or equivalently in the time domain. If the maximum correlation value exceeds an appropriately selected threshold, then the decoding is declared successful and the preamble codeword with the maximum correlation is forwarded to the traffic channel decoder. Otherwise, the decoding is declared unsuccessful. The correlation can be carried out coherently if channel estimate is available or non-coherently otherwise. This process at the receiver is illustrated in FIG. 13. The process begins in 1301, and in 1302, a set of monitored MAC_IDs is determined. All possible codewords are generated at 1303. The received signal is collected at 1304 and channel estimation is performed at 1305. At 1308, a correlator correlates the received signal with each of the possible preamble codewords. A maximum correlation value is selected at 1310 and if it is determined in 1312 that a maximum correlation value is exceeded at 1312, an erasure is declared at 1316. If a maximum correlation value is not exceeded at 1312, successful decoding is declared at 1314 and the preamble information bits are output.
In another embodiment, preamble detection may be done in the receiver in multiple steps by first decoding a subset of the preamble information bits and then decoding the remaining preamble information bits. For example, as a first step, energy thresholding of the tones corresponding to the receiver's MAC_ID may be carried out and when the threshold criterion is met, the compatible rate field may be decoded by using the modulated symbols on the tones identified in the first step. This multi-step receiver process is applicable, for example, when the encoding structure shown in FIG. 5b is used. This is illustrated in FIG. 14. The process starts at 1401. The received signal is collected at 1410 and channel estimation is performed at 1412. In 1402, a first set of information bits or MAC_IDs are monitored and valid tone locations are determined at 1404. MAC_ID with maximum energy is selected at 1408. It is determined if the maximum energy is greater than a threshold at 1414 and if so, the first set of information bits are generated and a valid set of codewords is determined and modulated on the used tones at 1418. This valid set of codewords corresponds to the second set of information bits. Correlation is carried out at 1420 and the codeword corresponding to the maximum correlation value is selected at 1422. This corresponds to the second set of bits. Going back to 1414, if the maximum energy of the selected MAC_ID is less than the threshold, an erasure is declared.
FIG. 15 is a block diagram illustrating a transmitter according to one example. Scheduling means 1501, encoding means 1502, processing means 1504, memory means 1506, means for determining information bits 1508, means for grouping information bits 1510, correlator means 1512, means for performing tone mapping 1514, means for determining preamble value 1516 and means for determining tone locations 1518 may be coupled together as shown in the preceding embodiments. In addition they may be coupled together via communication bus 1520 shown in FIG. 15.
FIG. 16 is a block diagram illustrating a receiver according to one example. Correlator means 1601, decoding means 1602, processing means 1604, memory means 1606, summing means 1608, means for collecting received signal 1610, means for determining valid tone locations 1612, channel estimation means 1614, means for determining set of MAC_IDs 1616, means for generating codewords 1618, means for selecting max correlator value 1620, means for determining valid codewords 1622 and means for determining if correlation value is greater than threshold 1624 may be coupled together as shown in the preceding embodiments. In addition they may be coupled together via communication bus 1625 shown in FIG. 16.
Various units/modules and embodiments disclosed herein may be implemented in hardware, software, firmware, or a combination thereof. In a hardware implementation, various units may be implemented within one or more application specific integrated circuits (ASIC), digital signal processors (DSP), digital signal processing devices (DSPDs), field programmable gate arrays (FPGA), processors, microprocessors, controllers, microcontrollers, programmable logic devices (PLD), other electronic units, or any combination thereof. In a software implementation, various units may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory unit and executed by a processor (or processing unit). The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means known in the art.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in random access memory (RAM), flash memory, read only memory (ROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in an AT. In the alternative, the processor and the storage medium may reside as discrete components in an AT.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

## Claims

1. A method for wireless communications, the method using time slots, each time slot having two half-slots, for transmitting signals, each half-slot having a number of tiles, each tile having a number of tones, the method being implemented by a communication device comprising a processor, the method comprising:
receiving a plurality of information bits;
grouping the plurality of information bits into a first group and a second group;
encoding, via the processor, the first group using an error control code to obtain a plurality of code symbols si;
determining a location of each of a plurality of tones in the number of tiles based on the plurality of code symbols si to obtain a plurality of selected tones;
encoding the second group to obtain a plurality of modulation symbols; and
mapping the plurality of modulation symbols onto the plurality of selected tones.

2. The method as in claim 1, wherein the error control code comprises Reed-Solomon encoding.

3. The method as in claim 1, wherein the error control code comprises extended Reed-Solomon encoding.

4. The method as in claim 3, wherein the extended Reed-Solomon encoding comprises code symbol repetition or puncturing.

5. The method as in claim 1, wherein encoding the second group comprises code symbol repetition or puncturing.

6. The method as in claim 1, wherein the error control code comprises pseudorandom encoding.

7. The method as in claim 6, further comprising:
mapping the plurality of code symbols si to a tone location within a tile.

8. The method as in claim 7, wherein the tile comprises contiguous tones.

9. The method as in claim 1, further comprising:
determining a modulation of at least one tone, wherein the modulation comprises Reed-Solomon encoding; and
mapping the plurality of code symbols si to a plurality of information element pairs, wherein each pair comprises a tone location and a symbol modulated on the at least one tone.

10. The method as in claim 1, wherein the error control code comprises Reed-Solomon encoding, and further comprising:
determining a modulation of used tones, the modulation comprising Reed-Solomon encoding;
mapping the plurality of code symbols si to an associated pair of tone location and modulation symbol;
mapping two code symbols to one tone location; and
mapping the two code symbols to two different modulation symbols, wherein a sum of the two code symbols mapped to a same tone is a constant in a finite field.

11. The method of claim 1, wherein an index i of the plurality of code symbols si indicates a tile in which a tone is located.

12. The method of claim 1, further comprising transmitting the plurality of modulation symbols on the plurality of selected tones.

13. An apparatus for wireless communications, the apparatus using time slots, each time slot having two half-slots, for transmitting signals, each half-slot having a number of tiles, each tile having a number of tones, comprising:
means for receiving a plurality of information bits;
means for grouping the plurality of information bits into a first group and a second group;
means for encoding the first group using an error control code to obtain a plurality of code symbols si;
means for determining a location of each of a plurality of tones in the number of tiles based on the plurality of code symbols si to obtain a plurality of selected tones;
means for encoding the second group to obtain a plurality of modulation symbols; and
means for mapping the plurality of modulation symbols onto the plurality of selected tones.

14. The apparatus as in claim 13, wherein the error control code comprises means for Reed-Solomon encoding.

15. The apparatus as in claim 13, wherein the error control code comprises means for extended Reed-Solomon encoding.

16. A computer program product, comprising:
a non-transitory computer-readable medium comprising:
code for causing a computer to receive a plurality of information bits;
code for causing a computer to group the information bits into a first group and a second group;
code for encoding the first group using an error control code to obtain a plurality of code symbols si;
code for causing a computer to determine a location of each of a plurality of tones in a number of tiles, each tile having a number of tones, based on the code symbols si to obtain a plurality of selected tones;
code for causing a computer to encode the second group to obtain a plurality of modulation symbols; and
code for causing a computer to map the plurality of modulation symbols onto the selected tones.

17. An apparatus for wireless communication, the apparatus using time slots, each time slot having two half-slots, for transmitting signals, each half-slot having a number of tiles, each tile having a number of tones, comprising:
a processor configure to:
receive a plurality of information bits;
group the plurality of information bits into a first group and a second group;
encode the first group using an error control code to obtain a plurality of code symbols si;
determine a location of each of a plurality of tones in the number of tiles based on the plurality of code symbols si to obtain a plurality of selected tones;
encode the second group to obtain a plurality of modulation symbols; and
map the plurality of modulation symbols onto the plurality of selected tones; and

a memory in communication with the processor.

18. The apparatus of claim 17, wherein an index i of the plurality of code symbols si indicates a tile in which a tone is located.

19. The apparatus of claim 17, further comprising transmitting the plurality of modulation symbols on the plurality of selected tones.

20. The apparatus of claim 17, wherein the error control code comprises Reed-Solomon encoding.

21. The apparatus of claim 17, wherein the error control code comprises extended Reed-Solomon encoding.

22. The apparatus of claim 21, wherein the extended Reed-Solomon encoding comprises code symbol repetition or puncturing.

23. The apparatus of claim 17, wherein encoding the second group comprises code symbol repetition or puncturing.