The Low Frequency, Low Noise Amplifier Board
By limpkin on Monday, April 3 2023, 10:48 - My Projects - Permalink
Sometimes one may want to measure tiny signals’ frequency contents at frequencies just above DC.
How tiny you may ask!
Well, my arbitrary goal for this project was to clearly measure the thermal noise of a 50 ohms resistor (around 0.9nV RMS for a 1Hz measurement bandwidth at room temperature) to be sure to be able to measure any device output I may encounter in the future (maybe audio amplifiers?).
You may not know this, but using a spectrum analyzer to directly measure that 50 ohms thermal noise isn't really doable as even top of the line Rohde & Schwarz FSWs state a Displayed Averaged Noise Level (in short, an instrument's noise floor) between 71nV and 224nV RMS (-130dBm & -120dBm) at a 1Hz resolution bandwidth around kHz frequencies.
Moreoever, every spectrum analyzer out there that is rated from a few Hz up also comes with a no DC input requirement! While the easiest solution to get around this issue usually is to use inline DC-blocking pass-through adapters, they however typically come with a low-pass filter corner frequency of a few hundred Hz... so what's the solution?
My take on it: a simple amplification circuit based on a low-input noise operational amplifier, with a clipper circuit at its output.
The Design Requirements
One may argue that a clipper circuit doesn’t remove the DC component of an amplifier’s output.
While this obviously true, a quick email exchange with the engineers who designed the Signal Hound SA44B spectrum analyzer (that I'm using) let me know that a DC component of up to 200mV is actually alright.
The amplifier requirements therefore became:
- DC to <1MHz bandwidth
- (adjustable) output clipping
- as low as possible input noise
- enough gain so that the output spectrum noise level is above the SA44B DANL
To my biggest surprise my SA44B calibration certificate mentioned a -139.3dBm/Hz DANL level at 60Hz!
The Design
The designed circuit is fairly straight-forward:
- an op-amp based circuit with a voltage gain of 101
- a high-fidelity, low-noise audio operational amplifier used as a voltage buffer
- two open-drain output comparators comparing the amplified voltage to a set threshold
- … to then control the enable input of a SPST switch
To keep the generated noise to a minimum, the above circuit is powered by two 9V batteries and a DPDT switch takes care of enabling/disabling the board power supply.
It’s important to note that as we’re designing for 50R systems, the x101 voltage gain actually means a x50.5 gain (34dB) as the final output buffer has an equivalent 50R resistor at its output.
Selected Operational Amplifier
The LT1028 from Analog devices was selected for its great specifications:
- typical 1nV/sq(Hz) input noise voltage
- typical 1pA/sq(Hz) input noise current
- 50MHz gain-bandwidth product
Doing the math, the LT1028's 1nV/sq(Hz) input noise with a 50.5x gain effectively means a 50.5nV/sq(Hz) output noise, or -133dBm.... therefore above our -139.3dBm SA44B noise floor. You'll notice here that I'm neglecting the (comparatively low) noise contribution from the voltage buffer at the LT1028's ouput.
The ADA4898 was also considered during the op-amp choice phase, and as its footprint is (quite) the same as the LT1028's I may try swapping during final testing.
Finally, it is worth mentioning that it is possible to find op-amps with lower input noise specs... but not at <kHz frequencies (see here). Anecdotally they also have higher Gain BandWidth products than the LT1028... but also quite a large input offset voltage, which gets amplified by the set voltage gain (which we really don't want).
Voltage Buffer - High Fidelity Operational Amplifier
The OPA1622 from Texas Instruments was selected so that the device may be able to drive a 50R + 50R load at its output. It only has a 3nV/sq(Hz) input voltage noise density at 1kHz and can output more than 100mA.
The initial plan was to use its enable input to implement the clipper feature, but a long exchange with the guys at TI concluded that this wasn’t really possible.
Clipper Circuit
Perhaps the part of the design that took the longest time to come up with.
To keep it simple, if the LT1028 output voltage is higher or lower than the voltages set by the 2 potentiometers, then the comparator output gets tied to -9V and the ADG1401 will disconnect the OPA1622 output from the device output.
R9 & C6 are there to prolong the disabling duration, D3 prevents the ADG1401 enable input from going below 0V and D1 is there to indicate when clipping is occurring.
The circuit composed of R8, R10 and Q1 makes sure that the device output is disabled when only the positive supply rail is present, as U3 doesn’t perform well when its negative rail is absent.
Finally, please note that with this design the comparison voltage set using the potentiometers is twice the output clipping voltage when 50R termination is used.
Layout
As you can see, the 4 layers board is pretty packed.... and quite small: 60*20mm.
Even though the device won't deal with high frequencies, it's still good practice to keep transmission lines short. You'll notice test pads at the bottom of the board, meant to offer a place to probe the current positive and negative comparison voltages.
The Case
For this project I designed an (expensive) aluminum case (machined at PCBWay) through which the SMA connectors can be screwed and the toggle switch can poke. As you can see in the above picture, I'm even using thermal interface material to provide thermal contact between the TI voltage buffer and the case.
A healthy dose of solder connects the SMA connectors to the PCB while the 9V batteries fit nicely inside their respective slots. A top cover made of Trotec laminate and machined by yours truly provides the curious person some information about what that device is.
Finally, light pipes allow the green power LED and clipping red LED's light to easily be seen.
Side Note - Reasoning Shortcuts Taken, Quick Tips
When talking about noise, one needs to be particularly careful with the terms used.
I therefore want to add a few notes here for the sake of completeness (consider it a brain dump):
- adding unrelated (thermal) noise is not as easy as adding both RMS values as power gets added. You may use that calculator for laziness.
- all 50R systems are... 50R input terminated. "Measuring a 50R resistor thermal noise" effectively means making two measurements: one with the spec-an input shorted to ground, one with the input left open (provided the amplifier input current noise is tiny enough).
- a spec-an with a -130dBm noise floor could theoretically see a 50R thermal noise contribution but you won't be likely to see it as -130dBm would become... pretty much -130dBm.
- to not confuse the reader a 1Hz measurement bandwidth was used in all above paragraphs, as when using more a square root gets involved...
- one needs to be careful when using the averaging feature of a spectrum analyzer, as when "log power averaging" is used, the displayed noise actually gets lowered by 2.51dB. No need to worry if the averaging technique is RMS. Have a look at this great document.
Testing
Lets check that the circuit behaves as expected...
Idle Power Consumption
How much current does the device actually consume?
Setup: Using a dual-channel power supply directly feeding the two 9v inputs, we note the current draw on the power supply.
Result: 15mA for the positive rail, 16mA for the negative rail
Note: This reading doesn't really need to be precise as power consumption will mainly be dictated by device usage. It however allows us to know how long the batteries would last if we'd forget to power off the amplifier: in the case of the Energizer Ultimate Lithium I'm using, that would be 47 hours.
Output Offset Voltage
With nothing at the input, what DC component do I get at the output?
Setup: With nothing connected to our device input (remember that a 50R is present internally), we use a multimeter to measure the output voltage.
Result: 0mV at the output, which is quite impressive!
Power-Up Clipping Test
Any funky things happening when the device turns on?
Setup: output clipping voltages set to +-500mV (+-1V on the trim-pot), we switch off the device, apply a safe +-20mV DC voltage at the input (+-1V hypothetical output at 50R) and enable positive/negative supply voltages in different sequences to look for funky glitches. Oscilloscope triggering is set on a positive and then on a negative voltage.
with a +20mV input
Scenario 1: device off, enabling positive rail to +9V: no change at the output, 21mA consumed at +9V, 0mA consumed at 20mV
Scenario 2: device off, enabling negative rail to -9V: no change at the output, 26mA consumed at -9V, 9mA consumed at 20mV
Scenario 3: negative rail at -9V, enabling positive rail to +9V: 20mV pulse seen at the output
Scenario 4: positive rail at +9V, enabling negative rail to -9V: no change at the output
Scenario 5: randomly toggling the switch: 800ns 4V pulse seen at the output
with a -20mV input
Scenario 1: device off, enabling positive rail to +9V: no change at the output, 21mA consumed at +9V, 0mA consumed at 20mV
Scenario 2: device off, enabling negative rail to -9V: no change at the output, 28mA consumed at -9V, -20mV becomes -0.17V
Scenario 3: negative rail at -9V, enabling positive rail to +9V: -900mV pulse seen at the output
Zooming on the transients:
Scenario 4: positive rail at +9V, enabling negative rail to -9V: no change at the output
Scenario 5: randomly toggling the switch: 800ns 3.5V pulse seen at the output
Power-Down Clipping Test
Any funky things happening when the device turns off?
Setup: output clipping voltages set to +-500mV (+-1V on the trimpot), +-20mV DC voltage at the input (+-1V hypothetical output at 50R) we disable positive/negative supply voltages in different sequences. Oscilloscope triggering is set on a positive and then negative voltage.
Scenario 1: device on, disabling positive rail: no change at the output
Scenario 2: device on, disabling negative rail: no change at the output
Scenario 3: negative rail disabled, positive rail at +9V, disabling positive rail: no change at the output
Scenario 4: positive rail disabled, negative rail at -9V, disabling negative rail: no change at the output
Scenario 5: using the switch: no change at the output
The same tests were then repeated for a -20mV input:
Scenario 1: device on, disabling positive rail: no change at the output
Scenario 2: device on, disabling negative rail: no change at the output
Scenario 3: negative rail disabled, positive rail at +9V, disabling positive rail: no change at the output
Scenario 4: positive rail disabled, negative rail at -9V, disabling negative rail: no change at the output
Scenario 5: using the switch: no change at the output
Clipping Speed Test
How long does the clipping circuit take to act?
Setup: output clipping voltages set to +-500mV (+-1V on the trim-pot), we use a signal generator to create a 0->+-60mV pulse which would generate a 0->+-3V output if there was no clipping.
Result: a positive pulse approximately lasting 900ns can be seen at the output, which as long as its maximum amplitude (~+-4V) is below your instrument maximum AC rating, won't be an issue.
Clipping output on a positive pulse:
- Blue: device input signal
- Yellow: device output signal
- Cyan: LM293 (U3) output
- Magenta: ADG1401 switching input
Zooming on the final disabling transition:
Clipping output on a negative pulse:
- Blue: device input signal
- Yellow: device output signal
- Cyan: LM293 (U3) output
- Magenta: ADG1401 switching input
Zooming on the final disabling transition:
Clipping Test at Different Thresholds
Does it take longer to cut the output when increasing the clipping voltage?
Setup: output clipping voltages set to different voltages, we use a signal generator to create a 0->+-80mV pulse which would generate a 0->+-4V output if there was no clipping.
Result: positive pulses of different lengths (0.8us to 2us) can be seen at the output, which as long as their maximum amplitude (~+-4V) is below your instrument maximum AC rating, won't be an issue.
- Blue: device input signal
- Yellow: device output signal
Triangular Waveform Clipping Test
How does the clipping look like when feeding a triangle signal?
Setup: output clipping voltages set to +-1.5V (+-3V on the trim-pot), we use a signal generator to create a 70mVpp triangle waveform which would generate a +-3.5V output if there was no clipping.
Result: the output is indeed clipped at the expected voltages, and includes the pulse shown in the previous tests
- Cyan: device input signal
- Yellow: device output signal
For a 10Hz input signal:
For a 100Hz input signal:
For a 1kHz input signal:
For a 10kHz input signal:
You can see in the above screen captures the impact of the RC circuit, effectively increasing the clipping time.
Clipping Circuit RC Test
Testing the disabling time prolongation circuit
As was previously seen, a small pulse is always present at the device output when the clipping circuit triggers. Because of that pulse, one may wonder if it could be possible to generate a DC value at the device output higher than the set clipping voltage. This is however impossible as an RC circuit is present at the comparator's output. To demonstrate its effect, we input a square wave whose low level is close to the set clipper voltage and notice the output duty cycles changes the higher we go in frequency.
Setup: output clipping voltage set to +-2V (+-4V on the trim-pot), we use a signal generator to create a 40mVpp square waveform offset by 60mV.
- Cyan: device input signal
- Yellow: device output signal
For a 10Hz input signal:
For a 100Hz input signal:
For a 500Hz input signal:
At 700Hz, the output is fully disabled, which seems to indicate that the "disabling circuit" time constant is 1/700/2 = 0.7ms.
Wanting to look into details on how it behaved, the following capture was then taken:
- Cyan: device input signal
- Yellow: device output signal
- Blue: LM293 (U3) output
- Magenta: ADG1401 switching input
Here you can see two interesting things:
- between the two vertical cursors: the D3 diode preventing the ADG1401 input from going negative
- between the last vertical cursor and the output enabling: time it takes for the ADG1401 input to reach Vih + ADG1401 enable delay
Real Use Case Test
Making sure we can respect the SA44B max 200mV input spec
This amplifier-clipper circuit was made to protect the input stage of the SA44B spectrum analyzer. While its input has a 0V DC max rating, a quick email exchange with the Signal Hound engineering team let us know that up to 200mV DC is actually alright. The test below is therefore meant to represent a real use case.
Setup: output clipping voltage set to +-100mV (+-200mV on the trim-pot), we use a signal generator to create an 80mVpp triangle waveform with a 26dB attenuator at its output: 80mVpp = -18dBm, -18-26 = 4mVpp, 4mVpp*50 = 200mVpp.
Result:
As can be seen above, the clipper is still behaving as expected!
1kHz Sine Test
If I'm feeding it a sine, do I get an amplified sine?
Setup: We configure a signal generator to output a 60mVpp (-20.45dBm) peak-to-peak sine wave signal, then attenuated by 26dB. We connect the amplifier output to my spectrum analyzer, expecting a -20.45-26+34 = -12.45dBm tone.
Result: The following spectrum was obtained. We notice a 1dB difference, which is likely caused by the imprecision of the 20 years old signal generator used (Stanford DS335).
Gain and Noise Spectrum Measurement
Can we actually measure thermal noise?
The whole point of this amplifier is to amplify tiny signals while adding the least amount of noise. We therefore want to measure the noise spectrum at the amplifier output when its input is either shorted, 50R-shorted or left open, and finally compare that with the spectrum analyzer input noise.
Setup: the trusted amplifier, powered by batteries, directly connected to the Signal Hound SA44B and then to a Bode 100. Spur rejection mechanism is disabled (required to get precise measurements at low input power).
Result:
The trusted bode 100 reports 34dB of gain, which is 50.12x ! The 3dB point is around 600kHz.
At the 0R input case, the noise power at 1kHz for a 1Hz RBW is -134.3dBm (which is lower than the DANL of these fancy R&S FSWs!), which is 43nV RMS. Dividing the latter by 50.12x, that’s a 0.86nV input referred noise, actually lower than the LT1028 specified input noise!
Noise Increase at 400kHz
One may wonder why the noise increases at 400kHz in the above spectrum… the answer is in the LT1028 datasheet:
Checking the 25R Noise Contribution
I find this one extremely neat: between the 0R/50R/open test cases you actually see an increase in the measured noise spectrum due to the resistance increase at the input! Keeping in mind that the op-amp input is 50R terminated, the difference in input resistance between the 0R/50R/open cases actually is 25R.
The RMS voltage noise of a 25R resistor at 23 degrees is 0.000639275uV. If you multiply this value by the effective gain of 50.5, that leads to 0.0323uV RMS or -136.81dBm.
At the 0R input case, the noise power at 1kHz for a 1Hz RBW is -134.3dBm and if you add the 25R thermal noise of -136.81dBm, that leads to -132.4dBm, pretty close to the -132.8dBm measured for the 50R input case! It’s also funny to note that with another SMA 50R terminator I did measure -133dBm…
Similarly, adding -136.81dBm to that 50R reading -132.8dBm leads to -131.35dBm, also pretty close to the -131.65dBm reading in the open test case! Keep in mind that -131.65dBm is 58nV RMS…
Comparison with the ADA4898
Another measurement was also made, replacing the LT1028 with the ADA4898 to compare both IC noise and gain performances:
I’ll let you make your own conclusion on the ADA4898 vs LT1028 topic.
They both have similar levels of input noise until 50kHz where the LT1028 increases its input noise but keeps its gain while the ADA4898 starts to decrease its gain. These tests were done using a single sample for each op-amp, so for all I know we could get different results for other samples.
What can actually be seen?
Even lab power supplies have noisy outputs!
If you look at the above scope capture (taken on my Rigol DP821A power supply), you'll indeed see that using a DC block and the amplifier allows you to see the PSU switching ripple that you wouldn't be able to see otherwise.
Testing Conclusion
That was quite a lot of tests, but in my opinion required as any mistake can lead to a blown-up spectrum analyzer. For me, the main take-aways are:
- the clipper circuit does function as intended, but does generate a short pulse at the output when triggering. When feeding the amplifier output to a SA44B, it may be good practice to add a 3dB attenuator so that 3.8V pulse (<22dBm) doesn’t go above the maximum 20dBm input rating.
- the device gain is 34dB, its -0.1dB point is 375kHz and -3dB point 600kHz.
I'm now ready to measure any low frequency signal that comes my way, with a home-made & well characterized device! In case you'd like to make your own one, I've uploaded the KiCad solution here. Alternatively, you can also purchase it on my tindie store.