Test & Measurement interface for Soundcard

It would be nice if someone would give a brief tutorial on FFTs, explaining the difference between noise floor and noise level of FFT, etc.

For instance, I get an apparent noise floor near -140dB in the above plots, but the signal to noise is 87dB with a -11.53dBFS input. The difference between the input and 2nd Harmonic is over 90dB and it is the highest peak with the 60Hz peak at least 100dB down. I would expect the average noise level to be below -90dB from the input level and hence would expect to see a greater s/n ratio. Obviously my understanding of s/n and my logic is faulty.
 
I actually got 20dB reduction in Float mode vs 16dB in Gnd Mode. But this is all relative, and not with any real cal standard so take it with a grain of salt.

You don't even have to install the Mu Metal to see the effect, I just cut the sheet in half and made a sandwich with the interface and I saw over 10dB reduction.

Yeah. That's basically what I have done. I installed the sheet on both the top and bottom halves of the plastic case and I made sure to burnish them good since it's pressure sensitive adhesive on the back side of the metal foil. Now the box weighs a lot more! Thanks for the tip!
 
It would be nice if someone would give a brief tutorial on FFTs, explaining the difference between noise floor and noise level of FFT, etc.

For instance, I get an apparent noise floor near -140dB in the above plots, but the signal to noise is 87dB with a -11.53dBFS input. The difference between the input and 2nd Harmonic is over 90dB and it is the highest peak with the 60Hz peak at least 100dB down. I would expect the average noise level to be below -90dB from the input level and hence would expect to see a greater s/n ratio. Obviously my understanding of s/n and my logic is faulty.

Yeah, I could use some education in FFT's as well. I guess I confuse S/N and noise floor, etc also.
 
Hi all,

I think that SY don't speak about noise floor, but rather the noise level of the computed FFT. This floor depend on the FFT averaging and FFT size.It can be much more lower than effective noise floor.

Frex

The averaging indeed improves the S/N significantly. A very good article about the FFT subject can be found here (with minimal mathematics):
http://www.edn.com/design/systems-design/4375710/The-practicing-instrumentation-engineer-s-guide-to-the-DFT---Part-1--Understand-DFT-and-FFT-implementations
http://www.edn.com/design/systems-design/4376109/The-practicing-instrumentation-engineers-guide-to-the-DFT---Part-2--Spectral-leakage-and-windowing
http://www.edn.com/design/systems-design/4389996/The-practicing-instrumentation-engineer-s-guide-to-the-DFT---Part-3--Other-window-types--averaging-DFTs---more
Below are the results I get with my EMU 1212 PCIe soundcard with 100 averages and without averaging (loopback cable installed and output signal muted).
When a signal is present, the noise floor is about 16db higher (yellow= without signal and 100 averages, green= with signal and 100 averages).
Still excellent results for a sound card of less then 160€…
 

Attachments

  • Noise floor 100 FFT averages.png
    Noise floor 100 FFT averages.png
    65.5 KB · Views: 603
  • Noise floor no averages.png
    Noise floor no averages.png
    67.9 KB · Views: 576
  • Noise floor comparison with and without signal.png
    Noise floor comparison with and without signal.png
    73.7 KB · Views: 576
When a signal is present, the noise floor is about 16db higher (yellow= without signal and 100 averages, green= with signal and 100 averages).
Still excellent results for a sound card of less then 160€…

Ok, this was because dither level was only set to 16bit (insufficient for the performance of this sound card). See the difference below for 16 and 20 but dither (100 averages used)
 

Attachments

  • distorsion with dither 20 bit.png
    distorsion with dither 20 bit.png
    111.3 KB · Views: 574
  • dither setup.png
    dither setup.png
    34.1 KB · Views: 572
  • distorsion with dither 16 bit.png
    distorsion with dither 16 bit.png
    115.8 KB · Views: 282
Last edited:
After all, I killed all gremlins which haunted my box.


