Pregunta

Para mi proyecto actual en C ++ / Qt necesito una biblioteca (se prefiere LGPL) que puede calcular un espectrograma de una señal (básicamente una serie de dobles). Ya uso Qwt para la parte de interfaz gráfica de usuario.

¿Alguna sugerencia? Gracias.

¿Fue útil?

Solución

Sería bastante fácil de armar su propio espectrograma. Los pasos son:

  1. función de ventana (bastante trivial, p.ej. Hanning)
  2. FFT (FFTW sería una opción buena, pero si es una concesión de licencias Emisión y luego ir por beso o FFT similar)
  3. magnitud logarítmica calcular de componentes de dominio de frecuencia (Trivial: log (sqrt (re re * + * im im))

Otros consejos

"¿Cómo se crea una frecuencia en función del tiempo trama? " enumera varias bibliotecas, cada una de las cuales puede calcular un espectrograma de una señal.

copiado y pegado de mi propia respuesta:

Algunos código fuente para generar espectrogramas / parcelas cascada de datos de audio:

imagen para Espectrograma va en la dirección inversa a partir de las utilidades anteriores.

podría utilizar fftw (fftw.org) para calcular el espectrograma, todavía tendría que representar los datos, pero eso no debería ser un problema

Se puede usar el código de FFT href="http://www.drdobbs.com/cpp/a-simple-and-efficient-fft-implementatio/199500857" aquí . Utiliza C ++ metaprogramming plantilla para la eficiencia. La fuente completo es proporcionado por el autor aquí .

sugirió incluir este código en Eigen para su uso con plantilla de (tipo amigable) código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top