Test and measurement question

After many years of doing it the hard (manual) way (Excel spreadsheet, millivoltmeter, oscillator and pencil!) I have decided to delve into measurement using a PC.

I wrote a little program to capture measurements from my PicoScope (still under development) but at the same time I was wanting something that would use a sound card (I have a 1/3 Octave TrueRTA licence).

So after some experimenting, I have come up with the following graphs, and I am a bit confused as to why the bottom end is so lumpy (only by 0.2... 0.5dB or so).

I have access to a FocusRite Scarlett 2i2, a Sound Blaster (old!) 24bit Live external (SB0490), and a Tapco Link.Firewire 4x6.

You'll see form the graphs that all three sound 'card' devices yield the same lumpy bottom end, but measurements made using the scope are pretty much flat.

Why is this?
 

Attachments

  • tda-1541-focusrite.png
    tda-1541-focusrite.png
    108.7 KB · Views: 134
  • tda-1541-sound-blaster.png
    tda-1541-sound-blaster.png
    109.6 KB · Views: 132
  • tda-1541-tapco.png
    tda-1541-tapco.png
    108.7 KB · Views: 132
  • tda1541-scope.png
    tda1541-scope.png
    94.2 KB · Views: 131
whoosh!!! As a lot of that passes right over my head!!!

These are simply measurements, purely to establish frequency resonse (only point of interest at this time).

I am not (knowingly!!) using a 'windowing function'* - I am simply feeding the output (terminated with 100k resistors) of the device under test straight into the 'line in' on the respective sound card.

I am then sending a sweep using WaveGene via SPDIF out to a DAC (just currently using a DAC as this has a known response).

Tests on the output of the sound cards reveal that they are practically flat.

So it's just this mysterious uneven LF response that's puzzling me when going via the sound card ADC. I wondered if it was some kind of LF non linearity or something? I did also wonder if it was some kind of weird issue with 50hz mains interference.

*goes off to Google windowing function.
 
I'm doing the following:

1) Send a 16Hz to 22050Hz sweep at -1dB to the SPDIF input of a DAC.

2) Said DAC is connected to the input of a sound card.

3) The output from the sound card is read by TrueRTA on my PC, to give me a 1/3 Octave FFT sweep.

4) I export this sweep data to a comma delimited text file.

5) The graphs you see are generated by reading said text file.

I have also generated data manually, using an Oscilloscope, audio oscillator and an audio millivoltmeter, and reading RMS voltages at specific 'spot' frequencies of (16, 10, 25, 31.5, 40, 50, 63.5, 80, 100, 125, 160, 200, 250, 315, 400, 500, 630.5, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6350, 8000, 10000, 12500, 16000, 22050 [Hz]).

I then plot each RMS voltage at the given frequency, (either using Excel, GnuPlot or my own program) and I get consistent results, without the LF 'wobble' seen in the plots using the sound cards.

So I suspect something odd is happening with the sound cards.
 
What is producing the sweep? FMing 16Hz at 1Hz/sec is not going to produce a full amplitude 16Hz - in fact the concept is meaningless. Perhaps you need to do some reading and thinking about modulation and Fourier theory?

Also, are your individual test frequencies aligned to FFT bins? 15.87Hz is not 16Hz, so are you measuring the amount of 15.87Hz in a 10s burst of 16Hz?

To get meaningful results at LF you need to do everything very slowly.
 
I'm feeling somewhat out of my depth now.

As I stated in my original post, I have previously just recorded RMS voltages with an audio millivoltmeter, and plotted the results in Excel to get a graph.

More recently I have used a digital 'scope with the RMS voltage, and the frequency displayed on screen, noted the two down and switched to the next frequency and so on.

I guess that attempting to automate this using a PC sound card requires a completely different approach (and one probably beyond my knowledge) - I am just a simple hobbyist (I used to fix 'stuff' before diversifying into computing).

So I guess I'll stick with my tried and tested method, however tedious it may be!
 
I tried Audiotester I had evaluated it previously but something put me off it - don't remember what) - but it did just crash spectacularly on my PC :p

Evidently TrueRTA is evidently the wrong tool for the job - or - my frequency generating tools are no good.

I had noticed in the export files I created, that 16Hz (I'm sure the frequency is correct) was recorded by TrueRTA as 15.xx Hz (random).

In fact, if you look at the text output of the sweep below, you will note that quite a few frequencies do not align with the input frequency.

So I guess this is where the 'bins' don't align, and hence the inaccuracy?

Not sure if this is a TrueRTA bug, an issue with my PC or what...

Code:
15.874,6.305  < wrong
20.000,7.504
25.198,8.479 << wrong
31.748,8.596 << wrong
40.000,9.700
50.397,8.809
63.496,9.805 << wrong
80.000,9.438
100.794,9.323
126.992,9.841 << wrong
160.000,9.457
201.587,9.338 << wrong
253.984,9.640 << wrong
320.000,9.396 
403.175,9.463 << wrong
507.968,9.539 << wrong
640.000,9.472 << wrong
806.349,9.457  << wrong
1015.937,9.440 << wrong
1280.000,9.421 << wrong
1612.699,9.473 << wrong
2031.873,9.443 << wrong
2560.000,9.425 << wrong
3225.398,9.417 << wrong
4063.747,9.452 << wrong
5120.000,9.392 << wrong
6450.796,9.393 << wrong
8127.493,9.418 << wrong
10240.000,9.358 << wrong
12901.592,9.315 << wrong
16254.987,9.389 << wrong
20480.000,9.218 << wrong
 
Last edited: