Methods and Apparatus for Modulo Sampling and Recovery
20190103876 ยท 2019-04-04
Inventors
Cpc classification
H03M1/164
ELECTRICITY
International classification
Abstract
A self-reset ADC may take a set of temporally equidistant, modulo samples of a bandlimited, analog signal, at a sampling rate that is greater than e samples per second, where is Archimedes' constant and is Euler's number. The bandlimited signal may have a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz. These conditions of sampling rate, bandwidth and maximum frequency may ensure that an estimated signal may be recovered from the set of modulo samples. This estimated signal may be equal to the bandlimited signal plus a constant. The constant may be equal to an integer multiple of the modulus of the centered modulo operation employed to take the modulo samples.
Claims
1. A method comprising sampling a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, wherein (a) e is Euler's number; (b) is Archimedes' constant; (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz; (d) the sampling includes performing a centered modulo operation, which centered modulo operation has a modulus; and (e) the method includes performing a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (iii) outputs an estimate of the first signal, which estimate is equal to the first signal plus a constant, which constant is an integer multiple of the modulus.
2. The method of claim 1, wherein the calculation also includes, in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus.
3. The method of claim 1, wherein the first signal comprises an electrical signal.
4. The method of claim 1, wherein: (a) the method further comprises normalizing frequency of a second analog, bandlimited signal relative to the first signal; and (b) the calculation includes calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal.
5. The method of claim 1, wherein the method further comprises low-pass filtering an analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal.
6. A method comprising sampling a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, wherein (a) e is Euler's number; (b) is Archimedes' constant; (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz; and (d) the sampling includes performing a centered modulo operation.
7. The method of claim 6, wherein: (a) the method further comprises normalizing frequency of a second analog, bandlimited signal relative to the first signal; and (b) the calculation includes calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal.
8. The method of claim 6, wherein the method further comprises low-pass filtering an analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that actual frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal.
9. The method of claim 6, wherein the first signal is an electrical signal.
10. The method of claim 6, wherein the method further comprises performing a computation that: (a) takes, as an input, a set of modulo samples created by the sampling; (b) includes computing finite difference approximations of higher order derivatives of the set of modulo samples; and (c) outputs an estimate of the first signal.
11. The method of claim 6, wherein: (a) the centered modulo operation has a modulus; and (b) the method further comprises performing a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes (A) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (B) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (iii) outputs an estimate of the first signal.
12. The method of claim 6, wherein the method further comprises: (a) normalizing frequency of a second analog, bandlimited signal relative to the first signal; (b) performing a computation that (i) takes as an input a set of modulo samples created by the sampling, (ii) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (iii) outputs an estimate of the first signal; and (c) calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal.
13. The method of claim 6, wherein: (a) the centered modulo operation has a modulus; and (b) the method further comprises (i) normalizing frequency of a second bandlimited signal relative to the first signal, a de-normalized estimate of the second signal, (ii) performing a computation that (A) takes as an input a set of modulo samples created by the sampling, (B) includes steps of (I) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (II) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (C) outputs an estimate of the first signal, and (iii) calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal.
14. An apparatus that comprises an analog-to-digital converter (ADC), which ADC is configured to sample a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, in such a way that the sampling includes performing a centered modulo operation, wherein: (a) e is Euler's number; (b) is Archimedes' constant; and (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz.
15. The apparatus of claim 14, wherein the apparatus includes an analog filter that is configured to low-pass filter a second analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that actual frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal.
16. The apparatus of claim 14, wherein the first signal, which the ADC is configured to sample, is an electrical signal.
17. The apparatus of claim 14, wherein the apparatus further comprises one or more computers which are programmed to perform a calculation that: (a) takes, as an input, a set of modulo samples created by the sampling; (b) includes computing finite difference approximations of higher order derivatives of the set of modulo samples; and (c) outputs an estimate of the first signal.
18. The apparatus of claim 14, wherein: (a) the centered modulo operation has a modulus; and (b) the apparatus further comprises one or more computers which are programmed to perform a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes (A) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (B) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (iii) outputs an estimate of the first signal.
19. The apparatus of claim 14, wherein: (a) the apparatus is configured to normalize frequency of a second analog, bandlimited signal relative to the first signal; and (b) the apparatus also includes one or more computers which are programmed (i) to perform a calculation that (A) takes, as an input, a set of modulo samples created by the sampling, (B) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (C) outputs an estimate of the first signal, and (ii) to calculate, based on the estimate of the first signal, a de-normalized estimate of the second signal.
20. The apparatus of claim 14, wherein: (a) the centered modulo operation has a modulus; (b) the apparatus is configured to normalize frequency of a second analog, bandlimited signal relative to the first signal; and (c) the apparatus also includes one or more computers which are programmed (i) to perform a calculation that (A) takes, as an input, a set of modulo samples created by the sampling, (B) includes (I) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (II) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (C) outputs an estimate of the first signal, and (ii) to calculate, based on the estimate of the first signal, a de-normalized estimate of the second signal.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051] The above Figures are not necessarily drawn to scale. The above Figures show some illustrative implementations of this invention, or provide information that relates to those implementations. The examples shown in the above Figures do not limit this invention. This invention may be implemented in many other ways.
DETAILED DESCRIPTION
Overview
[0052] In illustrative implementations of this invention, a self-reset ADC may take a set of temporally equidistant, modulo samples of a bandlimited, analog signal, at a sampling rate that is greater than e samples per second, where is Archimedes' constant and e is Euler's number. The bandlimited signal may have a bandwidth of 1 Hz and a maximum frequency of 0.5 Hz. These conditions of sampling rate, bandwidth and maximum frequency may ensure that an estimated signal may be recovered from the set of modulo samples. This estimated signal may be equal (or substantially equal) to the bandlimited signal plus a constant. The constant may be equal to an integer multiple of the modulus of the centered modulo operation employed to take the modulo samples.
[0053] As used herein, a modulo sample or centered modulo sample means a discrete sample of a centered modulo function. Centered modulo sampling means sampling that outputs centered modulo samples.
[0054] As used herein, a centered modulo function, centered modulo operation, .sub. (x) or
.sub. means a function that, for any input x
, outputs a value equal to 2([[x/2+]]), where is a positive real number, [[x]]
xx and is the floor function. In other words, [[x]] is the fractional part of x. Thus, a centered modulo function (also called
.sub.) has a domain of x
, a modulus of 2, and a range of [, ), where is a positive real number.
[0055] In some implementations of this invention, the argument of .sub. is x=g(t), where t is time and g(t) is a bandlimited, continuous, time-domain signal.
[0056] Note that a centered modulo function, as defined herein, is not the same as ordinary modulo function. An ordinary modulus function: (a) has a modulus of and a range of [0, ); and (b) the output of the function folds (resets) to zero at each integer multiple of . For example, in an ordinary modulo function, if modulus is 3, then: (a) for an input of 2.9, the output of the function is 2.9; (b) for an input of 3, the output of the function is 0; (c) for an input of 3.1, the output of the function is 0.1; and (d) the range of the function is [0,3).
[0057] In contrast, in a centered modulo function (as defined herein), the modulus is 2 and the range of the function is [, ). In a centered modulo function (x), the value of (x) resets to each time that x reaches (2n+1), where n is an integer. Each of these resets is what is sometimes called a fold. For instance, if a centered modulo function u(x) has a modulus of 0.5=2 and a range of [, )=[0.25, 0.25), then the value of u(x) would fold to 0.25 three times, at x equals 0.25, 0.75 and 1.25, respectively, while x increased monotonically from 0 to 1.6.
[0058] Also, for example, in a centered modulo function with a modulus of 2 and a range of [1, 1): (a) if the input of the function is 0.9, then the output of the function is 0.9; (b) if the input of the function is 1.0, then the output of the function is 1.0; (c) if the input of the function is 1.1, then the output of the function is 0.9; and (d) if the input of the function is 0.9, then the output of the function is 0.9.
[0059]
[0060]
[0061]
[0062] In
[0063] In
[0064] .sub. (g(t)) 302, which is a centered modulo version of signal g(t) 301. Furthermore,
.sub. (g(t)) 302. Thus, in
[0065] .sub. (g(t)).
.sub. (g(t)).
[0066] In
[0067] In
[0068] .sub. 504 of bandlimited function g(t) 503. The self-reset ADC outputs y.sub.k 506 which is a sampled version of
.sub. (g(t)), where the samples are taken every T seconds.
[0069] Two more definitions, before we discuss
[0070] As used herein, B.sub. means a bandlimited signal that has a Fourier transform that is zero for all frequencies outside of the frequency band (in radians) [, ]or equivalently, outside of the frequency band (in Hertz) of [0.5, 0.5].
[0071] As used herein, a tilde over a value means that the value is estimated. For example, {tilde over ()}.sub.g and {tilde over ()}.sub.k are estimates of .sub.g and .sub.k, respectively.
[0072]
[0073] Specifically,
[0074] For this numerical simulation,
[0075] For this numerical simulation,
[0076] In the numerical simulation that is the subject of
Example: Taking Modulo Samples and Recovering Signal
[0077] The following 31 paragraphs describe a method of centered modulo sampling and signal recovery, in an illustrative implementation of this invention. Specifically, the following 29 paragraphs describe a method that involves (a) a self-reset ADC taking modulo samples .sub. (g(t)) of a continuous signal g(t); and (b) a computer recovering, from these samples, an estimate that is equal to the continuous signal g(t) plus a constant, where the constant is equal to an integer multiple of 2. This method includes at least the following ten steps (Steps 1-10):
[0078] Step 1: Modulo Samples y.sub.k.
[0079] First, acquire a set of modulo samples y.sub.k. This is done as follows:
[0080] The signal that is sampled is a bandlimited, analog signal g(t). This bandlimited signal has a bandwidth of 1 Hz and a maximum frequency of 0.5 Hz. A self-reset ADC takes modulo samples of bandlimited signal g(t), in such a way that: (a) the sampling rate is greater than e samples per second, being Archimedes' constant and e being Euler's number; and (b) the samples are temporally equidistant. The sampling may be performed without counting, recording or computing folds.
[0081] The self-reset ADC outputs a set of modulo samples y.sub.k, where k is an integer. The set of modulo samples y.sub.k consists of temporally equidistant, pointwise samples of centered modulo function .sub. (g(t)), where
.sub. (g(t)) has a modulus of 2 and a range of [, ). The set of modulo samples y.sub.k may be acquired by impulse modulation of
.sub. (g(t)), the impulses being uniformly spaced in time.
[0082] In this example, the remaining steps (Step 2 to Step 10) comprise a recovery method. The recovery involves recovering, from the set of modulo samples y.sub.k, an estimate of the bandlimited signal g(t).
[0083] Step 2: Max-Norm.
[0084] Estimate (at least roughly) the maximum magnitude of the bandlimited, analog signal g(t). This maximum magnitude is sometimes referred as the max-norm of signal g(t), and is sometimes mathematically symbolized by g.sub.. For example, this (at least rough) estimate of the max-norm of signal g(t) may be based on previous sensor measurements.
[0085] Step 3: Upper Bound .sub.g:
[0086] Then determine upper bound .sub.g, which is the smallest integer multiple of 2, that is greater than or equal to the estimated max-norm g.sub.. For example, if the estimated max-norm of g(t) is 12.2 and is 1.5, then .sub.g=15.
[0087] Step 4: N, the Order of Finite Difference.
[0088] Then determine a natural number N. This number N is the order of finite difference that will be used in the recovery. Specifically,
where T is the sampling interval, where e is Euler's number, e2.172; and where is the ceiling function.
[0089] As noted in Step 1, the sampling rate for this algorithm is greater than e samples per second. Thus, sampling interval T for this algorithm is less than (e).sup.1 seconds per sample.
[0090] Step 5:
[0091] Compute
[0092] where .sup.N is the finite difference operator, n! is the factorial of n, and
denotes the binomial coefficient given by
[0093] For instance, with N=1, 2, and 3, respectively, we have
N=1,(.sup.1.sub.y).sub.k=y.sub.k+1y.sub.k
N=2,(.sup.2.sub.y).sub.k=y.sub.k+22y.sub.k+1y.sub.0
N=3,(.sup.3.sub.y).sub.k=y.sub.k+33y.sub.k+2+3y.sub.k+1y.sub.0.
[0094] Step 6: Residual Function
[0095] Compute residual function
[0096] Step 7: Rounding.
[0097] Round each element in the sequence
[0098] Step 8: Sequence s.sup.[N].
[0099] Compute sequence s.sup.[N] where N is given by Equation A above. Sequence s.sup.[N] may be computed iteratively, using a for loop, as follows:
[0100] For each n=1, . . . , N1 in steps or increments of 1, [0101] substep (a): compute integer constant .sub.(n) [0102] substep (b): compute s.sup.[n+1]=Ss.sup.[n]2.sub.(n) [0103] substep (c): round each element in the sequence s.sup.[n+1] to the nearest integer multiple of 2
[0104] end
[0105] In each iteration of this for loop, the integer constant .sub.(n) is computed as follows:
[0106] where
[0107] (a) is the floor function,
[0108] (b) J=6.sub.g/, and
[0109] (c) {X}.sub.k is a sequence of numbers with
X.sub.k=(S.sup.2s.sup.[n]).sub.k(Equation D)
[0110] For initialization, at n=1, s.sup.[1]=
S:(b.sub.l).sub.l=1.sup..fwdarw.(.sub.m=1.sup.lb.sub.m).sub.l=1.sup.,
[0111] Note that S (x))=(x)+c.sub.0, where c.sub.0 is some unknown, real-valued constant, which in this case is an integer-valued constant .sub.(n) identified by calculating .sub.(n) per Equation C above. S is the first-order anti-difference operator. S.sup.2 is the second-order anti-difference operator.
[0112] Note that the final iteration of the for loop in this Step 8 is for n=N1. Thus, the output of this Step 8 is sequence s.sup.[N].
[0113] Step 9: unfolded samples {tilde over ()}.
[0114] Estimate unfolded samples {tilde over ()}. These estimated discrete samples {tilde over ()} are an estimate of g(kT). As noted above, g (kT) is the set of discrete samples obtained by sampling g(t) every T seconds.
[0115] In this Step 9, samples {tilde over ()} may be estimated by {tilde over ()}=(Ss.sup.[N])+.sub.k. As mentioned above, s.sup.[N] is the output of Step 7.
[0116] Note that Ss.sup.[N]=.sub.+c.sub.0. That is, Ss.sup.[N] is equal to residual function .sub. plus some unknown bias c.sub.0=2n, where n is an integer. As noted above, .sub.=.sub.ky.sub.k, where .sub.k comprises samples of g(t) and where y.sub.k comprises modulo samples of .sub. (g(t)). In illustrative implementations, to recover samples {tilde over ()}, the recovery algorithm may add modulo samples .sub.k and residual function .sub..
[0117] Step 10: estimate of continuous function g(t).
[0118] Recover an estimate {tilde over (g)}(t) of the bandlimited, continuous function g(t). This estimate may be computed by using Shannon's interpolation formula,
where t is real-valued time and
[0119] In illustrative implementations of this invention, this estimate {tilde over (g)}(t) is mathematically guaranteed to be equal to the bandlimited function g(t) plus a constant, which constant is an integer multiple of the modulus.
[0120]
[0121] The preceding 31 paragraphs describe (and
[0122] The ten steps described above (Steps 1-10) assume that the bandlimited signal being sampled is a continuous time-domain signal. Alternatively, in Steps 1-10, the bandlimited signal being sampled may be a continuous function of any variable, not just time. In that case, Steps 1-10 shall be modified as appropriate to apply to the variable(s) in the argument of the bandlimited signal. For instance, if the bandlimited signal g(t) being sampled is a function of spatial position, then: (a) t would be spatial position instead of time; (b) the frequency of the bandlimited signal would be a spatial frequency; and (c) in Step 1, the impulses would be separated by uniform spatial distance, instead of by uniform temporal distance.
[0123] In illustrative implementations of this invention, the values of the bandlimited signal (which is being sampled) may have any arbitrary units. For instance, the bandlimited signal may have units of electric potential (e.g., voltage), electric charge (e.g., coulombs), light intensity, power, temperature, pressure, heart rate, or magnetic field strength.
Mathematical Proof of Recovery
[0124] The following 55 paragraphs comprise a mathematical proof of guaranteed recovery, in illustrative implementations of this invention.
[0125] Many self-reset ADCs employ a memoryless, non-linear mapping of the form,
where [[t]] tt defines the fractional part of t.
[0126] The mapping in Equation 1 is folding amplitudes, that is, the range of .sub. is [, ]. In effect, Equation 1 may be interpreted as a centered modulo operation.
[0127] Let L.sub.2 be the function to be sampled and let be the sampling kernel. Let L.sub.2 be the set of square-integrable functions. Let {circumflex over ()}()=(t)e.sup.jt dt denote the Fourier Transform of . We say is -bandlimited or,
B.sub.{circumflex over ()}()=1.sub.[,](){circumflex over ()}() and L.sub.2
where 1.sub.D (t) is the indicator function on domain . In practice, may be non-bandlimited, in which case, pre-filtering with B.sub. ensures that the signal to be sampled is bandlimited. In the remainder of this proof, we will assume that we are given a low-pass filtered version of , which we will refer to as g
*. Furthermore, we will normalize the maximum frequency to (and the bandwidth to 2) such that gB.sub.. This function g then undergoes a non-linear, amplitude folding defined in Equation 1 and results in,
z(t)=.sub.(g(t))(Equation 2)
[0128] The output of Equation 1, that is, .sub. (g(t)) is sampled using impulse-modulation, .Math..sub.kT
(tkT), where T>0 is the sampling interval. This results in uniform samples,
y.sub.kz(kT)=
.sub.(g(t)),k
(Equation 3)
[0129] Proposition 1:
[0130] (Modular Decomposition) Let g.sub. be a zero-mean function and .sub. (g(t)) be defined in Equation 1 with fixed, non-zero constants. Then, the bandlimited function g admits a decomposition
g(t)=z(t)+.sub.g(t)(Equation 4)
where .sub.g is a simple function and where .sub.g (t)=2 (t),
. The function .sub.g (t) is a sum of box functions that takes only values that are equal to an integer multiple of 2. Each constant sequence
is a portion of .sub.g (t) in which .sub.g (t) is constant and non-zero (in other words, loosely speaking, each constant sequence
is a box). For each constant sequence
, 2
is the constant value (along the .sub.g (t) axis) of the sequence. Thus, loosely speaking, 2
is the constant height of a box (which constant height may be zero or non-zero). For each constant sequence
,
is the width (along the horizontal t axis) of the sequence.
[0131] The proof of Proposition 1 is set forth later in this section. What Equation 4 shows is that recovering g from z boils down to finding .sub.g. Next, we explore sufficiency conditions for recovery of g given modulo-samples {y.sub.k}.sub.k.
[0132] Below, we concretely answer the following questions:
[0133] Let g.sub. and suppose that we are given modulo samples of g defined by y.sub.k in Equation 3,
[0134] Q1: What are the conditions for recovery of g from y.sub.k?
[0135] Q2: In the spirit of Shannon's sampling theorem, is there a constructive algorithm that maps samples y.sub.k.fwdarw.g?
[0136] In what follows, we will answer the two questions affirmatively.
[0137] Given the sequence of modulo samples y.sub.k, our basic strategy will be to apply a higher order finite difference operator .sup.N, where the first order finite difference is given by (y).sub.k=y.sub.k+1y.sub.k. We will be exploiting that such operators commute with the modulo operation. So after applying the amplitude folding (Equation 1) to the resulting sequence, one obtains the same output as if one had started with g.sub.k instead of y.sub.k. That in turn will allow for recovery if the higher order finite differences of the g.sub.k's are so small that the amplitude folding has no effect.
[0138] Consequently, our goal will be to investigate when higher order finite differences of samples of a bandlimited function are small enough. One way to ensure this is to sufficiently oversample. A first step towards this goal will be to relate the sample finite difference and the derivative of a bounded function. This well-known observation is summarized in the following lemma:
[0139] Lemma 1:
[0140] For any gC.sup.m ()L.sub. (
), its samples .sub.k
g(kT) satisfy
.sup.N.sub.T.sup.Ne.sup.Ng.sup.(n).sub.(Equation 5)
where is the set of real numbers, C.sup.m is a function that is differentiable m times, and L.sub. is a function that has a maximum bound.
[0141] To bound the right hand side of Equation 20 (below), we invoke Bernstein's inequality,
g.sup.(N).sub..sup.Ng.sub.(Equation 6)
[0142] Consequently, by combining Equation 20 and Equation 6, we obtain,
.sup.N.sub.(Te).sup.Ng.sub.(Equation 7)
[0143] This inequality may be used in our proposed recovery method. Namely, provided
choosing N logarithmically in g.sub. ensures that the right hand side of Equation 7 is less than . More precisely, assuming that some .sub.g 2 is known with g.sub..sub.g, a suitable choice is
[0144] For the remainder of this proof we will work with this choice of N and assume
which yields the assumption in a stable way.
[0145] The bound of for Equation 7 in turn entails that the folding operation has no effect on .sup.N , that is,
.sup.N
.sub.(
.sub.(
[0146] Equation 9 allows for recovery of
[0147] Proposition 2:
[0148] For any sequence a it holds that
.sub.(.sup.Na)=
.sub.(.sup.N(
.sub.(a)).(Equation 10)
[0149] To choose N, we employ some upper bound .sub.g such that g.sub..sub.g, which we assume to be available for the remainder of this proof. As it simplifies the presentation, we assume without loss of generality that .sub.g 2Z. Note that .sub.g is used for recovery, not sampling. In illustrative implementations of this invention, no limitations on .sub.g arise from the circuit architecture.
[0150] To recover the sequence , recall from Proposition 1 that .sub. y, that is, the sampled version of .sub.g takes as values only multiples of 2. As y is observed, finding .sub. is equivalent to finding .
[0151] Noting that .sup.N (y) can be computed from the data (via Equation 9), it remains to investigate how E can be recovered from
the inverse of the finite difference, is a stable procedure because in the implementation we can round to the nearest multiple of 2 in every step.
[0152] There still is, however, an ambiguity to be resolved. Namely, the constant sequence is in the kernel of the first order finite difference, so its inverse can only be calculated up to a constant. Thus when computing .sup.n-1 .sub. from .sup.n .sub., n=1, . . . , N, the result can be determined up to an integer multiple of the constant sequence with value 2, that is,
.sup.n-1.sub.=S.sup.n.sub.+.sub.(n),
for some .sub.(n) .
[0153] For n=1, this ambiguity cannot be resolved, as adding multiples of 2 to a function results in the same modulo samples. To resolve this ambiguity for n>1, we apply the summation operator a second time. Repeating the same argument, we obtain that
.sup.n-2.sub.=S.sup.2.sup.n.sub.+L.sub.(n)+.sub.(n-1)(Equation 11)
where L==(2i).sub.i=1.sup..
[0154] This now implies that
[0155] Equation 12 uses Equation 7 together with the fact that y.sub.2. As nN, Equation 8 yields that
[0156] The last step of Equation 13 uses that
[0157] So one obtains
[0158] Choosing
directly yields that
[0159] We now formulate a recovery method, Algorithm 1. Algorithm 1 comprises five steps, as described below.
TABLE-US-00001 Algorithm 1: Recovery from Modulo Folded Samples Data: y.sub.k = .sub.(g(kT)),N
, and 2
.sub.gg.sub.. Result: {tilde over (g)} g (Step 1) Compute sequence
.sub.(
[0160] (Step 4) {tilde over ()}=(Ss.sup.[N]).sub.k+y.sub.k. Note that s.sup.[N] is the output of Step 3. Note also that Ss.sup.[N]=.sub.+c.sub.0. That is, Ss.sup.[N] is equal to residual function .sub. plus some unknown bias c.sub.0=2. As noted above, .sub.=.sub.k.sub.k, where .sub.k comprises samples of g(t) and y.sub.k comprises modulo samples of
.sub. (g(t)). In illustrative implementations, to recover samples {tilde over ()}, the recovery algorithm may add modulo samples .sub.k and residual function .sub..
[0161] (Step 5) Compute {tilde over (g)} from {tilde over ()} via low-pass filter.
[0162] Theorem 1 (Unlimited Sampling Theorem)
[0163] Let g(t)B.sub. and y.sub.k=.sub. g(t)|.sub.t=kT, k
in Equation 3 be the modulo samples of g(t) with sampling interval T. Then a sufficient condition for recovery of g(t) from the {y.sub.k}.sub.k up to additive multiples of 2 is that
[0164] Provided that this condition is met and assuming that .sub.g2 is known with g.sub..sub.g, then choosing
yields that (Te).sup.Ng.sub.< and Algorithm 1 recovers g from y again up to the ambiguity of adding multiples of 2.
[0165] Proof of Proposition 1:
[0166] Since z(t)=.sub. g(t)), by definition, we write,
where (a) is due to (g/2)+h and in (b), we use h=
h
+h.
[0167] Since h, for an arbitrary function h, can be written as,
h(t)=(t),q.sub.l
(Equation 19)
we obtain the desired result.
[0168] Proof of Lemma 1:
[0169] Using Taylor's theorem, we can express g(t) locally around an anchor point as the sum of a polynomial of degree N1 and a remainder term of the form
for some intermediate value .sub.l between lT and . As (.sup.N).sub.k is a linear combination of g(t.sub.n)'s with
t.sub.n=(k+n)T[kT,(n+k)T],n=0, . . . ,N,
we choose the anchor point
[0170] As .sup.N annihilates any polynomial of degree N1, only the remainder term takes effect and we have
(.sup.N).sub.k=(.sub.Nr).sub.k=(.sup.Nr.sup.[k]).sub.0,
where r.sup.[k]=(r.sub.k, r.sub.k+1, . . . r.sub.k+N).
[0171] Noting that for any vector V one has by definition .sub..sub., it follows that
where in the last step, we used Stirling's approximation.
[0172] Proof of Proposition 2:
[0173] As usual, let .sup.Na. In view of Proposition 1 and Equation 4, a admits a unique decomposition, a=
.sub. a+.sub.a where .sub.a is a simple function. This allows us to write, .sup.N
.sub. a==
.sub.(a.sub.1+a.sub.2)=
.sub.(
.sub.(a.sub.1)+
.sub.(a.sub.2))
[0174] And hence,
.sub.(.sup.N
.sub.(a))=
.sub.(
.sub.(
.sub.()+
.sub.(
[0175] Now since , .sub.N .sub.a=
where B.sub.n.sup.N is the Binomial coefficient. From this, we conclude that
.sub. () or
.sub. (
.sub.(.sup.N
.sub.(a))=
.sub.(
.sub.())=
.sub.(),
which proves the result in Equation 10.
[0176] As noted above, the preceding 55 paragraphs comprise a mathematical proof of guaranteed recovery, in illustrative implementations of this invention.
[0177] The five steps of Algorithm 1 (described above) are set forth in
Self-Reset ADC
[0178] In illustrative implementations of this invention, a self-reset ADC (e.g., 102) may sample an analog, bandlimited signal and may output a digital signal that encodes discrete, modulo samples of the bandlimited signal.
[0179] In illustrative implementations of this invention, a self-reset ADC (e.g., 102) may comprise hardware components that, taken as a whole, are configured to perform centered modulo operations processing, sampling and quantization.
[0180] In illustrative implementations of the present invention, a wide variety of self-reset ADCs (including well-known, existing, self-reset ADCs) may be employed.
[0181] Non-limiting examples of self-reset ADCs that may be employed in the present invention include hardware and functionality described in: (a) Liu et al., U.S. Pat. No. 6,93,796 B2, issued Aug. 9, 2005 (Liu Patent); (b) Han et. al, U.S. Pat. No. 7,619,674 B2, issued Nov. 17, 2009 (Han Patent); and (c) El Gamal et al., U.S. Pat. No. 7,492,400 B2, issued Feb. 17, 2009 (El Gamal Patent). The entire disclosures of the Liu Patent, Han Patent, and El Gamal Patent are incorporated by reference herein.
[0182]
[0183] Hardware 1000, 1100, 1200, 1300, 1400, 1600 is shown in
[0184]
[0185] As noted above, in the present invention, a self-reset ADC may include: (a) components configured to perform centered modulo or reset operations; (b) components configured to perform sampling; and (c) components configured to perform quantization. In some cases, a component of the self-reset ADC performs more than one of these functions.
[0186] In illustrative implementations of this invention, a self-reset ADC may include one or more hardware components that alone or together are configured to perform centered modulo operations. For instance, these components may include one or more reset transistors, diodes, junction capacitors, comparators, feedback loops, memory, and control lines. For example, in some cases, one or more reset transistors, comparators or control lines may control timing of resets and draining or discharge of stored charge.
[0187] In illustrative implementations of this invention, a self-reset ADC may include one or more hardware components that alone or together are configured to perform sampling or quantization or both. For instance, in some implementations of this invention, a self-reset ADC may include one or more sampling components or quantization components that alone or together comprise one or more of the following: a direct conversion ADC, flash ADC, parallel comparator ADC, counter type ADC, servo tracking ADCs, successive-approximation ADC, ramp-compare ADC, Wilkinson ADC, integrating ADC, dual-slope ADC, multi-slope ADC, charge balancing ADC, delta-encoded ADC, counter-ramp ADC, pipelined ADC, sub-ranging quantizer, sigma-delta ADC, delta-sigma ADC, time-interleaved ADC, intermediate FM stage ADC, time-stretch ADC, or pulse-code modulator.
[0188] In illustrative implementations of this invention, a self-reset ADC (e.g., 102) may perform (and may include hardware configured to perform) sampling using any existing sampling method.
[0189] Here are non-limiting examples of quantizer hardware that may be employed in a self-reset ADC in the present invention. In some implementations of the present invention, quantizer hardware in a self-reset ADC may comprise a rate-distortion optimization quantizer, a mid-riser uniform quantizer, a mid-tread uniform quantizer, or a dead-zone quantizer.
[0190] In illustrative implementations of this invention, a self-reset ADC (e.g., 102) may comprise what is commonly called a self-reset ADC, a folding ADC, a modulo ADC, or a modulo PCM (pulse-code modulator). A self-reset ADC is a non-limiting example of an ADC.
[0191] In many implementations, this invention: (a) does not count the number of resets (also known as folds) performed to create a modulo sample; and (b) does not use the number of resets as an input to the recovery algorithm. If any existing self-reset ADC hardware (e.g., described above or shown in
[0192] In some cases, a self-reset ADC (e.g., 102) in the present invention may include filters, such as analog low-pass filter that are configured to low-pass filter a non-bandlimited analog signal. Furthermore, in some cases, a self-reset ADC (e.g., 102) in the present invention may include signal processing hardware configured to normalize frequency of a signal (e.g., by transforming the frequency in such a way that the resulting signal has a bandwidth of 1 Hz and a maximum frequency of 0.5 Hz) or to un-normalize frequency of the signal (un-normalizing frequency being the inverse operation of normalizing frequency).
More Details
[0193] As noted above, N is the order of finite difference approximation. As can be seen from Equation 16 (and Equation C, which is identical), N tends to increase as the sampling interval T increases toward (e).sup.1 seconds per sampleor equivalently, as the sampling rate decreases toward e samples per second. If the sampling rate is very close to e (while remaining greater than e), N may be very large, per Equation 16. In many implementations, it is desirable to have a relatively small N, for ease of computations. Thus, in many implementations, it is desirable to select a sampling rate that is larger than, but not too close to, e. For instance, in many practical scenarios, it may be desirable to have a sampling rate of 10 samples per second, or to have a sampling rate of 2e samples per second. Increasing the sampling rate (while it is greater than e)or equivalently, decreasing the sampling interval (while it is less than (e).sup.1)tends to make N (the order of finite difference approximation) smaller. As long as the sampling rate is greater than e samples per second (and other conditions discussed herein are satisfied), recovery of the bandlimited signal that is sampled is assured. See mathematical proof, above.
[0194] As can be seen from Equation 16 (and Equation C, which is identical), the recovery algorithm discussed above and summarized in
[0195] Furthermore, if the sampling rate is greater than 1 sample per second and less than e, then the recovery algorithm summarized in
[0196] (A) The order of finite difference approximation N depends on the following quantity, per Equation 16:
[0197] (B) If .sub.g<, then no modulo wrapping occurs, and we don't care about N. So we will not consider this case.
[0198] (C) .sub.g> is the interesting case. If .sub.g>, then log log .sub.g<0 and thus the numerator of F(, .sub.g, T) is negative. Furthermore, if the sampling rate is greater than 1 sample per second and less than e samples per second, then: (a) the denominator of F(, .sub.g, T) is positive; (b) F(, .sub.g, T) is negative; and (c) Equation 16 returns a negative number for N. But the order of finite difference approximation N cannot be negative. Thus, if the sampling rate is greater than 1 sample per second and less than e, then the recovery algorithm summarized in
[0199] Let R be the sampling rate in samples per second and T be the sampling interval in seconds per sample. The case when the sampling rate R(1, e) or
uniquely defines a finite-energy, bandlimited function in terms of its modulo samples. Thus, with this choice of sampling rate R(1, e), each bandlimited function being sampled has a unique set of modulo samples and the modulo samples can not lead to ambiguity. However, the inventors are not aware of any recovery method whereby, when R(1, e), the resulting modulo samples may be mapped back to unfolded samples. Nor are the inventors aware of any mathematical proof that such recovery of unfolded samples from folded samples is possible where RE (1, e).
[0200] When R>e or Te<1, Equation 10 says that for some T and N, we have .sub. (.sup.N)=
.sub. (.sup.Ny) at each sample value, where we are given y which are modulo samples and which are unfolded samples.
[0201] However, when R(1, e) or
we may still have .sub. (.sup.N)=
.sub. (.sup.Ny) but not for all samples values of {y.sub.k}.sub.k.
[0202] In some alternative implementations of this invention, R(1, e) and equivalently,
In these alternative implementation, where sampling rate R is greater than 1 sample per second and less than e samples per second, recovery from folded modulo samples may be achieved as follows: Suppose we are given a patch of L samples of . Then
suggests that we can recover or unfold samples because in this case of T, .sub. (.sup.N )=
.sub. (.sup.Ny) will not be exactly satisfied everywhere but the knowledge of L samples of can be used to compute locations where error occurs. In this alternative implementation, knowledge of unfolded examples may be used as additional information in the algorithm.
Software
[0203] In the Computer Program Listing above, a computer program file named source_code.txt (the Prototype Software) is listed. This computer program file comprises software employed in a prototype implementation of this invention. To run this as a Matlab software file, the filename extension would be changed from .txt to a .m filename extension.
[0204] The Prototype Software (1) creates a simulated bandlimited signal with a moderate amount of noise; (2) takes discrete samples from the bandlimited signal; and (3) reconstructs the bandlimited signal from the samples. The Prototype Software also plots results and prints out a report on the reconstruction.
[0205] This invention is not limited to the Prototype Software. Other software may be employed. Depending on the particular implementation, the software used in this invention may vary.
Computers
[0206] In illustrative implementations of this invention, one or more computers (e.g., servers, network hosts, client computers, integrated circuits, microcontrollers, controllers, field-programmable-gate arrays, personal computers, digital computers, driver circuits, or analog computers) are programmed or specially adapted to perform one or more of the following tasks: (1) to control the operation of, or interface with, hardware components of a self-reset ADC or of a sensor; (2) to recover an estimated signal from samples of the signal; (3) to perform one or more of the computations summarized in
[0207] In exemplary implementations, one or more computers are programmed to perform any and all calculations, computations, programs, algorithms, computer functions and computer tasks described or implied herein. For example, in some cases: (a) a machine-accessible medium has instructions encoded thereon that specify steps in a software program; and (b) the computer accesses the instructions encoded on the machine-accessible medium, in order to determine steps to execute in the program. In exemplary implementations, the machine-accessible medium may comprise a tangible non-transitory medium. In some cases, the machine-accessible medium comprises (a) a memory unit or (b) an auxiliary memory storage device. For example, in some cases, a control unit in a computer fetches the instructions from memory.
[0208] In illustrative implementations, one or more computers execute programs according to instructions encoded in one or more tangible, non-transitory, computer-readable media. For example, in some cases, these instructions comprise instructions for a computer to perform any calculation, computation, program, algorithm, or computer function described or implied herein. For example, in some cases, instructions encoded in a tangible, non-transitory, computer-accessible medium comprise instructions for a computer to perform the Computer Tasks.
Definitions
[0209] The terms a and an, when modifying a noun, do not imply that only one of the noun exists. For example, a statement that an apple is hanging from a branch: (i) does not imply that only one apple is hanging from the branch; (ii) is true if one apple is hanging from the branch; and (iii) is true if multiple apples are hanging from the branch.
[0210] ADC means analog-to-digital converter.
[0211] Archimedes' constant means the ratio of a circle's circumference to its diameter. Archimedes' constant is sometimes called pi or . Archimedes' constant is an irrational number that is approximately equal to 3.14159.
[0212] means the ceiling function. That is, for any real number x, is the smallest integer that is greater than or equal to x. For instance, 3.6=4.
[0213] To say that a signal has a bandwidth of 1 Hz and a maximum frequency of 0.5 Hz means that the Fourier transform of the signal is zero for all frequencies greater than 0.5 Hz and is zero for all frequencies less than 0.5 Hz.
[0214] To compute based on specified data means to perform a computation that takes the specified data as an input. 0
[0215] Centered modulo operation, centered modulo function, centered modulo sample and centered modulo sampling are defined above.
[0216] The term comprise (and grammatical variations thereof) shall be construed as if followed by without limitation. If A comprises B, then A includes B and may include other things.
[0217] The term computer includes any computational device that performs logical and arithmetic operations. For example, in some cases, a computer comprises an electronic computational device, such as an integrated circuit, a microprocessor, a mobile computing device, a laptop computer, a tablet computer, a personal computer, or a mainframe computer. In some cases, a computer comprises: (a) a central processing unit, (b) an ALU (arithmetic logic unit), (c) a memory unit, and (d) a control unit that controls actions of other components of the computer so that encoded steps of a program are executed in a sequence. In some cases, a computer also includes peripheral units including an auxiliary memory storage device (e.g., a disk drive or flash memory), or includes signal processing circuitry. However, a human is not a computer, as that term is used herein.
[0218] Defined Term means a term or phrase that is set forth in quotation marks in this Definitions section.
[0219] For an event to occur during a time period, it is not necessary that the event occur throughout the entire time period. For example, an event that occurs during only a portion of a given time period occurs during the given time period.
[0220] Dynamic range of a signal means the closed interval bounded by the lowest value of the signal and the highest value of the signal.
[0221] The term e.g. means for example.
[0222] Each equation above is referred to herein by the equation number (or letter) set forth to the right of the equation. Non-limiting examples of an equation, as that term is used herein, include: (a) an equation that states an equality; (b) an in equation that states an inequality (e.g., that a first item is greater than or less than a second item); (c) a mathematical statement of proportionality or inverse proportionality; and (d) a system of equations.
[0223] Euler's number means the unique number whose natural logarithm is equal to one. Euler's number is a constant that is approximately equal to 2.71828.
[0224] The fact that an example or multiple examples of something are given does not imply that they are the only instances of that thing. An example (or a group of examples) is merely a non-exhaustive and non-limiting illustration.
[0225] Unless the context clearly indicates otherwise: (1) a phrase that includes a first thing and a second thing does not imply an order of the two things (or that there are only two of the things); and (2) such a phrase is simply a way of identifying the two things, respectively, so that they each may be referred to later with specificity (e.g., by referring to the first thing and the second thing later). For example, unless the context clearly indicates otherwise, if an equation has a first term and a second term, then the equation may (or may not) have more than two terms, and the first term may occur before or after the second term in the equation. A phrase that includes a third thing, a fourth thing and so on shall be construed in like manner.
[0226] means the floor function. That is, for any real number x, x is the largest integer that is less than or equal to x. For instance, 3.6=3.
[0227] For instance means for example.
[0228] To say a given X is simply a way of identifying the X, such that the X may be referred to later with specificity. To say a given X does not create any implication regarding X. For example, to say a given X does not create any implication that X is a gift, assumption, or known fact.
[0229] Herein means in this document, including text, specification, claims, abstract, and drawings.
[0230] Hz means Hertz.
[0231] Higher order derivative means a derivative with an order of two or more. Non-limiting examples of a higher order derivative include second order derivative, third order derivative, fourth order derivative, and fifth order derivative.
[0232] As used herein: (1) implementation means an implementation of this invention; (2) embodiment means an embodiment of this invention; (3) case means an implementation of this invention; and (4) use scenario means a use scenario of this invention.
[0233] The term include (and grammatical variations thereof) shall be construed as if followed by without limitation.
[0234] The input of a computation may be the output of another computation or process.
[0235] Max-norm of a function means the global maximum of the absolute value of the function. The max-norm of a function U is often symbolized by u.sub..
[0236] Modulo sample is defined above.
[0237] Modulus of a modulo function (x) means the real number m, such that (x)=(x+km), where k is an integer. As a non-limiting example, if (x) is a centered modulo function with a range of [, ), then the modulus of (x) is 2. As another nom-limiting example, if (x) is .sub. (x), as defined herein, then the modulus of (X) is 2.
[0238] To normalize the frequency of a second, bandlimited signal relative a first bandlimited signal means to adjust an ADC's sampling rate for the second signal, in such a way that the samples obtained by sampling the second signal are identical to those that would have been obtained by sampling the first signal, which first signal: (a) has a bandwidth of 1 Hz and a maximum frequency of 0.5 Hz; and (b) is identical to the second signal except that frequency of the second signal (without taking into account the normalizing) is scaled by a constant factor relative to that of the first signal. If a second signal's frequency has been normalized relative to a first signal by adjusting sampling rate, then samples of the second signal acquired at the adjusted sampling rate shall comprise samples of a normalized version of the second signal. If the second signal's frequency has been normalized relative to a first signal, then the normalized version of the second signal shall be treated, for all purposes herein, as being identical to the first signal.
[0239] A de-normalized estimate of a signal, the frequency of which has been normalized by scaling frequency of the signal by a constant factor , means an estimate obtained by scaling frequency of the normalized version of the signal by a constant factor of 1/.
[0240] The term or is inclusive, not exclusive. For example, A or B is true if A is true, or B is true, or both A or B are true. Also, for example, a calculation of A or B means a calculation of A, or a calculation of B, or a calculation of A and B.
[0241] To say that a computation outputs a value does not imply that the value is presented in human-perceptible form to a human user. The output of a computation may be an input to another computation or process.
[0242] A parenthesis is simply to make text easier to read, by indicating a grouping of words. A parenthesis does not mean that the parenthetical material is optional or may be ignored.
[0243] To perform a centered modulo operation means to perform a sequence of steps that, for each particular input X in a set of inputs, respectively, outputs the value of at X. The steps in the preceding sentence may be performed in any way, including by any combination of one or more of analog computation, digital computation, or other physical processes. As a non-limiting example, the other physical processes in the preceding sentence may include accumulation of electric charge, discharge or draining of electric charge, and readout.
[0244] Range of a function means the image of the function.
[0245] As used herein, the term set does not include a group with no elements.
[0246] Unless the context clearly indicates otherwise, some means one or more.
[0247] As used herein, a subset of a set consists of less than all of the elements of the set.
[0248] The term such as means for example.
[0249] To say that a machine-readable medium is transitory means that the medium is a transitory signal, such as an electromagnetic wave.
[0250] A matrix may be indicated by a bold capital letter (e.g., D). A vector may be indicated by a bold lower case letter (e.g., a). However, the absence of these indicators does not indicate that something is not a matrix or not a vector.
[0251] Except to the extent that the context clearly requires otherwise, if steps in a method are described herein, then the method includes variations in which: (1) steps in the method occur in any order or sequence, including any order or sequence different than that described herein; (2) any step or steps in the method occurs more than once; (3) any two steps occur the same number of times or a different number of times during the method; (4) any combination of steps in the method is done in parallel or serially; (5) any step in the method is performed iteratively; (6) a given step in the method is applied to the same thing each time that the given step occurs or is applied to different things each time that the given step occurs; (7) one or more steps occur simultaneously, or (8) the method includes other steps, in addition to the steps described herein.
[0252] Headings are included herein merely to facilitate a reader's navigation of this document. A heading for a section does not affect the meaning or scope of that section.
[0253] This Definitions section shall, in all cases, control over and override any other definition of the Defined Terms. The Applicant or Applicants are acting as his, her, its or their own lexicographer with respect to the Defined Terms. For example, the definitions of Defined Terms set forth in this Definitions section override common usage or any external dictionary. If a given term is explicitly or implicitly defined in this document, then that definition shall be controlling, and shall override any definition of the given term arising from any source (e.g., a dictionary or common usage) that is external to this document. If this document provides clarification regarding the meaning of a particular term, then that clarification shall, to the extent applicable, override any definition of the given term arising from any source (e.g., a dictionary or common usage) that is external to this document. To the extent that any term or phrase is defined or clarified herein, such definition or clarification applies to any grammatical variation of such term or phrase, taking into account the difference in grammatical form. For example, the grammatical variations include noun, verb, participle, adjective, and possessive forms, and different declensions, and different tenses.
Variations
[0254] This invention may be implemented in many different ways. Here are some non-limiting examples:
[0255] In some implementations, this invention is a method comprising sampling a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, wherein (a) e is Euler's number; (b) is Archimedes' constant; (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz; (d) the sampling includes performing a centered modulo operation, which centered modulo operation has a modulus; and (e) the method includes performing a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (iii) outputs an estimate of the first signal, which estimate is equal to the first signal plus a constant, which constant is an integer multiple of the modulus. In some cases, the calculation also includes, in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus. In some cases, the first signal comprises an electrical signal. In some cases, the method further comprises normalizing frequency of a second analog, bandlimited signal relative to the first signal; and (b) the calculation includes calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal. In some cases, the method further comprises low-pass filtering an analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal. Each of the cases described above in this paragraph is an example of the method described in the first sentence of this paragraph, and is also an example of an embodiment of this invention that may be combined with other embodiments of this invention.
[0256] In some implementations, this invention is a method comprising sampling a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, wherein (a) e is Euler's number; (b) is Archimedes' constant; (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz; and (d) the sampling includes performing a centered modulo operation. In some cases: (a) the method further comprises normalizing frequency of a second analog, bandlimited signal relative to the first signal; and (b) the calculation includes calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal. In some cases, the method further comprises low-pass filtering an analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that actual frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal. In some cases, the first signal is an electrical signal. In some cases, the method further comprises performing a computation that: (a) takes, as an input, a set of modulo samples created by the sampling; (b) includes computing finite difference approximations of higher order derivatives of the set of modulo samples; and (c) outputs an estimate of the first signal. In some cases: (a) the centered modulo operation has a modulus; and (b) the method further comprises performing a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes (A) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (B) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (iii) outputs an estimate of the first signal. In some cases, the method further comprises: (a) normalizing frequency of a second analog, bandlimited signal relative to the first signal; (b) performing a computation that (i) takes as an input a set of modulo samples created by the sampling, (ii) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (iii) outputs an estimate of the first signal; and (c) calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal. In some cases: (a) the centered modulo operation has a modulus; and (b) the method further comprises (i) normalizing frequency of a second bandlimited signal relative to the first signal, a de-normalized estimate of the second signal, (ii) performing a computation that (A) takes as an input a set of modulo samples created by the sampling, (B) includes steps of (I) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (II) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (C) outputs an estimate of the first signal, and (iii) calculating, based on the estimate of the first signal, a de-normalized estimate of the second signal. Each of the cases described above in this paragraph is an example of the method described in the first sentence of this paragraph, and is also an example of an embodiment of this invention that may be combined with other embodiments of this invention.
[0257] In some implementations, this invention is an apparatus that comprises an analog-to-digital converter (ADC), which ADC is configured to sample a first analog signal at uniformly spaced times at a sampling rate that is greater than Ire samples per second, in such a way that the sampling includes performing a centered modulo operation, wherein: (a) e is Euler's number; (b) is Archimedes' constant; and (c) the first signal has a bandwidth of 1 Hertz and a maximum frequency of 0.5 Hertz. In some cases, the apparatus includes an analog filter that is configured to low-pass filter a second analog signal to create (i) the first signal or (ii) a particular bandlimited signal that is identical to the first signal except that actual frequency of the particular signal is scaled by a constant factor relative to frequency of the first signal. In some cases, the first signal, which the ADC is configured to sample, is an electrical signal. In some cases, the apparatus further comprises one or more computers which are programmed to perform a calculation that: (a) takes, as an input, a set of modulo samples created by the sampling; (b) includes computing finite difference approximations of higher order derivatives of the set of modulo samples; and (c) outputs an estimate of the first signal. In some cases: (a) the centered modulo operation has a modulus; and (b) the apparatus further comprises one or more computers which are programmed to perform a calculation that (i) takes, as an input, a set of modulo samples created by the sampling, (ii) includes (A) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (B) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (iii) outputs an estimate of the first signal. In some cases: (a) the apparatus is configured to normalize frequency of a second analog, bandlimited signal relative to the first signal; and (b) the apparatus also includes one or more computers which are programmed (i) to perform a calculation that (A) takes, as an input, a set of modulo samples created by the sampling, (B) includes computing finite difference approximations of higher order derivatives of the set of modulo samples, and (C) outputs an estimate of the first signal, and (ii) to calculate, based on the estimate of the first signal, a de-normalized estimate of the second signal. In some cases: (a) the centered modulo operation has a modulus; (b) the apparatus is configured to normalize frequency of a second analog, bandlimited signal relative to the first signal; and (c) the apparatus also includes one or more computers which are programmed (i) to perform a calculation that (A) takes, as an input, a set of modulo samples created by the sampling, (B) includes (I) computing finite difference approximations of higher order derivatives of the set of modulo samples, and (II) in each iteration in a set of multiple iterations, computing a finite antidifference approximation and rounding a number to an integer multiple of the modulus, and (C) outputs an estimate of the first signal, and (ii) to calculate, based on the estimate of the first signal, a de-normalized estimate of the second signal. Each of the cases described above in this paragraph is an example of the apparatus described in the first sentence of this paragraph, and is also an example of an embodiment of this invention that may be combined with other embodiments of this invention.
[0258] Each description herein (or in the Provisional) of any method, apparatus or system of this invention describes a non-limiting example of this invention. This invention is not limited to those examples, and may be implemented in other ways.
[0259] Each description herein (or in the Provisional) of any prototype of this invention describes a non-limiting example of this invention. This invention is not limited to those examples, and may be implemented in other ways.
[0260] Each description herein (or in the Provisional) of any implementation, embodiment or case of this invention (or any use scenario for this invention) describes a non-limiting example of this invention. This invention is not limited to those examples, and may be implemented in other ways.
[0261] Each Figure herein (or in the Provisional) that illustrates any feature of this invention shows a non-limiting example of this invention. This invention is not limited to those examples, and may be implemented in other ways.
[0262] Any document that is incorporated by reference herein (incorporated document) does not limit the scope of this invention (including the scope of any hardware, hardware component, method, process, step, software, algorithm, feature, or technology that is described in the main part of this document). Any incorporated document shall only expandand shall not limitthe scope of this invention. For example, if any given feature described in any incorporated document is different from, or in addition to, the features described in the main part of this document, this additional or different feature of the incorporated document does not limit any implementation of this invention described in the main part of this document. As used herein, the main part of this document means this entire document (including any drawings listed in the Brief Description of Drawings above and any software file listed in the Computer Program Listing section above), except that the main part of this document does not include any document that is incorporated by reference herein.
[0263] The above description (including without limitation any attached drawings and figures) describes illustrative implementations of the invention. However, the invention may be implemented in other ways. The methods and apparatus which are described herein are merely illustrative applications of the principles of the invention. Other arrangements, methods, modifications, and substitutions by one of ordinary skill in the art are also within the scope of the present invention. Numerous modifications may be made by those skilled in the art without departing from the scope of the invention. Also, this invention includes without limitation each combination and permutation of one or more of the implementations (including hardware, hardware components, methods, processes, steps, software, algorithms, features, or technology) that are described herein.