Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ps:labs_python:02-04 [2026/09/26 23:53]
darius.necula [Shiftarea în fază/timp și filtrarea semnalelor periodice]
ps:labs_python:02-04 [2026/09/28 09:55] (current)
darius.necula [Shiftarea în fază/timp și filtrarea semnalelor periodice]
Line 5: Line 5:
 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.
  
-=== Exercițiul 1 === [<color red>​1p</​color>​]+=== Exercițiul 1 ===
  
 Pentru a transmite simboluri (ex: litere din alfabet) modemurile folosesc diferite frecvențe și mai multe niveluri de amplitudine. O transmisie 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 amplitudini și frecvențe diferite: Pentru a transmite simboluri (ex: litere din alfabet) modemurile folosesc diferite frecvențe și mai multe niveluri de amplitudine. O transmisie 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 amplitudini și frecvențe diferite:
Line 24: Line 24:
 După ce ați făcut plot-ul puteți pune un titlu figurii folosind și etichete axelor X și Y. După ce ați făcut plot-ul puteți pune un titlu figurii folosind și etichete axelor X și Y.
 </​note>​ </​note>​
-=== Exerciţiul 2 === [<color red>​1p</​color>​]+=== Exerciţiul 2 ===
  
 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 88: Line 88:
 {{ :​ps:​labs_python:​combined_signals.png?​600 |}} {{ :​ps:​labs_python:​combined_signals.png?​600 |}}
  
-=== Exerciţiul 3 === [<color red>​1p</​color>​]+=== Exerciţiul 3 ===
  
 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 139: Line 139:
 </​note>​ </​note>​
  
-=== Exerciţiul 4 === [<color red>​1p</​color>​]+=== Exerciţiul 4 ===
  
 Avem un sistem de feedback precum cel din imaginea următoare: Avem un sistem de feedback precum cel din imaginea următoare:
