Вопрос

Для моего текущего проекта на C ++ / Qt мне нужна библиотека (предпочтительнее LGPL), которая может вычислять спектрограмму по сигналу (в основном массиву удвоений ).Я уже использую Qwt для графического интерфейса.

Есть какие-нибудь предложения?Спасибо.

Это было полезно?

Решение

Было бы довольно легко составить свою собственную спектрограмму.Эти шаги заключаются в:

  1. функция окна (довольно тривиальная, напримерХаннинг)
  2. FFT (FFTW был бы хорошим выбором, но если лицензирование является проблемой, тогда выбирайте Kiss FFT или аналогичный)
  3. вычислить логарифмическую величину компонентов частотной области (тривиально:журнал (sqrt(re * re + im * im))

Другие советы

"Как мне создать график зависимости частоты от времени?" перечисляет несколько библиотек, каждая из которых может вычислять спектрограмму по сигналу.

Скопировано и вставлено из моего собственного ответа:

Некоторый исходный код для генерации спектрограммы / участки с водопадом из аудиоданных:

Преобразование изображения в спектрограмму работает в обратном направлении от вышеуказанных утилит.

вы могли бы использовать fftw (fftw.org) для вычисления спектрограммы вам все равно нужно будет вывести данные на график, но это не должно быть проблемой

Вы можете использовать код FFT из здесь.Для повышения эффективности он использует метапрограммирование шаблонов C ++.Полный источник предоставлен автором здесь.

Это было предложенный включить этот код в собственный для использования шаблонного (удобного для ввода) кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top