Forum: HF, Funk und Felder Jitter von ADC Timing (Phasenrauschen) vermessen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jakob K. (jackl)


Lesenswert?

Hallo zusammen!

Ich habe einen Mikrocontroller, der analoge Signale mit konstanter 
Abtastrate abtastet, buffert und an einen PC sendet.

Je nach Programmierung kann (wird!) es passieren, dass die Messungen 
nicht mit exakt konstanter Abtastrate erfolgen, sondern ein Jitter 
vorhanden ist.

Wie kann ich diesen Jitter messen?
-> Wenn man die FW selbst programmiert könnte man wohl bei jedem ADC 
Event ein GPIO togglen und das ausmessen. Easy.
-> Wenn diese Möglichkeit nicht besteht, bleibt nur Testsignale 
einzuspeisen und die Messungen zu beobachten? Was ist hier der beste 
Weg?

Mein Ansatz wäre gewesen: Sinus einspeisen und "Breite" des Spektrums 
bei -x dBfs messen?
Dazu müsste das erzeugte Signal natürlich deutlich "besser" sein, als 
das DUT. Aber spielt mir dabei nicht auch die Linearität meiner ADCs mit 
rein?

Bin über jeden Input dankbar :-)
Jakob

von Wastl (hartundweichware)


Lesenswert?

Jakob K. schrieb:
> Bin über jeden Input dankbar

Zunächts solltest du dir klar machen dass Jitter und Phasen-
rauschen zwei unterschiedliche Dinge sind. Du meinst Jitter.

Jakob K. schrieb:
> Wie kann ich diesen Jitter messen?

Gegenfage: wozu willst du ihn messen, was willst du mit dem
Messergebnis anstellen? Ich sehe erst mal keinen Sinn darin.
Wenn du Jitter erzeugst aber Phasenrauschen siehst dann löst
dein Messgerät nicht hoch genug auf. Beim Jitter bilden sich
diskrete Frequenzen neben der Hauptfrequenz, auch Nebenlinien
genannt (im Gegensatz zu Oberwellen).

Jakob K. schrieb:
> Bin über jeden Input dankbar

Einen ADC lässt man hart synchron abtasten, dazu ist DMA
hilfreich wenn Interrupt-Steuerung nicht ausreicht.

von Jakob K. (jackl)


Lesenswert?

Servus Wastl!

Danke für die schnelle Antwort.

Wastl schrieb:
> Zunächts solltest du dir klar machen dass Jitter und Phasen-
> rauschen zwei unterschiedliche Dinge sind. Du meinst Jitter.

Ja glaube ich habe ein grobes Verständnis, aber kann das sicher auch 
noch einmal verbessern :-)

Wastl schrieb:
> Gegenfage: wozu willst du ihn messen, was willst du mit dem
> Messergebnis anstellen?

Gute Frage!
Ich will grundsätzlich erst einmal verstehen, was in meinem System alles 
passiert und dann checken, welche Änderungen welche Auswirkungen haben. 
Geht auch viel drum, zu lernen!

Wastl schrieb:
> Wenn du Jitter erzeugst aber Phasenrauschen siehst dann löst
> dein Messgerät nicht hoch genug auf. Beim Jitter bilden sich
> diskrete Frequenzen neben der Hauptfrequenz, auch Nebenlinien
> genannt (im Gegensatz zu Oberwellen).

Macht teilweise Sinn für mich.
Wenn der Jitter aber zufällig ist, würden sich ja theoretisch unendlich 
viele Nebenlinien bilden? Ist das nicht genau das, was man sieht?

Wastl schrieb:
> Einen ADC lässt man hart synchron abtasten, dazu ist DMA
> hilfreich wenn Interrupt-Steuerung nicht ausreicht.

Das hab ich auf dem Schirm und werde ich auch so machen. Hatte die erste 
Variante auf einem MCU ohne DMA und mich würden da bspw. ein Vergleich 
interessieren.

von Wastl (hartundweichware)


Lesenswert?

Jakob K. schrieb:
> Wenn der Jitter aber zufällig ist, würden sich ja theoretisch unendlich
> viele Nebenlinien bilden? Ist das nicht genau das, was man sieht?