2) Added the following ceramic capacitors in order to suppress noise:
1uF - 5V supply (soldered straight on USB socket PCB terminals);
0.1uF - parallel to C22, C7, C8 (near Murata switch mode DC-DC converter);
1uF - parallel to C13, C18, C11.

0.1uF - high quality ceramic NP0 type
1uF - ceramic Z5U type

Hi LinksGuru,

Can I ask, what was the thinking behind the selection of capacitor values and types?

I marked up the schematic with the suggested values and I am curious as to how you arrived at the choices.

I can't get 0.1uF in NP0 but I can in Z5U, would that be OK?

I also use the 1212m PCIe it has the best drivers (zero-latency) so long averaging is possible, my Juli@ is very good but suffers from latency problems.

thanks,

Andrew
 
Hi, Andrew,

0.1 uF was selected to shunt Murata DC-DC converter which I suspect injected HF noise. NP0 type is the highest quality ceramic capacitor type which don't degrade over the time. I think other types would work fine.

1 uF is not available of NP0 type, so I bought whatever available in nearby shop. BTW, they seem to be were stocked for ages, and their capacity not 1uF, but 0.9 uF (for all 10 pcs in pack).

Despite progress, I'm still want to get rid of 50 Hz noise peak anyway.

When dealing with so erratic problems, its more intuition then logic. I'm still have no idea if it was HF noise from Murata, USB supply, oscillation of op-amp, or somewhat odd balanced line driver which I occasionally burned and replaced.

When debugging this device, I even replaced my DIY TSR cables with factory made (from Farnell), tried different USB power supplies and cables, turned off lamps, computer/LCD monitor, whatever possible source of HF noise from switching power supplies.

PS. I think power supply from USB must be filtered with CLC, but since this device draws up to 500mA, there are no much free space to install quite big DC choke.
 
Last edited:

AKN

Member
Joined 2005
Paid Member
Hi,

I have also built Pete Millet's interface. Attached pics shows the difference with shielding and no shielding. In my test just two metal plates, below and above the interface connected to signal ground.

Clearly the mains hum almost disappears with the shielding. My sound card has too much distortion for my liking but that's another story.
 

Attachments

  • No_Screen.JPG
    No_Screen.JPG
    103 KB · Views: 644
  • Screen.JPG
    Screen.JPG
    102.5 KB · Views: 628
Hi,

I have also built Pete Millet's interface. Attached pics shows the difference with shielding and no shielding. In my test just two metal plates, below and above the interface connected to signal ground.

Clearly the mains hum almost disappears with the shielding. My sound card has too much distortion for my liking but that's another story.

I have come to the similar conclusions in my testing. Two points to make,

1. There is a lot of radiant energy in the air. Moving the device away from the computer and anything else that is power up, make a difference. I use 2 meter balanced cables and set the box on a chair in the middle of the room. ( as a side note, I just finished up a +60 db low noise amp that is battery powered, built inside a cookie tin, I was measuring the self noise at 1.7nV/sqrt-Hz, but had power supply harmonic spikes that measured at 12nV. I made a second box out of 16 oz copper and put the amp inside the box, then inside the cookie tin; floated the copper box on nylon spacers. Using a longer 50 ohm cable to move the assembly further away from the spectrum analyzer, the power supply harmonic spikes dropped to about 2nV. My conclusion: the power supply harmonic spikes were EMI, not from power lines or other sources - same for spikes in the 40 to 50kHz region)

2. A ground wire between the computer chasis and the dut and or interface can some times help as well. Just use wire with aligator clips to try easily. Probably makes sense to secure this ground wire to the signal wire.

Ken
 
We really need a new Thread showing us how to build a copy Wim's installation.
Who else would like to see a detail by detail build guide for the 1212?

