Page tree
Skip to end of metadata
Go to start of metadata

Using Circuit Simulators for RF System Analysis

The steady-state simulation of RF/IF subsystems in the frequency domain is achieved in Advanced Design System through the use of various circuit and system simulation components, as well as through a variety of measurement functions that can be applied to simulation data. Budget, spur (spurious signal), noise, and group delay data are typical objectives obtainable with these components, and a sweep analysis is a common way to obtain system response at a variety of frequencies, power levels, and other operating conditions.

For details refer to the following related topics, including a variety of examples:


The appropriate simulator licenses are required to run simulations examples, i.e. a Harmonic Balance simulation requires the Harmonic Balance simulator license (included in all Circuit Design suites except the RF Designer suite.) You may build the examples without the appropriate license, but will simply be unable to run the simulations.

Applicable Simulation Components

The circuit simulation components that can be used for system analysis are the AC, S-Parameter, Harmonic Balance, LSSP (including the use of the P2D Simulation component to generate power-dependent S-parameters), and XDB components. This topics assumes that you are familiar with how to use those simulators to analyze circuits and display data. This section presents just a few of the RF system objectives that can be obtained.

By selecting the Harmonic Balance Simulation ( HB ) component in the Simulation-HB palette, you can achieve the following:

  • Perform a budget analysis to determine the signal and noise performance for elements in an RF system network. This includes measuring system performance at an element's input or output, and therefore finding the degree to which an element contributes to the degradation of system performance.
  • Perform a sweep analysis to determine the network's port-to-port performance with respect to a swept parameter such as frequency or power.
  • Perform a spurious-signal analysis to determine the network's spurious spectral tones, where all intermodulation products are due not only to mixer signal input and local oscillator mixing, but also to the nonlinearities of amplifiers.
  • Use the Perform Budget simulation option to obtain currents and voltages at named nodes throughout the system. Use budget measurements to postprocess the resulting data.

By selecting the AC Simulation component ( AC ) in the Simulation-AC palette, you can achieve the following:

  • Use the Enable AC Frequency Conversion option to do a small-signal analysis in systems containing freq.
  • Perform a small-signal noise analysis at the IF at a variety of nodes.
  • Use the Perform Budget simulation option to obtain currents and voltages at all pins of each element in the system. Use budget measurements to postprocess the resulting data.

By selecting the S_Param ( SP ) component, in the Simulation-S_Param palette, you can achieve the following:

  • Determine linear scattering parameters (S-parameters).
  • Use the Group delay option to analyze the group delay from the input to the output of the system.

By selecting the LSSP simulation component ( LSSP ), in the Simulation-LSSP palette, you can achieve the following:

Perform a large-signal sweep of, for example, gain versus frequency and power, to determine the effect of gain compression on S-parameters.

By selecting P2D Simulation component ( P2D ), in the Simulation-LSSP palette, you can achieve the following:

Create a system-level amplifier model by generating a power-dependent S-parameter file for a circuit-level amplifier design.

Applicable Measurements

From among the many measurements that are available, a variety of those specific to system analysis are found in their respective simulation palettes. The following table lists some of the system-applicable measurements that are available on the schematic page, and shows the palettes in which they can be found:

Measurements for System Analysis
Palette Measurement Description
Simulation-HB BudLinearization Linear budget simulation
Pspec Power frequency spectrum
Vspec Voltage frequency spectrum
Ip3in Input third-order intercept point
Ip3out Output third-order intercept point
CarrToIM Ratio of carrier signal power to IMD power
SFDR Spurious-free dynamic range
SNR Signal-to-noise ratio
Simulation-LSSP BudLinearization Linear budget simulation
GainComp Gain compression
PhaseComp Phase compression
Simulation-S-Param PwrGain Power gain
MaxGain Maximum available gain
NsPwrRefBW Noise power in a reference bandwidth

These measurements and others are placed in the Schematic window and used in conjunction with a simulation.

Fundamentals of Using Circuit Simulators for System Analysis

The following figure shows a block diagram of a typical RF system. Such a system often consists of many interconnected linear and nonlinear "black-box" elements representing amplifiers, filters, mixers, modulators, demodulators, transmission lines, and radio links, as well as source and load matching elements. Each black box can in turn be composed of many circuit elements.

At the system simulation level, the signal transformation property of each black box is known, but the internal circuit characteristics of the elements need not be of concern.

Block diagram of a typical RF system

The following figure shows an example RF system as represented on the schematic page. A variety of applicable simulation components and measurements are made available on the example schematic; turn them on and off as needed.


This design, RF_SYS1.dsn, can be found in the examples directory under Tutorial/SimModels/networks. The results of the simulation can be found in


The system depicted in the RF_SYS1.dsn uses a single upconversion stage and two downconversion stages. The RF frequency is 300 MHz, as defined in the P_1Tone source PORT1. The RF input power level is -10 dBm. This tone sums with 17.7 GHz from the first LO source, SRC1, to produce (among other tones) an IF of 18 GHz when mixed by the first upconversion mixer, MIX1. MIX1 and the other mixers in this example use the MixerIMT component, which relies on intermodulation tables to produce spurs. The parameter IMT_File references the table used for this component. For a discussion of IMT files as they are used here, refer to Using IMT-Based Mixer Models in Spurious Signal Analysis.

