Hallo zusammen. So, ich stehe vor einem kleinen Problem bei dem ich gerne den einen oder anderen Input von euch gebrauchen könnte. Folgende Problemstellung: * Ich habe zwei analoge Signale (in Wirklichkeit sind es mehr, für die Problemstellung reicht es aber zwei zu betrachten), zusätzlich gibt es ein Triggersignal * Signal A ist das Referenzsignal. Dieses entspricht einer leicht verrauschten Gausskurve * Signal B ist das Ergebnissignal. Dieses entspricht ebenfalls einer leicht verrauschten Gausskurve. * 1 mal pro Millisekunde tritt der Trigger auf. Ab diesem Zeitpunkt kommt zuerst irgendwann Signal A, und kurz darauf Signal B * Gesucht ist nun die Zeit zwischen dem Peak von Signal A und dem Peak von Signal B. Da die Signale leicht verrauscht sind, müsste man evtl. noch ein Filter vorschalten. Die Reihenfolge der Signale ist sichergestellt. Idealerweise suche ich nun ein HW-Teil (dessen Namen ich eben nicht weiss) das mir genau diese Zeitdifferenz (oder ein dazu proportionales Signal) ausspuckt. Daher nun meine Frage: Wonach suche ich eigentlich? Eine Abtastung im us-Bereich ist sicher ok, es wird auch immer über dutzende Messwerte gemittelt und den endgültigen Wert zu erhalten. Der Notfall-Plan wäre, dies über einen Vielfach-ADC mit hoher Samplerate zu machen, ich könnte mir aber vorstellen, dass es hierfür doch schon eine bessere Möglichkeit geben muss.
Haben die beiden Signale — abgesehen vom Rauschen — exakt die gleiche Form und Amplitude? Wenn nicht, wird es ohne softwaremäßige Signalver- arbeitung ziemlich schwierig, weil du den Zeitpunkt des Signalmaximum ohne Verfälschung durch das Rauschen ermitteln musst.
Hallo Yalu Danke für die Antwort schonmal. Form und Amplitude sind (leider) nicht dieselben. Ähnlich, aber nicht dasselbe. Dass der Messpunkt durch das Rauschen variieren kann sollte eigentlich kein Problem darstellen, schlussendlich wird wieder über viele Messpunkte (1000) gemittelt wodurch sich der Einfluss zumindest minimieren würde. Nehmen wir mal an, das Rauschen ist vom Einfluß her klein gegenüber dem endgültigen Signal, was würdest du dann verwenden?
Also in Software wird sowas (z.B. bei Ultraschall) mit einer Kreuzkorrelation gemacht. Funktioniert sehr gut. Könnte man dass in HW nicht irgendwie über einen Mischer oder sowas ähnlichem machen?
Thomas L. schrieb: > Nehmen wir mal an, das Rauschen ist vom Einfluß her klein gegenüber dem > endgültigen Signal, was würdest du dann verwenden? Ein (lokales) Maximum kann man dadurch bestimmen, dass man das Signal differenziert und dann den Nulldurchgang bestimmt. Aber das funktioniert nur bei Rauschfreien Signalen zuverlässig, da bei der Differenzierung das Rauschen proportional zu seiner Frequenz verstärkt wird, so dass das differenzierte Signal u.U. sehr viele Nulldurchgänge hat. Man kann diesen Effekt mit einem Tiefpassfilter vor dem Differenzierer vermindern und evtl. sogar beseitigen. Wenn sich allerdings das Rauschspektrum mit dem Spektrum des Nutzsignals überlappt, wird bei einer nahezu vollständigen Elimination des Rauschens auch das Nutzsignal beeinträchtigt. Damit erscheint das ermittelte Maximum zeitlich verschoben. Wenn die Signale A und B gleich aussehen, ist das kein Problem, da die Verschiebung beidesmal den gleichen Betrag hat und die Zeitdifferenz der beiden Maxima damit unverändert bleibt. NopNop schrieb: > Also in Software wird sowas (z.B. bei Ultraschall) mit einer > Kreuzkorrelation gemacht. Funktioniert sehr gut. Dann muss man aber die Signalform vorab schon möglichst genau kennen. Im vorliegenden Fall würde es schon genügen, wenn die Signale A und B zwar unbekannt, aber untereinander gleich wären, dann könnte man sie untereinander kreuzkorrelieren. Aber beides ist hier wohl nicht der Fall. Trotzdem hat mit der digitalen Signalverarbeitung wesentlich mehr Möglichkeiten als mit der analogen. Hier wurde ebenfalls das Problem der Maximumbestimmung diskutiert: Beitrag "Minimum und Maximum aus Messreihe berechnen"
Yalu X. schrieb: > aber untereinander gleich wären Sie müssen nicht gleich sein, sondern nur ähnlich. Bei Ultraschall wird auch nie das gleiche Signal zurückkommen wie es ausgesendet wurde. Über die Kreuzkorrelation soll ja eben die Ähnlichkeit von 2 Signalen bewertet werden. Yalu X. schrieb: > Dann muss man aber die Signalform vorab schon möglichst genau kennen. Er schreibt ja dass es eine Gauskurve ist. Ich konnte jetzt nirgends lesen dass er die nicht genauer spezifizieren kann. Oder hab ich mich verlesen? Wenn er das genauer kann, dann ist es schon möglich. Grüße
So, mal recht herzlichen Dank euch beiden, die ganze Diskussion hilft mir mal schon soweit, als dass ich sehe dass es da nicht "das Bauteil" gibt das ich mir erhofft habe :) Die Signalform ist wirklich ähnlich einer Gauss'schen Glockenkurve; wie gut sie diese annähert weiss ich jedoch noch nicht, ich bekomme erst nächste Woche die neuesten Testreihen. Dann sehe ich auch, wie ähnlich das Referenzsignal zu dem eigentlichen Signal ist. So wie es mir derzeit scheint, läuft es auf ein Sampling des Signals hinaus. Ob ich danach dann eine KK mache oder die erste Ableitung bilde - es wird also doch etwas Rechenleistung erforderlich sein. Ich werde mich glaube ich im ersten Schritt mal bzgl. KK schlau machen, wenn ihr noch weitere gute Ideen habt, nur her damit - je mehr HW desto besser :)
Ich hab mal was aehnliches gemacht bei einem coin-evaluator. Fast gleiche Bedingungen. Auch Gausskurve, auch Phasenverschiebung. Allerdings war mir nur die Phasenverschiebung wichtig und ich habe es mit einem XOR in HW geloest aehnlich wie es die PLL IC's machen. Die gefilterte Spannung aus dem XOR ist proportional zur Phasenverschiebung. Ju
Hallo Jürgen Der Ansatz klingt interessant, könntest du da vielleicht noch ein paar Worte dazu sagen? Ich verstehe nicht ganz wie da ein XOR weiterhelfen soll, gibt ja keinen klassischen "Wertwechsel" zwischen zwei Werten, da es sich ja um keine Sinus-ähnliche Schwingung handelt. Wobei .. es muss ja kein Sinus sein, theoretisch sollte ja jedes sich wiederholende Signal ausreichen ... oder sehe ich das falsch? Ich befürchte ich werde das mal simulieren müssen ... :(
Das geht mit jedem einigermassen sauberen Signal. In meinem Fall ist das eine ein Source und das andere ein "Echo" Signal. Ich brauchte die Phasenverschiebung zwischen den beiden. Ich habe zBsp. mit einem Oscillator einen Sinus auf eine Spule gegeben dann ein Luftspalt und eine zweite Spule. Zwischen den beiden Spulen faellt die Muenze durch. Das Material der Muenze verursacht eine Induktivitaetsaenderung. Das Signal in der zweiten Spule sieht immer anders aus als in der ersten, irgendwie haben sie aber immer etwas gemeinsam. Aus der Phasenverschiebung zwischen den Signalen der beiden Spulen kann ich einiges ueber das Material, Dicke und Groesse ableiten. Wie man die Phasenverschiebung mittels XOR bekommt ist im Datenblatt des 47HC4046 ganz gut beschrieben. oder hier. http://ecee.colorado.edu/~ecen4618/lab4.pdf Die gehen immer von einem Rechteck als Signal aus, es geht aber mit jedem anderen Signal. Ich habe meine Gausskurve mit einem Opamp und Hysterese konditioniert zu einem Rechteck auf CMOS Level und es dann in das XOR gefuettert. So hatte ich das Original analog und ein gutes digital Signal um meine Auswertungen zu machen. Ju
Hallo Tom, Der Begiff, den du suchst ist vermutlich Time to Digital Converter (TDC). Hier gibt es eine Übersicht über verschiedene Techniken: http://www.ko4bb.com/~bruce/TDC.html Evtl ist auch ein Constant Fraction Discriminator (CFD) interessant. Der macht den Triggerzeitpunkt (fast) von der Pulshöhe unabhängig. Interessant wäre natürlich, wie breit und wie weit auseinander die Pulse sind. Davon hänt alles weitere ab... Grüße Stephan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.