Warum tasten digitale Oszilloskope Signale mit einer höheren Frequenz ab, als es das Abtasttheorem erfordert?

Auf der Suche nach einem nicht so teuren PC-Oszilloskop/Logik-Analysator habe ich ein nettes kleines Gerät gefunden, das sehr gut aussieht und ich weiß, dass es seine Aufgabe erfüllen wird.

Als ich mir jedoch die Spezifikationen ansah , stieß ich auf Folgendes:

Bandbreite vs. Abtastrate

Um ein Signal genau aufzuzeichnen, muss die Abtastrate ausreichend höher sein, um die Informationen im Signal zu erhalten, wie im Nyquist-Shannon-Abtasttheorem beschrieben. Digitale Signale müssen mindestens viermal schneller abgetastet werden als die höchste Frequenzkomponente im Signal. Analoge Signale müssen zehnmal schneller abgetastet werden als die schnellste Frequenzkomponente im Signal.

Und folglich hat es eine Abtastrate von 500 MSPs, aber eine Bandbreite (Filter) von 100 MHz, also ein Verhältnis von 1: 5 für digitale Signale, und eine Abtastrate von 50 MSPs und eine Bandbreite (Filter) von 5 MHz, also ein Verhältnis von 1: 10 für analoge Signale

Soweit ich weiß, spricht Niquist-Shannon nur über das Abtasten mit der doppelten maximalen Frequenz (theoretisch). Es ist natürlich gut, die Grenzen nicht zu überschreiten, und es gibt keine perfekten Filter. aber selbst ein einfacher UART tastet ein digitales Signal mit der gleichen Geschwindigkeit wie die Baudrate ab!

Ist das also eine übliche Faustregel für das Sampling? oder hat das vielleicht jemand aus dem verkauf geschrieben? Es macht mich irgendwie ahnungslos, ich habe noch nie davon gehört.

