Maker Pro
Maker Pro

real noise plots in SPICE?

R

Robert Baer

Helmut said:
I copied your response and via cut and paste, made two files as you
described: draft11.cir and draft11.asc .
In LTspice, opened draft11.asc, saw the two circuits, and ran the
simulation.
It was not possible to select V(out1) or V(out2) for plotting, so i
tried inoise and onoise and got fairly flat lines, inoise about 0.825nV
per root Hertz and onoise about 0.820nV per root Hertz.


Hello Robert,

if the following line is active, then V(onoise) is the noise
at node out1.

.noise V(out1) V1 dec 100 1 1MEG

You were right that it's 0.82nV/sqrt(Hz).


If the other line is active, then V(onoise) is the noise at
node out2.

.noise V(out2) V2 dec 100 1 1MEG

Here V(onoise) is 0.97nV/sqrt(Hz).


The values added as comment are slightly different. I assume that
I had varied the resistor values when I simulated those.


Then again, who knows where inoise and onoise really are (read on)?


V(onoise) is measured at the net you specify in the .noise command.


Tried plotting all by themselves, V(Q1) and V(Q2p); got *zero*.


V(Q2) must be zero, because it doesn't add anything to the target
( V(onoise) when set to net out1 ).


Could not find 0.984nV or anything near that value, except for inoise
and onoise; where do i look?


You have to enable the other .noise command line.
You will then get 0.97nV/sqrt(Hz).


When you move the cursor over the different components, you will
see the probe symbol. Then click the left mouse button to get
the noise contribution plotted. And of course a component which
doesn't contribute shows 0nV.

Now the math.
The output noise voltage is the square root of the squared sum
of all the noise contributors. Now you will ask why these squares.
It's because all the noise contributors are assumed to be
independent of each other.

V(onoise)=sqrt(V(Q1)*VQ1)+V(R1)*V(r1)+ ......)

The help page from LTspice repeats some of my explanantions.
The total RMS noise voltage is the integral over the frequency
band of interest.

Best Regards,
Helmut



This is the help page from LTspice
----------------------------------
Help -> Help Topics -> LTspice -> Dot Commands -> .NOISE


.NOISE -- Perform a Noise Analysis

This is a frequency domain analysis that computes the noise due to
Johnson, shot and flicker noise. The output data is noise spectral
density per unit square root bandwidth.

Syntax: .noise V(<out>[,<ref>]) <src> <oct, dec, lin>
+ <Nsteps> <StartFreq> <EndFreq>

V(<out>[,<ref>]) is the node at which the total output noise is
calculated. It can be expressed as V(n1, n2) to represent the voltage
between two nodes. <src> is the name of an independent source to
which input noise is referred. <src> is the noiseless input signal.
The parameters <oct, dec, lin>, <Nsteps>, <StartFreq>, and <EndFreq>
define the frequency range of interest and resolution in the manner
used in the .ac directive.

Output data trace V(onoise) is the noise spectral voltage density
referenced to the node(s) specified as the output in the above syntax.
If the input signal is given as a voltage source, then data trace
V(inoise) is the input-referred noise voltage density. If the input
is specified as a current source, then the data trace inoise is the
noise referred to the input current source signal. The noise
contribution of each component can be plotted. These contributions
are referenced to the output. You can reference them to the input
by dividing by the data trace "gain".

The waveform viewer can integrate noise over a bandwidth by
<Ctrl-Key> + left mouse button clicking on the corresponding
data trace label.
Yes, i know; "vector sum".
However, that does *not* addess the issues of:
1) SPICE reports noise values that are way different than theoretical.
2) Ohms law (ie reality) calculations for collector currents are
*orders* of magnitude less than what SPICE reports.
 
R

Robert Baer

Genome said:
I am running LTspice.

If I click on Simulate, Edit Simulation Cmd and then click
on the Noise tab then when I set up the analysis and click
on OK the data gets corrupted and the error message is
generated.

If I explicitly place a spice directive on the circuit in
the correct format then when I run the simulation it comes
up with the same error. The spice directive remains correct
but the data in the Noise tab gets corrupted.

I did do a web update but the problem remains.

HTH

DNA
Yes, i have seen the corruption created when one wants to change
inoise or onoise specifications.
It happens every time.
Just manually correct the last 3 lines, click OK on the pop-up and
the noise card should follow what you entered.
 
H

Helmut Sennewald

Hello Robert,
if the following line is active, then V(onoise) is the noise
at node out1.

.noise V(out1) V1 dec 100 1 1MEG

You were right that it's 0.82nV/sqrt(Hz).


If the other line is active, then V(onoise) is the noise at
node out2.

