Forum: Mikrocontroller und Digitale Elektronik Bit error rate ermitteln


von Luky S. (luky)


Lesenswert?

Die Bit error rate wird ja bei vielen theoretischen Betrachtungen oft 
verwendet, aber wie kann man sie praktisch messen? Ich habe einige 
Geräte für den GBit-Berwich mit nicht genannten Preisen gesehen, aber 
wie würde man das z.B. bei einer UART oder einer Funkverbindung machen?

von Schulerinnerungskultur (Gast)


Lesenswert?

Luky S. schrieb:
> Die Bit error rate wird ja bei vielen theoretischen Betrachtungen oft
> verwendet, aber wie kann man sie praktisch messen?


schau dir doch einfach mal den integrierten Bit Error Rate estimator" in 
Xilinx-FPGA's an. Dann kann man auch für UARTS nachbauen.

https://www.xilinx.com/video/hardware/in-system-ibert.html

Das prinzip ist doch simple, schick einfach eine vereinbarte Symbolfolge 
(bspw. eine PRN) und vergleich die mit dem selben PRN generator am Ziel.

Oder nimm ne CRC und zähle hinten die Fehler.

Wobei die PRN vom Spectrum her schon sehr realistisch ist.

https://theses.hal.science/tel-00978950/document.

Oder wenn schon einige Protokollschichten mehr laufen, schick 
ping-requests und zähl die Fehler

von Bernd (Gast)


Lesenswert?

Luky S. schrieb:
> aber wie kann man sie praktisch messen?
Mit einem BERT:
https://en.wikipedia.org/wiki/Bit_error_rate#Bit_error_rate_tester

Sowas gibt es als eigenständiges Gerät:
https://www.keysight.com/us/en/products/bit-error-ratio-testers.html

Oder als Zusatzoption zum Spektrumanalysator:
https://www.youtube.com/watch?v=Y8WB6lxCMfc

von Luky S. (luky)


Lesenswert?

Die teuren Geräte habe ich ja gefunden... Aber die Frage war ja, wie man 
das bei geringen Datenraten z.B bei einer UART (RS485) messen kann

von Harry L. (mysth)


Lesenswert?

Luky S. schrieb:
> Aber die Frage war ja, wie man
> das bei geringen Datenraten z.B bei einer UART (RS485) messen kann

Willst du wirklich messen oder nur prüfen?

Mit einem mittelprächtigen, günstigen, modernen Scope ist es keine 
Kunst, ein Augendiagramm darzustellen, und das sagt schon Einiges aus, 
ist aber natürlich keine Messung.

Würde aber auch nur bei Software-UART Sinn machen.
Die UARTs in Hardware funktionieren schon weitgehend fehlerfrei.
Wenn da Fehler auftreten, dann liegst in den meisten Fällen an der 
Software.

: Bearbeitet durch User
von Luky S. (luky)


Lesenswert?

Ich möchte das schon wirklich messen. Also unterscheiden ob die BER bei 
10^-9 oder 10^-10 liegt. In der Realität ist die Übertragung nicht 
fehlerfrei. Wozu bräuchte es z.B. sonst CRC und ähnliches?

von Dieter D. (dieter_dosenkohl)


Lesenswert?

Analytisch bei binärer Modulation
BER = p(0)P(1|0) + p(1)P(0|1). Lässt sich für Simulationen mithilfe der 
Error Function schätzen wenn du ein paar Parameter der Pegel wie 
Standardabweichung von 1en und 0en, Mittelwert 1en und 0en u Schwellwert 
reinsteckst.

Praktische Messung indem du eine lange PRBS überträgst und dann einfach 
schaust wie viele Bits falsch empfangen worden sind. BER = n_e/N. n_e 
ist Anzahl der falsch empfangenen Bits, N ist die Zahl der insgesamt 
übertragenen.

von Bernd G. (Gast)


Lesenswert?

Für einen transparenten Kanal kannst du für wenig Geld einen gebrauchten 
Bitfehlermessplatz PF-6 von W&G kaufen. Wenn du allerdings bei kleinen 
Bitraten irgendwas von 10E-11 messen willst, musst du vllt eine Woche 
warten, bis die Messung fertig ist.

von Bernd (Gast)


Lesenswert?

Bernd G. schrieb:
> Wenn du allerdings bei kleinen
> Bitraten irgendwas von 10E-11 messen willst, musst du vllt eine Woche
> warten, bis die Messung fertig ist.

Bei z.B. 10E-11 darf es nur einen Bitfehler auf 10E11 Bits geben. Bei 
einer Bitrate von 9600 bps ergibt das eine Messzeit von:
10^11 / 9600 bps = 10416666,7 s
Das sind ca. 4 Monate...

