Back in 2001, when I began working on DXVUMeter (an ActiveX control used to display audio in various formats) I wanted to implement the ability to display the monitored audio in the frequency domain, that is, be able to apply a Fast Fourier Transform over the sampled audio and display it.
The initial implementation of McCauley’s code worked well and did its job. Actually, DXVUMeterNETGDI, the latest version of this control, still uses a very similar version to do all its internal FFT calculations.
So what’s different in my (new) FFT implementation? Most importantly, the use of a new data type which allows all related FFT calculations to utilize complex numbers.
Also, my FFT module includes several additional functions such as:
- An apodization function with support for 11 different types of windowing algorithms
- A Convolute function
- A Savitzky-Golay smoothing filter
- A Triangle smoothing filter
- A Hilbert Transform function
- An alternate FFT algorithm from that provided by the original McCauley’s version
So, if you are interested in using or simply peeking at this code, you can download the library from this link:
VB.NET FFT Library 3.2 [5.93 kB]
If you have no idea what I’m talking about or what this code does, I recommend you read this article: http://www.relisoft.com/science/Physics/sound.html