Ergebnis 1 bis 15 von 93

Thema: neue POCSAG-Decoder-Software

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    bidifx Gast
    Ah... dieses Phänomen nennt sich Bufferoverrun. Latenz ist, wie ich schon sagte, nur die Verzögerung vom anliegen der Daten am Eingang bis sie im Programm ankommen.

    Die Digitalisierung und Speicherung in einem kleine Puffer auf der Soundkarte ist vollständig in Hardware implementiert, ist also unabhängig vom Prozessor.
    Wenn dieser Puffer auf der Soundkarte voll ist, dann löst die Hardware einen Interrupt aus und die Interruptroutine im Kernel (bzw. Treiber) überträgt dann mittels DMA den Puffer der Soundkarte in den RAM.
    Auch diese Vorgänge sind unabhängig von der CPU-Last. Hier geht i.d.R. nichts verloren. Das digitalisieren hat also kein Aussetzer durch hohe CPU-Last.
    Der einzige Fall, in dem ein Bufferoverrun auftreten kann ist, wenn das Programm nicht genug CPU-Zeit hat um die Daten vom Treiber entgegen zu nehmen und zu verarbeiten bis der nächste "Satz" Daten vorliegt.
    Aber das lässt sich durch einfach Maßnahmen weitergehen ausschließen:
    -entsprechende Puffergröße wählen
    -wählen der Prozess- bzw. Threadpriorität
    usw.
    (darum habe ich mich in der alpha-Version übrigens nicht nicht gekümmert)

    >[...] aber du hast recht, ein Multitaskingsystem ist nunmal streng genommen nicht
    >wirklich geeignet für Datendekodierung - zumindest unter Lastbedingungen.
    Das habe ich nicht gesagt und ich behaupte sogar das Gegenteil!
    Man denke nur an so komplizierte Formate wie:
    -Ethernet
    -WiFi
    -DVB
    -Videostream
    ...

    ...aber wir wollen hier mal nicht zuweit abschweifen. Ich habe mich ein wenig hinreißen lassen ;-)

  2. #2
    Registriert seit
    28.11.2005
    Beiträge
    2.759
    Hi ..

    Japp, ich beziehe mich in der Tat auf das von dir beschriebene Problem.

    OT:
    Erm.. Ethernet und die ganzen Dinger werden aber nicht über ne Soundkarte verarbeitet,
    eben weil sie so komplex sind. Dafür ist andere L0/L1 zuständig.. es ging mir ausschliesslich
    um eine Dekodierung von Datensignalen durch digitalisierung einer analogen Frequenz.

    Alles andere sind andere Vorraussetzungen. (Ich kann mit demselben Mikrocontroller einen
    Chip ansprechen, der dann Ethernet auf der Ausgabeseite hat, oder nen Chip, der mir nen FFSK
    Signal erzeugt, aber nicht zwingend beides mit dem Mikrocontroller selbst erzeugen, weil eins
    zu komplex ist für die Geschwindigkeit der MCU. Vergleich hier wäre als "Soundkarte", "virtuelle
    Soundkarte", "Netzwerkkarte" und "virtuelle Netzwerkkarte")

    Topic:
    Es könnte übrigens noch ein ganz anderes Problem sein, es wäre mal zu fragen, ob ein User
    sowohl die Windows als auch Linux Version auf derselben Hardware laufen hat - vielleicht liegt
    es an den Filtern meiner Soundkarte ^^

    Gruss,
    Tim
    --
    In a world without walls and fences, who needs Windows and Gates ??

    Meine private Webseite: http://www.db1jat.org

  3. #3
    bidifx Gast
    Also wie ich beschrieben habe ist ein Datenverlust bei der AD-Wandlung ausgeschlossen. Genauso ist es bei einer Decoder-Hardware.
    Allerdings bleibt die Frage wie die Decoder-Hardware digitalisiert. Falls mittels SchmittTrigger, dann liegt hier schon ein Vorteil auf der Seite der Software. Diese verwendet aufwändigere Mechanismen, die auch stets angepasst werden können. Bspw. möchte ich noch ein LowPass-FIR zur Rauschunterdrückung hinzufügen.

    Die Eigentliche Dekodieraufgabe ist ausgesprochen simpel. Diese Aufgabe muss entsprechend bei einem Hardware-Decoder eine MCU übernehmen. Es existiert keine MCU die leistungsmäßig mit einem handelsüblichen PC mithalten kann.
    Als Vergleich: Man kann ja auch mit einem PC in echtzeit Audio als MP3 aufnehmen. Und das erfordert immerhin diskrete Kosinustransformation in Echtzeit.
    Ansonsten gibt das Programm derzeit eine DEBUG-Meldung aus, falls tatsächlich ein Overrun auftritt. Bisher habe ich das noch nicht geschafft.

    Zusammenfassend:
    Als Argument für einen Hardware-Decoder lasse ich nicht gelten, dass dieser leistungsfähiger ist.


    Von welchen Filtern sprichst du?

  4. #4
    Registriert seit
    24.04.2005
    Beiträge
    615
    Gerade getestet:

    Code:
    Michael@athlon64:~/pocsag> ./openpoc
    LOG_FILE: ./log.txt
    ./openpoc: relocation error: ./openpoc: symbol snd_device_name_hint, version ALSA_0.9 not defined in file libasound.so.2 with link time reference
    Michael@athlon64:~/pocsag>
    Code:
    Michael@athlon64:~/pocsag> ./openpoc
    LOG_FILE: ./log.txt
    ./openpoc: relocation error: ./openpoc: symbol snd_device_name_hint, version ALSA_0.9 not defined in file libasound.so.2 with link time reference
    Michael@athlon64:~/pocsag>
    auf ner Athlon 64bit maschine.
    Baden-Württemberg - wir können alles, ausser Digitalfunk.

  5. #5
    bidifx Gast
    Hallo EIB!

    Welche ALSA-Version hast du? Hast du auch die entsprechenden 32-Bit Libs installiert?

  6. #6
    Registriert seit
    24.04.2005
    Beiträge
    615
    http://funkmeldesystem.de/foren/show...4&postcount=69

    Dann fehlt mir wohl was ..........
    Baden-Württemberg - wir können alles, ausser Digitalfunk.

  7. #7
    bidifx Gast
    ok, dann nächste Frage:
    Welche distribution?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •