www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP MATLAB: Amplituden bei Specgram


Autor: Delete Me (skywalker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck doch einfach in die Quelldatei specgram.m

Cheers!

Autor: Delete Me (skywalker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh, die specgram.m hab ich mir schon angeschaut. Die Amplituden werden 
an dieser Stelle berechnet:
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?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ollz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Unit* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Zauberwort heißt 'colorbar'!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.