Differences

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

Link to this comparison view

ps:labs:08 [2024/11/20 16:55]
marios.choudary
ps:labs:08 [2025/11/24 07:47] (current)
marian_gabriel.dinu Fisierele audio mai usor de reperat
Line 5: Line 5:
 [[https://​www.rtl-sdr.com/​|RTL-SDR]]. [[https://​www.rtl-sdr.com/​|RTL-SDR]].
  
-Găsiți [[https://​www.desktopsdr.com/​dl/​book-pdf/​|aici]] o carte informativă despre acest dispozitiv și despre cum funcționează. Pe scurt, acest dispozitiv captează semnale dintr-o gamă mare de frecvențe (25MHz -- 1.75GHz) pe care apoi le poate transforma prin IQ downconversion în semnale cu o frecvență de eșantionare mult mai mică (selectând bineînțeles frecvența de interes pe care o dorim). ​O schemă din acea carte care arată ​funcționalitatea este următoarea:+Găsiți [[https://​www.desktopsdr.com/​dl/​book-pdf/​|aici]] o carte informativă despre acest dispozitiv și despre cum funcționează. Pe scurt, acest dispozitiv captează semnale dintr-o gamă mare de frecvențe (25MHz -- 1.75GHz) pe care apoi le poate transforma prin IQ downconversion în semnale cu o frecvență de eșantionare mult mai mică (selectând bineînțeles frecvența de interes pe care o dorim). ​Modul de funcționare al acestui dispozitiv poate fi observat în imaginea ​următoare preluată din cartea menționată: 
 {{:​ps:​labs:​screenshot_2021-12-04_at_23.24.06.png?​direct&​800|}} {{:​ps:​labs:​screenshot_2021-12-04_at_23.24.06.png?​direct&​800|}}
  
Line 12: Line 13:
 {{:​ps:​labs:​fm-spectrum.png?​800|}} {{:​ps:​labs:​fm-spectrum.png?​800|}}
  
-Veți putea folosi un dispozitiv RTL-SDR dacă aveți, sau două fișiere pre-generate de noi, pe care le puteți descărca de +Veți putea folosi un dispozitiv RTL-SDR dacă aveți/puteți împrumuta de la laborant, sau două fișiere pre-generate de noi, pe care le puteți descărca de 
-{{:​ps:​labs:​x1_2.npy.zip|aici}} (câteva secunde de pe Radio Trinitas, bandă centrată pe frecvența bună de 88.5MHz cât și+{{:​ps:​labs:​x1_2.npy.zip|aici}} (câteva secunde de pe Radio Trinitas, bandă centrată pe frecvența bună de 88.5MHzcât și
 un semnal centrat pe o frecvență alăturată -- trebuie dezarhivat înainte de folosire). un semnal centrat pe o frecvență alăturată -- trebuie dezarhivat înainte de folosire).
  
-Pentru a urma acest laborator, folosiți scheletul de cod de mai jos, din Python.+Pentru a urma acest laborator, folosiți scheletul de cod de mai jos.
 Acolo veți vedea 7 TODO-uri, fiecare este punctat 2 puncte, deci aveti un total de 14 puncte la acest laborator (4 sunt considerate bonus). Acolo veți vedea 7 TODO-uri, fiecare este punctat 2 puncte, deci aveti un total de 14 puncte la acest laborator (4 sunt considerate bonus).
  
-Pentru a rula scriptul aveți nevoie de Python 3 și de câteva biblioteci instalate, așa cum este specificat la începutul fișierului.+Pentru a rula scriptul aveți nevoie de Python 3 și de câteva biblioteci instalate, așa cum este specificat ​și la începutul fișierului. 
 + 
 +<​note>​Pentru acest laborator pot fi folosite (dacă nu folosiți dispozitivul RTL-SDR) și calculatoarele din sală, acestea având deja setup de python instalat (IDE-ul PyCharm).</​note>​ 
 + 
 +**Dacă nu utilizați dispozitivul RTL-SDR, puteți sări peste pașii 1, 2, 3, 4 și 6 prezentați mai jos.** 
 + 
 +**Pentru a realiza laboratorul local folosind dispozitivul RTL-SDR, urmați acești pași:**
  
-1. Instalați Python3 și pip pentru Python3+**1. Instalați Python3 și pip pentru Python3**
  
 <​code>​ <​code>​
Line 27: Line 34:
 </​code>​ </​code>​
  
-2. Instalați librtlsdr (pentru a putea folosi dispozitivul RTL-SDR)+**2. Instalați librtlsdr (pentru a putea folosi dispozitivul RTL-SDR)**
  
 Pe MAC OS: Pe MAC OS:
Line 38: Line 45:
 <code bash> sudo apt-get install ​ librtlsdr-dev </​code>​ <code bash> sudo apt-get install ​ librtlsdr-dev </​code>​
  
-3. Pe linux, instalati si libportaudio2+**3. Pe linux, instalati si libportaudio2**
 <​code>​ <​code>​
 sudo apt-get install libportaudio2 sudo apt-get install libportaudio2
 </​code>​ </​code>​
  
-4. Dacă vreți să folosiți un mediu izolat pentru Python3 puteți instala virtualenv:+**4. Dacă vreți să folosiți un mediu izolat pentru Python3 puteți instala virtualenv:**
 <code bash> pip3 install virtualenv </​code>​ <code bash> pip3 install virtualenv </​code>​
 Apoi în folderul în care doriți să creați mediul izolat dați comanda: Apoi în folderul în care doriți să creați mediul izolat dați comanda:
Line 50: Line 57:
 <code bash> source bin/​activate </​code>​ <code bash> source bin/​activate </​code>​
  
-5. Instalați matplotlib, scipy, sounddevice,​ ipython pentru Python3:+**5. Instalați matplotlib, scipy, sounddevice,​ ipython pentru Python3:**
 <code bash> <code bash>
 pip3 install pyrtlsdr matplotlib scipy ipython sounddevice pip3 install pyrtlsdr matplotlib scipy ipython sounddevice
 </​code>​ </​code>​
  
-6. Tot pentru Linux, posibil sa trebuiasca sa adugati dispozitivul in udev, +**6. Tot pentru Linux, posibil sa trebuiasca sa adugati dispozitivul in udev, 
-asa cum este descris [[https://​www.instructables.com/​rtl-sdr-on-Ubuntu/​|aici]].+asa cum este descris [[https://​www.instructables.com/​rtl-sdr-on-Ubuntu/​|aici]].**
 Pe scurt, ca root faceti un fisier in /​etc/​udev/​rules.d/​20.rtlsdr.rules care contine urmatoarea linie: Pe scurt, ca root faceti un fisier in /​etc/​udev/​rules.d/​20.rtlsdr.rules care contine urmatoarea linie:
 <​code>​ <​code>​
 SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bda",​ ATTRS{idProduct}=="​2838",​ GROUP="​adm",​ MODE="​0666",​ SYMLINK+="​rtl_sdr"​ SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bda",​ ATTRS{idProduct}=="​2838",​ GROUP="​adm",​ MODE="​0666",​ SYMLINK+="​rtl_sdr"​
 </​code>​ </​code>​
-Apoi scoateti si reinserati ​dispozitivul RTL in portul USB.+Apoi scoateți și reinserați ​dispozitivul RTL în portul USB.
  
-Acum laboratorul efectiv... Aici veti esantiona un semnal de pe o anumita banda FM (e.g. Trinitas FM, +Pe partea de cod veți esantiona un semnal de pe o anumită bandă ​FM, de exemplu ​Trinitas FM, 
-dar puteti ​schimba cu alta daca vretisi apoi veti folosi diverse tehnici/​metode discutate la +(puteți ​schimba cu altă bandăși apoi veți folosi diverse tehnici/​metode discutate la 
-cursurile ​si laboratoarele precedente: decimare, FFT, spectrograma,​ etc.+cursurile ​și laboratoarele precedente: decimare, FFT, spectrograma,​ etc.
  
-Urmariti ​codul de mai jos cu atentie, pe rand, fara grabaMulte lucruri sunt deja facute ​pentru ​voi, +Urmăriți ​codul de mai jos cu atentie. ​Scheletul cuprinde o mare parte din rezolvare cu scopul de a ajunge mai ușor la rezultate și pentru ​a le analiza (diagramelespectrelesemnalele, sunetele etc). Rezolvarea TODO-urilor reprezintă task-ul vostru pentru acest laborator pentru a ajunge la rezultate.
-ca sa puteti mai degraba sa vizualizati/​auziti rezultatele. Mai sunt cateva locuri de completatcare +
-ar trebui sa fie simple.+
  
 Dacă folosiți un dispozitiv RTL-SDR, atunci setați use_sdr = 1, altfel puneți use_sdr = 0. Dacă folosiți un dispozitiv RTL-SDR, atunci setați use_sdr = 1, altfel puneți use_sdr = 0.
Line 75: Line 80:
 #from rtlsdr import RtlSdr #from rtlsdr import RtlSdr
  
 +<​note>​Fișierele audio pe care le vom folosi în cadrul acestui laborator (dacă lucrați fără dispozitiv RTL-SDR) pot fi descărcate de {{:​ps:​labs:​x1_2.npy.zip|aici}} (mai multe detalii despre acestea mai sus).</​note>​
  
 <file python lab_rtl_sdr.py>​ <file python lab_rtl_sdr.py>​
Line 128: Line 134:
 else: else:
     # initializati device-ul RTL-SDR     # initializati device-ul RTL-SDR
 +    # inlocuiti linia cu sdr = 0 in cazul in care nu folositi dispozitivul,​ iar pachetul rtlsdr nu se instaleaza cum trebuie
     sdr = RtlSdr()     sdr = RtlSdr()
 +    ​
     # setati parametri device-ului     # setati parametri device-ului
     sdr.sample_rate = Fs     sdr.sample_rate = Fs
Line 167: Line 174:
 else: else:
     # initializati device-ul RTL-SDR     # initializati device-ul RTL-SDR
 +    # inlocuiti linia cu sdr = 0 in cazul in care nu folositi dispozitivul,​ iar pachetul rtlsdr nu se instaleaza cum trebuie
     sdr = RtlSdr()     sdr = RtlSdr()
  
ps/labs/08.1732114524.txt.gz · Last modified: 2024/11/20 16:55 by marios.choudary
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