von Peter D. (peda)


Lesenswert?

Luky S. schrieb:
> Wozu bräuchte es z.B. sonst CRC und ähnliches?

Protokolle und CRC nimmt man, um einen Datenstrom nach 
Übertragungsfehlern wieder synchronisieren zu können. Z.B. bei 
Funkstörungen, jemand zieht das Kabel, eine Seite bootet neu nach 
VCC-Schwankungen usw.

Solange das Übertragungsmedium genügend Reserve gegenüber der 
gewünschten Datenrate hat, gibt es keine Bitfehler.
Unausgereifte Soft- oder Hardware kann sich auch gerne wie Bitfehler 
verhalten, z.B. wenn zwischen Film und Werbung umgeschaltet wird.

von Schulerrinerungskultur (Gast)


Lesenswert?

Luky S. schrieb:
> Ich möchte das schon wirklich messen. Also unterscheiden ob die BER bei
> 10^-9 oder 10^-10 liegt.

Ich hab den Eindruck, du denkst, du bist hier bei "Wünsch Dir was".

So ein messgerät, das dir sagt, die Fehlerrate bei dieser Konstruktion 
ist immer nahezu 0, gibt es nicht. Du musst schon konkrete Zufallsgrößen 
messen, wie das durchschnittliche SNR ausschaut um gewisse fehlerraten 
garantieren zu können.
Bei UART verbindungen misst mal klassischerweise die Flankensteilheiten 
und setzt den Abtastzeitpunkt so, das auch bei jittern der einzelnen 
Oszillatoren (RX und TX) immer noch genug Margin ist, damit das richtige 
Bit getroffen wird. Und das "immer" weist man näherungsweise durch 
Temperaturtests und künstliche Alterung nach.

https://www.researchgate.net/publication/228309783_Design_Implementation_and_Optimization_of_Highly_Efficient_UART

von FPGA-Spezi (Gast)


Lesenswert?

Peter D. schrieb:
> Solange das Übertragungsmedium genügend Reserve gegenüber der
> gewünschten Datenrate hat, gibt es keine Bitfehler.

Bis auf EMI-Effekte. Lege mal ein serielles Kabel neben ein 
Hochstromkabel für Motoren. Da hast du Spaß.

von Wolfgang (Gast)


Lesenswert?

Bernd schrieb:
> Bei z.B. 10E-11 darf es nur einen Bitfehler auf 10E11 Bits geben. Bei
> einer Bitrate von 9600 bps ergibt das eine Messzeit von:
> 10^11 / 9600 bps = 10416666,7 s
> Das sind ca. 4 Monate...

Halt, halt - statistische Größen zu messen, funktioniert etwas anders.

Erstmal: 10E-11 bedeutet im Mittel EINEN Fehler auf 1E10 Datenbits.

Eine asynchrone serielle Übertragung mit 9600Bd benötigt wegen des 
Datenrahmens pro Datenbit effektiv minimal 130µs, d.h. 1E10 Datenbits 
benötigen für die Übertragung damit rund 1,3 Mio Sekunden (1,3E6s) oder 
15 Tage. Um daraus eine statistisch signifikante Aussage zu treffen, 
reicht es bestimmt nicht, beim ersten auftretenden Fehler gleich 
"εὕρηκα" zu rufen.
Wenn man die oben (völlig falsch) berechneten vier Monate ansetzt, ist 
im statistischen Mittel mit 8 Fehlern zu rechnen, d.h. der mit 4 Monaten 
ermittelte Messwert hat immer noch eine einfache Standardabweichung von 
etwa ±3.
Wenn die Übertragung durch den Bit-Fehler aus dem Tritt kommt und neu 
synchronisieren muss, kommt deutlich mehr durcheinander und man darf 
beim Test nicht nur auf die richtige Übertragung einzelner Bits gucken.

von Bernd G. (Gast)


Lesenswert?

Wolfgang schrieb:
> Halt, halt - statistische Größen zu messen, funktioniert etwas anders.

Genau so funktioniert aber der PF6 von Wandel und Goltermann.
Wenn 10E7 Bits einer Quasizufallsfolge z.B. QZF23 (wählbar) fehlerfrei 
übertragen wurden, zeigt das Messgerät irgenwann eine BER von < 1 x 
10E-7 an.

Bei einem UART würde ich allerdings keinen einzigen Gedanken an eine 
entsprechende Messung verschwenden.

von Wolfgang (Gast)


Lesenswert?

Bernd G. schrieb:
> Wenn 10E7 Bits ...

10E7 steht für 10·10^7, so die allgemeine Verwendung vom "E" in 
Zahlendarstellungen.