Billige Oszilloskope schneiden in Bezug auf ihre Fähigkeit, die Signalabtastungen für die Anzeige richtig zu interpolieren, alle möglichen Ecken ab, weshalb sie so hohe Oversampling-Verhältnisse benötigen, um eine anständige visuelle Wiedergabetreue zu erzielen.
Der Preis reicht von 100 bis 600 $USD, also nicht ganz im billigen Spektrum, aber jeder gesparte Cent ist ein wahrer verdienter Cent
Alles unter 5000 $ ist billig genug, dass Sie beim Entwerfen eines Zielfernrohrs Abstriche machen müssen.
Wenn Sie eine sich wiederholende Wellenform bei 2f abtasten, wissen Sie nichts über ihre Form. War es ein Quadrat, ein Sinus, ein Sägezahn? Wer weiß ... Ihre Proben können es Ihnen nicht sagen.
Es gibt eine verwandte Faustregel für aktive Filter, wonach die Bandbreite der beteiligten Operationsverstärker mindestens das 10-fache der höchsten Frequenz im Durchlassbereich betragen muss.
Es gibt einen weiteren seltsamen Effekt bei älteren oder billigeren digitalen Oszilloskopen, die eine lineare Interpolation verwenden, um eine Reihe von Samples zu nehmen und eine kontinuierliche Wellenformlinie zu zeichnen. In diesem Fall beginnen vollkommen gute Sinuswellen, sich in Trapeze oder Dreiecke zu verschlechtern, wenn sich die Frequenz des Signals der Nyquist-Frequenz nähert. Neuere/ausgefallenere Oszilloskope interpolieren heutzutage mit der sinc (sin(πx)/πx)-Funktion, aber bei diesen müssen Sie sicher sein, dass Sie sich nicht vormachen, dass das Signal sauberer ist, als es ist, also denken Sie daran, die "Show Samples" zu verwenden " Feature.
@brhans beachten Sie, dass Ihr Standpunkt absolut umstritten ist. Eine Rechteckwelle der Frequenz f hat keineswegs eine Bandbreite von f , aber überall spektrale Komponenten.
@MarcusMüller - ja, natürlich - aber wenn Sie es nur bei 2f abgetastet haben, wissen Sie nichts über diese anderen Spektralkomponenten. Nur wenn Sie die „Form“ Ihrer abgetasteten Wellenform im Voraus kennen, können Sie eventuell hoffen, etwas Interessantes aus einem 2f-Samplesatz zu rekonstruieren, und selbst dann können Sie nicht mehr als eine grobe Vermutung über die Phase des Originalsignals haben .
Alle Hardware-UARTs, die mir bekannt sind, tasten den Eingang mit einem Vielfachen der Baudrate ab - alles von 4x bis 16x oder mehr - und verwenden dann Filter und / oder Mehrheitserkennungssysteme, um über den Wert zu entscheiden. Nur Software-UARTs mit "Bit-Bang" werden wahrscheinlich mit der Baudrate abgetastet.
Beim UART irrst du dich. Der klassische 16550-UART, der mit der höchsten Baudrate arbeitet, benötigt 16 Abtastungen pro Bit. Sie können keine zuverlässige Synchronisierung mit weniger als 3 Samples pro Bit erreichen (die Taktdrift akkumuliert sich so, dass Sie regelmäßig ein Bit verlieren). Das Niquist-Abtasttheorem besagt lediglich, dass Sie ein Signal nicht mit weniger als der zweifachen Abtastfrequenz rekonstruieren können, es besagt nicht, dass Sie bei der zweifachen Frequenz ein gutes Signal erhalten können.
Software-UARTs kommen (scheinbar) mit einem einzigen Sample pro Bit davon, wenn die Startflanke mit größerer Granularität erkannt wird, wie bei der CPU-Taktrate.
@slebetman: Während 3x die kleinste ganzzahlige Abtastrate ist, die zuverlässig mit einem UART arbeiten kann, reicht eine Rate, die definitiv über 17/9 und unter 2x liegt, selbst bei Vorhandensein von Timing-Jitter oder anderen Unsicherheiten aus. Die Jitter-Toleranz sinkt, wenn sich die Abtastraten ganzen geraden Zahlen nähern, sodass eine Rate von genau 2x nicht funktioniert, obwohl eine Rate, die definitiv schneller oder definitiv langsamer ist, funktioniert.

Antworten (3)

"Sogar ein einfacher UART tastet ein digitales Signal mit der gleichen Geschwindigkeit ab ..." Der UART muss das analoge Rechtecksignal, das die digitalen Informationen trägt, nicht rekonstruieren, sodass das Theorem nicht berücksichtigt wird.

Das Shannon-Nyquist-Theorem spricht eigentlich von der perfekten Darstellung eines analogen Signals. Perfekte Darstellung bedeutet hier, dass Sie das abgetastete Analogsignal im Zeitbereich perfekt rekonstruieren können, wenn Sie nur die Samples des Signals kennen .

Dies ist natürlich nur in der Theorie möglich. Tatsächlich beinhaltet die Rekonstruktionsformel eine Reihe von „SINC“-Funktionen ( s ich n c ( x ) = Sünde ( π x ) π x ), die nicht zeitlich begrenzt sind (sie erstrecken sich von zu + ), sie sind also nicht wirklich perfekt in Hardware implementierbar. High-End-Oszilloskope verwenden eine verkürzte Form dieser Sinc-Funktion, um eine höhere Bandbreitenkapazität mit niedrigeren Abtastraten zu erreichen, dh mehr MHz mit weniger Abtastungen, da sie nicht einfach "die Punkte verbinden", sodass sie nicht viel Oversampling benötigen.

Trotzdem benötigen sie etwas Oversampling, da die Abtastrate größer als 2 B sein muss, wobei B die Bandbreite ist, und die Tatsache, dass sie bei der Rekonstruktion eine abgeschnittene Sinc-Funktion verwenden, es nicht erlaubt, dieser 2 B-Zahl zu nahe zu kommen.

