Home
Accesso / Registrazione
 di 

Analizzatore di spettro audio in tempo reale con PIC18F4550

analizzatore di spettro audio

Un'interessante analizzatore di spettro audio in tempo reale basato su un PIC18F4550. Questo progetto è stato pubblicato sulla pagina web di waitingforfriday.com e prevede la costruzione di un analizzatore di spettro audio in tempo reale (real-time audio spectrum analyser). Alla base di tale sistema troviamo un microcontrollore PIC18F4550 ad 8-bit.

L’intera routine di analisi dello spettro, una 16-bit Fast Fourier Transformation (FFT), è stata scritta completamente in linguaggio C. I risultati di tale analisi vengono poi riprodotti da un LCD grafico 128x64.

Come primo passo bisogna riadattare il segnale audio. Il convertitore analogico-digitale da 10-bit del PIC18F4550 può digitalizzare segnali che variano da 0 a 5V. Il segnale audio risulta di 1V picco-picco mediato a zero.

Waitingforfriday.com suggerisce quindi di sommare al segnale tempo-variabile dell’audio una tensione continua di 2.5V di offset. Il segnale prodotto risulta quindi mediato a 2.5V, come in foto.

L’operazione di spostamento del punto comune viene effettuata da un amplificatore operazionale LM386-1, aggiungendo all’uscita un filtro RC (passa-basso) con una frequenza di taglio di 10KHz.

Di seguito l'intero schema circuitale firmato waitingforfriday.com:

Il firmware del PIC18F4550 si divide in 4 parti principali:

ADC Sampling:

L’ADC esegue un loop intero in circa 32mS con una routine di sampling di circa 50uS.

16-bit FFT:

Routine puramente matematica trovata sul web.

Calcolo del valore assoluto

La FFT produce ben 32 numeri complessi che devono essere rielaborati per ottenerne il valore assoluto.

La Fast Fourier Trasformation e il calcolo del valore assoluto impiegano per un loop completo ben 70mS

LCD:

L’ultima parte è invece dedicata a visualizzare i valori assoluti sul display grafico con un aggiornamento pari a 45mS.

Ogni barra grafica visualizza un certo range di frequenze:

1 : 312.5 - 625

2 : 625 - 937.5

3 : 937.5 - 1250

4 : 1250 - 1562.5

5 : 1562.5 - 1875

6 : 1875 - 2187.5

7 : 2187.5 - 2500

8 : 2500 - 2812.5

9 : 2812.5 - 3125

10 : 3125 - 3437.5

11 : 3437.5 - 3750

12 : 3750 - 4062.5

13 : 4062.5 - 4375

14 : 4375 - 4687.5

15 : 4687.5 - 5000

16 : 5000 - 5312.5

17 : 5312.5 - 5625

18 : 5625 - 5937.5

19 : 5937.5 - 6250

20 : 6250 - 6562.5

21 : 6562.5 - 6875

22 : 6875 - 7187.5

23 : 7187.5 - 7500

24 : 7500 - 7812.5

25 : 7812.5 - 8125

26 : 8125 - 8437.5

27 : 8437.5 - 8750

28 : 8750 - 9062.5

29 : 9062.5 - 9375

30 : 9375 - 9687.5

31 : 9687.5 - 10000

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Alex87ai

Appassionatao di PIC, è da

Appassionatao di PIC, è da tempo che cercavo un progetto di un'analizzatore di spettro come questo, magari con anche interfaccia USB. Interessante!! Interessante anche il sito www.waitingforfriday.com dal quale possono essere tratti altri progetti utilizzanti sempre i microcontrollori della serie PIC18F...di certo, con un DSP poteva essere esteso il range di frequenza del segnale d'ingresso, ma è l'aspetto didattico che conta!

ritratto di Fabrizio87

trovo interessante

trovo interessante soprattutto vedere come si implementa nua FFT a livello software.

ritratto di muldee

Sistema di taratura