Example RF system

The Chebyshev filter BPF1 (note the passband BWpass and quality factor Qu) then selects and passes the 18-GHz signal to amplifier AMP1, where the signal receives 20 dB of gain at a phase of 0 degrees. LINK1 applies both a transmitter and a receiver gain of 30 dB and adds the loss that would be incurred over a path length of 1 km. BPF2, another Chebyshev filter, receives the signal and passes it through to AMP2, which applies 30 dB of gain at 0 degrees phase.

MIX2 combines the 18-GHz signal with 16.5 GHz from the LO, SRC2, to produce (among other tones) a 1.5-GHz tone at the mixer's output. This time the signal is passed through a much narrower (note the high Q) Butterworth filter to a low-gain amplifier, AMP3. From there the signal proceeds to a final downconversion stage, MIX3.

The signal input to MIX3 combines with 1.2 GHz from the LO at SRC3 to produce (among other tones) 300 MHz, the frequency originally inserted into the system. This is filtered by BPF4 (note the very high Q) and amplified by AMP4. Finally, a 50 ohm load at the output terminates the signal path.

Later we will revisit this design and the results of simulations on it.

Budget Analysis

Budget analysis determines the signal and noise performance for elements in the top-level design. Therefore, it is a key element of system analysis.

Budget measurements are performed upon data generated during a special mode of circuit simulation. AC and HB simulations are used in budget mode depending upon if linear or nonlinear analysis is needed for a system design. These measurements show the performance at the input and output pins of each element of the system at the top-level design. This enables the designer, for example, to adjust the gains or to reduce the nonlinearities of various components. These measurements can also indicate the degree to which a given component can degrade overall system performance.

Budget measurements include power gain, incident and reflected powers, noise figure, VSWR, and a variety of nonlinear measurements, such as SNR and gain compression.

There are various ways to obtain budget data:

  • Use the Perform Budget simulation option (available in the HB and AC simulation dialog boxes). This option is required if budget measurements are to be used following a simulation (see below). Alternatively, the flag OutputBudgetIV can be set to Yes.
  • Use the budget measurement components, available in the AC and HB simulation palettes. By placing one or more of the budget measurement components on the schematic and by selecting the required options, budget data can be generated.
  • Add a budget path to your schematic using Simulate > Generate Budget Path. Budget data will be generated for the specified portion of the circuit. This is used in conjunction with other measurement components.
  • Use Measurement Functions, available in Data Display windows as functions that can be input directly into an equation. First, the appropriate data must be referenced in the default dataset.
  • Use the BudLinearization Component, available in the Harmonic Balance, LSSP, and XDB simulation palettes. This component, which must be used in conjunction with one of the harmonic balance simulators, provides information regarding the nonlinear effect of circuit elements.

Using the Perform Budget Simulation Option

Two simulators provide a budget simulation option:

  • In the Harmonic Balance Simulation component ( HB ), select the Params tab, then select Perform Budget simulation.
  • In the AC Simulation component, select the Parameters tab, then select Perform Budget simulation.

Using Budget Measurement Components

The budget measurement components are available in the AC and HB Simulation palettes, and must be used by selecting the required options. A budget data can be generated by placing one or more of these budget components in schematic.

The budget results at the terminal(s) of each element are sorted in ascending order of the component names. These component names are attached to the budget data as additional dependent variables.

Adding a Budget Path

You can generate budget results over a specified path in your circuit using Simulate > Generate Budget Path. You use this in conjunction with other budget measurement components, by replacing the pin with the name of the budget path. First specify the path, then modify your budget measurements.

To specify a path:

  1. From the menu bar, choose Simulate > Generate Budget Path.
  2. The names of the components in the circuit appear in two lists. Set the start of the path by selecting the name of a component in the left list.
  3. Set the end of the path by selecting the name of a component in the right list.
  4. Click Generate. To verify that the path is correct, click Highlight to highlight the path on the schematic. Click Clear to erase the highlighting.
  5. If you are satisfied with the path, click Close.
  6. Search the schematic for a measurement called BudPath, which was created when you invoked the command Generate Budget Path. You can change the name of the equation if desired. The default name is budget_path.

To modify your budget measurements:

  1. Select a budget measurement and double-click to edit it.
  2. Where the pinNumber is specified in the budget expression, replace it with the name of the budget path measurement.


    In budget expressions supporting the alternative syntax using SourceName as the first parameter, don't use the SourceName parameter to specify the budget path. You should still replace the pinNumber variable with the budget path measurement name.

    For the bud_gain expression, you can include the budget path measurement name only by using the alternative syntax as shown here:


Using Budget Measurement Functions

The budget functions can also be entered by means of the Eqn component in the Data Display window. The Perform Budget simulation option must be selected prior to a simulation before measurement functions can be used following the simulation.

The budget function can refer only to the default dataset, that is, the dataset selected in the Data Display window.

You can use a variety of budget-related measurement functions in the Equation entry field in the Data Display window. These include the following:






























For details on the above and other measurement functions, open a MeasEqn component dialog box and click Help.

Using the BudLinearization Component

