Product Documentation
Spectre Circuit Simulator Reference
Product Version 23.1, September 2023

Quasi-Periodic Noise Analysis (qpnoise)

Description

The Quasi-Periodic Noise, or QPNOISE analysis, is similar to the conventional noise analysis, except that it includes frequency conversion and intermodulation effects. Hence, it is useful for predicting the noise behavior of mixers, switched-capacitor filters, and other periodically or quasi-periodically driven circuits.

QPNOISE analysis linearizes the circuit about the quasi-periodic operating point computed in the prerequisite QPSS analysis. It is the quasi-periodically time-varying nature of the linearized circuit that accounts for the frequency conversion and intermodulation. The effect of a quasi-periodically time-varying bias point on the noise generated by the various components in the circuit is also included.

The time-average of the noise at the output of the circuit is computed in the form of spectral density versus frequency. The output of the circuit is specified with a pair of nodes or a probe component. To specify the output of a circuit with a probe, specify it using the oprobe parameter. If the output is voltage (or potential), choose a resistor or a port as the output probe. If the output is current (or flow), choose a vsource or iprobe as the output probe.

If the input-referred noise is required, specify the input source by using the iprobe parameter. Currently, only a vsource, an isource, or a port may be used as an input probe. If the input source is noisy, as is a port, the noise analysis computes the noise factor (F) and noise figure (NF). To match the IEEE definition of noise figure, the input probe must be a port with no excess noise and its noisetemp must be set to 16.85C (290K). In addition, the output load must be a resistor or port and must be identified as the oprobe.

If port is specified as the input probe, both input-referred noise and gain are referred back to the equivalent voltage source inside the port. S-parameter analysis calculates those values in traditional sense.

The reference sideband (refsideband) specifies which conversion gain is used when computing input-referred noise, noise factor, and noise figure. The reference sideband satisfies:

|f(input)| = |f(out) + refsideband frequency shift|.

The reference sideband option ('refsidebandoption') specifies whether to consider the input at the frequency or at the individual quasi-periodic sideband that is specified. Note that Different sidebands can lead to the same frequency.

Sidebands are vectors in QPNOISE. Assuming one large tone and one moderate tone in QPSS, a sideband Ki is a vector [Ki_1 Ki_2]. It gives the frequency at:

Ki_1 * fund (large tone of QPSS) + Ki_2 * fund (moderate tone of QPSS)

Use refsideband=[0 0 ...] when the input and output of the circuit are at the same frequency, such as with amplifiers and filters.

The noise analysis always computes the total noise at the output, which includes contributions from the input source and the output load. The amount of the output noise that is attributable to each noise source in the circuit is also computed and output individually. If the input source is identified (using iprobe) and is a vsource or isource, the input-referred noise is computed, which includes the noise from the input source itself. Finally, if the input source is identified (using iprobe) and is noisy, as is the case with ports, the noise factor and noise figure are computed. Thus, if:

No = total output noise

Ns = noise at the output due to the input probe (the source)

Nsi = noise at the output due to the image harmonic at the source

Nso = noise at the output due to harmonics other than input at the source

Nl = noise at the output due to the output probe (the load)

IRN = input referred noise

G = gain of the circuit

F = noise factor

NF = noise figure

Fdsb = double sideband noise factor

NFdsb = double sideband noise figure

Fieee = IEEE single sideband noise factor

NFieee = IEEE single sideband noise figure

Then:

IRN = sqrt(No^2 / G^2)

F = (No^2 - Nl^2)/Ns^2

NF = 10*log10(F)

Fdsb = (No^2 - Nl^2)/(Ns^2+Nsi^2)

NFdsb = 10*log10(Fdsb)

Fieee = (No^2 - Nl^2 - Nso^2)/Ns^2

NFieee = 10*log10(Fieee).

When the results are output, No is named out, IRN is named in, G is named gain, F, NF, Fdsb, NFdsb, Fieee, and NFieee are named F, NF, Fdsb, NFdsb, Fieee, and NFieee, respectively.

The computation of gain and IRN in QPNOISE assumes that the circuit under test is impedance-matched to the input source. This can introduce inaccuracy into the gain and IRN computation.

Unlike other analyses in Spectre, this analysis can only sweep frequency.

Syntax

Name  [p]  [n] qpnoise parameter=value ...

The optional terminals (p and n) specify the output of the circuit. If you do not specify the terminals, you must specify the output with a probe component.

Parameters

Sweep interval parameters

start

0

Start sweep limit.

stop

Stop sweep limit.

center

Center of sweep.

span

0

Sweep limit span.

step

Step size, linear sweep.

lin

50

Number of steps, linear sweep.

dec

Points per decade.

log

50

Number of steps, log sweep.

values

[...]

Array of sweep values.

valuesfile

Name of the file containing the sweep values.

sweeptype

Specifies if the sweep frequency range is an absolute frequency, that is, actual frequency, or if it is relative to the "relharmvec" sideband frequency. Possible values are absolute and relative.

relharmvec

[...]

Sideband - vector of QPSS harmonics to which relative frequency sweep should be referenced.

Probe parameters

oprobe

Compute total noise at the output defined by this component.

iprobe

Refer the output noise to this component.

refsideband

[...]

Conversion gain associated with this sideband is used when computing input-referred noise or noise figure.

refsidebandoption

individual

