This shows you the differences between two versions of the page.
ps:labs_python:02 [2023/10/10 18:25] ionut.gorgos |
ps:labs_python:02 [2024/10/09 15:04] (current) darius.necula [Semnale și sisteme de bază] |
||
---|---|---|---|
Line 14: | Line 14: | ||
- 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>] | - 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 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. Puteți considera amplitudinile egale. [<color red>1p</color>] | + | - Afişaţi semnalul produs de modem pe parcursul a trei intervale de transmisie. Pentru primul interval de transmisie puteți folosi $A_1 = 0$ și $A_2 = 1$, pentru al doilea interval $A_1 = 1$ și $A_2 = 1$, iar pentru al treilea interval $A_1 = 1$ și $A_2 = 0$. Aşa cum am învăţat în laboratorul trecut adăugaţi titlu şi etichete plot-ului. [<color red>1p</color>] |
+ | Ar trebui să obțineți ceva similar: | ||
+ | {{ :ps:labs_python:semnal_modem.png?600 |}} | ||
<note tip> | <note tip> | ||
Pentru $\pi$ puteți folosi comanda //np.pi// din biblioteca //numpy//. | Pentru $\pi$ puteți folosi comanda //np.pi// din biblioteca //numpy//. | ||
+ | Pentru concatenare puteți folosi [[https://numpy.org/doc/stable/reference/generated/numpy.concatenate.html|np.concatenate]] sau [[https://numpy.org/doc/stable/reference/generated/numpy.hstack.html|np.hstack]] | ||
Puteți afișa un semnal folosind comanda //plt.plot// din interfața //matplotlib.pyplot//. | Puteți afișa un semnal folosind comanda //plt.plot// din interfața //matplotlib.pyplot//. | ||
Line 46: | Line 49: | ||
Pentru a apela funcția 'ramp' din //ramp.py// într-un alt fișier .py (care se află în același director) puteți folosi următorul cod: | Pentru a apela funcția 'ramp' din //ramp.py// într-un alt fișier .py (care se află în același director) puteți folosi următorul cod: | ||
- | <code python ramp.py> | + | <code python ex2.py> |
from ramp import ramp | from ramp import ramp | ||
Line 132: | Line 135: | ||
<note important>Pentru numărul imaginar //j//, în Python se folosește notația //1j//.</note> | <note important>Pentru numărul imaginar //j//, în Python se folosește notația //1j//.</note> | ||
+ | <note tip>Folosiți codul următor pentru a desena un cerc trigonometric, peste care veți reprezenta valorile calculate mai sus | ||
+ | <code python> | ||
+ | import numpy as np | ||
+ | import matplotlib.pyplot as plt | ||
+ | |||
+ | tt = np.arange(0, 2 * np.pi, 0.1) | ||
+ | figure1 = plt.figure('Figura 1', figsize=(10, 10)) | ||
+ | complex_tt = np.exp(1j * tt) | ||
+ | x = np.real(complex_tt) | ||
+ | y = np.imag(complex_tt) | ||
+ | plt.plot(x, y, 'k.') | ||
+ | plt.plot(0, 0, 'kx') | ||
+ | </code> | ||
+ | </note> | ||
<hidden> | <hidden> | ||
=== Exerciţiul 4 [1.5p] === | === Exerciţiul 4 [1.5p] === | ||
Line 150: | Line 167: | ||
Avem un sistem de feedback precum cel din imaginea următoare: | Avem un sistem de feedback precum cel din imaginea următoare: | ||
- | {{:ps:labs:feedback.png?400|}} | + | {{:ps:labs:feedback.png?400|}} |
Să presupunem că folosim acest sistem pentru sistemul de pilot automat al maşinii, unde x(t) este o constantă ce reprezintă viteza dorită, iar y(t) este viteza maşinii măsurată de vitezometru. În această aplicaţie, sistemul 2 este sistemul identitate (intrare = ieşire). | Să presupunem că folosim acest sistem pentru sistemul de pilot automat al maşinii, unde x(t) este o constantă ce reprezintă viteza dorită, iar y(t) este viteza maşinii măsurată de vitezometru. În această aplicaţie, sistemul 2 este sistemul identitate (intrare = ieşire). |