WaveTools

Die Wellen, die ich rief (2)

In Ausgabe 01/2003 haben wir ausführlich Einsatzgebiete der WaveTools, insbesondere der Programme wfct, wflt, wmix, und wplot, vorgestellt. Jetzt werfen wir einen Blick auf die restlichen Tools und zeigen deren Anwendungsmöglichkeiten.

Vom Addieren und Multiplizieren

Bei unserer Arbeit mit dem Programm wfct haben wir zwar schon unterschiedliche Wellenformen (Sinus, Dreieck, Rechteck, Sägezahn und Rauschen) generiert, aber eine Option haben wir gänzlich außer Acht gelassen: Dies ist der Parameter -p, der es ermöglicht, die Phasenverschiebung für die Ausgabe der generierten Welle zu definieren. Um eine Phasenverschiebung zu verstehen, rufen wir uns eine einfache Formel aus unserem Trigonometrie-Unterricht ins Gedächtnis zurück: Wir wissen, dass sin(x + ½PI)=cos(x) ist. Wenn also

wfct 440Hz 10ms

eine Sinus-Welle erzeugt, generieren Sie mit

wfct -p90deg 440Hz 10ms

eine Cosinus-Welle (beachten Sie, dass ½PI gerade 90° entspricht – ½PI=1.570796 können Sie aber auch im Bogenmaß über -p1.570796rad definieren). Wer sich noch an eines der Additionstheoreme, genauer

½(sin a + sin b)=sin(½(a+b))×cos(½(a-b))

erinnert, der kann dies nun grafisch überprüfen. Dafür ersetzen Sie a durch 400Hz und b durch 480Hz und erzeugen die beiden Terme links und rechts vom Gleichheitszeichen als wav-Dateien. Der erste Term wird über

(wfct 400Hz 30ms; wfct 480Hz 30ms) | wmix -s - -

erzeugt. Beachten Sie, dass die Option -s durch die Anzahl der Eingabedaten dividiert. Für den zweiten Term brauchen wir ½(a+b)=440Hz und ½(a-b)=40Hz. Somit wird dieser über

(wfct 440Hz 30ms; wfct 20Hz 30ms) | wmix -m - -

generiert. Der Parameter -m multipliziert. Einen Vergleich zeigen die Abbildungen 1 und 2, die in der Tat identisch aussehen.

Abbildung 1: (wfct 400Hz 30ms; wfct 480Hz 30ms) | wmix -s - - | wplot | display
Abbildung 2: (wfct 440Hz 30ms; wfct -p90deg 40Hz 30ms) | wmix -m - - | wplot | display

Was steckt drin?

Das Programm winf zeigt Header-Information von wav-Datei an. Ohne weitere Optionen werden nur die Länge, die Sampling-Frequenz und die Auflösung (in Bits) der Datei ausgegeben. Das kann schon recht interessant sein, denn wenn Sie sich tatsächlich mal Ihren Lieblingsheuler aus dem Netz gezogen haben, gibt Ihnen winf Auskunft über die Qualität der Aufnahme. Gerade wav-Dateien werden wegen ihres hohen Speicherbedarfs von eher minderer Qualität sein, also eine niedrigere Abtastfrequenz oder kleinere Auflösung haben. Nehmen wir uns als Beispiel unsere Cosinus-Welle und holen uns über

wfct -p90deg 400Hz 1s -ocosinus.wav; winf cosinus.wav

die Informationen

cosinus.wav : time 0:01.00 s (  11025 values), sampling 11025 Hz  8 bits

