DJ skillfully adjusting knobs and sliders on a DJ mixer while performing live.

Turning up the Noise: .NOISE Simulations in LTspice: Part 1 of 3

Noise simulations are a crucial aspect of circuit design, allowing engineers to understand and mitigate the impact of noise on their circuits. There are several simulation types in LTspice: transient (.TRAN) and AC (.AC) simulations are most common.  Though not as popular, noise (.NOISE) simulations are very useful. I’m going to explore .NOISE simulations in the next few blog posts.

The .AC directive is used to simulate the small-signal frequency response of the circuit.  To explore noise sources and how they are amplified, attenuated, and shaped by the frequency response of the circuit, we switch from the .AC directive to the .NOISE directive.

Getting Started with a .NOISE Simulation

In the spirit of starting with a working simulation, I highly recommend you start with a schematic that is behaving as expected with the .AC simulation directive.  I will use a simple lowpass RC schematic as an example. Download resistor-noise.asc to follow along.  Open the schematic in LTspice, click the green play icon to run the simulation, and click on the wire labeled out in the schematic to plot V(out).  See Figure 1 for the schematic and resulting simulation results.

 Plotted Frequency Response of RC Circuit Using .AC Directive

Figure 1: Plotted Frequency Response of RC Circuit Using .AC Directive

In this .AC simulation, the plotted V(out) is showing the frequency response of the RC circuit. V1 is set to an AC amplitude of 1, and V(out) is showing that the voltage from V1 passes through the circuit at lower frequencies, but is attenuated at higher frequencies.  The 3 dB frequency of this circuit is 1/(2= 1.59 kHz.

Click on the plot title V(out) to bring up the cursor to measure the 3 dB frequency in the waveform viewer.

Once we’ve verified that the .AC simulation is working as expected, it’s easy to switch to a .NOISE directive.  Right-click on the .AC directive in the schematic to bring up the Configure Analysis dialog.  Click on the Noise tab to configure the .NOISE simulation.

 Configure Analysis Dialog, with Noise Analysis Parameters Shown

Figure 2: Configure Analysis Dialog, with Noise Analysis Parameters Shown

The .NOISE directive needs to know the input and output of your circuit—this is to ensure that the simulated results are properly referenced to the output of your circuit.  The first parameter, Output, is the node voltage that you want the noise results to be referenced to. In my example, this would be V(out), where out is the node name, and V(out) is the voltage at the node named out.

The second parameter, Input, is the name of the element that you consider to be the input of your circuit. For my example, this is the voltage source V1.

The remaining parameters are identical to the parameters required for the .AC directive—type of sweep (octave, decade, linear, list) and start and stop frequencies.  I like to ensure that my .NOISE directive parameters are identical to my .AC directive parameters, so that the two simulations are identical if I need to switch between them during troubleshooting.

Understanding .NOISE Results

Once you have the .NOISE directive placed on the schematic, click the green run icon (or press ALT+R), and click on the out node in the schematic to plot the noise referred to the output, v(onoise). 

 Plotted Noise at the Output Using .NOISE Directive

Figure 3: Plotted Noise at the Output Using .NOISE Directive

You can click on v(onoise) to use the cursor to measure the noise at various frequencies.  The noise at lower frequencies matches the calculated noise density of a 1 kΩ resistor (sqrt(4 ⋅ 1.380649e-23 ⋅ 300.15 ⋅ 1e3) = 4.071 nV/rtHz).

You can also CTRL+Click on the waveform name v(onoise) to calculate the integrated noise of the waveform. 

 CTRL+Click to Calculate Integrated RMS Noise of Waveform

Figure 4: CTRL+Click to Calculate Integrated RMS Noise of Waveform

The integrated noise calculated in the waveform matches the calculated RMS noise of a resistor combined with a 100 nF capacitor (sqrt(1.380649e-23 ⋅ 300.15 / 100e-9 = 203.5 nV).  I’ll explore the topic of kT/C noise later in this blog series.

Exploring Multiple Noise Sources

Let’s explore the same circuit, but we’ll divide the 1 kΩ resistance across two resistors: R1 = 800 Ω and R2 = 200 Ω.  Run the simulation and plot the noise at the output.

 Plotted Noise from Two Resistors Using .NOISE Directive

Figure 5: Plotted Noise from Two Resistors Using .NOISE Directive

The total noise for this circuit (R = 800 + 200) is exactly the same as the previous circuit (R = 1k).  This is not surprising, but I will use this example to demonstrate that you can plot each resistor’s contribution to the noise individually.

Click on the icon for Pick Visible Traces (or Plot Setting -> Visible Traces), hold the CTRL key down to select multiple waveforms: v(onoise), v(R1), and v(R2).  You can use the cursor to make measurements on each waveform, and you can CTRL+Click to integrate the noise of each contribution.

  Plotting Individual Resistor Noise Along with Total Noise at the Output
Figure 6: Plotting Individual Resistor Noise Along with Total Noise at the Output 

What’s Next?

We've covered the basics of using the .NOISE directive to analyze noise in a simple RC circuit. We've seen how to set up and run a noise simulation, interpret the results, and even explore the contributions of individual components to the total noise. In future blog posts, I’ll explore methods for making more efficient measurements in .NOISE simulations using .STEP and .MEAS directives.  I’ll also discuss some of the more interesting details to consider when adding noise sources together—depending on whether the noise sources are correlated or uncorrelated.  Stay tuned!

Read all the blogs in A Pinch of LTspice series.