Calculating SNR of Mic-Pre

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Bo Deadly

Well-known member
Joined
Dec 22, 2015
Messages
3,266
Location
New Jersey, USA
I want to measure SNR of a simple API style mic-pre. I have a QA400 audio analyzer but I need to attenuate the stimulus to keep the output within the maximum limits of the QA400 (only ~3.9 Vpp). So the QA400 is not going to give me an accurate SNR value if I'm messing with the gain by attenuating and then amplifying by 40+ dB.

So is there a way to guesstimate what the SNR would be if I did not need to attenuate / amplify?

Here is a block diagram of the rig:

1KgkMld.png


Using the oscilloscope I measured the Vpp at 3 points:

Output of QA400: 2.85 Vpp 2.3 dBu
Input of mic-pre: ~16.5 mVpp -42.4 dBu
Output of mic-pre: 3.9 Vpp 5.0 dBu

So overall gain looks like it's about +47.4 dB.

The QA400 reports the SNR as 87.4 dB but I think it should be much better than that because I'm attenuating the input stimulus. So is there a way to compute what the SNR is theoretically?

Not that it should matter but here is a pic of the mic-pre and how the QA400 is hooked up:

yhZ92zg.jpg
 
That is about right. The S/N is 87.4dB and the output signal is +5dBu so the noise level is -82.4dBu. The gain is 47.4dB so the equivalent input noise is -(87.4 + 47.4) dBu which =134.8dBu. This is actually less than the Johnson noise due to the 150 ohm resistor so it is a little optimistic. You won't do any better than this.

Cheers

Ian
 
ruffrecords said:
This is actually less than the Johnson noise due to the 150 ohm resistor so it is a little optimistic.

Which means that there is a measurement error somewhere, and you can't trust your figure.

Jakob E.
 
gyraf said:
Which means that there is a measurement error somewhere, and you can't trust your figure.

Jakob E.

I seem to remember the QA400 has a A weighting option. If this was engaged when the measurement was made it would explain the difference.

Cheers

Ian
 
gyraf said:
Which means that there is a measurement error somewhere, and you can't trust your figure.
I know. That's exactly what I've been mulling. A weighting is not on. And SNR is actually higher than 87.4 dB because there is net gain of 2.7 dB so I think that should make the SNR more like 90.1 dB which is even more absurd.

I would post the screenshot but I've dismantled the rig to do microcontroller code.

But clearly it is performing pretty well. The SNR value must be wrong but the plot shows that even with 47 dB of gain the noise floor is down there. I just wish I knew precisely what the SNR really is.

Maybe calibration is a little off. When I get back to the bench I'll try a fresh / proper calibration.
 
I suspect you have a measurement error somewhere. Either the gain is less than you think it is or the attenuation of the signal is not as high as you think it is or a combination of the two.

Cheers

Ian
 
I have repeated this test without the transformers. I used a THAT1646 / THAT1206 board instead.

I reset defaults and re-calibrated. My QA400 outputs are a little hot. The default values are 1.29 Vrms but I measured 1.33 Vrms on the left channel when doing the calibration.

Here's the diagram:

uMhmjrO.png


Gain of DUT was 39.75 dB and SNR reported in dBV by QA400 was 98.0 dB but that has to be adjusted for -0.164 dB overall gain between QA400 ports so it's more like 97.8.

So 97.8 dB + 39.7 dB is -137.5 dB noise.

Theoretical limit for a 150 ohm resistor is -133 dBV.

Here's a screenshot of the QA400 results:

18533SC.png


Looks pretty good for sure. But SNR is bogus by more than 4 dB.

I did notice that if I closed and restarted the QA400 software I could get one of two results with one being about -5 dB lower.

Realistically what do you think the SNR should be so that I know vaguely how far off this is? The circuit is basically a THAT1646 -> -39.77 dB atten -> JE990 x 39.75 -> THAT1200.

UPDATE:

I just noticed the display was set to dBFS but if I switch to dBV I get exactly the same result. SNR 98.0 dB.
 