I can create a new thread if desired, but there not much to describe. I use the EMU 1212M PCIe with no modifications at all, in a completely standard Dell PC with Win7 32bit. I use the supplied ASIO drivers for the soundcard.
That’s really all that there is to my setup. The Patchmix DSP panel (=sound card control panel) can be a bit daunting at first. For those interested, I have attached the sound card configurations (called sessions in Patchmix) I regularly use:
- Analog in & out @44.1-48Khz
- Analog in & out @88.2-96Khz
- Analog in & out @192Khz
- Loudspeaker Simulator @48Khz
This last one is interesting to learn the most important features about your measurement software, as you have some “virtual” reflections and a non-ideal frequency/phase response. This makes it more interesting (compared to the standard loopback cable) to test some of the features of your measurement software, without having to annoy your wife… J
 

Attachments

  • EMU 1212m sessions.zip
    4.2 KB · Views: 64
AndrewL, you call this simple.
What does it do?
What does it mena?
what do I do with it?

<?xml version="1.0" encoding="UTF-8"?>
<session Version="1.0">
<miscsettings>
<samplerate value="192"/>
<comment value="Summarize session purpose here."/>
</miscsettings>
<system type="master">
<miscsettings>
<samplerate value="192"/>
<MidiInput2Src value="0"/>
<PCICardOpticalOut value="0"/>
<Out1L1R value="0"/>
<Out2L2R value="0"/>
<Out3L3R value="0"/>
<Out4L4R value="0"/>
<IOCardOut1L1R value="0"/>
<PCICardOpticalIn value="0"/>
<DockIn1L1R value="1"/>
<DockIn2L2R value="1"/>
<DockIn3L3R value="1"/>
<IOCardIn1L1R value="1"/>
<SPDIFFormat value="0"/>
<PCICardPresentOnCreation value="1.6"/>
<DockPresentOnCreation value="no"/>
<IOCardPresentOnCreation value="yes"/>
<SyncPresentOnCreation value="no"/>
</miscsettings>
<outputs/>
<mainsection>
<auxbusses>
<auxbuss>
<sendamount value="0.00000"/>
<returnamount value="0.00000"/>
</auxbuss>
<auxbuss>
<sendamount value="0.00000"/>
<returnamount value="0.00000"/>
</auxbuss>
</auxbusses>
<mixlevel value="0.00000"/>
<monitorlevel value="0.00000"/>
<balance value="0.00000"/>
<mute value="no"/>
<insertschain>
<peakmeter bypassed="no" bypasspresolo="no" solo="no"/>
<send bypassed="no" bypasspresolo="no" sendASIOoutput="0" solo="no"/>
</insertschain>
</mainsection>
<mixerstrips>
<strip prefader="no">
<insertschain>
<peakmeter bypassed="no" bypasspresolo="no" solo="no"/>
</insertschain>
<auxsend value="-132.00000"/>
<auxsend value="-132.00000"/>
<level value="1.40000"/>
<pan value="-90.00000"/>
<mute value="no"/>
<solo value="no"/>
<mutepresolo value="no"/>
<username value="Card L"/>
<input index="2" type="PHYSICAL MONO"/>
</strip>
<strip prefader="no">
<insertschain>
<peakmeter bypassed="no" bypasspresolo="no" solo="no"/>
</insertschain>
<auxsend value="-132.00000"/>
<auxsend value="-132.00000"/>
<level value="0.00000"/>
<pan value="90.00000"/>
<mute value="yes"/>
<solo value="no"/>
<mutepresolo value="no"/>
<username value="Card R"/>
<input index="3" type="PHYSICAL MONO"/>
</strip>
<strip prefader="no">
<auxsend value="-132.00000"/>
<auxsend value="-132.00000"/>
<level value="0.00000"/>
<pan value="-90.00000"/>
<pan value="90.00000"/>
<mute value="no"/>
<solo value="no"/>
<mutepresolo value="no"/>
<username value="ASIO 1/2"/>
<insertschain>
<peakmeter bypassed="no" bypasspresolo="no" solo="no"/>
<sendreturn bypassed="no" bypasspresolo="no" returnphysicalinput="0" sendphysicaloutput="0" solo="no" wetdrymix="1.00000"/>
</insertschain>
<input index="0" type="ASIO"/>
</strip>
</mixerstrips>
</system>
<syncsettings/>
</session>