> ... z.B. QZF23 (wählbar) fehlerfrei einer Quasizufallsfolge übertragen
> wurden, zeigt das Messgerät irgenwann eine BER von < 1 x 10E-7 an.

Dazu musst du erstmal festlegen, was "übertragen" bedeutet, also ob du 
dich mit der BER z.B. auf OSI Physical Layer, OSI Data Link Layer oder 
höher beziehst.

Das "irgendwann" muss bei so einer Messung über die tolerierte 
Standardabweichung und die Übertragungsrate festgelegt werden. Dazu muss 
diese definiert sein, z.B. in der Konfiguration des Messgerätes.

von Wolfgang (Gast)


Lesenswert?

p.s.

Bernd G. schrieb:
> Bei einem UART würde ich allerdings keinen einzigen Gedanken an eine
> entsprechende Messung verschwenden.

Auch eine Datenübertragungsstrecke, bei der ein UART beteiligt ist, 
verfügt selbstverständlich über eine BER. Und auch da wird die Frage 
nach der Zuverlässigkeit der Übertragung auftauchen.

Ob dein Messgerät das messen kann, steht auf einem anderen Blatt.

von Wolfgang (Gast)


Lesenswert?

Harry L. schrieb:
> Würde aber auch nur bei Software-UART Sinn machen.
> Die UARTs in Hardware funktionieren schon weitgehend fehlerfrei.
> Wenn da Fehler auftreten, dann liegst in den meisten Fällen an der
> Software.

<ironie>Klar, der Umrichter direkt nebenan oder der Teilchenschauer, 
ausgelöst durch ein Teilchen der Kosmischen Strahlung mit mehreren PeV 
hat bei einer asynchronen Übertragung mit HW-UART bestimmt keinen 
Einfluss.</ironie>

Fehler durch schludrige Programmierung haben bei einer Betrachtung der 
BER doch wohl nichts zu suchen.

von HildeK (Gast)


Lesenswert?

Bernd G. schrieb:
> Genau so funktioniert aber der PF6 von Wandel und Goltermann.
> Wenn 10E7 Bits einer Quasizufallsfolge z.B. QZF23 (wählbar) fehlerfrei
> übertragen wurden, zeigt das Messgerät irgenwann eine BER von < 1 x
> 10E-7 an.

Ja, er zeigt kleiner 10e-7 an. Mehr kann er zu dem Zeitpunkt nicht 
tun.
Das heißt nicht, dass das schon die BER ist. Du musst dann schon noch 
eine Weile weiter messen. Dann wird aus < 10e-7 vielleicht mal < 10e-9 
oder eben auch x * 10e-5 ...
Es war ja noch nicht mal ein Fehler aufgetreten. Es sollten schon einige 
sein, damit man eine Aussage über die BER machen kann.
Ich könnte mir vorstellen, dass das im Manual des WaGo-Gerätes 
ausführlich beschrieben ist.

Deine oben genannten vier Monate könnten so leicht zu 40 oder 100 
Monaten Messzeit werden 😀.

von Bernd G. (Gast)


Lesenswert?

HildeK schrieb:
> Ja, er zeigt kleiner 10e-7 an. Mehr kann er zu dem Zeitpunkt nicht
> tun.
> Das heißt nicht, dass das schon die BER ist. Du musst dann schon noch
> eine Weile weiter messen. Dann wird aus < 10e-7 vielleicht mal < 10e-9
> oder eben auch x * 10e-5 ...
> Es war ja noch nicht mal ein Fehler aufgetreten. Es sollten schon einige
> sein, damit man eine Aussage über die BER machen kann.
> Ich könnte mir vorstellen, dass das im Manual des WaGo-Gerätes
> ausführlich beschrieben ist.

Alles absolut korrekt. Ich wollte das hier aber nicht in aller Breite 
auswalzen. Wer diese Messungen schon mal gemacht hat, weiß es. Ich 
musste bereits bei 155 Mbit/s ellenlang warten, um auf 1 x 10e-10 zu 
kommen. Der Kunde wollte es so. Wenn dann irgendein Idiot die 
Etagensicherung wirft...

von Christian B. (casandro)


Lesenswert?

Also asynchrone Verbindungen macht man eigentlich nicht, wenn man von 
Bitfehlerraten spricht, denn dort kann ein falsches Start-Bit ja schon 
mehrere Datenworte kaputt machen.

Bei synchronen Verbindungen überträgt man entweder die 10^x Bits, ggf. 
über Monate hinweg, um Statistiken über die Bitfehler machen zu können, 
oder man wendet einen Trick an.

