Table of Contents

Cap 6 — Semnale discrete, DTFT si DFT

← inapoi la cuprins · Materie pentru examenul final · Carte: cap. 6.1–6.2 · Notitele colegilor: Cursurile 10–11 (p. 22–25) · Inainte: Cap 5 · Urmeaza: Cap 7 — Convolutia

De aici incepe materia de dupa partial. Pana acum am lucrat cu semnale analogice (formule in timpul $t$) si am vazut cum le transformam in numere (esantionare, cuantizare). De acum lucram doar cu liste de numere. Capitolul asta raspunde la o singura intrebare: cum aflu spectrul unei liste de numere? Unealta se numeste DFT. La examen apare si la teorie (“legatura dintre $k$ si frecventele reale”), si la probleme (“cum arata $|X(k)|$?”).
Ideea capitolului in 3 fraze:
  1. Dupa convertorul analog-digital avem o lista de $N$ numere. DFT ia lista si scoate alte $N$ numere, $X(0), X(1), \dots, X(N-1)$: cat din fiecare frecventa e in lista.
  2. Numarul $k$ (al catelea rezultat) inseamna frecventa reala $f_k = k\cdot f_s/N$. Rezultatele din jumatatea de sus ($k > N/2$) sunt de fapt frecventele negative.
  3. Un cosinus de amplitudine $A$ care “cade exact pe o casuta” $m$ da doua bete de inaltime $N\cdot A/2$: la $k = m$ si la $k = N - m$.
Notatii. Aici scriem lista cu $x(n)$ si spectrul ei cu $X(k)$. In cursul profesorului si in notitele colegilor aceleasi lucruri sunt scrise $s(n)$ si $S(k)$ (uneori chiar $s(k)$ cu litera mica), iar frecventa de esantionare e scrisa $F_s$. E acelasi lucru, doar alta litera.

1. Unde suntem si de ce ne trebuie un instrument nou

1.1 Ce avem in mana dupa convertorul analog-digital

Sa luam un exemplu concret. Avem un semnal analog: un cosinus de 1000 Hz (adica face 1000 de cicluri pe secunda). Il trecem printr-un convertor analog-digital (ADC) care il masoara de 8000 de ori pe secunda.

Daca masuram timp de 1 ms, prindem 8 esantioane:

Din semnal analog in lista de numere

Ce vezi in desen: in stanga, cosinusul analog (linia gri) si cele 8 momente in care ADC-ul il masoara (bulinele). In dreapta, ce ramane dupa masurare: 8 numere, desenate ca bete. Pe axa orizontala nu mai e timpul, ci al catelea numar din lista este.

Calculatorul nu primeste nici desenul, nici formula. Primeste doar lista:

$$ x = [1,\ 0.71,\ 0,\ -0.71,\ -1,\ -0.71,\ 0,\ 0.71] $$

Cuvintele pe care le folosim de acum:

Simbol Ce este In exemplu
$n$ indicele esantionului = al catelea numar din lista (numaratoarea incepe de la 0) $n = 0, 1, \dots, 7$
$x(n)$ valoarea esantionului cu numarul $n$ $x(0) = 1$, $x(1) = 0.71$, $x(4) = -1$
$N$ cate esantioane are lista $N = 8$
$f_s$ frecventa de esantionare (esantioane pe secunda, in Hz) $f_s = 8000$ Hz
$T_s$ timpul dintre doua esantioane, $T_s = 1/f_s$ $0.125$ ms
De ce ii zice semnal “discret” sau “digital”? “Discret” inseamna “din bucati separate”: semnalul exista doar la $n = 0, 1, 2, \dots$ Nu exista $x(1.5)$. Semnalul analog era “continuu”: avea o valoare in orice moment $t$. “Digital” inseamna in plus ca valorile au fost si rotunjite (cuantizate, Cap 5). In capitolul asta rotunjirea nu conteaza, asa ca folosim cele doua cuvinte ca sinonime.

1.2 Problema

Pana acum am aflat spectrul (ce frecvente sunt intr-un semnal si cat de mult din fiecare) plecand de la formula semnalului:

Acum nu mai avem formula. Avem doar $[1, 0.71, 0, -0.71, \dots]$. Un semnal real (voce, muzica, radio) nici nu are o formula.

Intrebarea capitolului: avand doar lista de numere, cum aflu ce frecvente sunt in ea?

Raspunsul: cu Transformata Fourier Discreta, pe scurt DFT (Discrete Fourier Transform). E o reteta de calcul: bagi $N$ numere, scoti $N$ numere. Rezultatul e spectrul.

Ce vei sti sa faci la sfarsitul capitolului:

  1. sa calculezi de mana DFT pentru o lista de 4 numere;
  2. sa spui ce frecventa in Hz inseamna fiecare rezultat;
  3. sa desenezi direct $|X(k)|$ pentru o suma de cosinusuri, fara calcule lungi (asta se cere la examen);
  4. sa citesti invers: din desenul $|X(k)|$ sa spui ce cosinusuri sunt in semnal.

2. Frecventa normalizata f = f_c / f_s

2.1 Intai cu numere

Luam iar cosinusul de 1000 Hz esantionat cu $f_s = 8000$ Hz. Formula lui analogica este $\cos(2\pi\cdot 1000\cdot t)$.

Esantionul numarul $n$ e masurat la momentul $t = n\cdot T_s = n/8000$ secunde. Inlocuim $t$ in formula:

$$ x(n) = \cos\left(2\pi\cdot 1000\cdot \frac{n}{8000}\right) = \cos\left(2\pi\cdot \frac{1000}{8000}\cdot n\right) = \cos\left(2\pi\cdot \frac{1}{8}\cdot n\right) $$

A aparut numarul $\frac{1}{8}$. El este $\frac{1000}{8000}$, adica frecventa semnalului impartita la frecventa de esantionare.

Ce inseamna $\frac18$: de la un esantion la urmatorul, cosinusul avanseaza cu o optime de ciclu. Deci un ciclu intreg dureaza 8 esantioane. Verifica pe desenul de mai sus: lista revine la valoarea 1 dupa 8 esantioane.

Alte exemple, toate cu $f_s = 8000$ Hz:

Frecventa reala a semnalului Impartita la $f_s$ Cat avanseaza la fiecare esantion Un ciclu dureaza
500 Hz $500/8000 = 1/16$ 1/16 de ciclu 16 esantioane
1000 Hz $1000/8000 = 1/8$ 1/8 de ciclu 8 esantioane
2000 Hz $2000/8000 = 1/4$ un sfert de ciclu 4 esantioane
4000 Hz $4000/8000 = 1/2$ jumatate de ciclu 2 esantioane

2.2 Acelasi lucru, scris cu litere

Numarul din coloana a doua se numeste frecventa normalizata:

$$ \boxed{f = \frac{f_c}{f_s}} $$

Cu ea, orice cosinus esantionat se scrie $x(n) = A\cos(2\pi f n)$. Nu mai apare nici $t$, nici $f_s$.

Drumul inapoi, de la frecventa normalizata la Hz: inmultesti cu $f_s$. Exemplu: $f = 1/8$ si $f_s = 8000$ Hz dau $f_c = \frac18\cdot 8000 = 1000$ Hz.

De ce ne complicam cu inca o frecventa? Pentru ca lista de numere “nu stie” cat de repede a fost masurata. Lista $[1, 0.71, 0, -0.71, \dots]$ poate veni de la 1000 Hz masurat cu 8000 Hz, sau de la 1 Hz masurat cu 8 Hz. Numerele sunt aceleasi. Tot ce se vede in lista este “un ciclu la 8 esantioane”, adica $f = 1/8$. Hertzii ii punem la loc abia la sfarsit, cand cineva ne spune $f_s$.

2.3 De ce conteaza doar f intre −1/2 si 1/2

Incercam un cosinus de 9000 Hz, tot cu $f_s = 8000$ Hz. Frecventa normalizata: $f = 9000/8000 = 9/8 = 1/8 + 1$.

Calculam primele 4 esantioane pentru 1000 Hz si pentru 9000 Hz:

$n$ 1000 Hz: $\cos(2\pi\cdot\frac18\cdot n)$ 9000 Hz: $\cos(2\pi\cdot\frac98\cdot n)$
0 $\cos(0) = 1$ $\cos(0) = 1$
1 $\cos(45°) = 0.71$ $\cos(405°) = \cos(360° + 45°) = 0.71$
2 $\cos(90°) = 0$ $\cos(810°) = \cos(2\cdot 360° + 90°) = 0$
3 $\cos(135°) = -0.71$ $\cos(1215°) = \cos(3\cdot 360° + 135°) = -0.71$

