baudline
Home
News
What is baudline?
Screenshots
Download
FAQ
Manual
Search
Solutions
Mystery Signal
Contact
Information
Sound Blaster 128


vendor Creative Labs
product Sound Blaster 128, SB128
interface PCI
duplex full
channels 2
resolution 16 bits
max rate 48 Ksample/sec
chipset ES1371 CT5880 rev 2
codec SigmaTel STAC9721,23
operating system Fedora core3 Linux x86 2.6.11-1
driver ens1371 ALSA 1.0.9rc2
buffer size input 64 KB, output 64 KB
test date Aug 28 2005
notes The card has 2 ADCs and 4 DACs. 

With an external mixer program do both of the following:  Mute the IEC958 option or the left channel will have an incredible amount of noise.  Set the "Vol" mixer slider to the maximum value for optimal distortion measurements.

Set the Tone Generator's digital gain to -5 or -7 dB for 0.34 bits more of ENOB.


This card is part of the Full Duplex DAQ comparison survey.

 
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.  The loop error column uses a tone generator loopback method for a high accuracy measurement of the relative difference between the ADC and the DAC clocks.  The three error PPM columns are theoretically related by the formula: "in_error - out_error = loop_error"

rate in rate out rate in error out error loop error
4000 4000.2531 4000.2535 +63.2750 PPM +63.3750 PPM -487.313 PPM
5510 5510.3515 5510.3560 +63.7931 PPM +64.6098 PPM -0.8580 PPM
8000 8000.5110 8000.5106 +63.8750 PPM +63.8250 PPM -486.176 PPM
11025 11025.735 11025.667 +66.6667 PPM +60.4989 PPM +6.1350 PPM
12000 12000.769 12000.769 +64.0833 PPM +64.0833 PPM +0.0000 PPM
16000 16001.027 16001.027 +64.1875 PPM +64.1875 PPM -488.054 PPM 
22050 22051.639 22051.438 +74.3311 PPM +65.2154 PPM +8.9920 PPM
24000 24001.538 24001.538 +64.0833 PPM +64.0833 PPM +0.0000 PPM
32000 32002.078 32002.044 +64.9375 PPM +63.8750 PPM +0.9510 PPM
44100 44103.923 44102.906 +88.9569 PPM +65.8957 PPM +23.0156 PPM
48000  48003.136  48003.136  +65.3333 PPM  +65.3333 PPM  +0.0000 PPM 


The 12000, 24000, and 48000 sample rates all have a +0.0000 PPM loop error measurement.  This means that the ADC and DAC clocks are in lockstep at those particular sample rates.

The 4000, 8000, and 16000 sample rates all have a -488 PPM loop error measurement.  This is a lot of error and it indicates that a common error mechanism is at work for all three of those rates.  It is interesting that the in error and the out error measurements are equal which suggests a locked fragment clock.  This is in conflict with the -488 PPM loop error measurement.  The significance of this will be analyzed below.

The { -0.8580 +6.1350 +8.9920 +23.0156 } PPM progression for the 5510, 11025, 22050, and 44100 sample rates is unusual.  The difference between the in error and the out error are almost exactly equal to the loop error measurement.  This means that the resampling circuitry is driving the fragment clocks but the input and output sides are not symmetrical.  The significance of this is unknown.  Below is the 44100 rate plot that shows two parallel trajectories.


 
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.

matched
The input and output sample rates are the same.  This combination tests the performance of both the ADC and the DAC in a matched mode of operation.  The linear sine sweep signal in the left spectrogram display and the WGN (orange) in the Average window characterize the in-band filter response.  The sine wave (green) in the Average window is used for distortion and crosstalk measurements.  The sine leakage (purple) is used for crosstalk measurement

source
The sample rate of the input (sink) is the card's highest clean rate.  This combination tests the performance of the DAC.  The linear sine sweep signal in the middle 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 Average collection of a silent channel.

sink
The sample rate of the output (source) is the card's highest clean rate.  This combination tests the performance of the ADC.  The linear sine sweep signal in the rightmost 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 Average collection of a silent 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. 


matched
source (DAC)
sink (ADC)
4000 -> 4000 4000 -> 48000 48000 -> 4000

The wideband pulses in both the 4000 matched and source spectrogram sweeps have a 0.512 second period (2048 samples). 

5510 -> 5510 5510 -> 48000 48000 -> 5510


8000 -> 8000 8000 -> 48000 48000 -> 8000

The wideband pulses in both the 8000 matched and source spectrogram sweeps have a 0.256 second period (2048 samples). 

11025 -> 11025 11025 -> 48000 48000 -> 11025


