Eine Frage an die Signalverarbeitungs-Cracks: Ich möchte das Rauschen von Verstärkerschaltungen wie z.B. OPVs messen. Dafür will ich die Rohdaten eines USB Oszilloskops (Bitscope Micro) in Octave einlesen und dort eine FFT machen, um nach etwas Rechnen z.B. zu der Aussage zu gelangen: Bei 300 Hz hat der Mikrofonvorverstärker eine Noise Figure von X dB. Mit dem Bitscope Micro kann ich aber nur ca. 3000 Samplewerte hintereinander aufnehmen. Die Samplefrequenz kann ich dabei von wenigen kHz bis 20 MHz ändern - aber immer nur ca. 3000 Werte dieser Taktung hintereinander in eine Datei schreiben. Auch wenn ich im kHz Bereich sample, dann beträgt die Analogbandbreite aber immer volle 20 MHz! Ich muss mich also an Herrn Nyquist erinnern. Hat der zu messende Verstärker eine Bandbreite von 100 oder 200 kHz, dann bin ich mit z.B. 1 MHz Samplingfrequenz auf der sicheren Seite. Damit erreiche ich in der folgenden FFT aber nur eine Auflösung von 1MHz/3000 also ~300 Hz. Das ist mir zu grob - ich will das feiner haben. Lasse ich das Schreiben der Rohdaten in die Datei einfach etwas länger laufen, dann landen in der .csv Datei nicht nur ein Durchgang mit 3000 Werten, sondern mehrere Durchgänge mit Pausen dazwischen (undefiniert, Sekundenbereich). Hier kommt die Frage: Wenn ich 3000 Werte 100 mal hintereinander aufnehme und in eine FFT packe, also 3000*100=300.000 Werte, dann hätte ich rechnerisch in der FFT die 100 fache Auflösung - aber ist das zulässig? Bildet mir das so generierte Spektrum noch die Realität ab? Oder verhäcksel ich mir irgendwie das Spektrum? Das gesampelte Signal ist natürlich kein rein weißes Rauschen (dann würde mein Vorhaben vermutlich gehen?), sondern sicherlich irgendwie gefärbtes Rauschen. Ja ich weiß, ich könnte eine Soundkarte nehmen - will ich aber nicht. Ich will bis DC runter messen können. Und ja, ich kann mir einen Antialiasing-Tiefpass bauen und bei kleinerer Samplingfrequenz arbeiten. Frage ist, ob ich mir diesen Aufwand sparen kann. Grüße, Bernhard
Wenn du zwischendrin Pausen hast, hast du m.E. Pech gehabt mit der Auflösung. Je nach zusätzlichem Wissen über das Signal kann man sich vielleicht etwas cleveres überlegen, ich denke bei einem rauschartigen Signal stehen die Chancen aber schlecht. Einfach die Stücke aneinanderhängen und zusammen transformieren geht definitiv nicht. Im Endeffekt ist das die Energie-Zeit-Unschärfe, die ist ziemlich fundamental und wird entsprechend schwer auszutricksen sein. ;)
Im Prinzip geht das schon, Du musst halt immer jeweils fenstern und die Ergebnisse überlagern. Allerdings hast Du damit das Auflösungproblem noch nicht wirklioch gelöst. Du brauchst schon eine genügend lange UND schnelle Abtastung. Am Besten ist es, wenn man sicherstellen kann, dass die Stücke reproduzierbare Daten haben und sie passend aneinander legt. Das wird aber wohl bei Dir nicht funktionieren. Vielleicht kann man das auch komplett sampeln und aufzeichnen und in Excel machen. Excel hat nämlich eine FFT eingebaut. Ist ein wenig umständlich zu bedienen aber funktioniert. Besser ist es allerdings, die einzelnden Frequenzbänder zu messen: Wenn Du das nur mit jeweils 3000 samples machen kannst, musst Du die Frequenzbereiche aufteilen und langsamer sampeln, allerdings zuvor auch passend filtern, weil Du sonst verfälschte Ergebnisse erhälst. Du könntest z.B. bei 10facher Überabtastung jeweils den Filter auf 1/20 der Abtastfrequenz stellen, also als Beispiel: 3000 Hz, 300Hz Filter und kämst dann mit der FFT runter bis auf 1 Hz. Dann mit 30kHz Abtastund und 3kHz Filter Auflösung mit 10Hz für die Mitten und dann mit 300kHz und 30kHz Filter die Messung für die Höhen. Sowas wird real auch indirekt gemacht, indem parallel gefiltert und gesampelt wird z.B. mit einer Kaskade aus Halbbandfiltern.
Jürgen S. schrieb: > Im Prinzip geht das schon, Du musst halt immer jeweils fenstern und die > Ergebnisse überlagern. Allerdings hast Du damit das Auflösungproblem > noch nicht wirklioch gelöst. Oder in anderen Worten, im Prinzip geht es nicht, denn das trägt zur Lösung des Problems leider gar nichts bei. ;p > Wenn Du das nur mit jeweils 3000 samples machen kannst, musst Du die > Frequenzbereiche aufteilen und langsamer sampeln, allerdings zuvor auch > passend filtern, weil Du sonst verfälschte Ergebnisse erhälst. Das geht, ja.
Bernhard schrieb: > Ich möchte das Rauschen von Verstärkerschaltungen wie z.B. OPVs messen. > Dafür will ich die Rohdaten eines USB Oszilloskops einlesen und > dort eine FFT machen, Die Wahrscheinlichkeit ist gross, das Dein Billig-Oszi mehr rauscht als Deine zu testende Schaltung. Ausserdem ist eine FFT m.E. nicht unbedingt geeignet, um Rauschen zu messen.
:
Bearbeitet durch User
Sven B. schrieb: > Jürgen S. schrieb: >> Im Prinzip geht das schon, Du musst halt immer jeweils fenstern und die >> Ergebnisse überlagern. Allerdings hast Du damit das Auflösungproblem >> noch nicht wirklioch gelöst. > Oder in anderen Worten, im Prinzip geht es nicht, denn das trägt zur > Lösung des Problems leider gar nichts bei. ;p > >> Wenn Du das nur mit jeweils 3000 samples machen kannst, musst Du die >> Frequenzbereiche aufteilen und langsamer sampeln, allerdings zuvor auch >> passend filtern, weil Du sonst verfälschte Ergebnisse erhälst. > Das geht, ja. Wie man es nimmt. Wenn man immer auf derselben Frequenz misst und stückelt, erwischt man durchaus ja die verschiedensten Anteile zu unterschiedlichen Zeiten, also vor allem auch die Wellenanteile der niederen Frequenzen. Damit werden die (durch Überlagerung) durchaus genauer gemessen. Überlagerung ist auch das Mittel bei der Rauschmessung mit FFT: Harald W. schrieb: > Ausserdem ist eine FFT m.E. nicht > unbedingt geeignet, um Rauschen zu messen. Bei einer ausreichend langen Überlagerung = Akumulation werden die Frequenzanteile auch entsprechend dem Signalgemisch - unabhängig vom Zufall - abgebildet.
Naja, aber schau dir zum Beispiel mal den untersten Bin der FFT an. Der geht immer von 0 bis 2/T und alles zwischendrin an Frequenzen ist da reingemittelt. Das kannst du nicht trennen, außer du hast wirklich eine zusammenhängende Kette an Messwerten die länger ist als T.
Sven B. schrieb: > außer du hast wirklich eine > zusammenhängende Kette an Messwerten die länger ist als T. ... das war die Überlegung dahinter. Die gebündelte Information einer Stützstelle im output der FFT repräsentiert den Anteil der Frequenzen mit einer gleichförmigen Überlappung mit den Nachbarbereichen. Mit einer erhöhten Anzahl von FFTs / Abschnitten erreicht man Dasselbe(?), wie mit einer längeren Periode: Eine Verschärfung der Repräsentanz hin zu den tatsächlichen Frequenzen. Das steigert die Auflösung. Allerding muss Ich nun hinzufügen, daß man dann auch die Frequenzen shiften müsste, um wieder zur gleichen Überdeckung zu kommen - wie ich gerade sehe. Es führt also kein Weg darum herum, die unterschiedlichen Abschnitte mit unterschiedlichen Abtastraten zu scannen.
Du kannst eine zweidimensionale Repräsentation des Spektrums basteln (Spectrogram). Dabei kannst du, wenn du möchtest, jeden einzelnen Abschnitt mit Nullen auffüllen um die Frequenzauflösung zu erhöhen (vor dem Auffüllen die gewählte Fensterfunktion anwenden, nicht danach). Dann könntest du mal nachsehen, was es für Methoden zur numerischen Auswertung von Spectrogrammen gibt. Normalerweise schaut man sich die ja nur an. Meine Lösungsansätze wären allerdings: - Wenn der Chef es bezahlt: Vernünftige Messgeräte kaufen/mieten - Wenn nicht: Mir statt der FFT andere Transformationen, z.B. Wavelet-Transformationen, anzusehen ob die bessere Eigenschaften bei den gegebenen Messwerten haben. Nebenbei: > Auch wenn ich im kHz Bereich sample, dann beträgt die Analogbandbreite > aber immer volle 20 MHz! Die könntest ein Filter vorschalten wenn du gar nicht die 20 MHz brauchst (Audio?).
Mit Nullen auffüllen erhöht aber nur die scheinbare Frequenzauflösung, genauere Messwerte bekommst du dadurch nicht. Die werden einfach verschmiert.
Sven B. schrieb > Einfach die Stücke > aneinanderhängen und zusammen transformieren geht definitiv nicht. Ich habe es befürchtet! Aber danke für die Bestätigung. Jürgen S. schrieb > Vielleicht kann man das auch komplett sampeln und aufzeichnen und in > Excel machen. Excel hat nämlich eine FFT eingebaut. Ist ein wenig > umständlich zu bedienen aber funktioniert. Ich bin halt mit der Hardware auf die ca. 3000 Stück Samples begrenzt. FFT geht in Excel, das stimmt, ich nehme Octave, das ist Freeware und geht ziemlich gut. > Besser ist es allerdings, die einzelnden Frequenzbänder zu messen Ja, ich werde das so machen müssen. Harald Wilhelms schrieb > Die Wahrscheinlichkeit ist gross, das Dein Billig-Oszi mehr rauscht > als Deine zu testende Schaltung. Ausserdem ist eine FFT m.E. nicht > unbedingt geeignet, um Rauschen zu messen. Vor allem sind es nur 8 Bit vertikal... meine Idee war die Verstärkung der Schaltung hoch genug zu machen, damit die 8 Bit zumindest ausgenutzt werden und über etliche Durchgänge zu mitteln. Was würdest du anstatt der FFT machen? Ich möchte eine Noise Figure in Abhängigkeit der Frequenz ermitteln, das wüsste ich nur mit FFT zu machen. Jay schrieb > - Wenn der Chef es bezahlt: Vernünftige Messgeräte kaufen/mieten Fällt aus, das ist alles Privatbastelei :-) > statt der FFT andere Transformationen, z.B. Wavelet-Transformationen Muss ich mich mal einlesen, mit Wavelet hatte ich bisher noch gar nichts zu tun. > Die könntest ein Filter vorschalten wenn du gar nicht die 20 MHz > brauchst (Audio?). Genau das werde ich wohl machen müssen.
Wenn du eine Noise Figure messen willst, sind 8 bit vertikal schon total übertrieben. 2 bit würden genügen. Also in dem Punkt keine Sorge ;) Problematisch wird vielleicht eher tatsächlich genug Samples zusammenzumitteln dass das Spektrum hinreichend glatt wird.
Harald W. schrieb: > Bernhard schrieb: > >> Was würdest du anstatt der FFT machen? > > DFT? FFT ist ein Algorithmus der die DFT berechnet ...
Sven B. schrieb: > Harald W. schrieb: >> Bernhard schrieb: >> >>> Was würdest du anstatt der FFT machen? >> >> DFT? > > FFT ist ein Algorithmus der die DFT berechnet ... Nein, FFT ist eine "Krücke", die mal "erfunden" wurde, um mit der begrenzten Rechenleistung der Rechner von vor fünfzig Jahren trotzdem in überschaubarer Zeit ein Ergebnis zu bekommen. Die Schwächen dieser Berechnungsmethode hat man da in Kauf genommen.
:
Bearbeitet durch User
Harald W. schrieb: >> FFT ist ein Algorithmus der die DFT berechnet ... > > Nein, FFT ist eine "Krücke", die mal "erfunden" wurde, um mit > der begrenzten Rechenleistung der Rechner von vor fünfzig Jahren > trotzdem in überschaubarer Zeit ein Ergebnis zu bekommen. Die > Schwächen dieser Berechnungsmethode hat man da in Kauf genommen. Huch, was? Nein. Die FFT ist mathematisch exakt. Jedes andere Verfahren führt im Rahmen numerischer Fehler auf dasselbe Ergebnis. Oder welche Fehler führt die FFT deiner Meinung nach ein?
:
Bearbeitet durch User
Sven B. schrieb: > Oder welche Fehler führt die FFT deiner Meinung nach ein? Die FFT berücksichtigt nur ganzzahlige Vielfache einer Grundfrequenz. Gerade beim Rauschen gibt es aber auch Frequenzen "dazwischen".
Harald W. schrieb: > Nein, FFT ist eine "Krücke", die mal "erfunden" wurde, um mit > der begrenzten Rechenleistung der Rechner von Das muss hier unbedingt klargestellt werden: Die FFT ist nichts anderes als eine effiziente Implementation der DFT. Die FFT ist kein Sonderfall oder sonst irgendeine "ungenau" Version der DFT! Analog zu (stabilen) Sortieralgorithmen: Mit welchen Algorithmus Du etwas sortierst, spielt keine Rolle. Das Ergebnis ist gleich, unabhängig davon, ob der Algorithmus langsam oder schnell ist. Die FFT ist sozusagen das "Quick-Sort" der DFT. Die DFT ist:
N ist dabei die Anzahl der Samples, von der Du die DFT rechnen möchtest. Den Index k kannst Du eigentlich beliebig wählen, da die DFT aber periodisch ist, wiederholt sich das X[i] alle k Elemente. Die Periode von k ist auch N, die Anzahl der Samples Deiner Einganssequenz! D.h, wenn Du von 1000 Samples die DFT rechnest, bekommst Du ein Spektrum mit 1000 Werten raus. Diese DFT kannst Du nun exakt so wie oben hingeschrieben ausrechnen. Für kleine N, z.B. 10 oder so, ist es eine sehr lehrreiche Übung das von Hand zu machen. Und die FFT berechnet genau diese DFT, nur nicht auf den naiven Weg, sondern durch cleveres Ausnutzen bestimmter Zusammenhänge mit deutlich weniger Multiplikationen. Dafür hat die FFT die Einschränkung, dass sie eben nur für 2er-Potenzen funktioniert. Das ist aber schon alles. Um es nochmals ganz deutlich zu sagen: FFT und DFT sind im Ergebnis exakt gleich! FFT ist eine DFT-Implementierung!
Harald W. schrieb: > Die FFT berücksichtigt nur ganzzahlige Vielfache einer Grundfrequenz. > Gerade beim Rauschen gibt es aber auch Frequenzen "dazwischen". Wie mein Vorredner schon gesagt hat ist das nicht von Belang; diese "Frequenzen dazwischen" gibt es zwar, aber die Information ist schon in den ursprünglichen Messwerten nicht enthalten. Dass die FFT diese nicht zu Tage fördern kann ist keine Beschränkung der FFT, sondern vielmehr einfach die Energie-Zeit-Unschärfe der QM.
Harald W. schrieb: > Die FFT berücksichtigt nur ganzzahlige Vielfache einer Grundfrequenz. > Gerade beim Rauschen gibt es aber auch Frequenzen "dazwischen". Das ist nur eine Frage der Auflösung. Kleines Gedankenexperiment: a.) Ein Sinus mit 1Hz wird eine Sekunde lang mit 10Hz gesampelt. Die Auflösung des AD-Wandler sei 8 Bit. D.h. das gibt 10 Werte mit je 8 Bit. b.) Ein Sinus mit 1,00001 Hz wird auch mit 8 Bit und 10Hz eine Sekunde lang gesampelt. Also auch 10 Messwerte mit 10 Bits Nun die Frage: Siehst Du einen Unterschied in den beiden Messwert-Sätzen? Ich hab's jetzt nicht nachgerechnet, aber die Antwort dürfte Nein sein. Nächster Teil des Gedankenexperiments: Was verändert sich, wenn Du diese beiden Signale nicht nur eine Sekunde lang misst bzw. beobachtest, sondern 10 Stunden? Als Ergebnis hättest Du zwei Datensätze mit jeweils 360000 Messungen. Dann würdest Du (u.a.) nach 10 Stunden sehen, dass im Fall b sich die Sinusschwingung um ca. 4 Samples gegenüber Fall a verschoben hat.
Ein interessantes Gedankenexperiment, aber ich denke die Vertikalauflösung hat damit nur indirekt zu tun. Selbst wenn du beliebige Vertikalauflösung hast wird die Frequenzunschärfe bestehen bleiben; es gibt einfach unendlich viele Möglichkeiten, das beobachtete Signal als Gemisch von Grundfrequenzen darzustellen, die innerhalb des Bins liegen der nach der FFT die Energie enthält. Es kommt wirklich nur darauf an, wie groß der betrachtete Zeitraum ist. Wenn du tatsächlich weißt, dass das Signal echt monochromatisch ist, kannst du wahrscheinlich mit genug Vertikalauflösung etwas mehr rauslesen, das kann sein. Ist in der Praxis aber ohnehin nie der Fall.
:
Bearbeitet durch User
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.