Audio Signal Processing


The figure to the left shows a signal created by convolution in the time domain, followed by a graph of the frequency domain produced by discrete Fourier transform. The first graph uses a brute force approach, and takes about 45 seconds to calculate. The second uses a slightly different approach and achieves the same result in about 165 mSec. The apparent shifting is caused by padding the input to a power of two samples, a requirement of the algorithm used. When you pad in the time domain, it results in duplication in the frequency domain. Most of the difficult work in signal processing involves going in between the time and frequency domains.

The signal was originally a stereo wavefile. (8khz/16-bit) The file is 1 second in length, and has two sinewaves, 80 and 84hz. They are 180 degrees out of phase, and together they create another frequency, the difference...4hz. The file was converted to a mono file using the Sound Recorder utility in Windows. The result is 4hz amplitude modulated onto the two sidebands.

Audio DSP is like any other physics pursuit in many respects. Windows computers are powerful tools to the hobbyist, and scientist as well. Pursuing it begins with much study regarding formats, the computer, OS, drivers, etc. Fortunately, Windows is far more consistent than most people think, and there are many tools to assist the student already present in most computers. The addition of a high-level programming language capable of interfacing to the various Windows APIs directly is essential to any serious independent effort. There are many excellent turnkey approaches that include DSP hardware, but that is not necessary unless you are working in real time and also your application is complex. (Such as some modulation schemes, and any time you leave the audio spectrum.)

In the following webpages, I will develop a complete set of routines for signal synthesis, decomposition, identification, and also some processing. I will demonstrate the theory of audio digital signal processing and show you how to use your computer in general scientific pursuits using Basic and C/C++. I will be using DarkBASIC Professional and Microsoft Visual C++. These are both available for under $100, and both have free/trial versions that are sufficient for our purposes here. Check the resources page for links.

Begin Here...

Some DarkBASIC Professional DSP routines

Hosted by www.Geocities.ws

1