Laboratorul 03.

Circuite liniare şi funcţia de transfer

Materiale ajutătoare:

    1. Secţiunile 3.9, 3.10, 3.13, 3.14 (pentru Exerciţiul 1)
    2. Secţiunea 4.2 (pentru Exerciţiul 2)

Exerciţiul 1 [6p]

În acest exerciţiu va trebui să analizaţi următorul circuit:

similar cu ce-am făcut la curs.

Pentru asta va trebui să:

  1. Găsiţi funcţia de transfer a circuitului [1p]
  2. Găsiţi ce face acest circuit (efectele asupra semnalelor de intrare) [1p]
  3. Găsiţi frecvenţa de tăiere ca o funcţie de R şi C [1p]
  4. Găsiţi nişte valori pentru R şi C, dacă avem nevoie de $f_{c} = 5 kHz$ [1p]
  5. Folosiţi SPICE simulator Alternativa pentru a crea circuitul cu aceste valori (uitaţi-vă la exemplul cu filtrul RC tranzitoriu) [1p]
  6. 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|}$.

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:

*RC Filter Transient example
  
V1 in 0 sin(0 1 1e4)
C1 in out 10n
R1 out 0 3.2k
  
.TRAN 10u 2m
.end

În căsuţa de plot puneţi asta:

v(in) v(out)

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”.

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.

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.

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} s(t) = \sum_{k=-\infty}^{\infty}{c_{k}e^{j\frac{2 \pi kt}{T}}} \end{equation}

Având un semnal dat $s(t)$ putem calcula coeficienții Fourier după formula: \begin{equation} c_k = \frac{1}{T} \int_{t=0 }^{T}{s(t)e^{-j\frac{2 \pi kt}{T}}} \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:

\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}

Î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:

  1. 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]
  2. 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]
  3. 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]
  4. 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]
  5. 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:

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}$.

Acest cod ar trebui să rezolve exerciţiul:

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');

  • Data publicării: 14.10.2018
ps/laboratoare/03.txt · Last modified: 2018/10/22 16:25 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