Sunteți pe pagina 1din 14

Lucrare de laborator nr.

1
FORMAREA SEMNALELOR CONTINUE ŞI DISCRETE ÎN SISTEMUL MATLAB

1.1. Scopul lucrării: Studierea posibilităţilor de bază a sistemului MATLAB după modelarea
diferitor forme a semnalelor, atât în formă continuă(analogică) cît şi în formă discretă,
necesare pentru cercetarea particularităţilor acestor semnale, în particular a caracteristicilor
lor spectrale, şi utilizarea lor pentru studierea diferitor sisteme de prelucrare a semnalelor şi
de transmitere a informaţiei.

1.2. Îndrumări metodice

Obiectul de bază a operaţiilor în MATLAB este o matrice dreptunghiulară a numerelor reale


sau complexe, sau, ca caz particular ,vectorul acestor numere. Pachetul de programe pentru
prelucrarea numerică a semnalelor (Signal Processing Toolbox –SPTB) are un set larg de funcţii
pentru generarea semnalelor, majoritatea cărora necesită stabilirea prealabilă a vectorului
momentelor de timp t sau n. Ca să formăm vectorul de timp t cu pasul T=1ms pe intervalul de la
0 până la 1s folosim comanda:
t=0:0.001:1;

Aceasta corespunde 1000 eşantioanelor pe secundă sau frecvenţei de eşantionare de 1000 Hz.
Pentru ca să formăm vectorul cu n valori de timp pentru semnalul descris în domeniul de timp
discret de la n=0 până la n=1000, folosim comanda: n=0:1000;

Pentru valorile date t sau n putem forma semnalul care ne interesează.

În MATLAB semnalul în domeniul de timp discret se prezintă precis, pentru că valorile


semnalului sunt descrise ca elementele unui vector. Semnalul în domeniul de timp continuu
poate fi prezentat doar aproximativ cu ajutorul interpolării valorilor sale în intervalele dintre
eşantioanele sale discrete. De aceea intervalul dintre eşantioane trebuie să fie destul de mic ca să
se garanteze că eşantioanele vor reda destul de precis forma semnalului.

1.3 Lucru în laborator

Trebuie de efectuat formarea semnalelor descrise în exemplele de mai jos şi de


asemenea a unor semnale adăugătoare la indicaţia profesorului. De verificat cum se schimbă
forma semnalului generat, la schimbarea unor parametri caracteristici ai lui. De înregistrat şi de
prezentat în darea de seamă la fiecare punct forma de adresare la procedura corespunzătoare şi
oscilograma semnalului format.
În afară de semnalele standarde realizate în SP Toolbox, folosind mijloacele limbajului
Matlab este posibil de creat practic un număr nelimitat de semnale diferite.
1.3.1. Să se creeze din 256 eşantioane o oscilaţie armonică cu amplitudinea unitate şi
perioada de 50 eşantioane.
Pentru aceasta în regiunea de comandă MATLAB trebuie de cules următoarea serie de
comenzi:
» k=0:255;
» x=sin(2*pi*k/50);
» plot(x); grid on; title('sine wave');
» xlabel('sample number'); ylabel('Amplitude')

Fig.1Construirea unei oscilatii armonice

Prima comandă creează vectorul k=[0,1,…255]. Următoarea comandă generează vectorul x care
conţine mărimea eşantioanelor oscilaţiei sinusoidale la un număr corespunzător k. Comanda plot
împreună cu comenzile următoare afişează graficul oscilaţiei formate sub forma unui semnal
continuu şi nu a unei succesiuni de eşantioane discrete datorită unirii eşantioanelor vecine cu
segmente de dreaptă. Dacă ar fi fost necesară prezentarea graficului sub forma de eşantioane
discrete, atunci în loc de comanda plot trebuie de folosit comanda stem.
1.3.2. Să se creeze un semnal ce conţine 1024 eşantioane a unui proces tranzitoriu a unui
sistem oarecare, descris de următoarea relaţie:

x t   0; t  0.1s

  t  0.1  2t  0.1
 x t   exp  0.2  sin  0.16 ;0.1  t  1.024s

Intervalul de timp între eşantioanele vecine T=0,001s. Formarea unui aşa tip de semnal
este posibilă cu ajutorul următoarei serii de comenzi:

» t=0:0.001:1.023;

» T=0.001;

» k=101:1024;

» Z=zeros(1,100);

