Differences

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

Link to this comparison view

ps:labs:03 [2023/10/12 15:18]
constantin.savu1510
ps:labs:03 [2023/10/12 22:12] (current)
constantin.savu1510 old revision restored (2022/11/08 14:55)
Line 7: Line 7:
     - {{:​ps:​labs:​fundamentals-of-electrical-engineering-i-9.72.pdf|Cartea lui Don Johnson}}     - {{:​ps:​labs:​fundamentals-of-electrical-engineering-i-9.72.pdf|Cartea lui Don Johnson}}
     - Secțiunile 4.2 (Exercițiul 1), 4.5 (Exercițiul 2), 4.6 (Exercițiul 3)     - Secțiunile 4.2 (Exercițiul 1), 4.5 (Exercițiul 2), 4.6 (Exercițiul 3)
-    - [[https://​lpsa.swarthmore.edu/​Fourier/​Series/​WhyFS.html|Funcții ca sume de sinusoidale]] 
  
 === Exercițiul 1 - seria Fourier === === Exercițiul 1 - seria Fourier ===
-[<color red>5p</​color>​]+[<color red>4p</​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 40: Line 39:
 Principalii paşi pentru asta sunt: Principalii paşi pentru asta sunt:
   - Creaţi semnalul original. Utilizaţi, de exemplu $T = 100$ şi $A = 3$ şi generaţi un semnal cu amplitudinea $3$ peste primele 50 de eşantioane şi $-3$ peste ultimele 50. Reprezentaţi grafic semnalul ca funcţie de timp (unde timpul începe de la 1 până la 100). Ajustaţi limita verticală a plot-ului, folosind funcţia //ylim// (e.g. $[-A-1, A+1]$). [<color red>​1p</​color>​]   - Creaţi semnalul original. Utilizaţi, de exemplu $T = 100$ şi $A = 3$ şi generaţi un semnal cu amplitudinea $3$ peste primele 50 de eşantioane şi $-3$ peste ultimele 50. Reprezentaţi grafic semnalul ca funcţie de timp (unde timpul începe de la 1 până la 100). Ajustaţi limita verticală a plot-ului, folosind funcţia //ylim// (e.g. $[-A-1, A+1]$). [<color red>​1p</​color>​]
-  - Calculaţi coeficienţii Fourier $c_{k}$ pentru $k = [-k_{max}, k_{max}]$. De exemplu pentru $k_{max} = 3$, avem $k = {-3,​-2,​-1,​0,​1,​2,​3}$. Reprezentaţi grafic coeficienţii $c_k$ şi observaţi simetria lor în jurul lui $k = 0$. Pentru a îi reprezenta va trebui să folosiţi funcţia //np.stem// (nu mai folosim //np.plot//). De asemenea, va trebui să reprezentaţi doar magnitudinea,​ folosind funcţia //np.abs//. [<color red>​1p</​color>​]+  - Calculaţi coeficienţii Fourier $c_{k}$ pentru $k = [-k_{max}, k_{max}]$. De exemplu pentru $k_{max} = 3$, avem $k = {-3,​-2,​-1,​0,​1,​2,​3}$. Reprezentaţi grafic coeficienţii $c_k$ şi observaţi simetria lor în jurul lui $k = 0$. Pentru a îi reprezenta va trebui să folosiţi funcţia //stem// (nu mai folosim //plot//). De asemenea, va trebui să reprezentaţi doar magnitudinea,​ folosind funcţia //abs//. [<color red>​1p</​color>​]
   - Reconstruiţi semnalul doar cu ajutorul acestor coeficienţi,​ folosind formula: $s(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. [<color red>​1p</​color>​]   - Reconstruiţi semnalul doar cu ajutorul acestor coeficienţi,​ folosind formula: $s(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. [<color red>​1p</​color>​]
-  - Reprezentaţi grafic noul semnal reconstruit și comparați-l cu originalul. [<color red>1p</​color>​] +  - Reprezentaţi grafic noul semnal reconstruit și comparați-l cu originalul. [<color red>0.5p</​color>​] 
-  - Folosiţi diferite valori pentru $k_{max}$ (de exemplu, 1, 5, 11, 49) și observaţi diferenţa. Vedeţi cum folosirea din ce în ce a mai multor coeficienţi ne permite să reconstruim mai bine semnalul original. [<color red>1p</​color>​]+  - Folosiţi diferite valori pentru $k_{max}$ (de exemplu, 1, 5, 11, 49) și observaţi diferenţa. Vedeţi cum folosirea din ce în ce a mai multor coeficienţi ne permite să reconstruim mai bine semnalul original. [<color red>0.5p</​color>​]
  
 Graficele voastre trebuie să arate similar cu acestea: Graficele voastre trebuie să arate similar cu acestea:
Line 56: Line 55:
  
 === Exercițiul 2 - aproximare de semnale === === Exercițiul 2 - aproximare de semnale ===
-[<color red>5p</​color>​]+[<color red>4p</​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 96: Line 95:
   - Calculați coeficienții Fourier $c_{k}$ pentru $k=[0:​500]$. Plotați amplitudinile $|c_k|^2$ ca funcție de $k$, folosind //stem// și //abs// ca în exercițiul precedent. [<color red>​1p</​color>​]   - Calculați coeficienții Fourier $c_{k}$ pentru $k=[0:​500]$. Plotați amplitudinile $|c_k|^2$ ca funcție de $k$, folosind //stem// și //abs// ca în exercițiul precedent. [<color red>​1p</​color>​]
   - Calculați $\text{rms}(\epsilon_{N})$ pentru fiecare $N \in \{1, \ldots, 500\}$. Vedeți explicația de mai jos pentru a putea calcula RMS folosind Teorema lui Parseval. Plotați (cu //plot//, //​semilogy//​ și //loglog//) valoarea rms pentru $N \in \{1, \ldots, 500\}$.[<​color red>​1p</​color>​]   - Calculați $\text{rms}(\epsilon_{N})$ pentru fiecare $N \in \{1, \ldots, 500\}$. Vedeți explicația de mai jos pentru a putea calcula RMS folosind Teorema lui Parseval. Plotați (cu //plot//, //​semilogy//​ și //loglog//) valoarea rms pentru $N \in \{1, \ldots, 500\}$.[<​color red>​1p</​color>​]
-  - Determinați cel mai mic $N$ astfel încât $\text{rms}(\epsilon_{N}) < 0.05$ și reconstruiți semnalul original folosind acest număr de coeficienți. Trebuie să folosiți atât coeficienții pozitivi cât și negativi (de ex. de la -N la N) pentru a reconstrui semnalul. Reconstruiţi semnalul doar cu ajutorul acestor coeficienţi,​ folosind formula: $s_N(t) = \sum_{k=-N}^{N}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. Reprezentați grafic semnalul reconstruit și comparați-l cu semnalul inițial. [<color red>2p</​color>​]+  - Determinați cel mai mic $N$ astfel încât $\text{rms}(\epsilon_{N}) < 0.05$ și reconstruiți semnalul original folosind acest număr de coeficienți. Trebuie să folosiți atât coeficienții pozitivi cât și negativi (de ex. de la -N la N) pentru a reconstrui semnalul. Reconstruiţi semnalul doar cu ajutorul acestor coeficienţi,​ folosind formula: $s_N(t) = \sum_{k=-N}^{N}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. Reprezentați grafic semnalul reconstruit și comparați-l cu semnalul inițial. [<color red>1p</​color>​]
  
 <​note>​ Pentru a calcula RMS al erorii trebuie să calculăm suma pentru toți coeficienții $c_k$ cu $|k|> k_0 $, adică o infinitate de termeni. Putem încerca doar să aproximăm această sumă, sau ne putem folosi de unele proprietăți ale seriei Fourier pentru a o calcula exact. Mai precis, vom folosi Teorema lui Parseval prin care putem calcula puterea unui semnal în două feluri, în domeniul timp, integrând semnalul la pătrat peste o perioadă sau în frecvență calculând suma pătratelor modulului ale fiecărui coeficient: <​note>​ Pentru a calcula RMS al erorii trebuie să calculăm suma pentru toți coeficienții $c_k$ cu $|k|> k_0 $, adică o infinitate de termeni. Putem încerca doar să aproximăm această sumă, sau ne putem folosi de unele proprietăți ale seriei Fourier pentru a o calcula exact. Mai precis, vom folosi Teorema lui Parseval prin care putem calcula puterea unui semnal în două feluri, în domeniul timp, integrând semnalul la pătrat peste o perioadă sau în frecvență calculând suma pătratelor modulului ale fiecărui coeficient:
Line 113: Line 112:
 </​note>​ </​note>​
  
-=== Exercițiul 3 - BONUS - comunicație digitală ===+=== Exercițiul 3 - comunicație digitală ===
 [<color red>​2p</​color>​] [<color red>​2p</​color>​]
  
Line 127: Line 126:
   - verificați că semnalul rezultat codează secvența voastră random;   - verificați că semnalul rezultat codează secvența voastră random;
  
-<​note>​ Pentru a genera o secvență random de valori întregi inspectați ​modulul ​//numpy.random// +<​note>​ Pentru a genera o secvență random de valori întregi inspectați ​funcția ​//randi// din MATLAB. </​note>​
- +
-[[https://​numpy.org/​doc/​stable/​reference/​random/​index.html|Documentație numpy.random]]. </​note>​+
  
 /​*</​hidden>​*/​ /​*</​hidden>​*/​
ps/labs/03.txt · Last modified: 2023/10/12 22:12 by constantin.savu1510
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