Sunteți pe pagina 1din 14

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Republicii Moldova


Facultatea Calculatoare, Informatică și Microelectronică
Departamentul Microelectronică și Inginerie Biomedicală

RAPORT
lucrarea de laborator nr. 2

Disciplina: Prelucrarea Semnalelor și Imaginilor


Tema: Studierea transformării Analog-Digitale a semnalelor folosind MATLAB.
Aproximarea datelor.

Elaborat de: Livadaru Mihaela


gr. ISBM - 161

A verificat: Railean Serghei


conf. univ.

2019
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 rocesoarelor 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
În multe cazuri de interes practic (semnalul vorbirii) e necesar de a transformasemnalul digital în semnal
de formă analogică. Procesul de conversie a semnalului digital în semnal analogic e cunoscut ca conversie digital-
analogică (D/A). Orice conversie D/A e cunoscută ca "unirea probelor" în semnalul digital pentru transformarea
semnalului digital în semnal analogic. Figura 2 ilustrează o simplă formă a transformării D/A, numită
aproximarea pe trepte ("zero-order hold" – eng.).
Un alt exemplu de aproximare posibilă este conectarea liniară a perechilor consecutive a "probelor"
(aproximarea liniară)

Fig. 2 Conversia D/A prin aproximarea pe trepte

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.

Intervalul de timp T între "probele" consecutive se numeşte perioada de discretizare, iar mărimea
inversă - 1/T=F - este viteza de discretizare ("probe" pe secundă) sau frecvenţa de discretizare.
După cum am menţionat mai sus, semnalul digital e o consecutivitate de valori ("probe") unde fiecare
este reprezentată cu o precizie finită.
Procesul de conversie a semnalului discret în timp cu o amplitudine continua într-un semnal discret în
timp cu exprimarea fiecărei valori cu un număr finit de valori se numeşte quantizare. Eroarea întrodusă în
reprezentarea semnalului cu valoarea continua cu un set de valori discrete se numeşte eroarea quantizării sau
zgomotul quantizării. Operaţia quantizării "probelor" x(n) se notează Q[x(n)], iar xq(n) - un şir de "probe"
quantizate:
xq(n) = Q[x(n)] (2)
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


În figura 5 este ilustrat procesul de discretizare şi quantizare a semnalului analogic sinusoidal:

xa(t)=Acos  0 t (5)

Liniile orizontale reprezintă nivelele de quantizare. Liniile verticale repretintă timpul de discretizare.
Fig. 5 Discretizarea şi quantizarea semnalului sinusoidal.

Delta conversie.

În discuţiile despre cuantificare s-a menţioţionat, că în


digital, un eşantion poate lua doar o serie de valori foarte bine
specificate. Atunci când un singur bit este disponibil pentru
codificare, acesta poate reprezenta doar două valori: 0 sau 1. Pentru a modula semnalul analogic, îl comparăm la
fiecare moment de eșantionare cu poziția în care semnalul cuantizat a fost la momentul anterior. Dacă semnalul
analogic este mai sus, se adaugă un flux 1 la fluxul digital. Dacă semnalul analogic este mai jos, se adaugă un 0. Acest
proces se numește conversia delta.

De la delta la delta-sigma
Modularea Delta este o primă abordare deja funcțională, dar
este puțin naivă și departe de cea optimă: raportul calitate / debit pe
care îl oferă nu este foarte interesant. Există o modalitate de a face mai
bine, făcând intrarea modulatorului dependentă de ieşirea acestuia.
Explicații.
În această diagramă bloc, funcția de flip-flop (bascule) este de
a sincroniza ansamblul la frecvența de eșantionare aleasă. DAC pe 1
biti, pur și simplu, are funcția de a converti 1 și 0 la ieșirea din flip-flop
în tensiuni electrice care pot fi comparate cu semnalul de intrare: dacă
ne plasăm întotdeauna în exemplul nostru de un semnal original luând
valorile sale între -100 și 100, un 1 va fi transformat în 100 și un 0 în -
100. Astfel, semnalul de ieșire al subtractorului este un semnal de
eroare care măsoară diferența dintre semnalul de intrare analogic și
eșantionul digital codificat pe un bit la ieșirea codorului.
Dar noutatea în convertorului delta-sigma este prezența unui integrator la începutul șirului - de aici și
"sigma". Acest integrator intervine imediat după subtractor și are rolul de a "analiza" evoluția diferenței dintre
semnalul de intrare și semnalul de ieșire. Dacă această diferență este ridicată în pozitiv, semnalul de ieșire al
integratorului va crește foarte rapid (și invers dacă diferența este mare în negativ).

Să presupunem că semnalul analogic de intrare este aproa pe de


