Abgleich von SvxLink-Systemen

  • Hallo zusammen,

    der Abgleich eines einzelnen SvxLink-Systems kann im absoluten Notfall ja auch ohne weitere Mess- und Hilfsmittel nur nach Gefühl bzw. Gehör erfolgen. Spätestens jedoch wenn mehrere Systeme in Spiel kommen und zusammengeschaltet werden sollen (RemoteTrx, SvxServer etc.) stößt man damit schnell an die Grenzen. Folge: Die Audiopegel passen oftmals nicht zueinander; manche Stationen sind zu laut, andere wiederrum zu leise.

    Man muss sich also auf einen gemeinsamen, internen „Referenzpegel“ einigen und alle angeschlossenen Sender und Empfänger darauf einstellen. Bei SvxLink ist das schon eingebaut; als Referenzpegel wird standardmäßig -6 dBFS verwendet. Die Bezeichnung dBFS kommt aus der Digitaltechnik und hat erst einmal überhaupt nichts mit analogen Signalen wie z.B. Spannungen, Frequenzhub etc. zu tun. Sie definiert nur einen bestimmten Pegel innerhalb eines digitalen Systems:

    • 0 dBFS: Das ist der höchstmögliche digitale Pegel der nicht überschritten werden kann
    • -6 dBFS: Das ist der Referenz-/Arbeitspegel von SvxLink. Dieser Pegel wird im Normalfall nicht überschritten


    Zwischen den beiden Werten liegt der sogenannte „Headroom“ (6 dB). Damit bekommt das System eine gewisse Kopffreiheit. Diese ist erforderlich damit kleinere Ausreißer nicht sofort zu Verzerrungen führen. Falls z.B. mal eine Station etwas übermoduliert ist wird das Signal nicht sofort abgeschnitten sondern erst einmal verzerrungsfrei weiterverarbeitet. Obergrenze ist dabei dann der absolute Maximalwert von 0 dBFS innerhalb des digitalen Systems und/oder aber die hardwaremäßigen Filter im Empfänger bzw. die Hubbegrenzung im Sender. Aber dafür kann SvxLink ja nichts, hi.

    Da wir nun einen Referenzpegel (-6 dBFS) haben ist der Rest eigentlich recht einfach: Wir müssen nur noch alle Sender und Empfänger darauf einstellen. Die internen Signale von SvxLink (Stimmen, EchoLink, RemoteTrx) arbeiten bereits mit diesem Pegel. Es gilt somit Folgendes:

    • -6 dBFS entsprechen dem FM-Spitzenhub (z.B. +-2500Hz)


    Ein (Prüf-)Signal, welches exakt mit FM-Spitzenhub empfangen wird muss nun also innerhalb unseres digitalen Systems exakt einen Pegel von -6 dBFS erreichen. Und ein internes Signal von -6 dBFS muss wiederrum im Sender genau FM-Spitzenhub erzeugen.

    Theoretisch zunächst also alles recht einfach und auch irgendwie logisch. Nun gilt es, das Ganze umzusetzen und alle Empfänger sowie Sender genau abzugleichen. Hierzu ist normalerweise entsprechendes Messequipment wie z.B. Prüfsender, Hubmesser etc. erforderlich. Aber es geht auch einfacher - mit absolut amateurmäßigen Mitteln. Dabei hilft uns das SvxLink-Tool devcal. Fortsetzung folgt ...

    Schönen Gruß
    Frank, DL3DCW

    Edited once, last by DL3DCW (January 19, 2017 at 3:04 PM).

  • Abgleich des Senders

    Für den Abgleich des Senders (Tx1) wird diesem mit dem SvxLink-Tool devcal ein Audiosignal mit definiertem Pegel und fester Frequenz (1000Hz) zugeführt. Nach erfolgreichem Abgleich wird damit dann genau Spitzenhub (+-2500 Hz) erreicht. Der in SvxLink eingestellte Verstärkungspegel sowie die Preemphasis werden dabei berücksichtigt:

    Code
    devcal -t -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Tx1


    Der MASTER_GAIN des Tx1 sollte in der SvxLink-Konfiguration zunächst auf 0 stehen. Später können mit den +/- Tasten kleinere Korrekturen durchgeführt werden. Diese müssen danach manuell in die Konfiguration eingetragen werden.

    Anschließend muss der daraus resultierende FM-Hub des Senders gemessen werden. Dies kann man recht einfach mit einem SDR-Stick (rtl_sdr) machen. In der svxlink.conf wurde dazu ein solcher Stick nach diesem Muster als Rx2 konfiguriert:

    Code
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx2


    Nun kann der Sendezweig (Trimmer, MicGain, Alsamixer etc.) genau auf den gewünschten Hub (+-2500Hz) justiert werden. Der Pegel im Alsamixer sollte dabei möglichst hoch eingestellt werden damit nicht unnötig Auflösung verschenkt wird. Falls das Signal dann deutlich zu groß ist kann man dieses lieber mit einem Spannungsteiler/Trimmer entsprechend dämpfen.


    Damit ist der Abgleich des Sendezweiges abgeschlossen. Bei einem internen Signal von -6 dBFS wird nun genau Spitzenhub (+-2500Hz) erreicht.

    Anmerkungen

    Es sollte möglichst ein SDR-Stick mit TCXO verwendet werden. Damit erspart man sich die sonst zusätzlich erforderliche Frequenzkalibration des Sticks. Gute Erfahrungen haben wir mit Sticks von „NooElec“ gemacht: NESDR smart, NESDR Mini 2+ und NESDR Nano 2+ (Bezug z.B. via Amazon).

    SvxLink-Systeme arbeiten eigentlich immer mit Preemphasis/Deemphasis. Entweder ist diese hardwaremäßig in Sender/Empfänger eingebaut oder aber softwaremäßig innerhalb von SvxLink eingeschaltet (Data/9k6-Buchse). Daher darf devcal nicht mit dem zusätzlichen Parameter „-F“ (flat) aufgerufen werden! Dieser ist nur für Systeme gedacht, die völlig ohne Preemphasis/Deemphasis arbeiten („flat audio“, siehe hier). Fortsetzung folgt ...

  • Abgleich des Empfängers

    Für den Abgleich des Empfängers ist ein Signal mit genau bekanntem FM-Hub erforderlich. Hierfür kann z.B. ein Funkgerät mit 1750Hz-Tonruf verwendet werden. Da der Hub des Tonrufs zunächst nicht bekannt ist wird er einfach mit der oben beschriebenen Methode (SDR-Stick) gemessen:

    Code
    devcal -M -f 1750 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx2


    Der ermittelte Hub des Tonrufs wird in der Regel ein ganzes Stück unter dem eigentlichen Spitzenhub liegen (z.B. +-1600Hz). Auf diesen Wert muss nun der Empfänger (Rx1) bei anliegendem 1750Hz Tonruf eingestellt werden. Der PREAMP des Rx1 sollte in der SvxLink-Konfiguration zunächst auf 0 stehen. Später können mit den +/- Tasten kleinere Korrekturen durchgeführt werden. Diese müssen danach manuell in die Konfiguration eingetragen werden:

    Code
    devcal -r -f 1750 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx1


    Nun kann der Empfangszweig (Trimmer, RxGain, Alsamixer etc.) genau auf den oben ermittelten Hub des 1750Hz Tonrufs (z.B. +-1600Hz) justiert werden. Der Regler im Alsamixer (falls vorhanden) sollte dabei möglichst hoch eingestellt werden damit nicht unnötig Auflösung verschenkt wird.


    Damit ist der Abgleich des Empfängers abgeschlossen. Bei einem Signal mit Spitzenhub (+-2500Hz) wird intern nun genau ein Pegel von -6 dBFS erreicht.

    Anmerkungen

    Eine eventuell aktive Ruftonsperre (1750_MUTING) muss vorher deaktiviert werden. Denn sonst wird das Messsignal unterdrückt.

    Die hier beschriebene Vorgehensweise bei der Kalibrierung von Sender und Empfänger führt zu recht guten Ergebnissen. Es wird allerdings davon ausgegangen, dass der Frequenzgang des gesamten Systems, also RX, TX, Audiozweig usw. absolut linear ist. Gerade bei den Funkgeräten ist das aber leider nicht immer so. Dies hat zur Folge dass sich trotz perfekter Kalibrierung (welche ja immer nur auf eine einzige Frequenz bezogen ist) das Audio mehrerer Systeme subjektiv manchmal trotzdem ein wenig voneinander unterscheidet. Hier kann dann gegebenenfalls eine leichte manuelle Korrektur von max. etwa 1-2dB bei den Werten PREAMP (RX) und MASTER_GAIN (TX) für Abhilfe sorgen.

  • Noch ein Nachtrag:

    Standardmäßig lässt sich devcal leider nicht so einfach mit "sudo devcal" aufrufen. Denn es befindet sich nach der Installation von SvxLink immer noch in den unergründlichen Tiefen des Quellordners, hi. Entweder gibt man nun den gesamten Pfad mit an (z.B. "sudo ~/svxlink/src/build/bin/devcal") oder man kopiert das Programm einfach in einen etwas zweckmäßigeren Ordner. Vielleicht nach "/usr/local/bin":

    Code
    sudo cp ~/svxlink/src/build/bin/devcal /usr/local/bin


    Hat man alles richtig gemacht klappt es nun auch mit dem "sudo devcal" ;-).

    EDIT: Falls der Installationsorder nicht mehr vorhanden sein sollte (z.B. beim HAMServerPi) kann man devcal auch aus dem Internet nachladen:

    Code
    sudo wget http://www.ruhrlink.org/downloads/devcal -P /usr/local/bin
    sudo chmod +x /usr/local/bin/devcal


    Alternativ dazu gibt es auch eine Downloadmöglichkeit im HAMNET: http://db0tv.ampr.org/data/uploads/files/devcal

    Schönen Gruß
    Frank, DL3DCW

    Edited 5 times, last by DL3DCW (January 20, 2017 at 6:41 PM).

  • Gerade mal ausprobiert:

    Zur Einstellung des TX-Hubs muss sich der Messempfänger (SDR-Stick) noch nicht einmal mal in unmittelbarer Nähe des Senders befinden. Er reicht aus, wenn man das Signal mit halbwegs brauchbarer Feldstärke empfangen kann. Es darf natürlich nicht allzu schwach sein. Da dies bei allen unseren Relais am Messstandort zutrifft habe ich spaßeshalber gleich mal mehrere Konfigurationen eingerichtet (alternativ zu Rx2):

    Code
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf db0hat
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf db0nx
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf db0wet
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf dm0ha
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf dl3dcw


    Nun braucht man für Messungen nur noch das entsprechende Rufzeichen angeben und anschließend auf dem entfernten System die TX-Kalibierung zu starten. Anders herum könnte es vielleicht auch funktionieren: Auf den entfernten Systemen wird die RX-Kalibrierung gestartet und es muss nur noch ein 1750Hz-Tonruf mit bekanntem Hub dorthin gesendet werden. Ich bin begeistert!

  • Hallo zusammen,

    nachstehend einmal eine kurze Aufstellung der wichtigsten Kommandozeilenparameter von devcal. Es müssen nicht zwangsläufig alle in der obenstehenden Anleitung aufgeführten Parameter angegeben werden da es Standardeinstellungen gibt. Diese weichen jedoch teilweise von unseren Anforderungen ab. Es macht daher auf jeden Fall Sinn die Parameter genauso aufzuführen wie es oben beschrieben ist.

    Code
    -r   Receiver Abgleich
    -t   Transmitter Abgleich
    -M   Messbetrieb (SDR-Stick erforderlich)
    -f   Modulationsfrequenz (Standardeinstellung=1000Hz)
    -m   Maximalhub (Standardeinstellung=5000Hz, für NBFM muss hier 2500 angegeben werden)
    -d   Kalibierhub (Standardeinstellung=2404.8Hz, für die obenstehende Vorgehensweise muss hier 2500 angegeben werden)


    Die Standardeinstellung von 2404.8Hz beim Kalibrierhub (Parameter "-d") klingt zunächst erst einmal ein wenig merkwürdig. Sie hat aber einen bestimmten Grund. Darauf wird im Anschluss noch besonders eingegangen. Für die oben beschriebene Vorgehensweise muss auf jeden Fall ein Kalibrierhub von 2500Hz verwendet werden da es sonst zu Fehleinstellungen kommt. Der Parameter "-d 2500" muss daher zwingend mit angegeben werden!

    Schönen Gruß
    Frank, DL3DCW

  • Alternative Hubmessung

    Steht für die Hubmessung kein SvxLink-System mit SDR-Stick zur Verfügung kann man alternativ dazu auch einen beliebigen SDR-Empfänger verwenden. Sogar mit einem WebSDR funktioniert das prima. Dabei muss man allerdings die systembedingten Verzögerungszeiten berücksichtigen. Die Luxusvariante wäre ein Spekrumanalyser. Diesen haben aber vermutlich nur die wenigsten von uns zuhause mal so eben herumstehen, hi.


    Der obenstehende Screenshot zeigt das Spektrum eines grob abgeglichenen Senders. Das Audiosignal (1000Hz) wurde auch hier wieder mit devcal erzeugt. Die Bandbreite sieht für ein NBFM-Signal eigentlich schon recht ordentlich aus. Nun geht es an den Feinabgleich. Und genau hier kommt der ominöse Kalibrierhub von 2404.8Hz ins Spiel:


    Bei einer Modulationsfrequenz von 1000Hz und einem FM-Hub von exakt 2404.8Hz verschwindet nämlich der Träger! Dies ermöglicht einen recht feinen Abgleich des Senders nur mit Hilfe eines SDR-Empfängers. Schuld daran ist die Besselfunktion die bei einem Modulationsindex von genau 2,4048 ihre erste Nullstelle hat. Und diese Nullstelle ist im SDR (und natürlich auch auf einem Spektrumanalyser) ganz deutlich zu sehen.

    Soweit also erst einmal sehr schön. Allerdings möchten wir doch gerne einen Spitzenhub von +-2500Hz und nicht "nur" von +-2404.8Hz haben? Dabei ist devcal dann wieder unser Freund. Denn genau dieser Umstand wird mit den nachstehend aufgeführten Parametern berücksichtigt:

    Code
    devcal -t -f 1000 -m 2500 -d 2404,8 /etc/svxlink/svxlink.conf Tx1


    Wird nun beim Abgleich des Senders im SDR die Nullstelle sichtbar so hat man exakt einen Hub von +-2500Hz eingestellt. Damit bei diesem Hub trotzdem der Träger verschwindet hat devcal klammheimlich den Audiopegel geringfügig verändert (um ca. -0.3dB). Somit ist im Normalbetrieb von SvxLink also alles genauso wie es sein soll.

    Anmerkungen

    Da als Kalibierhub standardmäßig +-2404.8Hz verwendet werden kann man den Parameter "-d 2404,8" auch weglassen. Ebenso kann auf die Angabe der Modulationsfrequenz ("-f 1000") verzichtet werden. Die Angabe der Parameter in den obenstehenden Beispielen dient lediglich der Übersichtlichkeit.

    An dieser Stelle ein herzliches Dankeschön an die SvxLink-Entwickler für ihre hervorragende Arbeit!

  • Die Minimalkonfiguration in SvxLink für einen SDR-Stick als Messempfänger zur Hubeinstellung auf 432.900MHz (hier Rx2) sieht so aus:


    Diese Einstellungen funktionieren auf jeden Fall mit den NooElec-Sticks (R820T2-Tuner mit TCXO). Die RX-Frequenz (FQ) sollte natürlich individuell eingestellt werden. Bei anderen Sticks müssen ggf. noch die Werte für Frequenzkorrektur (FQ_CORR) und Verstärkung (GAIN) angepasst werden. Verfügt das System über mehrere SDR-Empfänger wird der gewünschte Stick mit der Device-ID (DEV_MATCH) ausgewählt.

  • Hier das Ganze noch einmal als Kurzanleitung:

    System vorbereiten

    Das Programm "devcal" aus dem SvxLink-Quellordner ins Verzeichnis "/usr/local/bin" kopieren:

    Code
    sudo cp ~/svxlink/src/build/bin/devcal /usr/local/bin


    Falls der Quellordner nicht mehr vorhanden ist kann man devcal notfalls aus dem Internet nachladen:

    Code
    sudo wget http://www.ruhrlink.org/downloads/devcal -P /usr/local/binsudo chmod +x /usr/local/bin/devcal


    Alternativ dazu gibt es auch eine Downloadmöglichkeit im HAMNET: http://db0tv.ampr.org/data/uploads/files/devcal

    SDR-Stick einrichten

    In der svxlink.conf einen SDR-Stick als Messempfänger (Rx2) einrichten:

    Code
    [Rx2]TYPE=DdrFQ=432900000WBRX=WbRx2[WbRx2]TYPE=RtlUsbDEV_MATCH=0FQ_CORR=0.0GAIN=49.6


    Die Werte FQ, DEV_MATCH, FQ_CORR und GAIN müssen ggf. individuell angepasst werden. Teilweise sind sie vom verwendeten SDR-Stick abhängig.

    Abgleich des Senders

    Sender (Tx1) mit Referenzsignal modulieren (Alsamixer=-6dB, MASTER_GAIN=0):

    Code
    devcal -t -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Tx1


    FM-Hub des Senders mit einem SDR-Stick (Rx2) messen:

    Code
    devcal -M -f 1000 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx2


    Sendezweig auf 2500Hz Hub einstellen. Kleinere Korrekturen mit +/- durchführen und anschließend MASTER_GAIN in der svxlink.conf anpassen.

    Abgleich des Empfängers

    Referenzsignal (1750Hz Rufton) senden und Hub mit einem SDR-Stick (Rx2) messen:

    Code
    devcal -M -f 1750 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx2


    Referenzsignal (1750Hz) senden und den Hub am Empfänger (Rx1) messen (PREAMP=0, 1750_MUTING=0):

    Code
    devcal -r -f 1750 -m 2500 -d 2500 /etc/svxlink/svxlink.conf Rx1


    Empfangszweig auf Hub des Referenzsignals einstellen. Kleinere Korrekturen mit +/- durchführen und anschließend PREAMP in der svxlink.conf anpassen.

    Anmerkungen

    - Bei SDR-Sticks mit TCXO kann meist die normalerweise erforderliche Frequenzkalibrierung entfallen
    - Möglichst vollen AD/DA-Wandler Bereich ausnutzen und Grobeinstellung besser hardwaremäßig vornehmen
    - Parameter "-F" nur anwenden falls systemweit keinerlei Preemphasis/Deemphasis vorhanden ist (flat audio)
    - Diese Vorgehensweise funktioniert nur bei annähernd linearem Frequenzgang von RX, TX und Audiozweig
    - Bei Konflikten (Audiogeräte etc.) kann gegebenenfalls die Verwendung eines separaten Systems nützlich sein

    Edited 3 times, last by DL3DCW (January 23, 2017 at 8:51 AM).

  • Hallo Frank,

    das ist alles sehr interessant und hilft sicher vielen OMs weiter. Meinst Du nicht auch, dass man das möglicherweise vielleicht direkt auf die Webseite, z.B. unter "Details" stellen sollte? Das Problem bei Foren ist, dass Deine Beiträge irgendwann nicht mehr "ganz oben" stehen, sondern immer weiter im Hintergrund verschwinden.

    Auf der Seite hätte man alles unter einem Menüpunkt stehen.

    vy 73s de Adi / DL1HRC

  • Hi Adi,

    ja klar, das macht auf jeden Fall Sinn. Ich hatte zunächst eigentlich gar nicht vor eine umfassende Anleitung zu schreiben. Sollte eigentlich nur "Brainstorming" sein und dem Erfahrungsaustausch dienen. Zudem ergeben sich manchmal ja auch später noch Verbesserungen oder es fallen Fehler auf. Wenn alles ok ist und sich das Ganze auch bei anderen OMs bewährt hat kann das gerne nach http://www.svxlink.de wandern.

    BTW: Ich selbst habe im Moment noch Probleme mit meiner "Emphasis light" (siehe hier). Da die Kurve nicht mit der echten Emphasis übereinstimmt passt die 1750Hz-Kalibrierung bei mir nicht. Also erst mal weiter nach der Ursache forschen. Aber das ist ein anderes Thema ...

    Schönen Gruß
    Frank, DL3DCW