Hallo,
ich bin mir gerade nicht sicher ob das Thema in das entsprechende Gebiet
passt, aber ich probiere es einfach mal. Ich benutue bei meinem
Oszilloskop die FFT-Funktion, um die Frequenzanteile eines Signals im
Spektrum darstellen zu lassen. Die Länge des zu betrachtenden Signals
beträgt 100 µs bei einer Speichertiefe von 1 MS und einer Abtastrate von
10 GS/s. Somit sollte ich doch bei einer FFT-Analyse (bei
Berücksichtigung der Nyquist Frequenz) ziemlich genau 500.000 Werte
erhalten:
0.5 * 10 GS/s = 5 GS/s -> d.h. 5 GS/s * 0.0001 = 500 kS
Wenn ich mir das allerdings im ASCII-Format abspeichere, erhalte ich nur
ein wenig mehr als die hälfte der Werte.
Ich habe probiert mich ein wenig in den FFT-Algorithmus des
Oszilloskopes einzulesen, aber das ist mir doch ein wenig zu komplex.
Kann mir vielleicht jemand sagen, wie ich auf die Anzahl meiner
gespeicherten Werte komme?
Viele Grüße!
hyXamp schrieb:> ich bin mir gerade nicht sicher ob das Thema in das entsprechende Gebiet> passt
FFT (in diesem Zusammenhang) ist eher Signalverarbeitung, daher mal
ins DSP-Forum verschoben.
Okay vielen Dank.
Ich glaube allerdings, dass sich die Frage bereits erübrigt hat. Hatte
ganz vergessen das die Anzahl der Messwerte einer Zweierpotenz
entsprechen müssen. Somit kommt ich dann bei 2^16 +1 auch auf das
korrekte Ergebnis.
Entschuldige für die Störung :D
Ach na wo wir schon bei FFT sind, hätte ich doch noch eine kleine frage.
Die Anzahl der Samples muss eine duale Basis haben. Wenn ich mir das
nochmal in Matlab anschaue, sieht das in etwa so aus:
L = Länge des Signals (als Beispiel: 1000)
NFFT = Nächste Zweierpotenz der Signallänge
y = Funktion
Fs = Abtastrate
Aus der Matlab-Hilfedatei:
NFFT = 2^nextpow2(L)
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
Soweit verstehe ich es eigentlich. Glaube ich.. Zunächst wird die
nächste Zweierpotenz von der Anzahl meiner Abtastwerte ermittelt. Somit
wär NFFT = 1024, da der Exponent 10 beträgt. Im nächsten Schritt wird
das Signal mit der Anzahl der Werte Abgetastet, eine FFT durchgeführt
und auf die Länge des Signals normiert. Anschließend wird die Abtastrate
halbiert (Nyquist), die Anzahl der Abtastwerte halbiert (da 1024 zu hoch
ist) und gleichmäßig verteilt. Aber mich irritiert die 1 dort ein wenig.
Warum wird nochmal mit 1 addiert? Somit hat doch die Anzahl der
Abtastwerte keine duale Basis mehr, sondern 2^9 + 1 ?
Oder verstehe ich irgendwas falsch?
Gruß
Hm, so richtig schlau bin ich jetzt aber noch nicht draus geworden. Die
FFT läuft doch darauf hinaus, dass die Abtastwerte aufgeteilt werden in
Werten mit geradem und ungeradem Index. Wenn die Anzahl meiner
Abtastwerte einer Potenz von zwei entsprechen, habe ich doch immer
gleich viele gerade sowie ungerade Indexwerte. So wie es meines
Erachtens auch sein sollte. Daher schließt sich mir die Addition mit der
1 immer noch nicht so recht.
hyXamp schrieb:> Daher schließt sich mir die Addition mit der> 1 immer noch nicht so recht.
Wenn man aus einem Signal mit N Samples das Spektrum mit der DFT
berechnet, dann hat das Spektrum auch N Samples. Wenn das Signal im
Zeitbereich rein reel ist, dann bekommt man ein symmetrisches Spektrum:
Y(n) = Y(N-n)
Es sind also die Punkte Y(0) .. Y(N/2) interessant, die Punkte Y(N/2+1)
.. Y(N-1) sind die gespiegelten Werte von Y(1) .. Y(N/2) und werden bei
der graphischen Darstellung meistens nicht dargestellt.
Die Anzahl der interessanten Punkte ist deshalb N/2+1.
Ah super, okay jetzt habe ich es verstanden. Vielen Dank!
Aber dann kann ich ja direkt noch eine Frage hinterherschieben ;)
Wie gesagt, beschäftige mich aktuell mit der FFT-Funktion und probiere
ein wenig genauer zu Verstehen, was da genau passiert.
Wenn ich mir ein Spektrum über die vollständige, verfügbare Bandbreite
anzeigen lasse, kann man er erkennen, dass die tieferen Frequenzen (also
ungefähr bis zur halben Bandbreite) angehoben sind. Beginnend bei der
Startfrequenz mit extrem hohen Pegel und alle weiteren Frequenzen fallen
exponentiell ab. Das Rauschen weist die gleiche Charakteristik auf.
Woran liegt denn das nun wieder? Ich vermute das könnte irgendwas mit
der Fensterung zu tun haben? Habe kein Fenster drinne, wird also dann
vermutlich automatisch ein Rechteck sein. Aber wirkt sich das
tatsächlich so extrem aus?
hyXamp schrieb:> Ich vermute das könnte irgendwas mit> der Fensterung zu tun haben? Habe kein Fenster drinne, wird also dann> vermutlich automatisch ein Rechteck sein. Aber wirkt sich das> tatsächlich so extrem aus?
Probiers doch einfach mal aus mit unterschiedlichen Fenster-Funktionen;
dann siehst du, wie es sich auswirkt.
Klar, war eigentlich auch mein erster Gedanke. Kann ich aber erst
nächste Woche machen ;) Also mache ich dann auch, aber vielleicht kann
ja jetzt bereits schon jemand sagen, ob die Fensterung mit der Anhebung
von Spektrallinien im tieferen Frequenzbereich etwas zu tun hat?
hyXamp schrieb:> aber vielleicht kann> ja jetzt bereits schon jemand sagen, ob die Fensterung mit der Anhebung> von Spektrallinien im tieferen Frequenzbereich etwas zu tun hat?
Die Fensterfunktion wirkt sich hauptsächlich auf die Pegel im Spektrum
zwischen den einzelnen Spektrallinien auf, also dort, wo eigentlich kein
Signal ist oder nur sehr schwache Signale vorhanden sind.
Ohne Fensterfunktion bzw. mit einem Rechteck-Fenster werden die
einzelnen Linien nach unten hin relativ breit, wenn die Signalperiode
nicht genau ganzzahlig ins Fenster passt. Durch eine geeignete
Fensterfunktion wird diesr Effekt reduziert.
Die Höhe der Spektrallinien wird durch die Fenster-Funktion kaum
beeinflusst, die Änderung liegt so in der Größenordnung von ca. +/- 1
dB.
Mh, okay. Das werde ich dann nächste Woche mal ausprobieren. Ich habe
auch eine weile nach einem passendem Bild gesucht, aber nichts in der
Art gefunden. Wie lässt sich dann erklären, dass das Spektrum am Anfang
ungefähr mit 1/f abfällt? Vielleicht finde ich noch ein passenden Foto,
welches meine Frage vielleicht etwas genauer beschreiben kann.
Naja ist jetzt zwar kein Foto eines real aufgenommen Spektrums, aber so
in etwa verhält es sich bei mir genauso, nur das eben ein paar
Spektrallinien mit dabei sind. Die tieferen Frequenzen sind in der
Amplitude genau wie das Rauschen angehoben. Hab das allerdings schon bei
mehreren Oszilloskopen in der FFT-Funktion gesehen und die waren alles
andere als billig!
http://harmonicresolution.com/GDnoise44k1fCDsampler.png
Hat seine Quelle rein in der Analogtechnik. Halbleiter sind halt so
veranlagt. Im oberen Frequenzbereichsende des Gerätes kann das dann aber
auch das Antialiasing-Filter bewirken.
Mit weißem Rauschen hat man bei jeder Fensterfunktion einen aalglatten
Frequenzgang.
Es gibt auch FFT mit nicht 2er-Potenzen. LTspice hat so einen
Algorithmus drinnen.
Jetzt muss ich doch noch mal zur FFT zurück. Eine Sache geht mir da
nicht aus dem Kopf:
Ich habe ein Signal, welches ich über einen Zeitraum von 100 µs
betrachte. Diese Signal wird mit 10 GS/s abgetastet usw.. hatten ich ja
oben schon beschrieben. Ich erhalte also 500.000 Samples. Weil die
FFT-Funktion des Oszilloskops mit der basis 2 rechnet, erhalte ich
letztendlich nurnoch 2^18+1 Samples.
Ich verstehe aber gerade nicht ganz, wie sich daraus dann ein Spektrum
bis 5 GHz berechnen lässt.. D.h. kann man denn mit der geringeren Anzahl
von Samples auch nach der FFT die Zeitreihe wieder herstellen? Ist das
Signal durch die FFT nicht unterabgetastet?
Vermute die Lösung ist recht einfach, hab da nur anscheinend gerade
irgendwie einen Denkfehler.
Gruß
Die Frequenzauflösung ist dann 10GHz/2^18 .
Gemeinhin als "bin" genannt. Alles was zwischen den diskreten
Frequenzlinien der sich ergebenden Auflösung liegt, wird durch die
Fensterung umliegenden Frequenzlinien anteilsmäßig* zugeordnet.
* bestimmt eben durch die Fensterfunktion.
Ergänzend kann man noch Subsampling machen, also z.B. die effektive
Bandbreite auf 1GHz und damit die Frequenzauflösung 10x. Mit dem
Subsampling kann man dann auch die Amplitudenauflösung erhöhen, denn die
üblichen Scopes haben nur 8-Bit Wandler. Das würde in diesem Beispiel
dann ca. 1,7 Bits bringen. Es wäre dann also effektiv ein 9,7
Bit-Wandler.
hyXamp schrieb:> Ich verstehe aber gerade nicht ganz, wie sich daraus dann ein Spektrum> bis 5 GHz berechnen lässt.
Die obere Grenzfrequenz im Spektrum ist imm 1/(2 * Abtastrate),
unabhängig von der Anzahl der Samples.
Die Anzahl der Samples wirkt sich nur auf die Auflösung im
Frequenzbereich aus, so wie Abdul das beschrieben hat.