CW Analyseverfahren in Fldigi und anderswo

  • Addi,


    Du hattest recht: Diesen Teil des Artikels hatte ich ueberlesen, da ich ihn in Bezug auf dem Cubietruck nicht verstanden habe. Jetzt kenne ich zumindest die Optionen und kann in den Kreisen gezielt nachfragen, an welcher Stelle des Makefiles und mit welcher Option ich es einfügen muss. Verstehen tue ich es immer noch nicht. ( Ist halt High Level Wissen :whistling: )


    Danke für den Hinweis.


    73 de Hajo
    PS: Fast alle haben es verstanden und bedauern es ... troppo tardi, die Zeit geht weiter.

  • Moin,

    Zwei Fragen zur Linuximplementation :
    1. Gibt es ausser mit pavucontrol einen anderen Weg fldigi davon zu ueberzeugen, den Audiostream am LineIn- /Mikrofoneingang an den Kopfhoererausgang weiterzureichen ? (Ich habe das hardwareseitig gelöst.)
    2. Kennt jemand die c++/g++ Optionen, um bei Armhf die FPU anzusprechen/optimieren?

    Willst Du fldigi auf dem armhf System mit FPU nutzen?


    Für die Audiosteuerung, ich glaube http://jackaudio.org/ macht so was. Habe ich aber noch nie probiert.


    73, Tom

  • Hallo Tom,


    Ich/wir bauen gerade ein digitales Interface für den Solf. Cat geht sowieso, Pan-Adapter über pmsdr funktioniert auch. Ich benutze als zentrale Software Fldigi weil dort Cat, Log und 3000 Hz Wasserfall eingebaut ist. Und das läuft alles auf dem Cubietruck. Wenn ich alles gleichzeitig laufen lasse, incl. Apache, iceweasel, opencloud als Backup für einen zweiten Server mit owncloud und Cloudlog habe ich bei 48 KHz Auflösung mit dem internen adda eine Auslastung von ca. 70-80 %. Ohne Pan Adapter, den ich auf den BBB auslagern kann, habe ich eine Auslastung von ca. 50 %.
    Mit der erweiterten CW Dekodierung ohne FPU Unterstützung war die Auslastung bei 90%. Jetzt hatte ich gelesen, dass ab GCC 4.8 die FPU in gewissem Rahmen genutzt werden kann.


    Ja, ich will dies zumindest probieren. Eine Teilloesung habe ich schon gefunden:


    /path/to/your/cross/gcc -mtune=cortex-a7 -mfpu=neon-vfpv4 $*


    Aber noch nicht ausprobiert.


    Uebrigens Mauri hat in Github eine erste Konvertierung in Python zur Verfügung gestellt.


    73 de Hajo

  • Tom,


    Ja jackall macht so etwas auch, aber Linux und Audio kann nervig werden, da meine Audio Verarbeitung auf LMDE läuft, Applikationsbedingt mit allen verfügbaren Soundlayern. Aber das ist hier OT.


    73 de Hajo

  • Ja, ich will dies zumindest probieren. Eine Teilloesung habe ich schon gefunden:


    /path/to/your/cross/gcc -mtune=cortex-a7 -mfpu=neon-vfpv4 $*

    Ich probiere z.Zt. fldigi auch einem Toshiba AC100 Netbook mit einen (Nvidia Tegra Dualcore A9) unter lubuntu 13.04 zu kompilieren.
    Die entsprechenden Optimierungsflags habe ich ins Makefile nach dem ./configure Lauf eingebaut:


    CFLAGS = -g -O2 -I. -mfloat-abi=hard -mfpu=vfpv3-d16 -mtune=cortex-a9
    CXXFLAGS = -g -O2 -mfloat-abi=hard -mfpu=vfpv3-d16 -mtune=cortex-a9


    Der Tegra2 hat nur eine VFP-FPU.


    Bei ARM NEON-FPU Optimierungen sollte man noch beachten, evtl. -funsafe-math-optimizations zu aktivieren.


    Siehe:


    If the selected floating-point hardware includes the NEON extension
    (e.g. -mfpu=‘neon’), note that floating-point
    operations are not generated by GCC's auto-vectorization pass unless
    -funsafe-math-optimizations is also specified. This is
    because NEON hardware does not fully implement the IEEE 754 standard for
    floating-point arithmetic (in particular denormal values are treated as
    zero), so the use of NEON instructions may lead to a loss of precision.


    (Quelle: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html )

  • Hallo DO4KR,


    danke fuers Teilen. Nun weiss ich, dass ich nicht alleine bin.


    Ich werde es mir ansehen. Diese NEON-Geschichte hatte ich gelesen, aber weil ich wiederum zu faul war nachzusehen, was dies nun wieder bedeutet und deshalb gleich wieder vergessen.


    Bin halt nur ein kleiner Anwender und mein Interesse an Hardware ist begrenzt. Man kann nicht alles wissen und machen ;(


    73 de Hajo

  • Hallo,
    Mauri (AG1LE) hat einen Wettbewerb ausgeschrieben, indem es darum geht eine Software zu entwickeln, die lernt, aus einer Audiodatei, Morsezeichen zu erkennen und zu interpretieren. Hier ist die Ausschreibung zu finden.


    Der Quasi Wettbewerb findet auf Kaggle statt. Auf dieser Seite sind auch die Evaluationsdateien und das schon erwähnte Python Programm zu finden (, das sehr gut läuft).


    Kaggle bietet eine Plattform für solche Wettbewerbe. Mauri' s Vorschlag wurde akzeptiert und es haben sich wohl schon einige Leute angemeldet.


    Wer mitmachen will, nur zu ...


    73 de Hajo

  • Hallo DO4KR,


    Mit diesen Optionen hat es geklappt:
    CFLAGS = -g -O2 -I. -mtune=cortex-a7 -mfpu=neon-vfpv4
    -mfloat-abi=hard -funsafe-math-optimizations
    CXXFLAGS = -g -O2 -mtune=cortex-a7 -mfpu=neon-vfpv4
    -mfloat-abi=hard -funsafe-math-optimizations


    Mit externer Soundkarte: Der Cubietruck läuft bei der Bayesian Dekodierung immer noch hochtourig, aber es gibt keine Aussetzer auch wenn der Signal Browser eingeschaltet ist.
    Bei der Interpretation mit neuronalen Netzen liegt die CPU Auslastung bei 45 %.


    Mit dem internen Codec ist es etwas besser.


    73 de Hajo