This shows you the differences between two versions of the page.
ps:labs:06 [2022/11/08 00:10] ionut.gorgos |
ps:labs:06 [2022/11/08 14:58] (current) ionut.gorgos |
||
---|---|---|---|
Line 2: | Line 2: | ||
/*<hidden>*/ | /*<hidden>*/ | ||
==== SNR, decibeli și DFT ==== | ==== SNR, decibeli și DFT ==== | ||
+ | Prezentarea PowerPoint pentru acest laborator poate fi găsită aici: [[https://docs.google.com/presentation/d/1s85BCzqZ3ziRwyqL1ecqilqaMDBMRxq-/edit?usp=share_link&ouid=110538702824281541719&rtpof=true&sd=true|aici]] | ||
În acest laborator vom rezolva câteva exerciții legate de calcularea raportului semnal-zgomot(eng. signal-to-noise ratio - SNR), vom exprima acest raport în decibeli și vom căpăta experiență cu transformata Fourier discretă (DFT). Deși nu am discutat prea mult despre ea, în toate exercițiile care folosesc DFT vom utiliza funcția //fft// (Fast Fourier Transform) și inversa acesteia //ifft//. | În acest laborator vom rezolva câteva exerciții legate de calcularea raportului semnal-zgomot(eng. signal-to-noise ratio - SNR), vom exprima acest raport în decibeli și vom căpăta experiență cu transformata Fourier discretă (DFT). Deși nu am discutat prea mult despre ea, în toate exercițiile care folosesc DFT vom utiliza funcția //fft// (Fast Fourier Transform) și inversa acesteia //ifft//. | ||
Line 43: | Line 44: | ||
5. Din ieșirea funcției //fft// eliminați frecvențele din afara zonei de interes (faceți-le zero). Aveți grijă la indicii frecvențelor pozitive și negative și luați în considerare că primul element corespunde componentei directe, care nu are corespondent negativ. [<color red>1p</color>] | 5. Din ieșirea funcției //fft// eliminați frecvențele din afara zonei de interes (faceți-le zero). Aveți grijă la indicii frecvențelor pozitive și negative și luați în considerare că primul element corespunde componentei directe, care nu are corespondent negativ. [<color red>1p</color>] | ||
- | 6. Pentru a reconstrui semnalul corespunzător acestui spectru, care are componente diferite de zero doar pentru frecvențele de interes, calculați transformata Fourier discretă inversă (//IDFT//) folosind formula de mai sus, iar apoi comparați rezultatul cu cel al funcției //ifft// din MATLAB/Octave. Plotați acest semnal și comparați-l cu semnalul original zgomotos. Astfel, practic ați implementat un tip foarte simplu de filtru trece-jos. [<color red>2p</color>] | + | 6. Pentru a reconstrui semnalul corespunzător acestui spectru, care are componente diferite de zero doar pentru frecvențele de interes, calculați transformata Fourier discretă inversă (//IDFT//) folosind formula de mai sus, iar apoi comparați rezultatul cu cel al funcției //ifft// din MATLAB. Plotați acest semnal și comparați-l cu semnalul original zgomotos. Astfel, practic ați implementat un tip foarte simplu de filtru trece-jos. [<color red>2p</color>] |
Aici aveți o imagine cu semnalul fără zgomot. | Aici aveți o imagine cu semnalul fără zgomot. | ||
Line 88: | Line 89: | ||
=== Exercițiul 3 ‐‐ transformata fourier discretă pe imagini === | === Exercițiul 3 ‐‐ transformata fourier discretă pe imagini === | ||
[Bonus <color red>1p</color>] | [Bonus <color red>1p</color>] | ||
+ | |||
Până acum am descompus semnale 1D în serii de sinusoide cu transformata Fourier. Însă putem aplica același procedeu și pentru semnale 2D, descompunându-le în sinusoide 2D. Putem să ne gândim la o sinusoidă 2D ca la un val. Cel mai comun semnal 2D este o imagine cu nivele de gri. | Până acum am descompus semnale 1D în serii de sinusoide cu transformata Fourier. Însă putem aplica același procedeu și pentru semnale 2D, descompunându-le în sinusoide 2D. Putem să ne gândim la o sinusoidă 2D ca la un val. Cel mai comun semnal 2D este o imagine cu nivele de gri. | ||
Line 99: | Line 101: | ||
- obțineți din fiecare spectru o imagine: reconstructed_img = ifft2(S1) | - obțineți din fiecare spectru o imagine: reconstructed_img = ifft2(S1) | ||
- afișați cele 2 imagini cu funcția imshow() | - afișați cele 2 imagini cu funcția imshow() | ||
- | |||
- | <note> | ||
- | Pentru a utiliza funcția **rgb2gray** în Octave trebuie să instalați pachetul Octave **image** din Octave command prompt. | ||
- | <code> | ||
- | pkg install -forge image | ||
- | pkg load image | ||
- | </code> | ||
- | </note> | ||
Folosiți această imagine: | Folosiți această imagine: |