CBADCcontrol-bounded analog-to-digital converter
CTSDM[CT-$\Sigma\Delta$M]continuous-time sigma-delta modulator
CTSDcontinuous-time sigma-delta
DTSDMdiscrete-time sigma-delta modulator
CRFBcascade of resonators with feedback
CRFFcascade of resonators with feedforward

ENOBeffective number of bits
SNRsignal-to-noise ratio
SNDRsignal-to-noise-and-distortion ratio
SQNRsignal-to-quantization-noise ratio
PSDpower spectral density

NTFnoise transfer function
STFsignal transfer function

DCdigital control
ASanalog system
DEdigital estimator

DACdigital-to-analog converter
ADCanalog-to-digital converter

FIRfinite impulse response
FSfull scale
OSRoversampling ratio
OTAoperational transconductance amplifier
PLLphase-locked loop
VCOvoltage-controlled oscillator

GBWPgain-bandwidth product

LMSleast mean squares
RLSrecursive least squares
LMMSElinear minimum mean square error
SFDRspurious-free dynamic range

Calibrating Control-Bounded ADCs

Hampus Malmberg^1, Till Mettler^1, Thomas Burger^1, Fredrik Feyling^2, and Hans-Andrea Loeliger^1

Dept. of Information Technology & Electrical Engineering, ETH Zürich, Zürich, Switzerland^1

Dept. of Electronic Systems, Norwegian University of Science and Technology, Trondheim, Norway^2

The paper considers the calibration of control-bounded analog-to-digital converters.
It is demonstrated that variations of the analog frontend can be addressed by calibrating the digital estimation filter.
In simulations (both behavioral and transistor level) of a leapfrog analog frontend, the proposed calibration method restores essentially the nominal performance.
Moreover, with digital-filter calibration in mind,
the paper reformulates the design problem of control-bounded converters and thereby clarifies the role of sampling, desired filter shape, and nominal conversion error.

Control-Bounded Analog-to-Digital Conversion, Calibration, Component Variations, RLS

§ INTRODUCTION

Stabilizing an analog system using a digital control amounts to implicit analog-to-digital conversion.
This is the core idea behind the CBADC concept, first proposed in
[1] and further developed in [2] and [3]. The CBADC perspective allows more general analog frontends, i.e.,
analog system and digital control combinations, at the expense of a post-processing digital estimation step.
Specifically, it falls on the digital estimator to consolidate the joint effort of the digital control into an estimate
of the input signal fed into the analog system.
A CBADC analog frontend partially resembles CTSDM [5]. However,
in contrast to CTSDM, the analog frontend of a CBADC may contain high-order filters
while having a guaranteed stable nominal operation.
Moreover, the high-level design of a CBADC is a continuous-time filter design task, whereas
CTSDM are typically considered a discrete-time design concept converted into the continuous-time domain [6].

Crucially, the digital estimator's ability to estimate relies on its knowledge of the actual analog frontend.
As reported in [7], this makes CBADC particularly sensitive to component variations if not accounted for.
In this paper, we address this issue by demonstrating that the digital estimation filter can be calibrated to compensate for such variations.

§ THE LEAPFROG FRONTEND

[european voltages]

[op amp] (amp1) at (0,0) $A_1$;
[rground] at (amp1.+) ;
[inner sep=0] (vgnd1) at ($(amp1.-) + (-0.5,-0.5)$) ;
(vgnd1) to[short, *-] (amp1.-);
(vgnd1) to[short, *-] ++(0,1.25) to[C, l=$C_1$] ++ (2.875,0) -| (amp1.out);

[op amp, yscale=-1, rotate=180] (quantizer1) at ($(amp1) + (0, -1.5)$) ;
($(quantizer1) + (0.5, -0.25)$) – ++(-0.25,0) – ++(0, 0.5) – ++(-0.25, 0);
($(quantizer1) + (0.1875, 0)$) – ++(0.125,0);
(fs) at ($(quantizer1) + (1.75, 0.675)$) $f_s$;
[Arrow] (fs) – ++(-1.1, 0);
[rground] at (quantizer1.+) ;

(amp1.out) to[short, *-] (quantizer1.-);
(quantizer1.out) – ++ (-0.5,0) to[R, l=$R_{\kappa_1}$] (vgnd1);

(vgnd1) – ++(-0.5,0.5) to[R, l=$R_{\alpha_1}$] ++(0,1.75) node[inner sep=0] (alpha1) ;

