This shows you the differences between two versions of the page.
|
ps:labs_python_gpt:05 [2025/10/30 00:03] ionut.gorgos |
ps:labs_python_gpt:05 [2025/10/30 00:12] (current) ionut.gorgos |
||
|---|---|---|---|
| Line 84: | Line 84: | ||
| - Generați semnalul $signal = cos(2 \cdot \pi \cdot f_c \cdot t)$, unde $f_c = 3000$ Hz, $t=0:T_s:100 \cdot T_s$ și $T_s = \frac{1}{f_s} = \frac{1}{8000}$ | - Generați semnalul $signal = cos(2 \cdot \pi \cdot f_c \cdot t)$, unde $f_c = 3000$ Hz, $t=0:T_s:100 \cdot T_s$ și $T_s = \frac{1}{f_s} = \frac{1}{8000}$ | ||
| - De ce avem energie în ambele frecvenţe $f_c$ şi $-f_c$ ? | - De ce avem energie în ambele frecvenţe $f_c$ şi $-f_c$ ? | ||
| - | - Generaţi cod Python pentru a calcula transformata Fourier Discretă a unei sinusoide de $3kHz$ eşantionată la $8kHz$. Folosiți $N=64$ pentru fft. Folosiți acest cod pentru DFT: [<color red>1p</color>] <code matlab> | + | - Generaţi cod Python pentru a calcula transformata Fourier Discretă a unei sinusoide de $3kHz$ eşantionată la $8kHz$. Folosiți $N=64$ pentru fft. Folosiți acest cod pentru DFT: [<color red>1p</color>] <code python> |
| - | figure; | + | import numpy as np |
| - | fx = zeros(1, N); | + | from scipy.fft import fft, fftshift |
| - | fidx = (fs/N) * linspace(0,N-1,N); | + | import matplotlib.pyplot as plt |
| - | spectrum = fft(signal, N); | + | |
| - | stem(fidx, abs(spectrum)); | + | plt.figure() |
| - | xlabel('Frequency (Hz)'); | + | fx = np.zeros(1, N) |
| - | ylabel('Amplitude'); | + | fidx = (fs/N) * np.linspace(0,N-1,N) |
| - | title('Spectrum of signal'); | + | spectrum = fft(signal, N) |
| + | plt.stem(fidx, np.abs(spectrum)) | ||
| + | plt.xlabel('Frequency (Hz)') | ||
| + | plt.ylabel('Amplitude') | ||
| + | plt.title('Spectrum of signal') | ||
| </code> | </code> | ||
| - | - Plotaţi (cu 'stem') rezultatele şi observaţi frecvenţele. Acum folosiţi "fftshift" pe rezultatul obţinut de la "fft" şi plotaţi din nou rezultatele. Folosiți acest cod: [<color red>1p</color>] <code matlab> | + | - Plotaţi (cu 'stem') rezultatele şi observaţi frecvenţele. Acum folosiţi "fftshift" pe rezultatul obţinut de la "fft" şi plotaţi din nou rezultatele. Folosiți acest cod: [<color red>1p</color>] <code python> |
| - | figure; | + | import numpy as np |
| - | fidx = (fs/N)*linspace(-N/2, N/2-1, N); | + | from scipy.fft import fft, fftshift |
| - | stem(fidx, abs(fftshift(spectrum))); | + | import matplotlib.pyplot as plt |
| - | xlabel('Frequency (Hz)'); | + | |
| - | ylabel('Amplitude'); | + | plt.figure() |
| - | title('Zero-centred frequency spectrum of signal'); | + | fidx = (fs/N)*np.linspace(-N/2, N/2-1, N) |
| + | plt.stem(fidx, np.abs(fftshift(spectrum))) | ||
| + | plt.xlabel('Frequency (Hz)') | ||
| + | plt.ylabel('Amplitude') | ||
| + | plt.title('Zero-centred frequency spectrum of signal') | ||
| </code> | </code> | ||
| - De ce într-un caz avem semnal la $3 kHz$ şi $5 kHz$ în timp ce, în celălalt caz pare să avem la $-3 kHz$ şi $3 kHz$ ? | - De ce într-un caz avem semnal la $3 kHz$ şi $5 kHz$ în timp ce, în celălalt caz pare să avem la $-3 kHz$ şi $3 kHz$ ? | ||
| - Care este semnificaţia semnalului de $5 kHz$ ? Când plotaţi rezultatele de la "fft" luaţi în considerare că, în mod implicit output-ul transformatei Discrete Fourier, deci şi "fft", arată frecvenţele de la $0$ la $f_s$ (frecvenţa de eşantionare). | - Care este semnificaţia semnalului de $5 kHz$ ? Când plotaţi rezultatele de la "fft" luaţi în considerare că, în mod implicit output-ul transformatei Discrete Fourier, deci şi "fft", arată frecvenţele de la $0$ la $f_s$ (frecvenţa de eşantionare). | ||
| - | - Putem să reducem frecvenţa de eşantionare în timp ce încă detectăm spectrul dorit de frecvenţe ? (vedeţi bandpass sampling [[https://www.informit.com/articles/article.aspx?p=345472&seqNum=3|Fig 2-7]]). Cât de mult putem reduce frecvenţa de eşantionare? Ce se întâmplă dacă reducem frecvenţa de eşantionare sub 2B? [<color red>1p</color>] | + | - Putem să reducem frecvenţa de eşantionare în timp ce încă detectăm spectrul dorit de frecvenţe ? (vedeţi bandpass sampling [[https://web.archive.org/web/20240102080629/https://www.informit.com/articles/article.aspx?p=345472&seqNum=3|Fig 2-7]]). Cât de mult putem reduce frecvenţa de eşantionare? Ce se întâmplă dacă reducem frecvenţa de eşantionare sub 2B? [<color red>1p</color>] |
| <hidden> | <hidden> | ||