Listele sunt identice. Din lista nu ai cum sa spui daca a fost 1000 Hz sau 9000 Hz.

De ce ies aceleasi numere? Cand adaugi 1 la frecventa normalizata, la esantionul $n$ unghiul creste cu exact $n$ ture complete ($n\cdot 360°$). O tura completa te aduce in acelasi punct de pe cerc, deci cosinusul nu se schimba (Cap 0 §4). Cu litere, cum scrie cursul: $e^{j2\pi(f+l)n} = e^{j2\pi fn}\cdot e^{j2\pi ln} = e^{j2\pi fn}$ pentru orice numar intreg $l$, fiindca $e^{j2\pi\cdot\text{intreg}} = 1$.

Asta e exact ce am vazut in Cap 4 §2: dupa esantionare, spectrul are copii la fiecare $f_s$. In frecventa normalizata, $f_s$ inseamna $f_s/f_s = 1$. Deci:

Spectrul unui semnal digital se repeta la fiecare 1. Daca il stii pe o bucata de lungime 1, il stii peste tot.

Spectrul se repeta la fiecare 1

Ce vezi in desen: pe verticala, cat de mult din fiecare frecventa e in semnal. Pe orizontala sunt doua rigle pentru acelasi lucru: sus frecventa normalizata, jos frecventa reala in Hz pentru $f_s = 8000$ Hz. Forma albastra e spectrul; formele gri sunt copiile lui, la distanta 1 (adica 8000 Hz). Zona galbena, de la $-1/2$ la $1/2$, e cea la care ne uitam.

Bucata pe care o alegem de obicei este $f \in [-1/2,\ 1/2]$, adica in Hz $[-f_s/2,\ f_s/2]$.

De ce tocmai 1/2? $f = 1/2$ inseamna “jumatate de ciclu la fiecare esantion”, adica lista $+1, -1, +1, -1, \dots$ Mai repede de atat o lista de numere nu poate oscila. In Hz, $f = 1/2$ inseamna $f_s/2$: e frecventa Nyquist din Cap 4 §3. Tot ce e peste ea arata in lista ca o frecventa mai mica (aliasing).

Cursul mentioneaza si varianta $f \in [0, 1]$. E aceeasi informatie: bucata de la $1/2$ la $1$ este copia bucatii de la $-1/2$ la $0$, mutata cu 1 la dreapta. Vom avea nevoie de asta in §6.

3. DTFT pe scurt

3.1 Ce este

DTFT (Discrete Time Fourier Transform, “transformata Fourier cu timp discret”) este transformata Fourier adaptata pentru o lista de esantioane. Tu alegi o frecventa normalizata $f$, oricare. Ea iti spune cat din frecventa aceea este in lista.

Formulele din curs sunt acestea. Nu le vei calcula de mana; trebuie doar sa le recunosti:

$$ X(f) = \sum_{n=-\infty}^{\infty} x(n)\, e^{-j2\pi f n}, \qquad f \in [-1/2,\ 1/2] $$

$$ x(n) = \int_{-1/2}^{1/2} X(f)\, e^{j2\pi f n}\, df $$

Cum citesti prima formula:

A doua formula face drumul inapoi (din spectru in lista). Semnul $\int$ este o suma “continua”, peste toate frecventele dintre $-1/2$ si $1/2$.

Fata de transformata Fourier din Cap 3 s-a schimbat un singur lucru: in loc de timpul continuu $t$ avem indicele $n$, asa ca in loc de integrala peste $t$ avem suma peste $n$.

Proprietatea de retinut: $X(f)$ se repeta la fiecare 1 (e “periodica de perioada 1”). E desenul din §2.3.

3.2 De ce nu ne ajunge

DTFT are doua probleme. Amandoua vin de la cuvantul “infinit”:

  1. Cere o infinitate de esantioane. Suma merge de la $-\infty$ la $+\infty$. Noi avem o lista cu un numar finit de numere.
  2. Da o infinitate de rezultate. $f$ poate fi orice numar dintre $-1/2$ si $1/2$, si sunt o infinitate de astfel de numere. Un calculator nu poate calcula si memora o infinitate de valori.

Solutia este sa luam un numar finit si in timp, si in frecventa: $N$ esantioane la intrare si $N$ frecvente la iesire. Asta este DFT.

DTFT DFT
Cate esantioane foloseste o infinitate $N$
La ce frecvente da rezultat la orice $f$ din $[-1/2, 1/2]$ (o curba continua) doar la $N$ frecvente: $f = k/N$, cu $k = 0, 1, \dots, N-1$ (bete)
Se poate calcula pe calculator nu da
La ce foloseste teorie, demonstratii practica: asta ruleaza pe calculator
Legatura dintre ele: DFT da exact valorile DTFT-ului listei de $N$ esantioane, dar citite doar in $N$ puncte: la $f = 0, \frac1N, \frac2N, \dots$ Ce se intampla intre aceste puncte conteaza la “scurgerea spectrala” din Cap 8.

4. DFT calculata de mana

4.1 Ideea, in cuvinte

In Cap 0 §6 am spus ca spectrul e ca lista de ingrediente a unui smoothie: ce fructe sunt si cat din fiecare. DFT este aparatul care gusta smoothie-ul (lista de numere) si scrie lista de ingrediente.

Aparatul are $N$ casute de frecventa, numerotate cu $k = 0, 1, \dots, N-1$. (In engleza si in laborator li se spune “bin”-uri.)

Lista are $N$ numere, deci avem $N$ casute si $N$ rezultate.

4.2 Unealta: acul care se roteste

Verificarea se face cu un ac de ceas de lungime 1 care se roteste pe cerc. Pozitia acului este un numar complex de pe cercul de raza 1 (Cap 0 §4): $e^{-j\cdot\text{unghi}}$. Semnul minus inseamna ca acul se roteste in sensul acelor de ceas.

Luam cazul cel mai mic: $N = 4$ esantioane si casuta $k = 1$ (“1 ciclu in 4 esantioane”).

Cele 4 pozitii ale acului

Ce vezi in desen: cercul de raza 1. Pe orizontala e partea reala, pe verticala partea imaginara. Cele 4 buline rosii sunt pozitiile acului la pasii $n = 0, 1, 2, 3$: 1, −j, −1, j.

Ce sunt $j$ si $-j$? Sunt doar numele a doua puncte de pe cerc: $j$ e punctul de sus, $-j$ e punctul de jos, la fel cum $1$ e punctul din dreapta si $-1$ cel din stanga (Cap 0 §3). Singura regula de calcul de care ai nevoie: $j\cdot j = -1$. Din ea rezulta $j\cdot(-j) = 1$.

Pentru celelalte casute acul merge cu alta viteza: casuta $k$ face $k$ sferturi de tura la fiecare esantion.

Casuta Cat se roteste acul la fiecare esantion Pozitia la $n=0$ $n=1$ $n=2$ $n=3$
$k = 0$ deloc 1 1 1 1
$k = 1$ un sfert de tura 1 $-j$ $-1$ $j$
$k = 2$ doua sferturi = jumatate de tura 1 $-1$ 1 $-1$
$k = 3$ trei sferturi de tura 1 $j$ $-1$ $-j$

(Randul $k = 3$: trei sferturi de tura in sensul acelor de ceas te duc de la 1 la $j$, apoi la $-1$, apoi la $-j$. Urmareste pe cerc.)

4.3 Reteta

Pentru fiecare casuta $k$:

  1. iei fiecare esantion $x(n)$;
  2. il inmultesti cu pozitia acului din tabel (randul $k$, coloana $n$);
  3. aduni cele $N$ produse. Suma este $X(k)$.

4.4 Calculul pentru lista x = [1, 0, −1, 0]

Casuta $k = 0$ (acul sta pe loc: 1, 1, 1, 1):

$$ X(0) = 1\cdot 1 + 0\cdot 1 + (-1)\cdot 1 + 0\cdot 1 = 1 + 0 - 1 + 0 = 0 $$

Casuta $k = 1$ (acul: 1, $-j$, $-1$, $j$):

$$ X(1) = 1\cdot 1 + 0\cdot(-j) + (-1)\cdot(-1) + 0\cdot j = 1 + 0 + 1 + 0 = 2 $$

Casuta $k = 2$ (acul: 1, $-1$, 1, $-1$):