This component is available in the Simulation-HB, Simulation-LSSP, and Simulation-XDB palettes. It may be used in conjunction with the Harmonic Balance, LSSP, or XDB analysis controllers. The P2D controller currently does not support budget analysis. To use the BudLinearization component, place the component in the schematic and edit it to reference the simulation component to be used, as well as the circuit components that are to be linearized. If no component is specified, all the components in the top-level design are linearized one at a time.

The BudLinearization component first performs a regular harmonic balance simulation, and then looks at the DC operating point for each nonlinear system component in turn, linearizing the response of that component while the responses of the remaining nonlinear system components remain nonlinear. If a system component is in a subnetwork, the entire subnetwork will be linearized.

The results of BudLinearization analysis are sorted in ascending order of the names of the linearized components. LinearizedElementIndex, an integer independent variable, is attached to the data as an additional sweep variable. The first point corresponds to the results of the regular harmonic balance simulation when none of the components is linearized. Another variable, LinearizedElement, that contains the names of the linearized components is also generated.


The inclusion of the BudLinearization component in conjunction with a Harmonic Balance simulation causes N+1 harmonic balance simulations to be run, where N is the number of nonlinear components to be linearized. Consequently, such a simulation will take N+1 times as long.

Budget Examples

This section includes these budget examples:

Calculating Gain and Noise Figure

The following figure illustrates one way to obtain budget gain and noise figure data.


The design Linear_Budget.dsn is in the Examples directory under Com_Sys/Linear_Budget_prj. The results are in SchematicMeasurements.dd s.

Using the AC simulator to obtain budget gain and noise figure

With its single mixer stage, this example provides a less complex view of the issues raised in RF_SYS1.dsn.


To make it easy to observe the gains and losses contributed by individual components along the signal path, label them so that a List plot sorts them alphanumerically. In this case they have been labeled b1_BPF1, b2_AMP1, and so on.

This example uses the AC Simulation component, with parameters set as follows:

  • Under the Noise tab, Calculate noise has been enabled. The noise nodes (the input of the first filter and output of the final filter) has been labeled "Vin" and "Vout" and have been added to the list of Nodes for noise parameter calculation. The Noise contributors mode is set to Sort by name.
  • Under the Parameters tab, both Enable AC Frequency Conversion and Perform Budget simulation have been selected.
  • Under the Frequency tab, the frequency is set to 1.960 GHz.


In nonlinear noise analyses, it is recommended that the Options component be used to establish a global simulation temperature of 16.85 degrees Celsius . This can be done by editing Temp=16.85 in the Schematic window, or by selecting the Misc tab and editing Simulation temperature to that value.

Add budget measurements to the schematic:

  • From the Simulation-AC palette, add BdGain (budget gain), BudNF (budget noise figure), BudNFd (budget noise figure degradation), and BudPwrI (budget incident power).
  • Double-click the budget noise figure degradation component to edit it. Edit the equation by replacing " term2 " with " b6 " and changing " vout " to " Vout". Note that b6 is the name of the output termination component.

To display all of the Budget measurements at once, open the Data Display This will include gain, incident power, noise figure and noise figure degradation by component, both in tabular and graphic form. Ensure that the default dataset name is set to the name of the design you have simulated. The results of the simulation appear as follows:

The first listing shows the losses and gains, in dB, contributed by the various components. For example, the first amplifier has a nominal insertion loss (IL) of 5 dB at 1.960 GHz, but here the figure is -5.239 dB – the result of reflection and thermal loss. Try lowering the reflection parameters S11 and S22 to approximate ideal values (simply add zeros) to observe the bud_gain figure approach 5 dB. The second listing shows the incident power at the input of each component. The third and fourth listings show the noise figure and the noise figure degradation at pin 1 of each component, respectively. For more discussion of noise analysis, refer to System Noise Analysis.

Budget measurements may also be performed entirely within Data Display window by adding equations that operate on the current and voltage data provided by the AC simulation. The Data Display DataDisplayMeasurements show an alternative way of using the budget functions, instead of adding measurements to a schematic, after a simulation you can get the same calculations by adding equations to the Data Display page.

Calculating Spurious Signals and TOI

The following figure illustrates traces of the spectral tones (spurious signals) for various nodes of the design RF_SYS1.dsn. For a detailed discussion of mixing products, refer to Using IMT-Based Mixer Models in Spurious Signal Analysis.

Spectral data for RF_SYS1.dsn

The following figure illustrates a setup for obtaining third-order intercept.


The design PCS_Rx_TOI_test.dsn is in the Examples directory under Com_Sys/RF_System_prj. The results are in

System TOI example

Two sources at the input define two closely adjacent tones, as can be found under typical conditions of communications interference. (A P_nTone component could also be used.) The source at the top of the schematic, identified as PORT1, can be used to test the degree to which the outgoing signal leaks back into the IF stage.


CarrToIM and IP3out measurement components have been used to define those measurements for the lower and upper intermodulation products (selected by means of the mixing indices vector) that will be passed by the filters. IP3out must reference 50 ohms. Also, although there are six apparent source tones in the design (at 1880, 1880.3, 1960, 1960.3, 2048, and 84 MHz), only five tones are independent.

A plot of the IF output, VOUT_IF, appears as follows:

