skalierte Darstellung einer (Audio-)Wellenform



  • Hallo zusammen,

    Kann mir jemand sagen, wie im Allgemeinen Wellenformen über die Zeitachse/x-Achse skaliert werden?
    Ich gebe bisher einfach nur jedes n-te Sample aus und nehme an für die Darstellung nimmt man einen Mittelwert der Samples im Bereich [x...x+n]. Aber welcher Mittelwert wird dafür verwendet?

    Im folgenden Link ist oben das Ergebnis meines Programmes zu sehen und unten das Ergebnis einer Software, der ich zutraue, ein richtiges Ergebnis zu liefern. 😉

    http://www.abload.de/img/waveformx1jes.png

    Extrapunkte für die Person, die den Song errät 😃 - PS: es ist die linke Tonspur.



  • Das Stichwort ist Downsampling. Google das mal.



  • Danke erstmal, aber zu Downsampling finde ich im Grunde folgende Information:
    Erst Tiefpassfilter um Aliasing zu vermeiden und dann jeden n-ten Wert nehmen.

    Ich kann mir aber nicht vorstellen, dass das die Lösung ist. Auf das gegebene Beispiel angewendet würde das (wenn ich als Ergebnis wie in der Grafik nur noch 800 Werte haben will) heißen:
    Vorher: 11642800 Samples abgetastet mit 44100 Hz
    Nachher: 800 Samples abgetastet mit (44100 / 14554) Hz = 3 Hz
    Ich würde also alle Frequenzen oberhalb von 3 Hz durch den Tiefpassfilter "abschneiden".

    Es geht (meiner Meinung nach) bei der grafischen Darstellung in einem Audiobearbeitungsprogramm ja nicht darum, das skalierte Signal ohne Aliasing darzustellen, sondern darum, die Grundlautstärke zum aktuellen Zeitpunkt annähernd richtig darzustellen.

    Also vielleicht doch eine Art Mittelwertbildung (jeweils einzeln für positive und für negative Werte)?



  • elscorcho schrieb:

    Also vielleicht doch eine Art Mittelwertbildung (jeweils einzeln für positive und für negative Werte)?

    Das scheint die (im Nachhinein dann doch sehr simple) Lösung zu sein und führt zu folgender grafischen Darstellung:

    http://www.abload.de/img/waveform206ana.png

    Also, falls jemand mal ein ähnliches Problem haben sollte:
    Ich habe einfach den ganz gewöhnlichen Mittelwert (arithmetisches Mittel) genutzt. Allerdings muss man ihn dabei natürlich für positive und negative Werte einzeln berechnen, da sich die Werte sonst gegenseitig stark auslöschen. Für Sinustöne und hohe Skalierung des Signals erhält man dann nur noch die Nullfunktion.


Anmelden zum Antworten