Signal to noise can be greater but that is not what you are trying to measure. If you raise the signal by another 10dB, the S/N will increase by 10dB. What I think you are trying to measure is the EIN of the amp. For that you need to know two things; the gain of the amplifier and the the noise level at the output. Measuring the noise is straightforward.. Just terminate the input with 150 ohms and use the QA400 to measure the rms noise at the output. Measuring the gain is straightforward but it assumes two things; you know the output level and you know the attenuation. I think you should use a fixed attenuator for this. You can make a simple 40dB attenuator with a 150 ohm resistor and a 15K one will be very close to 40dB. Even using 1% resistors there should only be an error of about 0.2dB.

Cheers

Ian
 
I used a voltage and a scope to adjust the trimpot to -40 dB. I used a scope to measure the level at the input of the attenuator and the level at the output of the DUT. I then turned off the stimulus, removed the trimpot so that the input was terminated by just the 149R resistor and recorded the N+D reported by the QA400. Here are the results:

input of attenuator: 7.49 Vpp
attenuation: -40.0 dB
output of DUT: 7.71 Vpp
N+D: 95.3 dBV

So thats +0.25 dB - 40.0 = 39.75 dB

So EIN is -(95.3 + 39.75) dB = -135.05 dB

Again a screenshot:

6fGr6W8.png


and this is with 149R input terminated:

mx4JrMQ.png


I understand that SNR is signal / noise and as such SNR goes up with headroom. My posts don't reflect that and I appreciate your clarifications.

What I am ultimately trying to do here is to devise a repeatable test of noise performance in general. Even though the SNR value is clearly not correct, it is repeatable. So precision seems good, accuracy not so much.

More generally, I need a noise performance baseline against which I can compare to other circuit modifications. Specifically, the digitally controlled LEDs are generating measurable noise. The LED driver L9823 is the "scanning" variety which greatly reduces layout complexity but it does generate some noise. I don't know if it's a show stopper but I need a way to characterize it.
 
squarewave said:
I used a voltage and a scope to adjust the trimpot to -40 dB. I used a scope to measure the level at the input of the attenuator and the level at the output of the DUT. I then turned off the stimulus, removed the trimpot so that the input was terminated by just the 149R resistor and recorded the N+D reported by the QA400. Here are the results:

input of attenuator: 7.49 Vpp
attenuation: -40.0 dB
output of DUT: 7.71 Vpp
N+D: 95.3 dBV

So thats +0.25 dB - 40.0 = 39.75 dB

So EIN is -(95.3 + 39.75) dB = -135.05 dB
Not quite; that EIN is -135.05 dBV. To convert this to dBu you need to add 2.21dB which makes it 132.84 dBu. Alos you should be using the total power not the N+D, which according to your screen shot is -94.4dBV not the -95.3dBV you used in your calculation.

So the noise output is -94.4dBV which is -92.19dBu. The gain is 39.75dB so EIN is -92.19 - 39.75 dBu = -131.94dBu. This is still 1dB better than the theoretical noise in a 150 ohm resistor so something else must be wrong
What I am ultimately trying to do here is to devise a repeatable test of noise performance in general. Even though the SNR value is clearly not correct, it is repeatable. So precision seems good, accuracy not so much.

If the gain measurement is accurate and the attenuator is accurate then the problem must lie in the QA400. If the noise floor looked absolutely flat and the graph represent power per root Hertz, the you can convert the graph to an rms voltage simply by integrating over the 20KHz bandwidth. Since the graph represents per root Hertz you simple need to multiply the level by the square root of 20,000 which is 141 which is 43dB. So if the graph were flat at -133dBV, the rms noise in 20KHz would be 43 dB higher or -90dBu. Your graph is largely flat a -130 dBV with a rise at low frequencies so if the graph is a true representation, the rms noise ought to be about -87dBV which leads to a lot more believable EIN of -125dBu.

Cheers

Ian
 
ruffrecords said:
The gain is 39.75dB so EIN is -92.19 - 39.75 dBu = -131.94dBu. This is still 1dB better than the theoretical noise in a 150 ohm resistor so something else must be wrong
Interesting! Very informative. You have definitely narrowed it down a lot.
 
Back
Top