The mixing products of interest center around 6 MHz, as determined by the final filters. Note that only one of the third-order intermodulation products (at 6.06 MHz) is safely below about -75 dB. The spur at 5.97 MHz indicates that the filter's bandwidth needs to be adjusted.

The listing below is a plot of the Mix data output, which produces mixing indices vectors. Highlighted are the coefficients of those frequency components whose product resulted in 6.030 MHz
(0 * 1880 + 1 * 94 - 1 * 88 + 1 * 0.03 + 0 * 1960 = 6.03 MHz).

The listing below, of the four equations on the schematic, shows the relationships, in dB, of the various products. Note that the difference between the carrier and the lower intermodulation product (the second and first columns, respectively) is approximately 26 dB.

The fundamental of the product in the first column is defined by

0 * 94 + 1 * 94 - 1 * 88 + 0 * 0.03 + 0 * 1960 = 6 MHz

and its intermodulation product by

0 * 1880 + 1 * 94 - 1 * 88 - 1 * 0.03 + 0 * 1960 = 5.97 MHz.

The fundamental of the product in the second column is defined by

0 * 1880 + 1 * 94 - 1 * 88 + 1 * 0.03 + 0 * 1960 = 6.03 MHz

and its intermodulation product by

0 * 1880 + 1 * 94 - 1 * 88 + 2 * 0.03 + 0 * 1960 = 6.06.

Obtaining Budget Incident Power and Gain

The following figure illustrates the use of the bud_gain, bud_snr and bud_pwr_inc measurement functions.


The design IQ_mod_bud.dsn is in the Examples directory under Com_Sys/MultiChan_NL_Budget_prj. The results are in and

It is similar to the preceding example, with the exceptions that only a single tone is inserted at the input, and the transmitter tone has been replaced by a terminating resistor.

Using bud_gain, bud_snr and bud_pwr_inc

To display all of the Budget measurements at once, open the Data Display IQ_BudgetSchematic. This will include frequency plan, gain, signal-to-noise ratio and incident power in tabular and graphic form. Ensure that the default dataset name is set to the name of the design you have simulated. The results of the simulation appear as shown here:

The first listing shows the fundamental frequencies for plan 1 and the power gain from the input port to pin 1 of each component. The second listing (top-left corner) shows the signal-to-noise ratio at pin 1 of each component. The last listing (bottom) shows the incident power at the input of each component at the fundamental frequencies in plan 1 through the system. In this example, note the imbalance at the power combiner input due to the nonlinearity of b3_AMP2.


Certain measurements (such as bud_gain ), although they derive data for a single tone, will output results for all harmonics.

The Data Display IO_Budget shows an alternative way of using the budget functions. The budget measurements are performed within the Data Display window by adding equations that operate on the current and voltage data provided by the HB simulation.

Obtaining Group Delay Data

The following figure illustrates the use of the S-parameter simulator in obtaining group delay data. For more information about group delay, refer to the topics Calculating Group Delay and Group Delay.


The design Linear_Sweep.dsn is in the Examples directory under Com_Sys/RF_Sys_prj. The results are in

In the S-parameter Simulation component a linear sweep centers closely around the center frequency of the first filter. Under the Parameters tab, the Group delay option has been selected. In addition, Enable AC Frequency Conversion has been selected, and S-parameter freq. conv. port has been set to 1, the input port.


The frequency conversion port must be the number of the input port.

Using the S-parameter simulator to obtain group delay data

The following is a plot, in dB, of S(2,1), showing the response of BPF2.

Below, a plot of the function phase(S(2,1)) shows wrapped phase versus frequency. This is essentially a compressed view of the response, as the display is normalized to accommodate the ±180-degree variations without unnecessary repetition.

Finally, a plot of the function delay(2,1) (the delay at the output port with respect to the signal at the input port) shows the shift in phase in the filter's passband (below).

Budget Analysis Capabilities

The topics in this section provide details about specific areas of the budget analysis feature, including additional instructions about setting up budget measurements.

The existing budget analysis is a collection of 14 predefined measurement functions intended to provide insight into the propagation of circuit characteristics along a set of selected locations throughout a circuit. These measurements are implemented as AEL functions. The following table lists the currently available budget functions with a summary of their parameters and usage.

These AEL functions are available for use from two locations. In the Schematic window you can insert templates for them from a simulation palette. In the Data Display window you must manually enter and edit the functions. Using the Functions Help button in the Equations dialog box helps with pasting a template from the documentation.

Budget Measurement Functions
Function # of Forms Used in # of Vars Source and Zs in 3 Vars†† Freq Plan # Pin # Zref SimInst
AC HB† Budget Path
     bud_freq 2 X X 3   X X   X
Power Gain
     bud_gain 2 X X 6 X X X   X
     bud_gain_comp 2   XS 7 X X X   X
     bud_ip3_deg 1   XL 5       X  
     bud_nf 2 X   7 X   X   X
     bud_tn 2 X   7 X   X   X
     bud_nf_deg 2 X   8 X        
     bud_noise_pwr 1 X X 4   X X X X
     bud_snr 1 X X 3   X X   X
     bud_gamma 1 X X 4   X X X X
     bud_pwr††† 1 X X 3   X X   X
     bud_pwr_inc 1 X X 4   X X X X
     bud_pwr_refl 1 X X 4   X X X X
     bud_vswr 1 X X 4   X X X X
