This is an old revision of the document!
La curs am discutat despre semnale de bază și sisteme. În continuare vom face câteva exerciții legate de aceste noțiuni.
Pentru a transmite simboluri (ex: litere din alfabet) modemurile PC-urilor folosesc diferite frecvențe și mai multe niveluri de amplitudine. O transmisiune 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 amplitudine și frecvență diferite:
$x(t) = A_{1} \cdot sin(2\cdot \pi\cdot f_{1}\cdot t) + A_{2} \cdot sin(2\cdot \pi\cdot f_{2}\cdot t)$
Puteți afișa un semnal folosind comanda plot. Folosiți help plot sau doc plot pentru mai multe detalii.
După ce ați făcut plot-ul puteți pune un titlu figurii folosind title, iar pentru etichete xlabel și ylabel.
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: building_signals.pdf
Pentru a face asta în Octave va trebui să lucrăm cu semnale discrete, nu continue (vom discuta despre acest aspect în cursurile viitoare). În loc să lucrăm cu semnale reprezentate în intervalul [0,1] ca în slide vom folosi semnale ce se întind peste 100 de puncte.
Puteţi folosi următoarea funcţie pentru a crea un semnal 'ramp' peste N puncte:
function y=ramp(N) %RAMP Returns a ramp signal of a given number of samples % [y] = RAMP(N) % returns the ramp signal for the given samples y = zeros(1, N); for t=1:N y(t) = t-1; end
Task-ul vostru este să creaţi un semnal combinat, ca cel din slide, dar folosind secvenţe discrete, cu o formulă ca cea de mai jos:
$s(i) = r(i) - r(i-T) - T \cdot u(i-T)$
unde $i$ este un index de la 0 la N (în loc de un număr real de la 0 la 1), $T$ este întârzierea, $s$ este semnalul rezultat, $r$ este semnalul 'ramp' (eventual întârziat cu $T$) și $u$ este semnalul 'unit step' (întârziat aici cu $T$).
Pentru asta ar trebui să:
x=1:N;
s1 = ramp(N)
[zeros(1,T), s(1:N-T)];
plot(x, s1, 'g-', 'LineWidth', 2);
Pentru a afişa mai multe semnale în aceeaşi figură cu ajutorul comenzii $plot$ puteţi folosi
hold on;
după primul plot:
figure; plot(x, s1, 'g-', 'LineWidth', 2); hold on; plot(...)
Ar trebui să obtineţi ceva similar imaginii de mai jos:
La curs am văzut că datorită egalității lui Euler putem scrie o exponenţială complexă ca o sumă de sin şi cos:
$e^{j\cdot t} = \cos(t) + j\cdot \sin(t)$
De asemenea:
$e^{-j \cdot t} = \cos(t) - j \cdot \sin(t)$
Adunând aceste 2 ecuaţii şi împărţind la 2 obţinem:
$\cos(t) = \frac{e^{j \cdot t} + e^{-j \cdot t}}{2}$
Încercaţi să arătaţi asta în Octave, făcând următoarele:
Avem un sistem de feedback precum cel din imaginea următoare:
Să presupunem că folosim acest sistem pentru sistemul de pilot automat al maşinii, unde x(t) este o constantă ce reprezintă viteza dorită, iar y(t) este viteza maşinii măsurată de vitezometru. În această aplicaţie, sistemul 2 este sistemul identitate (intrare = ieşire).
Să construim acest sistem având în vedere următoarele constrângeri:
Construiţi sistemul S1 ca o funcţie Octave cu 2 parametrii (viteza_curentă, e), care afişează următoarea viteză curentă ca mai sus. În Octave puteţi folosi o instrucţiune for pentru asta:
N = 20; y = zeros(1,N); y(1) = 7; for i=1:N-1 ... y(i+1) = S1(y(i), e(i)); end
Rulaţi sistemul de N = 20 ori şi afişaţi outputul sistemului.