Troubleshooting a Circuit Envelope Simulation
This section presents suggestions for using this simulator and improving the accuracy of results.
Increasing Accuracy Easily
In general, accuracy is increased and aliasing reduced when the signal of greatest amplitude is entered as the Freq[1] parameter, and lower-amplitude signals are entered as Freq[2], Freq[3], and so on.
Improving Mixer IMD Measurement Accuracy and Speed
Prior to the invention of the Krylov subspace solver (available in harmonic balance simulation), Circuit Envelope was the recommended choice for mixer IMD (intermodulation distortion) measurements. Now the Krylov option appears to provide faster solutions for this application. Nevertheless, when the envelope simulator is used, there are several ways to improve accuracy and speed. Also, Maximum mixing order can have a profound effect on simulation results; in general, set Maximum mixing order to a low value and increase it until the simulation produces marginal differences in results.
Using the Circuit Envelope Simulator to Analyze an Oscillator
This simulator can support the simulation of oscillator circuits and subsystems, through the Oscillator analysis options. The oscillator options work as follows:
- If Oscillator analysis is disabled, the envelope simulation proceeds as normal and any oscillations, if present, will build up from some initial value. The analysis frequencies and time step must be set to ensure that the oscillator's instantaneous frequency is well within one of the envelope bandwidths being simulated. This can be either the baseband (DC) envelope or any of the fundamental, harmonic, or mixing-term analysis-frequency envelopes. Multiple oscillations can be simulated as well, as long as each one is within an analysis envelope.
- When the transient buildup is being simulated, a tickler voltage is usually needed in the same envelope as the actual oscillator frequency, to define an initial start-up value. This value can be set by a low-level transient source that is disabled after the first few time samples. Alternatively, a noise source or resistor noise can also be used. For the oscillator control elements, the option Turn on all noise is enabled. This will cause devices with noise in the oscillator loop to generate the white noise that will provide the required tickler stimulus.
- If Oscillator analysis is enabled, then a normal harmonic-balance oscillator simulation is automatically performed prior to the first time step (see Harmonic Balance Basics). The results of this simulation determine and set the analysis frequency value to the steady-state oscillator frequency. If the oscillation frequency does not change significantly during its buildup, this often allows larger time steps to be used. This is because the envelope bandwidth does not have to include any uncertainty as to the oscillator's final frequency value.
- If Oscillator analysis is enabled, you may reset the oscillator voltage solution to zero by selecting Calculate oscillator startup transient , so that the transient buildup can be simulated. If this option is not enabled, the time-domain solution begins at the steady-state solution, the transient buildup time is skipped, and the oscillator can immediately start responding properly to any external modulation. Note that Oscillator analysis affects only the initial simulation, and is disabled once the envelope simulation begins.
Using the Circuit Envelope Simulator to Analyze Noise
Noise in envelope simulations can be added as random time voltages and currents. Noise can originate from circuit components such as resistors or noise sources. The full, nonlinear circuit equations are applied to this composite signal of random voltages and currents, so no small-signal assumptions about the relative size of the noise are required.
Setting the option Turn on all noise (under the Env Params tab) enables white noise from many devices in the circuit to be included in the simulation. The noise sources that are included in the circuit are also included in the simulation. They add white, Gaussian noise at all frequencies in the analysis envelope. The noise voltages will be complex for non-baseband envelope frequencies, generating both amplitude and phase equivalent noise.
Convolution Techniques Used in Circuit Envelope
In Circuit Envelope, the response within the envelope bandwidth (1/timestep) around each of the Harmonic Balance frequencies (including DC) needs to be represented in the time domain. The advantage here over a transient simulation is that the entire frequency response need not be represented in the time domain, and if the envelope bandwidth is relatively small, then a simple fit or a constant is sufficient to represent the response. And since a different constant could be used for each carrier, it maintains good accuracy at the exact Harmonic Balance frequencies.
A consequence of this method is that any components which are characterized in the frequency domain need to have their response converted to the time domain for the portions of their frequency response which fall within the envelope bandwidth.
By default, the Circuit Envelope simulator uses recursive convolution for this task, which first tests to see if the frequency response is described by a rational polynomial. If it is not, the simulator then tries to fit the frequency response to a rational polynomial (with no delay) around each carrier. If this fails, a poor fit warning is generated and the simulation will either proceed with the best fit or just use the center frequency constant, depending on the setting in the analysis control.
Impulse convolution can be used, but it is currently only available for certain components such as S1P_Eqn, Y1P_Eqn, or Z1P_Eqn. These components have an ImpDeltaFreq parameter, and an appropriate value must be entered for the parameter to use impulse convolution. However, recursive convolution has priority over impulse convolution, even for such components, if the frequency response is described by a rational polynomial.
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()