Sunteți pe pagina 1din 5

Lucrare de laborator nr.

FORMAREA SEMNALELOR CONTINUE ŞI DISCRETE ÎN SISTEMUL MATLAB

• 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.

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.4. 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.4.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')

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.4.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:

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')

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 [X k] 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.4.3. Să se creeze un semnal în intervalul de timp 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

Conform comenzii plot pe ecran sunt afişate primele 50 de eşantioane ale semnalului.
1.4.4. Să se creeze în intervalul 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

b) >> B=1;
>> a=5;
>> t=0:0.001:1;
>> x=B*exp(a*t);
>> plot(t,x), grid

1.4.5. Să se creeze un impuls exponenţial discret de forma x(n)=Br n, unde B=1, r=0.8 pe
intervalul . Pentru aceasta pot fi folosite următoarele comenzi:
>> B=1;
>> r=0.8;
>> n=-10:10;
>> x=B*r.^n;
>> stem(n,x)

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.4.6. Să se creeze un semnal sinusoidal discret cu perioada de 12 eşantioane şi
amplitudinea de 2V:
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)

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 .
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)

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.4.8. Să se creeze următoarele serii de impulsuri , care se descriu, după cum se ştie, de
relaţia:
=
a) x1=2(k-3), ;
b) x2=0.6(k), ;
c) x3=1.5(k+7),

Soluţie: a) k=1:10;
x1=zeros(size(k));
x1(3)=2;
figure;stem(k,x1);grid;xlabel('k');ylabel('x1(k)')

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

1.4.9. Crearea impulsului dreptunghiular de amplitudine unitate şi durata 1s, amplasat


simetric în originea de coordonate t=0 descris în intervalul de timp
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)

1.4.10. Crearea unui şir discret de impulsuri dreptunghiulare cu amplitudinea A=1 şi


viteza unghiulară =/4 în intervalul 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)

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.4.11. Crearea semnalului exponenţial complex . 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)')

1.4.12. Crearea semnalului exponenţial complex . Pe


intervalul :
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');
Concluzie:

In concluzie,in urma utilizarii programei MATLAB. Drept urmare am indeplinit scoopul


lucrarii: “Studierea posibilităţilor de bază a sistemului MATLAB după modelarea diferitor forme
a semnalelor”,ca rezultat evident,am obtinut grafice care indica existent si modelarea semnalelor
in dependenta de conditia impusa si anumite particularitati ale obiectului studiat

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