This shows you the differences between two versions of the page.
ps:labs:02 [2022/10/04 16:54] ionut.gorgos |
ps:labs:02 [2022/11/08 14:54] (current) ionut.gorgos |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Laboratorul 02. ===== | ===== Laboratorul 02. ===== | ||
- | /*<hidden>*/ | + | /*<hidden> */ |
==== Semnale și sisteme de bază ==== | ==== Semnale și sisteme de bază ==== | ||
La curs am discutat despre semnale de bază și sisteme. În continuare vom face câteva exerciții legate de aceste noțiuni. | La curs am discutat despre semnale de bază și sisteme. În continuare vom face câteva exerciții legate de aceste noțiuni. | ||
+ | Prezentarea PowerPoint pentru acest laborator poate fi găsită aici: [[https://docs.google.com/presentation/d/1ksWeqb6o80ug9N2kRjKxaN7jvdwDWklC|aici]] | ||
- | === Exercițiul 1 [2p] === | + | === Exercițiul 1 === |
+ | [<color red>2p</color>] | ||
Pentru a transmite simboluri (ex: litere din alfabet) modemurile PC-urilor folosesc diferite frecvențe și mai multe niveluri de amplitudine. O transmisiune se face într-o perioadă de timp T (interval de transmisie) și poate conține o suprapunere de mai multe semnale, e.g. suma a două semnale de amplitudine și frecvență diferite: | Pentru a transmite simboluri (ex: litere din alfabet) modemurile PC-urilor folosesc diferite frecvențe și mai multe niveluri de amplitudine. O transmisiune se face într-o perioadă de timp T (interval de transmisie) și poate conține o suprapunere de mai multe semnale, e.g. suma a două semnale de amplitudine și frecvență diferite: | ||
Line 12: | Line 14: | ||
$x(t) = A_{1} \cdot sin(2\cdot \pi\cdot f_{1}\cdot t) + A_{2} \cdot sin(2\cdot \pi\cdot f_{2}\cdot t)$ | $x(t) = A_{1} \cdot sin(2\cdot \pi\cdot f_{1}\cdot t) + A_{2} \cdot sin(2\cdot \pi\cdot f_{2}\cdot t)$ | ||
- | - Care este cel mai mic interval de transmisie care are sens să fie folosit, dacă $f_1 = 1600$ Hz și $f_2 = 1800$ Hz? Cu alte cuvinte, cât ar trebui să fie $T$ astfel încât semnalul să aibă un număr întreg de cicluri? [1p] | + | - Care este cel mai mic interval de transmisie care are sens să fie folosit, dacă $f_1 = 1600$ Hz și $f_2 = 1800$ Hz? Cu alte cuvinte, cât ar trebui să fie $T$ astfel încât semnalul să aibă un număr întreg de cicluri? [<color red>1p</color>] |
- | - Afişaţi cu ajutorul MATLAB semnalul produs de modem pe parcursul mai multor intervale de transmisie consecutive. Aşa cum am învăţat în laboratorul trecut adăugaţi titlu şi etichete plot-ului. [1p] | + | - Afişaţi cu ajutorul MATLAB semnalul produs de modem pe parcursul unui interval de transmisie. Aşa cum am învăţat în laboratorul trecut adăugaţi titlu şi etichete plot-ului. [<color red>1p</color>] |
<note tip> | <note tip> | ||
Line 22: | Line 24: | ||
După ce ați făcut plot-ul puteți pune un titlu figurii folosind //title//, iar pentru etichete //xlabel// și //ylabel//. | După ce ați făcut plot-ul puteți pune un titlu figurii folosind //title//, iar pentru etichete //xlabel// și //ylabel//. | ||
</note> | </note> | ||
- | === Exerciţiul 2 [2.5p] === | + | === Exerciţiul 2 === |
+ | [<color red>2.5p</color>] | ||
La curs am văzut că putem descompune semnalele într-o sumă de mai multe semnale de bază (ramp, step etc.). Pentru acest exerciţiu veţi încerca să folosiţi semnalele 'step' şi 'ramp' pentru a crea semnalul reprezentat cu negru în acest slide: | La curs am văzut că putem descompune semnalele într-o sumă de mai multe semnale de bază (ramp, step etc.). Pentru acest exerciţiu veţi încerca să folosiţi semnalele 'step' şi 'ramp' pentru a crea semnalul reprezentat cu negru în acest slide: | ||
Line 56: | Line 59: | ||
Pentru asta ar trebui să: | Pentru asta ar trebui să: | ||
- | - creaţi un semnal 'unit step' numit ustep.m, care practic întoarce o secvenţă de N valori de 1 [0.5p] | + | - creaţi un semnal 'unit step' numit ustep.m, care practic întoarce o secvenţă de N valori de 1 [<color red>0.5p</color>] |
- să setaţi numărul de puncte la $N = 200$ şi delay-ul la $T = 100$ | - să setaţi numărul de puncte la $N = 200$ şi delay-ul la $T = 100$ | ||
- | - să creaţi cele 3 semnale (care urmează să fie combinate) folosind 'ramp' şi 'ustep' cu $N$ şi $T$ de mai sus. [1p] | + | - să creaţi cele 3 semnale (care urmează să fie combinate) folosind 'ramp' şi 'ustep' cu $N$ şi $T$ de mai sus. [<color red>1p</color>] |
* Puteţi crea secvenţa de input ca: <code matlab> x=1:N; </code> | * Puteţi crea secvenţa de input ca: <code matlab> x=1:N; </code> | ||
* Puteţi crea primul semnal ca: <code matlab> s1 = ramp(N) </code> | * Puteţi crea primul semnal ca: <code matlab> s1 = ramp(N) </code> | ||
* Puteţi întârzia un semnal cu $T$ în felul următor: <code matlab> [zeros(1,T), s(1:N-T)]; </code> | * Puteţi întârzia un semnal cu $T$ în felul următor: <code matlab> [zeros(1,T), s(1:N-T)]; </code> | ||
- combinaţi cele 3 semnale | - combinaţi cele 3 semnale | ||
- | - afişaţi toate cele 4 semnale (cele 3 individuale şi combinaţia lor) [1p] | + | - afişaţi toate cele 4 semnale (cele 3 individuale şi combinaţia lor) [<color red>1p</color>] |
* folosiţi culori diferite (eventual grosimi de linie diferite) pentru fiecare semnal şi afişaţi legenda pentru a diferenţia semnalele. | * folosiţi culori diferite (eventual grosimi de linie diferite) pentru fiecare semnal şi afişaţi legenda pentru a diferenţia semnalele. | ||
Line 88: | Line 91: | ||
- | === Exerciţiul 3 [2p] === | + | === Exerciţiul 3 === |
+ | [<color red>2p</color>] | ||
La curs am văzut că datorită egalității lui Euler putem scrie o exponenţială complexă ca o sumă de sin şi cos: | La curs am văzut că datorită egalității lui Euler putem scrie o exponenţială complexă ca o sumă de sin şi cos: | ||
Line 110: | Line 114: | ||
Încercaţi să arătaţi asta în MATLAB, făcând următoarele: | Încercaţi să arătaţi asta în MATLAB, făcând următoarele: | ||
* Folosiţi secvenţa de input <code matlab> t = [0, pi/6, pi/4, pi/3, pi/2]; </code> | * Folosiţi secvenţa de input <code matlab> t = [0, pi/6, pi/4, pi/3, pi/2]; </code> | ||
- | * Afişaţi exponenţiala complexă /* s1=e^(j*t) */ $s_1 = e^{j\cdot t}$, e.g. <code matlab> plot(exp(1i*t), 'ro'); </code> | + | * Afişaţi exponenţiala complexă /* s1=e^(j*t) */ $s_1 = e^{j\cdot t}$, e.g. <code matlab> plot(exp(1j*t), 'ro'); </code> |
* Afişaţi exponenţiala complexă /* s2=e^(-j*t) */ $s_2 = e^{-j \cdot t}$ cu o altă culoare | * Afişaţi exponenţiala complexă /* s2=e^(-j*t) */ $s_2 = e^{-j \cdot t}$ cu o altă culoare | ||
* Calculaţi media celor 2 exponenţiale /* ss=(s1+s2)/2 */ $s_s = \frac{s_1 + s_2}{2}$, i.e. cos(t) | * Calculaţi media celor 2 exponenţiale /* ss=(s1+s2)/2 */ $s_s = \frac{s_1 + s_2}{2}$, i.e. cos(t) | ||
- | * Afisaţi secvenţa rezultată în imaginar folosid real(ss) ca valori x şi imag(ss) ca valori y | + | * Afișaţi secvenţa rezultată în planul complex folosind real(ss) ca valori x şi imag(ss) ca valori y |
* Verificaţi dacă s1, s2 şi ss arată cum v-aţi fi aşteptat! | * Verificaţi dacă s1, s2 şi ss arată cum v-aţi fi aşteptat! | ||
+ | <note important>Pentru numărul imaginar //j//, în MATLAB cel mai bine este să folosiți notația //1i// sau //1j//, pentru a evita folosirea accidentală a unei variabile denumite anterior, //i// sau //j//.</note> | ||
<hidden> | <hidden> | ||
=== Exerciţiul 4 [1.5p] === | === Exerciţiul 4 [1.5p] === | ||
Line 129: | Line 134: | ||
</hidden> | </hidden> | ||
- | === Exerciţiul 4 [3.5p] === | + | === Exerciţiul 4 === |
+ | [<color red>3.5p</color>] | ||
Avem un sistem de feedback precum cel din imaginea următoare: | Avem un sistem de feedback precum cel din imaginea următoare: | ||
Line 143: | Line 149: | ||
* valoarea de input a sistemului de pilot automat, x, este o secvenţă de tipul [60, 60, ..., 60] | * valoarea de input a sistemului de pilot automat, x, este o secvenţă de tipul [60, 60, ..., 60] | ||
* primul sistem, S1, cunoaște viteza curentă y(i) şi primește ca parametru diferenţa e(i). Bazându-se pe acestea, actualizează viteza curentă după cum urmează: | * primul sistem, S1, cunoaște viteza curentă y(i) şi primește ca parametru diferenţa e(i). Bazându-se pe acestea, actualizează viteza curentă după cum urmează: | ||
- | * Dacă e(i) > 10, atunci y(i+1) = y(i) + 10 | + | * Dacă e(i) > 10, atunci y(i+1) = y(i) + 5 |
* altfel dacă e(i) > 0, atunci y(i+1) = y(i) + 1 | * altfel dacă e(i) > 0, atunci y(i+1) = y(i) + 1 | ||
* altfel dacă e(i) == 0, atunci y(i+1) = y(i) | * altfel dacă e(i) == 0, atunci y(i+1) = y(i) | ||
Line 161: | Line 167: | ||
Rulaţi sistemul de N = 20 ori şi afişaţi outputul sistemului. | Rulaţi sistemul de N = 20 ori şi afişaţi outputul sistemului. | ||
- | /*</hidden>*/ | + | /* </hidden> */ |