$$ X(2) = 1\cdot 1 + 0\cdot(-1) + (-1)\cdot 1 + 0\cdot(-1) = 1 + 0 - 1 + 0 = 0 $$

Casuta $k = 3$ (acul: 1, $j$, $-1$, $-j$):

$$ X(3) = 1\cdot 1 + 0\cdot j + (-1)\cdot(-1) + 0\cdot(-j) = 1 + 0 + 1 + 0 = 2 $$

Rezultat: $X = [0,\ 2,\ 0,\ 2]$.

DFT pentru N = 4

Ce vezi in desen: in stanga lista de intrare, cu indicele $n$ pe orizontala. In dreapta rezultatul DFT, cu indicele casutei $k$ pe orizontala si marimea rezultatului pe verticala. Sub fiecare $k$ scrie ce frecventa verifica acea casuta (explicatia vine in §5 si §6).

4.5 Ce ne spune rezultatul

De ce a iesit 2 si nu 1, cat e amplitudinea cosinusului? Pentru ca DFT aduna cele $N$ produse si nu imparte la nimic. In Cap 0, un cosinus de amplitudine 1 dadea doua linii de $\frac12$. Aici fiecare linie iese de $N$ ori mai mare: $4\cdot\frac12 = 2$. Regula generala ($N\cdot A/2$) este in §7.

4.6 Acelasi lucru, scris cu litere: formula DFT

$$ \boxed{X(k) = \sum_{n=0}^{N-1} x(n)\, e^{-j2\pi\frac{k}{N}n}, \qquad k = 0, 1, \dots, N-1} $$

Bucata cu bucata, este exact reteta din §4.3:

Compara cu formula DTFT din §3: in loc de frecventa oarecare $f$ scrie acum $\frac{k}{N}$, iar suma se opreste la $N$ esantioane. Deci casuta $k$ verifica frecventa normalizata $f = k/N$.

De ce inmultim cu un ac care se roteste si de ce in sens invers (minus)? Un cosinus este facut din doua ace care se rotesc in sensuri opuse (Cap 0 §4.3). Ca sa “prinzi” un ac care se roteste cu o anumita viteza, il inmultesti cu un ac care se roteste la fel de repede, dar invers. Rotatiile se anuleaza si produsul sta pe loc: $e^{j\theta}\cdot e^{-j\theta} = e^{0} = 1$. Atunci toate cele $N$ produse arata in aceeasi directie si se aduna. Daca vitezele nu se potrivesc, produsul continua sa se roteasca, produsele arata in toate directiile si se anuleaza intre ele.

Exemplu concret. Lista $[1, j, -1, -j]$ este un ac care se roteste invers acelor de ceas, cu un sfert de tura pe esantion.

Se aduna sau se anuleaza

Ce vezi in desen: cele 4 produse desenate ca sageti puse cap la coada (asa se aduna numerele complexe). In stanga (casuta potrivita) toate sagetile arata spre dreapta si ajungi la 4. In dreapta (casuta nepotrivita) sagetile fac un patrat si te intorci de unde ai plecat: suma 0.

Proprietatea asta (“ace de viteze diferite dau suma 0”) se numeste in curs ortogonalitatea exponentialelor complexe. Din cauza ei fiecare casuta raspunde doar la frecventa ei.

Atentie la semnul din notite. In cartea profesorului (formula 6.5) si la pagina 23 din notitele colegilor, DFT are minus la exponent, iar transformata inversa are plus. La pagina 24 din notitele colegilor semnele sunt scrise invers. Foloseste varianta din carte: minus la DFT. Pentru desenul $|X(k)|$ al unui semnal real nu se schimba nimic, pentru ca betele vin oricum in perechi simetrice.

4.7 Modul si faza

In exemplul de mai sus $X(k)$ a iesit numar obisnuit (real). In general iese numar complex. Exemplu: aceeasi oscilatie, dar intarziata cu un esantion, $x = [0, 1, 0, -1]$ (acestea sunt valorile lui $\sin(2\pi\cdot\frac14\cdot n)$).

$$ X(1) = 0\cdot 1 + 1\cdot(-j) + 0\cdot(-1) + (-1)\cdot j = -j - j = -2j $$

$$ X(3) = 0\cdot 1 + 1\cdot j + 0\cdot(-1) + (-1)\cdot(-j) = j + j = 2j $$

Celelalte doua ies 0. Deci $X = [0,\ -2j,\ 0,\ 2j]$.

Un numar complex are doua parti utile (Cap 0 §3):

Comparam: cosinusul a dat $|X| = [0, 2, 0, 2]$, sinusul da tot $|X| = [0, 2, 0, 2]$. Modulul e acelasi; difera doar faza. E ce stiam din Cap 0 §6.2: sinusul este un cosinus intarziat.

La examen se cere aproape mereu desenul modulului, $|X(k)|$.

Incearca tu: calculeaza DFT pentru $x = [3, 1, -1, 1]$.

Raspuns: $X(0) = 3 + 1 - 1 + 1 = 4$. $X(1) = 3\cdot 1 + 1\cdot(-j) + (-1)\cdot(-1) + 1\cdot j = 3 - j + 1 + j = 4$. $X(2) = 3 - 1 - 1 - 1 = 0$. $X(3) = 3 + j + 1 - j = 4$. Deci $X = [4, 4, 0, 4]$. (Lista este $1 + 2\cos(2\pi\cdot\frac14 n)$: constanta 1 da $X(0) = 4\cdot 1 = 4$, iar cosinusul de amplitudine 2 da $4\cdot\frac22 = 4$ in casutele 1 si 3. Regulile sunt in §7.)

5. De la k la Hz: f_k = k·f_s/N

5.1 Intai cu numere

Exemplul din curs: $N = 8$ esantioane, masurate cu $f_s = 8000$ Hz. Ce frecventa reala verifica casuta $k = 3$?

  1. Casuta $k$ verifica “$k$ cicluri in $N$ esantioane”. Pentru $k = 3$: 3 cicluri in 8 esantioane, adica $\frac38$ de ciclu pe esantion. Asta este frecventa normalizata $f = \frac38$ (§2).
  2. De la frecventa normalizata la Hz inmultim cu $f_s$ (§2.2): $\frac38\cdot 8000 = 3000$ Hz.

La fel pentru toate casutele:

$k$ Frecventa normalizata $k/N$ Frecventa reala $k\cdot f_s/N$
0 0 0 Hz (partea constanta)
1 1/8 1000 Hz
2 2/8 2000 Hz
3 3/8 3000 Hz
4 4/8 = 1/2 4000 Hz ($= f_s/2$)
5 5/8 5000 Hz
6 6/8 6000 Hz
7 7/8 7000 Hz

(Ultimele trei randuri sunt peste $f_s/2$. Ce inseamna ele de fapt vezi in §6.)

5.2 Acelasi lucru, scris cu litere

$$ \boxed{f_k = k\cdot\frac{f_s}{N}} $$

De unde vine: casuta $k$ are frecventa normalizata $\frac{k}{N}$ (§4.6). Frecventa normalizata este $\frac{f_c}{f_s}$ (§2.2). Le egalam: $\frac{f_c}{f_s} = \frac{k}{N}$, deci $f_c = k\cdot\frac{f_s}{N}$.

Fara $f_s$ nu poti spune nimic in Hz. DFT lucreaza doar cu lista si cu $N$. Daca enuntul nu da $f_s$, raspunsul ramane cu $k$ sau cu frecvente normalizate $k/N$ (asa e la testul din Cursul 13, problema P2 de mai jos).

5.3 Rezolutia in frecventa

Distanta dintre doua casute vecine este $f_s/N$. In exemplu: $8000/8 = 1000$ Hz. Se numeste rezolutia in frecventa (cat de fin “vede” DFT).

Cum faci rezolutia mai fina: maresti $N$ (iei mai multe esantioane), pastrand $f_s$.

$f_s$ $N$ Cat timp ai inregistrat ($N/f_s$) Rezolutia $f_s/N$
8000 Hz 8 0.001 s 1000 Hz
8000 Hz 80 0.01 s 100 Hz
8000 Hz 8000 1 s 1 Hz
16000 Hz 8 0.0005 s 2000 Hz (mai proasta!)
De ce mai multe esantioane inseamna rezolutie mai buna? Uita-te la coloana a treia: rezolutia este exact 1 impartit la durata inregistrarii ($\frac{f_s}{N} = \frac{1}{N\cdot T_s}$). Ca sa deosebesti doua note muzicale foarte apropiate trebuie sa le asculti mai mult timp. Daca asculti o miime de secunda, nu poti deosebi 1000 Hz de 1300 Hz. Capcana: daca maresti $f_s$ si pastrezi $N$, inregistrezi mai putin timp, deci rezolutia se strica (ultimul rand).

