Small AC noise analysis¶
The small signal AC noise analysis calculates the noise spectral densities at a particular Node
or Component
within a circuit due to
noise sources within the circuit, assuming that the noise is small enough not to influence the
operating point and gain of the circuit.
Generating noise sums¶
Incoherent noise sums can be created as part of the analysis and added to the Solution
.
This is governed by the incoherent_sum
parameter of calculate()
.
Setting incoherent_sum
to True
results in the incoherent sum of all noise in the circuit at
the specified noise sink being calculated and added as a single function to the solution.
Alternatively, incoherent_sum
can be specified as a dict
containing legend labels as
keys and sequences of noise spectra as values. The noise spectra can either be
NoiseDensity
objects or noise specifier strings as supported by Solution.get_noise()
. The values may alternatively be the
strings “all”, “allop” or “allr” to compute noise from all components, all op-amps and all
resistors, respectively.
Sums are plotted in shades of grey determined by the plotting configuration’s
sum_greyscale_cycle_start
, sum_greyscale_cycle_stop
and sum_greyscale_cycle_count
values.
Examples¶
Add a total incoherent sum to the solution:
solution = analysis.calculate(frequencies=frequencies, input_type="voltage", node="n1",
sink="nout", incoherent_sum=True)
Add an incoherent sum of all resistor noise:
solution = analysis.calculate(frequencies=frequencies, input_type="voltage", node="n1",
sink="nout", incoherent_sum={"resistors": "allr"})
Add incoherent sums of all resistor and op-amp noise:
# Shorthand syntax.
solution = analysis.calculate(frequencies=frequencies, input_type="voltage", node="n1",
sink="nout", incoherent_sum={"resistors": "allr",
"op-amps": "allop"})
# Alternatively specify components directly using noise specifiers.
solution = analysis.calculate(frequencies=frequencies, input_type="voltage", node="n1",
sink="nout", incoherent_sum={"sum": ["R(r1)", "V(op1)"]})
Referring noise to the input¶
It is often desirable to refer the noise at a node or component to the input. This is particularly useful when modelling readout circuits (e.g. for photodetectors), where the input referred noise shows the smallest equivalent signal spectral density that can be detected above the noise.
Noise analyses can refer noise at a node or component to the input by setting the input_refer
flag to True
in calculate()
, which makes Zero apply a response
function (from the noise sink to the input) to the noise computed at the noise sink. The resulting
noise has its sink
property changed to the input. If input_type
was set to voltage
, this
is the input node; whereas if input_type
was set to current
, this is the input component.
Note
The input referring response function is obtained by performing a separate signal analysis with the same circuit as the noise analysis. The response from the input to the sink is then extracted and inverted to give the response from the sink to the input. The noise at the sink in the noise analysis is then multiplied by this input referring response function.