Keyboard Shortcuts
Лайки
Пошук
Failed to find DC operating point for AC analysis
I uploaded the file noise.asc to the group's temp folder, hoping someone can tell me how to get a bode plot. With the .tran analysis active it runs fine, but changing that to .ac gives an error. I just realized the .wave directives reference a drive G: you all may not have, so just delete those. I tried adding an empty AC generator, but that didn't help. Any advice to get this working is greatly appreciated! |
I don't see what a Bode plot of a circuit
based on two shift registers would mean. I think the only Bode
plot you can do is of the pinking filter. On 2024-11-27 19:57, Ethan Winer via
groups.io wrote:
-- OOO - Own Opinions Only Best Wishes John Woodgate Keep trying |
OK, just delete all the shift-register stuff
and connect your 'floating' generator to the inputs of the
white-noise buffer end the pinking filter. On 2024-11-27 20:55, Ethan Winer via
groups.io wrote:
-- OOO - Own Opinions Only Best Wishes John Woodgate Keep trying |
Where is your AC source?
In .AC analysis, there must be an AC source, either a voltage or current source with a non-zero AC parameter. I see one, but it's driving node N036, which appears to go nowhere! That will never work.
Also, it appears that 98% of this circuit is completely digital (binary), not analog. It is pointless trying to get a Bode plot of digital flip-flops. The concept is just meaningless.
I don't fully understand why it can't find the operating point in one case (.AC) but it can in the other (.TRAN).
Actually, now I see what happened. LTspice was unable to find the operating point in BOTH simulations. But for the .TRAN one, it proceeded anyway, without any operating point:
Trouble finding operating point....skipping operating point for Transient analysis.
It can do that for .TRAN. But the same thing doesn't work for .AC.
I think you need to provide LTspice with a lot of "help" to find an initial operating point. And then, re-think what it means to do an .AC sweep of a digital circuit, and why that doesn't work.
Andy
|
On Wed, Nov 27, 2024 at 04:15 PM, Ethan Winer wrote:
Why not?
Are you concerned about the source impedance of the shift registers, feeding the filters?
Well, yes, and no.
Yes you can get it to work by getting DC convergence.
No you can't measure the frequency response of a shift register. with SPICE's .AC analysis.
Andy
|
Just to be clear about this -
.AC analysis is a SMALL-SIGNAL LINEAR analysis. The overriding assumption is that the entire circuit is linearized, making it 100% linear (shift registers and flops are not), and the resulting response is the SMALL SIGNAL response through the system which is assumed to be linear about the operating point. As it is linear, the output frequency equals the input frequency.
Andy
|
On Wed, Nov 27, 2024 at 04:22 PM, Ethan Winer wrote:
OK, so you deleted all the digital circuits, leaving only the two analog filters, right? (I know you didn't.) How does the voltage from V1 get anywhere?
Adding a resistor from V1 to ground doesn't do anything helpful. How does V(N036 get to your outputs?
Andy
|
Right, so now you are using the correct tool for the job, an FFT.
|
You cannot use .AC to find the frequency
response of your PRBS generator. .AC uses it's own sweep
generator, defined in the source specification pane under 'Small
signal (AC) analysis'. What are you trying to sweep the
frequency of to get the Bode plot? You could use .STEP to
produce a discrete sweep, using linear or log steps intervals. On 2024-11-27 21:15, Ethan Winer via
groups.io wrote:
-- OOO - Own Opinions Only Best Wishes John Woodgate Keep trying |
Ethan,
you can easily calculate the noise voltage density distribution Vn(f) in V/sqrtHz of an NRZ unipolar pseudorandom bit sequence of amplitude A (15V, in your case) driven by a clock signal with frequency Fck and period Tck=1/Fck, like this:
At DC: Vn(0)= A/2 At all other frequencies: Vn(f)=A*Tck*sin(x)/x where x = pi*f*Tck
Here sin(x)/x is the classical sinc(x) function with nulls at the clock frequency Fck and all its integer multiples.
Trace this curve with a dB vertical scale [20*log(Vn)], and you will then see that the noise voltage density distribution is almost flat only up to about 1/10th of the clock frequency.
At 1/4th of the clock frequency it goes about 1 dB down, at 0.5*Fck the level is about 4 dB down, and 0.75*Fck it's about 10 dB down.
In theory -and considering ideal NRZ pulses- the effective noise spectrum coming out from your circuit is this same characteristic combined with the frequency response of the subsequent filters.
But be careful: when simulating the circuit with LTspice there is another parameter that could play a role in shaping the displayed FFT trace of the filtered noise: the maximum timestep (Tmax) used by the simulation engine. Its effect is to convolute the noise signal with a second sinc function that can somewhat distort the real response, hence it is a good rule to keep it at least ten times smaller than the clock period of the PRBS noise generator.
You can play with this parameter looking at the FFT of an LTspice's behavioral noise generator, like for instance a "white" with V=0.1*white(1e6*time). Begin with a transient simulation setting a maximum timestep of 0.1u, and then repeat it but setting it to 1u and then then to 10u, and see the differences in the displayed traces
A last comment: maybe I’m wrong, but it seems that the primitive polynomial of your generator is x^31+x^13+1. Now, in order to get the maximum length of the sequence this polynomial should be x^31+x^28+1 (or its complementary x^31+x^3+1).
I have uploaded in the Temp folder the file <PRBS_Maxlenght_31.asc>, a modified version of your circuit reflecting the latter structure, plus an initialization circuit added to the first register that avoids the need for an AC coupling in the feedback. |
Повідомлення
Більше