Îndrumar de laborator
Bucureşti, 2013
Prefaţă
Îndrumarul de laborator cu titlul Semnale şi Sisteme se adresează ı̂n principal
studenţilor Facultăţii de Automatică şi Calculatoare, din cadrul Universităţii
”Politehnica” din Bucureşti, anul II de Licenţă. Cartea poate fi folosită şi de
către inginerul automatist, care caută o mai bună ı̂nţelegere teoretică şi apli-
cativă a domeniului semnalelor şi sistemelor, fundamental ı̂n ştiinţa Ingineriei
Sistemelor.
Lucrarea conţine 7 capitole, orientate preponderent către aplicaţii ce trebuie
dezvoltate ı̂n mediul Matlab
R
, un limbaj de nivel ı̂nalt, folosit pe scară largă
atât de universităţile renumite, cât şi ı̂n cercetare / proiectare inginerească de
vârf. Generic, un capitol cuprinde breviarul teoretic aferent, exemple, exerciţii
rezolvate (codul Matlab aferent este dat ı̂n Anexă) şi probleme propuse, care
au ca scop aprofundarea şi extinderea noţiunilor prezentate.
Capitolul 1 conţine o scurtă introducere ı̂n Matlab: variabile (scalare, vecto-
riale, matriciale), tipuri de fişiere, operatori, reprezentări grafice de funcţii ı̂n
două, respectiv trei dimensiuni. Capitolul 2 abordează problematica semnale-
lor. Se studiază operaţii elementare cu semnale (translaţia ı̂n timp, convoluţia),
tratate din punct de vedere numeric, precum şi reprezentarea ı̂n frecvenţă a
semnalelor. Sunt prezentate câteva aplicaţii interesante: periodicitatea feno-
menelor naturale, analiza/sinteza semnalelor audio, prelucrări elementare de
imagini. În Capitolul 3, se introduce conceptul de sistem. Expunerea este
centrată ı̂n jurul sistemelor de convoluţie (liniare şi invariante ı̂n timp). Sunt
prezentate exemple tipice de sisteme (masă–resort cu amortizare, circuitul
RC), ı̂mpreună cu funcţiile de transfer corespunzatoare. Capitolul 4 tratează
răspunsul dinamic al sistemelor de convoluţie cu o intrare şi o iesire, pentru
semnale de tip persistent (impuls, treaptă, semnal armonic). Capitolul 5 ı̂şi
propune familiarizarea cititorului cu reprezentarea ı̂n frecvenţă a sistemelor
(caracteristicile amplitudine–frecvenţă şi fază frecvenţă, cunoscute ca diagra-
mele Bode) şi cu noţiuni elementare de filtrare. Capitolul 6 propune studiul
reprezentării polare a funcţiei de transfer (care este o funcţie raţională com-
plexă), cunoscută ca locul Nyquist sau hodograful. De asemenea, criteriul
de stabilitate al lui Nyquist este enunţat şi aplicat pe exemple. Capitolul 7
completează noţiunile despre sisteme dinamice ı̂n timp discret.
v
Cuprins
Prefaţă v
2. Semnale 23
2.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1. Convoluţia şi translaţia ı̂n timp . . . . . . . . . . . . . . 28
2.3.2. Aproximaţii ale funcţiei δ . . . . . . . . . . . . . . . . . 29
2.3.3. Transformări integrale . . . . . . . . . . . . . . . . . . . 30
2.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3. Sisteme 41
3.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.1. Sisteme de convoluţie . . . . . . . . . . . . . . . . . . . 41
3.2.2. Circuitul RC . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.3. Ecuaţii diferenţiale forţate . . . . . . . . . . . . . . . . . 44
3.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Răspunsul dinamic 59
4.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2. Moduri de reprezentare ale unui sistem SISO . . . . . . . . . . 59
4.3. Analiza răspunsului ı̂n timp . . . . . . . . . . . . . . . . . . . . 60
4.3.1. Sisteme de ordinul I . . . . . . . . . . . . . . . . . . . . 62
4.3.2. Sisteme de ordinul II cu poli reali . . . . . . . . . . . . . 66
4.3.3. Sisteme de ordinul II cu poli complecşi . . . . . . . . . . 68
4.4. Specificaţii de performanţă . . . . . . . . . . . . . . . . . . . . 70
vii
viii Semnale şi sisteme. Îndrumar de laborator
5. Diagramele Bode 83
5.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2.1. Diagramele Bode . . . . . . . . . . . . . . . . . . . . . . 84
5.2.2. Filtrare . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Postfaţă 187
Bibliografie 189
1. Introducere ı̂n Matlab
1.1. Introducere
Numele MATLAB
R
este prescurtarea sintagmei MATrix LABoratory. Limba-
jul a fost scris iniţial ca să faciliteze accesul şi utilizarea programelor dedicate
calculului algebric: LINPACK (LINear Algebra PACKage), BLAS (Basic Li-
near Algebra Subprograms) şi EISPACK (EIgen System PACKage).
Matlab este un limbaj de nivel ı̂nalt şi un mediu de lucru interactiv, care
permite efectuarea de calcule numerice mai eficient decât utilizând limbaje de
programare clasice, spre exemplu Fortran, C/C++, Java. Principalele aplicaţii
vizează scrierea de algoritmi, analiza şi vizualizarea datelor, prelucrarea sem-
nalelor, modelare asistată de calculator, proiectarea sistemelor automate. De
asemenea, Matlab are ı̂ncorporate câteva zeci de toolboxuri utile pentru o gamă
largă de aplicaţii: Control System Toolbox, Signal Processing Toolbox, Bio-
informatics Toolbox, Aerospace Toolbox, Image Acquisition Toolbox şi multe
altele, dintr-o varietate de domenii inginereşti.
Matlab are ı̂ncorporat pachetul Simulink
R
, un mediu programare bazat pe
diagrame bloc, dedicat simulării asistate de calculator.
Mai multe informaţii despre Matlab pot fi găsite pe site-ul web al pro-
ducătorului: The MathWorks Inc., http://www.mathworks.com.
1
2 Semnale şi sisteme. Îndrumar de laborator
Această comandă dă o descriere a funcţiei şi o listă de funcţii legate de ea.
Dacă nu vă amintiţi exact numele funcţiei, puteţi folosi comanda lookfor şi
un cuvânt cheie asociat funcţiei. Această comandă va afişa o listă de funcţii
care au acel cuvânt cheie ı̂n descriere:
(i) Operatori relaţionali: mai mic (<), mai mic sau egal (<=), mai mare (>),
mai mare sau egal (>=), egal (==), diferit (∼=). Atenţie la diferenţa
dintre operatorul de atribuire ’=’ şi cel de testare a egalităţii ’==’.
(ii) Operatori aritmetici: adunare (+), scădere (–), ı̂nmulţire (*), ı̂mpărţire
la dreapta (/), ı̂mpărţire la stânga (\), ridicare la putere (ˆ) , transpus
conjugata (’).
(iii) Operaţii ı̂n buclă şi operaţii logice: for, while, if şi & (and), |(or) şi ˜
(not).
Variabile Matlab
Variabilele uzuale ı̂n Matlab sunt scalari, vectori, matrice. Aceste variabile
pot fi create printr-o simplă asignare:
>> x = 17*2/9-33
Odată creată, o variabilă poate fi reasignată, atât ca tip (float, double etc.)
cât şi ca valoare. În plus, dacă nu doriţi afişarea rezultatelor intermediare,
puneţi ’;’ la sfârşitul liniei:
>> t = 5;
>> t = t+1
√
Matlab permite lucrul cu numere complexe. −1 poate fi scris i sau j cu
condiţia să nu fie redefinite de utilizator. De asemenea, -1+2j este interpre-
tat corect, ı̂n schimb -1+j2 nu este: Matlab interpretează j2 ca numele unei
Capitolul 1. Introducere ı̂n Matlab 3
variabile. Se poate scrie -1+j*2. În continuare sunt date câteva operaţii cu
numere complexe:
Generarea matricelor
Matlab stochează variabilele sub forma unor matrice de dimensiuni m × n,
unde m este numărul de linii şi n este numărul de coloane. O matrice de
dimensiune 1 × 1 este un scalar; o matrice de dimensiune 1 × n este un vector
linie, iar o matrice m × 1 este un vector coloană. O matrice este scrisă ı̂ntre
paranteze drepte [ ], cu spaţii care separă coloane adiacente şi ’;’ care separă
linii adiacente. Elementele complexe ale unei matrice nu trebuie să fie scrise
cu spaţii: spre exemplu, -1+2j este corect ca element al matricei, dar -1 +
2j nu este. Ca exemplu, se consideră următoarele valori pentru variabila x:
>> x=0:0.5:10;
O submatrice a lui A formată din liniile 1 şi 2 şi toate coloanele poate fi scrisă:
Un element al unei matrice poate fi corectat uşor. Spre exemplu, dacă vrem
să ı̂nlocuim valoarea de pe poziţia 3×3 cu 0, scriem A(3,3) = 0.
Operaţii cu matrice
Matlab poate efectua operaţii aritmetice, relaţionale şi logice cu matrice.
Dacă dimensiunile matricelor implicate ı̂n operaţie sunt incompatibile, Mat-
lab ı̂ntoarce un mesaj de eroare. Împărţirea este definită ı̂n felul următor:
Soluţia ecuaţiei A ∗ x = b este x = A\b şi soluţia ecuaţiei x ∗ A = b este
x = b/A numai dacă A este inversabilă şi toate matricele sunt compatibile
dimensional.
Adunarea şi scăderea implică operaţii element cu element; ı̂n schimb, ı̂nmulţi-
rea şi ı̂mpărţirea nu. Matlab oferă şi posibilitatea efectuării operaţiilor element
cu element punând ’.’ ı̂naintea operatorului după cum urmează: ı̂nmulţire
(.*), ı̂mpărţire la dreapta (./), ı̂mpărţire la stânga (.\), ridicare la putere (.ˆ),
transpus conjugata (.’). Diferenţa dintre ı̂nmulţirea de matrice şi ı̂nmulţirea
element cu element este vizibilă ı̂n următorul exemplu:
>> A = [1 2;3 4]
>> B = A*A
>> C = A.*A
Fişiere Matlab
Există mai multe tipuri de fişiere Matlab: scripturi de comenzi Matlab, fişiere
care definesc funcţii create de utilizator, fişiere care includ rezultate numerice
sau grafice.
Fişiere *.m
Scripturi
Scripturile Matlab sunt secvenţe de comenzi scrise ı̂ntr-un editor şi salvate
ı̂ntr-un fişier .m. Comenzile se scriu ı̂n ordinea execuţiei. Instrucţiunile sunt
executate scriind numele fişierului ı̂n promptul Matlab:
>> nume_fisier
Funcţii
>> [iesire1,iesire2]=numefunctie(intrare1,intrare2)
Observaţii.
(ii) Afişarea rezultatelor este suprimată prin folosirea ’;’la sfârşitul liniei.
(iii) O linie poate fi extinsă pe o alta folosind ’...’ la sfârşitul primei linii.
Fişiere .mat
Fişierele .mat sunt fişiere binare (comprimate), folosite pentru a stoca rezul-
tate numerice. Aceste fişiere pot fi folosite pentru a salva rezultate generate
printr-o secvenţă de instrucţiuni Matlab. De exemplu, pentru a salva valorile
a două variabile, var1 şi var2 ı̂n fişierul numefişier.mat vom scrie:
Pentru a salva ı̂n acest fişier toate variabilele curente (existente ı̂n spaţiul de
lucru):
Fişiere postscript
Graficele generate ı̂n Matlab pot fi salvate ı̂ntr-un fişier postscript pentru a fi
utilizate mai târziu. De exemplu, pentru a salva graficul curent vom scrie:
Fişiere diary
O ı̂nregistrare a sesiunii Matlab poate fi ţinută cu comanda diary şi salvată
ı̂ntr-un fişier diary. Pentru a ı̂ncepe ı̂nregistrarea unui fişier diary şi a-l salva
ca un fişier cu numele numefisier vom scrie:
Capitolul 1. Introducere ı̂n Matlab 7
Pentru a marca sfârşitul ı̂nregistrării şi a ı̂nchide fişierul vom folosi comanda
>> diary
Comenzi
Câteva comenzi care generează grafice 2D sunt:
Personalizarea graficelor
Câteva dintre cele mai frecvente comenzi sunt:
Scări logaritmice
Atunci când valorile luate de un semnal diferă ı̂ntre ele cu câteva ordine de
mărime sau atunci când se doreşte reprezentarea anumitor grafice pe un do-
meniu foarte larg (de exemplu, de la 0 la 105 ) se folosesc scări logaritmice.
Într-o scară logaritmică, punctele 10k cu k ∈ Z sunt echidistante. De cele mai
multe ori ı̂n astfel de grafice variabila reprezentată pe abscisă are semnificaţie
de frecvenţă. În secvenţa de numere ..., 1, 2, 5, 10, ... pe o scară logaritmică
(log10 ) distanţa dintre 1 şi 2 este aproximativ egală cu cea dintre 5 şi 10 şi
aproximativ egală cu o treime din distanţa dintre 1 şi 10. În plus, Matlab efec-
tuează o scalare suplimentară, care constă ı̂n numărul de pixeli alocat unităţii
pentru fiecare axă ı̂n parte, adică distanţei dintre două puteri succesive ale lui
10. Pentru lucrul cu scări logaritmice pot fi utile următoarele funcţii Matlab,
care au fost indicate şi anterior: loglog, semilogx, semilogy, logspace.
Capitolul 1. Introducere ı̂n Matlab 9
2 2
Figura 1.2.: Graficul funcţiei g(x1 , x2 ) = e−x1 −x2 sin(4x2 ) cos(4x1 )
Grafice 3D
Se consideră funcţia de două variabile
2 2
g(x1 , x2 ) = e−x1 −x2 sin(4x2 ) cos(4x1 ).
c = contour(G);
clabel(c);
10 Semnale şi sisteme. Îndrumar de laborator
1.4. Polinoame
Polinoamele apar frecvent ı̂n teoria semnalelor şi sistemelor, de exemplu ı̂n
reprezentarea ı̂n frecvenţă a sistemelor de convoluţie prin intermediul aşa-
numitei funcţii de transfer, ca raport de polinoame cu coeficienţi reali sau
complecşi. Funcţia de transfer este transformata Laplace (transformata Z) a
funcţiei pondere care defineşte sistemul de convoluţie respectiv.
Matlab reprezintă polinoamele ca vectori linie de coeficienţi polinomiali. De
exemplu, polinomul s2 + 4s − 5 este reprezentat ı̂n Matlab prin:
>> p = [1 4 -5]
În continuare vom lista câteva dintre cele mai importante comenzi folosite
la manipularea polinoamelor.
Aproximarea polinomială
Fiind dat un set de date {xi , yi }i=1...N , se poate determina polinomul care
aproximează cel mai bine ı̂n sensul celor mai mici pătrate funcţia y = f (x).
Apelul
>> yp = polyfit(x,y)
x = 1:10; % Datele
y = [1 5 3 3 2 3 6 11 17 34];
plot (x , y , ’*’); hold on
P = polyfit(x, y, 4); % gaseste coeficientii polinomului
% aproximant de gradul 4
xp = linspace (1,10,100);
yp = polyval( P, xp); % se calculeaza valorile polinomului
% P in punctele x_p
plot(xp , yp ,’r’ )
legend(’Date experimentale’ ’Polinom’);
Capitolul 1. Introducere ı̂n Matlab 11
În cele ce urmează sunt listate câteva funcţii precum şi exemple edificatoare.
fprim = diff(f)
fpprim = diff(f,2)
gprim = diff(g,y)
Exerciţiul 1.4. Mai multe perechi (x, y) pot fi reprezentate grafic printr-un
singur apel al funcţiei plot. Reprezentaţi pe acelaşi grafic funcţiile y1 (x) =
2 cos(x), y2 (x) = cos(x), y3 (x) = 0.5 cos(x) pe intervalul x ∈ [0; 2π].
Rezolvare. Vom folosi două fişiere: o funcţie ı̂n care generăm trian(t) şi un
script ı̂n care facem diferite prelucrări. Funcţia trian(t) se găseşte ı̂n fişierul
trian.m, vezi Anexa. Fişierul ı̂n care am trasat graficele se găseşte de aseme-
nea ı̂n Anexă. Rezultatele sunt prezentate ı̂n figura 1.7.
Se obţine graficul din figura 1.8. Codul Matlab este prezentat ı̂n Anexă.
Coeficienţii se determină astfel ı̂ncât eroarea să fie minimă ı̂n sensul celor
mai mici pătrate. Astfel, se consideră setul de date generat prin secvenţa de
comenzi
x = linspace(0,10,200);
y = randn(1,200);
Se cere aproximarea setului de date printr-o combinaţie liniară a funcţiilor
sin(x), sin(2x), sin(3x). Reprezentaţi pe acelaşi grafic rezultatele obţinute,
i.e., setul de date şi yP (x).
y = F c ⇒ c = F # y, unde
y1 sin(x1 ) sin(2x1 ) sin(3x1 )
y2 sin(x2 ) sin(2x2 ) sin(3x2 )
c1
y= , F = , c = c2 , F # F = I.
.. .. .. ..
. . . . c3
y200 sin(x200 ) sin(2x200 ) sin(3x200 )
Apelaţi ı̂n Matlab c=F\y.
Exerciţiul 1.12. Scrieţi un script Matlab care desenează graficele funcţiilor
u(t) si v(t), prezentate ı̂n figura 1.10.
c) Desenaţi bila ı̂n mişcare (o scurtă animaţie). Se vor folosi: o buclă for,
plot, drawnow.
a) Se poate arăta că, dacă există un număr n0 ∈ N a.ı̂. |zn0 | > 2, orbita
sistemului tinde la infinit. Numărul n0 se numeşte viteză limită (escape
velocity) pentru un z0 particular. Scrieţi o funcţie care returnează această
viteză, de forma n=escapeVelocity(z0,c,N), unde N este valoarea ma-
ximă admisă (i.e., dacă |zN | < 2, n = N ; se previn astfel bucle infinite).
Folosiţi funcţia abs pentru calculul modulului unui număr complex.
b) Vom scrie aici funcţia M=julia(zMax,c,N). Generaţi o matrice Z ∈ C500×500 ,
având partea reală ı̂ntre -zMax şi zMax şi partea imaginară ı̂ntre aceleaşi
Capitolul 1. Introducere ı̂n Matlab 21
limite. Pentru fiecare element din Z, se păstrează ı̂n M viteza limită co-
respunzătoare. Indicaţie. Z = X + jY . Veţi folosi funcţiile linspace şi
meshgrid. Mai departe, M(i,j)=escapeVelocity(Z(i,j),c,N), pentru
i, j ∈ {1, . . . , 500}.
M=julia(1,-0.297491+i*0.641051,100);
imagesc(atan(0.1*M))
2. Semnale
2.1. Scopul laboratorului
Laboratorul are ca scop familiarizrea studentului cu noţiunea de semnal, atât
ı̂n domeniul timp, cât şi ı̂n frecvenţă. Sunt studiate operaţiile de bază cu sem-
nale, translaţia ı̂n timp şi convoluţia. Se acordă o atenţie sporită impulsului
Dirac, prin studierea unor aproximări, unor proprietăţi fundamentale, precum
şi a derivatelor acestuia. Laboratorul tratează şi problema analizei şi sintezei
unui semnal, folosind serii şi transformate Fourier şi aplicarea transformatei
Laplace ı̂n mediul de programare Matlab.
Cele mai des folosite semnale, numite şi semnale standard, sunt:
1, t ≥ 0
1) Treapta unitară: 1(t) = ;
0, t < 0
2) Semnalul rampă : ramp(t) = t1(t);
1, k = 0
3) Impuls discret: δ[k] = ;
0, k 6= 0
1, a ≤ t ≤ b
4) Impuls dreptunghiular: rect(t) = ;
0, altfel
1 − |t|, −1 ≤ t ≤ 1
5) Impuls triunghiular: trian(t) = ;
0, altfel
6) Semnale exponenţiale: u(t) = Aeat , a ∈ R∗ ;
7) Semnale armonice: u(t) = A cos(ωt + φ).
Spaţiile de semnale sunt spaţii vectoriale Banach - spaţii normate (se poate
defini o normă) şi complete (orice şir Cauchy este convergent). Dacă semnalul
are energia finită, i.e., kuk2 < ∞, se poate defini un produs scalar. În acest
caz, vorbim de spaţii Hilbert.
23
24 Semnale şi sisteme. Îndrumar de laborator
Operaţii cu semnale
În continuare definim două operaţii importante: translaţia ı̂n timp şi convoluţia.
σ τ u (t) = u(t − τ ), t ∈ R
(2.1)
Prin analogie se poate defini operatorul de translaţie ı̂n timp pentru semnale
ı̂n timp discret:
Convoluţia
În teoria semnalelor şi a sistemelor convoluţiile joacă un rol important deoarece
definesc (ı̂n domeniul timp) o clasă importantă de sisteme liniare. Convoluţia
(produsul de convoluţie) stabileşte o relaţie ı̂ntre semnalul de intrare şi cel de
ieşire prin intermediul funcţiei pondere, care descrie sintetic sistemul dinamic
respectiv. Pentru semnale discrete definiţia convoluţiei este:
∞
X
(h ∗ u)[n] = h[n − k]u[k], n ∈ Z, (2.3)
k=−∞
Calculul convoluţiei ı̂n cazul continuu se poate efectua ı̂n două etape:
(i) Se aproximează integrala din (2.4) cu o integrală definită pe un interval
mărginit numit orizont de timp, care se alege cu atât mai mare cu cât se
doreşte o precizie mai bună. Se obţine formula de calcul:
Z M
(h ∗ u)(t) ≈ h(t − τ )u(τ ), t ∈ R. (2.6)
−M
Capitolul 2. Semnale 25
2M
` := |pk+1 − pk | = ; (k = −n : n − 1),
2n + 1
a.ı̂. p−n = −M, pn = M obţinându-se următoarea formulă de calcul,
similară celei de la calculul convoluţiei discrete (2.5):
n
X
(h ∗ u)(n) ≈ (h(t − pk )u(pk ) `, (2.7)
k=−n
2M
unde ` = 2n+1 este lungimea intervalului de eşantionare.
pentru semnale şi pentru sisteme LTI, anume scrierea semnalelor sub formă
de combinaţii liniare de exponenţiale complexe (semnale armonice). Repre-
zentările astfel rezultate sunt cunoscute sub numele de seria Fourier, respectiv
transformata Fourier cu timp continuu şi cu timp discret.
Ecuaţiile (2.9) şi (2.10) sunt cele mai ı̂ntâlnite forme ale reprezentării ı̂n serie
Fourier. Evident, este nevoie de o procedură de calcul al coeficienţilor ak . Se
poate arăta că formula de calcul al acestora este
Z Z
1 1 2π
ak = u(t)e−jkω0 t dt = u(t)e−jk T t dt. (2.11)
T T T T
Dacă ţinem cont de faptul că ũ(t) = u(t) pentru |t| < T /2 şi u(t) = 0 ı̂n afara
acestui interval, putem rescrie ecuaţiile precedente:
1 T /2 1 ∞
Z Z
−jkω0 t 1
ak = u(t)e dt = u(t)e−jkω0 t dt = U (jkω0 ).
T −T /2 T −∞ T
avem că ω0 → 0, iar partea dreaptă a relaţiei (2.12) devine o integrală. Mai
exact, fiecare termen al sumei din (2.12) este aria unui dreptunghi de ı̂nălţime
U (jkω0 )ejkω0 t şi lătime ω0 (t este considerat fix). Obţinem astfel ecuaţiile de
analiză şi de sinteză Fourier pentru semnalul neperiodic u(t)
Z ∞
1
u(t) = U (jω)ejωt dω (2.13)
2π −∞
Z ∞
U (jω) = u(t)e−jωt dt. (2.14)
−∞
Transformata Laplace
Un instrument extrem de util ı̂n studiul semnalelor şi sistemelor liniare ı̂l
constituie transformata Laplace. Această transformată integrală are multe
aplicaţii ı̂n fizică şi inginerie, având o serie de avantaje procedurale care de-
rivă din transferarea problemelor din domeniul calculului diferenţial ı̂n cel al
calculului algebric.
Fie f : R → R. Transformata Laplace unilaterală la dreapta a funcţiei f (t)
ı̂n punctul s = σ + jω este:
Z ∞
e−st f (t)dt.
F (s) = L+ f (t) =
0
Transformata Laplace este bine definită dacă integrala din membrul drept
este finită, i.e. f ∈ O, clasa funcţiilor original. De remarcat proprietatea de
convoluţie a transformatei Laplace:
L h∗u =L h L u .
a) h[n] = 1[n], n ∈ Z, u = h;
d) h(t) = rect(t), t ∈ R, u = h;
Rezolvare. Funcţiile cont conv şi discr conv calculează produsul de convoluţie
dintre u şi h, variabile simbolice. Codul aferent este dat ı̂n Anexă.
De asemenea, putem rezolva problema utilizând funcţia conv, deja imple-
mentată ı̂n Matlab, care calculează numeric produsul de convoluţie dintre doi
vectori. Cititorul interesat va implementa cele propuse.
Exerciţiul 2.2. Considerăm semnalul treaptă 1(t). Translataţi această funcţie
la stânga şi la dreapta.
b) dn (t) = n · trian(nt), t ∈ R;
t 2
c) dn (t) = n · bell(nt), t ∈ R, unde bell(t) := √1 e− 2 , t ∈ R, este clopotul lui
2π
Gauss.
Rezolvare. Vezi Exerciţiul 2.4 din Anexă. Verificaţi analitic calculul derivatelor
şi propuneţi o altă metodă de rezolvare.
Exerciţiul 2.5. Pentru orice funcţie regulată Φ(t) continuă ı̂n 0 avem relaţia:
Z +∞
Φ(0) = δ(t)Φ(t)dt. (2.15)
−∞
Rezolvare. După cum se poate vedea (figura 2.2) semnalul constă ı̂n trei
armonici de frecvenţe 2 Hz, 3 Hz şi 5 Hz, de amplitudini 7, 11 şi, respectiv,
13. Dacă luăm transformata Fourier a acestui semnal (figura 2.2), ar trebui să
aflăm ce ”cantitate” din fiecare frecvenţă compune semnalul. Codul este dat
ı̂n Anexă.
Capitolul 2. Semnale 31
Rezolvare: Coeficienţii seriei Fourier pentru acest semnal se pot găsi cu relaţia
(2.11):
2T1 sin(kω0 T1 ) sin(2kπ TT1 )
a0 = , ak = = .
T kπ kπ
În figura 2.4 observăm reprezentarea coeficienţilor Fourier ı̂n planul complex.
Prezentăm ı̂n continuare figurile pentru semnalul reconstruit din coeficienţi
Fourier.
Exerciţiul 2.9. Analiza şi sinteza semnalelor audio ı̂n Matlab. Sursele
sonore sunt medii elastice aduse ı̂n stare de oscilaţie. Un exemplu standard
este ecuaţia coardei vibrante cu condiţii de margine Dirichlet, analizată la
cursul de Matematică 3. De la aceste surse, vibraţiile se propagă prin mediul
elastic (uzual prin aer) până la receptor (urechea). Un microfon va ı̂nregistra
un semnal de forma:
∞
X
y(t) = pn cos [2πfn (t − φn )],
n=1
ı̂n care semnificaţia fizică a amplitudinilor pn este energia care este asociată
fiecărei frecvenţe. f1 se numeşte frecvenţă fundamentală, iar f2 , f3 , . . . ar-
monicile sale, cu fn = nf1 . Unghiul φn reprezintă defazajul. Spectrul de
putere este distribuţia energiei pentru fiecare armonică, ı̂n cazul nostru vecto-
rul p = [p1 , p2 , p3 , . . . ].
Observaţie. Un ton pur de forma x(t) = p1 cos(2πf1 t) sună metalic şi inex-
presiv. Dacă apar armonicile fn = nf1 , sunetul capătă expresivitate - aşa se
schimbă timbrul instrumental (vioară, flaut).
unde ff, f, mf, p au semnificaţia fortissimo, forte, mezzo forte, piano. Codul
Matlab este dat ı̂n Anexă.
sin(πn)
1) sinc[n] := πn , n ∈ Z;
Exerciţiul 2.11. Folosind aproximaţia din Exerciţiul 2.3, punctul c), verificaţi
numeric că: Z ∞
δ (k) (t)Φ(t)dt = (−1)k Φ(k) (0),
−∞
Puteţi folosi funcţiile Matlab trapz() sau quad() pentru calculul numeric al
integralei. O altă posibilă rezolvare este inspirată de Exerciţiul 2.5.
Exerciţiul 2.12. Folosind aproximaţia din Exerciţiul 2.3, punctul c), verificaţi
numeric că:
0 0
δ∗δ =δ ,
0 0 00
δ ∗δ =δ .
Exerciţiul 2.13. Reluaţi Exerciţiul 2.5 pentru diverse funcţii Φ(t) construite
de voi. Φ(t) trebuie să fie regulată, continuă ı̂n zero şi derivabilă ı̂n zero de
câte ori este necesar.
Exerciţiul 2.14. Funcţia Matlab fft (Fast Fourier Transform) este un in-
strument util şi eficient pentru calculul transformatei Fourier (TF). Apelul ti-
pic al funcţiei este fft(x,N), unde x este semnalul original, iar N este numărul
de puncte al transformatei - apelaţi help fft pentru detalii. Exerciţiul ı̂şi pro-
pune să arate efectul pe care ı̂l produce modificarea lui N , respectiv numărul
de repetiţii ale perioadei fundamentale din x asupra TF.
Fie semnalul x[n] = cos 2πn
10 , cu n ∈ 0, 29. Cerinţe:
a) Reprezentaţi grafic modulul TF pentru trei valori distincte ale lui N : 64,
128, 256.
Capitolul 2. Semnale 37
b) Ascultaţi semnalul x(t) pentru t ∈ [−1, 1] şi pentru t ∈ [0, 0.01]. Veţi
folosi funcţia Matlab sound(x,Fs). Ascultaţi de asemenea 5 ∗ x(t), x(t)/2.
Apelaţi sound(x,Fs/2) şi sound(x,2*Fs). Care sunt diferenţele? Argu-
mentaţi riguros.
c) Reprezentaţi grafic modulul TF cu plot şi semilogy (scală liniară şi scală
logaritmică). Ce observaţi? Justificaţi denumirea de zgomot alb.
culori = gray(256);
colormap(culori);
image(1:256);
38 Semnale şi sisteme. Îndrumar de laborator
20 20
40 40
60 60
80 80
100 100
120 120
140 140
160 160
180 180
200 200
20 40 60 80 100 120 140 160 180 200 20 40 60 80 100 120 140 160 180 200
Figura 2.7.
Exerciţiul 2.18. Matlab are câteva funcţii interesante pentru calculul simbo-
lic al transformatei Laplace: laplace, ilaplace. Pentru un rezultat ”lizibil”,
folosiţi funcţiile simplify şi pretty.
20 20
40 40
60 60
80 80
100 100
120 120
140 140
160 160
180 180
200 200
20 40 60 80 100 120 140 160 180 200 20 40 60 80 100 120 140 160 180 200
Figura 2.8.
10(s + 1)
b) Calculaţi TL inversă pentru F (s) = . Verificaţi rezultatul.
s(s2 + 4s + 5)
c) O altă funcţie utilă, care nu foloseşte ı̂nsă variabile simbolice, este residue.
Funcţia realizează descompunerea ı̂n fracţii simple. Reluaţi punctul b)
folosind funcţia residue.
41
42 Semnale şi sisteme. Îndrumar de laborator
Răspunsul la impuls
Tratăm cazul sistemelor discrete, pentru că este mai intuitiv. Astfel, fie y[n] =
(h ∗ u)[n] un sistem de convoluţie. Dacă u[k] = δ[k], vom avea:
+∞
X
y[n] = h[n − k]δ[k] = h[n].
k=−∞
Aşadar: Funcţia podere a unui sistem de convoluţie este răspunsul la
impuls al sistemului respectiv.
Z ∞
y(t) = H(jω)u(t), unde H(jω) := h(τ )e−jωτ dτ. (3.1)
−∞
Funcţia H(jω) = F h(t) (jω) se numeşte răspunsul ı̂n frecvenţă al sistemului
de convoluţie caracterizat prin funcţia pondere h. Mai mult, se observă că
răspunsul unui sistem de convoluţie la o intrare armonică este tot o armonică,
având aceeaşi frecvenţă ω, dar de amplitudine şi fază diferite. Rezultatul este
valabil şi pentru sistemele cu timp discret.
Funcţia de transfer
Să generalizăm rezultatul anterior ı̂n domeniul operaţional. Fie sistemul de
convoluţie y = h ∗ u. Atunci răspunsul sistemului la intrarea u(t) = est , cu
s ∈ C, este:
Z ∞
y(t) = h(τ )es(t−τ ) dτ = H(s)u(t).
−∞
Funcţia H(s) = L h(t) (s) este funcţia de transfer a sistemului de convoluţie.
Mai mult, dacă sistemul este cauzal, i.e., h(t) = 0, ∀t < 0, atunci:
Z ∞
h(τ )e−sτ dτ = L+ h (s)
H(s) =
0
3.2.2. Circuitul RC
Prezentăm ı̂n cele ce urmează un exemplu simplu de sistem liniar, invariant ı̂n
timp şi cauzal, circuitul RC. Acesta se asimilează cu un sistem dinamic a cărui
intrare (comandă) este tensiunea u(t) şi a cărui ieşire (mărime măsurată) y(t)
este tensiunea pe condensator.
unde
αy =|H(jω)|αu , respectiv
φy =φu + arg(H(jω)). (3.7)
44 Semnale şi sisteme. Îndrumar de laborator
Y (s) bm sm + · · · + b1 s + b0
H(s) := = . (3.9)
U (s) an sn + · · · + a1 s + a0
În concluzie, funcţia de transfer a unui sistem de convoluţie este o funcţie
raţională complexă, i.e., este un raport de două funcţii polinomiale, de
forma H(s) = B(s)
A(s) .
% ca obiect
s = tf(’s’);
H = (3*s^2-5*s+7)/(-s^3+2*s);
Capitolul 3. Sisteme 45
Putem desena extrem de simplu răspunsul ı̂n timp al unui sistem dat prin
H(s). Spre exemplu, răspunsul la impuls se determină apelând:
>> impulse(H);
a)
Σ1 : y[n] = u[−n], n ∈ Z, Σ2 : y(t) = u(t) cos(t + 1), t ∈ R.
Reprezentaţi grafic ieşirile celor două sisteme la intrările u1 (k) = e−k , u2 (k) =
2 sin(πt), unde k ∈ Z pentru Σ1 şi k ∈ R pentru Σ2 . Studiaţi cauzalitatea
sistemelor.
b)
Σ1 : y(t) = u(2t), t ∈ R, Σ2 : y[n] = nu[n], n ∈ Z.
Studiaţi dacă sistemele sunt invariante ı̂n timp.
c)
Σ1 : y(t) = t2 u(t), t ∈ R, Σ2 : y(t) = u2 (t), t ∈ R
Sunt sistemele liniare? Verificaţi ı̂n Matlab.
Rezolvare:
a) Codul Matlab este dat ı̂n Anexă. Figura 3.2 prezintă răspunsul lui Σ1 la
u1 (t) şi răspunsul lui Σ2 la u2 (t). Dacă n < 0, spre exemplu n = −3, atunci
y[−3] = u[3]. Sistemul Σ1 nu este cauzal, pentru că semnalul de ieşire depinde
de valori viitoare ale intrării. Acest lucru poate fi vizualizat direct din grafic,
vezi figura 3.1. Sistemul Σ2 este cauzal, pentru că ieşirea depinde doar de
valori actuale ale intrării. Astfel de sisteme se numesc sisteme fără memorie.
b) Se verifică uşor că sistemul Σ1 este invariant ı̂n timp. Să probăm acest
lucru folosind Matlab. Aşadar, pentru Σ1 , alegem ca intrare semnalul drept-
unghiular: (
1, −2 ≤ t ≤ 2
u1 (t) = .
0, ı̂n rest
Se observă din figura 3.2 că y2 (t) = y1 (t − 2), unde y2 (t) este răspunsul siste-
mului la u2 (t) = u1 (t − 2).
O metodă alternativă pentru a demonstra că un sistem este variant la de-
plasari temporale constă ı̂n căutarea unui contraexemplu, i.e., un semnal par-
ticular pentru care proprietatea de invarianţă ı̂n timp este violată. Aşadar,
pentru sistemul Σ2 , fie u1 [n] = δ[n], pentru care ieşirea este y1 [n] = nδ[n] = 0.
Dacă u2 [n] = u1 [n − N ] = δ[n − N ], unde N ∈ Z este fixat, atunci y2 [n] =
nδ[n − N ] = N δ[n − N ]. Aşadar, sistemul Σ2 nu este invariant ı̂n timp.
46 Semnale şi sisteme. Îndrumar de laborator
1.5
u1d[n]
0.5
0
−10 −8 −6 −4 −2 0 2 4 6 8 10
n
4
x 10
2.5
1.5
y1d[n]
0.5
0
−10 −8 −6 −4 −2 0 2 4 6 8 10
n
5
u2(t)
−5
−10
−10 −8 −6 −4 −2 0 2 4 6 8 10
t
10
5
y2(t)
−5
−10
−10 −8 −6 −4 −2 0 2 4 6 8 10
t
1.5
1
Intrarea u1(t)
0.5
−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
1.5
1
Iesirea y1(t)
0.5
−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
Timp
1.5
Intrarea u2(t)=u1(t−2)
0.5
−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
1.5
1
Iesirea y2(t)
0.5
−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
Timp
c) Sistemul Σ1 este liniar, dar sistemul Σ2 nu este liniar. Pentru a testa acest
aspect, alegem ca semnale de intrare:
t sin(πt)
u1 (t) = e− 10 sin(2π 5t), u2 (t) = sinc(t) := .
πt
Implementarea Matlab se găseşte ı̂n Anexă.
Exerciţiul 3.3. Să considerăm sistemul masă–resort cu amortizare, caracte-
rizat prin ecuaţia diferenţială de ordinul II:
unde y(t) este coordonata mobilului, iar F (t) este forţa exterioară. Consi-
derăm intrarea sistemului u(t) = F (t), iar ieşirea coordonata mobilului.
Rezolvare:
a) Ecuaţia diferenţială care caracterizează sistemul este liniară (apar doar
combinaţii liniare de variabile dependente) şi invariantă ı̂n timp: coeficienţii
m, b, k nu depind de timp. Aşadar, sistemul este liniar şi invariant ı̂n timp.
Mai mult, acesta este şi cauzal.
b) Împărţim ecuaţia (3.10) prin m şi obţinem:
b k 1
ÿ(t) + ẏ(t) + y(t) = u(t). (3.12)
m m m
Prin egalarea coeficienţilor cu (3.11), obţinem:
r
k b 1
ωn = , ζ= √ , K= .
m 2 km k
Capitolul 3. Sisteme 49
ωn2
c) H(s) = K · . Polinomul caracteristic este χ(s) = s2 +
s2 + 2ζωn s + ωn2
2ζωn s + ωn2 , iar rădăcinile lui sunt:
p p
p1 = −ζωn + ωn ζ 2 − 1, p2 = −ζωn − ωn ζ 2 − 1.
Sistemul este stabil ı̂n sens strict numai şi numai dacă Re{p1,2 } < 0
(demonstraţi acest fapt), ceea ce este echivalent cu ζ > 0.
d) Codul Matlab pentru ζ = 0.1 este dat ı̂n continuare. Daţi voi valorile
specificate pentru parametrul ζ.
wn = 1;
zeta = 0.1;
H = tf(wn^2,[1 2*zeta*wn wn^2]);
impulse(H);
Se obţine graficul din figura 3.3. Se observă că pentru ζ > 1, răspunsul
sistemului la impuls este aperiodic. În plus, rădăcinile lui χ(s) sunt re-
ale. Pentru ζ = 1, răspunsul la impuls este aperiodic critic, iar χ(s) are
o rădăcină reală dublă. Dacă 0 < ζ < 1, răspunsul sistemului este o
oscilaţie amortizată.
p Rădăcinile lui χ(s) sunt complex conjugate, p1 =
−ζωn + jωn 1 − ζ , p2 = p∗1 . Când ζ = 0, amortizarea este 0, iar sistemul
2
oscilează liber. Care este legătura dintre rădăcinile lui χ(s) şi răspunsul la
impuls al sistemului?
Impulse Response
0.8
0.6
0.4
Amplitude
0.2
−0.2
−0.4
−0.6
−0.8
0 10 20 30 40 50 60
Time (seconds)
Rezolvare:
q
k
a) ωn = m = 2 rad/s.
m = 1; k = 4; b = 0.5;
H = tf(1,[m b k]);
t = 0:0.01:30; w0 = 1;
u = sin(w0*t);
figure; lsim(H,u,t); grid
Obţinem figura 3.4. Observăm că semnalul de ieşire are aceeaşi pulsaţie ca
semnalul de intrare, i.e., ωy = ω0 = 1 rad/s. În plus, de pe grafic avem că
Ay (ω0 ) ≈ 0.329. Defazajul nu se poate citi clar de pe grafic, ı̂nsă se vede
că ∆φ ≈ 0.
c)
1 1
H(jω) = = .
−mω 2 + jbω + k 2
−ω + jω/2 + 4
Capitolul 3. Sisteme 51
0.8
0.6
0.4
0.2
Amplitude
−0.2
−0.4
−0.6
−0.8
−1
0 5 10 15 20 25 30
Time (seconds)
2
Când ω = ω0 = 1, H(jω0 ) = . Aşadar,
6+j
2
|H(jω0 )| = √ = 0.3288,
37
π
arg H(jω0 ) = − arctan(1/6) = − + arctan(6) = −0.165 rad.
2
Se observă că Ay = |H(jω0 )|, ∆φ = arg H(jω0 ). Am verificat astfel cele
afirmate ı̂n breviarul teoretic, S3.2.2.
0.05
−0.05
0 5 10 15
t
0.15
y(t) prin lsim
0.1
0.05
−0.05
0 5 10 15
t
5382/(160925 exp(t)) −...+ sin(32 t)/2050
0.06
y(t) prin dsolve
0.04
0.02
0
−0.02
0 5 10 15
t
Codul Matlab este dat ı̂n Anexă. Rezultatul este prezentat ı̂n figura 3.5. Se
observă că cele trei semnale sunt identice. Câteva observaţii: apelul
>> y3 = dsolve(’Dy+y=cos(2*t)*sin(30*t)’,’y(0)=0’);
returnează o variabilă simbolică, care se poate reprezenta grafic folosind rutina
ezplot. Pentru scalarea corespunzătoare a convoluţiei se apelează
>> y1=conv(h,t)/Fs;
i.e., se imparte rezultatul prin Fs , frecvenţa de eşantionare a semnalelor con-
tinue. Am ales aici Fs = 1000 Hz.
dy 1 dh i
v(t) + v(t)y(t) = v(t)y(t) .
dt RC dt
Exerciţiul 3.7. Considerăm circuitul RL paralel din figura 3.6 ı̂n care sursa
de curent produce intrarea x(t), iar ieşirea y(t) este curentul prin bobină.
❡ ✲
L R ❡
vi ❄ vo
❄ C ❄
❡ ❡
b) Studiem răspunsul liber y` (t), i.e., u(t) = 0, ∀t. Fie y(0) = a şi ẏ(0) =
b, unde a, b ∈ {−3, −1, 0, 1, 2}. Găsiţi răspunsul liber al circuitului RLC
pentru diverse combinaţii ale condiţiilor iniţiale. Se va folosi rutina dsolve.
e) Reprezentaţi grafic răspunsul total y(t) = y` (t) + yf (t), pentru u(t) = 1(t)
şi y(0) = 2, ẏ(0) = −3.
Observaţie. Ca alternativă, putem determina y(t) apelând:
>> lsim(ss(H),u,t,[-3 2]);
Verificaţi acest lucru. Apelaţi de asemenea help ss.
Capitolul 3. Sisteme 55
b) Sistemul dat are o intrare F (s) şi două ieşiri, X1 (s) şi X2 (s). Scrieţi cele
două ecuaţii de la punctul anterior sub forma:
X1 (s) 1
A(s) · = F (s),
X2 (s) 0
c) Precum este evident, funcţia de transfer pentru sistemul dat este o matrice
de 2 × 1:
X1 (s) H1 (s)
Y (s) = = H(s)F (s), H(s) = ,
X2 (s) H2 (s)
56 Semnale şi sisteme. Îndrumar de laborator
b) Reprezentaţi polii şi zerourile sistemului ı̂n planul complex. Puteţi folosi
funcţia Matlab pzmap(H). Este acesta stabil?
c) Reprezentaţi grafic răspunsul la impuls, respectiv la treaptă unitară. Calculaţi
şi reprezenaţi grafic h(t) = L−1 {H(s)}.
d) Fie w = logspace(-2, 2, 100). Reprezentaţi grafic ı̂n Matlab f (ω) =
|H(jω)|. Indicaţie. Veţi folosi funcţia abs(H), unde H este un vector de
numere complexe. Pentru reprezentarea grafică, apelaţi semilogx(w,H).
Capitolul 3. Sisteme 57
bm sm + bm−1 sm−1 · · · b1 s + b0
H(s) = , (4.2)
an sn + an−1 sn−1 · · · a1 s + a0
unde bi , aj ∈ R, i = 0 : m, j = 0 : n, m ≤ n;
unde k ∈ R, zi ∈ C, pj ∈ C, i = 1 : m, j = 1 : n;
b) cu coeficienţi reali:
Qm 1 Qm2 2
i=1 (s − zi ) (s + 2ζzi ωzi + ωz2i )
H(s) = k Qn1 Qi=1
n2 2 2
, (4.4)
j=1 (s − pj ) i=1 (s + 2ζpi ωpi + ωpi )
59
60 Semnale şi sisteme. Îndrumar de laborator
H=tf(num,den),
unde num şi den sunt vectori ce conţin coeficienţii numărătorului, respectiv
ai numitorului funcţiei de transfer, aceştia fiind aşezaţi ı̂n ordinea des-
crescătoare a puterilor coeficienţilor polinomiali;
H=zpk(z,p,k),
În ambele situaţii variabila H este un obiect de tip sistem. Se pot realiza
conversii ı̂ntre cele două moduri de reprezentare ale unui sistem cu ajutorul
funcţiilor Matlab tf2zp şi zp2tf, cu sintaxa:
[z,p,k]=tf2zp(num,den);
[num,den]=zp2tf(z,p,k).
K
1) Element de ordinul I: H(s) = 1+T s ; K, T > 0;
2
ωn
2) Element de ordinul II: H(s) = 2,
s2 +2ζωn s+ωn
ωn > 0, 0 ≤ ζ ≤ 1;
În continuare vom pune ı̂n evidenţă unele particularităţi ale răspunsului
sistemelor liniare la anumite semnale de tip persistent. Dacă sistemul este
(extern) strict stabil, adică polii raţionalei P[H(s)] ⊂ C− , atunci ı̂n cazul
intrărilor polinomiale sau al celor armonice, răspunsul forţat al sistemului se
desface ı̂n două componente: una permanentă (caracter persistent, de acelaşi
tip cu intrarea) şi cealaltă tranzitorie (care marchează trecerea de la un regim
permanent la altul):
y(t) = yp (t) + yt (t). (4.7)
Răspunsul la impuls
Fie sistemul descris de funcţia de transfer:
1
H(s) = . (4.9)
s+σ
Aplicând transformata Laplace inversă rezultă următoarea expresie pentru
funcţia pondere h(t) a sistemului :
h(t)
K
Avem ı̂n mod trivial că h(0) = T. Dreapta de interes trece prin h(0) şi are
panta h0 (0). Aşadar:
K K
x(t) = h0 (0) · t + h(0) = − 2
t+ .
T T
Când x(t) = 0, t = T . Astfel, afirmaţia a fost verificată.
Rezolvare: Codul Matlab este prezentat ı̂n Anexă. Cu cât T este mai mic, cu
atât sistemul răspunde mai rapid la treaptă.
Exerciţiul 4.7. Din răspunsul la treaptă al unui sistem de ordinul I determinaţi
coeficienţii T şi K.
Rezolvare: Rulaţi codul dat ı̂n Anexă. Cunoscând răspunsul la treaptă unitară
al unui sistem de ordinul I se pot obţine coeficienţii K şi T conform figurii 4.2.
Din relaţia (4.11), avem că y(∞) = K (asimptotic). Dreapta de interes are
ecuaţia:
K
x(t) = y 0 (0) · t = t.
T
Când x(t) = K, t = T .
Răspunsul la rampă
Pentru un sistem de ordinul I ı̂n forma generală, răspunsul la treaptă este:
−1 K
− Tt
y(t) = L = K t − T + T e , t ≥ 0. (4.12)
s2 (1 + T s)
Cum H(0) = K şi H 0 (0) = −KT se constată direct că yp (t) = H(0)t+H 0 (0) =
t
K(t − T ) este componenta permanentă, iar yt (t) = KT e− T este componenta
tranzitorie.
Capitolul 4. Răspunsul dinamic 65
Exerciţiul 4.8. Trasaţi un răspuns la rampă ı̂n cazul stabil, punând ı̂n
evidenţă răspunsul permanent şi tranzitoriu, respectiv valorile lui K şi T de
pe grafic.
Răspunsul la impuls
Aplicând transformata Laplace inversă se obţine următoarea funcţie pondere:
−1 1 1 − T1 t − 1 t
L {H(s)} = h(t) = K − e 1 − e T2 , t ≥ 0. (4.16)
T1 T2
Capitolul 4. Răspunsul dinamic 67
Rezolvare: Dacă sistemul este stabil (polii sunt negativi) funcţia pondere des-
creşte cu atât mai repede cu cât polii sunt plasaţi mai la stânga. Dacă sistemul
este instabil (polii sunt pozitivi) funcţia pondere creşte exponenţial la infinit.
Codul Matlab este dat ı̂n Anexă.
Exerciţiul 4.12. Se iau doi poli stabili a.i. T2 = 10T1 şi se trasează răspunsurile
(pe acelaşi grafic) datorate lui T1 , lui T2 şi ambilor poli, observându-se influenţa
fiecăruia ı̂n parte. Se studiază răspunsurile la impuls şi la treaptă.
68 Semnale şi sisteme. Îndrumar de laborator
Rezolvare: Din răspunsul ı̂n timp al acestor sisteme se observă că polul − αT1 1
este pol dominant, adică răspunsul sistemului este puternic influenţat de prezen-
ţa acestui pol. De asemenea, se poate observa că − αT1 1 este un pol lent şi − T11
este un pol rapid (acesta are un răspuns mult mai rapid). În practică, pentru
un α suficient de mare, prezenţa acestui pol se poate neglija.
σd := ζωnp,
ωn2 ωn2 ω := ωn 1 − ζ 2 ,
H(s) = 2 = , d
s + 2ζωn s + ωn2 (s + ζωn ) + (ωn 1 − ζ ) sin θ ζ,
p
2 2 2 :=
p1,2 := −σd ± jωd ,
unde:
ωn = pulsaţie naturală;
ζ = coeficient de amortizare;
ωd = pulsaţie amortizată.
cu 0 ≤ ζ ≤ 1, ωn > 0. Polii acestui sistem sunt:
p
p1,2 = −ζωn ± jωn 1 − ζ 2 = −σd ± jωd .
ωn e−ζωn t
h(t) = L−1 {H(s)}(t) = p sin (ωd t) 1(t). (4.18)
1 − ζ2
Capitolul 4. Răspunsul dinamic 69
Observaţii.
1. Dacă ζ = 0 rezultă θ = 0 şi ωd = ωn . În acest caz avem un răspuns oscilant
de amplitudine constantă. Dacă ζ < 1 apare un răspuns amortizat, iar dacă
ζ = 1 un răspuns aperiodic.
2. Deoarece θ = arcsin ζ, este sugestivă vizualizarea polilor complex-conjugaţi
ı̂n plan pentru diverse valori ale lui ζ, vezi figura 4.6.
Rezolvare. Codul Matlab este prezentat ı̂n Anexă. Se remarcă faptul că
răspunsul elementului de ordinul II cu ζ = 0, deci pur oscilant, pentru o
intrare armonică de tipul cos ωn t, de pulsaţie naturală identică cu cea a ele-
mentului, are punctele de extrem situate pe conul din figura 4.7. Propunem
cititorului interesat analiza cazului ζ = 1.
Exerciţiul 4.14. Să se traseze pe acelaşi grafic răspunsul la intrare treaptă
2
ωn
unitară al unui sistem de ordinul II de forma H(s) = s2 +2ζω 2 pentru
n s+ωn
ζ = 0.5, ωn = 1 şi curba pe care se găsesc punctele de extrem.
70 Semnale şi sisteme. Îndrumar de laborator
1) Tc , Tc1 : timpi de creştere (timpul ı̂n care ieşirea ajunge prima dată la 100%,
respectiv ajunge de la 10% la 90% din valoarea finală).
Formulele acestea sunt valabile exclusiv pentru sistemele de ordinul II. Cu toate
acestea, ele se folosesc de multe ori ı̂n practică pentru o evaluare aproximativă
a oricărui sistem.
Capitolul 4. Răspunsul dinamic 71
− √ πζ ymax − yst
σ=e 1−ζ 2 , 0 ≤ ζ < 1, uzual σ[%] = · 100, (4.22)
yst
4.6 4
Tt = , δ = 1%, Tt = , δ = 2%. (4.23)
ζωn ζωn
Răspunsul unui sistem de urmărire la o intrare treaptă trebuie să satisfacă
simultan cerinţele:
(ii) să urmărească cât mai fidel semnalul treaptă (σ mic şi Tt mic).
Aceste cerinţe sunt ı̂nsă contradictorii, aşa cum ilustrează exerciţiile următoare.
72 Semnale şi sisteme. Îndrumar de laborator
Rezolvare. Codul este dat ı̂n Anexă. Zona de stabilitate este reprezentată ı̂n
figura 4.9.
Observaţie. Matlab oferă informaţii despre timpul tranzitoriu, timpul de
creştere, eroarea staţionară şi valoarea de vârf. Trebuie doar să apăsaţi pe bu-
tonul din dreapta al mouse-ului ı̂n figura care reprezintă răspunsul la treaptă
dorit şi să selectaţi ”Characteristics” şi apoi ”Peak Response”, ”Settling Time”,
”Rise Time”, ”Steady State”.
50
Exerciţiul 4.19. Se dă sistemul cu funcţia de transfer G(s) = s(s+5) conectat
ı̂n buclă ı̂nchisă negativă. Determinaţi grafic σ, Tv , Tc , Tt .
Indicaţie:
H=tf([50],[1 5 0]);
step(feedback(H,1))
Exerciţiul 4.20. Se dă schema din figura 4.10. Aproximaţi sistemul Hyr (s) cu
un sistem de ordinul II, estimaţi valorile Tt , Tv , σ şi comparaţi cu cele obţinute
din graficul răspunsului la treaptă al sistemului original. Explicaţi diferenţele.
Comparaţi grafic răspunsurile pentru sistemul original şi cel aproximat.
Capitolul 4. Răspunsul dinamic 73
Figura 4.10.
74 Semnale şi sisteme. Îndrumar de laborator
(i) când α > 0 (zerou stabil), suprareglajul creşte semnificativ dacă α '
1 ÷ 4. Dacă α 1, suprareglajul rămâne aproape neschimbat. Timpul
tranzitoriu nu este influenţat semnificativ de zeroul suplimentar;
(ii) când α < 0 (zerou instabil), suprareglajul scade semnificativ dacă |α| '
1 ÷ 4. În acest caz observăm că:
dy ωn
(0) = < 0, (4.29)
dt ζα
adică panta graficului este negativă şi astfel răspunsul ı̂n timp va scădea
ı̂ntr-o primă fază şi apoi va creşte (figura 4.11).
Se observă că ı̂n acest caz răspunsul la treaptă al sistemului taie axa abs-
ciselor de atâtea ori câte zerouri instabile are sistemul considerat, iar punctul
de plecare este:
y(0) = lim sY (s) = H(∞). (4.30)
s→∞
Capitolul 4. Răspunsul dinamic 75
ωn2
H(s) = s . (4.31)
(s2 + 2ζωn s + ωn2 )(1 + ζωn α )
1
c) H3 (s) = ;
s2 + 4s + 5
1
d) H4 (s) = ;
s(s2 − 1)
1
e) H5 (s) = .
s2 + 2s + 2
Exerciţiul 4.24. Considerăm sistemul descris de ecuaţia diferenţială:
a) Fie u(t) = 1(t), y(0) = −1, ẏ(0) = −2. Calculaţi Y (s). Reprezentaţi grafic
răspunsul sistemului y(t) = L−1 {Y (s)}. Determinaţi de asemenea compo-
nenta forţată şi componenta liberă pentru soluţia obţinută. Indicaţie. Dacă
Y (s) este o raţională proprie oarecare, y(t) se poate reprezenta grafic cu
instrucţiunea impulse(Y).
b) Calculaţi H(s), ı̂n condiţii iniţiale nule. Reprezentaţi ı̂n planul complex po-
lii şi zerourile sistemului. Este acesta stabil? Reprezentaţi grafic răspunsul
forţat al sistemului la intrările u1 (t) = 1(t), u2 (t) = t 1(t), şi respectiv
u3 (t) = cos 3t 1(t).
c) Care este regimul staţionar (permanent) pentru u(t) = 1(t)? Dar regimul
tranzitoriu? Folosiţi pentru verificare teorema valorii finale.
Exerciţiul 4.25. Fie u(t) un semnal dreptunghiular periodic (figura 4.12).
0.5
u(t)
−0.5
−1
−1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Timp (s)
Exerciţiul 4.26. Ecuaţia mişcării ı̂n plan vertical a unei antene de satelit
este
J θ̈(t) + bθ̇(t) = M (t),
unde θ(t) este unghiul de ı̂nălţare a antenei, J = 6 · 105 kgm2 este momentul
de inerţie al acesteia, b = 2 · 104 N·m·s coeficientul de frecare, iar M (t) este
cuplul motor. Se doreşte aducerea antenei intr-o poziţie unghiulară specificată
θref utilizând o schemă de reglare ı̂n reacţie inversă cu un compensator de tip
proporţional K (vezi figura 4.14), astfel ı̂ncât suprareglajul să nu depăşească
10%, iar timpul de creştere să nu fie mai mare de 80 s. Fie u ≡ M (comanda),
y ≡ θ (ieşirea), r ≡ θref (referinţa).
1.5
0.5
Amplitude
−0.5
−1
−1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)
1.5
0.5
Amplitude
−0.5
−1
−1.5
−2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)
Figura 4.13.: Răspunsul circuitului RC (sus) şi răspunsul circuitului RLC (jos)
la semnalul dreptunghiular periodic din figura 4.12
1
Im(s)
−1
−2
−3
−4
−5 −4 −3 −2 −1 0 1 2 3 4 5
Re(s)
−ωn2 p
unde A = , B=p .
ωn2 − 2ζωn p + p2 (ωn − 2ζωn p + p2 )(1 − ζ 2 )
2
b) Care termen domină ı̂n expresia lui y(t) când p devine mare?
d) Fie ωn = 1 şi ζ = 0.7. Reprezentaţi grafic ı̂n Matlab y(t) pentru diferite
valori ale lui p (de la valori foarte mici la valori foarte mari). În ce punct
efectul polului suplimentar asupra răspunsului la treaptă devine neglijabil?
5. Diagramele Bode
5.1. Scopul laboratorului
Scopul laboratorului constă ı̂n studierea răspunsului ı̂n frecvenţă al unui sis-
tem. În particular, pentru clasa de sisteme studiate (liniare, invariante ı̂n timp
şi având funcţia de transfer proprie), răspunsul la un semnal de intrare sinu-
soidal este tot un semnal sinusoidal de aceeaşi frecvenţă cu cea a semnalului
de intrare. În schimb, amplitudinea şi faza semnalului de ieşire diferă de cele
ale semnalului de intrare.
Mai precis, vom examina funcţia de transfer H(s), pentru s = jω şi vom
dezvolta câteva metode specifice de reprezentare a lui H(jω), cu ω ∈ (−∞, ∞).
Vom studia ı̂n acest capitol caracteristicele amplitudine–frecvenţă, respectiv
fază–frecvenţă, cunoscute ca diagramele (caracteristicile) Bode, ı̂n onoarea
lui Bode care le-a folosit prima dată la studiul amplificării operaţionale. În
plus, vom implementa diverse tipuri de filtre, prezentate pe larg ı̂n secţiunea
Exerciţii rezolvate.
83
84 Semnale şi sisteme. Îndrumar de laborator
[y]dB
decadã
0 10
1 2
10
logx
Bode Diagram
60
50 q=−2
q=−1
40
Magnitude (dB)
30
[K]dB
20
10
0
q=1
−10 q=2
−20
180
90
Phase (deg)
−90
−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
K
Elementul de ordin I. H(s) = , T ∈ R, K > 0 ⇒ [H(ω)]dB =
Ts + 1
[K]dB − 20 log (1 + ω 2 T 2 ). Cum T ∈ R, se foloseşte |ωT | = ω|T | ⇒ ωT = |T1 | ,
frecvenţa de tăiere. Dacă T > 0, atunci sistemul este stabil. Dacă T < 0,
atunci sistemul este instabil.
AF: Cele trei benzi vor fi:
joasă frecvenţă (j.f.): [K]dB ;
medie frecvenţă (m.f.): −3 dB (abatere, ajută la caracteristica reală);
ı̂naltă frecvenţă (ı̂.f.): dreaptă cu panta de −20 dB/dec.
FF: φ(ω) = − arctan(ωT ). Observăm că dacă T < 0, atunci se modifică doar
faza, vezi figura 5.3.
86 Semnale şi sisteme. Îndrumar de laborator
Bode Diagram
20
15 T>0
10
Magnitude (dB)
−5
−10
−15
−20
0
Phase (deg)
−45
−90
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
20
15 T<0
10
Magnitude (dB)
−5
−10
−15
−20
90
Phase (deg)
45
0
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
150
zeta = 0
100
Magnitude (dB)
50
zeta = 1
−50
−100
0
−90
Phase (deg)
−180
−270
−360
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
ωn2
Elementul de ordin II. H(s) = , ωn > 0, 0 < ζ < 1.
s2 + 2ζωn s + ωn2
ω
Notând x = ωn obţinem:
1
H(ω) ← H(x) = p .
(1 − x )2 + 4ζ 2 x2
2
Observaţii.
1) Ambele caracteristici depind de ζ. Dacă ζ > 1, atunci elementul de ordin
II are 2 poli reali, deci practic elementul de ordin II devine o ı̂nseriere a 2
elemente de ordinul I. Reamintim că ζ = 0 reprezintă regimul de rezonanţă,
ζ = 1 este regimul aperiodic critic, iar ζ > 1 reprezintă regimul supracritic.
2) Caracteristicile elementelor inverse, i.e., Hinv (s) · H(s) = 1, sunt simetri-
cele celor de mai sus faţă de abscisă.
88 Semnale şi sisteme. Îndrumar de laborator
5.2.2. Filtrare
În multe aplicaţii ne interesează să schimbăm amplitudinile relative ale compo-
nentelor frecvenţiale dintr-un semnal sau chiar să eliminăm unele componente
frecvenţiale cu totul. Acest procedeu se numeşte filtrare. Sistemele liniare şi
invariante ı̂n timp (LTI) care pot schimba forma spectrului unui semnal se
numesc filtre de formare. Sistemele LTI care lasa să treacă anumite frecvenţe
esenţial nemodificate şi atenuează (sau chiar elimină) alte frecvenţe se numesc
filtre selective de frecvenţă.
Astfel, fie un sistem de convoluţie y(t) = (h ∗ u)(t). Conform proprietăţii de
convoluţie a transformatei Fourier (TF):
unde Y (jω) este TF a ieşirii y(t), U (jω) este TF a intrării u(t), iar H(jω)
este răspunsul ı̂n frecvenţă al sistemului, definit ı̂n (3.1). Aşadar, ecuaţia (5.1)
descrie un filtru de frecvenţă.
1 1 1
K = ; T1 = 10; T2 = 2; T3 = √ , iar ζ = √ ≈ 0.7.
8 2 2 2
1
√
Aşadar, frecvenţele de tăiere sunt ωT1 = 10 < ωT2 = 21 < ωT3 = 2 2.
Bode Diagram
100
50
Magnitude (dB)
0
−18
−50
−100
[K]
dB
−150
−90
−135
Phase (deg)
−180
−225
−270
−3 −2 −1 0 1 2
10 10 10 10 10 10
Frequency (rad/sec)
Rezultatele sunt prezentate ı̂n figura 5.5. Exerciţiile următoare nu vor mai
conţine explicaţii analitice extinse, ci doar observaţii practice din analiza gra-
ficelor, deoarece ele reprezintă din punct de vedere al rezolvării doar aplicarea
directă a procedurii.
10 1+s2
Exerciţiul 5.2. H(s) = s (0,1s+1)(0,05s+1) .
Rezultatul este prezentat ı̂n figura 5.7, iar codul Matlab ı̂n Anexă.
90 Semnale şi sisteme. Îndrumar de laborator
Bode Diagram
50
0
Magnitude (dB)
−50
rezonanta
−100
−150
450
405
Phase (deg)
360
315
270
225
−1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
0
−1
−2
Magnitude (dB)
−3
−4
−5
−6
−7
−8
0
−5
Phase (deg)
−10
−15
−20
−2 −1 0 1
10 10 10 10
Frequency (rad/sec)
1 1
Cazul 2. α > β ⇒ ω1 = α < ω2 = β. Graficele sunt simetricele celor de
mai sus faţă de abscisă. În plus supω |G(jω)| = αβ . Verficaţi analitic corecti-
tudinea afirmaţiei anterioare. Indicaţie: Maximul se găseşte pe caracteristica
asimptotică. De ce?
s−a
Exerciţiul 5.4. H(s) = , a ∈ R+ .
s+a
Rezolvare. Este cazul filtrului de tip trece-tot care are modulul 1 pe ı̂ntreg
spectrul pozitiv de frecvenţe.
AF: 0 dB pe ω ∈ [0, ∞).
FF: φ(ω) = arctan ω2aω
2 −a2 (asemănătoare cu element de ordin I, doar că se
schimbă punctul de inflexiune şi capetele ı̂ntre care evoluează, φ(0+ ) =
π
2 , iar φ(∞) = 0).
Matlab:
num = [-100 0];
den = [1 12 21 10];
H = tf(num,den);
bode(H)
Exerciţiul 5.6. Reprezentaţi diagramele Bode pentru sistemul:
s2 + s + 25
H(s) = 4 .
s3 + 100s2
Matlab:
num = [4 4 100];
den = [1 100 0 0];
H = tf(num,den);
bode(H)
92 Semnale şi sisteme. Îndrumar de laborator
Rezolvare.
K π
H(ω) = , iar φ(ω) = −ωτ − .
ω 2
Se observă că faza este liniară. În general, un sistem cu timp mort are
funcţia de transfer H(s) = H̃(s)e−τ s , unde H̃(s) este o funcţie de transfer
raţională (strict) proprie. Rezultă că |H(jω)| = |H̃(jω)|, aşadar modulul nu
este influenţat de timpul mort. În schimb faza este φ(ω) = arg(H̃(jω)) − ωτ ,
afectată semnificativ la frecvenţe mari (φ(∞) = −∞). Propunem cititorului
trasarea diagramelor Bode pentru K = 2, τ = 1.
Exerciţiul 5.8. Reprezentaţi diagramele Bode parametrizate atât ı̂n funcţie
de ω cât şi de ζ pentru un element de ordinul 2: H(ω) = H(ω, ζ), φ(ω) =
φ(ω, ζ), ζ ∈ R.
a) Folosind relaţia lui Euler2 , scrieţi semnalul x(t) ca o sumă de funcţii cosinus.
Reprezentaţi grafic semnalul.
c) Arataţi că:
+3
X
y(t) = ak H(jk2π)ejk2πt .
k=−3
Rezolvare.
2.5
2
x(t)
1.5
0.5
−0.5
−3 −2 −1 0 1 2 3
Timp
Raspunsul in frecventa
0
−5
−10
−15
Modulul H(ω) (dB)
−20
−25
−30
−35
−40
−2 −1 0 1 2
10 10 10 10 10
Pulsatia ω (rad/s)
Din relaţia lui Euler, rezultă usor că 2 cos(ωt) = ejωt + e−jωt . Relaţia de
mai sus devine:
1 2
x(t) = 1 + cos 2πt + cos 4πt + cos 6πt.
2 3
În figura 5.8 avem reprezentarea grafică a semnalului x(t). Se foloseşte
codul prezentat ı̂n Anexă.
b) ∞
Z ∞
−τ −jωτ 1 −(1+jω)τ
1
H(jω) = e e dτ = − e = .
0 1 + jω
0 1 + jω
1 1
H(ω) := |H(jω)| = =√ .
|1 + jω| 1 + ω2
În figura 5.9 avem reprezentarea grafică a funcţiei H(ω). Codul Matlab se
găseşte ı̂n Anexă.
P+3 jk2πt .
c) Plecăm de la observaţia că x(t) = k=−3 xk (t), unde xk (t) = ak e
Dacă determinăm răspunsul sistemului la intrarea xk (t), atunci răspunsul
P+3
y(t) la semnalul x(t) se obţine prin superpoziţie, i.e., y(t) = k=−3 yk (t).
Vom avea succesiv:
Z ∞ Z ∞
yk (t) = h(τ )xk (t − τ )dτ = h(τ )ak ejk2π(t−τ ) dτ
0 0
Z ∞
= ak ejk2πt h(τ )e−jk2πτ dτ
0
+3
X
jk2πt
yk (t) = ak H(jk2π)e ⇒ y(t) = ak H(jk2π)ejk2πt , q.e.d.
k=−3
1 1 1 1 1 1
b−1 = 4 1−j2π b−2 = 2 1−j4π b−3 = 3 1−j6π
Sistemul LTI astfel obţinut este un filtru de tip TJ. Reprezentaţi grafic
modulul numărului complex H(ω) := |H(jω)| şi fază φ(ω) := arg[H(jω)],
pentru RC ∈ {1, 2, . . . , 7} s. Justificaţi denumirea de FTJ.
dz(t) du(t)
RC + z(t) = RC . (5.2)
dt dt
d) Fie R · C = 0.1 s şi fie semnalul de stimul u(t) = 1(t) + e(t), unde e(t) este
un zgomot alb de medie nulă şi varianţă 0.1. Reprezentaţi grafic răspunsul
sistemului H(s).
Rezolvare.
a) Se obţine:
1
H(ω) = p .
1 + ω 2 · (RC)2
Faza se calculeaza cu relaţia:
Im H(jω)
φ(ω) = arctg = arctg(−ωRC).
Re H(jω)
Graficul pentru diverse valori ale parametrului RC este dat ı̂n figura 5.10. În
Matlab, am determinat modulul şi faza folosind relaţiile obţinute. Rutina se
găseşte ı̂n Anexă.
96 Semnale şi sisteme. Îndrumar de laborator
−10
−10
−20
−20 −30
Modulul H(ω) (dB)
−40 −60
−70
−50
−80
−60 −90
−2 0 2 −2 0 2
10 10 10 10 10 10
Pulsatia ω (rad/s) Pulsatia ω (rad/s)
ωRC 1
G(ω) = p , φ(ω) = arctg .
1 + (ωRC) 2 ωRC
Graficele sunt date ı̂n figura 5.11, iar codul Matlab aferent ı̂n Anexă.
Observaţie. Se poate observa din figură că sistemul atenuează frecvenţele
ı̂nalte şi permite trecerea frecvenţelor ı̂nalte, adică |ω| >> 1/RC. Prin ur-
mare, sistemul este un FTS neideal.
Capitolul 5. Diagramele Bode 97
0
Modulul H(ω) (dB)
−10
−20
−30
−40
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10
80
Faza φ(ω) (grade)
60
40
20
0
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10
Pulsatia ω (rad/s)
1
c) Pentru R · C = 0.1 s, avem frecvenţa de tăiere ω0 = RC = 10 rad/s. Alegem
pentru simulare semnalele de stimul
Se observă că u1 (t) este compus din armonice cu frecvenţe mai mici decât
ω0 . Prin urmare, acest semnal ”va trece” neamortizat prin sistemul H(s).
Semnalul u2 (t) este compus din armonice cu frecvenţe mai mari decât ω0 .
Vom avea la ieşire o armonică amortizată.
Considerăm acum sistemul G(s), care se comportă ca un filtru trece-sus,
i.e., semnalele armonice de frecvenţe ı̂nalte trec. Reluând raţionamentul an-
terior, u1 (t) este amortizat, iar u2 (t) trece. Propunem ca exerciţiu cititorului
verificarea afirmaţiilor cu Matlab. Se va folosi spre exemplu instrucţiunea
lsim(H,u1,t);.
d) Codul Matlab este dat ı̂n Anexă. Se obţine figura 5.12. Se observă că
efectul perturbator al zgomotului alb este ı̂nlăturat prin filtrare.
Acest procedeu este folosit pe scară largă ı̂n practica inginerească atunci
când un semnal de interes (spre exemplu, informaţia de la un senzor) este
perturbat.
1.2
0.8
Amplitude
0.6
0.4
0.2
−0.2
−1 0 1 2 3 4 5 6 7 8 9 10
Time (seconds)
jωT0 − 1
H(jω) = ,
jωT0 + 1
Rezolvare.
a) Funcţia pondere se calculează pornind de la definiţie:
Capitolul 5. Diagramele Bode 99
Z ωc Z ωc
1 1
h(t) = H(jω)ejωt dω = ejωt dω
2π −ωc 2π −ωc
1
ejωc t − e−jωc t
=
2πjt
sin(ωc t)
= .
πt
Graficele funcţiilor H(ω) şi h(t) pentru ωc = 2rad/s sunt date ı̂n figura 5.13.
Codul Matlab aferent este ı̂n Anexă.
Raspunsul in frecventa
2
1.5
1
H(ω)
0.5
−0.5
−1
−5 −4 −3 −2 −1 0 1 2 3 4 5
ω (rad/s)
0.6
0.4
h(t)
0.2
−0.2
−15 −10 −5 0 5 10 15
Timp (s)
Observaţie. De notat că h(t) 6= 0, pentru t < 0. În consecinţa, un filtru ideal
nu este cauzal, fiind nepotrivit pentru acele aplicaţii practice care necesita filtre
cauzale. Mai mult, chiar dacă cauzalitatea nu este o constrângere esenţială,
filtrul ideal este greu de implementat fizic, pe când un filtru neideal (spre
exemplu, filtrele neideale TS si TJ tratate anterior) este mult mai simplu de
realizat (cu un simplu circuit RC).
b)
|jωT0 − 1|
H(ω) = = 1, ∀ω ∈ R.
|jωT0 + 1|
Pentru calculul fazei φ(ω), scriem răspunsul in frecventa sub forma H(jω) =
Re H(jω) + jIm H(jω):
100 Semnale şi sisteme. Îndrumar de laborator
Im H(jω) 2ωT0
φ(ω) = arctg = arctg 2 2 .
Re H(jω) ω T0 − 1
Codul Matlab pentru reprezentarea grafică a funcţiei φ(ω) este dat ı̂n Anexă.
Graficul este dat ı̂n figura 5.14.
160
140
120
φ(ω) (grade)
100
80
60
40
20
0
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10
ω (rad/s)
k=N
1 X
y[n] = u[n − k].
2N + 1
k=−N
Rezolvare.
a) Funcţia pondere este răspunsul sistemului la impulsul discret. Într-adevăr,
dacă u[n] = δ[n], atunci y[n] = h[n]. Obţinem:
1
h[n] = (δ[n + 1] + δ[n] + δ[n − 1]) .
3
Pentru sistemele discrete, răspunsul ı̂n frecvenţă H(ejω ) este dat de relaţia:
+∞
X
H(ejω ) = h[n]e−jωn .
n=−∞
Graficul funcţiei H(ω) = 13 |1 + 2 cos(ω)| este dat ı̂n figura 5.15. Script-ul
Matlab necesar se găseşte ı̂n Anexă.
Observaţie. Se observă din grafic (figura 5.15) că filtrul nerecursiv dat are
caracteristicile unui FTJ neideal, adică nu are o tranziţie bruscă ı̂ntre benzile
de frecvenţă corespunzatoare (banda de trecere, respectiv de atenuare).
102 Semnale şi sisteme. Îndrumar de laborator
0.3
0.25
0.2
h[n]
0.15
0.1
0.05
0
−5 −4 −3 −2 −1 0 1 2 3 4 5
n (esantioane)
Raspunsul in frecventa
1
0.8
0.6
H(ejω)
0.4
0.2
0
−8 −6 −4 −2 0 2 4 6 8
ω (rad/s)
0.9
0.8
0.7
0.6
|H(ejω)|
0.5
0.4
0.3
0.2
0.1
−3 −2 −1 0 1 2 3
ω (rad/s)
Rezolvare. Sistemul H(s) are un pol şi un zerou. Deoarece se dau 3 parametri,
i.e., Ainf , Asup , ωt , vom avea 3 necunoscute:
r
as + b a2 ω 2 + b2
H(s) = ⇒ |H(jω)| = .
cs + 1 c2 ω 2 + 1
Condiţiile impuse devin:
a b
|H(j · 0)| = b = Ainf ; |H(j · ∞)| = = Asup ⇒ a = cAsup ; = ωt .
c a
s + ωt
După calcule, se obţine H(s) = s ωt . Trebuie să impunem ca prima
+
Asup Ainf
frecvenţă de frângere să fie ωt , i.e., 1c < ab ⇒ Ainf < ωt2 Asup . Reprezentaţi ı̂n
Matlab diagramele Bode pentru sistemul obţinut. Alegem Ainf = 0.1, Asup =
20, ωt = 10 rad/s.
104 Semnale şi sisteme. Îndrumar de laborator
Exerciţiul 5.16. Construiţi un semnal periodic compus din mai multe ar-
monici distincte, apoi perturbaţi-l cu un zgomot alb (se generază cu funcţia
Matlab randn). Filtraţi apoi semnalul obţinut folosind un filtru selectiv de
frecvenţă astfel ı̂ncat la ieşirea filtrului să se găsească un semnal cât mai apro-
piat de cel original. Calculaţi numeric diferenţele dintre semnalul obţinut după
filtrare şi cel original.
Exerciţiul 5.17. O conjectură celebră afirmă că sistemul auditiv uman nu
sesizează modificările de fază ale unui semnal audio. Pentru a valida conjec-
tura, este suficient sa prelucrăm un semnal vocal cu un filtru discret trece-tot
de faza neminimă (FTT) şi să verificăm potrivirea auditiv. Un FTT discret
este de forma: Pn N
k=0 bk z −k
H(z) = Pn −k
.
k=0 ak z
a) Scrieţi ı̂n fisierul discurs0.au semnalul speech din fişierul dat, prin folo-
sirea funcţiei Matlab auwrite. Frecvenţa de eşantionare este Fs = 11025
Hz. Scrierea se va face pe 16 biţi, cu metoda de codare liniară.
b) Să se implementeze FTT ı̂n Matlab pentru N = 1, utilizând funcţia filt.
Să se obţină răspunsul la impuls şi răspunsul ı̂n frecvenţă al filtrului (funcţia
freqz).
Capitolul 5. Diagramele Bode 105
c) Reprezentaţi grafic polii şi zerourile filtrului. Folosiţi funcţia pzmap. Este
sistemul de faza minimă?
d) Aplicaţi filtrul obţinut semnalului vocal din variabila speech. Vom folosi
funcţia Matlab filter. Scrieţi ı̂n fişierul discurs1.au semnalul filtrat
obţinut. Sesizaţi vreo diferenţă? Argumentează riguros, pe baza celor
studiate a priori.
x[n] − x[n − 1]
y[n] = .
2
Determinaţi funcţia pondere h[n] şi răspunsul ı̂n frecvenţă H(ejω ) pentru sis-
temul dat. Reprezentaţi grafic |H(ejω )|. Am obţinut un FTS? Argumentaţi.
a) Ce proprietăţi are filtrul H(jω) dat? Verificaţi dacă este real sau complex,
cauzal sau necauzal. Calculaţi:
Z ∞
1
h(t) = F −1 {H(jω)} := H(jω)e+jωt dω.
2π −∞
Figura 5.17.
Capitolul 5. Diagramele Bode 107
b) Găsiţi intervalul admisibil pentru α astfel ı̂ncât filtrele rezultate să ı̂ndeplinească
specificaţiile din figura 5.17b.
6. Analiza Nyquist
6.2. Hodograful
Fie un sistem cu funcţia de transfer H(s). Se numeşte reprezentare ı̂n frecvenţă
a sistemului orice reprezentare grafică a evoluţiei vectorului H(jω) ı̂n funcţie
de ω. Evident, H(jω) ∈ C poate fi scris in forma carteziană:
109
110 Semnale şi sisteme. Îndrumar de laborator
K
Elementul de ordin I : H(s) = T s+1 , K, T > 0.
2
ωn
Elementul de ordin II : H(s) = 2,
s2 +2ζωn s+ωn
ωn > 0, ζ ∈ [0, 1).
V V
K
2 K ù=0
ù= 4
x x x x x
ù= 4 ù=0 U U
æ=1
æ=0
iii. Monotonie (derivata I): acestea se studiază doar când U şi V au forme ı̂n
general simple. În rest trasarea se face prin puncte şi studierea compor-
tamentului la joasă frecvenţă (ω = 0+ ) şi la ı̂naltă frecvenţă (ω = ∞.)
r(s)
Dacă H(s) = p(s) , notăm e = ∂(p(s)) − ∂(r(s)), numit excesul de poli al
coef. dominant al lui p
lui H(s). Mai notăm ce = coef. dominant al lui r . Atunci faza sistemului la
ω → ∞ va fi (
−e π2 , ce > 0
φ(∞) = π
−e 2 − π, ce < 0
112 Semnale şi sisteme. Îndrumar de laborator
V
v v
v
K U
V ce>0
e=2
U
e=1
Observaţie. În MATLAB funcţia care trasează diagrame Nyquist este nyquist(sys),
unde sistemul poate fi dat sub forma tf sau zpk.
Fie sistemul dat ı̂n figura 6.5. Funcţia de transfer ı̂n buclă ı̂nchisă este
H(s)
G(s) = 1+H(s) . Presupunem că H(s) este ireductibilă. Sistemul ı̂n buclă
ı̂nchisa este stabil dacă polii săi sunt ı̂n C− . Evident, polii lui G(s) sunt
zerourile
lui 1 + H(s). Criteriul lui Nyquist stabileşte numărul zerourilor
Z 1 + H(s) ı̂n semiplanul C+ direct din locul Nyquist al funcţiei H(s).
Observaţie. Dacă H(s) este stabil, i.e., n+ = 0, atunci condiţia necesară şi
suficientă ca sistemul ı̂nchis să fie stabil este ca locul de transfer să lase ı̂n
stânga punctul critic de coordonate (−1, 0) sau acest punct să nu se găsească
ı̂n interiorul caracteristicii trasată cu ambele ramuri pentru ω.
Concluzii similare se pot obţine pe baza locului de transfer al lui H(s) care
rezultă atunci când conturul Nyquist este făcut să coincidă la limită cu axa
imaginară.
Criteriul Nyquist – varianta bazată pe locul de transfer. Sistemul ı̂n
buclă ı̂nchisă este stabil dacă şi numai dacă
ω=+∞ π
∆ arg[1 + H(jω)] = (n0 + 2n+ ) ,
ω=0 2
adică variaţia argumentului vectorului cu originea ı̂n punctul critic (−1+j0) şi
cu vârfurile pe ramurile continue ale locului de transfer, atunci când ω parcurge
ı̂n sens crescător intervalul (0, +∞), este egală cu (q0 + 2n+ ) π2 , unde:
n0 este numărul polilor de pe axa imaginară;
n+ este numărul polilor din C+ , incluzând ordinul de multiplicitate.
114 Semnale şi sisteme. Îndrumar de laborator
K
Exerciţiul 6.1. H(s) = , K > 0.
s3 +1
Rezolvare.
K K K ω3 K K ω3
H(jω) = = + j ⇒ U (ω) = şi V (ω) = .
1 − jω 3 1 + ω6 1 + ω6 1 + ω6 1 + ω6
Aplicăm două metode definite pe baza tabelului de variaţie şi pe baza deducerii
relaţiei ı̂ntre U şi V şi a curbei descrise ı̂n planul complex.
Metoda 1. Tabelul de variaţie.
1) Intersecţiile cu axele: U (0) = K şi V (0) = 0 ⇒ hodograful taie axa relă ı̂n
punctul (K, 0).
[0, ∞). (
6 −1 > 0, ω < 1
V 0 (ω) = −3K ω 2 (1+ω6 )2
ω
⇒ V este crescătoare pe [0, 1) şi
≤ 0, ω ≥ 1
descrescătoare pe (1, ∞).
5) Tabelul:
ù 0+ 1 4
U(ù) K 0+
K
V(ù) 0 2
0+
V
K
2 K
x x x
ù= 4 ù=0 U
Capitolul 6. Analiza Nyquist 115
K K 2
Metoda 2. U 2 + V 2 = K 1+ω 6 = K U, (∀) ω > 0 ⇔ (U − 2) + V2 =
K2
4 , (∀) ω > 0 ⇒ semicerc cu centrul ı̂n ( K2 , 0) şi rază K
2. Pentru stabilirea
sensului se studiază comportarea la ∞ ca mai sus.
Codul Matlab este dat ı̂n Anexă. Se observă că orice sistem de forma H(s) =
K K
sn +1 , cu n impar, va avea hodograful un semicerc de rază 2 . Dar dacă n este
par? În Anexă, trasăm cu Matlab hodograful sistemului H(s) = snK+1 , pentru
diverse valori ale lui n.
K
Exerciţiul 6.2. H(s) = , K > 0.
s(s + 1)
Rezolvare.
K K ω K −K
H(jω) = ⇒ U (ω) = − =− şi V (ω) = .
jω(1 + jω) ω(1 + ω 2 ) 1 + ω2 ω(1 + ω 2 )
2) Asimptote, limite la capete: U (0) = −K, U (∞) = 0− şi V (0) = −∞, iar
V (∞) = 0− .
[0, ∞).
2 +1
V 0 (ω) = K ω23ω
(1+ω 2 )2
, (∀) ω > 0 ⇒ V este strict crescătoare pe (0, ∞).
5) Tabelul :
ù 0+ 4
U(ù) -K 0-
V(ù) -4 0-
-K ù= 4
U
v
ù=0
116 Semnale şi sisteme. Îndrumar de laborator
Trasăm ı̂n Matlab hodograful sistemului dat pentru diverse valori ale lui
K. Codul se găseşte ı̂n Anexă. Deoarece sistemul conţine un integrator, se
observă plecarea asimptotică a graficului dinspre −∞. În plus, se va vedea cu
ajutorul calculatorului că aceasta este forma hodografului pentru orice sistem
de tipul
K
H(s) = , K > 0,
s(s + 1)...(s + p)
cu excepţia asimptotei verticale la ω = 0+ . Verificaţi analitic cele afirmate
mai sus, pentru pmax = 2.
s2 − 1
Exerciţiul 6.3. H(s) = .
s4 + 4s2 + 4
Rezolvare.
ω2 + 1
H(jω) = − = U (ω) ∈ R.
ω 4 − 4ω 2 + 4
Deoarece V (ω) = 0, hodograful va fi un segment de dreaptă orientat, situat
pe axa reală. Pentru stabilirea sensului este necesară studierea monotoniei lui
U (ω). După calcule destul de laborioase (lăsate exerciţiu cititorului) avem că
U 0 (ω) > 0, (∀) ω > 0 ⇒ U este strict crescătoare pe [0, ∞).
ù 0+ 4
1
U(ù) - 4 0-
- 41 ù= 4 U
ù=0
1+jω 1 ω 2 2
Rezolvare. H(jω) = 1−ω 2 ⇒ U (ω) = 1−ω 2 , V (ω) = 1−ω 2 ⇒ U (ω) − V (ω) =
(U − 12 )2 V2
1 − 1 =1
4 4
ù "1
<1
ù
v
ù=4 ù=0+ U
(1,0)
)
jù
H(
ù=%&
3
v
ù "1
>1
ù
sus, deci ı̂n frecvenţă are modulul 1 pe toată axa reală. Hodograful este
cercul unitate, iar sensul de parcurgere este dat de semnul lui a. Dacă a > 0
atunci sensul este antitrigonometric, iar dacă a < 0 sensul este trigonometric.
Desenăm cu Matlab hodograful, vezi Anexa.
V
a>0
v
1
H(jù) U
v
a<0
v
-K ù= 4
U
K s−1
Exerciţiul 6.6. H(s) = .
s s+1
Rezolvare. Lăsăm ca temă rezolvarea analitică a acestui exerciţiu. Codul
Matlab este dat ı̂n Anexă.
K −τ s
Exerciţiul 6.7. H(s) = e , τ > 0, K > 0.
s
Rezolvare. Acesta este un element integrator cu timp mort. Timpul mort
reprezintă o ı̂ntâziere ı̂n răspunsul sistemului, mai precis dacă intrarea a fost
aplicată la momentul t = 0, sistemul ı̂ncepe să răspundă la momentul τ > 0.
Observaţie. Sistemul este infinit dimensional, pentru că ecuaţia lui caracte-
ristică are o infinitate de soluţii. Acest fapt se va reflecta şi in răspunsul ı̂n
frecvenţă. Timpul mort afectează faza sistemului.
Capitolul 6. Analiza Nyquist 119
-K
H(jù
)
U
v
ù=0+
Evaluăm succesiv:
K −jωτ K
H(jω) = e = (cos ωτ − j sin ωτ ),
jω jω
sin ωτ cos ωτ
U (ω) = −K , iar V (ω) = −K .
ω ω
Deoarece U şi V au forme complicate, procedăm altfel. Hodograful este curba
ce indică evoluţia vectorului H(jω) ı̂n planul complex. Vom studia modulul
şi faza acestuia.
Rezolvare. Vezi figura 6.7. Codul Matlab este dat ı̂n Anexă. Se observă că,
pentru valori mici ale lui k (0 < k < TT11+T T2 ), hodograful intersectează axa
2
k(1 + Td s)
H(s) = ,
s(1 + T1 s)(1 + T2 s)
sistemul raspunde mult mai repede, iar pentru k putem alege valori dintr-un
interval mult mai mare pentru ca sistemul sa rămână stabil.
Verificaţi că sistemul va fi stabil dacă
T1 + T2
0<k< .
T1 T2 − Td (T1 + T2 )
Nyquist Diagram
20 k=0.5
Imaginary Axis
−20
Step Response
2
k=0.5
1.5
Amplitude
0.5
0
0 10 20 30 40 50 60 70
Time (sec)
Frequency response
6
k=0.5
Amplitude
0
0 0.5 1 1.5 2 2.5 3 3.5
frequency
Nyquist Diagram
20 k=3.5
Imaginary Axis
−20
Step Response
2
k=3.5
1.5
Amplitude
0.5
0
0 2 4 6 8 10 12
Frequency response Time (sec)
6
k=3.5
Amplitude
0
0 0.5 1 1.5 2 2.5 3 3.5
frequency
Figura 6.7.
122 Semnale şi sisteme. Îndrumar de laborator
Nyquist Diagram
2
1
Imaginary Axis
−1
−2
−1 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0
Real Axis
Step Response
1
0.8
Amplitude
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
Time (sec)
Figura 6.8.
ı̂nchisă este stabil. Pentru valori ale lui N ı̂n intervalul (0, 1) sistemul atinge
performanţe foarte bune: spre exemplu, suprareglajul este 0. Pentru a vedea
aceste performanţe, in fereastra care afişează răspunsul la o intrare treaptă
daţi click pe butonul drept al mouse-ului şi alegeţi ”Characteristics”.
Exerciţiul 6.10. Se consideră schema bloc din figura 6.9, unde G(s) =
k
(s+4)(s+5) . Aplicând criteriul Nyquist de stabilitate, determinaţi valorile lui
k pentru care sistemul este stabil.
Figura 6.9.
Rezolvare. Vezi Anexa. Pentru k ∈ 11, 55 se obţin cele mai bune performanţe
Capitolul 6. Analiza Nyquist 123
ale sistemului (pentru a le vedea care sunt acestea, ı̂n fereastra care afişează
răspunsul la o intrare treaptă daţi click pe butonul drept al mouse-ului şi
alegeţi ”Characteristics”). Sistemul in buclă ı̂nchisă este stabil, acest lucru
putând fi observat din locul Nyquist.
Exerciţiul 6.11. Desenaţi diagrama Nyquist pentru sistemul din următoarea
figură şi determinaţi valorile lui k pentru care sistemul este stabil.
Rezolvare. Vezi figura 6.10 şi Anexa. Pentru k = 1.5 sistemul este stabil, ı̂nsa
se pot obţine performanţe mult mai bune (suprareglaj mult mai mic) pentru
valori mai mici ale lui k (e.g., k = 0.01).
Nyquist Diagram
1
k=1.5
0.5
Imaginary Axis
−0.5
−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8
Real Axis
Step Response
0.8
k=1.5
0.6
Amplitude
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45 50
Time (sec)
Figura 6.10.
124 Semnale şi sisteme. Îndrumar de laborator
Rezolvare. Vezi Anexa. Se observă că pentru valori pozitive ale lui p conform
criteriului Nyquist, sistemul H1 (s) ı̂n buclă ı̂nchisă este instabil (punctul critic
se află ı̂n interiorul hodografului). Pentru sistemul H2 (s) conform criteriului
Nyquist sistemul ı̂n buclă ı̂nchisă este stabil. Pentru H3 (s) sistemul ı̂n buclă
ı̂nchisă este instabil pentru p < 0.4 şi stabil pentru p > 0.4.
−120
−120
−60
−60
0 dB
0 dB
+60
+60
1
Exerciţiul 6.14. Fie sistemul P (s) = pentru care se consideră
s2 + 2s + 2
K
compensatorul C(s) = , K > 0.
s
Capitolul 6. Analiza Nyquist 125
b) Trasaţi hodograful sistemului pentru diverse valori ale lui K (ţineţi cont şi
de valorile de la punctul 1) şi deduceţi cu ajutorul criteriului lui Nyquist
care este domeniul de valori ale lui K pentru care sistemul este stabil ı̂n
buclă ı̂nchisă.
Exerciţiul 6.15. Considerăm diagrama bloc din figura 6.12, unde H(s) =
2
, iar k este o constantă reală. Cerinţe:
s−3
a) Pentru ce valori ale lui k sistemul ı̂n buclă ı̂nchisă este strict stabil? Folosiţi
criteriul Nyquist. Trasaţi hodograful sistemului pe calea directă, i.e., kH(s),
pentru diverse valori ale lui k.
Figura 6.13.
Y (s)
a) Calculaţi funcţia de transfer ı̂n buclă ı̂nchisă T (s) := X(s) ı̂n termenii
funcţiilor H(s) şi K(s).
1
b) Fie H(s) = s−2 . Reprezentaţi polii sistemului T (s) pentru K ∈ {0, 1, −1}.
c) Reprezentaţi grafic locul geometric al polilor lui T (s) pentru K > 0, res-
pectiv pentru K < 0. Specificaţi valorile lui K pentru care T (s) este stabil.
Verificaţi ı̂n Matlab rezultatele (spre exemplu, utilizaţi răspunsul indicial).
d) Utilizând criteriul Nyquist, determinaţi valorile lui K pentru care T (s) este
stabil. Verificaţi ı̂n Matlab rezultatele.
ωn2
Exerciţiul 6.19. Fie diagrama bloc din figura 6.12, cu H(s) =
s2 + 2ζωn s + ωn2
şi k o constantă reală.
a) Calculaţi sistemul ı̂n buclă ı̂nchisă. Determinaţi noua frecvenţă naturală
ω̂n şi noul factor de amortizare ζ̂.
c) Schiţaţi traiectoria polilor sistemului ı̂n buclă ı̂nchisă pentru k ∈ (−∞, +∞).
Pentru ce valori ale lui k este sistemul stabil?
Figura 6.14.
b) Observaţi că sistemul dat are o ieşire şi două intrări. Prin urmare, H(s)
este o matrice de forma:
X(s) W (s)
H(s) = = [H1 (s) H2 (s)] .
Y (s) Y (s)
Calculaţi H(s).
c) Reprezentaţi grafic polii şi zerourile funcţiei H(s). Folosiţi comanda cu-
noscută, pzmap(H).
şi
∞
X ∞
X
L{f ∗ (t)}(s) = f (kt) e−k sT = fk z −k = Z{fk }(z),
k=0 k=0
129
130 Semnale şi sisteme. Îndrumar de laborator
r(s)
H(s) = ,
p(s)
discretizat cu perioada T :
−1 H(s)
Hd (z) = (1 − z )Z (z). (7.1)
s
Capitolul 7. Sisteme ı̂n timp discret 131
z = esT ,
care “mută” planul complex al sistemelor netede ı̂n cel corespunzător sisteme-
lor discrete, aşa cum arată şi formula (7.1). Practic, se procedează astfel:
Metoda trapezelor
Această metodă, numită şi metoda Tustin, constă ı̂n ı̂nlocuirea variabilei s cu
expresia:
2 z−1
s← ,
T z+1
unde T este perioada de eşantionare. Astfel,
a 1 − e−aT b 1 − e−aT
Kc = Kd , de unde Kd = Kc .
b 1 − e−bT a 1 − e−bT
Exerciţiul 7.3. Studiem aici eşantionarea unui semnal continuu x(t), folosind
P∞
un tren de impulsuri. Astfel, fie p(t) = δ(t − nTs ), unde Ts este perioada
n=−∞
de eşantionare.
a) Calculaţi xp (t) = p(t)x(t).
Capitolul 7. Sisteme ı̂n timp discret 133
Rezolvare.
2π
unde ωs = Ts este pulsaţia de eşantionare, iar
T
Zs /2 T
Zs /2
1 −jωt 1 1
ak = p(t)e dt = δ(t)e−jωt dt = .
Ts Ts Ts
−Ts /2 −Ts /2
∞
1
ejkωs t . Transformata Fourier o determinăm
P
Obţinem că p(t) = Ts
k=−∞
pornind de la definiţie:
Z∞ ∞
2π X
P (jω) = p(t)e−jωt dt = δ(ω − kωs ).
Ts
−∞ k=−∞
R∞
Pentru a obţine ultima egalitate, am folosit identitatea ejω0 t dt = 2πδ(ω0 ).
−∞
1 s 1
, 2 , ,
s s +4 s+3
a) Trasaţi răspunsurile la semnalele discrete de tip impuls şi treapta pentru sis-
temul dat. Apelaţi funcţiile Matlab corespunzătoare, i.e., impulse(sysd),
step(sysd) şi folosiţi apoi pentru vizualizarea răspunsurilor funcţia stem.
Verificaţi acurateţea rezultatelor obţinute prin calcul analitic.
Figura 7.2.
c) Reluaţi punctul b) pentru diferite valori ale lui ω0 . Spre exemplu, alegeţi
ω0 ∈ {2 , 3 , 5}. Pentru ce valori ale lui ω0 este xp (t) identic?
Exerciţiul 7.11. Un sistem discret liniar şi invariant ı̂n timp este descris de
următoarea ecuaţie cu diferenţe:
c) Calculaţi şi reprezentaţi grafic y[n], pentru u[n] = 3n 1(t). Utilizaţi funcţia
Matlab filter.
Exerciţiul 1.3
t= -2 * pi : 0.01 : 2 * pi;
treapta = zeros( 1 , length( t ) );
treapta (t>=0) = 1;
% Expresia anterioara inloculieste un ciclu for. Justificati!
subplot( 2, 1, 1 );
plot( t, cos( t ) );
xlabel(’t’);
ylabel(’cos(t)’);
title(’Graficul functiei cos(t)’);
subplot( 2, 1, 2 );
plot( t, treapta .* cos( t ) );
137
138 Semnale şi sisteme. Îndrumar de laborator
xlabel(’t’);
ylabel(’1(t) * cos(t)’);
title(’Graficul functiei 1(t) * cos(t)’);
Exerciţiul 1.4
x = 0:pi/100:2*pi;
y1 = 2*cos(x);
y2 = cos(x);
y3 = 0.5*cos(x);
plot(x,y1,’--’,x,y2,’-’,x,y3,’:’)
xlabel(’0 \leq x \leq 2\pi’)
ylabel(’Functia cosinus’)
legend(’2*cos(x)’’cos(x)’’0.5*cos(x)’)
title(’Exemplu tipic de grafice multiple’)
axis([0 2*pi -3 3])
Exerciţiul 1.5
w = -pi : 0.01 : pi;
x = ( 1 + w .^ 2 ) .^ ( -1 );
y = -w .* x;
plot( x, y );
Exerciţiul 1.6
% trian.m
function [ y ] = trian( t )
if ( t > -1 && t < 1 )
y = 1 - abs( t );
else
y = 0;
end
% trasarea graficelor
t = -10 : 0.01 : 10;
for i = 1 : length( t )
trian_func1( i ) = trian( t( i ) );
trian_func2( i ) = trian( alpha1 * t( i ) );
trian_func3( i ) = trian( alpha2 * t( i ) );
end
Capitolul A. Programe Matlab pentru exerciţii rezolvate 139
Exerciţiul 1.7
t= -1 : 0.01 : 2;
ramp = zeros( 1 , length( t ) ); % umplem vectorul cu zerouri
for i = 1 : length( t )
if t( i ) >= 0
ramp( i ) = t( i ); % punem t pentru t >= 0
end
end
hold on
plot( t, ramp );
plot( t, exp( t ), ’r’ );
plot( t, ramp .* exp( t ), ’g’ );
xlabel(’t’);
ylabel(’f(t)’);
title(’ Graficele functiilor ramp(t), e^t si ramp(t) \cdot e^t’);
legend( ’ramp(t)’, ’e^t’, ’ramp(t) \cdot e^t’,...
’Location’, ’NorthWest’ );
hold off
A.2. Semnale
Exerciţiul 2.1
function y=cont_conv(h,u,N)
% cont_conv.m
%N este vectorul cu numarul de puncte al diviziunii
M=10; %orizontul de timp
l=(2*M)./N ;% lungimea intervalului de esantionare
x=0.1:0.1:M;
for i=1:length(N)
disp(’Numarul de puncte al diviziunii este:’)
140 Semnale şi sisteme. Îndrumar de laborator
N(i)
for t=0.1:0.1:M
y(round(t*10))=0;
j=-M;
while(j<=M)
y(round(t*10))=y(round(t*10))+feval(h,(t-j))*feval(u,j);
j=j+l(i);
end
end
figure;
y=y*l(i);
plot(x,y);
disp(’Apasati orice tasta!’);
pause;
end
function y=discr_conv(h,u,M)
% discr_conv.m
% y este produsul de convolutie dintre h si u.
% M este un vector de intregi,
% cu semnificatia orizontului de timp.
clc;
for i=1:length(M)
disp(’Orizontul de timp este:’)
-M(i)
M(i)
for n=1:M(i)
y(n)=0;
for j=-M(i):M(i)
y(n)=y(n)+feval(h,(n-j))*feval(u,j);
end
end
y
figure;
stem(y);
disp(’Apasati orice tasta!’);
pause;
end
*********Delta.m***********
function f=Delta(n)
if n==0
f=1;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 141
else
f=0;
end
********exp_baza_a.m*********
function f=exp_baza_a(n)
f=0.9^abs(n);
********discr_step.m*********
function f=discr_step(n)
if n<0
f=0;
else
f=1;
end
************exp_neg.m*******
function f=exp_neg(t)
if t>=0
f=exp(-t);
else
f=0;
end
************rect.m***********
function f=rect(t)
if abs(t)<=(1/2)
f=1;
else
f=0;
end
*******Ex1_a.m********
clc;
M=[50 100 150];
discr_conv(@discr_step,@discr_step,M)
********Ex1_b.m*******
clc;
M=[30 100 200];
discr_conv(@exp_baza_a,@exp_baza_a,M)
*******Ex1_c.m*********
clc
142 Semnale şi sisteme. Îndrumar de laborator
*******Ex1_d.m*************
clc;
N=[20 80 350 ];
cont_conv(@rect,@rect,N)
********Ex1_e.m*******
clc;
N=[20 80 350 ];
cont_conv(@exp_neg,@exp_neg,N)
h=tf([1],[1 1]);
figure;
impulse(series(h,h));
Exerciţiul 2.2
clc; clear; close all;
subplot(311);
plot(t, treapta );
ylim([ 0 2 ]);
xlabel(’t’);
ylabel(’1(t)’);
title(’Functia treapta’);
subplot(312);
plot(t + tau, treapta);
ylim([ 0 2 ]);
xlabel(’t’);
ylabel(’1(t-\tau)’);
title(’Functia treapta intarziata cu \tau’);
subplot(313);
Capitolul A. Programe Matlab pentru exerciţii rezolvate 143
Exerciţiul 2.3
******d_n.m*****
%functia de la exemplul Exercitiul 3a)
function y=d_n(n,t)
if abs(t)<=1/(2*n)
y=n;
else
y=0;
end
******trian.m**********
%functia de la exemplul Exercitiul 3b)
function y=trian(n,t)
%intoarce trian(nt)
if abs(t)<=1/(n)
y=1-abs(n*t);
else
y=0
end
*******belll.m**************
function f=belll(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2);
*******Ex3_a.m************
clear all
hold on
for n=1:3:78
l=1/(n*200);% 20 de puncte in intervalul -1/2n, 1/2n
t=-1/(2*n):l:1/(2*n);
for i=1:length(t)
y(i)=d_n(n,t(i));
end
plot(t,y);
end
hold off
144 Semnale şi sisteme. Îndrumar de laborator
*****Ex3_b.m***********
clear all
hold on
for n=1:3:43
l=1/(n*100);
%(2/n)/200 distanta dintre puncte in intervalul -1/n, 1/n
t=-1/(n):l:1/(n);
for i=1:length(t)
y(i)=n*trian(n,t(i));
end
plot(t,y);
end
hold off
*********Ex3_c.m***********
clear all
hold on
for n=1:3:19
t=-5:0.1:5;
for i=1:length(t)
y(i)=n*belll(n*t(i));
end
plot(t,y);
end
hold off
% Solutie alternativa
% ex3.m
clear; clc; close all;
n = 100;
t = -1:1e-3:1;
d1 = zeros(1,length(t));
d1(-1/2/n<=t & t<=1/2/n) = n;
figure(1);
plot(t,d1); grid
ylim([-0.1 n+0.1]);
d2 = zeros(1,length(t));
aux = (-1/n<=t) & (t<=1/n);
d2(aux) = 1-abs(n*t(aux));
Capitolul A. Programe Matlab pentru exerciţii rezolvate 145
figure(2);
plot(t,n*d2); grid
d3 = exp(-(n*t).^2/2)/sqrt(2*pi);
figure(3);
plot(t,n*d3); grid
Exerciţiul 2.4
******belll_1.m***********
function f=belll_1(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2)*t;
*****belll_2.m**********
function f=belll_2(t)
f=(-1/sqrt(2*pi))*exp(-(t^2)/2)*(1-t^2);
******belll_3.m**********
function f=belll_3(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2)*(3-t^2)*t;
*******Ex4_a.m************
hold on
for n=1:3:19
t=-5:0.01:5;
for i=1:length(t)
y(i)=n*belll_1(n*t(i));
end
plot(t,y);
end
hold off
*****Ex4_b.m**********
hold on
for n=1:3:80
t=-5:0.01:5;
for i=1:length(t)
y(i)=n^2*belll_2(n*t(i));
end
plot(t,y);
end
hold off
146 Semnale şi sisteme. Îndrumar de laborator
*****Ex4_c.m*********
hold on
for n=1:3:12
t=-5:0.01:5;
for i=1:length(t)
y(i)=n^3*belll_3(n*t(i));
end
plot(t,y);
end
hold off
Exerciţiul 2.5
********Phi.m*******
function y=Phi(t)
if abs(t)<=(1/2)
y=1-4*(t^2);
else
y=0;
end
**********Ex5a.m**********
clc;
%Phi(0)=1
i=1;%numarul de n-uri iterate
for n=2:15:900
M=1/2*n; %orizontul de timp (pe care d_n nu e zero)
N=100;%nr. de puncte al diviziunii
l=2*M/N;
j=-M;
epsilon(i)=0;
while(j<=M)
epsilon(i)=epsilon(i)+d_n(n,j)*Phi(j)-1;
j=j+l;
end
i=i+1;
end
disp(’Evolutia erorii odata cu cresterea lui n:’)
epsilon
*********Ex5b.m****************
clc;
%Phi(0)=1
Capitolul A. Programe Matlab pentru exerciţii rezolvate 147
*********Ex5c.m**************
clc;
%Phi(0)=1
i=1;%numarul de n-uri iterate
for n=2:15:900
M=3/n;
%orizontul de timp sub care se afla graficul lui bell(nt)
N=30;%nr. de puncte al diviziunii
l=2*M/N;
j=-M;
epsilon(i)=0;
while(j<=M)
epsilon(i)=epsilon(i)+n*belll(n*j)*Phi(j)-1;
j=j+l;
end
i=i+1;
end
disp(’Evolutia eroarii odata cu cresterea lui n:’)
epsilon
Exerciţiul 2.6
N=1024; %Numarul de puncte din semnal
T=10; %Lungimea intervalului de esantionare
t=[0:N-1]*T/N; % Axa timpului (normalizata)
%frecventele si amplitudinile semnalului
148 Semnale şi sisteme. Îndrumar de laborator
f1 = 2; a1 = 7;
f2 = 3; a2 = 11;
f3 = 5; a3 = 13;
% Definim semnalul
f = a1*sin(2*pi*f1*t) + a2*sin(2*pi*f2*t) + a3 * sin(2*pi*f3*t);
figure(1)
plot(t,f);
%grid
xlabel(’Timp(s)’);
ylabel(’Amplitudine’);
title(’Semnalul f(t)’);
figure(2)
plot(freq,p);
xlabel(’Time (s)’);
title(’Componentele Fourier ale semnalului f(t)’);
xlim([0 10]);
Exerciţiul 2.7
%semnalul dreptunghiular cu T=1 si T1=1/4
figure(1)
t=-1.5:0.005:1.5;
xcos=cos(2*pi*t);
xpsqw=xcos>0;
plot(t,xpsqw);
xlabel(’Timp(s)’);
ylabel(’Amplitudine’)
title(’Semnal periodic dreptunghiular (T=1)’)
ylim([-0.1 1.1]);
T=1;
T1=1/4;
ak1=sin(k*2*pi*(T1/T))./(k*pi);
ak1(16)=2*T1/T;
subplot(3,1,1);
stem(k,ak1);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/4)’)
T1=1/8;
ak2=sin(k*2*pi*(T1/T))./(k*pi);
ak2(16)=2*T1/T;
subplot(3,1,2);
stem(k,ak2);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/8)’)
T1=1/16;
ak3=sin(k*2*pi*(T1/T))./(k*pi);
ak3(16)=2*T1/T;
subplot(3,1,3);
stem(k,ak3);
xlabel(’k’);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/16)’)
M=20;k=-M:M;
ak=sin(k*2*pi*(T1/T))./(k*pi);
ak(M+1)=2*T1/T; %corectie pentru a0 -> ak(M+1)
x=zeros(1,length(t));
for k=-M:M
x=x+ak(k+M+1)*exp(j*k*w0*t);
end
plot(t,real(x));grid;xlabel(’t’);ylabel(’f(t)’)
title(’Reconstructie din serie Fourier cu 41 de termeni’)
% Reconstructie cu M=100
figure(5);set(gcf,’defaultaxesfontsize’,9)
M=100;k=-M:M;
ak=sin(k*2*pi*(T1/T))./(k*pi);
ak(M+1)=2*T1/T; %corectie pentru a0 -> ak(M+1)
x=zeros(1,length(t));
for k=-M:M
x=x+ak(k+M+1)*exp(j*k*w0*t);
end
plot(t,real(x));grid;xlabel(’t’);ylabel(’x(t)’)
title(’Reconstructie din serie Fourier cu 201 de termeni’)
Exerciţiul 2.8
load sunspot.dat
year = sunspot(:,1);
wolfer = sunspot(:,2);
figure(1)
plot(year, wolfer);
title( ’Sunspot Data’ );
figure(2)
plot(freq,power), grid on
xlabel(’cycles/year’)
title(’Periodogram’)
T = 1./freq;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 151
figure(3)
plot(T, power)
axis([0 40 0 2e7]), grid on
ylabel(’Power’)
xlabel(’Period(Years/Cycle)’)
Exerciţiul 2.9
function analiza(fisier)
subplot(1,2,2)
semilogy(f,p)
axis([0 4000 10^-4 1])
title([’Spectrul de Putere pentru ’ fisier])
function sinteza(file,f,d,p)
% Functia creeaza un fisier audio .wav unde frecventa
% fundamentala si amplitudinea (puterea) armonicelor
% sunt specificate.
%
% fisier numele fisierului .wav
% f frecventa fundamentala in Hz
% d durata in sec
% p vectorul de putere
% Sinteza vocalelor
vocale = ’UOAEI’;
ff=1; mf = .7; f = .3; p = .1; pp = .07;
power = [ ff mf pp 0 0 0 ;...
mf f mf p 0 0 ;...
p p p mf mf p ;...
mf 0 mf 0 0 ff ;...
mf p 0 0 0 p];
power(3,8)=p;
power(5,16) = mf;
for j=1:5
sinteza([’Sinteza-’ vocale(j) ’.wav’], 220, 3, power(j,:))
end
A.3. Sisteme
Exerciţiul 3.2
a)
c)
a = 10;
t = linspace(-a,a,2000*a);
% Sistemul 1
u1 = exp(-t/10).*sin(6*t);
u2 = sinc(t);
u = u1+u2;
y1 = (t.^2).*u1;
y2 = (t.^2).*u2;
y = (t.^2).*u;
yp = y1+y2;
154 Semnale şi sisteme. Îndrumar de laborator
figure(1);
plot(t,y,t,yp,’--r’); grid;
title(’Sistemul 1’);
legend(’y(t)=t^2u(t)’,’y(t)=y_1(t)+y_2(t)’);
% Sistemul 2
y1 = u1.^2;
y2 = u2.^2;
y = u.^2;
yp = u1+u2;
figure(2)
plot(t,y,t,yp,’-r’); grid
title(’Sistemul 2’);
legend(’y(t)=u^2(t)’,’y(t)=y_1(t)+y_2(t)’);
Exerciţiul 3.5
Fs = 1000;
t = 0:1/Fs:15;
u = cos(2*t).*sin(30*t);
h = exp(-t);
H = tf(1,[1 1]);
y1 = conv(h,u)/Fs;
y2 = lsim(H,u,t);
y3 = dsolve(’Dy+y=cos(2*t)*sin(30*t)’,’y(0)=0’);
subplot(311);
plot(t,y1(1:length(y2)),’g’); grid
xlabel(’t’); ylabel(’y(t) prin conv’)
title(’Raspuns in timp al circuitului RC prin 3 metode’)
subplot(312);
plot(t,y2,’r’); grid
xlabel(’t’); ylabel(’y(t) prin lsim’)
subplot(313);
ezplot(y3,[0 15]); grid
xlabel(’t’); ylabel(’y(t) prin dsolve’)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 155
%ca obiect
s=tf(’s’);
H_1=(s+5)/(s*(s+1)*(s+2))
H_2=3/(s^2-16)
Exerciţiul 4.3
%varianta I
function ex1(sigma)
H=tf(1,[1 sigma]);
impulse(H)
%varianta II
figure (1)
hold on
for alfa=4:4:8
H=tf(1,[1 alfa]);
impulse(H);
end
hold off
figure (2)
hold on
for alfa=-8:4:-4
H=tf(1,[1 alfa]);
impulse(H);
end
hold off
Exerciţiul 4.4
t=1:0.01:30;
for T=1:1:21
H=tf([4],[T 1]);
[y,t]=impulse(H,t);
z(T,:)=y’;
end
156 Semnale şi sisteme. Îndrumar de laborator
T=1:1:21;
mesh(t,T,z);
Exerciţiul 4.5
H=tf([1],[7 1])
hold on
impulse(H)
K=1;
T=7;
t=0:0.01:T;
for i=1:length(t);
x(i)=K/T-(K/(T*T))*t(i);
end
plot(t,x,’r’)
hold off
grid
Exerciţiul 4.6
t=1:0.01:30;
for T=1:1:21
H=tf([1],[T 1]);
[y,t]=step(H,t);
z(T,:)=y’;
end T=1:1:21
mesh(t,T,z)
Exerciţiul 4.7
H=tf([6],[5 1])
hold on
step(H)
K=6;
T=5;
t=0:0.01:T;
for i=1:length(t)
x(i)=K/T*t(i);
end
plot(t,x,’r’)
hold off
grid
Capitolul A. Programe Matlab pentru exerciţii rezolvate 157
Exerciţiul 4.8
%luati ca exemplu K=1, T=0.8
function ex6(K,T)
hold on
H=tf(K,[T 1]);
H1=tf(1,[1 0 0]);
impulse(series(H1,H),5)
t=0:0.01:5*T;
for i=1:length(t)
x(i)=-K*T+K*t(i);
end
plot(t,x,’r’) %raspunsul permanent
t=0:0.01:5*T; for i=1:length(t) z(i)=K*T*exp(-t(i)/T); end
plot(t,z,’g’) %raspunsul tranzitoriu
hold off
grid
Exerciţiul 4.9
function ex7(K,T,w)
H=tf([K],[T 1]);
t=0:0.1:10;
u=exp(-w*i*t);
[y,l]=lsim(H,u,t);
plot(t,y)
hold on
y_p=K/sqrt(1+T*T*w*w)*sin(w*t-atan(T*w));
plot(t,y_p,’r’)
hold off
Exerciţiul 4.10
function ex8(p1,p2)
s=tf(’s’);
H=1/((s+p1)*(s+p2))
impulse(H)
figure(1)
hold on
impulse(H)
impulse(H1,’r’)
impulse(H2,’g’)
hold off
figure(2)
hold on
step(H)
step(H1,’r’)
step(H2,’g’)
hold off
Exerciţiul 4.13
function ex11(zeta,w_n)
H=tf([w_n*w_n],[1 2*zeta*w_n w_n*w_n]);
figure(1)
[y,t]=impulse(H);
plot(w_n*t,y)
figure(2)
[y,t]=step(H);
plot(w_n*t,y)
figure(3)
t=0:0.1:10;
w=5;
%u=exp(-w*i*t);
u=cos(-w_n*t);
[y,l]=lsim(H,u,t);
plot(t,y)
Exerciţiul 4.14
%luati ca exemplu zeta=0.2 si w_n=3
function ex13(zeta,w_n)
H=tf([w_n*w_n],[1 2*zeta*w_n w_n*w_n]);
step(H)
hold on
k=0:0.1:50;
y=1-exp(-zeta*w_n*k);
plot(k,y,’r’)
k=0:0.1:50;
y=1+exp(-zeta*w_n*k);
plot(k,y,’g’)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 159
Exerciţiul 4.15
clc;
clear all;
%graficul sigma(zeta)
zeta=0:0.002:1;
hold on
for i=1:length(zeta)
sigma=exp((-pi*zeta(i))/(sqrt(1-zeta(i)^2)));
plot(zeta(i),sigma);
end
xlabel(’zeta’);
ylabel(’sigma(zeta)’);
hold off
%graficul w_n*Tt(zeta)
figure;
zeta=0.1:0.002:1;
hold on
for i=1:length(zeta)
Tt=4/zeta(i);
plot(zeta(i),Tt);
end
xlabel(’zeta’);
ylabel(’w_n*Tt(zeta)’);
hold off
%graficul w_n*Tt(zeta)
figure;
zeta=0:0.002:0.96;
hold on
for i=1:length(zeta)
Tt=pi/(sqrt(1-zeta(i)^2));
plot(zeta(i),Tt);
end
xlabel(’zeta’);
ylabel(’w_n*Tt(zeta)’);
hold off
zeta=0:0.002:1;
hold on
for i=1:length(zeta)
Tc=2.16*zeta(i)+0.6;
plot(zeta(i),Tc);
end
for i=1:length(zeta)
Tc=1.8;
plot(zeta(i),Tc);
end
xlabel(’zeta’);
ylabel(’w_n*Tc(zeta)’);
hold off
Exerciţiul 4.16
clc;
clear all;
%Calculul lui Tc
for i=1:length(t)
if y(i)>=0.1*Yp
t_i=i; break
end
end
for j=i:length(t)
if y(j)>=0.9*Yp
t_f=j; break
end
end
Tc=(t_f-t_i)*uu;
a(k)=zeta;
b(k)=Tc;
k=k+1;
end
plot(a,b,’bp-’);
Exerciţiul 4.17
clc;
clear all;
zeta=0.3; %fixat
%graficul sigma(w_n)
w_n=0.2:0.1:15;
162 Semnale şi sisteme. Îndrumar de laborator
hold on
for i=1:length(w_n)
sigma=exp((-pi*zeta)/(sqrt(1-zeta^2)));
plot(w_n(i),sigma);
end
xlabel(’w_n’);
ylabel(’sigma(w_n)’);
hold off
%graficul Tv(w_n)
figure;
w_n=0.2:0.1:15;
hold on
for i=1:length(w_n)
Tv=pi/w_n(i)*(sqrt(1-zeta^2));
plot(w_n(i),Tv);
end
xlabel(’w_n’);
ylabel(’Tv(w_n)’);
hold off
%graficul Tt(w_n)
figure;
w_n=0.2:0.1:15;
hold on
for i=1:length(w_n)
Tv=4/w_n(i)*zeta;
plot(w_n(i),Tv);
end
xlabel(’w_n’);
ylabel(’Tt(w_n)’);
hold off
end
xlabel(’w_n’);
ylabel(’Tc(w_n)’);
%Calculul lui Tc
for i=1:length(t)
if y(i)>=0.1*Yp
t_i=i; break
end
end
for j=i:length(t)
if y(j)>=0.9*Yp
t_f=j; break
end
end
Tc=(t_f-t_i)*uu;
a(k)=w_n;
b(k)=Tc;
k=k+1;
end
plot(a,b,’r:’);
164 Semnale şi sisteme. Îndrumar de laborator
hold off
Exerciţiul 4.18
%Se dau Tc, sigma, Tt ;
clc;
clear all;
Tc=0.6;
Tt=3;
sigma=0.1;
hold on;
w_n=1.8/Tc;
alpha=pi/2:0.01:3*pi/2;
x=w_n*cos(alpha);
y=w_n*sin(alpha);
plot(x,y);
sigma_d=4/Tt;
y=-5:0.01:5;
for i=1:length(y)
plot(-sigma_d, y(i))
end
zeta_=-(log(sigma))/sqrt((pi^2+(log(sigma))^2))
m=tan(pi/2-asin(zeta_));
x=-3.5:0.01:0;
y=m*x;
plot(x,y);
m=-tan(pi/2-asin(zeta_));
y=m*x; plot(x,y);
plot(-4,1,’r+’);
plot(-4,-1,’r+’);
num=[17];
den=[1 8 17];
hold off
figure(2);
H=tf(num, den);
step(H);
figure(1);
hold on;
plot(-1,1,’gp’);
plot(-1,-1,’gp’);
hold off;
num=[2];
den=[1 2 2];
hold off
figure(3);
H=tf(num, den);
step(H);
Exerciţiul 4.20
Indicaţie:
H1=tf([0.1 5],[1 0]);
H2=tf([100 100],[1 2 100]);
figure(1)
step(feedback(series(H1,H2),1))
166 Semnale şi sisteme. Îndrumar de laborator
Exerciţiul 4.21
function zerou(zeta,alfa,w_n)
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
figure(1)
[y,t]=step(H);
plot(w_n*t,y)
figure(2)
[y,t]=impulse(H);
plot(w_n*t,y)
***********************************************************
varianta cu mesh
***********************************************************
function zeroumesh(zeta,w_n)
t=1:0.01:30;
for alfa=1:21
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
[y,t]=impulse(H,t);
z(alfa,:)=y’;
end
alfa=1:21;
figure(1)
mesh(w_n*t,alfa,z)
t=1:0.01:30;
for alfa=1:21
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
[y,t]=step(H,t);
z(alfa,:)=y’;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 167
end
alfa=1:21;
figure(2)
mesh(w_n*t,alfa,z)
Exerciţiul 4.22
function pol(zeta,alfa,w_n)
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
figure(1)
[y,t]=step(H);
plot(w_n*t,y)
figure(2)
[y,t]=impulse(H);
plot(w_n*t,y)
*******************************************************
varianta cu mesh
*******************************************************
function polmesh(zeta,w_n)
t=1:0.01:30;
for alfa=1:10
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
[y,t]=impulse(H,t);
z(alfa,:)=y’;
end
alfa=1:10;
figure(1)
mesh(w_n*t,alfa,z)
t=1:0.01:30;
for alfa=1:10
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
[y,t]=step(H,t);
z(alfa,:)=y’;
end
alfa=1:10;
figure(2)
mesh(w_n*t,alfa,z)
168 Semnale şi sisteme. Îndrumar de laborator
H = tf(num,den);
hold on;
bodeasym(H,’r’)
bode(H)
Exerciţiul 5.2
num = [10 0 10];
den = conv([1],[0.11]);
den = conv(den,[0.05 1]);
H = tf(num,den)
bode(H)
Exerciţiul 5.3
function ex3(alfa, beta)
num=[alfa 1];
den=[beta 1];
H=tf(num,den)
hold on
bodeasym(H)
bode(H)
% modulul este 1. Graficul fazei se pastreaza.
% Se considera 2 cazuri : alfa<beta, alfa>beta.
Exerciţiul 5.4
function ex4(a)
num = [1 -a];
den = [1 a];
H = tf(num,den)
bode(H)
Exerciţiul 5.8
% element de ordin 2
% parametrizat in functie de zeta in R (Bode)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 169
w=1:0.1:101;
for zeta=-50:50
H=tf(4,[1 4*(zeta-1) 4]);
[mag,phase]=bode(H,w);
mag_dB=20*log10(mag);
for i=1:length(w)
X(51+zeta,i)=mag_dB(1,1,i);
Y(51+zeta,i)=phase(1,1,i);
end
end
zeta=-50:50;
mesh(w,zeta,X)
figure; mesh(w,zeta,Y)
Exerciţiul 5.9
a.
t = linspace(-3,3,1000);
x = 1 + cos(2*pi*t)/2 + cos(4*pi*t) + 2/3*cos(6*pi*t);
plot(t,x); hold on; grid
xlabel(’Timp’);
ylabel(’x(t)’);
title(’Graficul semnalului x(t)’);
b.
om = logspace(-2,2,100);
H = 1./sqrt(om.^2+1);
H = db(H);
semilogx(om,H,’LineWidth’,2); grid
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)
axis([.01 100 -40 0]);
Exerciţiul 5.10
a.
om = logspace(-2,2,100);
170 Semnale şi sisteme. Îndrumar de laborator
for RC=1:7
H = 1./sqrt((RC*om).^2+1);
H = db(H);
P = atan(-om*RC);
subplot(121);
semilogx(om,H,’LineWidth’,2); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)
subplot(122);
semilogx(om,360*P/2/pi); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Faza \phi(\omega) (grade)’)
title(’Argumentul raspunsului in frecventa’)
end
b.
RC = 5;
om = logspace(-3,3,100);
H = RC*om./sqrt((RC*om).^2+1);
H = db(H);
P = atan(1./(RC*om));
subplot(211)
semilogx(om,H,’LineWidth’,2); grid
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)
axis([.001 1000 -40 10]);
subplot(212)
semilogx(om,360*P/2/pi); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Faza \phi(\omega) (grade)’)
title(’Argumentul raspunsului in frecventa’)
c.
H = tf(1,[0.1 1]);
t = -1:0.001:10;
u = zeros(1,length(t));
e = randn(1,length(t))/30;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 171
u(t>=0)=1;
u = u+e;
lsim(H,u,t); grid
Exerciţiul 5.11
a.
omc = 2;
t = linspace(-15,15,10000);
om = linspace(-5,5,1000);
H = zeros(1,length(om));
H(abs(om)<=omc) = 1;
h = sin(omc*t)./(pi*t);
subplot(212)
plot(t,h); grid
title(’Functia pondere a filtrului trece banda’)
xlabel(’Timp (s)’);
ylabel(’h(t)’);
subplot(211)
plot(om,H); grid
axis([-5 5 -1 2]);
title(’Raspunsul in frecventa’);
xlabel(’\omega (rad/s)’);
ylabel(’H(\omega)’);
b.
om = logspace(-3,3,1000);
P = atan2(2*om,om.^2-1);
semilogx(om,180*P/pi); grid
title(’Faza pentru Filtrul Trece Tot’);
xlabel(’\omega (rad/s)’);
ylabel(’\phi(\omega) (grade)’);
Exerciţiul 5.12
a.
n = -5:5;
h = zeros(1,length(n));
h(n==-1) = 1/3; h(n==0) = 1/3; h(n==1) = 1/3;
172 Semnale şi sisteme. Îndrumar de laborator
om = linspace(-2*pi-1,2*pi+1,1000);
H = 1/3*abs(1+2*cos(om));
figure(1)
subplot(211)
stem(n,h,’fill’); grid
title(’Functia pondere pentru filtrul nerecursiv dat’);
xlabel(’n (esantioane)’);
ylabel(’h[n]’)
subplot(212)
plot(om,H); grid
title(’Raspunsul in frecventa’);
xlabel(’\omega (rad/s)’);
ylabel(’H(e^{j\omega})’);
function ex1a(n)
% Trasam hodograful sistemului H(s)=k/(s^n+1)
for K=0:10
H=tf([K],[1 zeros(length(n)-1) 1]);
nyquist(H);
hold on;
end
Exerciţiul 6.2
for K=0:10
H=tf([K],conv([1 0],[1 1]));
nyquist(H,{0.11,10000});
hold on;
end
% Se observa dependenta de K a graficului
function ex3a(pmax)
den=1;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 173
for p=0:pmax
den=conv(den,[1 p]);
end
for K=0:10
hold on;
H=tf([K],den);
nyquist(H);
end
%Se pastreaza dependenta de K.
Exerciţiul 6.4
for w=0:0.001:0.9;
hold on;
u=1/(1-w^2);
v=w/(1-w^2);
plot(u,v)
end
grid on
hold on;
for w=1.1:0.001:10;
hold on;
u=1/(1-w^2);
v=w/(1-w^2);
plot(u,v)
end
title(’Hodograf’)
xlabel(’U’)
ylabel(’V’)
Exerciţiul 6.5
%cazul all-pass.
function ex6(a)
H=tf([1 -a],[1 a]);
nyquist(H)
Exerciţiul 6.6
H1=tf([1],[1 0])
nyquist(H1); hold on;
H2=tf([1 -1],[1 1]);
H=series(H2,H1)
nyquist(H);
174 Semnale şi sisteme. Îndrumar de laborator
Exerciţiul 6.7
function ex7(K,tau)
for w=0.1:0.001:10;
hold on;
u=-K*sin(w*tau)/w;
v=-K*cos(w*tau)/w;
plot(u,v)
end
grid on
ylabel(’Axa imaginara’)
xlabel(’Axa reala’)
Exerciţiul 6.8
function prob(k)
s=tf(’s’);
T1=1; T2=3;
H=k/(s*(T1*s+1)*(T2*s+1));
Ho=feedback(H,1);
subplot(3,1,1);
nyquist(H);
subplot(3,1,2);
step(Ho);
subplot(3,1,3);
[G,w]=freqs([k],[3 4 1 1]);
plot(w/pi,abs(G));
Exerciţiul 6.9
function ex69(N)
ka=50; ki=10; kI=50;
J=0.006; kb=0.0706;
n=0.01; Ra=10;
A=10; k0=100;
s=tf(’s’);
G=ka*ki*n*kI*N/(s*(Ra*J*s+ki*kb)*(A*s+k0));
nyquist(G);
figure; step(feedback(G,1),20)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 175
Exerciţiul 6.10
function ex610(k)
s=tf(’s’);
G=k/((s+4)*(s+5));
H1=feedback(G,1);
H2=feedback(G,-1);
Hd=series(H1,H2)
H0=feedback(Hd,-1);
nyquist(Hd)
figure; step(H0,40)
Exerciţiul 6.11
function ex611(k)
s=tf(’s’);
C=k;
P=1/(s^2+2*s+2);
F=1/(s+1);
Hd=P*C;
H0=feedback(Hd,F);
subplot(2,1,1); nyquist(Hd);
subplot(2,1,2); step(H0)
Exerciţiul 6.12
function ex15(p)
s=tf(’s’);
H1=1/(s^2*(s+p));
nyquist(H1);
function ex15(p)
s=tf(’s’);
H2=1/(s^4*(s+p));
nyquist(H2);
function ex15(p)
s=tf(’s’);
H3=tf([1],[1 p],’Inputdelay’,2)
nyquist(H3);
Exerciţiul 6.13
function nyqlog(sys)
end
R0=R;
if Np_imag
for k=1:length(impoles)
R=mindist(impoles(k),poles,R0);
end
end
R0=R;
if (numdim)
for k=1:length(impoles)
R=mindist(impoles(k),zeroes,R0);
end
end
frac=0.01;
if Np_origin frac = (0.01)^(1/Np_origin); end
R=frac*R;
s1=s;
spiralfactor=1.5;
spiralfactor=1/spiralfactor;
set(gcf,’Color’,[1 1 1]);
s = scurve(s1,R,spiralfactor, Np_origin, Np_imag,impoles);
%plot(s); hold on;
%break;
%plot([0 1],[R 1]);
s=conj(s);
[zmirr,ncount] = nygraph(sys,s,0);
hold on;
spiralfactor=1/spiralfactor;
s = scurve(s1,R,spiralfactor, Np_origin, Np_imag,impoles);
[zmain,ncount] = nygraph(sys,s,1);
% nlgrid([6 3]);
%******************************************
%****** SUB-FUNCTIONS: ********************
function arrow(z2,z1,col)
% dz=0.12*exp(j*angle(z2-z1));
dz=0.11*exp(j*angle(z2-z1));
Capitolul A. Programe Matlab pentru exerciţii rezolvate 181
z_arrow_end1=z2-dz*exp(j*pi/4);
z_arrow_end2=z2-dz*exp(-j*pi/4);
plot([real(z2) real(z_arrow_end1)],...
[imag(z2) imag(z_arrow_end1)],col,’LineWidth’,1.5);
plot([real(z2) real(z_arrow_end2)],...
[imag(z2) imag(z_arrow_end2)],col,’LineWidth’,1.5);
%***********************************************
function circle(zcentre,radius,plotdata)
angles=0:pi/72:2*pi;
circ=zcentre+radius.*(cos(angles)+j.*sin(angles));
plot(circ,plotdata);
%***********************************************
function phase_lines(n,rstart,rend,plotdata)
hold on;
angles=0:2*pi/n:2*pi;
lines=ones(n,2);
for k=1:n
zh = cos(angles(k))+j*sin(angles(k));
lines(k,1)= rstart*zh;
lines(k,2)= rend*zh;
plot(real(lines(k,:)),imag(lines(k,:)),plotdata);
end
%***********************************************
s=s1;
end
%***********************************************
logabsplot=logabs(1:ncount)./120.+1;
zplot=z(1:ncount).*logabsplot./absz(1:ncount);
if (plotdata)
plot(zplot,’LineWidth’,2.2);
else
plot(zplot,’k--’,’LineWidth’,1.7);
end
% ************************
eps=1e-6;
zmirr(1:end)=zmirr(end:-1:1);
zmirr=zmirr(2:end-1);
zall=[zmirr;zmain;zmirr(1)];
if abs(imag(zall(1))) < eps
zall=[zall;zall(2)];
end
ncirc=0;
npoles_on_im_axis=0;
z3=zall(end);
for k=3:length(zall)
z4=z3;
z1=zall(k);z2=zall(k-1); z3=zall(k-2);
abz1=abs(z1+1);abz2=abs(z2+1); abz3=abs(z3+1);
zre1=real(z1); zre2=real(z2);
% Checking if graph is too close to -1:
dl1= fromline2minusone(z1,z2);
dl2= fromline2minusone(z2,z3);
184 Semnale şi sisteme. Îndrumar de laborator
dl3= fromline2minusone(z3,z4);
closest_now = abz1 > abz2 && abz3 > abz2;
if closest_now && min([dl1 dl2 dl3]) < 1e-5 ...
&& min([abz1 abz2 abz3])< 0.001
npoles_on_im_axis=npoles_on_im_axis+1;
end
% end checking if graph is too close to -1.
% ************************
mdist = initdist;
kmax=length(vector);
for k=1:kmax
d0=abs(vector(k)-point);
if (d0 ~= 0) mdist = min(d0, mdist); end
end
dist=mdist;
% ************************
function nlgrid(absNdB)
% absNdB = [6 3 1 0.5 0.25 0 -0.5 -1 -3 -6]
absNdB = absNdB’;
n=length(absNdB);
absN=10.^(absNdB/20);
radii=1./absN;
nangles=200;
angles=0:pi/nangles:2*pi;
angles=angles’;
for k=1:n
circ=-1.+radii(k).*(cos(angles)+j.*sin(angles));
absc = abs(circ)+1e-14;
logabs = 20.*log10(absc);
for p=1:nangles
if (logabs(p) <= -120) logabs(p) = -120; end
end
logabsplot=logabs./120.+1;
cplot=circ.*logabsplot./absc;
plot(cplot,’k-’,’LineWidth’,0.5);
end
% ********************************
% ********************************
Postfaţă
Prezentăm aici principalele referinţe care au stat la baza acestui ı̂ndrumar
de laborator. Încurajăm pe această cale studenţii să caute şi să parcurgă ı̂n
profunzime aceste referinţe, ı̂n limita timpului disponibil şi direct proporţional
cu interesul manifestat pentru această disciplină. De asemenea, propunem
tinerilor cititori să caute şi alte surse de studiu, larg răspândite ı̂n mediul
virtual.
Autorii au ı̂ncercat să ofere studenţilor o pregătire de nivel ı̂nalt. În consecin-
ţă, cursul care a stat la baza acestui ı̂ndrumar este Signals and Systems [1],
predat de cunoscutul profesor Allan Oppenheim de la MIT, ı̂n primăvara lui
2011. Cursul este disponibil online pe platforma ocw.mit.edu. De asemenea,
probleme, aplicaţii şi concepte cheie au fost preluate din cartea [2]. Şi alte cărţi
renumite ı̂n literatura de specialitate (domeniul Automatică) au fost folosite
pentru conceperea acestui ı̂ndrumar: [3, 4, 5, 6].
O parte din exerciţiile Capitolului 1 au fost inspirate de tutorialul Matlab
oficial [7]. Capitolul 2 conţine idei dintr-un ı̂ndrumar de laborator al Univer-
sităţii din California la Berkeley [8]. În Capitolele 3 şi 4 s-au folosit referinţele
[3, 4, 6]. Problemele legate de filtrare şi de răspuns ı̂n frecvenţă al sistemelor
dinamice din Capitolele 5 şi 6 au fost inspirate din [2, 3]. Capitolul 7 conţine
idei şi concepte din [2].
O bună parte din exerciţii sunt originale şi/sau extinderi, provenite din
dorinţa autorilor de a preda conţinutul materiei ı̂ntr-o manieră accesibilă
studenţilor. De asemenea, autorii doresc să mulţumească pe această cale
studenţilor şi colaboratorilor din ultimii 10 ani care au ajutat la concepe-
rea, redactarea şi ı̂mbunătăţirea laboratoarelor de Semnale şi Sisteme, printre
care drd. Cristian Flutur, dr. Tudor Ionescu, dr. Raluca Marinică (Andrei),
dr. Şerban Sabău.
Sperăm ca acest ı̂ndrumar de laborator să fie de real folos ı̂n studiul con-
ceptelor specifice Semnalelor şi Sistemelor, subiect care constituie piatra de
temelie a Automaticii ca ştiinţă, a Ingineriei Electrice ı̂n particular şi a Teoriei
Sistemelor ı̂n general.
187
Bibliografie
[1] Alan V. Oppenheim. RES 6-007. Signals and Systems, Spring 2011. MIT
OpenCourseWare: Massachusetts Institute of Technology, http://ocw.
mit.edu/resources/res-6-007-signals-and-systems-spring-2011.
[2] Alan V. Oppenheim, Alan S. Willsky, and S. Hamid Nawab. Signals and
Systems. Prentice Hall, Inc. Upper Saddle River, 2nd edition, 1996.
[4] Richard C. Dorf and Robert H. Bishop. Modern Control Systems. Prentice
Hall, 11th edition, Iulie 2008.
[5] Joseph DiStefano, Allen Stubberud, and Ivan Williams. Feedback and Con-
trol Systems. Schaum’s Outline Series. McGraw-Hill, 1st edition, 1994.
[8] Edward A. Lee and Pravin Varaiya. Labortory Manual to accompany Sig-
nals and Systems. University of California at Berkeley. Addion Wesley,
2003.
189