Abstract:
In a system and method for wireless communication with a transmitter and a receiver, the transmitter is operable to wirelessly transmit digital information to the receiver with a plurality of data transmission rates using a modulation format, wherein the digital information is transmitted using a transmission frame including a header part and a payload part, and the header part comprises a preamble, wherein the modulation format is the same for all data transmission rates and wherein the data transmission rate is at least encoded into the preamble of the frame, and wherein the receiver is configured to determine the data transmission rate when receiving the preamble.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/427,265 filed on Dec. 27, 2010, entitled “PREAMBLE DESIGN AND PROCESSING FOR ON-THE-FLY, FRAME-BY-FRAME DATA RATE DETECTION IN WIRELESS RECEIVERS”, which is incorporated herein in its entirety 
     
    
     TECHNICAL FIELD 
       [0002]    The present disclosure relates to a system, method, transmitter, and receiver for frame-based wireless data transmissions. 
       BACKGROUND 
       [0003]    Frame by frame or packet based data transmission is used in a wide variety of protocols. IEEE 802.15.4 defines a standard for wireless transmission with a data transmission rate of up to 250 kbps using a Direct Sequence Spread Spectrum (DSSS) modulation wherein a variety of carrier frequencies can be used in the physical layer. The most widely used variant of the standard for example uses the 2.4 GHz band for transmission with a fixed data rate of 250 kb/s. However, the fixed data rate may not be appropriate for all applications. Beside the standard compliant operating mode, a variety of manufacturers thus provide for proprietary modes that allow for additional speeds of 125 kbps, 500 kbps, 1 Mbps and 2 Mbps or a subset thereof. 
         [0004]    With mobile devices battery life and consequently power consumption is an important consideration. In a wireless transceiver the radio when transmitting draws much higher power than the rest of the system in any of the other operational states. The radio transmitter thus is generally kept in a deep power-down state and switched on only for the time it takes to transmit the data. In multi-rate wireless transceivers, the power required for transmitting a data frame is proportional to the time it takes to put it on the air and independent of the rate of transmission. It then follows that the highest rate, permissible by the external limiting factors (system configuration, application requirement, channel characteristics etc.) is to be selected for each individual transmit operation. If, however, the decision is made independently by the transmitting device then the situation, illustrated by the simple wireless network configuration shown on  FIG. 1 , arises: a receiving device  110  has to learn the transmit rate from the received frame itself. As shown in  FIG. 1 , the first transmitter  120  and second transmitter  130  each constitute low power nodes which use the highest available data rate allowed by its link quality to save transmit power. The coordinator or receiver  110  needs to synchronize itself without advance knowledge of the incoming frame data rate. 
         [0005]    In the universally adopted solution the initial part of a frame is always modulated at the lowest available rate and rate switching occurs only immediately after this. Referring to  FIG. 2 , again a transmitter  210  is sending a wireless transmission  220 ,  230  to a receiver  240 . The rate switching happens in the Header part  230  when the receiver  240  is already decoding the frame  220 . In wireless networks, for instance the ones built on the IEEE 802.15.4 standard, in which the overwhelming majority of data packets typically carry a few tens of byte payloads this leads to gross inefficiency as the comparisons on  FIG. 3  indicate. 
       SUMMARY 
       [0006]    There is a need for an improved system of a set of preambles and an associated preamble processing method. 
         [0007]    According to an embodiment, a system for wireless communication may comprise a transmitter and a receiver, wherein the transmitter is operable to wirelessly transmit digital information to the receiver with a plurality of data transmission rates using a modulation format, wherein the digital information is transmitted using a transmission frame including a header part and a payload part, wherein the header part comprises a preamble, wherein the modulation format is the same for all data transmission rates and wherein the data transmission rate is at least encoded into the preamble of the frame, and wherein the receiver is configured to determine the data transmission rate when receiving the preamble. 
         [0008]    According to a further embodiment, the header part may comprise a preamble, and a start frame delimiter. According to a further embodiment, the preamble may define one of a plurality of data transmission rate groups and the start frame delimiter can be configured to further define different data transmission rates within each data group. According to a further embodiment, the preambles for the respective data rate groups can be correlated with a received preamble to provide for preamble detection in a receiver. According to a further embodiment, a transmission time for the preamble and start frame delimiter for each data rate group may have a different length and is defined by a repetition of a chip sequence which encodes a data signal, wherein the chip sequence comprises a predefined chip pattern for each data rate group. According to a further embodiment, the preambles can be encoded to be DC-free. According to a further embodiment, the system may comprise a high data rate group, a medium data rate group and a low data rate group. According to a further embodiment, the high data rate group may comprise a first and second data transmission rate, wherein the medium data rate group comprises a third data transmission rate, and wherein the low data rate group comprises a fourth and fifth data transmission rate. According to a further embodiment, the preamble for the high data rate group may comprise a preamble pattern consisting of eight chips which is repeated eight times, wherein the preamble for the medium data rate group comprises a preamble pattern consisting of 16 chips which is repeated eight times, and wherein the preamble for the low data rate group comprises a preamble pattern consisting of 32 chips which is repeated eight or 16 times. According to a further embodiment, each chip of the eight chips for the high data rate group can be ‘11110000’; two consecutive chips for the 16 chips for the medium data rate group are ‘11001011 — 01101000’, and four consecutive chips for the 32 chips for the low data rate group are ‘11100000 — 01110111 — 10101110 — 01101100’. According to a further embodiment, the start frame delimiter may comprise one of two distinct patterns for each data transmission rate in the high data rate group and in the low data rate group. According to a further embodiment, a first start frame delimiter pattern in the high data rate group may comprise 16 chips, a second start frame delimiter pattern in the medium data rate group comprises 32 chips and a third start frame delimiter pattern in the low data rate group comprises either 64 or 128 chips. According to a further embodiment, the first start frame delimiter pattern may define a data transmission rate of 2 Mbps or 1 Mbps, the second start frame delimiter pattern may define a data transmission rate of 500 kbps, and the third start frame delimiter pattern may define a data transmission rate of either 250 kbps or 125 kbps. According to a further embodiment, the receiver may comprise an automatic gain control unit. According to a further embodiment, the modulation format for all data transmission rates can be a 2 MBaud MSK modulation. According to a further embodiment, the preamble for the data transmission rates in the low data rate group can be compliant with IEEE 802.15.4. 
         [0009]    According to another embodiment, a method for wireless communication may comprise: wirelessly transmitting digital information with a plurality of selectable data transmission rates using a modulation format, wherein the digital information is transmitted using a transmission frame including a header part and a payload part, wherein the header part comprises a preamble, and wherein the modulation format is the same for all data transmission rates and the data transmission rate is at least encoded into the preamble of the frame. 
         [0010]    According to a further embodiment of the method, the header part comprises a preamble, and a start frame delimiter. According to a further embodiment of the method, the preamble may define one of a plurality of data rate groups and the start frame delimiter can be configured to further define different data transmission rates within each data group. According to a further embodiment of the method, the method may further comprise: correlating the preambles for the respective data rate groups with a received preamble to provide for preamble detection in a receiver. According to a further embodiment of the method, a transmission time for the preamble and start frame delimiter for each data rate group may have a different length and is defined by a repetition of a chip sequence which encodes a data signal, wherein the chip sequence comprises a predefined chip pattern for each data rate group. According to a further embodiment of the method, the preambles can be encoded to be DC-free. According to a further embodiment of the method, a high data rate group, a medium data rate group and a low data rate group may be used. According to a further embodiment of the method, the high data rate group may comprise a first and second data transmission rate, wherein the medium data rate group may comprise a third data transmission rate, and wherein the low data rate group may comprise a fourth and fifth data transmission rate. According to a further embodiment of the method, the preamble for the high data rate group may comprise a preamble pattern consisting of eight chips which is repeated eight times, wherein the preamble for the medium data rate group may comprise a preamble pattern consisting of 16 chips which is repeated eight times, and wherein the preamble for the low data rate group may comprise a preamble pattern consisting of 32 chips which is repeated eight or 16 times. According to a further embodiment of the method, each chip of the eight chips for the high data rate group can be ‘11110000’; two consecutive chips for the 16 chips for the medium data rate group can be ‘11001011 — 01101000’, and four consecutive chips for the 32 chips for the low data rate group can be ‘11100000 — 01110111 — 10101110 — 01101100’. According to a further embodiment of the method, the start frame delimiter may comprise one of two distinct patterns for each data transmission rate in the high data rate group and in the low data rate group. According to a further embodiment of the method, a first start frame delimiter pattern in the high data rate group may comprise 16 chips, a second start frame delimiter pattern in the medium data rate group may comprise 32 chips and a third start frame delimiter pattern in the low data rate group may comprise either 64 or 128 chips. According to a further embodiment of the method, the first start frame delimiter pattern may define a data transmission rate of 2 Mbps or 1 Mbps, the second start frame delimiter pattern may define a data transmission rate of 500 kbps, and the third start frame delimiter pattern may define a data transmission rate of either 250 kbps or 125 kbps. According to a further embodiment of the method, the modulation format for all data transmission rates can be a 2 MBaud MSK modulation. According to a further embodiment of the method, the preamble for the data transmission rates in the low data rate group can be compliant with IEEE 802.15.4. 
         [0011]    According to yet another embodiment, a receiver for wireless communication may be operable to wirelessly receive digital information with a plurality of data transmission rates using a modulation format, wherein the received digital information comprises a transmission frame including a header part comprising a preamble and a payload part, wherein the receiver is configured to determine a data transmission rate when receiving the preamble, wherein the modulation format is the same for all data transmission rates and the data transmission rate is at least encoded into the preamble of the frame. 
         [0012]    According to yet another embodiment, a transmitter for wireless communication may be operable to wirelessly transmit digital information with a plurality of data transmission rates using a common modulation format, wherein the digital information is transmitted using a transmission frame including a header part and a payload part, wherein the header part comprises a preamble, wherein the data transmission rate is encoded at least into the preamble of the frame. 
         [0013]    According to yet another embodiment, a preamble for use in a wireless communication system in which a transmitter wirelessly transmits digital information with a plurality of data transmission rates using a common modulation format is part of a transmission frame comprising a header part and a payload part, wherein the header part comprises the preamble, wherein the preamble is designed to encode the data transmission rate for each data transmission rate of the plurality of data transmission rates. 
         [0014]    According to a further embodiment of the preamble, for a 2 Mbit and a 1 Mbit data transmission rate, the preamble may repeat the pattern ‘11110000’ eight times, for a 500 kbit data transmission rate, the preamble may repeat the pattern ‘1100101101101000’ eight times, for a 250 kBit data transmission rate, the preamble may repeat the pattern ‘11100000 01110111 10101110 01101100’ eight times, and for a 125 kBit data transmission rate, the preamble may repeat the pattern ‘11100000 01110111 10101110 01101100’ sixteen times. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    A more complete understanding of the present disclosure and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings wherein: 
           [0016]      FIG. 1  displays a simple wireless network configuration where dynamic determination of the air data rate is required. 
           [0017]      FIG. 2  shows that in the conventional systems rate switching occurs only after an initial segment transmitted at the lowest admissible air rate. 
           [0018]      FIG. 3  illustrates the inefficiency of the standard air rate switching for short payloads and compares it to the optimal solution of transmitting the whole frame at the same air rate. 
           [0019]      FIG. 4  displays the set of standard DSSS32 sequences used in spreading MSK symbols at different air data rates. 
           [0020]      FIG. 5  displays the set of proprietary DSSS16 sequences used in spreading MSK symbols at the 500 kbps air data rate. 
           [0021]      FIG. 6  lists the preamble patterns and start frame delimiters (SFD) used with frames at the standard and the different proprietary air data rates. 
           [0022]      FIG. 7  tabulates the frame formats different for the different air rates and shows how the preambles scale with the data rate. 
           [0023]      FIG. 8  shows that determining the air data rate from the frame preamble require running as many preamble searches in parallel than there are possible preamble air data rates. 
           [0024]      FIG. 9  shows a flow chart of data rate selection according to various embodiments; 
           [0025]      FIG. 10  shows a more general flow chart of the overall frame detection/acquisition according to various embodiments; 
           [0026]      FIG. 11  shows the timing diagram of an admission control example; 
           [0027]      FIG. 12  shows the chain of blocks that are involved in preamble processing; 
           [0028]      FIG. 13  shows that the preamble and the payload are processed at different rates and the SFD plays a role in selecting the payload data rate. 
       
    
    
       [0029]    While embodiments of this disclosure have been depicted, described, and are defined by reference to example embodiments of the disclosure, such references do not imply a limitation on the disclosure, and no such limitation is to be inferred. The subject matter disclosed is capable of considerable modification, alteration, and equivalents in form and function, as will occur to those ordinarily skilled in the pertinent art and having the benefit of this disclosure. The depicted and described embodiments of this disclosure are examples only, and are not exhaustive of the scope of the disclosure. 
       DETAILED DESCRIPTION 
       [0030]    According to various embodiments, a system of a set of preambles and an associated preamble processing method may provide for
       transmitting the preamble and start-of-frame delimiter (SFD) at the rate of the payload; and   on-the-fly detection of the data rate of the incoming frames from the preamble and the SFD.       
 
         [0033]    According to further embodiments, the system and method:
       should be applicable with legacy, IEEE 802.15.4 compliant, radio designed for 2 MHz chip rate   should be suitable for zero-IF receiver; and   should support the standard IEEE 802.15.4 frame format.       
 
         [0037]    The system and method according to various embodiments disclosed herein may meet all the foregoing requirements and additionally
       uses 2 Mbaud MSK modulation;   varies the data bit rate by applying standard and proprietary spectrum spreading as well as industry-standard digital data encoding;   specifies a suite of preambles such that
           each preamble specifically designed and optimized for one of the data rates;   all preamble patterns are DC-free, thus can be used with a zero-IF receiver, even though MSK signaling is used; and   the preambles have good cross-correlation properties in order to facilitate quick selection, even in the presence of carrier frequency offset between the transmitter and the receiver   
           defines the preamble processing method that utilizes the properties of the preamble suite for frame detection and on-the-fly data rate selection during preamble processing of an incoming frame.       
 
         [0045]    In order to improve the efficiency of framing of packets in networks that support the simultaneous use of multiple data rates the header part of the frame should scale together with the payload, i.e. the whole frame should be transmitted at the same bit rate. It follows that the data rate should be encoded into and determined from the preamble of a frame. In a multi-rate receiver data rate selection thus occurs “on-the-fly”, i.e. it is an integral part of the frame acquisition process. 
         [0046]    Multi-rate devices in a network must coexist and interact with devices that conform to the underlying standard; in our case to IEEE 802.15.4. 
         [0047]    The multi-rate system described in the present disclosure uses the 2 Mbaud MSK modulation format standardized in IEEE 802.15.4, satisfies the spectral mask and provides for the same channel occupation and center frequency selections. It also includes the standard 250 kbps frame format in the suite of defined frame formats. Direct Sequence Spectrum Spreading (DSSS) and 1/2 rate convolutional encoding is applied in combination for setting the different data rates. 
         [0048]    DSSS is a mapping from data bits to a sequence of a smaller unit called “chip”. In the present case an MSK symbol constitutes a chip, thus when it is appropriate the term “MSK chip” (or simply “chip”) will be used in the sequel. 
         [0049]    Two DSSS mappings are defined: the standard 32-chip DSSS32 on  FIG. 4  and the proprietary 16-chip DSSS16 on  FIG. 5 . Both map 4-bit nibbles of the data into the corresponding chip sequence selected by the nibble. The first MSK chip transmitted is obtained as (C 0  xor X), where X is the content of a binary state variable initialized to 0 at the start of the transmission; chips C 1 , C 2 , . . . are applied directly as input to the MSK modulation. After the last chip, the value in the last column of the table (X) is used to update the state variable X before the next DSSS symbol (i.e., chip sequence). 
         [0050]    DSSS32 is constructed such that it results in waveforms identical to those of the DSSS-OQPSK modulation specified for the 2.4 GHz ISM-band operation by the IEEE 802.15.4 standard. Since 4 bits map to 32 chips, the spreading factor is 32/4=8, hence 2 MCps chip rate corresponds to 250 kbps bit rate. 
         [0051]    DSSS16 is new and proprietary, and constructed to support reliable distinction between the 500 kbps air data rate and the other data rates in the receiver. Since 4 bits map to 16 chips, the spreading factor is 16/4=4, hence 2 MCps chip rate corresponds to 500 kbps bit rate. 
         [0052]    The suite of preambles (preamble patterns+SFD) defined for the system described in the present disclosure is specified on  FIG. 6 . 
         [0053]    Beyond compatibility with IEEE 802.15.4 networks (see above) preambles in the suite also have the following essential properties:
       a shown in  FIG. 7 , header duration scales with the selected air data rate although the MSK baud rate is constant;   cross-correlation between any two of the different preamble waveforms is low, even when the waveforms are distorted by carrier frequency offset;   all preamble patterns are DC-free, thus can be used with a zero-IF receiver, even though MSK signaling is used.       
 
         [0057]    1 Mbps data is encoded with an (industry standard) 1/2 rate convolutional code and the result is transmitted at 2 Mbps. The same encoding is applied to 125 kbps data and the result is transmitted a 250 kbps. Thus there are only 3 different preamble patterns in the suite: one for 2 Mbps, 500 kbps and 250 kbps each ( FIG. 6 ), and the ambiguity is resolved by the unique SFD pattern assigned to each data rate. 
         [0058]    The 250 kbps preamble pattern and SFD in the suite is taken from the IEEE 802.15.4 PHY standard. Since standard compliant devices will successfully demodulate frames with this preamble, the payload shall contain a standard compliant MAC-frame to ensure coexistence. If the MAC-protocol is proprietary, the PHY format should also be different from the one defined in the standard, so that standard compliant devices could silently discard the frame before parsing it. This is achieved by replacing the standard pattern — 250 by a software configurable one. 
         [0059]    The following selection rules apply to the software configurable SFD patterns:
       pattern — 2000 and pattern — 1000 must differ at least in 4 bits from each other and the 1111 — 0000 preamble pattern;   pattern — 125 must be selected such that the two DSSS symbols transmitted first differ from the selected (standard or proprietary) pattern — 250;   the first transmitted DSSS symbol in pattern — 125 and pattern — 250 must be selected from rows #1 through #15 of the DSSS32 table ( FIG. 4 );   the first transmitted DSSS symbol in pattern — 500 must be selected from rows #1 through #15 of the DSSS16 table ( FIG. 5 ).       
 
         [0064]    Using the suite of defined preambles ( FIG. 6 ) air data rate can be detected in two stages:
       1 as shown in  FIG. 8 , the input is simultaneously monitored for the presence of the 2 Mbps, 500 kbps, 250 kbps preambles until the presence of one of them can be detected with sufficient reliability;   2 after a valid preamble is located and establishes symbol boundary search is initiated for the Start Frame Delimiter that may further distinguish between air data rates.       
 
         [0067]    Header processing is required to work at least as reliably as the demodulation. To meet this requirement longer preamble and 16-bit SFD is defined for frames where the payload data rate is lower than the air data rate of the preamble and the SFD as at a given signal-to-noise ratio, the bit-error probability differs for the two rates. This is the case with the 125 kbps and 1 Mbps payload rates. For instance, the 2 Mbps SFD is received with 3% bit-error-rate probability when for the same frame the 1 Mbps payloads can be demodulated with a BER (Bit-Error-Rate) of 1/10000. 
         [0068]    A known technique for tolerating the relatively high bit-error probability is to handle a certain number of bit errors forgivingly in the SFD match.
       For the 125 kbps data rate the last decoded four nibbles and the nibbles of pattern — 125 must match in at least 3 nibble positions.   At 1 Mbps the match tolerates single bit or maximum 2 noncontiguous 2-bit burst differences in the comparison of the last received 16 bits and pattern — 125. (Simultaneous isolated single bit mismatches at both ends of the pattern constitute a single 2-bit mismatch burst.)       
 
         [0071]    Search for the SFD pattern is started once the header data rate has been determined. The logic flow of the process is presented in  FIG. 9 . The method starts in step  610  and first tests in step  620  for a 2 Mb/s preamble. If not found, the routine moves to step  630  for checking the 500 kp/s preamble and in step  640  for finding the 250 kb/s preamble. If one of these preambles has been found, the routine follows up with steps  622 ,  624 ,  626 ,  628  for the 2 Ms/s preamble, steps  632 ,  634 ,  636  for the 500 kb/s preamble and steps  642 ,  644 ,  646 ,  648 , and  650  for the 250 kb/s preamble. In steps  626  and  628  a test between the patterns distinguishing between the 2 Mb/s and 1 Mb/s start frame delimiters is made and the routine branches to either step  660  or  665 . In the 500 kb/s merely a confirmation test is made in the step  636 . In the 250 kb/s branch, steps  646 ,  648  and  650  are used to distinguish between the standard frame, the proprietary 250 kb/s frame and the 125 kb/s frame. Thus, this routine branches into one of three branches with steps  675 ,  680  or  685 . The routine ends with the common reception of the LENGTH field  690  and the payload bytes in step  695 . 
         [0072]    The operation mode of the signal processing path is switched once the preamble is detected and possibly switched again, after the SFD is detected. This requires defining a time-out mechanism for the SFD search, otherwise failure to locate the valid SFD could cause the receiver to stall or collect garbage frames. The time-out mechanism is shown as part of the flow of the overall frame detection/acquisition on  FIG. 10 . The routine starts in step  710  and starts the automatic gain control in step  714 . In step  716 , the digital demodulator is started and in step  718 , it is checked whether a preamble has been acquired. if yes, the routine moves to step  722 . If no, the AGC gain is changed through steps  720  and  712  and the routine moves again to step  716 . In step  722 , the signal flow is switched to bit and byte aligned demodulation at the detected preamble air data rate, the start frame delimiter detectors are activated and the AGC is controlled to hold the current gain. In step  724  it is tested whether a preamble loss occurred and if so a time out is initiated in step  726 . In step  728  it is checked whether the start frame delimiter has been detected and if yes, the routine moves to step  732 . If no, a time out is initiated in step  730  and the routine turns to step  712  to adjust the gain. In step  732 , the signal path is switched to the detected payload data rate and in step  734 , bytes are transferred to the MAC layer. the routine then checks whether the last byte has been transferred and continues with step  712  if so and otherwise repeats the transfer in step  734 . 
         [0073]    The preambles are composed by repeating  3  distinct MSK chip sequences: 
         [0074]    ∥11110000∥ ∥11001011 01101000∥ ∥11100000 10101110 01101100∥ 
         [0075]    for 2 Mbps, 500 kps and 250 kbps, respectively. 
         [0076]    Bipolar scalar output from a non-coherent MSK demodulator is correlated against the expected preamble chip patterns in a sliding time window twice in a chip-time. The correlations are evaluated by matched filters. They are computed simultaneously for each air data rate and at several different lengths at the same time. The outputs from the matched filters are weighted to make them comparable when they compete for a shared hardware resource. 
         [0077]    Preamble acquisition needs to be sufficiently sensitive and reliable to level the robustness of the payload demodulation, so as not to become a limiting factor for the performance. 
         [0078]    The various embodiments aim for shortest preamble length and best hardware efficiency, the conventional non-coherent preamble detector cannot meet the requirements on miss-detect probability and false alarm probability at the same time. 
         [0079]    Better detection performance can be obtained by a coherent or block-noncoherent preamble demodulator. However this is only possible after AFC has compensated for the carrier frequency offset. A free-running compensation (performed simultaneously per each air data rate) would result in unacceptable hardware requirements and would increase the power consumption as well. Instead, AFC should be a shared resource between the different data rates and its operation should be triggered as a one shot execution based on a known symbol boundary and a known air data rate. Since this information is only available following detection, a solution has to be provided to break out of the vicious cycle. 
         [0080]    The solution to this problem is to allow a relatively high false alarm rate for the detector by setting a very low trigger threshold level, and letting the AFC decide if the detection event is rejected or accepted after CFO compensation is accomplished and coherent or block-coherent correlation can provide the accurate answer. 
         [0081]    Referring to  FIG. 12 , the “Tentative Detector”  1010  receives the correlation amplitudes obtained with varied correlation length for both the 250 kbps and the 500 kbps preambles. The greatest value is selected as SURVIVOR and passed on to the “Admission Control” unit  1020 . SURVIVOR is updated at 4 MSps rate. 
         [0082]    “Admission Control” unit  1020  decides if SURVIVOR is greater than any previously seen SURVIVOR and whether it should trigger a carrier frequency offset estimation by (re-)starting AFC 250/500    1030 . This is called a RESTART event. 
         [0083]    On RESTART AFC 250/500    1030  performs a one-shot computation that takes 4 DSSS symbol times. Any on-going AFC computation is aborted if RESTART occurs. 
         [0084]    When AFC 250/500    1030  completes it provides feedback to the Tentative Detector  1010  whether to ACCEPT or REJECT the correlation peak as indication of a valid preamble. 
         [0085]    The details of the operation are given below. 
         [0086]    Referring to  FIG. 6  there are three different preamble patterns used in the different frame formats. The chip patterns repeated in the preambles are, in the order of transmission: 
         [0000]      { b   2m ( m )} m=0 . . . 7 =11110000: 2 Mbps and 1 Mbps data rates 
         [0000]      { b   500 ( m )} m=0 . . . 15 =11001011 01101000: 500 kbps data rate 
         [0000]      { b   250 ( m )} m=0 . . . 31 =11100000 01110111 10101110 01101100: 250 kbps and 125 kbps data rates 
         [0087]    For convenience, the bipolar representations of the same sequences are also defined: 
         [0000]        p   2m ( m )=2· b   2M ( m )−1
 
         [0000]        p   500 ( m )=2· b   500 ( m )−1
 
         [0000]        p   250 ( m )=2· b   250 ( m )−1
 
         [0088]    The [I; Q] stream can be computed as: 
         [0000]        I ( m )=cos(φ( m )) and  Q ( m )=sin(φ( m ))
       where       
 
         [0000]    
       
         
           
             
               ϕ 
                
               
                 ( 
                 
                   m 
                   + 
                   1 
                 
                 ) 
               
             
             = 
             
               
                 
                   π 
                   2 
                 
                 · 
                 
                   1 
                   Ovs 
                 
                 · 
                 
                   
                     p 
                     rate 
                   
                    
                   
                     ( 
                     m 
                     ) 
                   
                 
               
               + 
               
                 ϕ 
                  
                 
                   ( 
                   m 
                   ) 
                 
               
             
           
         
       
       
         
           
              for m=0, 1, . . . ; rate ε{2M, 500, 250} and φ(0)=0; 
             the oversampling factor Ovs=1 for 2 MSps sampling. 
           
         
       
     
         [0091]    Bipolar scalar values s(n) output from a non-coherent MSK demodulator are correlated against the expected preamble chip patterns in a sliding time window twice in a chip-time. The correlations are evaluated by matched filters. They are computed simultaneously for each air data rate and for different lengths at the same time. As a result, six filtering operations are going on simultaneously: 
         [0000]    
       
         
           
             
               
                 r 
                 HIGH 
               
                
               
                 ( 
                 n 
                 ) 
               
             
             = 
             
               
                 
                   κ 
                   1 
                 
                 · 
                 
                   1 
                   
                     M 
                   
                 
                 · 
                 
                   
                     ∑ 
                     
                       m 
                       = 
                       0 
                     
                     
                       M 
                       - 
                       1 
                     
                   
                    
                   
                     
                       
                         s 
                          
                         
                           ( 
                           
                             n 
                             - 
                             
                               2 
                                
                               m 
                             
                           
                           ) 
                         
                       
                       · 
                       
                         
                           q 
                           
                             2 
                              
                             M 
                           
                         
                          
                         
                           ( 
                           m 
                           ) 
                         
                       
                     
                      
                     
                       : 
                     
                      
                     
                         
                     
                      
                     M 
                   
                 
               
               = 
               
                 
                   32 
                    
                   
                     
 
                   
                    
                   
                     
                       r 
                       
                         MID 
                         , 
                         M 
                       
                     
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                 
                 = 
                 
                   
                     
                       κ 
                       2 
                     
                     · 
                     
                       1 
                       
                         M 
                       
                     
                     · 
                     
                       
                         ∑ 
                         
                           m 
                           = 
                           0 
                         
                         
                           M 
                           - 
                           1 
                         
                       
                        
                       
                         
                           
                             s 
                              
                             
                               ( 
                               
                                 n 
                                 - 
                                 
                                   2 
                                    
                                   m 
                                 
                               
                               ) 
                             
                           
                           · 
                           
                             
                               q 
                               500 
                             
                              
                             
                               ( 
                               m 
                               ) 
                             
                           
                         
                          
                         
                           : 
                         
                          
                         
                             
                         
                          
                         M 
                       
                     
                   
                   = 
                   
                     32 
                      
                     
                         
                     
                      
                     and 
                      
                     
                         
                     
                      
                     48 
                   
                 
               
             
           
         
       
       
         
           
             
               
                 
                   r 
                   
                     LOW 
                     , 
                     M 
                   
                 
                  
                 
                   ( 
                   n 
                   ) 
                 
               
               = 
               
                 
                   κ 
                   2 
                 
                 · 
                 
                   1 
                   
                     M 
                   
                 
                 · 
                 
                   
                     ∑ 
                     
                       m 
                       = 
                       0 
                     
                     
                       M 
                       - 
                       1 
                     
                   
                    
                   
                     
                       
                         s 
                          
                         
                           ( 
                           
                             n 
                             - 
                             
                               2 
                                
                               m 
                             
                           
                           ) 
                         
                       
                       · 
                       
                         
                           q 
                           250 
                         
                          
                         
                           ( 
                           m 
                           ) 
                         
                       
                     
                      
                     
                       : 
                     
                   
                 
               
             
              
             
                 
             
           
         
       
       
         
           
             
               M 
               = 
               64 
             
             , 
             
               96 
                
               
                   
               
                
               and 
                
               
                   
               
                
               160 
             
           
         
       
       
         
           
             where
           the indices 2M, 500, 250 correspond to 2 Mbps, 500 kbps and 250 kbps preambles, respectively;   q 2M (m)=p 2M ((M−1−m)mod 8) with M=32 is the time reversed 2 Mbps preamble pattern containing 4 repetitions (i.e., 4 octets)   q 500 (m)=p 500 ((M−1−m)mod 16) with M=32 or 48 is the time reversed 500 kbps preamble pattern with 2 or 3 repetitions (i.e., 2 or 3 nibbles)   q 250 (m)=p 250 ((M−1−m)mod 32) with M=64 or 96 or 160 is the time reversed 250 kbps preamble pattern with 2 or 3 or 5 repetitions (i.e., 2, 3 or 5 nibbles)   κ 1  and κ 2  are suitably selected scaling factors for lowest complexity hardware implementation   
         
           
         
       
     
         [0098]    The length-dependent scaling factors are necessary to level the standard deviation of the quantities r 250,M  and r 500,M . Thus they can be compared against each other when they compete for a given hardware resource. 
         [0099]    To accept a frame the absolute value of the quantity R defined by the following correlation between the CFO-compensated received waveform and the expected DSSS waveform must exceed a predefined absolute threshold: 
         [0000]    
       
         
           
             R 
             = 
             
               
                 1 
                 L 
               
               · 
               
                 
                   ∑ 
                   
                     m 
                     = 
                     0 
                   
                   
                     L 
                     - 
                     1 
                   
                 
                  
                 
                   
                     exp 
                      
                     
                       ( 
                       
                         
                           
                             - 
                             j 
                           
                           · 
                           C 
                         
                          
                         
                           F 
                           ^ 
                         
                          
                         
                           O 
                           · 
                           T 
                           · 
                           m 
                         
                       
                       ) 
                     
                   
                   · 
                   
                     v 
                      
                     
                       ( 
                       m 
                       ) 
                     
                   
                   · 
                   
                     ( 
                     
                       
                         I 
                          
                         
                           ( 
                           m 
                           ) 
                         
                       
                       - 
                       
                         j 
                         · 
                         
                           Q 
                            
                           
                             ( 
                             m 
                             ) 
                           
                         
                       
                     
                     ) 
                   
                 
               
             
           
         
       
       
         
           
             L 
             = 
             
               { 
               
                 
                   
                     32 
                   
                   
                     
                       rate 
                       = 
                       
                         500 
                          
                         
                             
                         
                          
                         kbps 
                       
                     
                   
                 
                 
                   
                     64 
                   
                   
                     
                       rate 
                       = 
                       
                         250 
                          
                         
                             
                         
                          
                         kbps 
                       
                     
                   
                 
               
             
           
         
       
     
         [0100]    where
       C{circumflex over (F)}O is the carrier frequency offset estimate that aims at maximizing R. It is available when the AFC completes in radian/second.   T is the sample period   v(m), m=0, . . . , L−1 is the sequence of I+jQ complex samples received at 4 MSps, starting from the RESTART event.   I(m)=cos(φ(m)) and Q(m)=sin(φ(m)) with φ(m+1)=π/4·p rate (m)+φ(m) for m=0, 1, . . . , φ(0)=0 and p rate  is the bipolar representation of a preamble period for 500 kbps and 250 kbps respectively.       
 
         [0105]    The details of the Admission Control  1020  are elaborated on below. Using these definitions:
       SURVIVOR greatest correlation amplitude value selected by “Tentative Detector”  1010 , updated at 4 MSps   RATE takes the value of “250 kbps” or “500 kbps” depending on which correlator generated SURVIVOR   AFCBUSY TRUE if AFC estimation is on-going, FALSE if AFC is inactive (e.g. completed by REJECT).   THRDFLT default value taken by THR when AFCBUSY=FALSE   THR dynamically adjusted threshold based on the latest SURVIVOR:       
 
         [0000]    
       
         
           
             THR 
             ⇐ 
             
               { 
               
                 
                   
                     THRDFLT 
                   
                   
                     
                       AFCBUSY 
                       = 
                       FALSE 
                     
                   
                 
                 
                   
                     SURVIVOR 
                   
                   
                     
                       SURVIVOR 
                       &gt; 
                       THR 
                     
                   
                 
                 
                   
                     THR 
                   
                   
                     otherwise 
                   
                 
               
             
           
         
       
       
         
           
             L DSSS symbol length in 4 MSps samples. L=64 for 250 kbps, L=32 for 500 kbps. 
             SAMPCNT sample counter is a modulo L counter started on RESTART, incremented on each new sample while AFCBUSY=TRUE: 
           
         
       
     
         [0000]    
       
         
           
             SAMPCNT 
             ⇐ 
             
               { 
               
                 
                   
                     0 
                   
                   
                     
                       AFCBUSY 
                       = 
                       FALSE 
                     
                   
                 
                 
                   
                     1 
                   
                   
                     
                       RESTART 
                       = 
                       TRUE 
                     
                   
                 
                 
                   
                     
                       
                         ( 
                         
                           SAMPCNT 
                           + 
                           1 
                         
                         ) 
                       
                        
                       mod 
                        
                       
                           
                       
                        
                       L 
                     
                   
                   
                     otherwise 
                   
                 
               
             
           
         
       
       
         
           
             DSSSCNT DSSS symbol counter started on RESTART: 
           
         
       
     
         [0000]    
       
         
           
             DSSSCNT 
             ⇐ 
             
               { 
               
                 
                   
                     0 
                   
                   
                     
                       AFCBUSY 
                       = 
                       FALSE 
                     
                   
                 
                 
                   
                     
                       DSSSCNT 
                       + 
                       1 
                     
                   
                   
                     
                       SAMPCNT 
                       = 
                       
                         L 
                         - 
                         1 
                       
                     
                   
                 
                 
                   
                     DSSSCNT 
                   
                   
                     otherwise 
                   
                 
               
             
           
         
       
     
         [0114]    The Admission Control  1020  is defined by:
       RESTART:=TRUE iff TRIGGER AND NOT(INHIBIT)   TRIGGER:=TRUE iff THR&lt;SURVIVOR   INHIBIT:=AFCBUSY AND [(SAMPCNT=0) OR
           (SAMPCNT=1 AND DSSSCNT&gt;0) OR   (SAMPCNT=L−1)]   
               
 
         [0120]    The operation is illustrated by an example scenario in  FIG. 11 . Note that the second valid peak does not cause a RESTART due to the INHIBIT signal. Meanwhile the highest sample of the first valid peak can cause a restart, which is necessary for the optimal symbol level synchronization. 
         [0121]      FIG. 13  presents the summary view of on-the-fly data rate detection. The MSK modulated I-Q format signal available at the output of the digital frontend  1310  is fed directly into the open-loop AFC units  1320  that return the estimate of the CFO (carrier frequency offset) present in the signal that is then used to remove  1340  the effect of the CFO from the signal. 
         [0122]    The output of the digital frontend  1310  is also directly fed into the preamble detectors  1330 . As explained above the bank of preamble detectors determines chip (bit) timing, and identifies the spreading sequences present in the preamble, consequently determining the primary data rate (250 kbps, 500 kbps or 2 Mbps) and establishing the DSSS symbol boundaries (byte timing). With this data the preamble data rate dependent demodulator  1350  turns the input signal into a stream of bits (chips) and the bank of SFD detectors  1360  locate the start of the payload and simultaneously pass the detected data rate to the data rate dependent decoder  1370 .