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

fft einer Wav Datei

 

Donpulio
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2010, 12:18     Titel: fft einer Wav Datei
  Antworten mit Zitat      
Hallo
Aufgabe:
Ich arbeite mich in vorhandenen Code ein und bin mir nicht sicher, was an einigen Stellen genau gemacht wird.
Es soll eine Vibration an einer Maschine gemessen werden;dazu wird ein Sensorsignal direkt per Soundkarte als wav file aufgenommen ( Spannung über Zeit).
Diese wav wird nun Fourier-transformiert um dann im Frequenzspektrum angezeigt werden zu können.(Pegel(je nach Normierung in dB) über Frequenz).

Problem:
Nachfolgend poste ich den Code und schreibe meine Fragen unter jede fragwürdige Zeile:

Code:

%die   wave    ist ein  132300x1 Vektor, also 44100Hz*3s=132300  [SampleFrequenz*Aufnahmedauer]; nur reelle Werte

fwave=fft(wave);
 

Wenn ich nun die fwave, an dieser Stelle, plotte ergibt sich ein Bild in der komplexen Ebene, müssten es denn nicht reelle Werte sein?
Code:

phase=angle(fwave(1:length(fwave),1));
fwave=2*((abs( fwave(1:length(fwave),1) )/length(wave)).^2);
 

Warum wird das hier so gemacht ? Ist das ein Normierungsstandard ?

Ich weiss, dass es sich hier nicht direkt um spezifische Matlab Probleme, sondern um eher mathematisch-technische Probleme handelt. Jedoch bin ich sehr dankbar über jede Antwort! Vielleicht hat sich der ein oder andere ja schon mit ähnlichen Problemen rumgeschlagen.
Grüße.
Private Nachricht senden Benutzer-Profile anzeigen


Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 11.06.2010, 12:24     Titel:
  Antworten mit Zitat      
hallo,

Zitat:

Wenn ich nun die fwave, an dieser Stelle, plotte ergibt sich ein Bild in der komplexen Ebene, müssten es denn nicht reelle Werte sein?


dein Spektrum ist nur dann reel wenn dein Zeitsignal reel und gerade ist,
ansonsten ist es imaginärt, also musst du beim ploten abs(fwave) benutzen.

gruss
Private Nachricht senden Benutzer-Profile anzeigen
 
Donpulio
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2010, 14:18     Titel:
  Antworten mit Zitat      
Was meinst du genau mit "wenn das Zeitsignal gerade ist" ??
Also in dem Vektor tauchen nur reelle, aber ungerade Zahlen auf (Bsp: erste Zeile: 40.535711473034276 ) usw.
Es hat also etwas mit der Verarbeitung in Matlab zu tun, dass die fft auf einmal in der komplexen Ebene dargestellt wird ?!

Ist es denn dann wirklich mathematisch korrekt, wenn ich einfach mit dem abs() meiner Fouriertransformierten weiterrechne ??
-> ich habe das gerade mal probiert und das Spektrum abs(fwave) wieder invers transformiert, also ifft(abs(fwave)) , und es kommt was anderes, als meine ursprüngliche wave dabei heraus. Es dürfte also nicht die richtige Darstellung sein, oder ?

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 11.06.2010, 14:29     Titel:
  Antworten mit Zitat      
also mit gerade meine ich symmetrisch, das wäre zum beispiel ein gerades signal: x=[9 5 2 1 0 1 2 5 9].

aber ich muss mich korregieren fft von einem Signal ist immer komplex.
weil in der fourier trasformation steckt eine multiplikation mit exp(i*....)
also (cos+i*sin), und da dein signal reel ist (nur reele zahlen) und die weden dann mit (cos+i*sin) multipliziert, also kommen komplexe zahlen raus. guck dir die formel der fourier trans. an

und was ist in der realität ein komplexes signal ? das sind 2 reelle signale die getrennt übertragen werden. gehören aber trotzdem zusammen.

was ich damit sagen möchte, wenn du jetzt dein spektrum untersuchen willst, dann musst du entweder reelteil, und imaginärteil getrennt beobachten oder Betrag und Phase getrennt beobachten.
und mit abs(fwave) untersuchst du halt die amplitude, beide aufeinmal geht nicht...

gruss
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 - 2024 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.