Differences

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

Link to this comparison view

ps:labs:03 [2020/10/28 18:49]
ionut.gorgos
ps:labs:03 [2023/10/12 22:12] (current)
constantin.savu1510 old revision restored (2022/11/08 14:55)
Line 1: Line 1:
 ===== Laboratorul 03. ===== ===== Laboratorul 03. =====
- +/​*<​hidden>​*/​ 
-/* Make it hidden before lab, unhide (e.g. note) afterwards  +==== Semnale în domeniul frecvență ==== 
-<​hidden>​ */ +Prezentarea PowerPoint pentru acest laborator poate fi găsită aici: [[https://​docs.google.com/​presentation/​d/​1cbNT4X6ZHE3rTQZ1Y5ZNJytpakJHXCmd/​edit?​usp=share_link&​ouid=110538702824281541719&​rtpof=true&sd=true|aici]]
-==== Circuite liniare şi funcţia de transfer ​====+
  
 Materiale ajutătoare:​ Materiale ajutătoare:​
-  ​[[http://www.ece.rice.edu/​~dhj/​courses/​elec241/​col10040.pdf|D. Johnson's book]] +    ​{{:ps:​labs:​fundamentals-of-electrical-engineering-i-9.72.pdf|Cartea lui Don Johnson}} 
-    - Secţiunile ​3.9, 3.10, 3.13, 3.14 (pentru ​Exerciţiul 1) +    - Secțiunile ​4.(Exercițiul 1)4.(Exercițiul 2), 4.6 (Exercițiul 3)
-    - Secţiunea ​4.(pentru ​Exerciţiul 2) +
- +
-=== Exerciţiul 1 [6p] === +
- +
-În acest exerciţiu va trebui să analizaţi următorul circuit:+
  
-{{:​ps:​labs:​high_pass_filter.png?​300|}} +=== Exercițiul 1 - seria Fourier === 
- +[<color red>4p</​color>​]
-similar cu ce-am făcut la curs. +
- +
-Pentru asta va trebui să: +
-  - Găsiţi funcţia de transfer a circuitului [1p] +
-  - Găsiţi ce face acest circuit (efectele asupra semnalelor de intrare) [1p] +
-  - Găsiţi frecvenţa de tăiere ca o funcţie de R şi C [1p] +
-  - Găsiţi nişte valori pentru R şi C, dacă avem nevoie de $f_{c} ​5 kHz$ [1p] +
-  - Folosiţi acest [[http://​www.falstad.com/​circuit/​e-filt-hipass.html | simulator]] pentru a crea circuitul cu aceste valori (uitaţi-vă la exemplul cu filtrul RC tranzitoriu) [1p] +
-  - Schimbaţi valoarea frecvenței semnalului de intrare astfel încât să fie mai apropiată, mai mică sau mai mare decât frecvența de tăiere $f_{c}$ și verificați rezultatele [1p] +
- +
-Frecvenţa de tăiere este frecvența pentru care avem egalitatea: $|{H(f)}| ​\frac{max(|{H(f)}|)}{\sqrt2}$. Pentru a o găsi vom folosi definiția modulului unui număr complex $|a+jb|=\sqrt{a^2+b^2}$ și proprietatea $|\frac{a}{b}| ​ ​\frac{|a|}{|b|}$. +
- +
-=== Exercițiul 2 [4p] ===+
  
 Î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.
  
-La curs am vorbit despre faptul că orice semnal periodic de perioada $T$ se poate descompune într-o sumă de semnale de bază. Această descompunere ​poarta ​numele de seria Fourier și ne arată cum se descompune orice semnal periodic într-o sumă de sinusoide.  +Orice semnal periodic de perioada $T$ se poate descompune într-o sumă de semnale de bază. Această descompunere ​poartă ​numele de seria Fourier și ne arată cum se descompune orice semnal periodic într-o sumă de sinusoide: ​
- +
-Forma clasica a seriei Fourier: +
- +
-\begin{equation} +
-  s(t) = a_0 +  \sum_{k=1}^{\infty}{a_k \cos( \frac{2 \pi kt}{T} ) } + \sum_{k=1}^{\infty}{b_k \sin( \frac{2 \pi kt}{T} ) } +
-\end{equation} +
- +
-Folosind formula lui Euler: $e^{jt} = \cos(t) + j \sin(t)$ și folosind coeficienții complexi $c_k \in \mathbb{C}$  +
-, unde $c_k = \frac{a_k - b_k}{2}$ pentru $k > 0$, $c_k = \frac{a_k + b_k}{2}$ pentru $k < 0$ și $c_k = \frac{a_k}{2}$ pentru $k = 0$  obținem formularea echivalentă:+
  
 \begin{equation} \begin{equation}
Line 52: Line 24:
 \end{equation} \end{equation}
  
-Folosind formula ​precedenta, la curs am demonstrat că un semnal dreptunghiular,​ de amplitudine "​A"​ pe intervalul $[0, \frac{T}{2}]$ și de amplitudine "​-A"​ pe intervalul $[\frac{T}{2},​ T]$ are coeficienții Fourier daţi de formula următoare:+Folosind formula ​precedentăun semnal dreptunghiular,​ de amplitudine "​A"​ pe intervalul $[0, \frac{T}{2}]$ și de amplitudine "​-A"​ pe intervalul $[\frac{T}{2},​ T]$ are coeficienții Fourier daţi de formula următoare:
  
 \begin{equation} \begin{equation}
Line 63: Line 35:
  
  
-În acest exerciţiu va trebui să încercaţi să reconstruiţi semnalul dreptunghiular folosind un număr limitat de coeficienţi pentru a vedea diferenţa dintre semnalul original ​şi cel reconstruit.+În acest exerciţiu va trebui să încercaţi să reconstruiţi semnalul dreptunghiular folosind un număr limitat de coeficienți pentru a vedea diferenţa dintre semnalul original ​și cel reconstruit.
  
 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]$). [1p] +  - 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 ​'stem'. De asemenea, va trebui să reprezentaţi doar magnitudinea,​ folosind funcţia ​'abs'. [1p] +  - 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 ​din curs: $s(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. [1p] +  - 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. [1p+  - 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, folosind ​din ce în ce mai mulţi ​coeficienţine permitem ​să construim ​mai bine semnalul original.+  - 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 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 78: Line 50:
 {{:​ps:​labs:​reconstructed_signal.png?​200|}} {{:​ps:​labs:​reconstructed_signal.png?​200|}}
  
-<​note>​ Semnalele reale au următoarea proprietate:​ coeficienții Fourier negativi sunt conjugații ​complexi ​ai celor pozitivi $c_{-k} = c_{k}^*$. Puteți verifica pentru semnalul nostru dreptunghiular. De asemenea, semnalele pare s(-t) = s(t), au coeficienții complet reali, obținând $c_{−k}=c_{k}$ iar semnalele impare s(-t) = -s(t), au coeficienții complet imaginari, obținând $c_{−k}=−c_{k}$.</​note>​+<​note> ​ 
 +Semnalele reale au următoarea proprietate:​ coeficienții Fourier negativi sunt conjugații ​complecși ​ai celor pozitivi $c_{-k} = c_{k}^*$. Puteți verifica pentru semnalul nostru dreptunghiular. De asemenea, semnalele pare s(-t) = s(t), au coeficienții complet reali, obținând $c_{−k}=c_{k}$iar semnalele impare s(-t) = -s(t), au coeficienții complet imaginari, obținând $c_{−k}=−c_{k}$. 
 +</​note>​ 
 + 
 +=== Exercițiul 2 - aproximare de semnale === 
 +[<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.  
 + 
 +În acest exercițiu vom vedea cât de bine este aproximat un semnal, prin observarea erorii $\epsilon_{N}$ dintre semnalul original $s(t)$ și aproximarea $s_{N}(t)$ folosind doar termeni de ordin $\le N$ din seria Fourier (termenii corespunzători $k \in \{-N, \ldots, N\} $ ) 
 + 
 + 
 +Vom calcula rădăcina pătratică medie (eng. root mean square - RMS) a semnalului de eroare $\epsilon_{N}$ dat de: 
 + 
 +\begin{equation} 
 +\epsilon_{N}(t) = s(t) - s_{N}(t), 
 +\end{equation} 
 +  
 +Aproximarea $s_{N}(t)$ este dată de primii termeni din Seria Fourier. 
 +\begin{equation} 
 +s_N(t) = \sum_{k=-N}^N c_k e^\frac{j 2 \pi k t}{T} 
 +\end{equation} 
 + 
 +iar RMS-ul lui $\epsilon_N$ este dat de: 
 +\begin{equation} 
 +\text{rms}(\epsilon_N) = \sqrt{\sum_{k=-\infty}^{-{N-1}} |c_k|^2 + \sum_{k=N+1}^\infty |c_k|^2} = \sqrt{2\cdot \sum_{k=N+1}^\infty |c_k|^2} 
 +\end{equation} 
 + 
 +Task-ul vostru este să determinați valoarea lui N astfel încât $\text{rms}(\epsilon_N)$ este aproape 0 și după aceea să vedeți că într-adevăr semnalul reconstruit aproximează bine semnalul original.  
 + 
 +O să folosim din nou semnalul dreptunghiular,​ de amplitudine '​A'​ în intervalul [0, T/2] și '​-A'​ în intervalul [T/2, T] care are coeficienții Fourier dați de formula: 
 + 
 +\begin{equation} 
 + c_{k} = \left\lbrace 
 +  \begin{array}{} 
 +    \frac{2}{j \pi k}A \qquad k \quad impar \\0 \qquad \quad k \quad par 
 +  \end{array} 
 +  \right. 
 +\end{equation} 
 + 
 + 
 +Pentru asta ar trebui să urmăriți următorii pași: 
 +  - Creați semnalul original. Folosiți, de exemplu T=100 și A=1 pentru a genera semnalul cu valoarea 1 în primele 50 de eșantioane și -1 în ultimele 50. Reprezentaţi grafic semnalul ca funcţie de timp (unde timpul începe de la 1 până la 100) [<color red>​1p</​color>​]. Puteți să folosiți codul de la exercițiul precedent. 
 +  - 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>​] 
 +  - 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:​ 
 + 
 +\begin{equation} 
 +\frac{1}{T}\int_0^T{s^2(t)dt} = \sum_{-\infty}^{\infty}{|c_k|^2} 
 +\end{equation} 
 + 
 +Folosind cele descrise mai sus puteți calcula exact RMS-ul erorii: 
 +  - calculați puterea totală calculând integrala din teorema lui Parseval pentru semnalul dreptunghiular. 
 +  - scădeți pătratele termenilor de la $c_k, k \in \{-N...N\}$ obținând suma termenilor necesari pentru calcularea RMS. 
 + 
 +\begin{equation} 
 +\text{rms}(\epsilon_{N-1}) = \sqrt{2\cdot \sum_{k=N}^\infty |c_k|^2} = \sqrt{\sum_{k=-\infty}^\infty |c_k|^2 - \sum_{k=-N+1}^{N-1} |c_k|^2} = \sqrt{\sum_{k=-\infty}^\infty |c_k|^2 - (2 \cdot \sum_{k=1}^N |c_k|^2 + |c_0|^2)} 
 +\end{equation}  
 +</​note>​
  
 +=== Exercițiul 3 - comunicație digitală ===
 +[<color red>​2p</​color>​]
  
 +Pentru a transmite 2 biți simultan putem  folosi două frecvențe diferite (f1, f2) pentru a coda o valoare de 2 biți:
 +  - '​00':​ folosim un semnal egal cu 0 (nicio frecvență)
 +  - '​01':​ folosim o sinusoidă ce conține doar prima frecvență ($\sin(2\pi f_1 t)$)  ​
 +  - '​10':​ folosim o sinusoidă ce conține doar a doua frecvență ($\sin(2\pi f_2 t)$)
 +  - '​11':​ folosim ambele frecvențe $f_1$ și $f_2$
  
 +Task-ul vostru e să creați o secvență random de 10 valori între 0 și 3 (pentru a folosi toate valorile de mai sus) și apoi să o codificați folosind 2 sinusoide așa cum este descris mai sus. Pentru asta ar trebui să:
 +  - selectați frecvențele $f_1$ și $f_2$ astfel încât ele să folosească aceeași frecvență fundamentală (de ex.: $f_1 = 1 \cdot f_t$, $f_2 = 2 \cdot f_t$);
 +  - plotați semnalul rezultat folosind perioada ($1/f_t$) pentru fiecare valoare transmisă;
 +  - verificați că semnalul rezultat codează secvența voastră random;
  
 +<​note>​ Pentru a genera o secvență random de valori întregi inspectați funcția //randi// din MATLAB. </​note>​
  
 +/​*</​hidden>​*/​
ps/labs/03.1603903790.txt.gz · Last modified: 2020/10/28 18:49 by ionut.gorgos
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