Speicherbedarf 3D Anzeige
Moin Moin!
In meinem Programm lese ich zwei 30 sekündige .wav Datei ein, wähle aus diesen Datei einen Ausschnitt von denen ich Spektrogramme der Dateien an sich (nur ein Kanal) und der Differenz der Dateien berechnen lasse.
Diese Sepktrogramme werden dann durch einen 3D-Graph dargestellt.
Die Frequenzauslösung und die Schrittweite in Samples lassen sich zur Laufzeit des Programm angeben, sind aber eigentlich minimal bei 10Hz und 10Samples. Alllerdings komme ich häufiger in ein Arbeitsspeicherproblem: Angeblich sei nicht genug Speicher für die Darstellung vorhanden. Wenn ich mir jetzt aber ein Extrembeispiel mal anschaue, dürfte dies eigentlich nicht der Fall sein:
Wahl der Länge eines Ausschnitts: 10000 Samples
Frequenzauflösung: 10Hz
Schrittweite: 10samples
Abtastrate bei der .wav-Datei: 44,1kHz
double-Zahl: 8byte
=> Spektrogramm-Matrix hat die Größe (10000Samples/10)*(44100/2/10)*8byte = 1000*2205*8byte = 17640000byte ~ 16,8Mb
Selbst bei 4 Matrizen ist das bei 1Gb Arbeitsspeicher recht lächerlich.
Woran kann es liegen, dass die Daten trotzdem viel zu groß werden?
Schöne Grüße
|