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:58]
darius.necula [Semnale în domeniul frecvență]
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 179: Line 179:
  
 === Exercițiul 5 - seria Fourier === === Exercițiul 5 - seria Fourier ===
-[<color red>​2p</​color>​] 
  
 Î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 224: Line 223:
  
 === Exercițiul 6 - aproximare de semnale === === Exercițiul 6 - aproximare de semnale ===
-[<color red>​2p</​color>​] 
  
 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 304: Line 302:
  
 === Exercițiul 8 – shiftarea în frecvență ===  === Exercițiul 8 – shiftarea în frecvență === 
-[<color red>​2p</​color>​] 
  
 Î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 318: Line 315:
 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).   * 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 326: 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).
  
  
Line 367: Line 364:
   - Calculați primii //N=31// coeficienți Fourier pozitivi $c_k$ ai semnalului și plotați-i ($k\in\{0,​\ldots,​30\}$).   - 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}$ ).   - 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)+  - 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.1790456337.txt.gz · Last modified: 2026/09/26 23:58 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