LTspice - fast NRZ pulses how?

Aug 28, 2008 4 Replies

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.


You could probably use two independent sources to make a multiplicative congruental generator.

Something like Va =3D fraction ( pi * Vb ) and Vb =3D 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 > Does anyone know a trick to make fast random NRZ pulses in LTspice?

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?

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.

schrieb im Newsbeitrag news: snipped-for-privacy@k37g2000hsf.googlegroups.com...

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required