Whether to view the sideband as a specification of a frequency or a specification of an individual sideband. Possible values are freq and individual.

Output parameters

clockmaxharm

7

In shooting pnoise, the parameter determines the maximum sideband that is included when computing noise, that is either up-converted or down-converted to the output by the periodic drive signal. In HB pnoise, this parameter determines the size of the small signal system when the HB pnoise is performed. This parameter is critical for the accuracy of the HB pnoise analysis. Using a small maxsideband can cause accuracy loss. The default value for the shooting pnoise is 7. For the HB pnoise, the default is the harms/maxharms setting in the HB large signal analysis..

sidevec

[...]

Array of relevant sidebands for the analysis.

save

Signals to output. The option 'save' specifies the signals to be saved in the result. 'allpub' saves all signals at all levels of hierarchy in the schematic, including the internal signals of device models. 'all' works like 'allpub'. 'lvl' saves all signals through the level of hierarchy set in 'nestlvl' option. 'lvlpub' works like 'lvl'. 'selected' is not recommended to use here. Possible values are all, lvl, allpub, lvlpub and selected.

nestlvl

Levels of subcircuits to output.

saveallsidebands

no

Save noise contributors by sideband. Possible values are no and yes.

noiseout

usb

Specify noise output. You can set a vector like noiseout=[usb am pm]. And all are using single sideband(SSB) convention, half of the total power. Possible values are usb, lsb, am and pm.

separatenoise

no

Separate Noise into sources and transfer functions. Possible values are no and yes.

Convergence parameters

tolerance

Tolerance for linear solver; the default value is 1.0e-9 for shooting-based solver and 1.0e-4 for harmonicbalance-based solver.

relativeTol

Relative tolerance for harmonicbalance-based linear solver; the default value is 1.0e-2.

gear_order

2

Gear order used for small-signal integration, 1 or 2.

solver

turbo

Solver type. Possible values are std and turbo.

resgmrescycle

short

Restarts GMRES cycle. Possible values are instant, short, long, recycleinstant, recycleshort, recyclelong and custom.

hbprecond_solver

autoset

Select a linear solver for the GMRES preconditioner. Default is autoset. With autoset, the simulator will automatically select the appropriate precondtioner. The preconditioner affects the rate of convergence of the linear matrix solver used in periodic small-signal analysis. When autoset is selected, the simulator may decide to switch to a different preconditioner after the analysis begins. When that happens, the simulator may issue a warning instructing you to choose a different preconditioner during subsequent runs. Although not required, choosing a different preconditioner according to the simulator's instructions may speed up subsequent analyses. Possible values are basicsolver, blocksolver, autoset, blockdense, blocksolver2 and directsolver.

lowmem

0

Harmonic balance low memory mode; Possible values are 0, 1, or number (>=10). The default value is '0', the low memory mode is turned off; if '1' is set, the standard low memory mode is turned on; If a number no less than 10 is set, Spectre interprets the value as the memory requested in GigaBytes..

krylov_size

200

This parameter is used to set maximum iteration count of the linear matrix solver used in periodic small-signal analysis. After reaching 1.25*krylov_size  iterations, the iteration is forced to terminate because of the poor rate of convergence. Increase the krylov_size if the simulation reports insufficient norm reduction errors in GMRES.

Annotation parameters

annotate

sweep

Degree of annotation. Possible values are no, title, sweep, status, steps and detailed_hb.

title

Analysis title.

In practice, noise can mix with each of the harmonics of the quasi-periodic drive signal applied in the QPSS analysis and end up at the output frequency. The QPNOISE analysis includes only the noise that mixes with a finite set of harmonics that are specified using the clockmaxharm and sidevec parameters. Sidebands are vectors in quasi-periodic analyses. For one large tone and one moderate tone in QPSS, a sideband K1 is represented as [K1_1 K1_2]. Corresponding frequency shift is as follows:

K1_1 * fund (large tone of QPSS) + K1_2 * fund (moderate tone of QPSS)

Assuming that there are L large and moderate tones in QPSS analysis and a given set of n integer vectors representing the sidebands:

K1 = { K1_1,...K1_j..., K1_L} ,

K2, ... , Kn.

If Ki represents sideband i, then:

f(noise_source) = f(out) + SUM_j=1_to_L{ Ki_j * fund_j(qpss) },

The clockmaxharm parameter affects only clock frequency. It can be less or more than maxharms[1] in QPSS. Moderate tones are limited by maxharms specified in QPSS. Only the selected sidebands specified using the sidevec parameter are included in the calculation. Care should be taken when specifying the sidevec or clockmaxharm in QPNOISE and maxharms in QPSS. Noise results are erroneous if you do not include the sidebands that contribute significant noise to the output.

The number of requested sidebands changes substantially the simulation time.

You can specify sweep limits by specifying the end points or the center value and span of the sweep. Steps can be linear or logarithmic, and you can specify the number of steps or the size of each step. You can specify a step size parameter (step, lin, log, or dec) to determine whether the sweep is linear or logarithmic. If you do not specify a step size parameter, the sweep is linear when the ratio of stop to start values is less than 10 and logarithmic when this ratio is 10 or greater. Alternatively, you may specify the values that the sweep parameter should take by using the values parameter. If you specify both a specific set of values and a set specified using a sweep range, the two sets are merged and collated before being used. All frequencies are in Hertz.


Return to top
 ⠀
X