Maker Pro
Maker Pro

LTspice - fast NRZ pulses how?

Does anyone know a trick to make fast random NRZ pulses in LTspice?

I don't want to use the read-from-file option, but would like to
generate them procedurally.

This is for speed and convenience.

The pulses should be rectangular, be 1s (or whatever 1/datarate is)
and be either +1 or -1, with a random probability distribution.
 
B

batguy

Jan 1, 1970
0
You could probably use two independent sources to make a
multiplicative congruental generator.

Something like Va = fraction ( pi * Vb ) and Vb = Va.

You'll have to set up Va to be nonzero when the simulation starts, and
I'm not sure how you would put in a proper time delay between the two
sources.

Then you have a pseudorandom number, to make data, you'll probably
have to sgn() it etc. Probably need a sample & hold to to hold it
still for one bit period.
 
Thanks! I tried this:

* C:\Program Files\LTC\SwCADIII\nrz_sim\random_nrz_bits.asc
B1 a 0 V = if ( rand( time ) , 1, -1 )
..tran 1000
..backanno
..end

and it seems to work! It's fast too - around 4000 seconds per
second.

How about some other tricks to accomplish the same?
 
B

batguy

Jan 1, 1970
0
That's a cool trick.

For grins, I tried B1 a 0 V= pi*v(a) - floor( pi*v(a) ) combined
with a sample & hold.

That worked too, but it's a lot slower.
 
H

Helmut Sennewald

Jan 1, 1970
0
Does anyone know a trick to make fast random NRZ pulses in LTspice?

I don't want to use the read-from-file option, but would like to
generate them procedurally.

This is for speed and convenience.

The pulses should be rectangular, be 1s (or whatever 1/datarate is)
and be either +1 or -1, with a random probability distribution.

Hello,

I recommend a B-source.

V={ampl}*(rand(time*{br}) >=.5)


..param br=533meg
..param ampl=2


The option below enables the eye diagram.

..options baudrate={br} delay=.1n

Setup for a transient simulation.

..tran 0 1u 2n 10p
..options plotwinsize=0


Best regards,
Helmut
 
Top