» x=[Z exp(-(k*T-0.1)/0.2).*sin(2*pi*(k*T-0.1)/0.16)];

» plot(t,x); grid on; title('Transient process');

» xlabel('Time(s)'); ylabel('Amplitude')

Fig.2 Construirea unui proces tranzitoriu

Prima comandă generează vectorul valorilor argumentelor timpului care conţine 1024 de
elemente: 0, 0.001, 0.002, ..., 1.023. În rândul al treilea se instalează vectorul k din 924 de
numere ale eşantioanelor în domeniul de timp unde x(t)0. Vectorul [Xk] se creează prin unirea
(concatenarea) vectorului [Zk] ce conţine 100 de eşantioane nule, creat cu comanda a patra şi
vectorul valorilor nenule ale eşantioanelor X(t) calculate în corespundere cu relaţia dată x(t).
Aducem aminte că operatorul “.*” este operatorul înmulţirii element cu element a vectorilor
“sin” şi “exp”. Comanda plot are aici două argumente arătând că se construieşte graficul x
funcţie de t.

1.3.3. Să se creeze un semnal în intervalul de timp 0  t  1 s care constă din suma unei
oscilaţii armonice cu amplitudinea de 1V şi frecvenţa 50Hz , unei oscilaţii sinusoidale cu
amplitudinea de 2V şi frecvenţa de 120Hz şi a unui semnal de zgomot distribuit normal cu
valoarea medie zero şi valoarea medie pătratică 0.5V, folosind o frecvenţă de discretizare de
1000Hz, adică intervalul de discretizare T=0.001s.
Setul de comenzi necesar pentru crearea unui astfel de semnal are forma:
» t=0:0.001:1;
» y=sin(2*pi*50*t)+2*sin(2*pi*120*t);
» randn('state',0);
» yn=y+0.5*randn(size(t));
» plot(t(1:50), yn(1:50));grid

Fig.3Construirea unui semnal format din suma unei oscilatii


armonice,sinusoidale si unui semnal de zgomot
Conform comenzii plot pe ecran sunt afişate primele 50 de eşantioane ale semnalului.
1.3.4. Să se creeze în intervalul 0  t  1 s semnale sinusoidale de forma: a) 5exp(-6t);
b) exp(5t), folosind frecvenţa eşantioanelor fd=1000Hz. Succesiunea comenzilor poate fi
următoarea:
a) » B=5;
» a=6;
» t=0:0.001:1;
» x=B*exp(-a*t);
» plot(t,x), grid

Fig.4.a)Construirea unui semnal sinusoidal de forma 5exp(-6t)


b) » B=1;
» a=5;
» t=0:0.001:1;
» x=B*exp(a*t);
» plot(t,x), grid
Fig.4.b) Construirea unui semnal sinusoidal de forma exp(5t)
1.3.5. Să se creeze un impuls exponenţial discret de forma x(n)=Brn, unde B=1, r=0.8 pe
intervalul  10  n  10 . Pentru aceasta pot fi folosite următoarele comenzi:
» B=1;
» r=0.8;
» n=-10:10;
» x=B*r.^n;
» stem(n,x)

Fig.5Construirea unui impuls exponential discret


Observăm că, operatorul “.^” înseamnă ridicarea la putere element cu element, iar
comanda stem reprezintă graficul sub forma unei serii de valori discrete, şi nu un semnal
continuu ca la comanda plot.

1.3.6. Să se creeze un semnal sinusoidal discret cu perioada de 12 eşantioane şi


 2 
amplitudinea de 2V: x n   2 sin  n ,10  n  10
 12 
Pentru aceasta poate fi folosit următorul set de comenzi:
» A=1;
» omega=2*pi/12;
» n=-10:10;
» y=A*sin(omega*n);
» stem(n,y)

Fig.6 Construirea unui semnal sinusoidal discret


1.4.7. Să se creeze un semnal discret exponenţial atenuat, pe baza înmulţirii exponentei
atenuatoare formate în exemplul 4.5 şi a semnalului sinusoidal creat în exemplul 4.6, ambele
primite pentru intervalul  10  n  10 .

Soluţie: notând rezultatul înmulţirii cu Z(n) putem folosi următoarele comenzi pentru
generarea şi vizualizarea semnalului:

» Z=x.*y;
» stem(n,Z)
Fig.7Construirea unui semnal discret exponential atenuat
Remarcăm că aici nu este necesitatea de a da regiunea de modificare a lui n, deoarece ea
este în comenzile pentru formarea semnalelor x şi y.

