Daten in Tabelle - Zu Diagnosezwecken Daten in Tabelle

  • Ich befasse mich mit einfachen, preisweten technischen Diagnosemöglichkeiten.
    Zu diesem Zweck, würde ich gerne Geräusche, wie sie z.B. bei Ströhmungen (Luft oder Wasser) oder beim Abrollen von Rädern entstehen aufzeichnen und auswerten. Auch Frequenzäderungen bei Beschleunigung und Verögerung möchte ich erfassen und auswerten.
    Notwendig wäre dazu, dass man x,y Daten zu weiteren Berechnungen in eine Tabellenkalkulation übertragen kann.
    Wer kennt eine Möglichkeit, wie ich Frequenzdaten u.Ä. in eine Tabelle bekomme?

  • Die Zwischenstufe zwischen Klangdateien und Tabellendokumenten ist eine csv-Datei (comma separated Values), die von Tabellenprogrammen gelesen und geschrieben werden kann. Soweit meine neuesten Erkenntnisse.

  • Du könntest mit Audacity eine WAV-Datei exportieren. Diese kannst Du dann z.B. mit dem Kommandozeilentool SoX (http://sox.sourceforge.net/) in eine Textdatei zur Weiterverarbeitung mit Statistikprogrammen etc. umwandeln.


    Edit: Hier findest Du auch ein Plugin, mit dem es direkt aus Audacity geht:
    http://www.audacity-forum.de/post/3572

  • Danke Markus,
    das Programm Sox scheint tatsächlich die Lösung, wie ich aber im Archiv von Chip evtl. war's auch bei heisse.de, gelesen hab, wird es nicht so leicht, eine Bedienungsanleitung in deutsch zu finden. Evtl. hat jemand mal kurz Erfahrungen mit dem Programm und wie es bedient wird. - Danke

  • Was ich dazu weiss ist dass z.B. folgende Zeile:


    [m]sox test.wav -n stat -d >daten.txt[/m]


    alle Samples aus "test.wav" als 32-bit Integer Werte in eine Datei "daten.txt" schreibt. Wenn ich die "daten.txt" Datei mit einem Text Editor öffne sieht sie ungefähr so aus:


    [m]fffb0000 006e0000 00170000 fe5d0000 ff3f0000 ffc90000
    008f0000 01fb0000 00c80000 ff990000 ff010000 ffa00000
    ffb70000 00280000 01690000 00a00000 00b60000 ff890000
    ff2a0000 00400000 ff350000 fe700000 ffd70000 00160000
    fe760000 ff840000 00be0000 ff6f0000 00510000 00290000
    ff750000 00720000 01380000 00da0000 ff1e0000 01140000
    00dd0000 00810000 033a0000 00170000 fda90000 ffb80000
    00b80000 fe740000 fece0000 01ae0000 01080000 018e0000
    00160000 ff9b0000 00ad0000 feab0000 ffcc0000 01410000
    00d50000 00080000 ffb00000 009d0000 ff480000 fe760000
    00100000 01a30000 00c00000 ffaa0000 01b60000 02a60000

    ...usw...[/m]


    Die Sampledaten können dann mit jedem Textverarbeitungsprogramm weiterverarbeitet werden.

  • Danke, ist ja super, nur hab ich noch zwei Fragen:
    1. Muss man Sox erst starten und dann die Zeile wie oben beschrieben eingeben oder reicht es in der Shell einfach diese Zeile einzugeben?


    2. Welche Daten stehen für welche Werte? Welches ist z.B. die Zeitachse und in welcher Zeiteinheit (Millisekunden oder kleiner?) - und wo kann man z.B. Signalstärke etc. ablesen? - Theoretisch müße das Ganze, wenn man es Von Hex- ins Dezimalzahlensystem umwandelt und im Tabellenkalkulationsprogramm ein x,y-Diagramm draus macht wieder so aussehen, wie das Sonagramm der Klangdatei.


    Wie gesagt, ich will ja eine Berechnungsgrundlage für eine Tabellenkalkulation draus machen.

  • Frage1: Es reicht in der Shell die Zeile einzugeben.


    Frage(n) 2:


    * Welche Daten stehen für welche Werte? - Jede Zahl gibt den Wert *eines* Samples aus der Datei an.


    * in welcher Zeiteinheit? - Zeiteinheit ist "1/(Samplefrequenz_der_Tondatei)" und hängt von der Samplefrequenz ab, mit der die Datei aufgenommen wurde. Sox gibt ganz am Ende der Liste mit den Sampledaten auch einen Block mit allgemeinen Dateiinformationen aus, darin findest Du u.a. auch die Samplefrequenz.


    * Theoretisch müße das Ganze ... wieder so aussehen, wie das Sonagramm der Klangdatei. - Alle DSP-Operationen musst Du dann natürlich in der Textverarbeitung machen, weil das für jeden Anwendungsfall massgeschneidert werden muss. Anlaufstellen (auf deutsch), wie so etwas funktioniert sind z.B.:


    * Wikipedia Artikel: http://de.wikipedia.org/wiki/Digitale_Signalverarbeitung
    * Wikipedia Buch: http://de.wikibooks.org/wiki/Digitale_Signalverarbeitung

  • Danke für Deine Geduld die Du mit mir hast. Die Theorie der digitalen Signalverarbeitung ist mir klar, alleine die praktische Umsetzung bereitet mir Probleme. Ich hab jetzt mal nen Link gefunden. Dazu hab ich die oben stehende Beispieltabelle einfach mal als test.txt gespeichert und von der unten angeführten Webseite bearbeiten lassen. - Mit dem Ergebnis konnte ich leider auch noch nicht viel anfangen, da es mir irgendwie nicht vergönnt ist die Kluft zwischen Theorie und Praxis zu schliesen.


    http://manfred.informatik.hu-berlin.de/php/fftw.php


    Warum muß ich die Datei übrigens in der Textverarbeitung bearbeiten, ich hab sie mal in ein Tabellenkalkulationsprogram eingelesen, von dort läßt sie sich auch wieder als Text expotieren.

  • Mit "Textverarbeitung" meinte ich *irgend ein* Programm, das Text verarbeiten kann. Ein Tabellenkalkulationsprogramm (das Text verarbeiten kann) ist natürlich wesentlich besser geeignet als ein reiner Text Editor. Das einzige Buch, das ich kenne, das DSP auf sehr einfache Art und Weise erklärt (in BASIC Programmen) ist:


    * http://www.dspguide.com/


    Das ganze Buch kann auf der Webseite kostenlos gelesen werden, ist aber in englisch. Auf deutsch weiss ich da leider nichts.

  • Heinz-M: was Du beschreibst, ist eine typische Anwendung für Programme wie z.B. Matlab. Dort stehen Dir Dinge wie die Fourier-Transformation schon als fertige Bausteine zur Verfügung. Den Umgang mit Matlab lernt heute jeder E-Technik-Student. Zu Matlab gibt es auch kostenfreie Alternativen im Open-Source-Bereich. Alternativ kommt man sicher mit einer Skriptsprache wie Python o.ä. und ein paar externen Mathe-Bibliotheken sicher sehr weit. In jedem Fall wird es aber notwendig sein, zum einen ein solides Verständnis für die mathematischen Zusammenhänge zu entwickeln und andererseits auch die Grundbegriffe des Programmierens zu lernen.