CIRCUITS AND METHODS FOR TIME-DELAY TO DIGITAL CONVERTERS

20190312582 ยท 2019-10-10

    Inventors

    Cpc classification

    International classification

    Abstract

    In accordance with some embodiments, polarity-coincidence, adaptive time-delay estimation (PCC-ATDE), mixed-signal techniques are provided. In some embodiments, these techniques use 1-bit quantized signals and negative-feedback architectures to directly determine a time-delay between signals at analog inputs and convert the time-delay to a digital number.

    Claims

    1. A circuit for a time-delay to digital converter, comprising: a first microphone having a first output; a second microphone having a second output; a first one-bit analog-to-digital converter having a first input coupled to the first output and having a third output; a second one-bit analog-to-digital converter having a second input coupled to the second output and having a fourth output; a first variable time delay having a third input coupled to the third output, a fourth input, and a fifth output, wherein the fourth input controls a delay amount of the first variable time delay; a second variable time delay having a fifth input coupled to the fourth output, a sixth input, and a sixth output, wherein the sixth input controls a delay amount of the second variable time delay; a first multiplier having a seventh input coupled to the fifth output, an eighth input coupled to the sixth output, and a seventh output; a third variable time delay having a ninth input coupled to the sixth output, and a eighth output; a second multiplier have a tenth input coupled to the fifth output, and eleventh input coupled to the eighth output, and a ninth output; a subtractor having a twelfth input coupled to the seventh output, a thirteenth input coupled to the ninth output, and a tenth output; an accumulator having a fourteenth input coupled to the tenth output, and an eleventh output; an attenuator having a fifteenth input coupled to the eleventh output, and a twelfth output; a differential splitter having a sixteenth input coupled to the twelfth output, a thirteenth output, and a fourteenth output; a first adder having a seventeenth input coupled to the thirteenth output, an eighteenth input coupled to an offset signal, and a fifteenth output coupled to the sixth input; and a second adder having a nineteenth input coupled to the fourteenth output, an twentieth input coupled to the offset signal, and a sixteenth output coupled to the fourth input.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0008] FIG. 1 is a block diagram illustrating an example of the principle of a polarity-coincidence, adaptive time-delay estimation (PCC-ATDE) mechanism in accordance with some embodiments.

    [0009] FIG. 2 is an example of a graph of possible PCC.sub.M1,M2 values in accordance with some embodiments.

    [0010] FIG. 3 is an example of a circuit for a PCC-ATDE mechanism in accordance with some embodiments.

    [0011] FIG. 4 is an example of block diagram illustrating how variable delays can be determined in accordance with some embodiments.

    [0012] FIG. 5 is an example of a block diagram of a time-discrete implementation using latched comparators, digital delay cells, XORs, adders, and dividers in accordance with some embodiments.

    [0013] FIG. 6 is an example of two graphs showing values for M.sub.1(t), M.sub.2(t), Mixer.sub.1[n]-Mixer.sub.2[n], and F.sub.M1,M2[] in accordance with some embodiments.

    [0014] FIG. 7 is an example of graphs showing values for PCC() and F.sub.x,x(D-) in accordance with some embodiments.

    [0015] FIG. 8 is an example of delay domain model in accordance with some embodiments.

    [0016] FIG. 9 is an example of a graph of PCC.sub.x,x vs. in accordance with some embodiments.

    [0017] FIG. 10 is an example of chip implementation of a PCC-ATDE mechanism in accordance with some embodiments.

    [0018] FIG. 11 is an example of latched comparator in accordance with some embodiments.

    [0019] FIG. 12 is an example of sub-threshold level shifter in accordance with some embodiments.

    DETAILED DESCRIPTION

    [0020] In accordance with some embodiments, polarity-coincidence, adaptive time-delay estimation (PCC-ATDE), mixed-signal techniques are provided. In some embodiments, these techniques use 1-bit quantized signals and negative-feedback architectures to directly determine a time-delay between signals at analog inputs and convert the time-delay to a digital number.

    [0021] In a time delay estimation (TDE), the sampling frequency of the data converters F.sub.S defines the resolution. The noise from approaching automobiles or other vehicles has dominant spectral components below 250 Hz. To support a 1 ms to +1 ms delay range with 8-bit resolution for such noise-like sources, the audio signal needs to be sampled at >50 KS/s, i.e. 100 the Nyquist rate, in some embodiments.

    [0022] Consider the outputs of two microphones, M.sub.1(t) and M.sub.2(t), which capture the signal of the single source x(t) at different positions in space:


    M.sub.1(t)=x(t)+n (1)


    M.sub.2(t)=A.x(tD)+n.sub.2(t) (2)

    where D is the time delay that the algorithm needs to determine, n.sub.1(t) and n.sub.2(t) are random noise, and A the gain (or attenuation) difference in the microphones. In prior mechanisms, the estimation of D requires computing the direct cross-correlation

    [00001] DCC M 1 , M .Math. .Math. 2 ( ) = 1 T .Math. 0 T .Math. M 1 ( t ) , M 2 ( t - ) .Math. dt .Math. ( 3 )

    for many different T and then determining the argument of the peak:


    D=argmax(DCC.sub.M.sub.1.sub.,M2()) (4)

    There are multiple ways to compute the DCC.sub.M1,M2, however, each is complex.

    [0023] An alternative to using the DCC function for performing TDE is to use the polarity-coincidence correlation function (PCC):

    [00002] PCC M 1 , M 2 ( ) = 1 T .Math. 0 T .Math. sgn ( M 1 ( t ) ) , sgn ( M 2 ( t - ) ) .Math. dt .Math. ( 5 )

    It is known that

    [00003] PCC M 1 , M .Math. .Math. 2 ( ) = 2 .Math. sin - 1 ( DCC M 1 , M .Math. .Math. 2 ( ) max ( DCC M 1 , M .Math. .Math. 2 ( ) ) ) ( 6 )

    hence argmax(PCC.sub.M1,M2)=argmax(DCCN.sub.M1,M2). Note that the computation of PCC only needs one-bit signals, in contrast to DCC which requires multi-bit signals.

    [0024] Regardless of how one obtains DCC.sub.M1,M2 or PCC.sub.M1,M2, their computation involves storing a large frame of both M.sub.1(t) and M.sub.2(t), calculating and storing all the points of the cross-correlation within the TDE range, and finally searching for the argument of the peak.

    [0025] In accordance with some embodiments, polarity-coincidence-correlation, adaptive, time-delay estimation (PCC-ATDE) approaches are provided. The PCC-ATDE approaches use only two values of a polarity-coincidence correlation function to close a negative feedback loop that continuously tracks intersignal delay.

    [0026] FIG. 1 illustrates an example 100 of the principle of the PCC-ATDE in accordance with some embodiments. As shown, a loop is formed from blocks 102 and 104, subtractor 109, integrator 110, and attenuator 112. Only two points of the PCC.sub.M1,M2() are calculated at boxes 102 and 104; box 102 with and argument A, with an output marked by a square 106, and box 104 with an argument +.sub.fix, with an output marked by a circle 108. To search for the D=argmax(PCC.sub.M1,M2), the loop takes the difference between the two PCC.sub.M1,M2 values using subtractor 109.

    [0027] FIG. 2 illustrates an example 200 of a graph of possible PCC.sub.M1,M2 values in accordance with some embodiments. If the current value is sufficiently close to the peak, the difference between PCC.sub.M1,M2() and PCC.sub.M1,M2(+.sub.fix) indicates whether is smaller or larger than the argument of the peak. The integrator will continuously increase or decrease the value of until PCC.sub.M1,M2() and PCC.sub.M1,M2(+.sub.fix) have equal values, locking the loop at =D.sub.fix/2, which gives a measurement of the desired intersignal delay D. If the values fall within box 202, then integrator 110 in FIG. 1 will increase the value of A. If the values fall within box 204, then settles at D.sub.fix/2. If the values fall within box 206, then integrator 110 in FIG. 1 will decrease the value of .

    [0028] Attenuator 1/G 112 in FIG. 1 sets the speed and bandwidth of the loop.

    [0029] A practical problem for the architecture in FIG. 1 is that to calculate the PCC.sub.M1,M2 values at blocks 102 and 104, a large frame of each input signal needs to be stored.

    [0030] In accordance with some embodiments, this problem may be overcome using example circuit 300 of FIG. 3. As shown, in some embodiments, PCC.sub.M1,M2() and PCC.sub.M1,M2(+.sub.fix) can be extracted in the PCC-ATDE without storing signal frames. The analog microphone signals M.sub.1(t) and M.sub.2(t) are directly connected to comparators 302 and 304, which each act as a 1-bit analog to digital converter (ADC). In some embodiments, each of comparators 302 and 304 output a+1 if the microphone signal at the comparator's input is greater than zero, and a1 otherwise.

    [0031] The outputs of comparators 302 and 304 are then provided to variable-delay cells 306 and 308, respectively, which have delays of .sub.var1 and .sub.var2, respectively. The outputs of the variable delay cells produce signals M.sub.1d(t) and M.sub.2d(t):


    M.sub.1d(t)=sgn(x(t.sub.var1)+n.sub.1(t.sub.var1)) (7)


    M.sub.2d(t)=sgn(A.x(t.sub.var2D)+n.sub.2(t.sub.var2)) (8)

    [0032] As shown in FIG. 4, the variable delays .sub.var1 and .sub.var2 are defined such that =.sub.var2.sub.var1. And, since a variable delay line can only introduce positive delay values, an offset .sub.offset is added such that .sub.var1 and .sub.var2 are always positive. When the loop settles, corresponds to the time-delay estimation between the inputs, and can assume both positive and negative values depending on which input is ahead of the other.

    [0033] Referring back to FIG. 3, next, M.sub.1d(t) and M.sub.2d(t) are multiplied by multiplier 310 to create V.sub.MIXER1(t). The average of V.sub.MIXER1(t) is the same as PCC.sub.M1,M2():

    [00004] 1 T .Math. t - T t .Math. V MIXER .Math. .Math. 1 ( t ) .Math. .Math. dt = 1 2 .Math. .Math. 0 T .Math. sgn ( M 1 ( t ) ) , sgn ( M 2 ( t - ) ) .Math. dt := PCC M 1 , M .Math. .Math. 2 ( ) ( 9 )

    M.sub.2d(t) is further delayed by fixed delay 312 by a fixed value, .sub.fix, and then multiplied by multiplier 314 with M.sub.1d(t) to create V.sub.MIXER2. The average V.sub.MIXER2 is PCC.sub.M1,M2(+.sub.fix). Note that the averages of the multipliers output, V.sub.MIXER1 and V.sub.MIXER2, do not need to be explicitly calculated.

    [0034] The difference between V.sub.MIXER1 and V.sub.MIXER2 is then determined by subtractor 316. This will result in difference values of +2, 0, or 2.

    [0035] Next, loop integrator 318 averages the difference values and attenuates the higher frequency components of these signals.

    [0036] Attenuator 320 then receives the output of the integrator and produces an attenuated signal. The loop bandwidth, which is directly controlled by the attenuator, determines the effective length T of the averages calculated by the integrator.

    [0037] Turning to FIG. 5, a block diagram of a time-discrete implementation using latched comparators, digital delay cells, XORs, adders, and dividers is shown in accordance with some embodiments. The two shaded areas have different functionalities: the section on the left is used to add a delay of [n] to the microphone signals; the section on the right is used to determine F.sub.x,x, which is a function of the intersignal time-delay of its input.

    [0038] As shown in FIG. 5, the output [n] at timestep n is given by:

    [00005] [ n ] = [ n - 1 ] + 1 G .Math. ( Mixer 1 [ n ] - Mixer 2 [ n ] ) ( 10 )

    [0039] As illustrated in FIG. 6, the result of the subtraction Mixer.sub.1[n]-Mixer.sub.2[n] is a fast-switching digital signal that can only assume values of 2,0,2. Since Mixer.sub.1[n]-Mixer.sub.2[n] has much higher frequency components than the PCC-ATDE loop in some embodiments, it can be decomposed into two components:


    Mixer.sub.1[n]Mixer.sub.2[n]=F.sub.M.sub.1.sub.,M.sub.2([n])+e[n](11)

    where e[n] contains the high-frequency components, with average zero, and F.sub.M.sub.1.sub.,M.sub.2 is the average value of Mixer.sub.1[n]Mixer.sub.2[n]. As in (9), it can be shown that F.sub.m.sub.1.sub.,M.sub.2, is mathematically equal to the difference of two values of the PCC.sub.M1,M2 with argument [n]+.sub.fix and [n]:

    [00006] F M 1 , M 2 ( [ n ] ) = .Math. 1 T .Math. .Math. k = n - T n .Math. .Math. [ Mixer 1 [ n ] - Mixer 2 [ n ] ] = 1 T .Math. .Math. k = n - T n .Math. [ sgn ( M 1 [ k - var .Math. .Math. 1 [ k ] ] ) .Math. sgn ( M 2 [ k - var .Math. .Math. 2 [ k ] ] ) - sgn ( M 1 [ k - var .Math. .Math. 2 [ k ] ] ) .Math. sgn ( M 2 [ k - var .Math. .Math. 2 [ k ] - fix ) ] := PCC M 1 , M 2 ( [ n ] ) - PCC M 1 , M 2 ( [ n ] + fix ) ( 12 )

    Note that, assuming that the PCC.sub.M1,M2 and .sub.fix are static, F.sub.M.sub.1.sub.,M.sub.2 is a function of the output [n]. F.sub.M.sub.1.sub.,M.sub.2([n]) and e[n] can be substituted in (10) to provide:

    [00007] [ n ] = [ n - 1 ] + 1 G .Math. F M 1 , M 2 ( [ n ] ) + 1 G .Math. e [ n ] ( 13 )

    e[n] does not introduce a DC error in [n], but contributes as noise at the output. If one neglects e[n] and focuses on the low-frequency output of the loop, a non-linear feedback loop that continuously increases or decreases [n] to keep F.sub.M.sub.1.sub.,M.sub.2([n])=0 is obtained.

    [0040] Based on (13), a delay-domain model can be used to predict the behavior of the PCC-ATDE loop. The PCC-ATDE operates across multiple-domains. Delay-domain models can assist in understanding how the PCC-ATDE operates. In the PCC-ATDE, the function F.sub.M.sub.1.sub.,M.sub.2 [] is responsible for a domain swap; the value of F.sub.M.sub.1.sub.,M.sub.2[] is directly dependent on the difference between estimated time delay A and the intersignal time delay from the microphones D.

    [0041] Since the only correlation between M.sub.1(t) and M.sub.2(t) comes from the source x(t), the polarity-coincidence correlation function between M.sub.1 and M.sub.2 can be approximated by the auto-polarity-coincidence correlation function of x(t) shifted by the intersignal delay D:


    PCC.sub.M.sub.1.sub.,M.sub.2[]PCC.sub.x,x[D](14)

    This approximation can be used to understand the contribution of the microphone delay D to the values of F.sub.M.sub.1.sub.,M.sub.2, resulting in the function F.sub.x,x:

    [00008] [ n ] = [ n - 1 ] + 1 G .Math. F x , x [ [ n ] - D ] + 1 G .Math. e [ n ] ( 16 )

    [0042] The approximation in (14) and F.sub.x,x are illustrated in FIG. 7 in accordance with some embodiments. Examples of PCC.sub.M1,M2 and PCC.sub.x,x are overlapped for a band-limited noise x(t) (top left in FIG 7) and a sinusoidal x(t) (bottom left in FIG. 7). Next to each of them is the resulting F.sub.x,x(D). Notice that F.sub.x,x only depends on the source signal x(t) and the fixed delay .sub.fix; and, since it is defined by the difference of two PCC.sub.x,x values spaced by .sub.fix, it can be understood as the derivative of PCC.sub.x,x.

    [0043] Introducing F.sub.x,x into (13), we now have a direct relation between the output of the loop [n] and the intersignal delay D that was previously implicit in F.sub.M.sub.1.sub.,M.sub.2:

    [00009] F M 1 , M 2 [ ] PCC x , x [ - D ] - PCC x , x [ - D - fix ] = F x , x [ - D ] ( 15 )

    [0044] Using (16), the delay-domain model in FIG. 8 can be obtained. This model can be used as a tool for the extraction of the system's transient and steady-state response, and also to determine the boundaries for the correct functioning of the loop. The low number of elements in the model and the first-order negative-feedback architecture create a misleading impression that the PCC-ATDE will follow a conventional analysis. The non-linear, x(t)-dependent function F.sub.x,x is a complex mathematical element that affects all the parameters of the system, from the range of converter to the settling time and bandwidth.

    [0045] In order to maintain the negative feedback and guarantee the convergence to the correct time-delay estimation, F.sub.x,x[D] has to have positive values for >D and negative values for <D. Since F.sub.x,x[D] is defined as the difference of two consecutive values of PCC.sub.x,x[], see (15), the equivalent condition is that the derivative of PCC.sub.x,x[] is positive for positive and negative for negative .

    [0046] FIG. 9 shows the PCC.sub.x,x[] of band-limited noise signals in accordance with some embodiments. As illustrated, the local minima that limit the convergence condition for the PCC-ATDE, are indicated .sub.MAX away from the peak of the PCC.sub.x,x[] at =0. Higher bandwidth analog input signals have their local minimum closer to the origin, and hence a have smaller .sub.MAX.

    [0047] To define a range for the system in some embodiments, the difference between [n] and D must always be less than .sub.MAX:


    |[n]D|<.sub.MAX (17)

    This can be an important design parameter for sound-source localization systems, where the maximum time delay between the input signals is limited by the spacing of the microphones. For example, if the microphones are separated by approximately 35cm, the intersignal delay will be always |D|<1 ms. Applying a boundary to the output ||<1.5 ms will guarantee that the loop stays within the covered range for x(t) sources with bandwidth lower than 200 Hz that have a .sub.MAX>2.5 ms. Low-pass filters can be used before the PCC-ATDE to limit the bandwidth of x(t) in some embodiments.

    [0048] FIG. 10 illustrates an example of a CMOS embodiment of a time-discrete implementation of a PCC-ATDE TDE mechanism in accordance with some embodiments.

    [0049] As shown, this mechanism can be implemented on a chip that has four analog inputs 1002, 1004, 1006, and 1008 that are connected to a microphone array. One of the microphones provides the reference for the time-delay estimation at input 1002; the chip outputs the time-delay of the other three analog signals with relation to this reference microphone.

    [0050] The inputs are provided to inputs of comparators 1010. Any suitable comparators can be used in some embodiments. For example, in some embodiments, each comparator can be implemented as a latched comparator as shown in FIG. 11.

    [0051] The outputs of the comparators are then provided to PCC-ATDE core 1012. The core can be implemented in any suitable technology. For example, in some embodiments, the core can be implemented in 0.18 m CMOS technology to take advantage of its low leakage current, while easily meeting speed and density requirements. The core of the PCC-ATDE can be implemented with sub-threshold CMOS logic in some embodiments.

    [0052] As shown in FIG. 10, the variable delay cells can be implemented with chains of 128 (or any other suitable number) flip-flops 1014 and 1016 and multiplexers 1018 and 1020. Any suitable flip-flops and multiplexers can be used in some embodiments. The delay can be controlled by selecting the output of one of the stages of a flip-flop chain using the corresponding multiplexer. After the 1-bit quantization, the multiplications are easily computed with XOR logic gates forming multipliers 1022 and 1024. An extra flip-flop 1026 (which can be any suitable flip-flop in some embodiments), placed after the upper multiplexer, provides the fixed delay .sub.fix. A 10-bit register and adder can be used as an accumulator in some embodiments, and the 1/G attenuation can be realized with arithmetical shifts of 0, 1 or 2 bits. The output can be divided by two to evenly distribute, [n], to both variable delay cells. In case of an odd [n], one is added to the value of the lower variable delay cell.

    [0053] In some embodiments, the 300 mV signals from the PCC-ATDE core can be converted to 1.8V I/O levels with the sub-threshold level shifters 1028. Any suitable level shifters can be used in some embodiments. For example, the level shifters shown in FIG. 12 can be used in some embodiments. In some embodiments, the level shifters are not required.

    [0054] In some embodiments, the circuit of FIG. 10 can be used in an Internet of Things (IoT) embedded system for vehicle bearing estimation. The four microphones can be placed in a pyramid structure and connected to the circuit.

    [0055] Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed embodiments can be combined and rearranged in various ways.