6 Stimmen

Konvolutieren unregelmäßig verteilte Vektoren in scipy

Ich habe ein gemessenes Spektrum, d.h. ein 1D-Array spec mit spec.shape = (n, ). Die einzelnen Punkte entsprechen unregelmäßig verteilten Wellenlängen, die in einem 1D-Array wl mit wl.shape = (n, ) gespeichert sind. Jetzt muss ich dieses Spektrum mit einer Gauß-Funktion mit vorgegebener FWHM konvolvieren.

Wie kann ich das mit numpy/scipy machen?

Derzeit habe ich das:

fwhm = .22
gaussian_window = scipy.signal.gaussian(spec.size, std=fwhm/2.3548201)
result = scipy.signal.fftconvolve(spec, gaussian_window)

Allerdings berücksichtigt dies die unregelmäßige Spacierung der Eingabedaten überhaupt nicht.

Jede Hilfe wird sehr geschätzt :)

0voto

Greg Punkte 11554

Es klingt so, als könntest du einfach dein ungleichmäßig verteilte Eingabedaten auf ein einheitliches Raster interpolieren. Wenn das Spektrum glatt sein soll, dann solltest du einfach dasselbe Raster wie dasjenige wählen, das von deinem Gaußfenster verwendet wird, dann solltest du in Ordnung sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X