(quantizer1.-) to[open, v^=$x_1(t)$] (quantizer1.+);
(quantizer1.out) to[open, v_=$s_1(t)$] ($(quantizer1.+) + (0,-0.785)$);

[op amp] (amp2) at ($(amp1) + (5,0)$) $A_2$;
[rground] at (amp2.+) ;
[inner sep=0] (vgnd2) at ($(amp2.-) + (-0.5,-0.5)$) ;
(vgnd2) to[short, *-] (amp2.-);
(vgnd2) to[short, *-] ++(0,1.25) to[C, l=$C_2$] ++ (2.875,0) -| (amp2.out);

[op amp, yscale=-1, rotate=180] (quantizer2) at ($(amp2) + (0, -1.5)$) ;
($(quantizer2) + (0.5, -0.25)$) – ++(-0.25,0) – ++(0, 0.5) – ++(-0.25, 0);
($(quantizer2) + (0.1875, 0)$) – ++(0.125,0);
(fs) at ($(quantizer2) + (1.75, 0.675)$) $f_s$;
[Arrow] (fs) – ++(-1.1, 0);
[rground] at (quantizer2.+) ;

(amp2.out) to[short, *-] (quantizer2.-);
(quantizer2.out) – ++ (-0.5,0) to[R, l=$R_{\kappa_2}$] (vgnd2);

(vgnd2) – ++(-0.5,0.5) to[R, l=$R_{\alpha_2}$] ++(0,1.75) node[inner sep=0] (alpha2) ;

(quantizer2.-) to[open, v^=$x_2(t)$] (quantizer2.+);
(quantizer2.out) to[open, v_=$s_2(t)$] ($(quantizer2.+) + (0,-0.785)$);

[op amp] (amp3) at ($(amp2) + (5,0)$) $A_3$;
[rground] at (amp3.+) ;
[inner sep=0] (vgnd3) at ($(amp3.-) + (-0.5,-0.5)$) ;
(vgnd3) to[short, *-] (amp3.-);
(vgnd3) to[short, *-] ++(0,1.25) to[C, l=$C_3$] ++ (2.875,0) -| (amp3.out);

[op amp, yscale=-1, rotate=180] (quantizer3) at ($(amp3) + (0, -1.5)$) ;
($(quantizer3) + (0.5, -0.25)$) – ++(-0.25,0) – ++(0, 0.5) – ++(-0.25, 0);
($(quantizer3) + (0.1875, 0)$) – ++(0.125,0);
(fs) at ($(quantizer3) + (1.75, 0.675)$) $f_s$;
[Arrow] (fs) – ++(-1.1, 0);
[rground] at (quantizer3.+) ;

(amp3.out) to[short, *-] (quantizer3.-);
(quantizer3.out) – ++ (-0.5,0) to[R, l=$R_{\kappa_3}$] (vgnd3);

(vgnd3) – ++(-0.5,0.5) to[R, l=$R_{\alpha_3}$] ++(0,1.75) node[inner sep=0] (alpha3) ;

(quantizer3.-) to[open, v^=$x_3(t)$] (quantizer3.+);
(quantizer3.out) to[open, v_=$s_3(t)$] ($(quantizer3.+) + (0,-0.785)$);

[op amp] (ampN) at ($(amp3) + (5.875,0)$) $A_N$;
[rground] at (ampN.+) ;
[inner sep=0] (vgndN) at ($(ampN.-) + (-0.5,-0.5)$) ;
(vgndN) to[short, *-] (ampN.-);
(vgndN) to[short, *-] ++(0,1.25) to[C, l=$C_N$] ++ (2.875,0) -| (ampN.out);

[op amp, yscale=-1, rotate=180] (quantizerN) at ($(ampN) + (0, -1.5)$) ;
($(quantizerN) + (0.5, -0.25)$) – ++(-0.25,0) – ++(0, 0.5) – ++(-0.25, 0);
($(quantizerN) + (0.1875, 0)$) – ++(0.125,0);
(fs) at ($(quantizerN) + (1.75, 0.675)$) $f_s$;
[Arrow] (fs) – ++(-1.1, 0);
[rground] at (quantizerN.+) ;

(ampN.out) to[short, *-] (quantizerN.-);
(quantizerN.out) – ++ (-0.5,0) to[R, l=$R_{\kappa_N}$] (vgndN);

(quantizerN.-) to[open, v^=$x_N(t)$] (quantizerN.+);
(quantizerN.out) to[open, v_=$s_N(t)$] ($(quantizerN.+) + (0,-0.785)$);