0: atunci, indiferent de valoarea bitului de ieșire, semnalul de eroare va fi mare (aproape -100 dacă bitul de ieșire
este 1, aproape 100 dacă aste la 0). Ieșirea integratorului va varia astfel foarte rapid, fie în sus sau în jos, și foarte
des se schimbă semnul: comparatorul va alterna între 1 și 0.

Dimpotrivă, dacă semnalul nostru analogic este aproape de


100, semnalul de eroare cu privire la bitul la 1 va fi foarte mic, semnalul
de ieșire al comparatorului va varia puțin și ieșirea comparatorului va
tinde să rămână stabilă la 1 În mod similar, dacă semnalul analogic este
apropiat de -100, ieșirea comparatorului va rămâne stabilă la 0.

Sigma delta şi conversia digital-analogică


Rezultatul acestei conversii delta-sigma se bazează pe faptul că
valoarea semnalului este o funcție a densității de biți 1 la un punct. Așa
cum tocmai am explicat, într-o locație unde se găsesc doar biți la 1, semnalul va fi aproape de 1; La o locație în care
se găsesc doar biți la 0, va fi aproape de -100; În schimb, dacă se găsește o alternanță regulată și echilibrată de 1 și
0, semnalul va fi aproape de 0.

Exemplu:
Ordinea îndeplinirii lucrării de laborator.
1. Studierea transformării A/D

1.1 Lansaţi pachetul de programe MATLAB.

1.2 Culegeţi comanda demo – va apărea fereastra respectivă cu exemple in MATLAB.

1.3 Găsiţi directoriul "Блок-схемы ", apoi deschideţi directoriul "Блок-схемы DSP". În acest directoriu găsiţi
fişierul "Sigma-Delta A/D conversion" şi startaţi programul de demonstrare. Va apărea schema-bloc reprezentată
în fig. 6.

Fig. 6 Schema-bloc a convertorului A/D

1.4 Din comanda File deschideţi un nou fişier de modelare şi copiaţi întreaga bloc-schemă în fişierul nou.

1.5 Startaţi modelarea şi urmăriţi semnalele de întrare şi de ieşire. Schimbaţi forma semnalului (sinosoidal,
treungiular) de la „Generatorul de semnale” şi urmariţi transformarea acestora.

1.6 Startaţi simularea şi urmăriţi schimbarea formei semnalului.

1.7 Schimbaţi forma semnalului de la sursa de semnale şi repetaţi p. 1.6 (semnal sinusoidal, în formă
dreptungiulară şi în frmă de undă treungiulară).
1.8 În directoriul "Блок-схемы DSP" găsiţi fişierul "Библиотека блок-схем DSP" si deschideţi-l. Deschideţi fişierul
"DSP Sincs", apoi deschideţi fişierul "Simulink Sincs". Pentru a urmări forma semnalului, adăugaţi ecranul de
vizionare a semnalelor după toate blocurile din schema-bloc. Salvaţi imaginile obţinute după fiecare bloc.

1.9 Am adăugat câteva osciloscoape în schema bloc pentru a putea observa schimbările ce au loc
după fiecare bloc.
1.2 Am lansat simularea și am extras imaginile de la fiecare osciloscop.
2. Aproximarea datelor.

2.1 Aproximarea polinomială.


Aproximarea polinomială se realizează 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];
y=[-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1 -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')
xlabel('Argumentul'),ylabel('functia'),grid
Aproximarea polinomiala
1

0.5

-0.5
functia

-1

-1.5

-2

-2.5
0 2 4 6 8 10
Argumentul
Notă: Schimbaţi parametrii semnalului y, notaţi noul semnal prin yp şi repetaţi aproximarea polinomială pentru
noul semnal.

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
Aproximarea cubic spline
1

0.5

0
functia

-0.5

-1

-1.5
-0.6 -0.4 -0.2 0 0.2 0.4
Argumentul
Notă: Schimbaţi parametrii semnalului y, notaţi noul semnal prin ycs şi repetaţi aproximarea „cubic spline” pentru
noul semnal.

2.3 Aproximarea tabelară unidimesională.


Aproximarea tabelară unidimesională se realizează cu ajutorul procedurii interpl(X,Y,Xi,'metoda'), ş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
Aproximarea prin procedura interpl
1

0.5

0
functia

-0.5

-1

-1.5
-0.6 -0.4 -0.2 0 0.2 0.4
Argumentul
Notă: Schimbaţi parametrii semnalului y, notaţi noul semnal prin ytu şi repetaţi aproximarea tabelară
unidimesională pentru noul semnal.

Concluzie: Efectuând această lucrare de laborator am studiat transformarea A/D a semnalelor folosind
MATLAB.