Sunteți pe pagina 1din 6

Scopul lucrării: Studierea transformării A/D a semnalelor folosind MATLAB.

Noţiuni teoretice.

Cele mai întrebuinţate semnale din punct de vedere practic, aşa ca semnalul vorbirii, semnalele biologice,
semnalele seismice, semnalele radar, semnalele sonore şi diferite semnale de comunicaţie (audio şi video semnalele)
sînt analogice. Pentru prelucrarea semnalelor analogice cu prin intermediul procesoarelor digitale e necesar în primul
rând de a transforma semnalele în formă digitală. Această procedură se numeşte transformarea analog-digitală (A/D),
şi corespunzător dispozitivul e numit convertor A/D.
Conceptual procesul de transformare A/D e un proces cu trei trepte (fig.1).

Fig.1 Părţile componente ale convertorului A/D

1. Discretizarea – e numită conversia semnalului continuu în timp în semnal discret în timp prin luarea "probelor"
din semnalul continuu în timp. Deci, dacă xa(t) este semnalul de întrare a discretizatorului, atunci xa(nT)=x(n)
este semnalul de ieşire, unde T este intervalul de discretizare.
2. Quantizarea – este conversia semnalului discret în timp cu valori continue în semnal discret în timp cu valori
discrete în timp. Valoare fiecărei "probe" a semnalului e reprezentată printr-o valoare ce aparţine unui set de
valori posibile. Diferenţa dintre "probele"nequantizate x(n) şi cele quantizate xq(n) se numeşte greşala
(eroarea) quantizării.
3. Codarea - reprezentarea fiecărei valori quantizate a semnalului xq(n) printr-un şir de valori binare
Există multe forme de discretizare a semnalelor. Ne vom limita cu descrierea discretizării periodice sau
discretizării uniforme, care este cea mai des folostă în practică. Discretizarea periodică se descrie :
x(n) = xa(nT) (1)
unde x(n) este semnalul discret în timp obţinut prin luarea "probelor" din semnalul analogic xa(t) la fiecare T secunde.
Această procedură este ilustrată în fig. 3.

Fig.3 Discretizarea periodică a semnalului analog.

Eroarea quantizării e definită ca un şir eq(n) de diferenţe dintre valorile quantizate şi valorile reale ale
"probelor" :

eq(n)=xq(n) – x(n) (3)

Acest proces este ilustrat în fig. 4 , unde e reprezentat un exemplu de quantiyare a şirului :
0.9n, n≥ 0
X(n) = (4)
0, n< 0
obţinut prin discretizarea semnalului analogic exponenţial xa=0.9t , t≥ 0 cu frecvenţa de discretizare de 1 Hz.

Fig. 4 Ilustrarea quantizării


Ordinea îndeplinirii lucrării de laborator.
1. Studierea transformării A/D
1.1 Lansam pachetul de programe MATLAB . Pe cran va apărea fereastra de comandă.
1.2 Culegem comanda demo – va apărea fereastra cu exemple in MATLAB.
Găsim directoriul "Блок-схемы " şi-l deschidem, apoi deschidem directoriul "Блок-схемы DSP" . În acest
directoriu găsim fişierul "Sigma-Delta A/D conversion" şi startam programa de demonstrare. Va apărea
bloc-schema urmatoarea:

1.1 Din comanda File deschidem un nou fişier de modelare şi copiem întreaga bloc-schemă în fişierul nou.
1.2 Startam modelarea şi urmărim semnalele de întrare şi de ieşire. Schimbam forma semnalului (sinosoidal, treungiular) de
la „Generatorul de semnale” şi urmarim transformarea acestora.
Square:
1.3 Adăugarea ecranului de vizionare a semnalelor după diferite blocuri în schemă şi urmărirea diferitelor
forme ale semnalului:
2. Aproximarea datelor
2.1 Aproximarea polinomială.
Aproximarea polinomială se înfăptuieşte cu ajutorul procedurii polyfit(X,Y,n), unde n este ordinul polinomului de
aproximare. Reprezentaţi pe un singur grafic dependenţele polinoamelor de aproximare după cum urmează:

x=[1 2 3 4 5 6 7 8 9]; xlabel('Argumentul'),ylabel('functia'),


