Hallo,
ich habe hier mal eine Frage bei der ich mir nicht ganz sicher bin die
richtige Lösung gefunden zu haben:
Ich habe hier ein Signal (genauer: einen Puls mit Vor- und
Nachschwingen) im Rohformat aus einem Textronix TDS220 ausgelesen. Das
Oszilloskop hat eine Bandbreite von 100 MHz und 2.5 kPoints Speicher.
Meine Datendatei umfasst demzufolge 2500 Werte. Als Zeitauflösung war
100ns pro DIV eingestellt.
Die gesamte Abtastzeit beträgt demnach ja (bei 10 DIVs) 10*100ns=1000ns
In dieser Zeit wurden 2500 Punkte abgetastet, ein Abtastintervall ist
demnach 4*10^-10s lang (1000ns/2500). Die Abtastfrequenz wiederum ist ja
der Kehrwert des Abtastintervalls. In diesem Fall also 2.500.000.000 Hz
(besser 2,5 GHz).
Ist diese hohe Abtastfrequenz realistisch? Ich weiß zwar, dass DSOs mit
dem Trick der "Zeitdehnung" arbeiten, aber 2,5 GHz erscheint mir schon
ziemlich hoch.
es gibt Tricks, wie die Abtastfrequenz beim Auslesen periodischer
Signale künstlich erhöht werden kann. Mein TDS420 kann auch ich glaube
maximal 5GSamples durch solche Verfahren.
Ok, also wenn das stimmt habe ich wohl einen Fehler in meinem
Matlab-Code. Hintergrund: ich möchte gerne die Bandbreite des
aufgezeichneten Pulses wermitteln. Also nehme ich meine Messwerte und
berechne die Fourier-Transformierte.
Die Frequenzachse geht dabei ja von 0 bis zur Abtastfrequenz von 2,5
GHz. Jeweils in 1 MHz-Schritten (dF=fa/N).
Abtastpunkte: N=2500;
Abtastintervall: T=4*10^-10s;
Abtastfrequenz: fa=1/T = 2,5*10^9 Hz
Frequenzänderung: dF=fa/N = 1000000 Hz
Irgendwie liegt mein Peak aber bei 1,25 GHz auf der Frequenzachse, ich
würde ihn aber so um die 3 MHz erwarten. Habe ich da irgendetwas
übersehen? Oder muss man die Skalierung der Frequenzachse anders
berechnen?
Das TDS220 kann maximal 1GS/s und hat auch nicht den von Kevin
beschriebenen Equivalent-Mode, um periodische Signale höher abzutasten.
Bei 250ns/div entspricht jeder der 2500 Punkte einer Aufzeichnung gerade
einem Sample in einem Zeitraster von 1ns.
Bei 100ns/div werden nur noch 1000 Punkte gemessen und die Messkurve per
(sin x)/x-Interpolation auf 2500 Punkte "gestreckt".
> Irgendwie liegt mein Peak aber bei 1,25 GHz auf der Frequenzachse, ich> würde ihn aber so um die 3 MHz erwarten.
Da ist sicher zusätzlich in der Auswertung noch etwas faul. Könnten die
1,25GHz, die nach obiger Korrektur zu 0,5GHz würden, irgendetwas mit der
Abtastfrequenz zu tun haben?
yalu schrieb:
> Das TDS220 kann maximal 1GS/s und hat auch nicht den von Kevin> beschriebenen Equivalent-Mode, um periodische Signale höher abzutasten.
Das ist korrekt.
>> Bei 100ns/div werden nur noch 1000 Punkte gemessen und die Messkurve per> (sin x)/x-Interpolation auf 2500 Punkte "gestreckt".
Das kann so sein, muß aber nicht.
Catherine hat uns hier bisher nicht verraten, wie sie den Trigger für
ihr Gerät gewählt hat.
Bei single shot Trigger wäre Deine Vermutung wohl zutreffend.
Bei repetitive Trigger mittelt das Scope wohl eher (zumindest tun dies
die TDS 2xx die ich hier habe).
Ich finde aber jetzt im Manual auch keine Details, die das verwendete
Verfahren im Detail erläutern.
Andrew Taylor schrieb:
>> Bei 100ns/div werden nur noch 1000 Punkte gemessen und die Messkurve per>> (sin x)/x-Interpolation auf 2500 Punkte "gestreckt".>> Das kann so sein, muß aber nicht.> Catherine hat uns hier bisher nicht verraten, wie sie den Trigger für> ihr Gerät gewählt hat.> Bei single shot Trigger wäre Deine Vermutung wohl zutreffend.
Wieso sollte die Interpolation vom Trigger-Modus abhängen?
> Bei repetitive Trigger mittelt das Scope wohl eher (zumindest tun dies> die TDS 2xx die ich hier habe).
Triggermodus, Interpolation und Mittelung sind drei völlig voneinander
unabhängige Dinge: Interpoliert wird dann, wenn die Abtastrate nicht
mehr ausreicht, um die dabei entstehenden Lücken durch berechnete
Messpunkte zu füllen. Gemittelt wird dann, wenn man den Average-Mode
aktiviert hat. Diese Mittelung erfolgt über die jeweils einander
entsprechenden Samples in nacheinander aufgenommenen Waveforms. Dadurch
entstehen aber, im Gegensatz zur Interpolation, keine zusätzlichen
Messpunkte. Beides, Interpolation und Mittelung, ist sowohl im Single-
Shot- als auch im repetitive Trigger möglich.
> Ich finde aber jetzt im Manual auch keine Details, die das verwendete> Verfahren im Detail erläutern.
Hab' gerade das Manual runtergeladen und S. 67 aufgeschlagen:
The maximum sample rate is 1 GS/s. At 100 ns and faster settings, this
sample rate does not acquire 2,500 points. In this case, a Digital
Signal Processor interpolates points between the sampled points to
make a full 2,500 point waveform record.
Und S. 96:
Horizontal
Sample Rate Range 50 S/s to 1 GS/s
Waveform Interpolation (sin x)/x
Hallo,
also die Pulse wurden mittels repetitivem Trigger dargestellt, Trigger
dabei auf einen konstanten Anregungspuls - der von mir auszuwertende
Puls ist die Reaktion auf diese Anregung. Zeitauflösung stand auf 100ns,
also tritt die Passage auf dem Handbuch ja zu. Das Problem sind weniger
die Messwerte selbst, sondern deren Interpretation.
Mein Abtastintervall bei einer eingestellten Zeitbasis von 100ns
berechnet sich doch wie wie folgt: 100ns * 10 DIVs = 1000ns = 1us auf
dem gesamten Bildschirm. Innerhalb dieser 1us werden dann 2500 Punkte
gemessen. Also alle 0,4 ns einer. Damit beträgt mein Abtastintervall
doch 0,4ns und die Abtastfrequenz 1/0,4ns und somit 2,5 GHz.
Eine andere Lösung des Problems welche mir zur Verfügung steht geht von
einem Abtastintervall von 2,5us aus bei einer Zeitbasis von 250ns. Macht
eine Abtastfrequenz von 400 MHz.
Wo ich absoult keinen Ansatz zu finde ist die Skalierung der
Frequenzachse nach der FFT. Ich habe meine 2500 Messwerte aus dem
Oszilloskop die ich Fouriertransformiere. Zu jedem Messwert gehört doch
dann die Frequenz 1/t (t des jeweiligen Messwerts) oder?
Grundsätzlich ist die sin(x)/x-Interpolation bezüglich des Spektrums
harmlos. Theoretisch. Praktisch muss sie über -Unendlich bis +Unendlich
gerechnet werden, was natürlich kein Oszilloskop kann. Tektronix mag zum
Ausgleich zusätzlich eine Fensterfunktion benutzt haben. Ich würde daher
dazu tendieren die interpolierten Zwischenwerte wegzuwerfen. Zumindest
würde ich mal beides zum Vergleich FFTen. Das Spektrum kann man bei der
FFT sowieso "aufblasen" (*) um eine Glättung zu erhalten, also warum
sich mit interpolierten Werten rumschlagen?
Unabhängig davon, mit
dt: Zeitintervall zwischen zwei (realen oder interpolierten) Messwerten
f_abtast: f_abtast = 1 / dt
N: Anzahl der Werte über die die FFT berechnet wurde (*)
ergibt sich eine Frequenzskala in Schritten von df = N / dt = N *
f_abtast
(*) Die Anzahl der Werte über die man die FFT berechnet ist nicht
notwendigerweise die Anzahl der Messwerte (egal ob real gemessene oder
interpolierte). Man kann Nullen anfügen um so eine höhere spektrale
Auflösung zu bekommen, was einem glatteren Spektrum entspricht.
Danke Hannes, an das Zero-Padding hatte ich gar nicht gedacht. Habe die
2500 Messwerte jetzt auf 2^14 Werte für die FFT mit Nullen erweitert.
Dazu habe ich aber noch einen schweren Fehler bei meiner FFT gemacht,
ich habe einen FFT_Shift durchgeführt aber dies nicht bei meiner
Frequenzskalierung berücksichtigt. Durch das Shift befindet sich doch
der "Nullpunkt" der Frequenzskalierung genau in der Mitte der Achse...
Catherine Haug schrieb:
> Dazu habe ich aber noch einen schweren Fehler bei meiner FFT gemacht,> ich habe einen FFT_Shift durchgeführt aber dies nicht bei meiner> Frequenzskalierung berücksichtigt. Durch das Shift befindet sich doch> der "Nullpunkt" der Frequenzskalierung genau in der Mitte der Achse...
Was OK ist. Das ist nur eine Darstellungsfrage. Viel lustiger sind die
gängigen Fehler.
Zum Beispiel wird gerne ein Wert bei der Konvertierung des
FFT-Ergebnisses in ein Spektrum verschlampt. Da erwischt es entweder den
Gleichanteil (f = 0) oder die höchste Frequenz, da vergessen wird, dass
eine N-Punkt FFT zwar N Werte liefert diese aber ein Spektrum aus N / 2
+ 1 Frequenzen ergeben, nicht etwa N/2 Frequenzen.
Ähnlich oft wird die Magnitude nicht richtig skaliert. Die Energie des
Signals steckt, mit Ausnahme des Gleichanteils und der höchsten
Frequenz, jeweils zur Hälfte in den positiven und negativen Frequenzen.
Bildet man den Betrag und pickt sich einfach die N / 2 + 1 Werte für das
Spektrum raus (normalerweise die positiven Frequenzen und wenn man nicht
geschlampt hat den Gleichanteil), sind diese (mit Ausnahme des
Gleichanteils und der höchsten Frequenz) um den Faktor 2 zu klein.
Will man auf Spannungen kommen (schließlich misst ein Oszilloskop das),
wird gerne die Normierung auf 1 / L vergessen. Wobei L die Anzahl der
ursprünglichen Werte ist, bevor man mit Nullen auf N Werte aufgefüllt
hat.
Danke Hannes! Da hast du mich direkt auf die nächsten 2 Fehler
aufmerksam gemacht.
Nach der Bildung des Betrags werfe ich den 'negativen' Frequentzeil
quasi weg da ich mir nur die Frequenzen ab 0Hz anschaue (genauer: wegen
der ansonsten ungünstigen Darstellung der Werte schneide ich einen
Bereich von 0 bis 25 MHz aus). Also muss ich nach deiner Aussage die
Amplitudenwerte erstmal verdoppeln . Klingt soweit logisch auch wenn ich
das selbst vorher nicht beachtet hatte.
Dann werden die verdoppelten Amplitudenwerte noch mit 1/N multipliziert
(normiert). N ist in meinem Fall ja 2500 da mein TDS220 ja 2500 Werte
liefert. Das Ergebnis ist dann die korrekt skalierte Amplitudenachse in
der Einheit Volt, oder?
Nochwas zur Nomenklatur: gibt es (fachlich gesehen) einen Unterschied
zwischen der Bezeichnung Amplitude und Magnitude?