.noise V(out2) V2 dec 100 1 1MEG

Here V(onoise) is 0.97nV/sqrt(Hz).


The values added as comment are slightly different. I assume that
I had varied the resistor values when I simulated those.


Then again, who knows where inoise and onoise really are (read on)?


V(onoise) is measured at the net you specify in the .noise command.


Tried plotting all by themselves, V(Q1) and V(Q2p); got *zero*.


V(Q2) must be zero, because it doesn't add anything to the target
( V(onoise) when set to net out1 ).


Could not find 0.984nV or anything near that value, except for inoise
and onoise; where do i look?


You have to enable the other .noise command line.
You will then get 0.97nV/sqrt(Hz).


When you move the cursor over the different components, you will
see the probe symbol. Then click the left mouse button to get
the noise contribution plotted. And of course a component which
doesn't contribute shows 0nV.

Now the math.
The output noise voltage is the square root of the squared sum
of all the noise contributors. Now you will ask why these squares.
It's because all the noise contributors are assumed to be
independent of each other.

V(onoise)=sqrt(V(Q1)*VQ1)+V(R1)*V(r1)+ ......)

The help page from LTspice repeats some of my explanantions.
The total RMS noise voltage is the integral over the frequency
band of interest.

Best Regards,
Helmut



This is the help page from LTspice
----------------------------------
Help -> Help Topics -> LTspice -> Dot Commands -> .NOISE


.NOISE -- Perform a Noise Analysis

This is a frequency domain analysis that computes the noise due to
Johnson, shot and flicker noise. The output data is noise spectral
density per unit square root bandwidth.

Syntax: .noise V(<out>[,<ref>]) <src> <oct, dec, lin>
+ <Nsteps> <StartFreq> <EndFreq>

V(<out>[,<ref>]) is the node at which the total output noise is
calculated. It can be expressed as V(n1, n2) to represent the voltage
between two nodes. <src> is the name of an independent source to
which input noise is referred. <src> is the noiseless input signal.
The parameters <oct, dec, lin>, <Nsteps>, <StartFreq>, and <EndFreq>
define the frequency range of interest and resolution in the manner
used in the .ac directive.

Output data trace V(onoise) is the noise spectral voltage density
referenced to the node(s) specified as the output in the above syntax.
If the input signal is given as a voltage source, then data trace
V(inoise) is the input-referred noise voltage density. If the input
is specified as a current source, then the data trace inoise is the
noise referred to the input current source signal. The noise
contribution of each component can be plotted. These contributions
are referenced to the output. You can reference them to the input
by dividing by the data trace "gain".

The waveform viewer can integrate noise over a bandwidth by
<Ctrl-Key> + left mouse button clicking on the corresponding
data trace label.
Yes, i know; "vector sum".
However, that does *not* addess the issues of:
1) SPICE reports noise values that are way different than theoretical.

Hello Robert,
then please come with an example schematic. I like schematics
more than netlists. Why should you know better then the hundred-
thousend who have used SPICE since decades and trust it.
2) Ohms law (ie reality) calculations for collector currents are *orders*
of magnitude less than what SPICE reports.

Plese an example. It's clear that wrong inputs will lead to
wrong outputs. SPICE is a math program. It can't discover any
input error. Maybe a SPICE GUI should have some fuzzy logic to
better guess what users have had intended in their netlist.

Best Regards,
Helmut
 
Q

qrk

Helmut, you have amazing patience! I think we should nominate you as
mentor of the decade!

Aloha, Mark
 
G

Genome

Example:
--------

This is the error message which you will get if you have written
.noise out v2 oct 100 100 1k

instead of the correct
.noise V(out) v2 oct 100 100 1k


Circuit: * F:\Programme\Ltc\SwCADIII\examples\Educational\noise.asc

Error on line 67 : .noise out v2 oct 100 100 1k
bad syntax [.noise v(OUT) SRC {DEC OCT LIN} NP FSTART FSTOP
Fatal Error: .NOISE syntax error


Best Regards,
Helmut

To all:
The .NOISE analysis correctly works in LTspice.
A user should ask himself why it doesn't work as expected.

Thanks for taking the time over this one.

I just spotted it.

I've been writing

..noise V(out) V(vset) dec 20 1 100K

Where V(vset) references an output port, called VSET
connected to a voltage source, called V3.

That messes up the analysis and corrupts the data in
the noise dialog tab. I should be writing.

..noise V(out) V3 dec 20 1 100K

whoops

DNA


DNA
 
J

Jim Thompson

Helmut, you have amazing patience! I think we should nominate you as
mentor of the decade!

Aloha, Mark

Seconded ;-)

...Jim Thompson
 
Top