Autorul poate fi contactat la adresa: Login pentru adresa
Analizorul spectral este o unealta pentru a descompune un spectru in mai multe benzi de frecventa. Acest proiect este un analizor spectral audio, analizeaza spectrul audio ce provine de la un microfon condensator, si afiseaza amplitudinea celor 16 benzi de frecventa pe LCD. Analizorul spectral este foarte util si foarte folosit in industria audio (desigur nu la calitatea pur experimentala a proiectului), atat in sunet live, pentru a detecta frecventa unei microfonii sau pentru a corecta o incinta astfel incat sa se obtina fidelitate prin sistemul audio (difuzoarele si tot circuitul audio sa denatureze cat mai putin sunetul care intra in sistem), cat si in studio pentru a compara diverse echipamente audio sau pentru a observa defectiuni si frecvente nedorite intr-o inregistrare.
Acest proiect foloseste un microfon condensator pentru a prelua sunetul, preamplificat printr-un circuit simplu. Sunetul este convertit din analog in digital folosind convertorul din microcontroller. Folosind un algoritm DFT (Discrete Fourier Transform), se obtin amplitudinile fiecarei benzi de frecventa in parte, care sunt afisate pe un LCD folosind caractere speciale.
Foarte importanta in schema amplificarii este componenta continua de 2,5V, pe care o va contine iesirea, pentru a putea fi folosita cu tensiunea de referinta de 2,5 din microcontroller. Amplificatorul operational folosit este LM324N. In reactia negativa am mai adaugat un potentiometru pentru a putea regla gain-ul.
Schema de amplificare :
Iesirea de la amplificatorul de microfon este conectata la pinul ADC0 al microcontroller-ului, pentru LCD folosesc doar modul de comunicare cu 4 biti pentru mai putine fire, am adaugat un semireglabil pentru contrast si un condensator de filtrare pentru tensiunea de alimentare a LCD-ului.
Mediul de dezvoltare folosit : WinAVR. Nu am folosit nici o alta librarie 3rd-party.
Important in rapiditatea acestui algoritm este prezenta unui lookup table pentru sin si cos care nu sta in RAM-ul microcontroller-ului ci in Flash (este declarat si utilizat folosind PROGMEM).
O scurta descriere a ce executa programul :
Aici este un filmulet cu proiectul. Am obtinut un analizor spectral functional, insa cu o fidelitate proasta in principal din cauza microfonului utilizat, dar se poate inlocui. Pentru inalte este foarte directional microfonul, de aceea in filmulet se observa preponderent joasele.
Lucrul la proiect a fost foarte interesant si educativ, ma bucur ca am reusit sa-l si termin ca sa vad si un rezultat, desi e drept ca nici nu a fost foarte complex nici din punct de vedere electric si nici din punctul de vedere al programarii…
Arhiva cu codul proiectului : analizor_spectral.zip
Discrete Fourier Transform : http://en.wikipedia.org/wiki/Discrete_Fourier_transform
Implementing Discrete Fourier Transform using ATmega16 and 2×16 LCD : http://blog.vinu.co.in/2012/05/implementing-discrete-fourier-transform.html