† "S" denotes the use of a sweep. "L" denotes the use of BudLinearization.
†† Functions include three variables: either vIn, iIn, Zs, or SourceName, SrcIndx, Zs.
††† Available only in the Data Display window.

Budget Analysis calculations are based on both voltages and currents

The internal evaluation of budget functions such as bud_gain is based on both voltages and currents, and thus is correct. This may not be obvious when setting up the budget analysis tasks.

Budget Analysis setup requires close attention

Setting up budget analysis measurements requires close attention to the following areas:

  • The AEL function templates are not always complete and you may need to focus on their arguments to achieve proper use of those functions.
  • Contextual meaning of the multi-purpose syntax and the effect on function arguments.
  • There is more than one place where the same parameter or flag must be set simultaneously so the budget calculations can be invoked, or properly carried out.

Budget measurements work with only AC or HB simulations

The AC and HB simulations are typical for many traditional budget measurements. The budget analysis methodology is not extended to other types of analyses, and should be used only with AC and HB simulations.

Budget measurements may not work with both AC and HB simulations

The table above shows the currently available budget measurements. Of the 14 functions, all but one ( bud_pwr ) are available in the Schematic window from the AC or HB palette, or from both. All 14 functions are available in the Data Display window. It is important to verify which simulator a particular function can work with. A common misconception is, for example, that the bud_nf function works with Harmonic Balance. Though that function is not available on the HB simulation palette, it can be added to the Data Display window.

Different AC and HB usage of functions that can work with both simulations

Functions that are designed to work with both AC and HB simulations, such as bud_gain, require different handling of their input arguments for those different simulations. When editing AEL function arguments, it is important that you verify the syntax for the desired simulation; for details see Measurement Expressions.

HB Budget Analysis needs a frequency plan

When different frequencies are present at a specific circuit location, such as at the output of a mixer with both upper and lower side bands, the budget measurements are organized according to frequency plans. A frequency plan specifies the measurement frequency for each location. The plan number is a required input in harmonic balance budget analysis.

Frequency plans are internally generated

Frequency plans determine what frequencies are to be monitored at various locations. ADS tries to determine frequency plans for the user; however, for some circuits, ADS cannot generate a frequency plan. In these situations, ADS displays an error message that a plan cannot be generated which interrupts/disables any budget calculations.

For example, a feedback loop over a mixer in circuits such as AGC leads to conflicting frequency values for the mixer output. As a result the frequency plan is not generated, and, consequently, no budget measurements are available.

In cases when the frequency plans are generated, you may still face a problem since it is not known up-front what frequencies are present in a specific plan. That information becomes available after the simulation is completed. Therefore, if an incorrect plan had been selected in the schematic, the circuit may have to be re-simulated. For more information about frequency plans, see Budget Measurement Analysis.

Common issues about Budget Noise Figure

The Budget Noise Figure function ( bud_nf ) is one of the most popular budget measurements. Though the bud_nf function is formally available only for AC simulations, it may still, however, appear as functional for HB simulations. You must carefully interpret any results. For example, there is no argument provided for the frequency plan. As a result the calculations are based on default values. In general, the results reported by bud_nf may not be meaningful, and you should not use bud_nf for HB simulations.

The second expectation is that the function would calculate partial noise figures. The term partial would mean that, for a specific circuit location, the function would return the standard NF of the two-port defined between the source and the location, or the two-port defined between the location and the output. In order to carry out such calculations, ADS would have to break the connections and create the corresponding two-port. Such an interpretation might be possible for cascaded circuits; ADS, however, is a general circuit topology tool and no such assumption can be made.

Budget Noise Figure is really a reformulated signal-to-noise ratio

The bud_nf function calculates quantities that could be termed as internal noise figures. What is presented as a noise figure at a location is actually the signal-to-noise ratio decrement from the location to the output that is normalized with respect to (subtracted from) the overall (from the input to the output) noise figure.


Consider a circuit with four components selected for budget path, with the last one being the load. If the function bud_snr reported 60, 54, 50, and 45 signal-to-noise ratios and if the overall NF = 17, then the function bud_nf would report 2, 8, 12, and 17 (all in dB).

As such, the function bud_nf does not provide any additional useful information with respect to the function bud_snr.

The calculated signal-to-noise ratio for an internal location is an in-circuit measurement. It combines the noise contributions coming from noise sources in the entire circuit, for example in a cascade from both to the left and to the right. Therefore, such internal noise figures do not represent the standard notion of NF, that of noise added by a stage.

Using the pinNumber argument in budget functions

The pinNumber argument can assume one of the following values:


selects pin 1 of the component (all components)


selects all the pins of the component (all components)


typically selects pin 2 (pin 1 for the source or the Term components) and only path components are reported

The default value of 1 leads to a budget measurement reporting scheme that is not obvious, and requires closer examination. A measurement, such as gain, reported for a component refers to signals before the component. As such, it may not include the full contribution of that component. For example, if that component is an amplifier whose input impedance is infinite, the corresponding current (and power) at pin 1 is zero. If the results were reported for pin 2 then the amplifier gain would be included in the budget power gain reported for that amplifier, but for pin 1 it is not. This is correct operation.

