Abstract:
A system for calculating DC offset and achieving frame detection is described. In one embodiment, the present invention includes an electronic device with an integrated receiver module. The receiver module can take advantage of a known synchronization pattern such as the Bluetooth access code to determine an initial DC offset and to provide frame detection.

Description:
RELATED APPLICATIONS  
       [0001]     The present application is related to commonly owned and assigned Attorney Docket No. WIDC-021/00US, entitled System and Method for DC Offset Compensation and Bit Synchronization, which is filed on even date herewith and is incorporated herein by reference. In this patent application, we describe a method that can be used to provide an accurate initial DC offset for the automatic DC tracker, thus improving the DC tracker&#39;s initial converge time and estimate stability. In the mean time, since the initial DC estimation is based on some known frame synchronization (sync) pattern, the method also performs and achieves frame detection. This patent application can therefore be applied to all wireless communication systems that use packet data with sync pattern in front.  
       FIELD OF THE INVENTION  
       [0002]     The present invention relates to wireless communication devices and protocols. In particular, but not by way of limitation, the present invention relates to systems and methods for improving the quality and commercial appeal of wireless communications.  
       BACKGROUND OF THE INVENTION  
       [0003]     Wireless communications and wireless communication devices are at the center of many important technological advancements. As the proliferation of these wireless devices increases, the efficiency and accuracy of the communications therebetween becomes vital to the commercial success of particular devices and particular communications protocols. One protocol that is showing great promise is Bluetooth (described in, for example,  The Specification of the Bluetooth System,  v1.0 B, Dec. 1, 1999), which is a wireless protocol that describes how mobile phones, computers, PDAs, peripherals and other devices can interconnect using a short-range wireless connection.  The Specification of the Bluetooth System,  v1.0 B, Dec. 1, 1999, which is publicly available, is incorporated herein by reference.  
         [0004]     To implement Bluetooth and other such wireless protocols, a device receiving a transmitted signal is required to recover transmitted bit patterns. The basic recovering process involves waveform demodulation, DC compensation, but synchronization and bit detection. Waveform demodulation usually is implemented in a radio module and is wireless protocol dependent. DC compensation can be implemented either in the radio module or in the baseband. It is a critical process, however, for achieving correct bit synchronization and detection. Bit synchronization and detection are usually implemented in the baseband and are common to many different wireless receivers. An automatic DC tracker and a bit synchronizer have been described in commonly owned and assigned patent application Ser. No. ______, Attorney Docket No. WIDC-021/00US.  
         [0005]     DC offset is a variation in the intended DC voltage of the baseline signal caused, for example, by frequency drift in received Bluetooth GFSK signals. Present devices compensate for these imperfections in incoming signals using a variety of means—none of which are completely satisfactory. For example, certain electronic devices use analog components to calculate the DC offset, while other devices use digital components. The analog DC trackers usually are implemented as lowpass RC filters, while conventional digital approaches require a select number of bits to be buffered before any DC offset can be calculated.  
         [0006]     The DC tracking accuracy of both conventional analog and digital circuits is affected by the incoming bit patterns. For instance, when a string of high values, e.g., “1s,” is received the computed DC offset will be adjusted to a higher value even though the actual DC offset has not changed. This adjustment occurs because most automatic DC trackers assume an even distribution of high and low values in the received signal. In addition, the DC tracking accuracy and associated estimate variance are sensitive to selected time constant in analog filters. For conventional digital DC tracker, they are functions of the selected buffer size.  
         [0007]     Although present analog and digital approaches to computing DC offsets for wireless communications are functional, they are not sufficiently accurate or otherwise satisfactory. Accordingly, a system and method are needed to address the shortfalls of present technology and to provide other new and innovative features.  
       SUMMARY OF THE INVENTION  
       [0008]     Exemplary embodiments of the present invention that are shown in the drawings are summarized below. These and other embodiments are more fully described in the Detailed Description section. It is to be understood, however, that there is no intention to limit the invention to the forms described in this Summary of the Invention or in the Detailed Description. One skilled in the art can recognize that there are numerous modifications, equivalents and alternative constructions that fall within the spirit and scope of the invention as expressed in the claims.  
         [0009]     The present invention can provide a system and method for calculating DC offset. In one embodiment, the present invention includes an electronic device with an integrated receiver module. The receiver module can take advantage of a known frame sync pattern, such as the Bluetooth access code, to approximate an initial DC offset. Although this receiver module can be implemented in a variety of ways, one implementation includes a radio module, an analog-to-digital (A/D) converter, an initial DC estimator, a DC tracker, and a bit synchronizer. Other implementations may remove the initial DC estimator and use the DC tracker only, or remove the DC tracker and freeze the initial DC estimator output for the entire data frame. In either case, less hardware is required.  
         [0010]     In an exemplary mode of operation, an electronic device, such as a cellular phone, initially receives an RF signal that can be demodulated and down-converted a baseband signal in the radio module. The A/D converter is then used to sample and convert the baseband signal from analog to digital form. As mentioned previously, the first portion of the received usually includes a sync pattern. Samples corresponding to the sync pattern or a part of the sync pattern are used to calculate a DC summation (DC sum ). Using only a part of the sync pattern to perform this calculation can reduce the amount of hardware and processing time required.  
         [0011]     The DC sum  can be divided by the number of samples actually used in the summation to determine an average (DC avg ) value. Because the number of high bits and low bits may not be equal in the part of the sync pattern used for the calculation, a straight average does not necessarily provide an accurate estimation of the DC offset. To calculate a more accurate estimate, the DC avg  can be adjusted by a compensation factor (comp_fac) generated from the chosen portion of the known sync pattern.  
         [0012]     Using the calculated compensation factor, the compensated DC average (DC avg     —     comp ) can be represented by 
 
 DC   avg     —     comp ( k )≈ DC   avg ( k )+ comp   —   fac  
 
 where k is the current sample time index. 
 
         [0013]     Moreover, using the DC avg     —     comp (k), a bit slicer can be applied to determine the binary value (0 or 1) of the received sync pattern samples contained in DC sum . That is, if the sample value is greater than DC avg     —     comp (k), it corresponds to a binary ), otherwise it is a binary 1. A correlator module can correlate the bit slicer output with the chosen portion of the known sync pattern to determine whether a potential frame detection has occurred. For example, when a threshold number of the received sync pattern bits—adjusted according to the DC avg     —     comp —match corresponding bits in the known sync pattern, a potential frame detection can be declared.  
         [0014]     To confirm the potential frame detection, the DC avg     —     comp (k) is frozen at the time sample when the potential frame detection was declared. Next, a symbol peak is identified using the next set of (N-1) digital samples of the received signal. Here, N is the number of over-sampling compared to the nominal symbol rate. Using the frozen DC avg     —     comp (k) and the identified symbol peak, a second portion of the received sync pattern is correlated with the rest of the known sync pattern. If a threshold number of bits in the second portion of the received pilot signal and the known sync pattern and the known sync pattern match, a formal frame detection is declared and the DC avg     —     comp (k) is generated as an output for the following process, either as an initial estimate for a DC tracker or used as a frozen DC value for the rest of the data packet. Otherwise, the entire process is restarted and a new DC avg     —     comp (k) is calculated using a next sample time.  
         [0015]     As previously stated, the above-described embodiments and implementations are for illustration purposes only. Numerous other embodiments, implementations, and details of the invention are easily recognized by those of skill in the art from the following descriptions and claims.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]     Various objects and advantages and a more complete understanding of the present invention are apparent and more readily appreciated by reference to the following Detailed Description and to the appended claims when taken in conjunction with the accompanying Drawings wherein:  
         [0017]      FIG. 1  illustrates various electronic devices with integrated receiver modules constructed in accordance with the principles of the present invention;  
         [0018]      FIG. 2  illustrates an implementation of the receiver module of the present invention in greater detail;  
         [0019]      FIG. 3  illustrates an alternative implementation of the receiver module shown in  FIG. 2 ;  
         [0020]      FIG. 4  illustrates a more detailed exemplary implementation (based on Bluetooth&#39;s sync pattern) of the initial DC offset estimation module shown in  FIG. 3 ;  
         [0021]      FIGS. 5 and 6  are exemplary circuit diagrams of an implementation of the initial DC estimation module shown in  FIGS. 2 and 4 ;  
         [0022]      FIG. 7  illustrates an exemplary implementation of the frame detector module shown in  FIG. 4 ; and  
         [0023]      FIG. 8  is a flow chart of one method of operating an embodiment of the present invention based on Bluetooth sync pattern. 
     
    
     DETAILED DESCRIPTION  
       [0024]     Referring now to the drawings, where like or similar elements are designated with identical reference numerals throughout the several views, and referring in particular to  FIG. 1 , it illustrates examples of electronic devices with integrated receiver modules  105  constructed in accordance with the principles of the present invention. Although only a computer  110 , a PDA (personal digital assistant)  115 , cell phone  120  and peripheral device  125  are illustrated, the present invention can include any type of wireless-enabled device and should not be limited to those devices shown. The receiver modules  105  in these various devices can include, for example, ASICs (application specific integrated circuits), software instructions, general purpose processors, or any combination thereof.  
         [0025]      FIG. 2  illustrates an implementation of the receiver module of the present invention in greater detail. In this implementation, a RF signal (or any other type of signal) is received at the radio module  130 , which demodulates and downconverts the RF signal to a baseband signal. The radio module  130  then passes the baseband signal to the A/D converter  135 , where the analog signal is converted to a digital signal. The A/D converter  135  then passes the digital signal to the initial DC estimation module  140 , which determines the DC offset within the chosen portion of the received sync pattern. This DC offset can be passed as an initial DC estimate to a DC tracker  145  that monitors long term DC drift and generates a corresponding DC offset values continuously. Data from the DC tracker  145  can be provided to the bit synchronizer  147 .  
         [0026]     Referring now to  FIG. 3 , it illustrates a more detailed implementation of the initial DC estimation module  140  shown in  FIG. 2 . In this embodiment, the initial DC estimation module  140  includes two components: a DC offset module  150  and a frame detector module  155 . The DC offset module  150  is configured to determine a DC offset based upon at least a portion of a known sync pattern. In one embodiment, the DC estimation module  150  is configured to determine the DC offset using the first 34 bits of the 64 bit Bluetooth synchronization word and to detect a potential frame. The reason for using the first 34 bits of the synchronization word is that the bit pattern in the first 34 bits is more evenly distributed between “1”s and “0”s than in the latter 30 bits.  
         [0027]     The frame detector module  150  is configured to confirm a potential frame detection by the DC offset module  150 . In the preferred embodiment, the frame detector module  155  confirms the frame detection based upon the last 30 bits of the Bluetooth synchronization word.  
         [0028]      FIG. 4  illustrates a more detailed implementation of the DC offset module  150  shown in  FIG. 3 . This embodiment of the DC offset module  150  includes 34 storage locations (labeled as symbol storage  0  through symbol storage  33 ) for storing sample values related to bits  0  through  33  of the received synchronization word. For example, symbol storage  0  could include N individual storage locations to store the DC value of the received signal sampled at N times the symbol rate. Each of the symbol storage locations is associated with a comparator (labeled as comparator  0  through comparator  33 .) Each of the sample values for a particular symbol are passed from a symbol storage to the appropriate comparator. The output of each individual comparator is determined by  
           z   34     ⁡     (     k   ,   j     )       =     {                 1   ,               y   ⁡     (     k   +       (     j   -   34     )     ·   5       )       &lt;     D   ⁢           ⁢       C   avg_comp     ⁡     (   k   )           ,               0   ,             y   ⁡     (     k   +       (     j   -   34     )     ·   5       )       &gt;     D   ⁢           ⁢       C   avg_comp     ⁡     (   k   )                 ⁢     
     ⁢   j     =   1     ,   2   ,   …   ⁢           ,   34             
 where k is the current sample time index, y(i) is the output of the A/D converter  135 , and DC avg     —     comp (k) is the compensated DC average, which is described in detail below. 
 
         [0029]     The DC avg     —     comp  calculator  170  calculates the DC avg     —     comp  value used by the comparators. If the sampling rate results in N samples per symbol, the DC avg     —     comp  calculator  170  would use 34×N running samples from the A/D converter  135 . However, to reduce hardware complexity—by allowing bit shifting to replace complex multiplication—32×N samples from the A/D converter  135  can be used to calculate the DC average (DC avg ) which can be approximated by  
         D   ⁢           ⁢       C   sum     ⁡     (   k   )         =       ∑     i   =     k   -     32   ⁢   x   ⁢           ⁢   n     +   1       k     ⁢     y   ⁡     (   i   )             
               D   ⁢           ⁢       C   avg     ⁡     (   k   )         =       ⁢     D   ⁢           ⁢         C   sum     ⁡     (   k   )       /     (     N   ⁢           ⁢   x   ⁢           ⁢   32     )                     =       ⁢       (     D   ⁢           ⁢         C   sum     ⁡     (   k   )       /   N       )     ⁢           ⁢     &gt;&gt;     ⁢           ⁢   5               
 
 where k is the current sample time index and y(i) is the output from the A/D converter  135 . If N=4,then 
 
         [0030]     Because the bits of the received synchronization word may have a non-ideal bit pattern that introduces DC bias, the DC avg  should be corrected by a compensation factor (comp_fac.) This compensation factor can be calculated using the corresponding 32 bits of the synchronization word as 
 
 comp   —   fac=A   peak (number of 1&#39; s− number of 0&#39; s )/32. 
 
 where A peak  is the sample peak amplitude of the output from the A/D converter  135 . Assuming bit inversion, the compensated DC average becomes 
 
 DC   avg     —     comp ( k )≈ DC   avg ( k )+ comp   —   fac.  
 
         [0031]     Still referring to  FIG. 4 , the output from the individual comparators can be latched in storage devices, DC corrected symbol  0  through DC corrected symbol  33  (but do not necessarily need to be) and passed to a correlation module  165 , which compares the output of the individual comparators with the known synchronization word to identify a potential frame detection. A potential frame detection can be declared at any sample time assuming a threshold number of bits of the DC corrected samples—as stored in DC corrected symbol  0  through DC corrected symbol  33 —match the corresponding bits in the known synchronization word.  
         [0032]     After a potential frame has been detected, the value for the DC avg     —     comp (k) is frozen and the next symbol peak is identified by the peak indetifier  165 . For example, the correlation process could be continued for the next (N-1) samples to identify matching of the first 34 bits of the synchronization word. Assuming that the first 34 bit correlation match occurred at sample time n and N=4, the following rules can be used to determine the symbol peak location based on the correlation pattern over the four sample period (n to n+34): 
        1. If correlation matches occurred at both time n and n+34, regardless of what happened in between, the symbol peak is at n+2;     2. If the only matches occur at time n, the symbol peak is at n;     3. If a correlation match occurred at time n+3, and either time n+1 or n+2 or both also had correlation matches, the symbol peak is at n+2; and     4. For all other cases, the symbol peak is at n+1.        
 
         [0037]      FIGS. 5 and 6  illustrate an implementation of the DC offset module shown in  FIGS. 2 and 4 . In this implementation, symbol storage  0  is represented by latches  00  through  03 ; symbol storage  1  is represented by latches  10  through  13 ; . . . symbol storage  32  is represented by latches  320  through  323 ; and symbol storage  33  is represented by latches  330  through  333 . Similarly, comparator  0 , comparator  1 , . . . comparator  32 , and comparator  33  are represented by the corresponding groupings of four comparators  175 . Although only four latches and only four comparators are shown per symbol storage, the number of latches and comparators can be easily varied according to the sample rate.  
         [0038]     The output from each latch is passed to the corresponding comparator  175  and compared against DC avg     —     comp , which is an input to each comparator  175 . The output from each comparator  175  is then passed to one of the correlation modules shown in  FIG. 6 . For example, the outputs B 00 , B 10  . . . B 320 , and B 330  are passed to correlator  0 ; the outputs B 01 , B 11 , . . . B 321 , and B 331  are passed to correlator  1 ; and so on. In other words, the first sample from each symbol storage is passed to a first correlation module, the second sample to a second correlation module, the third sample to a third correlation module, and the fourth sample to a fourth correlation module.  
         [0039]     At each of the four correlation modules, the DC corrected samples are compared against the known synchronization word. When a threshold number of bits are matched, the appropriate line is signaled, the DC avg     —     comp (k) value is frozen, and a potential frame detection is declared.  
         [0040]     Referring now to  FIG. 7 , it illustrates a block diagram of the frame detection module  155  of  FIG. 4 . Once the DC offset module  150  declares a potential frame detection, the frame detector module  155  uses the frozen DC avg     —     comp (n) (n being the time at which a potential frame detection is declared) and identified symbol peak to verify the frame detection. In this embodiment, for example, samples corresponding to bits  34 - 63  of the received synchronization word are stored in corresponding symbol storage locations, symbol storage  34  through symbol storage  63 . These samples are passed to the appropriate comparators, comparator  34  through comparator  63 , where the output can be expressed as  
           z   30     ⁡     (     k   ,   j     )       =     {                 1   ,               y   ⁡     (       n   ′     +     j   ·   N       )       &lt;     D   ⁢           ⁢       C   avg_comp     ⁡     (   n   )           ,               0   ,             y   ⁡     (       n   ′     +     j   ·   N       )       &gt;     D   ⁢           ⁢       C   avg_comp     ⁡     (   n   )                 ⁢     
     ⁢   j     =   1     ,   2   ,   …   ⁢           ,   30           
 
 where n′ is the current symbol peak location and n is the sample time at which the DC offset module  150  declared the first 34 bit correlation match. 
 
         [0041]     The output from the individual comparators is then passed to the correlation module  185  where each comparator&#39;s output can be compared against the corresponding bit of the last 30 bits of the known synchronization word. If the number of matched bits between the output from the comparators and the last 30 bits of the known synchronization word are greater than or equal to a threshold value, a frame detection is declared and DC avg     —     comp (n) can be passed to a long-term DC tracker  145  as an initial DC offset estimate. Alternatively, if the threshold value is not crossed, the DC avg     —     comp (k) value is unfrozen and the calculation of the DC offset estimation based on the first 34 bits of the synchronization word is restarted.  
         [0042]      FIG. 8  is a flowchart of one method of operating the present invention. This method is described in terms of the Bluetooth protocol. However, one skilled in the art can easily recognize that this method could be adapted to operate for virtually any wireless protocol—especially those using a pilot signal or a synchronization word.  
         [0043]     Initially, an electronic device computes a compensation factor using the first 32 bits of known synchronization word (step  190 ). This compensation factor can be expressed as 
 
 comp   —   fac=A   peak (number of 1&#39; s−p number of 0&#39; s )/32. 
 
 At some point, that electronic device receives an RF signal including the synchronization word (step  195 ). This RF signal is then demodulated and downconverted to a baseband signal which is in turn converted from analog to digital form (steps  200  and  205 ). Samples of the first 34 bits of the synchronization word are then taken and stored (step  190 ). 
 
         [0044]     Next, the DC sum  is calculated using 32×N samples. Although the first 34×N (N being the number of oversampling as compared to the nominal symbol rate) running samples from the A/D converter can be stored, hardware complexity can be reduced by using only 32×N samples in the calculations. The DC sum  can be estimated by  
         D   ⁢           ⁢       C   sum     ⁡     (   k   )         =       ∑     i   =     k   -     32   ⁢   x   ⁢           ⁢   N     +   1       k     ⁢     y   ⁡     (   i   )             
 
 where k is the sample time index and y(i) is the output from the A/D converter  135 . Using this DC sum , a DC avg  can be estimated (step  215 ). DC avg  can be represented as 
 
 DC   avg ( k )= DC   sum ( k )/( N× 32). 
 
 Finally, the compensated DC average can be calculated (step  220 ) by 
 
 DC   avg     —     comp ( k )≈ DC   avg ( k )+comp —   fac  
 
         [0045]     Next, the received data, as DC adjusted and bit sliced, can be compared against the known synchronization word to determine if there is a correlation (step  225 ). When the number of matched bits between the bit sliced data and the known synchronization word is greater than or equal to a threshold (step  230 ), a potential frame detection can be declared and branch  235  is followed. Otherwise, branch  240  is followed and the DC sum (k) is recomputed for the next sample time.  
         [0046]     Assuming that the threshold value has been crossed and branch  235  followed, the DC avg     —     comp (k) for the current sample time is frozen (step  245 ) and a symbol peak is located (step  250 ). Assuming that the potential frame detection was declared at sample time n and N=4, the following rules determine the symbol peak location based on a continued correlation over the next five sample period (n to n+43): 
        1) If correlation matches occurred at both time n and +43, regardless of what happened in between, the symbol peak is at n+2;     2) If the only matches occur at time n, the symbol peak is at n;     3) For all other cases, the symbol peak is at n+1 or n=2 or both also had correlation matches, the symbol peak is at n+2; and     4) For all other cases, the symbol peak is at n+1.        
 
         [0051]     Next, the potential frame detection is verified by storing samples of the last 30 bits of the 64 bit synchronization word (step  255 ). These 30 bits are then correlated with the remaining 30 bits of the known synchronization word (step  260  and  265 ). If the number of matched bits is greater than or equal to a threshold value, a frame detection is declared (step  280 ) and a DC avg     —     comp (n) is passed to a long-term DC tracker (step  285 ). Otherwise, branch  275  is followed and the DC avg     —     comp (k) is unfrozen and the process repeated.  
         [0052]     In conclusion, the present invention provides, among other things, a system and method for optimizing wireless communication systems and devices. Although the present system is described primarily with relation to Bluetooth, the present invention can be adapted to work with virtually any type of wireless protocol. Those skilled in the art can readily recognize that numerous variations and substitutions maybe made in the invention, its use and its configuration to achieve substantially the same results as achieved by the embodiments described herein. Accordingly, there is no intention to limit the invention to the disclosed exemplary forms. Many variations, modifications and alternative constructions fall within the scope and spirit of the disclosed invention as expressed in the claims.