Im Prinzip bist du auf dem richtigen Weg, aber unendlich viele
Nebenlinien werden es nicht sein, "viele Nebenlinien" sehen
natürlich bei schlechter Auflösung eines Messgerätes aus wie
ein zusätzliches Phasenrauschen.

von Andreas H. (drbo)


Lesenswert?

Speise eine konstant steigende Spannung am ADC-Eingang an und plotte dir 
den Spannungsverlauf über die Zeit. Dann müsstest du Jitter erkennen 
können.

Die Spannung kannst du mittels Konstantstom an einem Kondensator 
erzeugen.
Die Steigung müsstest du natürlich so anpassen, dass die Stufen zwischen 
den einzelnen Messungen groß genug sind, dass diese weit von der 
Messgenauigkeit entfernt sind. Sonst vergleichst du nur das bitrauschen 
miteinander.

von Jakob K. (jackl)


Lesenswert?

Andreas H. schrieb:
> Speise eine konstant steigende Spannung am ADC-Eingang an und plotte dir
> den Spannungsverlauf über die Zeit. Dann müsstest du Jitter erkennen
> können.

Ja schon, aber dann hab ich ja wieder die Linearität des ADC in der 
Gleichung mit drin.
Die sollte sich beim einspeisen eines Sinus ja nur in Oberwellen 
bemerkbar machen, also deutlich ausserhalb des Phasenrauschen im 
Frequenzbereich.
... oder?

Wastl schrieb:
> Im Prinzip bist du auf dem richtigen Weg, aber unendlich viele
> Nebenlinien werden es nicht sein, "viele Nebenlinien" sehen
> natürlich bei schlechter Auflösung eines Messgerätes aus wie
> ein zusätzliches Phasenrauschen.

Passt. Danke für die Klarstellung.
Kann ich nicht einfach lang genug aufzeichnen? Dann könnte ich ja 
problemlos auf unter 1Hz oder so genau messen?
Aber ich glaube grundsätzlich sind wir uns eh schon einig. In der Praxis 
wird es wohl immer verschwimmen?

von Wolfgang H. (Firma: AknF) (wolfgang_horn)


Lesenswert?

Hi, Jakob,

ich habe den Test eines der ersten Empfängers miterlebt, der die ZF 
digitalisierte. Damals lag der RTL-SDR noch zwei Jahrzehnte in der 
Zukunft.

Die Qualität des Empfangs wurde an zwei einander überlagerten 
Quarzsignales im einstelligen MHz-Bereich gemessen, und zwar durch FFT 
der digitalisierten  Werte. Jede Abweichung von der Quarzfrequenz war 
ein Hinweis auf eine Störursache. Darunter auch Rauschen, 
Quantisierungsrauschen und Intermodulationen.

Die größten Probleme machten damals die Intermodulationsprodukte des 
letzten Verstärkers vor der Analog-Digitalwandlung. Die verfügbaren 
Verstärker brauchten entweder mehr Leistung als erlaubt oder zu viel 
Intermodulationen.

Ich vermute, gute Anregungen findest Du in Berichten über Tests von 
Kurzwellenempfängern. Mittlerweile brauchen die hochlinearen Verstärker 
weniger Leistung.
Geben deren Hersteller in ihren Datenblättern nicht entsprechende 
Tetmethoden an?

Ciao
Wolfgang Horn

von Rick (rick)


Lesenswert?

Jakob K. schrieb:
> Mein Ansatz wäre gewesen: Sinus einspeisen und "Breite" des Spektrums
> bei -x dBfs messen?
> Dazu müsste das erzeugte Signal natürlich deutlich "besser" sein, als
> das DUT. Aber spielt mir dabei nicht auch die Linearität meiner ADCs mit
> rein?
Sinus ist schonmal gut, weil sich der mit überschaubaren Mitteln 
erzeugen läßt. Dafür kann man einen 'normalen' Signalgenerator mit 
anschließendem schmalbandigem Filter nehmen. Und ja, das Signal muß 
besser sein, als der ADC.

Anschließend nimmt man ganz ganz viele Kurven mit dem ADC auf und legt 
diese übereinander. Jetzt kann man da einen Sinus-Fit reinlegen 
(=idealer Sinus).
Die statistische Abweichung in Y-Richtung ergibt die Linearität des ADC. 
Die Abweichung in t-Richtung ist der gesuchte Jitter des Abtasttaktes.