Line 178: Line 178:
     - [[https://​lpsa.swarthmore.edu/​Fourier/​Series/​WhyFS.html|Funcții ca sume de sinusoidale]]     - [[https://​lpsa.swarthmore.edu/​Fourier/​Series/​WhyFS.html|Funcții ca sume de sinusoidale]]
  
-=== Exercițiul ​1 - seria Fourier === [<color red>​2p</​color>​]+=== Exercițiul ​5 - seria Fourier ===
  
 În acest exercițiu vom începe să lucrăm cu seria Fourier, unul dintre cele mai importante instrumente în procesarea digitală a semnalelor. Va trebui să vă familiarizați cu acesta. În acest exercițiu vom începe să lucrăm cu seria Fourier, unul dintre cele mai importante instrumente în procesarea digitală a semnalelor. Va trebui să vă familiarizați cu acesta.
Line 222: Line 222:
 {{:​ps:​labs:​reconstructed_signal.png?​200|}} {{:​ps:​labs:​reconstructed_signal.png?​200|}}
  
-=== Exercițiul ​2 - aproximare de semnale === [<color red>​2p</​color>​]+=== Exercițiul ​6 - aproximare de semnale ===
  
 Orice semnal este format dintr-o sumă de o infinitate de sinusoide complexe. Ce se întâmplă dacă facem suma doar peste un număr finit de astfel de termeni, ignorând termenii de ordin superior? În acest caz vom forma un semnal care aproximează semnalul original, iar aproximarea este cu atât mai bună cu cât folosim mai mulți termeni. ​ Orice semnal este format dintr-o sumă de o infinitate de sinusoide complexe. Ce se întâmplă dacă facem suma doar peste un număr finit de astfel de termeni, ignorând termenii de ordin superior? În acest caz vom forma un semnal care aproximează semnalul original, iar aproximarea este cu atât mai bună cu cât folosim mai mulți termeni. ​
Line 279: Line 279:
 </​note>​ </​note>​
  
-=== Exercițiul ​3 - BONUS - comunicație digitală ===+=== Exercițiul ​7 - BONUS - comunicație digitală ===
  
 Pentru a transmite 2 biți simultan putem  folosi două frecvențe diferite (f1, f2) pentru a coda o valoare de 2 biți: Pentru a transmite 2 biți simultan putem  folosi două frecvențe diferite (f1, f2) pentru a coda o valoare de 2 biți:
Line 301: Line 301:
     - Secțiunea 4.8 (vezi tabelul 4.2 pentru exercițiul 1) și Secțiunea 4.7 pentru exercițiul 2     - Secțiunea 4.8 (vezi tabelul 4.2 pentru exercițiul 1) și Secțiunea 4.7 pentru exercițiul 2
  
-=== Exercițiul ​1 – shiftarea în frecvență === [<color red>​2p</​color>​]+=== Exercițiul ​8 – shiftarea în frecvență === 
  
 În acest exerciţiu vrem să întârziem un semnal în timp, prin modificarea spectrului său (vezi proprietăţile Transformatei Fourier). Vom folosi un semnal pe care l-am mai folosit şi anume, semnalul dreptunghiular cu amplitudinea $A$ pe intervalul $[0, \frac{T}{2}]$ şi cu amplitudinea $-A$ pe intervalul $[\frac{T}{2},​ T]$ care are binecunoscutul spectru dat de: În acest exerciţiu vrem să întârziem un semnal în timp, prin modificarea spectrului său (vezi proprietăţile Transformatei Fourier). Vom folosi un semnal pe care l-am mai folosit şi anume, semnalul dreptunghiular cu amplitudinea $A$ pe intervalul $[0, \frac{T}{2}]$ şi cu amplitudinea $-A$ pe intervalul $[\frac{T}{2},​ T]$ care are binecunoscutul spectru dat de:
Line 314: Line 314:
  
 Pentru acest task va trebui să urmaţi următorii paşi: Pentru acest task va trebui să urmaţi următorii paşi:
-  * Reprezentaţi grafic semnalul original (considerați A = 1 și T = 100). [<color red>​1p</​color>​] +  * Reprezentaţi grafic semnalul original (considerați A = 1 și T = 100). 
-  * Calculaţi câţiva coeficienţi Fourier $c_k$. Faceţi asta, similar cu ce am făcut în laboratoarele ​precedente, folosind $k\in\{-81,​\ldots,​81\}$.+  * Calculaţi câţiva coeficienţi Fourier $c_k$. Faceţi asta, similar cu ce am făcut în exerciţiile ​precedente, folosind $k\in\{-81,​\ldots,​81\}$.
   * Plotaţi modulul coeficienţilor.   * Plotaţi modulul coeficienţilor.
   * Modificaţi spectrul pentru a obţine un semnal în timp întârziat cu $\tau = \frac{T}{4}$,​ folosind formula: $c_{k}^{'​} = c_{k}\cdot e^{-j\frac{2\pi k \tau}{T}}$, unde $c_k$ sunt coeficienții Fourier aflați mai devreme. (vezi tabelul 4.2 din carte).   * Modificaţi spectrul pentru a obţine un semnal în timp întârziat cu $\tau = \frac{T}{4}$,​ folosind formula: $c_{k}^{'​} = c_{k}\cdot e^{-j\frac{2\pi k \tau}{T}}$, unde $c_k$ sunt coeficienții Fourier aflați mai devreme. (vezi tabelul 4.2 din carte).
Line 323: Line 323:
 coefficients_phase = np.angle(ck,​ deg=True) coefficients_phase = np.angle(ck,​ deg=True)
 </​code>​ </​code>​
-  * Reconstruiți semnalul din spectrul modificat, folosind formula $s_{r}(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$ (similar cu ce-am făcut ​în laboratorul 3). Ar trebui să vedeți semnalul shiftat cu $\tau$, față de cel original (dacă totul a mers cum trebuie).+  * Reconstruiți semnalul din spectrul modificat, folosind formula $s_{r}(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$ (similar cu ce-am făcut ​la exerciţiul 6). Ar trebui să vedeți semnalul shiftat cu $\tau$, față de cel original (dacă totul a mers cum trebuie).
  
  
-=== Exercițiul ​2 - BONUS - filtrare ===+=== Exercițiul ​9 - BONUS - filtrare ===
  
 Vom vedea în continuare ce efect are un filtru trece-jos asupra semnalului puls periodic. În special ne interesează care sunt termenii din seria Fourier ai semnalului rezultat în urma filtrării.  ​ Vom vedea în continuare ce efect are un filtru trece-jos asupra semnalului puls periodic. În special ne interesează care sunt termenii din seria Fourier ai semnalului rezultat în urma filtrării.  ​
Line 361: Line 361:
  
 Pentru aceasta urmăriți următorii pași: Pentru aceasta urmăriți următorii pași:
-  - Generați semnalul puls și plotați-l. Puteți folosi //T=100// de eșantioane (puncte), dintre care doar $\Delta=20$ nu sunt egale cu 0. [<color red>​1p</​color>​] +  - Generați semnalul puls și plotați-l. Puteți folosi //T=100// de eșantioane (puncte), dintre care doar $\Delta=20$ nu sunt egale cu 0. 
-  - Calculați primii //N=31// coeficienți Fourier pozitivi $c_k$ ai semnalului și plotați-i ($k\in\{0,​\ldots,​30\}$). ​[<color red>​1p</​color>​] +  - Calculați primii //N=31// coeficienți Fourier pozitivi $c_k$ ai semnalului și plotați-i ($k\in\{0,​\ldots,​30\}$). 
-  - Calculați coeficienții Fourier asociați semnalului de ieșire, $c_k^y$, folosind formula de mai sus și plotați-i ca mai sus. Pentru a realiza acest lucru va trebui să alegeți o frecvență de cut-off $f_c$ care va determina valorile //R// și //C// ( $RC = \frac{1}{2\pi f_c}$ ). [<color red>​1p</​color>​] +  - Calculați coeficienții Fourier asociați semnalului de ieșire, $c_k^y$, folosind formula de mai sus și plotați-i ca mai sus. Pentru a realiza acest lucru va trebui să alegeți o frecvență de cut-off $f_c$ care va determina valorile //R// și //C// ( $RC = \frac{1}{2\pi f_c}$ ). 
-  - Reconstruiți semnalul de ieșire cu ajutorul seriei Fourier (folosind formula de la exercițiul ​1) [<color red>​2p</​color>​]+  - Reconstruiți semnalul de ieșire cu ajutorul seriei Fourier (folosind formula de la exercițiul ​8)
   Puteți încerca următoarele valori pentru $f_c$:   Puteți încerca următoarele valori pentru $f_c$:
     - $f_c = 0.1/T$ (frecvența de cut-off e mult mai mică decât frecvența fundamentală a semnalului => filtrare puternică)     - $f_c = 0.1/T$ (frecvența de cut-off e mult mai mică decât frecvența fundamentală a semnalului => filtrare puternică)
ps/labs_python/02-04.1790456019.txt.gz · Last modified: 2026/09/26 23:53 by darius.necula
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0