(alpha1) – ++(0, 0.5) -| ($(amp2.out) + (0.5,0.5)$) – (amp2.out);
(alpha2) – ++(0, 0.25) -| ($(amp3.out) + (0.5,0.5)$) – (amp3.out);
(alpha3) – ++(0, 0.5) – ++(4,0) node[anchor=west] … ++(0.625,0) -| ($(ampN.out) + (0.5,0.5)$) – (ampN.out);

(amp1.out) to[R, l=$R_{\beta_2}$] (vgnd2);
(amp2.out) to[R, l=$R_{\beta_3}$] (vgnd3);
(amp3.out) – ++(0.625,0) node[anchor=west] … ++(0.625,0) to[R, l=$R_{\beta_N}$] (vgndN);

($(vgnd1) + (-2.25,-1.25)$) node[rground]  to[V,l=$u(t)$] ++(0, 1.25) to[R,l=$R_{\beta_1}$] (vgnd1);
($(vgnd1) + (-1.25,-2.875)$) node[rground]  to[V,l=$s_0(t)$] ++(0, 1) to[R,l=$R_{\kappa_0}$] ++(0,1.25) – (vgnd1);

A single-ended circuit implementation of the $N$th order homogeneous LF analog frontend with two input signals: $u(.)$, the unknown
signal to be converted, and $s_0(.)$, a known binary reference signal.
All signals $u(.), s_0(.), \dots, s_N(.), x_1(.), \dots, x_N(.)$ are represented as voltages.

A single CBADC analog frontend is considered for calibration; the CBADC LF analog frontend, introduced in [2] and further investigated in [7].

A single-ended opamp-$RC$ based implementation of the $N$th order LF structure is shown in fig:leapfrog-structure. Its basic functionality
can be thought of as amplifying an input signal $u(.)$ through a chain-of-integrators, each parametrized by a time constant $R_{\beta_\ell}C_\ell$,
while stabilizing the analog states $x_1(.),\dots,x_N(.)$ by local DC signals $s_1(.),\dots,s_N(.)$.
The analog frontend gets its name from the $R_{\alpha_\ell}$
feedback paths which also introduce complex poles in the transfer function from $u(.)$ to the final state $x_N(.)$
(assuming ($s_1(.)=0, \dots, s_N(.)=0$)). This transfer function is of fundamental importance for the performance of
a CBADC and will be referred to by its impulse response $g_u(.)$.
The digital control is implemented as a clocked comparator, generating the binary discrete-time control signals $s_\ell[.]$
which are fed back to the system through a DAC with an impulse response $\theta(.)$ as
s_ℓ(t)          ∑_k s_ℓ[k] θ_ℓ(t - kT).

The final state can be written as
x_N(t)      =     (g_u ∗u)(t) + ∑_ℓ=0^N (g_ℓ∗s_ℓ)(t)

where $g_\ell(.)$ denotes the impulse response of the transfer function from $s_\ell(.)$ to $x_N(.)$.

Finally, $s_0[k] \in \{\pm 1\}$ is a known binary discrete-time reference signal which will be used to calibrate the CBADC frontend.
This signal is randomly generated to produce a wideband spectrum, and the ratio $R_{\kappa_0}/R_{\kappa_1}$ is a tradeoff parameter
between the time needed for calibration and a reduced maximum input signal swing.

§ THE DIGITAL ESTIMATOR

The output of the converter is an estimate $\hat u[k]$, of a filtered and sampled version of $u(.)$,  obtained by $N+1$ linear filters as
û[k]          ∑_ℓ= 0^N (h_ℓ∗s_ℓ)[k] + û_0

where the reference filter $h_0$ is a design choice and $h_1, \dots, h_N$, and the scalar offset $\hat{u}_{0}$,
will be subject to calibration.

As shown in app:signal_decomposition,

$\hat{u}[.]$ can be decomposed into
û[k]     =     (h_u ∗u )(k T) + (g̃_u ∗x_N)(k T) + e_c[k]

where $h_u(.)$ is the impulse response of the desired STF.
The second term in eq:estimate_decomposition is recognized as the nominal conversion error,
where $\tilde{g}_u(.)$ is the impulse response of the NTF [2].

Using the NTF filter, the STF filter can be witten as
h_u(t)    =    - (g̃_u ∗g_u)(t)

