Analisi spettrale audio con linux

L’analisi spettrale è uno strumento molto utile per tutti gli “smanettoni” in campo audio. Tramite questa analisi vengono portate alla luce alcune proprietà intime di un suono (o insieme di suoni, vedi musica), che magari al nostro orecchio non percepiamo, oppure percepiamo ma non sappiamo “identificare”.

Ad esempio se volessi conoscere la frequenza di una sinusoide ho 2 possibilità.

  1. Lo riconosco a orecchio perché ho “l’orecchio assoluto” tipico di musicisti esperti (ad esempio quando sento un suono e dico che nota è… ma a frequenenze elevate, comincia ad essere difficile anche per le orecchie più fini🙂 )
  2. Faccio l’analisi spettrale del suono e vedo (con gli occhi), dove si trova la frequenza fondamentale del mio campione.

Prima di vedere quali sono i principali software per l’analisi spettrale in Linux, chiariamo brevemente alcune questioni su come interpretare gli stumenti a nostra disposizione.

Spettro

Il grafico dello spettro mi mostra tutte le componenti spettrali (frequenze) che mi compongono il segnale analizzato in un preciso istante di tempo. In pratica è un grafico “istantaneo”, in cui sull’asse delle ascisse ho le frequenze, mentre sulle ordinate ho la rispettiva potenza. Di seguito vediamo l’analisi tramite il tool Jaaa di un segnale sinusoidale puro alla frequenza di 1000 Hz.

Jaaa2

jaaa in azione…

Spettrogramma

Lo spettrogramma, a differenza dello spettro, mostra le componenti frequenziali di un segnale, in funzione del tempo. In poche parole è la serie dei vari spettri presi in tutti gli istanti di tempo della durata del mio segnale.

Questo grafico è una superficie (3 dimensioni: frequenza, potenza, tempo) e si usano diversi metodi per la sua rappresentazione. Il più usato (e di immediata comprensione) e il grafico frequenza vs tempo, e per la potenza si usano diversi gradi di colorazione.

Eccone un esempio

spettrogramma

il colore giallo indica potenza maggiore…

Le componenti frequenziali dello spettro o dello spettrogramma le troviamo con la trasfomata di Fourier (in realtà si usa la Fast Fourier Transform, che è una sorta di semplificazione della trasformata vera e propria, per una questione di reattività del software). Ecco la formula per il calcolo della trasformata di Fourier:

trafo fourier

immagine tratta da Wikipedia…

Dopo queste dovute precisazioni, vediamo quali sono i software più conoscuiti per fare questo con il nostro amato linux.

  • Baudline – è il mio preferito. Spettrogramma, spettro, forma d’onda, ricognizione automatica della fondamentale e altre funzioni applicabili ai vari canali (somma, sottrazione, prodotto, etc..). Permette sia l’analisi di file audio che l’analisi real-time da una qualsiasi sorgente sonore. Funziona con ALSA e con JACK. Estrememente veloce e performante.
  • Jaaa – questo software mostra solo lo spettro, ed è solo realtime. Preciso. Funziona sia con ALSA che con JACK
  • Sonic Visualizer – spettrogrmma, spettro, forma d’onda. Non analizza in realtime.
  • freqTweak – analisi FFT realtime. Inoltre ha la possibilità di applicare filtri, equalizzare e compiere altre operazioni nel dominio delle frequenze

Questi sono i principali… se ne avete altri da segnalare, fatelo pure che provvederò ad aggiungerli🙂

About axeldamage

Mad Scientist

5 responses to “Analisi spettrale audio con linux”

  1. mastro says :

    ciao
    bell’articolo🙂

    non mi sono mai occupato molto di queste cose ma mi interessano..😀
    in compenso ho studiato ed implementato la FFT con VHDL una volta ed ho studiato la codifica MP3 eheh…

    nonostante ciò non ho mai ben capito a cosa possano servire programmi così…🙂
    immagino per “calibrare” amplificatori, cross-over e quant’altro.. ma non ho mai ben capito come vengano sfruttati nella pratica

  2. Killer says :

    Volevo aggiungere che anche Jamin http://jamin.sourceforge.net/ può essere usato come analizzatore di spettro, anche se per quest’uso è meno evoluto dei software da te citati.
    Tanti complimenti per il blog, da poco ho iniziato a smanettare con l’audio in Linux e i tuoi articoli mi sono stati utilissimi!

    @mastro:
    Io faccio il fonico per un piccolo service (ma piccolo piccolo!) della mia zona ed uso l’analizzatore di spettro per l’equalizzazione di sala e dei monitor sul palco.
    Nella pratica faccio così: dalle casse riproduco del rumore rosa, con un volume di uscita che sarà più o meno quello che userò durante il concerto. Poi collego il microfono di misura all’ingresso della scheda audio del pc e lo posiziono in diversi punti dove suppongo ci saranno le persone che assisteranno al concerto.
    Guardando l’analizzatore di spettro cerco di capire quali frequenze devo tagliare e quali devo enfatizzare sull’equalizzatore grafico, in modo tale da avere una risposta quanto più possibile flat dell’impianto.
    Poi faccio più o meno lo stesso per i monitor, posizionando il microfono di misura nei vari punti in cui si posizioneranno i musicisti.
    Spero che questo commento ti possa essere utile.

  3. /V says :

    @mastro: l’analisi spettrale in campo audio (perche’ se la applichiamo alle frequenze radio o alle fibre ottiche non serve nemmeno elencare quanto sia utile per l’analisi dei canali di comunicazione) ha, oltre agli usi che citi tu, un’interessantissima applicazione nell;’analisi strutturale di componeneti mecanici complessi. Hai presente il “rumorino” che ti dice che c’e’ qualcosa che non va alla tua macchina? Ecco, di solito quello e’ uno o piu’ picchi facilmente identificabili dall’analisi spettrografica.

  4. Tigellino says :

    Sono settimane che sto studiando, con fatica, questi temi. Grazie per il bell’articolo. Io sono un lettore di Costruire Hi-Fi e sapevo che, oltre che con la scheda Clio, utilizzata dagli ingegneri della redazione, si possono eseguire varie misure anche con una qualsiasi scheda audio. Ho sotto mano un articolo in 2 puntate, pubblicato sui numeri 10 e 11 di Progetto Elektor del 1997, a firma del Dr. M. Ohsman, ma non sono riuscito a reperire niente al riguardo in rete. Su un HD estraibile ho anche installato l’ultima verione di Ubuntu Studio, nel quale dovrebbero essere installati tutti i programmi che servono. Il Dr. Ohsman scriveva nell’articolo, tra l’altro, che per effettuare corrette misure di impedenza senza cadere in errori di misurazione, si doveva costruire un apposito partitore resistivo ecc. Ho anche scaricato il Pdf del Politecnico di Torino per la predisposizione della scheda audio alle misurazioni. In effetti mi pare che manchi una trattazione organica che, oltre a dare generici consigli, tratti analiticamente dei vari strumenti di misura. A questo proposito suggerisco di scaricare (si trova facilmente in rete) il pdf della scheda Clio, poichè in esso sono specificati modi di rilevazione e interpretazioni di lettura delle misure effettuate. Sarei lieto di poter dare una mano, fornendo il materiale in mio possesso.

  5. giovanni says :

    @ tigellino
    ciao, potresti inviarmi il materiale on tuo possesso. mi interesserebbe studiarlo.

    gianni_bedda@hotmail.com

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: