====== Cap 8 — DFT leakage (scurgerea spectrala), zero-padding si ferestre ====== [[ps:start|← inapoi la cuprins]] · Materie pentru EXAMEN (dupa partial) · Carte: cap. 6.4 · Inainte: [[ps:cap6-dft|Cap 6 — DFT]] si [[ps:cap7-convolutie|Cap 7 — Convolutia]] **De ce conteaza capitolul asta la examen:** * intrebare de teorie data deja (2023): //"Despre DFT Leakage: ce este, de ce apare, cum il atenuam"// → raspuns model in sectiunea 11; * bucata din problema de examen (ian. 2025, 2026): //spectrul unui semnal cu DFT de $N = 64$, apoi zero-padding la 128 — ce se schimba?// → rezolvata pe puncte in sectiunea 8. **Ideea capitolului in 3 fraze:** - DFT-ul are "cutii" doar la anumite frecvente. Daca frecventa semnalului cade **intre** doua cutii, ea se **imprastie** peste toate cutiile. Asta e **leakage** (scurgere spectrala). - **Zero-padding** (adaugi zerouri la sfarsit) iti arata **mai multe puncte** din acelasi spectru, dar **nu** adauga informatie si **nu** micsoreaza scurgerea. - O **fereastra** (Hann, Hamming, Blackman) = inmultesti esantioanele cu o forma care coboara lin la 0 la capete. Scurgerea departe de varf scade mult; pretul: varful devine mai lat. **Ce trebuie sa stii dinainte** (din [[ps:cap6-dft|Cap 6]]) — doar 4 lucruri: - DFT-ul primeste $N$ esantioane $x(0), x(1), \dots, x(N-1)$ si scoate $N$ numere $X(0), X(1), \dots, X(N-1)$. Marimea $|X(k)|$ spune **cat din frecventa numarul $k$ este in semnal**. - Fiecare $k$ este o "cutie" (in engleza //bin//) cu o frecventa fixa: $f_k = k \cdot f_s / N$. Aici $f_s$ este frecventa de esantionare (cate esantioane pe secunda). - Un cosinus de amplitudine $A$ aflat **exact** pe cutia $m$ da doua linii de inaltime $N \cdot A / 2$: una la $k = m$ si una la $k = N - m$. In rest, zero. - Cutiile din jumatatea de sus ($k > N/2$) sunt **oglinda** jumatatii de jos (frecventele negative). Ne uitam mai ales la $k = 0 \dots N/2$. ===== 1. Problema: ce se intampla cand frecventa cade intre doua cutii ===== ==== 1.1 Pregatirea: unde sunt cutiile ==== Luam exemplul din curs: avem $N = 32$ esantioane. Ca sa avem si Hz, alegem $f_s = 3200$ Hz (3200 de esantioane pe secunda). Atunci distanta dintre doua cutii vecine este $$ \frac{f_s}{N} = \frac{3200}{32} = 100 \text{ Hz} $$ Deci cutiile sunt din 100 in 100 Hz: ^ cutia $k$ ^ 0 ^ 1 ^ 2 ^ ... ^ 8 ^ 9 ^ ... ^ 16 ^ | frecventa $f_k = k \cdot 100$ Hz | 0 | 100 | 200 | ... | **800** | **900** | ... | 1600 ($= f_s/2$) | **Exista cutie la 800 Hz. Exista cutie la 900 Hz. NU exista cutie la 850 Hz.** De aici vine toata problema. ==== 1.2 Semnalul A: cosinus la 800 Hz (pe cutie) ==== $$ x_A(n) = \cos\left(2\pi \cdot \frac{8}{32} \cdot n\right) $$ **Ce inseamna $8/32$:** cosinusul face **8 perioade complete** in cele 32 de esantioane. Frecventa lui in Hz este $8 \cdot f_s/32 = 8 \cdot 100 = 800$ Hz. Cade exact pe cutia $k = 8$. Rezultatul DFT (regula din Cap 6, cu $N = 32$, $A = 1$): o linie de inaltime $N \cdot A/2 = 32 \cdot 1/2 = 16$ la $k = 8$, oglinda ei la $k = 32 - 8 = 24$, si **zero in toate celelalte cutii**. ==== 1.3 Semnalul B: cosinus la 850 Hz (intre cutii) ==== $$ x_B(n) = \cos\left(2\pi \cdot \frac{8.5}{32} \cdot n\right) $$ Acum cosinusul face **8 perioade si jumatate** in cele 32 de esantioane. Frecventa: $8.5 \cdot 100 = 850$ Hz. Ar trebui sa stea in "cutia 8.5", dar o asemenea cutie nu exista. Am calculat DFT-ul (cu calculatorul). Iata cateva valori, puse langa cele ale semnalului A: ^ cutia $k$ ^ 0 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ 10 ^ 11 ^ 12 ^ 16 ^ | frecventa cutiei [Hz] | 0 | 500 | 600 | 700 | 800 | 900 | 1000 | 1100 | 1200 | 1600 | | A (800 Hz): $\lvert X(k)\rvert$ | 0 | 0 | 0 | 0 | **16** | 0 | 0 | 0 | 0 | 0 | | B (850 Hz): $\lvert X(k)\rvert$ | 1.00 | 1.62 | 2.17 | 3.49 | **10.25** | **10.15** | 3.40 | 2.07 | 1.53 | 1.00 | {{ps:cap8:curat_vs_leakage.png?950|Spectrul curat (800 Hz) si spectrul cu leakage (850 Hz)}} **Ce vezi in desen:** pe orizontala e numarul cutiei $k$ (de la 0 la 31), pe verticala e $|X(k)|$. Sus (semnalul A): doua linii curate. Jos (semnalul B): nicio cutie nu mai e goala. **Trei lucruri de observat la semnalul B:** - Nu mai avem o singura linie. Cele mai inalte sunt cutiile **8 si 9** (vecinele lui 8.5), cu inaltimi aproape egale: 10.25 si 10.15. - Niciuna nu ajunge la 16. Inaltimea "s-a impartit". - **Toate** cutiile au ceva in ele, pana si cutia 0 si cutia 16, care sunt departe de 850 Hz. **De ce nu apare pur si simplu o linie la 8.5?** Pentru ca DFT-ul calculeaza $X(k)$ doar pentru $k$ **intreg**: 0, 1, 2, ..., 31. Nu are unde sa puna "8.5". Tot ce poate face este sa descrie semnalul cu frecventele pe care le are. Ca sa "construiasca" un cosinus de 850 Hz din cosinusuri de 0, 100, 200, ..., are nevoie de **toate**, fiecare in alta cantitate. De ce de toate si nu doar de 800 si 900: vezi sectiunea 3. ===== 2. Ce este leakage ===== **Definitie in cuvinte simple.** //DFT leakage// (scurgerea spectrala) = fenomenul prin care o frecventa care **nu** cade exact pe o cutie a DFT-ului apare **imprastiata** in toate cutiile: mult in cele doua cutii vecine, din ce in ce mai putin in cele indepartate. Semnalul are o singura frecventa, dar spectrul calculat arata de parca ar avea multe. **Analogie.** Gandeste-te la o tava pentru cuburi de gheata, cu 32 de compartimente in sir. Torni apa dintr-o cana. * Daca torni **exact deasupra** unui compartiment, toata apa ajunge in el. Celelalte raman goale. (= semnalul A) * Daca torni **deasupra peretelui** dintre doua compartimente, apa se imparte intre cele doua si mai stropeste si in celelalte. (= semnalul B) Apa e aceeasi. Doar locul unde ai turnat-o fata de compartimente e altul. **Leakage-ul NU este in semnal.** Cosinusul de 850 Hz e un cosinus perfect, cu o singura frecventa. Scurgerea apare doar din felul in care **ne uitam** la el: prin $N$ esantioane si prin cutiile fixe ale DFT-ului. **De ce e o problema (3 neplaceri):** - **Frecventa citita gresit.** Din spectru vezi doar "undeva intre 800 si 900 Hz", nu 850. - **Amplitudinea citita gresit.** Cea mai inalta linie are 10.25, nu 16. Daca ai calcula amplitudinea din ea, ai obtine $10.25 / 16 = 0.64$ in loc de 1. - **Ascunde semnalele mici.** Scurgerea unui semnal mare poate acoperi un semnal mic aflat la alta frecventa. Exemplul din curs e in sectiunea 6.4. ===== 3. De ce apare ===== Sunt doua explicatii. Spun acelasi lucru, o data privit in timp si o data privit in frecventa. La examen se cere de obicei a doua (cea cu fereastra), dar prima se intelege mai usor. ==== 3.1 Explicatia in timp: bucata nu se lipeste cu ea insasi ==== **Pasul 1 — ce "crede" DFT-ul despre semnal.** Cutia $k$ corespunde unui cosinus care face exact $k$ perioade intregi in cele $N$ esantioane (cutia 1: o perioada, cutia 2: doua perioade, ...). Un asemenea cosinus, dupa $N$ esantioane, o ia de la capat **identic**. Orice suma de asemenea cosinusuri face la fel. Deci DFT-ul poate descrie doar semnale care **se repeta identic la fiecare $N$ esantioane**. Cu alte cuvinte: DFT-ul se poarta ca si cum cele $N$ esantioane ale tale ar fi puse cap la cap, la nesfarsit. **Pasul 2 — ne uitam cum arata semnalul pus cap la cap.** In desen am folosit un cosinus mai lent (2 si 2.5 perioade in loc de 8 si 8.5), ca sa se vada forma. Fenomenul e acelasi. {{ps:cap8:timp_repetare.png?950|Bucata de semnal repetata: se lipeste sau face salt}} **Ce vezi in desen:** pe orizontala e numarul esantionului $n$, pe verticala valoarea $x(n)$. Bucata albastra din mijloc = cele 32 de esantioane pe care le avem. Bucatile gri = copiile pe care "le vede" DFT-ul in stanga si in dreapta. Liniile punctate = locurile de lipire. * **Sus (2 perioade intregi):** bucata se termina exact unde incepe urmatoarea. Semnalul lipit e un cosinus perfect, fara sfarsit. * **Jos (2.5 perioade):** bucata se termina la $-0.88$, iar copia urmatoare incepe la $+1$. La lipire apare un **salt**. La exemplul nostru cu 8.5 perioade e la fel: ultimul esantion este $x(31) = 0.10$. Un cosinus adevarat ar continua cu $-1$. In schimb, copia incepe cu $x(0) = +1$. Salt. **Pasul 3 — de ce saltul strica spectrul.** Un salt este o schimbare brusca. Ca sa construiesti o schimbare brusca din cosinusuri ai nevoie de **foarte multe frecvente** (la fel ca la unda patrata din [[ps:cap2-serii-fourier|Cap 2]], care are armonici la nesfarsit din cauza muchiilor). De aceea DFT-ul pune cate ceva in **toate** cutiile. **Regula care rezulta (de tinut minte):** leakage **nu** se vede daca in cele $N$ esantioane incape un **numar intreg de perioade**. Altfel spus, daca numarul $$ k = \frac{f \cdot N}{f_s} $$ este **intreg**. Verificare pe exemplele noastre: * 800 Hz: $800 \cdot 32 / 3200 = 8$ → intreg → fara leakage ✓ * 850 Hz: $850 \cdot 32 / 3200 = 8.5$ → nu e intreg → leakage ✓ ==== 3.2 Explicatia in frecventa (cea din curs): fereastra dreptunghiulara ==== **Pasul 1 — de unde vin cele $N$ esantioane.** Semnalul adevarat e lung (cosinusul nu se termina niciodata). Il notam $s^{\infty}(n)$. Noi pastram doar $N$ esantioane din el. "A pastra doar $N$ esantioane" este acelasi lucru cu a **inmulti** semnalul lung cu $$ r(n) = \begin{cases} 1, & 0 \le n \le N-1 \quad \text{(esantioanele pastrate)} \\ 0, & \text{in rest} \end{cases} $$ Asta se numeste **fereastra dreptunghiulara**: te uiti la semnal ca printr-o fereastra si vezi doar o bucata din el. $$ s(n) = s^{\infty}(n) \cdot r(n) $$ **De ce "inmultire", daca eu n-am inmultit cu nimic?** Inmultirea cu 1 lasa esantionul neschimbat. Inmultirea cu 0 il sterge. Deci "pastrez esantioanele 0...31 si arunc restul" = "inmultesc cu 1 pe 0...31 si cu 0 in rest". Fereastra dreptunghiulara e **mereu** acolo, chiar daca nu o scrii: apare automat in clipa in care iei un numar finit de esantioane. **Pasul 2 — ce face inmultirea in frecventa.** Teorema convolutiei ([[ps:cap7-convolutie|Cap 7]]) spune: **inmultire in timp ⇔ convolutie in frecventa**. Deci spectrul a ceea ce avem este $$ S(k) = (S^{\infty} \ast R)(k) $$ adica spectrul semnalului adevarat, convolutionat cu spectrul ferestrei. **Pasul 3 — ce inseamna asta concret.** Spectrul adevarat al cosinusului are doar 2 linii subtiri (la $+f$ si la $-f$). Convolutia cu o linie subtire face un singur lucru: pune **o copie** a celuilalt semnal in locul liniei (tot din [[ps:cap7-convolutie|Cap 7]]). Rezultatul: **fiecare linie din spectrul adevarat este inlocuita cu o copie a spectrului ferestrei, asezata pe frecventa liniei.** {{ps:cap8:fereastra_model.png?950|Inmultire in timp, convolutie in frecventa}} **Ce vezi in desen:** randul de sus e in timp (pe orizontala $n$, pe verticala valoarea esantionului): cosinus fara sfarsit × fereastra = cele $N$ esantioane ale noastre. Randul de jos e in frecventa (pe orizontala frecventa, pe verticala inaltimea spectrului): 2 linii ∗ spectrul ferestrei = doua "dealuri cu valuri" in locul celor 2 linii. Deci forma pe care o vedem in jurul fiecarei frecvente este, de fapt, **spectrul ferestrei**. Ramane sa vedem cum arata el. ===== 4. Spectrul ferestrei dreptunghiulare (dsinc) ===== ==== 4.1 Exemplu cu numere ==== Luam o fereastra mica: 8 valori de 1. $$ r = [1, 1, 1, 1, 1, 1, 1, 1] $$ DFT-ul ei cu $N = 8$: $$ |R(k)| = [8, 0, 0, 0, 0, 0, 0, 0] $$ * $R(0) = 8$: cutia 0 este pur si simplu **suma** esantioanelor: $1 + 1 + \dots + 1 = 8$. * $R(k) = 0$ pentru $k \ne 0$: acolo aduni 8 sageti de lungime 1 raspandite egal pe cerc; se anuleaza intre ele ([[ps:cap6-dft|Cap 6]]). Pare ca spectrul ferestrei e o singura linie. Dar noi am citit doar valorile din cutii. **Ce e intre cutii?** Ca sa vedem, calculam DFT-ul in de doua ori mai multe puncte (punem dupa cei 8 de 1 inca 8 zerouri, deci $N = 16$; de ce merge asa: sectiunea 5): ^ $k$ (din 16) ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ | $\lvert R(k)\rvert$ | **8** | 5.13 | 0 | 1.80 | 0 | 1.20 | 0 | 1.02 | 0 | Cutiile pare (0, 2, 4, ...) sunt cutiile vechi: 8, apoi zerouri. Cutiile impare sunt punctele **dintre** ele, si acolo **nu** e zero. Intre cutii era ascunsa o curba: un deal mare, apoi dealuri din ce in ce mai mici, cu zerouri intre ele. ==== 4.2 Formula din curs ==== Aceeasi curba, scrisa cu litere. Notam cu $M$ numarul de valori de 1 din fereastra si cu $N$ numarul total de puncte ale DFT-ului. Atunci: $$ R(k) = e^{-j\pi k \frac{M-1}{N}} \cdot \mathrm{dsinc}_M\left(\frac{\pi k}{N}\right), \qquad \mathrm{dsinc}_M\left(\frac{\pi k}{N}\right) = \frac{\sin\left(\frac{\pi k M}{N}\right)}{\sin\left(\frac{\pi k}{N}\right)} $$ * Primul factor ($e^{-j\dots}$) are modulul 1. El schimba doar **faza**, nu inaltimea. Pentru desenul $|R(k)|$ il ignoram. * Al doilea factor se numeste **dsinc** ("sinc digital"). El da inaltimea: $|R(k)| = \left|\sin(\pi k M/N) / \sin(\pi k/N)\right|$. * La $k = 0$ formula da $0/0$; valoarea corecta este $M$ (suma celor $M$ de 1). **Verificare cu numerele de mai sus** ($M = 8$, $N = 16$): * $k = 1$: $\sin(\pi \cdot 8/16) / \sin(\pi/16) = 1 / 0.195 = 5.13$ ✓ * $k = 2$: $\sin(\pi \cdot 16/16) = \sin(\pi) = 0$ → $0$ ✓ * $k = 3$: $\sin(3\pi/2) / \sin(3\pi/16) = -1 / 0.556 = -1.80$ → modulul 1.80 ✓ **De unde vine forma asta? De ce seamana cu sinc?** Fereastra dreptunghiulara este un **puls** (1 o vreme, apoi 0). In [[ps:cap2-serii-fourier|Cap 2]] si [[ps:cap3-transformata-fourier-am|Cap 3]] ai vazut ca spectrul unui puls este un **sinc**: un lob mare la mijloc si lobi mici pe laterale. Aici suntem in lumea digitala (esantioane), iar varianta digitala a sinc-ului este **dsinc**. Aceeasi poveste, aceeasi forma. In curs formula se obtine din suma unei progresii geometrice ($\sum_{n=0}^{M-1} \alpha^n = \frac{1 - \alpha^M}{1 - \alpha}$). Derivarea nu se cere; forma si zerourile, da. ==== 4.3 Cuvintele de care ai nevoie: lob principal, lobi laterali, zerouri ==== * **Lobul principal** = dealul mare din mijloc. Varful lui e exact pe frecventa reala a semnalului. * **Lobii laterali** = dealurile mici de pe margini. Ei sunt "scurgerea". Primul lob lateral are cam **22%** din inaltimea varfului (3.5 din 16 in exemplul nostru). Urmatorii scad incet. * **Zerourile** = punctele dintre lobi unde curba atinge 0. Sunt acolo unde $\sin(\pi k M/N) = 0$, adica unde $k M / N$ este numar intreg: $$ k = l \cdot \frac{N}{M}, \qquad l = \pm 1, \pm 2, \dots $$ **Cazul obisnuit: $M = N$** (fara zero-padding: toate cele $N$ puncte sunt esantioane reale). Atunci $N/M = 1$, deci zerourile sunt la $k = \pm 1, \pm 2, \pm 3, \dots$ fata de varf — adica **la fiecare cutie**. Lobul principal se intinde de la $-1$ la $+1$: e **lat de 2 cutii**. ==== 4.4 De ce NU se vede nimic cand frecventa e exact pe o cutie ==== Aici e cheia intregului capitol. Curba (spectrul ferestrei) este **mereu** acolo, in jurul frecventei semnalului. Dar DFT-ul nu vede curba intreaga. El **citeste curba doar la $k$ intreg**. {{ps:cap8:dsinc_pe_cutii.png?950|Curba dsinc citita pe cutii si intre cutii}} **Ce vezi in desen:** pe orizontala e cutia $k$, pe verticala $|X(k)|$. Portocaliu = curba (spectrul ferestrei, mutat pe frecventa reala; linia rosie punctata arata frecventa reala). Albastru = ce scoate DFT-ul: valoarea curbei doar in dreptul numerelor intregi. * **Sus (frecventa pe cutia 8):** cutia 8 citeste varful (16). Cutiile 7, 9, 6, 10, ... cad **exact pe zerourile** curbei. Citesc 0. Scurgerea exista, dar nu se vede. * **Jos (frecventa la 8.5):** curba s-a mutat cu o jumatate de cutie. Acum cutiile cad **pe lobi**: cutiile 8 si 9 pe coastele lobului principal (10.3 si 10.2), cutiile 7 si 10 pe primii lobi laterali (3.5 si 3.4), si asa mai departe. **Verificare cu formula.** Cutia 8 e la distanta de 0.5 cutii de frecventa reala (8.5). Cosinusul de amplitudine 1 inseamna doua linii de inaltime $1/2$ ([[ps:cap0-baze|Cap 0]]), deci curba din jurul lui 8.5 este $\frac{1}{2} \cdot$ dsinc. La distanta 0.5, cu $M = N = 32$: $$ \frac{1}{2} \cdot \left| \frac{\sin(\pi \cdot 0.5)}{\sin(\pi \cdot 0.5 / 32)} \right| = \frac{1}{2} \cdot \frac{1}{0.0491} = 10.19 $$ DFT-ul a dat 10.25. (Diferenta mica vine de la copia din oglinda, cea din jurul lui 23.5, care ajunge cu coada ei pana aici.) La distanta 1.5 (cutia 7 sau 10): $\frac{1}{2} \cdot 1/\sin(\pi \cdot 1.5/32) = 3.41$ ✓. **De retinut:** leakage-ul exista **intotdeauna** (fereastra e intotdeauna acolo). Cand frecventa cade exact pe o cutie, el doar **nu se vede**, pentru ca celelalte cutii nimeresc exact in zerourile dsinc-ului. ===== 5. Zero-padding ===== ==== 5.1 Ce este (exemplu cu numere) ==== **Zero-padding** = adaugi esantioane cu valoarea 0 la sfarsitul semnalului si faci DFT-ul pe semnalul lungit. Semnal mic: un cosinus care face 2 perioade in 8 esantioane. $$ x = [1, 0, -1, 0, 1, 0, -1, 0] \qquad (N = 8) $$ $$ |X(k)| = [0, 0, \mathbf{4}, 0, 0, 0, \mathbf{4}, 0] $$ Doua linii curate: la $k = 2$ si la oglinda $k = 6$, de inaltime $N \cdot A/2 = 8 \cdot 1/2 = 4$. Acum adaugam 8 zerouri: $$ x' = [1, 0, -1, 0, 1, 0, -1, 0, \; 0, 0, 0, 0, 0, 0, 0, 0] \qquad (N' = 16) $$ ^ $k$ (din 16) ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ | $\lvert X'(k)\rvert$ | 0 | 1.08 | 0 | 2.61 | **4** | 2.61 | 0 | 1.08 | 0 | (Cutiile 9...15 sunt oglinda: 1.08, 0, 2.61, **4**, 2.61, 0, 1.08.) **Patru lucruri de observat:** - **Varful s-a mutat de la $k = 2$ la $k = 4$.** Frecventa e aceeasi! Inainte: $2 \cdot f_s/8 = f_s/4$. Acum: $4 \cdot f_s/16 = f_s/4$. S-a schimbat doar numerotarea, pentru ca acum cutiile sunt de doua ori mai dese ($f_s/16$ in loc de $f_s/8$). - **Inaltimea varfului a ramas 4**, nu a devenit 8. Zerourile adaugate nu aduna nimic la suma. Varful este $M \cdot A/2$, unde $M$ = numarul de esantioane **reale** (8), nu lungimea DFT-ului (16). - **Cutiile pare** (0, 2, 4, 6, 8) sunt exact cutiile vechi (0, 1, 2, 3, 4). Au aceleasi valori ca inainte: 0, 0, 4, 0, 0. - **Cutiile impare** sunt noi. Ele cad **intre** cutiile vechi, adica pe lobii curbei din sectiunea 4. De aceea nu sunt zero. **De ce inaltimea nu se dubleaza?** $X(k)$ este o suma: fiecare esantion inmultit cu ceva. Un esantion egal cu 0 contribuie cu 0, oricate ai adauga. Deci valoarea din varf ramane cea data de cele 8 esantioane reale. ==== 5.2 Ce FACE zero-padding-ul: iti arata mai multe puncte din aceeasi curba ==== Revenim la $N = 32$, $f_s = 3200$ Hz, cosinus la 800 Hz (pe cutie). {{ps:cap8:zero_padding.png?950|Zero-padding: aceeasi curba, citita in tot mai multe puncte}} **Ce vezi in desen:** pe orizontala frecventa in Hz (de la 0 la $f_s/2 = 1600$), pe verticala $|X(k)|$. Portocaliu = curba (aceeasi in toate cele trei desene). Albastru = punctele DFT-ului. * **Sus, fara zero-padding (32 de puncte):** cutii din 100 in 100 Hz. Toate cad pe varf sau pe zerouri → o singura linie. * **Mijloc, zero-padding la 64:** cutii din 50 in 50 Hz. Apar punctele dintre cutiile vechi: 10.2 langa varf, 3.4, 2.1, ... * **Jos, zero-padding la 256:** cutii din 12.5 in 12.5 Hz. Punctele sunt atat de dese ca se vede toata curba. In limbajul din curs: semnalul are $M$ esantioane reale si $N'$ puncte in total. Zerourile dsinc-ului sunt la fiecare $N'/M$ cutii (sectiunea 4.3). Cu $N' = 2M$, doar **una din doua** cutii mai cade pe un zero. Celelalte arata curba. **La ce foloseste:** * vezi **forma** spectrului (lobul principal, lobii laterali), nu doar cateva puncte; * gasesti mai precis **unde e varful** cand frecventa e intre doua cutii (punctele dese ajung mai aproape de varful lobului). ==== 5.3 Ce NU face zero-padding-ul ==== **Zero-padding-ul NU adauga informatie.** Zerourile nu spun nimic despre semnal. Ele doar te lasa sa citesti curba in mai multe locuri. * **NU micsoreaza leakage-ul.** Curba (dsinc-ul) ramane aceeasi: aceiasi lobi laterali, la fel de inalti. Ba chiar il face **vizibil** acolo unde inainte era ascuns in zerouri. * **NU te ajuta sa deosebesti doua frecvente apropiate.** Latimea lobului principal e data de numarul de esantioane **reale** $M$: este de 2 cutii vechi, adica $2 f_s / M$ Hz. Doua frecvente mai apropiate decat atat se contopesc intr-un singur deal, oricate zerouri ai adauga. **Exemplu cu numere.** $f_s = 3200$ Hz. Semnalul are doua cosinusuri apropiate: 800 Hz si 850 Hz (la 50 Hz distanta). {{ps:cap8:zero_padding_nu_separa.png?950|Zero-padding nu separa doua frecvente apropiate}} **Ce vezi in desen:** pe orizontala frecventa in Hz, pe verticala $|X(k)|$ impartit la $N/2$ (ca un cosinus de amplitudine 1 pe cutie sa dea inaltimea 1). Liniile mov punctate = cele doua frecvente reale. * **Sus (32 de esantioane reale):** lobul principal e lat de $2 \cdot 3200/32 = 200$ Hz. Cele doua frecvente sunt la doar 50 Hz una de alta → se vede **un singur deal**. * **Mijloc (aceleasi 32 de esantioane + zero-padding la 256):** curba e desenata mai fin, dar e **tot un singur deal**. Nu poti spune ca sunt doua frecvente. * **Jos (256 de esantioane REALE):** lobul principal e lat de $2 \cdot 3200/256 = 25$ Hz → **doua linii separate**, la 800 si la 850 Hz. **De ce mai multe esantioane reale ajuta, iar zerourile nu?** Ca sa deosebesti 800 Hz de 850 Hz trebuie sa le "asculti" destul de mult timp incat sa apuce sa se desparta una de alta. In 32 de esantioane ($32/3200 = 0.01$ secunde) ele fac 8 si 8.5 perioade: diferenta e de doar o jumatate de perioada. In 256 de esantioane (0.08 secunde) fac 64 si 68 de perioade: diferenta e de 4 perioade intregi. Zerourile nu inseamna "ascultat mai mult"; inseamna liniste adaugata la sfarsit. ^ ^ Zero-padding (adaugi zerouri) ^ Mai multe esantioane reale ^ | distanta dintre cutii | scade | scade | | numarul de puncte din desen | creste | creste | | latimea lobului principal (in Hz) | **ramane la fel** | **scade** | | poti deosebi doua frecvente apropiate | **nu** | **da** | | informatie noua despre semnal | **nu** | **da** | ===== 6. Ferestre (Hann, Hamming, Blackman) ===== ==== 6.1 Ideea ==== Problema, in cele doua feluri de a o privi (sectiunea 3): * **in timp:** capetele bucatii nu se potrivesc → salt la lipire; * **in frecventa:** fereastra dreptunghiulara are lobi laterali mari (primul: 22% din varf). Solutia: **nu mai folosim fereastra dreptunghiulara.** Inmultim noi esantioanele cu alta fereastra, $w(n)$, care este 1 (sau aproape 1) la mijloc si **coboara lin spre 0 la capete**: $$ s_w(n) = s(n) \cdot w(n) $$ {{ps:cap8:ferestre_timp.png?950|Ferestrele in timp si efectul lor asupra semnalului}} **Ce vezi in desen:** * **Stanga:** cele patru ferestre. Pe orizontala e numarul esantionului $n$, pe verticala numarul cu care inmultim esantionul respectiv. Dreptunghiulara e 1 peste tot. Hann, Hamming si Blackman sunt "cocoase": 1 la mijloc, spre 0 la capete. * **Mijloc:** un semnal cu 2.5 perioade. Incepe la $+1$, se termina la $-0.88$ → capetele nu se potrivesc. * **Dreapta:** acelasi semnal inmultit cu fereastra Hann (linia portocalie punctata arata fereastra). Ambele capete au ajuns la 0 → la lipire **nu mai e salt**. **Exemplu cu numere: fereastra Hann cu 8 puncte.** $$ w = [0, \; 0.19, \; 0.61, \; 0.95, \; 0.95, \; 0.61, \; 0.19, \; 0] $$ Daca semnalul este $s = [2, 2, 2, 2, 2, 2, 2, 2]$, dupa fereastra devine $s_w = [0, \; 0.38, \; 1.22, \; 1.90, \; 1.90, \; 1.22, \; 0.38, \; 0]$: fiecare esantion inmultit cu numarul de pe aceeasi pozitie din $w$. (Formula ferestrei Hann, daca te intreaba cineva: $w(n) = 0.5 - 0.5\cos\left(\frac{2\pi n}{N-1}\right)$. Nu se cere pe de rost. Trebuie sa stii **numele** ferestrelor, **forma** lor si **ce fac**.) ==== 6.2 Efectul pe exemplul nostru (cosinus la 8.5, N = 32) ==== ^ cutia $k$ ^ 0 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ 10 ^ 11 ^ 12 ^ 16 ^ | fara fereastra: $\lvert X(k)\rvert$ | 1.00 | 1.33 | 1.62 | 2.17 | 3.49 | **10.25** | **10.15** | 3.40 | 2.07 | 1.53 | 1.00 | | cu fereastra Hann: $\lvert X(k)\rvert$ | 0.004 | 0.03 | 0.07 | 0.20 | 1.51 | **6.65** | **6.65** | 1.51 | 0.20 | 0.07 | 0.006 | {{ps:cap8:fereastra_efect.png?950|Spectrul cosinusului de la 8.5, fara si cu fereastra Hann}} **Ce vezi in desen:** pe orizontala cutia $k$ (doar 0...16), pe verticala $|X(k)|$. Sus fara fereastra: toate cutiile au cel putin 1. Jos cu fereastra Hann: mai raman vizibile doar cutiile 7, 8, 9, 10; restul sunt aproape 0. **Ce ai castigat:** departe de varf, scurgerea a scazut enorm. In cutia 0: de la 1.00 la 0.004, adica de 250 de ori mai putin. In cutia 12: de la 1.53 la 0.07. **Ce ai pierdut (nimic nu e gratis):** - **Varful e mai scund:** 6.65 in loc de 10.25. Fereastra micsoreaza esantioanele de la capete, deci "ia" din semnal. (Cu Hann, un cosinus aflat exact pe cutie da cam 8 in loc de 16: jumatate.) - **Varful e mai lat:** lobul principal al ferestrei Hann are **4 cutii** in loc de 2. Chiar si un cosinus aflat exact pe cutia 8 nu mai da o singura linie, ci trei: cam 4 la $k = 7$, 8 la $k = 8$, 4 la $k = 9$. Doua frecvente apropiate se deosebesc mai greu. **De ce nu folosim atunci mereu o fereastra?** Pentru ca e un **compromis**: lobi laterali mici ⇔ lob principal lat. Daca vrei sa deosebesti doua frecvente foarte apropiate si de marimi asemanatoare, fereastra dreptunghiulara (lobul cel mai ingust) e cea mai buna. Daca vrei sa vezi un semnal mic langa unul mare, alegi o fereastra cu lobi laterali mici. ==== 6.3 Comparatia ferestrelor ==== {{ps:cap8:ferestre_spectru.png?950|Spectrele celor patru ferestre}} **Ce vezi in desen:** spectrul fiecarei ferestre. Pe orizontala: distanta fata de frecventa reala, in cutii. Pe verticala: inaltimea fata de varf, in decibeli ([[ps:cap5-cuantizare-snr-db|Cap 5]]): 0 dB = varful, $-20$ dB = de 10 ori mai mic, $-40$ dB = de 100 de ori mai mic, $-60$ dB = de 1000 de ori mai mic. Sageata neagra = latimea lobului principal. Linia rosie = cel mai inalt lob lateral. ^ Fereastra ^ Latimea lobului principal ^ Cel mai mare lob lateral, fata de varf ^ In cuvinte ^ | dreptunghiulara (adica "fara fereastra") | 2 cutii | $-13$ dB (de vreo 4.6 ori mai mic) | varf ingust, scurgere mare | | Hann (Hanning) | 4 cutii | $-31$ dB (de vreo 38 de ori mai mic) | scurgerea scade repede cu distanta | | Hamming | 4 cutii | $-42$ dB (de vreo 130 de ori mai mic) | primul lob lateral foarte mic; urmatorii scad incet | | Blackman | 6 cutii | $-58$ dB (de vreo 800 de ori mai mic) | scurgere foarte mica, varf foarte lat | **Regula:** cu cat cobori pe tabel, lobii laterali sunt mai mici (bine), dar lobul principal e mai lat (rau). ==== 6.4 Exemplul din curs: un semnal mic ascuns de scurgerea unuia mare ==== $f_s = 8000$ Hz, $N = 256$. Distanta dintre cutii: $8000/256 = 31.25$ Hz. Semnalul are doua cosinusuri: unul **mare** la $f_1$ si unul **foarte mic** (de 500 de ori mai mic) la $f_2 = 2000$ Hz. Verificam cine e pe cutie, cu regula $k = f \cdot N / f_s$: * $f_2 = 2000$: $2000 \cdot 256/8000 = 64$ → pe cutie * $f_1 = 1000$: $1000 \cdot 256/8000 = 32$ → pe cutie * $f_1 = 1150$: $1150 \cdot 256/8000 = 36.8$ → **intre cutii** → leakage {{ps:cap8:semnal_mic_ascuns.png?950|Semnalul mic de la 2000 Hz: vizibil, acoperit de scurgere, vizibil din nou cu fereastra}} **Ce vezi in desen:** pe orizontala frecventa in Hz (0...4000), pe verticala $|X(k)|$ fata de varf, in dB (ca sa se vada si lucrurile foarte mici). Linia mov punctata = 2000 Hz, unde e semnalul mic. * **Sus ($f_1 = 1000$ Hz, pe cutie):** doua linii curate. Cea mica se vede fara probleme, pentru ca in jurul ei nu e nimic. * **Mijloc ($f_1 = 1150$ Hz, intre cutii, fara fereastra):** scurgerea semnalului mare umple tot spectrul la un nivel cam cat semnalul mic. Linia de la 2000 Hz **nu se mai deosebeste** de vecinele ei. * **Jos ($f_1 = 1150$ Hz, cu fereastra Hann):** scurgerea scade repede pe masura ce te departezi de 1150 Hz. La 2000 Hz a ajuns mult sub semnalul mic → acesta **se vede din nou**. Asta e situatia obisnuita in practica: semnalul care te intereseaza e mai mic decat ce e in jurul lui. In curs, pentru acest exemplu, fereastra Hanning da cel mai bun rezultat dintre cele trei. ==== 6.5 De ce functioneaza (aceeasi explicatie ca in sectiunea 3.2) ==== Acum semnalul nostru este $s^{\infty}(n) \cdot w(n)$ in loc de $s^{\infty}(n) \cdot r(n)$. Teorema convolutiei da $S^{\infty} \ast W$ in loc de $S^{\infty} \ast R$. Deci fiecare linie e inlocuita cu o copie a spectrului **noii** ferestre, $W(k)$, care are lobi laterali mult mai mici decat dsinc-ul. Atat. Ferestrele mai apar o data, cu alt rol: la proiectarea filtrelor FIR → [[ps:cap9-fir|Cap 9]]. ===== 7. Cum atenuam leakage (rezumat pentru examen) ===== ^ Metoda ^ Ce face ^ Pretul ^ | **1. Fereastra** (Hann, Hamming, Blackman) in loc de cea dreptunghiulara | lobi laterali mult mai mici → scurgerea departe de varf scade mult | lob principal mai lat (4–6 cutii in loc de 2), varf mai scund | | **2. Mai multe esantioane reale** ($N$ mai mare) | cutiile sunt mai dese, lobii sunt mai ingusti in Hz ($2f_s/N$) → scurgerea ramane stransa langa frecventa reala | trebuie sa inregistrezi mai mult timp | | **3. Alegi $N$ (sau $f_s$) ca sa incapa un numar intreg de perioade** ($f \cdot N/f_s$ intreg) | cutiile cad pe zerourile dsinc-ului → scurgerea nu se vede deloc | merge doar daca stii dinainte frecventa semnalului | **Zero-padding-ul NU e pe lista.** El nu atenueaza leakage-ul. Doar arata spectrul in mai multe puncte (sectiunea 5). ===== 8. Probleme rezolvate pe puncte ===== ==== PROBLEMA 1 (examen ian. 2025 / 2026 — partea cu DFT) ==== **Enunt.** Fie semnalul $$ s(n) = \cos\left(2\pi \frac{1}{8} n\right) + \cos\left(2\pi \frac{1}{4} n\right) + \cos\left(2\pi \frac{3}{8} n\right) $$ adica o suma de trei cosinusuri de amplitudine 1, la frecventele $f_s/8$, $f_s/4$ si $3f_s/8$. * **a)** Desenati spectrul $|S(k)|$ obtinut cu o DFT de $N = 64$ puncte. * **b)** Adaugam zerouri pana la 128 de esantioane (zero-padding) si refacem DFT-ul. Ce se schimba? In subiectul real, semnalul trece mai intai printr-un filtru IIR ([[ps:cap10-z-iir|Cap 10]]). Filtrul schimba doar **inaltimile** celor trei cosinusuri (fiecare se inmulteste cu $|H|$ de la frecventa lui). Pozitiile liniilor si tot ce tine de zero-padding raman exact ca aici. === PUNCTUL a) — DFT cu N = 64 === **Ce se cere:** in ce cutii apar linii si ce inaltime au. **Ce stim:** $N = 64$; trei cosinusuri de amplitudine $A = 1$ la $f_s/8$, $f_s/4$, $3f_s/8$. **Pas 1 — in ce cutie cade fiecare frecventa.** Regula: $k = f \cdot N / f_s$. * $f_s/8$: $k = \frac{f_s}{8} \cdot \frac{64}{f_s} = \frac{64}{8} = 8$ * $f_s/4$: $k = \frac{64}{4} = 16$ * $3f_s/8$: $k = \frac{3 \cdot 64}{8} = 24$ **De ce a disparut $f_s$?** Pentru ca frecventele sunt date ca fractiuni din $f_s$. Se simplifica. Nici nu trebuie sa stii cat e $f_s$. **Pas 2 — apare leakage?** Toate trei numerele (8, 16, 24) sunt **intregi** → toate frecventele cad exact pe cutii → **nu se vede leakage**. (Altfel spus: in cele 64 de esantioane incap exact 8, 16 si 24 de perioade.) **Pas 3 — inaltimea liniilor.** Cosinus de amplitudine $A$ pe cutie → $N \cdot A / 2 = 64 \cdot 1/2 = 32$. **Pas 4 — oglinda.** Fiecare linie de la $k$ are perechea la $N - k$: $64 - 8 = 56$, $64 - 16 = 48$, $64 - 24 = 40$. **Raspuns a):** **6 linii de inaltime 32**, la $k = 8, 16, 24$ si la $k = 40, 48, 56$. Toate celelalte cutii sunt 0. (Desenul de sus, mai jos.) === PUNCTUL b) — zero-padding la 128 === **Ce se cere:** cum arata spectrul cand DFT-ul are 128 de puncte, din care doar primele 64 sunt esantioane reale. **Ce stim:** $M = 64$ esantioane reale, $N' = 128$ puncte in total. **Pas 1 — unde ajung varfurile.** Cutiile sunt acum de doua ori mai dese ($f_s/128$). Aceeasi regula, cu $N' = 128$: * $f_s/8$: $k' = 128/8 = 16$ * $f_s/4$: $k' = 128/4 = 32$ * $3f_s/8$: $k' = 3 \cdot 128/8 = 48$ * oglinzile: $128 - 16 = 112$, $128 - 32 = 96$, $128 - 48 = 80$ Numerele cutiilor s-au dublat. **Frecventele sunt aceleasi.** **Pas 2 — inaltimea varfurilor.** Ramane **32**, nu devine 64. Varful este $M \cdot A/2$ cu $M$ = numarul de esantioane reale: $64 \cdot 1/2 = 32$. Zerourile nu aduna nimic. **Pas 3 — cutiile pare.** Cutiile pare ($k' = 0, 2, 4, \dots$) sunt exact cutiile vechi ($k = 0, 1, 2, \dots$). Au aceleasi valori ca la punctul a): 32 in varfuri, 0 in rest. **Pas 4 — cutiile impare (ce e nou).** Cutiile impare cad **intre** cutiile vechi. Acolo dsinc-ul nu e zero, deci apar valori nenule: * langa fiecare varf (la o jumatate de cutie veche): cam $0.64 \cdot 32 \approx 20$. Valorile exacte: 21.4 la $k' = 15$, 19.4 la $k' = 17$, 20.4 la $k' = 31$ si $33$, 19.4 la $k' = 47$, 21.4 la $k' = 49$. * mai departe de varfuri: intre 3 si 8. **De unde vine 0.64?** La o jumatate de cutie de varf, dsinc-ul are $2/\pi \approx 0.64$ din inaltimea varfului (e acelasi 10.2 din 16 de la exemplul cu 8.5). Deci un cosinus singur ar da $0.64 \cdot 32 = 20.4$. Valorile ies putin diferite (19.4 ... 21.4) pentru ca in fiecare cutie se aduna si cozile celorlalte cosinusuri. **Raspuns b):** * varfurile se muta la $k' = 16, 32, 48$ (si oglinzile $80, 96, 112$) — aceleasi frecvente, numerotate cu cutii de doua ori mai dese; * inaltimea lor ramane 32; * intre varfuri, in cutiile impare, apar valori nenule: se vede forma dsinc (lobii) din jurul fiecarei linii; * **nu** s-a castigat informatie si **nu** s-a imbunatatit separarea frecventelor: avem tot 64 de esantioane reale. Spectrul e doar citit in de doua ori mai multe puncte. {{ps:cap8:p1_n64_n128.png?950|Problema 1: spectrul cu N = 64 si dupa zero-padding la 128}} **Ce vezi in desen:** pe orizontala cutia $k$, pe verticala $|S(k)|$. Sus (punctul a): 6 linii curate de inaltime 32. Jos (punctul b): varfurile sunt la cutii cu numar dublu, tot de inaltime 32; cutiile pare dintre ele sunt 0; cutiile impare arata lobii. **Capcana:** dupa zero-padding spectrul **arata** ca si cum ar fi aparut leakage. Formularea corecta: scurgerea (dsinc-ul) era acolo de la inceput; la $N = 64$ toate cutiile cadeau pe zerourile ei, iar acum jumatate din cutii cad intre zerouri si o arata. ==== PROBLEMA 2 — apare sau nu leakage? ==== **Enunt.** Pentru fiecare caz, spune daca in spectrul DFT se vede leakage. Semnalul e un singur cosinus de frecventa $f$. ^ Cazul ^ $f$ ^ $f_s$ ^ $N$ ^ | a | 1000 Hz | 8000 Hz | 256 | | b | 1150 Hz | 8000 Hz | 256 | | c | 50 Hz | 1000 Hz | 100 | | d | 50 Hz | 1000 Hz | 128 | | e | 440 Hz | 44100 Hz | 1024 | **Ce se cere:** da / nu, cu justificare. **Ce stim (regula din sectiunea 3.1):** calculezi $k = f \cdot N / f_s$. Daca iese **intreg** → frecventa e pe cutie → nu se vede leakage. Daca nu → leakage. **Pasi (acelasi calcul de 5 ori):** * **a)** $1000 \cdot 256 / 8000 = 32$ → intreg → **fara leakage**. Linia e in cutia 32. * **b)** $1150 \cdot 256 / 8000 = 36.8$ → nu e intreg → **leakage**. Cele mai inalte cutii: 36 si 37 (37 e mai inalta, fiind mai aproape de 36.8). * **c)** $50 \cdot 100 / 1000 = 5$ → intreg → **fara leakage**. * **d)** $50 \cdot 128 / 1000 = 6.4$ → nu e intreg → **leakage**. Cele mai inalte cutii: 6 si 7 (6 e mai inalta). * **e)** $440 \cdot 1024 / 44100 = 10.22$ → nu e intreg → **leakage**. **Raspuns:** a) nu, b) da, c) nu, d) da, e) da. **Ce arata cazurile c) si d):** e **acelasi semnal** (50 Hz esantionat la 1000 Hz). O data nu are leakage, o data are. Diferenta e doar $N$: in 100 de esantioane incap exact 5 perioade; in 128 incap 6.4. Leakage-ul nu tine de semnal, ci de cate esantioane ai luat. ==== PROBLEMA 3 — citeste un spectru cu leakage ==== **Enunt.** Un cosinus de amplitudine 1 a fost esantionat cu $f_s = 3200$ Hz. S-au luat $N = 32$ esantioane. Spectrul DFT (jumatatea pozitiva) e cel din desen. Aproximativ la ce frecventa este cosinusul? {{ps:cap8:p3_citire.png?900|Problema 3: spectru cu leakage}} **Ce se cere:** frecventa cosinusului, aproximativ. **Ce stim:** cutiile sunt din $3200/32 = 100$ in 100 Hz. Pe axa orizontala sunt trecute direct frecventele cutiilor. **Pas 1 — e pe cutie sau intre cutii?** Daca ar fi pe cutie, am vedea o singura linie de inaltime $N/2 = 16$ si zero in rest. Aici toate cutiile au ceva, iar cea mai inalta are doar 14.2 → **e intre cutii** (leakage). **Pas 2 — intre care cutii?** Cea mai inalta linie: 1200 Hz (14.2). Ne uitam la cele doua vecine ale ei: 1100 Hz (3.7) si 1300 Hz (5.3). Vecina mai inalta e cea de la 1300 Hz → frecventa reala e **intre 1200 si 1300 Hz**. **Pas 3 — mai aproape de care?** Linia de la 1200 (14.2) e mult mai inalta decat cea de la 1300 (5.3) → frecventa reala e **mult mai aproape de 1200**. **Raspuns:** intre 1200 si 1300 Hz, aproape de 1200 — cam **1230 Hz**. (Semnalul din desen chiar a fost generat la 1230 Hz, adica "cutia 12.3".) **Regula de citire:** frecventa reala e intre cele doua cutii cele mai inalte, mai aproape de cea mai inalta. Daca cele doua sunt egale (ca 10.25 si 10.15 la exemplul cu 8.5), frecventa e la mijloc. **Atentie si la amplitudine:** cea mai inalta linie are 14.2, nu 16. Daca ai citi amplitudinea din ea ai obtine $14.2/16 = 0.89$ in loc de 1. Leakage-ul strica si citirea amplitudinii. ===== 9. Ce trebuie sa stii din Cap 8 (fisa de 1 minut) ===== * **Leakage** = o frecventa care nu cade exact pe o cutie DFT apare imprastiata in toate cutiile (mult in vecine, putin departe). * **Cand apare:** cand $f \cdot N / f_s$ **nu** e intreg (in cele $N$ esantioane nu incape un numar intreg de perioade). * **De ce apare:** cele $N$ esantioane = semnal infinit × **fereastra dreptunghiulara**. Inmultire in timp ⇔ convolutie in frecventa → fiecare linie devine o copie a spectrului ferestrei = **dsinc** (lob principal + lobi laterali). * $\mathrm{dsinc}_M(\pi k/N) = \sin(\pi k M/N) / \sin(\pi k/N)$; zerouri la $k = l \cdot N/M$; cu $M = N$: zero la fiecare cutie, lob principal lat de 2 cutii, primul lob lateral ≈ 22% din varf ($-13$ dB). * **Pe cutie nu se vede leakage** pentru ca celelalte cutii cad exact pe zerourile dsinc-ului. Scurgerea exista mereu; doar nu se vede. * **Zero-padding** = adaugi zerouri → cutii mai dese → vezi mai multe puncte din **aceeasi** curba. Varful ramane $M \cdot A/2$ ($M$ = esantioane reale); pozitia lui devine $k' = f \cdot N'/f_s$. **Nu** adauga informatie, **nu** reduce leakage, **nu** separa frecvente apropiate. * **Ferestre** (Hann/Hanning, Hamming, Blackman): $s(n) \cdot w(n)$, cu $w$ lin spre 0 la capete → lobi laterali mici; pret: lob principal mai lat, varf mai scund. * **Cum atenuam leakage:** (1) fereastra, (2) mai multe esantioane reale, (3) $N$ ales ca sa incapa un numar intreg de perioade. ===== 10. Grile de verificare ===== **G1.** DFT leakage apare atunci cand: - A. frecventa de esantionare e prea mica (sub Nyquist) - B. frecventa semnalului nu este un multiplu intreg de $f_s/N$ - C. semnalul are prea multe esantioane - D. convertorul are prea putini biti **G2.** Avem $N = 100$ esantioane, $f_s = 1000$ Hz. Care cosinus **nu** produce leakage? - A. 55 Hz - B. 125 Hz - C. 130 Hz - D. 99 Hz **G3.** Avem 64 de esantioane si adaugam zerouri pana la 256. Ce obtinem? - A. leakage mai mic - B. mai multe puncte din acelasi spectru, fara informatie noua - C. putem deosebi doua frecvente de 4 ori mai apropiate - D. o frecventa de esantionare de 4 ori mai mare **G4.** Fata de fereastra dreptunghiulara, fereastra Hann are: - A. lob principal mai ingust si lobi laterali mai mari - B. lob principal mai lat si lobi laterali mai mici - C. lob principal mai ingust si lobi laterali mai mici - D. acelasi spectru **G5.** Un cosinus de amplitudine 1, aflat exact pe o cutie, da cu $N = 32$ o linie de inaltime 16. Adaugam 32 de zerouri (DFT de 64 de puncte). Inaltimea varfului devine: - A. 32 - B. 16 - C. 8 - D. 0 **G6.** Explicatia din curs pentru leakage este: - A. replicile spectrului se suprapun (aliasing) - B. eroarea de rotunjire de la cuantizare - C. cele $N$ esantioane sunt un semnal infinit inmultit cu o fereastra dreptunghiulara, deci spectrul e convolutionat cu un dsinc - D. filtrul anti-aliasing nu e ideal **G7.** Vrei sa deosebesti doua cosinusuri aflate la 10 Hz unul de altul. Ai $f_s = 1000$ Hz si 50 de esantioane. Ce te ajuta? - A. zero-padding pana la 1000 de puncte - B. sa iei mai multe esantioane reale (de exemplu 500) - C. fereastra Blackman pe cele 50 de esantioane - D. nimic, e imposibil **G8.** De ce nu se vede leakage cand frecventa cade exact pe o cutie? - A. pentru ca fereastra dreptunghiulara dispare in acest caz - B. pentru ca celelalte cutii cad exact pe zerourile dsinc-ului - C. pentru ca DFT-ul face singur zero-padding - D. pentru ca semnalul nu mai e periodic **Raspunsuri:** ^ Grila ^ Raspuns ^ De ce e corect ^ De ce sunt gresite celelalte ^ | G1 | **B** | cutiile sunt la multiplii de $f_s/N$; o frecventa aflata intre ele se imprastie | A descrie aliasingul (Cap 4); C: mai multe esantioane ajuta, nu strica; D descrie cuantizarea (Cap 5) | | G2 | **C** | $130 \cdot 100/1000 = 13$, numar intreg → pe cutie | A: 5.5; B: 12.5; D: 9.9 — niciunul nu e intreg → leakage | | G3 | **B** | zero-padding = aceeasi curba citita in mai multe puncte | A: lobii raman la fel; C: latimea lobului principal depinde de esantioanele reale (64); D: $f_s$ nu se schimba, se schimba doar distanta dintre cutii | | G4 | **B** | compromisul oricarei ferestre: lobi laterali mici ⇔ lob principal lat (4 cutii fata de 2) | A e pe dos; C ar fi "gratis", nu exista; D: forme diferite in timp → spectre diferite | | G5 | **B** | varful = suma data de esantioanele reale: $32 \cdot 1/2 = 16$; zerourile nu aduna nimic | A: ar fi asa doar cu 64 de esantioane reale; C, D: zerourile nici nu scad nimic | | G6 | **C** | inmultire in timp ⇔ convolutie in frecventa (teorema convolutiei) | A = aliasing, B = cuantizare, D = alta problema; niciuna nu depinde de pozitia frecventei fata de cutii | | G7 | **B** | cu 50 de esantioane lobul principal are $2 \cdot 1000/50 = 40$ Hz, mai lat decat cei 10 Hz; cu 500 are 4 Hz | A: zero-padding nu ingusteaza lobul; C: Blackman il lateste (6 cutii = 120 Hz); D: se poate, cu mai mult semnal | | G8 | **B** | zerourile dsinc-ului (cu $M = N$) sunt la fiecare cutie intreaga fata de varf | A: fereastra e mereu acolo; C: nu face; D: nu are legatura | ===== 11. Intrebari de teorie ca la examen ===== **T1 (examen 2023). Despre DFT Leakage: ce este, de ce apare, cum il atenuam?** **Raspuns model:** * **Ce este:** fenomenul prin care o componenta a semnalului a carei frecventa nu coincide cu una dintre frecventele DFT ($k \cdot f_s/N$) apare in spectru imprastiata peste toate componentele $k$, nu ca o singura linie. Poate acoperi componente vecine de amplitudine mai mica. * **De ce apare:** secventa de $N$ esantioane este un semnal infinit inmultit cu o fereastra dreptunghiulara: $s(n) = s^{\infty}(n) \cdot r(n)$. Inmultirea in timp inseamna convolutie in frecventa: $S(k) = (S^{\infty} \ast R)(k)$, unde $R(k)$ este un dsinc (lob principal + lobi laterali). Cand frecventa e exact pe o cutie, celelalte cutii cad pe zerourile dsinc-ului si efectul nu se vede. * **Cum il atenuam:** inmultim semnalul cu o fereastra cu lobi laterali mai mici (Hamming, Hanning, Blackman) si/sau folosim mai multe esantioane $N$. Zero-padding-ul **nu** il atenueaza. **T2. Ce este zero-padding? La ce foloseste si ce nu poate face?** **Raspuns model:** Zero-padding = adaugarea de esantioane cu valoarea 0 la sfarsitul semnalului inainte de DFT. Numarul de puncte ale spectrului creste (cutiile devin mai dese, $f_s/N'$), deci vedem mai multe puncte din acelasi spectru, inclusiv forma dsinc dintre cutiile initiale. Nu adauga informatie: nu reduce leakage-ul si nu imbunatateste separarea a doua frecvente apropiate; pentru asta trebuie mai multe esantioane reale sau alta fereastra. **T3. Ce este o fereastra? Dati exemple. Ce se castiga si ce se pierde?** **Raspuns model:** O fereastra este o secventa $w(n)$ cu care inmultim esantioanele semnalului inainte de DFT: $s(n) \cdot w(n)$. Implicit folosim fereastra dreptunghiulara (1 pe cele $N$ esantioane). Exemple: Hamming, Hanning (Hann), Blackman — coboara lin spre 0 la capete. Castig: lobi laterali mult mai mici in frecventa, deci leakage redus si componentele slabe nu mai sunt acoperite. Pierdere: lob principal mai lat (rezolutie mai slaba intre frecvente apropiate) si amplitudine mai mica a varfului. **T4. Fereastra dreptunghiulara exista intotdeauna. De ce exista totusi cazuri in care nu vedem leakage?** **Raspuns model:** Pentru ca in acele cazuri frecventa semnalului corespunde exact unui index $k$ al DFT, iar dsinc-ul adus de convolutie are zerouri exact in toate celelalte cutii: $\mathrm{dsinc}_M(\pi k/N) = 0$ cand $kM/N$ e intreg, iar pentru $M = N$ asta se intampla la orice $k \ne 0$. DFT-ul citeste varful intr-o cutie si zerouri in rest. Daca facem zero-padding ($M \ne N$), cutiile nu mai cad toate pe zerouri si forma dsinc devine vizibila. ---- **Capitolul anterior:** [[ps:cap7-convolutie|Cap 7 — Convolutia si teorema convolutiei]] · **Urmatorul capitol:** [[ps:cap9-fir|Cap 9 — Filtre FIR]] (acolo ferestrele se folosesc la proiectarea filtrelor).