Domanda

Per il mio progetto attuale in C ++ / Qt ho bisogno di una libreria (LGPL è preferito) che può calcolare uno spettrogramma da un segnale (in pratica una serie di doppie). Uso già Qwt per la parte grafica.

Qualche suggerimento? Grazie.

È stato utile?

Soluzione

Sarebbe abbastanza facile da mettere insieme il proprio spettrogramma. I passi sono:

  1. funzione finestra (abbastanza banale, per esempio. Hanning)
  2. FFT (FFTW sarebbe una buona scelta, ma se è un licenza problema poi andare per Kiss FFT o simile)
  3. calcolare log grandezza di componenti dominio della frequenza (Banale: log (sqrt (ri * re + im * im))

Altri suggerimenti

"Come si crea una frequenza in funzione del tempo trama? " elenca diverse librerie, ognuno dei quali può calcolare uno spettrogramma da un segnale.

copiato e incollato dalla mia risposta:

Alcuni codice sorgente per generare spettrogrammi / trame cascata dai dati audio:

immagine per spettrogramma va nella direzione opposta dalle suddette utenze.

è possibile utilizzare fftw (fftw.org) per calcolare lo spettrogramma, si avrebbe ancora bisogno di tracciare i dati, ma questo non dovrebbe essere un problema

È possibile utilizzare il codice FFT da href="http://www.drdobbs.com/cpp/a-simple-and-efficient-fft-implementatio/199500857" qui . Esso utilizza C ++ template metaprogrammazione per l'efficienza. La sorgente completo è fornito dall'autore qui .

E 'stato suggerito di includere questo codice in Eigen per il suo uso di codice basato su modelli (tipo amichevole).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top