5.4 Ce interval de frecvente analizeaza DFT

Casutele $k = 0, 1, \dots, N-1$ acopera frecventele de la 0 pana aproape de $f_s$, din $f_s/N$ in $f_s/N$. Ultima casuta este la $(N-1)\cdot f_s/N$, cu un pas inainte de $f_s$. In frecventa normalizata: de la 0 pana aproape de 1.

Din §2.3 stim ca e acelasi lucru cu intervalul de la $-f_s/2$ la $f_s/2$. Cum se face trecerea vezi in sectiunea urmatoare.

6. Jumatatea de sus = frecventele negative

6.1 Ce nu se leaga

Doua lucruri de mai sus par ciudate:

Amandoua au aceeasi explicatie.

6.2 Casuta k si casuta k − N sunt aceeasi casuta

Intoarce-te la tabelul cu pozitiile acului din §4.2 ($N = 4$). Randul $k = 3$ este: $1, j, -1, -j$.

Acum gandeste-te la casuta “$k = -1$”: minus un sfert de tura la fiecare esantion, adica un sfert de tura in sens invers (invers acelor de ceas). Pozitiile: $1$, apoi sus la $j$, apoi $-1$, apoi jos la $-j$. Adica $1, j, -1, -j$.

Sunt aceleasi pozitii. Trei sferturi de tura intr-un sens te duc in acelasi punct ca un sfert de tura in celalalt sens. Deci casuta 3 si casuta $-1$ fac exact acelasi calcul: $X(3) = X(-1)$.

In general, casutele $k$ si $k - N$ difera prin $N$ pasi de $\frac1N$ de tura la fiecare esantion, adica printr-o tura completa. O tura completa nu schimba nimic. Deci:

$$ X(k) = X(k - N) \qquad\text{si, la fel,}\qquad X(k + N) = X(k) $$

Pentru $N = 8$, $f_s = 8000$ Hz: $X(7) = X(7 - 8) = X(-1)$. Casuta 7 este casuta $-1$, adica frecventa $-1\cdot 1000 = -1000$ Hz. In Hz: $7000 - 8000 = -1000$.

Am mai vazut asta. Este aliasingul din Cap 4 §4: dupa esantionarea cu 8000 Hz, frecventele 7000 Hz si $-1000$ Hz dau aceleasi esantioane, deci nu pot fi deosebite. In §2.3 am vazut acelasi lucru cu 9000 Hz si 1000 Hz.

Regula: pentru casutele din jumatatea de sus ($k > N/2$), frecventa adevarata este cea a casutei $k - N$, adica una negativa.

$k$ 0 1 2 3 4 5 6 7
$k\cdot f_s/N$ 0 1000 2000 3000 4000 5000 6000 7000
de fapt casuta 0 1 2 3 $\pm 4$ $5 - 8 = -3$ $6 - 8 = -2$ $7 - 8 = -1$
frecventa adevarata (Hz) 0 1000 2000 3000 $\pm 4000$ $-3000$ $-2000$ $-1000$

Casuta din mijloc, $k = N/2 = 4$, este $f_s/2 = 4000$ Hz. Ea este in acelasi timp $+4000$ si $-4000$ Hz ($4 - 8 = -4$): e una singura.

Jumatatea de sus a DFT sunt frecventele negative

Ce vezi in desen: sus, spectrul asa cum iese din DFT, cu $k$ de la 0 la 7 (sub fiecare $k$ scrie $k\cdot f_s/N$). Casutele portocalii (5, 6, 7) sunt frecventele negative. Jos, acelasi spectru dupa ce am mutat casutele portocalii in stanga lui 0: arata simetric, exact ca spectrele din Cap 0. Semnalul din desen este exemplul din carte: un cosinus de amplitudine 1 pe casuta 1 plus unul de amplitudine 0.5 pe casuta 2.

Atunci bata de la $k = 7$ e la 7000 Hz sau la −1000 Hz? Amandoua descriu aceleasi esantioane. Prin conventie citim totul in intervalul $[-f_s/2, f_s/2]$, deci spunem $-1000$ Hz. Daca inainte de ADC a fost pus filtrul anti-aliasing (Cap 4 §3), in semnal nici nu exista ceva peste $f_s/2$, asa ca raspunsul sigur este $-1000$ Hz.

6.3 Simetria pentru semnale reale

Un semnal real este o lista de numere obisnuite, fara $j$. Toate semnalele masurate de un ADC sunt reale.

Pentru un semnal real, betele vin in perechi: $|X(N - k)| = |X(k)|$.

De ce: orice cosinus are o linie la $+f$ si una la $-f$, de aceeasi inaltime (Cap 0 §6.1). Linia de la $+f$ ajunge in casuta $k$, cea de la $-f$ ajunge in casuta $-k$, care este casuta $N - k$.

Verificare pe exemplele de pana acum:

Mai exact, $X(N-k)$ este conjugatul lui $X(k)$: acelasi modul, faza cu semn schimbat. Ai vazut asta la sinus in §4.7: $X(1) = -2j$ si $X(3) = +2j$.

Consecinta practica: la un semnal real, jumatatea de sus nu aduce informatie noua. De aceea in laborator se deseneaza adesea doar $k = 0 \dots N/2$. La examen deseneaza toate betele, daca nu ti se cere altfel.

6.4 Ce face fftshift

In Python (laborator), fft(x) intoarce rezultatele in ordinea $k = 0, 1, \dots, N-1$. Functia fftshift doar rearanjeaza lista: muta jumatatea de sus in fata, ca sa ai ordinea $k = -N/2, \dots, -1, 0, 1, \dots, N/2 - 1$, cu frecventa 0 la mijloc. Nu calculeaza nimic nou. Este trecerea de la desenul de sus la desenul de jos din figura de mai sus.

6.5 Spectrul DFT se repeta la fiecare N

Relatia $X(k + N) = X(k)$ spune ca, daca ai calcula DFT si pentru alte valori ale lui $k$ (negative sau mai mari decat $N - 1$), ai regasi aceleasi $N$ valori, la nesfarsit. Spectrul DFT este periodic cu perioada $N$.

Spectrul DFT e periodic cu perioada N

Ce vezi in desen: acelasi spectru ca mai sus, desenat pentru $k$ de la $-8$ la $15$. Zona galbena ($k = 0 \dots 7$) este ce calculeaza DFT. In stanga si in dreapta ei apare aceeasi poza, mutata cu 8 casute. Sagetile arata ca bata de la $k = 7$ este aceeasi cu cea de la $k = -1$, iar cea de la $k = 6$ cu cea de la $k = -2$.

Este varianta cu casute a propozitiei din §2.3 (“spectrul unui semnal digital se repeta la fiecare 1”): $N$ casute inseamna frecventa normalizata $N\cdot\frac1N = 1$, adica $f_s$ in Hz.

7. DFT a unui cosinus

Asta este sectiunea de care ai nevoie la probleme: cum desenezi $|X(k)|$ fara sa faci tot calculul din §4.

Presupunere pentru tot capitolul: fiecare cosinus “cade exact pe o casuta”, adica face un numar intreg de cicluri in cele $N$ esantioane. Daca nu cade pe o casuta (de exemplu 8.5 cicluri in 32 de esantioane), spectrul se imprastie. Cazul acela este in Cap 8.

7.1 Intai cu numere

Luam $N = 16$ esantioane din $x(n) = 3\cos\left(2\pi\cdot\frac{2}{16}\cdot n\right)$.

Calculul complet al DFT (facut cu calculatorul) da: 24 la $k = 2$, 24 la $k = 14$, si 0 in toate celelalte 14 casute.

DFT a unui cosinus

Ce vezi in desen: in stanga cele 16 esantioane (betele) si cosinusul din care provin (linia intrerupta); se vad cele 2 cicluri. In dreapta $|X(k)|$: doua bete de inaltime 24, la $k = 2$ si la $k = 14 = 16 - 2$.

De unde vine 24: $16\cdot\frac{3}{2} = 24$, adica $N\cdot\frac{A}{2}$.

7.2 De unde vine N·A/2

