1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Delta-Sigma Modulators
│
├─ Analog ΔΣ Modulators
│ │
│ ├─ Discrete-Time Analog ΔΣ Modulator, DT ΔΣM
│ │ ├─ Switched-capacitor / switched-current loop filter
│ │ ├─ Input is sampled before or inside loop filter
│ │ └─ Very common in ΔΣ ADCs
│ │
│ └─ Continuous-Time Analog ΔΣ Modulator, CT ΔΣM
│ ├─ Continuous-time RC / gm-C / active-RC loop filter
│ ├─ Feedback DAC is continuous-time
│ ├─ Quantizer is usually clocked → synchronous CT ΔΣM
│ └─ Quantizer/comparator may be event-driven → asynchronous CT ΔΣM
│
└─ Digital ΔΣ Modulators, DDSM
│
├─ Single-quantizer DDSM
│ ├─ Output-feedback form
│ └─ Error-feedback form, EFM
│
└─ MASH DDSM
└─ Multi-stage noise-shaping modulator

image-20250903210531360


image-20250611074830238

"Quantizers" and "truncators", "integrators" and "accumulators" are used in delta-sigma ADCs and DACs, respectively

P. Kiss, J. Arias and Dandan Li, "Stable high-order delta-sigma DACS," 2003 IEEE International Symposium on Circuits and Systems (ISCAS), Bangkok, 2003 [https://www.ele.uva.es/~jesus/analog/tcasi2003.pdf]

Oversampling

David Johns and Ken Martin. Oversampling Converters [https://www.eecg.toronto.edu/~johns/ece1371/slides/14_oversampling.pdf]

image-20260601223915205


Over Sampling

Nyquist sampling theorem @signal: no aliasing, signal remain the same

noise folding @noise: same total noise power spread over a wider frequency

[https://dsp.stackexchange.com/a/40261/59253]


image-20250629215830077

Noise Shaping

image-20250629232343017

image-20250629232453811

1
2
3
4
5
6
7
8
9
10
11
[h1, w1] = freqz([1 -1], 1);
[h2, w2] = freqz([1 -2 1], 1);

plot(w1/2/pi, abs(h1), LineWidth=3)
hold on
plot(w2/2/pi, abs(h2), LineWidth=3)
grid on
legend('MOD1', 'MOD2')
xlabel('fs')
ylabel('mag')
title('NTF of MOD1 & MOD2')

image-20250824151828263

SQNR improvement

In general, for an \(l\)th order modulator with \(\text{NTF}(z) = (1 − z^{−1})^l\), the SQNR increases by \((6l + 3)\) dB for every doubling of the OSR, which provides \(l+0.5\) extra bits resolution

without the delta-sigma loop

image-20250823220900699

\(10\log (2) \approx 3\)dB

first order delta-sigma modulator

image-20250823220842529

\(30\log (2) \approx 9\)dB

second order delta-sigma modulator

image-20250823220922480

\(50\log (2) \approx 15\)dB


image-20250823224500839

1
2
3
4
5
6
7
8
9
10
11
12
13
14
OSR= linspace(1,16,16);

SQNR_ovonly_delta = 10*log10(OSR);
SQNR_1st_delta = -10*log10(pi^2/3) + 30*log10(OSR);
SQNR_2st_delta = -10*log10(pi^4/5) + 50*log10(OSR);

plot(OSR, SQNR_ovonly_delta,'ro-', LineWidth=4);
hold on
plot(OSR, SQNR_1st_delta,'bo-', LineWidth=4);
plot(OSR, SQNR_2st_delta,'mo-', LineWidth=4);
grid on; grid minor;
xlim([1 16]); ylim([-20 50]);
xlabel('OSR', FontSize=16); ylabel('\DeltaSQNR (dB)', FontSize=16);
legend('Oversampling Only', '1st \Delta\Sigma', '2nd \Delta\Sigma', fontsize=16)

TI. ADC12EU050 Continuous-Time Sigma-Delta ADCs [https://www.ti.com/lit/an/snaa098/snaa098.pdf]

image-20250906192735041

where \(N\) is the number of bits in the output, \(M\) is known as the over-sampling ratio, \(L\) is loop orders

Quantizer Bits & ENOB

without the delta-sigma loop

image-20260601202545209

image-20250921132712308

image-20250921102250022

image-20250921124756085

High-Order \(\Delta\Sigma\) Modulators

image-20250921133840404

image-20250921134001793

image-20250921134051906

image-20250921134312753

image-20250629215715378


The greater the number of quantizer levels, the smaller quantization error

image-20250824081318669

Performance Metrics

image-20260503165509578

  • signal-to-noise ratio (SNR)
  • dynamic range (DR)
  • signal-to-(noise + distortion) ratio (SNDR)

image-20260503165804824

DR by "SNR Max" Definition (\(\Delta\Sigma\) Specific)

image-20260503172843146

Quantizer overload

M. Neitola, "Lee's Rule Extended," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 64, no. 4, pp. 382-386, April 2017

image-20250905062939783



Maximum Stable Amplitude (MSA)

image-20260503133732822

image-20260503140323450

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
% Schreier Delta-Sigma Toolbox required
OSR = 64;
order = 3;
nlev = 2;
H_inf = 1.5;

ntf = synthesizeNTF(order, OSR, 1, H_inf);

N = 2^14;
fB = floor(N/(2*OSR)); % last in-band bin index (0-based)
fin = round(fB/3); % in-band test tone
amps = -80:2:0;
snr = zeros(size(amps));

w = ds_hann(N);
nb = 1; % Hann: 2*nb+1 = 3 signal bins

for k = 1:length(amps)
A = 10^(amps(k)/20);
u = A*sin(2*pi*fin/N*(0:N-1));
v = simulateDSM(u, ntf, nlev);
spec = fft(v .* w) / (sum(w)/2);

inband = spec(1:fB+1); % <-- KEY: only in-band bins
snr(k) = calculateSNR(inband, fin, nb);
end

plot(amps, snr,'-o'); grid on;
xlabel('Input amplitude (dBFS)');
ylabel('SNR (dB)');
title(sprintf('Order=%d, OSR=%d, %d-lev, ||NTF||_\\infty=%.1f',...
order, OSR, nlev, H_inf));

\(\Delta \Sigma\) vs. \(\Delta\) modulation

  • \(\Delta \Sigma\) modulators, and other noise-shaping modulators, change the spectrum of the noise but leave the signal unchanged

  • \(\Delta\) modulators and other signal-predicting modulators shape the spectrum of the modulated signal but leave the quantization noise unchanged at the receiver

output vs. error-feedback

The error-feedback architecture is problematic for analog implementation, since it is sensitive to variations of its parameters (subtractor realization)

image-20260601204357195


ADC

image-20250618203604863

image-20250618203636417


DAC

P. Kiss, J. Arias and Dandan Li, "Stable high-order delta-sigma DACS," 2003 IEEE International Symposium on Circuits and Systems (ISCAS), Bangkok, 2003 [https://www.ele.uva.es/~jesus/analog/tcasi2003.pdf]

image-20250617223537672


output-feedback

img

[https://www.linkedin.com/posts/danboschen_signalprocessing-dsp-pythonforengineers-activity-7345777588746788866-SprG?utm_source=share&utm_medium=member_desktop&rcm=ACoAAD-cuiIBDJ62eh9q3qTSSdslYXr-XMd8TGw]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// https://github.com/hamsternz/second_order_sigma_delta_DAC

`timescale 1ns / 1ps
module second_order_dac(
input wire i_clk,
input wire i_res,
input wire i_ce,
input wire [15:0] i_func,
output wire o_DAC
);

reg this_bit;

reg [19:0] DAC_acc_1st;
reg [19:0] DAC_acc_2nd;
reg [19:0] i_func_extended;

assign o_DAC = this_bit;

always @(*)
i_func_extended = {i_func[15],i_func[15],i_func[15],i_func[15],i_func};

always @(posedge i_clk or negedge i_res)
begin
if (i_res==0)
begin
DAC_acc_1st<=16'd0;
DAC_acc_2nd<=16'd0;
this_bit = 1'b0;
end
else if(i_ce == 1'b1)
begin
if(this_bit == 1'b1)
begin
DAC_acc_1st = DAC_acc_1st + i_func_extended - (2**15);
DAC_acc_2nd = DAC_acc_2nd + DAC_acc_1st - (2**15);
end
else
begin
DAC_acc_1st = DAC_acc_1st + i_func_extended + (2**15);
DAC_acc_2nd = DAC_acc_2nd + DAC_acc_1st + (2**15);
end
// When the high bit is set (a negative value) we need to output a 0 and when it is clear we need to output a 1.
this_bit = ~DAC_acc_2nd[19];
end
end
endmodule

Time and Frequency Domain

image-20250627193435726

\(M \gt N\)

[https://web.engr.oregonstate.edu/~temes/ece627/Lecture_Notes/Intro_to_Delta_Sigma_Data_Converters.pdf]


Chun-Hsien Su ( 蘇純賢). Fundamentals of Sigma-Delta Data Converters,July, 2006 [pdf]

image-20250809235244362

image-20250809235311542



ADC

image-20250611234653738

image-20250612000925089

hackaday. Tearing Into Delta Sigma ADC’s [https://hackaday.com/2016/07/07/tearing-into-delta-sigma-adcs-part-1/]


image-20250617234727838



DAC

an interpolation filter effectively up-samples its low-rate input and lowpass-filters the resulting high-rate data to produce a high-rate output devoid of images

image-20250612000423191

P.E. Allen -CMOS Analog Circuit Design: Lecture 39 – Oversampling ADCs – Part I (6/26/14) [https://aicdesign.org/wp-content/uploads/2018/08/lecture39-140626.pdf]

P.E. Allen -CMOS Analog Circuit Design: Lecture 40 – Oversampling ADCs – Part II (7/17/15) [https://aicdesign.org/wp-content/uploads/2018/08/lecture40-150717.pdf]


image-20250720201944707

David Johns and Ken Martin. Oversampling Converters [https://www.eecg.toronto.edu/~johns/ece1371/slides/14_oversampling.pdf]


image-20250627194351778

[https://web.engr.oregonstate.edu/~temes/ece627/Lecture_Notes/Intro_to_Delta_Sigma_Data_Converters.pdf]

No delay-free loops

Any such physically feasible device will take a finite time to operate – in other words, the quantized output will only be available a small time after the quantizer has "looked" at the input - insert a one-sample delay

image-20250617231014547

there cannot be a "delay free loop" is a common idea in sequential digital state machine design


image-20241128232040924

Both integrator and quantizer are delay free

NTF realizability criterion: No delay-free loops in the modulator

image-20241128233022231

linear settling & GBW of amplifier

TODO 📅

Switched capacitor has been the common realization technique of discrete-time (DT) modulators, and in order to achieve a linear settling, the sampling frequency used in these converters needs to be significantly lower than the gain bandwidth product (GBW) of the amplifiers.

MOD1 & MOD2

MOD1: first-order noise-shaped converter (\(\Delta\Sigma\) modulator)

MOD2: second-order noise-shaped converter (\(\Delta\Sigma\) modulator)



MOD1

image-20241005120659945 \[ V(z) = U(z) +(1-z^{-1})E(z) \]

  • A binary DAC (and hence a binary modulator) is inherently linear
  • With a CT loop filter, MOD1 has inherent anti-alising

image-20241005202024498 \[\begin{align} v[1] &= u - (0) + e[1] \\ v[2] &= 2u - (v[1]) + e[2] \\ v[3] &= 3u - (v[1]+v[2]) + e[3] \\ v[4] &= 4u - (v[1]+v[2]+v[3]) + e[4] \end{align}\]

That is \[ v[n] = nu - \sum_{k=1}^{n-1}v[k] + e[n] \] Therefore, we have \(v[n-1] = (n-1)u - \sum_{k=1}^{n-2}v[k] + e[n-1]\), then \[\begin{align} v[n] &= nu - \sum_{k=1}^{n-1}v[k] + e[n] \\ &= u + \left((n-1)u - \sum_{k=1}^{n-2}v[k]\right) - v[n-1] + e[n] \\ &= u + v[n-1] - e[n-1] -v[n-1] + e[n] \\ &= u + e[n] - e[n-1] \end{align}\]


image-20250524215712688

Dout, the low frequency component of ADC out is same with Vin



MOD2

[https://web.engr.oregonstate.edu/~temes/ece627/Lecture_Notes/2nd_Higher_Order.pdf]

image-20241005160203074



MOD1 with DC Excitation

TODO 📅

Mismatch Shaping

image-20241112220458335

Data-Weighted Averaging (DWA)

image-20241113000942025 \[\begin{align} \sum_{i=0}^{n}v[i] + e_\text{DAC}[n] &= y[n] \\ \sum_{i=0}^{n-1}v[i] + e_\text{DAC}[n-1] &= y[n-1] \end{align}\]

and we have \(w[n] = y[n] - y[n-1]\), then \[ w[n] = v[n] + e_\text{DAC}[n] - e_\text{DAC}[n-1] \] i.e. \[ W = V + (1-z^{-1})e_\text{DAC} \]

Element Rotation:

image-20241112233059745

[http://individual.utoronto.ca/schreier/lectures/12-2.pdf], [http://individual.utoronto.ca/trevorcaldwell/course/Mismatch.pdf]

integrator leakage

When the integrator includes leakage (\(\alpha\))

\[ x[n-1] + \alpha y[n-1] = y[n] \]

then, \[ \frac{Y}{X} = \frac{z^{_1}}{1-\alpha z^{-1}} \]

Schreier Delta-Sigma Toolbox

Richard Schreier (2026). Delta Sigma Toolbox [https://www.mathworks.com/matlabcentral/fileexchange/19-delta-sigma-toolbox]

TODO 📅

synthesizeNTF



simulateDSM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function [v,xn,xmax,y] = simulateDSM(u,arg2,nlev,x0)
%[v,xn,xmax,y] = simulateDSM(u,ABCD,nlev=2,x0=0)
% or
%[v,xn,xmax,y] = simulateDSM(u,ntf,nlev=2,x0=0)
%
%Compute the output of a general delta-sigma modulator with input u,
%a structure described by ABCD, an initial state x0 (default zero) and
%a quantizer with a number of levels specified by nlev.
%Multiple quantizers are implied by making nlev an array,
%and multiple inputs are implied by the number of rows in u.
%
%Alternatively, the modulator may be described by an NTF.
%The NTF is zpk object. (The STF is assumed to be 1.)
%The structure that is simulated is the block-diagional structure used by
%zp2ss.m.


calculateSNR

1
2
3
4
5
6
7
8
9
10
11
12
function snr = calculateSNR(hwfft,f,nsig)

signalBins = [f-nsig+1:f+nsig+1];
s = norm(hwfft(signalBins));

noiseBins = 1:length(hwfft);
noiseBins(signalBins) = [];
n = norm(hwfft(noiseBins));

snr = dbv(s/n);

end

image-20260503174009854

reference

Pavan, Shanthi, Richard Schreier, and Gabor Temes. (2016). Understanding Delta-Sigma Data Converters. 2nd ed. Wiley.

Norsworthy, Steven R., Richard Schreier, Gábor C. Temes and Ieee Circuits. “Delta-sigma data converters : theory, design, and simulation.” (1997).

Horowitz, P., & Hill, W. (2015). The art of electronics (3rd ed.). Cambridge University Press.

John Rogers, Calvin Plett, and Foster Dai. 2006. Integrated Circuit Design for High-Speed Frequency Synthesis (Artech House Microwave Library). Artech House, Inc., USA.

Razavi B. Analysis and Design of Data Converters. Cambridge University Press; 2025.


R. Schreier, ISSCC2006 tutorial: Understanding Delta-Sigma Data Converters

Shanthi Pavan, ISSCC2013 T5: Simulation Techniques in Data Converter Design [https://www.nishanchettri.com/isscc-slides/2013%20ISSCC/TUTORIALS/ISSCC2013Visuals-T5.pdf]

Bruce A. Wooley , 2012, "The Evolution of Oversampling Analog-to-Digital Converters" [https://r6.ieee.org/scv-sscs/wp-content/uploads/sites/80/2012/06/Oversampling-Wooley_SCV-ver2.pdf]

Venkatesh Srinivasan, ISSCC 2019 T5: Noise Shaping in Data Converters

B. Razavi, "The Delta-Sigma Modulator [A Circuit for All Seasons]," IEEE Solid-State Circuits Magazine, Volume. 8, Issue. 20, pp. 10-15, Spring 2016. [http://www.seas.ucla.edu/brweb/papers/Journals/BRSpring16DeltaSigma.pdf]

P. M. Aziz, H. V. Sorensen and J. vn der Spiegel, "An overview of sigma-delta converters," in IEEE Signal Processing Magazine, vol. 13, no. 1, pp. 61-84, Jan. 1996 [https://sci-hub.st/10.1109/79.482138]


Richard E. Schreier, ECE 1371 Advanced Analog Circuits - 2015 [http://individual.utoronto.ca/schreier/ece1371-2015.html]

Gabor C. Temes. ECE 627-Oversampled Delta-Sigma Data Converters [https://classes.engr.oregonstate.edu/eecs/spring2017/ece627/lecturenotes.html]

Joshua Reiss. Understanding sigma delta modulation: the solved and unsolved issues

[https://www.eecs.qmul.ac.uk/~josh/documents/2008/Reiss-JAES-UnderstandingSigmaDeltaModulation-SolvedandUnsolvedIssues.pdf]

V. Medina, P. Rombouts and L. Hernandez-Corporales, "A Different View of Sigma-Delta Modulators Under the Lens of Pulse Frequency Modulation [Feature]," in IEEE Circuits and Systems Magazine, vol. 24, no. 2, pp. 80-97, Secondquarter 2024

Carsten Wulff , Oversampling and Sigma-Delta ADCs [https://analogicus.com/aic2026/oversampling_and_sigma-delta_adcs]

PDM Microphones and Sigma-Delta A/D Conversion [https://tomverbeure.github.io/2020/10/04/PDM-Microphones-and-Sigma-Delta-Conversion.html]

Dan Boschen Why use a 1-bit ADC in a Sigma Delta Modulator?. [https://dsp.stackexchange.com/questions/53059/why-use-a-1-bit-adc-in-a-sigma-delta-modulator#comment105988_53063]

image-20260802151919963

image-20260802152509229

Noise Analysis

image-20250526201936387


image-20250526195323660


sampling (amplification) phase

image-20250526195656447

Noise Simulation

PSS + Pnoise Method

Comparator Output SNR during sampling region and decision region go up

Comparator Output SNR during regeneration region is constant, where noise is critical

image-20250526221529514

image-20241109163928889



Ashish Patni , Sampled(Jitter) noisetype in Pnoise/Hbnoise analysis[https://community.cadence.com/cfs-file/__key/communityserver-discussions-components-files/38/Sampled_2800_Jitter_2900_-noisetype-in-Pnoise_5F00_1.pdf]

by Edge Crossing

image-20260801002320031

by Sampled Phase

image-20260801002609577

image-20260801002643868

Transient Noise Method

Noise Fmax sets the bandwidth of the random noise sources that are injected at each time point in the transient analysis


image-20241109154249513

We can identify the RMS noise value easily by looking at 15.9% or 84.1% of CDF (\(1\sigma\)), the input-referred noise in the RMS is 0.9mV

image-20241109160311684

Thus, if \(V_S\) is chosen so as to reduce the probability of zeros to 16%, then \(V_S = 1\sigma\), which is also the total root-mean square (rms) noise referred to the input.

Comparison of two methods

image-20250526225952590

here, fundamental frequency = fclk; integrated noise (0 ~ 0.5fclk)

image-20250526230126010

E. Gillen, G. Panchanan, B. Lawton and D. O'Hare, "Comparison of transient and PNOISE simulation techniques for the design of a dynamic comparator," 2022 33rd Irish Signals and Systems Conference (ISSC), Cork, Ireland, 2022, pp. 1-5

Chenguang Yang, "Comparator Design for High Speed ADC" [https://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=9164380&fileOId=9164388]

J. Conrad, J. Kauffman, S. Wilhelmstatter, R. Asthana, V. Belagiannis and M. Ortmanns, "Confidence Estimation and Boosting for Dynamic-Comparator Transient-Noise Analysis," 2024 22nd IEEE Interregional NEWCAS Conference (NEWCAS), Sherbrooke, QC, Canada, 2024, pp. 1-5

There are some ambiguity in formula in ADC Verification Rapid Adoption Kit (RAK)(Product Version: IC 6.1.8, SPECTRE 18.1 March, 2019)

  • Transient Noise Analysis: \(\sqrt{2}\sigma\), why ratio \(\sqrt{2}\) ???
  • PSS+Pnoise: why two fundamental tones fclk/2 ???

Common-Mode (Vcmi) Variation Effects

image-20240925225059596

image-20240925225823184


image-20250527202331008


Zhaokai Liu. Time-interleaved SAR ADC Design Using Berkeley Analog Generator [https://www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-109.pdf]

image-20250609224554118


L. Kull et al., "A 3.1 mW 8b 1.2 GS/s Single-Channel Asynchronous SAR ADC With Alternate Comparators for Enhanced Speed in 32 nm Digital SOI CMOS," in IEEE Journal of Solid-State Circuits, vol. 48, no. 12, pp. 3049-3058, Dec. 2013 [https://sci-hub.jp/10.1109/JSSC.2013.2279571]

P. Nuzzo, F. De Bernardinis, P. Terreni and G. Van der Plas, "Noise Analysis of Regenerative Comparators for Reconfigurable ADC Architectures," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 55, no. 6, pp. 1441-1454, July 2008 [https://sci-hub.jp/10.1109/TCSI.2008.917991]

image-20260906141852047

offset simulation

T. Caldwell. ECE 1371S Advanced Analog Circuits [http://individual.utoronto.ca/trevorcaldwell/course/comparators.pdf]

Eric Chang. EECS240-s18 Discussion 9


image-20241109092310123

Graupner, Achim & Sobe, Udo. (2007). Offset-Simulation of Comparators. [https://designers-guide.org/analysis/comparator.pdf]

1
2
3
4
Comment on "Offset-Simulation of Comparators"

If the input referred offset follows a normal distribution than it is sufficient to apply a single offset voltage to calculate the offset voltage.
See details in Razavi, B., The StrongARM Latch [A Circuit for All Seasons], IEEE Solid-State Circuits Magazine, Volume:7, Issue: 2, Spring 2015

Omran, Hesham. (2019). Fast and accurate technique for comparator offset voltage simulation. Microelectronics Journal. 89. 10.1016/j.mejo.2019.05.004.

Matthews, Thomas W. and Perry L. Heedley. “A simulation method for accurately determining DC and dynamic offsets in comparators.” 48th Midwest Symposium on Circuits and Systems, 2005. (2005): 1815-1818 Vol. 2. [https://athena.ecs.csus.edu/~pheedley/MSDL/MSDL_DOTB_cmp_test_bench_MWSCAS05.pdf]

Hysteresis

P. Bruschi: Notes on Mixed Signal Design [https://docenti.ing.unipi.it/~a008309/mat_stud/MIXED/2023/Slides_pdf/18_Comparators__1_Dei.pdf]

TODO 📅

image-20260802151532829



A simple comparator based on the 4-transistor hysteresis cell

image-20260806223447008

Kickback

Paolo Bruschi , Design of Mixed Signal Circuits and Systems [https://docenti.ing.unipi.it/~a008309/mat_stud/MIXED/2023/Slides_pdf/19_Comparators_2_Dei.pdf]

CC Chen, Why Sampler Kickback Matters in SerDes? [https://youtu.be/LIr0fqBk3Gg]

image-20260802160529593

image-20260802160628231

image-20260802161953860


Kickback noise trades with the dimensions of the input transistors and hence with the offset voltage

  • affects the comparator's own decision
  • corrupts the input voltage while it is sensed by other circuits

image-20241110004944542

Tetsuya Iizuka,VLSI2021_Workshop3 "Nyquist A/D Converter Design in Four Days"

Figueiredo, Pedro & Vital, João. (2006). Kickback noise reduction techniques for CMOS latched comparators. Circuits and Systems II: Express Briefs, IEEE Transactions on. 53. 541 - 545. 10.1109/TCSII.2006.875308. [https://sci-hub.se/10.1109/TCSII.2006.875308]

P. M. Figueiredo and J. C. Vital, "Low kickback noise techniques for CMOS latched comparators," 2004 IEEE International Symposium on Circuits and Systems (ISCAS), Vancouver, BC, Canada, 2004, pp. I-537 [https://sci-hub.se/10.1109/ISCAS.2004.1328250]

Lei, Ka Meng & Mak, Pui-In & Martins, R.P.. (2013). Systematic analysis and cancellation of kickback noise in a dynamic latched comparator. Analog Integrated Circuits and Signal Processing. 77. 277-284. 10.1007/s10470-013-0156-1. [https://rto.um.edu.mo/wp-content/uploads/docs/ruimartins_cv/publications/journalpapers/57.pdf]

O. M. Ívarsson, "Comparator Kickback Reduction Techniques for High-Speed ADCs," Dissertation, 2024. [https://liu.diva-portal.org/smash/get/diva2:1872476/FULLTEXT01.pdf]


Current mirrors are used between stages to reduce charge kick back from the logic level swing of the latch onto the small comparator input capacitors

Mike Shuo-Wei Chen and R. W. Brodersen, "A 6-bit 600-MS/s 5.3-mW Asynchronous ADC in 0.13-μm CMOS," in IEEE Journal of Solid-State Circuits, vol. 41, no. 12, pp. 2669-2680, Dec. 2006 [pdf, slides]

K. Bult and A. Buchwald, "An embedded 240-mW 10-b 50-MS/s CMOS ADC in 1-mm/sup 2/," in IEEE Journal of Solid-State Circuits, vol. 32, no. 12, pp. 1887-1895, Dec. 1997 [https://sci-hub.st/10.1109/4.643647]

image-20260802160729730

CMOS Latch

TODO 📅

image-20241215162321832 \[ V_{o,fb}^+ - V_{o,fb}^- = \frac{g_m}{sC_L}(V_o^+ - V_o^-) = A(s)\cdot(V_o^+ - V_o^-) \]

We have \[ A(s)\cdot (V_{i} + V_o) = V_o \]

that is \[ V_o = \frac{A(s)}{1-A(s)}V_{i} = \frac{1}{s - g_m/C_L}\cdot \frac{g_mV_i}{C_L} \]

therefore \[ V_o(t) = \frac{g_mV_i}{C_L}\cdot\exp\left({\frac{g_m}{C_L}t}\right) = V_o(t=0)\cdot\exp\left({\frac{g_m}{C_L}t}\right) \] image-20241215173645188

Asad Abidi, ISSCC 2023: Circuit Insights "The CMOS Latch" [https://youtu.be/sVe3VUTNb4Q]

Metastability

TODO 📅

If the comparator can not generate a well-defined logical output in half of the clock period, we say the circuit is "metastable"

image-20241215162430509

Mathematical Preliminaries

Relating \(\Phi\) and erf

Error Function (Erf) of the standard Normal distribution \[ \text{Erf}(x) = \frac{2}{\sqrt{\pi}}\int_0^x e^{-t^2} \mathrm{d}t. \] Cumulative Distribution Function (CDF) of the standard Normal distribution \[ \Phi(x) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^x e^{-z^2/2} \mathrm{d}z. \]

Figure

\[\begin{align} \Phi(x) &= \frac{\text{Erf}(x/\sqrt{2})+1}{2}. \\ \Phi(x\sqrt{2}) &= \frac{\text{Erf}(x) + 1}{2} \end{align}\]

Considering the mean and standard deviation \[ \Phi(x,\mu,\sigma)=\frac{1}{2}\left( 1+\text{Erf} \left( \frac{x-\mu}{\sigma\sqrt{2}} \right)\right) \]


image-20241109135425126

John D. Cook. Relating Φ and erf [https://www.johndcook.com/erf_and_normal_cdf.pdf]

reference

Xu, H. (2018). Mixed-Signal Circuit Design Driven by Analysis: ADCs, Comparators, and PLLs. UCLA. ProQuest ID: Xu_ucla_0031D_17380. Merritt ID: ark:/13030/m5f52m8x. Retrieved from [https://escholarship.org/uc/item/88h8b5t3]

A. Abidi and H. Xu, "Understanding the Regenerative Comparator Circuit," Proceedings of the IEEE 2014 Custom Integrated Circuits Conference, San Jose, CA, 2014, pp. 1-8. [https://picture.iczhiku.com/resource/ieee/WHiYwoUjPHwZPXmv.pdf]

T. Sepke, P. Holloway, C. G. Sodini and H. -S. Lee, "Noise Analysis for Comparator-Based Circuits," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 56, no. 3, pp. 541-553, March 2009 [https://dspace.mit.edu/bitstream/handle/1721.1/61660/Speke-2009-Noise%20Analysis%20for%20Comparator-Based%20Circuits.pdf]

Sepke, Todd. "Comparator design and analysis for comparator-based switched-capacitor circuits." (2006). [https://dspace.mit.edu/handle/1721.1/38925]

P. Nuzzo, F. De Bernardinis, P. Terreni and G. Van der Plas, "Noise Analysis of Regenerative Comparators for Reconfigurable ADC Architectures," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 55, no. 6, pp. 1441-1454, July 2008 [https://picture.iczhiku.com/resource/eetop/SYirpPPPaAQzsNXn.pdf]


J. Kim, B. S. Leibowitz, J. Ren and C. J. Madden, "Simulation and Analysis of Random Decision Errors in Clocked Comparators," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 56, no. 8, pp. 1844-1857, Aug. 2009, doi: 10.1109/TCSI.2009.2028449. URL:https://people.engr.tamu.edu/spalermo/ecen689/simulation_analysis_clocked_comparators_kim_tcas1_2009.pdf

J. Kim, B. S. Leibowitz and M. Jeeradit, "Impulse sensitivity function analysis of periodic circuits," 2008 IEEE/ACM International Conference on Computer-Aided Design, 2008, pp. 386-391, doi: 10.1109/ICCAD.2008.4681602. [https://websrv.cecs.uci.edu/~papers/iccad08/PDFs/Papers/05C.2.pdf]

Jaeha Kim, Lecture 12. Aperture and Noise Analysis of Clocked Comparators URL:https://ocw.snu.ac.kr/sites/default/files/NOTE/7038.pdf

Sam Palermo. ECEN720: High-Speed Links Circuits and Systems Spring 2023 Lecture 6: RX Circuits [https://people.engr.tamu.edu/spalermo/ecen689/lecture6_ee720_rx_circuits.pdf]


Y. Luo, A. Jain, J. Wagner and M. Ortmanns, "Input Referred Comparator Noise in SAR ADCs," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 66, no. 5, pp. 718-722, May 2019. [https://sci-hub.se/10.1109/TCSII.2019.2909429]

X. Tang et al., "An Energy-Efficient Comparator With Dynamic Floating Inverter Amplifier," in IEEE Journal of Solid-State Circuits, vol. 55, no. 4, pp. 1011-1022, April 2020 [https://sci-hub.se/10.1109/JSSC.2019.2960485]

Chen, Long & Sanyal, Arindam & Ma, Ji & Xiyuan, Tang & Sun, Nan. (2016). Comparator Common-Mode Variation Effects Analysis and its Application in SAR ADCs. 10.1109/ISCAS.2016.7538972. [https://labs.engineering.asu.edu/mixedsignals/wp-content/uploads/sites/58/2017/08/ISCAS_comp_long_2016.pdf]

V. Stojanovic, and V. G. Oklobdzija, "Comparative Analysis of Master–Slave Latches and Flip-Flops for High-Performance and Low-Power Systems," IEEE J. Solid-State Circuits, vol. 34, pp. 536–548, April 1999. [https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC280/Web-page/papers/Clocking/Vlada-Latches-JoSSC-Apr-1999.pdf]

C. Mangelsdorf, "Metastability: Deeply misunderstood [Shop Talk: What You Didn’t Learn in School]," in IEEE Solid-State Circuits Magazine, vol. 16, no. 2, pp. 8-15, Spring 2024

Rabuske, Taimur & Fernandes, Jorge. (2014). Noise-aware simulation-based sizing and optimization of clocked comparators. Analog Integr. Circuits Signal Process.. 81. 723-728. 10.1007/s10470-014-0428-4. [https://sci-hub.se/10.1007/s10470-014-0428-4]

Rabuske, Taimur & Fernandes, Jorge. (2016). Charge-Sharing SAR ADCs for Low-Voltage Low-Power Applications. 10.1007/978-3-319-39624-8.


Masaya Miyahara, Yusuke Asada, Daehwa Paik and Akira Matsuzawa, "A low-noise self-calibrating dynamic comparator for high-speed ADCs," 2008 IEEE Asian Solid-State Circuits Conference, Fukuoka, Japan, 2008 [slides, paper]

Art Schaldenbrand, Senior Product Manager, Keeping Things Quiet: A New Methodology for Dynamic Comparator Noise Analysis URL:https://www.cadence.com/content/dam/cadence-www/global/en_US/videos/tools/custom-_ic_analog_rf_design/NoiseAnalyisposting201612Chalk%20Talk.pdf


B. Razavi, "The Design of a Comparator [The Analog Mind]," IEEE Solid-State Circuits Magazine, Volume. 12, Issue. 4, pp. 8-14, Fall 2020. [https://www.seas.ucla.edu/brweb/papers/Journals/BR_SSCM_4_2020.pdf]

—, "The StrongARM Latch [A Circuit for All Seasons]," IEEE Solid-State Circuits Magazine, Issue. 2, pp. 12-17, Spring 2015. [https://www.seas.ucla.edu/brweb/papers/Journals/BR_Magzine4.pdf]

B. Murmann. ISSCC 2011 Tutorial: Noise Analysis in Switched Capacitor Circuits [slides, transcription]

—, "Thermal Noise in Track-and-Hold Circuits: Analysis and Simulation Techniques," IEEE Solid-State Circuits Magazine, vol. 4, no. 2, pp. 46-54, June 2012 [https://sci-hub.se/10.1109/MSSC.2012.2192190]

X. Huang. Thermal noise analysis of switched-capacitor amplifier [theory, simulation]

CHUNG-CHUN (CC) CHEN. Why A Dedicated Noise Analysis for A Strong-arm Latch / Comparator? [https://youtu.be/S5GnvFxuxUA]

—. Why Transient Noise (Trannoise) Analysis for A Strong-arm Latch / Comparator? [https://youtu.be/gpQggSM9_PE]

—. Why A Periodic Steady-State (PSS), Periodic Noise (Pnoise), and Hand Calculation for A Sampler? [https://youtu.be/lGqCfg5R-rY]

Tony Chan Carusone,. 28 Comparator Specs and Characterization [https://youtu.be/mRfWM1bpr3k]

Prof. Seung-Tak Ryu (KAIST) "Advanced ADC Design Techniques" Online Course (2022) : Dynamic Latch [https://youtu.be/zE1ZdG_XzWk]

IC宇宙成长记. 动态比较器噪声仿真 [link]

Raised Cosine

Equations for the Raised Cosine and Square-Root Raised Cosine Shapes [https://engineering.purdue.edu/~ee538/SquareRootRaisedCosine.pdf]

Pulse Shaping Filter [https://wirelesspi.com/pulse-shaping-filter/]

image-20260415222452201

Feature Raised Cosine (RC) Root Raised Cosine (RRC)
ISI Property Satisfies Nyquist ISI criterion (zero crossings at \(t = \pm nT\)) Does not satisfy ISI criterion on its own
Zero Crossings Crosses zero at every integer multiple of \(T\) Zero crossings are not periodic at \(T\)
Usage Resulting pulse after the whole system Used at both transmitter and receiver (matched filter)
Decay Rate Faster decay in the time domain Slower decay compared to RC
Peak Value Normalized to 1 at \(t=0\) Often normalized so that \(\int |h(t)|^2 dt = 1\)

image-20260415222534835


Why Root Raised Cosine (RRC) Used at both transmitter and receiver ?

image-20260415223127685

Toeplitz matrix

Robert M. Gray, Toeplitz and Circulant Matrices: A review [https://ee.stanford.edu/~gray/toeplitz.pdf]

toeplitz Toeplitz matrix, [https://www.mathworks.com/help/matlab/ref/toeplitz.html]

image-20260314123213083


ZFS

image-20260314125127698

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
h = [0.01 -0.02 0.05 -0.1 0.2 1 0.15 -0.15 0.05 -0.02 0.005];
[val, idx] = max(h);

htc = h(idx-2:idx+2)';

H1 = [1 0.2 -0.1 0.05 -0.02;
0.15 1 0.2 -0.1 0.05;
-0.15 0.15 1 0.2 -0.1;
0.05 -0.15 0.15 1 0.2;
-0.02 0.05 -0.15 0.15 1];

c = [1 0.15 -0.15 0.05 -0.02];
r = fliplr([-0.02 0.05 -0.1 0.2 1]);
T = toeplitz(c, r);

isequal(H1, T) % logical 1

inv(T)
%
% ans =
%
% 1.0774 -0.2682 0.1932 -0.1314 0.0806
% -0.2266 1.1272 -0.2983 0.2034 -0.1314
% 0.2326 -0.2737 1.1517 -0.2983 0.1932
% -0.1405 0.2516 -0.2737 1.1272 -0.2682
% 0.0888 -0.1405 0.2326 -0.2266 1.0774

MMSE

image-20260314115828173

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
h=[0.004, 0.0010, 0.0023, 0.0052, 0.0812, 0.3437, 0.1775, 0.0917, 0.0526,...
0.0360, 0.0224, 0.0162, 0.0152, 0.0097, 0.0090, 0.0067];

k = length(h);
n = 3;
l = 1;
m2 = 5;
m1 = 1;

H = zeros([k+n+l-2, n+l-1]);
H(1:end-2,1) = h;
H(2:end-1,2) = h;
H(3:end,3) = h;

c = zeros(length(h)+2, 1);
c(1:end-2) = h;
r = zeros(3, 1);
r(1) = h(1);

T = toeplitz(c, r);

isequal(H, T) % logical 1

transpose(toeplitz(c,r)) is same with toeplitz(r,c)

1
isequal(transpose(toeplitz(c, r)), toeplitz(r, c)) % logical 1

V. Stojanovic, "Channel-Limited High-Speed Links: Modeling, Analysis and Design," PhD. Thesis, Stanford University, Sep. 2004. [pdf]

image-20260314134616818

image-20260314134258739

Bandpass Modulation

image-20260308134006414

Pulse Amplitude Modulation (PAM)

David A. Johns, ECE1392H - Integrated Circuits for Digital Communications - Fall 2001 [System Overview]

image-20260302223217156

image-20260302223247382

\(S_m\) Google AI mode [https://share.google/aimode/BzYr2logpVTVs83LQ]

1
2
3
4
5
6
snr_mpam = @(m,simga) 10*log10((4^m-1)/simga^2/3);

sigma = 0.1547;

SNR_m2 = snr_mpam(2, sigma); % 23.1999
SNR_m3 = snr_mpam(3, sigma); % 29.4324

Lecture 3, Tuesday January 13th 2026 - Modulation Types (PAM/QAM) [https://cioffi-group.stanford.edu/ee379a/Lectures/L3.pdf]

image-20260308110418448


image-20260308110557392

Carrier & Symbol Synchronization

image-20260308143452122

\(\Delta\tau \lt \pm \frac{1}{100} T\) don't ensure \(\Delta \phi \ll 2\pi\) due to \(T \gg \frac{1}{f_c}\)

image-20260308144246973

Carrier Synchronization

image-20260308094928314

image-20260308095105635


[https://ndl.ethernet.edu.et/bitstream/123456789/87843/14/LECT_13%2614.Synchronization.pdf]

image-20260308101114543

image-20260308101312037

Symbol Synchronization

image-20260308150119546

[https://www.ieee802.org/3/dm/public/1125/cordaro_3dm_01_1125.pdf]

image-20260308160850433


Mathuranathan, Symbol Timing Recovery for QPSK (digital modulations) [https://www.gaussianwaves.com/2013/11/symbol-timing-recovery-for-qpsk-digital-modulations/]

Qasim Chaudhari. Early-Late Bit Synchronizer in Digital Communication [https://wirelesspi.com/early-late-bit-synchronizer-in-digital-communication/]

Igor Freire. Symbol Timing Synchronization: A Tutorial [blog, code]

BPSK synchronization Matlab

But the problem here is: "How does the receiver know the ideal sampling instants?". The solution is "someone has to supply those ideal sampling instants". A symbol time recovery circuit is used for this purpose.

Synchronization in receiver with timing recovery, matched filter for QPSK

Early/Late Symbol Recovery algorithm

  • non-decision-directed timing estimator exploits the symmetry properties of the signal

Early late synchronization

  1. If the Early Sample = Late Sample : The peak occurs at the on-time sampling instant \(T\). No adjustment in the timing is needed.
  2. If |Early Sample| > |Late Sample| : Late timing, the sampling time is offset so that the next symbol is sampled \(T-\delta/2\) seconds after the current sampling time.
  3. If |Early Sample| < |Late Sample| : Early timing, the sampling time is offset so that the next symbol is sampled \(T+\delta/2\) seconds after the current sampling time.

David Johns. ECE1392H - Integrated Circuits for Digital Communications - Fall 2001: [Timing Recovery]

Dither in Quantized Zero Crossing Detection (QZCD) (so-called 'Bang Bang' Phase Detector)

image-20260303212351804

Mueller and Muller Timing Synchronization

K. Mueller and M. Muller, "Timing Recovery in Digital Synchronous Data Receivers," in IEEE Transactions on Communications, vol. 24, no. 5, pp. 516-531, May 1976 [pdf]

Qasim Chaudhari. Mueller and Muller Timing Synchronization Algorithm [https://wirelesspi.com/mueller-and-muller-timing-synchronization-algorithm/]

Eduardo Fuentetaja. "Analysis of the M&M Clock Recovery Algorithm" [https://edfuentetaja.github.io/sdr/m_m_analysis/]

C.-P. Tzeng, D. Hodges and D. Messerschmitt, "Timing Recovery in Digital Subscriber Loops Using Baud-Rate Sampling," in IEEE Journal on Selected Areas in Communications, vol. 4, no. 8, pp. 1302-1311, November 1986 [pdf]

H. Meyr, M. Moeneclaey, and S. A. Fechtel. "Digital Communication Receivers: Synchronization, Channel Estimation, and Signal Processing." Wiley [pdf]

T. Musah and A. Namachivayam, "Robust Timing Error Detection for Multilevel Baud-Rate CDR," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 69, no. 10, pp. 3927-3939, Oct. 2022 [https://sci-hub.jp/10.1109/TCSI.2022.3191740]

Fulvio Spagna, CICC2018 Clock and Data Recovery Systems [pdf]

TODO 📅

Intersymbol Interference (ISI)

L.W. Couch, Digital and Analog Communication Systems, 8th Edition, Pearson, 2013. [pdf]

image-20260226224415849

image-20260226225158225

Nyquist discovered three different methods for pulse shaping that could be used to eliminate ISI

  • Nyquist's First Method (Zero ISI): physically unrealizable (i.e., the impulse response would be noncausal and of infinite duration), inaccurate sync will cause ISI

    image-20260301165125997

  • Nyquist's second method: allows some ISI to be introduced in a controlled way

  • Nyquist's third method: area under the \(h_e(t)\) pulse within the desired symbol interval, \(T_s\), is not zero, but the areas under \(h_e(t)\) in adjacent symbol intervals are zero

Nyquist Criterion & Pulses

David A. Johns, ECE1392H - Integrated Circuits for Digital Communications - Fall 2001 [System Overview]

image-20260301175835124

image-20260301171631609

image-20260301165454919

Matched-Filter (MF)

David A. Johns, ECE1392H - Integrated Circuits for Digital Communications - Fall 2001 [System Overview]

image-20260301175451088

image-20260301175553715


image-20260301175653355

Noise Enhancement in Linear Equalizers

John M. Cioffi, Lecture 13, Thursday February 19th 2026 - Intersymbol Interference, MMSE, and SNR [https://cioffi-group.stanford.edu/ee379a/Lectures/L13.pdf]

—, Lecture 14, Tuesday February 24th 2026 - Linear Equalizers [https://cioffi-group.stanford.edu/ee379a/Lectures/L14.pdf]

image-20260226223722288

image-20260226223806023

Shannon–Hartley theorem

image-20260226231916346

image-20260226225540962


David A. Johns, ECE1392H - Integrated Circuits for Digital Communications - Fall 2001 [Introduction]

image-20260301174746547

image-20260301174712835

LMS & its Quantized-Error Algorithms

Bruno Lima, Adaptive filtering in Python Implementations based on Adaptive Filtering: Algorithms and Practical Implementation (Paulo S. R. Diniz). [https://github.com/BruninLima/PydaptiveFiltering]

image-20260401210526151

\[\begin{align} x_k &= [x[k], x[k-1], \ldots, x[k-M]]^T \in \mathbb{C}^{M+1}\\ y[k] &= w^H[k] x_k, \qquad e[k] = d[k] - y[k], \end{align}\]



LMS algorithm

image-20260317224545818 \[ w[k+1] = w[k] + \mu\, e^*[k] \, x_k. \]

1
2
3
4
if w_init is not None:
self.w: np.ndarray = np.asarray(w_init, dtype=self._dtype)
else:
self.w = np.zeros(self.filter_order + 1, dtype=self._dtype)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
x: np.ndarray = np.asarray(input_signal, dtype=complex).ravel()
d: np.ndarray = np.asarray(desired_signal, dtype=complex).ravel()

n_samples: int = int(x.size)
m: int = int(self.filter_order)

outputs: np.ndarray = np.zeros(n_samples, dtype=complex)
errors: np.ndarray = np.zeros(n_samples, dtype=complex)

x_padded: np.ndarray = np.zeros(n_samples + m, dtype=complex)
x_padded[m:] = x

for k in range(n_samples):
x_k: np.ndarray = x_padded[k : k + m + 1][::-1]

y_k: complex = complex(np.vdot(self.w, x_k))
outputs[k] = y_k

e_k: complex = d[k] - y_k
errors[k] = e_k

self.w = self.w + self.step_size * np.conj(e_k) * x_k


Sign-Data Algorithm \[ w[k+1] = w[k] + 2\mu\, e^*[k] \, \operatorname{sign}(x_k) \]

1
2
3
4
5
6
7
8
9
10
11
12
for k in range(n_samples):
x_k = x_padded[k : k + m + 1][::-1]

y_k = complex(np.vdot(self.w, x_k))
outputs[k] = y_k

e_k = d[k] - y_k
errors[k] = e_k

sign_xk = np.sign(x_k)

self.w = self.w + (2.0 * self.step_size) * np.conj(e_k) * sign_xk


sign–sign algorithm

image-20260317230938532

reference

Proakis, John G., and Masoud Salehi. Digital Communications. 5th ed. McGraw-Hill, 2008. [pdf]

Sklar, Bernard. Digital communications: fundamentals and applications. Pearson, 2021.

Ling, F. (2017). Synchronization in Digital Communication Systems. Cambridge: Cambridge University Press.

Barry, John R., Edward A. Lee, and David G. Messerschmitt. Digital communication. Springer, 2003.

Qasim Chaudhari, Wireless Communications From the Ground Up – An SDR Perspective

John M. Cioffi, [Chapter 3 - Equalization], [Chapter 6 - Fundamentals of Synchronization]

Sen M. Kuo. Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications, 3rd Edition. John Wiley & Sons 2013

Stankovic, Ljubisa. (2015). Digital Signal Processing with Selected Topics.


Paulo S. R. Diniz, Adaptive Filtering: Algorithms and Practical Implementation, 5th edition [pdf], [matlab], [python]

B. Farhang-Boroujeny (2013), Adaptive Filters: Theory and Applications (2nd ed.). John Wiley & Sons, Inc.

Simon O. Haykin (2014), "Adaptive Filter Theory" Prentice-Hall, Inc. 5rd edition


A. Chan Carusone and D. A. Johns, "Analog Filter Adaptation Using a Dithered Linear Search Algorithm," IEEE Int. Symp. Circuits and Syst., May 2002. [PDF], [Slides]

—, Ph. D. Thesis, "Digital Algorithms for Analog Adaptive Filters", Feb. 2002. [http://www.eecg.utoronto.ca/~tcc/thesis.pdf]

—, "Analog Adaptive Filters," tutorial at the IEEE Int. Symp. Circuits and Syst., Bangkok, Thailand, May 2003. [http://www.eecg.utoronto.ca/~tcc/iscas03_tutorial.pdf]

—, 2022 Optimization Tools for Future Wireline Transceivers [https://www.ieeetoronto.ca/wp-content/uploads/2022/12/UofT-Future-of-Wireline-Workshop-2022.pdf]

David Johns, "Integrated Circuits for Digital Communications" [https://www.eecg.toronto.edu/~johns/nobots/courses/ece1392/slides.pdf]


Chris Li, mmse_dfe [https://github.com/ChrisZonghaoLi/mmse_dfe]

ScottXjw, equalizer-code-FFE-DFE-VolterraFFEandDFE [https://github.com/ScottXjw/equalizer-code-FFE-DFE-VolterraFFEandDFE]


Qasim Chaudhari. Maximum Likelihood Estimation of Clock Offset [https://wirelesspi.com/maximum-likelihood-estimation-of-clock-offset/]

—. Channel Estimation in Wireless Communication. [https://wirelesspi.com/channel-estimation-in-wireless-communication/]

—. Phase Locked Loop (PLL) in a Software Defined Radio (SDR) [https://wirelesspi.com/phase-locked-loop-pll-in-a-software-defined-radio-sdr/]

—. Phase Locked Loop (PLL) for Symbol Timing Recovery [https://wirelesspi.com/phase-locked-loop-pll-for-symbol-timing-recovery/]

—. How Decision Feedback Equalizers (DFE) Work [https://wirelesspi.com/how-decision-feedback-equalizers-dfe-work/]

—. Maximum Likelihood Sequence Estimation (MLSE Equalizer) [https://wirelesspi.com/maximum-likelihood-sequence-estimation-mlse-equalizer/]

—. Gardner Timing Error Detector: A Non-Data-Aided Version of Zero-Crossing Timing Error Detectors [https://wirelesspi.com/gardner-timing-error-detector-a-non-data-aided-version-of-zero-crossing-timing-error-detectors/]

—. Digital Filter and Square Timing Recovery [https://wirelesspi.com/digital-filter-and-square-timing-recovery/]

—. What is a Symbol Timing Offset and How It Distorts the Rx Signal [https://wirelesspi.com/what-is-a-symbol-timing-offset-and-how-it-distorts-the-rx-signal/]

—. How Excess Bandwidth Governs Timing Recovery in Digital Communication Systems [https://wirelesspi.com/how-excess-bandwidth-governs-timing-recovery-in-digital-communication-systems/]

—. How Automatic Gain Control (AGC) Works [https://wirelesspi.com/how-automatic-gain-control-agc-works/]

discrete-time frequency: \(\hat{\omega}=\omega T_s\), units are radians per sample


Below diagram show the windowing effect and sampling

NinDFT.drawio

For general window function, we know \(W(e^{j\hat{\omega}})=\frac{1}{T_s}W_c(j\frac{\hat\omega}{T_s})\),

\[ \frac{W_c(j\frac{\hat{\omega}}{T_s})X_c(j\frac{\hat{\omega}}{T_s})}{T_s}\cdot \frac{1}{2\pi} = \frac{T_sW(e^{j\hat{\omega}})X_c(j\frac{\hat\omega}{T_s})}{T_s}\cdot \frac{1}{2\pi}=W(e^{j\hat{\omega}})X_c(j\frac{\hat\omega}{T_s})\cdot \frac{1}{2\pi} \overset{\hat{\omega}=0}{\Longrightarrow} \sum_{n=-N_w}^{+N_w}w[n] \cdot X_c(j\omega)\cdot \frac{1}{2\pi} \]

e.g. \(\frac{W_c(j\omega|\omega=0)}{T_s} = N\) for Rectangular Window, shown in above figure

A finite length sequence can be considered to be an infinite length sequence multiplied by a "Rectangular Window". Also called a "Boxcar Window"

warmup

Continuous-time signals \(x_c(t)\) Discrete-time signals \(x[n]\)
Aperiodic signals Continuous Fourier transform Discrete-time Fourier transform
Periodic signals Fourier series Discrete Fourier transform

Continuous Time Fourier Series (CTFS)

\[\begin{align} a_k &= \frac{1}{T}\int_T x(t)e^{-jk(2\pi/T)) t}dt \\ x(t) &= \sum_{k=-\infty}^{+\infty}a_ke^{jk(2\pi/T) t} \end{align}\]


Let the periodic waveform \(w(t)\), with period \(T_0=2\pi/\omega_0\), have the complex Fourier series \[ w(t)=\sum_{\ell=-\infty}^{\infty}W[\ell]e^{j\ell\omega_0t}. \] We want the Fourier coefficients of \[ w(t)\sin(\omega_0t) \quad\text{and}\quad w(t)\cos(\omega_0t). \]

Multiplication by \(\sin(\omega_0t)\)

Use \[ \sin(\omega_0t) = \frac{e^{j\omega_0t}-e^{-j\omega_0t}}{2j}. \] Then \[ \begin{aligned} w(t)\sin(\omega_0t) &= \left(\sum_{\ell=-\infty}^{\infty} W[\ell]e^{j\ell\omega_0t}\right) \frac{e^{j\omega_0t}-e^{-j\omega_0t}}{2j} \\[4pt] &= \frac{1}{2j} \sum_{\ell=-\infty}^{\infty} W[\ell] \left[ e^{j(\ell+1)\omega_0t} - e^{j(\ell-1)\omega_0t} \right]. \end{aligned} \] Now collect the coefficient multiplying \(e^{jk\omega_0t}\).

For the first term, \[ k=\ell+1 \quad\Longrightarrow\quad \ell=k-1, \] so its coefficient is \(W[k-1]\).

For the second term, \[ k=\ell-1 \quad\Longrightarrow\quad \ell=k+1, \] so its coefficient is \(W[k+1]\).

Therefore, \[ \boxed{ w(t)\sin(\omega_0t) = \sum_{k=-\infty}^{\infty} \frac{W[k-1]-W[k+1]}{2j} e^{jk\omega_0t} } \] and the Fourier coefficient is \[ \color{blue}\boxed{ \left[w(t)\sin(\omega_0t)\right]_k = \frac{W[k-1]-W[k+1]}{2j}. } \]


Multiplication by \(\cos(\omega_0t)\)

Use \[ \cos(\omega_0t) = \frac{e^{j\omega_0t}+e^{-j\omega_0t}}{2}. \] Then \[ \begin{aligned} w(t)\cos(\omega_0t) &= \left(\sum_{\ell=-\infty}^{\infty} W[\ell]e^{j\ell\omega_0t}\right) \frac{e^{j\omega_0t}+e^{-j\omega_0t}}{2} \\[4pt] &= \frac{1}{2} \sum_{\ell=-\infty}^{\infty} W[\ell] \left[ e^{j(\ell+1)\omega_0t} + e^{j(\ell-1)\omega_0t} \right]. \end{aligned} \] Collecting the coefficient of \(e^{jk\omega_0t}\), \[ \boxed{ w(t)\cos(\omega_0t) = \sum_{k=-\infty}^{\infty} \frac{W[k-1]+W[k+1]}{2} e^{jk\omega_0t}. } \] Therefore, \[ \color{blue}\boxed{ \left[w(t)\cos(\omega_0t)\right]_k = \frac{W[k-1]+W[k+1]}{2}. } \]

Continuous-Time Fourier transform (CTFT)

\[\begin{align} X(j\omega) &=\int_{-\infty}^{+\infty}x(t)e^{-j\omega t}dt \\ x(t)&= \frac{1}{2\pi}\int_{-\infty}^{+\infty}X(j\omega)e^{j\omega t}d\omega \end{align}\]

[https://www.rose-hulman.edu/class/ee/yoder/ece380/Handouts/Fourier%20Transform%20Tables%20w.pdf]

image-20240831104459715


Fourier Xform of Periodic Functions [https://lpsa.swarthmore.edu/Fourier/Xforms/FXPeriodic.html]

Fourier Transform of Fourier Series Representation \[ \boxed{x_T(t) = \sum_{n=-\infty}^{+\infty} c_n e^{j n \omega_0 t}\qquad X_T(\omega) = 2\pi \sum_{n=-\infty}^{+\infty} c_n \delta(\omega - n \omega_0)} \]

Discrete-Time Fourier Transform (DTFT)

\[\begin{align} X(e^{j\hat{\omega}}) &=\sum_{n=-\infty}^{+\infty}x[n]e^{-j\hat{\omega} n} \\ x[n] &= \frac{1}{2\pi}\int_{2\pi}X(e^{j\hat{\omega}})e^{j\hat{\omega} n}d\hat{\omega} \end{align}\]

DTFT is defined for infinitely long signals as well as finite-length signal

DTFT is continuous in the frequency domain

We could verify that is the correct inverse DTFT relation by substituting the definition of the DTFT and rearranging terms


image-20240831152155093

Discrete-Time Fourier Series (DTFS)

TODO 📅

Discrete Fourier Series (DFS)

TODO 📅

Discrete Fourier Transform (DFT)

Two steps are needed to change the DTFT sum into a computable form:

  1. the continuous frequency variable \(\hat{\omega}\) must be sampled
  2. the limits on the DTFT sum must be finite

\[\begin{align} X[k] &= \sum_{n=0}^{N-1}x[n]e^{-j(2\pi/N)kn}\space\space\space k=0,1,...,N-1 \\ x[n] &= \frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{j(2\pi/N)kn} \space\space\space n=0,1,...,N-1 \end{align}\]

Part of the proof is given by the following step:

image-20240830222204470


DFT \(X[k]\) is a sampled version of the DTFT \(X(e^{j\hat{\omega}})\), with the \(k\)-th sampled digital frequency, \(\hat{\omega}_k = \frac{2\pi k}{N}\) \[ \boxed{X[k] = X(e^{j\hat{\omega}})\bigg|_{\hat{\omega}=\hat{\omega}_k}, \qquad \hat{\omega}_k = \frac{2\pi k}{N}, \qquad k=0,1,\dots,N-1} \]

DTFT vs DFT

Schuller, Gerald. 2026. Multirate Signal Processing with Examples in Python. Cham: Springer Nature Switzerland.

image-20260627081612130

impulse train

CTFT:

image-20240830224755336

image-20240911221811991

using time-sampling property

impulse_train.drawio


DTFT:

Given \(x[n]=\sum_{k=-\infty}^{\infty}\delta(n-k)\)

\[\begin{align} X(e^{j\hat{\omega}}) &= X_s(j\frac{\hat{\omega}}{T}) \\ &= \frac{2\pi}{T}\sum_{k=-\infty}^{\infty}\delta(\frac{\hat{\omega}}{T}-\frac{2\pi k}{T}) \\ &= \frac{2\pi}{T}\sum_{k=-\infty}^{\infty}T\delta(\hat{\omega}-2\pi k) \\ &= 2\pi\sum_{k=-\infty}^{\infty}\delta(\hat{\omega}-2\pi k) \end{align}\]

[http://courses.ece.ubc.ca/359/notes/notes_part1_set4.pdf]


Fourier series of impulse train

image-20241106232432131

Dirac delta (impulse) function

image-20241013174738030

image-20241013174801954

[https://bingweb.binghamton.edu/~suzuki/Math-Physics/LN-7_Dirac_delta_function.pdf]

Topic 3 The \(\delta\)-function & convolution. Impulse response & Transfer function [https://www.robots.ox.ac.uk/~dwm/Courses/2TF_2011/2TF-N3.pdf]

image-20241122231208806


impulse scaling

\[ \delta(\alpha t)= \frac{1}{\alpha}\delta( t) \]

where \(\alpha\) is scaling ratio

doublet functions

image-20260711000834823

Multiplication

aka Modulation or Windowing Theorem

CTFT: \[ x_1(t)x_2(t)\overset{FT}{\longrightarrow}\frac{1}{2\pi}X_1(\omega)*X_2(\omega) \]


DTFT:

image-20240909215833750

Duality

image-20240921181908992

image-20240921182105935

Conjugate Symmetry

image-20240921181015717

image-20240921181258063

Parseval's Relation

CTFS

with \(f(x) = \sum_{n=-\infty}^{\infty} c_n e^{j \frac{2n\pi x}{T}}\)

\[ \frac{1}{T} \int_{0}^{T} \vert{}f(x)\vert{}^2 \, dx = \sum_{n=-\infty}^{\infty} \vert{}c_n\vert{}^2 \]


CTFT:

image-20240830230835764


DTFT:

image-20230516022936168


DFT:

image-20241214002405992

image-20241214002606672


[https://cioffi-group.stanford.edu/doc/book/chap3.pdf]

image-20260227013005040

Eigenfunctions & frequency response

Complex exponentials are eigenfunctions of LTI systems, that is,

continuous time: \(e^{j\omega t}\to H(j\omega)e^{j\omega t}\)

discrete time: \(e^{j\hat{\omega}n} \to H(e^{j\hat{\omega}})e^{j\hat{\omega}n}\)

where \(H(j\omega)\), \(H(e^{j\hat{\omega}})\) is frequency response of continuous-time systems and discrete-time systems, which is the function of \(\omega\) and \(\hat{\omega}\) \[\begin{align} H(j\omega) &= \int_{-\infty}^{+\infty}h(t)e^{-j\omega t}dt \\ \\ H(e^{j\hat{\omega}}) &= \sum_{n=-\infty}^{+\infty}h[n]e^{-j\hat{\omega} n} \end{align}\]

The frequency response of discrete-time LTI systems is always a periodic function of the frequency variable \(\hat{\omega}\) with period \(2\pi\)

Sampling Theorem

time-sampling theorem: applies to bandlimited signals

spectral sampling theorem: applies to timelimited signals

Aliasing

image-20260425112955664

Given below sequence \[ X[n] =A e^{j\omega T_s n} \]

  1. \(kf_s + \Delta f\)

​ \[\begin{align} x[n] &= Ae^{j\left( kf_s+\Delta f \right)2\pi T_sn} + Ae^{j\left( -kf_s-\Delta f \right)2\pi T_sn} \\ &= Ae^{j\Delta f\cdot 2\pi T_sn} + Ae^{-j\Delta f\cdot 2\pi T_sn} \end{align}\]

  1. \(kf_s - \Delta f\)

​ \[\begin{align} x[n] &= Ae^{j\left( kf_s-\Delta f \right)2\pi T_sn} + Ae^{j\left( -kf_s+\Delta f \right)2\pi T_sn} \\ &= Ae^{-j\Delta f\cdot 2\pi T_sn} + Ae^{j\Delta f\cdot 2\pi T_sn} \end{align}\]

complex signal

\[\begin{align} A e^{j(\omega_s + \Delta \omega) T_s n} &= A e^{j(k\omega_s + \Delta \omega) T_s n} \\ A e^{j(\omega_s - \Delta \omega) T_s n} &= A e^{j(k\omega_s - \Delta \omega) T_s n} \end{align}\]

sampling_aliasing.drawio


image-20260425112858854

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from itertools import product

def samplealiasing(fsig, fs=1):
fdisp = None
N = 0

while True:
for signN, signFsig in product([-1, 1], [-1, 1]):
fdisp_n = signN*N*fs + signFsig*fsig
if fdisp_n >= 0 and fdisp_n < fs/2:
fdisp = fdisp_n
print(f"{fsig:.4f} is indistinguishable from {fdisp:.4f}, which is {'+' if signN>0 else '-'}{N} {'+' if signFsig>0 else '-'} {fsig:.4f}")
return fdisp
N += 1
if N > 100:
break
return None

for i in range(1,6):
samplealiasing(0.3125*i)

# 0.3125 is indistinguishable from 0.3125, which is -0 + 0.3125
# 0.6250 is indistinguishable from 0.3750, which is +1 - 0.6250
# 0.9375 is indistinguishable from 0.0625, which is +1 - 0.9375
# 1.2500 is indistinguishable from 0.2500, which is -1 + 1.2500
# 1.5625 is indistinguishable from 0.4375, which is +2 - 1.5625

another method inspired by [https://github.com/bmurmann/MEAD2026/blob/main/tb_boot_bottom_4.ipynb]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# inspired by https://github.com/bmurmann/MEAD2026/blob/main/tb_boot_bottom_4.ipynb

def samplealiasing(fsig, fs=1):
fdisp = None
fsig_wrap = fsig % fs
if fsig_wrap > fs/2:
fdisp = fs - fsig_wrap
else:
fdisp = fsig_wrap
print(f"{fsig:.4f} is indistinguishable from {fdisp:.4f}")

return fdisp

for i in range(1,6):
samplealiasing(0.3125*i)


# 0.3125 is indistinguishable from 0.3125
# 0.6250 is indistinguishable from 0.3750
# 0.9375 is indistinguishable from 0.0625
# 1.2500 is indistinguishable from 0.2500
# 1.5625 is indistinguishable from 0.4375

CTFS & CTFT

Fourier transform of a periodic signal with Fourier series coefficients \(\{a_k\}\) can be interpreted as a train of impulses occurring at the harmonically related frequencies and for which the area of the impulse at the \(k\)th harmonic frequency \(k\omega_0\) is \(2\pi\) times the \(k\)th Fourier series coefficient \(a_k\)

image-20240830225453601

inverse CTFT & inverse DTFT

time domain frequency domain
inverse CTFT \(\delta(t)\) \(\int_{\infty}d\omega\)
inverse DTFT \(\delta[n]\) \(\int_{2\pi}d\hat{\omega}\)

inverse CTFT shall integral from \(-\infty\) to \(+\infty\) to obtain \(\delta(t)\) in time domain, e.g., \(x_s(t)\) impulse train

Fourier Transform Symmetry

Lance Williams, CS 530: Geometric and Probabilistic Methods in Computer Science "Fourier Transform Symmetries" [https://www.cs.unm.edu/~williams/cs530/symmetry.pdf]

\(f(t)\) \(\mathcal{F}(s) = \int_{-\infty}^{\infty} f(t)e^{-j2\pi st} \, dt\)
odd odd
even even
real odd imaginary
real even real

image-20260709210717751

image-20260709210954471

image-20260709211059380

Half Wave Symmetry

ECEN 2633 Chapter 16: Fourier Series [http://www.jazapka.people.ysu.edu/ECEN%202633%20Chapter%2016.pdf]

image-20260426112440854


[Google AI Mode]

image-20260426111928680

Poisson summation formula

metroidman, fractional N量化噪声对系统相位噪声的影响 两种分析方法 LTI频域法和时域采样DFT法 [link]

image-20260505132033131


image-20260523111503056

  • symmetric "samples ↔︎ samples" version
  • periodization version

Let's prove the symmetric "samples ↔︎ samples" formula

image-20260523111602106

image-20260523111632471

angular frequency \(\omega\) vs Hz-frequency \(f\)

Multiplication property

image-20260606211927725

sinc function & unit rectangular pulse

image-20241002143413907

image-20250628181534951

where \(W\) is sampling frequency in Hz

sinc.drawio

image-20241002143219224


sinc function is square integrable but not absolutely integrable

periodic pulse function

Some Comments about the Pulse Function [https://lpsa.swarthmore.edu/Fourier/Series/ExFS.html#PulseUncertainty]

Fourier Transform of a Periodic Signal Described by a Fourier Series [https://lpsa.swarthmore.edu/Fourier/Xforms/FXPeriodic.html##section7]

Consider the periodic pulse function \(x_T(t) = \Pi_T \left( \frac{t}{T_p} \right)\)

Pi5(t_2)

Fourier Series Coefficients is \[ c_n = \frac{T_p}{T} \operatorname{sinc} \left( \frac{n T_p}{T} \right) \] The Fourier Transform of the function is \[ X_T(\omega) = \sum_{n=-\infty}^{+\infty} c_n 2\pi \delta(\omega - n\omega_0) \]

spectral sampling

image-20240831185532202

spectral sampling by \(\omega_0\), and \(\frac{2\pi}{\omega_0} \gt \tau\) \[ X_{n\omega_0}(\omega) = \sum_{n=-\infty}^{\infty}X(n\omega_0)\delta(\omega - n\omega_0) \] Periodic repetition of \(x(t)\) is \[ x_{n\omega_0}(t) = \frac{1}{\omega_0}\sum_{n=-\infty}^{\infty}x(t -n\frac{2\pi}{\omega_0})=\frac{T_0}{2\pi}\sum_{n=-\infty}^{\infty}x(t -nT_0) \]

Then, if \(x_{T_0} (t)\), a periodic signal formed by repeating \(x(t)\) every \(T_0\) seconds (\(T_0 \gt \tau\)​), its CTFT is \[ X_{T_0}(\omega) = \frac{2\pi}{T_0} \cdot X_{n\omega_0}(\omega) = \frac{2\pi}{T_0}\sum_{n=-\infty}^{\infty}X(n\omega_0)\delta(\omega - n\omega_0) \] Then \(x_{T_0} (t)\) can be expressed with inverse CTFT as \[\begin{align} x_{T_0} (t) &= \frac{1}{2\pi}\int_{-\infty}^{\infty}X_{T_0}(\omega)e^{j\omega t}d\omega \\ &= \frac{1}{T_0}\sum_{n=-\infty}^{\infty}X(n\omega_0)e^{jn\omega_0 t} =\sum_{n=-\infty}^{\infty}\frac{1}{T_0}X(n\omega_0)e^{jn\omega_0 t} \end{align}\]

i.e. the coefficients of the Fourier series for \(x_{T_0} (t)\) is \(D_n =\frac{1}{T_0}X(n\omega_0)\)

image-20240831190258683

alternative method by direct Fourier series

image-20240831193912709

Why DFT ?

We can use DFT to compute DTFT samples and CTFT samples

image-20240831201335531

\[ \overline{x}(t) = \sum_{n=0}^{N_0-1}x(nT)\delta(t-nT) \] applying the Fourier transform yieds \[ \overline{X}(\omega) = \sum_{n=0}^{N_0-1}x[n]e^{-jn\omega T} \] But \(\overline{X}(\omega)\), the Fourier transform of \(\overline{x}(t)\) is \(X(\omega)/T\), assuming negligible aliasing. Hence, \[ X(\omega) = T\overline{X}(\omega) = T\sum_{n=0}^{N_0-1}x[n]e^{-jn\omega T} \] and \[ X(k\omega_0) = T\sum_{n=0}^{N_0-1}x[n]e^{-jn k\omega_0 T} \] with \(\hat{\omega}_0 = \omega_0 T\) \[ X(k\omega_0) = T\sum_{n=0}^{N_0-1}x[n]e^{-jn k\hat{\omega}_0} \] i.e. the relationship between CTFT and DFT is \(X(k\omega_0) = T\cdot X[k]\), DFT is a tool for computing the samples of CTFT

C/D

Sampling with a periodic impulse train, followed by conversion to a discrete-time sequence

image-20240901155629500

image-20240830231619897

The periodic impulse train is \[ s(t) = \sum_{n=-\infty}^{\infty}\delta(t-nT) \] \(x_s(t)\) can be expressed as \[ x_s(t) = \sum_{n=-\infty}^{\infty}x_c(nT)\delta(t-nT) \] i.e., the size (area) of the impulse at sample time \(nT\) is equal to the value of the continuous-time signal at that time.

\(x_s(t)\)​ is, in a sense, a continuous-time signal (specifically, an impulse train)

samples of \(x_c(t)\) are represented by finite numbers in \(x[n]\) rather than as the areas of impulses, as with \(x_s(t)\)

Frequency-Domain Representation of Sampling

The relationship between the Fourier transforms of the input and the output of the impulse train modulator \[ X_s(j\omega) = \frac{1}{T}\sum_{k=-\infty}^{\infty}X_c(j(\omega -k\omega_s)) \] where \(\omega_s\) is the sampling frequency in radians/s


\(X(e^{j\hat{\omega}})\), the discrete-time Fourier transform (DTFT) of the sequence \(x[n]\), in terms of \(X_s(j\omega)\) and \(X_c(j\omega)\)

continuous-time Fourier transform discrete-time Fourier transform
\(x_s(t) = \sum_{n=-\infty}^{\infty}x_c(nT)\delta(t-nT)\) \(x[n]=x_c(nT)\)
\(X_s(j\omega)=\sum_{n=-\infty}^{\infty}x_c(nT)e^{-j\omega Tn}\) \(X(e^{j\hat{\omega}})=\sum_{n=-\infty}^{\infty}x_c(nT)e^{-j\hat{\omega} n}\)

\[ X(e^{j\omega T}) = \frac{1}{T}\sum_{k=-\infty}^{\infty}X_c(j(\omega-k\omega_s)) \] or equivalently, \[ X(e^{j\hat{\omega}}) = \frac{1}{T}\sum_{k=-\infty}^{\infty}X_c(j(\frac{\hat{\omega}}{T}-\frac{2\pi k}{T})) \]

\(X(e^{j\hat{\omega}})\) is a frequency-scaled version of \(X_s(j\omega)\) with the frequency scaling specified by \(\hat{\omega} =\omega T\)

Ref. 9.5 DTFT connection with the CTFT

image-20240831154638540

Here, \(\Omega = \omega T\)

The factor \(\frac{1}{T}\) in \(X(e^{j\hat{\omega}})\) is misleading, actually \(x[n]\) is not scaled by \(\frac{1}{T}\) once taking \(\hat{\omega}\) variable of integration into account \[\begin{align} x_r[n] &= \frac{1}{2\pi} \int_{2\pi}X(e^{j\hat{\omega}})e^{j\hat{\omega} n}d\hat{\omega} \\ &= \frac{1}{2\pi}\int_{2\pi}\frac{1}{T}\sum_{k=-\infty}^{+\infty}X_c \left[ j\left(\frac{\hat{\omega}}{T} - \frac{2\pi k}{T}\right)\right] e^{j\hat{\omega} n}d\hat{\omega} \\ &\approx \frac{1}{2\pi}\frac{1}{T}\int_{2\pi}X_c (\frac{\hat{\omega}}{T} ) e^{j\hat{\omega} n} d\hat{\omega} \\ &=\frac{1}{2\pi} \frac{1}{T}\int_{2\pi} \left[ \int_{\infty}X_c(\Phi)\delta (\Phi - \frac{\hat{\omega}}{T} )d\Phi \right] e^{j\hat{\omega} n} d\hat{\omega} \\ &=\frac{1}{2\pi} \frac{1}{T} \int_{\infty}X_c(\Phi)d\Phi \int_{2\pi}\delta (\Phi - \frac{\hat{\omega}}{T} )e^{j\hat{\omega} n} d\hat{\omega} \\ &=\frac{1}{2\pi} \frac{1}{T} \int_{\infty}X_c(\Phi)d\Phi \int_{2\pi}T\cdot \delta (\Phi T - \hat{\omega} )e^{j\hat{\omega} n} d\hat{\omega} \\ &=\frac{1}{2\pi} \int_{\infty}X_c(\Phi) e^{j\Phi T n}d\Phi \end{align}\]

That is \[\begin{align} x_r[n] &= \frac{1}{2\pi}\int_{2\pi} \frac{1}{T}X_c (\frac{\hat{\omega}}{T} ) e^{j\hat{\omega} n} d\hat{\omega} \\ &= \frac{1}{2\pi} \int_{\infty}X_c(\omega) e^{j\omega T n}d\omega \tag{31} \end{align}\]

assuming Nyquist–Shannon sampling theorem is met

\[\begin{align} x_r[n] &= \frac{1}{2\pi} \int_{\infty}X_c(\omega) e^{j\omega T n}d\omega \\ &= \frac{1}{2\pi} \int_{\infty}X_c(\omega) e^{j\omega t_n}d\omega \\ &= x_c(t_n) \end{align}\]

where \(t_n = T n\), then \(x_r[n] = x_c(nT)\)


Assuming \(x_c(t) = \cos(\omega_0 t)\), \(x_s(t)= \sum_{n=-\infty}^{\infty}x_c(nT)\delta(t-nT)\) and \(x[n]=x_c(nT)\), that is \[\begin{align} x_c(t) & = \cos(\omega_0 t) \\ x_s(t) &= \sum_{n=-\infty}^{\infty}\cos(\omega_0 nT)\delta(t-nT) \\ x[n] &= \cos(\omega_0 nT) \end{align}\]

  • \(X_c(j\omega)\), the Fourier Transform of \(x_c(t)\) \[ X_c(j\omega) = \pi[\delta(\omega - \omega_0) + \delta(\omega + \omega_0)] \]

  • \(X(e^{j\hat{\omega}})\), the the discrete-time Fourier transform (DTFT) of the sequence \(x[n]\) \[ X(e^{j\hat{\omega}}) =\sum_{k=-\infty}^{+\infty}\pi[\delta(\hat{\omega} - \hat{\omega}_0-2\pi k) + \delta(\hat{\omega} + \hat{\omega}_0-2\pi k)] \]

  • \(X_s(j\omega)\), the Fourier Transform of \(x_s(t)\) \[ X_s(j\omega)= \frac{1}{T}\sum_{k=-\infty}^{+\infty}\pi[\delta(\omega - \omega_0-k\omega_s) + \delta(\omega + \omega_0-k\omega_s)] \]

Express \(X(e^{j\hat{\omega}})\) in terms of \(X_s(j\omega)\) and \(X_c(j\omega)\) \[ X(e^{j\hat{\omega}}) = \frac{1}{T}\sum_{k=-\infty}^{+\infty}\pi[\delta(\frac{\hat{\omega}}{T} - \omega_0-k\omega_s) + \delta(\frac{\hat{\omega}}{T} + \omega_0-k\omega_s)] \] Inverse \(X(e^{j\hat{\omega}})\) \[\begin{align} x_r[n] &= \frac{1}{2\pi} \int_{2\pi}X(e^{j\hat{\omega}}) e^{j\hat{\omega} n} d\hat{\omega} \\ &= \frac{1}{2\pi}\int_{2\pi} \pi[\delta(\frac{\hat{\omega}}{T} - \omega_0) + \delta(\frac{\hat{\omega}}{T} + \omega_0)]e^{j\hat{\omega} n} d\frac{\hat{\omega}}{T} \\ &= \frac{1}{2\pi}\int_{2\pi} \pi[\delta(\frac{\hat{\omega}}{T} - \omega_0)e^{j\hat{\omega}_0 n} + \delta(\frac{\hat{\omega}}{T} + \omega_0)e^{-j\hat{\omega}_0 n}] d\frac{\hat{\omega}}{T} \\ &= \frac{1}{2}[ e^{j\hat{\omega}_0 n}\int_{2\pi} [\delta(\frac{\hat{\omega}}{T} - \omega_0)d\frac{\hat{\omega}}{T} + e^{-j\hat{\omega}_0 n}\int_{2\pi} [\delta(\frac{\hat{\omega}}{T} + \omega_0)d\frac{\hat{\omega}}{T}] \\ &= \frac{1}{2}[ e^{j\hat{\omega}_0 n} + e^{-j\hat{\omega}_0 n} ] \\ &= \cos(\hat{\omega}_0 n) \end{align}\]

or follow EQ.(31)

\[\begin{align} x_r[n] &= \frac{1}{2\pi} \int_{\infty}X_c(\omega) e^{j\omega T n}d\omega \\ &= \frac{1}{2\pi} \int_{\infty} \pi[\delta(\omega - \omega_0) + \delta(\omega + \omega_0)]e^{j\omega T n}d\omega \\ &= \frac{1}{2}(e^{j\omega_0 T n}+e^{-j\omega_0 T n}) \\ &= \cos(\hat{\omega}_0 n) \end{align}\]

where \(\hat{\omega}_0 = \omega_0 T\)

impulse train sampling & impulse sequence

image-20250910204320327

image-20250910204428950

if \(x_c(t) = e^{j\Omega_0t}\), thus \(X_c (j\Omega) = A\delta(\Omega - \Omega_0)\)

Then \[ X_s (j\Omega) = \frac{A}{T_s}\sum_k \delta(\Omega -\Omega_0 - k\Omega_s) \]

DTFT of \(x[n]\) \[\begin{align} X(e^{j\omega}) &= \frac{1}{T_s} \sum_k X_c\left[j(\frac{\omega}{T_s}-\frac{2\pi k}{T_s})\right] \\ &= \frac{A}{T_s} \sum_k \delta(\frac{\omega}{T_s} -\Omega_0- \frac{2\pi k}{T_s}) \\ &= A \sum_k \delta(\omega -\omega_0 - 2\pi k) \end{align}\]

yield \[ x[n] = A e^{j\omega_0 n} = A e^{j\Omega_0 nT_s} \]

1
2
3
4
5
6
7
8
9
import numpy as np
x = np.linspace(0,1,10000)
y = np.cos(2*np.pi*1*x)
rms = np.sqrt(np.power(y, 2).sum()/x.size)
print(rms)
print(1/2**0.5)

# 0.7071421356417675
# 0.7071067811865475

Example 4.1 impulse scaling \(\delta(\omega/T)=T\delta(\omega)\)

\[ \int \delta(\frac{\omega}{T})d\omega = \int T \delta(\omega)d\omega = \int T\delta(\frac{\omega}{T})d\frac{\omega}{T} = T \]

D/C

image-20240831161852787

image-20240831162625943

image-20240831162559492

image-20241024220244992

Zero Padding

Balu Santhanam. ECE-539: Digital Signal Processing: Zero padding and Resolution [http://ece-research.unm.edu/bsanthan/ece539/zero_pad.pdf]

David Castro PiñolDavid Castro Piñol. 𝗭𝗲𝗿𝗼 𝗣𝗮𝗱𝗱𝗶𝗻𝗴 𝗗𝗼𝗲𝘀𝗻’𝘁 𝗜𝗺𝗽𝗿𝗼𝘃𝗲 𝗦𝗽𝗲𝗰𝘁𝗿𝗮𝗹 𝗥𝗲𝘀𝗼𝗹𝘂𝘁𝗶𝗼𝗻 [link]

Zero padding improves frequency grid resolution, not spectral resolution

A smoother spectrum is not more information — it is better interpolation of the same information.

To truly improve spectral resolution, you must observe the signal longer (increase N).

chart, histogram

Gotcha

A remarkable fact of linear systems is that the complex exponentials are eigenfunctions of a linear system, as the system output to these inputs equals the input multiplied by a constant factor.

  • Both amplitude and phase may change
  • but the frequency does not change

For an input \(x(t)\), we can determine the output through the use of the convolution integral, so that with \(x(t) = e^{st}\) \[\begin{align} y(t) &= \int_{-\infty}^{+\infty}h(\tau)x(t-\tau)d\tau \\ &= \int_{-\infty}^{+\infty} h(\tau) e^{s(t-\tau)}d\tau \\ &= e^{st}\int_{-\infty}^{+\infty} h(\tau) e^{-s\tau}d\tau \\ &= e^{st}H(s) \end{align}\]

Take the input signal to be a complex exponential of the form \(x(t)=Ae^{j\phi}e^{j\omega t}\)

\[\begin{align} y(t) &= h(t)*x(t) \\ &= H(j\omega)Ae^{j\phi}e^{j\omega t} \end{align}\]

The frequency response at \(-\omega\) is the complex conjugate of the frequency response at \(+\omega\), given \(h(t)\) is real

\[\begin{align} H^*(t) &= \left(\int_{-\infty}^{+\infty}h(t)e^{-j\omega t}dt\right)^* \\ &= \int_{-\infty}^{+\infty}h^*(t)e^{+j\omega t}dt \\ &= \int_{-\infty}^{+\infty}h(t)e^{-j(-\omega t)}dt \\ &= H(-j\omega) \end{align}\]

The real cosine signal is actually composed of two complex exponential signals: one with positive frequency and the other with negative \[ cos(\omega t + \phi) = \frac{e^{j(\omega t + \phi)} + e^{-j(\omega t + \phi)}}{2} \]

The sinusoidal response is the sum of the complex-exponential response at the positive frequency \(\omega\) and the response at the corresponding negative frequency \(-\omega\) because of LTI systems's superposition property

  • input: \[\begin{align} x(t) &= A cos(\omega t + \phi) \\ &= \frac{1}{2}Ae^{\phi}e^{\omega t} + \frac{1}{2}Ae^{-\phi}e^{-\omega t} \end{align}\]

  • output with \(H(j\omega)=Ge^{j\theta}\): \[\begin{align} y(t) &= H(j\omega)\frac{1}{2}Ae^{\phi}e^{\omega t} + H(-j\omega)\frac{1}{2}Ae^{-\phi}e^{-\omega t} \\ &= Ge^{j\theta}\frac{1}{2}Ae^{\phi}e^{\omega t} + Ge^{-j\theta}\frac{1}{2}Ae^{-\phi}e^{-\omega t} \\ &= GAcos(\omega t + \phi + \theta) \end{align}\]

Its phase shift is \(\theta\) and gain is \(G\), which is same with \(H(j\omega)\).

reference

Alan V Oppenheim, Ronald W. Schafer. Discrete-Time Signal Processing, 3rd edition [pdf]

B.P. Lathi, Roger Green. Linear Systems and Signals (The Oxford Series in Electrical and Computer Engineering) 3rd Edition [pdf]

Alan V. Oppenheim, Alan S. Willsky, and S. Hamid Nawab. 1996. Signals & systems (2nd ed.) [pdf]

James H. McClellan, Ronald Schafer, and Mark Yoder. 2015. DSP First (2nd. ed.). Prentice Hall Press, USA

Reference Ripple

C-H Chan (U. of Macau) "Extreme SAR ADCs - Exploring New Frontiers" Online Course (2024) : Reference Buffer in SAR ADC [https://youtu.be/vj98B7AaC9E]

C. Li, C. -H. Chan, Y. Zhu and R. P. Martins, "Analysis of Reference Error in High-Speed SAR ADCs With Capacitive DAC," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 66, no. 1, pp. 82-93, Jan. 2019 [https://ime.um.edu.mo/wp-content/uploads/magazines/961546494e705f6fd16b9f785a121030.pdf]

J. Zhong, Y. Zhu, S. -W. Sin, S. -P. U and R. P. Martins, "Thermal and Reference Noise Analysis of Time-Interleaving SAR and Partial-Interleaving Pipelined-SAR ADCs," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 62, no. 9, pp. 2196-2206, Sept. 2015 [https://sci-hub.st/10.1109/TCSI.2015.2452331]

C. -H. Chan et al., "60-dB SNDR 100-MS/s SAR ADCs With Threshold Reconfigurable Reference Error Calibration," in IEEE Journal of Solid-State Circuits, vol. 52, no. 10, pp. 2576-2588, Oct. 2017 [https://ime.um.edu.mo/wp-content/uploads/magazines/407e580ac0218605bcf9b9bbd0ea1109.pdf]

TODO 📅

sample-by-sample

3rd harmonic

sample2sample-gain-distortion.drawio

bit-by-bit

The amplitude of the reference ripple is code-dependent as it is correlated with switching energy in each bit cycling

SAR ADC Noise Analysis

image-20260502085013836

kT/C Noise in sampling

image-20260502084730678

DAC Noise in conversion

T. Miki et al., "A 4.2 mW 50 MS/s 13 bit CMOS SAR ADC With SNR and SFDR Enhancement Techniques," in IEEE Journal of Solid-State Circuits, vol. 50, no. 6, pp. 1372-1381, June 2015 [https://sci-hub.jp/10.1109/JSSC.2015.2417803]

image-20260502090653788

image-20260502092242889

Comparator Noise in conversion

image-20260502100615163



noise analysis for dynamic integrator

image-20260502100357196

image-20260502102147273


image-20260502102432478

image-20260502100332974


noise analysis for latch phase

P. Nuzzo, F. De Bernardinis, P. Terreni and G. Van der Plas, "Noise Analysis of Regenerative Comparators for Reconfigurable ADC Architectures," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 55, no. 6, pp. 1441-1454, July 2008

image-20260502110023968

Comparator

Comparator input cap effect

image-20240907194621524 \[ -V_{in}\cdot 2^N C = V_c (2^N C + C_p) \] Then \(V_c = -\frac{2^N C}{2^N C + C_p}V_{in}\), i.e. this capacitance reduce the voltage amplitude by the factor

During conversion \[\begin{align} V_c &= -\frac{2^N C}{2^N C + C_p}V_{in} +V_{ref}\sum_{n=0}^{N-1} \frac{b_n\cdot2^n C}{2^N C + C_p} \\ &= \frac{2^N C}{2^N C + C_p}\left(-V_{in} + V_{ref}\sum_{n=0}^{N-1}\frac{b_n }{2^{N-n}} \right) \end{align}\]

That is, it does not change the sign

Comparator offset effect

image-20240825204030645

Capacitor DAC (CDAC)

The charge redistribution capacitor network is used to sample the input signal and serves as a digital-to-analog converter (DAC) for creating and subtracting reference voltages

sampling charge \[ Q = V_{in} C_{tot} \] conversion charge \[ Q = -C_{tot}V_c + V_{ref}C_\Delta \] That is \[ V_c = \frac{C_\Delta}{C_{tot}}V_{ref} - V_{in} \]


CDAC is actually working as a capacitive divider during conversion phase, the charge of internal node retain (charge conservation law)

assuming \(\Delta V_i\) is applied to series capacitor \(C_1\) and \(C_2\)

cap_divider.drawio \[ (\Delta V_i - \Delta V_x) C_1 = \Delta V_x \cdot C_2 \] Then \[ \Delta V_x = \frac{C_1}{C_1+C_2}\Delta V_i \]

\(V_x= V_{x,0} + \Delta V_x\)

CDAC Settling Accuracy

cdac-tau.drawio \[ V_x(s) = \frac{C_1+C_2}{RC_1C_2}\cdot \frac{1}{s+\frac{C_1+C_2}{RC_1C_2}}\cdot V_i(s) = \frac{1}{\tau}\cdot \frac{1}{s+\frac{1}{\tau}}\cdot \frac{1}{s}= \frac{1}{\tau}\cdot \tau(\frac{1}{s} - \frac{1}{s+\frac{1}{\tau}})=\frac{1}{s} - \frac{1}{s+\frac{1}{\tau}} \]

inverse Laplace Transform is \(V_x(t) = 1 - e^{-t/\tau}\)

\[ V_y(s) = V_x\frac{C_1}{C_1+C_2} = \frac{C_1}{C_1+C_2} \left(\frac{1}{s} - \frac{1}{s+\frac{1}{\tau}}\right) \]

inverse Laplace Transform is \(V_y(t) = \frac{C_1}{C_1+C_2}\left(1 - e^{-t/\tau}\right)\)

\(V_x(t)\) and \(V_y(t)\) prove that the settling time is same

\(\tau = R\frac{C_1C_2}{C_1+C_2}\), which means usually worst for MSB capacitor (largest)

both \(\tau\) and \(\Delta V\) are the maximum

A popular way to improve the settling behavior, again, is to employ unit-element DACs that statistically reduce the switching activities, which, unfortunately, exhibits unnecessary complications to the power, area and speed tradeoffs of the design


In a SAR conversion the DAC doesn't move by full scale — the MSB trial is the largest single step, and it is exactly half of full scale. Subsequent trials step by \(V_{FS}/4\), \(V_{FS}/8\), … So the MSB transition (\(\color{red}0 \to V_{FS}/2\)) is the worst case, and if it settles in the allotted per-bit time, every later trial does too.

The accuracy criterion

The settling error must stay below half an LSB, where \(\text{LSB} = V_{FS}/2^{n}\):

\[ \frac{V_{FS}}{2} - V_{DAC}(t_{settle}) \;\le\; \frac{1}{2}\cdot\frac{V_{FS}}{2^{n}} = \frac{V_{FS}}{2^{\,n+1}} \]

Rearranged \[ V_{DAC}(t_{settle}) \ge V_{FS}\left(\frac{1}{2}-\frac{1}{2^{n+1}}\right) \]

Solving for the time \[ \frac{V_{FS}}{2}e^{-t_{settle}/\tau} \le \frac{V_{FS}}{2^{\,n+1}} \;\Longrightarrow\; e^{-t_{settle}/\tau} \le 2^{-n} \]

\[ \boxed{\;t_{settle} \ge n\,\tau\ln 2 \approx 0.693\,n\,\tau\;} \]

\(n\) 8 10 12 14 16
\(t_{settle}/\tau\) 5.5 6.9 8.3 9.7 11.1

CDAC Energy calculation

Rabuske, Taimur & Fernandes, Jorge. (2016). "Appendix: Voltage and Energy in CR ADCs", Charge-Sharing SAR ADCs for Low-Voltage Low-Power Applications. 10.1007/978-3-319-39624-8.

\[ E_{Vref} = \int P(t)dt = \int V_{ref} I(t) dt = V_{ref}\int I(t)dt = V_{ref}\cdot \Delta Q \]

image-20240922093524720

Given \(V_{c,0}=\frac{1}{2}V_{ref}-V_{in}\) and \(V_{c,1}=\frac{3}{4}V_{ref}-V_{in}\) \[\begin{align} Q_{b0,0} &= \left(V_{ref} - V_{c,0} \right)\cdot 2C = \left(\frac{1}{2}V_{ref}+V_{in} \right)\cdot 2C \\ Q_{b1,0} &= (0 - V_{c,0})\cdot C = \left(-\frac{1}{2}V_{ref}+V_{in} \right)\cdot C \\ Q_{b0,1} &= \left(V_{ref} - V_{c,1} \right)\cdot 2C = \left(\frac{1}{4}V_{ref}+V_{in} \right)\cdot 2C \\ Q_{b1,1} &= \left(V_{ref} - V_{c,1} \right)\cdot C = \left(\frac{1}{4}V_{ref}+V_{in} \right)\cdot C \end{align}\]

Therefore \[ E_{Vref} = V_{ref}\cdot (Q_{b0,1}+Q_{b1,1} - Q_{b0,0}-Q_{b1,0}) = \frac{1}{4}C V_{ref}^2 \]


CDAC total energy change \[\begin{align} \Delta E_{tot} &= \frac{1}{2}\cdot 2C \cdot (U_{2c,1}^2 - U_{2c,0}^2) + \frac{1}{2}\cdot C \cdot (U_{c,1}^2 - U_{c,0}^2) + \frac{1}{2}\cdot C \cdot (U_{c1,1}^2 - U_{c1,0}^2) \\ &= \left(-\frac{3}{16}V_{ref}^2 - \frac{1}{2}V_{ref}V_{in} - \frac{3}{32}V_{ref}^2+\frac{3}{4}V_{ref}V_{vin} + \frac{5}{32}V_{ref}^2-\frac{1}{4}V_{ref}V_{in}\right)C \\ &= -\frac{1}{8}CV_{ref}^2 \end{align}\]

alternative method

CapEnergy.drawio \[ \Delta E_{tot} = \frac{1}{2}\cdot\frac{3}{4}C\cdot V_{ref}^2 - \frac{1}{2}\cdot C\cdot V_{ref}^2 = -\frac{1}{8}CV_{ref}^2 \]

The total energy decreases by \(-\frac{1}{8}CV_{ref}^2\), though \(V_{ref}\) provides \(\frac{1}{4}C V_{ref}^2\)


The charge redistribution change the CDAC energy

cap_redis_energy.drawio

\[ E_{c,0} = \frac{1}{2}CV^2 \] After charge redistribution \[ E_{c,1} = \frac{1}{2}\cdot 2C\cdot \left(\frac{1}{2}V\right)^2 = \frac{1}{4}CV^2 \]

That make sense, charge redistribution consume energy

Binary-Weighted (BW) DAC

image-20241215094852761

During \(\Phi_1\), all capacitor are shorted, the net charge at \(V_x\) is 0

During \(\Phi_2\), the charge at bottom plate of CDAC \[ Q_{DAC,btm} = \sum_{i=0}^{N-1}(b_i\cdot V_R - V_x)\cdot 2^{i}C_u = C_uV_R\sum_{i=0}^{N-1}b_i2^i - (2^N-1)C_uV_x \] the charge at the internal plate of integrator \[ Q_{intg} = V_x C_p + (V_x - V_o)2^NC_u \] and we know \(-V_x A = V_o\) and \(Q_{DAC,btm} = Q_{intg}\) \[ C_uV_R\sum_{i=0}^{N-1}b_i2^i - (2^N-1)C_uV_x = V_x C_p + (V_x - V_o)2^NC_u \] i.e. \[ C_uV_R\sum_{i=0}^{N-1}b_i2^i = (2^N-1)C_uV_x + V_x C_p + (V_x - V_o)2^NC_u \] therefore \[ -V_o = \frac{2^N C_u}{\frac{(2^{N+1}-1)C_u+C_p}{A}+2^NC_u}\sum_{i=0}^{N-1}b_i\left(2^i\frac{V_R}{2^N}\right)\approx \sum_{i=0}^{N-1}b_i\left(2^i\frac{V_R}{2^N}\right) \]


Midscale (MSB Transition) often is the largest DNL error

image-20241215090447383

\(C_4\) and \(C_1+C_2+C_3\) are independent (can't cancel out) and their variance is two largest (\(16\sigma_u^2\), \(15\sigma_u^2\), ), the total standard deviation is \(\sqrt{16\sigma_u^2+15\sigma_u^2}=\sqrt{31}\sigma_u\)

CDAC with Custom MoM

P. J. A. Harpe et al., "A 26 μ W 8 bit 10 MS/s Asynchronous SAR ADC for Low Energy Radios," in IEEE Journal of Solid-State Circuits, vol. 46, no. 7, pp. 1585-1595, July 2011 [https://sci-hub.ru/10.1109/JSSC.2011.2143870]

P. Harpe, "A Compact 10-b SAR ADC With Unit-Length Capacitors and a Passive FIR Filter," in IEEE Journal of Solid-State Circuits, vol. 54, no. 3, pp. 636-645, March 2019 [https://sci-hub.ru/10.1109/JSSC.2018.2878830]

image-20261001234819072

CR Switching Schemes

Hariprasath, V., Jon Guerber, Seunghoon Lee and Un-Ku Moon. “Merged capacitor switching based SAR ADC with highest switching energy-efficiency.” Electronics Letters 46 (2010): 620-621. [https://sci-hub.ru/10.1049/EL.2010.0706]

Y. Zhu et al., "A 10-bit 100-MS/s Reference-Free SAR ADC in 90 nm CMOS," in IEEE Journal of Solid-State Circuits, vol. 45, no. 6, pp. 1111-1121, June 2010 [https://sci-hub.ru/10.1109/JSSC.2010.2048498]

C. -C. Liu, S. -J. Chang, G. -Y. Huang and Y. -Z. Lin, "A 10-bit 50-MS/s SAR ADC With a Monotonic Capacitor Switching Procedure," in IEEE Journal of Solid-State Circuits, vol. 45, no. 4, pp. 731-740, April 2010 [https://sci-hub.ru/10.1109/JSSC.2010.2042254]

Rabuske, Taimur & Fernandes, Jorge. (2017). "Review of SAR ADC Switching Schemes" Charge-Sharing SAR ADCs for Low-Voltage Low-Power Applications. 10.1007/978-3-319-39624-8. [https://sci-hub.ru/10.1007/978-3-319-39624-8_3]

Ramkaj, A.T.; Pelgrom, M.J.M.; Steyaert, M.S.J.; Tavernier, F. Multi-Gigahertz Nyquist Analog-to-Digital Converters: Architecture and Circuit Innovations in Deep-Scaled CMOS and FinFET Technologies; Springer International Publishing: Berlin/Heidelberg, Germany, 2023.

Charge Redistribution (CR) Switching Schemes:

  • Conventional CR switching scheme: No CM variation

  • Monotonic switching scheme: Single-ended operation with CM varies 50%VFS

  • VCM-based switching scheme, a.k.a merged capacitor switching (MCS): No CM variation

Conventional (trial-and-keep) switches the trial capacitor in first, then compares. If the result says the trial overshot, it switches that capacitor back out and inserts the next one. Bits are stored as which capacitors stay connected to \(V_{REF}\)

Monotonic (compare-then-move) compares first, with no trial applied. Then it discharges the next capacitor (from \(V_{REF}\) to ground) on whichever side is higher. That move is never undone; it simply sets up the next comparison

image-20261005083632008

image-20261005172616703

Conventional Switching

bottom-plate sampling

image-20261005213126847

The comparator common mode is \(V_{CM} + V_{REF}/2 − V_{in,cm}\)

Node voltages after the MSB switching

Each array has \(8C\) in total (\(4C + 2C + C + C\), counting the dummy unit cap). During sampling, the top plates sit at \(V_{CM}\) and the bottom plates sit at the input.

For the top (P) array, the charge is \(8C(V_{CM} − V_{INP})\). Then \(4C\) is switched to \(V_{REF}\) and \(4C\) to ground. Charge conservation gives:

\[ 8C\,V_x - 4C\,V_{REF} = 8C\,(V_{CM} - V_{INP}) \;\Rightarrow\; V_x = V_{CM} - V_{INP} + \tfrac{V_{REF}}{2} \]

For the bottom (N) array, the \(4C\) goes to ground and the remaining \(4C (2C + C + C)\) goes to \(V_{REF}\). So you get the same form:

\[ V_y = V_{CM} - V_{INN} + \tfrac{V_{REF}}{2} \]

Common mode \[ \frac{V_x + V_y}{2} = V_{CM} + \frac{V_{REF}}{2} - \frac{V_{INP} + V_{INN}}{2} = V_{CM} + \frac{V_{REF}}{2} - V_{in,cm} \]

You can't drop the input common-mode term. The figure assumes the top-plate sampling voltage equals the input common mode (\(V_{CM} = V_{in,cm} = 0.5\) V). Those two cancel, and the comparator common mode is simply \(V_{REF}/2 = 0.5\) V. That is why both waveforms start at 0.5 V during sampling and converge back to 0.5 V.

Check against the plot

With \(V_{INP} = 0.9\) V, \(V_{INN} = 0.1\) V, \(V_{CM} = 0.5\) V, and \(V_{REF} = 1\) V:

  • \(V_x = 0.5 − 0.9 + 0.5 = 0.1\) V (blue trace)
  • \(V_y = 0.5 − 0.1 + 0.5 = 0.9\) V (orange trace)

image-20261005193428201

Generalizing equation with trial-and-keep \[\begin{align} V_x^{(k)} &= V_{CM} - V_{INP} + \textcolor{red}{\sum_{i=1}^{k} b_i\,\Delta V_i} \\ V_y^{(k)} &= V_{CM} - V_{INN} + V_{REF} - \textcolor{red}{\sum_{i=1}^{k} b_i\,\Delta V_i} \qquad \qquad \Delta V_i = \frac{V_{REF}}{2^i} \end{align}\]

where \[ b_k = \begin{cases} 1 & \text{if } V_y^{(k)} \ge V_x^{(k)} \color{red}\text{ with trial } b_k = 1 \\ 0 & \text{otherwise (\textcolor{red}{trial reverted})} \end{cases} \]

For simplicity, the final term \(\color{blue}(b[0]-1)\cdot 1\text{LSB}\) of the general equation \(D_{out} = s(M) + \sum_{i=1}^{M-1}(2\cdot b[i] - 1)\times s(i) + (b[0] -1)\cdot \text{1LSB}\) is approximated as \(\color{red}(2b[0] -1)\cdot\frac{\text{1LSB}}{2}\)

During bit cycling, \(V_y - V_x \to 0\), i.e. \[ 2 \textcolor{red}{\sum b_i \Delta V_i } - \textcolor{blue}{V_{REF}}\qquad \Longrightarrow \qquad V_{INP} - V_{INN} \] After N = 8 bits: \[ V_{INP} - V_{INN} = V_{REF}\left(2\sum_{i=1}^{8} b_i\,2^{-i} - 1\right) + \varepsilon, \qquad 0 \le \varepsilon < \frac{2V_{REF}}{2^8} = \mathrm{1 LSB} \] For the complete 8-bit conversion shown in Fig. 3.3 \[ 2\times \left(\frac{1}{2}\times1+\frac{1}{4}\times1+\frac{1}{8}\times1+\frac{1}{16}\times0+\frac{1}{32}\times0+\frac{1}{64}\times1+\frac{1}{128}\times1+\frac{1}{256}\times0\right)-1 = \frac{204}{256} \] i.e. \[ \left|\frac{204}{256} - 0.8\right| \qquad \lt \qquad \mathrm{1LSB} \]

Monotonic Switching

top-plate sampling; use only discharging cycles

image-20261005212330354

image-20261005224007714

\[\begin{align} V_x^{(k)} &= V_{INP} - \textcolor{red}{\sum_{i=1}^{k} b_i\,\Delta V_i} \\ V_y^{(k)} &= V_{INN} - \textcolor{red}{\sum_{i=1}^{k} (1-b_i)\,\Delta V_i} \qquad \qquad \Delta V_i = \frac{V_{REF}}{2^i} \end{align}\]

where \[ b_k = \begin{cases} 1 & \text{if } V_x^{(k-1)} \ge V_y^{(k-1)} \\ 0 & \text{otherwise } \end{cases} \] During bit cycling, \(V_y - V_x \to 0\), i.e. \[ \textcolor{red}{\sum (2b_i-1) \Delta V_i } \qquad \Longrightarrow \qquad V_{INP} - V_{INN} \] For the monotonic result

\[ V_{REF}\sum (2b_k - 1)\,2^{-k} = 2V_{REF}\sum b_k 2^{-k}-V_{REF} + \color{red}\tfrac{V_{REF}}{2^N} \]

so the relationship between Conventional and monotonic result \[ V_\text{monotonic} = V_\text{Conventional} + \color{red}\frac{\mathrm{1 LSB}}{2} \] For the complete 8-bit conversion of monotonic scheme shown in Fig. 3.4 \[ \frac{1}{2}+\frac{1}{4}+\frac{1}{8}-\frac{1}{16}-\frac{1}{32}+\frac{1}{64}+\frac{1}{128}-\frac{1}{256} = \frac{204}{256} + \color{red}\frac{1}{256} \]

image-20261005224040223

3-bit conversion of monotonic switching scheme as Fig.3.4 drawn

monotonic-sw.drawio

VCM-Based Capacitor Switching

top-plate sampling; No CM variation

image-20261006163300602

\(V_{CM} \to V_{REF} \text{ or } 0\)

\[\begin{align} V_x^{(k)} &= V_{INP} - \textcolor{red}{\sum_{i=1}^{k} b_i\,\Delta V_{\downarrow,i}} + \textcolor{red}{\sum_{i=1}^{k} (1-b_i)\,\Delta V_{\uparrow,i}} \\ V_y^{(k)} &= V_{INN} - \textcolor{red}{\sum_{i=1}^{k} (1-b_i)\,\Delta V_{\downarrow,i}}+\textcolor{red}{\sum_{i=1}^{k} b_i\,\Delta V_{\uparrow,i}} \qquad \qquad \Delta V_{\downarrow,i} = \frac{V_{CM}}{2^i}\quad \Delta V_{\uparrow,i} = \frac{V_{REF}-V_{CM}}{2^i} \end{align}\]

where \[ b_k = \begin{cases} 1 & \text{if } V_x^{(k-1)} \ge V_y^{(k-1)} \\ 0 & \text{otherwise } \end{cases} \] During bit cycling, \(V_y - V_x \to 0\), i.e. \[ \textcolor{red}{\sum (2b_i-1) \Delta V_{\downarrow,i} + \sum (2b_i-1) \Delta V_{\uparrow,i}} \qquad \Longrightarrow \qquad V_{INP} - V_{INN} \] When \(V_{CM}\) is precisely half of \(V_{REF}\) \[ \Delta V_{\downarrow,i} = \Delta V_{\uparrow,i} = \frac{V_{REF}}{2^{i+1}} \] then \[ V_{INP} - V_{INN} \approx \sum (2b_i-1) \frac{V_{REF}}{2^{i}} \]

image-20261006094655269

CDAC with constant common-mode voltage

cdac_vcm_retain.drawio

image-20250924221209720

Synchronous SAR ADC

It also divides a full conversion into several comparison stages in a way similar to the pipeline ADC, except the algorithm is executed sequentially rather than in parallel as in the pipeline case.

However, the sequential operation of the SA algorithm has traditionally been a limitation in achieving high-speed operation

image-20241021214958488

  • a clock running at least \((N + 1) \cdot F_s\) is required for an \(N\)-bit converter with conversion rate of \(F_s\)
  • every clock cycle has to tolerate the worst case comparison time
  • every clock cycle requires margin for the clock jitter

The power and speed limitations of a synchronous SA design comes largely from the high-speed internal clock

Split Arrary CDAC

Split capacitor, double-array cap

attenuation capacitance \(C_a\)

image-20240917192957721

image-20240918213856504

splitArray.drawio

\[ \Delta V_{dac} = \frac{1}{2}b_3+\frac{1}{4}b_2+\frac{1}{4}\left(\frac{1}{2}b_1+\frac{1}{4}b_0 \right) = \frac{1}{2}b_3+\frac{1}{4}b_2 + \frac{1}{8}b_1+\frac{1}{16}b_0 \]

Asynchronous SAR ADC

Mike Shuo-Wei Chen and R. W. Brodersen, "A 6-bit 600-MS/s 5.3-mW Asynchronous ADC in 0.13-μm CMOS," in IEEE Journal of Solid-State Circuits, vol. 41, no. 12, pp. 2669-2680, Dec. 2006 [pdf, slides]

—. "Power Efficient System and A/D Converter Design for Ultra-Wideband Radio" [http://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-71.pdf]

—. "Asynchronous SAR ADC: Past, Present and Beyond"

H. Karrari, P. Andreani and S. Tan, "Asynchronous vs Synchronous SAR ADCs – Performance Beyond Nominal Speed," 2024 19th Conference on Ph.D Research in Microelectronics and Electronics (PRIME), Larnaca, Cyprus, 2024, pp. 1-4, doi: 10.1109/PRIME61930.2024.10559690.

The comparator itself trigger the next bit-conversion cycle as soon as the present bit decision has been taken

image-20241021214922564

image-20250102225355547

The maximum resolving time reduction between synchronous and asynchronous case is two fold

comparator metastable state

when the input is sufficiently small. The time needed for the comparator outputs to fully resolve may take arbitrarily long

In this case, the ready signal generator should still set the flag and the decision result is simply taken from the previous value stored in the SR latch

image-20250701231051158

both outputs (\(Q_p\) and \(Q_n\)) will drop together, NAND is inverter actually

The transition point of this NAND gate is skewed to eliminate metastability issues arising when the input differential voltage level is small (comparator)

Redundancy with Radix

Kuttner, Franz. "A 1.2V 10b 20MSample/s non-binary successive approximation ADC in 0.13/spl mu/m CMOS." 2002 IEEE International Solid-State Circuits Conference. Digest of Technical Papers (Cat. No.02CH37315) 1 (2002): 176-177 vol.1. [https://sci-hub.jp/10.1109/ISSCC.2002.992993]

M. Hesener, T. Eicher, A. Hanneberg, D. Herbison, F. Kuttner and H. Wenske, "A 14b 40MS/s Redundant SAR ADC with 480MHz Clock in 0.13pm CMOS," 2007 IEEE International Solid-State Circuits Conference. Digest of Technical Papers, San Francisco, CA, USA, 2007, pp. 248-600 [https://sci-hub.ru/10.1109/ISSCC.2007.373387]

Tomohiko OGAWA et al., SAR ADC Algorithm with Redundancy and Digital Error Correction, IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2010, Volume E93.A, Issue 2, Pages 415-423 [https://sci-hub.ru/10.1587/TRANSFUN.E93.A.415]

C. -C. Liu et al., "A 10b 100MS/s 1.13mW SAR ADC with binary-scaled error compensation," 2010 IEEE International Solid-State Circuits Conference - (ISSCC), San Francisco, CA, USA, 2010, pp. 386-387 [https://sci-hub.ru/10.1109/ISSCC.2010.5433970]

—, “Design of High-Speed Energy-Efficient Successive-Approximation Analog-to-Digital Converters,” Ph.D. dissertation, Dept. Elect. Eng., National Cheng Kung University, Tainan, Taiwan, R.O.C., 2010.

—, "A 10 bit 320 MS/s Low-Cost SAR ADC for IEEE 802.11ac Applications in 20 nm CMOS," in IEEE Journal of Solid-State Circuits, vol. 50, no. 11, pp. 2645-2654, Nov. 2015 [https://sci-hub.ru/10.1109/JSSC.2015.2466475]

W. Liu, P. Huang and Y. Chiu, "A 12-bit, 45-MS/s, 3-mW Redundant Successive-Approximation-Register Analog-to-Digital Converter With Digital Calibration," in IEEE Journal of Solid-State Circuits, vol. 46, no. 11, pp. 2661-2672, Nov. 2011 [https://sci-hub.ru/10.1109/JSSC.2011.2163556]

Albert H. Chang, Hae-Seung Lee, and Duane S. Boning. 2011. Redundancy in SAR ADCs. In Proceedings of the 21st edition of the great lakes symposium on Great lakes symposium on VLSI (GLSVLSI '11). Association for Computing Machinery, New York, NY, USA, 283–288. [https://dl.acm.org/doi/10.1145/1973009.1973066]

—, “Low-power high-performance SAR ADC with redundancy and digital background calibration,” Ph.D. dissertation, Dept. Elect. Eng. Comput. Sci., Massachusetts Institute of Technology, Cambridge, MA, USA, 2013. [Online]. [https://dspace.mit.edu/bitstream/handle/1721.1/82177/861702792-MIT.pdf]


B. Murmann, “On the use of redundancy in successive approximation A/D converters,” International Conference on Sampling Theory and Applications (SampTA), Bremen, Germany, July 2013. [https://www.eurasip.org/Proceedings/Ext/SampTA2013/papers/p556-murmann.pdf]

Krämer, M. et al. (2015) High-resolution SAR A/D converters with loop-embedded input buffer. dissertation. Available at: [http://purl.stanford.edu/fc450zc8031].

sarthak, "Visualising redundancy in a 1.5 bit pipeline ADC“ [https://electronics.stackexchange.com/a/523489/233816]

image-20261002225950216

conventional binary SAR ADC

  • After each DAC switching, the effective input range is reduced by a factor of 2

Kuttner ISSCC'02: non-binary SAR ADC

  • the input range is reduced by a factor smaller than 2 per each bit cycle

Liu ISSCC'10: binary-scaled CDAC

image-20241221140840026

Max tolerance of comparator offset is \(\pm V_{FS}/4\)

  1. \(b_j\) error is \(\pm 1\)
  2. \(b_{j+1}\) error is \(\pm 2\) , wherein \(b_{j+1}\): \(0\to 2\) or \(1\to -1\)

i.e. complementary analog and digital errors cancel each other, \(V_o +\Delta V_{o}\) should be in over-/under-range comparators (\(-V_{FS}/2 \sim 3V_{FS}/2\))

\[\begin{align} V_{in,j} &= (b_j + \Delta b_j)\cdot \frac{V_{FS}}{2} + \frac{V_{out,j}+\Delta V_{out,j}}{2} \\ V_{in,{j+1}} &= (b_{j+1} + \Delta b_{j+1})\cdot \frac{V_{FS}}{2} + \frac{V_{out,j+1}+\Delta V_{out,j+1}}{2} \end{align}\]

with \(V_{in,j+1} = V_{out,j}+\Delta V_{out,j}\)

\[\begin{align} V_{in,j} &= (b_j + \Delta b_j)\cdot \frac{V_{FS}}{2} + \frac{1}{2} \left\{ (b_{j+1} + \Delta b_{j+1})\cdot \frac{V_{FS}}{2} + \frac{V_{out,j+1}+\Delta V_{out,j+1}}{2} \right\} \\ &= (b_j + \Delta b_j)\cdot \frac{V_{FS}}{2} + \frac{1}{2}(b_{j+1} + \Delta b_{j+1})\cdot \frac{V_{FS}}{2}+ \frac{1}{2}\frac{V_{in,j+2}}{2} \\ &=\tilde{b_j} \cdot \frac{V_{FS}}{2}+ \tilde{b_{j+1}}\cdot \frac{V_{FS}}{4}+ \frac{1}{4}V_{in,j+2} \end{align}\]

where \(b_j\) is 1-bit residue without redundancy and \(\tilde{b_j}\) is redundant bits

image-20241222115022613


Uniform Sub-Radix-2 SAR ADC

image-20241222130625469

Minimal analog complexity, no additional decoding effort

Search Algorithm

final digital output of \(N\)-bit \(M\)-step ADC \[ \boxed{\color{blue}D_{out} = s(M) + \sum_{i=1}^{M-1}(2\cdot b[i] - 1)\times s(i) + (b[0] -1)\cdot \text{1LSB}} \]

where \(b[M-1]\dots b[0]\) and \(s(M)\dots s(1)\)

i M M-1 M-2 ... 2 1 0
b[i] b[M-1] b[M-2] ... b[2] b[1] b[0]
s[i] s(M) s(M-1) s(M-2) ... s(2) s(1)

image-20250909211030234


\(N\)-bit binary weighted algorithm

with \(N=M\) and \(s(i)=2^{i-1}\), where \(i\in \{N, N-1,...,2,1 \}\)

\[\begin{align} D_{out} &= s(M) + \sum_{i=1}^{M-1}(2\cdot b[i] - 1)\times s(i) + (b[0] -1) \\ &= 2^{N-1} + \sum_{i=1}^{N-1}2^i\cdot b[i] - \sum_{i=0}^{N-2}2^{i} + (b[0] -1) \\ &= \boxed{\color{blue}\sum_{i=0}^{N-1} b[i] \cdot 2^i} \end{align}\]


Differential ADC: \(s(M) = 0\), i.e. \(w_{M-1} = 0\) (using \(w_i = s(i+1)\))

\(i\) \(M-1\) \(M-2\) \(\cdots\) \(2\) \(1\) \(0\)
\(b_i\) \(b_{M-1}\) \(b_{M-2}\) \(\cdots\) \(b_2\) \(b_1\) \(b_0\)
\(w_i\) 0 \(w_{M-2}\) \(\cdots\) \(w_2\) \(w_1\) \(w_0\)
\(W_i\) \(2w_{M-2}\) \(2w_{M-3}\) \(\cdots\) \(2w_1\) \(2w_0\) 1 LSB

\[\begin{align} D_{out} &= \sum_{i=1}^{M-1}\left(2b_i-1\right)w_{i-1} + \left(b_0-1\right)\cdot 1\,\text{LSB} \\ &= \sum_{i=1}^{M-1}b_i\cdot 2w_{i-1} + b_0\cdot 1\,\text{LSB} - \sum_{i=1}^{M-1}w_{i-1} - 1\,\text{LSB} \\ &= \left[\sum_{i=1}^{M-1}b_i\cdot 2w_{i-1} + b_0\cdot 1\,\text{LSB}\right] - \frac{1}{2}\left[\sum_{i=1}^{M-1}2w_{i-1} + 1\,\text{LSB} + 1\,\text{LSB}\right] \\ &= \boxed{\color{blue}\sum_{i=0}^{M-1}b_i\cdot W_i - \frac{1}{2}\left[\sum_{i=0}^{M-1}W_i + W_0\right]} \end{align}\]

The ADC equivalent weight \(W_i\)

\[ \begin{cases} W_0 = 1\,\text{LSB} \\ W_i = 2w_{i-1}, & \text{for } i \in [1, M-1] \end{cases} \]

Note: when \(\sum_{i=0}^{M-1} W_i = (2^N - 1)\) LSB, the constant term simplifies to \(\frac{1}{2}\left[\sum_{i=0}^{M-1} W_i + W_0\right] = 2^{N-1}\) LSB, so

\[ D_{out} = \sum_{i=0}^{M-1} b_i\cdot W_i - 2^{N-1} \]

which is a signed output in \(\left[-2^{N-1},\ 2^{N-1}-1\right]\) LSB.


Non-Binary Search

image-20261003150647820

\[\begin{align} D_\text{out} &= 8 + (2B_1-1)\times3.5+ (2B_2-1)\times2+ (2B_3-1)\times1+ (2B_4-1)\times0.5+ (B_5-1)\times1 \\ &= 7B_1+4B_2+2B_3+1B_4+1B_5 \end{align}\]

Kuttner_nonbin.drawio

image-20261006081136508


Binary with Error Compensation a.k.a Binary-Scaled Error Compensation

image-20261006081543815

image-20261006082251332

this is the monotonic scheme

Each comparison is followed by switching one capacitor (\(V_{REF} \to \text{ground}\)) on whichever side is higher. That moves the differential DAC voltage by \(\pm w\,u\), where \(w\) is that capacitor's size in unit caps (\(u\) below). The order is:

  • B1 → C1 (256), B2 → C2 (128), B3 → C3 (64)
  • B3C → C3C (64)
  • B4 → C4 (32), B5 → C5 (16), B6 → C6 (8)
  • B6C → C6C (8)
  • B7 → C7 (4), B8 → C8 (2), B9 → C9 (1)
  • B9C → C9C (1)
  • B10 → nothing (last decision)

That is 13 decisions, giving the "13b redundant code."

Let one unit cap move the differential by \(u = V_{REF}\cdot C_u/C_{total}\), and let \(w_k = 2^{9-k}\) be the size of \(C_k\). After the last move (C9C) the residue is within \(\pm u\); B10 resolves its sign, so the reconstruction error is within \(\pm u/2\): \[ \frac{V_{in}}{u} \approx \underbrace{\sum_{k=1}^{9} (2B_k-1)\,w_k}_{\text{main caps}} \;+\; \underbrace{(2B_{3C}-1)\,64 + (2B_{6C}-1)\,8 + (2B_{9C}-1)\,1}_{\text{compensation caps}} \;+\; (2B_{10}-1)\tfrac12 \]

The 10-bit input range is \(\color{blue}\pm512u\): \(C_1\sim C_9\) span \(\pm511u\) and B10 resolves the last \(\pm u\). The compensation caps add \(\pm73u\) of over-range (raw code \(-73\dots1096\)), which the DEC clips. Since \(C_{total}\approx584\,C_u\), the full scale is \(\pm\tfrac{512}{584}V_{REF}\approx\pm0.88\,V_{REF}\) (ignoring parasitics)

So the output code, with intentional offset \(511.5\) \[ D_{out} \approx \frac{V_{in}}{u} + \color{red}\left(511+\tfrac12\right) \] which maps the input onto \(0 \dots 1023\)

after cancelling and rearranging

\[\begin{align} D_{out} &= \underbrace{\sum_{k=1}^{9} B_k\cdot2w_k}_{\text{main caps}} \;+\; \underbrace{(2B_{3C}-1)\,64 + (2B_{6C}-1)\,8 + (2B_{9C}-1)\,1}_{\text{compensation caps}} \;+\; B_{10} \\ &= \underbrace{\sum_{k=1}^{9} B_k\cdot2w_k}_{\text{main caps}} \;+\; \textcolor{red}{\underbrace{(B_{3C}-0.5)\,128 + (B_{6C}-0.5)\,16 + (B_{9C}-0.5)\,2}_{\text{compensation caps}}} \;+\; B_{10} \end{align}\]

The relationship between \(D_{out}\) and \(V_{in}\)

\[ \boxed{V_{in} \approx (D_{out} - 511.5)\,u, \qquad u = 1\text{ LSB} = V_{REF}\,\frac{C_u}{C_{total}}} \]

Exactly, with ideal thresholds at integer multiples of u:

\[ \boxed{D_{out} - 512 \;\le\; \frac{V_{in}}{u} \;<\; D_{out} - 511 \quad\Longleftrightarrow\quad D_{out} = \left\lfloor \frac{V_{in}}{u} \right\rfloor + 512} \]

image-20261006091141386

image-20261006091000081

Error Tolerance Window

\[ \varepsilon_t(n) = \sum_{i=1}^{n-2} s(i) - s(n-1) \]

where \(n\in [1, N]\), and \(N\)-bit SAR

etw.drawio

For the \(n\)th output bit, once a decision is made, the next decision level will either move up or down by the step size of \(s(n − 1)\)

If this decision is erroneous, then the sum of the follow-on step sizes, \(s(n − 2)\), \(s(n − 3)\), ..., \(s(1)\), must be large enough and exceed the value of the current step size to counteract this mistake

The exceeded amount is the tolerance window for that decision level

image-20250909222730303

image-20250909222310476

image-20250909231804142

image-20250909222622340

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import numpy as np
import matplotlib.pyplot as plt


def sar(xi, ss):
M = ss.size
th = ss[0]
oob = []
for i in range(M):
ocur = 1 if xi >= th else 0
oob.append(ocur)
if i + 1 < M:
th += (2 * ocur - 1) * ss[i + 1]
else:
break

binstr = ''.join([str(s) for s in oob])
decval = int(binstr, 2)
return binstr, decval


def sar_plot(ss, Npts=10000):
ss = np.asarray(ss)
ssum = np.sum(ss)
xilist = np.linspace(0, ssum + 1, Npts)
outlist = []
for i in range(Npts):
_, decval = sar(xilist[i], ss)
outlist.append(decval)
outmax = np.max(outlist)
plt.figure(figsize=(16,8))
plt.plot(xilist, outlist, '-', linewidth=4)
plt.xticks(range(0, ssum + 2))
plt.yticks(range(0, outmax + 2, 2))
plt.title('search step: {}'.format(ss), fontsize=20)
plt.xlabel('analog out', fontsize=20); plt.ylabel('digital out', fontsize=20)

plt.grid(True)

ss = [8, 4, 2, 1]
sar_plot(ss)

ss = [8, 2, 2, 2, 1]
sar_plot(ss)

plt.show()

ENOB vs. fixed radix

When the ADC is designed with a fixed radix, \(\alpha\) and the required number of conversion steps, \(M\)

the sum of all the step sizes \(s_{tot}\) \[ s_{tot} = \sum_{k=0}^{M-1} s_0 \alpha^k = s_0\frac{\alpha^M-1}{\alpha-1} \]

where \(s(i)\) is step size and \(i \in [0, 1, 2, M-1]\)

The effective number of bits, \(N\), can be calculated \[ N \leq \log 2\left(\frac{s_{tot} + s_0}{s_0}\right) = \frac{\alpha^M+\alpha-2}{\alpha-1} \]

Speed Benefit

TODO 📅

MSB with noise simualtion

image-20250924004048876

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import numpy as np
import matplotlib.pyplot as plt

def sar(vin, weight, sigmaMSB=0):
nbit = len(weight)
dacval = 0
dacout = []
for i in range(nbit+1):
if i ==0:
if vin + np.random.normal(0,sigmaMSB) > dacval:
dacout.append(1)
dacval += weight[i]
else:
dacout.append(0)
dacval -= weight[i]
elif vin >= dacval:
dacout.append(1)
if i == nbit: break
dacval += weight[i]
else:
dacout.append(0)
if i == nbit: break
dacval -= weight[i]
dacval += (dacout[-1] - 1)*weight[-1]
return dacout, dacval

W = [36, 20, 11, 6, 4, 2, 1]
step = 0.001
N = int(1*2/step) + 1
vinlist = np.linspace(-1,1, N)
wbin = [2**i for i in range(len(W)+1)]
wbin = wbin[::-1]

dacout_list = []
dacval_list = []
dacoutbin_list = []
for i in range(N):
dacout, dacval = sar(vinlist[i], W, sigmaMSB=0.1)
dacoutbin = np.sum(np.array(dacout)*np.array(wbin))
print(vinlist[i], dacval, dacout, dacoutbin)
dacout_list.append(dacout)
dacval_list.append(dacval)
dacoutbin_list.append(dacoutbin)


values, counts = np.unique(dacoutbin_list, return_counts=True)

print(values,'\n', counts)
plt.figure(figsize=(20,10))
# plt.plot(bin_edges[:-1], hist, 'o')
# plt.show()

# plt.plot(values[-200:], counts[-200:], 'o-', color='red')
plt.plot(vinlist, dacoutbin_list, 'o')
plt.xlabel('vin', fontsize=20)
plt.ylabel('dac_bin', fontsize=20)
plt.xticks(np.arange(-1,1.1,0.1))
plt.yticks(np.arange(117,140,1))
plt.title('MSB with noise $\sigma=0.1$', fontsize=20)
plt.grid(True)
plt.show()

Charge-Sharing SAR ADC

J. Craninckx and G. van der Plas, "A 65fJ/Conversion-Step 0-to-50MS/s 0-to-0.7mW 9b Charge-Sharing SAR ADC in 90nm Digital CMOS," 2007 IEEE International Solid-State Circuits Conference. Digest of Technical Papers, San Francisco, CA, USA, 2007, pp. 246-600 [https://sci-hub.jp/10.1109/ISSCC.2007.373386]

V. Giannini, P. Nuzzo, V. Chironi, A. Baschirotto, G. Van der Plas and J. Craninckx, "An 820μW 9b 40MS/s Noise-Tolerant Dynamic-SAR ADC in 90nm Digital CMOS," 2008 IEEE International Solid-State Circuits Conference - Digest of Technical Papers, San Francisco, CA, USA, 2008, pp. 238-610 [https://sci-hub.jp/10.1109/ISSCC.2008.4523145]

Rabuske, Taimur & Fernandes, Jorge. (2016). Charge-Sharing SAR ADCs for Low-Voltage Low-Power Applications. 10.1007/978-3-319-39624-8.

Charge-based reference signal

  • The trick is to analyze it in the charge domain rather than the voltage domain

image-20261005134737378

polarity switching in charge-sharing SAR capacitor arrays

charge_sharing_dac_add_subtract

Each DAC capacitor C_i has two plates, A and B, and typically six switches:

  • Two precharge switches: A to Vref and B to GND, closed during the sampling phase.
  • Two "straight" switches: A to P and B to N.
  • Two "crossed" switches: A to N and B to P

image-20261005151013735

charge_sharing_3cap.drawio

With \(C_A = C_B = C_s\) and \(\Delta V_C = V_{CP} - V_{CN}\): \[\begin{align} Q_A' &= V_A C_s + \Delta V_C \cdot C_C = V_A' C_s + (V_A' - V_B')C_C \\ Q_B' &= V_B C_s - \Delta V_C \cdot C_C = V_B' C_s - (V_A' - V_B')C_C \end{align}\] then \[ V_A' - V_B' = \frac{\textcolor{red}{C_s}\,(V_A - V_B) + \textcolor{red}{2C_C}\,\Delta V_C}{C_s + 2C_C} \qquad \frac{V_A' + V_B'}{2} = \frac{V_A + V_B}{2} \] This confirms the earlier claim: a floating capacitor \(C_C\) across \(P\) and \(N\) acts like \(2C_C\) in the single-ended picture. A straight connection has \(\Delta V_C = +V_\text{ref}\) (add), and a flipped connection has \(\Delta V_C = -V_\text{ref}\)

An ideal floating capacitor injects zero common-mode charge


Aspect Charge redistribution Charge sharing
Reference during bit cycles Connected, must settle each cycle Disconnected, only precharges during sampling
Reference current Signal-dependent Constant (≈ C_DAC·Vref per conversion)
Reference buffer demand High, especially at high fs Relaxed; a large decoupling cap often suffices
Signal at comparator Full swing Attenuated by C_s / (C_s + C_DAC + C_p)
Full-scale / gain Set by Vref Set by Vref × capacitor ratio, sensitive to parasitics
Leakage sensitivity Low Higher, since precharged caps float during conversion
Typical resolution Up to 16–18 bit Usually ≤ 10–11 bit

reference

Andrea Baschirotto, ISSCC2009 T6: SAR ADCs

Pieter Harpe, ISSCC 2016 Tutorial: "Basics of SAR ADCs Circuits & Architectures"

Yun Chiu, ISSCC2023 T3: "Fundamentals of Data Converters" [https://personal.utdallas.edu/~yxc101000/courses/7327/handout/isscc2023_tutorial.pdf]

Youngcheol Chae, Yonsei University, ISSCC 2023 F5.2 Design Techniques for Energy Efficient Analog-to-Digital Converters

Zhang, Milin, Zhihua Wang, Jan van der Spiegel and Franco Maloberti. "Advanced Tutorial on Analog Circuit Design." (2023)

Harpe, P. J. A. (2022). Low-Power SAR ADCs: Basic Techniques and Trends. IEEE Open Journal of the SolidState Circuits Society, 2, 73-81. Article 9908164 [https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9908164]


L. Jie et al., "An Overview of Noise-Shaping SAR ADC: From Fundamentals to the Frontier," in IEEE Open Journal of the Solid-State Circuits Society, vol. 1, pp. 149-161, 2021 [pdf]


Andrew Yu. Understanding Metastability in SAR ADCs: Part II: Asynchronous [https://github.com/phonon/sar-adc-metastability] [pdf]

Figures of Merit (FoMs)

B. Murmann, "ADC Performance Survey 1997-2022," [Online]. Available: [https://github.com/bmurmann/ADC-survey]

Carsten Wulff, "Advanced Integrated Circuits 2025" [http://analogicus.com/aic2025/2025/02/20/Lecture-6-Oversampling-and-Sigma-Delta-ADCs.html#high-resolution-fom]

image-20260503082957057

image-20261001232555743

Walden FoM unit: J/conv-step [joules per conversion]

"Conversion-step" in the Walden FoM doesn't mean a physical operation like a comparator decision or a clock cycle. It means one quantization level, i.e., one effective LSB step out of the 2ENOB levels the converter can distinguish

image-20261001233710421

image-20260503113513018

image-20260503092050266

For Scherier FoM (DR, SNDR)

image-20260503110815315

image-20260503111053594

image-20260503120427004

image-20260920225732153

Wang, ISSCC 24 Pfaff, ISSCC 24 Li, ISSCC 24 Nguyen, ISSCC 24
Sampling rate (Fs) Gs/s 106 112 105 200
SNDR, hf (dB) 30 25.5 39.2 36.1
RX Power 288 448 698 400
FOM,hf (dB) 82.6 76.5 88.0 90.1

Offset & Gain Error

Kwantae Kim, Integrated Analog Systems D - Lecture 10 (ADC) [https://youtu.be/IEdbLNJb9wQ]

image-20260426180449791

image-20260426173822772

image-20260426173906024



image-20250825151821455

image-20250825152414651

Offset Calibration

measured in digital domain: long-term averages of ADC out

If the input has a nonzero mean, the output average also contains the signal’s DC component, so it does not identify offset alone

image-20260925232441699

corrected in analog domain: ADC dynamic range reduction due to the offset, which holds if we force the offset of each channel to zero rather than make the offsets of different channels equal

image-20260925234147852

image-20260927110355108


image-20260926002408716

The offset-correction DAC here is a switched-capacitor DAC. Its digital code selects which capacitor bottom plates switch between ground and \(V_{\mathrm{REF}}\)

The op-amp holds the summing node approximately at virtual ground. The injected charge is balanced through feedback capacitor \(C_2\), causing \(V_{\mathrm{res}}\) to change.

For an ideal op-amp, the correction-induced output step is

\[ \boxed{\Delta V_{\mathrm{res}} =-\frac{\sum_k C_{D,k}\,\Delta V_{b,k}}{C_2}} \]

where \(C_{D,k}\) are the correction-DAC capacitors and \(\Delta V_{b,k}\) are their bottom-plate voltage changes.

Thus, the DAC supplies a digitally controlled charge correction, which the MDAC converts into an output-voltage correction.


image-20260926003059811

The correction DAC's bottom plates remain fixed during these trials, but its capacitance still loads \(X\)

neglecting other parasitic capacitances:

\[ G_{Q\rightarrow V,\mathrm{ideal}}=\frac{1}{C_{\mathrm{SAR}}}, \qquad \boxed{G_{Q\rightarrow V,\mathrm{loaded}} =\frac{1}{C_{\mathrm{SAR}}+C_{\mathrm{CALIB}}}} \]

During a SAR bit trial, switching capacitor \(C_k\) by \(\Delta V_{b,k}\) therefore produces

\[ \Delta V_X=\frac{C_k\,\Delta V_{b,k}} {C_{\mathrm{SAR}}+C_{\mathrm{CALIB}}} \]

Every SAR DAC voltage step is reduced by

\[ \boxed{\alpha=\frac{C_{\mathrm{SAR}}} {C_{\mathrm{SAR}}+C_{\mathrm{CALIB}}}<1} \]

the SAR DAC gain decreases, whereas the ADC’s output-code-per-volt gain increases. In the shown circuit, the sampling switch directly sets \(V_X=V_{\mathrm{in}}\), so the sampled input is not attenuated. Smaller DAC steps mean more code is needed to balance the same input: \[ \boxed{\frac{G_{\mathrm{ADC}}}{G_{\mathrm{ADC,ideal}}} =\frac{1}{\alpha} =1+\frac{C_{\mathrm{CALIB}}}{C_{\mathrm{SAR}}}} \]

sar-dac-step-and-adc-gain

Phase Calibration

image-20260927112522831

image-20260927112535725

Testing

Kent H. Lundberg "Analog-to-Digital Converter Testing" [https://www.mit.edu/~klund/A2Dtesting.pdf]

Tai-Haur Kuo, Da-Huei Lee "Analog IC Design: ADC Measurement" [http://msic.ee.ncku.edu.tw/course/aic/202309/ch13%20(20230111).pdf] [http://msic.ee.ncku.edu.tw/course/aic/aic.html]

ESE 6680: Mixed Signal Design and Modeling "Lec 20: April 10, 2023 Data Converter Testing" [https://www.seas.upenn.edu/~ese6680/spring2023/handouts/lec20.pdf]

Degang Chen. "Distortion Analysis" [https://class.ece.iastate.edu/djchen/ee435/2017/Lecture25.pdf]

TODO 📅

ADCToolbox

L. Jie and Z. Zhang. ADCToolbox [https://github.com/Arcadia-1/ADCToolbox]

SNR vs NSD — full-scale noise spread over the Nyquist band

image-20260530172252150

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## https://github.com/Arcadia-1/ADCToolbox/blob/main/python/src/adctoolbox/examples/02_spectrum/exp_s01_analyze_spectrum_simplest.py

import numpy as np
import matplotlib.pyplot as plt
from adctoolbox import analyze_spectrum, amplitudes_to_snr, snr_to_nsd

N_fft = 2**13
Fs = 100e6
Fin = 123/N_fft * Fs # Coherent frequency
t = np.arange(N_fft) / Fs
A = 0.5
noise_rms = 10e-6
signal = 0.5 * np.sin(2*np.pi*Fin*t) + np.random.randn(N_fft) * noise_rms

# --- My own manual cross-check (not in exp_s01_analyze_spectrum_simplest.py) ---
# Hand-derived from first principles to sanity-check the amplitudes_to_snr /
# snr_to_nsd helpers below:
# SNR = 10*log10( signal_power / noise_power ) = 10*log10( (A^2/2) / noise_rms^2 )
# NSD = -SNR - 10*log10(Fs/2) (full-scale noise spread over the Nyquist band)
snr_theroretical = 10*np.log10(A**2/2/noise_rms**2)
print(f"Theoretical SNR: {snr_theroretical:.2f} dB")
nsd_theoretical = -snr_theroretical - 10*np.log10(Fs/2)
print(f"Theoretical NSD: {nsd_theoretical:.2f} dBFS/Hz")
# --- end of my addition ---

snr_ref = amplitudes_to_snr(sig_amplitude=A, noise_amplitude=noise_rms)
nsd_ref = snr_to_nsd(snr_ref, fs=Fs, osr=1)

result = analyze_spectrum(signal, fs=Fs)

print(f"\n[setting] Noise RMS=[{noise_rms*1e6:.2f} uVrms], Theoretical SNR=[{snr_ref:.2f} dB], Theoretical NSD=[{nsd_ref:.2f} dBFS/Hz]")
print(f"[results] ENoB=[{result['enob']:.2f} b], SNDR=[{result['sndr_dbc']:.2f} dB], SFDR=[{result['sfdr_dbc']:.2f} dB], SNR=[{result['snr_dbc']:.2f} dB], NSD=[{result['nsd_dbfs_hz']:.2f} dBFS/Hz]\n")

plt.show()

# Theoretical SNR: 90.97 dB
# Theoretical NSD: -167.96 dBFS/Hz

# [setting] Noise RMS=[10.00 uVrms], Theoretical SNR=[90.97 dB], Theoretical NSD=[-167.96 dBFS/Hz]
# [results] ENoB=[14.82 b], SNDR=[90.99 dB], SFDR=[116.37 dB], SNR=[91.25 dB], NSD=[-168.24 dBFS/Hz]

reference

Aaron Buchwald, ISSCC2010 T1: "Specifying & Testing ADCs"

Ahmed M. A. Ali. ISSCC2021 T5: Calibration Techniques in ADCs

Boris Murmann, ISSCC2022 SC1: Introduction to ADCs/DACs: Metrics, Topologies, Trade Space, and Applications

—, ISSCC2012 SC3: Introduction to ADCs/DACs: Metrics, Topologies, Trade Space, and Applications

—, A/D Converter Figures of Merit and Performance Trends

Youngcheol Chae, Yonsei University, ISSCC 2023 F5.2 Design Techniques for Energy Efficient Analog-to-Digital Converters

Quantization Noise

Quantization Error

image-20250910210909363

image-20250910211207655

image-20250910211034914


Notice \(e_q\in (0, \Delta)\) and its average is \(\Delta/2\). To calculate SNDR, DC component shall be excluded

Don't confuse resolution \(\Delta\) with Bounded Quantization Noise \(-\Delta/2 \sim \Delta/2\)

image-20250909233010702

Quantization Noise Spectrum

image-20240825221754959

Quantization noise is less with higher resolution as the input range is divided into a greater number of smaller ranges

This error can be considered a quantization noise with RMS

image-20240925235213137


image-20260501104900735

image-20260501104930194

ADC Input Noise

Walt Kester, ADC Input Noise: The Good, The Bad, and The Ugly­. Is No Noise Good Noise? [link] [pdf]

—, MT-004: The Good, the Bad, and the Ugly Aspects of ADC Input Noise-Is No Noise Good Noise? [https://www.analog.com/media/en/training-seminars/tutorials/mt-004.pdf]

Understanding ADC Noise for Small and Large Signal Inputs for Receiver Applications [https://www.analog.com/en/resources/technical-articles/understanding-adc-noise-for-small-and-large-signal-inputs-for-receiver-applications.html]

The LSB determines the ADC code resolution, but the minimum reliably detectable input voltage is determined by the total noise floor, including quantization noise

image-20260501103056383

[https://share.google/aimode/aA1V4uj3GofKbBojl]

ADC quantization noise is considered a "deterministic error" rather than random thermal noise because it correlates with the input signal, creating a saw-tooth error waveform rather than random Gaussian noise. While it cannot be reduced by averaging a static signal, it can be reduced through averaging if the signal is oversampled, or if dither (random noise) is added to decorrelate it.

Quantization is NOT Noise

N. Blachman, "The intermodulation and distortion due to quantization of sinusoids," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 33, no. 6, pp. 1417-1426, December 1985 [https://sci-hub.st/10.1109/TASSP.1985.1164729]

image-20250902203709226


Carsten Wulff, Oversampling and Sigma-Delta ADCs [https://analogicus.com/aic2026/oversampling_and_sigma-delta_adcs] [video] [slides]

N. Blachman, "The intermodulation and distortion due to quantization of sinusoids," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 33, no. 6, pp. 1417-1426, December 1985

The quantization noise is an infinite sum of input signal odd harmonics, where the amplitude of the harmonics is determined by a sum of a Bessel function

"Quantization noise is white", because for a high number of bits, it looks white in the FFT

image-20260602220757703

The quantization noise is odd harmonics of the input signal [Gist link]

l6_quant

img

[Gist link]

n_impact


image-20260501103237761

Sampling Noise in ADC

Kwantae Kim, Integrated Analog Systems D - Lecture 12 (ADC) [https://youtu.be/NkSitVkPNig]

image-20260501170637885

In the power domain, \(\color{red}v_{nS,RMS}/3 \lt \sigma_{q,RMS}\) ensures that sampling noise power is nearly an order of magnitude smaller than the quantization noise

image-20260502084730678

image-20260501171651963

ADC SNR & clock jitter

Akkaya, A. (2021). High-Speed ADC Design and Optimization for Wireline Links (Publication No. 8453) [PhD thesis, EPFL; Supervised by Y. Leblebici]. [https://doi.org/10.5075/epfl-thesis-8453]

CC Chen, Why Absolute Jitter Matters for ADCs & DACs? [https://youtu.be/jBgDDFFDq30]

Thomas Neu, TIPL 4704. Jitter vs SNR for ADCs [https://www.ti.com/content/dam/videos/external-videos/en-us/2/3816841626001/5529003238001.mp4/subassets/TIPL-4704-Jitter-vs-SNR.pdf]

Walt Kester , MT-007: Aperture Time, Aperture Jitter, Aperture Delay Time [https://www.analog.com/media/en/training-seminars/tutorials/MT-007.pdf]

cyclostationary random process

image-20250809170358612


image-20250525134220901

image-20250525135503671

\[\begin{align} \text{SNR}_\text{ADC}[\text{dB}] &= -20\cdot \log \sqrt{\left(10^{-\frac{\text{SNR}_\text{Quantization Noise}}{20}}\right)^2 + \left(10^{-\frac{\text{SNR}_\text{Jitter}}{20}}\right)^2} \\ &= -10\cdot \log \left(\left(10^{-\frac{\text{SNR}_\text{Quantization Noise}}{20}}\right)^2 + \left(10^{-\frac{\text{SNR}_\text{Jitter}}{20}}\right)^2\right) \\ &= -10\cdot \log \left(\left(10^{-\frac{10\log(\frac{3\times2^{2N}}{2})}{20}}\right)^2 + \left(10^{-\frac{-20\log{(2\pi f_\text{in}\sigma_\text{jitter})}}{20}}\right)^2\right) \\ &= -10\cdot \log \left( \frac{2}{3\times 2^{2N}} + (2\pi f_\text{in}\sigma_\text{jitter})^2 \right) \end{align}\]

image-20250525141523199

image-20250525143507747

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np
import matplotlib.pyplot as plt

N = 12 # ADC bit
fin = 100e6 # the frequency of the sinusoidal input signal
jrms = np.linspace(0, 10, 1000)*1e-12 #ps

# ADC (SNR) with Quantization Noise & Jitter degradation
SNR_ADC = -10 * np.log10(10**(-np.log10(3*2**(2*N)/2)) + (2*np.pi*fin*jrms)**2)
ENOB = (SNR_ADC - 1.76) / 6.02

plt.plot(jrms*1e12, ENOB, label='100 MHZ input')
plt.plot([0, 10], [12, 12], '--', label='12-bit limit')
plt.plot([0, 10], [6, 6], '--', label='6-bit limit')

plt.xscale('linear')
plt.xlim([0, 10])
plt.ylim([5, 15])
plt.xlabel('RMS Jitter (ps)')
plt.ylabel('Effective Number of Bits (ENOB')
plt.grid(which='both')
plt.title('ENOB vs. RMS Clock Jitter (100 MHz)')
plt.legend()
plt.show()

Chun-Hsien Su (蘇純賢). Design of Oversampled Sigma-Delta Data Converters. July, 2006 [pdf]

image-20250809182751263


Chembian Thambidurai, "SNR of an ADC in the presence of clock jitter" [https://www.linkedin.com/posts/chembiyan-t-0b34b910_adcsnrjitter-activity-7171178121021304833-f2Wd/]

Unlike the quantization noise and the thermal noise, the impact of the clock jitter on the ADC performance depends on the input signal properties like its PSD

image-20241123205352661

The error between the ideal sampled signal and the sampling with clock jitter can be treated as noise and it results in the degradation of the SNR of the ADC

image-20241124004634365

For sinusoid input:

image-20241210235817281

image-20241222140258960

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import numpy as np
import matplotlib.pyplot as plt

ENOB = 8
fin = np.logspace(8, 11, 60)

# quantization noise: SNR = 6.02*ENOB + 1.76 dB
Ps_PnQ = 10**((6.02*ENOB + 1.76)/10)
PnQ = 1/Ps_PnQ

# jitter noise: SNR = 6 - 20log10(2*pi*fin*Jrms) dB @ref. Chembiyan T
Jrms_list = [25e-15, 50e-15, 100e-15, 250e-15, 500e-15, 1000e-15]
for Jrms in Jrms_list:
# Ps_PnJ_lcl = 10**((6-20*np.log10(2*np.pi*fin*Jrms))/10) # ref. Chembiyan T
Ps_PnJ_lcl = 10**((0 - 20 * np.log10(2 * np.pi * fin * Jrms)) / 10) # ref. Nicola Da Dalt
PnJ_lcl = 1/Ps_PnJ_lcl
SNR_lcl = 10*np.log10(1/(PnQ+PnJ_lcl))
plt.plot(fin, SNR_lcl, label=r'$\sigma_{jitter}$'+'='+str(int(Jrms*1e15))+'fs')

plt.xscale('log')
plt.ylim([0, 55])
plt.xlabel(r'$f_{in}$ [Hz]')
plt.ylabel(r'SNR [dB]')
plt.grid(which='both')
# plt.title(r'ref. Chembiyan T')
plt.title(r'ref. Nicola Da Dalt')
plt.legend()
plt.show()

K. Tyagi and B. Razavi, "Performance Bounds of ADC-Based Receivers Due to Clock Jitter," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 70, no. 5, pp. 1749-1753, May 2023 [https://www.seas.ucla.edu/brweb/papers/Journals/KT_TCAS_2023.pdf]

N. Da Dalt, M. Harteneck, C. Sandner and A. Wiesbauer, "On the jitter requirements of the sampling clock for analog-to-digital converters," in IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications, vol. 49, no. 9, pp. 1354-1360, Sept. 2002 [https://sci-hub.se/10.1109/TCSI.2002.802353]

M. Shinagawa, Y. Akazawa and T. Wakimoto, "Jitter analysis of high-speed sampling systems," in IEEE Journal of Solid-State Circuits, vol. 25, no. 1, pp. 220-224, Feb. 1990 [https://sci-hub.se/10.1109/4.50307]

image-20241210232716862

Akkaya, A. (2021). High-Speed ADC Design and Optimization for Wireline Links (Publication No. 8453) [PhD thesis, EPFL; Supervised by Y. Leblebici]. [https://doi.org/10.5075/epfl-thesis-8453]


待学芯. ADC量化结果反推采样时钟抖动(Jitter) [https://mp.weixin.qq.com/s/55xfVQMe_N8zUGpI8ZvmsQ]

—. 关于时钟抖动(Jitter)与ADC的一些讨论 [https://mp.weixin.qq.com/s/GW1keHhfq7zrd036lyG0CQ]

image-20250811210300829

DAC SNR & clock jitter

Boris Murmann ISSCC 2022 SC1: Introduction to ADCs/DACs: Metrics, Topologies, Trade Space, and Applications [pdf]

S. Kim, K. -Y. Lee and M. Lee, "Modeling Random Clock Jitter Effect of High-Speed Current-Steering NRZ and RZ DAC," in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 65, no. 9, pp. 2832-2841, Sept. 2018 [https://sci-hub.se/10.1109/TCSI.2018.2821198]

Martin Clara. High-Performance D/A-Converters - Application to Digital Transceivers, 2013 [pdf]

Chun-Hsien Su (蘇純賢). Design of Oversampled Sigma-Delta Data Converters. July, 2006 [pdf]

ampling Jitter Effects for ADC/DAC

  • In both DAC or ADC cases, doubling the timing jitter doubles the noise level
  • Also, doubling the frequency or amplitude doubles the jitter induced noise - SNR is not improved

image-20250810213544751

image-20250810213615814

ADC Linearity (DNL/INL)

image-20260426174704406

image-20260425095158692

missing code

image-20260425100334682



TODO 📅

  • Endpoint method
  • BestFit method

image-20241006211529077

image-20241006195931838

INL/DNL Measurements for High-Speed Analog-to Digital Converters (ADCs) [https://picture.iczhiku.com/resource/eetop/sYKTSqLfukeHSmMB.pdf]



Code Density Test

Apply a linear ramp to ADC input

image-20241214100849243



Jungwirth, Patrick. Sampling Theory and Analog-to-Digital Conversion. Independently published, 2018.

image-20260907235127782

image-20260907235159600

DAC Linearity (DNL/INL)

image-20241215101400962

The worst INL of three DAC Architecture is same

image-20260913165357043

DAC DNL

One difference between ADC and DAC is that DAC DNL can be less than -1 LSB

In a DAC, DNL < -1LSB implies non-monotonicity

image-20241006215420568

image-20260913124553643



DAC INL

image-20260913165242029

  • \(A = \sum_{j=1}^k I_j\), \(B=\sum_{j=k+1}^N I_j\)
  • A and B are independent with \(\sigma_A^2 = k\sigma_u^2\) and \(\sigma_B^2=(N-k)\sigma_u^2\)

Therefore \[ \mathrm{Var}\left(\frac{X}{Y}\right)\approx \frac{k^2}{N^2}\left(\frac{\sigma_i^2}{kI_u^2} + \frac{\sigma_i^2}{NI_u^2} -2\frac{\mathrm{cov}(X,Y)}{kNI_u^2}\right) \] and \[\begin{align} \mathrm{cov}(X,Y) &= E[XY] - E[X]E[Y] = E[A(A+B)] - kNI_u^2 \\ &= E[A^2]+E[A]E[B] - kNI_u^2= \sigma_A^2+E[A]^2 + k(N-k)I_u^2 - kNI_u^2\\ &= k\sigma_i^2 + k^2I_u^2+ k(N-k)I_u^2 - kNI_u^2 \\ &= k\sigma_i^2 \end{align}\]

Finally, \[ \mathrm{Var}\left(\frac{X}{Y}\right)\approx \frac{k^2}{N^2}\left(\frac{\sigma_i^2}{kI_u^2} + \frac{\sigma_i^2}{NI_u^2} -2\frac{k\sigma_i^2}{kNI_u^2}\right) = \frac{k^2}{N^2}\left(\frac{1}{k}- \frac{1}{N}\right)\sigma_u^2 \] i.e. \[ \boxed{\mathrm{Var(INL(k))} = k^2\left(\frac{1}{k}- \frac{1}{N}\right)\sigma_u^2 = k\left(1- \frac{k}{N}\right)\sigma_u^2} \]

Standard deviation of INL is maximum at mid-scale (k=N/2)

image-20241215114755896


image-20241215101727644



INL/DNL analysis of current steering DAC

Spectral Metrics

image-20260425164053212

SNR, SNDR (SINAD)

Understanding Key Parameters for RF-Sampling Data Converters White Paper (WP509) [https://docs.amd.com/v/u/en-US/wp509-rfsampling-data-converters]

image-20260425164740278

image-20260503100924412

image-20260501160344805

ENOB

Qasim Chaudhari, On Analog-to-Digital Converter (ADC), 6 dB SNR Gain per Bit, Oversampling and Undersampling [https://wirelesspi.com/on-analog-to-digital-converter-adc-6-db-snr-gain-per-bit-oversampling-and-undersampling/]

The quantization noise power \(P_Q\) for a uniform quantizer with step size \(\Delta\) is given by \[ P_Q = \frac{\Delta ^2}{12} \] For a full-scale sinusoidal input signal with an amplitude equal to \(V_{FS}/2\), the input signal is given by \(x(t) = \frac{V_{FS}}{2}\sin(\omega t)\)

Then input signal power \(P_s\) is \[ P_s = \frac{V_{FS}^2}{8} \] Therefore, the signal-to-quantization noise ratio (SQNR) is given by \[ \text{SQNR} = \frac{P_s}{P_Q} = \frac{V_{FS}^2/8}{\Delta^2/12}=\frac{V_{FS}^2/8}{V_{FS}^2/(12\times 2^{2N})} = \frac{3\times 2^{2N}}{2} \] where \(N\) is the number of quantization bits

When represented in dBs \[ \text{SQNR(dB)} = 10\log(\frac{P_s}{P_Q}) = 10\log(\frac{3\times 2^{2N}}{2})= 20N\log(2) + 10\log(\frac{3}{2})= 6.02N + 1.76 \]

the maximum achievable SNR of N-bit ADC — theoretical SNR limit


image-20250705100706289

image-20250705101619687

image-20250705101635533



Dan Boschen, GRCon25: Quantifying Signal Quality: Practical Tools for High-Fidelity Waveform Analysis

[linkedin GRCon25]

img

SDR, THD

image-20260425165031673



Understanding Key Parameters for RF-Sampling Data Converters White Paper (WP509) [https://docs.amd.com/v/u/en-US/wp509-rfsampling-data-converters]

image-20260503101042354



Walt Kester. Evaluating High Speed DAC Performance [https://www.analog.com/media/en/training-seminars/tutorials/mt-013.pdf]

via other definition

THD: signal to distortion

SINAD: noise and distortion to signal

image-20260503102806229

image-20260425165827715

SFDR & INL

image-20260425164947635

image-20250524172307785

Beware, this is of course only true under the same conditions at which the INL was taken, i.e. typically low input signal frequency

Dynamic Range (DR)

image-20260503113228361

image-20260503113130108


image-20250825220134900

image-20250825220536821

Noise Spectral Density (NSD)

Understanding Key Parameters for RF-Sampling Data Converters White Paper (WP509) [https://docs.amd.com/v/u/en-US/wp509-rfsampling-data-converters]

image-20260503102953803

image-20260503103307603

image-20260503103531776


image-20250902010512726

Spectral Leakage

Two ways to deal with spectral leakage: Ensure integer number of periods or Windowing

image-20260426075613908

image-20260501161349428

Coherent Sampling

Choosing M/N non-prime repeats the signal quantization periodically and fewer quantization steps are measured. The quantization repeats periodically and creates a line spectrum that can obscure real frequency lines (e.g. the red lines in the images below, created by non-linearities of the ADC).[https://www.dsprelated.com/thread/469/coherent-sampling-very-brief-and-simple]

image-20250705085139758


\[ \frac{f_{\text{in}}}{f_{\text{s}}}=\frac{M_C}{N_R} \]

  • \(f_\text{in}\) and \(f_s\) must be incommensurate (\(f_s/f_\text{in}\) is irrational number. btw, co-prime is sufficient but not necessary)

  • \(M_C\) and \(N_R\) must be co-prime

  • Samples must include integer # of cycles of input signal


An irreducible ratio ensures identical code sequences not to be repeated multiple times.

Given that \(\frac{M_C}{N_R}\) is irreducible, and \(N_R\) is a power of 2, an odd number for \(M_C\) will always produce an irreducible ratio

Assuming there is a common factor \(k\) between \(M_C\) and \(N_R\), i.e. \(\frac{M_C}{N_R}=\frac{k M_C'}{k N_R'}\)

The samples (\(n\in[1, N_R]\))

\[ y[n] = \sin\left( \omega_{\text{in}} \cdot t_n \right) = \sin\left( \omega_{\text{in}} \cdot n\frac{1}{f_s} \right) = \sin\left( \omega_{\text{in}} \cdot n\frac{1}{f_{\text{in}}}\frac{M_C}{N_R} \right) = \sin\left( 2\pi n\frac{M_C}{N_R} \right) \]

Then

\[ y[n+N_R'] = \sin\left( 2\pi (n+N_R')\frac{M_C}{N_R} \right) = \sin\left( 2\pi n \frac{M_C}{N_R} + 2\pi N_R'\frac{M_C}{N_R}\right) = \sin\left( 2\pi n \frac{M_C}{N_R} + 2\pi N_R'\frac{kM_C'}{kN_R'} \right) = \sin\left( 2\pi n \frac{M_C}{N_R}\right) \]

So, the samples is repeated \(\color{red}y[n] = y[n+N_R']\)


\(N_R\) & \(M_C\) irreducible ratio (mutually prime)

  • Periodic sampling points result in periodic quantization errors
  • Periodic quantization errors result in harmonic distortion

image-20250705091742434

image-20260426080431593

GCD(2048, 67)=1

image-20260426083812415

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
N = 2048;
cycles = 67;
fs = 1000;
fx = fs*cycles/N;
LSB = 2/2^10;
%generate signal, quantize (mid-tread) and take FFT
xc = cos(2*pi*fx/fs*[0:N-1]);
x = round(xc/LSB)*LSB;
s = abs(fft(x));
s = s(1:end/2)/N*2;
% calculate SNR
sigbin = 1 + cycles;
noise = [s(1:sigbin-1), s(sigbin+1:end)];
snr = 10*log10( s(sigbin)^2/sum(noise.^2) );

% frequency vector
f = [0:N/2-1]/N;
subplot(1,3,1)
stem(f, s);

% some FFT bins for "noise" to be exactly zero, empty plot
subplot(1,3,2)
plot(f, 20*log10(s))

% Use a small offset to avoid -Inf
subplot(1,3,3)
plot(f, 20*log10(s + 1e-6))
ylim([-120, 0])

image-20260426101717290

Periodic Quantization Noise if N and cycles are not mutually prime, i.e. cycles=64 then GCD(2048, 64)=64, then \(N_R' = 2048/64=32\), so quantization noise manifests as odd harmonics \(n/32\mid n = 2k + 1, k \in \mathbb{Z}\) because of Half Wave Symmetry

image-20260501155434170

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
N = 2048;
cycles = 64;
fs = 1000;
fx = fs*cycles/N;
LSB = 2/2^10;
%generate signal, quantize (mid-tread) and take FFT
xc = cos(2*pi*fx/fs*[0:N-1]);
x = round(xc/LSB)*LSB;

% frequency vector
f = [0:N/2-1]/N;
nq = x - xc;
NTn = N / gcd(N, cycles);

subplot(2,1,1)
plot(nq(1:NTn/2), '-s')
hold on
plot(nq(1+NTn/2:NTn), '-o')
xticks(1:1:16); grid on

sn = abs(fft(nq));
sn = sn(1:end/2)/N*2;
subplot(2,1,2)
plot(f, 20*log10(sn))

image-20260501162130482


image-20250705092503925


image-20250705103213974



Using FFT in Cadence Spectre [https://www.eecis.udel.edu/~vsaxena/courses/ece614/f14/Homeworks/fft_calculation.pdf]

image-20260504082308071


Hideo Okawara's Mixed Signal Lecture Series, DSP-Based Testing - Fundamentals 6 - Spectrum Analysis – FFT [https://www3.advantest.com/documents/11348/8c5e06b8-85b8-407d-b253-b671ca9ac85c]

—, DSP-Based Testing - Fundamentals 7 - Coherent Condition [https://www3.advantest.com/documents/11348/7f5f00bb-f5f0-41da-b154-fc1d974ad201]

image-20260523205409666


Kwantae Kim, ELEC-E3530 [https://github.com/KwantaeKim/ELEC-E3530/blob/main/CAD8.ipynb]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np
from matplotlib.ticker import EngFormatter

def coherent_sampling(fin, Fs, N):
"""
Returns the adjusted input frequency for coherent sampling.

Parameters:
fin : input frequency (Hz)
Fs : sample rate (Hz)
N : number of samples

Returns:
Adjusted fin (Hz) such that M/N = fin/Fs, where M is the nearest prime to N*fin/Fs.
"""
x = int(np.ceil(N * fin / Fs))
primes = [n for n in range(2, x*2) if all(n % i for i in range(2, n))]
M = primes[np.argmin(np.abs(np.array(primes) - x))]
return Fs * M / N

fmt = EngFormatter(places=6)
print(f"Adjusted f_in: {fmt(coherent_sampling(10, 100, 2**6))}Hz")

# adjusted f_in: 10.937500Hz

Midrise vs Midtread Quantizers

\(\Gamma_x\) is no-overload range

image-20250809170637486


image-20250907071636266

Top-Plate vs Bottom-Plate Sampling

[https://class.ece.iastate.edu/ee435/lectures/EE%20435%20Lect%2044%20Spring%202008.pdf]

Bottom-Plate Sampling

Sample signal at the "grounded" side of the capacitor to achieve signal independent sampling

image-20240825231816582

The capacitor voltage is defined as

\[ V_C = V_{\text{out}}-V_X \]

Before \(M_2\) turns off, \(M_1\) and \(M_2\) are both ON, so approximately

\[ V_{\text{out}}=V_{\text{in}},\qquad V_X=0 \]

and therefore

\[ V_C=V_{\text{in}} \]

When \(M_2\) turns off first, the slide writes

\[ V_C=V_{\text{in}}+\frac{\Delta Q_2}{C} \]

At this moment \(M_1\) is still ON, so the top plate is still held at

\[ V_{\text{out}}\approx V_{\text{in}} \]

Hence

\[\begin{aligned} V_X &=V_{\text{out}}-V_C\\ &=V_{\text{in}} -\left(V_{\text{in}}+\frac{\Delta Q_2}{C}\right)\\ &=\boxed{-\frac{\Delta Q_2}{C}}. \end{aligned}\]

image-20240825232007848

image-20240825232717342

image-20240825233801855

image-20240825233821389


image-20240825233859540

[https://indico.cern.ch/event/1064521/contributions/4475393/attachments/2355793/4078773/esi_sampling_and_converters2022.pdf]

EE 435 Spring 2024 Analog VLSI Circuit Design - Switched-Capacitor Amplifiers Other Integrated Filters, https://class.ece.iastate.edu/ee435/lectures/EE%20435%20Lect%2044%20Spring%202008.pdf

Top-Plate Sampling

TODO 📅

image-20250622235355760

Maintain constant common-mode during conversion

D. Pfaff et al., "7.3 A 224Gb/s 3pJ/b 40dB Insertion Loss Transceiver in 3nm FinFET CMOS," 2024 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2024 [https://iccircle.com/static/upload/img20240529101747.pdf]

—, "A 224Gb/s 3pJ/bit 42dB Insertion Loss Post-FEC Error Free Transceiver in 3-nm FinFET CMOS (Invited)," 2025 IEEE Custom Integrated Circuits Conference (CICC), Boston, MA, USA, 2025, pp. 1-8, doi: 10.1109/CICC63670.2025.10983461.

E. Swindlehurst et al., "An 8-bit 10-GHz 21-mW Time-Interleaved SAR ADC With Grouped DAC Capacitors and Dual-Path Bootstrapped Switch," IEEE Journal of Solid-State Circuits, vol. 56, no. 8, pp. 2347-2359, 2021, [https://sci-hub.se/10.1109/JSSC.2021.3057372]

Tracking nonidealities

Tracking Settling Accuracy

image-20260913185637548

image-20260913185723050


image-20250729005852740


Finite Acquisition Time - Consider a sinusoidal input

\[\begin{align} V_\text{in}(t)=\cos(\omega t+\theta) & \overset{\mathcal{L}}{\Rightarrow} \frac{s\cos \theta-\omega \sin \theta}{s^2+\omega^2} \\ h(t) & \overset{\mathcal{L}}{\Rightarrow} \frac{\frac{1}{\tau}}{s+\frac{1}{\tau}} \end{align}\]

Then,

\[\begin{align} V_\text{out}(s) &= V_\text{in}(s)\cdot H(s) \\ &= \frac{s\cos \theta-\omega \sin \theta}{s^2+\omega^2} \cdot \frac{\frac{1}{\tau}}{s+\frac{1}{\tau}} \\ &= \frac{A}{s+\frac{1}{\tau}} + \frac{Bs+C}{s^2+\omega^2} \end{align}\]

Obtain,

\[ A = -\frac{\cos(\theta - \phi)}{\sqrt{ \omega^2\tau ^2 +1}} \qquad\qquad B = -A \qquad\qquad C = -\frac{\omega \sin(\theta - \phi)}{\sqrt{\omega^2\tau ^2 +1}} \]

That is \[ \boxed{V_\text{out}(s) = -\frac{\cos(\theta - \phi)}{\sqrt{\omega^2\tau ^2 +1}} \frac{1}{s+\frac{1}{\tau}} + \frac{1}{\sqrt{\omega^2\tau ^2 +1}}\frac{s\cos(\theta - \phi) - \omega \sin(\theta - \phi)}{s^2+\omega^2}} \]

where \(\phi = \arctan(\omega \tau)\)

The relation \(V_\text{out}(s) = H(s)\,V_\text{in}(s)\) is the zero-state response only. The transfer function is defined under the assumption \(V_\text{out}(0^-) = 0\), so you can't recover the natural response from it. You have to go back one step, to the differential equation.

For the RC (track) network with \(\tau = RC\):

\[ \tau \dot{V}_\text{out} + V_\text{out} = V_\text{in} \]

Transform with the full derivative rule \(\mathcal{L}\{\dot{V}_\text{out}\} = s V_\text{out}(s) - V_0\), where \(V_0 \equiv V_\text{out}(0^-)\) (the capacitor voltage is continuous, so \(0^-\) and \(0^+\) agree): \[ \tau\big(s V_\text{out}(s) - V_0\big) + V_\text{out}(s) = V_\text{in}(s) \]

\[ \boxed{\;V_\text{out}(s) = \underbrace{\frac{V_\text{in}(s)}{\tau s + 1}}_{\text{zero-state}} + \underbrace{\frac{\tau V_0}{\tau s + 1}}_{\text{zero-input}} = H(s)\,V_\text{in}(s) + \frac{V_0}{s + \frac{1}{\tau}}\;} \]

Then the Complete Laplace Expression is \[ \boxed{V_\text{out}(s) = -\frac{\cos(\theta - \phi)}{\sqrt{\omega^2\tau ^2 +1}} \frac{1}{s+\frac{1}{\tau}} + \frac{1}{\sqrt{\omega^2\tau ^2 +1}}\frac{s\cos(\theta - \phi) - \omega \sin(\theta - \phi)}{s^2+\omega^2} + \frac{V_\text{out}(0)}{s + \frac{1}{\tau}} } \] The Total Time-Domain Solution \[ \boxed{V_{\text{out}}(t) = \underbrace{V_{\text{out}}(0)e^{-\frac{t}{\tau}}}_{\text{Pure Natural Response}} + \underbrace{\frac{1}{\sqrt{\omega^2\tau^2 + 1}} \left[ \cos(\omega t + \theta - \phi) - \cos(\theta - \phi) e^{-\frac{t}{\tau}} \right]}_{\text{Forced Response (Transient + Steady-State)}} } \] And grouped by transient vs. steady-state components: \[ \boxed{V_{\text{out}}(t) = \underbrace{\left[ V_{\text{out}}(0) - \frac{\cos(\theta - \phi)}{\sqrt{\omega^2\tau^2 + 1}} \right] e^{-\frac{t}{\tau}}}_{\text{Total Transient Response}} + \underbrace{\frac{\cos(\omega t + \theta - \phi)}{\sqrt{\omega^2\tau^2 + 1}}}_{\text{Steady-State Response}}} \]

image-20260913181152511

image-20260913185936010

image-20260913190230077

Tracking Nonlinearity

Wei Yu, Subhajit Sen and B. H. Leung, "Distortion analysis of MOS track-and-hold sampling mixers using time-varying Volterra series," in IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 46, no. 2, pp. 101-113, Feb. 1999 [https://sci-hub.ru/10.1109/82.752910]

B. Murmann, EE315B VLSI-Data-Conversion-Circuits [https://dl.sabzdanesh.com/Electronic/VLSI-Data-Conversion-Circuits_(WWW.SabzElco.IR).pdf]

\[\begin{align} HD_2 &\approx \frac{1}{2}\omega C V_m \frac{\mathcal{d} R_{on}}{\mathcal{d}v_{in}}\bigg\rvert_{v_{in}=0}=\frac{1}{2}\omega C V_m\frac{R_{ON}}{V_{OV}} = \frac{1}{2}\frac{\omega}{\omega_c}\frac{V_m}{V_{OV}} \\ HD_3 &\approx \frac{1}{4}\omega C V_m^2 \frac{\mathcal{d}^2 R_{on}}{\mathcal{d}v_{in}^2}\bigg\rvert_{v_{in}=0}=\frac{1}{4}\omega C V_m^2\frac{R_{ON}}{V_{OV}^2} = \frac{1}{2}\frac{\omega}{\omega_c}\left(\frac{V_m}{V_{OV}}\right)^2 \end{align}\]

where \(V_{OV}=V_{DD}-V_{IN}-V_t\), \(R_{ON}=\frac{1}{\mu C_{ox}W/LV_{OV}}\) and \(\omega_c=1/R_{ON}C\)

Even-order distortion products cancel in perfectly symmetrical circuits; But phase and amplitude imbalances lead to finite \(HD_2\) in practice

Pipeline ADC

Vishal Saxena, "Pipelined ADC Design - A Tutorial"[https://www.eecis.udel.edu/~vsaxena/courses/ece517/s17/Lecture%20Notes/Pipelined%20ADC%20NonIdealities%20Slides%20v1_0.pdf] [https://www.eecis.udel.edu/~vsaxena/courses/ece517/s17/Lecture%20Notes/Pipelined%20ADC%20Slides%20v1_2.pdf]

Bibhu Datta Sahoo, Analog-to-Digital Converter Design From System Architecture to Transistor-level [http://smdpc2sd.gov.in/downloads/IGF/IGF%201/Analog%20to%20Digital%20Converter%20Design.pdf]

Bibhu Datta Sahoo, Associate Professor, IIT, Kharagpur, [https://youtu.be/HiIWEBAYRJY]

image-20241006174924686

CMP reference voltage is 0.5vref, DAC output is 0.5vref or 0

pipelineADC.drawio

residual error \[ V_{r,n} = (V_{r,n-1}-\frac{1}{2}b_{n})\cdot 2 \] and \(V_{r,-1}=V_i\) \[ V_{r,n-1} = 2^{n}V_i -\sum_{k=0}^{n-1}2^{n-k-1}b_k = 2^{n}\left(V_i - \sum_{k=0}^{n-1}\frac{b_k}{2^{k+1}}\right) \]

here, \(b_0\) is first stage and MSB

It divides the process into several comparison stages, the number of which is proportional to the number of bits

Due to the pipeline structure of both analog and digital signal path, inter-stage residue amplification is needed which consumes considerable power and limits high speed operation


image-20241214164740706


image-20260915220254339

Non-Flip-Around & Flip-Around Amplifier

Non-Flip-Around Amplifier

image-20260929075323994

The amplifier's differential input stays approximately zero after settling; its individual input voltages need not be constant

With matched capacitors, their common-mode contributions cancel when we subtract the two charge-conservation equations

Flip-Around Amplifier

image-20260929075641833

Multiplying DACs (MDAC)

image-20260915230732911

Connection Sampling phase Amplification phase
(V_{}) to left plate of (C_S) Closed Open
Left plate of (C_S) to ground Open Closed
Node (x) to ground Closed Open
Output to ground Closed Open

Phase 1: sample the input

  • \(C_S\) has \(V_{\text{in}}\) on its left plate and 0 V on its right plate, so it stores the input as charge.
  • Both ends of \(C_F\) are grounded, resetting its voltage to zero.
  • The small ADC samples the same input and determines a digital code.

At the end of sampling:

\[ Q_{x,\text{sample}}=-C_SV_{\text{in}} \]

Phase 2: subtract and amplify

  • Switching (C_S)’s left plate from (V_{}) to zero disturbs node (x).
  • Switching the DAC bottom plate from zero to (V_D) produces an opposing disturbance.
  • The amplifier changes (V_{}), through (C_F), to balance the remaining charge.

After amplification settles, both ends of \(C_S\) are approximately zero:

\[ Q_{x,\text{amp}}=-C_FV_{\text{out}}-C_{\text{DAC}}V_D \]

Equating them:

\[ \boxed{ V_{\text{out}} = \frac{C_S}{C_F}V_{\text{in}} - \frac{C_{\text{DAC}}}{C_F}V_D } \]

If \(C_S=C_{\text{DAC}}\), this becomes:

\[ \boxed{V_{\text{out}}=G(V_{\text{in}}-V_D)}, \qquad G=\frac{C_S}{C_F} \]

Thermometer to Binary encoder

image-20241214152349217

R-2R & C-2C

B. Razavi, "The R-2R and C-2C Ladders [A Circuit for All Seasons]," in IEEE Solid-State Circuits Magazine, vol. 11, no. 3, pp. 10-15, Summer 2019 [https://www.seas.ucla.edu/brweb/papers/Journals/BR_SSCM_3_2019.pdf]

\(N_b\) bit binary + \(N_t\) bit thermometer DAC

R-2R.drawio

\(N_b\) bit binary can be simplified with Thevenin Equivalent \[ V_B = \sum_{n=0}^{N_b-1} \frac{B_n}{2^{N_b-n}} \] with thermometer code

\[ V_o = V_B\frac{\frac{2R}{2^{N_t}-1}}{\frac{2R}{2^{N_t}-1}+ 2R}+\sum_{n=0}^{2^{N_t}-2}T_n\frac{\frac{2R}{2^{N_t}-1}}{\frac{2R}{2^{N_t}-1}+ 2R} = \frac{V_B}{2^{N_t}} + \frac{\sum_{n=0}^{2^{N_t}-2}T_n}{2^{N_t}} = \sum_{n=0}^{N_b-1} \frac{B_n}{2^{N_t+N_b-n}} + \frac{\sum_{n=0}^{2^{N_t}-2}T_n}{2^{N_t}} \]


4bit binary R2R DAC with Ru=1kOhm; RVB equivalent R

image-20241214190045688

reference

Maloberti, F. Data Converters. Dordrecht, Netherlands: Springer, 2007.

Ali, Ahmed M. A. High Speed Data Converters. The Institution of Engineering and Technology, 2016.

Razavi B. Analysis and Design of Data Converters. Cambridge University Press; 2025.


Aaron Buchwald, ISSCC2010 T1: "Specifying & Testing ADCs"

Ahmed M. A. Ali. CICC 2018: High Speed Pipelined ADCs: Fundamentals and Variants

John P. Keane, ISSCC2020 T5: "Fundamentals of Time-Interleaved ADCs"

Yun Chiu, ISSCC2023 T3: "Fundamentals of Data Converters" [https://personal.utdallas.edu/~yxc101000/courses/7327/handout/isscc2023_tutorial.pdf]

—, "Design and Calibration Techniques for SAR and Pipeline ADCs" [http://formation-old.in2p3.fr/microelectronique15/IN2P3_ADC.pdf]

—, Radiation-Tolerant SAR ADC Architecture and Digital Calibration Techniques [https://indico.cern.ch/event/385097/attachments/768706/1054353/CERN_May15.pdf]

—, Recent Advances in Multistep Nyquist ADC's [https://www.eecis.udel.edu/~vsaxena/courses/ece614/Handouts/Recent%20Advances%20in%20Nyquist%20rate%20ADCs.pdf]

Aaron Buchwald, ISSCC 2008 T2 Pipelined A/D Converters: The Basics

Yohan Frans, CICC2019 ES3-3- "ADC-based Wireline Transceivers" [pdf]

Samuel Palermo, ISSCC 2018 T10: ADC-Based Serial Links: Design and Analysis

Jan Mulder Broadcom. ISSCC2015 T5: High-Speed Current-Steering DACs

Zhang, Milin, Zhihua Wang, Jan van der Spiegel and Franco Maloberti. "Advanced Tutorial on Analog Circuit Design." (2023)

V. Chen, "Tutorial: High-Speed Analog-to-Digital Converters," 2025 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2025, pp. 1-1, doi: 10.1109/ISSCC49661.2025.11076112.

S. Su, "Principles and Practices of High-Speed DAC Design: From Conversion Fundamentals to Layout-Aware Implementation," in IEEE Solid-State Circuits Magazine, vol. 18, no. 3, pp. 26-43, Summer 2026, doi: 10.1109/MSSC.2026.3704105


M. Gu, Y. Tao, Y. Zhong, L. Jie and N. Sun, "Timing-Skew Calibration Techniques in Time-Interleaved ADCs," in IEEE Open Journal of the Solid-State Circuits Society [https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10804623]

everynanocounts. Memos on FFT With Windowing. URL: https://a2d2ic.wordpress.com/2018/02/01/memos-on-fft-with-windowing/

How to choose FFT depth for ADC performance analysis (SINAD, ENOB). URL:https://dsp.stackexchange.com/a/38201

Computation of Effective Number of Bits, Signal to Noise Ratio, & Signal to Noise & Distortion Ratio Using FFT. URL:https://cdn.teledynelecroy.com/files/appnotes/computation_of_effective_no_bits.pdf

Kester, Walt. (2009). Understand SINAD, ENOB, SNR, THD, THD + N, and SFDR so You Don't Get Lost in the Noise Floor. URL:https://www.analog.com/media/en/training-seminars/tutorials/MT-003.pdf

T. C. Hofner: Dynamic ADC testing part I. Defining and testing dynamic ADC parameters, Microwaves & RF, 2000, vol. 39, no. 11, pp. 75-84,162

—: Dynamic ADC testing part 2. Measuring and evaluating dynamic line parameters, Microwaves & RF, 2000, vol. 39, no. 13, pp. 78-94

AN9675: A Tutorial in Coherent and Windowed Sampling with A/D Converters https://www.renesas.com/us/en/document/apn/an9675-tutorial-coherent-and-windowed-sampling-ad-converters

APPLICATION NOTE 3190: Coherent Sampling Calculator (CSC) https://www.stg-maximintegrated.com/en/design/technical-documents/app-notes/3/3190.html

Coherent Sampling (Very Brief and Simple) https://www.dsprelated.com/thread/469/coherent-sampling-very-brief-and-simple

Signal Chain Basics #160: Making sense of coherent and noncoherent sampling in data-converter testing https://www.planetanalog.com/signal-chain-basics-160-making-sense-of-coherent-and-noncoherent-sampling-in-data-converter-testing/

Signal Chain Basics #104: Understanding noise in ADCs https://www.planetanalog.com/signal-chain-basics-part-104-understanding-noise-in-adcs/

Signal Chain Basics #101: ENOB Degradation Analysis Over Frequency Due to Jitter https://www.planetanalog.com/signal-chain-basics-part-101-enob-degradation-analysis-over-frequency-due-to-jitter/

Clock jitter analyzed in the time domain, Part 1, Texas Instruments Analog Applications Journal (slyt379), Aug 2010 https://www.ti.com/lit/an/slyt379/slyt379.pdf

Clock jitter analyzed in the time domain, Part 2 https://www.ti.com/lit/slyt389

Measurement of Total Harmonic Distortion and Its Related Parameters using Multi-Instrument [pdf]

Application Note AN-4: Understanding Data Converters' Frequency Domain Specifications [pdf]

Belleman, J. (2008). From analog to digital. 10.5170/CERN-2008-003.131. [pdf]

HandWiki. Coherent sampling [link]

Luis Chioye, TI. Leverage coherent sampling and FFT windows when evaluating SAR ADCs (Part 1) [link]

Coherent Sampling vs. Window Sampling | Analog Devices https://www.analog.com/en/technical-articles/coherent-sampling-vs-window-sampling.html

Understanding Effective Number of Bits https://robustcircuitdesign.com/signal-chain-explorer/understanding-effective-number-of-bits/

ADC Input Noise: The Good, The Bad, and The Ugly. Is No Noise Good Noise? [https://www.analog.com/en/resources/analog-dialogue/articles/adc-input-noise.html]

Walt Kester, Taking the Mystery out of the Infamous Formula, "SNR = 6.02N + 1.76dB," and Why You Should Care [https://www.analog.com/media/en/training-seminars/tutorials/MT-001.pdf]

Dan Boschen, "How to choose FFT depth for ADC performance analysis (SINAD, ENOB)", [https://dsp.stackexchange.com/a/38201]

B. Razavi, "A Tale of Two ADCs - Pipelined Versus SAR" IEEE Solid-State Circuits Magazine, Volume. 7, Issue. 30, pp. 38-46, Summer 2015 [https://www.seas.ucla.edu/brweb/papers/Journals/BRSummer15ADC.pdf)]


Dr. Tai-Haur Kuo (郭泰豪 教授) Analog IC Design (類比積體電路設計) [http://msic.ee.ncku.edu.tw/course/aic/aic.html]


Converter Passion for data-converter professionals sharing thoughts on ADCs and DACs [https://converterpassion.wordpress.com/]

Boris Murmann, EE315B VLSI Data Conversion Circuits, Autumn 2013


MPScholar Analog-to-Digital Converters (ADCs) [https://www.monolithicpower.com/en/learning/mpscholar/analog-to-digital-converters]

tomverbeure. List of Analog Devices Tutorials [https://tomverbeure.github.io/2021/02/15/Analog-Devices-Tutorials.html]

noise in current mirror

Noise of ref MOS is amplified by the current mirror's gain

image-20260712093027006

Due to M0 is biased by current source, we probe gate voltage instead of current

image-20260712090157565

result browser of instance show noise contribution, which is same with noise summary

image-20260712092100874

current mirror with source follower

icurrent_sf.drawio

source follower alleviate gate leakage impact on reference current

Constant-gm Bias Circuit

S. Pavan, "Systematic Development of CMOS Fixed-Transconductance Bias Circuits," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 69, no. 5, pp. 2394-2397, May 2022 [https://sci-hub.ru/10.1109/TCSII.2022.3158358] [slides]

—, ISSCC2026: Circuit Insights: Voltage and Current Reference Generation

aka. Beta-multiplier reference, Fixed-transconductance bias current

image-20240803155734754

\(I_\text{out}\) is PTAT in case temperature coefficient of \(R_s\) is less than that of \(\mu_n\)


image-20261031190412148

image-20261031190747302

image-20261031191009110

Both the circuits incorporate positive feedback

  • left circuit has a loop gain less than one, indicating a stable operating point
  • right circuit has a loop gain greater than unity and is unsuitable

image-20261031191553029


image-20240803201548623

Body effect of M2

image-20240803201803449

image-20240803202015668

image-20240803201941683


image-20231213235846243

Boris Murmann, Systematic Design of Analog Circuits Using Pre-Computed Lookup Tables

S. Pavan, "Systematic Development of CMOS Fixed-Transconductance Bias Circuits," in IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 69, no. 5, pp. 2394-2397, May 2022

S. Pavan, "A Fixed Transconductance Bias Circuit for CMOS Analog Integrated Circuits", IEEE International Symposium on Circuits and Systems, ISCAS 2004, Vancouver , May 2004

Why MOS in saturation ?

\(g_m\), \(g_\text{ds}\) at fixed \(V_\text{GS}\)

image-20231125224714658


\(g_{ds}\) is constant in saturation region

in triode region \[ g_{ds} = \mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{TH}-V_{DS}) \]

Interestingly, \(g_m\) in the saturation region is equal to the inverse of \(R_\text{on}\) in the deep triode region.

gds_vgs.drawio

image-20240727140918647

\(g_m\), \(g_\text{ds}\) at fixed \(I_d\), \(V_G\)

In triode region \[ I_D = \frac{1}{2}\mu_nC_{ox}\frac{W}{L}[2(V_{GS}-V_{TH})V_{DS}-V_{DS}^2] \] where \(I_D\) and \(V_G\) is fixed

Then \(V_S\) can be expressed with \(V_D\), that is \[ V_S = V_{GT} - \sqrt{(V_{GT}-V_D)^2+V_{dsat}^2} \] where \(V_{GT}=V_G-V_{TH}\), \(V_{dsat}\) is \(V_{DS}\) saturation voltage \[ g_m = \mu_nC_{ox}\frac{W}{L}\left(V_D-V_{GT}+\sqrt{(V_{GT}-V_D)^2+V_{dsat}^2}\right) \] Then \[ \frac{\partial g_m}{\partial V_D} \propto 1 - \frac{V_{GT}-V_D}{\sqrt{(V_{GT}-V_D)^2+V_{dsat}^2}} \gt 0 \]

That is, \(g_m \propto V_D\)​


\[\begin{align} g_{ds} &= \mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{TH}-V_{DS}) \\ &= \mu_nC_{ox}\frac{W}{L}(V_{GT}-V_{D}) \end{align}\]

That is, \(g_{ds} \propto -V_D\)

image-20240727171005401

Both gain and speed degrade once entering triode region, though Id is constant

Cascode MOS

The low threshold voltage of cascode MOS don't help decrease the minimum output voltage

cascode_vth.drawio


Poor Man's Cascode

image-20260731213434853 \[ V_{DS1} = V_{GS2} - V_{GS1} \qquad V_{GS1} = V_{OV1} + V_\text{th1} \] with $V_{GS2} - V_V_{DS1} $ \[ V_{GS2} - V_\text{th2} \lt V_{GS2} - V_{GS1} \to V_{GS1} \lt V_\text{th2} \to \color{green}\boxed{V_{OV1} \lt V_\text{th2} - V_\text{th1}} \]

Channel-length modulation

❗ There it not channel-length modulation in the triode region

image-20240727095651984

\[\begin{align} I_D &=\frac{1}{2}\mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{TH})^2(1+\frac{\Delta L}{L}) \\ I_D &=\frac{1}{2}\mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{TH})^2(1+\lambda V_{DS}) \\ I_D &=\frac{1}{2}\mu_nC_{ox}\frac{W}{L}(V_{GS}-V_{TH})^2(1+\frac{V_{DS}}{V_A}) \end{align}\]

where \(\frac{\Delta L}{L}=\lambda V_{DS}\) and \(V_A=\frac{1}{\lambda}\)

\(\lambda\) is channel length modulation parameter

\(V_A\), i.e. Early voltage is equal to inverse of channel length modulation parameter

The output resistance \(r_o\)

\[\begin{align} r_o &= \frac{\partial V_{DS}}{\partial I_D} \\ &= \frac{1}{\partial I_D/\partial V_{DS}} \\ &= \frac{1}{\lambda I_D} \\ &= \frac{V_A}{I_D} \end{align}\]

Due to \(\lambda \propto 1/L\), i.e. \(V_A \propto L\) \[ r_o \propto \frac{L}{I_D} \] image-20220930001909262

image-20220930002003924

image-20220930002157365

The output resistance is almost doubled using Stacked FET in saturation region

\(V_t\) and mobility \(\mu_{n,p}\) are sensitive to temperature

  • \(V_t\) decreases by 2-mV for every 1\(^oC\) rise in temperature
  • mobility \(\mu_{n,p}\) decreases with temperature

Overall, increase in temperature results in lower drain currents

current mirror mismatch

The current mismatch consists of two components.

  • The first depends on threshold voltage mismatch and increases as the overdrive \((V_{GS} − V_t)\) is reduced.
  • The second is geometry dependent and contributes a fractional current mismatch that is independent of bias point.

\[ \Delta I_D = g_m\cdot \Delta V_{TH}+I_D\cdot \frac{\Delta(W/L)}{W/L} \]

where mismatches in \(\mu_nC_{ox}\) are neglected

\[\begin{align} \Delta V_{TH} &= \frac{A_{VTH}}{\sqrt{WL}} \\ \frac{\Delta(W/L)}{W/L} &= \frac{A_{WL}}{\sqrt{WL}} \end{align}\]

summary:

Size \(g_m\) \(\Delta V_{TH}\) \(\frac{\Delta(W/L)}{W/L}\) mismatch (%) simu (%)
W, L 1 1 1 \(I_{\Delta_{V_{TH}}}+I_{\Delta_{WL}}\) 3.44
W, 2L \(1/\sqrt{2}\) \(1/\sqrt{2}\) \(1/\sqrt{2}\) \(I_{\Delta_{V_{TH}}}/2+I_{\Delta_{WL}}/\sqrt{2}\) 1.98
2W, L \(\sqrt{2}\) \(1/\sqrt{2}\) \(1/\sqrt{2}\) \(I_{\Delta_{V_{TH}}}+I_{\Delta_{WL}}/\sqrt{2}\) 2.93
We get \(I_{\Delta_{V_{TH}}}\simeq 1.71\%\) and \(I_{\Delta_{WL}} \simeq 1.73\%\)

image-20221003001056211

image-20221002215942456



Current mirror mismatch analysis

Art Zirger, Random Offset in CMOS IC Design [https://designers-guide.org/forum/Attachments/mismatch_presentation.pdf]

image-20260430211031506

image-20260430215506618

Another solution is to view the mirror branch as a whole

In source branch self mismatch \(\sigma_{vth,src} = \frac{A_{vt}}{\sqrt{2WL}}\) and mirror branch self-mismatch \(\sigma_{vth,mir} = \frac{A_{vt}}{\sqrt{2kWL}}\), then mutual mismatch is \[ \sigma_{vth} = \sqrt{\sigma_{vth,src}^2 + \sigma_{vth,mir}^2} = \sigma_{vth,src}\sqrt{1+\frac{1}{k}} \] mirror current variation \(\sigma_{I_k} = k g_m \sigma_{vth}\), relative variation of mirror current is \[ \frac{\sigma_{I_k}}{I_k} = \frac{k g_m \sigma_{vth}}{kI} = \frac{g_m \sigma_{vth,src}}{I}\sqrt{1+\frac{1}{k}}=\color{red}\frac{\sigma_{I}}{I}\sqrt{1+\frac{1}{k}} \]


Biasing current source and global variation Monte Carlo

image-20221020225334767

image-20221020225502503

iwl: biased by mirror

iwl_ideal: biased by vdc source, whose value is typical corner


For local variation, constant voltage bias (vb_const in schematic) help reduce variation from \(\sqrt{2}\Delta V_{th}\) to \(\Delta V_{th}\)

For global variation, all device have same variation, mirror help reduce variation by sharing same \(V_{gs}\)

  1. global variation + local variation (All MC)

image-20221020225615633

  1. local variation (Mismatch MC)

image-20221020225701218

  1. global variation (Process MC)

image-20221020232515420

We had better bias mos gate with mirror rather than the vdc source while simulating sub-block.

This is real situation due to current source are always biased by mirror and vdc biasing don't give the right result in global variation Monte Carlo simulation (542.8n is too pessimistic, 13.07p is right result)

Small gain theorem

Dr. Degang Chen, EE 501: CMOS Analog Integrated Circuit Design [https://class.ece.iastate.edu/djchen/ee501/2020/References.ppt]

image-20231202102259692

For any given constant values of u and v, the constant values of variables that solve the the feed back relationship are called the operating points, or equilibrium points.

Operating points can be either stable or unstable.

An operating point is unstable if any or some small perturbation near it causes divergence away from that operating point.

If the loop gain evaluated at an operating point is less than one, that operating point is stable.

This is a sufficient condition

image-20231202105749888

image-20231202105621385

With \(m_{1\to 2} = 1\) \[ \text{Loop Gain} \simeq \frac{V_{BN}-V_{T2}}{V_{BN}-V_{T2} + V_R} \tag{$LG_0$} \] Assuming all MOS in strong inv operation, \(I\), \(V_{BN}\) and \(V_R\) is obtain \[\begin{align} I &= \frac{2\beta _1 + 2\beta _2 - 4\sqrt{\beta _1 \beta _2}}{R^2\beta _1 \beta _2} \\ V_{BN} &= V_{T2} + \frac{2}{R\beta _2}(1- \sqrt{\frac{\beta _2}{\beta _1}}) \\ IR &= \frac{2}{R}\left( \frac{1}{\sqrt{\beta_2}} - \frac{1}{\sqrt{\beta_1}} \right) \end{align}\]

Substitute \(V_{BN}\) and \(V_R\) of \(LG_0\) \[\begin{align} \text{Loop Gain} & \simeq \frac{1-\sqrt{\frac{\beta_2}{\beta_1}}}{\frac{\beta_2}{\beta_1} - 3\sqrt{\frac{\beta_2}{\beta_1}}+2} \\ &= \frac{1}{2-\sqrt{\frac{\beta_2}{\beta_1}}} \tag{$LG_1$} \end{align}\]



Alternative approach for Loop Gain

using derivation of large signal

image-20231202132310478

image-20231202134138319


❗❗❗ R should not be on the other side

image-20231202104505264

Self-Biasing Cascode

image-20231212153054247


cascode_selfbias.drawio


v2i.drawio

reference

B. Razavi, "The Design of a Low-Voltage Bandgap Reference [The Analog Mind]," in IEEE Solid-State Circuits Magazine, vol. 13, no. 3, pp. 6-16, Summer 2021, [https://www.seas.ucla.edu/brweb/papers/Journals/BR_SSCM_3_2021.pdf]

Shanthi Pavan, IIT Madras, India , ISSCC 2026: Circuit Insights Voltage and Current Reference Generation [https://youtu.be/i1bKJvtiXmY], [slides]

Correlated Double Sampling (CDS)

TODO 📅

Dynamic Element Matching (DEM)

TODO 📅

image-20241112214430191

Galton, Ian. (2010). Why dynamic-element-matching DACs work. Circuits and Systems II: Express Briefs, IEEE Transactions on. 57. 69 - 74. 10.1109/TCSII.2010.2042131. [https://sci-hub.se/10.1109/TCSII.2010.2042131]

KHIEM NGUYEN. Analog Devices Inc, "Practical Dynamic Element Matching Techniques for 3-level Unit Elements" [https://picture.iczhiku.com/resource/eetop/shihEDaaoJjFdCVc.pdf]

E. Alvarez-Fontecilla, P. S. Wilkins and S. C. Rose, "Understanding High-Resolution Dynamic Element Matching DACs [Feature]," in IEEE Circuits and Systems Magazine, vol. 23, no. 4, pp. 34-43, Fourthquarter 2023

E. Alvarez-Fontecilla and P. S. Wilkins, "Linearity Through Democracy [Feature]," in IEEE Circuits and Systems Magazine, vol. 25, no. 1, pp. 58-69, Firstquarter 2025

Autozeroing

offset is sampled and then subtracted from the input

Measure the offset somehow and then subtract it from the input signal

low gain comparator

image-20241023224809158

Residual Noise of Auto-zeroing

P. Bruschi, Dynamic techniques for the rejection of the offset and low frequency noise [https://docenti.ing.unipi.it/~a008309/mat_stud/MIXED/2023/Lecture_notes/Chap_2_2_Offset_Flicker_Reduction.pdf] [slides]

image-20240826212343905


\[ \color{blue}\boxed{ v_{\rm out}(t)=v_t(t)+v_h(t) } \] where: \[ \boxed{ v_t(t):\ \text{track-phase noise, RC low-pass shaped} } \] and \[ \boxed{ v_h(t):\ \text{sampled/held } kT/C \text{ noise, pulse-shape sinc shaped} } \] image-20260630233528220

image-20260630233445210

image-20240826213958740

pnosie Noise Type: timeaverage

image-20240826214306376

\(\Pi\)-Capacitor

pi_Cap.drawio

\[\begin{align} (V_a-V_{a0})C_0 + (\overline{V_a - V_b} - \overline{V_{a0} - V_{b0}})C_1 &= \Delta Q_a \\ (V_b-V_{b0})C_0 + (\overline{V_b - V_a} - \overline{V_{b0} - V_{a0}})C_1 &= \Delta Q_b \end{align}\]

therefore we obtain \[\begin{align} V_a + V_b &= \frac{\Delta Q_a + \Delta Q_b}{C_0} + V_{a0} + V_{b0} \\ V_a - V_b &= \frac{\Delta Q_a - \Delta Q_b}{C_0+2C_1} + V_{a0} - V_{b0} \end{align}\] Then \[\begin{align} V_a &= \frac{\Delta Q_a(C_0+C_1)+\Delta Q_b C_1}{C_0(C_0+2C_1)} + V_{a0} \\ V_b &= \frac{\Delta Q_aC_1+\Delta Q_b (C_0+C_1)}{C_0(C_0+2C_1)} + V_{b0} \end{align}\]

rearrange the above equation \[\begin{align} V_a &= \frac{\Delta Q_a}{C_0} + \frac{\Delta Q_b-\Delta Q_a}{C_0(\frac{C_0}{C_1}+2)} + V_{a0} \\ V_b &= \frac{\Delta Q_b}{C_0} + \frac{\Delta Q_a-\Delta Q_b}{C_0(\frac{C_0}{C_1}+2)} + V_{b0} \end{align}\]

The difference between \(V_a\) and \(V_b\) \[ V_a - V_b = \frac{I_a-I_b}{C_0+2C_1}t + V_{a0} - V_{b0} \]

\(C_1\) save total capacitor area while retaining the same \(V_a - V_b\) due to \(\Delta I_{a,b}\), in comparison to \(C_0\)


image-20250802170659120

at autozero phase \[\begin{align} I_{a0} &= \frac{1}{2}\mu C_{OX}\frac{W}{L}(V_{a0} - V_{TH})^2 \\ I_{Rb} &= \frac{1}{2}\mu C_{OX}\frac{W}{L}(V_{b0} - V_{TH})^2 \end{align}\]

then \[ \Delta I_0 = \frac{1}{2}(V_{a0} - V_{b0})(g_{m,a0}+g_{m,b0}) \] where \(g_{m,a0}+g_{m,b0} = \mu C_{OX}\frac{W}{L}(V_{a0}+V_{b0} - 2V_{TH})\)

at comparison phase \[\begin{align} I_{a1} &= \frac{1}{2}\mu C_{OX}\frac{W}{L}(V_{a1} - V_{TH})^2 \\ I_{b1} &= \frac{1}{2}\mu C_{OX}\frac{W}{L}(V_{b1} - V_{TH})^2 \end{align}\]

then \[ \Delta I_1 = \frac{1}{2}(V_{a1} - V_{b1})(g_{m,a1}+g_{m,b1}) \] That is, \(g_{m,a1}+g_{m,b1} = \mu C_{OX}\frac{W}{L}(V_{a1}+V_{b1} - 2V_{TH})\)

To minimize the difference between \(\Delta I_1\) and \(\Delta I_0\), the drift of both differential and common mode between \(V_a\) and \(V_b\) shall be alleviated

autozero-mos

Chopping

offset is modulated away from the signal band and then filtered out

Modulate the offset away from DC and then filter it out

Good: Magically reduces offset, 1/f noise, drift

Bad: But creates switching spikes, chopper ripple and other artifacts …

Chopping in the Frequency Domain

Square-wave Modulation

definition of convolution \(y(t) = x(t)*h(t)= \int_{-\infty}^{\infty} x(\tau)h(t-\tau)d\tau\)

for real signal \(H(j\omega)^*=H(-j\omega)\)​

image-20260722211826349

\[ H(j\hat{\omega})*H(j\hat{\omega}) = \int_{-\infty}^{\infty}H(j\omega)H(j(\hat{\omega}-\omega))d\omega \]

sq_mod.drawio

The Fourier Series of squarewave \(x(t)\) with amplitudes \(\pm 1\), period \(T_0\)

\[ C_n = \left\{ \begin{array}{cl} 0 &\space \ n=0 \\ 0 &\space \ n=\text{even} \\ |\frac{2}{n\pi}| &\space n=\pm 1,\pm 5,\pm9, ... \\ -|\frac{2}{n\pi}| &\space n=\pm 3,\pm 7,\pm11, ... \end{array} \right. \]

The Fourier transform of \(s(t)=x(t)x(t)\), and we know \[\begin{align} S(j2n\omega_0) &= \frac{1}{2\pi}\int X(j(2n\omega_0 -\omega))X(j\omega) d\omega\\ &= \frac{1}{2\pi}\int X(j(\omega-2n\omega_0))X(j\omega) d\omega \end{align}\]

Therefore \(n=0\) \[ S(j0) = \frac{1}{2\pi} (2\pi)^2\cdot \frac{4}{\pi ^2}2\sum_{n=0}^{+\infty}\frac{1}{(2n+1)^2} \delta(\omega) = 2\pi \delta(\omega) \]

if \(n=1\)

\[\begin{align} S(j2\omega_0) &= \frac{1}{2\pi} (2\pi)^2\cdot \frac{4}{\pi ^2}\left(1 - 2\sum_{n=0}^{+\infty}\frac{1}{(2n+1)(2n+3)} \right) \\ &= \frac{1}{2\pi} (2\pi)^2\cdot \frac{4}{\pi ^2}\left(1 - 2\sum_{n=0}^{+\infty}\frac{1}{2}\left[\frac{1}{2n+1}- \frac{1}{2n+3}\right] \right) \\ &= 0 \end{align}\]

image-20241013125713945

\(n=2\) \[\begin{align} \sum &= -\frac{2}{3} + 2\left(\frac{1}{1\times 5}+ \frac{1}{3\times 7}+ \frac{1}{5\times 9} + \frac{1}{7\times 11}+...\right) \\ &= -\frac{2}{3} + 2\cdot \frac{1}{4}\left(\frac{1}{1}-\frac{1}{5}+ \frac{1}{3}- \frac{1}{7}+ \frac{1}{5} - \frac{1}{9} +\frac{1}{7}-\frac{1}{11}+...\right) \\ &= -\frac{2}{3} + 2\cdot \frac{1}{4}\frac{4}{3} = 0 \end{align}\]

That is, the input signal remains the same after chopping or squarewave up/down modulation

EXAMPLE 2.7 in R. E. Ziemer and W. H. Tranter, Principles of Communications, 7th ed., Wiley, 2013 [pdf]

Prove that \(\pi^2/8 = 1 + 1/3^2 + 1/5^2 + 1/7^2 + \cdots\) [https://math.stackexchange.com/a/2348996]

Bandwidth & Gain Accuracy

image-20260722211856320

  • lower effective gain: DC level at the output of the amplifiers is a bit less than what it should be

  • chopping artifacts at the even harmonics: frequency of output is \(2f_{ch}\)

Below we justify \(A_\text{eff} = A(1-4\tau/T_\text{ch})\) \[ V_o(t) = A + (V_0-A)e^{-t/\tau} \qquad V_o(T/2) = -V_0 \]

then \[ V_0 = -A\frac{1-e^{-T/2\tau}}{1+e^{-T/2\tau}} \] Then DC level is \[ A_\text{eff} = \frac{1}{T/2}\int_0^{T/2} V_o(t)dt = A\left(1-\frac{4\tau}{T}\cdot \frac{1-e^{-T/2\tau}}{1+e^{-T/2\tau}}\right)\approx A\left(1-\frac{4\tau}{T}\right) \]

where assuming \(\tau \ll T\)

REF. [https://raytroop.github.io/2023/01/01/insight/#rc-charge-discharge]


chopping_OTA_limitedBW.drawio

[https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/57799/very-low-dc-gain-of-pstb-simulation/1392299]

Residual Offset of Chopping

image-20260722212055690

assume input spikes can be expressed as \[ V_\text{spike}(t) = V_o e^{-\frac{t}{\tau}} \]

Then, residual offset is

\[\begin{align} \overline{V_\text{os}} &= \frac{2\int_0^{T_{ch}/2}V_\text{spike}(t)dt}{T_{ch}} = 2f_{ch}V_o\int_0^{T_{ch}/2} e^{-\frac{t}{\tau}}dt = 2f_{ch}V_o\tau\int_0^{T_{ch}/2\tau} e^{-\frac{t}{\tau}}d\frac{t}{\tau}\\ &\approx 2f_{ch}V_o\tau \end{align}\]

image-20260630000850210

Chopping Simulation

EE 501: CMOS Analog Integrated Circuit Design — Chopping for Offset reduction [https://class.ece.iastate.edu/djchen/ee501/2016/Chopper_design_EE501.pptx]

  • Run transient simulation to ensure the amp output can settle into a steady-state and offset ripple is small
  • Run PAC/ Pnoise to verify the ac and noise performance with chopping on

image-20260313222441008

image-20260313222605049

image-20260313223136592

image-20260313223245981

Ripple Cancellation after Chopping

On-chip analog filter is not good enough due to limited cutoff frequency

rippleCancel.drawio

at \(\Phi_+\) phase \[ \left\{ \begin{array}{cl} \Delta V_\text{os}[n] &= \frac{I_l[n]-I_r[n-1]}{G_m} \\ \left(I_0+\frac{V_\text{os0}-\Delta V_\text{os}[n]}{R_E}\right)\beta &= I_l[n]+I_r[n-1] \end{array} \right. \] Then \[ \left\{ \begin{array}{cl} I_r[n-1] &= \frac{-G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n] &= \frac{G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \] at \(\Phi_-\) phase \[ \left\{ \begin{array}{cl} \Delta V_\text{os}[n] &= \frac{I_l[n-1]-I_r[n]}{G_m} \\ \left(I_0+\frac{-V_\text{os0}+\Delta V_\text{os}[n]}{R_E}\right)\beta &= I_l[n-1]+I_r[n] \end{array} \right. \] Then \[ \left\{ \begin{array}{cl} I_r[n] &= \frac{-G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n-1] &= \frac{G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \] \(\Phi_+ \to \Phi_-\) state transformation \[ \left\{ \begin{array}{cl} I_r[n-1] &= \frac{-G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n] &= \frac{G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \to \left\{ \begin{array}{cl} I_r[n+1] &= \frac{-G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n] &= \frac{G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \] Two \(I_l[n]\) shall be equal, that is \[ \frac{G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 = \frac{G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \] Rearrange the above equation \[ \Delta V_\text{os}[n+1] = \frac{G_mR_E-\beta}{G_mR_E+\beta}\Delta V_\text{os}[n] + \frac{2\beta}{G_mR_E+\beta}V_\text{os0} \] \(\Phi_- \to \Phi_+\) state transformation \[ \left\{ \begin{array}{cl} I_r[n] &= \frac{-G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n-1] &= \frac{G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \to \left\{ \begin{array}{cl} I_r[n] &= \frac{-G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \\ I_l[n+1] &= \frac{G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \end{array} \right. \] Two \(I_r[n]\) shall be equal, that is \[ \frac{-G_mR_E+\beta}{2R_E}\cdot \Delta V_\text{os}[n] - \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 = \frac{-G_mR_E-\beta}{2R_E}\cdot \Delta V_\text{os}[n+1] + \frac{\beta}{2R_E}V_\text{os0}+\frac{\beta}{2}I_0 \] Rearrange the above equation \[ \Delta V_\text{os}[n+1] = \frac{G_mR_E-\beta}{G_mR_E+\beta}\Delta V_\text{os}[n] + \frac{2\beta}{G_mR_E+\beta}V_\text{os0} \]

Both State-transition equations are same \[ \Delta V_\text{os}[n+1] = \frac{G_mR_E-\beta}{G_mR_E+\beta}\Delta V_\text{os}[n] + \frac{2\beta}{G_mR_E+\beta}V_\text{os0} \] With geometric progression sum formula \[ \Delta V_\text{os}[n] = \left(\frac{G_mR_E-\beta}{G_mR_E+\beta}\right)^n\cdot \Delta V_\text{os}[0] + \left[1-\left(\frac{G_mR_E-\beta}{G_mR_E+\beta}\right)^n\right]\cdot V_\text{os0} \] during \(n \to \infty\) \[ \lim_{n\to \infty} \Delta V_\text{os}[n] = V_\text{os0} \] As expected \[ \lim_{n\to \infty} V_\text{os}[n] =\lim_{n\to \infty} V_\text{os0}-\Delta V_\text{os}[n] = 0 \]


Assuming that begainning from \(\Phi_+\) phase \[ \left\{ \begin{array}{cl} \Delta V_\text{os}[0] &= \frac{I_l[0]-I_r[-1]}{G_m} \\ \left(I_0+\frac{V_\text{os0}-\Delta V_\text{os}[0]}{R_E}\right)\beta &= I_l[0]+I_r[-1] \end{array} \right. \overset{\mathcal{I_r[-1]=0}}{\Longrightarrow} \Delta V_\text{os}[0]=\frac{(I_0R_E+V_\text{os0})\beta}{G_mR_E+\beta} \] With \(I_0=10\mu A\), \(R_E=5k \Omega\), \(V_\text{os0}=20mV\), \(G_m=500\mu S\), \(\beta=0.5\) \[ \left\{ \begin{array}{cl} \Delta V_\text{os}[0] &= 167mV \\ \frac{G_mR_E-\beta}{G_mR_E+\beta} &= 0.667 \end{array} \right. \]

image-20250803231213438

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DVos0 = 167;  % mV
Vos0 = 20; % mV
Rr = 0.667;

n = 1:1:50;
DVosn_DVos0 = Rr.^n*DVos0;
DVosn_Vos0 = (1-Rr.^n)*Vos0;
DVosn = DVosn_DVos0 + DVosn_Vos0;

plot(n, DVosn_DVos0,'--r', LineWidth=2);
hold on
plot(n, DVosn_Vos0, '--g', LineWidth=2);
plot(n, DVosn, 'b', LineWidth=3);
plot(-5:1:55, ones(1,61)*Vos0, '--k', LineWidth=2)

grid on;
xlim([-5, 55]);ylim([-5, 120]);
xlabel('n', FontSize=16); ylabel('mV', FontSize=16);
legend('$\Delta V_{os}[0]$ decaying','$V_{os0}$ decaying','$\Delta V_{os}[n]$', '$V_{os0}$', 'Interpreter','latex', fontsize=16)

reference

P. Bruschi, Dynamic techniques for the rejection of the offset and low frequency noise [https://docenti.ing.unipi.it/~a008309/mat_stud/MIXED/2023/Lecture_notes/Chap_2_2_Offset_Flicker_Reduction.pdf] [slides]

C. C. Enz and G. C. Temes, "Circuit techniques for reducing the effects of op-amp imperfections: autozeroing, correlated double sampling, and chopper stabilization," in Proceedings of the IEEE, vol. 84, no. 11, pp. 1584-1614, Nov. 1996, doi: 10.1109/5.542410. [http://www2.ing.unipi.it/~a008309/mat_stud/MIXED/archive/2019/Articles/Offset_canc_Enz_Temes_96.pdf]

R. Gregorian and G. C. Temes. Analog MOS Integrated Circuits for Signal Processing. Wiley-Interscience, 1986

Christian-Charles Enz. "High precision CMOS micropower amplifiers"

Kofi Makinwa. Precision Analog Circuit Design: Coping with Variability, [https://youtu.be/nA_DZtRqrTQ] [https://youtu.be/uwRpP20Lprc]

—, ISSCC 2007 Dynamic-Offset Cancellation Techniques in CMOS

—, Why Needs A Low Ripple after Chopping Amplifier for A Very Low DC Offset & Flicker Noise? [https://youtu.be/y7TzJtHE7IA]

Qinwen Fan, 2022 SSCS webinar: Evolution of precision amplifiers

—. IEEE Sensors 2018: Capacitively-Coupled Chopper Instrumentation Amplifiers : an Overview [https://youtu.be/NoGHJfCFCks]

Axel Thomsen, Silicon Laboratories ISSCC2012 T8: "Managing Offset and Flicker Noise"


CC Chen. Why Dynamic Offset or Mismatch Cancellation with Auto-zeroing Technique? [https://youtu.be/PQJwzd1tyO0]

—. Why Dynamic Offset or Mismatch Cancellation with Chopping Technique? [https://youtu.be/x5FS8jEKu_g]

—. Why Design Challenge in Chopping Offset & Flicker Noise? [https://youtu.be/ydjca2KrXgc]

—. Why Needs A Low Ripple after Chopping Amplifier for A Very Low DC Offset & Flicker Noise? [https://youtu.be/y7TzJtHE7IA]

Modulation of WSS process

Balu Santhanam, Probability Theory & Stochastic Process 2020: [Modulation of Random Processes]

Chembian Thambidurai, "Power Spectral Density of Pulsed Noise Signals" [link]

image-20260212215230196

Case Signal Carrier phase Ensemble ACF Stationarity PSD / averaged PSD
Oscillator with small random phase noise \(v(t)=A\sin(\omega_0t+\varphi(t))\) fixed carrier \(\omega_0t\), small random \(\varphi(t)\) \(\displaystyle R_v(t,\tau)\) contains terms like \(\cos(2\omega_0t+\omega_0\tau)\) Cyclostationary, not WSS Time-averaged: \(\displaystyle S_v(f)=\frac{A^2}{4}\left[\delta(f-f_0)+\delta(f+f_0)+S_\varphi(f-f_0)+S_\varphi(f+f_0)\right]\)
Random process × random-phase cosine \(Y(t)=X(t)\cos(\Omega_c t+\Theta)\) \(\Theta\sim U[0,2\pi)\) \(\displaystyle R_{YY}(\tau)=\frac{R_{XX}(\tau)}{2}\cos(\Omega_c\tau)\) WSS, if \(X(t)\) is WSS \(\displaystyle P_{YY}(\Omega)=\frac{P_{XX}(\Omega+\Omega_c)+P_{XX}(\Omega-\Omega_c)}{4}\)
Random process × deterministic cosine \(S(t)=m(t)\cos(\Omega_c t+\phi_0)\) fixed \(\phi_0\) \(\displaystyle R_{SS}(t,\tau)=\frac{R_{mm}(\tau)}{2}\left[\cos(\Omega_c\tau)+\cos(2\Omega_c t+\Omega_c\tau+2\phi_0)\right]\) Cyclostationary, not WSS Time-averaged: \(\displaystyle \tilde P_{SS}(\Omega)=\frac{P_{mm}(\Omega+\Omega_c)+P_{mm}(\Omega-\Omega_c)}{4}\)

modulated with small perturbation

Nicola Da Dalt , Understanding Jitter and Phase Noise: 3.1.3 Voltage to Excess Phase Transformations: Random Noise

Given \(\color{blue}\phi(t)\ll 1\), the autocorrelation still depends on absolute time \(t\). Therefore \(v(t)\) is cyclostationary, and they must take a time average over one carrier period.

image-20260621100923112


Chembiyan T. Jitter and Phase Noise in Phase Locked Loops [link]

\[ y(t) = A\cos(2\pi f_0t+\phi_n(t)) \approx A \cos(2\pi f_0 t) - A \phi_n (t)\sin(2\pi f_0 t) \]

image-20241228020953646 \[ R_x(\tau) = \frac{A^2}{2}\cos(2\pi f_0\tau) + \frac{A^2}{2}R_\phi(\tau)\cos(2\pi f_0\tau) \] The PSD of the signal \(x(t)\) is given by \[ S_x(f) = \mathcal{F}\{R_x(\tau)\} = \frac{P_c}{2}\left[\delta(f+f_0)+\delta(f-f_0)+S_\phi(f+f_0)+S_\phi(f-f_0)\right] \] where \(P_c = A^2/2\) is the carrier power of the signal

modulated with full-cycle random

Given \(\color{blue}\Theta\sim U[0,2\pi]\), after ensemble averaging, the autocorrelation becomes WSS

image-20241107202647998


Haykin, Simon S., and Michael Moher. Communication Systems. 5th ed. John Wiley & Sons, 2009. - Mixing of a Random Process with a Sinusoidal Process

image-20260704095301335



Assume \(\Theta\sim \mathcal U[0,2\pi)\) is a single random phase that remains constant for all \(t\): \[ \color{blue}\boxed{X(t)=A\cos(\omega_0t+\Theta).} \]

Mean \[ \begin{aligned} m_X(t) &=\mathbb E[X(t)]\\ &=\frac{A}{2\pi}\int_0^{2\pi} \cos(\omega_0t+\theta)\,d\theta\\ &=0. \end{aligned} \]

Thus, the mean is independent of \(t\).

Autocorrelation

For \(t_1\) and \(t_2\), \[ R_X(t_1,t_2) = \mathbb E[X(t_1)X(t_2)]. \] Using \(\cos a\cos b=\frac{1}{2}\left[\cos(a-b)+\cos(a+b)\right],\)

we obtain \[ \begin{aligned} R_X(t_1,t_2) &= \frac{A^2}{2} \mathbb E\left[ \cos\big(\omega_0(t_1-t_2)\big) + \cos\big(\omega_0(t_1+t_2)+2\Theta\big) \right]. \end{aligned} \] Since \(\Theta\) is uniform, \[ \mathbb E\left[ \cos\big(\omega_0(t_1+t_2)+2\Theta\big) \right]=0. \] Therefore, \[ \boxed{ R_X(t_1,t_2) = \frac{A^2}{2} \cos\big(\omega_0(t_1-t_2)\big) } \] or, defining \(\tau=t_1-t_2\), \[ \boxed{ R_X(\tau)=\frac{A^2}{2}\cos(\omega_0\tau) }. \] The autocorrelation depends only on the time difference \(\tau\).

Is it WSS?

Yes. The two WSS conditions are satisfied: \[ m_X(t)=0, \] which is constant, and \[ R_X(t_1,t_2)=R_X(t_1-t_2). \] Thus, \[ \boxed{X(t)\text{ is wide-sense stationary.}} \] In fact, because a time shift simply changes the uniformly distributed phase, \[ X(t+t_0) = A\cos\left(\omega_0t+\underbrace{\Theta+\omega_0t_0}_{\text{still uniform modulo }2\pi}\right), \] the process is also strict-sense stationary.

Power spectral density

Using the angular-frequency Fourier-transform convention \[ S_X(\omega) = \int_{-\infty}^{\infty} R_X(\tau)e^{-j\omega\tau}\,d\tau, \] and \[ \mathcal F\{\cos(\omega_0\tau)\} = \pi\left[ \delta(\omega-\omega_0)+\delta(\omega+\omega_0) \right], \] we get \[ \boxed{ S_X(\omega) = \frac{\pi A^2}{2} \left[ \delta(\omega-\omega_0) + \delta(\omega+\omega_0) \right] }. \] Thus, the PSD consists of two spectral lines at \(\omega=\pm\omega_0\).

The total average power is \[ R_X(0)=\frac{A^2}{2}, \] and equivalently, \[ \frac{1}{2\pi}\int_{-\infty}^{\infty}S_X(\omega)\,d\omega = \frac{A^2}{2}. \] For frequency \(f\), where \(f_0=\omega_0/(2\pi)\), \[ \color{blue}\boxed{ S_X(f) = \frac{A^2}{4} \left[ \delta(f-f_0)+\delta(f+f_0) \right] }. \] The random phase makes the ensemble stationary; a sinusoid with a fixed deterministic phase is not normally regarded as a stationary random process because it contains no random ensemble.

image-20260725093435128

modulated with deterministic cosine

the carrier phase/time origin is fixed, not randomized, it not WSS but cyclostationary

image-20241107202947949


image-20241003001204803

Hayder Radha, ECE 458 Communications Systems Laboratory Spring 2008: Lecture 7 - EE 179: Introduction to Communications - Winter 2006–2007 Energy and Power Spectral Density and Autocorrelation



image-20241002231615792

image-20241002231639299



\(g(t) = i_n(t)\sin\omega_0 t\) is not WSS (it's cyclostationary), but its time-averaged PSD is white

image-20260731220218142

the solution silently performs the time-averaging step

image-20260731220208819


Assume zero-mean white noise \(n(t)\) is multiplied by a sinusoid:

\[ y(t)=n(t)\cos(\omega_0 t) \]

Let the two-sided white-noise PSD be

\[ S_n(f)=\frac{N_0}{2} \]

so

\[ R_n(\tau)=\frac{N_0}{2}\delta(\tau) \]

Because the sinusoid is deterministic and time-varying, \(y(t)\) is generally cyclostationary, not WSS.

Using the symmetric autocorrelation definition,

\[ R_y(t,\tau) = E\left[ y\left(t+\frac{\tau}{2}\right) y\left(t-\frac{\tau}{2}\right) \right] \]

we get

\[\begin{aligned} R_y(t,\tau) &= R_n(\tau) \cos\left(\omega_0 t+\frac{\omega_0\tau}{2}\right) \cos\left(\omega_0 t-\frac{\omega_0\tau}{2}\right) \\ &= \frac{R_n(\tau)}{2} \left[ \cos(\omega_0\tau)+\cos(2\omega_0t) \right] \end{aligned}\]

Therefore, for white noise,

\[ \boxed{ R_y(t,\tau) = \frac{N_0}{4} \left[ \cos(\omega_0\tau)+\cos(2\omega_0t) \right]\delta(\tau) } \]

If you average over one modulation period, then

\[ \overline{R_y}(\tau) = \frac12 R_n(\tau)\cos(\omega_0\tau) \]

For general stationary noise this corresponds to

\[ \boxed{ \overline{S_y}(f) = \frac14 \left[ S_n(f-f_0)+S_n(f+f_0) \right] } \]

where \(f_0=\frac{\omega_0}{2\pi}\)

For ideal white noise,

\[ S_n(f-f_0)=S_n(f+f_0)=\frac{N_0}{2} \]

so

\[ \boxed{ \overline{S_y}(f)=\frac{N_0}{4} } \]

Thus an important result is: multiplying ideal white noise by a sinusoid does not change the shape of its time-averaged PSD—it remains white—but its average PSD is reduced by a factor of 2, because

\[ \overline{\cos^2(\omega_0t)}=\frac12 \]

For colored noise, however, the sinusoidal multiplication creates two shifted copies:

\[ S_n(f) \rightarrow \frac14S_n(f-f_0)+\frac14S_n(f+f_0) \]

Quadrature-Modulated Processes

Haykin, Simon S., and Michael Moher. Communication Systems. 5th ed. John Wiley & Sons, 2009.

image-20251116160857679


Dr. Vishal Saxena, ECE518 Memory/Clock Synchronization IC Design: Oscillator Phase Noise [https://www.eecis.udel.edu/~vsaxena/courses/ece504/Handouts/Oscillator%20Phase%20Noise.pdf]

image-20260618063335225

Sampling of WSS process

Balu Santhanam, Probability Theory & Stochastic Process 2020: Impulse sampling of Random Processes

DT sequence \(x[n]\)

image-20240428162643394

image-20240428162655969

image-20250812194041059

Owing to \(\phi[0] = \phi_c(0)\), the average power of the sampled version \(x[n]\) is the same as its input \(x_c(t)\)

impulse train \(x_s(t)\)

image-20241106222744962

image-20241106222817998

That is \[ P_{x_s x_s} (f)= \frac{1}{T_s^2}P_{xx}(f) \] where \(x[n]\) is sampled discrete-time sequence, \(x_s(t)\) is sampled impulse train

Noise Aliasing

apply foregoing observation

Pulsed Noise Signals

Chembian Thambidurai, "Power Spectral Density of Pulsed Noise Signals" [link]

image-20241208075822212

Above, the output of the multiplier be \(y(t)\) is passed through a ideal brick wall low pass filter with a bandwidth of \(f_0/2\)

When a random signal is multiplied by a pulse function, the resulting signal becomes a cyclo-stationary random process.

As rule of thumb, the spectrum of such a pulsed noise signal

  • thermal noise is multiplied by \(\color{red}D\)

  • flicker noise is multiplied by \(\color{red}D^2\),

where \(D\) is the duty cycle of the pulse signal

image-20241208111744647

banlimited input (no aliasing)

image-20241208113904927

wideband white noise input

image-20241208114442705

flicker noise input

with \(S_x(f)=\frac{K_f}{f}\)

image-20241208121027250

image-20241208121402724

Assuming \(\Delta f \ll f_0\)

image-20241208121645637


image-20241208111506517


Rectangular Pulse Sampling

Balu Santhanam. ece439 Introduction to Digital Signal Processing. Example: Rectangular Pulse Sampling [http://ece-research.unm.edu/bsanthan/ece439/recsamp.pdf]

image-20250810115325546

image-20250810115031537

reference

Alan V Oppenheim, Ronald W. Schafer. Discrete-Time Signal Processing, 3rd edition [pdf]

R. E. Ziemer and W. H. Tranter, Principles of Communications, 7th ed., Wiley, 2013 [pdf]

John G. Proakis and Masoud Salehi, Fundamentals of communication systems 2nd ed [pdf]

Rhee, W. and Yu, Z., 2024. Phase-Locked Loops: System Perspectives and Circuit Design Aspects. John Wiley & Sons

Lacaita, Andrea Leonardo, Salvatore Levantino, and Carlo Samori. Integrated frequency synthesizers for wireless systems. Cambridge University Press, 2007

Phillips, Joel R. and Kenneth S. Kundert. "Noise in mixers, oscillators, samplers, and logic: an introduction to cyclostationary noise." Proceedings of the IEEE 2000 Custom Integrated Circuits Conference. [pdf, slides]

Antoni, J., "Cyclostationarity by examples", Mechanical Systems and Signal Processing, vol. 23, no. 4, pp. 987–1036, 2009 [https://docente.unife.it/docenti/dleglc/a-a-2010-2011-dmsm/ciclostazionarieta.pdf]

Kundert, Ken. (2006). Simulating Switched-Capacitor Filters with SpectreRF. URL:https://designers-guide.org/analysis/sc-filters.pdf

STEADY-STATE AND CYCLO-STATIONARY RTS NOISE IN MOSFETS [https://ris.utwente.nl/ws/portalfiles/portal/6038220/thesis-Kolhatkar.pdf]

Christian-Charles Enz. "High precision CMOS micropower amplifiers" [pdf]

L.W. Couch, Digital and Analog Communication Systems, 8th Edition, Pearson, 2013. [pdf]

0%