Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ps:labs:10 [2023/12/13 09:06]
ionut.gorgos
ps:labs:10 [2023/12/20 11:23] (current)
constantin.savu1510
Line 1: Line 1:
 ===== Laboratorul 10. ===== ===== Laboratorul 10. =====
 +<​hidden>​
 ==== Filtre FIR trece bandă și trece-sus, filtre IIR ==== ==== Filtre FIR trece bandă și trece-sus, filtre IIR ====
-<​hidden>​ 
-Pentru acest exercițiu vom utiliza metoda proiectării cu fereastră pentru a crea filtre FIR trece-bandă și trece-sus. Precum am văzut la curs, putem folosi același principiu pentru a crea filtre trece-jos, trece-bandă sau trece-sus. Tot ce trebuie să facem este să înmulțim coeficienții filtrelor (adică secvența $h_{ideal}$) cu valorile unei sinusoide de o anumită frecvență (centrul frecvențelor pentru filtrul trece-bandă). 
  
-Pentru a crea un filtru trece-bandă cu frecvența centrală $f_B$ ar trebui să procedați ​în felul următor: +În acest laborator vom lucra în Python șvom folosi mediul Google Colab.
-  - Generațfiltrul în timp $h_{ideal}$ precum în laboratorul 9, ex.2 (creați filtrul în frecvență,​ treceți în domeniul timp, înmulțiți cu o fereastră precum Blackman sau alta) +
-  - Înmulțiți $h_{ideal}$ element cu element cu secvența $\cos(\frac{2\pi f_B n}{f_s})$, unde  $f_B$ este frecvența din centrul benzii dorite, iar $f_s$ este frecvența de eșantionare.+
  
 +Deschideți următorul notebook și creați-vă o copie: ex. //File / Save a copy in Drive//.
  
-Câteva cazuri particulare: +https://colab.research.google.com/drive/10HiWnJLtuGFanKGOBm0ux10fiii4OUVa?usp=sharing
-  - $f_B = \frac{f_s}{4}$,​ în acest caz secvența cosinus devine [0, -1, 0, 1, 0, -1, 0, ...]. Acesta este un tip de filtru eficient trece-bandă centrat în frecvența $f_s 4$. +
-  - $f_B = \frac{f_s}{2}$,​ în acest caz secvența cosinus devine [1, -1, 1, -1, ...] și obținem un filtru trece-sus. +
- +
-Acum că știți toate acestea (sperăm că ați reținut și de la curs), aveți de făcut următoarele:​ +
-  - Generați o secvență de filtru ideal trece-jos $H_{ideal}$ având N = 256 elemente, reprezentând spectrul de frecvență al unui filtru trece-jos. Folosiți o frecvență de cut-off de fs/16Adică totul înainte de fs/16 trebuie să treacă, pe când totul mai sus trebuie sa fie oprit (folosiți un dreptunghi care se oprește la fs/16)Observați că trebuie să generați un spectru simetric pentru a obține o secvență reală la următorul pasPlotați această secvență (folosind ​//plot//). Notați axa frecvențelor (axa x) ca o funcție de $F_s$, adică de la //0// la //1//. Ar trebui să obțineți ceva precum:  +
-{{:​ps:​labs:​9.png?300|}} +
-  * Țineți minte că acest spectru poate fi văzut ca ieșirea din DFT(FFT), adică primul element corespunde frecvenței //0//, pe când următoarele //N/2-1// corespund frecvențelor pozitive, iar ultimele //N/2// componente reprezintă frecvențele negative. +
- +
-  - Acum aplicați inversa DFT (în practică inversa FFT) pentru a obține secvența corespunzătoare în domeniul timp $h_{ideal}$. +
-  - Trunchiați secvența $h_{ideal}$ prin selectarea a doar $L 65$ de eșantioane din centru (32 din stânga maximului funcției sinc, maximul funcției, și 32 de eșantioane din dreapta). Aceasta corespunde multiplicării secvenței ​ $h_{ideal}$ cu o fereastră dreptunghiulară centrată în punctul maxim al funcției sinc. Plotați secvența. +
-  - Aplicați DFT($fft$) pe secvența trunchiată înmulțită cu fereastra dreptunghiulară (care conține doar 1) și plotați spectrul. Rețineți: este important aici, precum și la primul plot pentru filtru trece-jos ideal, să notăm axa frecvențelor (axa x) ca o funcție de Fs, adică de la 0 la 1. +
-  - Folosiți aceeași secvență trunchiată ca mai sus, dar înmulțiți-o cu o fereastră precum $Blackman$. Aplicați din nou $fft$ și plotați spectrul. +
-  - Din această secvență puteți obține o secvență corespunzătoare unui filtru trece-bandă cu $f_B = \frac{f_s}{4}$. +
-  - Obțineți o secvență corespunzătoare unui filtru trece-sus cu $f_B = \frac{f_s}{2}$. +
-  - Generați trei sinusoide cu frecvențe diferite (ex: $ f = 3 kHz$, $15 kHz$, $30 kHz$, cu $f_s = 64000$ și $N = 64$) și filtrați-le (folosind funcția //​np.convolve//​ din NumPy sau //​signal.convolve//​ din //​scipy.signal//​) cu  filtrele trece-sus și trece-bandă obținute mai sus. Plotați atât input-ul cât și output-ul în același plot folosind //stem// pentru a observa efectele filtrelor.+
 </​hidden>​ </​hidden>​
- 
ps/labs/10.1702451169.txt.gz · Last modified: 2023/12/13 09:06 by ionut.gorgos
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0