Hallo zusammen,
ich habe gerade folgendes Problem:
ich möchte mittels FFT Signale optischer Sensoren untersuchen. Die
Signale sind im wesentlichen weißes Rauschen und können ggf. kleine
schmalbandige Störanteile enthalten. Die Daten entsprechen nach
Umrechnung der Eingangsspannung des ADC bzw. nach weiterer Umrechnung
dem Strom der Sensoren. Die FFT trägt also als Ergebnis - sofern ich das
Richtig verstehe - auf der Ordinate die Einheit des Eingangssignals,
also V bzw. A.
Jetzt fangen die Schwierigkeiten an:
-Bei einem Leistungsspektrum kann ich mir ja noch vorstellen -> Verteilt
man Leistung über immer mehr Bins (kleines deltaF) sinkt der Rauschpegel
in der FFT. Allerdings ist das Spektrum ja kein Leistungsspektrum
sondern ein Spannungsspektrum bzw. Stromspektrum und dort ist das für
mich nicht mehr so anschaulich
-Die Skalierung passt, füttere ich mit einem Sinus komme ich auf die
entsprechenden Amplituden. Jetzt möchte ich von der FFT des Rauschens
zurück auf die Rauschamplitude. Dafür summiere ich die einzelnen Bins
quadratisch (sie sind ja nicht korreliert). Ich komme dabei in meinem
Beispiel (+-1V weißes, gleichverteiltes Raucshen (nicht Gausss!) auf
0.81V und nicht auf die 1V.
Fragen: Wieso komme ich rechnerisch nicht auf die 1V nach Summation der
Bins und wie komme ich rechnerisch auf eine Rauschspannungsdichte, die
dann unabhängig ist von der FFT-Auflösung. (mir ist unklar wie ich auf
Sqrt(Hz) komme - wieso dividiere ich nicht nur die Binwidth sonderne
deren Wurzel?)
Ich habe im Anhang mal die Bilder. Jeweils ein mal Rohsignal, Histogram
und FFT. Für nur Rauschen und für Rauschen + Sinusträger mit Amplitude 1
Christoph K. schrieb:> ich möchte mittels FFT Signale optischer Sensoren untersuchen. Die> Signale sind im wesentlichen weißes Rauschen und können ggf. kleine> schmalbandige Störanteile enthalten. Die Daten entsprechen nach> Umrechnung der Eingangsspannung des ADC bzw. nach weiterer Umrechnung> dem Strom der Sensoren. Die FFT trägt also als Ergebnis - sofern ich das> Richtig verstehe - auf der Ordinate die Einheit des Eingangssignals,> also V bzw. A.
Zeigen deine Beispiele denn schon echte Messsignale oder sind das nur
simulierte Voruntersuchungen?
Christoph K. schrieb:> -Die Skalierung passt, füttere ich mit einem Sinus komme ich auf die> entsprechenden Amplituden.
Aber nur, wenn du den Leckeffekt vernachlässigen kannst. Was in deinem
Zahlenbeispiel der Fall zu sein scheint. Die exakten Zahlen lassen sich
zwar nicht so ohne weiteres auslesen, aber der Sinus scheint eine
Frequenz von 10Hz zu haben und die Aufzeichnungsdauer beträgt
1/(0,01Hz)=100s. (Ich hab mir jetzt einfach mal die einfachste
SI-Einheit an deine Skalen drangedacht. Da die Skalierung deiner Graphen
keine Einheiten hat könnten es natürlich auch ebensogut 10kHz und 100ms
sein).
Wenn du Signalfrequenz und Aufzeichnungsdauer exakt so gewählt hst, gibt
es keinen Leakage-Effekt: Das Aufzeichnungsdauer beträgt exakt 1000
Perioden des Sinus, im Spektrum sieht man eine nicht verbreiterte Linie
mit der korrekten Höhe. Wenn die Verhältnisse nicht so günstig liegen,
bekommst du aufgrund des Leckeffekts auch Verfälschungen beim Sinus
(Verbreiterung und falsche Amplitude) und du brauchst eine passende
Fensterfunktion, um die korrekte Linienhöhe zu erhalten. Wähle zum
Vergleich mal 10,005 Hz für deinen Sinus (oder 10,005kHz, wenn deine
Frequenzachse in kHz skaliert ist).
Sehe ich es richtig, dass du bisher ohne Fensterfunktion arbeitest?
https://de.wikipedia.org/wiki/FensterfunktionChristoph K. schrieb:> Ich komme dabei in meinem> Beispiel (+-1V weißes, gleichverteiltes Raucshen (nicht Gausss!) auf> 0.81V und nicht auf die 1V.
Hast du denn mal die Gegenkontrolle gemacht und im Zeitbereich den
Effektivwert über alle gesampelten Rauschwerte berechnet? Kommen da
genau die erwarteten 1V raus?
Christoph K. schrieb:> mir ist unklar wie ich auf> Sqrt(Hz) komme - wieso dividiere ich nicht nur die Binwidth sonderne> deren Wurzel?
Wenn du die Leistung gleichmäßig auf Frequenzintervalle verteilst, dann
kann nicht gleichzeitig die Spannung genauso verteilt sein. Bei der
Umrechnung von Spannung auf Leistung musst du quadrieren. (Das machst du
in deiner Berechnung des Effektivwerts ja auch). Aus der Einheit
V/sqrt(Hz) wird durch das Quadrieren V^2/Hz, und über diese gleichmäßige
Verteilung (die nur noch die Angabe eines Arbeitswiderstands bräuchte um
eine gleichmäßige Leistungsverteilung zu sein) mittelst du.
Christoph K. schrieb:> wie komme ich rechnerisch auf eine Rauschspannungsdichte, die> dann unabhängig ist von der FFT-Auflösung
vielleicht hilft dir das Stichwort "processing gain fft".
https://kluedo.ub.uni-kl.de/frontdoor/deliver/index/docId/4293/file/exact_fft_measurements.pdf
Achim S. schrieb:> Zeigen deine Beispiele denn schon echte Messsignale oder sind das nur> simulierte Voruntersuchungen?
Hallo Achim,
ja das siehst du genau richtig. Die Messdaten wollte ich nicht gleich
verwenden sondern erstmal mein grundlegendes Verständnis soweit
festigen, dass die Ergebnisse auch passen. Das geht ja meistens am
Besten mit einem aufs nötigste reduzierten Beispiel.
Achim S. schrieb:> Aber nur, wenn du den Leckeffekt vernachlässigen kannst. Was in deinem> Zahlenbeispiel der Fall zu sein scheint. Die exakten Zahlen lassen sich> zwar nicht so ohne weiteres auslesen, aber der Sinus scheint eine> Frequenz von 10Hz zu haben und die Aufzeichnungsdauer beträgt> 1/(0,01Hz)=100s. (Ich hab mir jetzt einfach mal die einfachste> SI-Einheit an deine Skalen drangedacht. Da die Skalierung deiner Graphen> keine Einheiten hat könnten es natürlich auch ebensogut 10kHz und 100ms> sein).>> Wenn du Signalfrequenz und Aufzeichnungsdauer exakt so gewählt hst, gibt> es keinen Leakage-Effekt: Das Aufzeichnungsdauer beträgt exakt 1000> Perioden des Sinus, im Spektrum sieht man eine nicht verbreiterte Linie> mit der korrekten Höhe. Wenn die Verhältnisse nicht so günstig liegen,> bekommst du aufgrund des Leckeffekts auch Verfälschungen beim Sinus> (Verbreiterung und falsche Amplitude) und du brauchst eine passende> Fensterfunktion, um die korrekte Linienhöhe zu erhalten. Wähle zum> Vergleich mal 10,005 Hz für deinen Sinus (oder 10,005kHz, wenn deine> Frequenzachse in kHz skaliert ist).>> Sehe ich es richtig, dass du bisher ohne Fensterfunktion arbeitest?> https://de.wikipedia.org/wiki/Fensterfunktion
Ja, alle deine Annahmen sind korrekt. Im Beispiel sind es 10Hz @
Amplitude 1. Das Rauschen Hat ebenfalls eine Amplitude von 1 und ist
gleichverteilt.
Die Analyse zielt auf Messungen von Rauschvorgängen bei
Entladungslampen. Da sind keine periodischen Signale zu erwarten
weswegen ich auf eine Fensterung gezielt verzichte. Den Sinus habe ich
nur verwendet um grundlegende Skalierungsfehler ausschließen zu können.
Zur gezielten Messungen von periodischen Störern habe ich die Option ein
Flat-Top Window zu verwenden.
Vielleicht nochmal zu meinem Vorgehen:
ich rechne:
Sqrt(Sum(Bin^2))
Also quadratische addition der einzelnen Bins. Mit der Argumentation,
dass die Bins ja unkorreliert sind. Ab jetzt ist mir unklar wie das
Ergebnis zu interpretieren ist. Dass da kein Peak-Peak rauskommt ist mir
klar -> aber was genau kommt denn raus? Ist das RMS? Oder die Varianz?
Die Einheit ist ja immernoch Volt -> Sqrt(Volt^2), die Ordinate der FFT
hat ja Volt.
Achim S. schrieb:> Hast du denn mal die Gegenkontrolle gemacht und im Zeitbereich den> Effektivwert über alle gesampelten Rauschwerte berechnet? Kommen da> genau die erwarteten 1V raus?
Nein, eben weil mir nicht klar ist was ich überhaupt erwarte. Mein ziel
ist es Peak-Peak des Rauschens aus der FFT zu ermitteln. Im
Rechenbeispiel ist Peak-Peak ja 1V. Da komme ich aber auch mit *Sqrt(2)
nicht hin
Christoph K. schrieb:> Mein ziel> ist es Peak-Peak des Rauschens aus der FFT zu ermitteln.
den "echten" Peak-Peak Wert bekommst du imho nur im Zeitbereich, indem
du dir den Maximalwert und Minimalwert merkst und die Differenz bildest.
Aus der FFT kannst du ihn vielleicht berechnen, indem du das
Originalsignal rekonsturierst und dann die Differenz zwischen größtem
und kleinstem Sample berechnest.
Aber wenn du über die FFT integrierst, dann erhältst du dem RMS-Wert
(oder einen skalierten RMS-Wert, wenn du zuvor das Spektrum entsprechend
skaliert hast). Und von diesem skalierten RMS-Wert kannst du dann unter
Annahme eines bestimmten Rauschverhaltens auf einen "wahrscheinlichen"
Peak-Peak-Wert zurückrechnen. Typisch rechnet man z.B. den RMS-Wert *
6,6. Das ergibt bei Gaußschen Rauschen den Spannungsbereich, der nur für
0,1% der Zeit verlassen wird.
Christoph K. schrieb:> Im> Rechenbeispiel ist Peak-Peak ja 1V.
Weil die noise-Funktion deiner Software wahrscheinlich zufällige Werte
bildet und bei +1 und -1 hart abschneidet. Ich würde nicht erwarten,
dass du aus dem Spektrum einfach durch Integration auf diese harten
Abschneidewerte zurückrechnen kannst. Aber ich würde erwarten, dass die
Integration über das Spektrum dir den korrekten RMS-Wert liefern sollte.
Also wie schon vorgeschlagen: berechne doch mal im Zeitbereich den
RMS-Wert deiner Samples (also quadrieren, alles aufsummieren, durch die
Zahl der Samples dividieren, und dann wieder die Wurzel ziehen). Kommen
da deine 0,81V raus?
Hab es eben mal selbst mit LabVIEW probiert. Wenn ich dort als Quelle
"uniform white noise" wähle und den RMS-Wert berechne, dann erhalte ich
0,58V (also dein Wert von 0,81V geteilt durch sqrt(2)). Du hast das
Spektrum also wohl so skaliert, dass für den Sinus die Amplitude
angezeigt wird.
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