Using the SrcIndx argument in budget functions

The SrcIndx is described as "the frequency index that corresponds to the source frequency to determine which frequency to use from a multi-tone source as the reference signal". You may find it difficult to figure out how to determine a proper value for that argument.

The actual meaning of this argument is the index of the desired input (reference) frequency as determined internally by ADS: all spectral components (harmonics and intermodulation products) are ordered starting from DC to the highest frequency. The DC component as the first one corresponds to zero index.

The following example explains the situation. Let one of the fundamental source frequencies be named Upper_Freq in a VAR block and assume a value of 1.98805 GHz. We want the budget gain to be calculated with respect to that input frequency. If, after simulation, we display the array freq in the Data Display window and we find the frequency in question as the 18th entry, then the index, counted from 0, is 17. Thus, we can define the bud_gain function with SrcIndex = 17, as

BG = bud_gain("PORT1",17,....)

If we wanted to define the function up-front in the Schematic window, we would not know that value. A solution to such a problem is to use the find_index function as

BG = bud_gain("PORT1", find_index (freq, 1.98805e9),....)

BG = bud_gain("PORT1", find_index (freq, Upper_Freq),....)

The second approach could be more useful if a change to the actual value is possible. However, an even more flexible way is to indicate which fundamental is of interest as in the following scheme

BG = bud_gain("PORT1", find_index (freq, indep(mix(freq, {0, 1, 0}))),....)

But, even this approach is not general enough. For instance, it may become invalid or incorrect if the fundamental frequencies in the HB controller are rearranged.

Budget Path - how to use it effectively

Budget path is generated automatically by choosing Simulate > Generate Budget Path, then selecting the input and the output ports (components). The name of the function thus generated can then be specified in place of the pinNumber variable ( , , , budget_path_name, , , ) - if one exists.

For a few of the budget functions there exists an undocumented feature of passing the budget path name via the SourceName argument, which is, for example, the first argument in the bud_gain function. This is not a recommended way of using budget path.

Finally, you can deal with any insufficiencies of the automatically generated budget path by directly editing the budget path measurement equation. The terminal numbers can be changed, components can be dropped or added, as desired, as long as legitimate component instance names at the highest level of the hierarchy are used. Also, more than one budget path, each with a different budget_path_name, can be defined using the Copy feature in the Schematic window.

Mixer2 and MixerIMT2 components issues

Do not use these components in conjunction with HB budget analysis.

These two components are SDD-based. Thus, the frequency plan generation process in budget HB has no knowledge that a frequency conversion takes place in either of the two components. This leads to a conflict, and budget calculations are not carried out. The two explicit mixer components Mixer and MixerIMT will not cause the frequency plan generation to fail. Please note that MixerIMT is not available from the palette, but can still be inserted into the circuit by typing its name in the Component History field.

Clipped values in bud_nf and bud_tn

Under some circumstances, the software clips the values returned by bud_nf to 0, and by bud_tn to 290 K. This is usually set for the input port, regardless of the value of the reverse signal to noise ratio. See Budget Noise Figure is really a reformulated signal-to-noise ratio. This may be misleading since it creates an impression of noiseless stages in situations when the designer knows they are not.

Contextual meaning of input parameters: Beware of short syntax form

Some functions are documented with a long and a short syntax form to choose between. You must be very careful when using either form.

The differences between the forms are not only in the meaning of individual parameters, but also in the type of the values entered: strings, real or integer constants, and whether they are enclosed in the quotation marks or not. In general, instance names are strings surrounded by quotes, while variable names are strings entered without quotes.

Most of the functions can be formulated with a truncated set of arguments. The arguments that are not listed will assume default values. For example, for bud_gain, the set of six arguments can be truncated as much as necessary that still leaves any required arguments, which is just the first one in AC, or the first four in HB. Furthermore, if an input parameter such as the frequency plan is required, as it is in bud_gain in HB, the short syntax form does not mean a change in the location of that parameter. If necessary, empty (default) parameters must be entered by means of commas, as in the following example

BG = bud_gain("PORT1",17,,1)

Additionally, the interpretation of some arguments may be contextual. This is, for example, the case in bud_gain where the user can enter either


the name of the dataset variable for source voltage


the name of the dataset variable for source current



the instance name of the source, in quotes


the index of the source frequency (see above)

Take special note of the fact that for bud_gain in AC the SrcIndex is irrelevant, so that the short syntax form can actually consist of just one parameter SourceName. However, if vIn and iIn are used, both are needed.

Nevertheless, if SourceName is used, and you want to use the budget path, then the correct argument count must be preserved, as in the following example

BG = bud_gain("PORT1",,,,budget_path_name)

Finally, for the bud_nf_deg function the short syntax form is indeed different from the regular form: the output port instance name (in quotes) takes the place of the second argument, and the output node name (also in quotes) takes place of the third argument.

Using IMT-Based Mixer Models in Spurious Signal Analysis

