This shows you the differences between two versions of the page.
|
ps:labs:07 [2022/11/06 21:29] constantin.savu1510 |
ps:labs:07 [2022/11/15 11:18] (current) ionut.gorgos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Laboratorul 07. ===== | ===== Laboratorul 07. ===== | ||
| - | <hidden> | + | /*<hidden>*/ |
| ==== DFT în detaliu: DFT leakage, zero-padding ==== | ==== DFT în detaliu: DFT leakage, zero-padding ==== | ||
| + | Prezentarea PowerPoint pentru acest laborator poate fi găsită aici: [[https://docs.google.com/presentation/d/1I0jGMdwlAporLfDDVjQGpfOmVjAoRhKS/edit?usp=sharing&ouid=110538702824281541719&rtpof=true&sd=true|aici]] | ||
| În acest laborator vom continua să explorăm Transformata Fourier Discretă (DFT), urmărind efectul eșantionării în domeniul frecvență (apariția sinc-ului din cauza fenomenului de leakage) și metode de rezolvare a acestuia (zero-padding, ferestre, creșterea numărului de eșantioane). | În acest laborator vom continua să explorăm Transformata Fourier Discretă (DFT), urmărind efectul eșantionării în domeniul frecvență (apariția sinc-ului din cauza fenomenului de leakage) și metode de rezolvare a acestuia (zero-padding, ferestre, creșterea numărului de eșantioane). | ||
| Line 18: | Line 18: | ||
| Pentru a face asta urmăriți următorii pași: | Pentru a face asta urmăriți următorii pași: | ||
| - Creați si plotați semnalul, folosind $A_1=1$, $A_2=0.5$, $f_s = 8000$ Hz, $f_1 = 1000$ Hz, $f_2 = 2000$ Hz pentru $N=8$ eșantioane. | - Creați si plotați semnalul, folosind $A_1=1$, $A_2=0.5$, $f_s = 8000$ Hz, $f_1 = 1000$ Hz, $f_2 = 2000$ Hz pentru $N=8$ eșantioane. | ||
| - | - Calculați DFT pentru acest semnal și plotați magnitudinea acesteia, ca în laboratoarele anterioare. Ar trebui să obțineti ceva de genul următor: | + | - Calculați DFT pentru acest semnal și plotați (cu //stem//) magnitudinea acesteia, ca în laboratoarele anterioare. Ar trebui să obțineti ceva de genul următor: |
| {{:ps:labs:lab7_sinewaves_a.png?300|}} {{:ps:labs:lab7_sinewaves_a_fft.png?300|}} | {{:ps:labs:lab7_sinewaves_a.png?300|}} {{:ps:labs:lab7_sinewaves_a_fft.png?300|}} | ||
| - Apoi eliminați prima sinusoidă (ex.: făcând $f_1=0$) și verificați dacă aveți semnal doar la 2kHz. [<color red>1p</color>] | - Apoi eliminați prima sinusoidă (ex.: făcând $f_1=0$) și verificați dacă aveți semnal doar la 2kHz. [<color red>1p</color>] | ||
| Line 32: | Line 32: | ||
| Să facem următoarele: | Să facem următoarele: | ||
| - Incărcați și plotați semnalul dat. Ar trebui să observați că se vor încărca variabilele //notes_signal// și //fs//, unde //fs// este frecvența de eșantionare (amintiți-vă ca aveți nevoie de ea pentru a înțelege rezultatul dat de DFT). | - Incărcați și plotați semnalul dat. Ar trebui să observați că se vor încărca variabilele //notes_signal// și //fs//, unde //fs// este frecvența de eșantionare (amintiți-vă ca aveți nevoie de ea pentru a înțelege rezultatul dat de DFT). | ||
| - | - Calculați DFT pentru semnal și plotați magnitudinea, ca în laboratoarele precedente. Ar trebui să obțineți ceva precum aceasta: | + | - Calculați DFT pentru semnal și plotați spectrul pozitiv al semnalului (cu //stem//), ca în laboratoarele precedente. Ar trebui să obțineți ceva precum aceasta: |
| {{:ps:labs:notes_signal_fftpos.png?300|}} | {{:ps:labs:notes_signal_fftpos.png?300|}} | ||
| În acest moment probabil nu puteți spune care sunt cele două frecvențe ale semnalului, din cauza faptului că funcția sinc a primei sinusoide acoperă componenta celei de-a doua sinusoide. | În acest moment probabil nu puteți spune care sunt cele două frecvențe ale semnalului, din cauza faptului că funcția sinc a primei sinusoide acoperă componenta celei de-a doua sinusoide. | ||
| - | - Folosind zero-padding în acest caz nu va ajuta prea mult (încercați). Așa că vom aplica semnalului o funcție fereastră (ex. //Hanning// sau //Hamming//; căutați aceste funcții în Matlab/Octave folosind help). Ideea este să generăm o funcție fereastră pe care o vom înmulți cu semnalul original. Plotați semnalul după aplicarea funcției fereastră. | + | - Folosind zero-padding în acest caz nu va ajuta prea mult (încercați). Așa că vom aplica semnalului o funcție fereastră (ex. //Hanning// sau //Hamming//; căutați aceste funcții în MATLAB folosind help). Ideea este să generăm o funcție fereastră pe care o vom înmulți cu semnalul original. Plotați semnalul după aplicarea funcției fereastră. |
| - Calculați DFT pentru semnalul rezultat după aplicarea funcției fereastră. Puteți spune, cel puțin aproximativ, care sunt cele două frecvente conținute de semnal? | - Calculați DFT pentru semnalul rezultat după aplicarea funcției fereastră. Puteți spune, cel puțin aproximativ, care sunt cele două frecvente conținute de semnal? | ||
| Line 54: | Line 54: | ||
| Procedați la fel ca înainte: | Procedați la fel ca înainte: | ||
| - | - Plotați semnalul și spectrul său. Verificați dacă puteți distinge cele două frecvențe(ar trebui). | + | - Plotați semnalul și spectrul său pozitiv. Verificați dacă puteți distinge cele două frecvențe(ar trebui). |
| - Aplicați funcția fereastră și verificați spectrul. Ar trebui sa fie mult mai clar. | - Aplicați funcția fereastră și verificați spectrul. Ar trebui sa fie mult mai clar. | ||
| - | - Ce note muzicale reprezintă aceste frecvențe? Puteți să redați acest sunet folosind funcția Matlab/Octave //sound//. | + | - Ce note muzicale reprezintă aceste frecvențe? Puteți să redați acest sunet folosind funcția MATLAB //sound//. |
| - | </hidden> | + | /*</hidden>*/ |