1.3.8. Să se creeze următoarele serii de impulsuri , care se descriu, după cum se ştie, de
relaţia:

1, k  0
= 
0, k  0
a) x1=2(k-3), 1  k  10 ;
b) x2=0.6(k),  10  k  10 ;
c) x3=1.5(k+7),  10  k  0
Soluţie: a) » k=1:10;

» x1=zeros(size(k));

» x1(3)=2;

» figure;stem(k,x1);grid;xlabel('k');ylabel('x1(k)')
Fig.8.a)Construirea unei serii de impulsuri conform solutiei a

b) » k=-10:10;
» x2=zeros(size(k));
» x2(11)=0.6;
» figure;stem(k,x2); grid;
» xlabel('k');ylabel('x2(k)')

Fig.8.b) Construirea unei serii de impulsuri conform solutiei b


c) » k=-10:0;
» x3=zeros(size(k));
» x3(4)=1.5;
» figure;stem(k,x3);grid;
» xlabel('k');ylabel('x3(k

Fig.8.c) Construirea unei serii de impulsuri conform solutiei c


1.3.9. Crearea impulsului dreptunghiular de amplitudine unitate şi durata 1s, amplasat
simetric în originea de coordonate t=0  0.5s  t  0.5s  descris în intervalul de timp
 1s  t  1s cu pasul T=2ms.

Soluţie: impulsul dreptunghiular poate fi creat cu ajutorul diferenţei a două funcţii de tip
“treaptă” deplasate în timp cu un interval egal cu durata impulsului. Acest semnal poate fi format
cu ajutorul următorului set de comenzi:

» t=-1:0.002:1;

» U1=[zeros(1,250), ones(1,751)];

» U2=[zeros(1,751), ones(1,250)];

» U=U1-U2;

» plot(t,U)
Fig.9 Construirea impulsului dreptunghiular de amplitudine
unitate şi durata 1s
1.3.10. Crearea unui şir discret de impulsuri dreptunghiulare cu amplitudinea A=1 şi
viteza unghiulară =/4 în intervalul  10  n  10 se efectuează cu ajutorul următoarelor
comenzi:

» A=1;
» omega=pi/4;
» rho=0.5; %parametrul rho determina partea perioadei in care semnalul e pozitiv
» n=-10:10;
» x=A*square(omega*n*rho);
» stem(n,x)

Fig.10 Construirea unui şir discret de impulsuri dreptunghiulare


Cu toate că în realitate folosim semnale reale, foarte util în teoria semnalelor este faptul
că avem posibilitatea de a prezenta semnalul real ca partea reală sau imaginară a unui semnal
complex. Vom arăta mai jos exemple de creare a unor semnale complexe cu separarea părţii lor
reale şi imaginare.


1.3.11. Crearea semnalului exponenţial complex x  exp j  n
3
. Poate fi folosit
următorul set de comenzi:
» n=0:25;
» x=exp(j*n/3);
» subplot(2,1,1);
» stem(n,real(x));
» title('real part');xlabel('index(n)');
» subplot(2,1,2);
» stem(n,imag(x));
» title('imag part');xlabel('index(n)')

Fig.11 Construirea semnalului exponenţial complex


1.4.12. Crearea semnalului exponenţial complex xn  exp  0.1  j 0.3n . Pe intervalul
 10  n  10 :

» n=[-10:1:10];alpha=-0.1+0.3j;
» x=exp(alpha*n);
» subplot(2,2,1);stem(n,real(x));title('real part');xlabel('n');
» subplot(2,2,2);stem(n,imag(x));title('imaginare part');
»xlabel('n');
» subplot(2,2,3);stem(n,abs(x));title('magnitudine');
»xlabel('n');
» subplot(2,2,4);stem(n,(180/pi)*angle(x));title('phase');
»xlabel('n')

Fig.12Construirea semnalului exponenţial complex

Concluzie:
Efectuind aceasta lucrare de laborator am asimilat funtiile MATLAB
specifice lucrului cu semnale continue si discrete.Am acumulat deprinderi a
tehnicilor de analiza a secventelor de lucru cu semnalele continue si discrete.
Resursele sale de calcul şi reprezentare grafică sunt bogate, permiţând operaţii
matematice fundamentale,ceea ce ne permite de a crea si construi semnale de orice
gen,pe baza intervalelor,formelor ,perioadelor,relatiilor de orice forma.

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