Signal generation or frequency translation achieved within non-linear elements such as mixers, non-linear amplifiers, and spectrally impure oscillators results in the creation of spurious signals that can be polynomially related to the fundamental tones involved in the primary frequency conversion process. Spectral response of components that generate such spurious tones are represented as Spur Charts in the RFIC industry. Within ADS, there are three types of intermodulation table (IMT) formats which contain equivalent descriptions for use with behavioral mixer models such as MixIMT_Data and MixerIMT2. The use of IM tables along with the conversion gain parameter on mixer models is illustriated in this section.

As the name suggests, IM tables are two-dimensional matrices containing information about strengths of spurious tones or intermodulation products for specified reference values of signal and oscillator powers. By convention, each nth column contains mixing products generated by the ( n-1)th harmonic of the local oscillator (LO) and the m th row contains mixing products generated by the ( m-1)th harmonic of the signal (RF). Simple single-side banded IM tables for single-RF and single-LO mixing start with the DC term (where m and n are both zero) and the value of active RF harmonic implied by the position of the row. More complicated double-side banded tables for multi-RF single-LO mixing require both positive and negative specification of the values of various RF harmonics in the first few columns to distinguish between sum and difference tones.

Interpreting IMT Charts

The simplest of IM tables, corresponding to Spur Chart specification of mixer hardware is the O-type IMT file. As shown in the following code example, it contains specification of reference signal power PRF = -10 dBm and oscillator power PLO = +7 dBm. In this specific table, all entries are non-negative and the IF fundamental power value is zero. In order for it to be representative of a physical system, this table should be interpreted as a relative spur chart where a value of x at location ( m, n ) indicates that the spurs at ( m-1)*FRF + ( n-1)*FLO and at |( m-1)*FRF - ( n-1)*FLO| are both x dB below the value of the IF fundamental (at m=n=1). For O-type IM tables only, missing elements are assumed to be x=99, that is 99 dB lower in power than the IF fundamental. The first element of the first column indicates that the DC spur is 79 dB below the IF fundamental. Likewise the element at (3,2) indicates that 2*FRF + FLO and | 2*FRF - FLO | are both 84 dB below the IF fundamental.

# IMT ( -10 7 )
%   0    1    2    3    4    5
    79   56   67   74   72   83
    24   0    68   69   92
    72   84   56   63   90
O-type IMT data for second degree RF nonlinearity mixed with fifth degree LO nonlinearity at PRF = -10 dBm and PLO = +7 dBm

Additional information can be appended to the structure shown above by including complex spur information where both strength and phase are specified for each table entry. Also, sum and difference tone behaviors may be distinguished by including an RF-side multiplier term as shown for the dual-RF and single-LO IM table below. All elements must be specified in (dBm,degree) pairs in a double-side banded table in A- and B-type IMT files. The B-type table shown in the following code example also contains exact RF and LO frequencies used on some mixer subcircuit to generate the following multi-RF spur chart. Notice in the table that each RF tone has positive and negative mixing indices enabling the registration of separate entries for sum and difference tones.