with $g_u(t)$ as in eq:magic_step.
The last term in eq:estimate_decomposition is the calibration error
e_c[k]         ∑_ℓ= 1^N ((h_ℓ- h̆_ℓ) ∗s_ℓ)[k] eq:calibration_error,

h̆_ℓ[k]          (g̃_u ∗g_ℓ∗θ_ℓ)(kT) ,

are the minimizing filter coefficients to the cost function eq:LMMSE as
will be further described in sec:adaptive_filtering.

The fundamental step in going from eq:estimate to eq:estimate_decomposition
is connecting the desired continuous-time STF filter and the discrete-time reference filter as
h_0[k]         h̆_0[k] ∝- (h_u ∗θ_0)(kT)

where the proportionality relation is due to the fact that $g_u(t) \propto g_0(t)$.
The STF filter is a digital design choice that is not subject to calibration.
Moreover, the role of sampling, in connection to the STF filter, is emphasized in eq:estimate_decomposition
which opposes the conventional view that sampling is the work of the comparators in fig:leapfrog-structure.
Despite the continuous-time nature of the STF filter,
it will be enforced by the digital estimator in the discrete-time domain, see eq:reference_filter.
Therefore, only samples from its impulse response $h_u(.)$ will be required for estimation and calibration. Furthermore,
as the NTF filter is implicitly defined by the circuit implementation, i.e., $g_u(.)$ together with the choice of STF filter, see eq:desired_filter,
it is also not subject to calibration.

In summary,  eq:estimate and eq:estimate_decomposition reveals the fundamental idea of the control-bounded ADC concept in two equations:
a filtered and sampled version of the input signal, $\left(h_u \ast u \right)(k T)$, can be computed by a discrete-time convolution of
the control signals, eq:estimate, where the fundamental performance of such an estimate is dictated by the analog frontends
ability to both amplify $u(.)$
and bound the magnitude of the last state $x_N(.)$.
The calibration error $e_c[.]$ can be made arbitrarily small by conventional calibration techniques as will be shown next.

§.§ Calibration

In the case of no input, i.e., $u(.) = 0$,
the impulse responses $\breve{h}_\ell[.]$, from eq:lmmse_filter, are recognized, see app:wiener_filter,

as the minimizing filter coefficients $h_1[.], \dots, h_N[.]$ with respect to the cost function

|(h_0 ∗s_0)[.] + ∑_ℓ= 1^N (h_ℓ∗s_ℓ)[.] + û_0|^2_u(.)=0

where $s_0[.], \dots, s_N[.]$ are assumed to be zero-mean weakly stationary processes,
jointly independent of the assumed zero-mean stationary process $(\tilde{g}_u \ast x_N)(kT)$, and $\EE{\cdot}$ denotes expectation.
This implies that the decomposition in eq:estimate_decomposition can be enforced,
and the calibration error term made to vanish, by estimating $h_1, \dots, h_N$ from
the discrete-time sequences $s_0[.], \dots, s_N[.]$ alone.
In particular, prior knowledge of any of the analog quantities $g_u(.)$, $g_1(.), \dots, g_N(.)$, and $\tilde{g}_u(.)$ are immaterial
for such calibration.

From here on, all filters $h_\ell[.]$ are chosen as FIR filter with equal filter length $K=512$.
Additionally, the reference filter $h_0[.]$ is determined by standard FIR filter design methods ($-3$ dB gain at bandwidth edge)
and its coefficient scaled by $-R_{\kappa_0}/R_{\beta_1}$ while all other $h_\ell[.]$ are initialized with all zero coefficients.

These choices of filter length and filter shape are mainly motivated by simplicity and consistency of notation.
Clearly, for a given application, better reference filter design choices could yield superior filtering performance at reduced complexity.

§.§.§ Adaptive Filtering

Adaptive filtering setup for estimating $h_1, \dots, h_N$ using a
known reference signal $s_0[.]$ and a fixed reference filter $h_0$.

One way of estimating $h_1,\dots,h_N$ from eq:LMMSE is an adaptive filtering scheme as shown in fig:adaptive_filter.
In this work, only frontend calibration, i.e., $u(.)=0$ during calibration, is considered.
However, we conjecture that, a modified version of fig:adaptive_filter could transform
the general content of this paper into a background calibration setting.
Unfortunately, this falls outside the scope of this paper.

