WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wave-Daten von DirectX nach Matlab

 

Dr.Nick
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2011, 18:11     Titel: Wave-Daten von DirectX nach Matlab
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine Matlab-Funktion kompiliert und möchte sie jetzt in C# einsetzen. Dafür sollen mit DirectX wave-Daten von einem Mikrofon aufgenommen werden und an die Matlab-Funktion zur Analyse weitergegeben werden.
Problematisch wird dies jedoch dadurch, dass DirectX und Matlab scheinbar völlig verschiedene Arten von waves haben. Der Wertebereich in DirectX geht meinen Tests zu Folge auf jeden Fall bis über 3E38, während er in Matlab laut http://www.mathworks.com/help/techdoc/ref/wavread.html für 16-Bit waves von -32768 bis +32767 geht.

Wie ist es möglich die wave-Daten vom DirectX- ins Matlab-Format zu konvertieren?

Viele Grüße und schonmal vielen Dank
Nick
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.01.2011, 21:52     Titel: Re: Wave-Daten von DirectX nach Matlab
  Antworten mit Zitat      
Hallo Dr.Nick,

3e38 klingt nach 96-Bit Wav-Daten. Alle Achtung. Benötigst Du eine so große Auflösung? Wenn nicht, könntest Du ja die Töne mit niedrigerer Auflösung aufzeichnen.
Ansonsten kann man die Auflösung durch einfaches Dividieren verkleinern.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.Nick
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2011, 12:01     Titel:
  Antworten mit Zitat      
Hi,

da hast du wohl recht. Ich bin momentan auch etwas verwirrt. Eigentlich zeichne ich als 16 Bit auf. Dabei wird dann scheinbar jedes Byte in ein Float gespeichert. Das heißt, ein Sample befindet sich in zwei so großen Floats. Momentan überlege ich auch noch, wie ich die beiden floats, die ein einzelnes Sample speichern, in einem zusammenfasse. Das müsste ja eigentlich möglich sein, weil 1 float = 4 Byte und 1 Sample = 2 Byte sind. Für Tips hierzu wäre ich auch sehr dankbar, bin aber wahrscheinlich in einem DirectX-Forum besser aufgehoben...

Wenn dieser Schritt gemacht ist, müsste das mit dem Dividieren eigentlich ohne Probleme klappen. Danke für die Antwort!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.