Bei einer synchronen Verbindung tastet man das Signal auf der Leitung 
zur Bit-Mitte ab (bzw zur Symbolmitte). Im Augendiagramm ist das die 
Stelle an der das Auge am weitesten offen ist.
Würde man jetzt genau zwischen 2 Bits abtasten, hat man den schlimmst 
möglichen Punkt erreicht. An diesem Punkt hätte man bei einem 
Binärsignal 50% Bitfehler.
Jetzt kann man von den Abtastzeitpunkten zwischen den Bits ein Stück 
Richtung Bitmitte gehen, und dann die Bitfehlerrate bestimmen. Man kann 
so in vertretbar kurzer Zeit die Bitfehlerrate in den Randbereichen des 
Bits bestimmen. Dadurch ergibt sich eine Funktion der Bitfehlerrate über 
den Abtastzeitpunkt. Diese Funktion kann man nun extrapolieren um die 
Bitfehlerrate im optimalen Punkt abzuschätzen, ohne Monate lang Bits 
übertragen zu müssen.

von HildeK (Gast)


Lesenswert?

Das ist ein interessanter Ansatz.
Nur hätte ich ein paar Bedenken:
- Wenn du auf diese Art zu einem Ergebnis kommst, musst du z.B. dem 
Kunden auch schlüssig und verständlich erklären können, mit welcher 
mathematischen Grundlage du zu der BER gekommen bist. Das stelle ich mir 
nicht ganz einfach vor.
- Oftmals wird bei der Übertragung der Abtasttakt aus den Datenwechseln 
gewonnen. Dabei ist nicht immer sichergestellt, dass du exakt die 
Augenmitte erwischt. Aber deine Hochrechnung geht davon aus, dass du in 
Bitmitte abtastest. Was letztlich bedeutet: deine BER kann bestenfalls 
so gut sein, wie du angegeben hast aber durchaus auch schlechter. Das 
hilft nicht.

von Bernd G. (Gast)


Lesenswert?

Christian B. schrieb:
> oder man wendet einen Trick an.

Genau. Man fügt auf der Sendeseite definiert Fehler (Bit-, Block- oder 
Codefehler) ein und wertet das auf der Empfangsseite aus.
Oder man verjittert das Signal definiert auf der Sendeseite und sieht 
sich die Fehler auf der Empfangsseite an. Damit kann der PF-6 
automatisch die Jittertoleranz des Sytems ermitteln.
Alles der Schnee von gestern (Stand 1990).

von Sieb die Zahlen! (Gast)


Lesenswert?

Bernd G. schrieb:
> Ich
> musste bereits bei 155 Mbit/s ellenlang warten, um auf 1 x 10e-10 zu
> kommen. Der Kunde wollte es so. Wenn dann irgendein Idiot die
> Etagensicherung wirft...

... ist das irrelevant, weil, keine Übertragung -> keine 
Übertragungs(|Bit)-Fehler.

Oder statistisch betrachtet, die Messdauer beeinflusst nicht den 
Erwartungswert , aber dessen σ.

https://matheguru.com/stochastik/standardabweichung.html#:~:text=Genauer%20gesagt%2C%20gibt%20sie%20an%2C%20wie%20weit%20die,Standardabweichung%20ist%20definiert%20als%20die%20Quadratwurzel%20der%20Varianz.

von HildeK (Gast)


Lesenswert?

Bernd G. schrieb:
> Man fügt auf der Sendeseite definiert Fehler (Bit-, Block- oder
> Codefehler) ein und wertet das auf der Empfangsseite aus.

Damit kannst du deine Fehlererkennung und -korrektur überprüfen, nicht 
aber die BER, die auf Grund von z.B. Rauschbeiträge auf der 
Übertragungsstrecke verursacht werden und die z.B. die Robustheit des 
Modulationsverfahrens und die Empfindlichkeit des Empfängers zeigen 
soll.

von Sieb die Zahlen! (Gast)


Lesenswert?

HildeK schrieb:
> Bernd G. schrieb:
>> Man fügt auf der Sendeseite definiert Fehler (Bit-, Block- oder
>> Codefehler) ein und wertet das auf der Empfangsseite aus.
>
> Damit kannst du deine Fehlererkennung und -korrektur überprüfen, nicht
> aber die BER, die auf Grund von z.B. Rauschbeiträge auf der
> Übertragungsstrecke verursacht werden und die z.B. die Robustheit des
> Modulationsverfahrens und die Empfindlichkeit des Empfängers zeigen
> soll.

Die Frage ist eben ob die BER über die Nutzdaten oder über alles 
bestimmt wird. Und ob es sind macht die BER unabhängig von der datenrate 
zu betrachten.

Die BER ist von vielen Parameter der RX/TX-module abhängig, 
Kanalcodierung ist eine davon, Swing, Emphasis, ... sind weitere.

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.