For the adaptive filter in fig:adaptive_filter, variations of the LMS or RLS algorithms [8] can directly be applied.
An advantage of LMS algorithm
is its low complexity as it only uses the gradient of eq:LMMSE, i.e., $2\EE{\vct{s}_\ell[.] \hat{u}[.]}$, in its update rule where
s_ℓ[k]         s_ℓ[k-K / 2], …, s_ℓ[k + K / 2]^∈{±1}^K.

To decrease the number of calibration iterations, at the expense of additional computational and memory complexity,
the RLS algorithm [8, 9] is a viable alternative.

For simplicity, only the RLS algorithm was considered in this work.

The RLS algorithm minimizes the cost function
_h   ∑_k=0^K_i λ^K_i-k |û[k]|^2 + λ^K_i δh^0_2^2,

for $0 < \lambda \leq 1$, and $\delta \geq 0$, which converge to eq:LMMSE for $\lambda < 1$ and the number of calibration iterations $K_i \to \infty$.

The algorithm proceeds recursively as

α_k     =     V^k-1s[k]

g_k     =     α_k (λ+ s[k]^α_k )^-1

V^k     =     1/λ(V^k-1 - g_k α_k^)

h^k     =     h^k-1 - û[k]g_k

s[.]         s_1[.]^, …, s_N[.]^, 1^∈{±1}^K_Σ,

h[.]         h_1[.]^, …, h_N[.]^, û_0^∈^K_Σ,

$K_{\Sigma} = N K + 1$, $\vct{\alpha}_k\in \R^{K_{\Sigma}}$, $\vct{g}_k\in \R^{K_{\Sigma}}$, and $\vct{V}^{k} \in \R^{K_{\Sigma} \times K_{\Sigma}}$ is a symmetric matrix.
The regularization in eq:RLS_cost_function is enforced by initializing the matrix $\vct{V}^0 = \delta^{-1} \vct{I}_{K_{\Sigma}}$ where $\vct{I}_{K_{\Sigma}}$ is the $K_{\Sigma}$-by-$K_{\Sigma}$ identity matrix.
Throughout this paper, $\lambda = 1.0 - 10^{-12}$ and $\delta = 0.01$ for all simulations.

§ SIMULATION RESULTS

The circuit from fig:leapfrog-structure is
parameterized, in accordance with [7], for a nominal performance of 76.5 dB SNR at 10 MHz signal bandwidth and a system order of $N=6$.
Specifically, the time constants are chosen as follows: $R_{\alpha_{\ell}}C_{\ell} = 98.63$ ns, $R_{\beta_{\ell}}C_\ell = 10.30$ ns,
$R_{\kappa_\ell}C_\ell=4 R_{\beta_{\ell}}C_\ell$, for every $\ell$ with the exceptions of
$R_{\beta_1}C_1 = 2 R_{\beta_{\ell \neq 1}} C_{\ell \neq 1}$.
This results in a maximum input signal swing that is twice that of the maximum state swing and half that of the maximum control
signal swing.
The comparators in fig:leapfrog-structure are clocked
at $f_s = 194.7$ MHz resulting in an OSR of approximately $10$.

§.§ Behavioral Simulation

A component variation scenario is considered
where all time constants
$(R_{\kappa_0} C_1)$, $(R_{\alpha_\ell} C_\ell)$, $(R_{\beta_\ell} C_\ell)$, and $(R_{\kappa_\ell}C_\ell)$
are subject to variations from their nominal values.
Ideal amplifiers, comparators, and passive components were modeled in Verilog-A, and using the Spectre simulator,
128 Monte Carlo simulations were conducted were each of the mentioned time constants are drawn
independently and uniformly at random within $\pm 10\%$ of their nominal values.
Every sample circuit is simulated with (testing) and without (training) a test sinusoidal input signal and
the calibration is then conducted on the latter, and validated on the former, dataset.
The test signal has a frequency of $f_s / 2^8 \approx 760$ kHz and an amplitude of $-1$ dBFS to avoid potential
instability due to the component variations. We use $R_{\kappa_1} / R_{\kappa_0} = 0.1$ and the Wiener filter
from [3] (with $\eta^2$ chosen as (22) in [3]), with the true time constants,
as a reference for the calibration results.

ylabel near ticks, xlabel near ticks

legend cell align=left,
legend style=
anchor=north east,
fill opacity=1,
draw opacity=1,
text opacity=1,
nodes=scale=0.8, transform shape

xlabel=number of calibration iterations $K_i$,
ylabel=Testing SNR [dB],
legend pos = south east,

