This shows you the differences between two versions of the page.
ps:laboratoare:03 [2018/10/17 01:44] andrei.nicolicioiu |
ps:laboratoare:03 [2020/10/07 17:42] (current) ionut.gorgos |
||
---|---|---|---|
Line 27: | Line 27: | ||
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|}$. | 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|}$. | ||
- | <hidden> | ||
- | <note tip> | ||
- | Puteţi să găsiţi funcţia de transfer prin înlocuirea elementelor din circuit cu impedanţele complexe, unde $Z_R=R$ şi $Z_C = \frac{1}{j2 \pi f C}$ . Atunci $V_{out} = \frac{Z_R}{Z_R + Z_C}V_{in}$ . După ce introducem valorile $Z_R$ şi $Z_C$ în formulă obţinem funcţia de transfer $H(f) = \frac{j2 \pi fRC}{1 + j2 \pi fRC}$. | ||
- | |||
- | Circuitul este un filtru trece sus: dacă frecvenţa tinde la zero, $H(f \rightarrow 0) = 0$. Dacă $f$ este foarte mare, atunci $H(f \rightarrow \infty) = 1$. Deci avem un filtru trece sus. | ||
- | |||
- | Din calcul rezultă: $f_c = \frac{1}{2 \pi RC}$ satisface condiţia. Verificaţi că studenţii au înţeles toate derivările şi că au verificat că aceasta este frecvenţa. | ||
- | |||
- | Găsiţi că $RC = \frac{1}{2 \pi f_c}$, undeva la $32\cdot10^{-6}$ în cazul nostru. Deci putem folosi valorile $R = 3.2 k \Omega$ şi $C = 10 nF$, de exemplu. | ||
- | |||
- | Exemplu de circuit în Ngspice: | ||
- | <code> | ||
- | *RC Filter Transient example | ||
- | | ||
- | V1 in 0 sin(0 1 1e4) | ||
- | C1 in out 10n | ||
- | R1 out 0 3.2k | ||
- | | ||
- | .TRAN 10u 2m | ||
- | .end | ||
- | </code> | ||
- | |||
- | În căsuţa de plot puneţi asta: | ||
- | <code> | ||
- | v(in) v(out) | ||
- | </code> | ||
- | |||
- | Jucaţi-vă cu valoarea lui $V_1$(de exemplu 5e3 este la frecvenţa de tăiere, 1e2 ar trebui să fie mai redus, în timp ce la 1e4 ar trebui să treacă). Notaţi că pentru diferite frecvenţe, s-ar putea să fiţi nevoiţi să ajustaţi intervalul de simulare, adică ultima valoare din linia cu ".TRAN". | ||
- | </note> | ||
- | </hidden> | ||
=== Exercițiul 2 [4p] === | === Exercițiul 2 [4p] === | ||
Line 79: | Line 49: | ||
Având un semnal dat $s(t)$ putem calcula coeficienții Fourier după formula: | Având un semnal dat $s(t)$ putem calcula coeficienții Fourier după formula: | ||
\begin{equation} | \begin{equation} | ||
- | c_k = \frac{1}{T} \int_{t=0 }^{T}{c_{k}e^{-j\frac{2 \pi kt}{T}}} | + | c_k = \frac{1}{T} \int_{t=0 }^{T}{s(t)e^{-j\frac{2 \pi kt}{T}}} |
\end{equation} | \end{equation} | ||
Line 97: | Line 67: | ||
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). [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). [1p] | ||
- | - Calculaţi coeficienţii Fourier $c_{k}$ pentru $k = [-c_{max}, c_{max}]$. De exemplu pentru $c_{max} = 3$, avem $k = {-3,-2,-1,0,1,2,3}$. Reprezentaţi grafic coeficienţii ş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'. De asemenea, va trebui să reprezentaţi doar magnitudinea, folosind funcţia 'abs'. [1p] |
- 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 din curs: $s(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}}$. [1p] | ||
- Reprezentaţi grafic noul semnal reconstruit şi comparaţi-l cu originalul. Pentru a plota semnalul va trebui să ajustaţi limita verticală a plot-ului, folosind funcţia 'ylim'. Ajustaţi limita la ceva de genul $[-A-1, A+1]$. [1p] | - Reprezentaţi grafic noul semnal reconstruit şi comparaţi-l cu originalul. Pentru a plota semnalul va trebui să ajustaţi limita verticală a plot-ului, folosind funcţia 'ylim'. Ajustaţi limita la ceva de genul $[-A-1, A+1]$. [1p] | ||
- | - Folosiţi diferite valori pentru $c_{max}$ (de exemplu, 1, 5, 11, 49) şi observaţi diferenţa. Vedeţi cum, folosind din ce în ce mai mulţi coeficienţi, ne 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, folosind din ce în ce mai mulţi coeficienţi, ne permitem să construim mai bine semnalul original. |
Graficele voastre trebuie să arate similar cu acestea: | Graficele voastre trebuie să arate similar cu acestea: | ||
Line 110: | Line 80: | ||
<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 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> | ||
- | <hidden> | ||
- | <note tip> | ||
- | Acest cod ar trebui să rezolve exerciţiul: | ||
- | <code matlab> | ||
- | A = 3; | ||
- | T = 100; | ||
- | x = 1:T; | ||
- | s = -A*ones(1, T); | ||
- | s(1:(T/2)) = A; | ||
- | |||
- | h = figure; | ||
- | plot(x,s); | ||
- | ylabel('Amplitude'); | ||
- | xlabel('Time'); | ||
- | ylim([-A-0.5, A+0.5]); | ||
- | title('Original signal s(t)'); | ||
- | print(h, '-dpng', 'original_signal.png'); | ||
- | |||
- | cmax = 20; | ||
- | kv = -cmax:cmax; | ||
- | N = length(kv); | ||
- | coef = zeros(N,1); | ||
- | for i=1:N | ||
- | k = kv(i); | ||
- | if mod(k,2) ~= 0 | ||
- | coef(i) = (2*A) / (j*pi*k); | ||
- | end | ||
- | end | ||
- | |||
- | h = figure; | ||
- | stem(kv, abs(coef)); | ||
- | xlabel('Frequency component (k)'); | ||
- | ylabel('Magnitude of component'); | ||
- | title('Fourier coefficients'); | ||
- | print(h, '-dpng', 'coefficients.png'); | ||
- | |||
- | |||
- | sr = zeros(1, T); | ||
- | for t=1:T | ||
- | for i=1:N | ||
- | sr(t) = sr(t) + coef(i)*exp(j*2*pi*kv(i)*t/T); | ||
- | end | ||
- | end | ||
- | |||
- | h=figure; | ||
- | plot(1:T, sr); | ||
- | ylim([-A-1, A+1]); | ||
- | title('Reconstructed signal s(t)'); | ||
- | ylabel('Amplitude'); | ||
- | xlabel('Time'); | ||
- | print(h, '-dpng', 'reconstructed_signal.png'); | ||
- | </code> | ||
- | </note> | ||
- | </hidden> | ||
- | |||
- | * Responsabil: [[neculadarius23@gmail.com|Darius Necula]] | ||
- | * Data publicării: 14.10.2018 | ||