Vraag:
Hoe speel ik spectrumopnames af gemaakt met rtl_sdr in gqrx?
Paul
2014-09-05 16:59:58 UTC
view on stackexchange narkive permalink

Ik heb een R820T DVB-dongle en de rtl_sdr-software op een Linux-computer.

Ik kan naar verschillende frequenties luisteren met de gqrx-software die de rtl_sdr-bibliotheek gebruikt als een apparaatstuurprogramma voor de via USB aangesloten dongle . Ik krijg ook (uiteraard) de spectrumscope en watervalweergave van aangrenzende kanalen. De hardware en software zijn dus op een bepaald niveau functioneel.

Nu merk ik dat er een apart programma in de rtl_sdr-bundel zit, ook wel "rtl_sdr" genoemd, dat een stukje spectrum op de harde schijf kan opnemen.

Hier is een fragment uit de gebruiksherinnering gegenereerd door rtl_sdr uit te voeren zonder parameters:

  rtl_sdr, een I / Q-recorder voor op RTL2832 gebaseerde DVB-T-ontvangers Gebruik: -f frequency_to_tune_to [ Hz] [-s samplerate (standaard: 2048000 Hz)] [-d device_index (standaard: 0)] [-g gain (standaard: 0 voor auto)] [-p ppm_error (standaard: 0)] [-b output_block_size ( standaard: 16 * 16384)] [-n aantal te lezen samples (standaard: 0, oneindig)] [-S gedwongen synchronisatie-uitvoer (standaard: async)] bestandsnaam (a '-' dumpt samples naar standaard)  

Voor een test wilde ik een luid continu smalband FM-spraaksignaal, dus ik probeerde de lokale nationale weerdienstzender op 162,55 Mhz op te nemen met

  rtl_sdr -f 162550000 -g35 -s 1000000 test1.dat  

Ik merk op dat dit ook de 1 Mhz-sample rond 162,55 Mhz registreert. Grote bestanden zijn snel gemaakt. Een paar minuten leverden ongeveer 300 MB op. Ik heb gemerkt dat de R820T kieskeurig is en niet altijd lage samplefrequenties zal instellen, en nogmaals, dit is alleen om een ​​testbestand te produceren. Als ik het de hele nacht op een ander frequentiebereik zou willen laten draaien, zou ik overwegen om een ​​kleinere samplefrequentie te vinden.

Welk programma speelt deze bestanden af ​​als ze eenmaal zijn opgenomen? Hoewel gqrx een optie heeft om een ​​I / Q-voorbeeldbestand af te spelen, lijkt het niet om bestanden af ​​te spelen die zijn gemaakt met rtl_sdr. Ik krijg een lege waterval en geen audio wanneer ik probeer het bestand in gqrx af te spelen.

Om het even welke ideeën?

gerelateerd: http://stackoverflow.com/questions/25587959/bin-to-cfile-flowgraph-for-grc-3-7-2-1/25655984#comment41364278_25655984
Twee antwoorden:
jcoppens
2014-09-06 03:54:29 UTC
view on stackexchange narkive permalink

Ik heb dit niet echt geprobeerd, dus pas op!

Ik dacht dat de uitvoer, zoals opgenomen in het bestand, eigenlijk de samples in een bepaald formaat zou zijn. Dus ik probeerde het op te zoeken en vond deze pagina:

http://sdr.osmocom.org/trac/wiki/rtl-sdr#rtl_sdr

Onderaan de pagina staat een stroomschema voor gnu-radio, dat de inhoud van het archief neemt en de-interliniëert (de interliniëring is de truc die de rtl_sdr-recorder gebruikt om afwisselend I en Q op te nemen).

Blijkbaar zijn de samples opgeslagen als ongetekende bytes in het originele bestand, en dit stroomschema stuurt als alternatief een byte naar de bovenste of de onderste ketting. Ze worden eerst geconverteerd naar float, daarna wordt -127 toegevoegd om ze om te zetten in waarden met teken. Ten slotte, na enige schaalvergroting, worden ze opnieuw gecombineerd tot een complex signaal, wat waarschijnlijk het signaal zou zijn dat je in de eerste plaats van de dongle zou ontvangen.

In het stroomschema slaan ze de complexe uitvoer op naar een * .cfile-indeling, maar ik denk dat je het complexe signaal daadwerkelijk in de originele ontvanger zou kunnen invoeren om het opnieuw te decoderen.

enter image description here

Als je oorspronkelijke idee was om op te nemen de audio, zou het waarschijnlijk handiger zijn om de audio van de ontvanger naar een wav_file-sink te sturen. Op die manier neem je het gewoon op als audio.

Bewerken: De schaalverdeling ('8m') is het vermenigvuldigen van de samples van -128 tot +127, tot genormaliseerde float-waarden, tussen -1,0 en +1,0. 8m betekent 0,008, wat (min of meer 1/128) is

Bedankt dat je me dit hebt gestuurd. Dus de deal is dat dit stroomschema een programma is dat in ongeveer een half uur in GNU-radiogame kan worden geschreven. De capture.bin is het invoerbestand voor de flowgraph (gemaakt door rtl_sdr) en het capture.c-bestand dat het uitspuugt is het uitvoerbestand. Dat .cfile kan naar gqrx worden gevoerd en het werkt min of meer. En soort van niet. De audio die gqrx uitspuugt, is teruggeschakeld in frequentie en erg traag. Het opnemen van die gqrx-audio in een .wav en het door een audiospeler laten afspelen op 3x de normale snelheid klinkt ongeveer correct.
Ja ... Hoewel je gnuradio ook kunt gebruiken als een opdrachtregelprogramma (en het kan op die manier sneller zijn), is het als een gewone gebruiker zeker gemakkelijker om de grafische weg te gaan.
Paul
2014-10-14 10:02:25 UTC
view on stackexchange narkive permalink

De opname in rtl_sdr kan worden afgespeeld in gqrx door de onderstaande procedure zorgvuldig te volgen:

  1. Ofwel A of B : (A) Maak een GNU-radioprogramma met het stroomschema van @jcoppens hierboven. Een kopie is te vinden op de rtl-sdr-site, maar zoals vermeld op Stack Overflow, gebruikt het rtl-sdr .grc-bestand verouderde modules en moet het worden herschreven in de nieuwe gnu-radio-metgezel (30 minuten tot 1 uur werk) OF (B) Compileer en gebruik het Linux GCC-programma dat ik heb geschreven voor rtlsdr-naar-gqrx-conversie.
  2. Maak een SDR-opname met rtl_sdr en let op de werkelijke samplefrequentie
  3. Voer de conversie uit die wordt genoemd in stap # 1. Opmerking: het output .c-bestand zal meer dan 4x zo groot zijn als het input .raw-bestand.
  4. Start gqrx, ga naar het dialoogvenster "I / O-apparaten configureren".
  5. Stel de "Device String" in om het .c-bestand te lezen dat is gegenereerd in stap 3 en stel de snelheid in vanaf stap # 2
  6. BELANGRIJK : stel het vakje "Sample Rate" direct onder de apparaatstring in op de snelheid uit stap 2. Dit lijkt overbodig (het tarief staat ook in de apparaatstring) maar is dat blijkbaar niet (vanaf oktober 2014). Als dit leeg wordt gelaten, wordt de samplefrequentie ingesteld op iets dat u misschien niet wilt (ik vermoed 96k) en wordt de apparaatstringinstelling overschreven, ook al lijkt de regel leeg . Het leeg laten van deze regel kan leiden tot trage audio.
  7. Klik op de "Power" -knop in gqrx en het afspelen begint.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...