mark size=0.75,
xtick = 1024, 2048, 4096, 8192, 16384, 32768, 65536,
xticklabels = $2^{10}$, $2^{11}$, $2^{12}$, $2^{13}$, $2^{14}$, $2^{15}$, $2^{16}$,
ytick = 20, 30, 40, 50, 60, 70, 80, 90,

[dashed, thick] table[col sep=comma, x=i, y=avg_uncal] ./figures/ref_uncal_firwin2_K512.csv;
[color=blue, dash dot, thick] table[col sep=comma, x=i, y=avg_ref] ./figures/ref_uncal_firwin2_K512.csv;

[color=red, thick] table[col sep=comma, x=i, y=avg] ./figures/testing_error_component_variation.csv;

average uncalibrated filter
average reference Wiener filter
average calibrated filter

[name path=uu,color=gray, opacity=0] table[col sep=comma, x=i, y=max_uncal] ./figures/ref_uncal_firwin2_K512.csv;

[name path=ul,color=gray, opacity=0] table[col sep=comma, x=i, y=min_uncal] ./figures/ref_uncal_firwin2_K512.csv;
[gray,opacity=0.45] fill between[of=uu and ul];

[color=blue, name path=ru,color=gray, opacity=0] table[col sep=comma, x=i, y=max_ref] ./figures/ref_uncal_firwin2_K512.csv;

[color=blue, name path=rl,color=gray, opacity=0] table[col sep=comma, x=i, y=min_ref] ./figures/ref_uncal_firwin2_K512.csv;
[color=blue, opacity=0.3] fill between[of=ru and rl];

name path=u_rsl,
] table[col sep=comma, x=i, y=max] ./figures/testing_error_component_variation.csv;
name path=l_rsl,
] table[col sep=comma, x=i, y=min] ./figures/testing_error_component_variation.csv;
[red, opacity=0.25] fill between[of=u_rsl and l_rsl];

The testing error performance for the uncalibrated and reference case
as well as the RLS algorithm convergence behaviour as a function of the number of calibration iterations.
The colored areas, associated with each case, represent the range of testing performance over all 128 sample circuits.

fig:convergence shows the average testing performance for the uncalibrated Wiener filter (with nominal filter coefficients),
the reference Wiener filter (using true filter coefficients), and the RLS algorithm's testing performance as a function
of the number of calibration iterations.

As stated in [7], without calibration, the digital estimator suffers significant performance degradation due to mismatch between
the digital estimator and the, assumed nominal, analog frontend parametrization. Clearly, the mismatch can be managed as the RLS algorithm
reaches the reference filter performance after $\approx 2^{12}$ iterations.
The leapfrog structure is known for its resilience towards component variations,
which is confirmed by the (average, maximum, minimum) SNR performance of $(80.70,83.51,77.68)$ and $(75.45,78.38,71.34)$ dB
for the calibrated filter and reference Wiener filter respectively.
fig:component_variation_psd shows the PSD, of eq:estimate, from a representative sample of the testing dataset.

ylabel near ticks, xlabel near ticks

legend cell align=left,
legend style=
anchor=north east,
fill opacity=1,
draw opacity=1,
text opacity=1,
nodes=scale=0.8, transform shape

xlabel=frequency [Hz],
ylabel=PSD [dB],

legend pos = north east,
[color=black, thick, smooth] table[col sep=comma, x=f_unc_luna_batch_3_rls_K_9, y=unc_luna_batch_3_rls_K_9]./figures/psd_component_variation.csv;
[color=blue, thick, smooth] table[col sep=comma, x=f_ref_luna_batch_3_rls_K_9, y=ref_luna_batch_3_rls_K_9]./figures/psd_component_variation.csv;
[color=olive, thick, smooth] table[col sep=comma, x=f_cal_luna_batch_3_rls_K_9, y=cal_luna_batch_3_rls_K_9]./figures/psd_component_variation.csv;

uncalibrated filter
Wiener filter reference
calibrated filter

A representative PSD of eq:estimate
from one of the realizations in sec:behavioral-simulation.

The discrepancy around the bandwidth frequencies, between the Wiener reference and the calibrated filter, is due to the
$h_0[.]$ being designed as standard FIR filter and not the Wiener filter from [3].
As the SNR is determined directly from the PSD,
this also explains why the calibrated filter outperforms the reference filter in fig:convergence.

§.§ Transistor Level Simulation