Tatsächlich tastet jeder UART, den ich gesehen habe, die Daten mit der 8- oder 16-fachen Baudrate ab.
@pipe Ich stimme zu, die wenigen, die ich gesehen habe, verhalten sich auch so. Ich habe nur auf eine falsche Prämisse in der Argumentation von OP hingewiesen.
@Rohr. Übrigens denke ich, dass sie nur deshalb so schnell abtasten, weil dies einfachere Erkennungsalgorithmen ermöglicht. Ich bin mir nicht sicher, aber ich denke, dass sie mit viel weniger Samples auskommen könnten, wenn sie kompliziertere Algorithmen verwenden würden (was wahrscheinlich unpraktisch und teuer ist, daher ist die Frage strittig).
Ich denke, sie probieren auch schnell, weil sie es können. :)
@pipe ja! Bei modernen Halb-Dollar-MCUs mit 20-MHz-Takten macht es keinen Sinn, diese Frequenz zu stark zu teilen, um eine kleine Abtastfrequenz von ~ 100 kSamples / Sek. (bestenfalls) zu erreichen :-)
Der Grund, warum moderne UARTs mit 8x oder 16x (oder mehr oder weniger oder irgendwo dazwischen) abtasten, ist, dass sie die Abtastung der Bits in der Mitte der Bitperiode positionieren können. das sind 1,5 Bitperioden nach der Flanke des Startbits. Wenn ein UART Platz im Silizium und Taktfrequenz übrig hätte, erscheint es mir durchaus vernünftig, eine Rekonstruktion mit einer billigen Annäherung an a durchzuführen seit ( x ) Funktion (wie vielleicht Hermite-Interpolation 3. Ordnung). dann sollten sie anständig aussehende Kanten für das Startbit und anständig stabile Pegel für jedes Datenbit haben.
@robertbristow-johnson Sie bestätigen meine Vermutung: Das Erkennen der Mitte des Bitimpulses ist algorithmisch billig: Sie benötigen keine FP-ALU, um dies zu implementieren, sodass dies mit einfacher digitaler Hardware möglich ist. Andererseits ist selbst bei groben Annäherungen das Erzeugen eines Sinc-Impulses und das anschließende Erfassen der Mitte des Impulses viel teurer (in Siliziumfläche und Komplexität) ohne großen Vorteil.
Einige MCU-UARTs, wie der alte MC6811, sampelten dreimal in der Mitte eines Bits (Takt 5, 7 und 9, da 16-faches Oversampling verwendet wurde), verwendeten eine Mehrheitsfunktion, um den Datenbitwert zu erhalten, und setzten ein "Noise-Flag". "Statusbit, wenn die Proben nicht alle übereinstimmen. Sie verwendeten auch mehrere Proben, um die Startbitflanke zu bestätigen. Dies half nicht nur dabei, Rauschen zu erkennen und zu mindern, es könnte Ihnen auch etwas mehr Taktfrequenztoleranz geben.
@MikeDeSimone: Wenn ein übertragender UART auf 1,5 Stoppbits konfiguriert wäre und Interbyte-Intervalle immer auf eine ganze Anzahl von Bitzeiten darüber hinaus aufgefüllt würden, würde das Rauschflag Framing-Fehler erkennen, selbst in Fällen, in denen Stoppbits rechts zu passieren schienen Flecken.

Nyquist-Shannon-Abtasttheorem ... oft missbraucht ...

Wenn Sie ein Signal haben, das perfekt auf eine Bandbreite von f0 begrenzt ist, können Sie alle in diesem Signal enthaltenen Informationen sammeln, indem Sie es zu diskreten Zeiten abtasten, solange Ihre Abtastrate größer als 2f0 ist

Es ist sehr prägnant und enthält zwei sehr wichtige Vorbehalte

  1. PERFEKT BANDBEGRENZT
  2. Größer als 2f

Punkt 1 ist hier das Hauptproblem, da Sie in der Praxis kein perfekt bandbegrenztes Signal erhalten können. Da wir kein perfekt bandbegrenztes Signal erreichen können, müssen wir uns mit den Eigenschaften eines echten bandbegrenzten Signals befassen. Näher an der Nyquist-Frequenz wird eine zusätzliche Phasenverschiebung erzeugt. Näher führt zu Verzerrungen und zur Unfähigkeit, das interessierende Signal zu rekonstruieren.

