[Lowfer] Sound card measurements

Lyle Koehler [email protected]
Sat, 22 Nov 2003 18:02:51 -0600


I managed to find an analog hardware solution to compensate for the time
delay that I had measured between the left and right channel inputs of my
SoundBlaster Live card. The solution is an "all-pass" filter, based on
design information contained in a Texas Instruments document called "Chapter
16 - Active Filter Design Techniques". This document and a bunch of other
interesting chapters about op amps can be found at
http://www.ti.com/sc/docs/psheets/rel_msp.htm

I built a second-order filter using two sections of a quad op amp, 5
resistors and two capacitors, plus the usual bypassing and biasing stuff.
Component values are fairly critical in order to maintain a flat frequency
response from DC to 25 kHz, but I was able to select from among standard
parts in my junkbox with the help of a digital multimeter. Although this was
my first exposure to this kind of "all-pass" filter, it seems to do just
what it's supposed to, providing a constant 14 microsecond time delay.

One of the outputs of my homebrew quadrature mixer is now fed directly into
the right channel of the sound card, with the all-pass time-delay circuit
inserted between the other mixer output and the left channel input. Now I am
able to null out the "wrong sideband" using the amplitude and phase
corrections in Alberto's SDRadio software. And sure enough, the mouse lets
me tune the IF over a 48 kHz range. With the local oscillator fixed at 200
kHz, I can tune from 176 to 224 kHz, and the sideband suppression is good
enough so that no audible images of strong NDBs appear in the 176 to 190 kHz
range. I'm able to copy "local" LowFERs WE and BRO, and a number of distant
NDBs including DIW and GLS. The homebrew mixer uses a couple of NE-602s and
the receiving antenna is my balanced, tuned loop.

A good sound card would be a better solution, but if anyone is interested, I
can provide a schematic of the all-pass filter circuit and an Excel
spreadsheet that calculates the component values.

Lyle, K0LR