A transistor level implementation of fig:leapfrog-structure was designed and simulated with Spectre
in 65-nm CMOS technology. The specifics are as follows: 1.2 V power supply, $C_1=11.7$ pF, $C_2=C_3=2.925$ pF, and $C_4=C_5=C_6=975$ fF,
an input signal amplitude range of $600$ mVpp and $R_{\kappa_1} / R_{\kappa_0} = 0.03$.
The comparators have an input referred noise of $130$ $\mu$Vrms which was achieved by extending the decision time to a quarter of the control period.
Stability issues, due to the long decision time, were addressed by ternary comparators with decision thresholds at $\pm50$ mV.
The ternary comparators result in a reduced maximum state swing, by approximately $30\%$, which translates into $\approx3$ dB SNR gain, see eq:estimate_decomposition.
The amplifiers are class AB two-stage RC-compensated amplifiers as in [10] with an simulated input-referred noise of $67.03\mu$ Vrms.
They are non-uniformly downsized to somewhat match the diminishing thermal noise and linearity requirements.
The approximate scaling can be seen from the resulting
simulated power consumption as $P_{A_1}=8.5$ mW, $P_{A_2} = P_{A_3}=2.3$ mW, and $P_{A_4}=\dots=P_{A_6}=0.9$ mW.

ylabel near ticks, xlabel near ticks

legend cell align=left,
legend style=
anchor=north east,
fill opacity=1,
draw opacity=1,
text opacity=1,
nodes=scale=0.8, transform shape

xlabel=frequency [Hz],
ylabel=PSD [dB],

legend pos=north east
[color=black,thick, smooth] table[col sep=comma, x=f_unc_downsized_7_rls_K_9_v1, y=unc_downsized_7_rls_K_9_v1] ./figures/psd_circuit.csv;
[color=blue,thick, smooth] table[col sep=comma, x=f_cal_downsized_7_rls_K_9_v1, y=cal_downsized_7_rls_K_9_v1] ./figures/psd_circuit.csv;

uncalibrated filter
calibrated filter

(third_harmonic_top) at (axis cs:4.56328125e6,-63) ;
(third_harmonic_bottom) at (axis cs:4.56328125e6,-160) ;
[color=red,Latex[width=1.5mm]-Latex[width=1.5mm]] (third_harmonic_top) – node[right] $\approx97$dB (third_harmonic_bottom);

[dashed,color=red] ($(third_harmonic_bottom) + (-0.5,0)$) – ($(third_harmonic_bottom)+(0.5,0)$);

Uncalibrated (61.7 dB SNDR) and calibrated (80.9 dB SNDR) PSDs of eq:estimate
from the transistor level simulation in sec:example. From the figure we also recognize a small non-linearity
resulting in a SFDR of $\approx91$ dB.

In fig:psd, both the calibrated and uncalibrated PSDs of the estimate from eq:estimate are shown for a FS input signal at $f_s/2^7 \approx 1.5$ MHz.

A SNDR of $80.9$ (calibrated) and $61.7$ (uncalibrated) dB and a SFDR of $\approx97$ dB is estimated directly from the PSD.
The implementation has a simulated total power consumption of $18.43$ mW resulting in a predicted Schreier FoM of 168.24 dB and a Walden FoM of 101.6 fJ/conv.

§ CONCLUSIONS

Both theoretical and practical aspects of calibrating CBADC were addressed. The proposed calibration
algorithm was validated using both behavioral and transistor level simulations, confirming
recovery of essentially nominal performance.
The introduction of calibration to the CBADC concept splits the CBADC design task into two disjoint parts:
an analog frontend where the fundamental performance follows from analog design parameters and
a digital calibration step that is agnostic to the analog implementation.

§.§ The Signal Estimate Decomposition

The discrete-time convolution can be written as

∑_k_1 s_ℓ[k_1] h̆_ℓ[k - k_1]

=        ∑_k_1 s_ℓ[k_1] (g̃_u ∗g_ℓ∗θ_ℓ)((k - k_1) T)

=        ∫(g̃_u ∗g_ℓ)(τ)  ∑_k_1 s_ℓ[k_1] θ_ℓ(kT - τ- k_1 T ) τ

=        ∫(g̃_u ∗g_ℓ)(τ) s_ℓ(kT - τ) τ

=        (g̃_u ∗g_ℓ∗s_ℓ)(kT)

where the steps to eq:discrete_continuous_second and eq:discrete_continuous_second_to_last follows from the definitions in eq:lmmse_filter and
eq:continuos_to_discrete_time_control_signals respectively.

(g̃_u ∗g_0 ∗s_0)(kT)

