Patent Publication Number: US-11385336-B2

Title: Time of flight sensors and sensing methods

Description:
CROSS REFERENCE TO RELATED APPLICATION(S) 
     This application claims the benefit of U.S. Provisional Patent Application Ser. No. 62/712,952, filed Jul. 31, 2018, incorporated herein by reference. 
    
    
     BACKGROUND 
     Time of flight (TOF) is a property of an object, particle or wave (e.g. acoustic or electronic wave) related to how long it takes it to travel through a medium. TOF technology can be used for a variety of purposes, including range-finding and 3D imaging. 
     3D Time-of-Flight (TOF) technology is revolutionizing the machine vision industry by providing 3D imaging using a low-cost CMOS pixel array together with an active modulated light source. Compact construction, easy-of-use, together with high accuracy and frame-rate makes TOF cameras an attractive solution for a wide range of applications such as computer vision, drones and robotic applications. 
     A 3D time-of-flight (TOF) camera works by illuminating the scene with a modulated light source, and observing the reflected light. The phase shift between the illumination and the reflection is measured and translated to distance. Typically, the illumination is from a solid-state laser or a LED operating in the near-infrared range (˜850 nm) invisible to the human eyes. An imaging sensor designed to respond to the same spectrum receives the light and converts the photonic energy to electrical current. Note that the light entering the sensor has an ambient component and a reflected component. Distance (depth) information is only embedded in the reflected component. Therefore, high ambient component reduces the signal to noise ratio (SNR). 
     To detect phase shifts between the illumination and the reflection, the light source is pulsed or modulated by a continuous-wave (CW), source, typically a sinusoid or square wave. Square wave modulation is more common because it can be easily realized using digital circuits. However, sinusoidal waves can result in less distortion. 
     The pulsed method is straightforward. The light source illuminates for a brief period (Δt), and the reflected energy is sampled at every pixel, in parallel, using two out-of-phase windows, C 1  and C 2 , with the same Δt. Electrical charges accumulated during these samples, Q 1  and Q 2 , are measured and used to compute distance. In contrast, the CW method takes multiple samples per measurement, e.g. usually at least four samples per period of the modulation frequency. Using this technique, the phase angle between illumination and reflection, φ, and the distance, d, to an object can be calculated. 
     The fact that the CW measurement is based on phase, which wraps around every 2n (“phase-wrapping”), means that the distance will also have an aliasing distance. The distance where aliasing occurs is called the ambiguity distance (damb). Since the distance wraps, damb is also the maximum measurable distance. Previously, if one wished to extend the measurable distance, the modulation frequency had to be reduced, reducing the accuracy of the distance measurement. 
     There are TOF systems on the market utilizing the aforementioned processes. However, prior art TOF systems are not integrated solutions and typically involve several general-purpose components that are programmed with firmware and software to take TOF measurements, such that depth and 3D data can be derived. Such systems tend to be bulky and expensive. 
     Additionally, due to light source and sampling constraints on the detector of previous TOF sensors, square wave signals are typically employed, which result in greater ambiguity and depth error. 
     Due to phase wrapping, there has also been a trade-off between range of distance measurement and accuracy of measurement. Phase wrapping refers to the distance at which the reflected signal from the object is ambiguous. An approach for high accuracy requires high frequency modulation, yet high frequency modulation limits the range at which objects can be detected. 
     When making TOF measurements based upon reflected waves, there is the possibility of interferences from other lights sources with periodic modulation. These other light sources may be unrelated to the TOF sensor or may be other TOF sensors operating in the same physical space. Particularly problematical are other TOF sensors operating in the same physical space, since detected light might be direct light from the other TOF sensors. 
     These and other limitations of the prior art will become apparent to those of skill in the art upon a reading of the following descriptions and a study of the several figures of the drawing. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Several example embodiments will now be described with reference to the drawings, wherein like components are provided with like reference numerals. The example embodiments are intended to illustrate, but not to limit, the invention. The drawings include the following figures: 
         FIG. 1  is a block diagram of a first example embodiment of a time of flight (TOF) sensor; 
         FIG. 2  is a block diagram of a second example embodiment of a TOF sensor; 
         FIG. 3  is a flow diagram of a method for operating a TOF sensor; 
         FIG. 4  is a graph illustrating an operation of a TOF sensor at a first frequency f 1  and a second frequency f 2 ; 
         FIG. 5  is a block diagram of a third example embodiment of a TOF sensor; 
         FIG. 6  is a block diagram of a maximal length sequence (MLS) generator; 
         FIG. 7  is a flow diagram of a method for distinguishing a phase-shifted reflected waveform of a transmitted waveform from other waveforms; 
         FIG. 8A  is a graph illustrating an MLS signal; 
         FIG. 8B  is a graph illustrating an MLS-modulated cosine wave; and 
         FIGS. 9A and 9B  are graphs of an MLS-modulated cosine wave pulse. 
     
    
    
     DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS 
     In  FIG. 1 , a time of flight (TOF) sensor  10 , set forth by way of example and not limitation, includes TOF processor  12 , a driver  14 , an analog-to-digital converter (ADC)  16  and a signal conditioner  18 . In certain embodiments, time of flight sensor  10  is coupled to, or further includes, an interface  20 , a waveform transmitter  22 , and a waveform receiver  24 . For example, the interface  20  can be an external light emitting diode (LED) or laser interface, waveform transmitter can be an LED or laser, and waveform receiver  24  can be a photodetector device. In an example embodiment, the time of flight sensor  10  is implemented as an integrated circuit  26 . Other components, such as interface  20 , waveform transmitter  22 , and/or waveform receiver  24  can also be implemented as part of the integrated circuit  26 . 
     The TOF processor  12  includes a digital TOF port  28 , a digital input port  30  and a digital output port  32 . Driver  14  includes a digital driver port  34  coupled to the digital TOF port  28  of the TOF processor  12 . ADC  16  has on output port  36  coupled to the digital input port of the digital TOF processor. Signal conditioner  18  couples waveform receiver  24  to an input of ADC  16 . Interface  20  couples the driver  14  to the waveform transmitter  22 . It should be noted that the TOF processor  12  can serve as a correlator having a correlated waveform (e.g. derived from a reflected waveform) as one input. 
     It will be appreciated that, in this example embodiment, the integrated circuit  26  provides a control signal  40  to drive (or modulate) a light source  22 . The control signal  40  is preferably coupled to additional driving electronics (e.g. FETs or MOSFETs) of the driver  14  to increase power to the light source (LED, laser diodes, etc.) or it can independently provide electrical power to drive the light source  22 . 
     The control signal  40  generates a clock can be used to determine a phase difference between the calculation of a phase difference between a modulated waveform transmitted by light source  22  and a reflected waveform received by photodetector device  24 . By way of non-limiting examples, photodetector device  24  can be a Single Photon Avalanche Diode (SPAD), a Silicon Photomultiplier (SiPM), silicon photodiodes, III-V photodiodes, photoconductors, etc. In certain embodiments, the photodetector device  24  can be an array of photodetectors capable of producing an image. The photodetector device  24  can be associated with a lens or lens barrel (not shown) to enhance light collection and to facilitate the creation of creating an image of the scene or objects/targets like a normal camera system. The photodiodes are read by electronics in the sensor system individually. The readout can include a low-noise amplifier and a filter. The readout can also provide necessary reverse bias voltage. After gain and amplification and filtering the signal is sampled and digitized by a fast ADC and data in sent to a circuitry to do the computation. The block diagram of the controller/micro that does this computation is shown in  FIG. 2 , photodiode and readout are shown again for making referencing easier. 
     In  FIG. 2 , a TOF sensor  10 ′, set forth by way of example and not limitation, includes a TOF processor  12 ′, an ADC  16 , and a signal conditioner  18 ′, where like reference numbers refer to like components. The TOF processor  12 ′, in this non-limiting example, includes a demultiplexer (DMUX)  44 , a counter  46 , a first summer  48 , a second summer  50 , a third summer  52 , a fourth summer  54 , a first clocked register  56 , a second clocked register  58 , a third clocked register  60 , a fourth clocked register  62  and a CORDIC Rotator  64 . Collectively, the summers  48 - 54 , the clocked registers  56 - 62 , and the CORDIC Rotator  64  comprise a phase estimator  66 . 
     DEMUX  44  is, in this example, a 1:2 n  (1:4) demultiplexer, where n=2. Therefore, DEMUX  44  is a n-bit (2-bit) controlled demultiplexer comprising two control ports S 0  and S 1 , a first DEMUX output Y 0 , a second DEMUX output Y 1 , a third DEMUX output Y 2 , and a fourth DEMUX output Y 3 . Counter  46  is, in this example, a 2-bit counter having a clock input CLK and outputs S 0  and S 1 . ADC  16  operates similarly to the like component of  FIG. 1 , and signal conditioner  18 ′ includes an operational amplifier (OPAMP)  68  with a feedback resistor  70  and a filter  72 , such as an anti-aliasing filter (AAF). 
     As noted above, the phase estimator  66  includes summers  48 - 54 , clocked registers  56 - 62 , and CORDIC Rotator  64 . In this non-limiting example, first DEMUX output Y 0  is coupled to an input of first summer  48 , second DEMUX output Y 1  is coupled to an input of second summer  50 , third DEMUX output Y 2  is coupled to an input of third summer  52 , and fourth DEMUX output Y 3  is coupled to an input of fourth summer  54 . In this example, first summer  48  sums the positive real portion (Σ+REAL) of the demultiplexed signal, second summer  50  sums the negative imaginary portion (Σ−IMAG) of the demultiplexed signal, third summer  52  sums the negative real portion (Σ−REAL) of the demultiplexed signal, and fourth summer  54  sums the positive imaginary portion (Σ−IMAG) of the demultiplexed signal. Registers  56 - 62  latch the summation values of summers  48 - 54 , respectively, for each clock cycle of system clock CLK. 
     It should be noted that the CORDIC Rotator  64  is only one example of a phase estimator. Other examples of phase estimators include polynomial approximations to the arctangent function, or look-up table approximations to the arctangent function followed by linear interpolation. See, for example, Ukil, Abhisek &amp; Shah, Vishal &amp; Deck, Bernhard. (2011). Fast computation of arctangent functions for embedded applications: A comparative analysis. 10.1109/ISIE.2011.5984330 and P. Markstein, “A fast-start method for computing the inverse tangent,” 17th IEEE Symposium on Computer Arithmetic (ARITH&#39;05), 2005, pp. 266-271, all of which are incorporated herein by reference. In this non-limiting example, CORDIC ROTATOR  64  digitally implements Volder&#39;s algorithm as a CORDIC (Coordinate Rotation Digital Computer) algorithm to efficiently calculate hyperbolic and trigonometric functions. CORDIC is an example of digit-by-digit algorithms, which iteratively converge on an answer by processing digit (or bit) per iteration. CORDIC is closely related to methods known as pseudo-multiplication and pseudo-division when no hardware multiplier is available. The only operations required to converge on an answer are addition, subtraction, bitshift and table lookup. Therefore, CORDIC algorithms belong to the class of shift-and-add algorithms. The design and manufacture of CORDIC Rotators are well known to those of skill in the art. 
     Example CORDIC algorithms implemented by CORDIC Rotator  64  can be explained as follows. Assume a received signal current contains a sinusoid component of known frequency but unknown phase, φ
 
 I ( t )= A   0 {1+ m ·cos(2π f   m   t +φ)}+ N ( t ),0≤ m≤ 1
 
Where I(t) is analog signal from amplifier and filter with A 0  DC level, and m is ratio of amplitude of AC signal to the DC level.
 
     If there is a reference signal (e.g., the control signal to the LED, or electric signal from oscillator modulating light source), then
 
 R ( t )=exp(2πif m   t )
 
and the phase can be calculated as:
 
     
       
         
           
             
               
                 φ 
                 ^ 
               
               = 
               
                 ∠ 
                 ⁢ 
                 
                   { 
                   
                     
                       ∫ 
                       
                         t 
                         = 
                         0 
                       
                       
                         K 
                         / 
                         
                           f 
                           m 
                         
                       
                     
                     ⁢ 
                     
                       
                         
                           R 
                           * 
                         
                         ⁡ 
                         
                           ( 
                           t 
                           ) 
                         
                       
                       · 
                       
                         I 
                         ⁡ 
                         
                           ( 
                           t 
                           ) 
                         
                       
                       · 
                       dt 
                     
                   
                   } 
                 
               
             
             , 
             
               K 
               ∈ 
               ℕ 
             
           
         
       
     
     It can be understood that the higher value of K means a longer integration time that improves signal to noise ratio SNR and improves accuracy of calculating φ, in presence of Noise; N(t). Assuming that the ADC samples the incoming signal I(t) from the detectors with a frequency of f s =4f m , then 
                 I   ⁡     (   k   )       =         A   0     ⁢     {     1   +     m   ·     cos   ⁡     (       2   ⁢           ⁢   π   ⁢           ⁢     f   m     ⁢     k     f   s         +   φ     )           }       +     N   ⁡     (     k     f   s       )           ,       0   ≤   m   ≤   1     =         A   0     ⁢     {     1   +     m   ·     cos   ⁡     (         π   ⁢           ⁢   k     2     +   φ     )           }       +     N   ⁡     (     k     f   s       )                 
where the reference signal is
 
                 R   *     ⁡     (   k   )       =       exp   ⁡     (         -   π     ⁢           ⁢   i   ⁢           ⁢   k     2     )       =     i     -   k               
and the phase shift of the reflected signal relative to the transmitted (reference) signal is as follows:
 
     
       
         
           
             
               φ 
               ^ 
             
             = 
             
               
                 ∠ 
                 ⁢ 
                 
                   { 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       
                         
                           4 
                           ⁢ 
                           K 
                         
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         
                           R 
                           * 
                         
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                       · 
                       
                         I 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                   
                   } 
                 
               
               = 
               
                 ∠ 
                 ⁢ 
                 
                   { 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       
                         
                           4 
                           ⁢ 
                           K 
                         
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         i 
                         
                           - 
                           k 
                         
                       
                       ⁢ 
                       
                         I 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                   
                   } 
                 
               
             
           
         
       
     
     It will be noted that factorizing the calculation into 4 discrete summations to removes the need for multiplications in the correlation process. The mathematics behind the algorithm for efficiently performing complex correlation is therefore as follows: 
     
       
         
           
             
               φ 
               ^ 
             
             = 
             
               ∠ 
               ⁢ 
               
                 { 
                 
                   
                     [ 
                     
                       
                         
                           ∑ 
                           
                             K 
                             = 
                             0 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           R 
                           ⁡ 
                           
                             ( 
                             
                               4 
                               ⁢ 
                               K 
                             
                             ) 
                           
                         
                       
                       - 
                       
                         
                           ∑ 
                           
                             K 
                             = 
                             0 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           R 
                           ⁡ 
                           
                             ( 
                             
                               
                                 4 
                                 ⁢ 
                                 K 
                               
                               + 
                               2 
                             
                             ) 
                           
                         
                       
                     
                     ] 
                   
                   + 
                   
                     i 
                     ⁡ 
                     
                       [ 
                       
                         
                           
                             ∑ 
                             
                               K 
                               = 
                               0 
                             
                             
                               N 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                             R 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   4 
                                   ⁢ 
                                   K 
                                 
                                 + 
                                 3 
                               
                               ) 
                             
                           
                         
                         - 
                         
                           
                             ∑ 
                             
                               K 
                               = 
                               0 
                             
                             
                               N 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                             R 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   4 
                                   ⁢ 
                                   K 
                                 
                                 + 
                                 1 
                               
                               ) 
                             
                           
                         
                       
                       ] 
                     
                   
                 
                 } 
               
             
           
         
       
       
         
           
             
                 
             
             ⁢ 
             Or 
           
         
       
       
         
           
             
                 
             
             ⁢ 
             
               
                 φ 
                 ^ 
               
               = 
               
                 ∠ 
                 ⁢ 
                 
                   { 
                   
                     
                       
                         ∑ 
                         
                           K 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         R 
                         ⁡ 
                         
                           ( 
                           
                             4 
                             ⁢ 
                             K 
                           
                           ) 
                         
                       
                     
                     - 
                     
                       R 
                       ⁡ 
                       
                         ( 
                         
                           
                             4 
                             ⁢ 
                             K 
                           
                           + 
                           2 
                         
                         ) 
                       
                     
                     + 
                     
                       i 
                       ⁢ 
                       
                         
                           ∑ 
                           
                             K 
                             = 
                             0 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           R 
                           ⁡ 
                           
                             ( 
                             
                               
                                 4 
                                 ⁢ 
                                 K 
                               
                               + 
                               3 
                             
                             ) 
                           
                         
                       
                     
                     - 
                     
                       R 
                       ⁡ 
                       
                         ( 
                         
                           
                             4 
                             ⁢ 
                             K 
                           
                           + 
                           1 
                         
                         ) 
                       
                     
                   
                   } 
                 
               
             
           
         
       
     
     It will be noted that by choosing f s =4 f m , the need for any multiplication in the CORDIC Rotator  64  has been eliminated. The arithmetic complexity is reduced to one real accumulation per sample per pixel and one 4-quadrant arctangent per correlation interval per pixel, which can be implemented using CORDIC, by way of non-limiting example). 
     The maximum depth of distance that can be unambiguously detected can be written as 
                 d   max     =     c     2   ⁢   fm         ,         
