Adam Cooman

Previous

Steady-state Simulation
under multisine excitation

Next

5. Envelope simulators

The final simulator we consider is the Envelope simulator. An envelope simulator combines the concepts of the HB simulation and transient simulation [5]. An envelope simulation is only useful for bandpass multisines, as it becomes equal to a transient simulation for low-pass multisines. In an envelope simulation, the internal signals in the circuit are represented as modulated harmonically related sine waves.

z(t)={k=0Nzk(t)e2πkfcentert}z\left(t\right)=\Re\left\{ \sum_{k=0}^{N}z_{k}\left(t\right)e^{2\pi k f_{\mathrm{center}} t}\right\}

each harmonic of the base frequency fcenterf_{\mathrm{center}} is modulated with a complex time domain signal zk(t)z_{k}\left(t\right). The envelope simulation calculates the variation of the envelope zk(t)z_{k}\left(t\right) in the time domain, while the relation between the different harmonics is enforced using Harmonic Balance. This leads to two sets of simulation parameters in Envelope: fcenterf_{\mathrm{center}} and OfcenterO_{f_{\mathrm{center}}} for the underlying HB simulation and tstopt_{\mathrm{stop}}, tstept_{\mathrm{step}} and the integration method for the time-domain part of the Envelope simulation.

Choosing the Envelope settings

The underlying HB simulation should be performed at the center frequency of the multisine fcf_{c} with an order equal to \aleph, the non-linear order of the circuit.

The time-step is determined using the bandwidth of the multisine. fsample f_{\mathrm{sample}} should be at least fbandwidth\aleph f_{\mathrm{bandwidth}} to allow correct sampling of all intermodulation products without aliasing. To prevent leakage, fsample f_{\mathrm{sample}} should be set to an integer multiple of fres f_{\mathrm{res}}. Like in the transient simulation, fsample f_{\mathrm{sample}} is then increased such that the corresponding tsample t_{\mathrm{sample}} can be written down to the netlist with a finite number of digits. The current implementation of the envelope simulator in ADS only allows for a fixed time-step, but since the fixed time-step should be used anyway, this doesn’t bother us much.

The stop time tstopt_{\mathrm{stop}} is determined in the same way as in the transient simulations. The circuit should reach steady-state, so several periods of the multisine are simulated and the difference to the final period is investigated.

Choosing the integration method

As in the transient simulation, a trapezoidal integration method is preferred to avoid artificial damping. When an Envelope simulation is run with a trapezoidal integration method in ADS, the circuit transients don’t damp out after a few periods of the multisine and spurious oscillations appear in the circuit response. Both effects are shown in Figure 5.1.

We choose to use Gear2 as an alternative integration method. When Gear2 is used, the problems disappear and the circuit reaches a steady-state. We’ll have to accept the artificial damping introduced by these alternative integration methods.

alt

Figure 5.1 Envelope simulations on the test system reveal that a trapezoidal integration method introduces spurious oscillations. As a consequence, the circuit transient doesn’t damp out fully and steady-state is not reached.

Going to the Frequency domain

The envelope simulation returns the zk(t)z_{k}(t) for each of the harmonics k=0..k=0..\aleph. The zk(t)z_{k}(t) are the complex time-domain signals with which each harmonic of the underlying HB simulation is modulated. In a post-processing step, the different time domain signals are transformed into the frequency domain and combined to obtain a single spectrum.

In a first step, the FFT of the last period of each of the zk(t)z_{k}(t) signals is calculated. Then, the DC bin of the signals is placed in the middle of the resulting vector using the fftshift function in Matlab. Finally, the DC bins of the different spectra are placed around their correct harmonic frequency. The base-band signal z0(t)z_{0}\left(t\right) is real-valued and has a symmetric spectrum. For z0(t)z_{0}(t) only the positive frequencies are saved in the result.

Previous
1 2 3 4 5 6 7 8 10 11 
Next