=     ( g̃_u ∗( x_N - (g_u ∗u)) )(k T) - ∑_ℓ= 1^N (h̆_ℓ∗s_ℓ)[k]

where eq:discrete_signal_decomposition follows from eq:magic_step and reversing the steps in eq:discrete_continuous_first-eq:discrete_continuous_last
for $(\tilde{g}_u \ast g_\ell \ast s_\ell)(kT)$.
Replacing $(h_0 \ast s_0)[k]$ with eq:discrete_signal_decomposition in eq:estimate and rearranging results in eq:estimate_decomposition.

§.§ The Wiener Filter

Assuming $\hat{s}[.] \eqdef (h_0 \ast s_0)[.]$, $\vct{s}[.]$,
and $w[k] \eqdef -(\tilde{g}_u \ast x_N)(kT)$
to be zero-mean weakly stationary processes and $w[.]$ to be jointly independent of $\vct{s}[.]$,
the minimizing solution to the cost function in eq:LMMSE, i.e., minimizing $\EE{\left|\hat{s}[.] + (\vct{h}^\T \ast \vct{s})[.]\right|^2}$,
with respect to $\vct{h}[.]$, see eq:s_vector and eq:vector_h,
follows by the orthogonality principle as
(h^∗R_s)[.]     =     R_ŝ s[.], eq:wiener_equations

where $\mat{R}_{\vct{s}}[.] \eqdef \EE{(\vct{s} \ast \vct{s}_c^\T)[.]}$

and $\vct{s}_c[.] \eqdef \vct{s}[-.]$.
Convolving both the left hand and right hand side of eq:magic_step with $\tilde{g}_u(t)$,
enforcing $u(t) = 0$, reversing the steps from eq:discrete_continuous_first-eq:discrete_continuous_last,
and finally rearranging, gives $\hat{s}[.] = (\vct{g}^\T \ast \vct{s})[.] + w[.]$

where $\vct{g}[k] \eqdef \begin{pmatrix}(\tilde{g}_u \ast g_1 \ast \theta_1)(kT), \dots, (\tilde{g}_u \ast g_N \ast \theta_N)(kT)\end{pmatrix}^\T$.

R_ŝ s[.]         (ŝ ∗s^_c)[.] = (g^∗R_s)[.]

and plugging eq:cross_correlation into eq:wiener_equations, and assuming a full rank $\mat{R}_{\vct{s}}$,
results in $h_\ell[.]$ as given by $\breve{h}_\ell[.]$ in eq:reference_filter.

[1]H.-A. Loeliger and G. Wilckens, Control-based analog-to-digital conversion without sampling and quantization, in 2015 Information Theory & Applications Workshop (ITA), San Diego, CA, pp. 119-122.
[2]H. Malmberg, Control-Bounded Converters, Ph.D. dissertation no. 27025, ETH Zürich, 2020
[3]H. Malmberg, G. Wilckens, and H.-A. Loeliger, Control-bounded analog-to-digital conversion, Circuits, Syst. Signal Process.,  vol. 41, no. 3, pp. 1223-1254, Mar. 2022.

[5]S. Pavan, Richard Schreier, and Gabor C. Temes, Understanding Delta-Sigma Data Converters, 2nd ed., Piscataway, NJ: Wiley-IEEE Press, 2017.
[6]J. A. Cherry and M. W. Snelgrove, Continuous-Time Delta-Sigma Modulators for High-Speed A/D Conversion, 1st ed., Boston, MA: Springer, 2002.
[7]F. Feyling, H. Malmberg, C. Wulff, H.-A Loeliger, and T. Ytterdal, High-level comparison of control-bounded A/D converters and continuous-time sigma-delta modulators, in Nordic Circuits and Systems Conference (NORCAS), Oslo, pp. xx, Oct. 2022.

[8]S. Haykin, Adaptive Filter Theory, 4th ed., Upper Saddle River, NJ: Prentice Hall, 2002.
[9]H.-A. Loeliger, J. Dauwels, Junli Hu, S. Korl, Li Ping, and F. R. Kschischang, The factor graph approach to model-based signal processing, Proceedings of the IEEE, vol. 95, no. 6, pp. 1295-1322, June 2007.
[10]J. Ramirez-Angulo, R.G. Carvajal, J.A. Galan, and A. Lopez-Martin, A free but efficient class AB two-stage operational amplifier, IEEE Transactions on Circuits and Systems II: Express Briefs (TCASII),. vol 53, pp. 568-571, August 2006.