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!
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.
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.
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.
>>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:
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?
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.
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.
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 ...
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.