SDR op Linux

Hardware en software.
Plaats reactie
Bericht
Auteur
Gebruikersavatar
PD9FVH
Berichten: 151
Lid geworden op: 08 nov 2018, 09:30
Roepletters: PD9FVH
Locatie: Gouda
Contacteer:

SDR op Linux

#1 Bericht door PD9FVH »

Hi,

Met rtl_tcp kun je de I/Q data van de ontvanger opvragen. Met rtl_fm kun je op een frequentie afstemmen en dan de audio verkrijgen die op die frequentie te horen is.
Ik zoek een combinatie daarvan. Een rtl_fm_tcp zeg maar.

Nou kan ik wel aardig programmeren maar de wiskunde en achtergronden van radio beluisteren loopt nog wat achter.

Klopt volgende stappenplan denken jullie?

Als ik naar een rtl_tcp server verbind, dan komt daar 8 bit I/Q data uit. 1 byte I, 1 byte Q en zo verder.
Voor AM is dan de volgende stap denk ik: amplitude = wortel(i ^ 2 + q ^ 2) en voor FM: amplitude = atan(i, q) (klopt dit?).
Uit die rtl_tcp komt dan bijvoorbeeld een 1.8MHz samples/seconde. Als ik daar een 44.1kHz sample van wil maken (audio) dan filter ik voor de netheid van die amplitude-data met een low-pass filter alles vanaf 22.05kHz weg en dan pak ik bijvoorbeeld elke 40e sample (of een ander algoritme om te down-samplen).

Eens? Of zitten hier nog fouten in?

bedankt alvast

pa0phh
Berichten: 67
Lid geworden op: 05 okt 2020, 09:53
Roepletters: PA0PHH
Locatie: Lelystad

Re: SDR op Linux

#2 Bericht door pa0phh »

Om direct uit een RTL I/Q AM of FM te decoderen moet je eerst uit de 900 Khz (1.8 Mhz/2) met een bepaalde bandbreedte bv 8 Khz voor AM of 400 Khz voor breedband FM filteren en vervolgens down mixen naar baseband. Hierna kun je decimeren van 1.8 Mps naar 44.1 Kbps.
Voor RTL is veel software beschikbaar b.v. https://github.com/jorisvr/SoftFM is een FM ontvanger die ook stereo kan.
Als je e.a. zelf wilt doen zonder veel druk te maken over de algoritmes kan je kijken bij liquid dsp https://github.com/jgaeddert/liquid-dsp
Zelf heb ik mijn eigen SDR ontvanger voor een raspberry pi gemaakt. Die gebruik maakt van liquid dsp die kan je vinden op https://github.com/paulh002/sdrberry een demo op https://www.youtube.com/watch?v=ycU_IUmV8j4

Gebruikersavatar
PE9ZZ
Berichten: 1239
Lid geworden op: 06 nov 2010, 18:00
Roepletters: PE9ZZ
Locatie: Amsterdam (JO22KI)
Contacteer:

Re: SDR op Linux

#3 Bericht door PE9ZZ »

Misschien kan je wat met GNU Radio Companion (GRC). Ik heb daarmee een beetje lopen spelen maar het gaat mij boven de pet. Het idee is dat je functies als blokjes aan elkaar knoopt om iets voor elkaar te krijgen. Ik denk dat ik daarvoor niet genoeg geduld heb...

Tjerk, 9ZZ

Gebruikersavatar
pa3a
Berichten: 403
Lid geworden op: 14 jan 2014, 09:53
Roepletters: PA3A
Locatie: Barendrecht
Contacteer:

Re: SDR op Linux

#4 Bericht door pa3a »

@pd9fvh
Wat je zegt is correct. Als de gewenste data tenminste in het lagere frequentie spectrum zit.

Voordat je 1 op de 40 samples eruit haalt, dien je de aliassen weg te filteren, dat klopt dus. Als je naar 44ksamples terug gaat zou ik eerst in de hogere samplesnelheid alles boven de 18kHz wegfilteren met een LPF. Beetje ruimte tot 22kHz kan geen kwaad.
73,
Arie Kleingeld PA3A
https://pa3a.nl
Wiskunde, radiocommunicatie, digital signal processing, CW

Gebruikersavatar
PD9FVH
Berichten: 151
Lid geworden op: 08 nov 2018, 09:30
Roepletters: PD9FVH
Locatie: Gouda
Contacteer:

Re: SDR op Linux

#5 Bericht door PD9FVH »

pa3a schreef: 05 mei 2022, 18:29 @pd9fvh
Wat je zegt is correct. Als de gewenste data tenminste in het lagere frequentie spectrum zit.

Voordat je 1 op de 40 samples eruit haalt, dien je de aliassen weg te filteren, dat klopt dus. Als je naar 44ksamples terug gaat zou ik eerst in de hogere samplesnelheid alles boven de 18kHz wegfilteren met een LPF. Beetje ruimte tot 22kHz kan geen kwaad.
Dank!

Wat bedoel je met "als de gewenste data tenminste in het lagere frequentie spectrum zit"? Gaat dat er over dat als ik wat sample vanaf 1MHz en het signaal zit op 1.1MHz? Of gaat dat over signalen die bijvoorbeeld boven de GHz zitten?

Gebruikersavatar
pa3a
Berichten: 403
Lid geworden op: 14 jan 2014, 09:53
Roepletters: PA3A
Locatie: Barendrecht
Contacteer:

Re: SDR op Linux

#6 Bericht door pa3a »

Zoals je het beschreef, nam ik het aan.
In het algemeen kun je met 44kSamples ongeveer 40kHz bandbreedte aan.
Die bandbreedte loopt tussen -20kHz en +20kHz.
Als je naar 44kS terug wilt is dat dus het max.
Je moet als het ware een stukje uit die grote samplesnelheid (dus met veel bandbreedte) een klein stukje filteren voordat je naar een lagere samplesnelheid kunt.

De theorie ga ik hier verder niet uitleggen met mijn telefoontje, 😁
73,
Arie Kleingeld PA3A
https://pa3a.nl
Wiskunde, radiocommunicatie, digital signal processing, CW

Gebruikersavatar
PD9FVH
Berichten: 151
Lid geworden op: 08 nov 2018, 09:30
Roepletters: PD9FVH
Locatie: Gouda
Contacteer:

Re: SDR op Linux

#7 Bericht door PD9FVH »

pa3a schreef: 06 mei 2022, 17:01 Zoals je het beschreef, nam ik het aan.
In het algemeen kun je met 44kSamples ongeveer 40kHz bandbreedte aan.
Die bandbreedte loopt tussen -20kHz en +20kHz.
Als je naar 44kS terug wilt is dat dus het max.
Je moet als het ware een stukje uit die grote samplesnelheid (dus met veel bandbreedte) een klein stukje filteren voordat je naar een lagere samplesnelheid kunt.

De theorie ga ik hier verder niet uitleggen met mijn telefoontje, 😁
Ah, nee, dit begrijp ik. dankje

Plaats reactie