Se si unisce questo analizzatore di spettro ad un equalizzatore grafico a 31 bande (le stesse dell'analizzatore) e a un microfono con risposta lineare tra 20Hz e 20kHz si può realizzare un perfetto sistema di taratura per l'impianto di diffusione di un piccolo home studio o un project studio.

La catena audio sarebbe:
- rumore bianco generato dalla daw (pc, registratore multitraccia, ecc.)
- uscita della daw in ingresso nell'equalizzatore
- uscita dell'equalizzatore in ingresso ai monitor
- microfono piazzato nel punto d'ascolto che raccoglie ciò che è emesso dai monitor
- uscita del microfono nell'ingresso dell'analizzatore di spettro

Il rumore bianco è caratterizzato dall'avere ampiezza costante su tutto lo spettro quindi, in condizioni normali l'analizzatore dovrebbe visualizzare tutte le bande uguali tendenti, come altezza, agli 0dB; qualsiasi deviazione da questa condizione deriva dalla modifica del segnale apportata dai monitor, dalla stanza di ascolto e dal microfono (se non ha risposta lineare nello spettro dell'udibile).
Attraverso l'equalizzatore è possibile enfatizzare o attenuare le frequenze deviate fino a ricondurre tutte le bande dello spettro alla linearità.

Spero di essere stato chiaro :)

ritratto di mingoweb

Certo... Questi tuoi

Certo... Questi tuoi consiglio sono molto utili per realizzare un progetto di qualità!

ritratto di angelOne

emmhh

il rumore necessario per il setup è quello rosa, non bianco. La scala dell'analizzatore è logaritmica ;-)

ritratto di muldee

Hai perfettamente ragione,

Hai perfettamente ragione, grazie della correzione. :)

ritratto di linus

molto chiaro

ma si può fare il porting verso un altro PIC con minori numero di uscite, 32 bande sono davvero tante, sarebbe anche interessante farne uno a 16 canali stereo per gli impianti HI-FI.

ritratto di giuskina

ammazza che roba

in parole più semplici può essere definito un equalizzatore?!? no vero

ritratto di Fabrizio87

non è un equalizzatore, un

non è un equalizzatore,
un equalizzatore è un dispositivo che filtra il suono o segnale,
questo dispositivo permette solo di visualizzare lo spettro di frequenza.

ritratto di SuperG72

Interessante

il progetto citato come l'intero sito.
Grazie per la segnalazione!

ritratto di gaetech45

utilità

gaetech45
Quale sarebbe l'utilita di analizzatore di spettro?

ritratto di linus

per esempio

alcuni installatori di impianti audio per discoteche analizzano l'impianto installato facendo le necessarie correzioni tramite equalizzatore. Ho visto usarli da installatori della Klipsch.

ritratto di alex_i0skk

Realizzato da un mio alunno

Realizzato da un mio alunno completo di PCB e programmazione usando un programmatore JDIM home made. Il ragazzo è entusiasta perché il funzionamento è ottimo.
ne consiglio la realizzazione anche a scopo didattico, è ottimo per capire come si agisce e ragiona nella gestione di segnali analogici con i PIC, vederne il risultato e vedere cosa si può fare di non banale con un PIC rende l'alunno (interessato) concretamente consapevole delle potenzialità di questi dispositivi.
Grazie della segnalazione!

ritratto di ordigno

estremi banda

Partire da circa 312.4 (prima banda) come limite inferiore rende la visualizzazione poco utile visto che anche nei più scarsi analizzatori cioè a 10 bande , si parte da almeno 30 HZ.
Come si può fare, fermo restando le 31 bande, a partire da 30Hz e non da 312Hz centrando le bande su 1/3 di ottava?

ritratto di EnricoG

Buongiorno, volevo sapere se

Buongiorno,
volevo sapere se qualcuno ha realizzato questo progetto.
Io sono alla fase di test, ma credo di aver qualche problema sulla conversione del file da C a hex...
qualcuno può essere d'aiuto?

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 10 utenti e 55 visitatori collegati.

Ultimi Commenti