Pas 1 — cosinusul este facut din doua ace. Din formula lui Euler (Cap 0 §4.3):

$$ A\cos\left(2\pi\frac{m}{N}n\right) = \frac{A}{2}\,e^{\,j2\pi\frac{m}{N}n} + \frac{A}{2}\,e^{-j2\pi\frac{m}{N}n} $$

Doua ace de lungime $\frac{A}{2}$, care se rotesc in sensuri opuse, cu $m$ ture in $N$ esantioane. Acesta este acel “$A/2$” din Cap 0.

Pas 2 — ce da un singur ac. Am vazut in §4.6: un ac de lungime 1 care face $m$ ture in $N$ esantioane da, in casuta potrivita $k = m$, cele $N$ produse egale cu 1. Suma lor este $N$. In toate celelalte casute da 0.

Pas 3 — punem cap la cap.

$$ \boxed{x(n) = A\cos\left(2\pi\frac{m}{N}n\right) \quad\Longrightarrow\quad |X(k)| = \frac{N\cdot A}{2}\ \text{ la } k = m \text{ si la } k = N - m;\quad 0 \text{ in rest}} $$

Verificare cu exemplul de mana din §4: $N = 4$, $A = 1$, $m = 1$ → $4\cdot\frac12 = 2$ la $k = 1$ si $k = 3$. Corect.

De ce $N\cdot A/2$ si nu $A/2$, ca in Cap 0? Pentru ca DFT aduna $N$ produse si nu imparte la $N$. Impartirea la $N$ se face la drumul inapoi (§8). Daca ai desenul si vrei amplitudinea cosinusului, intorci formula: $A = \frac{2\cdot|X(m)|}{N}$. Exemplu: $\frac{2\cdot 24}{16} = 3$.
Cum aflu $m$ cand cosinusul e dat in Hz? Din $f_k = k\cdot f_s/N$ (§5.2): $m = \frac{N\cdot f_c}{f_s}$. Exemplu: 2000 Hz, $f_s = 8000$ Hz, $N = 8$ → $m = \frac{8\cdot 2000}{8000} = 2$. Daca $m$ nu iese numar intreg, cosinusul nu cade pe o casuta (Cap 8).

7.3 Cum scrie cursul acelasi lucru: cu delta

In curs rezultatul este scris asa:

$$ X(k) = \frac{N\cdot A}{2}\,\big(\delta(k - m) + \delta(k + m)\big) $$

$\delta$ (“delta”) este un mod scurt de a scrie “o bata intr-un singur loc”:

$$ \delta(n) = \begin{cases} 1, & n = 0 \\ 0, & n \neq 0 \end{cases} $$

Adica $\delta(\dots)$ este 1 cand ce e in paranteza este 0, si este 0 in rest.

Exemplul din §7.1 scris asa: $X(k) = 24\,(\delta(k - 2) + \delta(k + 2))$.

7.4 Alte cazuri pe care le intalnesti

Ce este in lista Ce da DFT De ce Exemplu verificat
o constanta $c$ o singura bata, $N\cdot c$, la $k = 0$ constanta este un singur ac care nu se roteste, de lungime $c$ (nu doua jumatati) $[2, 2, 2, 2]$ → $X(0) = 4\cdot 2 = 8$
$A\sin\left(2\pi\frac{m}{N}n\right)$ aceleasi doua bete, $N\cdot A/2$, la $k = m$ si $k = N - m$ sinusul e un cosinus intarziat; se schimba doar faza (§4.7) $[0, 1, 0, -1]$ → $\lvert X\rvert = [0, 2, 0, 2]$
cosinus exact pe casuta din mijloc, $m = N/2$ o singura bata, $N\cdot A$, la $k = N/2$ cele doua bete ar fi la $N/2$ si la $N - N/2 = N/2$: cad in aceeasi casuta si se aduna $3\cos(\pi n) = [3, -3, 3, -3, \dots]$, $N = 8$ → $X(4) = 24$
suma de mai multe cosinusuri betele fiecaruia, puse pe acelasi desen DFT a unei sume = suma DFT-urilor (liniaritate, §8) vezi problemele din §9

8. IDFT si proprietatile DFT

8.1 Drumul inapoi: IDFT

IDFT (Inverse DFT, “DFT inversa”) face drumul invers: din cele $N$ valori $X(k)$ reface lista $x(n)$.

Intai cu numere. Plecam de la $X = [0, 2, 0, 2]$ (rezultatul din §4.4) si vrem lista inapoi. Reteta este aceeasi, cu doua schimbari: acul se roteste invers (plus in loc de minus) si la sfarsit impartim la $N$.

Pentru $N = 4$, pozitiile acului care se roteste invers acelor de ceas sunt: casuta 1 → $1, j, -1, -j$ (pentru $n = 0, 1, 2, 3$); casuta 3 → $1, -j, -1, j$. Casutele 0 si 2 nu conteaza, fiindca $X(0) = X(2) = 0$.

Am regasit $x = [1, 0, -1, 0]$. Nu s-a pierdut nimic.

Acelasi lucru, scris cu litere:

$$ \boxed{x(n) = \frac{1}{N}\sum_{k=0}^{N-1} X(k)\, e^{\,j2\pi\frac{k}{N}n}, \qquad n = 0, 1, \dots, N-1} $$

In cuvinte: lista este o suma de $N$ ace care se rotesc cu viteze diferite. $X(k)/N$ spune cat de lung este acul numarul $k$ si din ce pozitie porneste. DFT desface lista in ace; IDFT le aduna la loc.

De ce se imparte la $N$? Pentru ca DFT a adunat $N$ produse si a iesit de $N$ ori “prea mare” (§7.2). Drumul inapoi trebuie sa anuleze asta. Fara impartire am fi obtinut $[4, 0, -4, 0]$ in loc de $[1, 0, -1, 0]$.

8.2 Proprietatile DFT

Cursul spune ca proprietatile transformatei Fourier din analog (Cap 2 §4, Cap 3 §2) raman valabile si pentru DFT. Iata-le, fiecare cu un exemplu verificat numeric.

Proprietatea In cuvinte Exemplu
$N$ numere intra, $N$ numere ies lista si spectrul au acelasi numar de elemente; numarul de esantioane $N$ hotaraste cate casute de frecventa vezi $N = 4$: 4 esantioane → $X(0) \dots X(3)$
Liniaritate spectrul unei sume este suma spectrelor; daca inmultesti lista cu un numar, spectrul se inmulteste cu acelasi numar cosinus pe casuta 1 + cosinus pe casuta 2 → betele amandurora (P1 din §9)
Periodicitate: $X(k + N) = X(k)$ spectrul se repeta la fiecare $N$ casute $N = 8$: $X(7) = X(-1)$ (§6.5)
Simetrie (semnale reale): $\lvert X(N-k)\rvert = \lvert X(k)\rvert$ betele vin in perechi; jumatatea de sus este oglinda celei de jos $N = 4$: $\lvert X(1)\rvert = \lvert X(3)\rvert = 2$ (§6.3)
Deplasare in timp (intarziere) daca intarzii lista, modulele $\lvert X(k)\rvert$ raman la fel; se schimba doar fazele $[1, 0, -1, 0]$ si $[0, 1, 0, -1]$ au amandoua $\lvert X\rvert = [0, 2, 0, 2]$ (§4.7)
Deplasare in frecventa daca inmultesti lista cu un ac care se roteste, $e^{\,j2\pi\frac{m}{N}n}$, tot spectrul se muta cu $m$ casute $[1, 0, -1, 0]$ inmultita cu $[1, -j, -1, j]$ da $[1, 0, 1, 0]$, cu $X = [2, 0, 2, 0]$: betele de la $k = 1, 3$ s-au mutat cu o casuta la stanga, la $k = 0, 2$
$X(0)$ = suma esantioanelor casuta 0 masoara partea constanta: $X(0) = N\cdot$ media listei $[3, 1, -1, 1]$: suma 4, media 1, $X(0) = 4$
Parseval (energia) energia calculata din lista este aceeasi cu cea calculata din spectru: $\sum \lvert x(n)\rvert^2 = \frac1N\sum \lvert X(k)\rvert^2$ $[1, 0, -1, 0]$: $1 + 0 + 1 + 0 = 2$ si $\frac14(0 + 4 + 0 + 4) = 2$
Unde ai mai vazut deplasarea in frecventa? Este pasul IQ din Cap 4 §6: inmultirea cu $[1, -j, -1, j, \dots] = e^{-j\frac{\pi}{2}n}$ muta tot spectrul cu $f_s/4$ la stanga. In casute, $f_s/4$ inseamna $N/4$ casute; pentru $N = 4$, o casuta. Exact ce se vede in exemplul din tabel.