Faustregel? Ich würde mit dem 10-fachen der maximalen Frequenz abtasten, an der ich interessiert bin.

Ein sehr gutes Papier über den Missbrauch von Nyquist-Shannon http://www.wescottdesign.com/articles/Sampling/sampling.pdf

Warum "Bei 2x" falsch ist

Nehmen Sie dies als Beispiel: Wir wollen eine Sinuswelle mit der Frequenz f abtasten. Wenn wir bei 2f blind abtasten, könnten wir am Ende eine gerade Linie erfassen.

Geben Sie hier die Bildbeschreibung ein

Ausgezeichnete Antwort. Die 2f-Nyquist-Grenze verhindert Aliasing , lässt aber dennoch einen Amplitidefehler von 100 % zu, wie in Ihrer Abbildung gezeigt. Bei mehr Punkten pro Zyklus fallen Amplitudenfehler, Phasenfehler, Offsetfehler und Frequenzfehler schließlich auf akzeptable Werte.
Dies war eine ausgezeichnete Antwort bis zum Beispiel, das nur zeigt, dass es sehr wichtig ist, dass die Abtastrate mehr als doppelt so hoch ist wie die Bandbreite. @MarkU spricht über Auswirkungen, die bestehen, wenn Sie das "Gesetz" nicht befolgen.
genau Pfeife :) wenn Sie lesen, was das OP geschrieben hat "Abtastung mit der doppelten maximalen Frequenz (theoretisch)". Für den Anfang ist das nicht das, was das Theorem besagt (wie ich geschrieben habe), und es ist das häufigste Missverständnis in Bezug auf das Abtasttheorem. Ist das Bild ja grob, ABER es ist der Punkt, warum "zweimal" so sehr falsch ist und überhaupt nicht das, was NS gesagt hat.
Nach dem Theorem ist das Beispiel, das Sie geben, falsch. Tatsächlich ist es das gezeigte Beispiel, warum die Abtastfrequenz größer als 2f sein sollte. Bei einer perfekt bandbegrenzten Welle mit einer Frequenz von mehr als 2f würde die Rekonstruktion der Welle perfekt möglich sein.
Und das ist mein Punkt. Der OP sagte 2x . Ich habe das Theorem genau zitiert (es heißt nie bei 2x, es heißt größer als MIT einem perfekt bandbegrenzten Signal) und auch gezeigt, warum Sie nicht bei 2x abtasten sollten. Das Beispiel soll nicht zeigen, was getan werden sollte, ABER warum die umgangssprachliche Interpretation von NS so falsch ist
Ich denke, ein Bild, das die Frequenz f zeigt, die mit einer Rate von etwa 2,1x abgetastet wird, ist vielleicht informativer, da dies genügend Informationen enthalten würde, um die Welle zu rekonstruieren, wenn bekannt ist, dass sie nur Frequenzinhalte unterhalb von Nyquist enthält, aber die Welle rekonstruiert, ohne sie auch zu haben einen Alias ​​mit dem 1,2-fachen der tatsächlichen Frequenz enthalten, wird unangenehm sein.

