On Jun 24, 2004, at 5:37 AM, Ashhar Farhan wrote:
the PC is a powerful a DSP as you can hope to own. the problem is in
getting signals in and out of it. the only available means of doing it is
via audio (baseband). i have used a PC based scope too. but that is a
costly option. costlier than the PC itself. but it might be interesting to
see how useful can the ordinary PC become by strapping some home made
circutis around it.
does anybody have more stories about using PCs in the home lab?
"Back in the day" ...
A decade or more ago, it was trivial to get ISA-bus prototype boards to wire up new gadgets like A/D converters. With the limited bandwidth of ISA and the low frequency of consumer-affordable A/D chips, board layout was not an issue. In fact, some of us were building MIDI interfaces/audio digitizers for Macintosh out of a single A/D chip and a couple of connectors. And it's trivial to use the PC printer port (LPTx) as a data interface.
A PCI breadboard is a lot harder to come by nowadays, and it's not even something that an enterprising hobbyist could etch up himself. However, PCI has the bandwidth and the newest consumer-grade A/D chips have sampling rates that were almost unheard of just 5 years ago. But it would be (relatively) simple to design and build a PCI A/D board. The biggest challenge would be to equalize the signal traces from the A/D chip to the PCI connector. Assuming one could etch a PCI connector, this could be done at home.
An easier interface would be USB 2.0 or FireWire (IEEE 1394). Most PCs built since 1999 have USB 1.0 or higher; some PCs since 2002 have FireWire (Macs introduced since 1998 or so all have FireWire). The significant advantage to USB is that most consumer OSes besides Mac OS X have drivers for most USB devices built in, so there's a good chance that for any given USB interface chip, the OS will recognize its data stream and be able to provide it _somewhere_. This isn't as easy to implement as an LPTx scheme under DOS, but there are a number of simple programming environments for Windows such as Visual BASIC (yecch) or National Instruments' LabView (hurrah!) that make data acquisition and manipulation easy to set up.
And Linux has at least as many drivers, plus the ability to drop to a command-line interface, which makes accessing machine-level functions a whole lot easier than under an MS OS, now that DOS has been effectively buried under Wind0ze.
Theoretically, all you need for data capture is -- suitable conditioning and buffering circuitry to deliver your analog signal to your A/D converter, a buffer/interface to your bus, and a suitable bus connector. In the case of USB and FireWire, which are serial interfaces, you need as part of the bus buffer/interface from the A/D -- a data serializer. This would be any scheme that would take the parallel-bus output from the A/D and convert it to a serial stream compatible with USB or FireWire.
Some newer A/Ds now have serial outputs, so the interface would be as simple as doing level conditioning and perhaps some timing adjustment. The stuff's out there -- try TI or National Semiconductor. Both companies have reasonable sample policies if you know how to ask. It's harder to design the board than it is to get free parts. (N.B. -- Some parts are US export-restricted, even though they're made or assembled outside the US.)
And -- if you have lots of money to throw at the problem, National Instruments has already solved it. Reverse-engineering their hardware at lower performance levels should be within the scope of most savvy home builders -- their catalog offers ample design solutions that show you what CAN be done. After that, it's just a matter of software.
Or, if your signal of interest is 20 kHz or narrower, you merely need to convert it to baseband and feed it to your sound card. There's a lot of amateur DSP software available. And again, if you have a lot of money to throw at the problem, there's also MatLab for developing your own DSP software.
And -- the modulation characteristics and core DSP source routines to match those characteristics are freely available on the Internet if you are a diligent searcher. Programming in C is an advantage here. If you choose to explore this avenue, you'll soon find that having a stereo input sound card opens up a huge new world of capabilities.
Most of them beyond the scope of HF SSB, CW, or PSK31.
Jim N6OTQ