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
den nachstehenden Code einfügen:
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
den nachstehenden Code einfügen:
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:
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