Mai exista o proprietate importanta, care leaga DFT de filtrare: teorema convolutiei. Ea are capitolul ei: Cap 7.

DFT si FFT. FFT (Fast Fourier Transform) este un mod mai rapid de a calcula exact aceleasi valori $X(k)$. Tot ce scrie in capitolul asta este valabil si pentru FFT. Cum functioneaza si cat de rapida este: Cap 11.

9. Probleme rezolvate pe puncte

Reteta pentru “cum arata $|X(k)|$?” (semnal = suma de cosinusuri care cad pe casute)
  1. Scrie fiecare cosinus in forma $A\cos\left(2\pi\frac{m}{N}n\right)$. Daca e dat in Hz: $m = \frac{N\cdot f_c}{f_s}$. Verifica daca $m$ este numar intreg.
  2. Fiecare cosinus da doua bete de inaltime $N\cdot A/2$: la $k = m$ si la $k = N - m$. (O constanta $c$ da o singura bata $N\cdot c$ la $k = 0$.)
  3. Pune toate betele pe acelasi desen (liniaritate). In rest, 0.
  4. Eticheteaza axele: $k$ pe orizontala, $|X(k)|$ pe verticala, cu inaltimile scrise. Daca se cer Hz: $f_k = k\cdot f_s/N$.

P1 — doua cosinusuri, f_s = 8000 Hz, N = 8 (Test 1 din curs)

Fie $x(n) = \cos(2\pi f_1 nT_s) + \cos(2\pi f_2 nT_s)$, cu $f_1 = 1000$ Hz, $f_2 = 2000$ Hz, $T_s = \frac{1}{8000}$ s. Luam $N = 8$ esantioane.
  1. a) Scrie semnalul cu frecvente normalizate. Pe ce casute cad cele doua cosinusuri?
  2. b) Calculeaza $X(k)$ si deseneaza $|X(k)|$.
  3. c) Ce frecvente reale (in Hz) corespund betelor?

PUNCTUL a)

Ce se cere: sa scriem fiecare cosinus ca $\cos\left(2\pi\frac{m}{N}n\right)$ si sa aflam $m$.

Ce stim: $f_1 = 1000$ Hz, $f_2 = 2000$ Hz, $T_s = 1/8000$ s, $N = 8$.

Pasi:

  1. Frecventa de esantionare: $f_s = 1/T_s = 8000$ Hz.
  2. Inlocuim $T_s$: $\cos(2\pi\cdot 1000\cdot n\cdot\frac{1}{8000}) = \cos\left(2\pi\cdot\frac{1}{8}\cdot n\right)$. Frecventa normalizata $\frac18$, deci $m_1 = 1$.
  3. La fel: $\cos(2\pi\cdot 2000\cdot n\cdot\frac{1}{8000}) = \cos\left(2\pi\cdot\frac{2}{8}\cdot n\right)$. Frecventa normalizata $\frac28$, deci $m_2 = 2$.
  4. Verificare cu formula din §7.2: $m_1 = \frac{8\cdot 1000}{8000} = 1$, $m_2 = \frac{8\cdot 2000}{8000} = 2$. Sunt intregi, deci cad pe casute.
Raspuns a): $x(n) = \cos\left(2\pi\frac18 n\right) + \cos\left(2\pi\frac28 n\right)$. Primul cosinus cade pe casuta $m = 1$, al doilea pe casuta $m = 2$. Amandoua au amplitudinea $A = 1$.

PUNCTUL b)

Ce se cere: valorile $X(k)$ pentru $k = 0 \dots 7$ si desenul modulului.

Ce stim: de la a), $m_1 = 1$, $m_2 = 2$, $A = 1$ pentru amandoua, $N = 8$.

Pasi:

  1. Inaltimea betelor: $N\cdot\frac{A}{2} = 8\cdot\frac12 = 4$, pentru fiecare cosinus.
  2. Primul cosinus ($m = 1$): bete la $k = 1$ si la $k = N - 1 = 7$. Cu delta: $X_1(k) = 4\,(\delta(k-1) + \delta(k+1))$.
  3. Al doilea cosinus ($m = 2$): bete la $k = 2$ si la $k = N - 2 = 6$. Cu delta: $X_2(k) = 4\,(\delta(k-2) + \delta(k+2))$.
  4. Le adunam (liniaritate): $X(k) = X_1(k) + X_2(k)$.
De ce $k = 7$ si $k = 6$? $\delta(k+1)$ inseamna o bata la $k = -1$. Casuta $-1$ este casuta $-1 + 8 = 7$ (§6.2). La fel, $k = -2$ este casuta $6$.

P1: lista si spectrul

Ce vezi in desen: in stanga cele 8 esantioane ale lui $x(n)$. In dreapta raspunsul: patru bete de inaltime 4, la $k = 1, 2, 6, 7$. Sub fiecare $k$ scrie frecventa reala (pentru punctul c).

Raspuns b): $X(k) = 4\,(\delta(k-1) + \delta(k+1)) + 4\,(\delta(k-2) + \delta(k+2))$. Pe desen: $|X(k)| = 4$ la $k = 1, 2, 6, 7$ si 0 la $k = 0, 3, 4, 5$.
In notitele de curs desenul are 8 bete, la $k = \pm1, \pm2, \pm6, \pm7$, pentru ca axa e desenata de la $-7$ la $7$. Este acelasi spectru, vazut pe mai mult de o perioada (§6.5): bata de la $k = -1$ este aceeasi cu cea de la $k = 7$, cea de la $k = -7$ aceeasi cu cea de la $k = 1$ si asa mai departe. Intr-o fereastra de $N = 8$ casute la rand sunt doar 4 bete.

PUNCTUL c)

Ce se cere: frecventa in Hz pentru fiecare bata.

Ce stim: betele sunt la $k = 1, 2, 6, 7$; $f_s = 8000$ Hz, $N = 8$.

Pasi:

  1. Pasul dintre casute: $f_s/N = 8000/8 = 1000$ Hz.
  2. $k = 1$ → $1\cdot 1000 = 1000$ Hz. $k = 2$ → $2000$ Hz.
  3. $k = 6$ este in jumatatea de sus, deci frecventa adevarata e cea a casutei $6 - 8 = -2$: $-2000$ Hz.
  4. $k = 7$ → casuta $7 - 8 = -1$: $-1000$ Hz.
Raspuns c): betele sunt la $\pm 1000$ Hz si $\pm 2000$ Hz. Sunt exact frecventele $f_1$ si $f_2$ din enunt, fiecare cu perechea ei negativa.

P2 — testul din Cursul 13: N = 16

Fie $x(n) = 10\cos\left(2\pi\frac{3}{16}n\right) + 20\cos\left(2\pi\frac{5}{16}n\right)$. Daca folosim DFT/FFT cu $N = 16$, cum arata spectrul $|X(k)|$?
  1. a) Pe ce casute cad cosinusurile si ce amplitudini au?
  2. b) Ce inaltime au betele?
  3. c) Deseneaza $|X(k)|$.
  4. d) (in plus) Daca semnalul a fost esantionat cu $f_s = 16$ kHz, ce frecvente reale are?

PUNCTUL a)

Ce se cere: $m$ si $A$ pentru fiecare cosinus.

Ce stim: semnalul este deja scris cu frecvente normalizate; $N = 16$.

Pasi:

  1. Comparam cu forma $A\cos\left(2\pi\frac{m}{N}n\right)$, cu $N = 16$.
  2. Primul termen: $10\cos\left(2\pi\frac{3}{16}n\right)$ → $A_1 = 10$, $m_1 = 3$.
  3. Al doilea termen: $20\cos\left(2\pi\frac{5}{16}n\right)$ → $A_2 = 20$, $m_2 = 5$.
Raspuns a): primul cosinus: amplitudine 10, casuta 3. Al doilea: amplitudine 20, casuta 5. Amandoua cad exact pe casute (numitorul fractiei este chiar $N = 16$).

PUNCTUL b)

Ce se cere: inaltimea fiecarei bete.

Ce stim: $N = 16$, $A_1 = 10$, $A_2 = 20$.

