Diskrete Fouriertransformation über dünnbesetzten Vektor

14/04/2009 - 17:15 von Wolfgang Draxinger | Report spam
Servus,

ich habe hier einen Satz Meßwertdateien aus einer
Debeye-Röntgendiffraktionsmessung. Normalerweise làsst man über die
Streubilder eine Fouriertransformation laufen und erhàlt daraus die
primitiven Gittervektoren.

Allerdings habe ich hier nur die Positionen der Peaks. Und daraus muss ich
jetzt herausdestillieren, welche Peaks zur selben Streuebene, aber in 1.,
2., 3. Ordnung usw. gehören, d.h. eigentlich interessieren mich die
einzelnen Peaks überhaupt nicht. Ich will nur wissen, welche Frequenzen (in diesem Fall Gitterebenenabstànde) vorkommen.

Was ich mir bisher dazu überlegt habe erscheint mir ziemlich kompliziert, da
gibt es sicher einen einfachereren Algorithmus.

Soweit habe ich mir mit viel Heuristik folgendes ausgedacht: Sei \vec{a} der
Vektor mit den Peak-Positionen. Daraus bilde ich die Matrix

b_ij = || a_i - a_j ||

Daraus berechnet sich der Tensor

c_lmno = b_lm % b_no

a % b := Rest der Division a / b

Aus diesem Tensor werden die Elemente ausgewàhlt die < \epsilon sind (wobei
\epsilon in diesem Fall recht groß ist - verglichen mit den Werten die
\epsilon üblicherweise annimmt). Und damit gehe ich wieder rückwàrts zu den
jeweiligen Peaks.

Nur: Das Verfahren ist umstàndlich und anscheinend auch nicht robust. Einen
Beweis der Korrektheit habe ich gar nicht erst probiert.

Hat jemand eine bessere Idee. Die Holzhammermethode wàre natürlich einen
langen Meßwertvektor mit ~1000 Elementen zu erzeugen indem man die Summe
von Gauss-Verteilungen an den Peakpositionen aufaddiert. Und diesen
synthetischen Meßvektor dann durch eine DFT zu jagen.


Grüße

Wolfgang
 

Lesen sie die antworten

#1 Roland Damm
14/04/2009 - 23:24 | Warnen spam
Moin,

Wolfgang Draxinger schrub:

Hat jemand eine bessere Idee. Die Holzhammermethode wàre
natürlich einen langen Meßwertvektor mit ~1000 Elementen zu
erzeugen indem man die Summe von Gauss-Verteilungen an den
Peakpositionen aufaddiert. Und diesen synthetischen Meßvektor
dann durch eine DFT zu jagen.



Hast du Angst vor 0,1 Sekunden Rechenzeit?

Im Ernst, du suchst doch letztlich Peaks, willst aber solche
nicht wissen, die sozusagen nur Oberwellen von anderen sind,
also beim Vielfachen des Winkels auftreten oder sowas. Nur: Wie
genau sind die Peaks vermessen? Passen die zusammengehörigen
Peaks wirklich zahlenmàßig exakt zusammen?
Gaußkurven um die Peaks herum künstlich zu generieren, erscheint
mir da ganz passabel.

CU Rollo

Ähnliche fragen