Menu

Spectral analysis: work in progress

This week I'm working on spectral analysis, and it's coming along. I'm using Kiss FFT to do the real transform, but that only gets me about half the way there; the rest is all scaling issues, window functions, plumbing, wrapping, etc. The goal is a Spectrum dialog with a graph, similar to the existing RMS statistics/histogram dialog. Parameters should include:

Window size (droplist: 256/512/1024 etc.)
Window function (droplist: Bartlett, Welch, Hann, Hamming, Blackman, Blackman Harris)
Frequency scale (droplist: linear vs. log)
Separate channels (checkbox: if checked, show one spectrum for each channel, else channels are averaged together to yield a single spectrum)

Supporting both mono (averaged) and separate channels without excessive code duplication is going to require a bit of creative thinking. More extra credit: additional control over the plotting, e.g. lines versus filled area, cubic splines, etc.

After this gets done, I might take a stab at a real-time spectrum analyzer window. Between the newly-added peak meters and the Spectrum dialog I'll have most of the needed bits and pieces. It's really kind of a fusion of the two. Might be interesting to show a real-time spectrum for each channel of a surround file... This is clearly a case where efforts to make the code reusable will pay off big tim

Posted by Chris Korda 2013-03-19 Labels: FFT spectral analysis window functions

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.