开发者

Spectrogram C++ library [closed]

Closed. This question does not meet Stack Overflow开发者_StackOverflow社区 guidelines. It is not currently accepting answers.

We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.

Closed last year.

Improve this question

For my current project in C++ / Qt I need a library (LGPL is preferred) which can calculate a spectrogram from a signal ( basically an array of doubles ). I already use Qwt for the GUI part.

Any suggestions? Thanks.


It would be fairly easy to put together your own spectrogram. The steps are:

  1. window function (fairly trivial, e.g. Hanning)
  2. FFT (FFTW would be a good choice but if licensing is an issue then go for Kiss FFT or similar)
  3. calculate log magnitude of frequency domain components (trivial: log(sqrt(re * re + im * im))


"How do I create a frequency vs time plot?" lists several libraries, each of which can calculate a spectrogram from a signal.

Copied and pasted from my own answer:

Some source code to generate spectrograms / waterfall plots from audio data:

  • SoX - Sound eXchange includes spectrogram source code
  • Audacity includes spectrogram source code
  • glfer includes waterfall spectrum display spectrum source code
  • source code that uses fftw to compute the spectrogram of an audio stream
  • more source code that uses OpenAL and fftw to compute the spectrogram for an audio stream
  • "Sound Activated Recorder with Spectrogram in C#" by Jeff Morton
  • Topographica seems to include spectrogram source code
  • SpectroGraph for iTunes

Image to Spectrogram goes in the reverse direction from the above utilities.


you could use fftw (fftw.org) to calculate the spectrogram, you would still need to plot the data, but that should not be a problem


You can use FFT code from here. It uses C++ template metaprogramming for efficiency. The full source is provided by the author here.

It was suggested to include this code into Eigen for its use of templated (type friendly) code.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