INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Speicherbedarf 3D Anzeige



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.01.2008, 09:33
Beitrag #1

Xaran Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 200
Registriert seit: Jun 2006

LabView 2009
2006
en

80***
Deutschland
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.01.2008, 10:41
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Speicherbedarf 3D Anzeige
Hallo,

erst mal vorab, teilst du bei deiner Rechnung nicht einmal zu viel? Ich kann momentan nicht nachvollziehen, woher du das /2 hast. (Käme dann auf 33MB)

Und verstehe ich richtig, du zeigst doch 3 Spektren an (2x Original + Differenz)?

Dann zum 3D-Graph: Aus eigener leidvoller Erfahrung, das Element ist langsam und sehr speicherintensiv. Ich hatte mal Versuche mit großen Matrizen gemacht und mir die Erhöhung des Speicherbedarfs mit Windows-Taskmanager angeschaut, im Maximum verbraucht der 3D-Graph 6 oder 7 mal mehr Platz, als was du in der Matrix ausgerechnet hast, geht nach Anzeige wieder auf 3 oder 4 mal zurück.

Und dann musst du bei so großen 2D-Arrays natürlich auch noch höllisch aufpassen und das ganze LV-intern so speicherplatzsparend wie möglich programmieren, also keine Anzeige der 2D-Arrays auf FP, keine lokalen Kopien, immer schön Datenfluss-gesteuert programmieren, Speicher wiederverwenden, keine Operationen (wie Build Array), die eine Zerstückelung des Speichers nach sich ziehen usw usw usw

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2008, 11:03
Beitrag #3

Xaran Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 200
Registriert seit: Jun 2006

LabView 2009
2006
en

80***
Deutschland
Speicherbedarf 3D Anzeige
Das /2 kommt durch Nyquist: Man kann ja nur bis zur halben Abtastfrequenz arbeiten. 22kHz sollten für Musik aber auch ausreichenSmile

Ich lasse mir sogar 4 Spektren anzeigen. Wie du richtig meinst 2x Original, 1x Differenz und dann noch ein weiteres für Umschaltimpulse. Das kommt daher, dass ich von der Musikdatei nur auf einem Kanal Musik, auf dem anderen Kanal immer Umschaltimpulse aufzeiche. Aber selbst dann läge man ja noch gut unter 100Mb.

Zitat:Und dann musst du bei so großen 2D-Arrays natürlich auch noch höllisch aufpassen und das ganze LV-intern so speicherplatzsparend wie möglich programmieren, also keine Anzeige der 2D-Arrays auf FP, keine lokalen Kopien, immer schön Datenfluss-gesteuert programmieren, Speicher wiederverwenden, keine Operationen (wie Build Array), die eine Zerstückelung des Speichers nach sich ziehen usw usw usw
Das hatte ich auch schon häufiger gelesen. Ich hoffe, da nicht viel falsch gemacht zu haben (ich werde nachher mal versuchen, eine kleine lauffähige Version hier reinzustellen)

Zitat:Dann zum 3D-Graph: Aus eigener leidvoller Erfahrung, das Element ist langsam und sehr speicherintensiv. Ich hatte mal Versuche mit großen Matrizen gemacht und mir die Erhöhung des Speicherbedarfs mit Windows-Taskmanager angeschaut, im Maximum verbraucht der 3D-Graph 6 oder 7 mal mehr Platz, als was du in der Matrix ausgerechnet hast, geht nach Anzeige wieder auf 3 oder 4 mal zurück.
Doof das.Sad Gibt es eine Faustregel, ab welcher Matrix-Größe die 3D Darstellung ungünstig wird? Ist eine solche Anzeige in MatLab besser realisiert? Zur Not würde ich dann vielleicht umsatteln müssen. Wie gesagt, zur Not.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2008, 11:27
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Speicherbedarf 3D Anzeige
Autsch, 4 Spektren, dann schluckt der 3D-Graph mglw. bis zu 700MB.

Das kannst du übrigens bei so großen Arrays über den Task-Manager von WinXP oder Win2k super verfolgen und somit auch Analyse betreiben, wieviele Kopien mglw. angelegt werden.

Zur Frage, ob Matlab besser ist, keine Ahnung.

Einzige Idee noch: Daten vor der Darstellung im 3D-Graphen resamplen und reduzieren.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2008, 13:01
Beitrag #5

Xaran Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 200
Registriert seit: Jun 2006

LabView 2009
2006
en

80***
Deutschland
Speicherbedarf 3D Anzeige
Jop, bei dem Taskmanager sieht man die exorbitante Nutzung des Speichers recht schnell. Allerdings frisst es auch schon unglaublich viel Speicher, allein die insgesamt 10Mb an .wav Dateien einzulesen... :-

Zitat:Einzige Idee noch: Daten vor der Darstellung im 3D-Graphen resamplen und reduzieren.

Davor wollte ich mich eigentlich drücken, aber mir wird wohl nix anderes übrig bleiben...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: