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
SDR op Linux
Re: SDR op Linux
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
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
- PE9ZZ
- Berichten: 1245
- Lid geworden op: 06 nov 2010, 18:00
- Roepletters: PE9ZZ
- Locatie: Amsterdam (JO22KI)
- Contacteer:
Re: SDR op Linux
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
Tjerk, 9ZZ
- pa3a
- Berichten: 410
- Lid geworden op: 14 jan 2014, 09:53
- Roepletters: PA3A
- Locatie: Barendrecht
- Contacteer:
Re: SDR op Linux
@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.
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.
- PD9FVH
- Berichten: 151
- Lid geworden op: 08 nov 2018, 09:30
- Roepletters: PD9FVH
- Locatie: Gouda
- Contacteer:
Re: SDR op Linux
Dank!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.
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?
- pa3a
- Berichten: 410
- Lid geworden op: 14 jan 2014, 09:53
- Roepletters: PA3A
- Locatie: Barendrecht
- Contacteer:
Re: SDR op Linux
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,
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,
- PD9FVH
- Berichten: 151
- Lid geworden op: 08 nov 2018, 09:30
- Roepletters: PD9FVH
- Locatie: Gouda
- Contacteer:
Re: SDR op Linux
Ah, nee, dit begrijp ik. dankjepa3a 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,