von Rainer W. (rawi)


Lesenswert?

Jakob K. schrieb:
> Wie kann ich diesen Jitter messen?

Sauberen Sinus einlesen und die effektiven Bits deines ADCs anhand des 
Spektrums bestimmen. Der Einfluss des Jitters hängt dabei linear von der 
Signalfrequenz ab.

: Bearbeitet durch User
von Jakob K. (jackl)


Lesenswert?

Rick schrieb:
> Anschließend nimmt man ganz ganz viele Kurven mit dem ADC auf und legt
> diese übereinander. Jetzt kann man da einen Sinus-Fit reinlegen
> (=idealer Sinus).
> Die statistische Abweichung in Y-Richtung ergibt die Linearität des ADC.
> Die Abweichung in t-Richtung ist der gesuchte Jitter des Abtasttaktes.

Das klingt sinnvoll.

Rainer W. schrieb:
> Sauberen Sinus einlesen und die effektiven Bits deines ADCs anhand des
> Spektrums bestimmen. Der Einfluss des Jitters hängt dabei linear von der
> Signalfrequenz ab.

Das klingt auch gut, aber ich brauch da noch mehr Input.
Wie bestimme ich die effektiven Bits anhand des Spektrums?
Wie hängt der Einfluss des Jitters mit der Frequenz zusammen?

Danke!

von Markus W. (dl8mby)


Lesenswert?

Indem Du einen Ref-Sinus leicht verzerrst (Klirfaktor einbauen)
und Dir die ADC Werte via FFT anschaust und schaust,
ab welchem Klirrfaktor Dir die Oberwellen aus dem Spektrum
auftauchen.
Dann siehst Du den Oberwellenabstand z.B. in dB und kannst auf
die effektiven Bits rückschließen.

Ist auch eine Methode um Digitale Oszis zu bewerten und die
Güte des verbauten ADC's

Markus

PS.: Du kannst auch zwei Dicht nebeneinander liegenden Sinus 
Schwingungen
nehmen. Eine als Referenz und die andere als einstellbarer Wert, und
nach der oben beschriebenen Methode schauen, wann diese aus dem Rauschen
kommend sichtbar wird.
Du musst aber die beiden Signale rückwirkungsfrei summieren können.

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

Jakob K. schrieb:
> Je nach Programmierung kann (wird!) es passieren, dass die Messungen
> nicht mit exakt konstanter Abtastrate erfolgen, sondern ein Jitter
> vorhanden ist.

Das würde ich erstmal in Frage stellen. In der Regel kannst du den ADC 
auf kontinuierliches Sampling einstellen, dann macht der dir alle 
soundsoviel Takte einen neuen Messwert, generiert einen Interrupt, und 
während du den alten Wert liest und in deinen Sende-Buffer legst, misst 
er schon den nächsten.

Ich sehe nicht wo da bei korrekter Ansteuerung irgendein Software-Jitter 
herkommen soll. Die Qualität wird durch die Eigenschaften des ADC, die 
Eigenschaften der verwendeten Taktquelle und die Eingangsbeschaltung des 
ADC bestimmt.

Klingt für mich als würdest du einen riesen Aufwand betreiben um einen 
Fehler zu messen, den du mit einem zehntel des Aufwands stattdessen 
komplett eliminieren könntest.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Jakob K. schrieb:
> Das klingt auch gut, aber ich brauch da noch mehr Input.

Jitter beim Abtasten eines Sinussignals erzeugt im Spektrum als 
Untergrund sichtbares Rauschen. Das kannst du dir angucken. Je höher die 
Sinusfrequenz ist, um so größer ist der Fehler bezogen auf die 
Sollposition eines Abtastpunktes und um so stärker schlägt sich das im 
Spektrum nieder, d.h. der Rauschlevel steigt mit der Frequenz. Die 
Anzahl Des effektiven Bits folgt aus dem Rauschlevel in Relation zu der 
Sinusamplitude. Einfach mal nach Veröffentlichungen der 
Halbleiterhersteller zu Messmethoden zur Qualifizierung von ADCs suchen.
Ein paar Grundlagen über digitale Abtastsysteme können nichts schaden 
;-)

: 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
Noch kein Account? Hier anmelden.