Hacker News new | ask | show | jobs
by marcosdumay 3786 days ago
You can usually take 96kSps from a sound card, much more than 20kSps, but still around a thousand of times less than a normal oscilloscope. And you can measure signals with less than 20Hz too. You can't generate them, but can measure.

There are also restrictive voltage limits, variable latency, and lost of readings due to the non-realtime nature of the OS to deal with.

But where sound cards shine is on precision. If you can even find it, an oscilloscope with 24 bits resolution costs tens of thousands of dollars. A 32 bits sound card is a couple hundred. Although, for showing it at the screen, 8 bits are often good enough.

2 comments

96kSps only allows you to capture 48kHz signals in the ideal case. Practical limits are lower.

Of course, that assumes your audio hardware does not have a bandpass filter tuned to the range of human hearing. Making the range as tight as you can lessens the noise at other frequencies that the processing hardware has to deal with. Plus, it ensures you get a minimum of four samples per cycle for any audio signal.

Same thing on the low end. Without a high-pass cutoff you are going to get a whole lot of noise from mechanical sources.

There is no audio card with 32bit ADCs available for a couple hundred $, and even if there would be such a thing, you would need a signal source with a low enough impedance to not completely drown in thermal noise.

Any application requiring that much precision will not magically be solved by connecting a cheap soundcard. For one, ADCs in soundcards do noise shaping, so there will be an artificial increase of noise at higher frequencies (just record at 96k or 192k and have a look). Second, the absolute precision will not nearly be as good as on an ADC for quantitative measurement: typically there is no low drift reference, also when you DC couple the offset will drift, too.

The only thing they typically do very well is the "real-time" part, because that's what audio software is optimized for... :-)