Audiofilter für SvxLink

  • Hallo zusammen,


    zur Optimierung des Audio-Frequenzgangs im Zusammenspiel mit bestimmten Sendern/Empfängern ist manchmal ein Filter recht nützlich. Damit können Höhen, Tiefen oder auch bestimmte Frequenzen angehoben oder gedämpft werden. SvxLink verfügt bereits über umfangreiche sowie frei konfigurierbare Filter (vielen Dank an Adi für den entscheidenden Hinweis), diese sind allerdings für den User zunächst nicht so ohne Weiteres zugänglich.


    Um in der "svxlink.conf" für jeden RX und TX solche Filter definieren zu können, sind ein paar Änderungen am Quellcode erforderlich. Beispiel:


    In der Datei "~/svxlink/src/svxlink/trx/LocalRxBase.cpp" vor der Zeile


    Code
    // Create a splitter to distribute full bandwidth audio to all consumers


    den nachstehenden Code einfügen:


    Code
    string filter_specification;if (cfg.getValue(name(), "AUDIO_FILTER", filter_specification))  {    AudioFilter *audio_filter = new AudioFilter(filter_specification);    prev_src->registerSink(audio_filter, true);    prev_src = audio_filter;  }


    In der Datei "~/svxlink/src/svxlink/trx/LocalTx.cpp" vor der Zeile


    Code
    // If preemphasis is enabled, create the preemphasis filter


    den nachstehenden Code einfügen:


    Code
    string filter_specification;  if (cfg.getValue(name, "AUDIO_FILTER", filter_specification))  {    AudioFilter *audio_filter = new AudioFilter(filter_specification);    prev_src->registerSink(audio_filter, true);    prev_src = audio_filter;  }


    Danach muss SvxLink auf dem Zielsystem neu compiliert werden.


    Anschließend können in der Datei "svxlink.conf" die jeweiligen Filter definiert werden. Beispiel:


    Code
    [Rx1]
    AUDIO_FILTER=HpBe1/1000
    
    
    [Tx1]
    AUDIO_FILTER=LpBe1/1000


    Diese Parameter fügen in den RX-Zweig einen Hochpass mit einer Grenzfrequenz von 1000Hz und in den TX-Zweig einen Tiefpass mit einer Grenzfrequenz 1000Hz ein. Eventuell müssen danach noch die Audiopegel entsprechend angepasst werden.


    Weitere Infos zur Filterdefinition gibt es z.B. hier: https://github.com/sm0svx/svxl…rc/async/audio/fidlib.txt


    Schönen Gruß
    Frank, DL3DCW

  • Hallo alle,


    das ist natürlich doch etwas schwierig für Leute, die selbst noch nicht programmiert haben und geht doch ziemlich ans Eingemachte :)
    Ich würde mal einen neuen Branch dafür aufmachen in den nächsten Tagen und Tobias bitten, die Änderungen in den Trunk einzuarbeiten. Das ist eventuell etwas einfacher für die OMs.


    Bitte noch um etwas Geduld.


    vy 73s de Adi, DL1HRC

  • Hi Frank,


    so, habe mal meinen ersten Entwurf auf git gestellt:


    https://github.com/dl1hrc/svxlink/tree/audiofilter


    Die entsprechenden Parameter heißen AUDIO_FILTER, jeweils in der RX- bzw. TX-Sektion zu definieren, Filterdefinition analog der fidlib.c
    Es gibt da eine ganze Reihe von nutzbaren Filtern, mit denen man einen hardwaremäßig nicht optimalen Audiofrequenzgang ein bisschen aufpeppen kann - für Signalanalytiker die reinste Spielwiese.


    Viel Erfolg + vy 73s de Adi, DL1HRC

  • Moin,


    sehe ich das richitig, daß die untere Grenze des Filters systembedingt durch die 300 Hz im Echolink dadurch nicht zu beeinflussen ist ?
    Es brigt es wohl leider nicht,wenn den unteren Wert z.B. auf 25 setzen möchte....


    73
    Knut

  • Moin Knut,


    der Audiostream für EchoLink wird hinter einem Hochpass (>0,3kHz) abgenommen und dann gsm-encoded. Das heißt, Frequenzen <300Hz werden ohnehin nicht "durchgereicht" zum EchoLink-Partner. Auch wenn Du das im Quellcode änderst, weißt Du ja immer noch nicht inwieweit der Codec die Audio-Übertragung beeinflußt und auf der anderen Seite ein sauberes Dekodieren nicht mehr möglich ist.Was willst Du denn machen?


    vy 73s de Adi / DL1HRC

  • Danke für die prompte Antwort, Adi !


    Dann wäre es ja denkbar, CTCSS Töne in Klartext umzuwandeln...z.B. 141,3....diesen Text per Echolink Text zu übermiiteln und bei der Gegenstation wieder in CTCSS zu wandeln und mit dem Quellrufzeichen zusammen auszusenden.


    Hätte den Vorteil ,daßich mit dem HFG in der Hemdentasche "selektiv" STDBY sein kann.



    biis dann
    Knut