Hallo, ich beschreibe mal, was gemacht wird: 1. Ein ADC 8 Bit 1 GSample/s digitalisiert ein Analogsignal. Darin sind Impulse enthalten die ca. 10 ns bis 20 ns breit sind (stammen aus radioaktivem Zerfall). Mit diesen wenigen Abtastwerten je Impuls erfasse ich statistisch natürlich nur sehr selten das tatsächliche Maximum der Analogspannung. Meine Idee war also da Upsampling zu betreiben. Ich habe die Abtastrate virtuell vervierfacht (verdoppelt) und dahinter Tiefpass gefiltert auf < 1/2 der ursprünglichen Abtastrate. Bei virtuellen 4 GSample/s also auf < 1/8 davon. Das gefilterte Signal sieht ausch schön glatt aus und in der FFT sehe ich wunderbar welcher Bereich durch kommt und wo gedämpft wird. Für Upsampling wiederhole ich einfach nur die Abtastwerte und die Filterung erledigt ein Xilinx FIR IP dem ich Filterkoeffizienten gebe. 2. Für die Messung des Radioaktiven Zerfalls interessiert mich die Höhe des jeweiligen Impulses. Also habe ich eine Maximumerkennung gebaut die für jeden Impuls einen Wert ausgibt der eben der Maximalwert ist. 3. Aus diesen Werten baue ich am PC ein Spektrum. Nach rechts ist da die Amplitude aufgetragen, nach oben die Häufigkeit. Tja und das sieht nicht gut aus. Ich bekomme seine seltsame Frequenz im Spektrum. Das sieht also so aus als wären nach Upsampling und Filterung manche Maximalwerte wahrscheinlicher und manche nicht. Bei der Messung 0 war das 4x Upsampling, bei der Messung 1 2x Upsampling. Das hat also was damit zu tun. Ganz ohne Upsampling ist diese Störung weg, aber ich bekomme dann auch nur eine geringere Auflösung insgesamt. Wenn ich einen gleitenden Mittelwert ohne Upsampling mache dann sind auch keine Störungen vorhanden. Bei 4x Upsampling habe ich noch einen Ausschnitt mit 452 Bins, das sind 14 Perioden der Störung. Also recht genau 32 Bins/Periode. Beim 2x Upsampling im Aussschnitt sind 192 Bins und 24 Perioden, also 8 Bins/Periode. Kann mir jemand erklären wieso da bei jeweils 32 (8) Bins manche wahrscheinlicher/häufiger sind und manche nicht und wie ich das vermeiden kann? Ich habe eine funktionierende Lösung ohne Upsampling und mit gleitendem Mitteilwert, aber ich würde gerne Upsampling machen weil ich mir damit eine bessere Auflösung erhoffe. Denn mit Upsampling und Filterung bekomme ich statt der initial 7 ADC Bits (das Signal ist nur positiv, der Eingang vom ADC aber bipolar) dann deutlich mehr Bits (ich würde auf 16 beschränken). Mit dem Gleitenden Mittelwert über je 8 Abtastwerte bekomme ich 7+3=10 Bits. Reicht auch (siehe Anhang), mehr wäre aber nett. Vor allem interessiert mich aber wieso diese Störung entsteht, das würde ich gerne verstehen. Vielen Dank!
:
Bearbeitet durch User
Interessant. Hab ich mich auch mal gefragt: Wie kriegt man aus
abgetasteten Signalen, die Nyquist erfüllen, den Maximalwert? Keine
Lösung gefunden.
Deine Einlassung verstehe ich nur bruchstückhaft. 'virtuell upsampeln'
heißt wohl die Werte einfach zu wiederholen.
>>'Nach rechts ist da die Amplitude aufgetragen,' Bei einem Spektrum ist nach
rechts die Frequenz aufgetragen, bei einer Amplitudendichteverteilung ist nach
rechts die Amplitude aufgetragen ?!
So verstehe ich Deine Frage noch nicht.
Cheers
Detlef
Du hast also ein unterabgetastetes Signal wie auch immer 'geupsampelt` und hast plötzlich die Informationen, die im unterabgetasteten Signal nicht vorhanden waren. Donnerwetter, das ist revolutionär und stellt die Nachrichtentechnik auf ganz neu Füße.
Detlef _. schrieb: > 'virtuell upsampeln' > heißt wohl die Werte einfach zu wiederholen. Exakt. Und danach wird das natürlich Tiefpass gefiltert weil sonst wäre nix gewonnen. Detlef _. schrieb: > Bei einem Spektrum ist nach > rechts die Frequenz aufgetragen Spektrum ist ein sehr allgemeiner Begriff. Hier ist es ein Energiespektrum aus Zerfallsenergien. Also nach rechts ist die Zerfallsenergie aufgetragen. Aber weil die hier er Höhe eines Impulses entspricht kann man auch sagen nach rechts ist die Höhe/Maximum der Impulse aufgetragen. Wenn also ein Bin im Spektrum bei x den Wert n hat, dann hab es während der Messzeit also n Impulse mit dem Höhe/Maximum x. Frank K. schrieb: > Du hast also ein unterabgetastetes Signal Nein. Mein Signal sind Impulse die ab und zu kommen und eine Breite von 10 ns bis 20 ns haben. Das ist vor dem ADC auf ca. 300 MHz begrenzt und wird mit 1 GSample/s abgetastet. 10 ns bis 20 ns sind eher 100 MHz bis 50 MHz Grundfrequenz in den Impulsen, aber die haben noch Buckel dran die ich auch digitalisieren möchte, daher die ca. 300 MHz. Zum Verständnis: So ein Impuls ist 10 ns bis 20 ns lang, analog. Jetzt hat der aber nur zu genau einem Zeitpunkt sein Maximum. Ich taste das mit 1 GSample/s ab und bekomme 10 bis 20 Abtastwerte. Dann ist es sehr unwahrscheinlich, dass einer der Abtastwerte exakt das Maximum des analogen Signals repräsentiert. Exakt wird man das sowieso nur selten schaffen, aber wenn man die Abtastrate virtuell erhöht, dann ist der maximale Abtastwert statistisch näher an dem echten Maximum. Einfach weil die Zeitabstände zwischen den Abtastwerten kleiner werden.
Das hab ich hier >>>>>>https://www.matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=201773&start=0&lps=1496653#v1496653 mal die Kundigen gefragt. Die Antwort |f(t)| < sqrt(2*B*E), B Bandbreite, E Energie hab ich nicht nachvollziehen können, nicht ausprobiert und auch nicht geglaubt. >>>ist der maximale Abtastwert statistisch näher an dem echten Maximum. Einfach weil die Zeitabstände zwischen den Abtastwerten kleiner werden. Nein. Wenn Du viermal 3.14 sagst bist Du doch auch nicht näher bei pi ?! Cheers Detlef
Detlef _. schrieb: > Nein. Wenn Du viermal 3.14 sagst bist Du doch auch nicht näher bei pi ?! Natürlich nicht. Wenn alle Abtastwerte - wie in deinem Beispiel - konstant sind, dann braucht man das nicht und Upsampling ändert dann auch genau nix. Aber hier geht es NICHT um konstante Abtastwerte (das wäre Gleichspannung, da bräuchte ich keinen schnellen ADC), sondern um Impulse. Und da macht Upsampling tatsächlich, dass man näher an das Maximum kommt. Im Anhang ein paar Bildchen: 4GHz_upsample.png Zeigt eine Periode eines Sinus ohne Upsampling und mit Upsampling (das ist simuliert). puls_roh.png Zeigt wie die Impulse aussehen wenn die direkt vom ADC kommen, echte Messwerte, mehrere Impulse überlagert. puls_fir.png Zeigt Impulse nach dem Upsampling und Filerung auf virtuelle 4 GSample/s. Das sind ebenfalls echte Messwerte, aber andere Impulse als im anderen Bildchen. Wie man sieht ist das schön glatt und man kommt näher ans Maximum.
:
Bearbeitet durch User
Moin, Wie schauen denn deine Impulse aus, die du da aktuell anguckst? Sind das abklingende e-Funktionen oder was gaussfoermiges oder nochwas anderes? Gruss WK
Siehe Bildchen. Dergute W. schrieb: > Sind das > abklingende e-Funktionen Einigermaßen. Das sind die Impulse aus der Anode eines Photomultipliers. Und nochmal als Erklärung: Diese Zacken mit einer Frequenz im Energiespektrum bedeuten, dass im gefilterten Signal wie hier puls_fir.png zu sehen manche Höhen/Amplituden der Impulse wahrscheinlicher/häufiger sind und manche weniger. Und das sollte nicht sein. Klar, weil das radioaktiver Zerfall ist sind tatsächlich manche Höhen/Amplituden häufiger, aber nicht mit dem Abstand von 32 (8) sondern so wie in gleitender_Mittelwert.png zu sehen.
:
Bearbeitet durch User
Detlef _. schrieb: > Interessant. Hab ich mich auch mal gefragt: Wie > kriegt man aus abgetasteten Signalen, die Nyquist > erfüllen, den Maximalwert? Keine Lösung gefunden. Ich kann Dir nicht folgen. Es gilt ja wohl die Aussage, dass der Verlauf ZWISCHEN den Abtastpunkten durch die (Summe der) Stoßantwort(en) des AA-Filters festgelegt ist. Also wird man wohl mit ebendieser Stoßantwort (näherungsweise) interpolieren und die Extrema dieser Interpolanten bestimmen müssen... Was übersehe ich?
Egon D. schrieb: > Also wird man wohl mit ebendieser Stoßantwort > (näherungsweise) interpolieren und die Extrema dieser > Interpolanten bestimmen müssen... Exakt so habe ich das auch verstanden. Was ich nicht verstehe ist, wieso im gefilterten Signal manche Maximalwerte der Impulse wahrscheinlicher sind als andere. Welche Eigenschaft/mathematisches Detail eines Filters/Implementation von dem Xilinx FIR IP führt dazu, dass das so ist? Ich würde gerne hören, dass das nicht am Filter liegen kann, sondern an dem IP von Xilinx liegt^^ dann würde ich selber einen paralelisierten FIR schreiben. Aber bisher glaube ich einfach, dass Xilinx das mit dem FIR schon richtig macht.
:
Bearbeitet durch User
>>Aber hier geht es NICHT um konstante Abtastwerte (das wäre >>Gleichspannung, da bräuchte ich keinen schnellen ADC), sondern um >>Impulse. >>Und da macht Upsampling tatsächlich, dass man näher an das Maximum >>>kommt. Du wiederholst die vier Abtastwerte. Das bringt nix Neues. >>>Es gilt ja wohl die Aussage, dass der Verlauf ZWISCHEN >>>den Abtastpunkten durch die (Summe der) Stoßantwort(en) >>>des AA-Filters festgelegt ist. Ja genau. Die Summe bestimmen, Ableitung 0 setzen, die Maxima bestimmen, das größte raussuchen. So gehts' theoretisch, aber wie praktisch? Cheers Detlef
Moin, Gustl B. schrieb: >> Sind das >> abklingende e-Funktionen > > Einigermaßen. Das sind die Impulse aus der Anode eines Photomultipliers. Dann wuerd' ich sagen: Du hast schlechte Karten. Kleines Beispiel: "In echt" sieht dein Eingangssignal z.b. mal so aus: [0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1] Du haettest jetzt also gerne den Wert 1024 an Information aus diesen Samples gezogen. Jetzt ist dein Wandler aber langsamer, also kriegt der nur jedes 4. Sample mit. Also je nach Zeitpunkt kriegst du dann solche Werte tatsaechlich in deinem System nach dem ADC - welche der 4 haengt jetzt nur vom Zufall, bzw. dem Zeitpunkt der Wandlung deines Wandlers ab:
1 | downsample([0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1],4,0) |
1 | downsample([0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1],4,1) |
1 | downsample([0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1],4,2) |
1 | downsample([0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1],4,3) |
Also jedes dieser Ergebnisse kann also potentiell rauskommen, wenn die Originalfolge am ADC Eingang ansteht. Aber wie willst du da rausfinden, was tatsaechlich am Eingang anstand?
1 | downsample([0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1],4,2) |
2 | ans = |
3 | |
4 | 0 256 16 1 |
Ist ja das selbe Ergebnis wie:
1 | downsample([0,0,0,0,512,256,128,64,32,16,8,4,2,1,0],4,1) |
2 | ans = |
3 | |
4 | 0 256 16 1 |
Nur war diesmal der Originalimpuls halt nur halb so hoch... Da kannst du wieder upsamplen wie du willst, die Information kriegst du nicht raus, weil dein e-Impuls immer hoeher und frueher angefangen haben koennte oder niederige und spaeter - und beides fuehrt zu den selben Samples. Gruss WK
Gustl B. schrieb: > Detlef _. schrieb: >> Bei einem Spektrum ist nach rechts die Frequenz >> aufgetragen > > Spektrum ist ein sehr allgemeiner Begriff. Naja, die übliche Bedeutung hängt auch von der Fachrichtung ab. Unter einer "Spektralnorm" oder dem "Spektrum einer Matrix" kann sich der Techniker i.d.R. auch nix vorstellen... Wenn wir HIER über eine Häufigkeitsverteilung diskutieren, würde ich vorschlagen, sie auch "Häufigkeitsverteilung" oder meinetwegen "Histogramm" zu nennen. Gustl B. schrieb: > aber wenn man die Abtastrate virtuell erhöht, Bei allem Respekt -- aber ich finde diesen inflationären Gebrauch von "virtuell" furchtbar. Entweder die Abtast- rate IST erhöht, oder sie ist NICHT erhöht -- eine "scheinbare" Erhöhung ist... naja. Lassen wir das. > dann ist der maximale Abtastwert statistisch näher > an dem echten Maximum. Einfach weil die Zeitabstände > zwischen den Abtastwerten kleiner werden. Wir haben das, glaube ich, schon mal diskutiert, und ich glaube mich zu erinnern, dass ich das schon damals Murx fand... :) Die Stoßantwort des AA-Filters muss sich durch irgendwas gut Handhabbares approximieren lassen, z.B. durch einen Spline. Von dem Spline sollte man analytisch das Extremum des mittleren Segmentes berechnen können, so dass man im Endeffekt Höhe (und ggf. zeitliche Lage) dieses Extremums als Funktion der k Abtastwerte erhält. Als Input verwendet man natürlich die ORIGINALEN Abtast- werte, nix Hochgesampeltes.
Detlef _. schrieb: >>>>Es gilt ja wohl die Aussage, dass der Verlauf ZWISCHEN >>>>den Abtastpunkten durch die (Summe der) Stoßantwort(en) >>>>des AA-Filters festgelegt ist. > > Ja genau. Die Summe bestimmen, Ableitung 0 setzen, die > Maxima bestimmen, das größte raussuchen. So gehts' > theoretisch, aber wie praktisch? Exakte Summe durch Spline-Interpolation von k aufeinander- folgenden Abtastpunkten ersetzen (die Fehlerabschätzung wird dem Praktikanten als Übungsaufgabe überlassen :), analytisch ableiten, Extremum als Funktion der k Stütz- stellen darstellen. Das wäre zumindest mein hemdsärmeliger Ansatz. So ähnlich wie bei den Integrationsverfahren höherer Ordnung, nur eben umgedreht -- nicht für die Fläche, sondern für das Extremum.
Gustl B. schrieb: > Was ich nicht verstehe ist, wieso im gefilterten > Signal manche Maximalwerte der Impulse wahrscheinlicher > sind als andere. Welche Eigenschaft/mathematisches > Detail eines Filters/Implementation von dem Xilinx > FIR IP führt dazu, dass das so ist? Das kann ich leider nicht beantworten -- ich vermute aber, dass es sich um einen mathematisch sehr grund- sätzlichen Effekt handelt: Ich habe mit der rechnerischen Schärfung von Digitalbildern (Dekonvo- lution) experimentiert und dabei auch festgestellt, dass die Schärfung Artefakte in der Häufigkeitsverteilung hervorruft, die ich nicht erklären kann. Es entstehen lokale Häufigkeitsmaxima und Minima. Es liegt aber nicht (offensichtlich) an der Numerik der Dekonvolution, denn das Verfahren konvergiert ausreichend gut, und rein subjektiv ist der Effekt auf das Bild absolut überzeugend. > Ich würde gerne hören, dass das nicht am Filter liegen > kann, sondern an dem IP von Xilinx liegt^^ Hehe... das kann ich mir vorstellen! :)
Detlef _. schrieb: > Du wiederholst die vier Abtastwerte. Das bringt nix Neues. Da noch nicht. Aber danach wird das Tiefpass gefiltert. Und das bringt Neues. Detlef _. schrieb: > Ja genau. Die Summe bestimmen, Ableitung 0 setzen, die Maxima bestimmen, > das größte raussuchen. So gehts' theoretisch, aber wie praktisch? Praktisch nimmt man einen FIR Filter, lädt da die Koeffizienten für einen Tiefpass rein und dann macht man die Maximumerkennung auf dem Tiefpass gefilterten Signal. Dergute W. schrieb: > Jetzt ist dein Wandler aber langsamer, also kriegt der nur jedes 4. > Sample mit. Nein, so krass ist das nicht wie in deinem Beispiel. Ich bekomme schon ein paar mehr Abtastwerte, nämlich so 10 bis 20. Und welche Werte der Impuls in echt hat ist unklar - jedenfalls hat der in echt unendlich viele Werte, nicht nur viermal so viele. Dergute W. schrieb: > weil dein e-Impuls immer hoeher und frueher angefangen haben > koennte oder niederige und spaeter - und beides fuehrt zu den selben > Samples. Das ist nur in deinem Beispiel weil du einen nicht bandbreitenbegrenzten e-Impuls verwendest. Bei mir ist der aber bandbreitenbegrenzt. Egon D. schrieb: > Wenn wir HIER über eine Häufigkeitsverteilung > diskutieren, würde ich vorschlagen, sie auch > "Häufigkeitsverteilung" oder meinetwegen "Histogramm" > zu nennen. Dann nennen wir das doch so wie man es üblicherweise tut: Zerfallsspektrum Jedes Spektrum ist eine Häufigkeitsverteilung. Ob das jetzt Frequenzen sind, deren Häufigkeiten/Amplituden aufgetragen werden oder irgendwelche anderen Dinge ist egal. Egon D. schrieb: > ntweder die Abtast- > rate IST erhöht, oder sie ist NICHT erhöht Die Abtastrate des ADCs ist natürlich nicht erhöht. Im FPGA wird sie durch Samplestuffing erhöht. Egon D. schrieb: > dass ich das schon damals > Murx fand... :) Mag sein, aber so richtig begründen kannst du das offensichtlich auch nicht. Egon D. schrieb: > Die Stoßantwort des AA-Filters muss sich durch irgendwas > gut Handhabbares approximieren lassen, z.B. durch einen > Spline. Klar, so könnte man das machen. Und welche Implementierung schlägst du vor die die Datenrate in Echtzeit schafft? Upsampling durch Samplestuffing und danach eine Tiefpassfilterung ist eine Interpolation. Dadurch kommt man näher an die tatsächlichen Werte eines bandbreitenbegrenzten Signals. Ich will da jetzt auch keine Grundsatzdiskussion führen ob mein Ansatz Sinn macht oder nicht. Ich möchte verstehen wieso hinter einem upgesampleten und gefilterten Signal manche Maximumwerte häufiger sind als andere. Egon D. schrieb: > ich vermute > aber, dass es sich um einen mathematisch sehr grund- > sätzlichen Effekt handelt: Ich habe mit der > rechnerischen Schärfung von Digitalbildern (Dekonvo- > lution) experimentiert und dabei auch festgestellt, dass > die Schärfung Artefakte in der Häufigkeitsverteilung > hervorruft, die ich nicht erklären kann. Es entstehen > lokale Häufigkeitsmaxima und Minima. Genau das vermute ich ebenfalls, aber ich wüsste auch gerne wieso das so ist. Hier bekomme ich ja auch lauter Artefakte, nur eben nicht in 2D wie in einem Bild, sondern in 1D. Aber fein, wenn du sowas auch beobachten konntest.
:
Bearbeitet durch User
Dergute W. schrieb: > Dann wuerd' ich sagen: Du hast schlechte Karten. > Kleines Beispiel: "In echt" sieht dein Eingangssignal > z.b. mal so aus: > [0,0,0,0,1024,512,256,128,64,32,16,8,4,2,1] > Du haettest jetzt also gerne den Wert 1024 an Information > aus diesen Samples gezogen. Ein Signal mit einer "unendlich" steilen Flanke ist ziemlich sicher nicht bandbegrenzt. Wir brauchen also nicht weiter zu diskutieren, weil bei Abtastung nicht bandbegrenzter Signale das Abtasttheorem sowieso nicht gilt. Warum nur wird ZWANGHAFT das Abtastfilter ignoriert?
Gustl B. schrieb: > Egon D. schrieb: >> dass ich das schon damals Murx fand... :) > > Mag sein, aber so richtig begründen kannst du > das offensichtlich auch nicht. Natürlich nicht -- hätte ich es gekonnt, hätte ich die Begründung schon damals geschrieben. Es ist halt nur so, dass ich schon früher die Erfahrung gemacht habe, dass man durch subjektive "Verschönerung" von Messwerten ganz fix Artefakte produziert, die man nicht erklären kann -- die aber von jetzt an auf Dauer in den "Messwerten" stecken. Deswegen bin ich da skeptisch... > Egon D. schrieb: >> Die Stoßantwort des AA-Filters muss sich durch irgendwas >> gut Handhabbares approximieren lassen, z.B. durch einen >> Spline. > > Klar, so könnte man das machen. Und welche Implementierung > schlägst du vor die die Datenrate in Echtzeit schafft? Noch gar keine -- vor der Implementierung kommt erstmal die theoretische Klärung, OB das so klappt, und WIE man es machen muss. > Upsampling durch Samplestuffing und danach eine > Tiefpassfilterung ist eine Interpolation. Ja -- aber: 1. Ich nehme an, Du hast das Augenmerk nicht darauf gerichtet, dass die Stossantwort Deines Tiefpasses identisch ist mit der des AA-Filters, oder? Es entsteht also ein Interpolationsfehler. 2. Du kommst zwar NÄHER an das Maximum heran, triffst es aber i.d.R. auch nicht --> zweite Fehlerquelle. > Dadurch kommt man näher an die tatsächlichen Werte > eines bandbreitenbegrenzten Signals. > > Ich will da jetzt auch keine Grundsatzdiskussion > führen ob mein Ansatz Sinn macht oder nicht. Naja, das habe ich schon damals nicht verstanden: Wenn man solches Zeug macht wie Du, dann kann man die Mathematik doch gar nicht so sehr hassen, dass man nicht wenigstens versuchen würde, durch vier Punkte eine kubische Parabel zu legen, davon die Ableitung zu bestimmen, die entstehende quadratische Gleichung zu lösen und schließlich das Extremum zu berechnen. (Das alles natürlich mit den originalen Messwerten, nicht den upgesampelten.) Du BESTEHST darauf, dort zu suchen, wo es hell ist, und nicht dort, wo Du den Groschen verloren hast. > Egon D. schrieb: >> ich vermute >> aber, dass es sich um einen mathematisch sehr grund- >> sätzlichen Effekt handelt: Ich habe mit der >> rechnerischen Schärfung von Digitalbildern (Dekonvo- >> lution) experimentiert und dabei auch festgestellt, dass >> die Schärfung Artefakte in der Häufigkeitsverteilung >> hervorruft, die ich nicht erklären kann. Es entstehen >> lokale Häufigkeitsmaxima und Minima. > > Genau das vermute ich ebenfalls, aber ich wüsste auch > gerne wieso das so ist. > Hier bekomme ich ja auch lauter Artefakte, nur eben > nicht in 2D wie in einem Bild, sondern in 1D. Aber > fein, wenn du sowas auch beobachten konntest. Mir ist klar, dass Dir das nur bedingt weiterhilft, aber ich habe, wie schon geschrieben, solche Effekte auch beobachtet. Das Schlimmste ist, dass ich zu wenig von Statistik verstehe, um eine passable Idee zu haben, wo man mit Suchen anfangen muss.
Moin, Egon D. schrieb: > Warum nur wird ZWANGHAFT das Abtastfilter ignoriert? Ganz einfach: Weil ich hier nix darueber lese. Das kann wiederum 2 Gruende haben: 1.) Ich hab's ueberlesen. 2.) Es steht tatsaechlich nix da. Gruss WK
Dergute W. schrieb: > Egon D. schrieb: >> Warum nur wird ZWANGHAFT das Abtastfilter ignoriert? > > Ganz einfach: Weil ich hier nix darueber lese. > Das kann wiederum 2 Gruende haben: > 1.) Ich hab's ueberlesen. > 2.) Es steht tatsaechlich nix da. Okay, stattgegeben. Die Diskussion über Gustls Radioaktivitätsgeschichte flammt alle halbe Jahre mal wieder auf; mir war noch erinnerlich, dass die Frage der Bandbegrenzung auch schon durchgehechelt und halbwegs positiv beantwortet wurde. Die Zählrohrimpulse können bauartbedingt nicht beliebig kurz werden, so dass eine Bandbegrenzung einigermaßen als gegeben angesehen werden kann. Konntest Du natürlich nicht wissen...
Gustl B. schrieb: > Mein Signal sind Impulse die ab und zu kommen und eine Breite von 10 ns > bis 20 ns haben. Das ist vor dem ADC auf ca. 300 MHz begrenzt und wird > mit 1 GSample/s abgetastet. 10 ns bis 20 ns sind eher 100 MHz bis 50 MHz > Grundfrequenz in den Impulsen, aber die haben noch Buckel dran die ich > auch digitalisieren möchte, daher die ca. 300 MHz. Ja, ist bandbreitenbegrenzt.
Gustl B. schrieb: > Tja und das sieht nicht gut aus. Ich bekomme seine > seltsame Frequenz im Spektrum. Das sieht also so > aus als wären nach Upsampling und Filterung manche > Maximalwerte wahrscheinlicher und manche nicht. Ich glaube, ich hatte eben eine Eingebung... Abschweifung: Ich denke, es könnte sich lohnen, eine geisteswissenschaftliche Dissertation o.ä. zum Thema "Die Bedeutung des Badezimmers für den Fortschritt in Wissenschaft und Technik" zu verfassen. Zum Beispiel berichtete der NASA-Ingenieur, der die bahnbrechende Idee zur Rettung des Weltraumteleskops "Hubble" hatte, dass ihm die zündende Idee unter der Dusche im Hotel kam. Der Entstehungsort meines nachfolgend dargestellten Einfalls soll aus Gründen des Anstandes dennoch verschwiegen werden... Also: Einfaches Upsampling (durch Wiederholen von Abtastpunkten) verändert die Häufigkeitsverteilung nicht, SOFERN die Wortbreite dabei erhalten bleibt. Natürlich ändern sich im Histogramm alle ABSOLUTEN Häufigkeiten, denn wenn z.B. Upsampling um Faktor 4 durchgeführt wird, steigt natürlich die Besetzung jeder Klasse um ebendiesen Faktor 4, und auch die Gesamtzahl an Messwerten wird um diesen Faktor größer. Die relative VERTEILUNG auf die Klassen bleibt aber gleich. Wenn aber gleichzeitig die WORTBREITE erhöht wird, ÄNDERT sich jedoch das Histogramm -- von den z.B. 10 Bit jedes Messwertes sind ja nur die obersten 8 signifikant, so dass auf eine Klasse im Histogramm, die tatsächlich Messwerte enthält (deren unterste beiden Bits immer "00" sind), immer drei Klassen folgen, die leer sind -- nämlich die Klassen mit den Bits "01", "10" und "11" unten. Nimmt man das Upsampling einfach durch Wiederholen von Werten vor, sind die eingefügten Werte (trivialerweise) zeitlich stark korreliert -- sie folgen nämlich direkt aufeinander. Infolge dieser zeitlichen Korrelation entsteht im Frequenzspektrum also eine falsche Linie mit der Frequenz fs/4, und wenn der folgende Tiefpass bei dieser Frequenz nicht gerade eine Nullstelle hat, findet sich diese Frequenz -- wenn auch abgeschwächt -- im geglätteten gefilterten Signal wieder. Soll heißen: Wenn schon die Ungleichverteilung innerhalb der GESAMTMENGE der Messwerte nicht vollständig unterdrückt wurde, dann ist es kein Wunder, dass auch die MAXIMA ungleich verteilt sind -- sie sind ja nur eine TEILMENGE aller Messwerte. Mögliche Abhilfe: Man nimmt das Upsampling nicht durch einfaches Wiederholen vor, sondern interpoliert linear: Aus der Folge "a_alt, a_neu" wird nicht einfach die Folge "a_alt, a_alt, a_alt, a_alt, a_neu, ..." gemacht, sondern "a_alt, (3*a_alt+1*a_neu)/4, (2*a_alt+2*a_neu)/4, (1*a_alt+3*a_neu)/4, a_neu".
Egon D. schrieb: > Exakte Summe durch Spline-Interpolation von k aufeinander- > folgenden Abtastpunkten ersetzen Spline Interpolation ist kein Modell für ein Anti-Aliasing Filter oder ein Rekonstruktionsfilter. Für die Anwendung von Splines gibt es null physikalische Evidenz. Da kommt dann irgendwas raus, 42 oder so. Cheers Detlef
Gute Idee! Was dagegen spricht: Beim Upsampling wird die Breite nicht erhöht. Aber im FIR wird die erhöht. Da gehen die Samples mit 8 Bit und die Koeffizienten mit 16 Bit rein. Vom Ergebnis nehme ich die 13 MSBs. Dann kann man das im Xilinx FIR auch als Interpolationsfilter bauen lassen. Da mache ich selber also gar kein Upsampling, sondern das macht das Filter. Irgendwie. Das Ergebnis hat die gleichen Fehler. Die Idee ist aber erstmal super, ich gucke mal in die Hardwarebeschreibung, vielleicht habe ich da ja Fehler.
Detlef _. schrieb: > Egon D. schrieb: >> Exakte Summe durch Spline-Interpolation von k >> aufeinanderfolgenden Abtastpunkten ersetzen > > Spline Interpolation ist kein Modell für ein > Anti-Aliasing Filter oder ein Rekonstruktionsfilter. Erstens war das Stichwort "Spline" nur ein Vorschlag, weil man für die Berechnung des Extremums die erste Ableitung braucht -- und die ist bei einem kubischen Spline halt eine quadratische Funktion, die sich noch vernünftig lösen lässt. > Für die Anwendung von Splines gibt es null > physikalische Evidenz. Zweitens ist mir nicht klar, was ich Dir getan habe, dass Du dermaßen angefressen reagierst. Für das Nähern des Sinus durch eine Gerade gibt es auch keinerlei PHYSIKALISCHE Evidenz -- trotzdem ist es unter den passenden Randbedingungen (nämlich für kleine Winkel) gängige Praxis. Das ist, wie jede Approximation, eine rein MATHEMATISCHE Sache.
Gustl B. schrieb: > Beim Upsampling wird die Breite nicht erhöht. Aber > im FIR wird die erhöht. Naja, zumindest für Faktor-2-Upsampling kannst Du das leicht selbst ausprobieren: Nicht einfach jeden Wert zweimal ausgeben, sondern die Folge "2*a_alt, a_alt+a_neu, 2*a_neu, ..." verwenden. Da die Messwerte, wie Du oben schreibst, ohnehin nur 7 Bit haben, hast Du das LSB ja noch zur Verfügung...
Kp ob es hilft, aber diese ganze spline Geschichte kann man auch direkt als fir Filter verpacken, sogar als fertig abgeleitete Funktion. Nennt sich savitzky golay Filter.
Gustl B. schrieb: > Kann mir jemand erklären wieso da bei jeweils 32 (8) Bins manche > wahrscheinlicher/häufiger sind und manche nicht und wie ich das > vermeiden kann? Leider nicht -- auf den ersten Blick und ohne groß darüber nachgedacht zu haben finde ich das erstaunlich. Wenn man davon ausgeht, dass die Impulse im wesentlichen gleich aussehen und sich nur in der Höhe unterscheiden, d.h. durch einen Faktor, dann sollten sich auch die Impulse hinter dem Upsampler und Filter nur durch diesen Faktor unterscheiden (und insbesondere deren Höhe), da es sich um lineare Operationen handelt. Zumindest in der Theorie. Hast Du mal versucht, Impulse z.B. aus einem Impulsgenerator einzeln einzuspeisen, deren Höhe Du variieren kannst? Die gemessene Höhe sollte dann ja nichtlinear von der tatsächlichen Höhe abhängen. Jan schrieb: > Kp ob es hilft, aber diese ganze spline Geschichte kann man auch direkt > als fir Filter verpacken, sogar als fertig abgeleitete Funktion. Nennt > sich savitzky golay Filter. Man könnte vielleicht auch eine sin(x)/x-Interpolation machen, wie in Digitaloszilloskopen. Das geht meines Wissens nach auch als FIR-Filter. Das kommt der Shannon-Whittaker-Rekonstruktion am nächsten: wenn x(t) das zeitkontinuierliche Signal ist und x_n = x(nT) die Samples sind, dann gilt bekanntlich
für ein bandbegrenztes Signal mit Bandbreite kleiner 1/2T. Das kann man mit endlich vielen Samples machen und so x(t) an beliebigen Punkten auswerten (das ist immer eine Approximation, weil ein bandbegrenztes Signal zeitlich notwendig unbegrenzt ist). Die Signalverarbeitungsexperten können zur Implementierung sicher mehr sagen.
Egon D. schrieb: > Erstens war das Stichwort "Spline" nur ein Vorschlag, > weil man für die Berechnung des Extremums die erste > Ableitung braucht -- und die ist bei einem kubischen > Spline halt eine quadratische Funktion, die sich noch > vernünftig lösen lässt. > >> Für die Anwendung von Splines gibt es null >> physikalische Evidenz. > > Zweitens ist mir nicht klar, was ich Dir getan habe, > dass Du dermaßen angefressen reagierst. Für das Nähern > des Sinus durch eine Gerade gibt es auch keinerlei > PHYSIKALISCHE Evidenz -- trotzdem ist es unter den > passenden Randbedingungen (nämlich für kleine Winkel) > gängige Praxis. Das ist, wie jede Approximation, eine > rein MATHEMATISCHE Sache. Lieber Egon, ich bin absolut nicht angefressen. Ich schätze Deine Beiträge sehr, die lese ich immer und bewege Sie in meinem Herzen und Kopf :) . Ich glaube, ich muss mal an meiner Aussenwirkung arbeiten, mir war nicht bewußt, daß das nicht so rüberkommt wie gedacht, sry. Und ja, Splines als Interpolation sind genauso unevident wie Geraden ;). Cheers Detlef
Mario H. schrieb: > Hast Du mal versucht, Impulse z.B. aus einem Impulsgenerator einzeln > einzuspeisen, deren Höhe Du variieren kannst? Die gemessene Höhe sollte > dann ja nichtlinear von der tatsächlichen Höhe abhängen. Tja so einen Generator habe ich leider nicht. Egon D. schrieb: > Infolge dieser zeitlichen Korrelation entsteht im > Frequenzspektrum also eine falsche Linie mit der > Frequenz fs/4, und wenn der folgende Tiefpass bei > dieser Frequenz nicht gerade eine Nullstelle hat, > findet sich diese Frequenz -- wenn auch abgeschwächt -- > im geglätteten gefilterten Signal wieder. Wie erzeugt man sich denn Koeffizienten für ein FIR das a) eine gewünschte Frequenzcharakteristik und b) Nullstellen an der richtigen Stelle hat? Egon D. schrieb: > Naja, zumindest für Faktor-2-Upsampling kannst Du > das leicht selbst ausprobieren: Nicht einfach > jeden Wert zweimal ausgeben, sondern die Folge > "2*a_alt, a_alt+a_neu, 2*a_neu, ..." verwenden. Das schreibe ich gerade. Danke! Egon D. schrieb: > Da die Messwerte, wie Du oben schreibst, ohnehin nur > 7 Bit haben, hast Du das LSB ja noch zur Verfügung... Ne, also es sind 8 Bits signed. Aber das SIgnal ist unipolar, also 7 nutzbare Bits für mich. Ich filtere aber die vollen 8 Bits. Jan schrieb: > Nennt > sich savitzky golay Filter. Danke, werde ich mir mal angucken.
So, ich habe etwas weiter getestet. Nicht mit richtigen Messungen weil Messzeit begrenzt und wertvoll ist, aber mit einem Signalgenerator. Das ist auch so ein Ding: Meine beiden Oszis haben einen eingebaut. Das neuere Rigol MSO5000 kann Pulse ausgeben, aber nur bis minimal 10% Dutycycle. Ernsthaft? Ich brauche so 100 mis macimal 1000 Impulse/Sekunde. Und hätte gerne < 20 ns Breite. Geht also nicht? Doch. Man kann die Signalform auf Arb. stellen und dann selber das Signal editieren. Das geht aber unfassbar schlecht und das Oszi stürzt dabei zuverlässig reproduzierbar ab. Da geht dann nix mehr ausser der Neustart. Immerhin, wenn man Glück hat, dann kann man da Pulse mit um die 20 ns. erzeugen. Mein älteres Oszi, ein DSO-X 2000 von Keysight kann auch Pulse und zwar kann man da die Breite direkt einstellen. Und zwar bis minimal 20 ns egal mit welcher Frequenz die Pulse ausgegeben werden. Tolle Sache! Leider kann man die Polarität der Pulse nicht einstellen - aber dann dreht man eben einfach die Breite auf das Maximum und schon ist der kurze Teil negativ. Geht also wunderbar und ohne Geräteabsturz. Die Idee von Egon habe ich jetzt eingebaut und das Ergebnis überzeugt leider nicht. Es ist leicht besser geworden, aber nicht so gut wie ohne Upsampling. Da das Ergebnis ohne Upsampling aber schon deutlich besser ist als die Messtechnik die hier bisher genutzt wird (bessere Energieauflösung und sehr viel genauere Zeitinformation) werde ich das jetzt ohne Upsampling verwenden. Vielen Dank für die Wortmeldungen, ich werde irgendwann^^ die Hardware und Ergebnisse vorstellen im dafür vorgesehenen Unterforum.
Gustl B. schrieb: > So, ich habe etwas weiter getestet. > > Nicht mit richtigen Messungen weil Messzeit begrenzt und wertvoll ist, > aber mit einem Signalgenerator. Das ist auch so ein Ding: Wie wärs, wenn du mit Zettel und Stift, oder einem Pythonskript testest?
mh schrieb: > Wie wärs, wenn du mit Zettel und Stift, oder einem Pythonskript testest? Gute Idee, aber wie soll ich das umsetzen? Im Spektrum sieht man diese periodischen Zacken, wenn die Statistik gut wird, also die Anzahl je Bin hoch ist. Sagen wie so ab 100/Bin. Bei mehreren vielen Bins sind das dann auch gleich sehr große Anzahlen an analogen Impulsen die ich simulieren müsste. Tja, das war mir dann zu mühsam. Vor allem weiß ich aber auch nicht was mir das Ergebnis dann bringt. Wenn ich sehe, dass die Simulation in Python gut aussieht. Tja. Dann weiß ich, dass das irgendwie durch den Xilinx IP kommt. Wenn es schlecht aussieht, dann weiß ich nicht mehr wie jetzt.
Gustl B. schrieb: > Tja, das war mir dann zu mühsam. Ich gehe davon aus, dass du weißt wie die Signale theoretisch aussehen sollen und wie sie tatsächlich aussehen. Wenn nicht musst du das zuerst rausfinden. Wenn du weißt, wie die Signale aussehen sollen, ist das Erzeugen in Software der einfache Teil. Und wenn du drei erzeugen kannst, ist der Schritt zu 3 Millionen sehr sehr klein. Danach jeden Filter nacheinander einzeln in Software nachbilden, auf die Testsignale anwenden und idealerweise testen, ob die Ergebnisse mit der Realität übereinstimmen. > Vor allem weiß ich aber auch nicht was mir das Ergebnis dann > bringt. Wenn ich sehe, dass die Simulation in Python gut aussieht. Tja. > Dann weiß ich, dass das irgendwie durch den Xilinx IP kommt. Wenn es > schlecht aussieht, dann weiß ich nicht mehr wie jetzt. Kann man den Xilinx IP nich in Software am PC testen? Oder ist wenigstens irgendwo beschrieben, welche Operation er genau durchführt, so dass man ihn in Software selbst nachbauen kann?
mh schrieb: > Wenn du weißt, wie die Signale aussehen sollen, ist das Erzeugen in > Software der einfache Teil. Und wenn du drei erzeugen kannst, ist der > Schritt zu 3 Millionen sehr sehr klein. Na klar kann ich das machen, aber wo ist der Mehrwert gegenüber der Implementierung in Hardware? Ich habe das in Hardware gemacht, verschiedene Möglichkeiten für Upsampling und Filterung, und das dann jeweils mit echten analogen Signalen getestet. Weil es nur um die Höhe des Pulses geht ist das genaue aussehen egal. Oder anders: Wenn man solche seltsamen Häufigkeitsverteilungen auch bei anders aussehenden Pulsen erkennen kann, dann werden die vermutlich auch bei den zu messenden Pulsen da sein. Das ist ja keine Eigenschaft vom Puls, sondern von der Verarbeitung dahinter. mh schrieb: > Kann man den Xilinx IP nich in Software am PC testen? Klar, in der Simulation. Ist aber langsam. Zumindest kenne ich da keinen anderen Weg als eine VHDL Testbench zu schreiben und dort sehr viele Pulse hineinzufüttern. Ich vermute aber, dass es nicht am Xilinx IP liegt und auch nicht an einem Fehler meiner HDL Beschreibung sondern dass das was ich da sehe eine Eigenschaft ist die mathematisch begründbar ist und ihre Ursache im Upsampling hat. Ich kann das jetzt nicht bestätigen oder widerlegen, ich habe nur gesehen, dass diese Fehler weg sind sobald ich Upsampling vermeide. Upsampling und Filterung wäre nice to have, ist aber keine Pflicht. Die Lösung übertrift auch so schon die Erwartungen (gewünscht waren so >= 5 Bit Auflösung, jetzt sind das ca. 7) und erfüllt meine Abbruchbedingung da weiter Zeit hinterher zu werfen.
Detlef _. schrieb: > Interessant. Hab ich mich auch mal gefragt: Wie kriegt man aus > abgetasteten Signalen, die Nyquist erfüllen, den Maximalwert? Keine > Lösung gefunden. Aus meiner Kenntnis heraus ist das ein Widerspruch. Entweder wird Nyquist (durch die Abtastung!) erfüllt oder nicht. Den Verlauf erhält man durch das Rekonstruktionsfilter. Auch eventuelle Spitzen zwischen zwei Abtastwerten.
Ich bin auch der meinung, dass das funktionieren müsste. In der Theorie. In der Realität hat man nach dem Upsampling mit Samplestuffing oder Zerostuffing erstmal periodisch Lücken in der Häufigkeitsverteilung. Das Rekonstruktionsfilter sollte die einzelnen Bins sie Werte enthalten so "verschmieren", dass die Lcken aufgefüllt werden. Ist das Rekonstruktionsfilter perfekt, dann kann man dahinter nicht mehr erkennen wo vorher Lücken waren und wo nicht. Tja und in der Praxis habe ich das nicht geschafft. Das FIR hatte 56 Koeffizienten, danach waren alle DSPs belegt. Wie man ganz oben in den Bildchen sieht hat ja eine "Verschmierung" schon stattgefunden. Nur eben lange nicht perfekt. Das sind eben zei getrennte Dinge: 1. Das gefilterte Signal soll glatt aussehen. 2. Die Werte im gefilterten Signal sollen gleich häufig sein. 1. Erreicht das Filter so gut, dass es glatt aussieht. 2. ist scheinbar deutlich schwieriger. Glatt aussehen tut es auch wenn statistisch manche Stufen deutlich seltener/häufiger sind.
:
Bearbeitet durch User
Gustl B. schrieb: > Na klar kann ich das machen, aber wo ist der Mehrwert gegenüber der > Implementierung in Hardware? Dann verstehe ich dein Problem nicht. Es kommt doch anscheinend nicht das raus was du erwartet hast. Gustl B. schrieb: > Ich vermute aber, dass es nicht am Xilinx IP liegt und auch nicht an > einem Fehler meiner HDL Beschreibung sondern dass das was ich da sehe > eine Eigenschaft ist die mathematisch begründbar ist und ihre Ursache im > Upsampling hat. > Ich kann das jetzt nicht bestätigen oder widerlegen, ich habe nur > gesehen, dass diese Fehler weg sind sobald ich Upsampling vermeide. > Upsampling und Filterung wäre nice to have, ist aber keine Pflicht. Du weißt also nicht so wirklich was rauskommen soll?
mh schrieb: > Dann verstehe ich dein Problem nicht. Es kommt doch anscheinend nicht > das raus was du erwartet hast. Wie so oft probiert man Dinge aus, auch Dinge die nicht zwingend funktionieren müssen, aber von denen es schön wäre wenn die funktionierten. Um genau sowas geht es. Ich hatte die Vermutung, dass ich durch Upsampling und Filterung die Auflösung erhöhen kann. In der Theorie geht das auch. Ob es in der Praxis mit den begrenzten Bauteilen/Rechenleistung geht weiß ich nicht. Es kommt auf der einen Seite das raus was ich erwartet hatte: Das gefilterte Signal sieht glatt aus und die Auflösung ist höher. Aber wenn ich von diesem Signal die Maxima nehme, dann ist das keine Verteilung wie ich sie erwartet hatte - und wie das theoretisch bei einem perfekten Rekonstruktionsfilter seien müsste - sondern manche sind häufiger/seltener. Ich würde das natürlich gerne verstehen und habe daher hier gefragt. Da kamen gute Antworten und ich habe das mit der linearen Interpolation vor dem Rekonstruktionsfilter implementiert. Lösen konnte ich das nicht, aber ich habe es verstanden oder glaube es verstanden zu haben. Damit bin ich zufrieden. mh schrieb: > Du weißt also nicht so wirklich was rauskommen soll? Klar weiß ich was raus kommen soll wenn ich ein perfektes Rekonstruktionsfilter hätte. Habe ich aber nicht, leider sind meine DSP Slices endlich. Ich hatte gehofft, dass mein Filter ausreicht/gut genug ist, denn für mich sieht das gefilterte Signal schön glatt aus und in der FFT sind bei 4x Upsampling die Frequenzen > 1/8 der neuen virtuellen Samplerate schön abgeschwächt. Ich habe da jetzt genug Zeit verwendet, glaube den Grund verstanden zu haben und verwende jetzt eine deutlich einfachere Lösung die auch mehr als gut genug ist. Aber sie ist eben schlechter als Upsampling mit idealem Filter.
Gustl B. schrieb: > Es kommt auf der einen Seite das raus was ich > erwartet hatte: Das gefilterte Signal sieht > glatt aus und die Auflösung ist höher. Aber wenn > ich von diesem Signal die Maxima nehme, dann ist > das keine Verteilung wie ich sie erwartet hatte - > und wie das theoretisch bei einem perfekten > Rekonstruktionsfilter seien müsste - sondern > manche sind häufiger/seltener. Ich habe darüber nochmal nachgedacht. Stell Dir eine symmetrische, offsetfreie Dreiecks- schwingung vor. Diese werde mit einem 8bit-Wandler abgetastet; die Amplitude sei klein genug, so dass der ADC nicht übersteuert. Wenn man lange genug abtastet, so dass Randeffekte keine Rolle spielen, wird das Histogramm innerhalb der Amplitude eine Gleichverteilung zeigen und außerhalb dieses Bereiches Null. Jetzt schickt man diese Folge durch ein FIR-Filter mit Hochpasscharakteristik. Bei passender Grenzfrequenz entsteht aus dem Dreieck eine Rechteckschwingung. Bestimmt man aber von der Rechteckschwingung das Histogramm, dann erhält man eine ganz ausgeprägt bimodale Verteilung! Die Erwartung, dass die ursprüngliche Häufigkeits- verteilung "ungefähr" erhalten bleibt, ist also falsch. Das liegt daran, dass es für das Histogramm der ungefilterten Daten keine Rolle spielt, ob es bestimmte "zeitliche Muster" gibt -- siehe das Beispiel mit der Dreiecksschwingung. Wichtig sind nur die reinen Häufigkeiten, d.h. die unbedingten Wahrscheinlichkeiten für das Auftreten eines bestimmten Wertes. Ein Filter reagiert aber auf die zeitlichen Strukturen im Signal, d.h. es berücksichtigt auch zeitliche Ableitungen bzw. Integrale. So bildet ein Hochpass u.U. die Änderung von 75 auf 72 auf denselben Ausgangswert ab wie eine Änderung von 13 auf 10. Am Filterausgang spielen daher NICHT NUR die unbedingten Wahrscheinlichkeiten eine Rolle, sondern auch die BEDINGTEN. Im einfachen Histogramm des (ungefilterten) Eingangssignales sind aber die bedingten Wahr- scheinlichkeiten bzw. die Verbundhäufigkeiten überhaupt nicht zu erkennen. Wenn wir das Histogramm der ungefilterten Eingangswerte sehen, betrachten wir also von vornherein nur einen Teil der Wahrheit. Schlussfolgerung: Wir wissen jetzt immer noch nicht, welche Ursache die beobachteten Schwankungen in der Häufigkeit tatsächlich haben -- wir wissen jetzt aber, dass die Erwartung, das Histogramm der gefilterten Werte müsse "ungefähr" so aussehen wie das der ungefilterten, nicht zutrifft. Sie ist m.E. für den allgemeinen Fall falsch.
Egon D. schrieb: > Das liegt daran, dass es für das Histogramm > der ungefilterten Daten keine Rolle spielt, ob es > bestimmte "zeitliche Muster" gibt -- siehe das > Beispiel mit der Dreiecksschwingung. Wichtig sind > nur die reinen Häufigkeiten, d.h. die unbedingten > Wahrscheinlichkeiten für das Auftreten eines > bestimmten Wertes. Exakt! Tja ... ist interessant und stimmt natürlich. Ich weiß aber nicht was das zu meinen Pulsen sagt. Da ist die Zeit ja auch egal. Es interessiert nur der höchste Wert eines Impulses, der wird gezählt, der Rest nicht. Und da hatte ich vorher naiverweise vermutet/gehofft, dass bei Upsampling und *Tiefpass*-Filterung die Maxima feiner aufgelöst werden und sich deren Verteilung nicht ändert. Also dass ich ein paar Bits dazu bekomme weil das Ergebnis ja ein gleitender gewichteter Mittelwert ist. Vielleicht müsste ich mir das wirklich mal simulieren. Aber welche Impulse nehme ich dafür? Wenn ich die rein künstlich erzeuge, dann entspricht das ja auch nicht dem was ich in der Realität habe. Vielleicht sollte ich mal viele Impulse aufnehmen. Also jeweils so 100 Abtastwerte/Impuls und die für eine Simulation nutzen. Ist nur irre aufwändig ...
:
Bearbeitet durch User
Gustl B. schrieb: > Tja ... ist interessant und stimmt natürlich. Ich > weiß aber nicht was das zu meinen Pulsen sagt. In gerader Linie gar nix :) Die indirekte Aussage ist aber: Man darf so nicht argumentieren, wie wir es getan haben -- denn die Erwartung, die Histogramme vor und nach der Filterung müssten "ungefähr gleich" aussehen, ist durch nichts begründet (außer durch unsere Intuition). Es kann also sein, dass in Deiner Anordnung gar kein Fehler steckt -- auch wenn die Resultate unerwartet sind. > Da ist die Zeit ja auch egal. Sicher -- DU weisst das, aber weiss das auch Dein FIR-Filter? Natürlich nicht. Der reagiert auch auf zeitliche Strukturen in den Messwerten, von deren Existenz Du gar nix ahnst... > Es interessiert nur der höchste Wert eines Impulses, > der wird gezählt, der Rest nicht. Und da hatte ich > vorher naiverweise vermutet/gehofft, dass bei > Upsampling und *Tiefpass*-Filterung die Maxima feiner > aufgelöst werden und sich deren Verteilung nicht > ändert. Also dass ich ein paar Bits dazu bekomme > weil das Ergebnis ja ein gleitender gewichteter > Mittelwert ist. Ja -- anschaulich ist das völlig klar und überzeugend, was Du willst. Ich habe ja schon von meinen gelegentlichen Experimenten mit der Dekonvolution zur Schärfung von Graustufenbildern erzählt. Dabei habe ich eine interessante Beobachtung gemacht: Wenn ich ein verlustfrei gespeichertes Bild nehme, funktioniert die Schärfung. Verwende ich aber ein Bild als Input, das zwischendurch mal als JPG verlustbehaftet gespeichert wurde, funktioniert die Schärfung subjektiv ganz schlecht -- obwohl man im unbehandelten Bild noch überhaupt keinen Qualitätsunterschied erkennt. Meine Schlussfolgerung daraus: Die Algorithmen reagieren auf Strukturen in den Messdaten, die der Mensch so einfach per Augenschein nicht wahrnimmt -- die aber nichtsdestotrotz vorhanden sind. > Vielleicht müsste ich mir das wirklich mal simulieren. Darauf wird es hinauslaufen. > Aber welche Impulse nehme ich dafür? Wenn ich die rein > künstlich erzeuge, dann entspricht das ja auch nicht > dem was ich in der Realität habe. Das macht ja erstmal nix. Es geht ja erstmal nur darum, ein Gefühl dafür zu bekommen, welches Filter aus welchem Input welchen Output macht. > Vielleicht sollte ich mal viele Impulse aufnehmen. Also > jeweils so 100 Abtastwerte/Impuls und die für eine > Simulation nutzen. Ist nur irre aufwändig ... Klar. Genau das ist der Grund, warum meine Experimente mit der Dekonvolution im Moment feststecken: Ich müsste erstmal mit synthetischen Daten experimentieren, um ein Gefühl für die ganze Sache zu bekommen, aber das schiebe ich wegen des Aufwandes schon monatelang vor mir her...
Egon D. schrieb: > Es kann also sein, dass in Deiner Anordnung gar kein > Fehler steckt -- auch wenn die Resultate unerwartet > sind. Stimmt. Egon D. schrieb: > Sicher -- DU weisst das, aber weiss das auch Dein > FIR-Filter? > > Natürlich nicht. Der reagiert auch auf zeitliche > Strukturen in den Messwerten, von deren Existenz Du > gar nix ahnst... Damit meinte ich, dass die einzelnen Impulse voneinander unabhängig sind. Das sollte auch mit Filter für jeden Impuls egal sein wie der vorherige Impuls aussah. Ein Impuls sind vielleicht 100 Abtastwerte, also 100 ns mit den Schwingern dahinter. Aber es sind nur so 10 ... 100 Impulse/s. Zwischen je zwei Impulsen ist also sehr lange Pause, sehr viel länger als der FIR. Egon D. schrieb: > Meine Schlussfolgerung daraus: Die Algorithmen reagieren > auf Strukturen in den Messdaten, die der Mensch so > einfach per Augenschein nicht wahrnimmt -- die aber > nichtsdestotrotz vorhanden sind. Jap, sehe ich auch so. Nach dem Upsampling/Samplestuffing gibt es ja diskrete Linien im Histogramm. Nach dem Tiefpassfilter sind die Häufigkeiten dann verschmiert. Also die Bins zwischen denen die beim Upsampling schon da waren wurden auch gefüllt. Allerdings nicht so gut, dass die alle gleichmäßig gefüllt sind. Für den Menschen, mich, sieht das Signal über die Zeit aber wunderbar glatt aus. Obwohl da ja offensichtlich weiterhin die Stufen/höhere Frequenzen drinnen sind. Egon D. schrieb: > Genau das ist der Grund, warum meine Experimente mit der > Dekonvolution im Moment feststecken: Dann mache ich das auch so und schiebe das vor mir her^^ nein, ich bin ja doch sehr zufrieden. Im Anhang ein Bildchen dazu. Das zeigt ein Spektrum (blau, hatte ich schon oben gepostet). In dem sind zwei Alpha Zerfälle enthalten, Po212 und Po214. Die passieren hinter einem Betazerfall der Mutter. Also zuerst zerfällt die Mutter, dabei entstehen Po212 und Po214 und diese zerfallen dann wieder. Das was ich da gebaut habe und weshalb ich den schnellen ADC brauchte war, um die Impulse zu trennen (und zwar auch wenn die nur so 30 ns nacheinander kommen, noch weniger wäre besser). Po212 zerfällt schon ca. 300 ns (im Durchschnitt) nach dem Mutterzerfall. Das ist schnell und wenn ich da den klassischen Weg über Pulseshapingverstärker gehe, dann werden Mutter und Tocherzerfall zu einem Impuls geshaped. Jetzt digitalisiere ich direkt die Anode vom Photomultiplier, gebe jedem Impuls einen Zeitstempel und kann dann nachträglich filttern. Hier wurden alle Impulse die > 30 ns und < 500 ns nach einem vorausgehenden Impuls auftraten herausgefiltert und in das grüne Spektrum geschrieben. Alle die 3 us bis 1 ms nach einem vorausgehenden Impuls kamen wurden in das orangene Spektrum geschrieben. Man kann schön sehen, dass ich die fast alle erwischt habe. Das Restspektrum, lila, hat nur zwei kleine Hubbel an den Stellen. Aber ist eben leider nicht so einfach. Meine untere Schwelle von 30 ns ist schon recht weit entfernt vom Mutterzerfall. Wenn die Halbwärtszeit grob 300 ns ist, dann zerfallen doch schon einige in den ersten 30 ns. Ausserdem reicht die Auflösung. Die Peaks im Spektrum sind nun mal so breit, das sind Lichtimpulse in einem Szintillator vor einem Photomultiplier. Je nach Ort und Richtung des Zerfalls kommt da mehr oder weniger Licht an - auch bei gleicher Zerfallsenergie. Bessere Auflösung, also mehr Bits wären zwar vielleicht schön, aber bringen eigentlich nix weil die Breite der Peaks im Spektrum andere Ursachen hat. Edit: Das was ich da gemacht habe machte bis ein analoger Komparator. Da konnte man Schwellen per Poti einstellen. Aber die waren für die Messung dann eben auch fest. Meine Lösung in der jeder Impuls einen Zeitstempel erhält ist also flexibler weil man nachträglich mit beliebigen Bedingungen für Zeit und Energie filtern kann.
:
Bearbeitet durch User
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.