Sunteți pe pagina 1din 3

Tema nr.

1
Utilizarea placii de sunet ca placa de achizitie

Matlab poate fi utilizat ca mediu de achizitie de date si de prelucrare a acestora cu


ajutorul placii de sunet a calculatorului. Acest lucru se realizeaza datorita unui toolbox special
realizat ce apartine de Matlab si compatibilitatii placii care utilizeaza driverul DirectSound.
Cu ajutorul Matlab se poate face achizitia de date de la mai multe canale de intrare audio, se
pot genera date audio pentru canale de iesire, se poate configura rata de esantionare si intr-un
final se pot analiza datele obtinute prin intermediul placii de sunet.
Un exemplu de achizitie de date consta in 4 pasi:
1.
2.
3.
4.

Initializarea
Configurarea
Executia
Terminarea operatiei

Pentru a verifica daca frecventa de baza pentru un diapazon este de 440 de Hz, un ton
va fi preluat si analizat in MATLAB, prin intermediul placii de sunet.
Pentru realizarea acestei verificari s-a folosit un microfon si o placa de sunet pentru a
colecta date. Dupa realizarea acestui lucru, se aplica transformata Fourier rapida pe datele
obtinute, cu scopul de a obtine componentele de frecventa. Achizitia de date se incepe cu 2
secunde pe un singur canal al placii de sunet. Deoarece diapazontul vibreaza la o frecventa
nominala de 440 Hz, rata de esantionare poate fi setata la cea mai mica valoare, de 8000 Hz.
Dupa ce diapazonul a inceput sa vibreze si a fost asezat langa microfon, se incepe
achizitia de date, dupa urmatorii pasi:
1. Initializarea-se defineste intrarea analogica a placii de sunet.
AI = analoginput('winsound');

2. Configurarea- Se adauga un singur canal la AI si se seteaza rata de esantionare la


8000 Hz, cu o durata de achizitie de 2 secunde.
addchannel(AI, 1);
Fs = 8000;
% Sample Rate is 8000 Hz
set (AI, 'SampleRate', Fs)
duration = 2;
% 2 second acquisition
set(AI, 'SamplesPerTrigger', duration*Fs);

3. Executia- in acest moemnt se poate incepe achizitia de date. Se vor colecta toate
datele din momentul in care se da comanda de pornire. Este necesar sa se loveasca
diapazonul pentru a obtine un ton.
start(AI);
data = getdata(AI);

4. Terminarea operatiei- Operatia de achizitie se incheie in momentul in care au fost


dobandite toate datele, apoi se sterge obiectul definit AI din spatiul de lucru.
delete(AI)

5. Rezultate- Se determina componentele de frecventa ale diapazonului. Pentru inceput


se calculeza valoarea maxima obtinuta in urma aplicarii FFT datelor. Valoarea maxima
este convertita in dB si se extrag componentele de frecventa reala.
xfft = abs(fft(data));
mag = 20*log10(xfft);
mag = mag(1:end/2);

Rezultatele arata ca frecventa de baza este in jurul valorii de 440 Hz si primul ton se
situeaza la 880 Hz. Pentru a determina cu exactitate frecventa aplicam comanda:
[ymax,maxindex]=max(mag);

Si obtinem o frecventa de 441 Hz.

Bibliografie:
Matworks.com, (2016). Acquiring Data with a Sound Card. [online] Disponibil la:
http://www.mathworks.com/products/daq/code-examples.html?
file=/products/demos/daq/acquiring_data/acquiring_data.html [Accesat: 27.03.2015]