Noise: Track & Hold: Theory <=> Sim.: Fits for "f3dB >> fs" but doesn't fit for "f3dB << fs"
With big interest I have read the paper from Ken Kundert: “Simulating Switched-Capacitor Filters with Cadence SpectreRF” and I have written an according Matlab script for it, which then I compare with a PNOISE Cadence simulation of a Track And Hold circuit.
Case #1: Matching
In this paper, an example with values is presented (R = 2.3k, C=10pF, m=0.4, fs=400kHz) which I compared against the values calculated from the Matlab script and they fit, so the script looks for me to be correct.
Case #2: Matching as well
With other values (R = 1k, C=1uF, m=0.5, fs=1), the script also matches the Cadence simulation.
We see the Root-Spectral-Density RSD noise result at low frequencies of just the RC filter “Vo1” gives 4.07 nV/sqrt(Hz), the PNoise result of “Vo” gives 45 nV/sqrt(Hz) and after the S&H gives “90 nV/sqrt(Hz)”:
The Matlab RSD gives everywhere matching results: At low frequencies, these are 4.07 nV for just the RC filter, 45 nV/sqrt(Hz) for the Track and Hold (m=0.5), and after the S&H (m=0) it gives “90 nV/sqrt(Hz)”:
Case #3: Does NOT match!
If I just change the capacitor from 1uF to 1F, the script does NOT match anymore with the Cadence simulation. The integrated result with 64pVrms matches again, but the Root-Spectral Density RSD = “sqrt(PSD)” plot looks _different_ ! At low frequencies I have (2 times) sqrt(2) noise difference from the Cadence simulation (5.76 nVrms/sqrt(Hz)) compared to the Matlab script (4.07nVrms/sqrt(Hz) or 2.88nVrms/sqrt(Hz)).
In this “Case #3”, as in contrast to the others, the -3dB bandwidth of the RC filter is 159 uHz which is much less than the sampling frequency fs with 1 Hz and for me it seems clear that there is no aliasing.
Are then the equations for “f-3dB << fs” maybe not valid anymore and if so, what do I have to modify where in the script in order that I get a closed form result ( = not with “if” “else” statements) for ALL cases matching?
Ken Kundert writes about the “time average noise” so maybe I do the PNoise sim. not correct? For me it’s hard to say now if the Cadence sim is wrong due to a maybe wrong setup / use (“time-average” vs. “sampled” etc. *1)) or the theory / equations are just not true anymore for Case #3.
Does anyone hopefully please have an idea or a hint for me? That would be great!
Thanks very much,
*1) For the PAC analysis I got completely (!) wrong results when I used the simulator option “time-average”, so I had to use the “PAC sampled” analysis to show the correct result for required data-read out at phase 1 or 2 active in a switched-capacitor integrator. Maybe here with noise it is the same thing?