Es gibt einen Unterschied zwischen der Analyse eines Signals nach Informationen und der Anzeige auf einem Oszilloskopbildschirm. Eine Oszilloskopanzeige ist im Grunde genommen ein Verbinden der Punkte. Wenn Sie also eine 100-MHz-Sinuswelle mit 200 MHz (alle 5 ns) abgetastet hätten UND Sie auch die imaginäre Komponente abgetastet hätten, könnten Sie das Signal rekonstruieren. Da Sie nur den Realteil zur Verfügung haben, sind 4 Punkte so ziemlich das erforderliche Minimum, und selbst dann gibt es pathologische Situationen, wie z. B. Abtasten bei 45, 135, 225 und 315 Grad, die wie eine Rechteckwelle mit kleinerer Amplitude aussehen würden. Ihr Zielfernrohr würde jedoch nur 4 Punkte anzeigen, die durch gerade Linien verbunden sind. Schließlich hat das Oszilloskop keine Möglichkeit, die tatsächliche Form zu kennen - dazu wären höhere Harmonische erforderlich. Um eine einigermaßen gute Annäherung an den 100-MHz-Sinus zu erreichen, wären etwa 10 Abtastungen pro Periode erforderlich - je mehr, desto besser, aber 10 ist eine grobe Faustregel. Sicherlich wären 100 Samples für eine Oszilloskopanzeige zu viel des Guten, und technische Faustregeln funktionieren in der Regel in Zehnerpotenzen.

Aber die imaginäre Komponente ist (wahrscheinlich) Null ...
@OliverCharlesworth - Nicht in Bezug auf die Abtastuhr. Die imaginäre Komponente beträgt 90 Grad für einen Sinuszyklus, der bei einer Amplitude von Null ausgelöst wird, denn wenn es Null wäre und beide Abtastungen Null wären, gibt es keine Möglichkeit zu sagen, dass der Sinus überhaupt vorhanden ist.
Ehrlich gesagt klingt das nur nach 2x Oversampling. Es fällt mir schwer zu modellieren, wie man eine imaginäre Komponente erzeugt (kurz vor einer Frequenzverschiebungsoperation oder einer Hilbert-Transformation). Nicht zu behaupten, dass dieses Framework hier falsch ist, nur dass ich es noch nie so verwendet gesehen habe. Irgendwelche Google-Suchbegriffe, die ich untersuchen sollte?
Auch nicht überzeugt von "höhere Harmonische erforderlich" - das OP-Zitat bezieht sich auf "die schnellste Frequenzkomponente" - angesichts dieser Einschränkung sollte (ausreichende) Sinc-Interpolation die ursprüngliche Wellenform für alles > 2f rekonstruieren.
@OliverCharlesworth - "Es ist schwer zu modellieren, wie man eine imaginäre Komponente erzeugt" - Genau. Nicht machbar, weshalb Sie überabtasten müssen. In der HF-Welt erzeugen Sie I und Q, aber das ist hier nicht nützlich. Und was die SINC-Interpolation betrifft, finden Oszilloskophersteller sie unwirtschaftlich, ganz zu schweigen davon, dass sie von Seiten der Benutzer nicht intuitiv ist. Bei maximaler Abtastrate auf einem digitalen Oszilloskop wird die Spur als durch gerade Linien verbundene Punkte deutlich, und die Grenzen der Abtastrate werden offensichtlich (und hoffentlich als Quelle der Vorsicht).
Yup - ich widerspreche nicht der Tatsache, dass Oversampling hilft, das Problem zu mildern; Ich bin in Ihrer Antwort lediglich mit der Terminologie nicht einverstanden - dh dies ist nicht analog zur Ableitung eines komplexen Signals (im Gegensatz zur IQ-Verarbeitung, die wirklich analog zu den realen und imaginären Komponenten eines analytischen Signals ist).
@OliverCharlesworth im realen analogen Leben gibt es im Gegensatz zur Theorie der digitalen Signalverarbeitung kein perfekt bandbreitenbegrenztes Signal, das genau aus einer endlichen Anzahl von Termen in einer Fourier-Reihe wiederhergestellt werden kann. Wenn zum Beispiel das Signal der realen Welt nur für eine endliche Zeitspanne ungleich Null ist, ist sein Frequenzspektrum kontinuierlich und unendlich. Wenn Sie einen analogen Filter verwenden, bevor Sie ihn digital abtasten (was Sie tun sollten, um das Anti-Aliasing zu minimieren), hat ein echter Filter keine Brick-Wall-Frequenzabschaltung. Daher braucht man im wirklichen Leben immer etwas Headroom im Frequenzbereich.
@alephzero - Absolut. Und das wäre eine großartige Antwort auf die Frage.