|
Information |
Sound Blaster Vibra16X ISA
vendor |
Creative Labs
|
product |
Sound Blaster 16 |
interface |
ISA |
duplex |
half |
channels |
2 |
resolution |
16 bits |
max rate |
44.1 Ksample/sec |
chipset |
SB16 DSP v4.16 |
codec |
CTL1745 |
operating system |
Mandrake 10.1 Linux x86 2.6.8.1 |
driver |
sb16 ALSA 1.0.6 |
buffer size |
input 64 KB, output 64 KB |
test date |
Sep 26 2005 |
notes |
Sound Blaster 16 at 0x240, irq 7, dma 0
include /etc/isapnp.conf
Disable "3D Enhancement" option with an external mixer program.
|
This card is part of the Full Duplex DAQ comparison
survey.
The SB Vibra16X is a half duplex audio card and it cannot run in full duplex
mode. So a CS4236B was used as the
test source and sink at a fixed 44100 sample rate. The CS4236B is a very
clean audio card and it has about a +11 PPM sample rate error at 44100.
|
|
|
Sample Rate |
The sample rate on DAQ cards is not a fixed absolute constant. Like time,
it fluctuates, and it is difficult to measure accurately. Sometimes there
are relationships between the input and output sample rates that can reveal
interesting details about the inner working machinery.
The following table of measurements use a technique described in the
sample rate stability application
note. The rate column is the sample rate value that the collection
hardware is programmed to. The in/out rate and in/out error
columns are absolute measurements of the ADC / DAC clock.
rate |
in rate |
out rate |
in error |
out error |
loop ADC |
loop DAC |
4000 |
4977.4880 |
4977.4892 |
+244372. PPM |
+244372. PPM |
+244360. PPM |
+244359. PPM |
5510 |
5510.7907 |
5510.7909 |
+143.503 PPM |
+143.539 PPM |
+133.818 PPM |
+133.100 PPM |
8000 |
7999.5311 |
7999.5375 |
-58.6125 PPM |
-57.8125 PPM |
-67.7954 PPM |
-68.5200 PPM |
11025 |
11021.576 |
11021.583 |
-310.567 PPM |
-309.932 PPM |
-319.762 PPM |
-320.430 PPM |
12000 |
11910.420 |
11910.410 |
-7465.00 PPM |
-7465.83 PPM |
-7474.71 PPM |
-7475.40 PPM |
16000 |
15999.067 |
15999.051 |
-58.3125 PPM |
-59.3125 PPM |
-67.7954 PPM |
-68.4950 PPM |
22050 |
22043.167 |
22043.162 |
-309.887 PPM |
-310.113 PPM |
-319.738 PPM |
-320.426 PPM |
24000 |
23998.620 |
23998.596 |
-57.5000 PPM |
-58.5000 PPM |
-67.9454 PPM |
-68.4870 PPM |
32000 |
31998.120 |
31998.121 |
-58.7500 PPM |
-58.7188 PPM |
-67.8954 PPM |
-68.4800 PPM |
44100 |
44086.273 |
44086.296 |
-311.270 PPM |
-310.748 PPM |
-319.728 PPM |
-320.419 PPM |
48000 |
48025.908 |
48025.921 |
+539.750 PPM |
+540.021 PPM |
+533.785 PPM |
+524.527 PPM |
All of the sample rates have a smooth convergence so the driver is behaving
nicely. The slight variation between the in error and
out error measurements can be explained as thermal drifts since they
had to be done at different times due to the Sound Blaster Vibra16X's half
duplex nature.
The CS4236B was used as the source and the sink for the loop ADC and
loop DAC measurements. The CS4236B has a relative zero PPM
loop error measurement so the ADC and DAC loop measurements can be
compared. It is interesting to note that the SB Vibra16X's relative loop
errors are 11 PPM less than it's absolute rate errors. The CS4236B's
absolute rate error happens to be +11 PPM.
The 8000, 16000, 24000, and 32000 sample rates have in / out errors of
-58 PPM. Another interesting grouping is the 11025, 22050, and 44100
sample rates which have in / out errors of -310 PPM.
The SB Vibra16X does not natively support the 48000 sample rate so the +540 PPM
error is more of an insight into ALSA's sample rate converter.
Something is wrong with the 4000 and 12000 sample rates which have respective
sample rate errors of +244372 and -7465 PPM. The 5510 rate is also
an oddball with it's +143 PPM error which is probably caused by 5510 not
being 5512.5 which is exactly half of 11025.
|
|
|
Frequency Domain
|
The sound card's input and output jacks are connected with a short external
cable and run in full duplex mode. This is a loopback test and baudline's
tone generator is the signal source. Distortion, noise floor, filter
response, and inter channel crosstalk are the frequency domain measurements of
interest in this section.
The signal test sources are a pure sine wave, a linear sine sweep, and
WGN. The sine wave is
used for the distortions and crosstalk measurements. The linear sine
sweep and WGN are used for the filter characterization measurement.
Both are an application of the
swept sine vs. WGN technique
and are equivalent measures of the frequency response.
Since spectral performance is a function of sample rate, each of the sound
card's native rates will be tested. The highest sample rate is usually
the cleanest and this is advantageous because it allows the isolated testing
of the ADC and the
DAC. The matched,
source, and sink sample rate combinations are described below.
source
Since the Vibra16X is only a half duplex device the CS4236B at 44100 was used
for test signal capture purposes. The Vibra16X is the source while the
CS4236B is the sink. This combination tests the performance of the
Vibra16X's DAC. The linear sine sweep signal in the left spectrogram
display characterizes the DAC filter response. The position of the
pass-band and the stop-band filter transition is defined by the Nyquist
frequency of the DAC. The noise floor (purple) is the crosstalk channel
at the 44100 sample rate and the Average collection of a silent channel at all
the other sample rates..
sink
Since the Vibra16X operates only in half duplex mode the CS4236B at 44100 was
used for test signal generation. The CS4236B is the source while the
Vibra16X is the sink. This combination tests the performance of the
Vibra16X's ADC. The linear sine sweep signal in the right spectrogram
display and the orange curve in the Average window below it characterize the
ADC filter response. The position of both the pass-band and the stop-band
filter transition is defined by time in the spectrogram and by folded frequency
in the Average window. The orange Average curve represents the pass-band
while the cyan curve is a folded representation of the stop-band ADC filter
response. The noise floor (purple) is the crosstalk channel.
The naming convention for the columns below is (DAC -> ADC) where DAC
represents the source sample rate and ADC represents the sink sample
rate.
source (DAC)
|
sink (ADC)
|
4000 -> 44100
|
44100 -> 4000
|
|
|
|
|
5510 -> 44100
|
44100 -> 5510
|
|
|
|
|
8000 -> 44100
|
44100 -> 8000
|
|
|
|
|
11025 -> 44100
|
44100 -> 11025
|
|
|
|
|
12000 -> 44100
|
44100 -> 12000
|
|
|
|
|
16000 -> 44100
|
44100 -> 16000
|
|
|
|
|
22050 -> 44100
|
44100 -> 22050
|
|
|
|
|
24000 -> 44100
|
44100 -> 24000
|
|
|
|
|
32000 -> 44100
|
44100 -> 32000
|
|
|
|
|
44100 -> 44100
|
44100 -> 44100
|
|
|
|
|
|
48000 -> 44100
|
44100 -> 48000
|
|
|
|
|
Something is wrong with the 48000 sample rate.
distortion (ADC)
The following table of measurements were made using the technique described in
the sine distortion application
note. It is a full duplex test that uses a loopback of the tone generator
to measure the various distortion parameters. The stereo crosstalk
column is a measure of channel leakage that uses a sine wave channel and a
silent channel as the signal sources.
rate |
SNR |
THD |
SINAD |
ENOB |
SFDR |
crosstalk |
|
4000 |
+75.48 dB |
-72.36 dB |
+70.64 dB |
+11.440 bits |
+74.58 dB |
-85.64 dB |
5510 |
+75.04 dB |
-75.41 dB |
+72.21 dB |
+11.701 bits |
+78.30 dB |
-85.70 dB |
8000 |
+73.81 dB |
-77.09 dB |
+72.14 dB |
+11.689 bits |
+80.09 dB |
-84.72 dB |
11025 |
+73.78 dB |
-78.30 dB |
+72.47 dB |
+11.745 bits |
+81.21 dB |
-83.86 dB |
12000 |
+72.91 dB |
-77.70 dB |
+71.66 dB |
+11.611 bits |
+81.17 dB |
-84.39 dB |
16000 |
+73.27 dB |
-78.06 dB |
+72.02 dB |
+11.671 bits |
+81.48 dB |
-83.22 dB |
22050 |
+73.07 dB |
-76.75 dB |
+71.52 dB |
+11.587 bits |
+80.80 dB |
-81.27 dB |
24000 |
+72.79 dB |
-76.64 dB |
+71.29 dB |
+11.549 bits |
+81.14 dB |
-81.40 dB |
32000 |
+72.05 dB |
-76.91 dB |
+70.82 dB |
+11.472 bits |
+81.11 dB |
-79.71 dB |
44100 |
+72.74 dB |
-74.58 dB |
+70.55 dB |
+11.426 bits |
+77.69 dB |
-78.08 dB |
44100o |
+75.24 dB |
-73.22 dB |
+71.10 dB |
+11.518 bits |
+76.95 dB |
-75.26 dB |
48000 |
+47.26 dB |
-50.02 dB |
+45.42 dB |
+7.251 bits |
+54.55 dB |
-77.19 dB |
* |
The "*" symbol signifies the distortion metrics for that particular sample rate
are invalid due to spectral damage caused by wideband noise pulses.
All of the distortion measurements are from the sink(ADC) column except for
the "44100o" sample rate which is from the source(DAC) column.
The 48000 sample rate has poor distortion measurements because that particular
rate is being synthesized by ALSA.
The ADC's and DAC's have -60 dB attenuation at all sample rates except
48000. The source and sink filter shapes look identical too. The
Vibra16X's application of filters is extremely consistent.
|
|
|
Quantization |
A white Gaussian noise signal source was generated and captured in full
duplex loopback fashion at each of the standard sample rates. The
Histogram plots below
show a unique sample distribution that is dependent on sample rate.
4000 ... 48000
Nice clean looking Gaussian shaped histogram. The left and right
channels have different DC offsets.
|
|
|
Channel Delay |
A sine wave signal was generated and captured in full duplex loopback
mode. The time domain response was observed with the
Waveform window where
the green curve represents the left channel and the purple curve represents
the right channel. Only a cyan sine curve is visible below because the
left and right channel match up perfectly.
4000 ... 48000
The SB Vibra16X ISA card a zero sample inter channel delay at all sample rates.
|
|
|
Analysis |
The large sample rate estimation errors do not have any effect on the
spectrogram sweeps or the distortion measurements. Performance is
consistent across all sample rates except for the 48000 rate.
|
|
|
Conclusion |
The Sound Blaster Vibra16X has very good performance for an old half duplex ISA
card. The card doesn't natively support the 48000 sample rate and it is
best to avoid using it. The Vibra16X has large sample rate accuracy
errors at the 4000 and 12000 rates and it is best to avoid using those too.
|
|
|
|
|