# SPICE tarnsient analysis of oscillators - sampling time

Started by March 5, 2019
```Could some electronics guru here please clarify this a bit ?
I am experimenting with SPICE transient analysis of oscillator,
and I am unsure as to what to set as the ideal sampling time,
given that most oscillators will generate a fundamental and a
few harmonics. For example, suppose that I have a 500 MHz
differential oscillator, and I set the sampling time as
1/(15.0*time period of fundamental), would that be sufficient
to satisfy the Nyquist criterion, and also capture the
fundamental and the first two harmonics ?
The reason I ask is that I have noticed that with this scheme,
the fundamental is always at 250 MHz, and the first harmonic
is at 500 MHz. This is peculiar. Is there something wrong in
my assumption ?
```
```On 05/03/2019 10:54, dakupoto@gmail.com wrote:
> Could some electronics guru here please clarify this a bit ?
> I am experimenting with SPICE transient analysis of oscillator,
> and I am unsure as to what to set as the ideal sampling time,
> given that most oscillators will generate a fundamental and a
> few harmonics. For example, suppose that I have a 500 MHz
> differential oscillator, and I set the sampling time as
> 1/(15.0*time period of fundamental), would that be sufficient
> to satisfy the Nyquist criterion, and also capture the
> fundamental and the first two harmonics ?
> The reason I ask is that I have noticed that with this scheme,
> the fundamental is always at 250 MHz, and the first harmonic
> is at 500 MHz. This is peculiar. Is there something wrong in
> my assumption ?

Sounds to me like a lost factor of two somewhere.

Try sampling times of 1/(30*tau) and 1/(60*tau) the latter ought to
allow all harmonics out to 5th to be cleanly expressed without aliasing.

The Babylonians chose base 60 for a very good reason.

--
Regards,
Martin Brown
```
```On Tue, 5 Mar 2019 02:54:14 -0800 (PST), dakupoto@gmail.com wrote:

>Could some electronics guru here please clarify this a bit ?
>I am experimenting with SPICE transient analysis of oscillator,
>and I am unsure as to what to set as the ideal sampling time,
>given that most oscillators will generate a fundamental and a
>few harmonics. For example, suppose that I have a 500 MHz
>differential oscillator, and I set the sampling time as
>1/(15.0*time period of fundamental), would that be sufficient
>to satisfy the Nyquist criterion, and also capture the
>fundamental and the first two harmonics ?
>The reason I ask is that I have noticed that with this scheme,
>the fundamental is always at 250 MHz, and the first harmonic
>is at 500 MHz. This is peculiar. Is there something wrong in
>my assumption ?

LT Spice goes for sim speed, so it tends to use coarse time steps. If
you shock a simple LC and let it ring, at default settings the
resonant frequency will be off by percentages. Similarly, oscillator
sims will be unrealistic.

I set the max time step to be small, way under 1% of the fastest thing
I expect to ever see in a circuit. Crank it down until the sim stops
changing, or until you can't stand the time it takes to run.

Nyquist isn't the issue here.

--

John Larkin         Highland Technology, Inc

lunatic fringe electronics

```
```On Tuesday, March 5, 2019 at 5:54:17 AM UTC-5, daku...@gmail.com wrote:
> Could some electronics guru here please clarify this a bit ?
> I am experimenting with SPICE transient analysis of oscillator,
> and I am unsure as to what to set as the ideal sampling time,
> given that most oscillators will generate a fundamental and a
> few harmonics. For example, suppose that I have a 500 MHz
> differential oscillator, and I set the sampling time as
> 1/(15.0*time period of fundamental), would that be sufficient
> to satisfy the Nyquist criterion, and also capture the
> fundamental and the first two harmonics ?
> The reason I ask is that I have noticed that with this scheme,
> the fundamental is always at 250 MHz, and the first harmonic
> is at 500 MHz. This is peculiar. Is there something wrong in
> my assumption ?

This is a simplified rundown. Other sources say up to 50 points per cycle of expected sine output.
http://spicesim.blogspot.com/p/in-transient-simulation-spice.html
```
```John Larkin wrote...
>
> On Tue, 5 Mar 2019, dakupoto@gmail.com wrote:
>
>> Could some electronics guru here please clarify this a bit ?
>> I am experimenting with SPICE transient analysis of oscillator,
>> and I am unsure as to what to set as the ideal sampling time,

[ snip ]
>
> LT Spice goes for sim speed, so it tends to use coarse time steps.

[ snip ]

>I set the max time step to be small, way under 1% of the fastest thing
>I expect to ever see in a circuit. Crank it down until the sim stops
>changing, or until you can't stand the time it takes to run.
>
> Nyquist isn't the issue here.

I agree, you'll want very small time steps.  In the old days,
with slow computers, we'd not stress over multi-hour runs.
And as for the issue of the data sampling time step, what's
the issue, dakupoto, don't you have Giga-byte hard drives?

--
Thanks,
- Win
```
```John Larkin <jjlarkin@highlandtechnology.com> wrote:

> On Tue, 5 Mar 2019 02:54:14 -0800 (PST), dakupoto@gmail.com wrote:

>>Could some electronics guru here please clarify this a bit ?
>>I am experimenting with SPICE transient analysis of oscillator, and I
>>am unsure as to what to set as the ideal sampling time,  given that
>>most oscillators will generate a fundamental and a few harmonics. For
>>example, suppose that I have a 500 MHz differential oscillator, and I
>>set the sampling time as 1/(15.0*time period of fundamental), would
>>that be sufficient to satisfy the Nyquist criterion, and also capture
>>the fundamental and the first two harmonics ?
>>The reason I ask is that I have noticed that with this scheme,  the
>>fundamental is always at 250 MHz, and the first harmonic is at 500 MHz.
>>This is peculiar. Is there something wrong in my assumption ?

> LT Spice goes for sim speed, so it tends to use coarse time steps. If
> you shock a simple LC and let it ring, at default settings the
> resonant frequency will be off by percentages. Similarly, oscillator
> sims will be unrealistic.

False. Your sim took the difference between the LC tank and a sine wave.

You didn't know the default series resistance of an inductor is 1 milliohm,
so the tank voltage decayed. Your measurement could not tell the difference
between phase and amplitude (simple trig) so you claimed a frequency error.
How you converted your measurement to frequency error is beyond me.

I have attached a simple sim showing the frequency error is unmeasurable
when you set the tank ESR to zero. Let it run for 1,000 cycles. After 1,000
cycles, the tank voltage and sine wave overlap exactly. The frequency
difference is too small to measure.

Oscillator sims are similarly as accurate as the component values you enter
plus strays. See

Here is the sim. Plot the LC and Sin voltages on the same graph.

Version 4
SHEET 1 1008 680
WIRE 352 -160 176 -160
WIRE 400 -160 352 -160
WIRE 496 -160 400 -160
WIRE 176 -112 176 -160
WIRE 352 -112 352 -160
WIRE 496 -112 496 -160
WIRE 176 16 176 -32
WIRE 352 16 352 -32
WIRE 496 16 496 -48
WIRE 320 112 176 112
WIRE 352 112 320 112
WIRE 176 128 176 112
WIRE 176 224 176 208
FLAG 400 -160 LC
FLAG 176 16 0
FLAG 352 16 0
FLAG 496 16 0
FLAG 176 224 0
FLAG 320 112 Sin
SYMBOL ind 336 -128 R0
WINDOW 0 45 22 Left 2
WINDOW 3 42 47 Left 2
SYMATTR InstName L1
SYMATTR Value {N}
SYMATTR SpiceLine Rser=0
SYMBOL cap 480 -48 M180
WINDOW 0 24 56 Left 2
WINDOW 3 24 8 Left 2
SYMATTR InstName C1
SYMATTR Value {N}
SYMBOL current 176 -112 R0
WINDOW 0 -70 50 Left 2
WINDOW 3 -165 99 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName I1
SYMATTR Value PULSE(1 0 1)
SYMBOL voltage 176 112 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value SINE(0 1 1 1)
TEXT 192 -296 Left 2 ;'1 Hz LC Osc Infinte Q
TEXT 464 -264 Left 2 !.options numdgt=15
TEXT 656 -264 Left 2 !.param N = 1 / (2 * pi)
TEXT 192 -256 Left 2 !.tran 0 1000 0 100u

```
```On Tue, 05 Mar 2019 22:45:09 GMT, Steve Wilson <no@spam.com> wrote:

>John Larkin <jjlarkin@highlandtechnology.com> wrote:
>
>> On Tue, 5 Mar 2019 02:54:14 -0800 (PST), dakupoto@gmail.com wrote:
>
>>>Could some electronics guru here please clarify this a bit ?
>>>I am experimenting with SPICE transient analysis of oscillator, and I
>>>am unsure as to what to set as the ideal sampling time,  given that
>>>most oscillators will generate a fundamental and a few harmonics. For
>>>example, suppose that I have a 500 MHz differential oscillator, and I
>>>set the sampling time as 1/(15.0*time period of fundamental), would
>>>that be sufficient to satisfy the Nyquist criterion, and also capture
>>>the fundamental and the first two harmonics ?
>>>The reason I ask is that I have noticed that with this scheme,  the
>>>fundamental is always at 250 MHz, and the first harmonic is at 500 MHz.
>>>This is peculiar. Is there something wrong in my assumption ?
>
>> LT Spice goes for sim speed, so it tends to use coarse time steps. If
>> you shock a simple LC and let it ring, at default settings the
>> resonant frequency will be off by percentages. Similarly, oscillator
>> sims will be unrealistic.
>
>False. Your sim took the difference between the LC tank and a sine wave.
>
>You didn't know the default series resistance of an inductor is 1 milliohm,
>so the tank voltage decayed. Your measurement could not tell the difference
>between phase and amplitude (simple trig) so you claimed a frequency error.
>How you converted your measurement to frequency error is beyond me.
>
>I have attached a simple sim showing the frequency error is unmeasurable
>when you set the tank ESR to zero. Let it run for 1,000 cycles. After 1,000
>cycles, the tank voltage and sine wave overlap exactly. The frequency
>difference is too small to measure.

Maybe so, but I often have to force the time step down to get a useful
simulation. And that sometimes makes simulation times silly. There is
a reason that the max time step can be set. When precision matters, I
reduce it until the sim doesn't change.

Make a pure, 1 volt, 1 Hz sine wave V source. Run that for 5 seconds
and zoom the top of the sine. It's chunky line segments. Change the
time step to 1 us and it looks a lot better.

--

John Larkin         Highland Technology, Inc
picosecond timing   precision measurement

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com

```
```Steve Wilson <no@spam.com> wrote:

> John Larkin <jjlarkin@highlandtechnology.com> wrote:

>> LT Spice goes for sim speed, so it tends to use coarse time steps. If
>> you shock a simple LC and let it ring, at default settings the
>> resonant frequency will be off by percentages. Similarly, oscillator
>> sims will be unrealistic.

> False. Your sim took the difference between the LC tank and a sine wave.

> You didn't know the default series resistance of an inductor is 1
> milliohm, so the tank voltage decayed. Your measurement could not tell
> the difference between phase and amplitude (simple trig) so you claimed
> a frequency error. How you converted your measurement to frequency error
> is beyond me.

> I have attached a simple sim showing the frequency error is unmeasurable
> when you set the tank ESR to zero. Let it run for 1,000 cycles. After
> 1,000 cycles, the tank voltage and sine wave overlap exactly. The
> frequency difference is too small to measure.

> Oscillator sims are similarly as accurate as the component values you
> enter plus strays. See

LC oscillators with low Q will have a small frequency error.   See Equation
(3), Radiotron Designer's Handbook, Chapter 9, Tuned Circuits, page 449:

http://preview.tinyurl.com/hmnpj2r

This information is valuable. I have not been able to find it anywhere else
on the internet.
```
```John Larkin <jjlarkin@highland_snip_technology.com> wrote:

> On Tue, 05 Mar 2019 22:45:09 GMT, Steve Wilson <no@spam.com> wrote:

>>John Larkin <jjlarkin@highlandtechnology.com> wrote:
>>
>>> On Tue, 5 Mar 2019 02:54:14 -0800 (PST), dakupoto@gmail.com wrote:

>>>>Could some electronics guru here please clarify this a bit ?
>>>>I am experimenting with SPICE transient analysis of oscillator, and I
>>>>am unsure as to what to set as the ideal sampling time,  given that
>>>>most oscillators will generate a fundamental and a few harmonics. For
>>>>example, suppose that I have a 500 MHz differential oscillator, and I
>>>>set the sampling time as 1/(15.0*time period of fundamental), would
>>>>that be sufficient to satisfy the Nyquist criterion, and also capture
>>>>the fundamental and the first two harmonics ?
>>>>The reason I ask is that I have noticed that with this scheme,  the
>>>>fundamental is always at 250 MHz, and the first harmonic is at 500
>>>>MHz. This is peculiar. Is there something wrong in my assumption ?

>>> LT Spice goes for sim speed, so it tends to use coarse time steps. If
>>> you shock a simple LC and let it ring, at default settings the
>>> resonant frequency will be off by percentages. Similarly, oscillator
>>> sims will be unrealistic.

>>False. Your sim took the difference between the LC tank and a sine wave.

>>You didn't know the default series resistance of an inductor is 1
>>milliohm, so the tank voltage decayed. Your measurement could not tell
>>the difference between phase and amplitude (simple trig) so you claimed
>>a frequency error. How you converted your measurement to frequency error
>>is beyond me.

>>I have attached a simple sim showing the frequency error is unmeasurable
>>when you set the tank ESR to zero. Let it run for 1,000 cycles. After
>>1,000 cycles, the tank voltage and sine wave overlap exactly. The
>>frequency difference is too small to measure.

> Maybe so, but I often have to force the time step down to get a useful
> simulation. And that sometimes makes simulation times silly. There is
> a reason that the max time step can be set. When precision matters, I
> reduce it until the sim doesn't change.

> Make a pure, 1 volt, 1 Hz sine wave V source. Run that for 5 seconds
> and zoom the top of the sine. It's chunky line segments. Change the
> time step to 1 us and it looks a lot better.

The optimum time step depends on dv/dt. For sinusoidal waveforms I usually
start at period/1e4. For picosecond waveforms, you may have to go way down.

You can change the waveform compression by setting

.options plotwinsize=0

See

http://ltwiki.org/LTspiceHelp/LTspiceHelp/
_OPTIONS_Set_simulator_options.htm

This can increase the plot file by 50 times. See

http://ltwiki.org/LTspiceHelpXVII/LTspiceHelp/html/Compression.htm

The problem then is running out of available disk space. This is important
if you are running on a small SSD.

```
```On Wed, 06 Mar 2019 00:34:42 GMT, Steve Wilson <no@spam.com> wrote:

>John Larkin <jjlarkin@highland_snip_technology.com> wrote:
>
>> On Tue, 05 Mar 2019 22:45:09 GMT, Steve Wilson <no@spam.com> wrote:
>
>>>John Larkin <jjlarkin@highlandtechnology.com> wrote:
>>>
>>>> On Tue, 5 Mar 2019 02:54:14 -0800 (PST), dakupoto@gmail.com wrote:
>
>>>>>Could some electronics guru here please clarify this a bit ?
>>>>>I am experimenting with SPICE transient analysis of oscillator, and I
>>>>>am unsure as to what to set as the ideal sampling time,  given that
>>>>>most oscillators will generate a fundamental and a few harmonics. For
>>>>>example, suppose that I have a 500 MHz differential oscillator, and I
>>>>>set the sampling time as 1/(15.0*time period of fundamental), would
>>>>>that be sufficient to satisfy the Nyquist criterion, and also capture
>>>>>the fundamental and the first two harmonics ?
>>>>>The reason I ask is that I have noticed that with this scheme,  the
>>>>>fundamental is always at 250 MHz, and the first harmonic is at 500
>>>>>MHz. This is peculiar. Is there something wrong in my assumption ?
>
>>>> LT Spice goes for sim speed, so it tends to use coarse time steps. If
>>>> you shock a simple LC and let it ring, at default settings the
>>>> resonant frequency will be off by percentages. Similarly, oscillator
>>>> sims will be unrealistic.
>
>>>False. Your sim took the difference between the LC tank and a sine wave.
>
>>>You didn't know the default series resistance of an inductor is 1
>>>milliohm, so the tank voltage decayed. Your measurement could not tell
>>>the difference between phase and amplitude (simple trig) so you claimed
>>>a frequency error. How you converted your measurement to frequency error
>>>is beyond me.
>
>>>I have attached a simple sim showing the frequency error is unmeasurable
>>>when you set the tank ESR to zero. Let it run for 1,000 cycles. After
>>>1,000 cycles, the tank voltage and sine wave overlap exactly. The
>>>frequency difference is too small to measure.
>
>> Maybe so, but I often have to force the time step down to get a useful
>> simulation. And that sometimes makes simulation times silly. There is
>> a reason that the max time step can be set. When precision matters, I
>> reduce it until the sim doesn't change.
>
>> Make a pure, 1 volt, 1 Hz sine wave V source. Run that for 5 seconds
>> and zoom the top of the sine. It's chunky line segments. Change the
>> time step to 1 us and it looks a lot better.
>
>The optimum time step depends on dv/dt. For sinusoidal waveforms I usually
>start at period/1e4. For picosecond waveforms, you may have to go way down.

My point, which was disputed, is that one often has to override LT's
default (adaptive?) time step. You seem to agree.

--

John Larkin         Highland Technology, Inc

lunatic fringe electronics

```