where c is speed of light and f m  is the modulating frequency. After d max  the phase would repeat again, in a phenomenon known as “phase-wrapping”, and potentially resulting in ambiguous values.
 
     In this example, the standard deviation of the estimation error is bound as follows: 
               σ     τ   ^     2     ≥     1     N   ×   SNR   ×       (     2   ⁢           ⁢   π   ⁢           ⁢   f     )     2               
Where N is number of samples that the ADC reads for each calculation period or integration time (e.g., the number of samples that are added together to do the calculation of phase as set forth above). SNR is signal to noise ratio for one of those readings and f is the frequency of modulation. It will be noted that the higher the frequency, the lower the error in estimating time of flight. However, however, d max  also reduces, due to phase-wrapping.
 
       FIG. 3  is a flow diagram  68  of an example process employing complex correlation and CORDIC derotation to estimate phase. Process  68  begins at operation  70  and, in an operation  72 , the transmitter (e.g. LED  24 ′) is energized with an amplitude modulation (AM) at f m . Next, in a operation  74 , variables are initialized. In an operation  76 , there is a wait period of 1/(4*f m ) seconds before reading a sample s from the ADC, adding the sample s to Q(k), and incrementing k by one. Next, in an operation  78 , it is determined if k=5 and, if not, operation  76  is repeated. If k does equal 5 (e.g., operation  76  has been implemented 4 times in the i th  iteration), an operation determines if the variable i is equal to the variable N. If not, the variable k is set to 1 and the variable I is incremented before returning process control to operation  76 . After i is equal to N, an operation  84  calculates an estimated phase, using Q 1 , Q 2 , Q 3  and Q 4 , and outputs the estimated phase. Next, an operation  86  determines if the process  68  is to be continued and, if so, the variable k is reset to 1 and process control returns to operation  76 . If the process  68  is not to be continued, the apparatus is de-energized in an operation  90  and the process  68  ends in an operation  92 . 
       FIG. 4  is a graph illustrating an example embodiment which uses a two modulation frequencies, for example f 1 =10 MHz and f 2 =1 MHz. With the lower frequency modulation f 2  we can first calculate position of the phase and get an estimate of time-of-flight TOF, and from the higher frequency modulation f 1 , we would get the more accurate estimation of TOF within the specific range determined by the first frequency. As can be seen, at the higher frequency f 1  the TOF [X] angle φ 1  repeats every 2π, but with good resolution, while with the lower frequency f 2  the TOF [X] angle φ 2  does not repeat before it aligns with the second TOF [X]. In this example, the “X” designates the TOF spot, while the width of the brackets “[ ]” designates the accuracy range of the measurement. In other words, the lower frequency modulation f 2  can be used to remove the ambiguity resulted from the phase-wrapping and the higher frequency modulation f 1  can be used to increase the accuracy of the estimate. 
       FIG. 5  is a block diagram of a TOF sensor  10 ″, set forth by way of example and not limitation, which can be used to resolve phase-wrapping ambiguities while maintaining high resolution. TOF sensor  10 ″ includes the TOF sensor  10 ′ of  FIG. 3 , to which a DEMUX  44 ′, counter  46 ′, and phase estimator  66 ′ has been added. Therefore, in this example embodiment, two phase estimates are developed by TOF sensor  10 ″, namely φ est1  by phase estimator  66  and φ est2  by phase estimator  66 ′. The construction and operation of phase estimator  66  and phase estimator  66 ′ are substantially the same. It will therefore be appreciated that two, simultaneous modulation frequencies are detected by means of harmonically-related, multiplier-free correlators in this example embodiment. 
     DEMUX  44 ′, in this non-limiting example, is a n-bit (5-bit) controlled demultiplexer, where n=5, having its signal input coupled to the ADC  16  by a line  94 . DEMUX  44 ′ is therefore a 1:2 n  (1:32) demultiplexer. Therefore, DEMUX  44 ′ has 32 outputs, of which only four are used. That is, a first DEMUX output Y 0 , a second DEMUX output Y 8 , a third DEMUX output Y 16 , and a fourth DEMUX output Y 24 . Counter  46  is, in this example, a 5-bit counter having a clock input CLK and outputs coupled to 5 control ports of the DEMUX  44 ′. Since the clock rates for counter  46  and counter  46 ′ are the same, it will be appreciated that the frequency of the signal input into phase estimator  66  is 8 times faster than the frequency of the signal input into phase estimator  66 ′. This is because only every eighth output of DEMUX  44 ′ is used. 
     It should be noted that TOF sensor  10 ″ can be used to deliver optimal spatial resolution performance. The reference or range finder modulated frequency detects an object in the scene and the second signals modulation frequency is automatically or programmatically adjusted to a frequency that delivers the highest spatial resolution with no phase-wrapping. 
     In example embodiments, a sinusoidal waveform is modulated by a binary code comprising a plurality of chips (“bits”) and having an impulse-like cyclic autocorrelation. As will be appreciated by those of skill in the art, such binary codes can be of a variety of types, including maximal length sequence (MLS), Kasami codes, and Gold codes. As used herein, a “chip” can be used interchangeably with “bits”, and “impulse-like” is defined as and means that the peak autocorrelation sidelobes (PSL) of the signal are substantially suppressed, e.g. do not exceed 1/16 the length of the sequence. More particularly, “impulse-like”, as used herein, means that the PSL of the signal can be from zero (a pure impulse) up to a relatively small fraction of the length of the sequence, e.g. 1/32 th  of the length of the sequence, 1/16 th  of the length of the sequence, or ⅛ th  of the length of the sequence, etc., depending upon the application. Those of skill in the art will realize that this definition of “impulse-like” correlates with a binary code having a cyclic autocorrelation function that closely approximates a Dirac delta function. By way of non-limiting example, an MLS binary code comprising a plurality of chips and having an impulse-like cyclic autocorrelation will be discussed in greater detail. 
     In  FIG. 6 , a maximal length sequence (MLS) generator  96  include a maximal linear feedback shift register  98  and a modulo-2 adder  100 . In this example, shift register  98  has a length of 4. With this example embodiment, the next value in register a 3  is determined by the modulo-2 sum of a 0  and a 1 . The MLS generator  96  recursively generates pseudorandom binary (MLS) sequences, which can be used for the purpose of disambiguation. 
     The circular autocorrelation of an MLS is a Kronecker delta function, with DC offset and time delay depending upon its implementation. For a ±1 convention: 
               R   ⁡     (   n   )       =         1   N     ⁢       ∑     m   =   1     N     ⁢       s   ⁡     [   m   ]       ⁢       s   *     ⁡     [     m   +   n     ]       ⁢   N         =     {         1             if   ⁢           ⁢   n     =   0     ,               -     1   N               if   ⁢           ⁢   0     &lt;   n   &lt;     N   .                       
where s* represents the complex conjugate and [m+n] N  represents a circular shift.
 
       FIG. 7  is a flow diagram of a method  102 , set forth by way of example and not limitation, for distinguishing a phase-shifted reflected waveform of a transmitted waveform from other waveforms. In an operation  104 , a binary code with impulse-like cyclic autocorrelation properties is obtained, e.g. from MLS generator  96 , from a look-up table, etc. Next, in an operation  106 , a sinusoidal (e.g. cosine) wave is modulated by the binary code to form a series of bits (“chips”) on a sinusoidal carrier wave. Optionally, gaps are provided between adjacent chips in this operation  106 , as will be discussed in greater detail subsequently. The modulated waveform is then transmitted as a transmitted waveform, e.g. from an LED or laser diode in an operation  108 . Next, in an operation  110 , a reflected waveform is received, e.g. by a photodetector, and is demodulated in an operation  112  using the same binary code that was used to create the transmitted waveform. This operation  112  may optionally provide gaps between adjacent chips (either instead of or in conjunction with operation  106 ) before recovering the original signal of the transmitted waveform. For example, a signal gap is provided between adjacent chips in a correlation signal (e.g. the binary code used to modulate the modulated waveform) to accommodate sign changes with timing uncertainty in the reflected waveform 
     The processes of operation  106  of  FIG. 7  will be discussed in greater detail with respect to  FIGS. 8A, 8B, 9A and 9B .  FIG. 8A  illustrates an MLS signal that is used to MLS-modulate a cosine wave into a number of bits or “chips” C, e.g. C 0 , C 1  . . . C 5  . . . , as seen in  FIG. 8B . In another example embodiment, there are 255 chips in the sequence. The chips C can have a value of +1 or −1. That is, for each positive chip there is a positive burst of cosine waves, and for each negative chip there is a negative burst of cosine waves. These bursts of cosine waves can be demodulated by a phase detector into positive and negative pulses  118 . In this example, the pulses make the sequence +1, +1, −1, −1, +1, −1, +1. 
     As seen in  FIG. 8B , optionally between each chip C is a gap where the value is zero, e.g. the signal ceases for a short period of time, to accommodate sign changes with timing uncertainty. That is, if a receiver of the modulated cosine wave attempts to read the signal as the sign changed between two chips, a decoding error might occur. By providing a gap between each chip, this embodiment prevents bit errors occurring between chips that are changing signs by providing a buffer zone between adjacent chips. While this technique may reduce the signal strength of the modulated cosine wave  116  somewhat, this is more than offset by the reduction in errors that occur during sign changes between chips. It should be noted that the gaps between chips C can be provide before transmission, e.g. in the transmitted waveform, or after the reflected waveform is received. In either event, a correlation waveform (e.g. as illustrated in  FIG. 8B ) a comprising a binary code having impulse-like cyclic autocorrelation properties and optional gaps between adjacent chips is provided as one input to the correlator. 
       FIG. 9A  is a graph of an MLS-modulated cosine wave  120 , and  FIG. 9B  is a zoomed in version of the MLS-modulated cosine wave  120  to show the gap “G” at the apex of the waveform. The width “W” of the gap is preferably sufficient to overcome any timing uncertainties during sign changes, and represents only phase information, not amplitude. 
     It should be noted that the benefit of the gaps can be realized either by transmitting a signal with the gaps already included or by transmitting an uninterrupted modulated transmitted waveform and inserting equivalent gaps in the received reflected waveform. In either event, a correlation waveform (e.g. as illustrated in  FIG. 8B ) forms on input to the correlator. Since correlation is essentially the integration of the product of two signals, it doesn&#39;t matter whether the multiplier or the multiplicand is zero, since the result will be zero in either case. 
     Although various embodiments have been described using specific terms and devices, such description is for illustrative purposes only. The words used are words of description rather than of limitation. It is to be understood that changes and variations may be made by those of ordinary skill in the art without departing from the spirit or the scope of various inventions supported by the written disclosure and the drawings. In addition, it should be understood that aspects of various other embodiments may be interchanged either in whole or in part. It is therefore intended that the claims be interpreted in accordance with the true spirit and scope of the invention without limitation or estoppel.