12000 -> 12000 12000 -> 48000 48000 -> 12000


16000 -> 16000 16000 -> 48000 48000 -> 16000

The wideband pulses in both the 16000 matched and source spectrogram sweeps have a 0.128 second period (2048 samples). 

22050 -> 22050 22050 -> 48000 48000 -> 22050


24000 -> 24000 24000 -> 48000 48000 -> 24000


32000 -> 32000 32000 -> 48000 48000 -> 32000


44100 -> 44100 44100 -> 48000 48000 -> 44100


48000 -> 48000  
 

The 48000 filter response has a 2 dB peak-to-peak ripple.  The propagation of this ripple is visible in the filter response in many of the standard sample rates.



distortion
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 +72.48 dB -77.64 dB +71.32 dB +11.554 bits +74.42 dB -82.70 dB *
5510 +88.21 dB -85.13 dB +83.39 dB +13.558 bits +85.89 dB -83.13 dB
8000 +90.55 dB -inf.00 dB  +90.55 dB +14.747 bits +90.55 dB -83.44 dB *
11025 +64.19 dB -84.20 dB +64.15 dB +10.363 bits +64.88 dB -82.98 dB
12000 +88.21 dB -85.90 dB +83.89 dB +13.642 bits +87.36 dB -82.84 dB
16000 +81.33 dB -inf.00 dB +81.33 dB +13.217 bits +81.33 dB -82.50 dB *
22050 +78.41 dB -86.54 dB +77.79 dB +12.628 bits +84.70 dB -81.04 dB
24000 +86.14 dB -85.76 dB +82.93 dB +13.482 bits +88.89 dB -80.88 dB
32000 +52.13 dB -85.01 dB +52.13 dB +8.365 bits +52.13 dB -79.59 dB
44100 +74.75 dB -80.01 dB +73.62 dB +11.935 bits +80.78 dB -78.19 dB
48000  +78.88 dB  -80.66 dB  +76.67 dB  +12.442 bits  +87.61 dB  -77.51 dB 

The "*" symbol signifies the distortion metrics for that particular sample rate are invalid due to spectral damage caused by wideband noise pulses.


The spectral performance of the Sound Blaster 128 card can be reduced into four distinct groups of common behavior.  Three of the groupings are sample rate multiples.

4000, 8000, 16000
There is something seriously wrong with the 4000, 8000, and 16000 sample rates.  The wideband pulses in both the matched and source spectrogram sweeps of all three of those rates have a 2048 sample periodicity.  The -inf.000 dB THD measurement is a sign that something is wrong.  This spectral damage makes all of the distortion measurements invalid.  The sink (ADC) spectrogram sweep is free of these wideband pulses so the problem is with the source (DAC). 

5510, 11025, 22050, 44100
The spectrogram sweep of the 5510, 11025, 22050, 44100 sample rates show strong crosshatch aliasing distortion.  The aliased harmonics are a function of frequency and look like they are being reflected off of the spectrogram edges.  This sampling flaw hurts the ENOB measurement by a couple bits and it indicates a decimation filter or a buffer index problem.  All four sample rates have good DAC side filters but the 5510 and 11025 rates suffer from shallow ADC side filters.  The 22050 and 44100 rates have better signal quality than the 5510 and 11025 rates but the distortion measurements do not accurately represent this.  While the crosshatch aliasing is very dramatic in appearance it's effect is not as bad as the folded aliasing due to poor filter roll-off.

32000
The spectrogram sweep of the 32000 sample rate has a distinct symmetrical X shape.  The noise floor is very clean except for the mirror image of the fundamental.  The X pattern aliasing is stronger on the sink side likely due to the very interesting ADC filter response shape.  This a filter or buffer index problem and it probably is related to the 48000 / 32000 = 1.5 decimation ratio. 

12000, 24000, 48000
The 12000, 24000, and 48000 sample rates have very clean looking spectrogram sweeps.  The harmonic distortion is very minimal and are less than the distortion metrics portray.  The sink ADC filters of the 12000 and 24000 sample rates have shallow filters and folded aliasing is a problem.  The playback performance side for all three rates is quite good.

observation
The 44100 and 48000 sample rates have almost identical distortion values yet the 44100 spectrogram sweep suffers from folded crosshatch artifacts.  This example demonstrates the fact that a static tone doesn't not excite all of the distortion modes.  It makes the case that SNR and THD should be looked at and plotted as function of frequency.

 
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, 5510, 8000, 12000, 24000

spur cadence = { none }

11025

spur cadence = { 1, 2, ... }

16000

spur cadence = { 1, 4, ... }

22050