! Frequency units of GHz, absolute spur values in \(dBm, degree
! Reference resistance = port impedance = 50 Ohms
# IMT ( GHZ S DBM R 50.0 )
! The RF fundamentals are at 2.0 GHz and 1.4 GHz.
%     FRF1   FRF2
      2.0    1.4
! The LO fundamental is at 1.7 GHz.
%     FLO
! The reference powers of the two RF tones are -10 and -15 dBm
! respectively.
%     PRF1          PRF2
      -10           -15
! The reference powers of the LO tones is \+7 dBm.
%     PLO
! The first two columns indicate mixing multipliers on RF side.
! The last 3 columns indicate mixing multipliers on LO side.
%    M1    M2    0            1             2             3
     -1    -1    -49    39    -29    -49    -52    -76    -32    -76
     -1     0    -64   -73    -59     23    -84    -15    -44     21
     -1     1    -43    22    -76     23    -55     63    -48     22
      0    -1    -33    39    -52    -76    -74     29    -49     12
      0     0    -79     0    -39    -33    -83     72    -98      6
      0     1    -33   -39    -53    -55    -63    -48    -42    -10
      1    -1    -43   -22    -43    -42    -76    -23    -55    -63
      1     0    -64    73    -55    -39    -33    -83     72    -98
      1     1    -49   -39    -49     39    -29    -49    -52    -76
B-type IM table showing complex spur information for dual RF and single LO mixing

Note that when double-side banded IM tables are presented along with explicit frequency information, spurs involving differences of one or more tones should always be interpreted based on the positive value of IF spectral frequency. In the example immediately above, -1*FRF1 + 0*FRF2 + 1*FLO is numerically -300 MHz. In the table, the ( -1 0, 1 ) entry is -59 dBm, 23 degrees. The measurable physical manifestation of this spur is at +300 MHz with the same strength of -59 dBm but phase inverted to -23 degrees. Also, note how such a multi-RF IM table allows separate classification of colliding tones at the same IF frequency. The two RF fundamentals captured to the above table are mutual image frequencies with respect to the LO frequency. The two difference fundamentals of the IF spectrum both occur at 300 MHz. However, the one due to | - FRF1 + FLO | is captured at the location ( -1 0, 1 ) whereas the one due to - FRF2 + FLO is captured at ( 0 -1, 1 ). The former should be conjugated to derive physical value. Such accuracy of capturing colliding tones can be achieved in the ADS Simulation environment. See the design BehavioralModels > MixIMT_prj > CKT_IMTB_extraction.dsn in the Examples directory for details.

For details of various IMT formats, see IMT Format.

Interpolation of IMT Data

Since each data point contained within IM tables is not only relevant for the reference power and frequencies, they are also related to each other across the mixing grid, making interpolation and extrapolation of IM tables across signal powers and frequencies a non-trivial proposition. This situation is further complicated by the movement of high-side LO to low-side LO as one increases RF frequency or lowers LO frequency or performs a combination of both. Add to that the issue of intermodulation products that collide at the same spectral point for certain combinations of input frequencies.

For O-type IM tables, where no explicit frequency information is available, no frequency domain interpolation is performed by data models such as MixIMT_Data. Power domain interpolation is done by scaling IM table element up in proportion to its mixing multipliers as demonstrated below:

Q1. Given an IF spur value of x at location (m,n) of an O-type table for reference powers of PRF dBm and PLO dBm, what is the projected value of the (m,n) spur at PRF' and PLO'?

A1. Assuming that the mixer is operating in saturation where roll-off of the strength of the IF fundamental is 1 dB for 1 dB increase in signal or LO power, the (m,n) position of the O-type table corresponding to the IF tones (m-1)*FRF + (n-1)*FLO and |(m-1)*FRF - (n-1)*FLO| will undergo a change of y dB where y = (|m|-1)*(PRF'-PRF) + (|n|-1)*(PLO'-PLO). The interpolated value of the spur at (m, n), will then be x + y. This behavior is exhibited by MixIMT_Data for all variation of RF and LO powers. For earlier models, e.g. MixerIMT2, it is the responsibility of the user to maintain PRF < PRF' < PRF + 3 dBm and PLO -10 < PLO' < PLO + 3 dBm to obtain comparable results.

For A- and B-type IM tables, where explicit frequency domain data is available and multiplicity of IM tables is allowed within the same data file, some amount of linear interpolation across corresponding mixing products may be allowed for very small devations along FRFn and FLO axes, where relative spacing of RF and LO tones remain unchanged and no LO-crossover occurs. For values of FRFn and FLO beyond those on file, it is safe to enforce the nearest neighboring IM spur chart. Note that frequency domain interpolation of IF strengths across (m,n)th location of one IM table and the exact same location of another may not be an accurate representation of circuit level behavior but the values obtained are rarely non-physical. See example design BehavioralModels > MixIMT_prj > BEH_IMT_2R_4L.dsn for an interpretation of frequency domain interpolation using the MixIMT_Data component. Note that MixerIMT and MixerIMT2 components cannot operate on A- and B-type IMT data.

Power domain interpolation of A- and B-type IM data is done in a manner similar to that of O-type files explained above.

Modeling IMT with Conversion Gain

Mixer models that rely on IM tables often posses an additional parameter called ConvGain or conversion gain. This parameter specifies voltage gain from RF port to IF port and affects the entire IF spectrum without having any direct impact on RF or LO spectra. Internally, the voltage value sensed at RF port is amplified by the complex conversion gain and the amplified RF value used to scale the IF spectrum as specified for IM power domain interpolation. Thus, given ConvGain=dbpolar(a,b), the MixIMT_Data model generates ( m -1)* a more power at all IM tones of the mth row of the IM table. It simultaneously adds a phase lead of ( m -1)* b to that IF vector. See example design BehavioralModels > MixIMT_prj > BEH_IMT_2R_4L.dsn for an interpretation of frequency domain interpolation using the MixIMT_Data component.

System Noise Analysis

There are three major contributors to system noise: passive-element thermal noise, active-element noise, and oscillator phase noise. (For a discussion of oscillator phase noise, see Harmonic Balance for Oscillator Simulation.) The system noise response is simulated by the program under small-signal conditions. A linear analysis of system noise gives a reasonable representation even when the signal is well into compression, provided the signal-to-noise ratio is not too low.

System thermal and active noise simulation uses a noise-wave model that accounts for the effects of element mismatches.

System phase noise is described as the phase-noise level versus the oscillator offset frequency. System phase noise is simulated by sequentially combining the phase-noise characteristics of consecutive oscillators from the system input port to the system output port.

The combined active noise, thermal noise, and phase noise at the system outputs can be observed in terms of noise power in dBm versus frequency. This total noise power can be combined with the output signal so that the system output signals can be observed with the system noise added.


In a noise analysis the following assumptions are made with respect to the terminating resistances that are implicitly connected to the system network's input and output ports:

  • The signal source (assumed to be connected to the system network input, or Port 1) is assumed to have a resistance of 50 ohms at a standard physical temperature, T0, of 290 K. This source resistance provides noise power at a noise density of -174 dBm/Hz into the system. This source must be a power source.
  • The system network outputs (any port other than Port 1) are assumed to be terminated with 50 ohms at absolute zero physical temperature, 0 K. This termination resistance does not contribute any noise to the noise measured from the system. This termination must be a Term component.

When a noise analysis is requested, it is recommended that you use an Options component and set the global temperature to 16.85°C.

  • No labels