Archiv verlassen und diese Seite im Standarddesign anzeigen : Komperator: digitales Signal auswerten
Hallo liebe Leser,
ich schlag mich mal wieder mit einem Problem rum.
Ich habe ein Signal mit einer Baudrate von 512. Die Pegel sind im Bild 1 und Bild 2 zu sehen, in in Bild 2 mit Spannungen und Zeit. Es gelten für alle Messungen die gleichen Einstellungen.
Nun denkt man sich, kein Problem, einfach den Komparator nutzen, und schon kann man messen, wie lang das Signal high ist und wie lang low.
Pustekuchen, denn wenn dieses Signal gerade nicht vorhanden ist, gibt es ein Rauschen, wie in Bild 3 zu sehen.
Ich habe beide Signale mal übereinander gelegt, siehe Bild 4.
Wie komme ich ich nun am besten an das Signal ran?
Das Problem bei der Sache ist, dass das digitale Signal nicht nur so sauber ankommt, sondern auch wiederholt abgeschwächt und verzerrt wie in Bild 5.
Wie löse ich das Problem am besten?
Bin über Ideen und Ansätze dankbar.
Die Dekodierung per SW ist erstmal 2., da ich ja erstmal das Signal brauche.
Hallo dremler!
Dein Problem, wegen starkem Rauschen, scheint mit nur einem Komperator unlösbar zu sein.
Es wäre theoretisch möglich die Nadelimpulse mit einem Komparator "ausschneiden" und mit zweitem Komperator mit Hysterese die "L" und "H" Pegel sauber zu kriegen.
Ich vermute jedoch, dass es mit integrierten im µC Komperatoren nicht möglich ist und man müsste externe Hardware dafür verwenden.
MfG
Es gibt AVRs mit einstellbarer Hysterese für den Komparator - ob das für dich reicht, keine Ahnung.
Edit: Der ATTiny?61 hat eine zuschaltbare Hystereseschwelle von 20mV oder 50mV.
Du kannst ja evtl. via Software die Daten filtern, dazu müsstest du halt mit einer höheren Frequenz abtasten, ändert sich das Signal innerhalb von x Abtastungen mehrfach, ignorierst du die Daten und gehst von Rauschen aus ...
mfG
Markus
Ich würde das Signal einfach so verstärken das der Verstärker
in Begrenzung geht, also ein Rechteck daraus macht und/oder
Die Hochfrequenten Anteile noch gegenkoppeln. Sollte mit OP
gehen.
Gruß Richard
Bei fester Frequenz könnte man dann am Ausgang zwei retrigbaren Monoflopen zum "verschlucken" den Nadelimpulsen verwenden. Es könnte auch ein Tiefpass am Eingang zum Verringern des Rauschens hilfreich sein.
MfG
Besserwessi
21.07.2010, 18:30
Da die Baudrate relativ niedreig ist, kann man da schon einiges in Software machen. Gerade wenn man viel Rauschen hat, ist es nicht so gut aus den Daten erstmal ein Digitalsignal zu machen. Da würde es sich fast anbieten das ganze Signal zu digitalisieren. Dann als ertes die erkennbaren Störpeaks entfernen, dann vermutlich einen Tiefpaß und erst dann in H/L Werte umwandeln. Das heißt dann aber vermutlich das ein µC nur mit der Signalfilterung beschäftigt ist.
Wenn man gleich digitalisieren will, braucht man auch keine Hysterese, denn durch das Rauschen muß man ohnehin mit kurzen Störungen rechnen. Die Schwierigkeit wird eventuell den richtigen Schaltpunkt zu finden.
Edit:
Für die Auswertung des Signals wird man anders als sonst bei der UART die Sycronisation wohl nicht mehr nur mit der ersten Flanke machen können. Für Mehr Rauschunterdrückung kann man alle vorhanden Flanken nutzen, wenn die Baudrate gut bekannt ist.
Eben. Das ist immer das Schwerste, den geplannten Vorhaben auf Hard- und Software optimal zu verteilen.
MfG
Hardware UART wertet gewöhnlich nicht nur die "EIN/AUS" Flanke
aus. Dort wird eher z.B. 16 x pro Bit abgetastet und nur wenn alle
oder (fast) alle H oder L ergeben entsprechend gewertet. Ein Tiefpass
muss eh eingesetzt werden, ein aktiver Tiefpass sollte aber besser
wirken.Klar, erst danach auf passenden ( TTL )Pegel bringen.
Gruß Richard
Ah ok, dass ganze soll später auch für 1024 Baud funktionieren.
Besserwessi
21.07.2010, 22:56
Auch 1024 Baud ist nicht so schnell. Wenn man das Signal z.B. per AD wandler mit 16 kHz abtastet, hat man immer noch 16 Werte für jedes Bit. Mehr Abtastpunkte nutzt die Hardware UART in der Regel auch nicht.
Die hardware UART wird man aber vermutlich nicht verwenden können, da wird man ziehmlich leicht Fehler kriegen, weil die erste Flanke nicht richtig erkannt wird. Dadurch verschenkt man später viel von dem Möglichen Signal, weil man nicht weiß zu welchem Bit es gehört.
Ganz ohne Fehlerkorrektor oder ähnliches wird es vermutlich auch nicht gehen, aber das kommt später.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.