Verfasst am: 20.08.2015, 16:13
Titel: Rückgabewert des spectrogram in Amplitude umrechnen
Hallo,
ich habe ein frequenz-veränderliches Signal, von dem ich eine STFT machen möchte.
Die Spectrogram Funktion liefert mir die Werte der STFT.
Mein Problem ist, dass die Spec. Funktion die Amplituden als dB/Hz liefert und nicht in der Einheit, die das Quellsignal hat (wie es die einfache FFT machen würde).
Messen mache ich das mit der Datatip Funktion (im Figure Fenster) und der Code unten, sollte bis zu einer Spitzenamplitude von 2 verlaufen, erreicht aber ~42.
Dazu habe ich nun schon einiges gelesen, da ich mit dem Problem nicht alleine bin, jedoch konnte ich keine Lösung finden, die funktioniert hat.
Probiert habe ich z.B. den 10*log10(x), der sich dahinter verbergen soll, wieder herauszurechnen. Leider ohne Erfolg. Weiterhin habe ich die spectrum.periodogram Funktion ausprobiert, womit ich dann die Daten zurück bekomme. Auch das liefert leider nicht die korrekte Amplitude.
Ich hoffe einer von euch kann mich auf den richtigen Weg bringen.
Vielen Dank für die Mühe!
Code zum Testen:
Code:
t = 0:1e-3:2;
x = chirp(t,100,1,200,'quadratic').*t;
[s,f,t] = spectrogram(x,128,120,128,1e3);
figure image(t, f, abs(s));
colorbar;
Super! Du hast die Frage nach dem Leben, dem Universum und dem ganzen Rest mit Hilfe deiner Daten dargestellt! *PerAnhalterDurchDieGalaxis*
Spaß beiseite. Was hat denn mit der Umrechnung nach dB nicht funktioniert? Hast du Leistungs oder Feldgrößen? Bei Feldgrößen muss es 20*log10(x) heißen.
Hi,
na ich bin nie auf den Korrekten Amplitudenverlauf gekommen. Für einen Punkt hat es gestimmt, jedoch im Verlauf dann überhaupt nicht mehr.
Habs mit dem http://www.mathworks.com/matlabcent.....ith-matlab-implementation hinbekommen. Da ist die STFT selbst programmiert, sodass ich den Rückgabewert der FFT-Funktion verwenden konnte, der genau die Größe hat, die ich gerne hätte.
Vergiss bitte nicht den Status deines Threads auf "Beantwortet" zu stellen.
Einstellungen und Berechtigungen
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
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.