Pasi:

  1. Regula: inaltimea este $N\cdot\frac{A}{2}$.
  2. Primul cosinus: $16\cdot\frac{10}{2} = 16\cdot 5 = 80$.
  3. Al doilea cosinus: $16\cdot\frac{20}{2} = 16\cdot 10 = 160$.
Raspuns b): 80 pentru cosinusul de amplitudine 10 si 160 pentru cel de amplitudine 20.
Atentie: $N\cdot A/2$, nu $N\cdot A$. In notitele colegilor (p. 29) pe grafic sunt trecute valorile 160 si 320. Dar calculul de pe aceeasi pagina este $S(k) = 5\cdot 16\,(\dots) + 10\cdot 16\,(\dots)$, adica 80 si 160. Am verificat si cu calculatorul: valorile corecte sunt 80 si 160. Cel mai probabil pe grafic s-a uitat impartirea la 2.

PUNCTUL c)

Ce se cere: desenul $|X(k)|$, cu axele etichetate.

Ce stim: bete de 80 pentru $m = 3$ si de 160 pentru $m = 5$; $N = 16$.

Pasi:

  1. Cosinusul cu $m = 3$: bete la $k = 3$ si la $k = N - 3 = 13$.
  2. Cosinusul cu $m = 5$: bete la $k = 5$ si la $k = N - 5 = 11$.
  3. Restul casutelor: 0.
  4. Cu delta: $X(k) = 80\,(\delta(k-3) + \delta(k+3)) + 160\,(\delta(k-5) + \delta(k+5))$.

P2: spectrul pentru N = 16

Ce vezi in desen: acelasi raspuns in doua feluri. Sus, cum iese din DFT: $k$ de la 0 la 15, cu betele la $k = 3, 5, 11, 13$. Jos, cu 0 la mijloc (cum e desenat la curs): $k$ de la $-8$ la 7, cu betele la $k = \pm 3$ si $k = \pm 5$. Oricare dintre ele e un raspuns corect.

Raspuns c): $|X(k)| = 80$ la $k = 3$ si $k = 13$ (adica $k = \pm 3$); $|X(k)| = 160$ la $k = 5$ si $k = 11$ (adica $k = \pm 5$); 0 in rest.

PUNCTUL d)

Ce se cere: frecventele in Hz, daca $f_s = 16$ kHz.

Ce stim: betele sunt la $k = \pm 3$ si $k = \pm 5$; $N = 16$; $f_s = 16000$ Hz.

Pasi:

  1. Pasul dintre casute: $f_s/N = 16000/16 = 1000$ Hz.
  2. $k = 3$ → $3\cdot 1000 = 3000$ Hz. $k = 5$ → $5000$ Hz.
Raspuns d): un cosinus de 3 kHz cu amplitudinea 10 si unul de 5 kHz cu amplitudinea 20. Amandoua sunt sub $f_s/2 = 8$ kHz, deci nu e aliasing.

P3 — citirea inversa: din spectru in semnal

Un semnal real a fost esantionat cu $f_s = 2000$ Hz. S-au luat $N = 20$ esantioane si s-a calculat DFT. Modulul $|X(k)|$ este cel din desen: 40 la $k = 0$; 30 la $k = 3$ si $k = 17$; 10 la $k = 5$ si $k = 15$; 0 in rest.
  1. a) Ce frecventa reala are fiecare bata?
  2. b) Ce amplitudine are fiecare componenta?
  3. c) Scrie semnalul $x(n)$ si semnalul analog $x(t)$ din care provine.

P3: spectrul dat

Ce vezi in desen: enuntul. Pe orizontala indicele casutei $k$ (de la 0 la 19), pe verticala $|X(k)|$. Sunt cinci bete.

PUNCTUL a)

Ce se cere: frecventa in Hz pentru fiecare bata.

Ce stim: $f_s = 2000$ Hz, $N = 20$; bete la $k = 0, 3, 5, 15, 17$.

Pasi:

  1. Pasul dintre casute: $f_s/N = 2000/20 = 100$ Hz.
  2. $k = 0$ → 0 Hz. Este partea constanta a semnalului.
  3. $k = 3$ → $3\cdot 100 = 300$ Hz. $k = 5$ → $500$ Hz.
  4. $k = 17$ este in jumatatea de sus ($17 > N/2 = 10$): casuta $17 - 20 = -3$ → $-300$ Hz. Este perechea betei de la $k = 3$.
  5. $k = 15$ → casuta $15 - 20 = -5$ → $-500$ Hz. Este perechea betei de la $k = 5$.
Raspuns a): 0 Hz (constanta), $\pm 300$ Hz, $\pm 500$ Hz. Deci in semnal sunt: o constanta, un cosinus de 300 Hz si un cosinus de 500 Hz. Betele de la $k = 15$ si $k = 17$ nu sunt cosinusuri in plus: sunt jumatatile negative ale celor doua cosinusuri.

PUNCTUL b)

Ce se cere: valoarea constantei si amplitudinile cosinusurilor.

Ce stim: inaltimile betelor: 40, 30, 10; $N = 20$.

Pasi:

  1. Constanta: bata de la $k = 0$ are inaltimea $N\cdot c$ (§7.4). Deci $c = \frac{40}{20} = 2$.
  2. Cosinusul de 300 Hz: bata are inaltimea $N\cdot\frac{A}{2}$. Deci $A = \frac{2\cdot 30}{20} = 3$.
  3. Cosinusul de 500 Hz: $A = \frac{2\cdot 10}{20} = 1$.
De ce la constanta impart doar la $N$, iar la cosinus inmultesc si cu 2? Constanta are o singura bata, care contine tot. Cosinusul isi imparte amplitudinea in doua bete egale (la $+f$ si la $-f$), fiecare cu jumatate.
Raspuns b): constanta 2; amplitudinea 3 la 300 Hz; amplitudinea 1 la 500 Hz.

PUNCTUL c)

Ce se cere: formula lui $x(n)$ si a lui $x(t)$.

Ce stim: de la a) si b): constanta 2; $A = 3$ pe casuta 3 (300 Hz); $A = 1$ pe casuta 5 (500 Hz).

Pasi:

  1. In casute: $x(n) = 2 + 3\cos\left(2\pi\frac{3}{20}n\right) + \cos\left(2\pi\frac{5}{20}n\right)$.
  2. In Hz, inlocuind $\frac{m}{N}n$ cu $f_c\cdot t$: $x(t) = 2 + 3\cos(2\pi\cdot 300\,t) + \cos(2\pi\cdot 500\,t)$.
  3. Verificare (cu calculatorul): DFT pentru aceasta lista da exact 40, 30, 10, 10, 30 in casutele 0, 3, 5, 15, 17.
Raspuns c): $x(t) = 2 + 3\cos(2\pi\cdot 300\,t) + \cos(2\pi\cdot 500\,t)$. Observatie: din modul nu se vede faza. In loc de cosinus putea fi sinus sau un cosinus intarziat; desenul $|X(k)|$ ar fi fost acelasi (§4.7). Daca nu se da faza, scrii cu cosinus si mentionezi asta.

10. Ce trebuie sa stii din Cap 6 (fisa de 1 minut)

11. Grile de verificare

G1. Un semnal este esantionat cu $f_s = 6400$ Hz si se calculeaza DFT pe $N = 64$ esantioane. Casuta $k = 5$ corespunde frecventei:

  1. A. 5 Hz
  2. B. 500 Hz
  3. C. 320 Hz
  4. D. 6400 Hz

G2. $x(n) = 4\cos\left(2\pi\cdot 300\cdot\frac{n}{1200}\right)$, cu $N = 12$ esantioane. $|X(k)|$ este diferit de zero:

  1. A. doar la $k = 3$, cu inaltimea 4
  2. B. la $k = 3$ si $k = 9$, cu inaltimea 24
  3. C. la $k = 3$ si $k = 9$, cu inaltimea 48
  4. D. la $k = 300$, cu inaltimea 2

G3. Vrei ca DFT sa deosebeasca doua frecvente foarte apropiate (rezolutie mai fina). Ce faci?

  1. A. maresti $f_s$ si pastrezi $N$
  2. B. maresti $N$ si pastrezi $f_s$
  3. C. maresti amplitudinea semnalului
  4. D. aplici fftshift

G4. $N = 8$, $f_s = 8000$ Hz, semnal real. In spectru apare o bata la $k = 7$. Ea reprezinta:

  1. A. o componenta de 7000 Hz, separata de restul
  2. B. componenta de $-1000$ Hz, perechea betei de la $k = 1$
  3. C. zgomot de cuantizare
  4. D. o eroare de calcul

