Zum Zwecke der Untersuchung wird die Audiodatei aus Aufgabe 2.3b [zur Aufgabe] herangezogen:
Audacity kann die Audiodatei einer schnellen Fourieranalyse (FFT - Fast Fourier Transform) unterziehen. Dabei werden einzelne Schwingungen abgelesen und in einem kartesischen Koordinatensystem dargestellt. Die unabhängige Größe ist dabei die Frequenz der Schwingungen, während auf der y-Achse die zugehörige Amplitude aufgetragen wird 3. Es wird somit dargestellt wie groß (y-Achse, Pegel in dB) der Einfluss der einzelnen Schwingung (x-Achse, Frequenz in Hz) bei der Erzeugung der Gesamtschwingung ist.
Die Fourieranalyse kann dabei in eine Textdatei exportiert werden, was in meinem Beispiel bereits eine Datei mit einer Größe von 187,8kB ergibt [zur Datei].
Im Koordinatensystem ergeben sich somit folgende Darstellungen:
Eine weitere Darstellungsmöglichkeit ist die des Sonogrammes, bei der die Amplitude der Schwingung mit einer bestimmten Frequenz (Y-Achse) zu einem bestimmten Zeitpunkt (X-Achse) durch einen Helligkeitswert dargestellt wird. Dunklere Stellen bedeuten dabei eine höhere Amplitude.
Die ersten Zeilen der Audiodatei sind, in der Form von Bytes:
Mit Hilfe des Graphik-Programmes GIMP wurde die Bedeutung der einzelnen Bytes eingetragen, wie sie aus der Spezifikation zu entnehmen ist6.
Der Aufbau scheint recht einfach und schlicht gehalten. Die von einem einfachen Text-Editor lesbaren ASCII-Wörter strukturieren gut und geben Halt bei der Bearbeitung. Gewöhnungsbedürftig ist allerdings die Schreibweise für die einzelnen Zahlenwerte. Weniger die Umrechnung der Hexadezimalzahl als die Ordnung der einzelnen Stellen:
So entspricht die Abfolge «10 B1 02 00» einer wirklichen Hexadezimalzahl von 2B110.
Zu finden unter:
http://www.zeitenblicke.historicum.net/2003/01/pias/pias.pdf
Zusammen mit einigem Wissen über den Aufbau einer Bitmap-Datei (wie unter anderem auch auf Wikipedia zu finden (Stand: 13.1.2009)) ist es nun möglich die Audiodatei in eine Bilddatei zu verwandeln. Die Datei wurde dabei von mir wieder mit dem Programm Okteta geöffnet und diesmal verändert:
Es wurden aber lediglich am Anfang einige Zeilen hinzugefügt und schließlich die Dateiendung für Benutzer ohne GNU/UNIX auf .bmp angepasst. Die hinzugekommenen Bytes sind (in hexadezimaler Schreibweise):
42 4D | ASCII: «BM», kurz für Bitmap. Erforderlich |
53 50 05 00 | Größe der Datei in Bytes, wird aber von den meisten Programmen ignoriert/td> |
00 00 00 00 | Noch nicht deklarierte Bytes für eventuelle Änderungen der Spezifikation |
36 00 00 00 | 54, Anzahl an Bytes nach dem die Daten der einzelnen Pixel beginnen |
28 00 00 00 | 40, Größe des nun folgenden Blockes |
6B 01 00 00 | 363, Breite der Bilddatei in Pixel |
40 01 00 00 | 320, Höhe der Bilddatei in Pixel |
01 00 | 1, Anzahl an Ebenen. Bitmap unterstützt momentan nur eine |
18 00 | 24, Farbtiefe des Bildes in Bit |
00 00 00 00 | Kompressionsart. Hier: Keine |
2C 50 05 00 | Größe der Bilddaten in Bytes |
13 0B 00 00 | x-Skalierung in Pixel/Meter |
13 0B 00 00 | y-Skalierung in Pixel/Meter |
00 00 00 00 | Art und Daten für eine eventuelle benutzerdefinierte Farbpalette |
00 00 00 00 | gehört noch zu obigem Punkt. Eventuell würde jetzt die Palette folgen |
Die Größe der Datei ließ sich einfach über den Bytezähler am linken Rand von Okteta herausfinden. Davon 54 Bytes (eben die abgebildeten Informationen) abgezogen ergab den Wert für den Punkt der Größe der Bilddaten. Selbigen geteilt durch drei wurde zur Anzahl der verfügbaren Pixel, da bei einer Farbtiefe von 24 Bit eben genau 3 Bytes pro Pixel benötigt werden. Versuche einer Aufteilung auf Höhe und Breite wurde schließlich mit den Werten 363 auf 320 Pixel beendet. Diese eingetragen war die Bitmap-Datei vollständig. Die Werte für die Skalierung wurden aus einer eigenen, anderen .bmp-Datei übernommen.
Somit ergibt sich dieses Bild:
In umgekehrter Art und Weise kann mit der Bilddatei meiner Bleistiftzeichnung [zur Aufgabe] verfahren werden:
Die weiter oben bereits genannten Merkmale des Headers einer .wav-Datei werden vorne an die Bytes des Bildes angefügt. Die Gesamtgröße der Datei ließ sich wieder auf gleicher Weise mit Hilfe von Okteta bestimmen. Die entsprechenden Untergrößen wurden ihren Anforderungen entsprechend errechnet. Um die sehr kurze Datei zu verlängern wurde nur ein Kanal (Mono) gewählt. Weitere Größen wurden berechnet bei Werten von ebenfalls 44100 Samples/Sekunde und gleicher Wortlänge von 16 Bits/Sample nach den Formeln:
DurchschnittlicheBytesProSekunde =
AnzahlKanäle * AnzahlSamplesProSekunde * AnzahlBitsProSample / 8
und
Blöckgröße =
AnzahlKanäle * AnzahlBitsProSample / 8
Da nur noch ein Kanal verwendet wurde, wurden diese Werte im Vergleich zur obigen Audiodatei halbiert.
Nach der Speicherung als .wav ergab sich dieser Klang: [zur Datei 86,2 kB]