This shows you the differences between two versions of the page.
|
ps:labs_python_gpt:05 [2025/10/27 19:07] darius.necula |
ps:labs_python_gpt:05 [2025/10/27 19:27] (current) darius.necula |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Laboratorul 05. ===== | ===== Laboratorul 05. ===== | ||
| - | <hidden> | + | |
| - | ==== Semnale digitale - procesarea simplă, eşantionarea și modularea în amplitudine ==== | + | ==== Semnale digitale - procesarea simplă, eşantionarea și subeşantionarea ==== |
| În acest laborator vom începe să experimentăm efectele semnalelor eşantionate şi procesarea semnalelor digitale. | În acest laborator vom începe să experimentăm efectele semnalelor eşantionate şi procesarea semnalelor digitale. | ||
| Line 11: | Line 11: | ||
| === Exerciţiul 1 -- Procesarea simplă === | === Exerciţiul 1 -- Procesarea simplă === | ||
| - | [<color red>5p</color>] | + | [<color red>2p</color>] |
| Vom încerca să implementăm un sistem de procesare digitală simplă, care funcţionează după cum urmează: | Vom încerca să implementăm un sistem de procesare digitală simplă, care funcţionează după cum urmează: | ||
| Line 19: | Line 19: | ||
| Urmăriţi aceşti paşi: | Urmăriţi aceşti paşi: | ||
| - | - Creaţi câteva secvenţe digitale care reprezintă sinusoide de diferite frecvenţe (1, 2, 10, 20, 100 Hz) și amplitudine 1, la aceeaşi frecvenţă de eşantionare (folosiţi acelaşi număr de eşantioane, e.g. $N=128$). [<color red>1p</color>] | + | - Creaţi câteva secvenţe digitale care reprezintă sinusoide de diferite frecvenţe (1, 2, 10, 20, 100 Hz) și amplitudine 1, la aceeaşi frecvenţă de eşantionare (folosiţi acelaşi număr de eşantioane, e.g. $N=128$). |
| - | - Implementaţi sistemul de procesare menţionat mai sus. [<color red>1p</color>] | + | - Implementaţi sistemul de procesare menţionat mai sus.[<color red>1p</color>] |
| - | - Creaţi secvenţele corespunzătoare de ieşire. [<color red>1p</color>] | + | - Creaţi secvenţele corespunzătoare de ieşire. |
| - | - Plotaţi toate secvenţele de intrare/ieşire. [<color red>1p</color>] | + | - Plotaţi toate secvenţele de intrare/ieşire. [<color red>0.5p</color>] |
| - Ce fel de sistem de procesare este acesta ? | - Ce fel de sistem de procesare este acesta ? | ||
| - Cum ați putea implementa sistemul de procesare menționat mai sus, folosind funcția [[https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lfilter.html|lfilter]] din biblioteca //scipy//? (opțional) | - Cum ați putea implementa sistemul de procesare menționat mai sus, folosind funcția [[https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lfilter.html|lfilter]] din biblioteca //scipy//? (opțional) | ||
| - | - Adăugați la sinusoidele generate mai sus, un zgomot alb de deviație standard 0.1 și medie 0. Plotați din nou toate secvenţele de intrare/ieşire.[<color red>1p</color>] | + | - Adăugați la sinusoidele generate mai sus, un zgomot alb de deviație standard 0.1 și medie 0. Plotați din nou toate secvenţele de intrare/ieşire.[<color red>0.5p</color>] |
| <note tip> | <note tip> | ||
| Pentru fiecare eşantion de intrare ($x(n)$) trebuie să produceţi o valoare de ieşire ($y(n)$). Pentru primele patru eşantioane nu aveţi suficiente valori de intrare diferite de zero, şi pentru simplitate ori setaţi ieşirea pe zero, ori faceţi media dintre 1, 2, 3, 4 eşantioane, în timp ce consideraţi ca celelalte să fie zero. Dar de la al 5-lea eşantion veţi avea câte 5 eşantioane la îndemână (actualul $x(n)$ şi anterioarele patru eşantioane). | Pentru fiecare eşantion de intrare ($x(n)$) trebuie să produceţi o valoare de ieşire ($y(n)$). Pentru primele patru eşantioane nu aveţi suficiente valori de intrare diferite de zero, şi pentru simplitate ori setaţi ieşirea pe zero, ori faceţi media dintre 1, 2, 3, 4 eşantioane, în timp ce consideraţi ca celelalte să fie zero. Dar de la al 5-lea eşantion veţi avea câte 5 eşantioane la îndemână (actualul $x(n)$ şi anterioarele patru eşantioane). | ||
| Line 34: | Line 34: | ||
| === Exercițiul 2 – modularea în amplitudine === | === Exercițiul 2 – modularea în amplitudine === | ||
| - | [<color red>5p</color>] | + | [<color red>3p</color>] |
| În acest exercițiu va trebui să încercați să efectuați modularea în amplitudine asupra următorului semnal exponențial (eng. exponential decay signal) : $s(t) = e^{-at}u(t)$, unde $a>0$ și $u(t)$ este treapta unitară (i.e. egală cu 1 pentru $t\ge0$, 0 altfel). | În acest exercițiu va trebui să încercați să efectuați modularea în amplitudine asupra următorului semnal exponențial (eng. exponential decay signal) : $s(t) = e^{-at}u(t)$, unde $a>0$ și $u(t)$ este treapta unitară (i.e. egală cu 1 pentru $t\ge0$, 0 altfel). | ||
| Line 50: | Line 50: | ||
| Pentru asta va trebui să urmăriți acești pași: | Pentru asta va trebui să urmăriți acești pași: | ||
| - | * Creați semnalul $s(t)$ pentru $t\in\{1,\ldots,T=128\}$, folosind $a=0.05$. [<color red>1p</color>] | + | * Creați semnalul $s(t)$ pentru $t\in\{1,\ldots,T=128\}$, folosind $a=0.05$. |
| - | * Calculați și plotați (cu //stem//) spectrul folosind FFT (Transformata Fourier Rapidă), pe care nu am făcut-o încă la curs, dar o vom face în următoarele cursuri. Pentru moment, puteți folosi acest cod: [<color red>1p</color>] | + | * Calculați și plotați (cu //stem//) spectrul folosind FFT (Transformata Fourier Rapidă), pe care nu am făcut-o încă la curs, dar o vom face în următoarele cursuri. Pentru moment, puteți folosi acest cod: |
| <code python> | <code python> | ||
| import numpy as np | import numpy as np | ||