Wenn ich in MATLAB die specgram-Funktion nutze und da beispielsweise ein Audiosignal reinschiebe, erhalte ich bekanntermaßen ein Spektrogramm mit schönen bunten Farben. Dass das logarithmische Werte sind ist auch klar. Nur wie kommen diese zustande? Mir ist schon klar, dass die spektrale Leistungsdichten darstellen. Ich weiß einfach nicht was genau diese Funktion macht bzw. wie sie diese Amplitudenwerte berechnet.
Mhh, die specgram.m hab ich mir schon angeschaut. Die Amplituden werden an dieser Stelle berechnet:
1 | imagesc([0 1/f(2)],f,20*log10(abs(y)+eps));axis xy; colormap(jet) |
Dass das 20 mal der dekadische Logarithmus ist, wusste ich auch vorher schon. Bezieht sich also nicht auf eine Leistung (sonst wäre es 10 mal). Mir gehts darum zu verstehen, wie ich, wenn ich eine bestimmte Farbe im Spektrum sehe, daraus einen Rückschluss auf den konkreten Amplitudenwert im gesamten Signal ziehen kann bzw. was ich mir unter dieser Farbe in der "realen" Welt vorstellen kann. Ist es tatsächlich so, dass einfach nur die FFT vom Signal berechnet wird und die Amplituden logarithmisch bestimmten Farbwerten zugeordnet werden? Wenn dem so ist, kann man anhand der Farben zwar die Unterschiede zwischen einzelnen Amplituden beurteilen, aber keinen konkreten Rückschluss auf das reale (physikalische) Signal ziehen. Oder fehlt mir da noch was in der Vorstellung? Und werden die Farben dann so zugeordnet, dass der höchste Wert dunkelrot und der niedrigste Wert dunkelblau ist? Ich weiß, dass imagesc() die Amplitudenwerte auf die Länge der colormap skaliert, also müsste der größte Amplitudenwert dem höchsten Farbindex und der niedrigste Amplitudenwert dem niedrigsten Farbindex zugeordnet werden?
Hallo skywalker, mich beschäftigt momentan genau dieses Problem. Hast Du mittlerweile eine Lösung für das Schließen auf die konkreten Amplitudenwerte gefunden? Wie bist Du dabei vorgegangen? Vielen Dank für Deine Hilfe, Gruß Peter
Die Werte werden einfach auf die Colormap amgebildet. Wie steht alles in der Domumentation zu imagesc und colormap. Also ist das gute alte RTFM angesagt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.