Lineaire transponder met GNURadio.

(2018-03-18) PE1ITR

Al enige tijd liep ik met het plan rond om met GNU Radio een lineaire transponder te maken. Ik moest even wennen aan het hele concept van gnuradio, maar gaandeweg is alles op zijn plaats gevallen en komen de eerste bouwsels van de grond. Afgelopen week is het er eindelijk dan toch van gekomen en heb ik een eerste werkende eerste versie van een lineaire transponder in software kunnen maken. Het signaal klinkt goed en de vertraging tussen input en output is acceptabel. Deze pagina beschrijft de opzet van deze eerste versie.


Hardware

Hardwarematig vanaf de input gezien doorloopt het signaal de volgende onderdelen. De input zit op 13cm (2320.705MHz tm 2320.745MHz). Dit gaat via een converter -die ook voor de 13cm websdr wordt gebruikt- naar 70cm (432.705 tm 432.745MHz). De ontvanger is een rtl-sdr. Deze rtl-sdr wordt vanuit gnuradio via rtl_tcp over een ethernet verbinding benaderd. In gnuradio wordt de signaal bewerking uitgevoerd maar daarover verderop meer. De zender is een HackRF met als uitgangfrequentie 432.505MHz tm 432.545MHz.
Ik heb geprobeerd een zo schoon mogelijk signaal uit de hackrf te laten komen. Met name de resampler geeft nogal wat spiegelfrequenties die in de output te zien zijn. Met softwarematige filters is veel te winnen, maar dat gaat wel gepaard met processorkracht en een toename van de vertraging tussen input en output. Ik overweeg een hardwarematige oplossing door de HackRF op een lagere frequentie te laten werken bv 28MHz of nog lager. Vervolgens het signaal via een smal bandfilter van 100kHz laten lopen en daarna omhoog mengen naar 70cm. In deze tests heb ik HackRF direct op 70cm laten zenden. Na de HackRF komt een 70cm bandfilter gevolgd door een versterker met 0.5w output. Alle instellingen inclusief frequentie instellingen zijn in de software aan te passen.
Het is ook geen probleem om meer inputs op andere banden te maken die uitkomen in de transponder doorgangsband. bv nog een input op 9cm of 3cm. Ik heb de doorlaat band op 40KHz staan. Een doorlaatband van meerdere megaherzen is geen probleem.


Fig 1: spectrum transponder output. Op 432.501 een CW baken. De doorlaatband loopt van 432.505 tm 432.545MHz.
Als laatste een PSK31 baken op 432.550MHz




Software

De transponder is gemaakt in gnuradio met standaard meegeleverde blokken. De software draait op een computer waarop de HackRF is aangesloten. Hieronder het blokschema. Het gaat om 3 signalen die worden gecombineerd en op de output beschikbaar zijn. Het gaat om een CW baken, het signaal van de rtl-sdr ontvanger en een PSK31 baken die informatie over de transponder uitzend. Ik ga even uit van 1 ontvanger in de transponder. Maar het is ook mogelijk om de signalen van meerdere ontvangers te combineren.

Het CW baken in de test wordt gemaakt met een 1kHz oscilator. Het signaal van deze oscilator wordt in een mixer aan en uit geschakeld met een blokgolf oscillator op 0,25Hz. Het signaal gaat dus periodiek aan, uit enzovoorts.
Het signaal van de rtl-sdr wordt osmocom source blok via een ethernet verbinding opgehaald met een sample frequentie van 250000Hz. Dit spectrum wordt gefilterd in een 40 kHz breed bandfilter.
Het PSK31 signaal wordt gemaakt met een aantal blokken die prima zijn beschreven door Louis Brown in dit youtube filmpje.

Alle 3 de signalen worden gecombineerd in een add block. Vervolgens is een AGC block toegevoegd om de niveau's binnen de grenzen te houden. Tot nu toe is overal de sample rate van 250000Hz gebruikt. Echter de minimale sample rate van een HackRF is 4000000Hz. In een rational sampler wordt deze 250000Hz middels interpolatie omhoog gebracht naar 4000000Hz. Dit levert nogal wat aliases producten die naar de input van de HackRF gaan. Dit komt dan ook terecht in de output van de transponder. Standaard zit in de resampler hiervoor een filter die het best wel goed doet. In de resampler zit de mogelijkheid om een firdes filter handmatig in te stellen, maar ik krijg het daarmee niet beter dan het automatische filter. Zeer goede resultaten had ik met software een bandfilter achter de resampler. Echter dit veroorzaakte nogal wat extra belasting van de processor en vertraging. Ik heb besloten deze weg te laten. Later ondekte ik dat de HackRF ook intern de mogelijkheid heeft voor een dergelijk filter. Dit werkt wel aardig en ik hoor met een 70cm ontvanger bijna geen nevenproducten meer buiten de passband. Echter als het uitgangsvermogen omhoog gaat dan hoor je toch nog rommel die op -100db zit. Dan zou het mooier zijn om deze neven producten te onderdrukken. Wellicht dat een hardware filter net achter de HackRF hier nog de beste oplossing is. Ook belangrijk is de versterkers in de HackRF niet op teveel gain in te stellen omdat er anders reciprocal mixing gaat optreden.



Fig 1: Blokschema in gnuradio





Demo

De werking van de transponder wordt gedemonstreerd middels het youtube filmpje hieronder.



Het mooie van de hier beschreven opzet is dat een heel flexibel transponder systeem ontstaat. De hele signaalverwerking zit in het software domein en daarmee kan op afstand worden geexperimenteerd. Er kunnen meerdere ontvangers naar de transponder output worden geleid. De ontvangers en zender hoeven niet op dezelfde locatie te staan.

In een volgende versie worden de volgende onderdelen verder onderzocht: 1. Spectrale reinheid van de zender. 2. Gedrag systeem wanneer meerdere ontvangers via 5GHz hamlinken aan elkaar worden gekoppeld. Wordt vervolgt....


IARU-R1 Bandplan en Transponders

Het IARU bandplan in het handbook v8.01 is niet meer zo duidelijk als het gaat om lineaire transponders. In een footnote wordt duidelijk dat op 70cm de bandjes 432.500 - 432.600MHz en 432.600 - 432.800MHz in sommige landen in de praktijk als output worden gebruikt. Dit sluit ook aan bij mijn ervaring.
In het bandplan wordt over multmode uitgangen gesproken maar dat gaat waarschijnlijk niet over ssb maar meer digitale multimode experimenten. Het zijn ook frequenties waar je geen uitgangen van lineaire transponders zou verwachten.
Aandachtspunt is dat 432.500MHz tegenwoordig als de APRS frequentie is gekozen.

Voor de inputs kan ik in het bandplan alleen voor 23cm vinden: "1296.400-1296.600 Linear transponder input." Voor de hogere banden 13, 9, 6 en 3cm is geen concrete frequentie in het het bandplan opgenomen. Het lijkt bv voor 13cm logisch een bandje te kiezen tussen 2320.300 en 2320.750MHz



HOME | Go Back