y=[-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1 - grid
1];
p1=polyfit(x,y,1);
p2=polyfit(x,y,2);
p3=polyfit(x,y,3);
p4=polyfit(x,y,4);
stem(x,y); hold
x1=0.5:0.05:9.5;
y1=polyval(p1,x1);
y2=polyval(p2,x1);
y3=polyval(p3,x1);
y4=polyval(p4,x1);
plot(x1,y1,x1,y2,x1,y3,x1,y4), grid,
set(gca,'FontName','Arial
Cyr','FontSize',16)
title('Aproximarea polinomiala')

x=[1 2 3 4 5 6 7 8 9];
yp=[-6.1 -3.4 -1.6 0.8 1.7 4.6 3.9 5.3
-4];
p1=polyfit(x,yp,1);
p2=polyfit(x,yp,2);
p3=polyfit(x,yp,3);
p4=polyfit(x,yp,4);
stem(x,yp); hold
x1=0.5:0.05:9.5;
y1=polyval(p1,x1);
y2=polyval(p2,x1);
y3=polyval(p3,x1);
y4=polyval(p4,x1);
plot(x1,y1,x1,y2,x1,y3,x1,y4), grid,
set(gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Aproximarea polinomiala')
xlabel('Argumentul'),ylabel('functia'),
grid

2.2 Aproximarea “cubic spline”.


Aproximarea “cubic spline” se realizează cu ajutorul procedurii spline(X,Y,Xi). Reprezentaţi aproximarea “cubic spline”
după cum urmează:

x=-0.5:0.1:0.3;
y=[-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1 -
1];
stem(x,y); hold
x1=-0.5:0.01:0.3;
y2=spline(x,y,x1);
plot(x,y,x1,y2), grid, set
(gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Aproximarea cubic spline')
xlabel('Argumentul'),ylabel('functia'),
grid
x=-0.5:0.1:0.3;
ycs=[-8.1 3.2 4.6 0.5 3.8 2.6 1.9 0.5 -
4];
stem(x,ycs); hold
x1=-0.5:0.01:0.3;
y2=spline(x,ycs,x1);
plot(x,y,x1,y2), grid, set
(gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Aproximarea cubic spline')
xlabel('Argumentul'),ylabel('functia'),
grid

2.3 Aproximarea tabelară unidimesională.


'metoda'
Aproximarea tabelară unidimesională se realizează cu ajutorul procedurii interpl(X,Y,Xi, ), şi permite de a indica
metoda de aproximare. Reprezentaţi aproximarea lineară (nu se indică), pe praguri, cubică şi “cubic spline” după cum
urmează:

x=-0.5:0.1:0.3;
y=[-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1 -
1];
stem(x,y); hold
x1=-0.5:0.01:0.3;
y1=interp1(x,y,x1);
y2=interp1(x,y,x1,'nearest');
y3=interp1(x,y,x1,'cubic');
y4=interp1(x,y,x1,'spline');
plot(x1,y1,x1,y2,x1,y3,x1,y4), grid,
set(gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Aproximarea prin procedura
interpl')

xlabel('Argumentul'),ylabel('functia'),
grid

x=-0.5:0.1:0.3;
ytu=[-9.2 7.5 5.2 3.9 3.7 0.8 1.3 0.2 -
5];
stem(x,ytu); hold
x1=-0.5:0.01:0.3;
y1=interp1(x,ytu,x1);
y2=interp1(x,ytu,x1,'nearest');
y3=interp1(x,ytu,x1,'cubic');
y4=interp1(x,ytu,x1,'spline');
plot(x1,y1,x1,y2,x1,y3,x1,y4), grid,
set(gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Aproximarea prin procedura
interpl')
xlabel('Argumentul'),ylabel('functia'),
grid

Concluzie: Efectuind aceasta lucrare de laborator mi-am imbogatit cunostintele cu transformarea Analogic-
digitală a unui semnal utilizind pachetul Matlab. Pentru prelucrarea semnalelor analogice cu ajutorul procesoarelor
digitale e necesar de stiut în primul rând de a transforma semnalele în formă digitală. Am observatt si schimbarea
semnalelor in diferite forme: sin, square, sawtooth, random. La final am aproximat datele utilizind mai multe
proceduri: polyfit,bspline, interp.

S-ar putea să vă placă și