Quasi-Periodic Transfer Function Analysis (qpxf)
Description
A conventional transfer function analysis computes the transfer function from every source in the circuit to a single output. Unlike a conventional AC analysis that computes the response from a single stimulus to every node in the circuit, the Quasi Periodic Transfer Function or QPXF analysis computes the transfer functions from any source at any frequency to a single output at a single frequency. Thus, like QPAC analysis, QPXF analysis includes frequency conversion effects.
The QPXF analysis directly computes such useful quantities as conversion efficiency (transfer function from input to output at required frequency), image and sideband rejection (input to output at undesired frequency), and LO feed-through and power supply rejection (undesired input to output at all frequencies).
As with a QPAC, QPSP, and QPNOISE analyses, a QPXF analysis must follow a QPSS analysis.
Unlike other analyses in Spectre, this analysis can only sweep frequency.
Syntax
Name [p] [n] qpxf 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
|
Degree of annotation. Possible values are no, title, sweep, status, steps and detailed_hb. |
||
The variable of interest at the output can be voltage or current, and its frequency is not constrained by the period of the large periodic solution. While sweeping the selected output frequency, select the periodic small-signal input frequencies of interest by setting either the clockmaxharm or sidevec parameter. Sidebands are vectors in QPXF. Assuming that there is one large tone and one moderate tone in QPSS, a sideband K1 is represented as [K1_1 K1_2]. The corresponding frequency is as follows:
K1_1 * fund (large tone of QPSS) + K1_2 * fund (moderate tone of QPSS)
In addition, assume that there are L (1 large plus L-1 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.
The input signal frequency at each sideband is computed as follows:
f(in)= f(out) + SUM_j=1_to_L{Ki_j * fund_j(qpss)},
Where, f(out) represents the (possibly swept) output signal frequency, and fund_j(pss) represents the fundamental frequency used in the corresponding QPSS analysis. Thus, when analyzing a down-converting mixer and sweeping the IF output frequency, Ki= {1, 0} for the RF input represents the first upper-sideband, while Ki= {-1, 0} for the RF input represents the first lower-sideband.
Enter sidevec as a sequence of integer numbers, separated by spaces. The set of vectors {1 1 0} {1 -1 0} {1 1 1} becomes sidevec=[ 1 1 0 1 -1 0 1 1 1]. For clockmaxharm, only the large tone- the first fundamental is affected; the rest moderate tones are limited by maxharms, specified for a QPSS analysis. Given maxharms=[k1max k2max ... knmax] in QPSS and clockmaxharm=Kmax, all (2*Kmax + 1)*(2*k2max+1)*(2*k3max+1)*...*(2*knmax+1) sidebands are generated.
The number of requested sidebands changes substantially the simulation time.
With QPXF, the frequency of the stimulus and of the response are usually different (this is an important area in which QPXF differs from XF). The freqaxis parameter is used to specify whether the results should be output versus the input frequency (in), the output frequency (out), or the absolute value of the input frequency (absin).
You can specify the output with a pair of nodes or a probe component. Any component with two or more terminals can be a voltage probe. When there are more than two terminals, they are grouped in pairs, and you use the portv parameter to select the appropriate pair of terminals. Alternatively, you can specify a voltage to be the output by giving a pair of nodes on the QPXF analysis statement.
Any component that naturally computes current as an internal variable can be a current probe. If the probe component computes more than one current, you use the porti parameter to select the appropriate current. It is an error to specify both portv and porti. If neither is specified, the probe component provides a reasonable default.
The stimuli parameter specifies the inputs for the transfer functions. There are two choices. stimuli=sources indicates that the sources present in the circuit should be used. The xfmag parameters provided by the sources may be used to adjust the computed gain to compensate for gains or losses in a test fixture. You can limit the number of sources in hierarchical netlists by using the save and nestlvl parameters. stimuli=nodes_and_terminals indicates that all possible transfer functions should be computed.
This is useful when it is not known in advance which transfer functions are interesting. Transfer functions for nodes are computed assuming that a unit magnitude flow (current) source is connected from the node to ground. Transfer functions for terminals are computed assuming that a unit magnitude value (voltage) source is connected in series with the terminal. By default, the transfer functions from a small set of terminals are computed. If transfer functions from specific terminals are required, specify the terminals in the save statement. You must use the :probe modifier (for example, Rout:1:probe) or specify useprobes=yes on the options statement. If transfer functions from all terminals are required, specify currents=all and useprobes=yes on the options statement.
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