auf den Schirm. Es überrascht nicht weiter, dass die Standardwerte die Abtastrate der Frequenz auf 11025 Hz setzen, wenn die Option -s nicht angegeben wird. Der fehlende Parameter -b führt zur Standardauflösung von 8 Bits. Interessanter ist jedoch die Option -s des Programms winf, die ein wenig Statistik präsentiert. Die Ausgabe liefert neben Maximal- und Minimalwerten auch die Lautstärke der Datei, welche einen Prozentwert in Relation zur Sinus-Welle ausgibt. Hätten Sie gewusst, dass die Überlagerung der Sinus- und Cosinus-Welle noch 99,4% der Lautstärke der Sinus-Welle hat, aber schon die Überlagerung von sin(x) mit sin(x+¾PI) nur noch 76,5% (vgl. auch Listing 1) der Lautstärke des Sinus' besitzt? Warum das so ist, können Sie sich klarmachen, indem Sie die beiden Wellen betrachten.

Listing 1

Die

winf

-Ausgabe

volker@maus: (wfct 440Hz 1s; wfct -p90deg 440Hz 1s) | wmix - - | winf -s
-standard-input-    : time 0:01.00 s (  11025 values), sampling 11025 Hz  8 bits
  Amplitude (x[n])  : min = -1.00000  mid = -0.00931  max = +0.98438
  Step (x[n+1]-x[n]): min = -0.25781  mid = +0.15814  max = +0.25781
  Zero Values       : n =     880  n/sec =   880.0
  Extreme Values    : n =     880  n/sec =   880.0
  Standard Deviation (Volume): s = 0.70295 = 99.4 %
volker@maus: (wfct 440Hz 1s; wfct -p135deg 440Hz 1s) | wmix - - | winf -s
-standard-input-    : time 0:01.00 s (  11025 values), sampling 11025 Hz  8 bits
  Amplitude (x[n])  : min = -0.77344  mid = -0.00779  max = +0.75781
  Step (x[n+1]-x[n]): min = -0.20312  mid = +0.12194  max = +0.19531
  Zero Values       : n =     880  n/sec =   880.0
  Extreme Values    : n =     880  n/sec =   880.0
  Standard Deviation (Volume): s = 0.54108 = 76.5 %

Ebenfalls interessant ist das Ergebnis der Überlagerung von Wellen fast gleicher Frequenz. Sie interferieren schließlich (in Abbildung 3 heben sich eine 440-Hz- und eine 439-Hz-Schwingung einmal in der Sekunde fast auf), weshalb ihre Summe auch nicht die Lautstärke der Sinus-Welle erreicht.

(wfct 440Hz 1s; wfct 439Hz 1s) | wmix - - | winf

liefert 70,5% der Sinus-Lautstärke.

Abbildung 3: (wfct 440Hz 1s; wfct 439Hz 1s) | wmix - - | wplot | display

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Wav-Dateien mit den Wave-Tools erzeugen
    Alle Welt spricht MP3, wozu sich noch mit wav-Dateien beschäftigen? Letztlich steckt hinter jedem MP3 auch nur eine Art Wellenbeschreibung, und Wellen sind vielfältig einsetzbar. Was man mit wav-Dateien zusammen mit den WaveTools alles erleben kann, zeigt dieser Artikel.
Kommentare

Infos zur Publikation

LU 08/2017: VIRTUALISIERUNG

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 1 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...
Speicherplatzfreigabe mit "sudo apt-get clean" scheitert
Siegfried Böttcher, 16.07.2017 21:16, 2 Antworten
Speicherplatzfreigabe mit "sudo apt-get clean" scheitert, weil aus mir unerfindlichen Gründen im...
Möchte Zattoo vom PC am Fernsehgerät sehen können
Ilona Nikoui, 15.07.2017 18:25, 3 Antworten
Hallo, ich habe mein Fernsehgerät, ein LG 26LE3300 mit dem PC verbunden per HDMI Kabel, wie empfo...
TUXEDO und Hardwareauswahl , fragwürdig / Kritik
Josef Federl, 11.07.2017 12:44, 6 Antworten
Auf tuxedocomputers.com steht: "....Aber wir können auch Linux und das so, dass "einfach" alles...
HP PHOTOSMART 5525 nimmt die schwarze original patrone nicht
Erich Mecl, 28.06.2017 18:10, 1 Antworten
Hallo Leute! Mein HP Photosmart 5525 Drucker erkennt die original schwarze Patrone 364, nimmt s...