Noise Analysis

image-20241208103218870

White noise

David Murray. Topic 6: Random Processes and Signals [slides notes]

image-20251214183435273

image-20260626205035373


Mathuranathan. White Noise : Simulation and Analysis using Matlab [https://www.gaussianwaves.com/2013/11/simulation-and-analysis-of-white-noise-in-matlab/]

Wiener Khinchin Theorem

image-20260205202253286

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
clear all; clc; close all;
L=2^20; %Sample length for the random signal
mu=0;
sigma=2;
X=sigma*randn(L,1)+mu;

figure();
subplot(5,1,1)
plot(X);
title(['White noise : \mu_x=',num2str(mu),' \sigma^2=',num2str(sigma^2)])
xlabel('Samples')
ylabel('Sample Values')
grid on

subplot(5,1,2)
n=100; %number of Histrogram bins
[f,x]=hist(X,n);
bar(x,f/trapz(x,f)); hold on;
%Theoretical PDF of Gaussian Random Variable
g=(1/(sqrt(2*pi)*sigma))*exp(-((x-mu).^2)/(2*sigma^2));
plot(x,g, LineWidth=3);hold off; grid on;
title('Theoretical PDF and Simulated Histogram of White Gaussian Noise');
legend('Histogram','Theoretical PDF');
xlabel('Bins');
ylabel('PDF f_x(x)');


subplot(5,1,3)
Rxx=1/L*conv(flipud(X),X);
lags=(-L+1):1:(L-1);

%Alternative method
%[Rxx,lags] =xcorr(X,'biased');
%The argument 'biased' is used for proper scaling by 1/L
%Normalize auto-correlation with sample length for proper scaling

plot(lags,Rxx, LineWidth=4);
title('Auto-correlation Function of white noise');
xlabel('Lags')
ylabel('Correlation')
grid on; hold on;

ss = X.^2;
ssm = sum(ss)/L; % 4.0
stem([0], [ssm], '--o', LineWidth=2)


subplot(5,1,4)
[pxx_norm, f] = pwelch(X, 1024,[],[],1, 'centered');
plot(f, 10*log10(pxx_norm))
axis([-0.5 0.5 0 10]); grid on;
ylabel('PSD (dB/Hz)');
xlabel('Normalized Frequency');
title('Power spectral density of white noise with inbuilt pwelch');

subplot(5,1,5)
%Verifying the constant PSD of White Gaussian Noise Process
%with arbitrary mean and standard deviation sigma

mu=0; %Mean of each realization of Noise Process
sigma=2; %Sigma of each realization of Noise Process

L = 1000; %Number of Random Signal realizations to average
N = 1024; %Sample length for each realization set as power of 2 for FFT

%Generating the Random Process - White Gaussian Noise process
MU=mu*ones(1,N); %Vector of mean for all realizations
Cxx=(sigma^2)*diag(ones(N,1)); %Covariance Matrix for the Random Process
R = chol(Cxx); %Cholesky of Covariance Matrix
%Generating a Multivariate Gaussian Distribution with given mean vector and
%Covariance Matrix Cxx
z = repmat(MU,L,1) + randn(L,N)*R;
%By default, FFT is done across each column - Normal command fft(z)
%Finding the FFT of the Multivariate Distribution across each row
%Command - fft(z,[],2)
Z = 1/sqrt(N)*fft(z,[],2); % Scaling by sqrt(N);
Pzavg = mean(Z.*conj(Z)); % Computing the **mean power** from fft

normFreq= [-N/2:N/2-1]/N;
Pzavg=fftshift(Pzavg); %Shift zero-frequency component to center of spectrum
plot(normFreq,10*log10(Pzavg),'r');
axis([-0.5 0.5 0 10]); grid on;
ylabel('PSD (dB/Hz)');
xlabel('Normalized Frequency');
title('Power spectral density of white noise');

Julius Orion Smith III. Why an Impulse is Not White [https://www.dsprelated.com/freebooks/sasp/Why_Impulse_Not_White.html]

image-20251214183726713


I.I.D. Noise

Independent and Identically Distributed

Kevin Zheng. The Frequency Domain Trap – Beware of Your AC Analysis [https://circuit-artists.com/the-frequency-domain-trap-beware-of-your-ac-analysis/]

Mathuranathan. White Noise : Simulation and Analysis using Matlab [https://www.gaussianwaves.com/2013/11/simulation-and-analysis-of-white-noise-in-matlab/]

white noise doesn't mean it has a Gaussian/normal distribution

The only criteria for a (discrete) signal to be "white" is for each sample to be independently taken from the same probability distribution

img

By understanding input signal's statistical nature, we can gather more insights about certain requirements for our circuits than just from frequency domain

img


image-20250727111432313

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fs = 1;
N = 2^20;
Nhist = 100;
segmentLength = 512;

x_norm = randn(1, N,1); % Generate random data (e.g., Gaussian white noise)
[pxx_norm, f] = pwelch(x_norm, segmentLength, [], [], fs);

x_uniform = 2*rand(N,1) - 1; % uniform random -1 ~ 1;
[pxx_uniform, ~] = pwelch(x_uniform, segmentLength, [], [], fs);

x_sin = sin(2*pi*(rand(N,1) - 0.5)); % sinusoidal-like
[pxx_sin, ~] = pwelch(x_sin, segmentLength, [], [], fs);

x_bin = 2*randi(2,N,1) -3; % binomial distribution, -1, 1
[pxx_bin, ~] = pwelch(x_bin, segmentLength, [], [], fs);

image-20250922225811644

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
val = randn(1, 2^20,1);
val_abs = abs(val);
val_abs_avg = mean(val_abs);
subplot(2,2,1)
histogram(val);
title('x_{norm} distribution'); grid on

subplot(2,2,2)
histogram(val_abs);
title('|x_{norm}| distribution')

subplot(2,2,[3 4])
[pxx, f] = pwelch(val_abs - val_abs_avg, 512, [], [], 1);
plot(f, 10*log10(pxx), LineWidth=4); grid on
title('psd (dB)')

Additive White Gaussian Noise (AWGN)

Qasim Chaudhari. Additive White Gaussian Noise (AWGN) [https://wirelesspi.com/additive-white-gaussian-noise-awgn/]

Mathuranathan. Simulate additive white Gaussian noise (AWGN) channel [https://www.gaussianwaves.com/2015/06/how-to-generate-awgn-noise-in-matlaboctave-without-using-in-built-awgn-function/]

Does PSD (dBm/Hz) of white noise depend on sampling rate?. Does PSD (dBm/Hz) of white noise depend on sampling rate? [https://dsp.stackexchange.com/a/87654/59253]

Matthew Schubert. Colouring Noise - Generating coloured noise to simulate physical processes [https://blog.ioces.com/matt/posts/colouring-noise/]

\[ \text{PSD}_s = \frac{\sigma^2}{f_s} \space\space \text{for two-sided PSD} \space\space\space \text{or}\space\space\space =\frac{\sigma^2}{f_s/2}\space\space \text{for one-sided PSD} \]

image-20251208011528326

that total power will always be the same for any sampling rate used (as long as the histogram of those samples is still \(\sigma_x\)). Thus the power spectral density will be \(\sigma_x^2/f_s\).

dt_wn.drawio


How to generate white noise signal from a given PSD? [https://www.mathworks.com/matlabcentral/answers/1968-how-to-generate-white-noise-signal-from-a-given-psd#answer_1498849]

image-20251208012745236

image-20260205181758905

White noise in continuous-time blocks

MathWorks Support Team. [https://www.mathworks.com/matlabcentral/answers/100763-why-have-a-band-limited-white-noise-generator-block-instead-of-just-a-white-noise-generator-block#answer_110112]

white_noise_sampling.drawio

image-20260111215146609

Transient Noise and VerilogA Modeling

Integrated Analog Systems D - Lecture 15S CAD (Transient Noise and VerilogA Modeling) [https://youtu.be/YW2nnI3DD_c]

image-20260524203753033


image-20260524204336130

image-20260524210106332

fs=2*noisefmax guarantee zero aliasing within FFT

image-20260524205908449

image-20260524210935425


image-20260524211731802

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
`include "disciplines.vams"
`include "constants.vams"

module noise_src(p, n);
inout p, n;
electrical p, n;

parameter real nd = 4e-9 from (0:inf); // noise density [V/sqrt(Hz)]
parameter real bw = 1e9 from (0:inf); // noise bandwidth [Hz]
parameter integer seed = 271;

integer iseed;
real nv;

analog begin
@(initial_step) iseed = seed;
@(timer(0, 0.5/bw)) nv = nd * $rdist_normal(iseed, 0.0, sqrt(bw));
V(p,n) <+ transition(nv, 0, 0.5/bw);
end
endmodule

image-20260524233845040

image-20260524233657579

[Gist link]

Colored Noise Generation

Allen B. Downey. Think DSP - Digital Signal Processing in Python [book repo]

Chembian Thambidurai, "Comparison Of Noise Power At Lowpass Filter Output" [link]

—, "On Noise Power At The Bandpass Filter Output" [link]

Steve Smith. An Interesting Fourier Transform - 1/f Noise [https://www.dsprelated.com/showarticle/40.php]

Mathuranathan. Generate correlated Gaussian sequence (colored noise) [https://www.gaussianwaves.com/2019/10/generating-correlated-gaussian-sequences/]

Jeruchim et., al, Simulation of communication systems – modeling, methodology, and techniques, second edition, Kluwer academic publishers, 2002

Power spectral densities of white noise and colored noise

image-20260207205413258

image-20260207214631283

Two methods to generate colored Gaussian noise for given mean and PSD shape

  • Spectral Factorization Method
  • Auto-Regressive (AR) Model

Filtering in Time domain

Alessandro Cudazzo. noise generator developed in C99 (white, brown) [https://github.com/alessandrocuda/noise_generator]

with Derivatives approximation, \(H_p(s) = \frac{1}{s\tau + 1} \to H_p(z)=\frac{\alpha}{1 +(\alpha -1)z^{-1}}\), where \(\alpha = \frac{T}{\tau+T}\)

image-20251207222557118

1
2
3
4
5
get_bnoise(){
RawData = (randq64_double()*2.0 -1.0)/VOLUME_BN;
SmoothData = SmoothData - (LPF_Beta * (SmoothData - RawData)); // RC Filter
return SmoothData;
}

image-20260207210932591

1
2
3
4
5
6
%Colored Noise Generation
x=whiteNoise;
%First Order Low pass filter y(n)=a*y(n-1)+(1-a)*x(n)
%Filter Trasfer function Y(Z) = X(Z)*(1-a)/(1-aZ^-1)
[y zf]=filter(1-a,[1 -a],x);
coloredNoise = y;

Julius Orion Smith III. Spectral Audio Signal Processing [https://www.dsprelated.com/freebooks/sasp/Filtered_White_Noise.html]

Example: Synthesis of 1/F Noise (Pink Noise)

1
2
3
4
5
6
7
8
9
10
11
12
Nx = 2^16;  % number of samples to synthesize
B = [0.049922035 -0.095993537 0.050612699 -0.004408786];
A = [1 -2.494956002 2.017265875 -0.522189400];
nT60 = round(log(1000)/(1-max(abs(roots(A))))); % T60 est.
v = randn(1,Nx+nT60); % Gaussian white noise: N(0,1)
x = filter(B,A,v); % Apply 1/F roll-off to PSD
x = x(nT60+1:end); % Skip transient response

%{
octave:1> sum(B)/sum(A)
ans = 1.0991
%}

Filtering in Frequency domain

Matthew Schubert. Colouring Noise - Generating coloured noise to simulate physical processes [https://blog.ioces.com/matt/posts/colouring-noise/] [https://gist.github.com/m-schubert/45c562146c6607b8990f1e8f34ff87b0]

A dark plot with 5 data series on it for violet, blue, white, pink and brownian noise, each coloured in their respective colours.

White, Pink \(1/f\), Brownian \(1/f^2\), Blue \(f\), Violet \(f^2\)

The process of generating coloured noise is relatively simple:

  1. Start with a representation of white noise signal in the frequency domain
  2. Shape the signal in the frequency domain according to the PSD you'd like to achieve
  3. Take the inverse Fourier transform of the shaped signal

Sampling shaping transfer function (not scaled by \(1/T_s\)) make sense in time domain convolution between sampled noise and sampled impulse response of filter

AR(N) Model Method

Generate color noise using Auto-Regressive (AR) model [https://www.gaussianwaves.com/2019/12/color-noise-generation-using-auto-regressive-ar-model-power-law-noises/]

Konstantinos Chatzilygeroudis. Lecture 9 & 10: Noise Models & Linear Filters [notes, slides]

image-20260207220223975

image-20260207221055698

Autoregressive (AR) modeling in signal processing represents a signal as a linear combination of its own previous values plus a white noise error term, effectively acting as an all-pole IIR filter


Google AI Mode [https://share.google/aimode/QAuvWdwJFng54cYZo]

1
2
3
4
5
6
7
8
9
10
11
12
13
% https://github.com/vineel49/colored_noise/blob/master/RUN_ME.m


% IIR FILTER PARAMETERS (USED TO GENERATE COLOURED NOISE)
a = 0.99;
B = sqrt(1-a^2); % INPUT COEFFICIENTS IN THE DIFFERENCE EQUATION
A = [1 -a]; % OUTPUT COEFFICIENTS IN THE DIFFERENCE EQUATION

% ADDITIVE COLOURED GAUSSIAN NOISE
% AWGN
AWGN = normrnd(0,NOISE_STD_DEV,1,1000+FRAME_SIZE)+1i*normrnd(0,NOISE_STD_DEV,1,1000+FRAME_SIZE);
ACGN = filter(B,A,AWGN);
ACGN(1:1000) = []; % DISCARDING TRANSIENT SAMPLES

impulse sampling noise

Chembian Thambidurai, "Noise, Sampling and Zeta Functions" [link]

A random signal \(v_n(t)\) is sampled using an ideal impulse sampler

image-20241201165157743

image-20260225220015404

image-20260225221746857

image-20260225220034823

image-20260225221607463

Sampling coloured noise

image-20260225224020057

converging PSD

image-20260225224308880

integrated power of the sampled signal in the Nyquist band

image-20260225225239293

image-20260225221938521

sampling bandlimited white noise

Kundert, Ken. (2006). Simulating Switched-Capacitor Filters with SpectreRF [https://designers-guide.org/analysis/sc-filters.pdf]

Pavan, Schreier and Temes, "Understanding Delta-Sigma Data Converters, Second Edition" ISBN 978-1-119-25827-8

Tania Khanna, ESE568 Fall 2019, Mixed Signal Circuit Design and Modeling URL: https://www.seas.upenn.edu/~ese568/fall2019/

Matt Pharr, Wenzel Jakob, and Greg Humphreys. 2016. Physically Based Rendering: From Theory to Implementation (3rd. ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

R. Gregorian and G. C. Temes. Analog MOS Integrated Circuits for Signal Processing. Wiley-Interscience, 1986

Trevor Caldwell, Lecture 9 Noise in Switched-Capacitor Circuits [http://individual.utoronto.ca/trevorcaldwell/course/NoiseSC.pdf]

Christian-Charles Enz. High precision CMOS micropower amplifiers [pdf]

The aliasing of the noise, or noise folding, plays an important role in switched-capacitor as it does in all switched-capacitor filters

image-20240425215938141

Assume for the moment that the switch is always closed (that there is no hold phase), the single-sided noise density would be

image-20240428182816109


image-20240428180635082

\(v_s[n]\) is the sampled version of \(v_{RC}(t)\), i.e. \(v_s[n]= v_{RC}(nT_C)\) \[ S_s(e^{j\omega}) = \frac{1}{T_C} \sum_{k=-\infty}^{\infty}S_{RC}(j(\frac{\omega}{T_C}-\frac{2\pi k}{T_C})) \cdot \mathrm{d}\omega \] where \(\omega \in [-\pi, \pi]\), furthermore \(\frac{\mathrm{d}\omega}{T_C}= \mathrm{d}\Omega\) \[ S_s(j\Omega) = \sum_{k=-\infty}^{\infty}S_{RC}(j(\Omega-k\Omega_s)) \cdot \mathrm{d}\Omega \]

image-20240428215559780

image-20240425220033340

image-20260604210651691

To implement a zero-order hold involves convolving the sequence \(v_s\) with a pulse of unit height with a width of \((1-m)T_c\) and the highlighting \(T_c\) bridge sequence to impulse

image-20240425220400924

where \(m\) is the duty cycle

\[ \boxed{\color{purple}\overline{v_c^2} = \overline{v_s^2} = \frac{kT}{C}} \]


Below analysis focusing on sampled noise \(v_s\)

Boris Murmann. Noise Analysis in Switched-Capacitor Circuits, ISSCC 2011 / tutorials [slides, transcript]

—. EE315A VLSI Signal Conditioning Circuits [pdf]

—. EE315B VLSI Data Conversion Circuits, Autumn 2013 [pdf]

image-20250810085721440

image-20260212234532530

  • Calculate autocorrelation function of noise at the output of the RC filter
  • Calculate the spectrum by taking the discrete time Fourier transform of the autocorrelation function

Bernhard E. Boser . Advanced Analog Integrated Circuits Switched Capacitor Gain Stages [https://people.eecs.berkeley.edu/~boser/courses/240B/lectures/M05%20SC%20Gain%20Stages.pdf]

image-20240427183700971


P. Bruschi, Microelectronic System Design, [https://docenti.ing.unipi.it/~a008309/mat_stud/MIXED/2023/Slides_pdf/05_Switches_and_caps.pdf]

image-20260523093243527

image-20260523093342636

Cyclostationary Noise (Modulated Noise)

[https://ece-research.unm.edu/bsanthan/ece541/cyclo.pdf]

Chembian Thambidurai, "Power Spectral Density of Pulsed Noise Signals" [link]

image-20241123230025107

image-20241123230049341

image-20241123215631264

White Noise Modulation

Noisy Resistor & Clocked Switch

\[ v_t (t) = v_i(t)\cdot m_t(t) \]

where \(v_i(t)\) is input white noise, whose autocorrelation is \(A\delta(\tau)\), and \(m_t(t)\) is periodically operating switch, then autocorrelation of \(v_t(t)\) \[ R_t (t_1, t_2) = E[v_t(t_1)\cdot v_t(t_2)] = R_i(t_1, t_2)\cdot m_t(t_1)m_t(t_2) \]

Then \[ R_t(t, t-\tau) = R_i(\tau)\cdot m_t(t)m_t(t-\tau) = A\delta(\tau) \cdot m_t(t)m_t(t-\tau) = A\delta(\tau) \cdot m_t(t) \] Because \(m_t(t)=m_t(t+T)\), \(R_t(t, t-\tau)\) is is periodic in the variable \(t\) with period \(T\)

The time-averaged ACF is denoted as \(\tilde{R_t}(\tau)\)

\[ \tilde{R}_{t}(\tau) = m\cdot A\delta(\tau) \] That is, \[ \boxed{S_t(f) = m\cdot S_{A}(f)} \]


image-20241118212505205

image-20241118212242823

image-20241116170450589



alternative method, inspired by Claude

white_modulation.drawio \[ \boxed{S_O=H^2*S_I=S_I\sum_{m=-\infty}^{\infty}|c_m|^2} \] with CTFS's Parseval's Relation — \(\frac{1}{T} \int_{0}^{T} \vert{}f(x)\vert{}^2 \, dx = \sum_{n=-\infty}^{\infty} \vert{}c_n\vert{}^2\) \[ \sum_{m=-\infty}^{\infty}|c_m|^2 = \mathcal{D}\cdot \mathcal{h}^2 \] where \(\mathcal{D}\) is duty cycle and \(\mathcal{h}\) is height of periodic pulse

Then, Two-sided PSD is \[ \boxed{S_O=S_I\cdot \mathcal{D}\cdot \textcolor{blue}{\mathcal{h}^2}} \]

Colored Noise Modulation

tavg_factor.drawio \[ \tilde{R_t}(\tau) = R_i(\tau)\cdot m_{tac}(\tau) \]

where \(m_t(t)m_t(t-\tau)\) averaged on \(t\) is denoted as \(m_{tac}(\tau)\) or \(\overline{m_t(t)m_t(t-\tau)}\)

The DC value of \(m_{tac}(\tau)\) can be calculated as below

  1. for \(m\le 0.5\), the DC value of \(m_{tac}(\tau)\) \[ \frac{m\cdot mT}{T} = m^2 \]

  2. for \(m\gt 0.5\), the DC value of \(m_{tac}(\tau)\) \[ \frac{(m+2m-1)(1-m)T + (2m-1)\{mT -(1-m)T\}}{T} = m^2 \]

Therefore, time-average power spectral density and total power are scaled by \(m^2\) in fundamental frequency sideband

\[ \boxed{S_t(f) = m^2\cdot S_{A}(f)} \]


image-20241118213007400

image-20241118215846751

image-20241117205422217

Track signal in Switched-Capacitor

image-20241118213830893

image-20241116165632847 \[ \color{blue}\boxed{\text{switch thermal noise is modulated by the clock first, then shaped by the RC low-pass}} \] image-20260630222904433


track signal pnoise (sc)

image-20241118220145885

image-20241118215956843

zoom in first harmonic by linear step of pnoise

image-20241118220904802

decreasing the rising/falling time of clock, the harmonics still retain


equivalent circuit for pnoise (eq)

  1. thermal noise of R is modulated at first
  2. then filtered by ideal filter

image-20241118214320950

image-20241118220027598


sc vs eq

image-20241118222730383

  • sc: harmonic distortion
  • eq: no harmonic distortion

Non-Stationary Processes (Comparator)

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]

image-20251020204611858

WSS white noise input image-20251022084714201 image-20251022084805639
white noise step input image-20251022084648664 image-20251022084948197

Wide-Sense-Stationary Noise

Much like sinusoidal-steady-state signal analysis, steady-state noise analysis methods assume an input \(x(t)\) of infinite duration, which is a Wide-Sense Stationary (WSS) random process

Frequency-domain Analysis

image-20241122233117654


image-20251020212455123

Time-domain Analysis

The output \(y(t)\) of a linear time-invariant (LTI) system \(h(t)\) \[\begin{align} R_{yy}(\tau) &= R_{xx}(\tau)*[h(\tau)*h(-\tau)] \\ &= S_{xx}(0)\delta(\tau) * [h(\tau)*h(-\tau)] \\ &= S_{xx}(0)[h(\tau)*h(-\tau)] \\ &= S_{xx}(0) \int_\alpha h(\alpha)h(\alpha-\tau)d\alpha \end{align}\]

with WSS white noise input \(x(t)\), \(R_{xx}(\tau)=S_{xx}(0)\delta(\tau)\), therefore

image-20251020210923501


image-20251020211524360

\[ V_o(s) = \frac{1}{C}\frac{RC}{1+sRC}\cdot I_n(s) \overset{\mathcal{L}} {\longrightarrow} \frac{1}{C}e^{-t/\tau_0} \]

where \(\tau_0 = RC\)

Non-stationary Noise

Assuming the noise applied duration is much less than the time constant, the output voltage does not reach steady-state and WSS noise analysis does not apply

image-20251020212837224

Time-domain Analysis

image-20251020213929095

The step noise input \(x(t) = \nu(t)u(t)\) where an underlying WSS process \(\nu(t)\) \[ R_{xx}(t_1,t_2) = E[x(t_1)x(t_2)] = R_{\nu\nu}(t_1, t_2)u(t_1)u(t_2)=R_{\nu\nu}(t_1, t_2) \tag{3.28} \] image-20251020213729837

image-20241123005644828

\[ R_{xy}(t_1, t_2) = E[x(t_1)y(t_2)] = E[x(t_1)(x(t_2)*h(t_2))] = E(x(t_1)x(t_2))*h(t_2) = R_{xx}(t_1,t_2)*h(t_2) \]

\[ R_{yy}(t_1,t_2) = E[y(t_1)y(t_2)] = E[(x(t_1)*h(t_1))y(t_2)] = E[x(t_1)y(t_2)]*h(t_1)=R_{xy}(t_1,t_2)*h(t_1) \]

image-20241123011304449

the absolute value of each time index is important for a non-stationary signal, and only the time difference was important for WSS signals

\[\begin{align} R_{yy}(t_1,t_2) &= h(t_1)*R_{\nu\nu}(t_1, t_2)*h(t_2) \\ &= h(t_1)*S_{xx}(0)\delta(t_2-t_1)*h(t_2) \\ &=S_{xx}(0) h(t_1)*(\delta(t_2-t_1)*h(t_2)) \\ &= S_{xx}(0)h(t_1)*h(t_2-t_1) \\ &= S_{xx}(0)\int_\tau h(\tau)h(t_2-t_1+\tau))d\tau \end{align}\]

That is \[ \sigma^2_y (t)= R_{yy}(t_1,t_2)|_{t_1=t_2=t}=S_{xx}(0)\int_{-\infty}^t |h(\tau)|^2d\tau \tag{3.33} \]

\(t\), the upper limit of integration is just intuitive, which lacks strict derivation

image-20241123074316370


Because stable systems have impulse responses that decay to zero as time goes to infinity, the output noise variance approaches the WSS result as time approaches infinity

image-20251020221312637


Richard Schreier. ECE1371 Advanced Analog Circuits Lecture 8 - COMPARATOR & FLASH ADC DESIGN [http://individual.utoronto.ca/schreier/lectures/2015/8-6.pdf]

image-20250710221018596

\[ R_{yy}(0) = \frac{1}{2\pi}\int_{-\infty}^{\infty}|H(\omega)|^2S_{xx}(\omega)\mathrm{d}\omega = S \cdot \frac{1}{2\pi}\int_{-\infty}^{\infty}|H(\omega)|^2\mathrm{d}\omega \overset{\text{Parseval's Relation}}{=} S\cdot \int_{-\infty}^{\infty}|h(t)|^2\mathrm{d}t \]

Frequency-domain Analysis

Because the definition of the PSD assumes that the variance of the noise process is independent of time, the PSD of a non-stationary process is not very meaningful

image-20251020223516242

image-20251020223535752

image-20241123084118787

Input Referred Noise

image-20251020230435173

Noise Voltage to Timing Jitter Conversion & noise gain

image-20241123100031499

image-20251020235112340

\[\begin{align} \overline{v_n^2}(t_i) &= \frac{\overline{v_{on}^2}}{|A_N|^2} \\ &= \frac{G_n}{G_m}\frac{kT}{C}\frac{1}{A_0}\frac{1+e^{-t_i/\tau_o}}{1-e^{-t_i/\tau_o}} \\ &=4kT\frac{G_n}{G_m^2}\frac{1}{4R_oC} \coth(\frac{t_i}{2\tau_o}) \\ &= 4kTR_n\frac{1}{4\tau_o} \coth(\frac{t_i}{2\tau_o}) \end{align}\]

where \(R_n = \frac{G_n}{G_m^2}\), the equivalent thermal noise resistance

image-20251021000657960

image-20241123111642852


Suppose \(t_i \ll \tau_0\) \[ \overline{v_n^2}(t_i) = 4kTR_n\frac{1}{4\tau_o} \coth(\frac{t_i}{2\tau_o}) \approx 4kTR_n\frac{1}{4\tau_o} \frac{1 + (1-\frac{t_i}{\tau_0})}{1 - (1-\frac{t_i}{\tau_0})} =4kTR_n \cdot \frac{1}{2t_i} \]

image-20251021004235631

Suppose \(t_i \gg \tau_0\) \[ \overline{v_n^2}(t_i) = 4kTR_n\frac{1}{4\tau_o} \coth(\frac{t_i}{2\tau_o}) \approx 4kTR_n\frac{1}{4\tau_o} = \frac{G_n}{G_m}\frac{kT}{C}\frac{1}{A_0} \] As expected, the input referred noise voltage is \(kT/C\) noise

Windowed Integrals of Noise

A. A. Abidi, "Phase Noise and Jitter in CMOS Ring Oscillators," in IEEE Journal of Solid-State Circuits, vol. 41, no. 8, pp. 1803-1816, Aug. 2006 [pdf]

image-20260212231450725

Lossless Integral

a noise current integrates onto a capacitor only

image-20260212231256772

With white Gaussian noise at the input, the output spectrum is no longer white although its distribution remains Gaussian


image-20260213001029878

Lossy Integral

a noise current integrates onto a capacitor which is shunted by a finite loss resistance

\[ \frac{V}{I}(s) = \frac{1}{C}\frac{RC}{1+sRC} \overset{\mathcal{L}^{-1}}{\longrightarrow}\frac{1}{C}\cdot e^{-\frac{t}{RC}} \]

Laplace transform of Truncated Impulse Response \(0 \to t_d\) \[ \int_{0}^{t_d}\frac{1}{C}\cdot e^{-\frac{t}{RC}} \cdot e^{-st}dt = \frac{1}{C}\cdot \frac{1}{s+\frac{1}{RC}}\left(1-e^{-(st_d+\theta)}\right)=\frac{1}{C}\cdot \color{red}\frac{t_d}{st_d+\theta}\left(1-e^{-(st_d+\theta)}\right) \]

Google AI Mode [https://share.google/aimode/O6rjWM1YWel0NudI7]

image-20260213011010297

image-20260213010855382

Flicker Noise Formulations in Compact Models

G. J. Coram, C. C. McAndrew, K. K. Gullapalli and K. S. Kundert, "Flicker Noise Formulations in Compact Models," in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 39, no. 10, pp. 2812-2821, Oct. 2020 [https://kenkundert.com/docs/tcad20-flicker-noise.pdf],[https://github.com/KenKundert/flicker-noise]

BSIM4v4.7 MOSFET Model -User's Manual [https://class.ece.iastate.edu/djchen/ee501/BSIM470_Manual.pdf]

TODO 📅

reference

David Herres, The difference between signal under-sampling, aliasing, and folding URL: https://www.testandmeasurementtips.com/the-difference-between-signal-under-sampling-aliasing-and-folding-faq/

Pharr, Matt; Humphreys, Greg. (28 June 2010). Physically Based Rendering: From Theory to Implementation. Morgan Kaufmann. ISBN 978-0-12-375079-2. Chapter 7 (Sampling and reconstruction)

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

Mathuranathan Viswanathan. Digital Modulations using Matlab: Build Simulation Models from Scratch