This shows you the differences between two versions of the page.
|
ps:labs_python:02 [2023/10/11 13:01] ionut.gorgos |
ps:labs_python:02 [2025/10/05 15:40] (current) darius.necula |
||
|---|---|---|---|
| Line 20: | Line 20: | ||
| <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 26: | Line 27: | ||
| </note> | </note> | ||
| === Exerciţiul 2 === | === Exerciţiul 2 === | ||
| - | [<color red>2.5p</color>] | + | [<color red>2p</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 135: | Line 136: | ||
| <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> | ||
| <hidden> | <hidden> | ||
| - | === Exerciţiul 4 [1.5p] === | + | <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> | ||
| + | |||
| + | === Exerciţiul 4 === | ||
| + | [<color red>2p</color>] | ||
| La curs am discutat despre sisteme paralele. Acum vom folosi un exemplu simplu de sistem paralel folosit pentru a crea efectul de ecou. Ideea de bază e ca un sistem să replice semnalul de intrare în timp ce un altul îl întârzie. La final cele două sunt adunate. | La curs am discutat despre sisteme paralele. Acum vom folosi un exemplu simplu de sistem paralel folosit pentru a crea efectul de ecou. Ideea de bază e ca un sistem să replice semnalul de intrare în timp ce un altul îl întârzie. La final cele două sunt adunate. | ||
| Line 144: | Line 162: | ||
| * Adunați cele 2 semnale. | * Adunați cele 2 semnale. | ||
| * Ascultaţi semnalul original și pe cel rezultat pentru a auzi diferenţa. Pentru a asculta semnalele folosiţi funcţia 'sound'. | * Ascultaţi semnalul original și pe cel rezultat pentru a auzi diferenţa. Pentru a asculta semnalele folosiţi funcţia 'sound'. | ||
| - | |||
| - | </hidden> | ||
| === Exerciţiul 4 === | === Exerciţiul 4 === | ||
| - | [<color red>3.5p</color>] | + | [<color red>2p</color>] |
| 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). | ||
| Line 167: | Line 183: | ||
| Construiţi sistemul S1 ca o funcţie cu 2 parametrii (viteza_curentă, e), care afişează următoarea viteză curentă ca mai sus. | Construiţi sistemul S1 ca o funcţie cu 2 parametrii (viteza_curentă, e), care afişează următoarea viteză curentă ca mai sus. | ||
| + | <hidden> | ||
| În Python puteţi folosi o instrucţiune for pentru asta: | În Python puteţi folosi o instrucţiune for pentru asta: | ||
| Line 178: | Line 195: | ||
| end | end | ||
| </code> | </code> | ||
| + | </hidden> | ||
| 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> */ | ||