Post Go back to editing

noise simulation paradox

Category: Software
Product Number: LTspice
Software Version: LTspice 17.1.15

Hi,

I found a paradox in the noise simulation of the circuit below. When I want to measure the output noise current of a voltage to current amplifier I would add a 0V voltage source in series with the load and convert that noise current to a voltage using an H-source, since I don't know how to perform an output noise current simulation directly. Then I could as well leave out the load resistor and add series resistance to my voltage source. When I did that I noticed an increase in the amount of noise, so I reduced that problem to this demonstration circuit.

The noise contribution of R1 is 0, which is makes sense to me since the circuit is open. But the noise contribution of V1, with the same series resistance, is about 4pA/Hz which is what it would be if V1 is shorted. The same series resistance gives two different results. Could this be fixed?

Best regards,

Danny

ThatsNotRight.asc

-- EDIT --

I have done some more thinking about it and I have reverse engineered a model for the Vsource that would show this behaviour.

Rser itself is noiseless and the noise of Rser is added by G1. This way when the voltage source is unloaded, all of the noise current passes through V1 and shows up at V(out) as a transformed voltage. In reality this can't happen if the circuit is open. There would only be a noise voltage present at the output terminals of the voltage source, without any current. To solve this G1 should be placed in parallel with Rser without including V1 in the loop.

Vsourcemodel.asc

-- END EDIT --

Edit Notes

added a possible model that explains it
[edited by: danny1 at 1:25 PM (GMT -5) on 5 Jan 2024]
  • ADI North America will be on winter shutdown starting December 25, 2023; perhaps another community member can assist you until our return on January 8, 2024.
  • Resistor R1 produces a thermal noise voltage given by sqrt(4kTR1/Hz) or 4.06nV/rtHz at 27C.  This voltage can’t drive any current through V1 due to the high impedance of I1 so it doesn’t contribute to the noise at V(OUT).  The resistor Rser produces a thermal noise current in component V1 given by sqrt(4kTGser/Hz) or 4.06pA/rtHz at 27C (Gser = 1/Rser).  This current is translated to 4.06pV/rtHz at V(OUT) by H1 and is the only contributor to V(onoise).  Your demonstration circuit is working as expected.

  • I think adding series resistance to V1 should have the same effect as adding that resistor in series with V1.

  •  's assessment is very correct. Your R1 has no path to any node, because I1 is zero current and therefore can be removed without changing the behavior. Hence no noise contribution from floating R1.

    Best Regards,
    Mathias

  • The problem isn't in R1, that is what I'm saying. So I agree that R1 could be left out without any change in the noise result. But the same should hold for Rser. As it is now it does make a difference if Rser is included in V1 or placed as an extra resistor. This is precisely what R1 represents in my circuit.

    The claim retiredEE makes is that 1mS in series produces a different noise than 1kohm in series, but for the noise it doesn't matter if you prefer to work with the conductance or the resistance to calculate the noise. It's the same two components in series still. For Gser or Rser to be able to deliver a noise current in the Vsource part of V1 you need a closed circuit. Even though numerically their calculation works out it doesn't represent the circuit. However it hints to where it is going wrong, see my edit of the Vsource noise model.

    The circuit is really just two resistors in series since the 0V source is just a wire where the current is measured. That is the current through both R1 and Rser. The combined resistance of 2k has no path to any node as you say. If R1 is floating then Rser is too. You could say there is also an infinite resistance in series with R1 and Rser. The current noise of the combined infinite resistance must be 0. Yet, Rser is contributing to the output noise current, and to the input noise current in I1 for that matter, while R1 is not. So either the 0 noise from R1 is correct (what I say) or the 4pA/Hz noise from Rser is correct. They can't both be right since they must carry the same current and contribute equally to the input- or output noise. Therefore the noise simulation must be wrong. And I think because of a problem with the noise model of a voltage source.

  • Dear  ,

    I apologize for too quickly dismissing your case. After giving this more thought, I agree with your assessment. The equivalent noise circuit for V1 is this:

    You sense the current through this part via H1, which equals the current through V1. This current has no noise, thus LTspice is wrong in reporting any noise at the OUT node. Another way to look at this is from a physics point of view. The current in R1 and V1 (original schemtic) is forced by I1. Any variation in the system caused by resistor noise can only manifest itself as voltage change, not current change.

    Apparently, this is a very old LTspice bug. It might not be possible to fix this easily. Fot the time being, put the series resistor outside the voltage source as a work around. (But you knew that already.)

    Side note: I believe this is the only way to sense the current in a reistor in an AC (and noise) sim. You can't do this with a behavioral source. There, an expression like V=I(R1) always gives zero in an AC and noise sim. It's incorrect, but a result of internal limitations, but at least it's documented in the help file.

    Best Regards,
    Mathias

  • Dear Mathias,

    Thank you for your reply and picking it up. I will just use an external resistor until it is fixed.

    Best regards,

    Danny

  • The internal Spice model for resistor thermal noise analysis is a current source [I = sqrt(4kTG/rtHz)] in parallel with R where G=1/R.  The Mathias model illustrates that. In the original circuit this creates an internal current loop between the +/- nodes of V1 and generates noise across Rser.  There is no series Gser, it only is used in the calculation of Inoise.  What bothered me is the LTspice documentation of the H part.

     “If Rser is specified, the voltage source cannot be used as a sense element for F, H, or W elements. However, the current of any circuit element, including the voltage source, can be plotted.”

     This must be the bug Mathias is referring to as H1 did translate the internal loop noise current to a terminal voltage at V(out).

  • It would be gratifying if I could be of help if the origin of the bug turns out to be because the noise model is actually as I drew it. And  I would rather have a simulator that agrees with physics than with the manual.

  • Hi,

    It's a really interesting discussion not only because of the LTSpice behavior.

    Thermal noise is current, thermally activated random movement of charged particles, and can appear as voltage due to the resistance. So, this physics is in agreement with the model using a resistor and a parallel noise current source. This also explains why you don’t have the same current in Rser and R1 even though they are connected in series.

    I don’t think the behavior of LTSpice must be considered as a bug. The separated ideal V1 and Rser part is only a model of a realistic voltage source, which has an internal noise current. If you think about it as a whole (in simulation too), one can understand why H1 reflects its internal noise current. I guess it was the intention of the developers. Maybe the manual could be more clear. If it is not what the user wants, then the recommendation of   could be considered. So I agree with  ’s comments and point of view.

    Zoltan

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.