G5. De ce nu putem calcula DTFT pe calculator?

  1. A. pentru ca foloseste numere complexe
  2. B. pentru ca cere o infinitate de esantioane si da rezultat pentru o infinitate de frecvente
  3. C. pentru ca merge doar la semnale periodice
  4. D. pentru ca este prea lenta; de aceea folosim FFT

G6. DFT a listei constante $x = [5, 5, 5, 5]$ este:

  1. A. $[5, 0, 0, 0]$
  2. B. $[20, 0, 0, 0]$
  3. C. $[10, 0, 0, 10]$
  4. D. $[0, 20, 0, 20]$

G7. Avem lista unui cosinus si lista aceluiasi cosinus intarziat cu un esantion. Modulele $|X(k)|$ ale celor doua liste sunt:

  1. A. identice
  2. B. deplasate cu o casuta una fata de alta
  3. C. a doua are betele pe jumatate
  4. D. a doua este zero peste tot

G8. In spectrul DFT al unui semnal real, cu $N = 100$, apare o bata de inaltime 250 la $k = 10$ (si perechea ei la $k = 90$). Amplitudinea cosinusului este:

  1. A. 250
  2. B. 2.5
  3. C. 5
  4. D. 125

(Raspunsurile sunt in sectiunea 13.)

12. Intrebari de teorie ca la examen

Raspunsurile sunt scrise asa cum le-ai pune pe foaie: scurt, cu formula si cu un exemplu.

T1. (examen 2023 A, 2026) Despre DFT: ce interval de frecvente analizeaza, care e legatura dintre $k$ si frecventele reale, ce proprietati are?

  • Interval: DFT pe $N$ esantioane da $N$ valori $X(k)$, $k = 0 \dots N-1$, care acopera frecventele de la 0 pana la $f_s$ (fara $f_s$), in pasi de $f_s/N$. Echivalent, intervalul $[-f_s/2, f_s/2]$: casutele cu $k > N/2$ sunt frecventele negative ($k - N$).
  • Legatura $k$ ↔ Hz: $f_k = k\cdot f_s/N$. Exemplu: $N = 8$, $f_s = 8000$ Hz, $k = 3$ → 3000 Hz. Rezolutia este $f_s/N$.
  • Proprietati: liniaritate; spectru periodic cu perioada $N$, $X(k+N) = X(k)$; simetrie pentru semnale reale, $|X(N-k)| = |X(k)|$; intarzierea in timp schimba doar faza; inmultirea cu $e^{j2\pi mn/N}$ deplaseaza spectrul cu $m$ casute.

T2. De ce folosim DFT si nu DTFT?

DTFT, $X(f) = \sum_{n=-\infty}^{\infty} x(n)e^{-j2\pi fn}$, cere o infinitate de esantioane si da un spectru continuu (o infinitate de valori ale lui $f$). Niciuna nu se poate face pe calculator. DFT foloseste un numar finit $N$ de esantioane si calculeaza spectrul doar la $N$ frecvente, $f = k/N$. De aceea DFT (calculata rapid cu FFT) este varianta practica.

T3. Ce este frecventa normalizata si in ce interval ia valori?

Este raportul dintre frecventa semnalului si frecventa de esantionare: $f = f_c/f_s$. Nu are unitate de masura. Apare cand inlocuim $t = nT_s$: $\cos(2\pi f_c nT_s) = \cos(2\pi fn)$. Pentru ca $e^{j2\pi(f+1)n} = e^{j2\pi fn}$, spectrul se repeta la fiecare 1, deci ne intereseaza doar $f \in [-1/2, 1/2]$ (sau $[0, 1]$), adica $f_c \in [-f_s/2, f_s/2]$.

T4. Cum arata spectrul DFT al semnalului $A\cos(2\pi\frac{m}{N}n)$? Dar al unei constante?

Cosinusul se scrie $\frac{A}{2}(e^{j2\pi mn/N} + e^{-j2\pi mn/N})$. Fiecare exponentiala da $N$ in casuta ei si 0 in rest (ortogonalitate). Rezulta $X(k) = \frac{NA}{2}(\delta(k-m) + \delta(k+m))$: doua bete de inaltime $NA/2$, la $k = m$ si $k = N - m$. O constanta $c$ da o singura bata, $X(0) = Nc$.

T5. Ce este rezolutia in frecventa a DFT si cum o putem imbunatati?

Este distanta dintre doua casute vecine: $f_s/N$ (in Hz), adica 1 impartit la durata inregistrarii. O imbunatatim marind numarul de esantioane $N$ (inregistram mai mult timp) la acelasi $f_s$. Daca marim doar $f_s$, rezolutia se inrautateste.

T6. (examen 2023 A, 2026) Ce diferenta este intre DFT si FFT?

Calculeaza aceleasi valori $X(k)$. DFT aplicata direct are nevoie de aproximativ $N^2$ operatii (pentru fiecare din cele $N$ casute, o suma cu $N$ termeni). FFT este un algoritm rapid care obtine acelasi rezultat in aproximativ $N\log_2 N$ operatii. Detalii in Cap 11.

T7. Scrie formulele DFT si IDFT si explica termenii.

$X(k) = \sum_{n=0}^{N-1} x(n)e^{-j2\pi kn/N}$ si $x(n) = \frac1N\sum_{k=0}^{N-1} X(k)e^{j2\pi kn/N}$. $x(n)$ = esantioanele semnalului; $N$ = numarul lor; $k$ = indicele componentei de frecventa (corespunde frecventei $k f_s/N$); $X(k)$ = numar complex al carui modul arata cat din acea frecventa este in semnal, iar faza arata intarzierea ei. IDFT reface exact semnalul din spectru.

13. Raspunsuri la grile

Grila Raspuns De ce e corect De ce sunt gresite celelalte
G1 B $f_k = k\cdot f_s/N = 5\cdot 6400/64 = 5\cdot 100 = 500$ Hz A: $k$ nu este direct in Hz. C: 320 ar fi $f_s/20$, fara legatura. D: $f_s$ ar fi casuta $k = 64$, care nici nu exista ($k$ merge pana la 63)
G2 B $f = 300/1200 = 3/12$, deci $m = 3$; bete la $k = 3$ si $k = 12 - 3 = 9$, de inaltime $N\cdot A/2 = 12\cdot 4/2 = 24$ A: un cosinus are doua bete, iar inaltimea nu este $A$. C: 48 ar fi $N\cdot A$, fara impartirea la 2. D: $k$ merge doar pana la 11
G3 B rezolutia este $f_s/N$; cu $N$ mai mare, pasul e mai mic A: face $f_s/N$ mai mare, deci mai rau. C: amplitudinea schimba doar inaltimea betelor. D: fftshift doar rearanjeaza
G4 B casuta 7 este casuta $7 - 8 = -1$, adica $-1000$ Hz; la un semnal real betele vin in perechi, $\lvert X(7)\rvert = \lvert X(1)\rvert$ A: 7000 Hz e peste $f_s/2 = 4000$ Hz, nu poate fi reprezentata separat. C, D: bata apare la orice cosinus de 1000 Hz, este normala
G5 B suma e peste o infinitate de esantioane, iar $f$ e continuu A: si DFT foloseste numere complexe. C: DTFT e pentru orice lista. D: nu e “lenta”, e imposibila; FFT este varianta rapida a DFT, nu a DTFT
G6 B o constanta $c$ da o singura bata $N\cdot c = 4\cdot 5 = 20$ la $k = 0$ (suma esantioanelor) A: lipseste inmultirea cu $N$. C: constanta nu se imparte in doua bete; are una singura, la $k = 0$. D: betele la $k = 1, 3$ apar la un cosinus cu un ciclu in 4 esantioane
G7 A intarzierea schimba doar fazele; modulele raman aceleasi (§4.7) B: deplasarea cu casute apare la inmultirea cu o exponentiala, nu la intarziere. C, D: intarzierea nu schimba cat din frecventa este in semnal
G8 C $A = 2\cdot\lvert X(m)\rvert/N = 2\cdot 250/100 = 5$ A: inaltimea betei nu este amplitudinea. B: 2.5 ar fi $\lvert X\rvert/N$, fara inmultirea cu 2. D: 125 este jumatate din bata, nu amplitudinea

Urmatorul capitol: Cap 7 — Convolutia si teorema convolutiei. Apoi: Cap 8 — ce se intampla cand cosinusul nu cade pe o casuta (leakage).