spur cadence = { 1, 3, 1, 2, ...}

32000

spur cadence = { 1, 1, 2, 1, ... }

44100

spur cadence = { 1, 6, ... }

48000

spur cadence = { 1, 1, ... }



Quantization errors cause spectral noise and harmonics.  The relationship between the quantization spurs and the distortion metrics will be analyzed below.  The periodicity column is calculated from the spur cadence.  The amp column is the amplitude of the spur above the base curve at the 0x0000 sample.

rate spur cadence periodicity amp ENOB loop error
4000 { none } 0 0% invalid -487.313 PPM
5510 { none } 0 0% +13.558 bits -0.8580 PPM
8000 { none } 0 0% invalid -486.176 PPM
11025 { 1, 2, ... } 3 16% +10.363 bits +6.1350 PPM
12000 { none } 0 0% +13.642 bits +0.0000 PPM
16000 { 1, 4, ... } 5 25% invalid -488.054 PPM
22050  { 1, 3, 1, 2, ... }  3, 4, and 7  35%  +12.628 bits  +8.9920 PPM
24000 { none } 0 0% +13.482 bits +0.0000 PPM
32000 { 1, 1, 2, 1, ... } 2, 3, and 5 50% +8.365 bits +0.9510 PPM
44100 { 1, 6, ... } 7 50% +11.935 bits +23.0156 PPM 
48000  { 1, 1, ... } 2 5% +12.442 bits +0.0000 PPM 


There is a loose correlation at the 5510, 12000, and 24000 sample rates.  Those rates happen to have the three best ENOB measurements, no cadence spurs, and low or zero PPM loop error values.  Unfortunately this is not a definitive result because two of the invalid ENOB measurements also have no cadence spurs.  From looking at the data it does seem clear that having a smooth histogram coupled with a low PPM loop error helps the ENOB value.

The cause of these histogram spurs is probably due to numeric rounding errors inside the ES1371 chipset.  Either: there are not enough mathematical bits of precision, the rounding logic is faulty, or integer truncation is being done instead of rounding.

 
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.  A magnified view makes the spacing easier to see.  Two different sample delay behaviors are shown below but the actual transition is gradual.  Almost zero delay at the 4000 sample rate which slowly increases to about half a sample delay at 48000.

4000 ... 16000

Slightly more that zero sample delay between the channels.


32000 ... 48000

A half sample delay between the channels.


This inter channel delay will cause minor timing problems with stereo signals.  Errors will be encountered while decoding quadrature signals for example.  For the most part this delay will be imperceptible.

 
Analysis
The 4000, 8000, and 16000 sample rates suffer from severe wideband noise bursts that cause a great deal of spectral distortion.  This damage to the spectrum invalidates all of the distortion measurements.  The periodicity helper bars were used to make very accurate measurements of the duration between the wideband noise pulses.  For all three sample rates the period of spectral pulse repetition works out to be 2048 samples (2^11).  All three sample rates also have a loop error measurement of approximately -488 PPM.  An interesting mathematical observation is that 2048 / 2049 = -488.04295 PPM.  This looks like a 1 sample slip and it indicates a problem with the buffer index logic.  So, when using the Sound Blaster 128 card it is best to avoid the 4000, 8000, and 16000 sample rates.

More than half of the sample rates with the SB128 card have a unique sample quantization signature.  Histogram smoothness was seen to have a strong influence on ENOB quality but a lack of spurs by itself is not a guarantee of quality.

The SB128 card has a very minimal inter channel sample delay.  This delay decreases as the sample rate decreases.  The delay likely is generated high in the processing chain and propagates down since it is strongest at 48000.

 
Conclusion
Recording is clean at all of the standard sample rates but only the 16000, 22050, 44100, and 48000 rates have reasonable ADC filter rejection curves.  The higher input error PPM measurements along with the crosshatch aliasing at 22050 and 44100 may make recording at these sample rates undesirable.

Playback at all of the standard rates except 4000, 8000, and 16000 is fairly clean.  The strong crosshatch and X aliasing at 5510, 11025, 22050, 32000, and 44100 may be undesirable.  Only audio playback at 12000, 24000, and 48000 is recommended.

For clean full duplex recording and playback with the Sound Blaster 128 card only the 48000 sample rate is recommended. 

The performance of the SB128 very similar to the Sound Blaster 16 PCI.  Both cards use the Creative Labs ES1371 chipset.  The SB128 has slightly better performance (+0.32 bits) that is likely due to a different codec chip with slightly better 48000 filter ripple.  The SB16 PCI also has a two sample inter channel delay.

Copyright © 2005 SigBlips.com - group - blog - site map