Noise design¶
SLiCAP has a number of built-in scripts to support circuit designers with the analysis and design of the stationary noise behavior of electronic circuits. These functions can be used to process the result of the execution of an instruction with the data type set to NOISE. These functions are listed below and discussed in detail in the following sections.
Please notice that some of these functions use symbolic integration which may fail if the frequency dependency of the spectra becomes too complex.
In the brief descriptions below, we assume that a noise simulation comprising j runs (j-1 steps), has been performed.
Extract source-referred noise¶
The function getInoise.m extracts and returns the j source-referred noise spectra from the .results field. If a
second, optional argument sourceName is given, it returns the contribution to the source-referred noise spectrum of the
noise source sourceName only.
dataType('noise');
result = execute();
iNoiseSpectrum = getInoise(result); % Spectrum of the total source-referred noise
iNoiseContribV1 = getInoise(result, 'V1'); % Contribution of the noise source V1
% in the source-referred noise spectrum
Extract detector-referred noise¶
The function getOnoise.m extracts and returns the j detector-referred noise spectra from .results field. If a
second, optional argument sourceName is given, it returns the contribution to the source-referred noise spectrum of the noise source sourceName only.
dataType('noise');
result = execute();
oNoiseSpectrum = getOnoise(result);
oNoiseContribV1 = getOnoise(result, 'V1'); % Contribution of the noise source 'V1'
% in the detector-referred noise sprectrum
RMS noise¶
The function RMSnoise.m can be used to calculate the total RMS noise over a frequency range. The function requires two additional arguments \(f_{min}\) and \(f_{max}\) and returns the j RMS values:
If the noise spectra \(S_{source,j}\) we obtained after application of correlated double sampling, a fourth optional argument tau which represents the delay dime in the sampler, can be given. This will easy the symbolic calculation of the integral \(\mathrm{Si}(\phi)=\int{\left(\frac{\sin{\phi}}{\phi}\right)^2d\phi}\), where \(\phi=2\pi f\tau\), and \(\tau\) is the sampler delay.
Below the calculation of the total RMS source-referred noise over a frequency range from 10Hz to 10MHz, with and without CDS:
dataType('noise');
result = execute();
soureRefNoiseRMS = RMSnoise(getInoise(result), 10, 1E7);
tau = 1E-6;
resultCDS = doCDS(result, tau);
detRefRMSNoiseCDS = RMSnoise(getOnoise(resultCDS), 10, 1E7, tau);