Ich habe mich bereits etwas über Peak-Detektoren schlau gemacht und habe nun folgendes Problem: Ein Peak-Detektor "speichert" ja das die höchste Spannung die am Eingang anlag, nun ist es ja so, das der Peak-Detektor Ausgang quais der Eingangspannung folgt, solange diese steigt, fältt sie, bleibt der Ausgang auf der höchsten Spannung. Man stelle sich nun vor, der Peak-Detektor soll eingesetzt werden um jeweils Pulsspitzen zu messen (mit einem ADC) und danach per Reset wieder auf 0 gesetzt werden. Nun hat man das Problem, das es eine zweite Schaltung braucht, welche überhaupt erst feststellt, das gerade eine Spitze war, und das per digitalem Signal ausgibt, damit der ADC überhaupt weiss (bzw. der nachfolgende Controller), das er jetzt messen und reseten muss Gibt es solch eine Schaltung? Und wenn ja, wie wird diese gebaut?
Simonium schrieb: > Nun hat man das Problem, das es eine zweite Schaltung braucht, welche > überhaupt erst feststellt, das gerade eine Spitze war, und das per > digitalem Signal ausgibt, damit der ADC überhaupt weiss (bzw. der > nachfolgende Controller), das er jetzt messen und reseten muss Nö. Hat man eigentlich nicht. Man lässt den uC dauernd messen und setzt jedeils danach zurück. So braucht die Analogschaltung nur den peak zwischen 2 Messungen ermitteln. Den peak insgesamt bestimmt der uC.
Du lässt ja nichts über den Frequenzbereich deiner Überlegungen verlauten. Wenn aber sowieso ein ADC und Digitaltechnik eingesetzt werden, ginge es leicht nachvollziehbar und ohne zu resettendem Peak-Speicherkondensator auch so: - ADC macht so oft wie nötig Messungen. - µC vergleicht jeden neuen Messwert mit vorigem ("altem") Messwert. - neu < alt: alt = positive Spitze - neu > alt: alt = negative Spitze
Ne, ohne Reset geht das glaube ich nicht. Denn was hat man für Information mit einem neuen Samplewert gewonnen wenn man gar nicht weiß ob ein neuer Peak da war oder nicht? Stell dir vor da ist ein Peak. Die Spannung wird schön abgestastet. Dann wird ein weiteres Sample gemacht und die Spannung ist in etwas gleich hoch. War das jetzt ein neuer Peak der gezählt werden soll oder stammt das noch vom alten Peak und ist nur durch das Rauschen etwas unterschiedlich? Ich würde mit einem Komparator zusätzlich erkennen ob es ein Peak ist oder nicht.
Beitrag #6077535 wurde von einem Moderator gelöscht.
Ja, das stimmt. Aber das kann man nur dann sehen, wenn man mehrere Abtastwerte je Peak hat. Und das ist hier wohl eher nicht der Fall. Hier geht es (so habe ich das verstanden) darum langsam abzutasten. Kommt ein Peak, wird die Spitzenspannung festgehalten, dann wird einmal abgetastet. Dann kommt irgendwann der nächste Peak und es wird erneut einmal abgetastet. Wenn man das so macht ist ein Reset nötig. Ich denke genau das meint der Threadersteller.
Beitrag #6077565 wurde von einem Moderator gelöscht.
Klar geht das analog. Aber nicht digital wenn man nur selten abtastet. Daher hatte ich ja den Komparator vorgeschlagen. Das ist eine sehr einfache Lösung wenn die Spannung zwischen den Peaks wieder unter eine Schwelle drunter abfällt. Dann hat man damit zwar nicht den Zeitpunkt der Peakspitze, aber das Ende des Peaks. Kann einmal die gehaltene Spannung abtasten und danach resetten.
Gustl B. schrieb: > Ja, das stimmt. Aber das kann man nur dann sehen, wenn man mehrere > Abtastwerte je Peak hat. Und das ist hier wohl eher nicht der Fall. "Differenzieren" heißt das Zauberwort
Ja ich weiß, das geht aber digital nur wenn man vom Peak mehrere viele Abtastwerte hat oder man macht das analog. Analog wäre je nach Peaktyp und so was wir ja noch nicht wissen ein Komparator einfacher. Ich habe hier auch Pulse, die haben immer die gleiche Polarität und dazwischen ist immer Pause. Da bietet sich der Komparator an. Wenn man die Peakspitze oder dessen Zeitpunkt finden will ist der Komparator unpassend.
:
Bearbeitet durch User
1 | //vier Werte merken...
|
2 | int min, max, last, new; |
3 | |
4 | //und ein direction flag sowie ein change flag
|
5 | bool rising, old_rising; |
6 | |
7 | void some_generic_loop() |
8 | {
|
9 | new = generic_analog_read(); |
10 | |
11 | //damit kann man dann
|
12 | //die Richtung feststellen:
|
13 | rising =(new>last)? true:false; |
14 | |
15 | //und anhand dessen bestimmen
|
16 | //ob ein neuer peak Wert erreicht wurde
|
17 | if(rising && new > max) max = new; |
18 | else if(!rising && new < min) min = new; |
19 | |
20 | //statt eines resets kann man
|
21 | //mit Hilfe der 'alten Richtung'
|
22 | //die peak werte aktualisieren
|
23 | //sobald sich die Richtung ändert
|
24 | //falls man 'kleinere' Werte übertragen möchte
|
25 | if(old_rising != rising) |
26 | {
|
27 | if(rising) min = last; |
28 | else max = last; |
29 | //und natürlich
|
30 | old_rising = rising; |
31 | }
|
32 | last = new; |
33 | // und schon ist die Schleife durch
|
34 | } // eo generic loop construct |
Also nein, kein Reset im klassischen Sinne nötig, nur ausreichend variablen um die logische Nachvollziehbarkeit zu gewährleisten.. UNd ja das geht besser als mit dem Code daoben, aber auf die Schnelle sollte das so in etwa hinkommen
Klar, so kann man das machen, aber das geht nur wenn du genug Samplewerte vom Peak hast. Wenn dein Peak als Beispiel 1 us lang ist, du aber nur mit 100 kHz abtasten kannst, dann bringt dir das in Software nichts. Da bräuchte man eine Analoge Schaltung die immer sagt wann ein Peak war. Dann wird die gehaltene Spitzenspannung abgetastet und zurückgesetzt. Das was du geschrieben hast funktioniert aber wunderbar wenn man schnell abtastet. Das mache ich bei meinen Peaks. Aber der Theadersteller will glaube ich etwas anderes.
Gustl B. schrieb: > Ja ich weiß, das geht aber digital nur wenn man vom Peak mehrere viele > Abtastwerte hat oder man macht das analog. Du suchst keinen analog arbeitenden Detektor?
Gustl B. schrieb: > Da bräuchte man eine Analoge Schaltung die immer sagt wann ein Peak war. > Dann wird die gehaltene Spitzenspannung abgetastet und zurückgesetzt. > > Das was du geschrieben hast funktioniert aber wunderbar wenn man schnell > abtastet. Das mache ich bei meinen Peaks. Aber der Theadersteller will > glaube ich etwas anderes. ehrlich gesagt fand ich die Fragestellung des TE etwas schwammig, selbst für meine Verhältnisse. Aber klar wenn die Abtastrate nicht stimmt, dann hat man im Zweifel was verpasst. trifft aber auch auf analogen VU Meter zu.. ist der peak zu klein für die Spulensättigung passiert nix, ist der peak zu kurz für vollständige Sättigung verpasst man auch was.. Für alles eigentlich.. alles was zu klein oder zu kurz ist um gemessen zu werden verbleibt eben unbeobachtet ;) Deswegen ging ich davon aus, dass alles was TO wissen will er auch detektieren kann, der einfachheit halber. Aporpos VU Meter svedisk ficklampa schrieb im Beitrag #6077565: > Jedes VU-Meter einer alten Tapemaschine hat einen gut > funktionierenden Peakdetektor. Seltsamerweise kommt der > ohne Reset aus. lustigerweise kommen die nämlich nicht wirklich ohne reset aus.. die nutzen ein timed reset in analogen und manchmal ein time decay in digitalen VU Metern. ein ähnliches Konzept ist sicher auch hier machbar.. sollte es um "kurze" Abtastraten gehen, kann man bei erkanntem peak einen timer starten, der dann entweder den peak wert verfallen lässt (time decay) oder ihn löscht (timed reset) dazu muss man aber genauer wissen was zu erwarten ist und was man damit machen will, sonst ist der timer schlicht ungenügend (zu lang oder zu kurz, zu kleiner oder zu grosser Verfall)
Gustl B. schrieb: > Wenn dein Peak als Beispiel 1 us lang ist, du aber nur mit 100 kHz > abtasten kannst, dann bringt dir das in Software nichts. > > Da bräuchte man eine Analoge Schaltung So ist es. Und dazu ist es jetzt wichtig, zu definieren, was überhaupt ein "Peak" ist. Ist ein Peak einfach nur das Überschreiten einer festen Schwelle von z.B. 3V? Oder können sich z.B. auf der steigenden Rampe eines Sägezahns mit 1kHz und 4V Amplitude viele 1µs "Peaks" mit jeweils 1V sitzen, so dass der "kleinste Peak" nur 1V hat und der "größte Peak" aber 5V und auf der Rampe damit 1000 Peaks pro Sägezahn-Zyklus kommen? Oder kann erst ein "Peak" mit 4V kommen, dann die Spannung auf 1V sinken und dann 10us später ein "Peak" mit 2V? Oder ist das zweite dann kein relevanter Peak, und nur einer mit 5V wäre beachtenswert? Dann ist es noch interessant, wie oft so ein "Peak" kommt. Und welche der ankommenden "Peaks" erkannt werden müssen... Wenn man das weiß, kann man sich Gedanken um einen analogen Spitzenwertspeicher mit passendem Decay machen.
Simonium schrieb: > Ich habe mich bereits etwas über Peak-Detektoren schlau gemacht und habe > nun folgendes Problem: Dann hast du nicht gründlich genug gelesen. Den "Rosenfell"-Detektor gibt es mittlerweile seit über 40 Jahren. Im Prinzip ist das einfach nur eine zum Eingangs-Kurvenverlauf mitlaufende Hysterese in dem nachfolgenden Komparator. W.S.
my2ct schrieb: > Du suchst keinen analog arbeitenden Detektor? Ich sowieso nicht. sid schrieb: > ehrlich gesagt fand ich die Fragestellung des TE etwas schwammig, > selbst für meine Verhältnisse. Sehe ich ganz genau so. Im einfachsten Fall reicht ein Komparator. Kommt aber eben auf die Impulse an und was dazwischen stattfindet. Lothar M. schrieb: > Wenn man das weiß, kann man sich Gedanken um einen analogen > Spitzenwertspeicher mit passendem Decay machen. Mal gucken, vielleicht meldet er sich ja nochmal in diesem Thread und hat Details im Gepäck.
:
Bearbeitet durch User
Es gab mal Akku-Lade-ICs die den leichten Spannungsabfall am Ende des Ladevorgangs von NiCd auswerteten und als Abschaltkriterium benutzten. Für NiMH war der Peak viel kleiner, da hat es nicht mehr richtig funktioniert. Das ging mit einem Kondensator, der die Spitzenspannung noch eine Weile behielt, während die aktuelle Spannung am Komparator abfiel - eine rein analoge Methode.
Simonium schrieb: > Nun hat man das Problem, das es eine zweite Schaltung braucht, welche > überhaupt erst feststellt, das gerade eine Spitze war, und das per > digitalem Signal ausgibt Dieses "Problem" hat man nur, wenn man sein Programm irgendwie komplett über Interrupts oder Events steuert. Dann braucht man tatsächlich die Qualität "war da ein Peak?" und zusätzlich die Quantität "wie hoch war der Peak?". Wenn laufend abgetastet wird, kann man das Erstere ganz einfach mit Software lösen. Man braucht also nur noch einen Spitzenwertspeicher, der den Peak so lange speichert, dass die folgende AD-Wandlung noch "ziemlich gut" den originalen "Spitzenpegel" erfassen kann. Dafür reicht im einfachsten Fall eine Diode (oder ein idealer https://de.wikipedia.org/wiki/Präzisionsgleichrichter), ein Kondensator und ein Entladewiderstand. Der Kondensator speichert den Spitzenwert, und der Widerstand bestimmt dann, wie schnell der im Kondensator gespeicherte Spitzenwert entladen wird und "verloren" geht. Das ist im Prinzip wie beim Briefkasten: man könnte einen Briefdetektor einbauen, der dir Bescheid gibt, wenn jemand was einwirft. Oder man schaut einfach zeitgesteuert jeden Tag mal rein. Das Zweite ist einfacher "zum Laufen" zu bekommen... ;-)
Lothar M. schrieb: > Wenn laufend abgetastet wird, kann man das Erstere ganz einfach mit > Software lösen. Ja, aber wie schon mehrmals darauf hingewiesen geht das nur wenn man im Vergleich zur Peakhäufigkeit sehr oft abtastet. Gustl B. schrieb: > Stell dir vor da ist ein Peak. Die Spannung wird schön abgestastet. Dann > wird ein weiteres Sample gemacht und die Spannung ist in etwas gleich > hoch. War das jetzt ein neuer Peak der gezählt werden soll oder stammt > das noch vom alten Peak und ist nur durch das Rauschen etwas > unterschiedlich? Edit: Das ist ein sinnvoller Vorschlag von dir, aber solange wir hier nicht mehr wissen ist das nur ein Blick in die Glas^^ Kristallkugel.
:
Bearbeitet durch User
Beitrag #6078221 wurde von einem Moderator gelöscht.
Vielen Dank für die Antworten, ich versuchs nochmal besser zu erklären. Meine Pulse sind relativ schnell ansteigen und fallen dann langsam ab, die Pulse treten unregelmässig auf und sind auch in ihrer grösse sehr unterschiedlich nehmen wir mal folgende 3 pulse in der genannten Reihenfolge 1.) 250mV 2.) 10mV 3.) 50mV gehen wir davon aus das die Schaltung gestartet wurde und noch kein Puls entstanden ist, so ist: Vout = Vin (0V) Puls 1 beginnt, und somit steigt die Spannung. Nun haben wir folgende Situation: Vout = Vin (x% von Puls) Sobald der Maximalwert des Pulses erreicht wurde, fällt dieser wieder ab, nun gilt: Vout = max Vin (Peakwert) In exakt diesem Moment, muss der ADC vom MCU ausgewertet werden, um den Peak von Puls 1 zu erfassen, und den Peak-Detektor zu nullen, damit dieser wieder bereit ist, den nächsten, bedeutend kleineren Puls 2 von 10mV zu erfassen. Würde man dauernd messen, müsste man ja eine art Timer bauen, der prüft ob der Peak noch ansteigt, und wenn nicht, nullt. Da die Pulse relativ kurzlebig sind und der MCU nicht besonders schnell ist, ist das unmöglich. Auch zum "Dauersamplen" ist ein extrem schneller ADC nötig. Wird der Puls gespeichert kann ein bedeutend langsamerer ADC benutzt werden. Ein Puls dauert ca. 160ns Ich habe irgendwo mal eine Schaltung gesehen, die bei Sinuswellen jeweils auf dem Maximalwert der Amplitude einen digitalen Puls absetzt. Sowas suche ich, in Verbindung zu einem Peak-Detektor
Beitrag "Re: Pollin PMT-Modul" Bei Szintillationsdetektoren hat man genau die Aufgabe, die Impulshöhe zu erfassen.
Beitrag #6078241 wurde von einem Moderator gelöscht.
Christoph db1uq K. schrieb: > Bei Szintillationsdetektoren hat man genau die Aufgabe, die Impulshöhe > zu erfassen. Und wie macht er das? Simonium schrieb: > Auch zum "Dauersamplen" ist ein extrem schneller > ADC nötig. Das mache ich hier, allerdings nicht mit den kurzen Pulsen, sondern mit den deutlich längeren exponentiell abfallenden. Aber wenn die Pulse wirklich meist einzeln sind und dazwischen die Spannung wieder auf eine Nulllinie heruntergeht, dann könnte man einen Komparator verwenden. Der liefert dann ein binäres Signal ob Puls oder nicht. @Simonium: Wie viele Impulse hast du je Sekunde und geht die Spannung zwischen den Pulsen wieder auf eine Nulllinie zurück?
Es geht um einen Art PMT, aber hald eine SiPM. Zu erkennen das wieder null bzw. nahe null ist, wäre sogar noch ein idealer Zusatz, da es sonst sein kann, das im abfallenden Puls bereits der nächste gibt. Die Pulse befinden sich im bereich von 40/s bis zu 500'000/s. Bei der hohen Pulsrate dürfen selbstverständlich auch einige verloren gehen
160ns ist kürzer als mein PMT mit etwa 3µs, da ist die Gefahr von Überschneidungen geringer. Zu dem Thema gibt es einen Text im DSP-Guide: http://www.dspguide.com/ch17/2.htm um Figure 14-4 herum. Verloren gehen ist weniger störend als die Überlagerung, da die zu falschen Messpunkten im Gammaspektrum führt. >Und wie macht er das? weiß ich auch nicht, entweder hat man einen ADC der noch schneller ist, oder ein analoger Peakdetektor triggert ein Sample¬Hold, das der ADC dann etwas gemütlicher auslesen kann.
Ich habe nun mal ein bisschen Rumgespielt und habe folgende Lösung erstellt. Was haltet ihr davon? Funktioniert das in der Realität? Kann mir jemand sagen wie man diese Wellen vom Sample and Hold Signal entfernt?
Christoph db1uq K. schrieb: > 160ns ist kürzer als mein PMT mit etwa 3µs PMTs haben oft einen Ausgang für diese sehr kurzen Impulse und einen zweiten Ausgang für deutlich langsamere exponentiell abfallende Pulse. Ich verwende hier auch nur die langsameren. Wobei die Energieauflösung bei der PMT sowieso deutlich geringer ist als bei einem z. B. Germaniumdetektor für Gammas. Hier reichen uns für die PMT Signale 6 oder 7 Bits. Und da gibt es auch günstig schnelle ADCs die mit 8 Bit die schnellen Peaks abtasten könnten. Könnte man dafür nicht einfach ein Oszi verwenden? Da kann man bei neueren Modellen echt viele Triggerbedingungen einstellen. Ich habe das mal mit einem Agilent DSOX2000A versucht, aber da war die Datenübertragung zum PC (nach Labview über USB 2.0) sehr langsam. Zu langsam. Das konnte dann nur so <10 Triggerereignisse/s. Eine andere Überlegung wäre ein Picoscope. Natürlich könnte ich jetzt Zeit in ein ordentliches Labview-Programm versenken und das noch irgendwie optimieren, aber vorher würde ich gerne wissen ob das überhaupt geht und wenn ja mit welchem Modell. Also ... geht das was der Theadersteller haben will mit einem aktuellen Einsteigeroszi und einer Software am PC? Es muss ja nicht der ganze Signalverlauf jedesmal zum PC übertragen werden, sondern es reicht das Maximum. Das rechnen modernere Oszis sowieso aus. Und das eben für 500k Trigger/s. Edit: Simonium schrieb: > Ich habe nun mal ein bisschen Rumgespielt und habe folgende Lösung > erstellt. Was haltet ihr davon? Funktioniert das in der Realität? > > Kann mir jemand sagen wie man diese Wellen vom Sample and Hold Signal > entfernt? Genau so hätte ich das gebaut mit Komparator und fester Schwelle. Ob das funktioniert weiß ich aber nicht. Wobei ... wir haben alte Fertiggeräte aus den 90ern die zu jedem Impuls einen und nur einen Wert ausgeben. Da stellt man auch eine Schwelle ein ab der etwas als Impuls erkannt werden soll.
:
Bearbeitet durch User
Gustl B. schrieb: > Hier reichen uns für die PMT Signale 6 > oder 7 Bits. Und da gibt es auch günstig schnelle ADCs die mit 8 Bit die > schnellen Peaks abtasten könnten. Ich denke nicht das 8bit für PMT's reichen. Wenn man von einem normalen Energiebereich ausgeht, wären das 3000keV/255Werte. Mit 10bit fährt man vermutlich deutlich besser. Selbst die alten Spektrometriekarten für ISA-PCs haten 2048-8192 channels. > Simonium schrieb: >> Ich habe nun mal ein bisschen Rumgespielt und habe folgende Lösung >> erstellt. Was haltet ihr davon? Funktioniert das in der Realität? >> >> Kann mir jemand sagen wie man diese Wellen vom Sample and Hold Signal >> entfernt? > > Genau so hätte ich das gebaut mit Komparator und fester Schwelle. Ob das > funktioniert weiß ich aber nicht. Wobei ... wir haben alte Fertiggeräte > aus den 90ern die zu jedem Impuls einen und nur einen Wert ausgeben. Da > stellt man auch eine Schwelle ein ab der etwas als Impuls erkannt werden > soll. Ich glaube das ist ein SCA, bzw. Diskriminatormodul
Simonium schrieb: > Ich denke nicht das 8bit für PMT's reichen. Hast du ein PMT Spektrum aufgenommen? Wie breit sind denn da die Peaks? Bei Goolge habe ich jetzt eines gefunden als Bildchen. https://www.ld-didactic.de/software/524221de/Content/Resources/Images/Ra226alp.png Da würden auch deutlich weniger "Kanäle" oder Bits reichen. Simonium schrieb: > Ich glaube das ist ein SCA, bzw. Diskriminatormodul Ich meine sowas wie den Canberra ADC 8075. Hier mal Manuals/Datenblätter zu so ähnlichen ADCs: http://www.hep.fsu.edu/~wahl/phy4822/expinfo/gamma/manual_adc8713.pdf https://www3.nd.edu/~wzech/Model-8701-SS-CSP0068.pdf
Gustl B. schrieb: > Simonium schrieb: >> Ich denke nicht das 8bit für PMT's reichen. > > Hast du ein PMT Spektrum aufgenommen? Wie breit sind denn da die Peaks? > Bei Goolge habe ich jetzt eines gefunden als Bildchen. > https://www.ld-didactic.de/software/524221de/Content/Resources/Images/Ra226alp.png > Da würden auch deutlich weniger "Kanäle" oder Bits reichen. Mit einem optimalen Auswertemodul und einer guten PMT ist bei einer Energie von 600keV eine FWHM von 6% möglich, das bedeuted das bei einem Peak von 600keV bei halben maximum die Pulsbreite 6% ist also 600*0.06 = 36keV > Simonium schrieb: >> Ich glaube das ist ein SCA, bzw. Diskriminatormodul > > Ich meine sowas wie den Canberra ADC 8075. > Hier mal Manuals/Datenblätter zu so ähnlichen ADCs: > http://www.hep.fsu.edu/~wahl/phy4822/expinfo/gamma/manual_adc8713.pdf > https://www3.nd.edu/~wzech/Model-8701-SS-CSP0068.pdf
Was verwendest du als Szintillator? Hier wird ein Gel verwendet. Damit wird die Probe vermischt und das kommt in eine Quarzkuvette. Diese liegt dann auf der PMT. Also die Photonenzahl die der PMT sieht hängt nicht nur von der Energie, sondern auch davon ab wo in der Kuvette das Licht erzeugt wird. Das wird dann teilweise reflektiert oder geht in eine andere Richtung. Da wären natürlich andere bessere Möglichkeiten fein, aber auch nicht so irre wichtig, denn wir geben jedem Impuls fein aufgelöste Zeitstempel, man kann also einzelne Isotope auch dadurch nach der Messung filtern weil man weiß wie lange zwei Zerfälle auseinander liegen.
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.